[STM32F1] STM32批处理GCC编译生成BIN

[复制链接]
3419|6
 楼主| tbh1129 发表于 2015-9-16 13:16 | 显示全部楼层 |阅读模式
在keil工程下,设置了批处理编译生成了BIN文件,下载后可以成功,但必须安装keil,要不会提醒序列号,求大师解决,脱离keil平台,完全在DOS环境下编译的解决方案,或者可以不安装keil,解决以上问题,万分感谢。
zchong 发表于 2015-9-16 13:26 | 显示全部楼层
需要makefile配合了,还有自己写链接脚本
网上搜一下gcc开发的例子吧,应该可以找到模板的
styleno1 发表于 2015-9-16 14:21 | 显示全部楼层
GCC ARM Embedded,想必可以满足你的需求
i55 发表于 2015-9-16 15:32 | 显示全部楼层
  1. GCC_BIN =
  2. PROJECT = cmsis_rtos_demo_thread
  3. OBJECTS = ./mbed-rtos/rtx/rt_Semaphore.o ./mbed-rtos/rtx/rt_Event.o ./mbed-rtos/rtx/rt_List.o ./mbed-rtos/rtx/rt_Mutex.o ./mbed-rtos/rtx/HAL_CM.o ./mbed-rtos/rtx/rt_Task.o ./mbed-rtos/rtx/rt_CMSIS.o ./mbed-rtos/rtx/rt_System.o ./mbed-rtos/rtx/rt_Time.o ./mbed-rtos/rtx/rt_MemBox.o ./mbed-rtos/rtx/rt_Robin.o ./mbed-rtos/rtx/RTX_Conf_CM.o ./mbed-rtos/rtx/rt_Mailbox.o ./main.o ./mbed-rtos/rtos/Thread.o ./mbed-rtos/rtos/Semaphore.o ./mbed-rtos/rtos/Mutex.o ./mbed-rtos/rtos/RtosTimer.o
  4. SYS_OBJECTS =
  5. INCLUDE_PATHS = -I. -I./mbed-rtos -I./mbed-rtos/rtos -I./mbed-rtos/rtx -I./mbed
  6. LIBRARY_PATHS =
  7. LIBRARIES =
  8. LINKER_SCRIPT = None

  9. ###############################################################################
  10. AS      = $(GCC_BIN)arm-none-eabi-as
  11. CC      = $(GCC_BIN)arm-none-eabi-gcc
  12. CPP     = $(GCC_BIN)arm-none-eabi-g++
  13. LD      = $(GCC_BIN)arm-none-eabi-gcc
  14. OBJCOPY = $(GCC_BIN)arm-none-eabi-objcopy
  15. OBJDUMP = $(GCC_BIN)arm-none-eabi-objdump
  16. SIZE         = $(GCC_BIN)arm-none-eabi-size

  17. CPU = -mcpu=cortex-m3 -mthumb
  18. CC_FLAGS = $(CPU) -c -g -fno-common -fmessage-length=0 -Wall -fno-exceptions -ffunction-sections -fdata-sections -fomit-frame-pointer
  19. CC_FLAGS += -MMD -MP
  20. CC_SYMBOLS = -DTARGET_NUCLEO_F103RB -DTARGET_M3 -DTARGET_CORTEX_M -DTARGET_STM -DTARGET_STM32F1 -DTARGET_STM32F103RB -DTOOLCHAIN_GCC_ARM -DTOOLCHAIN_GCC -D__CORTEX_M3 -DARM_MATH_CM3 -DMBED_BUILD_TIMESTAMP=1431315978.78 -D__MBED__=1 -DTARGET_FF_ARDUINO -DTARGET_FF_MORPHO

  21. LD_FLAGS = $(CPU) -Wl,--gc-sections --specs=nano.specs -u _printf_float -u _scanf_float -Wl,--wrap,main
  22. LD_FLAGS += -Wl,-Map=$(PROJECT).map,--cref
  23. LD_SYS_LIBS = -lstdc++ -lsupc++ -lm -lc -lgcc -lnosys

  24. ifeq ($(DEBUG), 1)
  25.   CC_FLAGS += -DDEBUG -O0
  26. else
  27.   CC_FLAGS += -DNDEBUG -Os
  28. endif

  29. all: $(PROJECT).bin $(PROJECT).hex

  30. clean:
  31.         rm -f $(PROJECT).bin $(PROJECT).elf $(PROJECT).hex $(PROJECT).map $(PROJECT).lst $(OBJECTS) $(DEPS)

  32. .s.o:
  33.         $(AS) $(CPU) -o $[url=home.php?mod=space&uid=72445]@[/url] $<

  34. .c.o:
  35.         $(CC)  $(CC_FLAGS) $(CC_SYMBOLS) -std=gnu99   $(INCLUDE_PATHS) -o $@ $<

  36. .cpp.o:
  37.         $(CPP) $(CC_FLAGS) $(CC_SYMBOLS) -std=gnu++98 -fno-rtti $(INCLUDE_PATHS) -o $@ $<


  38. $(PROJECT).elf: $(OBJECTS) $(SYS_OBJECTS)
  39.         $(LD) $(LD_FLAGS) -T$(LINKER_SCRIPT) $(LIBRARY_PATHS) -o $@ $^ $(LIBRARIES) $(LD_SYS_LIBS) $(LIBRARIES) $(LD_SYS_LIBS)
  40.         $(SIZE) $@

  41. $(PROJECT).bin: $(PROJECT).elf
  42.         @$(OBJCOPY) -O binary $< $@

  43. $(PROJECT).hex: $(PROJECT).elf
  44.         @$(OBJCOPY) -O ihex $< $@

  45. $(PROJECT).lst: $(PROJECT).elf
  46.         @$(OBJDUMP) -Sdh $< > $@

  47. lst: $(PROJECT).lst

  48. size:
  49.         $(SIZE) $(PROJECT).elf

  50. DEPS = $(OBJECTS:.o=.d) $(SYS_OBJECTS:.o=.d)
 楼主| tbh1129 发表于 2015-9-16 18:18 | 显示全部楼层
感谢各位大侠。
豆腐块 发表于 2015-9-18 20:06 | 显示全部楼层

GCC ARM Embedded,没用过,好用吗
freewhz 发表于 2015-11-3 08:31 | 显示全部楼层
在Linux下用gcc的例子有很多,在git网站上可搜到
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

12

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部