共2条
1/1 1 跳转至页
求助,程序老是进入取数据终止或取指令终止?急!在线等待...
问
项目使用周立功的“ARM Executable Image for UCOSII(for lpc2200)”模板建立,CPU为2294,在BANK1扩了
一片RAM 62256,分散加载文件如下:
ROM_LOAD 0x0
{
ROM_EXEC 0x00000000
{
Startup.o (vectors, +First)
* (+RO)
}
IRAM 0x40000000
{
Startup.o (MyStacks)
}
STACKS_BOTTOM +0 UNINIT
{
Startup.o (StackBottom)
}
STACKS 0x40004000 UNINIT
{
Startup.o (Stacks)
}
ERAM 0x81000100
{
* (+RW,+ZI)
}
HEAP +0 UNINIT
{
Startup.o (Heap)
}
HEAP_BOTTOM 0x81008000 UNINIT
{
Startup.o (HeapTop)
}
}
在调试过程中,经常出现莫名其妙的问题,常常进入取数据终止或取指令终止,有时候没有改程序,又好了。
今天问题又出现了,写完一段程序,运行后出现取指令终止,我把出现问题的一行加了注释,运行正常,把注
释去掉后,程序还是正常,真是搞不明白为啥?
答 1: 还发现一个问题还发现一个问题,同样的程序,用0级优化(minimum)可以正常运行,换成1级优化(Most)后,指针飞了。难道是编译器的问题? 答 2: 请各位帮忙看看,如何解决 答 3: 优化值变化造成指针飞有时变量用volatile和不用会有区别,尤其是使用中断的情况下。
答 4: 取数据终止的原因找到了取数据终止的原因找到了,是某个任务的栈设置太小了,导致栈指针超出了有效RAM的范围。
现在出现取指令终止的原因还没有找到,不知道如何找原因。 答 5: 同样的问题我也遇到同样的问题。
在做TCP协议实验时原程序未改动时,在外部RAM或外部FLASH程序运行正常;
当加入若干行程序后,在外部RAM运行正常,到外部FLASH运行时就出现“取指令终止”;有时在外部RAM运行会出现“取数据终止”。
我用的是SmartARM2200的开发板,实验书上说“根据以往经验,由于总线冲突,建议使用外部RAM进行实验”。 答 6: 这个问题比较恶心这种问题比较恶心
有的时候的确是由编译器引起的
在用UCOS的时候又是OS_EXIT_CRITICAL都会引起取数据中止
你仔细看是不是代码超过的存储器的大小。
取指令中止,有时也是指针引起的。 答 7: 郁闷~~~我为何遇不到这种好事...晕到~~~
一片RAM 62256,分散加载文件如下:
ROM_LOAD 0x0
{
ROM_EXEC 0x00000000
{
Startup.o (vectors, +First)
* (+RO)
}
IRAM 0x40000000
{
Startup.o (MyStacks)
}
STACKS_BOTTOM +0 UNINIT
{
Startup.o (StackBottom)
}
STACKS 0x40004000 UNINIT
{
Startup.o (Stacks)
}
ERAM 0x81000100
{
* (+RW,+ZI)
}
HEAP +0 UNINIT
{
Startup.o (Heap)
}
HEAP_BOTTOM 0x81008000 UNINIT
{
Startup.o (HeapTop)
}
}
在调试过程中,经常出现莫名其妙的问题,常常进入取数据终止或取指令终止,有时候没有改程序,又好了。
今天问题又出现了,写完一段程序,运行后出现取指令终止,我把出现问题的一行加了注释,运行正常,把注
释去掉后,程序还是正常,真是搞不明白为啥?
答 1: 还发现一个问题还发现一个问题,同样的程序,用0级优化(minimum)可以正常运行,换成1级优化(Most)后,指针飞了。难道是编译器的问题? 答 2: 请各位帮忙看看,如何解决 答 3: 优化值变化造成指针飞有时变量用volatile和不用会有区别,尤其是使用中断的情况下。
答 4: 取数据终止的原因找到了取数据终止的原因找到了,是某个任务的栈设置太小了,导致栈指针超出了有效RAM的范围。
现在出现取指令终止的原因还没有找到,不知道如何找原因。 答 5: 同样的问题我也遇到同样的问题。
在做TCP协议实验时原程序未改动时,在外部RAM或外部FLASH程序运行正常;
当加入若干行程序后,在外部RAM运行正常,到外部FLASH运行时就出现“取指令终止”;有时在外部RAM运行会出现“取数据终止”。
我用的是SmartARM2200的开发板,实验书上说“根据以往经验,由于总线冲突,建议使用外部RAM进行实验”。 答 6: 这个问题比较恶心这种问题比较恶心
有的时候的确是由编译器引起的
在用UCOS的时候又是OS_EXIT_CRITICAL都会引起取数据中止
你仔细看是不是代码超过的存储器的大小。
取指令中止,有时也是指针引起的。 答 7: 郁闷~~~我为何遇不到这种好事...晕到~~~
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 | |
【FRDM-MCXN947评测】核间通信MUTEX被打赏50分 |