初识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的 ...
随机推荐
- spring cloud(二)服务(注册)中心Eureka
Eureka是Netflix开源的一款提供服务注册和发现的产品,它提供了完整的Service Registry和Service Discovery实现.也是springcloud体系中最重要最核心的组 ...
- Lua 语言基本语法
第一个 Lua 程序 .交互式编程 Lua 提供了交互式编程模式.我们可以在命令行中输入程序并立即查看效果. Lua 交互式编程模式可以通过命令 lua -i 或 lua 来启用 .脚本式编程 我们可 ...
- poj 3254Corn Fields (入门状压dp)
Farmer John has purchased a lush ≤ M ≤ ; ≤ N ≤ ) square parcels. He wants to grow some yummy corn fo ...
- 微信https抓包,不同安卓版本、微信版本对证书的要求
安卓系统 7.0 以下版本,不管微信任意版本,都会信任系统提供的证书 安卓系统 7.0 以上版本,微信 7.0 以下版本,微信会信任系统提供的证书 安卓系统 7.0 以上版本,微信 7.0 以上版本, ...
- Spring MVC 复习笔记05
1. 上传图片 1.1 springmvc中对多部件类型解析 在 页面form中提交enctype="multipart/form-data"的数据时,需要springmvc对mu ...
- asp.net core mvc HTTP Error 502.5 - Process Failure
HTTP Error 502.5 - Process Failure Common causes of this issue: The application process failed to st ...
- vuex-state
Vuex 通过 store 选项,提供了一种机制将状态从根组件“注入”到每一个子组件中,且子组件能通过 this.$store访问 const app = new Vue({ el: '#app', ...
- linux远程管理常用命令
目标 关机/重启 shutdown 查看或配置网卡信息 ifconfig ping 远程登录和复制文件 ssh scp 01. 关机/重启 序号 命令 对应英文 作用 01 shutdown 选项 时 ...
- mybatis 使用IN 关键字
mybatis 使用IN 关键字,查询条件如果有多个,拼接成字符串,当做参数传入的时候可能会只查询一条数据,那是因为mybits 将它当做一个字符串来处理了,这时候就需要使用<foreach&g ...
- Jquery 相关笔记
//得到所有check var c = $(this).parent().find('input:checkbox'); if (c.is(':checked')) { var role = {}; ...