如何将Atmel ATmega328P指令集代码转换为可刻录的十六进制代码

时间:2014-02-24 17:40:06

标签: microcontroller avr atmega

我即将开始研究ATmega328P似乎不错的项目。但是我试图使用它的指令集而不是使用AVR的C库来编程它。这就产生了将程序转换并刻录到Atmega闪存的问题。怎么办呢?

1 个答案:

答案 0 :(得分:2)

据我所知,您的代码采用AVR汇编语言。 如果是这样,你需要avr-assembler。在linux系统上,这个程序叫做avr-as,它是avr-binutils包的一部分。 在Windows机器上,我建议安装“winavr”套件 - 它有相同的工具,甚至一些眼睛糖果IDE,以简化一些过程。

覆盖完成后,在代码上运行汇编程序。

avr-as -mmcu=atmega328p  o my_program.elf my_code.asm 

如果一切都干净利落,您仍然需要将输出转换为.hex格式。 这可以使用avr-objcopy(来自相同的包)完成。

avr-objcopy -O ihex my_program.elf my_program.hex

在此之后,您应该准备好将my_program.hex编程到您的控制器中。