flash如何加代码(博文连载如何把数据)(1)

[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]

flash如何加代码(博文连载如何把数据)(2)

flash如何加代码(博文连载如何把数据)(3)

,