OS
文章平均质量分 82
.
Super.Bear
https://github.com/Paraniod1
展开
-
nstrFetchProhibited,stack overflow,Task watchdog got triggered解决办法
文章目录1.空指针产生 nstrFetchProhibited2.栈溢出问题3.看门狗问题总结一些是在ESP32上跑FreeRTOS上遇到的各种问题,坑实在是太多了遇到问题可以参考这个网站:API指南–严重错误1.空指针产生 nstrFetchProhibitedGuru Meditation Error: Core 0 panic’ed (InstrFetchProhibited). Exception was unhandled.Core 0 register dump:..原创 2021-11-23 19:06:49 · 1866 阅读 · 0 评论 -
ESP32之FreeRTOS--任务的创建和运行
文章目录前言一、创建任务和删除函数1.xTaskCreate()2.xTaskCreateStatic()3.xTaskCreateRestricted()4.vTaskDelete()二、任务函数和任务控制块TCB1.任务函数模板2.TCB三、延时函数1.vTaskDelay()2.vTaskDelayUntil()3.系统时钟节拍四、任务挂起和恢复函数1.vTaskSuspend()2.vTaskResume()3.xTaskResumeFromISR()总结前言参考文献:官方资料Free..原创 2021-11-23 22:27:54 · 10331 阅读 · 5 评论 -
UCOSIII--源码阅读(2)
1.任务的挂起与创建OS 的任务支持挂起和恢复的功能,挂起就相当于暂停,暂停后任务从就绪列表中移除,恢复即重新将任务插入就绪列表。一个任务挂起多少次就要被恢复多少次才能重新运行在这里插入代码片在任务实现挂起和恢复的时候,要根据任务的状态来操作,任务的状态不同,操作也不同,有关任务状态的宏定义在 os.h 中实现,总共有 9 种状态,TaskState :为了实现任务的挂起和恢复 TCB 中有任务的状态 TaskState 和任务挂起计数器 SusPendCtr 这两个成员OS_STATE原创 2021-08-27 12:42:33 · 184 阅读 · 0 评论 -
UCOSiii--源码阅读
我在阅读ucos源码过程遇到的一写小问题1.OSTaskDel()任务删除函数在任务函数中,调用次函数传入空指针,将会删除本任务(一直以为要传入任务控制块才行,原来还可以传入空指针)2.钩子函数以空闲任务的钩子函数来说,在OSIdleTaskHook() (在os_cpu_c.c)中调用 最终调用的是函数App_OS_IdleTaskHook(),也就是说如果我们想要在空闲任务的钩子函数中做其他处理就需要将代码写在App_OS_IdleTaskHook()如下:空闲任务钩子函数相应的处理原创 2021-08-22 22:05:54 · 1209 阅读 · 0 评论 -
UCOSiii(3)--任务的同步与同信
1.信号量在UCOSIII中有可能会有多个任务会访问共享资源,因此信号量最早用来控制任务存取共享资源,现在信号量也被用来实现任务间的同步以及任务和ISR间同步。在可剥夺的内核中,当任务独占式使用共享资源的时候,会出现低优先级的任务先于高优先级任务运行的现象,这个现象被称为优先级反转,为了解决优先级反转这个问题,UCOSIII引入了互斥信号量这个概念。同时,在ucosiii中每个任务都有自己的内嵌信号量。(1)信号量信号量像是一种上锁机制,代码必须获得对应的钥匙才能继续执行,一旦获得了钥匙,也就意味着该原创 2021-08-21 14:54:13 · 1197 阅读 · 0 评论 -
UCOSiii(4)--C语言编程规约
1.头文件一个功能模块对应一个头文件所有的头文件包含于 "includes.h"中常用库文件:包含的内容os_cfg_app.cos_core.cos-dbg.cos_flag.c 事件标志组管理os_int.c 中断服务管理任务 os_mem.c 内存管理os_msg.cos_mutex.c 互斥信号量os_pend_multi.c 支持等待多个内核对原创 2021-08-21 20:53:01 · 394 阅读 · 0 评论 -
UCOSiii(2)--任务与中断,定时器
(1)系统内部任务1.空闲任务 OS_IdleTask()空闲任务必须创建,是uC/OS-III创建的第一个任务,但是不需要我们手动创建,在调用OS_Init()初始化时就会被创建,优先级总是OS_CFG_PRIO_MAX-1(最低优先级)真正的无限循环,即不会调用任务会使其进入等待状态的服务函数2.时钟节拍任务 OS_TickTask()时钟节拍任务也是必须创建的,同样不需要我们手工创建,该任务的优先级应当只比用户的系统中最重要的任务的优先级略低一点,f4中设置为1时钟节拍任务的作用:原创 2021-08-20 23:50:36 · 2293 阅读 · 1 评论 -
UCOSIII(1)--专业术语的介绍
1.UCOS简单介绍(1)前后台系统:后台程序是一个死循环,也称为“任务级”,前台程序则是中断服务程序,也称为“中断级”;一般的低成本应用多采用这种程序结构。(2)实时内核系统:仅为一段软件代码,它把系统功能划分为多个任务,每个任务只完成特定的一个功能,通常都为死循环;CPU在任意时刻只能执行一个任务,但每个任务都认为自己在独自使用整个CPU,由于处理器速度非常快,任务切换的速度也非常快,所以看起来几乎多个任务同时被执行;对多任务的管理就是实时内核所要做的工作,实现CPU资源的最大化利用。(3)uC原创 2021-08-19 10:55:49 · 355 阅读 · 0 评论