查看: 443|回复: 1
打印 上一主题 下一主题

初次使用ucos,遇到一个问题向各位大侠请教

[复制链接] qrcode

562

主题

597

帖子

1764

积分

金牌会员

Rank: 6Rank: 6

积分
1764
楼主
跳转到指定楼层
发表于 2015-12-28 01:08 AM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
两个任务
RS232_TASK
GSM_TASK
RS232_TASK任务优先级高于GSM_TASK

我在仅仅只有RS232_TASK运行时,程序没有问题,可以正常运行;
当我使用下面的代码,并通过RS232每秒发送一次AT指令进行测试的时候,
经过一段时间以后,大约几分钟,程序出现死机。

OS_EVENT *poeUart2ReviceSem;
OS_EVENT *poeUart0ReviceSem;
uint8 uiReviceBuf0[128];/*接收数据缓冲区*/
void RS232_TASK(void *pdata)
{
INT8U iUart0Err;
uint32 uiNum;
pdata = pdata;
poeUart0ReviceSem = OSSemCreate(1); /*创建信号量*/
while(1)
{
OSSemPend(poeUart0ReviceSem, 0, &iUart0Err);/*请求信号量*/
uiNum = uartFifoStatus(UART0, RX_FIFO); /*查看收到多少数据*/
uartRead(UART0, uiReviceBuf0, uiNum, NULL); /*读数据*/
/*DEBUG start:用于调试GPRS串口命令*/
uartWrite(UART2, uiReviceBuf0, strlen((char *)uiReviceBuf0), NULL);
/*DEBUG end:*/
}
}
uint8 uiReviceBuf2[128];/*接收数据缓冲区*/
void GSM_TASK(void *pdata)
{
INT8U iUart0Err;
uint32 uiNum;
pdata = pdata;
poeUart2ReviceSem = OSSemCreate(1); /*创建信号量*/
while(1)
{
OSSemPend(poeUart2ReviceSem, 0, &iUart0Err);/*请求信号量*/
uiNum = uartFifoStatus(UART0, RX_FIFO); /*查看收到多少数据*/
uartRead(UART2, uiReviceBuf0, uiNum, NULL); /*读数据*/
uartWrite(UART0, uiReviceBuf0, strlen((char *)uiReviceBuf0), NULL);
}
}
回复

使用道具 举报

0

主题

1

帖子

4

积分

新手上路

Rank: 1

积分
4
沙发
发表于 2015-12-29 10:03 AM | 只看该作者
估计是内存溢出了,128个字节够吗?                                                                                                                                                                       
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表