const
MDK3.03A开始就支持关键字
需要加#include
方法三:在程序中定义一个const
uint32_t
const
address
方法二只能用在CARM编译器上,目前KEIL默认不支持。 RV下可以用以下方法来支持:
RV下绝对定位可以利用scatter做到
以RV的hello例子烧录0x1fc的0x87654321加密位为例
首先在hello.c中加入
const int encrypt __attribute__((section("encrypt")))= 0x87654320;
其次修改scatter file
UV3会自动产生一个scatter file,默认位于 你的工程目录\ojb\你的工程名字.sct
可以在这个文件的基础上修改:
原来的hello.sct的内容
LR_IROM1 0x00000000 0x00040000 { ; load region
ER_IROM1 0x00000000 { ; load address = execution address
*.o (RESET, +First)
* (+RO)
}
RW_IRAM1 0x40000000 0x00004000 { ; RW data
* (+RW +ZI)
}
}
另存为hello1.sct,并修改为:
LR_IROM1 0x00000000 0x00040000 { ; load region
ER_IROM1 0x00000000 { ; load address = execution address
*.o (RESET, +First)
}
ER_IROM2 0x000001fc FIXED
{
*.o (encrypt)
}
ER_IROM3 0x200 FIXED
{
* (+RO)
}
RW_IRAM1 0x40000000 0x00004000 { ; RW data
* (+RW +ZI)
}
}
然后,修改设置
http://bbs.21ic.com/upfiles/img/2006724114655201.jpg