初识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的 ...
随机推荐
- http content-type 与 java后端处理
http中的常用的content-type有: application/x-www-form-urlencoded;charset=UTF-8 传递表单类数据 application/json;ch ...
- Gitlab CR
Gitlab 进行 CR 的强限制,原理很简单. 实现起来,利用的是 git 自身的 custom_hooks 的支持,以及需要对 gitlab 做一点操作,对它的数据库开放一个只读权限的账号,来处理 ...
- 用Apache Ant在Weka中嵌入新算法
本文将介绍一种新的添加新的算法到Weka中的方法,国内的论坛基本都是通过IDE(Eclipse或NetBeans)编译,详细教程请见上一篇博客.经研究,发现国外的网站很流行用Ant这个方法,教程奉上. ...
- zabbix3.4.7远程命令例子详解
zabbix可以通过远程发送执行命令或脚本来对部分的服务求故障进行修复 zabbix客户端配置 设置zabbix客户端用户的sudo权限 执行命令visudo: Defaults:zabbix !re ...
- 朋友给的IE滚动条
scrollbar-arrow-color: #f4ae21; /*图6,三角箭头的颜色*/scrollbar-face-color: #333; /*图5,立体滚动条的颜色*/scrollbar ...
- .net反编译的九款神器
本人搜集了下8款非常不错的.Net反编译利器: 1.Reflector Reflector是最为流行的.Net反编译工具.Reflector是由微软员工Lutz Roeder编写的免费程序.Refle ...
- vuex实现原理
一.Store的层次结构 Store,负责管理整个数据访问.修改等: 提高API: State,数据结构: 所有的getters.mutations,全部都注册到store里:结构大概是: { 'xx ...
- String 类型equals方法和int == 方法效率比较
最近写了一个递归方法,在进行比较判断的时候,因为都是integer类型,而integer类型在大于127或者小于-128时会在新建一个,这是因为integer类型的拆装箱机制, 之前没有考虑过equa ...
- RockeMq源码之Client
Client中既有producer,也有consumer,先看前者 org.apache.rocketmq.client.producer.DefaultMQProducer.class 一般都是调用 ...
- java001单词拼写
System.out.printIn("string"); 报错: 百度大神指点,是小写的l而不是大写的I,应该为 System.out.println("Hello S ...