Browse Source

examples/embedding: Add code markup and fix typo in README.md.

pull/3857/merge
Damien George 6 years ago
parent
commit
31cf49c672
  1. 24
      examples/embedding/README.md

24
examples/embedding/README.md

@ -1,10 +1,10 @@
Example of embedding MicroPython in a standlone C application Example of embedding MicroPython in a standalone C application
============================================================= ==============================================================
This directory contains a (very simple!) example of how to embed a MicroPython This directory contains a (very simple!) example of how to embed a MicroPython
in an existing C application. in an existing C application.
A C application is represented by the file hello-embed.c. It executes a simple A C application is represented by the file `hello-embed.c`. It executes a simple
Python statement which prints to the standard output. Python statement which prints to the standard output.
@ -18,19 +18,19 @@ Building the example is as simple as running:
It's worth to trace what's happening behind the scenes though: It's worth to trace what's happening behind the scenes though:
1. As a first step, a MicroPython library is built. This is handled by a 1. As a first step, a MicroPython library is built. This is handled by a
separate makefile, Makefile.upylib. It is more or less complex, but the separate makefile, `Makefile.upylib`. It is more or less complex, but the
good news is that you won't need to change anything in it, just use it good news is that you won't need to change anything in it, just use it
as is, the main Makefile shows how. What may require editing though is as is, the main `Makefile` shows how. What may require editing though is
a MicroPython configuration file. MicroPython is highly configurable, so a MicroPython configuration file. MicroPython is highly configurable, so
you would need to build a library suiting your application well, while you would need to build a library suiting your application well, while
not bloating its size. Check the options in the file "mpconfigport.h". not bloating its size. Check the options in the file `mpconfigport.h`.
Included is a copy of the "minimal" Unix port, which should be a good start Included is a copy of the "minimal" Unix port, which should be a good start
for minimal embedding. For the list of all available options, see for minimal embedding. For the list of all available options, see
py/mpconfig.h. `py/mpconfig.h`.
2. Once the MicroPython library is built, your application is compiled 2. Once the MicroPython library is built, your application is compiled
and linked it. The main Makefile is very simple and shows that the changes and linked it. The main Makefile is very simple and shows that the changes
you would need to do to your application's Makefile (or other build you would need to do to your application's `Makefile` (or other build
configuration) are also simple: configuration) are also simple:
a) You would need to use C99 standard (you're using this 15+ years old a) You would need to use C99 standard (you're using this 15+ years old
@ -38,7 +38,7 @@ standard already, not a 25+ years old one, right?).
b) You need to provide a path to MicroPython's top-level dir, for includes. b) You need to provide a path to MicroPython's top-level dir, for includes.
c) You need to include -DNO_QSTR compile-time flag. c) You need to include `-DNO_QSTR` compile-time flag.
d) Otherwise, just link with the MicroPython library produced in step 1. d) Otherwise, just link with the MicroPython library produced in step 1.
@ -48,13 +48,13 @@ Out of tree build
This example is set up to work out of the box, being part of the MicroPython This example is set up to work out of the box, being part of the MicroPython
tree. Your application of course will be outside of its tree, but the tree. Your application of course will be outside of its tree, but the
only thing you need to do is to pass MPTOP variable pointing to only thing you need to do is to pass `MPTOP` variable pointing to
MicroPython directory to both Makefiles (in this example, the main Makefile MicroPython directory to both Makefiles (in this example, the main Makefile
automatically passes it to Makefile.upylib; in your own Makefile, don't forget automatically passes it to `Makefile.upylib`; in your own Makefile, don't forget
to use a suitable value). to use a suitable value).
A practical way to embed MicroPython in your application is to include it A practical way to embed MicroPython in your application is to include it
as a git submodule. Suppose you included it as libs/micropython. Then in as a git submodule. Suppose you included it as `libs/micropython`. Then in
your main Makefile you would have something like: your main Makefile you would have something like:
~~~ ~~~

Loading…
Cancel
Save