From: lottaviano Date: Wed, 4 May 2011 13:00:13 +0000 (+0000) Subject: Graphical support with empty template for STM32VLDiscovery board added to the wizard. X-Git-Tag: 2.7.0~90 X-Git-Url: https://codewiz.org/gitweb?p=bertos.git;a=commitdiff_plain;h=bbc9b62788f5e2f94dd550708a6af22f6d49eb98 Graphical support with empty template for STM32VLDiscovery board added to the wizard. Signed-off-by: Andrea Scalise Signed-off-by: Matteo Silvestri git-svn-id: https://src.develer.com/svnoss/bertos/trunk@4876 38d2e660-2303-0410-9eaa-f027e97ec537 --- diff --git a/boards/stm32VLDiscovery/.image.png b/boards/stm32VLDiscovery/.image.png new file mode 100755 index 00000000..b88877dd Binary files /dev/null and b/boards/stm32VLDiscovery/.image.png differ diff --git a/boards/stm32VLDiscovery/.spec b/boards/stm32VLDiscovery/.spec new file mode 100644 index 00000000..a7f2ab55 --- /dev/null +++ b/boards/stm32VLDiscovery/.spec @@ -0,0 +1,32 @@ +name = "ST Microeletronics STM32VLDiscovery" +description = ''' +

ST Microeletronics STM32VLDiscovery

+ +

+ + + + + + + + + + + + + + + + + + +
CPUST Microelectronics STM32F100RB
Clock24MHz
Memory128kB Flash, 8kB SRAM
Peripheralstimers, UART, SPI, I²C, ISP, JTAG/BDM, user and reset buttons, ST-Link USB connector, leds, SWD connector
+

+

+STM32LVDiscovery® is based on ST Microelectronics STM32F100RB Cortex-M3 CPU. Visit the STM32VLDiscovery page for more information. +

+ +''' + + diff --git a/boards/stm32VLDiscovery/hw/hw_adc.h b/boards/stm32VLDiscovery/hw/hw_adc.h new file mode 100644 index 00000000..8e0f0dee --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_adc.h @@ -0,0 +1,69 @@ +/** + * \file + * + * + * \brief Some ADC utilis. + * + * \author Daniele Basile + */ + +#ifndef HW_ADC_H +#define HW_ADC_H + +#include + +#include + +/* + * Return the Vrefint voltage in mV. + */ +INLINE uint16_t hw_readVrefint(void) +{ + return ADC_RANGECONV(adc_read(ADC_VREFINT_CH), 0, 3300); +} + +/* + * Return the cpu core temperature in degrees * 100. + */ +INLINE uint16_t hw_readIntTemp(void) +{ + uint16_t vsens = ADC_RANGECONV(adc_read(ADC_TEMP_CH), 0, 3300); + + uint16_t temp = (((ADC_TEMP_V25 - vsens) * 1000)/ ADC_TEMP_SLOPE) + ADC_TEMP_CONST; + return (temp / 10); +} + +INLINE uint16_t hw_readRawTemp(void) +{ + return (uint16_t)ADC_RANGECONV(adc_read(ADC_TEMP_CH), 0, 3300); +} + +#endif /* HW_ADC_H */ diff --git a/boards/stm32VLDiscovery/hw/hw_afsk.c b/boards/stm32VLDiscovery/hw/hw_afsk.c new file mode 100644 index 00000000..8adb432d --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_afsk.c @@ -0,0 +1,41 @@ +/** + * \file + * + * + * \brief AFSK modem hardware-specific definitions. + * + * + * \author Francesco Sacchi + */ + + +#include "hw_afsk.h" + diff --git a/boards/stm32VLDiscovery/hw/hw_afsk.h b/boards/stm32VLDiscovery/hw/hw_afsk.h new file mode 100644 index 00000000..eae0ef73 --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_afsk.h @@ -0,0 +1,85 @@ +/** + * \file + * + * + * \brief AFSK modem hardware-specific definitions. + * + * \author Francesco Sacchi + */ + +#ifndef HW_AFSK_H +#define HW_AFSK_H + +#include "cfg/cfg_arch.h" + +#warning TODO:This is an example implementation, you must implement it! + +/** + * Initialize the specified channel of the ADC for AFSK needs. + * The adc should be configured to have a continuos stream of convertions. + * For every convertion there must be an ISR that read the sample + * and call afsk_adc_isr(), passing the context and the sample. + * + * \param ch channel to be used for AFSK demodulation. + * \param ctx AFSK context (\see Afsk). This parameter must be saved and + * passed back to afsk_adc_isr() for every convertion. + */ +#define AFSK_ADC_INIT(ch, ctx) do { (void)ch, (void)ctx; } while (0) + +#define AFSK_STROBE_INIT() do { /* Implement me */ } while (0) +#define AFSK_STROBE_ON() do { /* Implement me */ } while (0) +#define AFSK_STROBE_OFF() do { /* Implement me */ } while (0) + +/** + * Initialize the specified channel of the DAC for AFSK needs. + * The DAC has to be configured in order to call an ISR for every sample sent. + * The DAC doesn't have to start the IRQ immediatly but have to wait + * the AFSK driver to call AFSK_DAC_IRQ_START(). + * The ISR must then call afsk_dac_isr() passing the AFSK context. + * \param ch DAC channel to be used for AFSK modulation. + * \param ctx AFSK context (\see Afsk). This parameter must be saved and + * passed back to afsk_dac_isr() for every convertion. + */ +#define AFSK_DAC_INIT(ch, ctx) do { (void)ch, (void)ctx; } while (0) + +/** + * Start DAC convertions on channel \a ch. + * \param ch DAC channel. + */ +#define AFSK_DAC_IRQ_START(ch) do { (void)ch; /* Implement me */ } while (0) + +/** + * Stop DAC convertions on channel \a ch. + * \param ch DAC channel. + */ +#define AFSK_DAC_IRQ_STOP(ch) do { (void)ch; /* Implement me */ } while (0) + +#endif /* HW_AFSK_H */ diff --git a/boards/stm32VLDiscovery/hw/hw_blanker.h b/boards/stm32VLDiscovery/hw/hw_blanker.h new file mode 100644 index 00000000..c8c11331 --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_blanker.h @@ -0,0 +1,49 @@ +/** + * \file + * + * + * \brief Hardware-specific definitions + * + * + * \author Daniele Basile + */ + +#ifndef HW_BALNCKER_H +#define HW_BALNCKER_H + +#warning TODO:This is an example implementation, you must implement it! + +#define BLK_LCDON /* power_LcdOn() Implement me! */ +#define BLK_LCDOFF /* power_LcdOff() Implement me! */ + + +#endif /* HW_BLANCKER_H */ + diff --git a/boards/stm32VLDiscovery/hw/hw_boot.h b/boards/stm32VLDiscovery/hw/hw_boot.h new file mode 100644 index 00000000..34238102 --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_boot.h @@ -0,0 +1,50 @@ +/** + * \file + * + * + * \brief Bootloader hardware specific definition. + * + * \author Daniele Basile + */ + +#ifndef HW_BOOT_H +#define HW_BOOT_H + +/** + * Define bootloader flash size. + * + * Note: Remember that this size should be comply + * to size defined in linker script, otherwise you + * could not find the main program application. + */ +#define FLASH_BOOT_SIZE 0x8000 // 32kbyte + +#endif /* HW_BOOT_H */ diff --git a/boards/stm32VLDiscovery/hw/hw_buzzer.h b/boards/stm32VLDiscovery/hw/hw_buzzer.h new file mode 100644 index 00000000..d5974782 --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_buzzer.h @@ -0,0 +1,51 @@ +/** + * \file + * + * + * \brief Buzzer hardware-specific definitions + * + * + * \author Francesco Sacchi + */ + +#ifndef HW_BUZZER_H +#define HW_BUZZER_H + +#warning TODO:This is an example implementation, you must implement it! + +#define BUZZER_BIT 1 +#define IS_BUZZER_ON 0 +#define BUZZER_HW_INIT do { /* Implement me! */ } while (0) +#define BUZZER_ON do { /* Implement me! */ } while (0) +#define BUZZER_OFF do { /* Implement me! */ } while (0) + +#endif /* HW_BUZZER_H */ diff --git a/boards/stm32VLDiscovery/hw/hw_buzzerled.h b/boards/stm32VLDiscovery/hw/hw_buzzerled.h new file mode 100644 index 00000000..4399e0a8 --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_buzzerled.h @@ -0,0 +1,46 @@ +/** + * \file + * + * + * \brief Buzzerled hardware-specific definitions + * + * + * \author Daniele Basile + */ + + +#ifndef HW_BUZZERLED_H +#define HW_BUZZERLED_H + +#warning TODO:This is an example implementation, you must implement it! + + +#endif /* HW_BUZZERLED_H */ diff --git a/boards/stm32VLDiscovery/hw/hw_cpufreq.h b/boards/stm32VLDiscovery/hw/hw_cpufreq.h new file mode 100644 index 00000000..7bbca4c5 --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_cpufreq.h @@ -0,0 +1,63 @@ +/** + * \file + * + * + * \brief Hardware-specific definitions + * + * + * \author Francesco Sacchi + */ + +#ifndef HW_CPUFREQ_H +#define HW_CPUFREQ_H + +#ifndef CPU_FREQ + #warning CPU_FREQ is not defined, you should upgrade to the newer clock frequency defining method. + + /* + * This file is DEPRECATED, it will be removed in the next major release. + * We have set up a new cpu frequency definition method. + * The new macro CPU_FREQ should be defined as a compiler flag in the + * makefile instead of the old CLOCK_FREQ macro. With new projects you should only + * use the CPU_FREQ macro. + * + * With gcc you should add something like this: + * + * -D'CPU_FREQ=(12288000UL)' + * + * For backward compatibility the old method is still supported. + */ + #include "hw/hw_cpu.h" + + #define CPU_FREQ (CLOCK_FREQ) +#endif /* CPU_FREQ */ + +#endif /* HW_CPUFREQ_H */ diff --git a/boards/stm32VLDiscovery/hw/hw_dataflash.c b/boards/stm32VLDiscovery/hw/hw_dataflash.c new file mode 100644 index 00000000..1a758a86 --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_dataflash.c @@ -0,0 +1,125 @@ +/** + * \file + * + * + * \brief Dataflash HW control routines. + * + * \author Francesco Sacchi + */ + +#include "hw/hw_dataflash.h" + +#include +#include +#include + +#warning TODO:This is an example implementation, you must implement it! + +MOD_DEFINE(hw_dataflash); + +/** + * Data flash init function. + * + * This function provide to initialize all that + * needs to drive a dataflash memory. + * Generaly needs to init pins to drive a CS line + * and reset line. + */ +void dataflash_hw_init(void) +{ + + //Disable CS line (remove if not needed) + dataflash_hw_setCS(false); + + /* + * Put here your code! + * + * Note: + * - if you drive manualy CS line, here init a CS pin + * - if you use a dedicated reset line, here init a reset pin + */ + + MOD_INIT(hw_dataflash); +} + +/** + * Chip Select drive. + * + * This function enable or disable a CS line. + * You must implement this function comply to a dataflash + * memory datasheet to allow the drive to enable a memory + * when \p enable flag is true, and disable it when is false. + */ +void dataflash_hw_setCS(bool enable) +{ + if (enable) + { + /* + * Put here your code to enable + * dataflash memory + */ + } + else + { + /* + * Put here your code to disable + * dataflash memory + */ + } +} + +/** + * Reset data flash memory. + * + * This function provide to send reset signal to + * dataflash memory. You must impement it comly to a dataflash + * memory datasheet to allow the drive to set a reset pin + * when \p enable flag is true, and disable it when is false. + * + */ +void dataflash_hw_setReset(bool enable) +{ + if (enable) + { + /* + * Put here your code to set reset of + * dataflash memory + */ + } + else + { + /* + * Put here your code to clear reset of + * dataflash memory + */ + } +} + diff --git a/boards/stm32VLDiscovery/hw/hw_dataflash.h b/boards/stm32VLDiscovery/hw/hw_dataflash.h new file mode 100644 index 00000000..0ea2fc9a --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_dataflash.h @@ -0,0 +1,47 @@ +/** + * \file + * + * + * \brief Dataflash HW control routines (interface). + * + * \author Francesco Sacchi + */ + +#ifndef HW_DATAFLASH_H +#define HW_DATAFLASH_H + +#include + +void dataflash_hw_init(void); +void dataflash_hw_setCS(bool enable); +void dataflash_hw_setReset(bool enable); + +#endif /* HW_DATAFLASH_H */ diff --git a/boards/stm32VLDiscovery/hw/hw_dc_motor.h b/boards/stm32VLDiscovery/hw/hw_dc_motor.h new file mode 100644 index 00000000..f39388df --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_dc_motor.h @@ -0,0 +1,71 @@ +/** + * \file + * + * + * \brief DC motor hardware-specific definitions + * + * \author Daniele Basile + */ + +#ifndef HW_DC_MOTOR_H +#define HW_DC_MOTOR_H + +#warning TODO:This is an example implementation, you must implement it! + +/** + * Define fuctions which read adc value from specific device + */ + #define HW_DC_MOTOR_READ_VALUE(dev, min, max) \ + ({ \ + /* Put here the fuction that read from ADC */ \ + (void)(dev); \ + (void)(min); \ + (void)(max); \ + (0); \ + }) + +// Macro that enable the select DC motor +#define DC_MOTOR_ENABLE(dev) /* Implement me! */ +// Macro that disable the select DC motor +#define DC_MOTOR_DISABLE(dev) /* Implement me! */ + +// Macro that left the DC motor rotor float +#define DC_MOTOR_STOP_FLOAT(dev) DC_MOTOR_DISABLE(dev) +// Macro that put in short circuit DC motor supply pins +#define DC_MOTOR_STOP_BRAKED(dev) do { /* Implement me! */ } while (0) + +// Macro that set motor direction +#define DC_MOTOR_SET_DIR(dev, dir) do { /* Implement me! */ } while (0) + +#define MOTOR_DC_INIT() do { /* Implement me! */ } while (0) + + +#endif /* HW_DC_MOTOR_H */ diff --git a/boards/stm32VLDiscovery/hw/hw_ft245rl.h b/boards/stm32VLDiscovery/hw/hw_ft245rl.h new file mode 100644 index 00000000..e2600201 --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_ft245rl.h @@ -0,0 +1,64 @@ +/** + * \file + * + * + * \brief FT245RL USB interface hardware-specific definitions + * + * + * \author Francesco Sacchi + */ + +#ifndef HW_FT245RL_H +#define HW_FT245RL_H + +#warning TODO:This is an example implementation, you must implement it! + +#define FT245RL_DATA_IN() /* Implement me! */ +#define FT245RL_DATA_OUT() /* Implement me! */ +#define WR_HI /* Implement me! */ +#define WR_LO /* Implement me! */ + +#define RD_HI /* Implement me! */ +#define RD_LO /* Implement me! */ + +#define FT245RL_INIT() \ +do \ +{ \ + /* Implement me! */ \ +} while(0) + +#define FT245RL_DATA_RDY() (/* Implement me! */ false) +#define FT245RL_GETDATA() ({/* Implement me! */ (0);}) +#define FT245RL_TX_ALLOWED() (/* Implement me! */ false) +#define FT245RL_SETDATA(data) do {/* Implement me! */ (void)((data)); } while(0) + +#endif /* HW_FT245RL_H */ + diff --git a/boards/stm32VLDiscovery/hw/hw_i2c_bitbang.h b/boards/stm32VLDiscovery/hw/hw_i2c_bitbang.h new file mode 100644 index 00000000..a5aea90a --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_i2c_bitbang.h @@ -0,0 +1,156 @@ +/** + * \file + * + * + * \brief Macro for I2C bitbang operation. + * + * + * + * \author Francesco Sacchi + */ + +#ifndef HW_I2C_BITBANG_H +#define HW_I2C_BITBANG_H + +#include + +#include + +#include +#include +#include + +#define SDA_PIN BV(0) +#define SCL_PIN BV(1) + +#define SDA_HI \ + stm32_gpioPinConfig((struct stm32_gpio *)GPIOB_BASE, SDA_PIN, GPIO_MODE_IN_FLOATING, GPIO_SPEED_50MHZ) + +#define SDA_LO \ + stm32_gpioPinConfig((struct stm32_gpio *)GPIOB_BASE, SDA_PIN, GPIO_MODE_OUT_PP, GPIO_SPEED_50MHZ) + +#define SCL_HI \ + stm32_gpioPinConfig((struct stm32_gpio *)GPIOB_BASE, SCL_PIN, GPIO_MODE_IN_FLOATING, GPIO_SPEED_50MHZ) + +#define SCL_LO \ + stm32_gpioPinConfig((struct stm32_gpio *)GPIOB_BASE, SCL_PIN, GPIO_MODE_OUT_PP, GPIO_SPEED_50MHZ) + + +#define SCL_IN \ + ({ \ + (stm32_gpioPinRead((struct stm32_gpio *)GPIOB_BASE, SCL_PIN)); \ + }) + +#define SDA_IN \ + ({ \ + (stm32_gpioPinRead((struct stm32_gpio *)GPIOB_BASE, SDA_PIN)); \ + }) + +/** + * This macro should set SDA and SCL lines as input. + */ +#define I2C_BITBANG_HW_INIT \ + do { \ + RCC->APB2ENR |= RCC_APB2_GPIOB; \ + stm32_gpioPinConfig((struct stm32_gpio *)GPIOB_BASE, SDA_PIN | SCL_PIN, GPIO_MODE_IN_FLOATING, GPIO_SPEED_50MHZ); \ + } while (0) + +/** + * Half bit delay routine used to generate the correct timings. + */ +#define I2C_HALFBIT_DELAY() \ + do { \ + timer_delay(1); \ + } while (0) + + +/* + * New api + */ +#include + +INLINE void i2c_sdaHi(int dev) +{ + (void)(dev); + stm32_gpioPinConfig((struct stm32_gpio *)GPIOB_BASE, SDA_PIN, GPIO_MODE_IN_FLOATING, GPIO_SPEED_50MHZ); +} + +INLINE void i2c_sdaLo(int dev) +{ + (void)(dev); + stm32_gpioPinConfig((struct stm32_gpio *)GPIOB_BASE, SDA_PIN, GPIO_MODE_OUT_PP, GPIO_SPEED_50MHZ); +} + +INLINE void i2c_sclHi(int dev) +{ + (void)(dev); + stm32_gpioPinConfig((struct stm32_gpio *)GPIOB_BASE, SCL_PIN, GPIO_MODE_IN_FLOATING, GPIO_SPEED_50MHZ); +} + +INLINE void i2c_sclLo(int dev) +{ + (void)(dev); + stm32_gpioPinConfig((struct stm32_gpio *)GPIOB_BASE, SCL_PIN, GPIO_MODE_OUT_PP, GPIO_SPEED_50MHZ); +} + +INLINE bool i2c_sdaIn(int dev) +{ + (void)(dev); + return stm32_gpioPinRead((struct stm32_gpio *)GPIOB_BASE, SDA_PIN); +} + +INLINE bool i2c_sclIn(int dev) +{ + (void)(dev); + return stm32_gpioPinRead((struct stm32_gpio *)GPIOB_BASE, SCL_PIN); +} + +/** + * Half bit delay routine used to generate the correct timings. + */ +INLINE void i2c_halfbitDelay(int dev) +{ + (void)(dev); + timer_udelay(1); +} + +/** + * This macro should set SDA and SCL lines as input. + */ +INLINE void i2c_bitbangInit(int dev) +{ + (void)(dev); + RCC->APB2ENR |= RCC_APB2_GPIOB; + stm32_gpioPinConfig((struct stm32_gpio *)GPIOB_BASE, SDA_PIN | SCL_PIN, GPIO_MODE_IN_FLOATING, GPIO_SPEED_50MHZ); +} + +#endif /* HW_I2C_BITBANG_H */ diff --git a/boards/stm32VLDiscovery/hw/hw_input.h b/boards/stm32VLDiscovery/hw/hw_input.h new file mode 100644 index 00000000..dbf3bc50 --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_input.h @@ -0,0 +1,46 @@ +/** + * \file + * + * + * \brief Macro for HW_INPUT_H + * + * \author Andrea Grandi + */ + +#ifndef HW_INPUT_H +#define HW_INPUT_H + +#warning FIXME: This is an example implementation, you must implement it + +#define INPUT_INIT() do { /* implement me */} while(0) + +#endif /* HW_INPUT_H */ diff --git a/boards/stm32VLDiscovery/hw/hw_kbd.h b/boards/stm32VLDiscovery/hw/hw_kbd.h new file mode 100644 index 00000000..905c3c7d --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_kbd.h @@ -0,0 +1,66 @@ +/** + * \file + * + * + * \author Andrea Righi + * + * \brief Keyboard driver of the STM32-P103 evaluation board + */ + +#ifndef HW_KBD_H +#define HW_KBD_H + +#include "hw/kbd_map.h" + +#include +#include + +#define K_RPT_MASK (K_WAKEUP) + +#define KBD_HW_INIT \ + do { \ + stm32_gpioPinConfig((struct stm32_gpio *)GPIOA_BASE, \ + BV(0), GPIO_MODE_IN_FLOATING, \ + GPIO_SPEED_50MHZ); \ + } while (0) + +EXTERN_C int emul_kbdReadCols(void); + +/** + * Read the keyboard ports and return the mask of + * depressed keys. + */ +INLINE keymask_t kbd_readkeys(void) +{ + return stm32_gpioPinRead((struct stm32_gpio *)GPIOA_BASE, BV(0)); +} + +#endif /* HW_KBD_H */ diff --git a/boards/stm32VLDiscovery/hw/hw_lcd_32122a.h b/boards/stm32VLDiscovery/hw/hw_lcd_32122a.h new file mode 100644 index 00000000..6ec29c5c --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_lcd_32122a.h @@ -0,0 +1,155 @@ +/** + * \file + * + * + * \brief Displaytech 32122A LCD driver + * + * \author Bernie Innocenti + * \author Stefano Fedrigo + * + */ + +#ifndef HW_LCD_32122A_H +#define HW_LCD_32122A_H + +#include +#include + +#warning TODO:This is an example implementation, you must implement it! + +/** + * Predefined LCD PWM contrast values + */ +#define LCD_DEF_PWM 145 +#define LCD_MAX_PWM 505 +#define LCD_MIN_PWM 130 +#define LCD_PWM_CH 0 + + +/** + * \name LCD I/O pins/ports + * @{ + */ +#define LCD_RS /* Implement me! */ +#define LCD_RW /* Implement me! */ +#define LCD_PE_E1 /* Implement me! */ +#define LCD_PE_E2 /* Implement me! */ +#define LCD_DB0 /* Implement me! */ +#define LCD_DB1 /* Implement me! */ +#define LCD_DB2 /* Implement me! */ +#define LCD_DB3 /* Implement me! */ +#define LCD_DB4 /* Implement me! */ +#define LCD_DB5 /* Implement me! */ +#define LCD_DB6 /* Implement me! */ +#define LCD_DB7 /* Implement me! */ +#define LCD_PF_DB0 /* Implment me! */ +/*@}*/ + +/** + * \name LCD bus control macros + * @{ + */ +#define LCD_CLR_A0 do { /* Implement me! */ } while (0) +#define LCD_SET_A0 do { /* Implement me! */ } while (0) +#define LCD_CLR_RD do { /* Implement me! */ } while (0) +#define LCD_SET_RD do { /* Implement me! */ } while (0) +#define LCD_CLR_E1 do { /* Implement me! */ } while (0) +#define LCD_SET_E1 do { /* Implement me! */ } while (0) +#define LCD_CLR_E2 do { /* Implement me! */ } while (0) +#define LCD_SET_E2 do { /* Implement me! */ } while (0) +#define LCD_SET_E(x) do { (void)x; /* Implement me! */ } while (0) +#define LCD_CLR_E(x) do { (void)x; /* Implement me! */ } while (0) +/*@}*/ + +/** + * \name Chip select bits for LCD_SET_E() + * @{ + */ +#define LCDF_E1 ( 0/* Implement me! */) +#define LCDF_E2 ( 0/* Implement me! */) +/*@}*/ +/** Read from the LCD data bus (DB[0-7]) */ +#define LCD_WRITE(x) ((void)x)/* Implement me! */ +/** Write to the LCD data bus (DB[0-7]) */ +#define LCD_READ (0 /* Implement me! */ ) + +/** Set data bus direction to output (write to display) */ +#define LCD_DB_OUT /* Implement me! */ + +/** Set data bus direction to input (read from display) */ +#define LCD_DB_IN /* Implement me! */ + +/** Delay for write (Enable pulse width, 220ns) */ +#define LCD_DELAY_WRITE \ + do { \ + NOP; \ + NOP; \ + NOP; \ + NOP; \ + NOP; \ + } while (0) + +/** Delay for read (Data ouput delay time, 120ns) */ +#define LCD_DELAY_READ \ + do { \ + NOP; \ + NOP; \ + NOP; \ + NOP; \ + } while (0) + + +#define LCD_32122_RESET() do { /* Implement me! */ } while (0) + +INLINE void lcd_32122a_hw_bus_init(void) +{ + cpu_flags_t flags; + IRQ_SAVE_DISABLE(flags); + + /* + * Here set bus pin! + * to init a lcd device. + * + */ + + /* + * Data bus is in output state most of the time: + * LCD r/w functions assume it is left in output state + */ + LCD_DB_OUT; + + + IRQ_RESTORE(flags); +} + +#endif /* HW_LCD_32122A_H */ + diff --git a/boards/stm32VLDiscovery/hw/hw_lcd_hd44.h b/boards/stm32VLDiscovery/hw/hw_lcd_hd44.h new file mode 100644 index 00000000..dfebbcab --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_lcd_hd44.h @@ -0,0 +1,157 @@ +/** + * \file + * + * + * \brief LCD low-level hardware macros + * + * \author Bernie Innocenti + * \author Stefano Fedrigo + * + */ + +#ifndef HW_LCD_HD44_H +#define HW_LCD_HD44_H + +#include "cfg/cfg_lcd_hd44.h" /* CONFIG_LCD_4BIT */ + +#include +#include + +#warning TODO:This is an example implementation, you must implement it! + +/** + * \name LCD I/O pins/ports + * @{ + */ +#define LCD_RS /* Implement me! */ +#define LCD_RW /* Implement me! */ +#define LCD_E /* Implement me! */ +#define LCD_DB0 /* Implement me! */ +#define LCD_DB1 /* Implement me! */ +#define LCD_DB2 /* Implement me! */ +#define LCD_DB3 /* Implement me! */ +#define LCD_DB4 /* Implement me! */ +#define LCD_DB5 /* Implement me! */ +#define LCD_DB6 /* Implement me! */ +#define LCD_DB7 /* Implement me! */ +/*@}*/ + +/** + * \name DB high nibble (DB[4-7]) + * @{ + */ + +#if CONFIG_LCD_4BIT + #define LCD_MASK (LCD_DB7 | LCD_DB6 | LCD_DB5 | LCD_DB4) + #define LCD_SHIFT 4 +#else + #define LCD_MASK (uint8_t)0xff + #define LCD_SHIFT 0 +#endif +/*@}*/ + +/** + * \name LCD bus control macros + * @{ + */ +#define LCD_CLR_RS /* Implement me! */ +#define LCD_SET_RS /* Implement me! */ +#define LCD_CLR_RD /* Implement me! */ +#define LCD_SET_RD /* Implement me! */ +#define LCD_CLR_E /* Implement me! */ +#define LCD_SET_E /* Implement me! */ + +/* Enter command mode */ +#define LCD_SET_COMMAND() /* Implement me! */ + +/* Enter data mode */ +#define LCD_SET_DATA() /* Implement me! */ + +#if CONFIG_LCD_4BIT + #define LCD_WRITE_H(x) ((void)x)/* Implement me! */ + #define LCD_WRITE_L(x) ((void)x)/* Implement me! */ + #define LCD_READ_H ( 0 /* Implement me! */ ) + #define LCD_READ_L ( 0 /* Implement me! */ ) +#else + #define LCD_WRITE(x) ((void)x)/* Implement me! */ + #define LCD_READ (0 /* Implement me! */ ) +#endif +/*@}*/ + +/** Set data bus direction to output (write to display) */ +#define LCD_DB_OUT /* Implement me! */ + +/** Set data bus direction to input (read from display) */ +#define LCD_DB_IN /* Implement me! */ +/** Delay for write (Enable pulse width, 220ns) */ +#define LCD_DELAY_WRITE \ + do { \ + NOP; \ + NOP; \ + NOP; \ + NOP; \ + NOP; \ + } while (0) + +/** Delay for read (Data ouput delay time, 120ns) */ +#define LCD_DELAY_READ \ + do { \ + NOP; \ + NOP; \ + NOP; \ + NOP; \ + } while (0) + + + +INLINE void lcd_hd44_hw_bus_init(void) +{ + cpu_flags_t flags; + IRQ_SAVE_DISABLE(flags); + + /* + * Here set bus pin! + * to init a lcd device. + * + */ + + /* + * Data bus is in output state most of the time: + * LCD r/w functions assume it is left in output state + */ + LCD_DB_OUT; + + + IRQ_RESTORE(flags); +} + +#endif /* HW_LCD_HD44_H */ diff --git a/boards/stm32VLDiscovery/hw/hw_led.h b/boards/stm32VLDiscovery/hw/hw_led.h new file mode 100644 index 00000000..0116098b --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_led.h @@ -0,0 +1,71 @@ +/** + * \file + * + * + * \brief Led on/off macros for STM32-P103 board. + * + * \author Andrea Righi + */ + +#ifndef HW_LED_H +#define HW_LED_H + +#include + +#include + +#include +#include + +#define LED_PIN BV(8) +#define LED_GPIO_BASE ((struct stm32_gpio *)GPIOC_BASE) + +#define LED_ON() \ + do { \ + stm32_gpioPinWrite(LED_GPIO_BASE, LED_PIN, 1); \ + } while (0) + +#define LED_OFF() \ + do { \ + stm32_gpioPinWrite(LED_GPIO_BASE, LED_PIN, 0); \ + } while (0) + +#define LED_INIT() \ + do { \ + /* Enable clocking on GPIOA and GPIOC */ \ + RCC->APB2ENR |= RCC_APB2_GPIOC; \ + /* Configure the LED pin as GPIO */ \ + stm32_gpioPinConfig(LED_GPIO_BASE, \ + LED_PIN, GPIO_MODE_OUT_PP, \ + GPIO_SPEED_50MHZ); \ + } while(0) + +#endif /* HW_LED_H */ diff --git a/boards/stm32VLDiscovery/hw/hw_lm75.h b/boards/stm32VLDiscovery/hw/hw_lm75.h new file mode 100644 index 00000000..290dae09 --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_lm75.h @@ -0,0 +1,49 @@ +/** + * \file + * + * + * \brief Hardware macro definition. + * + * \author Daniele Basile + */ + +#ifndef HW_LM75_H +#define HW_LM75_H + +#warning TODO:This is an example implentation, you must implement it! + +#define LM75_HW_INIT() \ + do { \ + /* Pin init */\ + } while (0) + +#endif /* HW_LM75_H */ + diff --git a/boards/stm32VLDiscovery/hw/hw_mcp41.c b/boards/stm32VLDiscovery/hw/hw_mcp41.c new file mode 100644 index 00000000..512b19a1 --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_mcp41.c @@ -0,0 +1,52 @@ +/** + * \file + * + * + * \brief MCP41 hardware-specific definitions + * + * \author Francesco Sacchi + */ + +#include "hw/hw_mcp41.h" + +#include +#include + +#warning TODO:This is an example implementation, you must implement it! + +const uint16_t mcp41_ports[MCP41_CNT] = +{ + 0, /* add here mcp41 ports */ +}; +const uint8_t mcp41_pins [MCP41_CNT] = +{ + 0, /* add here mcp41 ports */ +}; + diff --git a/boards/stm32VLDiscovery/hw/hw_mcp41.h b/boards/stm32VLDiscovery/hw/hw_mcp41.h new file mode 100644 index 00000000..b31a7dd8 --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_mcp41.h @@ -0,0 +1,74 @@ +/** + * \file + * + * + * \brief MCP41 hardware-specific definitions + * + * \author Francesco Sacchi + */ + +#ifndef HW_MCP41_H +#define HW_MCP41_H + +#include "hw/mcp41_map.h" + +#include + + +#warning TODO:This is an example implementation, you must implement it! + + +INLINE void SET_MCP41_DDR(Mcp41Dev dev) +{ + /* Implement me! */ + //Warning: this funtions is like avr target name, + //fix it to comply for all target. + + //Only for test remove when implement this function + (void)dev; +} + +INLINE void MCP41_ON(Mcp41Dev i) +{ + /* Implement me! */ + + //Only for test remove when implement this function + (void)i; +} + +INLINE void MCP41_OFF(Mcp41Dev i) +{ + /* Implement me! */ + + //Only for test remove when implement this function + (void)i; +} + +#endif /* HW_MCP41_H */ diff --git a/boards/stm32VLDiscovery/hw/hw_ntc.c b/boards/stm32VLDiscovery/hw/hw_ntc.c new file mode 100644 index 00000000..2509239d --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_ntc.c @@ -0,0 +1,45 @@ +/** + * \file + * + * + * \brief NTC hardware-specific definition + * + * \author Lorenzo Berni + * + */ + +#include +#include "hw/ntc_map.h" + +const res_t NTC_RSER[NTC_CNT]; +const res_t NTC_RPAR[NTC_CNT]; +const amp_t NTC_AMP[NTC_CNT]; +const NtcHwInfo* NTC_INFO[NTC_CNT]; diff --git a/boards/stm32VLDiscovery/hw/hw_ntc.h b/boards/stm32VLDiscovery/hw/hw_ntc.h new file mode 100644 index 00000000..0f6743ad --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_ntc.h @@ -0,0 +1,135 @@ +/** + * \file + * + * + * \brief NTC hardware-specific definition + * + * \author Francesco Sacchi + * + * A NTC acts as a variable resistor, whose resistance changes as a + * function of the temperature it measures. To sample it correctly, it is + * usually parallelized and serialized with two fixed resistor. The following diagram shows + * what is the exact disposition of the components, as handled by this + * library: + * + *
+ *                 o Vref
+ *                 |
+ *                 |                               o Vref
+ *                 |                               |
+ *               -----                             |
+ *              |     |                        ---------
+ *              | Rser|                       |         |
+ *              |     |                       |         |
+ *               -----     -----              |   ADC   |
+ *                 | Vp   |     |             |         |
+ *      -----------|------| Amp |-------------|         |
+ *     |           |      |     |      Vadc   |         |
+ *   -----       -----     -----               ---------
+ *  |     |     |     |
+ *  | NTC |     | Rpar|
+ *  |     |     |     |
+ *   -----       -----
+ *     |           |
+ *     |           |
+ *   -----       -----
+ *    ---         ---
+ *
+ * Amp is an amplifier that amplify of AMP times the signal. + * If we indicate Rp as the parallel of NTC with Rpar, ADCBITS as the bits of the ad converter + * and ADCVAL as the result from the adc convertion (Not Vadc but just the value read + * from the adc register), after various calculation, the expression of Rp is: + * + *
+ *
+ *            ADCVAL * Rser
+ * Rp = ------------------------
+ *         ADCBITS
+ *	2         * AMP - ADCVAL
+ *
+ * + * And after that NTC obvisiously is: + *
+ *        Rpar * Rp
+ * NTC = ----------
+ *        Rpar - Rp
+ *
+ * + * + * The function ntc_hw_read() compute the resistence using these formulas above. + */ + +#ifndef HW_NTC_H +#define HW_NTC_H + +#include "ntc_map.h" + +#include + +#include +#include + +#warning TODO:This is an example implementation, you must implement it! + +extern const res_t NTC_RSER[NTC_CNT]; +extern const res_t NTC_RPAR[NTC_CNT]; +extern const amp_t NTC_AMP[NTC_CNT]; +extern const NtcHwInfo* NTC_INFO[NTC_CNT]; + + +/*! + * Read the resistence of ntc device \a dev. + * Return the result in res_t type. + */ +INLINE res_t ntc_hw_read(NtcDev dev) +{ + ASSERT(dev < NTC_CNT); + // See above for formula explanation. + adcread_t adcval = adc_read((uint16_t)dev); + float rp = (adcval * NTC_RSER[dev] ) / ((1 << adc_bits()) * NTC_AMP[dev] - adcval); + + //kprintf("Rp[%f], Rntc[%f]\n", rp/100, ((NTC_RPAR[dev] * rp) / (NTC_RPAR[dev] - rp)) / 100.0); + + return ( (NTC_RPAR[dev] * rp) / (NTC_RPAR[dev] - rp) ); +} + + +/*! + * Return the info (aka the table) associated with ntc device \a dev. + */ +INLINE const NtcHwInfo* ntc_hw_getInfo(NtcDev dev) +{ + return NTC_INFO[dev]; +} + +#define NTC_HW_INIT do { /* Implement me! */ } while(0) + +#endif /* HW_NTC_H */ diff --git a/boards/stm32VLDiscovery/hw/hw_phase.c b/boards/stm32VLDiscovery/hw/hw_phase.c new file mode 100644 index 00000000..cd502426 --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_phase.c @@ -0,0 +1,45 @@ +/** + * \file + * + * + * \brief Phase control hardware-specific definitions + * + * \author Francesco Sacchi + */ + +#ifndef HW_PHASE_H +#define HW_PHASE_H + +#include "hw/hw_phase.h" + +#warning TODO:This is an example implementation, you must implement it! + +#endif /* HW_PHASE_H */ diff --git a/boards/stm32VLDiscovery/hw/hw_phase.h b/boards/stm32VLDiscovery/hw/hw_phase.h new file mode 100644 index 00000000..7cae67cf --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_phase.h @@ -0,0 +1,79 @@ +/** + * \file + * + * + * \brief Phase control hardware-specific definitions + * + * + * \author Francesco Sacchi + */ + +#ifndef HW_PHASE_H +#define HW_PHASE_H + +#include "hw/phase_map.h" + +#include + +#warning TODO:This is an example implementation, you must implement it! + +#define PHASE_HW_INIT do { /* Implement me! */ }while (0) + +INLINE void TRIAC_OFF(TriacDev i) +{ + /* Implement me! */ + + //Only for test remove when implement this function + (void)i; +} + + +INLINE void TRIAC_ON(TriacDev i) +{ + /* Implement me! */ + + //Only for test remove when implement this function + (void)i; +} + +INLINE void SET_TRIAC_DDR(TriacDev i) +{ + /* Implement me! */ + + //Only for test remove when implement this function + (void)i; +} + +void zerocross_isr(void); +#define DEFINE_ZEROCROSS_ISR() void zerocross_isr(void) + + +#endif /* HW_PHASE_H */ diff --git a/boards/stm32VLDiscovery/hw/hw_rit128x96.h b/boards/stm32VLDiscovery/hw/hw_rit128x96.h new file mode 100644 index 00000000..c24d1a87 --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_rit128x96.h @@ -0,0 +1,78 @@ +/** + * \file + * + * + * \brief LM3S1986: OLED-RIT-128x96 (P14201) low-level hardware macros + * + * \author Andrea Righi + */ + +#ifndef HW_RIT128x96_H +#define HW_RIT128x96_H + +#include "cfg/macros.h" /* BV() */ +#include "cfg/debug.h" + +#include +#include +#include + +/** + * \name LCD I/O pins/ports + * @{ + */ +/* OLED Data/Command control pin */ +#define GPIO_OLEDDC_PIN 0 /* Implement me! */ + +/* OLED enable pin */ +#define GPIO_OLEDEN_PIN 0 /* Implement me! */ +/*@}*/ + +/** + * \name LCD bus control macros + * @{ + */ +/* Enter command mode */ +#define LCD_SET_COMMAND() /* Implement me! */ + +/* Enter data mode */ +#define LCD_SET_DATA() /* Implement me! */ + +/* Send data to the display */ +#define LCD_WRITE(x) ((void)x)/* Implement me! */ +/*@}*/ + +INLINE void lcd_rit128x96_hw_bus_init(void) +{ + /* Implement me! */ +} + +#endif /* HW_RIT128x96_H */ diff --git a/boards/stm32VLDiscovery/hw/hw_sd.h b/boards/stm32VLDiscovery/hw/hw_sd.h new file mode 100644 index 00000000..ed10b806 --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_sd.h @@ -0,0 +1,52 @@ +/** + * \file + * + * + * \brief SD driver hardware-specific definitions. + * + * + * \author Luca Ottaviano + */ + +#ifndef HW_SD_H +#define HW_SD_H + +#warning FIXME: This is an example implementation, you must implement it + +#define SD_CS_INIT() do { /* implement me */} while(0) +#define SD_CS_ON() do { /* implement me */} while(0) +#define SD_CS_OFF() do { /* implement me */} while(0) + +#define SD_PIN_INIT() do { /* implement me */} while(0) +#define SD_CARD_PRESENT() true /* implement me */ +#define SD_WRITE_PROTECT() false /* implement me */ + +#endif /* HW_SD_H */ diff --git a/boards/stm32VLDiscovery/hw/hw_sensor.h b/boards/stm32VLDiscovery/hw/hw_sensor.h new file mode 100644 index 00000000..9913ff98 --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_sensor.h @@ -0,0 +1,92 @@ +/** + * \file + * + * + * \brief Sensor hardware-specific definitions + * + * + * \author Daniele Basile + */ + +#ifndef HW_SENSOR_H +#define HW_SENSOR_H + +#warning TODO:This is an example implementation, you must implement it! + +#define NUM_HOME_SENSORS 1 + + +INLINE bool hw_home_sensor_read(int sensor) +{ + /* Implement me! */ + + //Only for test remove when implement this function + (void)sensor; + return 0; +} + +INLINE void hw_home_sensor_set_inverted(int sensor, bool inverted) +{ + /* Implement me! */ + + //Only for test remove when implement this function + (void)sensor; + (void)inverted; +} + +INLINE bool hw_level_sensor_read(int sensor) +{ + /* Implement me! */ + + //Only for test remove when implement this function + (void)sensor; + return 0; +} + +INLINE void hw_level_sensor_set_inverted(int sensor, bool inverted) +{ + /* Implement me! */ + + //Only for test remove when implement this function + (void)sensor; + (void)inverted; +} + +INLINE bool bld_hw_sensor_read(int sensor) +{ + /* Implement me! */ + + //Only for test remove when implement this function + (void)sensor; + return 0; +} + +#endif /* HW_SENSOR_H */ diff --git a/boards/stm32VLDiscovery/hw/hw_ser.h b/boards/stm32VLDiscovery/hw/hw_ser.h new file mode 100644 index 00000000..2033c982 --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_ser.h @@ -0,0 +1,52 @@ +/** + * \file + * + * + * \brief Serial hardware-specific definitions + * + * + * \author Daniele Basile + */ + +#ifndef HW_SER_H +#define HW_SER_H + +#include "cfg/cfg_ser.h" + +#if CONFIG_SER_STROBE + #warning FIXME: this is an example implementation, you must implement it + + #define SER_STROBE_INIT do { /* implement me */ } while (0) + #define SER_STROBE_ON do { /* implement me */ } while (0) + #define SER_STROBE_OFF do { /* implement me */ } while (0) +#endif + +#endif /* HW_SER_H */ diff --git a/boards/stm32VLDiscovery/hw/hw_sipo.h b/boards/stm32VLDiscovery/hw/hw_sipo.h new file mode 100644 index 00000000..552d4dd5 --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_sipo.h @@ -0,0 +1,108 @@ +/** + * \file + * + * + * \brief Macro for HW_SIPO_H + * + * + * + * \author Andrea Grandi + * \author Daniele Basile + */ + +#ifndef HW_SIPO_H +#define HW_SIPO_H + +/** + * Map sipo connection on board. + */ +typedef enum SipoMap +{ + SIPO_CNT +} SipoMap; + +/** + * Define generic macro to set pins logic level + */ +#define SIPO_SET_LEVEL_LOW(dev) do { /* Implement me! */ } while (0) +#define SIPO_SET_LEVEL_HIGH(dev) do { /* Implement me! */ } while (0) + + +/** + * Generate one low pulse on select line. + */ +#define PULSE_LOW(dev) do { /* Implement me! */ } while (0) + +/** + * Generate one hight pulse on select line. + */ +#define PULSE_HIGH(dev) do { /* Implement me! */ } while (0) + + +/** + * Define the procedure to drive serial input in sipo device (SI). + */ +#define SIPO_SI_HIGH() do { /* Implement me! */ } while (0) +#define SIPO_SI_LOW() do { /* Implement me! */ } while (0) + +/** + * Drive clock to shift SI data into latch. + */ +#define SIPO_SI_CLOCK(clk_pol) \ + do { \ + (void)clk_pol; \ + /* Implement me! */ \ + } while (0) + +/** + * Do everything needed in order to load dato into sipo. + */ +#define SIPO_LOAD(device, load_pol) do { /* Implement me! */ } while (0) + +/** + * Enable the shift register output. + */ +#define SIPO_ENABLE() do { /* Implement me! */ } while (0) + +/** + * Set polarity for Load, Clk, SI signals. + */ +#define SIPO_SET_LD_LEVEL(device, load_pol) do { /* Implement me! */ } while (0) +#define SIPO_SET_CLK_LEVEL(clock_pol) do { /* Implement me! */ } while (0) +#define SIPO_SET_SI_LEVEL() do { /* Implement me! */ } while (0) + +/** + * Do anything that needed to init sipo pins. + */ +#define SIPO_INIT_PIN() do { /* Implement me! */ } while (0) + +#endif /* HW_SIPO_H */ diff --git a/boards/stm32VLDiscovery/hw/hw_spi.h b/boards/stm32VLDiscovery/hw/hw_spi.h new file mode 100644 index 00000000..991b86a9 --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_spi.h @@ -0,0 +1,114 @@ +/** + * \file + * + * + * \brief Hardware macro definition. + * + * + * \author Daniele Basile + */ + +#ifndef HW_SPI_H +#define HW_SPI_H + +#warning TODO:This is an example implentation, you must implement it! + +#include + +/** + * SPI pin definition. + * + * \note CS is assert when level + * is low. + * + * \{ + */ +#define CS /* pin */ ///Connect to CS pin of Flash memory. +#define SCK /* pin */ ///Connect to SCK pin of Flash memory. +#define MOSI /* pin */ ///Connect to SI pin of Flash memory. +#define MISO /* pin */ ///Connect to SO pin of Flash memory. +#define SPI_PORT /* pin */ ///Micro pin PORT register. +#define SPI_PIN /* pin */ ///Micro pin PIN register. +#define SPI_DDR /* pin */ ///Micro pin DDR register. +/*\}*/ + +/** + * Pin logic level. + * + * \{ + */ +#define MOSI_LOW() do { /* Implement me! */ } while(0) +#define MOSI_HIGH() do { /* Implement me! */ } while(0) +#define MISO_HIGH() do { /* Implement me! */ } while(0) +#define SCK_LOW() do { /* Implement me! */ } while(0) +#define SCK_HIGH() do { /* Implement me! */ } while(0) +#define CS_LOW() do { /* Implement me! */ } while(0) +#define CS_HIGH() do { /* Implement me! */ } while(0) +/*\}*/ + +/** + * SPI pin commands. + * + * \{ + */ +#define CS_ENABLE() CS_LOW() +#define CS_DISABLE() CS_HIGH() +#define SS_ACTIVE() CS_LOW() +#define SS_INACTIVE() CS_HIGH() +#define SCK_INACTIVE() SCK_LOW() +#define SCK_ACTIVE() SCK_HIGH() +#define CS_OUT() do { /* Implement me! */ } while(0) +#define MOSI_IN() do { /* Implement me! */ } while(0) +#define MOSI_OUT() do { /* Implement me! */ } while(0) +#define IS_MISO_HIGH() (false /* Implement me! */ ) +#define MISO_IN() do { /* Implement me! */ } while(0) +#define MISO_OUT() do { /* Implement me! */ } while(0) +#define SCK_OUT() do { /* Implement me! */ } while(0) + +#define SCK_PULSE()\ + do {\ + SCK_HIGH();\ + SCK_LOW();\ + } while (0) +/*\}*/ + + +#define SPI_HW_INIT() \ + CS_DISABLE();\ + MOSI_LOW();\ + SCK_LOW();\ + MISO_IN();\ + MOSI_OUT();\ + SCK_OUT();\ + CS_OUT(); + +#endif /* HW_SPI_H */ + diff --git a/boards/stm32VLDiscovery/hw/hw_spi_dma.h b/boards/stm32VLDiscovery/hw/hw_spi_dma.h new file mode 100644 index 00000000..3d68f65d --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_spi_dma.h @@ -0,0 +1,47 @@ +/** + * \file + * + * + * \brief SPI DMA driver hardware-specific definitions. + * + * + * \author Francesco Sacchi + */ + +#ifndef HW_SPI_DMA_H +#define HW_SPI_DMA_H + +#define SPI_DMA_STROBE_INIT() do {/*PIOA_PER = BV(13); PIOA_OER = BV(13);*/} while(0) + +#define SPI_DMA_STROBE_ON() do {/*PIOA_CODR = BV(13);*/} while(0) +#define SPI_DMA_STROBE_OFF() do {/*PIOA_SODR = BV(13);*/} while(0) + +#endif /* HW_SPI_DMA_H */ diff --git a/boards/stm32VLDiscovery/hw/hw_stepper.h b/boards/stm32VLDiscovery/hw/hw_stepper.h new file mode 100644 index 00000000..b97bacba --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_stepper.h @@ -0,0 +1,308 @@ +/** + * \file + * + * + * \brief Stepper hardware-specific definitions + * + * + * \author Daniele Basile + */ + + +#ifndef HW_STEPPER_H +#define HW_STEPPER_H + +#include + +#include + +#include + +#warning TODO:This is an example implentation, you must implement it! + +#define STEPPER_STROBE_INIT \ +do { \ + /* put init code for strobe */ \ +} while (0) + + +#define STEPPER_STROBE_ON do { /* Implement me! */ } while(0) +#define STEPPER_STROBE_OFF do { /* Implement me! */ } while(0) + +/** + * CPU clock frequency is divided by 2^STEPPER_PRESCALER_LOG2 to + * obtain stepper clock. + */ +#define STEPPER_PRESCALER_LOG2 1 + +/** + * Stepper timer clock frequency. + */ +#define STEPPER_CLOCK ((CPU_FREQ) >> STEPPER_PRESCALER_LOG2) + +/** + * us delay to reset a stepper motor. + * This is the time neccessary to reset + * the stepper controll chip. (see datasheet for more detail). + */ +#define STEPPER_RESET_DELAY 1 + +/* + * Pins define for each stepper + */ +#define STEPPER_1_CW_CCW_PIN 0 +#define STEPPER_1_HALF_FULL_PIN 0 +#define STEPPER_1_CONTROL_PIN 0 +#define STEPPER_1_ENABLE_PIN 0 +#define STEPPER_1_RESET_PIN 0 + +/* put here other stepper motor */ + +#define STEPPER_1_SET do { /* Implement me! */ } while(0) +/* add here the set for other stepper motor */ + +#define STEPPER_1_CLEAR do { /* Implement me! */ } while(0) +/* add here the clear for other stepper motor */ + +/* + * Generic macro definition + */ + +/* + * Stepper init macro + */ +#define STEPPER_PIN_INIT_MACRO(port, index) do { \ + /* Add here init pin code */ \ + } while (0) + +/* + * Stepper commands macros + */ +#define STEPPER_SET_CW(index) do { /* Implement me! */ } while (0) +#define STEPPER_SET_CCW(index) do { /* Implement me! */ } while (0) +#define STEPPER_SET_HALF(index) do { /* Implement me! */ } while (0) +#define STEPPER_SET_FULL(index) do { /* Implement me! */ } while (0) +#define STEPPER_SET_CONTROL_LOW(index) do { /* Implement me! */ } while (0) +#define STEPPER_SET_CONTROL_HIGHT(index) do { /* Implement me! */ } while (0) +#define STEPPER_SET_ENABLE(index) do { /* Implement me! */ } while (0) +#define STEPPER_SET_DISABLE(index) do { /* Implement me! */ } while (0) +#define STEPPER_SET_RESET_ENABLE(index) do { /* Implement me! */ } while (0) +#define STEPPER_SET_RESET_DISABLE(index) do { /* Implement me! */ } while (0) + + +/* + * Reset stepper macro + */ + +#define STEPPER_RESET_MACRO(index) do { \ + STEPPER_SET_RESET_ENABLE(index); \ + timer_udelay(STEPPER_RESET_DELAY); \ + STEPPER_SET_RESET_DISABLE(index); \ + } while (0) + +/* + * Set half or full step macro + */ +#define STEPPER_SET_STEP_MODE_MACRO(index, flag) do { \ + if (flag) \ + STEPPER_SET_HALF(index); \ + else \ + STEPPER_SET_FULL(index); \ + } while (0) + +/* + * Set control status macro + */ +#warning TODO: This macro is not implemented (see below) + +#define STEPPER_SET_CONTROL_BIT_MACRO(index, flag) do { \ + /* if (flag) */ \ + /* WARNING This macros not implemented */ \ + /* else */ \ + /* WARNING This macros not implemented */ \ + } while (0) + +/* + * Set current power macro + */ +#warning TODO: This macro is not implemented (see below) + +#define STEPPER_SET_POWER_CURRENT_MACRO(index, flag) do { \ + /* if (flag) */ \ + /* WARNING This macrois not implemented */ \ + /* else */ \ + /* WARNING This macrois not implemented */ \ + } while (0) + +/* + * Set rotation of stepper motor + * - dir = 1: positive rotation + * - dir = 0: no motor moviment + * - dir = -1: negative rotation + * + */ +#define STEPPER_SET_DIRECTION_MACRO(index, dir) do { \ + switch (dir) \ + { \ + case 1: \ + STEPPER_SET_CW(index); \ + break; \ + case -1: \ + STEPPER_SET_CCW(index); \ + break; \ + case 0: \ + break; \ + } \ + } while (0) + + +/* + * Define macros for manage low level of stepper. + */ + +#define STEPPER_INIT() do { \ + STEPPER_PIN_INIT_MACRO(A, 1); \ + /* Add here code for other stepper motor */ \ + } while (0) + + +/* + * Enable select stepper motor + */ +#define STEPPER_ENABLE(index) do { \ + switch (index) \ + { \ + case 1: \ + STEPPER_SET_ENABLE(1); \ + break; \ + /* Add here code for other stepper motor */ \ + } \ + } while (0) + +/* + * Enable all stepper connect to micro + */ +#define STEPPER_ENABLE_ALL() do { \ + STEPPER_SET_ENABLE(1); \ + /* Add here code for other stepper motor */ \ + } while (0) + +/* + * Disable select stepper motor + */ +#define STEPPER_DISABLE(index) do { \ + switch (index) \ + { \ + case 1: \ + STEPPER_SET_DISABLE(1); \ + break; \ + /* Add here code for other stepper motor */ \ + } \ + } while (0) + +/* + * Disable all stepper connect to micro + */ +#define STEPPER_DISABLE_ALL() do { \ + STEPPER_SET_DISABLE(1); \ + /* Add here code for other stepper motor */ \ + } while (0) + +/* + * Reset selected stepper motor + */ +#define STEPPER_RESET(index) do { \ + switch (index) \ + { \ + case 1: \ + STEPPER_RESET_MACRO(1); \ + break; \ + /* Add here code for other stepper motor */ \ + } \ + } while (0) + +/* + * Reset all stepper motor + */ +#define STEPPER_RESET_ALL() do { \ + STEPPER_RESET_MACRO(1) \ + /* Add here code for other stepper motor */ \ + } while (0) + +// Set half/full step macros +#define STEPPER_SET_HALF_STEP(index, flag) do { \ + switch (index) \ + { \ + case 1: \ + STEPPER_SET_STEP_MODE_MACRO(1, flag); \ + break; \ + /* Add here code for other stepper motor */ \ + } \ + } while (0) + + +// Control status +#define STEPPER_SET_CONTROL_BIT(index, flag) do { \ + switch (index) \ + { \ + case 1: \ + STEPPER_SET_CONTROL_BIT_MACRO(1, flag); \ + break; \ + /* Add here code for other stepper motor */ \ + } \ + } while (0) + + +// Set stepper power current +#define STEPPER_SET_POWER_CURRENT(index, flag) do { \ + switch (index) \ + { \ + case 1: \ + STEPPER_SET_POWER_CURRENT_MACRO(1, flag); \ + break; \ + /* Add here code for other stepper motor */ \ + } \ + } while (0) + +// Set rotation dirction of stepper motor +#define STEPPER_SET_DIRECTION(index, dir) do { \ + switch (index) \ + { \ + case 1: \ + STEPPER_SET_DIRECTION_MACRO(1, dir); \ + break; \ + /* Add here code for other stepper motor */ \ + } \ + } while (0) + +#endif /* HW_STEPPER_H */ + + diff --git a/boards/stm32VLDiscovery/hw/hw_tas5706a.h b/boards/stm32VLDiscovery/hw/hw_tas5706a.h new file mode 100644 index 00000000..fda85e12 --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_tas5706a.h @@ -0,0 +1,64 @@ +/** + * \file + * + * + * \brief HW pin handling. + * + * + * \author Francesco Sacchi + */ + +#ifndef HW_TAS5706A_H +#define HW_TAS5706A_H + +#include + +#warning FIXME: This is an example implementation, you must implement it + +#define TAS5706A_SETPOWERDOWN(val) do { (void) val; /* implement me */ } while (0) +#define TAS5706A_SETRESET(val) do { (void) val; /* implement me */ } while (0) +#define TAS5706A_SETMUTE(val) do { (void) val; /* implement me */ } while (0) + +#define TAS5706A_PIN_INIT() \ + do { \ + TAS5706A_SETPOWERDOWN(true); \ + TAS5706A_SETRESET(true); \ + TAS5706A_SETMUTE(true); \ + /* complete me */ \ + } while (0) + +#define TAS5706A_MCLK_INIT() \ + do { \ + /* implement me */ \ + } while(0) + + +#endif /* HW_TAS5706A_H */ diff --git a/boards/stm32VLDiscovery/hw/hw_tc520.h b/boards/stm32VLDiscovery/hw/hw_tc520.h new file mode 100644 index 00000000..77d48d07 --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_tc520.h @@ -0,0 +1,70 @@ +/** + * \file + * + * + * + * \brief TC520 hardware-specific definitions + * + * \author Francesco Sacchi + */ + +#ifndef HW_TC520_H +#define HW_TC520_H + +#include + +#warning TODO:This is an example implentation, you must implement it! + +#define CE_PIN 0 +#define DV_PIN 0 +#define LOAD_PIN 0 +#define READ_PIN 0 + + +#define DV_HIGH() /* Implement me! */ +#define DV_LOW() /* Implement me! */ + +#define CE_HIGH() /* Implement me! */ +#define CE_LOW() /* Implement me! */ + +#define LOAD_HIGH() /* Implement me! */ +#define LOAD_LOW() /* Implement me! */ + +#define READ_HIGH() /* Implement me! */ +#define READ_LOW() /* Implement me! */ + +#define TC520_HW_INIT \ +do\ +{\ + /* Put here your code to init hardware */ \ +} while(0) + +#endif /* HW_TC520_H */ diff --git a/boards/stm32VLDiscovery/hw/hw_thermo.h b/boards/stm32VLDiscovery/hw/hw_thermo.h new file mode 100644 index 00000000..6f478068 --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_thermo.h @@ -0,0 +1,121 @@ +/** + * \file + * + * + * \brief thermo hardware-specific control functions. + * + * \author Francesco Sacchi + * + */ + +#ifndef HW_THERMO_H +#define HW_THERMO_H + +#include "hw/thermo_map.h" + +#include + +#include + + +INLINE ticks_t thermo_hw_timeout(ThermoDev dev) +{ + (void)dev; + return 0; +} + +/** + * This function should return the temperature set tolerance. + */ +INLINE deg_t thermo_hw_tolerance(ThermoDev dev) +{ + (void)dev; + return 0; +} + +/** + * Read the temperature of the hw device \a dev. + */ +INLINE deg_t thermo_hw_read(ThermoDev dev) +{ + ASSERT(dev < THERMO_CNT); + /* Put here the code to read current temperature */ + return 0; +} + + +/** + * Turns off a specific device. + * This function is usefull to handle errors. + */ +INLINE void thermo_hw_off(ThermoDev dev) +{ + ASSERT(dev < THERMO_CNT); + /* Put here the code to turn off the thermo device */ +} + +/** + * Based on the current temperature \a cur_temp and the target temperature \a target, + * this function turns on and off specific thermo device. + * It may use also PID control for thermo-regolations. + */ +INLINE void thermo_hw_set(ThermoDev dev, deg_t target, deg_t cur_temp) +{ + ASSERT(dev < THERMO_CNT); + + if (target - cur_temp > 0) + { + /* + * We are leveaving the target temperature, so + * turn on the thermo device! + */ + } + else + { + /* + * Ok, we are near the target temperature, so + * turn off the thermo device! + */ + } + +} + +#define THERMO_HW_INIT _thermo_hw_init() + +/** + * Init hw associated with thermo-control. + */ +INLINE void _thermo_hw_init(void) +{ + /* Init your devices here! */ +} + +#endif /* HW_THERMO_H */ diff --git a/boards/stm32VLDiscovery/hw/hw_timer.h b/boards/stm32VLDiscovery/hw/hw_timer.h new file mode 100644 index 00000000..f9542b28 --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_timer.h @@ -0,0 +1,51 @@ +/** + * \file + * + * + * \brief Timer hardware-specific definitions + * + * + * \author Francesco Sacchi + */ + +#ifndef HW_TIMER_H +#define HW_TIMER_H + +#include "cfg/cfg_timer.h" + +#if CONFIG_TIMER_STROBE + #warning TODO:This is an example implementation, you must implement it! + #define TIMER_STROBE_INIT do { /* implement me */ } while (0) + #define TIMER_STROBE_ON do { /* implement me */ } while (0) + #define TIMER_STROBE_OFF do { /* implement me */ } while (0) +#endif + +#endif /* HW_TIMER_H */ diff --git a/boards/stm32VLDiscovery/hw/hw_tlv5618.h b/boards/stm32VLDiscovery/hw/hw_tlv5618.h new file mode 100644 index 00000000..4a2b4202 --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_tlv5618.h @@ -0,0 +1,69 @@ +/** + * \file + * + * + * \brief TLV5816 DAC hardware-specific definitions + * + * + * \author Francesco Sacchi + */ + +#ifndef HW_TLV5816_H +#define HW_TLV5816_H + +#warning TODO:This is an example implementation, you must implement it! + +#define TLV5618_CSINIT(pin) \ +do \ +{ \ + (void)pin; \ + /* Implement me! */ \ + TLV5618_CSHIGH(pin); \ +} while(0) + +#define TLV5618_CSLOW(pin) \ +do \ +{ \ + (void)pin; \ + /* Implement me! */ \ +} while(0) + + +#define TLV5618_CSHIGH(pin) \ +do \ +{ \ + (void)pin; \ + /* Implement me! */ \ +} while(0) + + +#endif /* HW_TLV5816_H */ + diff --git a/boards/stm32VLDiscovery/hw/hw_tmp123.h b/boards/stm32VLDiscovery/hw/hw_tmp123.h new file mode 100644 index 00000000..adb18588 --- /dev/null +++ b/boards/stm32VLDiscovery/hw/hw_tmp123.h @@ -0,0 +1,52 @@ +/** + * \file + * + * + * \brief Hardware macro definition. + * + * \author Daniele Basile + */ + +#ifndef HW_TMP123_H +#define HW_TMP123_H + +#warning TODO:This is an example implentation, you must implement it! + +#define TMP123_HW_CS_EN() /* Implement me! */ +#define TMP123_HW_CS_DIS() /* Implement me! */ + +#define TMP123_HW_INIT() \ + do { \ + /* Pin init */\ + } while (0) + +#endif /* HW_TMP123_H */ + diff --git a/boards/stm32VLDiscovery/hw/kbd_map.h b/boards/stm32VLDiscovery/hw/kbd_map.h new file mode 100644 index 00000000..d19ab81e --- /dev/null +++ b/boards/stm32VLDiscovery/hw/kbd_map.h @@ -0,0 +1,61 @@ +/** + * \file + * + * + * \author Andrea Righi + * + * \brief Keyboard map definitions for the STM32-P103 evaluation board + */ + +#ifndef HW_KBD_MAP_H +#define HW_KBD_MAP_H + +#include + +/** + * Type for keyboard mask. + */ +typedef uint16_t keymask_t; + +/** + * \name Keycodes. + */ +/*@{*/ +#define K_WAKEUP BV(0) + +#define K_REPEAT BV(13) /**< This is a repeated keyevent. */ +#define K_TIMEOUT BV(14) /**< Fake key event for timeouts. */ +#define K_LONG BV(15) +/*@}*/ + +#define K_LNG_MASK 0 + +#endif /* HW_KBD_MAP_H */ diff --git a/boards/stm32VLDiscovery/hw/mcp41_map.h b/boards/stm32VLDiscovery/hw/mcp41_map.h new file mode 100644 index 00000000..b2d223cf --- /dev/null +++ b/boards/stm32VLDiscovery/hw/mcp41_map.h @@ -0,0 +1,58 @@ +/** + * \file + * + * + * \brief MCP41 digital potentiometer map definitions. + * + * + * \author Francesco Sacchi + */ + +#ifndef MCP41_MAP_H +#define MCP41_MAP_H + +#warning TODO:This is an example implentation, you must implement it! + +/** \name Enum for mcp41 pot evices. + * \{ + * + */ +typedef enum Mcp41Dev +{ + MCP41_LED, + + /* put here other mcp41 device */ + + MCP41_CNT, +} Mcp41Dev; +/* \} */ + +#endif /* MCP41_MAP_H */ diff --git a/boards/stm32VLDiscovery/hw/ntc_map.h b/boards/stm32VLDiscovery/hw/ntc_map.h new file mode 100644 index 00000000..6d256be7 --- /dev/null +++ b/boards/stm32VLDiscovery/hw/ntc_map.h @@ -0,0 +1,60 @@ +/** + * \file + * + * + * \brief NTC map definitions. + * + * + * \author Giovanni Bajo + * \author Francesco Sacchi + */ + +#ifndef NTC_MAP_H +#define NTC_MAP_H + +#include + +#warning TODO:This is an example implentation, you must implement it! + +/*! \name Enum for ntc devices. + * \{ + */ +typedef enum NtcDev +{ + NTC_TEST, + + /* Put here your thermo device */ + + NTC_CNT +} NtcDev; +/* \} */ + +#endif /* NTC_MAP_H */ diff --git a/boards/stm32VLDiscovery/hw/phase_map.h b/boards/stm32VLDiscovery/hw/phase_map.h new file mode 100644 index 00000000..185a36f4 --- /dev/null +++ b/boards/stm32VLDiscovery/hw/phase_map.h @@ -0,0 +1,57 @@ +/** + * \file + * + * + * \brief Triac map definitions. + * + * + * \author Francesco Sacchi + */ + +#ifndef PHASE_MAP_H +#define PHASE_MAP_H + +#warning TODO:This is an example implentation, you must implement it! + +/*! \name Enum for triac devices. + * \{ + */ +typedef enum TriacDev +{ + TRIAC_TEST, + + /* Put here other triac device */ + + TRIAC_CNT +} TriacDev; +/* \} */ + +#endif /* PHASE_MAP_H */ diff --git a/boards/stm32VLDiscovery/hw/pwm_map.h b/boards/stm32VLDiscovery/hw/pwm_map.h new file mode 100644 index 00000000..634f3ec8 --- /dev/null +++ b/boards/stm32VLDiscovery/hw/pwm_map.h @@ -0,0 +1,60 @@ +/** + * \file + * + * + * + * \brief PWM map device. + * + * + * \author Daniele Basile + */ + +#ifndef HW_PWM_MAP_H +#define HW_PWM_MAP_H + +#warning TODO:This is an example implentation, you must implement it! + +typedef enum +{ + PWM_CH0 = 0, + PWM_CH1, + PWM_CH2, + PWM_CH3, + +/* + * add other PWM channel or + * change above. + */ + + PWM_CNT +} PwmDev; + +#endif /* HW_PWM_MAP_H */ diff --git a/boards/stm32VLDiscovery/hw/thermo_map.h b/boards/stm32VLDiscovery/hw/thermo_map.h new file mode 100644 index 00000000..7dbe27bc --- /dev/null +++ b/boards/stm32VLDiscovery/hw/thermo_map.h @@ -0,0 +1,56 @@ +/** + * \file + * + * + * \brief Thermo regulation control map definitions. + * + * \author Francesco Sacchi + */ + +#ifndef THERMO_MAP_H +#define THERMO_MAP_H + +#include +#include + + +#warning TODO:This is an example implentation, you must implement it! + +typedef enum ThermoDev +{ + THERMO_TEST, + + /* Put here your thermo device */ + + THERMO_CNT +} ThermoDev; + +#endif /* THERMO_MAP_H */ diff --git a/boards/stm32VLDiscovery/templates/.spec b/boards/stm32VLDiscovery/templates/.spec new file mode 100644 index 00000000..07fb8eed --- /dev/null +++ b/boards/stm32VLDiscovery/templates/.spec @@ -0,0 +1,3 @@ +name = "Templates" +ord = 0 +description = "Use these as a starting point for your BeRTOS project." diff --git a/boards/stm32VLDiscovery/templates/empty/.spec b/boards/stm32VLDiscovery/templates/empty/.spec new file mode 100644 index 00000000..f3edfbc2 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/.spec @@ -0,0 +1,8 @@ +name = 'empty preset' +advanced = True +description=""" +

+This is a minimalist project, it just initializes the hardware of the +supported board and proposes an empty main. +<\p> +""" diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_adc.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_adc.h new file mode 100644 index 00000000..df2587be --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_adc.h @@ -0,0 +1,112 @@ +/** + * \file + * + * + * \brief Configuration file for the ADC module. + * + * \author Daniele Basile + */ + +#ifndef CFG_ADC_H +#define CFG_ADC_H + +/** + * Module logging level. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_level" + */ +#define ADC_LOG_LEVEL LOG_LVL_INFO + +/** + * Module logging format. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_format" + */ +#define ADC_LOG_FORMAT LOG_FMT_VERBOSE + +/** + * Clock Frequency for ADC conversion. + * This frequency will be rounded down to an integer + * submultiple of CPU_FREQ. + * + * $WIZ$ type = "int" + * $WIZ$ supports = "at91" + * $WIZ$ max = 5000000 + */ +#define CONFIG_ADC_CLOCK 4800000UL + +/** + * Minimum time for starting up a conversion [us]. + * + * $WIZ$ type = "int" + * $WIZ$ min = 20 + * $WIZ$ supports = "at91" + */ +#define CONFIG_ADC_STARTUP_TIME 20 + +/** + * Minimum time for sample and hold [ns]. + * + * $WIZ$ type = "int" + * $WIZ$ min = 600 + * $WIZ$ supports = "at91" + */ +#define CONFIG_ADC_SHTIME 834 + +/** + * ADC Voltage Reference. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "avr_adc_refs" + * $WIZ$ supports = "avr" + */ +#define CONFIG_ADC_AVR_REF ADC_AVR_AVCC + +/** + * ADC clock divisor from main crystal. + * + * $WIZ$ type = "int" + * $WIZ$ min = 2 + * $WIZ$ max = 128 + * $WIZ$ supports = "avr" + */ +#define CONFIG_ADC_AVR_DIVISOR 2 + +/** + * Enable ADC strobe for debugging ADC ISR. + * + * $WIZ$ type = "boolean" + */ +#define CONFIG_ADC_STROBE 0 + +#endif /* CFG_ADC_H */ diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_afsk.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_afsk.h new file mode 100644 index 00000000..cce47c1f --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_afsk.h @@ -0,0 +1,113 @@ +/** + * \file + * + * + * \brief Configuration file for AFSK1200 modem. + * + * \author Francesco Sacchi + */ + +#ifndef CFG_AFSK_H +#define CFG_AFSK_H + +/** + * Module logging level. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_level" + */ +#define AFSK_LOG_LEVEL LOG_LVL_WARN + +/** + * Module logging format. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_format" + */ +#define AFSK_LOG_FORMAT LOG_FMT_TERSE + + +/** + * AFSK discriminator filter type. + * + * $WIZ$ type = "enum"; value_list = "afsk_filter_list" + */ +#define CONFIG_AFSK_FILTER AFSK_CHEBYSHEV + + +/** + * AFSK receiver buffer length. + * + * $WIZ$ type = "int" + * $WIZ$ min = 2 + */ +#define CONFIG_AFSK_RX_BUFLEN 32 + +/** + * AFSK transimtter buffer length. + * + * $WIZ$ type = "int" + * $WIZ$ min = 2 + */ +#define CONFIG_AFSK_TX_BUFLEN 32 + +/** + * AFSK DAC sample rate for modem outout. + * $WIZ$ type = "int" + * $WIZ$ min = 2400 + */ +#define CONFIG_AFSK_DAC_SAMPLERATE 9600 + +/** + * AFSK RX timeout in ms, set to -1 to disable. + * $WIZ$ type = "int" + * $WIZ$ min = -1 + */ +#define CONFIG_AFSK_RXTIMEOUT 0 + + +/** + * AFSK Preamble length in [ms], before starting transmissions. + * $WIZ$ type = "int" + * $WIZ$ min = 1 + */ +#define CONFIG_AFSK_PREAMBLE_LEN 300UL + + + +/** + * AFSK Trailer length in [ms], before stopping transmissions. + * $WIZ$ type = "int" + * $WIZ$ min = 1 + */ +#define CONFIG_AFSK_TRAILER_LEN 50UL + +#endif /* CFG_AFSK_H */ diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_ax25.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_ax25.h new file mode 100644 index 00000000..f561d212 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_ax25.h @@ -0,0 +1,75 @@ +/** + * \file + * + * + * \brief Configuration file for the AX25 protocol module. + * + * \author Francesco Sacchi + */ + +#ifndef CFG_AX25_H +#define CFG_AX25_H + +/** + * Module logging level. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_level" + */ +#define AX25_LOG_LEVEL LOG_LVL_WARN + +/** + * Module logging format. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_format" + */ +#define AX25_LOG_FORMAT LOG_FMT_TERSE + +/** + * AX25 frame buffer lenght. + * + * $WIZ$ type = "int" + * $WIZ$ min = 18 + */ +#define CONFIG_AX25_FRAME_BUF_LEN 330 + + +/** + * Enable repeaters listing in AX25 frames. + * If enabled use 56 addtional bytes of RAM + * for each message received. + * + * $WIZ$ type = "boolean" + */ +#define CONFIG_AX25_RPT_LST 1 + +#endif /* CFG_AX25_H */ diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_battfs.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_battfs.h new file mode 100644 index 00000000..249dda76 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_battfs.h @@ -0,0 +1,67 @@ +/** + * \file + * + * + * \brief Configuration file for BattFS module. + * + * \author Daniele Basile + */ + +#ifndef CFG_BATTFS_H +#define CFG_BATTFS_H + + +/** + * Module logging level. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_level" + */ +#define BATTFS_LOG_LEVEL LOG_LVL_INFO + +/** + * module logging format. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_format" + */ +#define BATTFS_LOG_FORMAT LOG_FMT_VERBOSE + +/** + * Set to 1 to enable free page shuffling. + * This increase memories life but makes debugging + * more difficult due to its unrepeteable state. + * $WIZ$ type = "boolean" + */ +#define CONFIG_BATTFS_SHUFFLE_FREE_PAGES 0 + + +#endif /* BATTFS */ diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_context_switch.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_context_switch.h new file mode 100644 index 00000000..fe0b4f87 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_context_switch.h @@ -0,0 +1,71 @@ +/** + * \file + * + * + * \brief Configuration file for the context switch benchmark. + * + * \author Daniele Basile + */ + +#ifndef CFG_CONTEXT_SWITCH_H +#define CFG_CONTEXT_SWITCH_H + +/** + * Use hp timer for the bechmark. + * + * $WIZ$ type = "boolean" + * $WIZ$ module= "boolean" + * $WIZ$ conditional_deps = "ser" + */ +#define CONFIG_USE_HP_TIMER 1 + + +/** + * Use board led for benchmark. + * + * $WIZ$ type = "boolean" + */ +#define CONFIG_USE_LED 1 + + +/** + * Debug console port. + * $WIZ$ type = "int"; min = 0 + */ +#define CONFIG_CTX_DEBUG_PORT 0 + +/** + * Baudrate for the debug console. + * $WIZ$ type = "int"; min = 300 + */ +#define CONFIG_CTX_DEBUG_BAUDRATE 115200UL + +#endif /* CFG_CONTEXT_SWITCH_H */ diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_dataflash.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_dataflash.h new file mode 100644 index 00000000..4e7dfbd9 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_dataflash.h @@ -0,0 +1,55 @@ +/** + * \file + * + * + * \brief Configuration file for data flash memory module. + * + * \author Daniele Basile + */ + +#ifndef CFG_DATAFLASH_H +#define CFG_DATAFLASH_H + +/** + * Module logging level. + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_level" + */ +#define DATAFLASH_LOG_LEVEL LOG_LVL_INFO + +/** + * Module logging format. + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_format" + */ +#define DATAFLASH_LOG_FORMAT LOG_FMT_TERSE + +#endif /* CFG_DATAFLASH_H */ diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_dc_motor.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_dc_motor.h new file mode 100644 index 00000000..fd9bac73 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_dc_motor.h @@ -0,0 +1,111 @@ +/** + * \file + * + * + * \brief Configuration file for DC motor module. + * + * + * \author Daniele Basile + */ + +#ifndef CFG_DC_MOTOR_H +#define CFG_DC_MOTOR_H + +/** + * Number of the DC motors to manage. + * + * $WIZ$ type = "int" + * $WIZ$ min = 1 + */ +#define CONFIG_NUM_DC_MOTOR 4 + +/** + * Module logging level. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_level" + */ +#define DC_MOTOR_LOG_LEVEL LOG_LVL_INFO + +/** + * Module logging format. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_format" + */ +#define DC_MOTOR_LOG_FORMAT LOG_FMT_VERBOSE + + +/** + * Min value of DC motor speed. + * \note Generally this value is the min value of the ADC conversion, + * if you use it. + * + * $WIZ$ type = "int" + */ +#define CONFIG_DC_MOTOR_MIN_SPEED 0 + + +/** + * Max value of DC motor speed. + * \note Generally this value is the max value of the ADC conversion, + * if you use it. + * + * $WIZ$ type = "int" + * $WIZ$ max = 65535 + */ +#define CONFIG_DC_MOTOR_MAX_SPEED 65535 + + +/** + * Sampling period in millisecond. + * $WIZ$ type = "int" + */ +#define CONFIG_DC_MOTOR_SAMPLE_PERIOD 40 + +/** + * Amount of millisecond before to read sample. + * $WIZ$ type = "int" + */ +#define CONFIG_DC_MOTOR_SAMPLE_DELAY 2 + +/** + * This control set which mode the driver use to lock share + * resources when we use the preempitive kernel. + * If we set to 1 we use the semaphore module otherwise the + * driver disable the switch context every time we need to access + * to shared sources. + * + * $WIZ$ type = "int" + */ +#define CONFIG_DC_MOTOR_USE_SEM 1 + +#endif /* CFG_DC_MOTOR_H */ diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_debug.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_debug.h new file mode 100644 index 00000000..3bb3b181 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_debug.h @@ -0,0 +1,54 @@ +/** + * \file + * + * + * \brief Configuration file for Debug module. + * + * + * \author Daniele Basile + */ + +#ifndef CFG_DEBUG_H +#define CFG_DEBUG_H + +/** + * Debug console port. + * $WIZ$ type = "int"; min = 0 + */ +#define CONFIG_KDEBUG_PORT 1 + +/** + * Baudrate for the debug console. + * $WIZ$ type = "int"; min = 300 + */ +#define CONFIG_KDEBUG_BAUDRATE 115200UL + +#endif /* CFG_DEBUG_H */ diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_emb_flash.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_emb_flash.h new file mode 100644 index 00000000..82d96e52 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_emb_flash.h @@ -0,0 +1,73 @@ +/** + * \file + * + * + * \author Daniele Basile + * + * \brief Configuration file for embedded flash module. + */ + +#ifndef CFG_EMB_FLASH_H +#define CFG_EMB_FLASH_H + +/** + * Module logging level. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_level" + */ +#define CONFIG_FLASH_EMB_LOG_LEVEL LOG_LVL_INFO + +/** + * module logging format. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_format" + */ +#define CONFIG_FLASH_EMB_LOG_FORMAT LOG_FMT_TERSE + + +/** + * Write emb flash timeout. + * For how many milliseconds the cpu wait + * to complete write operation. + * + * $WIZ$ type = "int" + */ +#define CONFIG_FLASH_WR_TIMEOUT 100 + +/** + * Check this to disable embedded flash deprecated API support. + * + * $WIZ$ type = "boolean" + */ +#define CONFIG_FLASH_DISABLE_OLD_API 0 + +#endif /* CFG_FLASH_AT91_H */ diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_fat.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_fat.h new file mode 100644 index 00000000..fcd717af --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_fat.h @@ -0,0 +1,156 @@ +/** + * \file + * + * + * \brief Configuration file for Fat module. + * + * + * \author Luca Ottaviano + * \author Francesco Sacchi + */ + +#ifndef CFG_FAT_H +#define CFG_FAT_H + +/** + * Module logging level. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_level" + */ +#define FAT_LOG_LEVEL LOG_LVL_ERR + +/** + * Module logging format. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_format" + */ +#define FAT_LOG_FORMAT LOG_FMT_VERBOSE + + +/** + * Use word alignment to access FAT structure. + * $WIZ$ type = "boolean" + */ +#define CONFIG_FAT_WORD_ACCESS 0 +#define _WORD_ACCESS CONFIG_FAT_WORD_ACCESS + +/** + * Enable read functions only. + * $WIZ$ type = "boolean" + */ +#define CONFIG_FAT_FS_READONLY 0 +#define _FS_READONLY CONFIG_FAT_FS_READONLY + +/** + * Minimization level to remove some functions. + * $WIZ$ type = "int"; min = 0; max = 3 + */ +#define CONFIG_FAT_FS_MINIMIZE 0 +#define _FS_MINIMIZE CONFIG_FAT_FS_MINIMIZE + +/** + * If enabled, this reduces memory consumption 512 bytes each file object by using a shared buffer. + * $WIZ$ type = "boolean" + */ +#define CONFIG_FAT_FS_TINY 1 +#define _FS_TINY CONFIG_FAT_FS_TINY + +/** + * To enable string functions, set _USE_STRFUNC to 1 or 2. + * $WIZ$ type = "int" + * $WIZ$ supports = "False" + */ +#define CONFIG_FAT_USE_STRFUNC 0 +#define _USE_STRFUNC CONFIG_FAT_USE_STRFUNC + +/** + * Enable f_mkfs function. Requires CONFIG_FAT_FS_READONLY = 0. + * $WIZ$ type = "boolean" + */ +#define CONFIG_FAT_USE_MKFS 0 +#define _USE_MKFS (CONFIG_FAT_USE_MKFS && !CONFIG_FAT_FS_READONLY) + +/** + * Enable f_forward function. Requires CONFIG_FAT_FS_TINY. + * $WIZ$ type = "boolean" + */ +#define CONFIG_FAT_USE_FORWARD 0 +#define _USE_FORWARD (CONFIG_FAT_USE_FORWARD && CONFIG_FAT_FS_TINY) + +/** + * Number of volumes (logical drives) to be used. + * $WIZ$ type = "int"; min = 1; max = 255 + */ +#define CONFIG_FAT_DRIVES 1 +#define _DRIVES CONFIG_FAT_DRIVES + +/** + * Maximum sector size to be handled. (512/1024/2048/4096). + * 512 for memory card and hard disk, 1024 for floppy disk, 2048 for MO disk + * $WIZ$ type = "int"; min = 512; max = 4096 + */ +#define CONFIG_FAT_MAX_SS 512 +#define _MAX_SS CONFIG_FAT_MAX_SS + +/** + * When _MULTI_PARTITION is set to 0, each volume is bound to the same physical + * drive number and can mount only first primaly partition. When it is set to 1, + * each volume is tied to the partitions listed in Drives[]. + * $WIZ$ type = "boolean" + * $WIZ$ supports = "False" + */ +#define CONFIG_FAT_MULTI_PARTITION 0 +#define _MULTI_PARTITION CONFIG_FAT_MULTI_PARTITION + +/** + * Specifies the OEM code page to be used on the target system. + * $WIZ$ type = "int" + */ +#define CONFIG_FAT_CODE_PAGE 850 +#define _CODE_PAGE CONFIG_FAT_CODE_PAGE + +/** + * Support for long filenames. Enable only if you have a valid Microsoft license. + * $WIZ$ type = "boolean" + */ +#define CONFIG_FAT_USE_LFN 0 +#define _USE_LFN CONFIG_FAT_USE_LFN + +/** + * Maximum Long File Name length to handle. + * $WIZ$ type = "int"; min = 8; max = 255 + */ +#define CONFIG_FAT_MAX_LFN 255 +#define _MAX_LFN CONFIG_FAT_MAX_LFN + +#endif /* CFG_FAT_H */ diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_flash25.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_flash25.h new file mode 100644 index 00000000..4b478b21 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_flash25.h @@ -0,0 +1,51 @@ +/** + * \file + * + * + * \brief Configuration file for flash25 module. + * + * + * \author Daniele Basile + */ + +#ifndef CFG_FLASH25_H +#define CFG_FLASH25_H + +/** + * Eeprom memory type. + * + *$WIZ$ type = "enum" + *$WIZ$ value_list = "flash25_list" + */ +#define CONFIG_FLASH25 FLASH25_AT25F2048 + +#endif /* CFG_FALSH25_H */ + diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_formatwr.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_formatwr.h new file mode 100644 index 00000000..bac8aca7 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_formatwr.h @@ -0,0 +1,65 @@ +/** + * \file + * + * + * \brief Configuration file for formatted write module. + * + * \author Daniele Basile + */ + +#ifndef CFG_FORMATWR_H +#define CFG_FORMATWR_H + +/** + * printf()-style formatter configuration. + * $WIZ$ type = "enum"; value_list = "printf_list" + * + * \sa PRINTF_DISABLED + * \sa PRINTF_NOMODIFIERS + * \sa PRINTF_REDUCED + * \sa PRINTF_NOFLOAT + * \sa PRINTF_FULL + */ +#define CONFIG_PRINTF PRINTF_FULL + +/** + * Size of buffer to format "%" sequences in printf. + * + * Warning: no check on buffer size is done when formatting, be careful especially + * with big numbers and %f formatting. + * + * $WIZ$ type = "int" + * $WIZ$ min = 4 + */ +#define CONFIG_FRMWRI_BUFSIZE 134 + +#endif /* CFG_FORMATWR_H */ + diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_gfx.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_gfx.h new file mode 100644 index 00000000..59dde04c --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_gfx.h @@ -0,0 +1,67 @@ +/** + * \file + * + * + * \brief Configuration file for GFX module. + * + * \author Daniele Basile + */ + +#ifndef CFG_GFX_H +#define CFG_GFX_H + +/** + * Enable line clipping algorithm. + * $WIZ$ type = "boolean" + */ +#define CONFIG_GFX_CLIPPING 1 + +/** + * Enable text rendering in bitmaps. + * $WIZ$ type = "boolean" + */ +#define CONFIG_GFX_TEXT 1 + +/** + * Enable virtual coordinate system. + * $WIZ$ type = "boolean" + */ +#define CONFIG_GFX_VCOORDS 1 + +/** + * Select bitmap pixel format. + * $WIZ$ type = "enum" + * $WIZ$ value_list = "bitmap_format" + */ +#define CONFIG_BITMAP_FMT BITMAP_FMT_PLANAR_V_LSB + +#endif /* CFG_GFX_H */ + diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_hashtable.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_hashtable.h new file mode 100644 index 00000000..e4645f33 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_hashtable.h @@ -0,0 +1,51 @@ +/** + * \file + * + * + * \brief Configuration file for hashtable module. + * + * \author Daniele Basile + */ + +#ifndef CFG_HASHTABLE_H +#define CFG_HASHTABLE_H + +/** + * Enable/disable support to declare special hash tables which maintain a copy of the key internally instead of relying on the hook to extract it from the data. + * + * $WIZ$ type = "boolean" + */ +#define CONFIG_HT_OPTIONAL_INTERNAL_KEY 1 + +#endif /* CFG_HASHTABLE_H */ + + + diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_heap.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_heap.h new file mode 100644 index 00000000..e1a37b76 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_heap.h @@ -0,0 +1,50 @@ +/** + * \file + * + * + * \brief Configuration file for heap module. + * + * + * \author Daniele Basile + */ + +#ifndef CFG_HEAP_H +#define CFG_HEAP_H + +/** + * Enable malloc/free like API. + * $WIZ$ type = "boolean" + */ +#define CONFIG_HEAP_MALLOC 1 + +#endif /* CFG_HEAP_H */ + + diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_i2c.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_i2c.h new file mode 100644 index 00000000..ea599a81 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_i2c.h @@ -0,0 +1,83 @@ +/** + * \file + * + * + * \brief Configuration file for I2C module. + * + * \author Daniele Basile + */ + +#ifndef CFG_I2C_H +#define CFG_I2C_H + +/** +*Comunication frequency. +* +* $WIZ$ type = "int" +*/ +#define CONFIG_I2C_FREQ 100000UL + +/** + * I2C start timeout. + * For how many milliseconds the i2c_start + * should try to get an ACK before + * returning error. + * + * $WIZ$ type = "int" + */ +#define CONFIG_I2C_START_TIMEOUT 100 + +/** + * Check this to disable I2c deprecated API support. + * + * $WIZ$ type = "boolean" + */ +#define CONFIG_I2C_DISABLE_OLD_API 0 + +/** + * Module logging level. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_level" + */ +#define I2C_LOG_LEVEL LOG_LVL_INFO + +/** + * module logging format. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_format" + */ +#define I2C_LOG_FORMAT LOG_FMT_TERSE + +#endif /* CFG_I2C_H */ + + diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_i2s.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_i2s.h new file mode 100644 index 00000000..6657157e --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_i2s.h @@ -0,0 +1,74 @@ +/** + * \file + * + * + * \brief Configuration file for I2S module. + * + * + * \author Luca Ottaviano + */ + +#ifndef CFG_I2S_H +#define CFG_I2S_H + +/** + * Length of each play buffer. + * + * $WIZ$ type = "int" + */ +#define CONFIG_PLAY_BUF_LEN 8192 + +/** + * Sampling frequency of the audio file. + * + * $WIZ$ type = "int" + * $WIZ$ min = 32000 + * $WIZ$ max = 192000 + */ +#define CONFIG_SAMPLE_FREQ 44100UL + +/** + * Module logging level. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_level" + */ +#define I2S_LOG_LEVEL LOG_LVL_INFO + +/** + * Module logging format. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_format" + */ +#define I2S_LOG_FORMAT LOG_FMT_TERSE + +#endif /* CFG_I2S_H */ diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_ini_reader.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_ini_reader.h new file mode 100644 index 00000000..d0be4389 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_ini_reader.h @@ -0,0 +1,48 @@ +/** + * \file + * + * + * \brief Configuration file for ini reader module. + * + * + * \author Luca Ottaviano + */ + +#ifndef CFG_INI_READER_H +#define CFG_INI_READER_H + +/** + * Maximum ini file line length (chars). + * $WIZ$ type = "int"; min = 1 + */ +#define CONFIG_INI_MAX_LINE_LEN 64 + +#endif /* CFG_INI_READER_H */ diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_kbd.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_kbd.h new file mode 100644 index 00000000..92aa272d --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_kbd.h @@ -0,0 +1,58 @@ +/** + * \file + * + * + * \brief Configuration file for keyboard module. + * + * + * \author Daniele Basile + */ + +#ifndef CFG_KBD_H +#define CFG_KBD_H + +/// Keyboard polling method. $WIZ$ supports = "False" +#define CONFIG_KBD_POLL KBD_POLL_SOFTINT + +/// Enable keyboard event delivery to observers. $WIZ$ type = "boolean" +#define CONFIG_KBD_OBSERVER 0 + +/// Enable key beeps. $WIZ$ type = "boolean" +#define CONFIG_KBD_BEEP 0 + +/// Enable long pression handler for keys. $WIZ$ type = "boolean" +#define CONFIG_KBD_LONGPRESS 0 + +/// Enable calling poor man's scheduler to be called inside kbd_peek. $WIZ$ type = "boolean" +#define CONFIG_KBD_SCHED 0 + +#endif /* CFG_KBD_H */ + diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_keytag.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_keytag.h new file mode 100644 index 00000000..8bedadf6 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_keytag.h @@ -0,0 +1,61 @@ +/** + * \file + * + * + * \brief Configuration file for keytag module. + * + * \author Daniele Basile + */ + +#ifndef CFG_KEYTAG_H +#define CFG_KEYTAG_H + +/** + * Module logging level. + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_level" + */ +#define CONFIG_KEYTAG_LOG_LEVEL LOG_LVL_ERR +/** + * Module logging format. + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_format" + */ +#define CONFIG_KEYTAG_LOG_FORMAT LOG_FMT_TERSE + +/** + * Max buffer lenght + * $WIZ$ type = "int" + */ +#define CONFIG_TAG_MAX_LEN 14U + +#endif /* CFG_KEYTAG_H */ + diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_kfile.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_kfile.h new file mode 100644 index 00000000..0ebed7b1 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_kfile.h @@ -0,0 +1,61 @@ +/** + * \file + * + * + * \brief Configuration file for KFile interface module. + * + * \author Daniele Basile + */ + +#ifndef CFG_KFILE_H +#define CFG_KFILE_H + +/** + * Module logging level. + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_level" + */ +#define KFILE_LOG_LEVEL LOG_LVL_INFO + +/** + * Module logging format. + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_format" + */ +#define KFILE_LOG_FORMAT LOG_FMT_TERSE + +/** + * Enable the gets function with echo. + * $WIZ$ type = "boolean" + */ +#define CONFIG_KFILE_GETS 0 + +#endif /* CFG_KFILE_H */ diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_lcd_32122a.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_lcd_32122a.h new file mode 100644 index 00000000..5a9b3ca7 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_lcd_32122a.h @@ -0,0 +1,63 @@ +/** + * \file + * + * + * \brief Displaytech 32122A LCD driver configuration file. + * + * \author Bernie Innocenti + * \author Stefano Fedrigo + * + */ +#ifndef CFG_LCD_32122A_H +#define CFG_LCD_32122A_H + +/** + * Enable soft interrupt to refresh the LCD. + * $WIZ$ type = "boolean" + */ +#define CONFIG_LCD_SOFTINT_REFRESH 0 + +/** + * Enable wait macro when display is busy. + * $WIZ$ type = "boolean" + */ +#define CONFIG_LCD_WAIT 0 + +/** + * Display refresh time 32122a. + * $WIZ$ type = "int" + * $WIZ$ min = 0 + */ +#define CONFIG_LCD_REFRESH 100 + +#endif /* CFG_LCD_32122A_H */ + diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_lcd_hd44.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_lcd_hd44.h new file mode 100644 index 00000000..7bea4376 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_lcd_hd44.h @@ -0,0 +1,69 @@ +/** + * \file + * + * + * \brief Configuration file for lcd display module. + * + * \author Daniele Basile + */ + +#ifndef CFG_LCD_H +#define CFG_LCD_H + +/** + * Use 4 bit addressing mode. + * $WIZ$ type = "boolean" + */ +#define CONFIG_LCD_4BIT 0 + +/** + * Use a table to speed up LCD memory addressing. + * This will use about 100 bytes of RAM. + * $WIZ$ type = "boolean" + */ +#define CONFIG_LCD_ADDRESS_FAST 1 + +/** + * Number of columns in LCD display. + * $WIZ$ type = "enum" + * $WIZ$ value_list = "lcd_hd44_cols" + */ +#define CONFIG_LCD_COLS LCD_HD44_COLS_16 + +/** + * Number of rows in LCD display. + * $WIZ$ type = "enum" + * $WIZ$ value_list = "lcd_hd44_rows" + */ +#define CONFIG_LCD_ROWS LCD_HD44_ROWS_2 + +#endif /* CFG_LCD_H */ + diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_lm75.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_lm75.h new file mode 100644 index 00000000..91b347ad --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_lm75.h @@ -0,0 +1,57 @@ +/** + * \file + * + * + * \brief Configuration file for the LM75 sensor temperature. + * + * \author Daniele Basile + */ + +#ifndef CFG_LM75_H +#define CFG_LM75_H + +/** + * Module logging level. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_level" + */ +#define LM75_LOG_LEVEL LOG_LVL_WARN + +/** + * Module logging format. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_format" + */ +#define LM75_LOG_FORMAT LOG_FMT_TERSE + +#endif /* CFG_AX25_H */ diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_md2.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_md2.h new file mode 100644 index 00000000..e937b900 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_md2.h @@ -0,0 +1,53 @@ +/** + * \file + * + * + * \brief Configuration file for MD2 module. + * + * + * \author Daniele Basile + */ + +#ifndef CFG_MD2_H +#define CFG_MD2_H + +/** + * Size of block for MD2 algorithm. + * $WIZ$ type = "int" + * $WIZ$ min = 2 + */ +#define CONFIG_MD2_BLOCK_LEN 16 + +/// Use standard permutation in MD2 algorithm. $WIZ$ type = "boolean" +#define CONFIG_MD2_STD_PERM 0 + +#endif /* CFG_MD2_H */ + diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_monitor.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_monitor.h new file mode 100644 index 00000000..78f222bf --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_monitor.h @@ -0,0 +1,47 @@ +/** + * \file + * + * + * \brief Kernel monitor configuration parameters + * + * \author Bernie Innocenti + */ + +#ifndef CFG_MONITOR_H +#define CFG_MONITOR_H + +/** + * Process monitor. + * $WIZ$ type = "autoenabled" + */ +#define CONFIG_KERN_MONITOR 0 + +#endif /* CFG_MONITOR_H */ diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_nmea.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_nmea.h new file mode 100644 index 00000000..9249a9af --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_nmea.h @@ -0,0 +1,85 @@ +/** + * \file + * + * + * \brief Configuration file for NMEA module. + * + * \author Daniele Basile + */ + +#ifndef CFG_NMEA_H +#define CFG_NMEA_H + +/** + * Module logging level. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_level" + */ +#define NMEA_LOG_LEVEL LOG_LVL_ERR + +/** + * Module logging format. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_format" + */ +#define NMEA_LOG_FORMAT LOG_FMT_TERSE + + +/** + * Maximum number of sentence parsers supported. + * + * $WIZ$ type = "int" + * $WIZ$ min = 1 + */ +#define CONFIG_NMEAP_MAX_SENTENCES 8 + +/** + * Max length of a complete sentence. The standard says 82 bytes, but its probably + * better to go at least 128 since some units don't adhere to the 82 bytes + * especially for proprietary sentences. + * + * $WIZ$ type = "int" + * $WIZ$ min = 1 + */ +#define CONFIG_NMEAP_MAX_SENTENCE_LENGTH 255 + +/** + * Max tokens in one sentence. 24 is enough for any standard sentence. + * + * $WIZ$ type = "int" + * $WIZ$ min = 1 + */ +#define CONFIG_NMEAP_MAX_TOKENS 24 + +#endif /* CFG_NMEA_H */ + diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_parser.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_parser.h new file mode 100644 index 00000000..572b4a24 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_parser.h @@ -0,0 +1,46 @@ +/** + * \file + * + * + * \brief Configuration file for parser module. + * + * \author Daniele Basile + */ + +#ifndef CFG_PARSER_H +#define CFG_PARSER_H + + + +#endif /* CFG_PARSER_H */ + + + diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_phase.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_phase.h new file mode 100644 index 00000000..1ed51076 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_phase.h @@ -0,0 +1,55 @@ +/** + * \file + * + * + * \brief Configuration file for phase module. + * + * \author Daniele Basile + */ + +#ifndef CFG_PHASE_H +#define CFG_PHASE_H + +/** + * Max value of the duty cycle on triac. + * $WIZ$ type = "int" + * $WIZ$ min = 1 + */ +#define CONFIG_TRIAC_MAX_DUTY 100 + +/** + * Max value of the triac power. + * $WIZ$ type = "int" + * $WIZ$ min = 1 + */ +#define CONFIG_TRIAC_MAX_POWER 100 + +#endif /* CFG_PHASE_H */ diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_pocketbus.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_pocketbus.h new file mode 100644 index 00000000..aa0b090b --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_pocketbus.h @@ -0,0 +1,71 @@ +/** + * \file + * + * + * \brief Configuration file for pocketbus module. + * + * \author Daniele Basile + */ + +#ifndef CFG_POCKETBUS_H +#define CFG_POCKETBUS_H + +/** + * Module logging level. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_level" + */ +#define POCKETBUS_LOG_LEVEL LOG_LVL_ERR + +/** + * Module logging format. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_format" + */ +#define POCKETBUS_LOG_FORMAT LOG_FMT_TERSE + + +/** + *Buffer len for pockebus protocol. + * $WIZ$ type = "int" + * $WIZ$ min = 2 + */ +#define CONFIG_POCKETBUS_BUFLEN 128 + +/** + * Command replay timeout in milliseconds. + * $WIZ$ type = "int" + */ +#define CONFIG_POCKETBUS_CMD_REPLY_TIMEOUT 50 + +#endif /* CFG_POCKETBUS_H */ diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_proc.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_proc.h new file mode 100644 index 00000000..3c9439fb --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_proc.h @@ -0,0 +1,107 @@ +/** + * \file + * + * + * \brief Kernel configuration parameters + * + * \author Bernie Innocenti + */ + +#ifndef CFG_PROC_H +#define CFG_PROC_H + +/** + * Enable the multithreading kernel. + * + * $WIZ$ type = "autoenabled" + */ +#define CONFIG_KERN 0 + +/** + * Kernel interrupt supervisor. WARNING: Experimental, still incomplete! + * $WIZ$ type = "boolean" + * $WIZ$ supports = "False" + */ +#define CONFIG_KERN_IRQ 0 + +/** + * Preemptive process scheduling. + * + * $WIZ$ type = "boolean" + * $WIZ$ conditional_deps = "timer" + */ +#define CONFIG_KERN_PREEMPT 0 + +/** + * Time sharing quantum (a prime number prevents interference effects) [ms]. + * + * $WIZ$ type = "int" + * $WIZ$ min = 1 + */ +#define CONFIG_KERN_QUANTUM 11 + +/** + * Priority-based scheduling policy. + * $WIZ$ type = "boolean" + */ +#define CONFIG_KERN_PRI 0 + +/** + * Dynamic memory allocation for processes. + * $WIZ$ type = "boolean" + * $WIZ$ conditional_deps = "heap" + */ +#define CONFIG_KERN_HEAP 0 + +/** + * Size of the dynamic memory pool used by processes. + * $WIZ$ type = "int" + * $WIZ$ min = 0 + */ +#define CONFIG_KERN_HEAP_SIZE 2048L + +/** + * Module logging level. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_level" + */ +#define KERN_LOG_LEVEL LOG_LVL_ERR + +/** + * Module logging format. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_format" + */ +#define KERN_LOG_FORMAT LOG_FMT_VERBOSE + +#endif /* CFG_PROC_H */ diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_pwm.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_pwm.h new file mode 100644 index 00000000..595189e6 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_pwm.h @@ -0,0 +1,56 @@ +/** + * \file + * + * + * \brief Configuration file for PWM module. + * + * \author Daniele Basile + */ + +#ifndef CFG_PWM_H +#define CFG_PWM_H + +/** + * Module logging level. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_level" + */ +#define PWM_LOG_LEVEL LOG_LVL_INFO + +/** + * Module logging format. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_format" + */ +#define PWM_LOG_FORMAT LOG_FMT_VERBOSE + +#endif /* CFG_PWM_H */ diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_ramp.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_ramp.h new file mode 100644 index 00000000..162d2db2 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_ramp.h @@ -0,0 +1,115 @@ + /** + * \file + * + * + * \brief Configuration file Ramp algorithm module. + * + * \author Daniele Basile + */ + +#ifndef CFG_RAMP_H +#define CFG_RAMP_H + +/** + * Define whether the ramp will use floating point calculation within ramp_evaluate(). + * Otherwise, a less precise fixed point version will be used, which is faster on + * platforms which do no support floating point operations. + * + * \note Floating point operations will be always done within ramp_compute() to + * precalculate values, so there has to be at least a floating point emulation support. + * + * $WIZ$ type = "boolean" + */ +#define RAMP_USE_FLOATING_POINT 0 + + +#if !RAMP_USE_FLOATING_POINT + + /** + * Number of least-significant bits which are stripped away during ramp evaluation. + * This setting allows to specify larger ramps at the price of less precision. + * + * The maximum ramp size allowed is 2^(24 + RAMP_CLOCK_SHIFT_PRECISION), in clocks. + * For instance, using RAMP_CLOCK_SHIFT_PRECISION 1, and a 8x prescaler, the maximum + * length of a ramp is about 6.7 secs. Raising RAMP_CLOCK_SHIFT_PRECISION to 2 + * brings the maximum length to 13.4 secs, at the price of less precision. + * + * ramp_compute() will check that the length is below the maximum allowed through + * a runtime assertion. + * + * \note This macro is used only for the fixed-point version of the ramp. + * $WIZ$ type = "int" + * $WIZ$ min = 0 + * $WIZ$ max = 32 + */ + #define RAMP_CLOCK_SHIFT_PRECISION 2 +#endif + + +/** +* Negative pulse width for ramp. +* $WIZ$ type = "int" +* $WIZ$ min = 1 +*/ +#define RAMP_PULSE_WIDTH 50 + +/** + * Default ramp time (microsecs). + * $WIZ$ type = "int" + * $WIZ$ min = 1000 + */ +#define RAMP_DEF_TIME 6000000UL +/** + * Default ramp maxfreq (Hz). + * $WIZ$ type = "int" + * $WIZ$ min = 1 + */ +#define RAMP_DEF_MAXFREQ 5000 +/** + * Default ramp minfreq (Hz). + * $WIZ$ type = "int" + * $WIZ$ min = 1 + */ +#define RAMP_DEF_MINFREQ 200 +/** + * Default ramp powerrun (deciampere). + * $WIZ$ type = "int" + * $WIZ$ min = 0 + */ +#define RAMP_DEF_POWERRUN 10 +/** + * Default ramp poweridle (Hz). + * $WIZ$ type = "int" + * $WIZ$ min = 0 + */ +#define RAMP_DEF_POWERIDLE 1 + +#endif /* CFG_RAMP_H */ diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_randpool.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_randpool.h new file mode 100644 index 00000000..3038363e --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_randpool.h @@ -0,0 +1,55 @@ +/** + * \file + * + * + * \brief Configuration file for randpool module. + * + * + * \author Daniele Basile + */ + +#ifndef CFG_RANDPOOL_H +#define CFG_RANDPOOL_H + + +/** + * Define a size, in byte, of entropy pool. + * $WIZ$ type = "int" + * $WIZ$ min = 1 + */ +#define CONFIG_SIZE_ENTROPY_POOL 64 + +/// Enable timer in randpool algo. $WIZ$ type = "boolean" +#define CONFIG_RANDPOOL_TIMER 1 + +#endif /* CFG_RANDPOOL_H */ + + diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_sd.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_sd.h new file mode 100644 index 00000000..8c40f827 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_sd.h @@ -0,0 +1,75 @@ +/** + * \file + * + * + * \brief Configuration file Secure Digital module. + * + * + * \author Francesco Sacchi + */ + +#ifndef CFG_SD_H +#define CFG_SD_H + +/** + * Module logging level. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_level" + */ +#define SD_LOG_LEVEL LOG_LVL_ERR + +/** + * Module logging format. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_format" + */ +#define SD_LOG_FORMAT LOG_FMT_VERBOSE + + +/** + * Enable autoassignment of SD driver to disk drive number 0 of FatFs module. + * $WIZ$ type = "boolean" + * $WIZ$ conditional_deps = "fat" + */ +#define CONFIG_SD_AUTOASSIGN_FAT 1 + +/** + * Enable backward compatibility for sd_init(). + * If enabled, sd_init() will allocate internally an Sd context, + * otherwise sd_init() will need the context to be passed explicitly. + * + * $WIZ$ type = "boolean" + */ +#define CONFIG_SD_OLD_INIT 1 + +#endif /* CFG_SD_H */ diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_sem.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_sem.h new file mode 100644 index 00000000..51811da4 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_sem.h @@ -0,0 +1,47 @@ +/** + * \file + * + * + * \brief Kernel semaphores configuration parameters. + * + * \author Bernie Innocenti + */ + +#ifndef CFG_SEM_H +#define CFG_SEM_H + +/** + * Re-entrant mutual exclusion primitives. + * $WIZ$ type = "autoenabled" + */ +#define CONFIG_KERN_SEMAPHORES 0 + +#endif /* CFG_SEM_H */ diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_ser.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_ser.h new file mode 100644 index 00000000..91a10e0b --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_ser.h @@ -0,0 +1,222 @@ +/** + * \file + * + * + * \brief Configuration file for serial module. + * + * \author Daniele Basile + */ + +#ifndef CFG_SER_H +#define CFG_SER_H + +/** + * Example of setting for serial port and + * spi port. + * Edit these define for your project. + */ + +/** + * Size of the outbound FIFO buffer for port 0 [bytes]. + * $WIZ$ type = "int" + * $WIZ$ min = 2 + */ +#define CONFIG_UART0_TXBUFSIZE 32 + +/** + * Size of the inbound FIFO buffer for port 0 [bytes]. + * $WIZ$ type = "int" + * $WIZ$ min = 2 + */ +#define CONFIG_UART0_RXBUFSIZE 32 + +/** + * Size of the outbound FIFO buffer for port 1 [bytes]. + * $WIZ$ type = "int" + * $WIZ$ min = 2 + * $WIZ$ supports = "lm3s or lpc2 or (at91 and not atmega8 and not atmega168 and not atmega32)" + */ +#define CONFIG_UART1_TXBUFSIZE 32 + +/** + * Size of the inbound FIFO buffer for port 1 [bytes]. + * $WIZ$ type = "int" + * $WIZ$ min = 2 + * $WIZ$ supports = "lm3s or lpc2 or (at91 and not atmega8 and not atmega168 and not atmega32)" + */ +#define CONFIG_UART1_RXBUFSIZE 32 + +/** + * Size of the outbound FIFO buffer for port 2 [bytes]. + * $WIZ$ type = "int" + * $WIZ$ min = 2 + * $WIZ$ supports = "lm3s or lpc2" + */ +#define CONFIG_UART2_TXBUFSIZE 32 + +/** + * Size of the inbound FIFO buffer for port 2 [bytes]. + * $WIZ$ type = "int" + * $WIZ$ min = 2 + * $WIZ$ supports = "lm3s or lpc2" + */ +#define CONFIG_UART2_RXBUFSIZE 32 + +/** + * Size of the outbound FIFO buffer for port 3 [bytes]. + * $WIZ$ type = "int" + * $WIZ$ min = 2 + * $WIZ$ supports = "lpc2" + */ +#define CONFIG_UART3_TXBUFSIZE 32 + +/** + * Size of the inbound FIFO buffer for port 3 [bytes]. + * $WIZ$ type = "int" + * $WIZ$ min = 2 + * $WIZ$ supports = "lpc2" + */ +#define CONFIG_UART3_RXBUFSIZE 32 + + +/** + * Size of the outbound FIFO buffer for SPI port [bytes]. + * $WIZ$ type = "int" + * $WIZ$ min = 2 + * $WIZ$ supports = "avr" + */ +#define CONFIG_SPI_TXBUFSIZE 32 + +/** + * Size of the inbound FIFO buffer for SPI port [bytes]. + * $WIZ$ type = "int" + * $WIZ$ min = 2 + * $WIZ$ supports = "avr" + */ +#define CONFIG_SPI_RXBUFSIZE 32 + +/** + * Size of the outbound FIFO buffer for SPI port 0 [bytes]. + * $WIZ$ type = "int" + * $WIZ$ min = 2 + * $WIZ$ supports = "at91" + */ +#define CONFIG_SPI0_TXBUFSIZE 32 + +/** + * Size of the inbound FIFO buffer for SPI port 0 [bytes]. + * $WIZ$ type = "int" + * $WIZ$ min = 2 + * $WIZ$ supports = "at91" + */ +#define CONFIG_SPI0_RXBUFSIZE 32 + +/** + * Size of the outbound FIFO buffer for SPI port 1 [bytes]. + * $WIZ$ type = "int" + * $WIZ$ min = 2 + * $WIZ$ supports = "at91" + */ +#define CONFIG_SPI1_TXBUFSIZE 32 + +/** + * Size of the inbound FIFO buffer for SPI port 1 [bytes]. + * $WIZ$ type = "int" + * $WIZ$ min = 2 + * $WIZ$ supports = "at91" + */ +#define CONFIG_SPI1_RXBUFSIZE 32 + +/** + * SPI data order. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "ser_order_bit" + * $WIZ$ supports = "avr" + */ +#define CONFIG_SPI_DATA_ORDER SER_MSB_FIRST + +/** + * SPI clock division factor. + * $WIZ$ type = "int" + * $WIZ$ supports = "avr" + */ +#define CONFIG_SPI_CLOCK_DIV 16 + +/** + * SPI clock polarity: normal low or normal high. + * $WIZ$ type = "enum" + * $WIZ$ value_list = "ser_spi_pol" + * $WIZ$ supports = "avr" + */ +#define CONFIG_SPI_CLOCK_POL SPI_NORMAL_LOW + +/** + * SPI clock phase you can choose sample on first edge or + * sample on second clock edge. + * $WIZ$ type = "enum" + * $WIZ$ value_list = "ser_spi_phase" + * $WIZ$ supports = "avr" + */ +#define CONFIG_SPI_CLOCK_PHASE SPI_SAMPLE_ON_FIRST_EDGE + +/** + * Default transmit timeout (ms). Set to -1 to disable timeout support. + * $WIZ$ type = "int" + * $WIZ$ min = -1 + */ +#define CONFIG_SER_TXTIMEOUT -1 + +/** + * Default receive timeout (ms). Set to -1 to disable timeout support. + * $WIZ$ type = "int" + * $WIZ$ min = -1 + */ +#define CONFIG_SER_RXTIMEOUT -1 + +/** + * Use RTS/CTS handshake. + * $WIZ$ type = "boolean" + * $WIZ$ supports = "False" + */ +#define CONFIG_SER_HWHANDSHAKE 0 + +/** + * Default baudrate for all serial ports (set to 0 to disable). + * $WIZ$ type = "int" + * $WIZ$ min = 0 + */ +#define CONFIG_SER_DEFBAUDRATE 0UL + +/// Enable strobe pin for debugging serial interrupt. $WIZ$ type = "boolean" +#define CONFIG_SER_STROBE 0 + +#endif /* CFG_SER_H */ diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_signal.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_signal.h new file mode 100644 index 00000000..e48d86a6 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_signal.h @@ -0,0 +1,47 @@ +/** + * \file + * + * + * \brief Kernel signals configuration parameters + * + * \author Bernie Innocenti + */ + +#ifndef CFG_SIGNAL_H +#define CFG_SIGNAL_H + +/** + * Inter-process signals. + * $WIZ$ type = "autoenabled" + */ +#define CONFIG_KERN_SIGNALS 0 + +#endif /* CFG_SIGNAL_H */ diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_spi_bitbang.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_spi_bitbang.h new file mode 100644 index 00000000..1a3a8a92 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_spi_bitbang.h @@ -0,0 +1,51 @@ +/** + * \file + * + * + * \brief Configuration file for SPI bitbang module. + * + * + * \author Daniele Basile + */ + +#ifndef CFG_SPI_BITBANG_H +#define CFG_SPI_BITBANG_H + +/** + * Set data order for emulated SPI. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "ordet_bit_list" + */ +#define CONFIG_SPI_DATAORDER SPI_LSB_FIRST + +#endif /* CFG_SPI_BITBANG_H */ + diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_stepper.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_stepper.h new file mode 100644 index 00000000..2925fb66 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_stepper.h @@ -0,0 +1,69 @@ +/** + * \file + * + * + * \brief Configuration file for stepper motor module. + * + * \author Daniele Basile + */ + +#ifndef CFG_STEPPER_H +#define CFG_STEPPER_H + +/** + * Module logging level. + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_level" + */ +#define STEPPER_LOG_LEVEL LOG_LVL_INFO + +/** + * Module logging format. + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_format" + */ +#define STEPPER_LOG_FORMAT LOG_FMT_TERSE + +/** + * Max number of the stepper motor. + * $WIZ$ type = "int" + * $WIZ$ min = 1 + */ +#define CONFIG_NUM_STEPPER_MOTORS 6 + +/** + * Max number of the timer usable on target to drive stepper motor. + * $WIZ$ type = "int" + * $WIZ$ min = 1 + */ +#define CONFIG_TC_STEPPER_MAX_NUM 6 + +#endif /* CFG_STEPPER_H */ diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_tas5706a.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_tas5706a.h new file mode 100644 index 00000000..32b3598f --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_tas5706a.h @@ -0,0 +1,50 @@ +/** + * \file + * + * + * \brief Configuration file for the TAS5706A module. + * + * \author Luca Ottaviano + */ + +#ifndef CFG_TAS5706A_H +#define CFG_TAS5706A_H + +/** + * Maximum output volume for TAS chip [dB]. + * + * $WIZ$ type = "int" + * $WIZ$ min = -100 + * $WIZ$ max = 24 + */ +#define CONFIG_TAS_MAX_VOL -39 + +#endif /* CFG_TAS5706A_H */ diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_thermo.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_thermo.h new file mode 100644 index 00000000..2734f899 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_thermo.h @@ -0,0 +1,71 @@ +/** + * \file + * + * + * \brief Configuration file for thermo module. + * + * \author Daniele Basile + */ + +#ifndef CFG_THERMO_H +#define CFG_THERMO_H + +/** + * Module logging level. + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_level" + */ +#define CONFIG_THERMO_LOG_LEVEL LOG_LVL_ERR +/** + * Module logging format. + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_format" + */ +#define CONFIG_THERMO_LOG_FORMAT LOG_FMT_TERSE + + +/** + * Interval at which thermo control is performed [ms]. + * + * $WIZ$ type = "int" + * $WIZ$ min = 1 + */ +#define CONFIG_THERMO_INTERVAL_MS 100 + +/** + * Number of different samples we interpolate over to get the hifi temperature. + * + * $WIZ$ type = "int" + * $WIZ$ min = 1 + */ +#define CONFIG_THERMO_HIFI_NUM_SAMPLES 10 + +#endif /* CFG_THERMO_H */ diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_timer.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_timer.h new file mode 100644 index 00000000..b6d43b38 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_timer.h @@ -0,0 +1,67 @@ +/** + * \file + * + * + * \brief Configuration file for timer module. + * + * + * \author Daniele Basile + */ + +#ifndef CFG_TIMER_H +#define CFG_TIMER_H + +/** + * Hardware timer selection for drv/timer.c. + * $WIZ$ type = "enum" + * $WIZ$ value_list = "timer_select" + */ +#define CONFIG_TIMER TIMER_DEFAULT + +/** + * Debug timer interrupt using a strobe pin. + * $WIZ$ type = "boolean" + */ +#define CONFIG_TIMER_STROBE 0 + +/** + * Enable asynchronous timers. + * $WIZ$ type = "boolean" + */ +#define CONFIG_TIMER_EVENTS 1 + +/** + * Support hi-res timer_usleep(). + * $WIZ$ type = "boolean" + */ +#define CONFIG_TIMER_UDELAY 1 + +#endif /* CFG_TIMER_H */ diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_usb.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_usb.h new file mode 100644 index 00000000..e5a282b1 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_usb.h @@ -0,0 +1,64 @@ +/** + * \file + * + * + * \author Andrea Righi + * + * \brief Configuration file for the USB driver module + */ + +#ifndef CFG_USB_H +#define CFG_USB_H + +/** + * Module logging level. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_level" + */ +#define USB_LOG_LEVEL LOG_LVL_INFO + +/** + * module logging format. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_format" + */ +#define USB_LOG_FORMAT LOG_FMT_TERSE + +/** + * Size of the USB buffer used for endpoint transfers [bytes]. + * $WIZ$ type = "int" + * $WIZ$ min = 2 + */ +#define CONFIG_USB_BUFSIZE 64 + +#endif /* CFG_USB_H */ diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_usbkbd.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_usbkbd.h new file mode 100644 index 00000000..5b6fb65a --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_usbkbd.h @@ -0,0 +1,78 @@ +/** + * \file + * + * + * \author Andrea Righi + * + * \brief Configuration file for the usbkbd driver module + */ + +#ifndef CFG_USBKBD_H +#define CFG_USBKBD_H + +/** + * Enable the usbkbd module. + * + * $WIZ$ type = "autoenabled" + */ +#define CONFIG_USBKBD 0 + +/** + * Module logging level. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_level" + */ +#define USB_KEYBOARD_LOG_LEVEL LOG_LVL_INFO + +/** + * module logging format. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_format" + */ +#define USB_KEYBOARD_LOG_FORMAT LOG_FMT_TERSE + +/** + * USB vendor ID (please change this in your project, using a valid ID number!). + * + * $WIZ$ type = "hex" + */ +#define USB_KEYBOARD_VENDOR_ID 0x046d + +/** + * USB product ID (please change this in your project, using a valid ID number!). + * + * $WIZ$ type = "hex" + */ +#define USB_KEYBOARD_PRODUCT_ID 0xffff + +#endif /* CFG_USB_KEYBOARD_H */ diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_usbmouse.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_usbmouse.h new file mode 100644 index 00000000..73143284 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_usbmouse.h @@ -0,0 +1,78 @@ +/** + * \file + * + * + * \author Andrea Righi + * + * \brief Configuration file for the usbmouse driver module + */ + +#ifndef CFG_USBMOUSE_H +#define CFG_USBMOUSE_H + +/** + * Enable the usbmouse module. + * + * $WIZ$ type = "autoenabled" + */ +#define CONFIG_USBMOUSE 0 + +/** + * Module logging level. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_level" + */ +#define USB_MOUSE_LOG_LEVEL LOG_LVL_INFO + +/** + * module logging format. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_format" + */ +#define USB_MOUSE_LOG_FORMAT LOG_FMT_TERSE + +/** + * USB vendor ID (please change this in your project, using a valid ID number!). + * + * $WIZ$ type = "hex" + */ +#define USB_MOUSE_VENDOR_ID 0xffff + +/** + * USB product ID (please change this in your project, using a valid ID number!). + * + * $WIZ$ type = "hex" + */ +#define USB_MOUSE_PRODUCT_ID 0x0000 + +#endif /* CFG_USBMOUSE_H */ diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_usbser.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_usbser.h new file mode 100644 index 00000000..1fa44e73 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_usbser.h @@ -0,0 +1,78 @@ +/** + * \file + * + * + * \author Andrea Righi + * + * \brief Configuration file for the USB serial driver module + */ + +#ifndef CFG_USBSER_H +#define CFG_USBSER_H + +/** + * Enable the usb-serial module. + * + * $WIZ$ type = "autoenabled" + */ +#define CONFIG_USBSER 0 + +/** + * Module logging level. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_level" + */ +#define USB_SERIAL_LOG_LEVEL LOG_LVL_INFO + +/** + * module logging format. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_format" + */ +#define USB_SERIAL_LOG_FORMAT LOG_FMT_TERSE + +/** + * USB vendor ID (please change this in your project, using a valid ID number!). + * + * $WIZ$ type = "hex" + */ +#define USB_SERIAL_VENDOR_ID 0x05f9 + +/** + * USB product ID (please change this in your project, using a valid ID number!). + * + * $WIZ$ type = "hex" + */ +#define USB_SERIAL_PRODUCT_ID 0xffff + +#endif /* CFG_USBSER_H */ diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_wdt.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_wdt.h new file mode 100644 index 00000000..b53b327e --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_wdt.h @@ -0,0 +1,47 @@ +/** + * \file + * + * + * \brief Configuration file for watchdog module. + * + * + * \author Daniele Basile + */ + +#ifndef CFG_WDT_H +#define CFG_WDT_H + +/// Enable watchdog timer. $WIZ$ type = "autoenabled" +#define CONFIG_WATCHDOG 0 + +#endif /* CFG_WDT_H */ + + diff --git a/boards/stm32VLDiscovery/templates/empty/cfg/cfg_xmodem.h b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_xmodem.h new file mode 100644 index 00000000..38db7359 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/cfg/cfg_xmodem.h @@ -0,0 +1,79 @@ +/** + * \file + * + * + * \brief Configuration file for xmodem module. + * + * \author Daniele Basile + */ + +#ifndef CFG_XMODEM_H +#define CFG_XMODEM_H + +/** + * Module logging level. + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_level" + */ +#define CONFIG_XMODEM_LOG_LEVEL LOG_LVL_ERR +/** + * Module logging format. + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_format" + */ +#define CONFIG_XMODEM_LOG_FORMAT LOG_FMT_TERSE + + +/// Enable Rx. $WIZ$ type = "boolean" +#define CONFIG_XMODEM_RECV 1 + +/// Enable TX. $WIZ$ type = "boolean" +#define CONFIG_XMODEM_SEND 1 + +/// Allow a Rx/Tx of 1Kbyte block. $WIZ$ type = "boolean" +#define CONFIG_XMODEM_1KCRC 1 + +/** + * Max retries before giving up. + * $WIZ$ type = "int" + * $WIZ$ min = 1 + */ +#define CONFIG_XMODEM_MAXRETRIES 15 + +/** + * Max retries before switching to BCC. + * $WIZ$ type = "int" + * $WIZ$ min = 1 + */ +#define CONFIG_XMODEM_MAXCRCRETRIES 7 + +#endif /* CFG_XMODEM_H */ + diff --git a/boards/stm32VLDiscovery/templates/empty/empty.mk b/boards/stm32VLDiscovery/templates/empty/empty.mk new file mode 100644 index 00000000..5c1eb17c --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/empty.mk @@ -0,0 +1,92 @@ +# +# Wizard autogenerated makefile. +# DO NOT EDIT, use the empty_user.mk file instead. +# + +# Constants automatically defined by the selected modules +empty_DEBUG = 1 + +# Our target application +TRG += empty + +empty_PREFIX = "arm-none-eabi-" + +empty_SUFFIX = "" + +empty_SRC_PATH = boards/stm32VLDiscovery/templates/empty + +empty_HW_PATH = boards/stm32VLDiscovery + +# Files automatically generated by the wizard. DO NOT EDIT, USE empty_USER_CSRC INSTEAD! +empty_WIZARD_CSRC = \ + bertos/cpu/cortex-m3/hw/switch_ctx_cm3.c \ + bertos/mware/event.c \ + bertos/kern/sem.c \ + bertos/cpu/cortex-m3/drv/timer_cm3.c \ + bertos/struct/heap.c \ + bertos/mware/formatwr.c \ + bertos/drv/timer.c \ + bertos/kern/kfile.c \ + bertos/kern/proc.c \ + bertos/mware/hex.c \ + bertos/kern/signal.c \ + # + +# Files automatically generated by the wizard. DO NOT EDIT, USE empty_USER_PCSRC INSTEAD! +empty_WIZARD_PCSRC = \ + \ + # + +# Files automatically generated by the wizard. DO NOT EDIT, USE empty_USER_CPPASRC INSTEAD! +empty_WIZARD_CPPASRC = \ + \ + # + +# Files automatically generated by the wizard. DO NOT EDIT, USE empty_USER_CXXSRC INSTEAD! +empty_WIZARD_CXXSRC = \ + \ + # + +# Files automatically generated by the wizard. DO NOT EDIT, USE empty_USER_ASRC INSTEAD! +empty_WIZARD_ASRC = \ + \ + # + +empty_CPPFLAGS = -D'CPU_FREQ=(24000000UL)' -D'ARCH=(ARCH_DEFAULT)' -D'WIZ_AUTOGEN' -I$(empty_HW_PATH) -I$(empty_SRC_PATH) $(empty_CPU_CPPFLAGS) $(empty_USER_CPPFLAGS) + +# Automatically generated by the wizard. PLEASE DO NOT EDIT! +empty_LDFLAGS = $(empty_CPU_LDFLAGS) $(empty_WIZARD_LDFLAGS) $(empty_USER_LDFLAGS) + +# Automatically generated by the wizard. PLEASE DO NOT EDIT! +empty_CPPAFLAGS = $(empty_CPU_CPPAFLAGS) $(empty_WIZARD_CPPAFLAGS) $(empty_USER_CPPAFLAGS) + +# Automatically generated by the wizard. PLEASE DO NOT EDIT! +empty_CSRC = $(empty_CPU_CSRC) $(empty_WIZARD_CSRC) $(empty_USER_CSRC) + +# Automatically generated by the wizard. PLEASE DO NOT EDIT! +empty_PCSRC = $(empty_CPU_PCSRC) $(empty_WIZARD_PCSRC) $(empty_USER_PCSRC) + +# Automatically generated by the wizard. PLEASE DO NOT EDIT! +empty_CPPASRC = $(empty_CPU_CPPASRC) $(empty_WIZARD_CPPASRC) $(empty_USER_CPPASRC) + +# Automatically generated by the wizard. PLEASE DO NOT EDIT! +empty_CXXSRC = $(empty_CPU_CXXSRC) $(empty_WIZARD_CXXSRC) $(empty_USER_CXXSRC) + +# Automatically generated by the wizard. PLEASE DO NOT EDIT! +empty_ASRC = $(empty_CPU_ASRC) $(empty_WIZARD_ASRC) $(empty_USER_ASRC) + +# CPU specific flags and options, defined in the CPU definition files. +# Automatically generated by the wizard. PLEASE DO NOT EDIT! +empty_CPU_CPPASRC = bertos/cpu/cortex-m3/hw/crt_cm3.S bertos/cpu/cortex-m3/hw/vectors_cm3.S +empty_CPU_CPPAFLAGS = -g -gdwarf-2 -mthumb -mno-thumb-interwork +empty_CPU_CPPFLAGS = -O0 -g3 -gdwarf-2 -mthumb -mno-thumb-interwork -fno-strict-aliasing -fwrapv -fverbose-asm -Ibertos/cpu/cortex-m3/ -D__ARM_STM32F100RB__ +empty_CPU_CSRC = bertos/cpu/cortex-m3/hw/init_cm3.c bertos/cpu/cortex-m3/drv/irq_cm3.c bertos/cpu/cortex-m3/drv/gpio_stm32.c bertos/cpu/cortex-m3/drv/clock_stm32.c +empty_PROGRAMMER_CPU = stm32 +empty_STOPFLASH_SCRIPT = bertos/prg_scripts/arm/stopopenocd.sh +empty_CPU = cortex-m3 +empty_STOPDEBUG_SCRIPT = bertos/prg_scripts/arm/stopopenocd.sh +empty_DEBUG_SCRIPT = bertos/prg_scripts/arm/debug.sh +empty_CPU_LDFLAGS = -mthumb -mno-thumb-interwork -nostartfiles -Wl,--no-warn-mismatch -T bertos/cpu/cortex-m3/scripts/stm32f100rb_rom.ld +empty_FLASH_SCRIPT = bertos/prg_scripts/arm/flash-stm32.sh + +include $(empty_SRC_PATH)/empty_user.mk diff --git a/boards/stm32VLDiscovery/templates/empty/empty_user.mk b/boards/stm32VLDiscovery/templates/empty/empty_user.mk new file mode 100644 index 00000000..4c8ed7ef --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/empty_user.mk @@ -0,0 +1,43 @@ +# +# User makefile. +# Edit this file to change compiler options and related stuff. +# + +# Programmer interface configuration, see http://dev.bertos.org/wiki/ProgrammerInterface for help +empty_PROGRAMMER_TYPE = none +empty_PROGRAMMER_PORT = none + +# Files included by the user. +empty_USER_CSRC = \ + $(empty_SRC_PATH)/main.c \ + # + +# Files included by the user. +empty_USER_PCSRC = \ + # + +# Files included by the user. +empty_USER_CPPASRC = \ + # + +# Files included by the user. +empty_USER_CXXSRC = \ + # + +# Files included by the user. +empty_USER_ASRC = \ + # + +# Flags included by the user. +empty_USER_LDFLAGS = \ + # + +# Flags included by the user. +empty_USER_CPPAFLAGS = \ + # + +# Flags included by the user. +empty_USER_CPPFLAGS = \ + -fno-strict-aliasing \ + -fwrapv \ + # diff --git a/boards/stm32VLDiscovery/templates/empty/main.c b/boards/stm32VLDiscovery/templates/empty/main.c new file mode 100644 index 00000000..c21b9a0f --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/main.c @@ -0,0 +1,40 @@ +/* \brief Empty project. + * + * This is a minimalist project, it just initializes the hardware of the + * supported board and proposes an empty main. + */ + +#include "hw/hw_led.h" + +#include + +#include + +#include + +static void init(void) +{ + /* Enable all the interrupts */ + IRQ_ENABLE; + + /* Initialize debugging module (allow kprintf(), etc.) */ + kdbg_init(); + /* Initialize system timer */ + timer_init(); + /* Initialize LED driver */ + LED_INIT(); +} + + +int main(void) +{ + init(); + + while (1) + { + // your code goes here + } + + return 0; +} + diff --git a/boards/stm32VLDiscovery/templates/empty/project.bertos b/boards/stm32VLDiscovery/templates/empty/project.bertos new file mode 100644 index 00000000..6e499430 --- /dev/null +++ b/boards/stm32VLDiscovery/templates/empty/project.bertos @@ -0,0 +1,74 @@ +(dp0 +S'BERTOS_PATH' +p1 +S'../../../..' +p2 +sS'SELECTED_FREQ' +p3 +V24000000 +p4 +sS'WIZARD_VERSION' +p5 +I3 +sS'PROJECT_NAME' +p6 +Vempty +p7 +sS'TOOLCHAIN' +p8 +(dp9 +Vtarget +p10 +Varm-none-eabi +p11 +sVthread +p12 +Vsingle +p13 +sVconfigured +p14 +V/scratch/julian/2010q3-release-eabi-lite/src/gcc-4.5-2010.09/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-none-eabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --enable-extra-sgxxlite-multilibs --with-gnu-as --with-gnu-ld --with-specs='%{save-temps: -fverbose-asm} -D__CS_SOURCERYGXX_MAJ__=2010 -D__CS_SOURCERYGXX_MIN__=9 -D__CS_SOURCERYGXX_REV__=51 %{O2:%{!fno-remove-local-statics: -fremove-local-statics}} %{O*:%{O|O0|O1|O2|Os:;:%{!fno-remove-local-statics: -fremove-local-statics}}}' --enable-languages=c,c++ --disable-shared --enable-lto --with-newlib --with-pkgversion='Sourcery G++ Lite 2010.09-51' --with-bugurl=https://support.codesourcery.com/GNUToolchain/ --disable-nls --prefix=/opt/codesourcery --with-headers=yes --with-sysroot=/opt/codesourcery/arm-none-eabi --with-build-sysroot=/scratch/julian/2010q3-release-eabi-lite/install/arm-none-eabi --with-gmp=/scratch/julian/2010q3-release-eabi-lite/obj/host-libs-2010.09-51-arm-none-eabi-i686-pc-linux-gnu/usr --with-mpfr=/scratch/julian/2010q3-release-eabi-lite/obj/host-libs-2010.09-51-arm-none-eabi-i686-pc-linux-gnu/usr --with-mpc=/scratch/julian/2010q3-release-eabi-lite/obj/host-libs-2010.09-51-arm-none-eabi-i686-pc-linux-gnu/usr --with-ppl=/scratch/julian/2010q3-release-eabi-lite/obj/host-libs-2010.09-51-arm-none-eabi-i686-pc-linux-gnu/usr --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-cloog=/scratch/julian/2010q3-release-eabi-lite/obj/host-libs-2010.09-51-arm-none-eabi-i686-pc-linux-gnu/usr --with-libelf=/scratch/julian/2010q3-release-eabi-lite/obj/host-libs-2010.09-51-arm-none-eabi-i686-pc-linux-gnu/usr --disable-libgomp --enable-poison-system-directories --with-build-time-tools=/scratch/julian/2010q3-release-eabi-lite/install/arm-none-eabi/bin --with-build-time-tools=/scratch/julian/2010q3-release-eabi-lite/install/arm-none-eabi/bin +p15 +sVversion +p16 +V4.5.1 +p17 +sVbuild +p18 +VSourcery G++ Lite 2010.09-51 +p19 +sVpath +p20 +V/opt/CodeSourcery/arm-2010.09/bin/arm-none-eabi-gcc +p21 +ssS'ENABLED_MODULES' +p22 +(lp23 +S'formatwr' +p24 +aS'kfile' +p25 +aS'heap' +p26 +aS'timer' +p27 +aS'debug' +p28 +asS'CPU_NAME' +p29 +VSTM32F100RB +p30 +sS'PROJECT_HW_PATH' +p31 +S'../..' +p32 +sS'PROJECT_SRC_PATH' +p33 +S'.' +p34 +sS'PRESET' +p35 +NsS'OUTPUT' +p36 +(lp37 +s.