06 2022 档案

摘要:一、利用栈区的空间作为堆区 看过我之前的笔记的小伙伴都知道,以前我是通过申请栈区的空间使用的,感兴趣的小伙伴可以看我之前的笔记,RT-Thread移植到stm32。 在board.c文件文件中的代码如下所示: #if defined(RT_USING_USER_MAIN) && defined(RT 阅读全文
posted @ 2022-06-30 15:22 浇筑菜鸟 阅读(7339) 评论(1) 推荐(2)
摘要:一、移植准备 开发版STM32F10xC8T6 准备好移植RT-Thread的移植工程 没动手移植过RT-Thread的小伙伴,可以看RT-Thread移植到stm32 我这里是将控制台信息打印到串口的,所以需要确认RT-Thread可以将控制台信息通过串口输出。有疑问的话可以看我之前的文章,RTT 阅读全文
posted @ 2022-06-30 11:36 浇筑菜鸟 阅读(4383) 评论(0) 推荐(1)
摘要:一、内存管理的特点 分配内存的时间必须是确定的。一般内存管理算法是根据需要存储的数据的长度在内存中去寻找一个与这段数据相适应的空闲内存块,然后将数据存储在里面。而寻找这样一个空闲内存块所耗费的时间是不确定的,因此对于实时系统来说,这就是不可接受的,实时系统必须要保证内存块的分配过程在可预测的确定时间 阅读全文
posted @ 2022-06-29 11:45 浇筑菜鸟 阅读(1372) 评论(0) 推荐(0)
摘要:一、线程同步 线程同步的使用场景 例如一项工作中的两个线程:一个线程从传感器中接收数据并且将数据写到共享内存中,同时另一个线程周期性的从共享内存中读取数据并发送去显示,下图描述了两个线程间的数据传递: 临界区 多个线程操作 / 访问同一块区域(代码),这块代码就称为临界区,上述例子中的共享内存块就是 阅读全文
posted @ 2022-06-28 18:15 浇筑菜鸟 阅读(1236) 评论(0) 推荐(0)
摘要:一、MQTT概述 MQTT协议是一种消息列队传输协议,采用订阅、发布机制,订阅者只接收自己已经订阅的数据,非订阅数据则不接收,既保证了必要的数据的交换,又避免了无效数据造成的储存与处理。因此在工业物联网中得到广泛的应用。 注意:从图中可以看出来,MQTT分别有:发布者、订阅者、服务器。有兴趣的小伙伴 阅读全文
posted @ 2022-06-24 15:39 浇筑菜鸟 阅读(5451) 评论(10) 推荐(0)
摘要:一、时钟节拍 任何操作系统都需要提供一个时钟节拍,以供系统处理所有和时间有关的事件,如线程的延时、线程的时间片轮转调度以及定时器超时等。时钟节拍是特定的周期性中断,这个中断可以看做是系统心跳,中断之间的时间间隔取决于不同的应用,一般是 1ms–100ms,时钟节拍率越快,系统的实时响应越快,但是系统 阅读全文
posted @ 2022-06-17 09:31 浇筑菜鸟 阅读(532) 评论(0) 推荐(0)
摘要:一、空线程栈较小 现象: 现象一: 现象二: 原因: 从RT-Thread文章中心可知,空闲线程是不能被挂起的,官方文档说明如下图所示: **注意:**必须保证空闲线程的栈空间足够,否则空闲线程内存溢出后,也会导致程序跑飞。在idle.c文件中,空线程默认栈空间如下图所示: 解决办法: 只需要在rt 阅读全文
posted @ 2022-06-15 15:06 浇筑菜鸟 阅读(2352) 评论(0) 推荐(0)
摘要:一、概述 这是我学习RT-Thread线程管理过程中记录的笔记,方便自己查看,仅供参考,有什么不对的地方忘各位大佬指出。想要了解更详细的内容,请浏览官方文档“线程管理” 如下图所示,一个子任务不间断地读取传感器数据,并将数据写到共享内存中,另外一个子任务周期性的从共享内存中读取数据,并将传感器数据输 阅读全文
posted @ 2022-06-14 17:50 浇筑菜鸟 阅读(914) 评论(0) 推荐(0)
摘要:在了解STM32内存之前需要了解 MCU 的型号和MDK 中的.map 文件,很多刚学习 stm32 时都不会过多的去了解 MCU 的选型,是在太枯燥了。这里在从新了解一下,久了就熟悉了。 一、STM32命令规则 二、MDK下生成.map文件 在MDK中勾选.map文件的生成,确认后编译一下工程即可 阅读全文
posted @ 2022-06-09 18:30 浇筑菜鸟 阅读(2202) 评论(0) 推荐(0)
摘要:一、RT-Thread启动流程 由于RT-Thread文档中心已经将得很详细了,这里我就不过多描述,有需要的可以看RT-Thread 文档中心,启动流程如下图所示: 从图中可以看出RT-Thread是从$Sub$$main()中进入初始化的过程,完成后从$Super$$main()跳转值main函数 阅读全文
posted @ 2022-06-08 16:41 浇筑菜鸟 阅读(619) 评论(0) 推荐(0)
摘要:一、问题 在移植 RT-Thead 时,需要获取mcu当前的 HCLK 时钟频率来设置滴答时钟,而我使用的库函数中刚好缺少SystemCoreClockUpdate函数。 我之前在RT-Thread移植到stm32中是直接忽视SystemCoreClockUpdate函数的调用直接给SystemCo 阅读全文
posted @ 2022-06-08 15:09 浇筑菜鸟 阅读(886) 评论(0) 推荐(1)
摘要:一、分析程序的目的 最近我在移植实时系统是遇到了一些问题,所以决定深入了解系统时钟的配置过程,当然想要学好stm32的小伙伴也有必要学习好时钟系统的配置,所以我将学习的过程再次记录,有写得不好的地方,望小伙伴指出。 之前我已经记录过一篇关于时钟系统的文章,对程序中不了解的地方可以看我之前的笔记“ST 阅读全文
posted @ 2022-06-07 18:15 浇筑菜鸟 阅读(1513) 评论(0) 推荐(0)
摘要:在学习单片机时,我们会经常使用printf函数进行信息输出,方便调试程序,而学习RT-Thread时也会经常使用rt_kprintf函数进行信息输出,所以在移植完RT-Thread时,我们首先需要定义rt_hw_console_output使得rt_kprintf函数能正常运行 一、初始化UART 阅读全文
posted @ 2022-06-06 15:50 浇筑菜鸟 阅读(2095) 评论(0) 推荐(1)
摘要:一、ST-LINK ST-LINK产品如下图所示: ST-LINK接口定义如下图所示 ST-LINK与stm32接线 使用SW接法只需要四根线: STM32 ST-LINK VCC(3.3V) TVCC(1) SWDIO/JTMS SWDIO(7) SWCLK/JTCK SWCLK(9) GND G 阅读全文
posted @ 2022-06-06 14:58 浇筑菜鸟 阅读(19909) 评论(0) 推荐(0)