我希望能够看到一种大会语言的我的Arduino草图。我如何可以实现这一目标?

更新: 我正在运行的Arduino软件,在Windows的机器。

有帮助吗?

解决方案

要做到这一点的方法之一是通过构建创建的avr-objdump文件中使用.elf。例如,在OS X I可以这样做:

$ cd ~/arduino-0015/examples/Digital/Blink/applet
$ avr-objdump -d Blink.elf

(你在Windows路径可以是不同的,很明显。)这产生的代码,其中一部分将看起来像这样的拆卸:

0000013a <main>:
 13a:   0e 94 3e 01     call    0x27c <init>
 13e:   0e 94 97 00     call    0x12e <setup>
 142:   0e 94 80 00     call    0x100 <loop>
 146:   fd cf           rjmp    .-6             ; 0x142 <main+0x8>

其他提示

如果您正在使用Linux,你可以按照如何编译的Arduino的本教程没有IDE

一旦你这样做,你可以与-s标志运行GCC得到一个汇编列表。

以下(哈克)的步骤将提供大会语言上市的Arduino草图和相关图书馆的窗口:

  1. 下载(并重新命名)的 Arduino Windows命令行批文件 到目录中包含草图(该 .pde 文件)
  2. 设置所需的环境变量中所规定的上述链接的网页
  3. 添加 -S 来的 abuild_gcc_opts 变量 abuild.bat (线158)
  4. 运行 abuild -r -c <pde_filename>
  5. 希望得到下面的警告和错误,你可以忽略:

    ... warning: #warning "This file has been moved to <util/delay.h>."

    .\obj\<pde_filename>.cpp.o: file format not recognized: treating as linker script

    .\obj\<pde_filename>.cpp.o:1: syntax error

大会语言的目录,可以发现在 .o 文件的创建 obj 目录。例如列名的素描本身是在 obj\<pde_filename>.cpp.o

在-S(未多个)标志显示的C代码作为well.Also知道作为混合列表:

Linux操作系统:(.arduino / preferences.txt:delete_target_folder =假)

$ cd /tmp/buildxxxx.tmp
$ avr-objdump -dS Blink.cpp.elf

int main(void)
{
    init();
 2f4:   8a df           rcall   .-236       ; 0x20a <init>
...
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top