• Home
  • Raw
  • Download

Lines Matching refs:nanoapp

9 basic understanding of what a nanoapp is (if not, see the Nanoapp Overview
11 developing your own nanoapp.
15 When starting a new nanoapp, it’s helpful to start with the skeleton of an
16 existing nanoapp. The simplest example can be found at `apps/hello_world`. Start
17 by copying this folder to the location where you will develop the nanoapp - it
21 If you don’t plan to use this nanoapp as a *static nanoapp* (see the Nanoapp
24 match your nanoapp.
30 the nanoapp within the vendor’s namespace. The vendor identifier is usually
33 an incrementing value for each nanoapp.
36 `util/include/chre/util/nanoapp/app_id.h` for some examples and utilities.
38 Be sure to pick a unique nanoapp ID when creating a new nanoapp.
44 device-specific nanoapp, additional programming languages/versions *may* be
49 While it’s possible to build a nanoapp with a different build system, just as it
53 to create a non-static nanoapp.
55 Update the `Makefile` in your nanoapp’s directory to:
57 * Define nanoapp metadata, including:
63 the name of the nanoapp and vendor, respectively
69 Refer to `build/nanoapp/app.mk` for full details.
71 The nanoapp can then be built using a command like ``OPT_LEVEL=s make
78 Exact steps to load a nanoapp binary can vary by device, but for developing a
79 preloaded nanoapp, this typically involves the following steps:
81 * Perform any needed post-processing of the nanoapp binary to permit it to be
85 CHRE knows to load the new nanoapp
92 case of a nanoapp, the key versioned “API” is considered the interface between
93 the client and nanoapp. Nanoapp versions are represented as a 32-bit integer,
99 The CHRE API is the key interface between each nanoapp and the underlying
107 nanoapp development, and others were initially created for use in the framework
110 internal CHRE framework implementation details) may be used by a nanoapp, and
111 files within a subdirectory called `nanoapp` are specifically targeted for use
114 This includes `util/include/chre/util/nanoapp/log.h` (meant to be included via
115 `#include “chre/util/nanoapp/log.h”`), which provides macros like `LOGD` which
161 communication, and save the host endpoint ID in the nanoapp to use when sending
167 client on the host, it is possible for a nanoapp to provide services to other
173 Typically a nanoapp creates a *nanoapp client library* which other nanoapps can
175 details of passing events to the target nanoapp, and interpreting incoming
185 a nanoapp. Sync the TFLM sources, set `TFLM_PATH`, and define `USE_TFLM=true` in
186 your Makefile - see `apps/tflm_demo/README` for details and an example nanoapp.
192 Buffers](https://developers.google.com/protocol-buffers) in a nanoapp. To
193 integrate this into your nanoapp’s Makefile, first install and configure
201 Then in your nanoapp’s Makefile, populate `NANOPB_SRCS` with the desired
214 guidance for nanoapp development.
243 * If the host is asleep and doesn’t need to act on a nanoapp message
290 Similar to the framework debugging methods, each has its nanoapp counterpart to
291 support nanoapp debugging through the framework. Please see the Framework
301 Nanoapps are encouraged to `#include "chre/util/nanoapp/log.h"` and use the
304 * Define `LOG_TAG` to a short, human-readable identifier for your nanoapp, as
321 CHRE framework implementation, nanoapp debug dumps have the nanoapp name and ID
338 use the `CHRE_ASSERT` macro provided by `#include "chre/util/nanoapp/assert.h"`.
339 Keep in mind that if one nanoapp encounters an assertion failure, it most likely