在运行时写入AVR ATmega16的程序存储器?

时间:2017-04-06 12:48:05

标签: assembly avr atmega

是否可以在运行时写入Atmel Atmega16的程序存储器?我正在尝试编写一个程序来对程序存储器中的一组给定数字进行排序,我必须交换数据,所以我需要使用SPM(存储程序存储器),但我不确定我是否可以更改内容当我运行程序时程序内存! 我想写操作必须在程序存储器的BOOT SECTION之类的地方实现,但是我找不到这样做的方法。有帮助吗?感谢。

1 个答案:

答案 0 :(得分:1)

您可以,特别是像引导加载程序这样的低级系统模块(需要)写入程序存储器。

请注意,某些AVR允许以字为单位写入PM,其他AVR只允许替换完整的Flash页面。显然,您的代码需要确保它在重新编程时不会使用该字或页面。

通常,程序存储器中的排序数字听起来不错。您将快速耗尽闪光周期,主要问题仍然是:为什么在写入闪存之前不要排序?