我如何可以获得一种大会语言的我的Arduino的草图,在Windows?
题
我希望能够看到一种大会语言的我的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草图和相关图书馆的窗口:
- 下载(并重新命名)的 Arduino Windows命令行批文件 到目录中包含草图(该
.pde
文件) - 设置所需的环境变量中所规定的上述链接的网页
- 添加
-S
来的abuild_gcc_opts
变量abuild.bat
(线158) - 运行
abuild -r -c <pde_filename>
希望得到下面的警告和错误,你可以忽略:
... 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>
...
不隶属于 StackOverflow