ucOS||学习之基本概念

刚刚开始打算学习下usOS,看了几集极客学院的关于ucOS的基本概念,特此记录一下

uc/os-||  是专门为计算机的嵌入式应用设计的操作系统,绝大部分是用C语言编写。CPU硬件相关部分是用汇编语言编写。具有很强的可移植性。

组成::系统核心(包含任务调度),任务管理,时间管理,多任务同步和通信,内存管理,CPU移植等部分。

核心(OSCore.c):处理核心,包括初始化,启动,中断管理,时钟中断,任务调度及事件处理等用于系统基本维持的函数。

任务管理(OSTask.c):包括与任务操作密切相关的函数,包括任务建立,删除,挂起及恢复,uc/os以任务为基本单位进行调度。

时钟部分(OSTime.c):
ucos中以最小的时钟单位是timetick(时钟节拍),其中包含时间延迟,时钟设置及时钟恢复等与时钟相关的函数。

多任务同步与通信():
包含事件管理函数,涉及Mbox,msgQ(消息队列),Sem,Mutex,Flag等。

内存管理部分():主要用于构建私有的内存分区管理机制,其中包含创建memPart,申请/释放menPart,获取分区信息等函数。

CPU接口部分:ucos 针对特定CPU的移植部分,由于涉及到SP等系统指针,通常用汇编编写,包括任务切换,中断处理等内容。

OSInit()是一个重要的函数,是OS运行的第一个函数。完成各初始变量的初始化,建立任务空闲键表OSTCBFreeList,建立事件空闲键表OSEventFreeList.创建一个空闲任务OS_TaskIdle等。

void OSTimeSet(INT32U ticks):无论时钟节拍何时发生,ucos都会将一个32位的计数器加1.这个计数器用户调用OSStart()初始化多任务的时候从0开始计数。

void OSStart(void)函数是ucos任务调度的引导函数,它调用更底层的函数OSStartHighRdy来完成最初的任务切换。

ucos主任务创建:
任务就是一个线程。
任务组成:任务控制块——保存任务的属性。
      任务堆栈——保存了任务的工作环境。

OSTaskCreate():建立任务,可在多任务调度开始之前建立,也可以在其他任务的执行过程中被建立。在开始多任务调度之前,用户必须建立至少一个任务。任务不能由中断服务程序建立。

ucos的任务栈:
    栈的作用:
栈实际就是一个内存空间。函数调用需要用栈来保存现场。
    任务栈:OSTaskStkInit——初始化堆栈

(1)任务的切换就是一个任务的信息保存和另一个任务的信息回复。
(2)函数可重入指,一个函数可被多个任务调用


心得:玩了一年多的ARM单片机,总是在跑裸机,于是想学学系统,由此RealTimeOS的ucOS就成了我学习系统的第一站,有点难其实,慢慢开始理解。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值