打印
[ZLG-ARM]

关于LPC 的REMAP功能

[复制链接]
1868|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 | 只看该作者
进来看看,学习一下

使用特权

评论回复
5
hulan1985| | 2010-2-2 23:09 | 只看该作者
看不是很懂

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

11

帖子

1

粉丝