How to convert Atmel ATmega328P instruction set code to burnable hex code
我将开始从事ATmega328P似乎是个不错的选择的项目。但是,我试图使用其指令集而不是AVR的C库对其进行编程。这带来了将程序转换并刻录到Atmega闪存的问题。该怎么做?
我了解您使用AVR汇编语言编写了代码。
如果是这样,则需要avr汇编程序。在linux系统上,此程序称为avr-as,它是avr-binutils软件包的一部分。
在Windows机器上,我建议安装" winavr"套件-它具有相同的工具,甚至还具有一些出色的IDE,可以简化某些过程。
完成此步骤后,请在代码上运行汇编器。
1 | avr-as -mmcu=atmega328p o my_program.elf my_code.asm |
如果一切构建良好,您仍然需要将输出转换为.hex格式。
可以使用avr-objcopy(来自相同的程序包)完成。
1 | avr-objcopy -O ihex my_program.elf my_program.hex |
此后,您应该已经准备好将my_program.hex编程到控制器中。