# rtthread-apps **Repository Path**: sandstorm/rtthread-apps ## Basic Information - **Project Name**: rtthread-apps - **Description**: RT-Thread独立应用程序 - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 10 - **Created**: 2016-11-15 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # The Applications of RT-Thread RTOS # ## Introduction ## The user application is the application layer of RT-Thread RTOS. The developer can develop his/her application out of RT-Thread RTOS firmware environment. There are two mode for RT-Thread Applications, * Standalone Application * Shared Library The standalone application has a main() function as the program entry. It more like a program in the PC/Linux. The shared library is compose of functions, and provide these APIs to other programs. ## Build Application ## First of all, these programs must base on RT-Thread RTOS environment, and run inside. In the RT-Thread RTOS, the module option must be enable in rtconfig.h File: #define RT_USING_MODULE And provide the flags for Application building in rtconfig.py file (since RT-Thread 2.1.x, these flags will be gradually added to each BSP): * M_CFLAGS - User Application C/C++ compiler flags * M_LFLAGS - User Application link flags And Provide the ENV variable `BSP_ROOT` which points to your board support package directory. Windows: set BSP_ROOT=`your_bsp_directory` Linux: export BSP_ROOT=`your_bsp_directory` And to run the command under your BSP directory: scons --target=ua -s To generate the information for User Application, such as the header file search path, the macro defined in the RT-Thread RTOS etc. Finally, you can build the user application in `rtthread-apps` directory, for example: scons --app=hello To build `hello` program. scons --lib=libtar To build a shared library. ## A Simple Application ## This is a simple application of `Hello World`: #include int main(int argc, char **argv) { printf("Hello World!\n"); return 0; } It's just like the `Hello World` program in the PC/Linux. Beside that, the user application can use the most of APIs of RT-Thread, for example: #include void my_thread_entry(void* parameter) { int index; while (1) { rt_kprintf("index => %d\n", index ++); rt_thread_delay(RT_TICK_PER_SECOND); } } int my_thread_init(void) { rt_thread_t tid; tid = rt_thread_create("tMyTask', my_thread_entry, RT_NULL, 2048, 20, 20); if (tid != RT_NULL) rt_thread_startup(tid); return 0; } This example will create a sub-thread, which named as 'tMyTask'. ## Build the POSIX application in the host ## If you didn't set RTT_ROOT/BSP_ROOT, The command ```scons --app=hello``` will build the program in host environment, for example, build it as a Linux program. Therefore, only POSIX application can be built like that. ## License ## All of user application are standalone program, if there is no special explanation, the license of these program is [GPLv2](LICENSE). While the license of RT-Thread RTOS is GPLv2+.