本帖最后由 quyifei 于 2013-9-11 15:23 编辑
攸米板的介绍请看 https://bbs.21ic.com/icview-560714-1-1.html
本人在访问www.micrium.com时发现ucos-iii已经发布了。跟ucos-ii做了些比较,发现还是有了不少的提升,例如任务数没有显示,不同的任务可以拥有相同的优先级,相同优先级的任务调度采用时间片轮转法。对一些内核对象,例如信号量,可以在运行过程中创建和删除,不用像ucos-ii那样必须在编译时分配好。内核对象数也没有限制。
既然已经有了,那就试试吧。按照移植ucos-ii的方法,花了一个多小时居然也调试成功了。当然我并不打算将来使用ucos-iii,因为ucos-ii已经完全够用了,ucos-iii显然适用于更加复杂的系统应用,本身占用的内存空间也较大,而且代码显得比较累赘。例如创建一个任务,就要这样的麻烦
OSTaskCreate((OS_TCB *)&AppTask1TCB,
(CPU_CHAR *)"App LED red flash",
(OS_TASK_PTR)task_LED_Flash,
(void *)(&arg),
(OS_PRIO )APP_CFG_TASK_TASK1_PRIO,
(CPU_STK *)&task1_stk[0],
(CPU_STK_SIZE)(APP_CFG_TASK_TASK1_STK_SIZE / 10),
(CPU_STK_SIZE)APP_CFG_TASK_TASK1_STK_SIZE,
(OS_MSG_QTY )0,
(OS_TICK )0,
(void *)0,
(OS_OPT )(OS_OPT_TASK_STK_CHK | OS_OPT_TASK_STK_CLR),
(OS_ERR *)&err);
延时函数的参数也从一个变成了三个
OSTimeDly((OS_TICK )led.interval,
(OS_OPT )OS_OPT_TIME_DLY,
(OS_ERR *)&err);
总之感觉比较的麻烦。将来我提供的攸米板的实例都是基于ucos-ii的。 这次ucos-iii的代码仅仅作为一个参考,大家有时间看看。
实现的功能和“攸米板学习五:ucos-ii”完全相同,请访问 https://bbs.21ic.com/icview-618923-1-1.html,移植的方法也类似,这里就不多说了。
关于源代码
1. 在IAR EWARM 6.40下编译通过,选用的调试端口是ST-LINK。
· 在目录EWARM,打开project.eww。
· 选择菜单project->rebulid all
· Download, 执行。
2. 工程文件架构请看:
http://blog.sina.com.cn/s/blog_507c8e750101eu4s.html
3. 源代码下载
http://yunpan.cn/QGQcyZqgzvKJT
|