#define CPU_HARVARD 0
/// Valid pointers should be >= than this value (used for debug)
- #if (CPU_CM3_LM3S1968 || CPU_CM3_LM3S8962 || CPU_CM3_STM32F103RB || CPU_CM3_SAM3)
+ #if (CPU_CM3_LM3S1968 || CPU_CM3_LM3S8962 || CPU_CM3_STM32 || CPU_CM3_SAM3)
#define CPU_RAM_START 0x20000000
#else
#warning Fix CPU_RAM_START address for your Cortex-M3, default value set to 0x20000000
--- /dev/null
+#
+#-*- coding: utf-8 -*-
+#
+# \file
+# <!--
+# This file is part of BeRTOS.
+#
+# Bertos is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction. Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License. This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+#
+# Copyright 2010 Develer S.r.l. (http://www.develer.com/)
+#
+# -->
+#
+# General CPU info denfinition for Cortex-M3-based STM32F101C4 cpu.
+#
+# This file contain all info for the BeRTOS wizard.
+#
+# \author Stefano Fedrigo <aleph@develer.com>
+#
+#
+
+# Import the common settings for the path.
+include("cm3.common")
+
+# CPU type used for flashing/debugging
+MK_PROGRAMMER_CPU = "stm32"
+MK_FLASH_SCRIPT = PRG_SCRIPTS_DIR + "arm/flash-stm32.sh"
+
+# CPU default clock frequency
+CPU_DEFAULT_FREQ = "36000000UL"
+
+# Special CPU related tags.
+CPU_TAGS += ["stm32"]
+
+# Additional hw drivers.
+MK_CPU_CSRC += DRV_DIR + "gpio_stm32.c " + DRV_DIR + "clock_stm32.c "
+
+# Short description of the cpu.
+CPU_DESC += [ "16 Kbytes on-chip flash memory",
+ "4 Kbytes on-chip SRAM memory",
+ "2 UARTs interfaces",
+ "1 I2C interface",
+ "1 ADC x10 channels 12-bit" ]
+
+# GCC flags for this cpu.
+MK_CPU_CPPFLAGS += " -D__ARM_STM32F101C4__"
+MK_CPU_LDFLAGS += " -T " + SCRIPT_DIR + "stm32f101c4_rom.ld"
#include "stm32_i2c.h"
#include "stm32_flash.h"
-#if CPU_CM3_STM32F103RB
+#if CPU_CM3_STM32F101C4
+ #define GPIO_USART1_TX_PIN BV(9)
+ #define GPIO_USART1_RX_PIN BV(10)
+ #define GPIO_USART2_TX_PIN BV(2)
+ #define GPIO_USART2_RX_PIN BV(3)
+#elif CPU_CM3_STM32F103RB
#define GPIO_USART1_TX_PIN BV(9)
#define GPIO_USART1_RX_PIN BV(10)
#define GPIO_USART2_TX_PIN BV(2)
#error No USART pins are defined for select cpu
#endif
-#if CPU_CM3_STM32F103RB
+#if CPU_CM3_STM32F101C4
+ #define GPIO_I2C1_SCL_PIN BV(6)
+ #define GPIO_I2C1_SDA_PIN BV(7)
+#elif CPU_CM3_STM32F103RB
#define GPIO_I2C1_SCL_PIN BV(6)
#define GPIO_I2C1_SDA_PIN BV(7)
#define GPIO_I2C2_SCL_PIN BV(10)
#error No i2c pins are defined for select cpu
#endif
-#if CPU_CM3_STM32F103RB
+#if CPU_CM3_STM32F101C4 || CPU_CM3_STM32F103RB
#define FLASH_PAGE_SIZE 1024
#else
#error No embedded definition for select cpu
--- /dev/null
+/**
+ * \file
+ * <!--
+ * This file is part of BeRTOS.
+ *
+ * Bertos is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * As a special exception, you may use this file as part of a free software
+ * library without restriction. Specifically, if other files instantiate
+ * templates or use macros or inline functions from this file, or you compile
+ * this file and link it with other files to produce an executable, this
+ * file does not by itself cause the resulting executable to be covered by
+ * the GNU General Public License. This exception does not however
+ * invalidate any other reasons why the executable file might be covered by
+ * the GNU General Public License.
+ *
+ * Copyright 2010 Develer S.r.l. (http://www.develer.com/)
+ *
+ * -->
+ *
+ * \author Stefano Fedrigo <aleph@develer.com>
+ *
+ * \brief Script for STM32F101C4 cpu.
+ *
+ */
+
+/*
+ * Define memory configuration for STM32F101C4
+ */
+MEMORY
+{
+ rom(rx) : org = 0x00000000, len = 16k
+ ram(rwx) : org = 0x20000000, len = 4k
+}
+
+INCLUDE "bertos/cpu/cortex-m3/scripts/cortex-m3_ram.ld"
+
--- /dev/null
+/**
+ * \file
+ * <!--
+ * This file is part of BeRTOS.
+ *
+ * Bertos is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * As a special exception, you may use this file as part of a free software
+ * library without restriction. Specifically, if other files instantiate
+ * templates or use macros or inline functions from this file, or you compile
+ * this file and link it with other files to produce an executable, this
+ * file does not by itself cause the resulting executable to be covered by
+ * the GNU General Public License. This exception does not however
+ * invalidate any other reasons why the executable file might be covered by
+ * the GNU General Public License.
+ *
+ * Copyright 2010 Develer S.r.l. (http://www.develer.com/)
+ *
+ * -->
+ *
+ * \author Stefano Fedrigo <aleph@develer.com>
+ *
+ * \brief Script for STM32F101C4 cpu.
+ *
+ */
+
+/*
+ * Define memory configuration for STM32F101C4
+ */
+MEMORY
+{
+ rom(rx) : org = 0x00000000, len = 16k
+ ram(rwx) : org = 0x20000000, len = 4k
+}
+
+INCLUDE "bertos/cpu/cortex-m3/scripts/cortex-m3_rom.ld"
+
#define CPU_CM3_LM3S8962 0
#endif
+ #if defined (__ARM_STM32F101C4__)
+ #define CPU_CM3_STM32 1
+ #define CPU_CM3_STM32F101C4 1
+ #define CPU_NAME "STM32F101C4"
+ #else
+ #define CPU_CM3_STM32F101C4 0
+ #endif
+
#if defined (__ARM_STM32F103RB__)
#define CPU_CM3_STM32 1
#define CPU_CM3_STM32F103RB 1
#define CPU_CM3_STM32 0
#define CPU_CM3_SAM3 0
#elif defined (CPU_CM3_STM32)
- #if CPU_CM3_STM32F103RB + 0 != 1
+ #if CPU_CM3_STM32F101C4 + CPU_CM3_STM32F103RB + 0 != 1
#error STM32 Cortex-M3 CPU configuration error
#endif
#define CPU_CM3_LM3S 0
#define CPU_CM3_STM32 0
#define CPU_CM3_STM32F103RB 0
+ #define CPU_CM3_STM32F101C4 0
#define CPU_CM3_SAM3 0
#define CPU_CM3_SAM3N 0