[uCOS/RTOS] 不得不发帖求助了-关于51移植UCOSII的问题

[复制链接]
2179|12
 楼主| 国防大学 发表于 2013-12-31 10:13 | 显示全部楼层 |阅读模式
平台:STC12C5A60S2 外部晶振:12MHZ
开发环境:KEIL V900
UCOSII版本:V2.91
照搬杨屹大侠的移植源代码
针对我板子我做了如下修改:
  1. #define  OS_CRITICAL_METHOD   3u

  2. #if OS_CRITICAL_METHOD == 3u
  3.         #define  OS_ENTER_CRITICAL()     {cpu_sr = IE&0x80;IE&=0x7F;}
  4.         #define  OS_EXIT_CRITICAL()        {IE |= cpu_sr;}
  5. #endif


  6. void InitTimer0(void) reentrant
  7. {
  8.     TMOD=TMOD&0xF0;
  9.     TMOD=TMOD|0x01;    //
  10.     TH0=0xB1;    //
  11.     TL0=0xE0;    // OS_TICKS_PER_SEC=50 即20MS溢出一次
  12.     ET0=1;       //
  13.     TR0=1;            
  14. }
      然后就是创建了一个闪灯任务
  1. void Task_LED(void *p_arg)reentrant
  2. {
  3.        p_arg = p_arg;

  4.        for(;;)
  5.       {
  6.            LeftFrontLight = 0;
  7.            OSTimeDlyHMSM(0, 0,0,200);
  8.            LeftFrontLight = 1;       
  9.            OSTimeDlyHMSM(0, 0,0,200);
  10.       }
  11. }
可是程序运行时,看不到闪灯效果,仿真用模拟逻辑分析仪发现LeftFrontLight 定义的端口高低变化几次后就不变化了,然后程序就死在OS_TaskIdle()空闲任务中
求求各位大侠帮帮忙!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 国防大学 发表于 2013-12-31 18:08 | 显示全部楼层
各位大侠帮帮忙啊……
 楼主| 国防大学 发表于 2014-1-2 20:17 | 显示全部楼层
最新进展!我发现当任务栈大于132时用逻辑分析仪看到端口变化正常且连续,也就是说程序运行正常,但是我烧到单片机上时还是看不到灯的闪烁,不用UCOSII时灯闪烁正常。这到底是为什么???求大神解答
asbsp23 发表于 2014-1-4 09:12 | 显示全部楼层
你确定你是看不到灯闪烁,是灯不亮还是一直亮?有没有可能是闪的太快?移植的时候我依稀记得有个地方是加断点,防止跑死的。。。。也可能是谬论。见笑啊。
dong00520 发表于 2014-1-4 09:35 | 显示全部楼层
顶起!
airwill 发表于 2014-1-6 18:31 | 显示全部楼层
51 上 UcOS, 总感觉资源太紧张.
如果真玩, 也可以考虑哪个完全免费的 small RTOS.
xuejinlong12 发表于 2014-1-8 13:38 | 显示全部楼层
asbsp23 发表于 2014-1-4 09:12
你确定你是看不到灯闪烁,是灯不亮还是一直亮?有没有可能是闪的太快?移植的时候我依稀记得有个地方是加断 ...

恩 我也这么感觉
dufanbao 发表于 2014-1-12 15:52 | 显示全部楼层
本帖最后由 dufanbao 于 2014-1-12 16:12 编辑

我看你的51启动代码中,可重入堆栈的栈顶指向了0xffffh+1,那是64k的外部扩展ram,这个单片机就有1k扩展ram,应该改为0x03ff +1
ycdhonker 发表于 2014-2-18 11:40 | 显示全部楼层
51上跑UCOS 好强啊 新手帮顶!
 楼主| 国防大学 发表于 2014-3-14 17:33 | 显示全部楼层
前段时间有事,没能及时回复,见谅。
另外谢谢楼上几位达人无私的帮助,特别谢谢8楼,事实上正如8楼dufanbao所说的,将可重入栈顶改为OX3FF+1就行了,程序运行正常
再次感谢8楼以及楼上几位
ballack_linux 发表于 2014-3-14 20:12 | 显示全部楼层
你不用外扩RAM? 我移植过一次,RAM完全不够用
 楼主| 国防大学 发表于 2014-3-16 15:11 | 显示全部楼层
ballack_linux 发表于 2014-3-14 20:12
你不用外扩RAM? 我移植过一次,RAM完全不够用

我用的是STC,这款单片机不能外扩RAM,但是我看了一下,如果程序不是太大的话,可以,因为操作系统好像占了大概0.5K RAM。RAM 2K的话还行,也没想着在51上跑UCOS能做多大事,纯属玩,呵呵
ballack_linux 发表于 2014-3-17 10:16 | 显示全部楼层
国防大学 发表于 2014-3-16 15:11
我用的是STC,这款单片机不能外扩RAM,但是我看了一下,如果程序不是太大的话,可以,因为操作系统好像占 ...

才0。5K ? 这么小,,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

54

帖子

1

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