zengxy 发表于 2012-6-29 15:54:11

【求助】R8C/33C怎么把一个数组定义到DataFlash?

RT,我用的是R5F21336,带一个液晶,现在想把字体常量数组定义到芯片自带的Data Flash里,然后下载程序的时候一起下进去,请问这样是可实现的吗?如果我想把它放到一个固定的地址要怎么操作?

我试了一下,把__ROM_IN_DATA_FLASH__.equ 1这个条件从0改成了1,然后编译能通过,但是调试的时候不能下载程序进去,说无效地址,貌似用Program来连接也会报这个错误。

我又尝试通过 #pragma ADDRESS XX XX想把这个数组定位到某个固定的地址,但是编译时报警告:
#pragma ADDRESS variable initialized, initialization ignored
结果从map文件里都找不到这个变量了,也就是根本没编译进去。

再把问题总结一下:
1,把一个数组常量定义到Data Flash,然后把让它下载程序时自动被下载进去,这样是可实现的吗?要怎么处理?
2,如果想把这个数组放到某个固定的地址呢?因为有可能通过通讯的方式更新它。
2,如果上面的想法是可实现的,那在Debug的时候有没有什么问题?会不会因为调试的时候的Download不能下载Data Flash而出问题?

请各位指教!

kingway815 发表于 2012-6-29 20:36:51

CPU是不会寻址到dataflash的,定义到dataflash需要调用读取函数才能读出来。为什么要放到dataflash,数据量很大吗

zengxy 发表于 2012-7-4 15:30:29

已经搞定了,首先谢谢LS的答复,

CPU是可以直接读取Dataflash的,只要写一个命令使能一下就可以了,只是不能直接写而已

只要在段分配中把段首地址指定到DataFlash,然后在变量定义前面用#pragma SECTION 命令指定到特定的段就行了

希望对大家有帮助

AE007 发表于 2014-2-12 15:22:30

zengxy 发表于 2012-7-4 15:30
已经搞定了,首先谢谢LS的答复,

CPU是可以直接读取Dataflash的,只要写一个命令使能一下就可以了,只是不 ...

楼主在吗?
有问题请教你

页: [1]
查看完整版本: 【求助】R8C/33C怎么把一个数组定义到DataFlash?