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!\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 <rtthread.h>

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. While the license of RT-Thread RTOS is GPLv2+.

来源

The Applications of RT-Thread RTOS的更多相关文章

  1. RT Thread 通过ENV来配置SFUD,操作SPI Flash

    本实验基于正点原子stm32f4探索者板子 请移步我的RT Thread论坛帖子. https://www.rt-thread.org/qa/forum.php?mod=viewthread& ...

  2. STM32 + RT Thread OS 学习笔记[二]

    串口通讯例程 通过上面的练习,对STM32项目开发有了一个直观印象,接下来尝试对串口RS232进行操作. 1.   目标需求: 开机打开串口1,侦听上位机(使用电脑串口测试软件)发送的信息,然后原样输 ...

  3. STM32 + RT Thread OS 串口通讯

    1.   创建项目 a)   禁用Finsh和console b)   默认情况下,项目文件包含了finsh,它使用COM1来通讯,另外,console输出(rt_kprintf)也使用了COM1.因 ...

  4. STM32 + RT Thread OS 学习笔记[四]

    1.  补注 a)      硬件,打通通讯通道 若学习者购买了学习板,通常可以在学习板提供的示例代码中找到LCD的相关驱动代码,基本上,这里的驱动的所有代码都可以从里面找到. 从上面的示意图可见,M ...

  5. RT thread 设备驱动组件之USART设备

    本文以stm32f4xx平台介绍串口驱动,主要目的是:1.RTT中如何编写中断处理程序:2.如何编写RTT设备驱动接口代码:3.了解串行设备的常见处理机制.所涉及的主要源码文件有:驱动框架文件(usa ...

  6. STM32 + RT Thread OS 学习笔记[三]

    RTGUI 据说RTGUI是多线程的,因此与RT-Thread OS的耦合度较高,有可能要访问RT-Thread的线程控制块.如果要移植到其它OS,估计难度较大.目前还处于Alpha状态,最终将会包含 ...

  7. RT Thread的SPI设备驱动框架的使用以及内部机制分析

    注释:这是19年初的博客,写得很一般,理解不到位也不全面.19年末得空时又重新看了RTThread的SPI和GPIO,这次理解得比较深刻.有时间时再整理上传. -------------------- ...

  8. RT Thread SPI设备 使用

    后记: 之前,我把SPI的片选在Cubemx中配置成了SPI_NSS.现在我给它改为了GPIO_OUTPUT.  同时参考了别人的类似的一个操作无线模块(采用SPI设备驱动)的例子程序(清楚了RTT的 ...

  9. Java theory and practice: Thread pools and work queues--reference

    Why thread pools? Many server applications, such as Web servers, database servers, file servers, or ...

  10. 优先级反转实验,使用信号量实现【RT-Thread学习笔记 5】

    RTOS中很经典的问题.就是在使用共享资源的时候,优先级低的进程在优先级高的进程之前执行的问题.这里模拟这种情况. 下面的实验模拟了优先级反转的情况: 先定义三个线程: //优先级反转实验 rt_se ...

随机推荐

  1. Spark内部流程图

    转载自:https://blog.csdn.net/refuil/article/details/52055104

  2. 【H5】移动端页面根font-size设置

    h5rem.js   (配置写法①) (function (doc, win) { var docEl = doc.documentElement, resizeEvt = 'orientationc ...

  3. 2.1《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——重定向文件和添加文件

    回忆第一章节的内容,我们用echo命令输出莎士比亚的第一首十四行诗的第一行(Listing 6): $ echo "From fairest creatures we desire incr ...

  4. [笔记] Redis的安装与配置超级详细

    目录 Windows下安装与配置 下载 安装 验证安装 配置服务 测试 Linux下安装与配置 准备工作 安装 验证与测试 Macox下安装与配置 准备工作 安装 验证与测试 Redis 在 Wind ...

  5. 在 R 中估计 GARCH 参数存在的问题(基于 rugarch 包)

    目录 在 R 中估计 GARCH 参数存在的问题(基于 rugarch 包) 导论 rugarch 简介 指定一个 \(\text{GARCH}(1, 1)\) 模型 模拟一个 GARCH 过程 拟合 ...

  6. UWP ListView 绑定 单击 选中项 颜色

    refer: https://www.cnblogs.com/lonelyxmas/p/7650259.html using System; using System.Collections.Gene ...

  7. 20155236范晨歌_Web基础

    20155236范晨歌_Web基础 目录 实践目标 Apache 前端编程 后端编程 PHP MYSQL & 后端 简单SQL注入与XSS 发帖和会话管理 实践目标 (1)Web前端HTML ...

  8. cocos2d-x学习记录5——CCTransition场景过渡

    利用CCTransition能够创建出一系列的场景过渡动画,能够使场景切换时更加绚丽丰富. CCTransition派生出很多过渡动画,传入的参数一般包括过渡时间和创建的场景. MyScene.h内容 ...

  9. Linux每天一个命令:iperf

    iperf命令 Iperf 是一个网络性能测试工具.Iperf可以测试最大TCP和UDP带宽性能,具有多种参数和UDP特性,可以根据需要调整,可以报告带宽.延迟抖动和数据包丢失.下载地址:https: ...

  10. 结对编程--C语言子程序词法分析

    一.问题描述 C语言小子集表的定义 2.设计单词属性值,各类表格(表示标识符表.常量表),单词符号及机内表示,采用标准输入和输出的方式.程序从键盘接收代码,遇到代码结束符"#"时结 ...