diff --git a/.gitignore b/.gitignore index 269bd36..96f5c0b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,14 +1,20 @@ -# generated files by 'configure' -src/Makefile -src/config.h -src/gnuk.ld *.lst *.o *.pyc src/.dep +src/Makefile +src/config.h +src/gnuk.ld src/gnuk.bin src/gnuk.dmp src/gnuk.elf src/gnuk.hex src/gnuk.map src/*.inc +regnual/sys.h +regnual/*.inc +regnual/regnual.bin +regnual/regnual.hex +regnual/regnual.elf +regnual/usb_lld.c +regnual/usb_lld.h diff --git a/ChangeLog b/ChangeLog index 7548819..665cf3a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2012-05-22 Niibe Yutaka + * regnual/types.h, regnual/sys.c, regnual/regnual.ld: New. + * regnual/regnual.c, regnual/Makefile: New. + * regnual/sys-stbee.h: New. + * src/usb_lld.c: Support FREE_STANDING environment as well as under ChibiOS/RT. (usb_lld_init): Call usb_lld_sys_init. Don't call user defined diff --git a/regnual/Makefile b/regnual/Makefile new file mode 100644 index 0000000..c94711d --- /dev/null +++ b/regnual/Makefile @@ -0,0 +1,46 @@ +# Makefile for reGNUal + +PROJECT = regnual + +SRCS = regnual.c usb_lld.c sys.c +OBJS = regnual.o usb_lld.o sys.o +LDSCRIPT= regnual.ld + +################################### +MCU = cortex-m3 + +TRGT = arm-none-eabi- +CC = $(TRGT)gcc +LD = $(TRGT)ld +OBJCOPY = $(TRGT)objcopy +OBJDUMP = $(TRGT)objdump + +# THUMB-specific options here +TOPT = -mthumb -DTHUMB +# Define C warning options here +CWARN = -Wall -Wextra -Wstrict-prototypes +MCFLAGS= -mcpu=$(MCU) -mfix-cortex-m3-ldrd +DEFS = -DFREE_STANDING + +CFLAGS = -O2 -g +CFLAGS += $(CWARN) -fno-common $(MCFLAGS) $(TOPT) $(DEFS) + +LDFLAGS = -T$(LDSCRIPT) -nostartfiles + + +#################### + +all: regnual.hex + +regnual.hex: regnual.elf + $(OBJCOPY) -Obinary regnual.elf regnual.bin + $(OBJCOPY) -Oihex regnual.elf regnual.hex + +regnual.elf: $(OBJS) $(LDSCRIPT) + $(CC) $(LDFLAGS) -o regnual.elf $(OBJS) + +clean: + -rm -f $(OBJS) regnual.elf regnual.hex regnual.bin + +distclean: clean + -rm -f Makefile regnual.ld diff --git a/regnual/Makefile.in b/regnual/Makefile.in deleted file mode 100644 index 58254d8..0000000 --- a/regnual/Makefile.in +++ /dev/null @@ -1,182 +0,0 @@ -# Makefile for reGNUal - -BOARD_DIR=@BOARD_DIR@ - -############################################################################## -# Build global options -# NOTE: Can be overridden externally. -# - -# Compiler options here. -ifeq ($(USE_OPT),) - USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16 -endif - -# C++ specific options here (added to USE_OPT). -ifeq ($(USE_CPPOPT),) - USE_CPPOPT = -fno-rtti -endif - -# Enable this if you want the linker to remove unused code and data -ifeq ($(USE_LINK_GC),) - USE_LINK_GC = yes -endif - -# If enabled, this option allows to compile the application in THUMB mode. -ifeq ($(USE_THUMB),) - USE_THUMB = yes -endif - -# Enable register caching optimization (read documentation). -ifeq ($(USE_CURRP_CACHING),) - USE_CURRP_CACHING = no -endif - -# -# Build global options -############################################################################## - -############################################################################## -# Architecture or project specific options -# - -# Enable this if you really want to use the STM FWLib. -ifeq ($(USE_FWLIB),) - USE_FWLIB = no -endif - -# -# Architecture or project specific options -############################################################################## - -############################################################################## -# Project, sources and paths -# - -# Define project name here -PROJECT = regnual - -# Define linker script file here -LDSCRIPT= regnual.ld - -# Imported source files -CHIBIOS = ../ChibiOS_2.0.8 -include $(CHIBIOS)/os/hal/platforms/STM32/platform.mk -include $(CHIBIOS)/os/hal/hal.mk -include $(CHIBIOS)/os/ports/GCC/ARMCMx/STM32F10x/port.mk -include $(CHIBIOS)/os/kernel/kernel.mk - -# C sources that can be compiled in ARM or THUMB mode depending on the global -# setting. -CSRC = $(PORTSRC) \ - $(KERNSRC) \ - $(HALSRC) \ - $(PLATFORMSRC) \ - $(BOARDSRC) \ - ../boards/common/hw_config.c \ - $(BOARD_DIR)/board.c \ - $(CHIBIOS)/os/various/evtimer.c \ - $(CHIBIOS)/os/various/syscalls.c \ - regnual.c usb_lld.c - -# List ASM source files here -ASMSRC = $(PORTASM) \ - $(CHIBIOS)/os/ports/GCC/ARMCMx/STM32F10x/vectors.s - -INCDIR = $(CRYPTINCDIR) \ - $(PORTINC) $(KERNINC) $(TESTINC) \ - $(HALINC) $(PLATFORMINC) ../boards/common $(BOARD_DIR) \ - $(CHIBIOS)/os/various - -# -# Project, sources and paths -############################################################################## - -############################################################################## -# Compiler settings -# - -MCU = cortex-m3 - -#TRGT = arm-elf- -TRGT = arm-none-eabi- -CC = $(TRGT)gcc -CPPC = $(TRGT)g++ -# Enable loading with g++ only if you need C++ runtime support. -# NOTE: You can use C++ even without C++ support if you are careful. C++ -# runtime support makes code size explode. -LD = $(TRGT)gcc -#LD = $(TRGT)g++ -CP = $(TRGT)objcopy -AS = $(TRGT)gcc -x assembler-with-cpp -OD = $(TRGT)objdump -HEX = $(CP) -O ihex -BIN = $(CP) -O binary - -# ARM-specific options here -AOPT = - -# THUMB-specific options here -TOPT = -mthumb -DTHUMB - -# Define C warning options here -CWARN = -Wall -Wextra -Wstrict-prototypes - -# Define C++ warning options here -CPPWARN = -Wall -Wextra - -# -# Compiler settings -############################################################################## - -############################################################################## -# Start of default section -# - -# List all default C defines here, like -D_DEBUG=1 -DDEFS = -DCORTEX_USE_BASEPRI=TRUE - -# List all default ASM defines here, like -D_DEBUG=1 -DADEFS = - -# List all default directories to look for include files here -DINCDIR = - -# List the default directory to look for the libraries here -DLIBDIR = - -# List all default libraries here -DLIBS = - -# -# End of default section -############################################################################## - -############################################################################## -# Start of user section -# - -# List all user C define here, like -D_DEBUG=1 -UDEFS = - -# Define ASM defines here -UADEFS = - -# List all user directories here -UINCDIR = - -# List the user directory to look for the libraries here -ULIBDIR = - -# List all user libraries here -ULIBS = - -# -# End of user defines -############################################################################## - -include $(CHIBIOS)/os/ports/GCC/ARM/rules.mk -MCFLAGS= -mcpu=$(MCU) -mfix-cortex-m3-ldrd - -distclean: clean - -rm -f Makefile regnual.ld diff --git a/regnual/regnual.ld.in b/regnual/regnual.ld similarity index 89% rename from regnual/regnual.ld.in rename to regnual/regnual.ld index 54aceb5..d7a73e9 100644 --- a/regnual/regnual.ld.in +++ b/regnual/regnual.ld @@ -7,13 +7,12 @@ __stacks_total_size__ = __main_stack_size__ + __process_stack_size__; MEMORY { - flash : org = @ORIGIN@, len = @FLASH_SIZE@k - ram0 : org = 0x20000000, len = @REGNUAL_START@ - ram1 : org = 0x20001300, len = 20k - @REGNUAL_START@ + ram0 : org = 0x20000000, len = 0x1400 + ram1 : org = 0x20001400, len = 20k - 0x1400 } _flash_start = 0x08000000; -_flash_end = @FLASH_END@; +_flash_end = 0x08010000; __ram_start__ = ORIGIN(ram0); __ram_size__ = 20k; @@ -38,7 +37,7 @@ SECTIONS .text : ALIGN(16) SUBALIGN(16) { _text = .; - KEEP(*(vectors)) + KEEP(*(.vectors)) *(.text) *(.text.*) *(.rodata)