add regnual
authorNIIBE Yutaka <gniibe@fsij.org>
Tue, 22 May 2012 02:14:22 +0000 (11:14 +0900)
committerNIIBE Yutaka <gniibe@fsij.org>
Tue, 22 May 2012 02:14:22 +0000 (11:14 +0900)
.gitignore
ChangeLog
regnual/Makefile [new file with mode: 0644]
regnual/Makefile.in [deleted file]
regnual/regnual.ld [new file with mode: 0644]
regnual/regnual.ld.in [deleted file]

index 269bd36..96f5c0b 100644 (file)
@@ -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
index 7548819..665cf3a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2012-05-22  Niibe Yutaka  <gniibe@fsij.org>
 
+       * 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 (file)
index 0000000..c94711d
--- /dev/null
@@ -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 (file)
index 58254d8..0000000
+++ /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 b/regnual/regnual.ld
new file mode 100644 (file)
index 0000000..d7a73e9
--- /dev/null
@@ -0,0 +1,97 @@
+/*
+ * ST32F103 memory setup.
+ */
+__main_stack_size__     = 0x0400;
+__process_stack_size__  = 0x0200;
+__stacks_total_size__   = __main_stack_size__ + __process_stack_size__;
+
+MEMORY
+{
+    ram0 : org = 0x20000000, len = 0x1400
+    ram1 : org = 0x20001400, len = 20k - 0x1400
+}
+
+_flash_start = 0x08000000;
+_flash_end   = 0x08010000;
+
+__ram_start__           = ORIGIN(ram0);
+__ram_size__            = 20k;
+__ram_end__             = __ram_start__ + __ram_size__;
+
+SECTIONS
+{
+    . = 0;
+
+    .bss :
+    {
+        _bss_start = .;
+        *(.bss)
+        . = ALIGN(4);
+        *(.bss.*)
+        . = ALIGN(4);
+        *(COMMON)
+        . = ALIGN(4);
+        _bss_end = .;
+    } > ram0
+
+    .text : ALIGN(16) SUBALIGN(16)
+    {
+        _text = .;
+        KEEP(*(.vectors))
+        *(.text)
+        *(.text.*)
+        *(.rodata)
+        *(.rodata.*)
+        *(.glue_7t)
+        *(.glue_7)
+        *(.gcc*)
+    } > ram1
+
+    .ctors :
+    {
+        PROVIDE(_ctors_start_ = .);
+        KEEP(*(SORT(.ctors.*)))
+        KEEP(*(.ctors))
+        PROVIDE(_ctors_end_ = .);
+    } > ram1
+
+    .dtors :
+    {
+        PROVIDE(_dtors_start_ = .);
+        KEEP(*(SORT(.dtors.*)))
+        KEEP(*(.dtors))
+        PROVIDE(_dtors_end_ = .);
+    } > ram1
+
+    .ARM.extab : {*(.ARM.extab* .gnu.linkonce.armextab.*)}
+
+    __exidx_start = .;
+    .ARM.exidx : {*(.ARM.exidx* .gnu.linkonce.armexidx.*)} > ram1
+    __exidx_end = .;
+
+    .eh_frame_hdr : {*(.eh_frame_hdr)}
+
+    .eh_frame : ONLY_IF_RO {*(.eh_frame)}
+
+    . = ALIGN(4);
+    _etext = .;
+    _textdata = _etext;
+
+    .data :
+    {
+        _data = .;
+        *(.data)
+        . = ALIGN(4);
+        *(.data.*)
+        . = ALIGN(4);
+        *(.ramtext)
+        . = ALIGN(4);
+        _edata = .;
+    } > ram1
+
+    PROVIDE(end = .);
+    _end            = .;
+}
+
+__heap_base__   = _end;
+__heap_end__    = __ram_end__ - __stacks_total_size__;
diff --git a/regnual/regnual.ld.in b/regnual/regnual.ld.in
deleted file mode 100644 (file)
index 54aceb5..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * ST32F103 memory setup.
- */
-__main_stack_size__     = 0x0400;
-__process_stack_size__  = 0x0200;
-__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@
-}
-
-_flash_start = 0x08000000;
-_flash_end   = @FLASH_END@;
-
-__ram_start__           = ORIGIN(ram0);
-__ram_size__            = 20k;
-__ram_end__             = __ram_start__ + __ram_size__;
-
-SECTIONS
-{
-    . = 0;
-
-    .bss :
-    {
-        _bss_start = .;
-        *(.bss)
-        . = ALIGN(4);
-        *(.bss.*)
-        . = ALIGN(4);
-        *(COMMON)
-        . = ALIGN(4);
-        _bss_end = .;
-    } > ram0
-
-    .text : ALIGN(16) SUBALIGN(16)
-    {
-        _text = .;
-        KEEP(*(vectors))
-        *(.text)
-        *(.text.*)
-        *(.rodata)
-        *(.rodata.*)
-        *(.glue_7t)
-        *(.glue_7)
-        *(.gcc*)
-    } > ram1
-
-    .ctors :
-    {
-        PROVIDE(_ctors_start_ = .);
-        KEEP(*(SORT(.ctors.*)))
-        KEEP(*(.ctors))
-        PROVIDE(_ctors_end_ = .);
-    } > ram1
-
-    .dtors :
-    {
-        PROVIDE(_dtors_start_ = .);
-        KEEP(*(SORT(.dtors.*)))
-        KEEP(*(.dtors))
-        PROVIDE(_dtors_end_ = .);
-    } > ram1
-
-    .ARM.extab : {*(.ARM.extab* .gnu.linkonce.armextab.*)}
-
-    __exidx_start = .;
-    .ARM.exidx : {*(.ARM.exidx* .gnu.linkonce.armexidx.*)} > ram1
-    __exidx_end = .;
-
-    .eh_frame_hdr : {*(.eh_frame_hdr)}
-
-    .eh_frame : ONLY_IF_RO {*(.eh_frame)}
-
-    . = ALIGN(4);
-    _etext = .;
-    _textdata = _etext;
-
-    .data :
-    {
-        _data = .;
-        *(.data)
-        . = ALIGN(4);
-        *(.data.*)
-        . = ALIGN(4);
-        *(.ramtext)
-        . = ALIGN(4);
-        _edata = .;
-    } > ram1
-
-    PROVIDE(end = .);
-    _end            = .;
-}
-
-__heap_base__   = _end;
-__heap_end__    = __ram_end__ - __stacks_total_size__;