- 博客(6)
- 收藏
- 关注
原创 FreeRtos详解学习日记6:FreeRTOS调度器开启和任务相关函数详解
是 在 SVC 中 断 服 务 函 数 中 完 成 的 , SVC 中 断 服 务 函 数 应 该 为 SVC_Handler() , 但 是。和 bit23)用于控制 FPU。(1)、获取 pxCurrentTCB 指针的存储地址,pxCurrentTCB 是一个指向 TCB_t 的指针,这个。(3)、R1 中的值与(0xf<<20)进行按位或运算,也就是 R1=R1|0X00F00000。定时器服务任务的具体创建过程是在函数 xTimerCreateTimerTask()中完成的,这个函数。
2025-02-25 23:29:13
934
原创 FreeRtos详解学习日记5:FreeRTOS中断配置
4.1.4 小节讲过了,PendSV 和 SysTcik 的中断优先级设置是操作 0xE000_ED20 地址的,这样一次写入的是个 32 位的数据, SysTick 和 PendSV 的优先级寄存器分别对应这个 32。portNVIC_SYSPRI2_REG 写入优先级数据,portNVIC_SYSPRI2_REG 是个宏,在文件 port.c 中。可 以 看 出 , portNVIC_PENDSV_PRI 和 portNVIC_SYSTICK_PRI 都 是 使 用 了 宏。不过这样看起来不直观。
2025-02-25 21:12:22
836
原创 FreeRtos详解学习日记4:FreeRTOS 任务相关 API 函数
创建任务的话那么函数的返回值就是此任务的任务句柄。也可以通过函数 xTaskGetHandle()来根据任务名字来获取某个任务的任务句柄。删除一个用函数 xTaskCreate()或者 xTaskCreateStatic()创建的任务,被删除了的任务不再存。pcName:任务名字,一般用于追踪和调试,任务名字长度不能超过configMAX_TASK_NAME_LEN。(2)、定义任务控制块,注意任务控制块类型要用 StaticTask_t,而不是 TCB_t 或 tskTCB!
2025-02-24 23:41:48
576
原创 FreeRtos详解学习日记3:FreeRTOS任务基础知识
* 不 能 从 任 务 函 数 中 返 回 或 者 退 出 , 从 任 务 函 数 中 返 回 或 退 出 的 话 就 会 调 用configASSERT(),前提是你定义了 configASSERT()。#if( configNUM_THREAD_LOCAL_STORAGE_POINTERS > 0 ) //与本地存储有关。任务堆栈的数据类型为 StackType_t,StackType_t 本质上是 uint32_t,在 portmacro.h 中有定。//任务基础优先级,优先级反转的时候用到。
2025-02-24 00:28:19
818
原创 FreeRtos详解学习日记2:FreeRTOSConfig.h配置文件详解
此 宏 设 置 为 1 的 话 函 数 configUSE_APPLICATION_TASK_TAGF() 和xTaskCallApplicationTaskHook()就会被编译。configUSE_16_BIT_TICKS 为 1 的时候 TickType_t 就是 16 位的,当 configUSE_16_BIT_TICKS。这 些 内 存 就 是 从 堆。在 heap_1.c、heap_2.c、heap_3.c、heap_4.c 和 heap_5.c 中有定义,具体在哪个文件取决于用户。
2025-02-23 23:19:51
621
原创 FreeRtos详解学习日记
简单的小系统通常是前后台系统,这样的程序包括一个死循环和若干个中断服务程序:应用程序是一个无线循环,循环中调用API函数完成所需的操作,这个大循环就叫做后台系统。本套视频教程讲的是RTOS中的经典代表作:FreeRTos,而Free0s的内核是可剥夺型的,所以我们简单提一下什么是可剥夺型内核,关于FreeRTos内核的详细内容我们会在后续的视频中专门讲解的。在实时操作系统中,我们可以把要实现的功能划分为多个任务,每个任务负责实现其中的一部分,每个任务都是一个简单的程序,通常是一个死循环。
2025-02-23 22:32:21
340
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人