[ZLG-MCU] 呼叫hotpower,zlg.C++和ucos

[复制链接]
2847|6
 楼主| xingliu200 发表于 2008-3-13 16:15 | 显示全部楼层 |阅读模式
hotpower,zlg大侠帮忙啊。<br />在IAR下C++程序,想移植UCOS。可是总是不成功。<br />main函数可以运行,但是OSSTART之后就死循环了。没有成功运行taskstart.<br />大侠们能否帮忙做个例子。
 楼主| xingliu200 发表于 2008-3-13 16:33 | 显示全部楼层

自己搞定了。

zlg真该搞个例子。花了我半天。<br />原来是OSpendSV&nbsp;这个中断向量没有放进去。<br />实在还是太不熟悉了。哈哈。<br />另:IAR调试真麻烦,没有VC++调试程序方便。差得太远。<br />
zlgarm 发表于 2008-3-14 08:37 | 显示全部楼层

zlg已有成熟的UCOS模板

&nbsp;&nbsp;&nbsp;我们已有成熟的UCOS模板,可在以下地址下载&nbsp;http://www.zlgmcu.com/download/downs.asp?ID=2578&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;分别是KEIL和IAR版本,可不必花时间去移植。<br /><br />&nbsp;&nbsp;&nbsp;(zlgarm_zsg)<br />
 楼主| xingliu200 发表于 2008-3-15 15:16 | 显示全部楼层

我是说在C++下。

  
 楼主| xingliu200 发表于 2008-3-18 17:04 | 显示全部楼层

还是有问题

有时候编译好可以运行的程序,再注释掉一行或加一个函数,UCOS又起动不了了。OSpendSV这个中断似乎就不能产生了。
AIRWILL 发表于 2008-3-18 21:43 | 显示全部楼层

呼叫转接中, 请稍候...

  
 楼主| xingliu200 发表于 2008-3-19 16:59 | 显示全部楼层

终于又前进了一步

哈哈。原来是用了hotpower的__low_level_init()里面return&nbsp;0<br />UCOS里面的__entersum未初始化,开始就是1.osInit()的时候调用了<br />enter_critical后,basepri值改为32,exit_critical不能改回来到0。这样中断始终打开不了。<br />这个调试器,看着执行了&nbsp;MSREQ&nbsp;BASEPRI&nbsp;R1(0),但是BASEPRI中的值始终在32.<br />简直昏死。我把return&nbsp;0改为return&nbsp;1之后就好了。<br />怪不得注释一行或添点代码就不行。原来__entersum在随机位置未初始化。<br />搞了我几天。实在是书也还没看明白、调试器也用不来。<br />这下运行的总算还可以。<br /><br />这下想来有点不明白,为何这么重要的参数要靠编译器去初始化,而不是显式的初始化。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

28

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部