view BSDmakefile @ 15:b12881051261

Use corrected delay() routine. Add note about timing oddities (but it works, so..)
author Daniel O'Connor <darius@dons.net.au>
date Wed, 14 Nov 2012 12:24:44 +1030
parents 96c345d304af
children afdd22502c2a
line wrap: on
line source

PROG=		main

SRCS=		1wire.c \
		comm.c \
		core_cm3.c \
		delay.c \
		flash.c \
		hw.c \
		lcd.c \
		main.c \
		misc.c \
		spi.c \
		startup_stm32f10x_md_mthomas.c \
		syscalls.c \
		system_stm32f10x.c \
		touch.c

STM32LIBS=	usart gpio rcc rtc pwr bkp fsmc spi tim

.for f in ${STM32LIBS}
SRCS+=		stm32f10x_${f}.c
CFLAGS+=	-DSTM32F10X_${f:U}_EN
.endfor

# Linker file
LINKFILE=	${.CURDIR}/STM32F10x_512k_64k_flash.ld

# Set CPU type
COMMONFLAGS=	-mcpu=cortex-m3
# Enable thumb code (since the Cortex M3 only does thumb)
COMMONFLAGS+=	-mthumb
# Debugging & optimisation
COMMONFLAGS+= -g -O0
# Put functions & data in individual sections to allow the linker to optimise (breaks debugging apparently)
COMMONFLAGS+=	-ffunction-sections -fdata-sections
# We aren't using exceptions
COMMONFLAGS+=	-fno-exceptions

CFLAGS+=	-I ${.CURDIR}

# Set device type
CFLAGS+=	-DSTM32F10X_HD
# Set clocks
CFLAGS+=	-DHSE_VALUE=8000000UL -DSYSCLK_FREQ_72MHz=72000000
# Enable STM peripheral drivers
CFLAGS+=	-DUSE_STDPERIPH_DRIVER
# Enable startup delay
#CFLAGS+=	-DSTARTUP_DELAY
# Vector table in flash
CFLAGS+=	-DVECT_TAB_FLASH 
CFLAGS+=	-mthumb-interwork
# Enable warnings (disable char-subscripts otherwise ctypes.h generates warnings
CFLAGS+=	-Wall -Wextra -pedantic -Wimplicit -Wcast-align -Wpointer-arith -Wredundant-decls -Wshadow -Wcast-qual -Wcast-align -Wnested-externs -Wno-char-subscripts -std=gnu99

LDFLAGS= 	-nostartfiles -Wl,--gc-sections -lc -lm -lgcc

# Location of STM32 library bits
STMLIB=		${.CURDIR}/libs/STM32F10x_StdPeriph_Lib_V3.5.0
PERIPHDIR=	${STMLIB}/Libraries/STM32F10x_StdPeriph_Driver
COREDIR=	${STMLIB}/Libraries/CMSIS/CM3/CoreSupport
SYSDIR=		${STMLIB}/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x

CFLAGS+=	-I ${PERIPHDIR}/inc
CFLAGS+=	-I ${SYSDIR}
CFLAGS+=	-I ${COREDIR}

.PATH:		${PERIPHDIR}/src
.PATH:		${COREDIR}
.PATH:		${SYSDIR}

debug:
	${GDB} --eval-command="target remote 127.0.0.1:61234" ${PROG}.elf

load:
	${GDB} --eval-command="target remote 127.0.0.1:61234" --eval-command "load" ${PROG}.elf

png2bin:	png2bin.c
	gcc ${.CURDIR}/png2bin.c -o ${.OBJDIR}/png2bin -O2 -Wall -I/opt/local/include -L/opt/local/lib -lpng

.include "${.CURDIR}/BSDmakefile.arm"