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

[复制链接]
 楼主| wxbhlj 发表于 2011-9-14 00:12 | 显示全部楼层 |阅读模式
按照 SelSector(1,1)  -->  EraseSector(1,1)  --> SelSector(1,1)  -->  RamToFlash
(dst, src, 256) 的逻辑顺序执行,均正确,返回的状态调用的各个函数返回的状态字也是
“CMD_SUCCESS”,即成功的!但是程序执行完这四个函数后,就停在这里了,好像是“死机”似
的,再无任何 反应。当LPC2132板子重启后能够看到上次写入到Flash里的信息是正确的。
 楼主| wxbhlj 发表于 2011-9-14 00:13 | 显示全部楼层
继续上面主题:然后单步跟踪上面的四个函数,发现进入 SelSector(1,1) 函数执行第一条语句“paramin

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

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

释后,其它不做任何改变,程序完全正常!这是什么原因?非常郁闷!!
 楼主| wxbhlj 发表于 2011-9-14 09:25 | 显示全部楼层
继续上面主题:附:我在 “mem_c.scf” 等三个文件中使用如下分散加载的方式,不知正确否?【因为我的主程序有50.6k,所以采用分散加载,选择扇区1来保存“PC机下发的一些配置信息”】。请大侠指导,问题到底出现在哪里?

     

ROM_LOAD 0x0
{
    ROM_EXEC 0x00000000
    {
        Startup.o (vectors, +First)     
    }

    ROM_EXE1 0x00002000  FIXED
    {      
        * (+RO)
    }
   
    IRAM 0x40000000
    {
        Startup.o (MyStacks)
        * (+RW,+ZI)
    }

    HEAP +0 UNINIT
    {
        Startup.o (Heap)
    }

    STACKS 0x40004000 UNINIT
    {
        Startup.o (Stacks)
    }
}
 楼主| wxbhlj 发表于 2011-9-14 12:06 | 显示全部楼层
请高手指点,不胜感激
 楼主| wxbhlj 发表于 2011-9-14 21:12 | 显示全部楼层
顶一下
 楼主| wxbhlj 发表于 2011-9-15 09:57 | 显示全部楼层
 楼主| wxbhlj 发表于 2011-9-15 20:42 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

30

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部

0

主题

30

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部