Linux中的AVR汇编程序

时间:2015-10-29 10:47:25

标签: linux eclipse assembly avr

我正在尝试在C中学习AVR开发并在Linux中学习Arduino Uno(Atmel 328p微处理器)。 我找到了很多关于如何安装和设置Eclipse AVR插件的好指南,我在构建和上传C代码方面没有问题。但是,似乎没有用于创建汇编程序项目的任何菜单选项,我似乎也找不到使用cli avr的正确语法 - 将程序组装到.hex文件中。

1 个答案:

答案 0 :(得分:1)

你有几个选择。我不知道eclipse,(我只是使用vim并直接制作)但编译程序应该是相同的。

你可以:

  • 编写一个主要是C项目,内嵌任何你想要的程序集。这通常是最简单的方法。查看AVR-GCC Inline Assembler Cookbook
  • 编写一个完全没有使用链接器的纯ASM应用程序。例如单文件应用程序(或一个直接包含项目其余部分的文件)。您必须告诉构建工具如何处理文件,但它可以像调用avra或avr-as一样简单。您必须确保仔细执行所有低级初始化并为您正在使用的MCU构建完整的中断向量表,否则您可能会出现意外行为。
  • 编写一个混合的C和ASM应用程序,链接两种语言的目标文件。要做到这一点,你会对纯C项目做同样的事情,除了一些(可能是全部)源文件需要汇编。您必须告诉构建工具如何将它们组装到目标文件中。在Makefile中,这将编写正确的规则(或者更有可能设置$ {AS}宏以使用正确的汇编程序)。在eclipse中可能有一个项目设置,但任何IDE YMMV。这可能是最难的选择,因为您必须知道编译器的调用约定和ABI才能成功执行纯ASM代码。