我在调试LPC2132的IAP时,出现一个非常奇怪的现象:
按照 SelSector(1,1)-->EraseSector(1,1)--> SelSector(1,1)-->RamToFlash(dst, src, 256) 的逻辑顺序执行,均正确,返回的状态调用的各个函数返回的状态字也是“CMD_SUCCESS”,即成功的!但是程序执行完这四个函数后,就停在这里了,好像是“死机”似的,再无任何 反应。当LPC2132板子重启后能够看到上次写入到Flash里的信息是正确的。 继续主题:然后单步跟踪上面的四个函数,发现进入 SelSector(1,1) 函数执行第一条语句“paramin= IAP_SELECTOR;” 后,主程序就会出现上面提及的“死机”现象,尽管仍然会把4个函数跑
完并返回的状态字也正确的。我作了一个实验,把“paramin = IAP_SELECTOR;” 这条语句注
释后,其它不做任何改变,程序完全正常!这是什么原因?非常郁闷!! 继续上面主题:附:我在 “mem_c.scf” 等三个文件中使用如下分散加载的方式,不知正确否?【因为我
的主程序有50.6k,所以采用分散加载,选择扇区1来保存“PC机下发的一些配置信息”】。请大侠
指导,问题到底出现在哪里?
ROM_LOAD 0x0
{
ROM_EXEC 0x00000000
{
Startup.o (vectors, +First)
}
ROM_EXE1 0x00002000FIXED
{
* (+RO)
}
IRAM 0x40000000
{
Startup.o (MyStacks)
* (+RW,+ZI)
}
HEAP +0 UNINIT
{
Startup.o (Heap)
}
STACKS 0x40004000 UNINIT
{
Startup.o (Stacks)
}
} 请高手指教,不胜感激 有人顶一下吗? ding
页:
[1]