完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好,
我正在考虑将我的应用程序的一些校准数据存储到FLASH存储器中,因为我的EEPROM空间非常有价值,而且我无法保留任何数据。校准数据只能写入一次(在设备第一次上电时),然后每次上电时都会读取。 做这种事情的好方法是什么?我可以“保留”一些FLASH,以便编译器不会将该特定位置用于主程序吗? 谢谢 以上来自于谷歌翻译 以下为原文 Hello, I'm looking into storing some calibration data for my application into FLASH memory since my EEPROM space is very valuable and I cannot spare any of it. The cal data would only be written once (upon the first powerup of the device) and from then on would be read everytime on powerup. What is a good way of doing this sort of thing? Can I ''reserve'' some FLASH so that the compiler doesn't use that particular location(s) for the main program? Thanks |
|
相关推荐
1个回答
|
|
你可以做到这一点。 C编译器有特殊的关键字,它将数据放入flash(或eeprom)。
只需在闪存区域的专用地址保留足够的大字节数组(请参阅文档中的“内存组织”)。 你甚至可以做两个项目。其中一个包含唯一的可执行代码和指针在闪存中的数据专用区域中执行固定地址。第二个是唯一的数据。 .hex文件可以单独写入芯片。 另一方面,STM8器件中的闪存不能同时读写,因此,写入代码不能从闪存执行。因此,如果您想通过芯片本身将校准数据写入主闪存区域,则必须准备写入存储到RAM的程序,然后将其从Flash复制到RAM,然后从RAM执行写入代码。 请参阅芯片和STM8 Ref Man的数据表,4.6.1。 因此,最好选择具有足够EEPROM的芯片,或连接任何外部数据存储器,或使用更先进的STM32器件。 以上来自于谷歌翻译 以下为原文 You can do that. C compilers have special keyword which puts the data to flash(or to eeprom). Just reserve enough big byte array at dedicated address in the flash area (refer to ''memory organization'' in the docs). You could even make two projects. One of them contains the only executable code and pointer do the fixed address in your data-dedicated area in flash. The 2nd one has the only data. .hex files could be written to the chips separately. On the other hand, flash memory in STM8 devices can't be read and written at the same time, and, thus, the writing code can't be executed from flash. So if you wanna write calibration data to main flash area by the chip itself, you have to prepare writing procedure for storing to RAM, then copy it from Flash to RAM, then execute the writing code from RAM. See datasheet for your chip and STM8 Ref Man, 4.6.1. So, it's better for you to choose a chip with enough EEPROM, or connect any external data storage, or use STM32 devices, which are more advanced. |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2634 浏览 1 评论
3208 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1783 浏览 1 评论
3609 浏览 6 评论
5987 浏览 21 评论
939浏览 4评论
1315浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
582浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1302浏览 3评论
1357浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 11:29 , Processed in 1.367650 second(s), Total 76, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号