FreeRTOS学习
文章平均质量分 91
小朱炖粉条
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
FreeRTOS学习——heap4
如果 configSUPPORT_DYNAMIC_ALLOCATION 为0,则不得使用此文件==0if0如果这个宏为0,在free内存函数中,并没有将内存空间清0,只是将其插入到空闲内存块链表中。此宏为1,才清00heapMINIMUM_BLOCK_SIZE 宏size_t<<1这个宏定义了一个最小的块大小,即乘以2。表示存储堆信息的数据结构()的大小。确保内存分配的最小单位至少能够存储两个这样的数据结构,这样即使在最坏的情况下,内存也能被有效管理,避免过小的内存块导致碎片化严重。原创 2025-02-06 15:05:13 · 1065 阅读 · 0 评论 -
Cortex-M7核心寄存器
参考内容:Cortex-M7编程手册。原创 2024-09-24 18:10:18 · 1784 阅读 · 0 评论 -
FreeRTOS学习——Systick中断、SVC中断、PendSV中断
当SVC指令被执行后,处理器会根据中断向量表中的信息跳转到相应的SVC中断处理函数,执行SVC指令时,处理器会自动保存当前的上下文,并将处理器的模式切换为特权模式,从而允许执行受限的操作。ldr r3, pxCurrentTCBConst2:将pxCurrentTCBConst2的值(即pxCurrentTCB的地址)加载到寄存器r3中。配置系统的滴答定时器,以允许操作系统根据配置的频率生成定时中断,从而支持任务的调度和管理。msr psp, r0:将恢复后的任务栈指针r0存入PSP(进程栈指针)。原创 2024-09-23 20:56:10 · 4343 阅读 · 0 评论 -
FreeRTOS学习——接口宏portmacro.h
原子操作是指在多线程或多任务环境中,**一个操作要么完全执行成功,要么完全不执行,不会在中间被挂起或打断。**对于时间片操作,若标识为原子,在此期间所有对时间片的修改和读取都是一个不可分割的动作。原创 2024-09-18 20:04:59 · 2124 阅读 · 0 评论 -
FreeRTOS学习——链表list
FreeRTOS学习——链表(列表)list,仅用于记录自己阅读与学习源码*list_t只能存储指向list_item_t的指针。每个list_item_t都包含一个数值(xItemValue)。大多数时候,列表是按项目值升序排列的。*创建的列表已包含一个列表项。此项的值是可以存储的最大值,因此它始终位于列表的末尾,并充当标记。列表成员pxHead始终指向此标记,即使它位于列表的末尾。这是因为尾部包含一个返回指针,指向列表的真正头部。原创 2024-09-16 22:26:14 · 1416 阅读 · 0 评论 -
FreeRTOS学习——代码覆盖率测试宏mt
在代码中使用 mtCOVERAGE_TEST_MARKER() 时,预处理器会直接移除这个宏调用,不会留下任何代码。mtCOVERAGE_TEST_DELAY特意放在代码的一个关键部分,通常是为了确保通过操作函数时,所有逻辑判断和指针操作都能被仔细测试。#define mtCOVERAGE_TEST_MARKER() ((void)0) 表示宏展开为一个空操作,保留一个空语句。它的主要目的是确保在某些特定情况下,代码的所有可能路径都能被测试到。它确保在某些特定情况下,代码的所有可能路径都能被测试到。原创 2024-09-14 14:46:43 · 1135 阅读 · 0 评论 -
使用Clion开发STM32——移植FreeRTOS
其实在STM32cubeMX中就可以直接配置FreeRTOS,rtthread等操作系统,而且使用接口封装过的,很方便。但我还是想手动一直一遍,肯定有不一样的收获。原创 2024-08-16 15:22:14 · 2588 阅读 · 3 评论
分享