[ZLG-ARM] LPC2378+UC/OSII中4个UART应用问题

[复制链接]
 楼主| yangxh2005 发表于 2011-1-6 15:48 | 显示全部楼层 |阅读模式
现在用NXP的LPC2378做了个板子,用zlg的ucOSII模板进行开发。目前程序已经跑起来了,开了三个任务,一个基本运行任务,点亮指示灯,清看门狗;第二个任务是UART1,收发数据;第三个任务是驱动UART2,发送数据。现在还需要驱动UART3和UART0进行数据通信,但是增加UART3通信做第四个任务时程序下载到芯片不再运行,将第三个任务中的UART2改为UART3后,UART3可以正常工作,但是增加UART2,也不能正常运行。因此怀疑不是硬件驱动或初始化有问题,而是ucOSII中的某些设置有问题,查了些资料看到如果用到信号量、邮箱和信号队列时,相关参数OS_MAX_EVENTS、OS_MAX_FLAGS、OS_MAX_QS需要设置,对这些参数也做了修改,仍然不能正常运行。有些郁闷了,高手请指点一下,感激不尽!
 楼主| yangxh2005 发表于 2011-1-7 11:29 | 显示全部楼层
没人这样用过么?? 现在初步判断可能是用到了信号队列,初始化的地方可能有些问题,还需要进一步测试。有知道的朋友指点一下!
 楼主| yangxh2005 发表于 2011-1-7 16:31 | 显示全部楼层
今天折腾了一天,这个问题貌似搞定。应该是和分配任务中的堆栈大小有些关系,我重新调整个任务的堆栈大小,程序可以正常运行了。但是也奇怪,查了资料,没有看到说各任务之间的堆栈大小有什么相互关系,还是有些疑问。继续往前走吧,回头看是否还会碰到。    先结贴了
diny 发表于 2011-1-7 23:22 | 显示全部楼层
:handshake
 楼主| yangxh2005 发表于 2011-1-12 11:28 | 显示全部楼层
经过这两天的研究,大致搞清楚了。os_cfg.h中最大任务数原来设置是60个,改到30个,堆栈SIZE改大一倍程序也可以正常运行。看来是os_cfg.h中设置的参数包括任务数、信号量数、消息队列数设置后,即使不用也要占用内存,影响堆栈的设置了。以后小心对待。。。
btiger2000 发表于 2011-1-12 17:31 | 显示全部楼层
最大任务数没必要设那么大啊,浪费空间
bairan168 发表于 2011-1-17 13:12 | 显示全部楼层
呵呵。
ladygaga 发表于 2011-1-30 12:49 | 显示全部楼层
米其林r 发表于 2011-1-31 15:02 | 显示全部楼层
楼主已经是高手了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

39

帖子

0

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

4

主题

39

帖子

0

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