自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 freertos源码分析DAY2 (消息队列 )

这节内容是信号量的基础,因为创建以及发送/等待信号量所调用的底层函数,就是创建/发送/接受消息队列时所用到的通用创建函数,这里先补充一下数据结构中关于队列的知识。目录1. 队列原理1.1 顺序队列操作1.2 循环队列操作2.消息队列原理2.1消息队列的构成2.2 消息队列出入队原则2.3 消息队列发送/接收消息原理2.4 队列锁机制3. 消息队列创建及删除3.1 创建消息队列函数3.1.1 xQueueGenericCreate通用任务创建函数 3.1.1.1 prvInitialiseNewQueue初

2024-06-10 09:30:00 1023

原创 freertos源码分析DAY1 (任务管理)

任务挂起函数,任务恢复函数,及任务删除函数。

2024-04-25 09:39:08 803

原创 卡尔曼滤波公式推导(自用)

自用笔记。(仅适用于线性系统)

2024-03-19 16:27:47 343 1

原创 freertos内核原理Day7(支持时间片)

这是freertos内核实现的最后一节, 如果理解了前面的内容,这节内容理解起来会非常容易,这节内容也比较少; 这里先说明时间片的概念:一个优先级的根节点下,可以挂载多个属于这个优先级的任务节点,且它们都享有相同的CPU运行时间。前面几节可以知道systick被配置为了1ms中断一次,systick中断触发的周期就是一个tick(tick就是Rtos中的任务运行时长的最小时间单位)。首先在main函数中先创建3个任务: 可以看到在创建的任务中task1 和task2都是优先级为2的任务,task3

2024-03-08 05:20:30 1879 4

原创 freertos内核原理Day6(实现任务延时列表)

1、可以看到我们定义了任务延时列表根节点1和2(1是挂载系统时基变量溢出前的延时任务的,2是用来挂载系统时基变量溢出后的延时任务的2、定义了一个任务延时根节点指针pxDelayedTaskList(用来指向时基没有溢出的那条列表3、定义了一个任务延时根节点指针pxOverflowDelayedTaskList(用来指向时基溢出的那条列表6.1.2任务延时列表初始化既然任务延时列表是属于延时列表的一种,则在任务列表初始化时,应该一并初始化任务延时列表;/* 初始化任务相关的列表 */

2024-03-06 10:30:00 856 1

原创 freertos内核原理Day5(支持多优先级)

这里首先说明一点,configUSE_PORT_OPTIMISED_TASK_SELECTION宏控制是选择“通用方法”还是“优化方法”的宏定义,1选择“优化方法”,反之“通用方法”;

2024-03-03 22:46:35 1715

原创 PCB准则

直角尖端的直角点非常小,故这里的面积也小,这导致这点的电荷密度很大,此时此点就会产生巨大的电场强度,这个电场会击穿空气,从而产生巨大的电磁干扰。若同一组信号用两三根线去传递,要保证这个信号传输到终点的时序不变,由于几个信号的速度是一样的,若还想要保证时序一致,则需要使这几个线等长,差分信号是用过两根线上的差值来确定0与1的,由于两个信号线的距离很近,所有两根信号线上的信号抖动是几乎相同的,所以做差后的信号几乎不变;从顶层到底层的贯穿孔,其在内层也有电气链接属性,内层只要有线碰到他,那么那条线就与它相连;

2024-02-25 14:30:37 794 1

原创 freertos内核原理DAY4(空闲任务与阻塞延时)

目录4.空闲任务与阻塞延时4.1空闲任务的创建4.1.1定义空闲任务栈4.1.2获取空闲任务内存(main.c中实现)4.1.3创建空闲任务(task.c中实现)4.2实现阻塞延时4.2.1systick滴答时钟寄存器配置4.2.2 vTaskDelay()软件延时函数(task.c中实现)4.3仿真程序能理解这节的前提是看懂了前面的"任务定义及切换""链表"及"临界段"这三个内容;(这节内容请务必先下载后面提供的程序,对照着程序看,不然容易理不清)要知道使用freertos操作系统的目的是为了榨干cpu

2024-01-18 14:54:18 1084

原创 freertos内核原理 Day3(临界段的保护)

taskENTER_CRITICAL_FROM_ISR()中断级进入临界段函数,taskEXIT_CRITICAL_FROM_ISR中断级退出临界段函数,这两个函数是成对使用的,且在中断中使用(),若函数是内联函数,则编译器会自动的将函数的代码加载到以后会调用到函数的地方,若此时内联函数中的代码量很小,则效率会比调用函数时高(但当内联函数的代码量很大时,这会导致程序的代码量急剧增大,此时内联的效率反而更低,这时代码量大的函数用普通调用就可以了。3.返回中断进入临界段前的basepri寄存器配置;

2024-01-15 01:05:57 1259

原创 freertos内核原理 Day2(任务定义及切换)

main.c中实现main.c中实现头文件freertos.h中定义定义根节点数组pxReadyTasksLists,里面存放各个链表的根节点,如下图所示。

2024-01-07 20:14:38 2086

原创 freertos内核原理 Day1(链表)

头文件list.h中辅助排序值(xitemvalue);节点排序时确定当前节点处于链表的第几位指向下一节点指针(pxnext);指向上一节点指针(pxprevious);指向内核对象指针(pvowner);指向节点所在链表(pvcontainer);根节点代表的就是当前链表/* 辅助值,用于帮助节点做顺序排列 *//* 指向链表下一个节点 *//* 指向链表前一个节点 *//* 指向拥有该节点的内核对象,通常是TCB *//* 指向该节点所在的链表 */

2024-01-03 17:16:24 1188

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除