facab8c5a7
This updates the minimal supported version of CMake to 3.16, which in turn enables us to use more CMake features and have a cleaner build system. This is the version that provides most new features and also the one we use in our latest docker image for CI. |
||
---|---|---|
.. | ||
main | ||
CMakeLists.txt | ||
README.md | ||
sdkconfig.defaults |
README.md
Supported Targets | Linux |
---|
This hello-world example builds a simple hello-world application for Linux. The compiler used is the Linux-gcc.
There are two major differences to an IDF application built for an ESP chip compared to an application build for Linux:
-
The entry-point on Linux is
int main(int argc, char **argv)
, instead ofvoid app_main(void)
on an ESP chip. In this example for Linux, thevoid app_main(void)
function is still included to make the connection to the IDF entry point clearer. However, it is simply called byint main(int argc, char **argv)
. Refer to the source file linux_host_app.cpp to see how it is used. -
The project-level CMakeLists.txt for Linux is different from that of a normal IDF application for an ESP chip. On Linux, there is an additional line
set(COMPONENTS main)
, which clears the common requirements (default dependencies usually included in all IDF applications). This is currently necessary as the Linux-host feature is still under development. Otherwise, a lot of hardware-dependent code would be pulled in.
Requirements
Currently, Ruby is required for the mock override of FreeRTOS.
Build
Source the IDF environment as usual, then set the Linux target:
idf.py --preview set-target linux
sdkconfig.defaults sets the Linux target by default, so this not strictly necessary.
Once this is done, build the application:
idf.py build
Since this application runs on host, the flashing step is unnecessary.
Run
`build/linux_host_app.elf`