初识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的 ...
随机推荐
- Vue mixins(混入)
建立一个公共组件,然后对该组件进行混入继承. 注意会走两个生命周期,谨慎使用 mixins混入,相当于生成new 组件:组件引用,相当与在父组件内开辟了一块单独的空间 mixins适用于,两个有非常相 ...
- CentOS6上ftp服务器搭建实战
1.安装程序包 [root@node1 ~]$ yum install -y vsftpd[root@node1 ~]$ yum install -y lftp # 安装测试软件 2.启动vsftpd ...
- 『TensorFlow』SSD源码学习_其二:基于VGG的SSD网络前向架构
Fork版本项目地址:SSD 参考自集智专栏 一.SSD基础 在分类器基础之上想要识别物体,实质就是 用分类器扫描整张图像,定位特征位置 .这里的关键就是用什么算法扫描,比如可以将图片分成若干网格,用 ...
- 在Eclipse下搭建Hibernate框架(加载hibernate工具插件,离线)
下载hibernate工具包完成之后,对其进行解压可以得到众多文件夹,其中就有一个jbosstools-hibernate开头的文件夹,进入其中可以得到features和plugins两个文件夹,在E ...
- java语言规范,main方法必须声明为public
注释: 根据java语言规范,main方法必须声明为public. 当main方法不是public时,有些版本的java解释器也可以执行java应用程序.有个程序员报告了这个bug. 如果感兴趣可以查 ...
- Container&injection
容器(Container)就是组件和底层服务细节之间的接口.在web组件.企业级Bean等能够执行之前,它必须被装配为一个JavaEE模块,并部署在容器上. 在JavaEE5时代通过注解的方式注入(i ...
- struts2必备jar包(2.1.6版本)
struts2必备jar包(2.1.6版本) struts2(2.1.6版本)必备的jar包有6个 struts2-core-2.1.6.jar freemarker-2.3.13.jar commo ...
- [sgu P155] Cartesian Tree
155. Cartesian Tree time limit per test: 0.25 sec. memory limit per test: 65536 KB input: standard i ...
- 高级FTP服务器开发
要求: 1. 用户加密认证 2. 多用户同时登陆 3. 每个用户有自己的家目录且只能访问自己的家目录 4. 对用户进行磁盘配额.不同用户配额可不同 5. 用户可以登陆server后,可切换目录 6. ...
- Vue(七) 组件详解
组件 (Component) 是 Vue.js 最核心的功能,也是整个框架设计最精彩的部分,当然也是最难掌握的. 组件与复用 组件用法 组件与创建 Vue 实例类似,需要注册后才可以使用.注册有全局注 ...