随笔分类 - RT-Thread
RTOS实时系统移植学习
摘要:最近使用 STM32 测试了一下 lwip 和 esp8266 的网络连接问题,使用 RTThread 的自动网卡时,发现不能很好的自动切换默认网卡,不能满足需求,所以自己简单的改了一下。 一、准备材料 MCU:STM32F103ZT6 RTThread:5.0.2 工具:RTThread stud
阅读全文
摘要:一、概述 开发板:STM32F103ZET6(战舰) RT-Thread:5.0.0 LwIp:2.1.2 网卡芯片:DM9000 编译环境:keil 我简单了解了一下,在嵌入式中,网络芯片的使用方式大致有三种,如下: (MCU + MAC + PHY) (MUC + MAC) —— PHY MCU
阅读全文
摘要:一、FinSH 的移植与使用问题 FinSH组件输入无反应的问题 **现象:**当打开 finsh 组件后,控制台会打相应的信息,如下图说是: \ | / - RT - Thread Operating System / | \ 3.1.5 build Jul 6 2022 2006 - 2020
阅读全文
摘要:一、利用栈区的空间作为堆区 看过我之前的笔记的小伙伴都知道,以前我是通过申请栈区的空间使用的,感兴趣的小伙伴可以看我之前的笔记,RT-Thread移植到stm32。 在board.c文件文件中的代码如下所示: #if defined(RT_USING_USER_MAIN) && defined(RT
阅读全文
摘要:一、移植准备 开发版STM32F10xC8T6 准备好移植RT-Thread的移植工程 没动手移植过RT-Thread的小伙伴,可以看RT-Thread移植到stm32 我这里是将控制台信息打印到串口的,所以需要确认RT-Thread可以将控制台信息通过串口输出。有疑问的话可以看我之前的文章,RTT
阅读全文
摘要:一、内存管理的特点 分配内存的时间必须是确定的。一般内存管理算法是根据需要存储的数据的长度在内存中去寻找一个与这段数据相适应的空闲内存块,然后将数据存储在里面。而寻找这样一个空闲内存块所耗费的时间是不确定的,因此对于实时系统来说,这就是不可接受的,实时系统必须要保证内存块的分配过程在可预测的确定时间
阅读全文
摘要:一、线程同步 线程同步的使用场景 例如一项工作中的两个线程:一个线程从传感器中接收数据并且将数据写到共享内存中,同时另一个线程周期性的从共享内存中读取数据并发送去显示,下图描述了两个线程间的数据传递: 临界区 多个线程操作 / 访问同一块区域(代码),这块代码就称为临界区,上述例子中的共享内存块就是
阅读全文
摘要:一、时钟节拍 任何操作系统都需要提供一个时钟节拍,以供系统处理所有和时间有关的事件,如线程的延时、线程的时间片轮转调度以及定时器超时等。时钟节拍是特定的周期性中断,这个中断可以看做是系统心跳,中断之间的时间间隔取决于不同的应用,一般是 1ms–100ms,时钟节拍率越快,系统的实时响应越快,但是系统
阅读全文
摘要:一、空线程栈较小 现象: 现象一: 现象二: 原因: 从RT-Thread文章中心可知,空闲线程是不能被挂起的,官方文档说明如下图所示: **注意:**必须保证空闲线程的栈空间足够,否则空闲线程内存溢出后,也会导致程序跑飞。在idle.c文件中,空线程默认栈空间如下图所示: 解决办法: 只需要在rt
阅读全文
摘要:一、概述 这是我学习RT-Thread线程管理过程中记录的笔记,方便自己查看,仅供参考,有什么不对的地方忘各位大佬指出。想要了解更详细的内容,请浏览官方文档“线程管理” 如下图所示,一个子任务不间断地读取传感器数据,并将数据写到共享内存中,另外一个子任务周期性的从共享内存中读取数据,并将传感器数据输
阅读全文
摘要:一、RT-Thread启动流程 由于RT-Thread文档中心已经将得很详细了,这里我就不过多描述,有需要的可以看RT-Thread 文档中心,启动流程如下图所示: 从图中可以看出RT-Thread是从$Sub$$main()中进入初始化的过程,完成后从$Super$$main()跳转值main函数
阅读全文
摘要:一、问题 在移植 RT-Thead 时,需要获取mcu当前的 HCLK 时钟频率来设置滴答时钟,而我使用的库函数中刚好缺少SystemCoreClockUpdate函数。 我之前在RT-Thread移植到stm32中是直接忽视SystemCoreClockUpdate函数的调用直接给SystemCo
阅读全文
摘要:在学习单片机时,我们会经常使用printf函数进行信息输出,方便调试程序,而学习RT-Thread时也会经常使用rt_kprintf函数进行信息输出,所以在移植完RT-Thread时,我们首先需要定义rt_hw_console_output使得rt_kprintf函数能正常运行 一、初始化UART
阅读全文
摘要:一、移植RT-Thread Nano准备 keil软件 CubeMx软件 STM32 CubeMx使用教程:https://www.cnblogs.com/jzcn/p/16313803.html STM32开发版 我使用的是STM32F103C8T6。 二、使用CubeMx生成HAL库 这里就以最
阅读全文
摘要:一、移植RT-Thread准备 RT-Thread源码 源码版本和下载方式,可以参考RT-Thread移植入门学习。 keil软件 STM32工程项目模板 因为每一厂家提供的库文件可能有一些区别,在移植时可能会出现各种不同的问题,对于刚了解RT-Thread的小伙伴不友好,所以我已经将之前创建好的项
阅读全文
摘要:一、简介 RT-Thread 是一款主要由中国开源社区主导开发的开源实时操作系统(许可证GPLv2)。实时线程操作系统不仅仅是一个单一的实时操作系统内核,它也是一个完整的应用系统,包含了实时、嵌入式系统相关的各个组件:TCP/IP协议栈,文件系统,libc接口,图形用户界面等。 官网地址:https
阅读全文
浙公网安备 33010602011771号