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

LPC21XX移植UCOS-II小结 02

LPC21XX移植UCOS-II小结 02

4)OS_ENTER_CRITICAL宏
    很多人都以为它是个函数,其实不然,仔细分析一下OS_CPU.H文件,它和下面马上要谈到的
    OS_EXIT_CRITICAL都是宏。他们都是涉及特定 CPU的实现。一般都被替换为一条或者几条
    嵌入式汇编代码。由于系统希望向上层程序员隐藏内部实现,故而一般都宣称执行此条指
    令后系统进入临界区。其实, 它就是关个中断而已。这样,只要任务不主动放弃CPU使用权,
    别的任务就没有占用CPU的机会了,相对这个任务而言,它就是独占了。所以说进入临界区了。
    这个宏能少用还是少用,因为它会破坏系统的一些服务,尤其是时间服务。并使系统对外界响
    应性能降低。
    5)OS_EXIT_CRITICAL宏
    这个是和上面介绍的宏配套使用另一个宏,它在系统手册里的说明是退出临界区。其实它就
    是重新开中断。需要注意的是,它必须和上面的宏成对出现,否则会带来意想不到的后果。
    最坏的情况下,系统会崩溃。我们推荐程序员们尽量少使用这两个宏调用,因为他们的确会
    破坏系统的多任务性能。
返回列表