主题 : ucOS跑不起来,高手指点指点 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 6191
精华: 0
发帖: 1
金钱: 5 两
威望: 1 点
贡献值: 0 点
综合积分: 2 分
注册时间: 2009-05-22
最后登录: 2011-08-13
楼主  发表于: 2011-08-13 13:04

 ucOS跑不起来,高手指点指点

2440 +ucOS2.83
ADS1.2

现象:
复制代码
  1. int Main(int argc, char **argv)
  2. {
  3.     //初始化目标板
  4.     TargetInit();
  5.     //初始化uCOS-II
  6.     OSInit ();    
  7.     //初始化系统时基
  8.     OSTimeSet(0);
  9.     //创建系统初始任务
  10.     err = OSTaskCreate (MainTask,(void *)0, &MainTaskStk[MainTaskStkLengh - 1], MainTaskPrio);
  11.     //开始任务
  12.     OSStart ();
  13.     return 0;
  14. }


(1)AXD单步调试时,系统运行完OSStart ()后,又返回到Main()重新开始执行,而创建的任务MainTask始终无法被调用或者没有执行,err的值为0;

(2)把该工程编译的bin下载到nandflash后,系统能正常运行,而且MainTask也能正常执行,串口能打印出测试数据,用AXD调试时就出现(1)所述的问题;

(3)烧写的bin,RO Base写的是0x30000000;在开发板上电后,用H-JTAG检测到ARM核,正在运行的系统停止,启动AXD开始调试(调试时RO Base写的是0x30100000),系统出现(1)的问题;

(4)而如果调试时RO Base写的是0x30000000,系统好像会跑飞,无法进入指定的断点。

请教给位高手,该如何解决这个问题啊???????