UCOSIII系统
文章平均质量分 81
南国枫火
这个作者很懒,什么都没留下…
展开
-
UCOSIII系统移植到STM32F7中
1.准备好UCOSIII的源码,可从官网下载。2.在工程里创建文件夹UCOSIII等文件夹,并添加文件。3.在MDK中创建路径并添加文件。 4.修改相关文件a.bsp.c和bsp.h:这两个为系统外设的初始化文件,其实可以不用。b.os_cpu_a.asm汇编文件:函数类型 PUBLIC改为 EXPORTPUBLIC OS_CPU_FP_Reg...原创 2018-09-29 18:49:30 · 2957 阅读 · 2 评论 -
ucosiii学习(1)——系统简介和初始化
ucosiii属于可剥夺型内核,CPU总是运行多个任务中优先级最高的那个任务。当CPU正运行某个低优先级任务时,若有高优先级任务准备就绪,该高级别任务会将CPU使用权占为己有。1.系统初始化及任务概念·从存储上讲,一个任务包括任务控制块(记录任务的各个属性),任务堆栈(保存任务的工作环境)和任务程序代码(执行函数)。任务状态包括:睡眠(没有任务控制块),就绪(有任务控制块但没有CPU控...原创 2018-10-11 12:23:19 · 579 阅读 · 0 评论 -
ucosiii学习(2)——系统初始化时所创建的任务
1.空闲任务OS_IdleTaskInit(p_err); os_core.c中系统在初始化过程中,会先创建一个空闲任务,在创建空闲任务时先初始化任务控制块和链表,然后进行优先级和就绪链表插入操作(OS_PrioInsert和OS_RdyListInsertTail),同时将任务计数加一(OSTaskQty++; ),最后调用OSSched()函数。这个任务几乎不做什么事情,只...原创 2018-10-11 17:59:46 · 1427 阅读 · 0 评论 -
ucosiii学习(3)——任务调度和时间片轮转
1.任务级调度器 OSSched()系统初始化后会自动创建几个任务,可以看到所调用的创建任务函数OSTaskCreate的最后都会调用OSSched()函数(任务级调度器)。Description: This function is called by other uC/OS-III services to determine whether a new, high priority ta...原创 2018-10-11 18:54:07 · 2724 阅读 · 0 评论 -
ucosiii学习(4)——中断和时钟
1.中断系统收到中断请求后,若CPU处于中断允许状态,则中止当前任务,转去运行中断子程序。中断子程序运行结束后,返回被中止的任务继续运行或者转向优先级更高的任务。UCOSIII支持中断嵌套,即高优先级的中断可以打断低优先级的中断,在UCOSIII中使用OSIntNestingCtr来记录中断嵌套次数,最大支持250级的中断嵌套,每进入一次中断服务函数OSIntNestingCtr就会加1,当退...原创 2018-10-11 20:21:48 · 663 阅读 · 0 评论