搜索
bottom↓
回复: 8

用flash当eeprom用来存一些数据时,可以在烧录芯片时预烧录一些值吗?

[复制链接]

出0入36汤圆

发表于 2020-8-23 15:56:23 | 显示全部楼层 |阅读模式
    比如在出厂时,将某些地址预烧入   0x1234  0x5678,这些数据当做一些校准参数保留.  如果发现产品用该参数做数据修正不合适时,再进入校准代码中改写该地址数据.
带eeprom时是可以在编译时将eeprom数据预设好,下载时一并烧录的.     用flash模拟eeprom不知道是否也可以一样实现?

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入24汤圆

发表于 2020-8-23 16:04:29 | 显示全部楼层
当然可以,编辑好flash的内容,做成bin或者hex文件,再跟程序hex文件合并就可以了,如果编程器支持多段hex,最后一步还能省掉

出0入0汤圆

发表于 2020-8-23 16:19:37 | 显示全部楼层
本帖最后由 lyl1070 于 2020-8-23 16:53 编辑

简单:
在OPTIONS的BL51 Locate选项卡中,在Code一栏,设置格式如下:
?PR?Main?AppMain(0x1300)
其中,
?PR表示为函数分配到ROM中。?CO表示将常量数组分配到ROM中。
?Main表示为函数名。当有参数时,需要加下划线“_”,如_Main
?AppMain表示函数所在的文件名
(0x1300)表示需要存放的ROM区首地址。
多个的话有,号隔开,最后不能放,号。

如,在main.c文件中,有如下定义,并且要将这个TAB放到0xFF00为首地址处。
code uchar TAB[]=
{
        0x11,0x22,
};

那么:在上述中键入:?CO?TAB?main(0xFF00)

出0入36汤圆

 楼主| 发表于 2020-8-23 17:11:24 | 显示全部楼层
20061002838 发表于 2020-8-23 16:04
当然可以,编辑好flash的内容,做成bin或者hex文件,再跟程序hex文件合并就可以了,如果编程器支持多段hex ...

  这个方法有点代码和数据分离的意思,  用的mdk不懂的怎么操作. 请问网上有相关文档介绍具体怎么操作的吗?

出20入186汤圆

发表于 2020-8-23 17:28:08 | 显示全部楼层
软件检测如果某个值读取的全是0xff则可以认为是新的EEPROM,这时手工写入一个初始值,

出0入36汤圆

 楼主| 发表于 2020-8-23 17:34:03 | 显示全部楼层
lyl1070 发表于 2020-8-23 16:19
简单:
在OPTIONS的BL51 Locate选项卡中,在Code一栏,设置格式如下:
?PR?Main?AppMain(0x1300)

请问 如果是一个结构体,该怎么操作?

出0入24汤圆

发表于 2020-8-23 17:50:04 | 显示全部楼层
GZZXB 发表于 2020-8-23 17:11
这个方法有点代码和数据分离的意思,  用的mdk不懂的怎么操作. 请问网上有相关文档介绍具体怎么操作的吗 ...

1,MDK调试的时候导出数据,保存为hex;
2,JFlash里面手工编辑,保存为hex;
3,自己写个软件,编辑好内容,导出bin;

出0入36汤圆

 楼主| 发表于 2020-8-23 19:22:00 | 显示全部楼层
似乎把简单问题想复杂了      
const uint16_t EEPROM_DATA[16] __attribute__((at(0x08000000 + 31 * 1024))) =
{
    1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
};
貌似绝对定位下就ok了,编译后的hex文件该地址就是这些数据了。  烧录单片机后就是这些默认出厂值,如果要修改再在运行中写flash即可。

出0入0汤圆

发表于 2020-8-24 11:12:47 | 显示全部楼层
GZZXB 发表于 2020-8-23 17:34
请问 如果是一个结构体,该怎么操作?

亲,当然是可以的,只是结构体如何赋初值的问题。

还有你没说是ARM的KEIL,还是C51的KEIL,
ARM好像可以直接用at来指定了。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-3 17:29

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表