(1)还有.S文件怎么编译?
armasm --cpu Cortex-M3 -g --apcs=interwork startup.s -o startup.o
(2)关于sct文件?
armlink --cpu Cortex-M3 *.o --strict --scatter "demo.sct" -o demo.axf
另外经测试.O也能变成.HEX,如下:
$ fromelf --i32 --output xxx.hex main.o
于是:
如果 armlink的时候输入:
armlink --cpu Cortex-M3 *.o --strict --scatter "demo.sct" --summary_stderr --info summarysizes --map --xref --callgraph --symbols --info sizes --info totals --info unused --info veneers --list ".\demo.map" -o demo.axf
那么输出:Program Size: Code=312 RO-data=352 RW-data=0 ZI-data=1632
并且生成 demo.axf demo.htm demo.map。
john@DESKTOP-AT0PVKR MINGW64 ~/Desktop/makefile_armcc/basic
$ armcc -c --cpu Cortex-M3 -g -O0 --apcs=interwork main.c -o main.ojohn@DESKTOP-AT0PVKR MINGW64 ~/Desktop/makefile_armcc/basic
$ armasm --cpu Cortex-M3 -g --apcs=interwork startup.s -o startup.ojohn@DESKTOP-AT0PVKR MINGW64 ~/Desktop/makefile_armcc/basic
$ armlink --cpu Cortex-M3 *.o --strict --scatter "demo.sct" --summary_stderr --info summarysizes --map -xref --callgraph --symbols --info sizes --info totals --info unused --info veneers --list ".\demo.map" -O demo.axf
Warning: L3910W: Old syntax, please use '--xref'.
Warning: L3910W: Old syntax, please use '-o'.
Program Size: Code=364 RO-data=368 RW-data=8 ZI-data=1632
Finished: 0 information, 2 warning and 0 error messages.john@DESKTOP-AT0PVKR MINGW64 ~/Desktop/makefile_armcc/basic
$ armlink --cpu Cortex-M3 *.o --strict --scatter "demo.sct" --summary_stderr --info summarysizes --map --xref --callgraph --symbols --info sizes --info totals --info unused --info veneers --list ".\demo.map" -o demo.axf
Program Size: Code=364 RO-data=368 RW-data=8 ZI-data=1632john@DESKTOP-AT0PVKR MINGW64 ~/Desktop/makefile_armcc/basic
$ fromelf --i32 --output xxx.hex demo.axfjohn@DESKTOP-AT0PVKR MINGW64 ~/Desktop/makefile_armcc/basic
生成的hex 与MDK生成的hex 经过比较,一摸一样的。