[ZLG-ARM] 关于LPC 的REMAP功能

[复制链接]
2661|4
 楼主| mutourenzhang 发表于 2010-1-25 17:20 | 显示全部楼层 |阅读模式
当我采用如下REMAP方式,将FLASH中的中断向量映射到RAM中,但是remap后中断就无法进入,不知道为什么?是不是还需要设置其他地方?望大家给与指导,谢谢!
ram = (uint32 *)0x40000000;

flash = (uint32 *)0x00000000;

//MEMMAP = 0X02;

for(i = 0;i<16;i++)
{
  *ram++ = *flash++;//拷贝中断向量表
}

MEMMAP = 0X02;
bigarmer 发表于 2010-1-26 10:14 | 显示全部楼层
前面两步都没有问题,包括拷贝异常向量表到SRAM起始地址(注意编译器设置预留出SRAM前64字节作这个用),执行REMAP(放在向量表拷贝之后),最后就是需要将程序跳转到0x4000 0000处执行就可以了。 如果再有问题就要检查以下程序自身的原因或者编译器设置了。
 楼主| mutourenzhang 发表于 2010-1-26 10:41 | 显示全部楼层
2# bigarmer
谢谢您的回答,不过我采用的是ZLG开发板模板,在scf文件中也预留了位置,如下:
ROM_LOAD 0x0
{
    ROM_EXEC 0x00000000
    {
        Startup.o (vectors, +First)
        * (+RO)
    }
    IRAM 0x40000100                            //00-0xff作为REMAP区
    {
        Startup.o (MyStacks)
        * (+RW,+ZI)
    }
    HEAP +0 UNINIT
    {
        Startup.o (Heap)
    }
    STACKS 0x40008000 UNINIT
    {
        Startup.o (Stacks)
    }
不知道这样对否?
}
linhai1986 发表于 2010-1-28 22:16 | 显示全部楼层
进来看看,学习一下
hulan1985 发表于 2010-2-2 23:09 | 显示全部楼层
看不是很懂
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

11

帖子

1

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