首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

uCOS II 内核结构(2)

uCOS II 内核结构(2)

六:任务级的任务切换
    任务调度器决定哪个任务该运行了,然后由IS_TASK_SW()函数做任务切换。被挂起的任务的context(CPU中的寄存器的值被保存再堆栈中)。OS_TASK_SW()是一个宏调用。含有处理器的软中断指令。

七:给调度器上锁和解锁
    给调度器上锁,用OSSchedlock()函数实现,用于禁止任务调度,直到任务完成后调用OSSchedUnlock()函数为止。这两个函数的使用要非常谨慎。因为它会影响系统对任务的正常管理。

八:空闲任务
    在没有其它任务进入就绪态时。这个任务将运行。这个任务的优先级永远都是最低的。空闲任务不能被应用软件删除。

九:统计任务
    uCOS II中统计运行时间分任务,可以用作CPU使用率的计算。将OS_CFG.h中的OS_TASK_STAT_EN宏定义为1即可使能该任务。用这个函数可以得到应用程序中CPU占了多少时间。在调用OSStart()前的第一个任务中调用系统统计初始化函数OSSTatInit()。

十:uCOS II的中断
    中断服务函数要用汇编语言实现,但是如果使用的编译器支持在线汇编的话,可以把汇编语言直接放在C语言文件中。中断服务函数应该尽可能的短一点。

十一:时钟节拍
    时钟节拍可以是专门的定时器产生的,也可以是一个交流信号源。时钟节拍应该由应用程序的精度决定,时钟节拍越高,系统的额外负荷就越重。必须在OSStart()之后调用时钟节拍器。

十二:系统初始化和系统启动

十三:获得当前系统的版本号
可以使用OS_Version()函数获得当前使用的系统的版本号。该函数的返回值除100即是系统的版本号。
继承事业,薪火相传
返回列表