打印
[Atmel]

如何声明常量字符串到指定flash地址?目的是存储出厂参数

[复制链接]
1207|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liudijiang|  楼主 | 2017-6-19 10:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
你好,我想把出厂校准的数据存在指定的flash地址里面。我的思路是申请一个常量字符串,字符串指定到flash最后一页的地址。

请教一下,声明常量字符串到flash的最后一页地址,具体语法规则是什么?我用_attribute_语法没有起作用。
我的开发环境 Atmel Studio 7
使用的芯片 SAMD10

实现我的目的,还有其他更好的办法吗?

谢谢!

相关帖子

沙发
junyee| | 2017-6-19 21:22 | 只看该作者
最简单的办法是,把参数直接附加在 hex文件中。

使用特权

评论回复
板凳
一事无成就是我| | 2017-6-19 22:22 | 只看该作者
绝对地址赋值定义
const uchar data_flash[]@add = {}

使用特权

评论回复
地板
liudijiang|  楼主 | 2017-6-22 16:06 | 只看该作者
junyee 发表于 2017-6-19 21:22
最简单的办法是,把参数直接附加在 hex文件中。

生产中不可能为每一个设备重新生成一个hex。我设计的方法是,1烧录程序hex,2校准工具测试计算得到校准数据写入bin文件,3烧录bin到指定地址。

使用特权

评论回复
5
liudijiang|  楼主 | 2017-6-22 16:07 | 只看该作者
junyee 发表于 2017-6-19 21:22
最简单的办法是,把参数直接附加在 hex文件中。

生产中不可能为每一个设备重新生成一个hex。我设计的方法是,1烧录程序hex,2校准工具测试计算得到校准数据写入bin文件,3烧录bin到指定地址。

使用特权

评论回复
6
liudijiang|  楼主 | 2017-6-22 16:11 | 只看该作者
一事无成就是我 发表于 2017-6-19 22:22
绝对地址赋值定义
const uchar data_flash[]@add = {}

试过了,不行。我现在用指针索引指定地址了。。。
这样的话,还差一步工作,分配ROM空间,指定大小给代码。

使用特权

评论回复
7
kingkits| | 2017-6-22 16:51 | 只看该作者
如果能用汇编,其实很简单

C语言如果实在找不到定位的办法,可以在源文件中指定一个const数组,要相对大一些,比如256byte,为了定位,可以定义一个索引数据
编译后选择生成HEX文件,HEX文件可以用dos文件打开然后再加工。把你需要的数据装进去就好了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

18

帖子

0

粉丝