首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

在codewarrior中,如何把常量放在指定flash地址上?

usliwu:
  codewarrior V7.0中第一种方法可行,第二种方法我是了一下,出现了错误如下:
Link Error   : Fcounter(.const.data.pmem) in file ad.c is referenced but has not been written.
Check your linker command file.

Link failed.
我定义的数组名为counter[500];
还有,我的连接命令文件中定义了
        .p_flash_ROM_data  (RX) : ORIGIN = 0x00000001, LENGTH = 0x00000FFF
有问提吗?
usliwu:
    真是太感谢你了!我的邮箱是LHP5890@TOM.COM,对CODEWARRIOR,我有太多不清楚的地方。谢谢你的帮助
usliwu:
以前没有用过FREESCALE的芯片,TARGETING_5800E中的英文看不懂,数据ROM好象不需定义连接命令文件就可以使用了,可程序区内的RAM是怎么定义和使用的也不清楚,我现在学习的是56F8346芯片,要是连数据定义和使用都不会,真不知道该怎么办?能帮帮我吗?
那就是说程序中的RAM不能用来存储变量了,是吗?那不是片内RAM就比较小了,8346就只有8KBYTE的RAM 数据存储器了,是这样的吗,谢谢usliwu.
我心目中的专家!!
那就是说程序中的RAM不能用来存储变量了,是吗?那不是片内RAM就比较小了,8346就只有8KBYTE的RAM 数据存储器了,是这样的吗,谢谢usliwu.
我心目中的专家!!
还有就是BOOTFLASH也只能用作引导程序区,即使不使用引导程序也不能用于数据存储吧?反正我不用,也只是在该系列的用户手册上看到有一点点介绍,没看懂!
在命令连接程序中,有下面的定义:
.p_flash_ROM_data (RX) : ORIGIN = 0x00000001, LENGTH = 0x00000FFF
我的理解是在程序FLASH中开辟了一段存储器映射,可是究竟对应的是PROM中的那一段,也不清楚,为什么地址是从ORIGIN = 0x00000001开始的区域呢。
还有就是BOOTFLASH也只能用作引导程序区,即使不使用引导程序也不能用于数据存储吧?反正我不会用,也只是在该系列的用户手册上看到有一点点介绍,没看懂!
输入错误,不会用输成了不用。。。
好象有些明白了,谢谢usliwu!真的非常感谢!!
根据TARGETING——56800E中的说明好象是说__pmem int x,y ;是在程序区中的FLASH 而不是PRAM中定义变量,不知我理解是否正确?还有如果在FLASH 中定义变量而不是常数,而FLASH 中的写次数是有限制的,怎麽解决这样的问题呢?
谢谢usliwu的帮助!!
谢谢你 usliwu!
我试了一下,可以使用了,可是如果想同时使用PRAM和PROM时,定义上好象又有问题了,我说的是*(.bss.pmem)放到.p_internal_RAM 段就不能放到.p_code段了,因为有些故障信息还是存在PROM中比较好,*(.bss.pmem)这个名称可以自己修改和定义吗?
现在总算明白了,谢谢usliwu!!
返回列表