近期要学习一款RTOS,让裸机不再孤单。 此次系统学习的RTOS是国产的RTthread(rtthread官网 )。官网中其实有很全面的介绍,还有相关入门视频讲解。RT-Thread 简介作为一名 RTOS 的初学者,也许你对 RT-Thread 还比较陌生。然而,随着你的深入接触,你会逐渐发现 RT-Thread 的魅力和它相较于其他同类型 RTOS 的种种优越之处。RT-Thread 是一款完
前言RT-Thread是一个嵌入式实时多线程操作系统,系统完全开源,它不仅仅是一个实时内核,还具备丰富的中间层组件,包括如文件系统、图形库等较为完整的中间件组件,具备低功耗、安全、通信协议支持和云端连接能力的软件平台。我们可以结合rtthread提供的组件和服务,制作软件包,丰富rt-thread的软件生态。让更多的开发者做到开箱即用,不用重复造轮子。必备知识熟悉rt-thread
了解Kconf
1. 序言今天跟大家简单分享 LWIP + RTThread 的移植注意事项,记得以前刚接触 LWIP 那会,是跟着野火的教程一起走,而大部分 LWIP 移植教程都是以 freeRTOS 为主,本着支持 RTThread 的想法,在当时就想着移植 LWIP 到 RTThread 上,没想到翻车了,sockets 连接总是连接不上而 netconn 就可以,后面就放弃了…………,直到现在,把它捡起来
转载
2024-10-12 08:24:22
266阅读
时钟节拍RT_TICK_PER_SECOND:操作系统中最小的时间单位是时钟节拍 (OS Tick)。周期性中断,这个中断可以看做是系统心跳,是系统延时(OS Tick(10ms)的最新倍),超时,时间片轮转调度的基础。中断之间的时间间隔取决于不同的应用,一般是 1ms–100ms,由 SysTick硬件定时器中断产生。精准延时:用其它硬件定时器或基于os tick的精准硬件阻塞方法如下:
转载
2020-05-01 16:31:00
491阅读
2评论
邮箱与消息队列:邮箱:开销小,效率高(每次4字节,32位任意值或指向缓冲区的指针),相当于MQTT中的代理,函数调用过程中的传地址(指针,浅拷贝)。一(发)对多(收)关系;因为一个邮箱可以有多封邮件,所以接收者可以通过地址(指针==数组名)判断是哪个邮箱发过来的。使用邮箱的前提是保证邮箱接收完成前内容不能改变,或者用邮箱的等待发送(设定超时),否则就用消息队列。 分阻塞(邮箱不存在或超时参数不
转载
2020-05-01 16:00:00
222阅读
2评论
nona版本为精简版本,只保留FISH(选配)最小内核,可以适配STM的STD.HAL/LL库,需要手动进行移植;现在可以在KEIL MDK/CUBEMX中进行集成,也可以RT-Thread Nano 离线安装包下载手动下载源码(安装在
)自己搭建。keil mdk在实时运行环境中打开,通过RT_CONFIG.H进行配置。
中断处理:原3个中断需要注释掉避免重复定义HardFault_Handle
转载
2019-12-04 17:53:00
369阅读
2评论
目前主流的嵌入式GUI开发技术中,RT-Thread/Persimmon、TouchGFX和emWin是最受人瞩目的。
RT-Thread/ Persimmon是国内主导开发的实时线程操作系统RT-Thread中的图形用户界面,是一款面向嵌入式系统的,具备多窗口、多线程的,类似Android界面
一,Cortex-M内核的MCU都有NVIC 1,中断是由硬件产生的。 2,与中断有关的寄存器都在NVIC和SCB中。只能在特权级下访问。 3,Cortex-M3和M4的NVIC最多支持240个IRQ、1个NMI、一个SysTick定时器中断和多个系统异常。 4,在STM32F407的软件工程的启动文件中,有中断向量表。(可从其看出有多少个中断和中断类型) 5,在使用FreeRTOS,需
CmBacktrace (Cortex Microcontroller Backtrace)是一款针对 ARM Cortex-M 系列 MCU 的错误代码自动追踪、定位,错误原因自动分析的开源库。支持裸机、ucos rh-thread,freertos.适配 Cortex-M0/M3/M4/M7 MCU;支持中英文输出。
ulog:与开源easy log很像,可将程序运行过程中的一些状态信息分
转载
2019-12-05 00:33:00
492阅读
2评论
0. 介绍1. 消息队列消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递。消息发布者只管把消息发布到 MQ 中而不用管谁来取,消息使用者只管从 MQ 中取消息而不管是谁发布的。这样发布者和使用者都不用知道对方的存在。1. 三个角色队列服务端队列生产者队列消费者2. 队列产品RabbitMQ:Erlang编写的消息队列产品,企业级消
马上解决:1.每一帧的前后必须有延迟时间(T1-T2-T3-T4) ,为什么不直接是个T ? 具体参考Modbus的本身协议。2.P3,"通过DIII发送什么意思" ,P1,一个HA I/F适配器最多可以连接64台室内机和10台室外机,室内和室外意思?空调本身分为室内机和室外机,DIII-net 是室内机室外机和适配器之间的网络体系,一台室外机可以对应多台室内机;且适配机最多支持64台室
前言关于DMA(Direct Memory Access)的功能,前面关注我微信的人应该知道,其实我已经在F1芯片上简单讲了一下。有网友要求在F0讲解一下使用DMA收发串口数据。今天就应网友要求总结一下在F0芯片上,使用DMA方式传输(收发)USART数据的功能。在多种芯片上(F0、F1、F2、F3、F4)了解过DMA模块功能的朋友可能会发现一个特点,就是DMA的功能有很多相似的地方,甚至是一样。
Tornado是一个Python web框架和异步网络库,最初是在FriendFeed开发的。通过使用非阻塞网络I/O, Tornado可以扩展到数以万计的开放连接,非常适合长轮询、WebSockets和其他需要与每个用户进行长时间连接的应用程序。我们知道tornado是一个异步网络库而且是非阻塞网络IO模型,那, 什么是异步,同步, 什么又是阻塞非阻塞呢?(来自知乎上面严肃大牛的解答~)1.同步
转载
2024-10-17 16:12:33
26阅读
unix早期通信机制中的信号能够传送的信息量有限,管道则只能传送无格式字节流,这远远是不够的。 消息队列(也叫报文队列)客服了这些缺点: 消息队列就是一个消息的链表。 可以把消息看作一个记录,具有特定的格式。  
RT-Thread零基础快速入门第8讲——软件包的使用 目录RT-Thread零基础快速入门第8讲——软件包的使用前言一、准备一个完整的工程二、打开配置页面三、下载软件包四、编译运行五、总结 前言RT-thread有很多实用的软件包,包含网络、IOT、外设、系统等多个方面,对于项目的快速开发或者评估来说是非常方便的。但不是所有软件包都是友好的,因为有些软件包是第三方贡献的,软件的质量参差不齐,即使
转载
2024-07-30 16:35:29
205阅读
一 线程同步:信号量,互斥量,事件集
信号量:(任何线程都可释放,已经不存在实例,线程递归持有会发生主动挂起(最终形成死锁),优先级反转)
生成者(线程1)-共享数据(临界区)-消费者(线程2)模型中对共享数据的操作;对SPI总线的占有操作要互斥;对临界区的保护rt_hw_interrupt_disable/enable();rt_enter/exit_critical()。
转载
2020-05-01 14:50:00
187阅读
2评论
原因是卡在了事件接收哪儿解决方法是在eMBMasterEnable这个函数中加入xMBMasterPortEventPost( EV_
原创
2022-12-14 10:31:59
234阅读
大家好本人大三菜鸟一枚,第一次写教程多有不足,敬请原谅。主要是记录一下自己的学习过程tep1:选择新建RT_Thread
转载
2022-04-13 16:25:11
420阅读
1 ENV中配置后不能下载,原因是将pkge --update 写成了pkge --upgrade
2 RTThread中falut定位方法
3将原来工程拷贝后该文件夹名导入时出错“某些项目因为已在工作空间中而不能被导入 “的原因和解决办法:
原因:导致这个错误的原因是工程重名bai了,并不是du仅仅指文件夹重名,关键是修zhi改工程里面“.project"这个文件。用记事本打开,修改工程名字
转载
2020-04-23 10:39:00
637阅读
2评论
捷米JM-DPM-TCP网关。这款产品在Profibus总线侧实现了主站功能,在以太网侧实现了ModbusTcp服务器功能,为我们的工业自动化网络带来了全新的可能。
捷米JM-DPM-TCP网关是如何实现这些功能的呢?首先,让我们来看看它的Profibus总线侧的主站功能。通过高效的通信协议和稳定的硬件设计,这款网关能够轻松地管理Profibus DP从站,并将