diff --git a/inc/stm32f0xx_hw.h b/inc/stm32f0xx_hw.h new file mode 100644 index 0000000..5abe1a9 --- /dev/null +++ b/inc/stm32f0xx_hw.h @@ -0,0 +1,14 @@ +#ifndef __STM32F0XX_HW_H +#define __STM32F0XX_HW_H + +/* Configuration */ +#define MCU_SRAM_SIZE (8*1024) +#define MCU_SRAM_BASE (0x20000000) +#define MCU_EXTSRAM_SIZE (0) +#define MCU_EXTSRAM_BASE (0x68000000) +#define MCU_FLASH_BASE (0x08000000) +#define MCU_FLASH_SIZE (64*1024) +#define MCU_FLASH_PAGE_SIZE 2048 +#define MCU_FLASH_IMAGE_SIZE (62*1024) + +#endif diff --git a/libs/stm32f0xx.ld.in b/libs/stm32f0xx.ld.in new file mode 120000 index 0000000..fa64894 --- /dev/null +++ b/libs/stm32f0xx.ld.in @@ -0,0 +1 @@ +stm32f10x.ld.in \ No newline at end of file diff --git a/libs/stm32f0xx.mk b/libs/stm32f0xx.mk new file mode 100644 index 0000000..58f4efb --- /dev/null +++ b/libs/stm32f0xx.mk @@ -0,0 +1,39 @@ +# The processor! +MCU_CORE=cm0 +# Set up include paths +MCU_INCLUDE += -I$(LIBDIR)/CMSIS/Include +MCU_INCLUDE += -I$(LIBDIR)/CMSIS/Device/ST/STM32F0xx/Include +MCU_INCLUDE += -I$(LIBDIR)/STM32F0xx_StdPeriph_Driver/inc + +# Set up CFLAGS +MCU_CPPFLAGS += -D"assert_param(expr)=((void)0)" +MCU_CFLAGS += -mcpu=cortex-m0 -mthumb -Wa,-mthumb + +# Target Libraries +MCU_LIBS += $(LIBDIR)/libstm32f0xx.a + +# CMSIS +STM32F0xx_OBJS = $(LIBDIR)/CMSIS/Device/ST/STM32F0xx/Source/Templates/system_stm32f0xx.o +# Standard Peripheral Library +STM32F0xx_OBJSR = stm32f0xx_adc.o stm32f0xx_cec.o stm32f0xx_comp.o \ + stm32f0xx_crc.o stm32f0xx_dac.o stm32f0xx_dbgmcu.o \ + stm32f0xx_dma.o stm32f0xx_exti.o stm32f0xx_flash.o \ + stm32f0xx_gpio.o stm32f0xx_i2c.o stm32f0xx_iwdg.o \ + stm32f0xx_misc.o stm32f0xx_pwr.o stm32f0xx_rcc.o \ + stm32f0xx_rtc.o stm32f0xx_spi.o stm32f0xx_syscfg.o \ + stm32f0xx_tim.o stm32f0xx_usart.o stm32f0xx_wwdg.o + +STM32F0xx_OBJS += $(addprefix $(LIBDIR)/STM32F0xx_StdPeriph_Driver/src/,$(STM32F0xx_OBJSR)) + +# Bookkeeping +MCU_LIBS_OBJS += $(STM32F0xx_OBJS) + +# Build Rules +$(LIBDIR)/startup_$(MCU).o: $(LIBDIR)/CMSIS/Device/ST/STM32F0xx/Source/Templates/gcc_ride7/startup_$(MCU).s + @$(E) " AS " $@ + $(Q)$(AS) -c -o $@ $< + +$(LIBDIR)/libstm32f0xx.a: $(STM32F0xx_OBJS) $(LIBDIR)/startup_$(MCU).o + @$(E) " AR " $@ + $(Q)$(AR) cr $@ $(STM32F0xx_OBJS) $(LIBDIR)/startup_$(MCU).o + diff --git a/toolchain-cm0.config b/toolchain-cm0.config new file mode 100644 index 0000000..3f16eff --- /dev/null +++ b/toolchain-cm0.config @@ -0,0 +1,543 @@ +# +# Automatically generated make config: don't edit +# crosstool-NG hg+default-1048e4dca434 Configuration +# Thu Jul 25 09:15:33 2013 +# +CT_CONFIGURE_has_xz=y +CT_CONFIGURE_has_cvs=y +CT_CONFIGURE_has_svn=y +CT_MODULES=y + +# +# Paths and misc options +# + +# +# crosstool-NG behavior +# +# CT_OBSOLETE is not set +CT_EXPERIMENTAL=y +# CT_ALLOW_BUILD_AS_ROOT is not set +# CT_DEBUG_CT is not set + +# +# Paths +# +CT_LOCAL_TARBALLS_DIR="${CT_TOP_DIR}/dl" +CT_SAVE_TARBALLS=y +CT_CUSTOM_LOCATION_ROOT_DIR="" +CT_WORK_DIR="${CT_TOP_DIR}/.build" +CT_PREFIX_DIR="${HOME}/x-tools/${CT_TARGET}" +CT_INSTALL_DIR="${CT_PREFIX_DIR}" +CT_RM_RF_PREFIX_DIR=y +CT_REMOVE_DOCS=y +CT_INSTALL_DIR_RO=y +CT_STRIP_ALL_TOOLCHAIN_EXECUTABLES=y + +# +# Downloading +# +# CT_FORBID_DOWNLOAD is not set +# CT_FORCE_DOWNLOAD is not set +CT_CONNECT_TIMEOUT=10 +# CT_ONLY_DOWNLOAD is not set +# CT_USE_MIRROR is not set + +# +# Extracting +# +# CT_FORCE_EXTRACT is not set +CT_OVERIDE_CONFIG_GUESS_SUB=y +# CT_ONLY_EXTRACT is not set +# CT_PATCH_BUNDLED is not set +# CT_PATCH_LOCAL is not set +CT_PATCH_BUNDLED_LOCAL=y +# CT_PATCH_LOCAL_BUNDLED is not set +# CT_PATCH_BUNDLED_FALLBACK_LOCAL is not set +# CT_PATCH_LOCAL_FALLBACK_BUNDLED is not set +# CT_PATCH_NONE is not set +CT_PATCH_ORDER="bundled,local" +CT_PATCH_USE_LOCAL=y +CT_LOCAL_PATCH_DIR="" + +# +# Build behavior +# +CT_PARALLEL_JOBS=0 +CT_LOAD="" +CT_USE_PIPES=y +CT_EXTRA_CFLAGS_FOR_BUILD="" +CT_EXTRA_LDFLAGS_FOR_BUILD="" +CT_EXTRA_CFLAGS_FOR_HOST="" +CT_EXTRA_LDFLAGS_FOR_HOST="" +# CT_CONFIG_SHELL_SH is not set +# CT_CONFIG_SHELL_ASH is not set +CT_CONFIG_SHELL_BASH=y +# CT_CONFIG_SHELL_CUSTOM is not set +CT_CONFIG_SHELL="${bash}" + +# +# Logging +# +# CT_LOG_ERROR is not set +# CT_LOG_WARN is not set +CT_LOG_INFO=y +# CT_LOG_EXTRA is not set +# CT_LOG_ALL is not set +# CT_LOG_DEBUG is not set +CT_LOG_LEVEL_MAX="INFO" +# CT_LOG_SEE_TOOLS_WARN is not set +CT_LOG_PROGRESS_BAR=y +CT_LOG_TO_FILE=y +CT_LOG_FILE_COMPRESS=y + +# +# Target options +# +CT_ARCH="arm" +CT_ARCH_SUPPORTS_BOTH_MMU=y +CT_ARCH_SUPPORTS_BOTH_ENDIAN=y +CT_ARCH_SUPPORTS_32=y +CT_ARCH_SUPPORTS_WITH_ARCH=y +CT_ARCH_SUPPORTS_WITH_CPU=y +CT_ARCH_SUPPORTS_WITH_TUNE=y +CT_ARCH_SUPPORTS_WITH_FLOAT=y +CT_ARCH_SUPPORTS_WITH_FPU=y +CT_ARCH_SUPPORTS_SOFTFP=y +CT_ARCH_DEFAULT_HAS_MMU=y +CT_ARCH_DEFAULT_LE=y +CT_ARCH_DEFAULT_32=y +CT_ARCH_ARCH="" +CT_ARCH_CPU="cortex-m0" +CT_ARCH_TUNE="" +CT_ARCH_FPU="" +# CT_ARCH_BE is not set +CT_ARCH_LE=y +CT_ARCH_32=y +CT_ARCH_BITNESS=32 +# CT_ARCH_FLOAT_HW is not set +CT_ARCH_FLOAT_SW=y +CT_TARGET_CFLAGS="" +CT_TARGET_LDFLAGS="" +CT_ARCH_arm=y +# CT_ARCH_x86 is not set +# CT_ARCH_sh is not set +# CT_ARCH_avr32 is not set +# CT_ARCH_mips is not set +# CT_ARCH_sparc is not set +# CT_ARCH_powerpc is not set +# CT_ARCH_s390 is not set +# CT_ARCH_m68k is not set +# CT_ARCH_alpha is not set +# CT_ARCH_microblaze is not set +# CT_ARCH_blackfin is not set +CT_ARCH_arm_AVAILABLE=y +CT_ARCH_x86_AVAILABLE=y +CT_ARCH_sh_AVAILABLE=y +CT_ARCH_avr32_AVAILABLE=y +CT_ARCH_mips_AVAILABLE=y +CT_ARCH_sparc_AVAILABLE=y +CT_ARCH_powerpc_AVAILABLE=y +CT_ARCH_s390_AVAILABLE=y +CT_ARCH_m68k_AVAILABLE=y +CT_ARCH_alpha_AVAILABLE=y +CT_ARCH_microblaze_AVAILABLE=y +CT_ARCH_blackfin_AVAILABLE=y +CT_ARCH_SUFFIX="" + +# +# Generic target options +# +# CT_MULTILIB is not set +# CT_ARCH_USE_MMU is not set +CT_ARCH_ENDIAN="little" + +# +# Target optimisations +# +# CT_ARCH_FLOAT_SOFTFP is not set +CT_ARCH_FLOAT="soft" + +# +# arm other options +# +CT_ARCH_ARM_MODE="thumb" +# CT_ARCH_ARM_MODE_ARM is not set +CT_ARCH_ARM_MODE_THUMB=y +# CT_ARCH_ARM_INTERWORKING is not set +CT_ARCH_ARM_EABI_FORCE=y +CT_ARCH_ARM_EABI=y + +# +# Toolchain options +# + +# +# General toolchain options +# +CT_FORCE_SYSROOT=y +CT_USE_SYSROOT=y +CT_SYSROOT_NAME="sysroot" +CT_SYSROOT_DIR_PREFIX="" +# CT_STATIC_TOOLCHAIN is not set +CT_TOOLCHAIN_PKGVERSION="20310725" +CT_TOOLCHAIN_BUGURL="" + +# +# Tuple completion and aliasing +# +CT_TARGET_VENDOR="cm0" +CT_TARGET_ALIAS_SED_EXPR="" +CT_TARGET_ALIAS="" + +# +# Toolchain type +# +# CT_NATIVE is not set +CT_CROSS=y +# CT_CROSS_NATIVE is not set +# CT_CANADIAN is not set +CT_TOOLCHAIN_TYPE="cross" + +# +# Build system +# +CT_BUILD="" +CT_BUILD_PREFIX="" +CT_BUILD_SUFFIX="" + +# +# Misc options +# +# CT_TOOLCHAIN_ENABLE_NLS is not set + +# +# Operating System +# +CT_BARE_METAL=y +CT_KERNEL="bare-metal" +CT_KERNEL_bare_metal=y +# CT_KERNEL_linux is not set +CT_KERNEL_bare_metal_AVAILABLE=y +CT_KERNEL_linux_AVAILABLE=y +CT_KERNEL_windows_AVAILABLE=y + +# +# Common kernel options +# + +# +# Binary utilities +# +# CT_ARCH_BINFMT_ELF is not set +CT_ARCH_BINFMT_FLAT=y +# CT_ARCH_BINFMT_FDPIC is not set +CT_BINUTILS="binutils" +CT_BINUTILS_binutils=y + +# +# GNU binutils +# +CT_BINUTILS_V_2_23_1=y +# CT_BINUTILS_V_2_22 is not set +# CT_BINUTILS_V_2_21_53 is not set +# CT_BINUTILS_V_2_21_1a is not set +# CT_BINUTILS_V_2_20_1a is not set +# CT_BINUTILS_V_2_19_1a is not set +# CT_BINUTILS_V_2_18a is not set +# CT_BINUTILS_CUSTOM is not set +CT_BINUTILS_VERSION="2.23.1" +CT_BINUTILS_2_23_or_later=y +CT_BINUTILS_2_22_or_later=y +CT_BINUTILS_2_21_or_later=y +CT_BINUTILS_2_20_or_later=y +CT_BINUTILS_2_19_or_later=y +CT_BINUTILS_2_18_or_later=y +CT_BINUTILS_HAS_HASH_STYLE=y +CT_BINUTILS_HAS_GOLD=y +CT_BINUTILS_GOLD_SUPPORTS_ARCH=y +CT_BINUTILS_HAS_PLUGINS=y +CT_BINUTILS_HAS_PKGVERSION_BUGURL=y +# CT_BINUTILS_LINKER_LD is not set +# CT_BINUTILS_LINKER_GOLD is not set +CT_BINUTILS_LINKER_LD_GOLD=y +# CT_BINUTILS_LINKER_GOLD_LD is not set +CT_BINUTILS_GOLD_INSTALLED=y +CT_BINUTILS_GOLD_THREADS=y +CT_BINUTILS_LINKER_BOTH=y +CT_BINUTILS_LINKERS_LIST="ld,gold" +# CT_BINUTILS_LD_WRAPPER is not set +CT_BINUTILS_LINKER_DEFAULT="bfd" +CT_BINUTILS_PLUGINS=y +CT_BINUTILS_EXTRA_CONFIG_ARRAY="" + +# +# binutils other options +# + +# +# elf2flt +# +CT_ELF2FLT_CVSHEAD=y +# CT_ELF2FLT_CUSTOM is not set +CT_ELF2FLT_VERSION="cvs" +CT_ELF2FLT_EXTRA_CONFIG_ARRAY="" + +# +# C compiler +# +CT_CC="gcc" +CT_CC_VERSION="linaro-4.8-2013.06-1" +CT_CC_CORE_PASSES_NEEDED=y +CT_CC_gcc=y +CT_CC_GCC_SHOW_LINARO=y +CT_CC_V_linaro_4_8=y +# CT_CC_V_4_8_0 is not set +# CT_CC_V_linaro_4_7 is not set +# CT_CC_V_4_7_3 is not set +# CT_CC_V_4_7_2 is not set +# CT_CC_V_4_7_1 is not set +# CT_CC_V_4_7_0 is not set +# CT_CC_V_linaro_4_6 is not set +# CT_CC_V_4_6_4 is not set +# CT_CC_V_4_6_3 is not set +# CT_CC_V_4_6_2 is not set +# CT_CC_V_4_6_1 is not set +# CT_CC_V_4_6_0 is not set +# CT_CC_V_linaro_4_5 is not set +# CT_CC_V_4_5_3 is not set +# CT_CC_V_4_5_2 is not set +# CT_CC_V_4_5_1 is not set +# CT_CC_V_4_5_0 is not set +# CT_CC_V_linaro_4_4 is not set +# CT_CC_V_4_4_7 is not set +# CT_CC_V_4_4_6 is not set +# CT_CC_V_4_4_5 is not set +# CT_CC_V_4_4_4 is not set +# CT_CC_V_4_4_3 is not set +# CT_CC_V_4_4_2 is not set +# CT_CC_V_4_4_1 is not set +# CT_CC_V_4_4_0 is not set +# CT_CC_V_4_3_6 is not set +# CT_CC_V_4_3_5 is not set +# CT_CC_V_4_3_4 is not set +# CT_CC_V_4_3_3 is not set +# CT_CC_V_4_3_2 is not set +# CT_CC_V_4_3_1 is not set +# CT_CC_V_4_2_4 is not set +# CT_CC_V_4_2_2 is not set +# CT_CC_CUSTOM is not set +CT_CC_GCC_4_2_or_later=y +CT_CC_GCC_4_3_or_later=y +CT_CC_GCC_4_4_or_later=y +CT_CC_GCC_4_5_or_later=y +CT_CC_GCC_4_6_or_later=y +CT_CC_GCC_4_7_or_later=y +CT_CC_GCC_4_8=y +CT_CC_GCC_4_8_or_later=y +CT_CC_GCC_HAS_GRAPHITE=y +CT_CC_GCC_USE_GRAPHITE=y +CT_CC_GCC_HAS_LTO=y +CT_CC_GCC_USE_LTO=y +CT_CC_GCC_HAS_PKGVERSION_BUGURL=y +CT_CC_GCC_HAS_BUILD_ID=y +CT_CC_GCC_HAS_LNK_HASH_STYLE=y +CT_CC_GCC_ENABLE_PLUGINS=y +CT_CC_GCC_GOLD=y +CT_CC_GCC_USE_GMP_MPFR=y +CT_CC_GCC_USE_MPC=y +CT_CC_GCC_HAS_LIBQUADMATH=y +CT_CC_SUPPORT_CXX=y +CT_CC_SUPPORT_FORTRAN=y +CT_CC_SUPPORT_JAVA=y +CT_CC_SUPPORT_ADA=y +CT_CC_SUPPORT_OBJC=y +CT_CC_SUPPORT_OBJCXX=y + +# +# Additional supported languages: +# +CT_CC_LANG_CXX=y + +# +# gcc other options +# +CT_CC_ENABLE_CXX_FLAGS="" +CT_CC_CORE_EXTRA_CONFIG_ARRAY="" +# CT_CC_STATIC_LIBSTDCXX is not set +CT_CC_GCC_SYSTEM_ZLIB=y + +# +# Optimisation features +# + +# +# Settings for libraries running on target +# +CT_CC_GCC_ENABLE_TARGET_OPTSPACE=y +# CT_CC_GCC_LIBMUDFLAP is not set +# CT_CC_GCC_LIBGOMP is not set +# CT_CC_GCC_LIBSSP is not set +# CT_CC_GCC_LIBQUADMATH is not set + +# +# Misc. obscure options. +# +# CT_CC_GCC_DISABLE_PCH is not set +CT_CC_GCC_LDBL_128=m +CT_CC_GCC_BUILD_ID=y +# CT_CC_GCC_LNK_HASH_STYLE_DEFAULT is not set +# CT_CC_GCC_LNK_HASH_STYLE_SYSV is not set +# CT_CC_GCC_LNK_HASH_STYLE_GNU is not set +CT_CC_GCC_LNK_HASH_STYLE_BOTH=y +CT_CC_GCC_LNK_HASH_STYLE="both" + +# +# C-library +# +CT_LIBC="newlib" +CT_LIBC_VERSION="2.0.0" +# CT_LIBC_none is not set +CT_LIBC_newlib=y +CT_LIBC_none_AVAILABLE=y +CT_LIBC_mingw_AVAILABLE=y +CT_LIBC_glibc_AVAILABLE=y +CT_LIBC_newlib_AVAILABLE=y +CT_LIBC_NEWLIB_V_2_0_0=y +# CT_LIBC_NEWLIB_V_1_20_0 is not set +# CT_LIBC_NEWLIB_V_1_19_0 is not set +# CT_LIBC_NEWLIB_V_1_18_0 is not set +# CT_LIBC_NEWLIB_V_1_17_0 is not set +# CT_LIBC_NEWLIB_CUSTOM is not set + +# +# Architecture specific options +# +CT_LIBC_uClibc_AVAILABLE=y +CT_LIBC_eglibc_AVAILABLE=y +CT_LIBC_SUPPORT_THREADS_NONE=y +CT_THREADS="none" + +# +# Common C library options +# +CT_THREADS_NONE=y + +# +# newlib other options +# +CT_LIBC_NEWLIB_IO_C99FMT=y +# CT_LIBC_NEWLIB_IO_LL is not set +# CT_LIBC_NEWLIB_IO_FLOAT is not set +CT_LIBC_NEWLIB_DISABLE_SUPPLIED_SYSCALLS=y +CT_LIBC_NEWLIB_ENABLE_TARGET_OPTSPACE=y +CT_LIBC_NEWLIB_EXTRA_CONFIG_ARRAY="" + +# +# Debug facilities +# +CT_DEBUG_gdb=y +CT_GDB_CROSS=y +# CT_GDB_CROSS_STATIC is not set +CT_GDB_CROSS_SIM=y +CT_GDB_CROSS_PYTHON=y +CT_GDB_CROSS_EXTRA_CONFIG_ARRAY="" + +# +# In bare-metal, you'll need to +# + +# +# provide your own gdbserver stub. +# + +# +# gdb version +# +CT_DEBUG_GDB_SHOW_LINARO=y +CT_GDB_V_linaro_7_6_2013_05=y +# CT_GDB_V_linaro_7_5_2012_12_1 is not set +# CT_GDB_V_linaro_7_4_2012_06 is not set +# CT_GDB_V_7_4_1 is not set +# CT_GDB_V_7_4 is not set +# CT_GDB_V_linaro_7_3_2011_12 is not set +# CT_GDB_V_7_3_1 is not set +# CT_GDB_V_7_3a is not set +# CT_GDB_V_linaro_7_2_2011_05_0 is not set +# CT_GDB_V_7_2a is not set +# CT_GDB_V_7_1a is not set +# CT_GDB_V_7_0_1a is not set +# CT_GDB_V_7_0a is not set +# CT_GDB_V_6_8a is not set +# CT_GDB_CUSTOM is not set +CT_GDB_7_2_or_later=y +CT_GDB_7_0_or_later=y +CT_GDB_HAS_PKGVERSION_BUGURL=y +CT_GDB_INSTALL_GDBINIT=y +CT_GDB_VERSION="linaro-7.6-2013.05" +# CT_DEBUG_ltrace is not set +# CT_DEBUG_duma is not set +# CT_DEBUG_dmalloc is not set +# CT_DEBUG_strace is not set + +# +# Companion libraries +# +CT_COMPLIBS_NEEDED=y +CT_GMP_NEEDED=y +CT_MPFR_NEEDED=y +CT_ISL_NEEDED=y +CT_CLOOG_NEEDED=y +CT_MPC_NEEDED=y +CT_COMPLIBS=y +CT_GMP=y +CT_MPFR=y +CT_ISL=y +CT_CLOOG=y +CT_MPC=y +CT_GMP_V_5_1_1=y +# CT_GMP_V_5_0_2 is not set +# CT_GMP_V_5_0_1 is not set +# CT_GMP_V_4_3_2 is not set +# CT_GMP_V_4_3_1 is not set +# CT_GMP_V_4_3_0 is not set +CT_GMP_VERSION="5.1.1" +CT_MPFR_V_3_1_2=y +# CT_MPFR_V_3_1_0 is not set +# CT_MPFR_V_3_0_1 is not set +# CT_MPFR_V_3_0_0 is not set +# CT_MPFR_V_2_4_2 is not set +# CT_MPFR_V_2_4_1 is not set +# CT_MPFR_V_2_4_0 is not set +CT_MPFR_VERSION="3.1.2" +CT_ISL_V_0_11_1=y +CT_ISL_VERSION="0.11.1" +CT_CLOOG_V_0_18_0=y +CT_CLOOG_VERSION="0.18.0" +CT_CLOOG_0_18_or_later=y +CT_MPC_V_1_0_1=y +# CT_MPC_V_1_0 is not set +# CT_MPC_V_0_9 is not set +# CT_MPC_V_0_8_2 is not set +# CT_MPC_V_0_8_1 is not set +# CT_MPC_V_0_7 is not set +CT_MPC_VERSION="1.0.1" + +# +# Companion libraries common options +# +# CT_COMPLIBS_CHECK is not set + +# +# Companion tools +# + +# +# READ HELP before you say 'Y' below !!! +# +# CT_COMP_TOOLS is not set + +# +# Test suite +# +# CT_TEST_SUITE_GCC is not set