打印
[ZLG-MCU]

进入FaultISR是什么地方出问题了??

[复制链接]
3589|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lizhaohu|  楼主 | 2008-4-16 10:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
lizhaohu|  楼主 | 2008-4-16 14:54 | 只看该作者

usart驱动试验问题

用超级终端能正确运行,用串口助手一个一个的发送没有问题,两个两个的发

送也没有问题,直到5个5个的发送时当发送到60多个的时候就跳到FaultISR中

断当中了。

是什么问题啊,找了很久也没有找到。

使用特权

评论回复
板凳
lizhaohu|  楼主 | 2008-4-16 15:25 | 只看该作者

当把该行禁止了之后 可以了

************************************************************************************
** Function name: Uart0Send
** Descriptions:  发送多个字节数据
** Input:         Buffer:发送数据存储位置
**                NByte:发送数据个数
** Output:        无
** Created by:    Zhou Shaogang 
** Created Date:  2006-11-18
**----------------------------------------------------------------------------------
** Modified by:
** Modified Date: 
**----------------------------------------------------------------------------------
************************************************************************************/
void Uart0Send(uint8 *Buffer, uint16 NByte)
{
  while(NByte)
  {
    if( UARTSpaceAvail(UART0_BASE) )
    {
      UARTCharNonBlockingPut(UART0_BASE, *Buffer++);
      NByte--;
    }
  }

 // while( !UARTTraFifoEmp(UART0_BASE) );//改动的部分
为什么这样改动之后就可以了呢,还没有想通阿!!
}

使用特权

评论回复
地板
lizhaohu|  楼主 | 2008-4-18 08:54 | 只看该作者

大家都没有遇到这个问题吗??

 

你们都都没有遇到这个问题哦!!

使用特权

评论回复
5
zlgmcu| | 2008-4-18 08:57 | 只看该作者

您是不是用KEIL编译的?

如果用D版的Keil编译就有可能出现这个问题。

使用特权

评论回复
6
lizhaohu|  楼主 | 2008-4-19 17:19 | 只看该作者

不好说啊


不啊 我用的是IAR

也不知是怎么的,东改西改的又没有那问题了

使用特权

评论回复
7
jack501| | 2008-4-20 13:58 | 只看该作者

我也出现同样的问题

使用特权

评论回复
8
jack501| | 2008-4-20 23:02 | 只看该作者

UART0_REC_QUEUE_LEN ?

  Uart0_Rec_Queue[UART0_REC_QUEUE_LEN]接收队列的UART0_REC_QUEUE_LEN在哪里赋值的? 没有找到? 

使用特权

评论回复
9
jack501| | 2008-4-21 11:10 | 只看该作者

UART0_REC_QUEUE_LEN在哪里赋值的?

Uart0_Rec_Queue[UART0_REC_QUEUE_LEN]接收队列的UART0_REC_QUEUE_LEN在哪里赋值的? 

使用特权

评论回复
10
jack501| | 2008-4-21 13:33 | 只看该作者

UART0_REC_QUEUE_LEN 300

修改:
UART0_REC_QUEUE_LEN   300  原来100
#define STACK_SIZE    128   原来64

发送2k字符还没有出现错误

使用特权

评论回复
11
zlgmcu| | 2008-4-22 08:46 | 只看该作者

修改STACK_SIZE的值很关键

(zlgmcu_wdx)

使用特权

评论回复
12
gdpiao| | 2008-4-22 12:29 | 只看该作者

RE

与LPC系列不同,数据越界也会进入FaultISR

使用特权

评论回复
13
lizhaohu|  楼主 | 2008-4-22 19:30 | 只看该作者

回复:jack501


Uart0_Rec_Queue[UART0_REC_QUEUE_LEN]接收队列的UART0_REC_QUEUE_LEN在哪里赋值的?

答:UART0_REC_QUEUE_LEN是宏定义了的如:
“ #define UART0_REC_QUEUE_LEN   300   ”                 
   

使用特权

评论回复
14
mohanwei| | 2008-4-22 20:04 | 只看该作者

睁眼说瞎话吧……

zlgmcu 发表于 2008-4-18 08:57 ZLG-MCU  ←返回版面  按此察看该网友的资料 按此把**加入收藏夹 按此编辑本帖

5楼: 您是不是用KEIL编译的?

如果用D版的Keil编译就有可能出现这个问题。

使用特权

评论回复
15
lizhaohu|  楼主 | 2008-4-28 17:28 | 只看该作者

不是用的Keil!!我没有必要骗人啊


回复: mohanwei 
   我没有“睁眼说瞎话吧……”!!
的确!!我用的是IAR,没有用Keil!!

可能后来把变量减少后程序不会进入该中断了, 可能就是变量定义过多过大的影响吧!!

使用特权

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

本版积分规则

9

主题

27

帖子

0

粉丝