打印
[ZLG-ARM]

求教:关于LPC2131运行出错的问题

[复制链接]
1398|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Tsuisting|  楼主 | 2007-6-6 15:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用LPC2131自己做的板子,以前能正常运行.
使用工程模板建立的UC0SII for lpc21xx工程,在选择DebugInFLASH时,能正常下载,但运行到目标板初始化时就会发生取数据中止.
void TargetResetInit(void)
{                               //会在这个地方发生取数据中止
    #ifdef __DEBUG_RAM
        MEMMAP = 0x2;        
    #endif
    .......
}

    如果建立的工程是ARM Executable Image for lpc21xx,在选择DebugInRAM时,也能正常下载,但也会发生与上面一样的情况.但是好像不是取数据中止,而是在汇编中看到的从0x00000000地址开始都是"[0xffffffff]   dci  0xffffffff; ? undefined",这是不是说没有写进去?      
    在选择DebugInFLASH时就不会出现这种情况,会一直执行到 B __main,  但从__main到main之间会出现错误.每次执行到地址0x00000394上"stmfd r13!,{r0,r1,r4,r14}"就会发生取数据中止.但如果不使用__main,而是直接跳转到main,则不会出错.

   这会是什么原因呢?是我原来写进去的的程序对Flash加密了吗?但我用H-Flasher擦除过了(没有用ISP,是不是一定要用ISP?)还是我的硬件有问题?但我原来下载程序到Flash里面,调试时和脱机时都能正常运行.会不会是我的开发环境不对?但我给LPC2210的开发板写程序却都正常(那个是用的Easy-JTAG).实在想不明白,请高手指点:)万分感谢:) 

相关帖子

沙发
25712694| | 2007-6-6 18:20 | 只看该作者

re

注意系统堆栈大小的设置.取数据中止表示堆栈益出了,寻址的空间不在FLASH区了
在MAIN之前加__表示要进行系统堆栈初始化的!
注意检查堆栈!!!!!!

使用特权

评论回复
板凳
Tsuisting|  楼主 | 2007-6-7 15:07 | 只看该作者

问题解决了.非常感谢:)

果然是堆栈溢出了.

使用特权

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

本版积分规则

2

主题

3

帖子

0

粉丝