搜索
bottom↓
回复: 3

第六天 UC/OS的学习

[复制链接]

出0入0汤圆

发表于 2012-3-7 19:35:12 | 显示全部楼层 |阅读模式
第六天
1.        UC/OS-II的初始化
1.1        在调用其他服务之前,要求用户首先调用系统初始化函数OSInit()。【其作用是初始化UC/OS-II的所有的变量和数据结构】
1.2        两个任务的任务控制块OS_TCB是用双向链表链接在一起的。OSTCBList指向这个链表的起始处。
1.3        UC/OS-II还初始化了4个空数据结构缓冲区。每个缓冲区都是单向链表。允许UC/OS-II从缓冲区迅速得到或释放一个其中的元素。
1.4        空缓冲区的空任务控制块的数目取决于最多任务数OS_MAX_TASKS。
2.        UC/OS-II的启动
2.1        在启动UC/OS –II 之前,用户至少要建立一个应用任务。
2.2        多任务的启动是用户通过调用OSStart()实现的,这个函数永远不会返回。
void OSStart (void)
{
    INT8U y;
    INT8U x;
    if (OSRunning == FALSE)
{
        y             = OSUnMapTbl[OSRdyGrp];      
        x             = OSUnMapTbl[OSRdyTbl[y]];
        OSPrioHighRdy = (INT8U)((y << 3) + x);
        OSPrioCur     = OSPrioHighRdy;
        OSTCBHighRdy  = OSTCBPrioTbl[OSPrioHighRdy];
        OSTCBCur      = OSTCBHighRdy;
        OSStartHighRdy();                           
    }
}
2.3        OSStart()函数程序如上, 找出用户建立的优先级最高任务的控制块。任何调用OSStartHighRdy()函数(高优先级就绪任务启动函数)这个函数的作用是:将任务栈中保存的值弹回到CPU寄存器中,然后执行一条中断返回指令。中断返回指令强制执行该任务代码。
3.        应用程序调用OSVersion()可以得到当前UC/OS-II的版本号*100。

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2012-3-7 20:21:51 | 显示全部楼层
学习学习!

出0入0汤圆

发表于 2012-4-7 15:01:33 | 显示全部楼层
这就是我们大家学习的榜样,向楼主学习!

出0入0汤圆

发表于 2012-4-10 22:24:18 | 显示全部楼层
支持,强烈支持
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 11:22

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表