wxbhlj 发表于 2011-9-14 00:10

我在调试LPC2132的IAP时,出现一个非常奇怪的现象:

按照 SelSector(1,1)-->EraseSector(1,1)--> SelSector(1,1)-->RamToFlash(dst, src, 256) 的逻辑顺序执行,均正确,返回的状态调用的各个函数返回的状态字也是“CMD_SUCCESS”,即成功的!但是程序执行完这四个函数后,就停在这里了,好像是“死机”似的,再无任何 反应。当LPC2132板子重启后能够看到上次写入到Flash里的信息是正确的。

wxbhlj 发表于 2011-9-14 00:10

继续主题:然后单步跟踪上面的四个函数,发现进入 SelSector(1,1) 函数执行第一条语句“paramin

= IAP_SELECTOR;” 后,主程序就会出现上面提及的“死机”现象,尽管仍然会把4个函数跑

完并返回的状态字也正确的。我作了一个实验,把“paramin = IAP_SELECTOR;” 这条语句注

释后,其它不做任何改变,程序完全正常!这是什么原因?非常郁闷!!

wxbhlj 发表于 2011-9-14 00:11

继续上面主题:附:我在 “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)
    }
}

wxbhlj 发表于 2011-9-14 09:24

请高手指教,不胜感激

wxbhlj 发表于 2011-9-14 21:07

有人顶一下吗?

wxbhlj 发表于 2011-9-15 09:56

ding
页: [1]
查看完整版本: 我在调试LPC2132的IAP时,出现一个非常奇怪的现象: