keil如何把字库数组定义到flash里面去,而不是ram
keil如何把字库数组定义到flash里面去,而不是ram code修饰 编译通不过 求你了,至少给点关于“通不过”的错误信息吧,大哥 error expected a ;说分号遗漏,去掉code 编译通过, unsigned char code XXX[] = {……}; error:#65: expected a ";"
unsigned char codefot[] = {......} 试试const,code是51特有语法。如果是51的话code char array={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,\
0xfe,0xf6,0xee,0x3e,0x9c,0x7a,0x9e,0x8e};
我就是这样定义的。记住结尾要加“;” 是arm,有另外的定义方法吗?考虑到都是KEIL软件,应该不分ARM和51的 const 编译可以通过,但在编译后的提示里,code值和没加const变化不大,只是在ro-data和rw-data里有明显的变化,不知道是否是写入到FLASH里的,查ro-data,只是说不可改写数据,不确定是否在flash区 不管是在哪里,常量都是要保存到FLASH里面的啊,所以…… 回复【1楼】888888888888
-----------------------------------------------------------------------
51是code code unsigned char a[] 回复【12楼】liucw99
-----------------------------------------------------------------------
别人问的是ARM 其实code 不能说是51特有的语法,应该说是keil51特有的语法,建议仔细地看一下keil自带的帮助文件,里面讲的很详细了。 回复【9楼】LM34063
-----------------------------------------------------------------------
需要加载文件,把ro-data加载到flash所在的地址就可以了。
ROM_LOAD 0x00020000
{
ROM_EXEC2 0x00020000 FIXED
{
stdframe2.o(ramd,+First)
*.o(+RO)
}
IRAM 0x40000000
{
* (+RW,+ZI)
}
}
其中,*.o就是ro-data,0x00020000是flash的起始地址 使用KEIL、Atmel studio将数组定义在Flash区 http://jingyan.baidu.com/article/72ee561aa64628e16138df18.html 不是code,是const
页:
[1]