zoukankan      html  css  js  c++  java
  • The Applications of RT-Thread RTOS

    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 <stdio.h>
    
    int main(int argc, char **argv)
    {
        printf("Hello World!
    ");
        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 <rtthread.h>
    
    void my_thread_entry(void* parameter)
    {
        int index;
        
        while (1)
        {
            rt_kprintf("index => %d
    ", 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. While the license of RT-Thread RTOS is GPLv2+.

    来源

  • 相关阅读:
    saxbuilder用法
    【转】开篇python--明白python文件如何组织,理解建立源文件
    [转]linux awk命令详解
    sed 指定行范围匹配(转)
    MySQL Error Code文档手册---摘自MySQL官方网站
    java文件读写操作大全
    详解coredump
    Java中Map根据键值(key)或者值(value)进行排序实现
    java如何对map进行排序详解(map集合的使用)
    遍历Map的四种方法
  • 原文地址:https://www.cnblogs.com/skullboyer/p/9125103.html
Copyright © 2011-2022 走看看