自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RTOS列表

用来跟踪RTOS中的任务,对就绪挂起阻塞列表进行排序存储。列表插入insert插入依据value值大小。insertend插入依据列表当前指向列表项。列表插入需要两个参数,列表参数,列表项参数。数据结构:由结构体构成的双向链表。2.列表遍历列表项指针。1.列表项用于排序的值。4.列表项属于哪个任务。1.列表中列表项个数。

2024-05-15 12:04:20 95 1

原创 freertos低功耗模式

实现原理:降低CPU时钟频率,改变滴答定时器时钟周期,软件获取下一次阻塞事件,赋值给滴答定时器,保证滴答定时器不会过早打断休眠。代码里还可以设置,休眠时间大于多少进行休眠,如果休眠时间小了效果可能还不如不休眠。freertos采用睡眠模式,可以通过中断及事件唤醒。CPU在未执行指令时,如果开启时钟就会有能量消耗。后面两种直接关闭振荡器。

2024-05-12 10:41:11 67

原创 freertos临界区以及任务调度器的打开和关闭

uxSchedulerSuspended变量控制pendsv对应中断控制位,通过该变量控制pendsv不进行中断,转而实现挂起调度器。总结:进入临界区关中断,关闭调度器,只是对pendsv的中断控制位进行控制,对滴答记时器的影响,通过恢复的时候补偿,不影响别的中断。上面四个挂起均是操作basepri寄存器。

2024-05-09 16:52:02 153

原创 freertos函数介绍任务挂起恢复阻塞

当任务处于等待或者依赖别的事件时,系统会将该任务置于阻塞状态,如vTaskDelay()时,再就是任务通过阻塞来等待队列、信号量、事件组、通知或信号量 事件,阻塞一般会有阻塞时间。将任务处于暂停状态,若不进行恢复,将一直无法进入运行状态。pxTaskToSuspend:挂起任务的任务句柄。1.参数需要操作的任务的任务句柄。2.挂起状态切换到就绪状态。2.将任务置于阻塞状态。

2024-05-09 13:17:43 106

原创 freertos函数介绍任务创建

3.任务栈的大小,单位为字,32位处理器,一个字为四个字节。4.pvParameters 传进任务的参数。4.pvParameters 传进任务的参数。4.任务句柄可以更改任务优先级以及删除任务。3.usStackDepth任务栈的大小。1.pvTaskCode任务函数的地址。1.pvTaskCode任务函数的地址。5.uxPriority任务优先级。1.传进任务的参数为void。1.传进任务的参数为void。2.pcName任务的别名。2.pcName任务的别名。2.返回值为创建的任务句柄。

2024-05-09 12:14:56 199

原创 freertos任务调度相关中断

PendSV:PendSV 异常用于任务切换。为了保证操作系统的实时性,除了使用 Systick 的时间片调度,还得加入 PendSV 异常加入。Systick:相同优先级的任务,每隔一个 Systick,运行过的任务被自动排放至该优先级链表的尾部(Freertos任务调度PendSV,Systick,SVC。SVC:FreeRTOS 中 SVC 只在初始时使用了一次。

2024-04-26 23:32:22 206 2

原创 freertos中用到的ARM寄存器

ARM寄存器31个通用寄存器6个状态寄存器通用寄存器:状态寄存器内容来源。

2024-04-26 20:27:47 193 1

原创 stm32系统滴答寄存器

1.滴答定时器有对应中断SysTick_Handler。控制状态寄存器CTRL。重装载寄存器LOAD。当前数值寄存器VAL。

2024-04-26 17:57:19 118 1

原创 freertos临界区

1.临界区,就是在执行的时候,不希望其他程序打断,临界区并不是完全避免打断,临界能力取决于控制中断的寄存器值的配置。2.其他程序:中断或者任务,freertos任务也是通过低优先级中断实现。封装好的,低优先级低于5的可屏蔽寄存器。clear清除屏蔽寄存器结合下面的看。自己设置屏蔽优先级范围。

2024-04-24 22:02:55 229

原创 freertos删除任务

2.如果其他任务中删除需要删除的任务,需要使用被删除句柄的指针,删除后不会对该指针赋值为NULL,所以为了防止重复删除造成程序跑飞,可以先判断是否为NULL,条件成立执行删除,然后赋值为NULL。1.如果想删除自己,那么删除的参数需要是NULL,创建的时候可以使用NULL,或者先将句柄赋值为NULL。2.通过创建任务时使用TaskHandle_t,其他任务使用handle实现。1.可以在任务内通过vTaskDelete( NULL );

2024-04-24 20:43:12 178

原创 freertos基础知识

freertos基础知识。

2024-04-23 22:42:37 110

原创 初识freertos

1.裸机开发轮询代码,只能一个执行完才能执行下一个,断断续续,而RTOS针对多个任务可以实现共同执行。2.裸机开发,针对高优先级中断,哪怕里面有等待,也要执行完才能执行低优先级事情,浪费CPU资源。总结:避免任务多时,出现断断续续的效果。总结:避免空闲等待,提高CPU工作效率。

2024-04-16 23:10:18 111

原创 STM32F407中断

位置:SCB挂载在SCS上寄存器:1.SCB->AIRCR:配置优先级分组总结:设置所有中断,抢占优先级位数以及响应优先级位数位置:NVIC挂载在SCS上寄存器:1.NVIC->ISER[8]:中断使能设置寄存器,每位代表中断2.NVIC->ICER[8]:中断清除使能寄存器3.NVIC->ISPR[8]:中断挂起设置寄存器4.NVIC->ICPR[8]:中断清除挂起寄存器5.NVIC->IABR[8]:中断激活状态位寄存器。

2024-04-14 10:15:25 802

原创 STM32F407系统时钟

1.四个时钟源,低速高速,内部外部,两两组合总共四个2.LSI内部32kHz,HSI内部16MHz,LSE外部32.768kHz,HSE外部4-26MHz3.外部时钟IN引脚输入波形,OUT引脚高阻态4.四个时钟源本身都可以通过寄存器控制打开或关闭1.RCC_CR时钟控制寄存器:HSI,HSE,PLL,PLLI2S使能以及是否ready,高速时钟校准微调(源的开关)2.RCC_PLLCFGR为PLL配置:选择使用HSI还是HSE作为时钟源,以及P,N,M,Q(源的选择及控制)

2024-04-08 14:22:04 1264

原创 STM32F407gpio

输入模式1.四种输入模式,模拟输入;上拉输入;下拉输入;浮空输入2.模拟信号输入包含模拟输入,剩下三种输入方式均为数字输入3.三种数字信号输入区别为,I/O口悬空状态下,输入端电平为高或低或不确定4.输入为数字信号原理,芯片内部集成有施密特触发器,当外部输入高于阈值为逻辑1,低于阈值为逻辑0输出模式1.四种模式,开漏输出,推挽输出,复用开漏输出,复用推挽输出2.推挽输出,P-mos和N-mos只能有一个导通,另外一个截止,对应高低电平。

2024-04-04 20:36:52 1133

原创 stm32新工程创建

MD5不包含具体芯片的文件,只是包含芯片的一些内核信息,所以所用到的程序应该放置在本地文件夹下。

2024-04-03 15:48:24 295 2

原创 编译原理学习

了解编译原理机制,知道程序运行流程,各类数据编译器如何处理。

2024-04-03 14:46:58 132

空空如也

空空如也

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

TA关注的人

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