STR71 片内flash写问题

[复制链接]
2632|4
 楼主| xiaoyi3110 发表于 2010-4-28 14:17 | 显示全部楼层 |阅读模式
STR711F的Flash的Erase/Write的第一次操作必须在RAM里运行。但是我的程序是下到flash的BANK0中的,我怎样才能把Flash中第一次写操作的相关代码搬到RAM中运行呢?哪位大侠指点迷津,不胜感激!
doomhaha 发表于 2010-4-30 11:51 | 显示全部楼层
用scatter文件,把对Flash操作代码的运行域指定到RAM中
 楼主| xiaoyi3110 发表于 2010-5-4 11:21 | 显示全部楼层
谢谢楼上,能不能具体点,给个scatter例子,好比我的函数叫 void fun(void);
doomhaha 发表于 2010-5-4 13:27 | 显示全部楼层
ROM_LOAD 0x80000000            ;假设0x80000000为ROM中的地址
{
    ROM_EXEC 0x80000000
    {
        Startup.o (vectors, +First)
        target.o (+RO)
    }
   
    RAM_EXEC 0x40000000 ;假设0x40000000为RAM中的地址
    {
                ramWrFlash.o    ;假设你Flash操作的函数放在ramWrFlash.c中
    }
}
以上只是举一个很简单的例子,具体scatter的写法要根据你的实际情况来。你可以去百度下scatter、分散加载。
 楼主| xiaoyi3110 发表于 2010-5-4 17:25 | 显示全部楼层
谢谢楼上兄弟,我试下,辛苦了。:D
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

7

帖子

1

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