共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 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| PCF8574功能模块及其使用被打赏¥20元 | |
| 传感器LSM6DSO及LIS3MDL的功能检测被打赏¥18元 | |
| LPS25HB气压传感器及其检测被打赏¥18元 | |
| HTS221温湿度传感器及其检测被打赏¥18元 | |
| 【S32K3XX】HSE FW 版本更新被打赏¥21元 | |
| 基于ArduinoUNO开发板的AT24C02读写测试被打赏¥16元 | |
| TCS3472S传感器及其色彩检测被打赏¥19元 | |
| 【S32DS】S32K3 RTD7.0.1 HSE 组件配置报错问题解决被打赏¥27元 | |
| 【S32K3XX】MCME 启动 CORE1被打赏¥23元 | |
| AG32VH407下温度大气压传感器及其检测被打赏¥20元 | |
我要赚赏金
