打印
[ZLG-ARM]

LPC2378+UC/OSII中4个UART应用问题

[复制链接]
2233|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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

使用特权

评论回复
5
yangxh2005|  楼主 | 2011-1-12 11:28 | 只看该作者
经过这两天的研究,大致搞清楚了。os_cfg.h中最大任务数原来设置是60个,改到30个,堆栈SIZE改大一倍程序也可以正常运行。看来是os_cfg.h中设置的参数包括任务数、信号量数、消息队列数设置后,即使不用也要占用内存,影响堆栈的设置了。以后小心对待。。。

使用特权

评论回复
6
btiger2000| | 2011-1-12 17:31 | 只看该作者
最大任务数没必要设那么大啊,浪费空间

使用特权

评论回复
7
bairan168| | 2011-1-17 13:12 | 只看该作者
呵呵。

使用特权

评论回复
8
ladygaga| | 2011-1-30 12:49 | 只看该作者
;P

使用特权

评论回复
9
米其林r| | 2011-1-31 15:02 | 只看该作者
楼主已经是高手了

使用特权

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

本版积分规则

4

主题

39

帖子

0

粉丝