JSO*_*SON 0 microcontroller assembly avr avr-gcc harvard-architecture
我知道这很接近于"愚蠢问题"类别,但我一直在研究如何在AVR 8-bit上启动加载后执行机器代码,并且已经了解到AVR 8上使用的哈佛架构 - 位MCU使得无法从闪存以外的任何地方执行代码.那么如何使用内联asm在运行时引入新的可执行代码呢?
你混淆了三件事:
内联汇编
内联汇编用于将汇编程序指令传递给C(或任何语言)编译器.编译器会将汇编程序指令添加到它生成的代码中.最后,内联汇编程序指令的存储方式与编译器生成的指令相同.如果将程序写入闪存,则内联指令也将位于闪存中.
引导加载程序
引导加载程序通常会从某些输入(例如USB接口)读取数据并将数据写入闪存.因此,发送到AVR的程序稍后将从闪存执行,而不是从RAM执行.
从RAM执行代码
许多处理器支持这一点 此外,许多引导加载程序(用于其他微控制器)允许将代码加载到RAM而不是闪存并从那里执行代码.你是对的:至少大多数(也许全部??)AVR 8位微控制器不支持这个!
| 归档时间: |
|
| 查看次数: |
161 次 |
| 最近记录: |