[303] | 1 | #
|
---|
| 2 | # Makefile ã®ã¿ã¼ã²ããä¾åé¨ï¼NUCLEO_F401REç¨ï¼
|
---|
| 3 | #
|
---|
| 4 |
|
---|
| 5 | #
|
---|
| 6 | # ãã¼ãå, ãããåï¼ã³ã¢åï¼éçºç°å¢åã®å®ç¾©
|
---|
| 7 | #
|
---|
| 8 | BOARD = nucleo_f401re
|
---|
| 9 | CHIP = stm32f4xx_stm32cube
|
---|
| 10 | PRC = arm_m
|
---|
| 11 | TOOL = gcc
|
---|
| 12 |
|
---|
| 13 | #
|
---|
| 14 | # FPUã使ç¨ããã
|
---|
| 15 | #
|
---|
| 16 | FPU_USAGE = FPU_LAZYSTACKING
|
---|
| 17 |
|
---|
| 18 | #
|
---|
| 19 | # 使ç¨ããã¿ã¤ã
|
---|
| 20 | #
|
---|
| 21 | #KERNEL_TIMER = SYSTICK
|
---|
| 22 | KERNEL_TIMER = TIM
|
---|
| 23 |
|
---|
| 24 | #
|
---|
| 25 | # ã³ã³ãã¤ã«ãªãã·ã§ã³
|
---|
| 26 | #
|
---|
| 27 | INCLUDES := $(INCLUDES) -I$(TARGETDIR) -I$(TARGETDIR)/stm32fcube
|
---|
| 28 | CDEFS := $(CDEFS) -DSTM32F401xE
|
---|
| 29 | COPTS := $(COPTS)
|
---|
| 30 | LDFLAGS := -nostdlib -nostartfiles $(LDFLAGS)
|
---|
| 31 |
|
---|
| 32 | #
|
---|
| 33 | # ãã¡ã¤ã«ãµã¤ãºåæ¸ã®ããã®ãªãã·ã§ã³
|
---|
| 34 | #
|
---|
| 35 | COPTS := $(COPTS) -ffunction-sections -fdata-sections
|
---|
| 36 | OBJ_LDFLAGS := $(OBJ_LDFLAGS) -Wl,--gc-sections
|
---|
| 37 |
|
---|
| 38 | #
|
---|
| 39 | # ã«ã¼ãã«ã«é¢ããå®ç¾©
|
---|
| 40 | #
|
---|
| 41 | KERNEL_DIRS := $(KERNEL_DIRS) $(TARGETDIR) $(TARGETDIR)/stm32fcube
|
---|
| 42 | KERNEL_ASMOBJS := $(KERNEL_ASMOBJS) start.o
|
---|
| 43 | KERNEL_COBJS := $(KERNEL_COBJS) target_kernel_impl.o \
|
---|
| 44 | system_stm32f4xx.o stm32f4xx_nucleo.o systemclock_config.o \
|
---|
| 45 | stm32f4xx_hal_gpio.o stm32f4xx_hal_uart.o \
|
---|
| 46 | stm32f4xx_hal_rcc.o stm32f4xx_hal_dma.o
|
---|
| 47 |
|
---|
| 48 | KERNEL_COBJS := $(KERNEL_COBJS) stm32f4xx_hal_tim.o
|
---|
| 49 |
|
---|
| 50 | #
|
---|
| 51 | # ã·ã¹ãã ãµã¼ãã¹ã«é¢ããå®ç¾©
|
---|
| 52 | #
|
---|
| 53 | SYSSVC_DIRS := $(SYSSVC_DIRS)
|
---|
| 54 | SYSSVC_COBJS := $(SYSSVC_COBJS) usart.o
|
---|
| 55 |
|
---|
| 56 | #
|
---|
| 57 | # ã³ã³ãã£ã®ã¥ã¬ã¼ã¿é¢ä¿ã®å¤æ°ã®å®ç¾©
|
---|
| 58 | #
|
---|
| 59 | #CFG_TABS := $(CFG_TABS) --cfg1-def-table $(TARGETDIR)/target_def.csv
|
---|
| 60 | #CFG1_OUT_LDFLAGS := $(LDFLAGS) -T $(TARGETDIR)/blueninja_ram_cfg1_out.ld
|
---|
| 61 |
|
---|
| 62 |
|
---|
| 63 | #
|
---|
| 64 | # 使ç¨ããã¿ã¤ã
|
---|
| 65 | #
|
---|
| 66 | ifeq ($(KERNEL_TIMER), SYSTICK)
|
---|
| 67 | CDEFS := $(CDEFS) -DUSE_SYSTICK_AS_TIMETICK
|
---|
| 68 | KERNEL_COBJS := $(KERNEL_COBJS) core_timer.o
|
---|
| 69 | else
|
---|
| 70 | ifeq ($(KERNEL_TIMER), TIM)
|
---|
| 71 | CDEFS := $(CDEFS) -DUSE_TIM_AS_HRT
|
---|
| 72 | KERNEL_COBJS := $(KERNEL_COBJS) target_timer.o
|
---|
| 73 | endif
|
---|
| 74 | endif
|
---|
| 75 |
|
---|
| 76 | #
|
---|
| 77 | # GNUéçºç°å¢ã®ã¿ã¼ã²ããã¢ã¼ããã¯ãã£ã®å®ç¾©
|
---|
| 78 | #
|
---|
| 79 | GCC_TARGET = arm-none-eabi
|
---|
| 80 |
|
---|
| 81 | #
|
---|
| 82 | # ãã¬ã¼ã¹ãã°è¨é²ã®ãµã³ãã«ã³ã¼ãã«é¢ããå®ç¾©
|
---|
| 83 | #
|
---|
| 84 | ifdef ENABLE_TRACE
|
---|
| 85 | COPTS := $(COPTS) -DTOPPERS_ENABLE_TRACE
|
---|
| 86 | SYSSVC_DIRS := $(SYSSVC_DIRS) $(SRCDIR)/arch/tracelog
|
---|
| 87 | endif
|
---|
| 88 |
|
---|
| 89 | #
|
---|
| 90 | # ä¾åé¢ä¿ã®å®ç¾©
|
---|
| 91 | #
|
---|
| 92 | cfg1_out.timestamp: $(TARGETDIR)/target_timer.cfg
|
---|
| 93 |
|
---|
| 94 | #offset.timestamp:
|
---|
| 95 | #kernel_cfg.timestamp: $(TARGETDIR)/target_kernel.trb
|
---|
| 96 | #check.timestamp: $(TARGETDIR)/target_check.trb
|
---|
| 97 |
|
---|
| 98 | #
|
---|
| 99 | # ãªã³ã«ã¹ã¯ãªããã®å®ç¾©
|
---|
| 100 | #
|
---|
| 101 | LDSCRIPT = $(TARGETDIR)/stm32f401re.ld
|
---|
| 102 |
|
---|
| 103 | #
|
---|
| 104 | # ãããä¾åé¨ã®ã¤ã³ã¯ã«ã¼ã
|
---|
| 105 | #
|
---|
| 106 | include $(SRCDIR)/arch/$(PRC)_$(TOOL)/$(CHIP)/Makefile.chip
|
---|
| 107 |
|
---|
| 108 | #
|
---|
| 109 | # ãã©ãã·ã¥ã¸ã®æ¸ãè¾¼ã¿
|
---|
| 110 | #
|
---|
| 111 | UNAME_TARGET = Cygwin
|
---|
| 112 | OPENOCD_PATH = /cygdrive/c/arm/OpenOCD/0.10.0-201510281129-dev/bin/openocd.exe
|
---|
| 113 | OPENOCD_SCRIPT_PATH = c:/arm/OpenOCD/0.10.0-201510281129-dev/scripts
|
---|
| 114 | OPENOCD_SCRIPT = c:/arm/OpenOCD/0.10.0-201510281129-dev/scripts/board/st_nucleo_f4.cfg
|
---|
| 115 |
|
---|
| 116 | ifeq ($(UNAME_TARGET), Cygwin)
|
---|
| 117 | GDB = arm-gdb_m0.exe
|
---|
| 118 | else
|
---|
| 119 | GDB = $(ARDUINO_BASE_DIR_WIN)\hardware\tools\gcc-arm-none-eabi-4.8.3-2014q1\bin\arm-none-eabi-gdb
|
---|
| 120 | endif
|
---|
| 121 |
|
---|
| 122 | run: $(OBJNAME).bin
|
---|
| 123 | ifeq ($(UNAME_TARGET), Cygwin)
|
---|
| 124 | "`cygpath -u "$(OPENOCD_PATH)"`" -s "$(OPENOCD_SCRIPT_PATH)" -f "$(OPENOCD_SCRIPT)" -c "program ./$(OBJNAME).bin verify 0x08000000 reset exit"
|
---|
| 125 | #-c "flash probe 0; flash write_image erase ./$(OBJNAME).axf 0x08000000 reset exit"
|
---|
| 126 | else
|
---|
| 127 | "$(OPENOCD_PATH)" -s "$(OPENOCD_SCRIPT_PATH)" -f "$(OPENOCD_SCRIPT)" -c "program ./$(OBJNAME).bin verify 0x4000 reset exit"
|
---|
| 128 | endif
|
---|
| 129 |
|
---|
| 130 | ocd: $(OBJNAME).bin
|
---|
| 131 | ifeq ($(UNAME_TARGET), Cygwin)
|
---|
| 132 | cygstart "$(OPENOCD_PATH)" '-s "$(OPENOCD_SCRIPT_PATH)"' '-f "$(OPENOCD_SCRIPT)"'
|
---|
| 133 | else
|
---|
| 134 | start /MIN "" "$(OPENOCD_PATH)" -s "$(OPENOCD_SCRIPT_PATH)" -f "$(OPENOCD_SCRIPT)"
|
---|
| 135 | endif
|
---|
| 136 |
|
---|
| 137 | db: $(OBJNAME).bin
|
---|
| 138 | ifeq ($(UNAME_TARGET), Cygwin)
|
---|
| 139 | $(GDB) $(OBJFILE) -x $(TARGETDIR)/gdb.ini
|
---|
| 140 | else
|
---|
| 141 | $(GDB) $(OBJFILE) -x $(TARGETDIR)/gdb.ini
|
---|
| 142 | endif
|
---|
| 143 |
|
---|
| 144 | d: $(OBJNAME).bin
|
---|
| 145 | ifeq ($(UNAME_TARGET), Cygwin)
|
---|
| 146 | $(GDB) $(OBJFILE) -x $(TARGETDIR)/gdb_noflash.ini
|
---|
| 147 | else
|
---|
| 148 |
|
---|
| 149 | endif
|
---|