初识rt-thread
bernard.xiong CEO 熊谱祥 env,提供编译构建环境、图形化系统配置及软件包管理功能
scons 是 RT-Thread 使用的编译构建工具,可以使用 scons 相关命令来编译 RT-Thread 特性:
finsh shell c-type msh
良好的编码风格 liunx编码风格,层次分明,
组件丰富
posix接口支持
libc(例如newlib),file system,pthread
辅助工具较多,开发门槛低 配置:menuconfig
1、cd 命令切换到你想要配置板卡的 bsp 目录中,如: rt-thread\bsp\stm32f429-apollo
2、输入 menuconfig 命令后即可打开其界面
注:不是每个板卡都可用,该功能依赖Kconfig文件 升级本地软件包信息:pkgs
1、使用menuconfig 选中要更新的部件,如果列表中没有,执行pkgs --upgrade
2、执行pkgs --update更新
注:更新后的软件包是放在bsp目录下的packages目录,重新编译只能手动拷贝到相应目录?? 编译:SCons 编译规则在rtconfig.py文件
scons -c 清除编译目标。这个命令会清除执行scons时生成的临时文件和目标文件
scons 编译。
注:如果要修改编译器类型、编译器路劲、编译参数在rtconfig.py中修改。
SConscript完成类似makefile的功能,只是使用python语言更容易阅读及使用更强大的内置函数库
详见《Scons构建工具手册》 运行:qemu.bat 模块介绍
finsh shell (亮点)
finsh支持两种模式:
C语言解释器模式,为行文方便称之为c-style;
传统命令行模式,此模式又称为msh(module shell) LWIP
“1.3.2”,“1.4.1”,“2.0.2”默认“2.0.2” 任务调度:
1、高优先级抢占低优先级,同优先级时间片轮转。
2、用优先级链表的方式,所以系统中的总线程数不受限制
/* 当线程退出时,需要执行的清理函数 */
void (*cleanup)(struct rt_thread *tid);
rt_uint32_t user_data; /* 用户数据*/
};
异常与中断 ipc通信组件,增加脱离操作使用该函数后,
内核先唤醒所有挂在该信号量等待队列上的线程,
然后将该信号量从内核对象管理器中删除。
原来挂起在信号量上的等待线程将获得-RT_ERROR 的返回值。
信号量
互斥量
事件
邮箱
消息队列 内核和应用可以分开
编译,并在运行时通过内核中的模块加载器将编译好的应用加载到内核中运行 软件包
Paho MQTT:基于 Eclipse 开源的 Paho MQTT,对于做了很多功能及性能优化,比如:增加了断线自动重连功能,采用 pipe 模型,支持非阻塞 API,支持 TLS 加密传输等等;
WebClient:简单易用的 HTTP 客户端,支持 HTTP GET/POST 等常见请求功能,支持 HTTPS ,断点续传等功能;
mongoose:嵌入式 Web 服务器网络库,类似嵌入式世界里的 Nginx 。授权许可不够友好,商业需要收费;
WebTerminal:网友 home.php?mod=space&uid=6104 开发的,可以在浏览器访问 Finsh/MSH Shell 的软件包,甚至是手机端;
cJSON:超轻量级的 JSON 解析库;
ljson:网友 @qiaoqidui 开发的 json 到 struct 的解析,输出库;
ezXML: XML 文件解析库,目前还不支持解析 XML 数据;
nanopb:Protocol Buffers 格式数据解析库,Protocol Buffers 格式比 JSON、XML 格式资源占用更少;
GAgent:接入机智云的软件包;
Marvell WiFi:Marvell WiFi 驱动;
Wiced WiFi:Wiced 接口的 WiFi 驱动;
CoAP:移植 libcoap 的 CoAP 通信软件包;
nopoll:移植的开源 WebSocket 通信软件包;
netutils:实用的网络调试小工具集合,包括:ping、TFTP、iperf、NetIO、NTP、Telnet 等; OneNet:与中国移动 OneNet 云对接的软件包; JerryScript:超轻量级的 JavaScript 引擎;
MicroPython:针对嵌入式领域的 Python 语言实现软件包 RTGUI:RT-Thread GUI 绘图引擎。RT-Thread 的 Persimmon 柿饼 UI 组件,就依赖于该软件包;
Persimmon UI:适合嵌入式的,支持手势识别、滑动特效等类 Android 的 UI 库;
lwext4:来自网友 home.php?mod=space&uid=4505 移植的,适合嵌入式的 ext2/3/4 文件系统库;
partition:一个简单的适合块设备的分区管理库;
SQLite:一个高可靠的、适合嵌入式领域的SQL数据库引擎。SQLite 也是 Android 内部集成的数据库,有一定的应用领域;
RT-Thread Insight:简写是 RTI ,一个用于 RT-Thread 的探测工具,用来帮助分析系统的内部行为;
LittlevGL2RTT:网友 home.php?mod=space&uid=10424 移植的 LittlevGl GUI 库,这是一个最近新出的嵌入式 GUI 库; 通用数据结构,可移植借鉴
ringbuffer:循环buf,支持动态静态内存配置、镜像??
queue:队列,可配置是否轮询还是通知
pipe:管道
waitQueue,应该还不完善 tcp/ip协议栈--=-lwip
支持,2.0.0, POSIX接口 资料获取入口
官网https://www.rt-thread.org/index.html
git仓库:https://github.com/RT-Thread/rt-thread.git
这个后台地址有惊喜! http://www.rt-thread.org/download/manual
用户手册采用md格式,一套多用,有pdf、网页,还有微信。 附录
1、SCons是一套由Python语言编写的开源构建系统,类似于GNU Make。它采用不同于通常Makefile文件的方式,
而使用SConstruct和SConscript文件来替代。这些文件也是Python脚本,能够使用标准的Python语法来编写。
所以在SConstruct、SConscript文件中可以调用Python标准库进行各类复杂的处理,而不局限于Makefile设定的规则。 2、Makefile:一个文本形式的文件,其中包含一些规则告诉make编译哪些文件以及怎样编译这些文件。
3、Kconfig:一个文本形式的文件,其中主要作用是在内核配置时候,作为配置选项。
4、.config:文件是在进行内核配置的时候,经过配置后生成的内核编译参考文件。 Git clone 取出服务器的仓库的代码到本地建立的目录中(与服务器交互)
Git pull 从服务器的仓库中获取代码,和本地代码合并
Git push 将本地commit的代码更新到远程版本库中 相当于从远程获取最新版本到本地,不会自动merge,比Git pull更安全些。
Git commit 提交当前工作目录的修改内容。
Git rm 从当前的工作目录中和索引中删除文件。
初识rt-thread的更多相关文章
- RT Thread 通过ENV来配置SFUD,操作SPI Flash
本实验基于正点原子stm32f4探索者板子 请移步我的RT Thread论坛帖子. https://www.rt-thread.org/qa/forum.php?mod=viewthread& ...
- STM32 + RT Thread OS 学习笔记[二]
串口通讯例程 通过上面的练习,对STM32项目开发有了一个直观印象,接下来尝试对串口RS232进行操作. 1. 目标需求: 开机打开串口1,侦听上位机(使用电脑串口测试软件)发送的信息,然后原样输 ...
- STM32 + RT Thread OS 串口通讯
1. 创建项目 a) 禁用Finsh和console b) 默认情况下,项目文件包含了finsh,它使用COM1来通讯,另外,console输出(rt_kprintf)也使用了COM1.因 ...
- 初识chromium thread的实现
接触chromium已有一段时间,写点东西学习一下吧. 首先说一下用法,如何利用chromium封装好的thread类来开一个线程.在base里有一个封装该类的头文件thread.h,include它 ...
- 9.C#知识点:线程初识及Thread初识(一)
知识点目录==========>传送门 线程和进程的简单概括. 1.进程就是"活动中"的程序,一个.程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实 ...
- STM32 + RT Thread OS 学习笔记[三]
RTGUI 据说RTGUI是多线程的,因此与RT-Thread OS的耦合度较高,有可能要访问RT-Thread的线程控制块.如果要移植到其它OS,估计难度较大.目前还处于Alpha状态,最终将会包含 ...
- STM32 + RT Thread OS 学习笔记[四]
1. 补注 a) 硬件,打通通讯通道 若学习者购买了学习板,通常可以在学习板提供的示例代码中找到LCD的相关驱动代码,基本上,这里的驱动的所有代码都可以从里面找到. 从上面的示意图可见,M ...
- RT thread 设备驱动组件之USART设备
本文以stm32f4xx平台介绍串口驱动,主要目的是:1.RTT中如何编写中断处理程序:2.如何编写RTT设备驱动接口代码:3.了解串行设备的常见处理机制.所涉及的主要源码文件有:驱动框架文件(usa ...
- RT Thread的SPI设备驱动框架的使用以及内部机制分析
注释:这是19年初的博客,写得很一般,理解不到位也不全面.19年末得空时又重新看了RTThread的SPI和GPIO,这次理解得比较深刻.有时间时再整理上传. -------------------- ...
- RT Thread SPI设备 使用
后记: 之前,我把SPI的片选在Cubemx中配置成了SPI_NSS.现在我给它改为了GPIO_OUTPUT. 同时参考了别人的类似的一个操作无线模块(采用SPI设备驱动)的例子程序(清楚了RTT的 ...
随机推荐
- gii的使用
假设有表link 在backend中生成子模块content 生成子模块模型common/models/Link 生成模块content中的crud 配置别名 在backend/config/main ...
- [LeetCode]题100:Same Tree
Given two binary trees, write a function to check if they are the same or not. Two binary trees are ...
- Matlab:非线性高阶常微分方程的几种解法
一.隐式Euler: 函数文件1: function b=F(t,x0,u,h) b(,)=x0()-h*x0()-u(); b(,)=x0()+*h*x0()/t+*h*(*exp(x0())+ex ...
- vue-常用指令
一.一些指令 1.v-bind 绑定元素(简写 :) <div id="app-2"> <span v-bind:title="message" ...
- <文档学习>AirSim/using_car.md Choosing Your Vehicle: Car or Multirotor
如何在AirSim中使用汽车 默认情况下,AirSim中使用的车型为多转子multirotor. 如果你想使用汽车,那么只需在你的settings.json(https://github.com/Mi ...
- Linux 云服务器中安装 rinetd 进行转发端口实现
端口转发映射的程序叫rinetd,直接make编译安装即可. wget http://www.boutell.com/rinetd/http/rinetd.tar.gz&&tar -x ...
- weinre 远程调试 安装 配置
1.第一种方法:安装:npm install -g weinre 2.第一种方法:开启本地监听服务器(修改端口,默认端口是8080):在cmd中运行: weinre --httpPort 8101 - ...
- E: Sub-process /usr/bin/dpkg returned an error code (1)错误解决
在用apt-get安装软件时出现了类似于install-info: No dir file specified; try --help for more information.dpkg:处理 get ...
- 用setTimeout模拟setInterval的功能
偶然看到这个题目,稍微写了下,做个笔记,不足之处请指正 //用setTimeout模仿setInterval var MyInterVal = function(fun,tm){ if(this == ...
- 经典的Foo和getName
搜了下经典的Foo和getName的题目,看了几个解释,懒得看,自己解一下,作为笔记. function Foo(){ getName = function(){ console.log(1); }; ...