[DESCRIPTION]
根据自身需求,客户有时候需要把某一段数据/代码放在Flash的某个固定地址
[SOLUTION]
如果需要把数据/代码放到Flash的固定地址,请参照如下操作步骤:
1. 首先要判断Flash上面,是否有足够的空闲空间存放这段数据.
请打开build\project\ckImgsize.log,找到如下资讯:
[Check VIVA bin size]
The Boundary of VIVA bin = xxxxx bytes
Actual VIVA End Address = yyyyy bytes
其中,Actual VIVA End Address的值表示的是,目前Code区域实际的大小; The Boundary of VIVA bin是表示
预留给Code的区域大小。实际值与预留值之间的差值,就是目前Flash的空闲大小.如果空闲空间足够,那就可以考虑把
数据放到Flash空闲区域的某个固定地址.来自半导体社区
2. 把数据/代码编译链接生成customer binary 。为了操作简单,建议把customer bin放在工程中一起编译链接.
3. 在SV5(如:50/60/76)平台中,BIN都有一个GFH结构,所以为了能让Flash tool能否识别customer binary ,需
要给这个BIN添加一个GFH结构。
[关于这一点可以参考FAQ07397--------如何添加GFH头部和利用flash tool下载 ]
4. 为了让Flash tool顺利的把BIN放到固定地址,还需要对scatfile进行修改.
例如:如果要把数据放到0x400000开始的地址;[在这里要注意一点,在50/60平台Flash的起始地址是从0x1000
0000开始]
MY_ROM 0x10400000 0x00200000 //这里表示从0x400000开始,范围为0x200000
{
MY_GFH 0x0
{
* (MY_GFH, First)
}
MY_ROM_1 0x0
{
mytest.obj ( RO)
5. 修改scatfile之后,为了防止编译之后被覆盖,需要在scatfile文件的注释部分添加: [MAUI_12345678]
,