欢迎来到天天文库
浏览记录
ID:8815366
大小:14.51 KB
页数:3页
时间:2018-04-08
《在linux下最简单的stm32gcc程序》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、在linux下最简单的STM32gcc程序,需要三个文件分别为main.cmakefile和stm32-linux.ld:main.c:intmain(void){return0;}makefile:TARGET=mainOBJS=main.oCC=arm-none-eabi-gccLD=arm-none-eabi-ldOBJCP=arm-none-eabi-objcopyCFLAGS=-mcpu=cortex-m3-mthumb-nostartfilesLFLAGS=-Tstm32-linux.ldCPFLAGS=-ObinaryTARGET_
2、ELF=$(TARGET).elfTARGET_BIN=$(TARGET).bin$(TARGET_BIN):$(TARGET_ELF)$(OBJCP)$(CPFLAGS)$<$@$(TARGET_ELF):$(OBJS)$(LD)$(LFLAGS)-o$@$<$(OBJS):main.c$(CC)$(CFLAGS)$<$(LFLAGS)-o$@clean:rm-f$(TARGET)*.ostm32-linux.ld:MEMORY{rom(rx):ORIGIN=0,LENGTH=2Mram(rwx):ORIGIN=0x20000000,LENGT
3、H=4M}SECTIONS{.=0x0;.text:{*(vectors)*(.text)*(.rodata)}.=0x20000000;.data:{*(.data)}.bss:{*(.bss)}}编译过程:[root@localhostsrc]#[root@localhostsrc]#lsmain.cmakefilestm32-linux.ld[root@localhostsrc]#makearm-none-eabi-gcc-mcpu=cortex-m3-mthumb-Wall-g-O0-nostartfilesmain.c-Tstm32-l
4、inux.ld-omain.oarm-none-eabi-ld-Tstm32-linux.ld-omain.elfmain.oarm-none-eabi-objcopy-Obinarymain.elfmain.bin[root@localhostsrc]#arm-none-eabi-objdump-Smain.elfmain.elf:fileformatelf32-littlearmDisassemblyofsection.text:00000000:(void*)STACK_TOP,(void*)main};intmain(void
5、){0:b480push{r7}2:af00addr7,sp,#0return0;4:f04f0300mov.wr3,#0}8:4618movr0,r3a:46bdmovsp,r7c:bc80pop{r7}e:4770bxlr[root@localhostsrc]#makecleanrm-fmain*.o*.elf*.bin[root@localhostsrc]#
此文档下载收益归作者所有