我即将开始研究ATmega328P似乎不错的项目。但是我试图使用它的指令集而不是使用AVR的C库来编程它。这就产生了将程序转换并刻录到Atmega闪存的问题。怎么办呢?
答案 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编程到您的控制器中。