打印
[uCOS/RTOS]

不得不发帖求助了-关于51移植UCOSII的问题

[复制链接]
1564|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
平台:STC12C5A60S2 外部晶振:12MHZ
开发环境:KEIL V900
UCOSII版本:V2.91
照搬杨屹大侠的移植源代码
针对我板子我做了如下修改:
#define  OS_CRITICAL_METHOD   3u

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


void InitTimer0(void) reentrant
{
    TMOD=TMOD&0xF0;
    TMOD=TMOD|0x01;    //
    TH0=0xB1;    //
    TL0=0xE0;    // OS_TICKS_PER_SEC=50 即20MS溢出一次
    ET0=1;       //
    TR0=1;            
}
      然后就是创建了一个闪灯任务
void Task_LED(void *p_arg)reentrant
{
       p_arg = p_arg;

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

相关帖子

沙发
国防大学|  楼主 | 2013-12-31 18:08 | 只看该作者
各位大侠帮帮忙啊……

使用特权

评论回复
板凳
国防大学|  楼主 | 2014-1-2 20:17 | 只看该作者
最新进展!我发现当任务栈大于132时用逻辑分析仪看到端口变化正常且连续,也就是说程序运行正常,但是我烧到单片机上时还是看不到灯的闪烁,不用UCOSII时灯闪烁正常。这到底是为什么???求大神解答

使用特权

评论回复
地板
asbsp23| | 2014-1-4 09:12 | 只看该作者
你确定你是看不到灯闪烁,是灯不亮还是一直亮?有没有可能是闪的太快?移植的时候我依稀记得有个地方是加断点,防止跑死的。。。。也可能是谬论。见笑啊。

使用特权

评论回复
5
dong00520| | 2014-1-4 09:35 | 只看该作者
顶起!

使用特权

评论回复
6
airwill| | 2014-1-6 18:31 | 只看该作者
51 上 UcOS, 总感觉资源太紧张.
如果真玩, 也可以考虑哪个完全免费的 small RTOS.

使用特权

评论回复
7
xuejinlong12| | 2014-1-8 13:38 | 只看该作者
asbsp23 发表于 2014-1-4 09:12
你确定你是看不到灯闪烁,是灯不亮还是一直亮?有没有可能是闪的太快?移植的时候我依稀记得有个地方是加断 ...

恩 我也这么感觉

使用特权

评论回复
8
dufanbao| | 2014-1-12 15:52 | 只看该作者
本帖最后由 dufanbao 于 2014-1-12 16:12 编辑

我看你的51启动代码中,可重入堆栈的栈顶指向了0xffffh+1,那是64k的外部扩展ram,这个单片机就有1k扩展ram,应该改为0x03ff +1

使用特权

评论回复
9
ycdhonker| | 2014-2-18 11:40 | 只看该作者
51上跑UCOS 好强啊 新手帮顶!

使用特权

评论回复
10
国防大学|  楼主 | 2014-3-14 17:33 | 只看该作者
前段时间有事,没能及时回复,见谅。
另外谢谢楼上几位达人无私的帮助,特别谢谢8楼,事实上正如8楼dufanbao所说的,将可重入栈顶改为OX3FF+1就行了,程序运行正常
再次感谢8楼以及楼上几位

使用特权

评论回复
11
ballack_linux| | 2014-3-14 20:12 | 只看该作者
你不用外扩RAM? 我移植过一次,RAM完全不够用

使用特权

评论回复
12
国防大学|  楼主 | 2014-3-16 15:11 | 只看该作者
ballack_linux 发表于 2014-3-14 20:12
你不用外扩RAM? 我移植过一次,RAM完全不够用

我用的是STC,这款单片机不能外扩RAM,但是我看了一下,如果程序不是太大的话,可以,因为操作系统好像占了大概0.5K RAM。RAM 2K的话还行,也没想着在51上跑UCOS能做多大事,纯属玩,呵呵

使用特权

评论回复
13
ballack_linux| | 2014-3-17 10:16 | 只看该作者
国防大学 发表于 2014-3-16 15:11
我用的是STC,这款单片机不能外扩RAM,但是我看了一下,如果程序不是太大的话,可以,因为操作系统好像占 ...

才0。5K ? 这么小,,

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

54

帖子

1

粉丝