![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
FreeRTOS
文章平均质量分 76
Edward_weiwei
这个作者很懒,什么都没留下…
展开
-
FreeRTOS的源代码个人分析(基于KEIL下STM32F103的Demo) 四
开始任务的实现分析:xPortStartScheduler()函数FreeRTOS里开始任务是在main里调用vTaskStartScheduler函数来开始任务的,在调用这个函数后,系统会先自动的创建一个优先级最低(也就是0优先级)的空闲任务IdleTask,这个任务的作用是在所有用户的任务都被挂起,也就是当前没有用户所建立的任务在运行时,系统就会运行这个IdleTask。(但如果有用户任务的优先原创 2017-02-11 19:53:50 · 3008 阅读 · 0 评论 -
FreeRTOS的源代码个人分析(基于KEIL下STM32F103的Demo) 三
任务启动与任务切换CM3内核任务切换原理FreeRTOS进行任务切换的过程任务启动与任务切换CM3内核任务切换原理无论是FreeRTOS还是ucos,其任务切换的实现都是用汇编来写的,在STM32上都是用的PendSV这个系统异常来进行任务切换的,参考权威手册121页有关SVC与PendSV的介绍。通过置位NVIC的ICSR中断控制及状态寄存器(131页)地址0xE000_ED04来悬起SVC及原创 2017-02-05 22:08:59 · 10474 阅读 · 0 评论 -
FreeRTOS的源代码个人分析(基于KEIL下STM32F103的Demo) 二
STM32F10x.s 启动文件分析FreeRTOS的源代码里,采用了自编写的启动文件,而不是用的官方的启动文件(也就是以前创建工程时必须要添加的一个.s汇编文件,文件名格式大概是startup_stm32f10x_hd.s),但其内容基本只是对这个启动文件进行简单的编辑而已,主要是自定义了中断处理函数(比如TIM2_Handle())的名称而已。关于这个文件的分析可以先学习Cortex-M3权威手原创 2017-02-04 16:17:18 · 3441 阅读 · 0 评论 -
FreeRTOS的源代码个人分析(基于KEIL下STM32F103的Demo) 一
博主以前研究过ucos ii的源代码,不过没怎么用过,没什么机会用。最近闲着就利用时间研究一下FreeRTOS的源代码,把学习的过程在博客里记录下来,方便以后查看。原创 2017-02-04 12:38:33 · 6317 阅读 · 0 评论 -
FreeRTOS的源代码个人分析(基于KEIL下STM32F103的Demo) 五
list.c与list.h的源代码分析这一篇之所以讲list的内容,是为了后面分析其他代码用的,list是FreeRTOS的一种数据结构原创 2017-02-13 22:48:20 · 1552 阅读 · 0 评论 -
FreeRTOS的源代码个人分析(基于KEIL下STM32F103的Demo) 六
list.c 代码分析在list.c里一共有5个函数的定义,分别是vListInitialise,用来初始化列表list;vListInitialiseItem,用来初始化一个列表中的项目Item;uxListRemove,用来移除一个list里的指定Item;vListInsert,用来往list里插入一个Item,按照其xItemValue值来排序进入插入;vListInsertEnd,则原创 2017-03-01 23:52:06 · 1348 阅读 · 0 评论 -
FreeRTOS的源代码个人分析(基于KEIL下STM32F103的Demo) 七
FreeRTOS的堆栈管理系统 heap_2.c的分析FreeRTOS的源代码里有5种堆栈管理系统,分别命名heap1.c,heap2.c到heap5.c 均放在FreeRTOS\Source\portable\MemMang 这个文件夹里面,对于M3内核的单片机而言,其Demo默认采用的是heap2.c这个系统,这里分析一下这个管理系统的源代码。首先,对于ARM内核,其汇编编程有一套APPCS规则原创 2017-03-19 00:35:46 · 1079 阅读 · 0 评论