From f6ba188a9210135158ae19075f8cd038aac4a6ad Mon Sep 17 00:00:00 2001 From: asterix Date: Wed, 28 Sep 2011 10:58:47 +0000 Subject: [PATCH] Add bootloader example for sam3. git-svn-id: https://src.develer.com/svnoss/bertos/trunk@5105 38d2e660-2303-0410-9eaa-f027e97ec537 --- .../examples/sam3x-ek_sd_bootloader/.spec | 1 + .../sam3x-ek_sd_bootloader/cfg/cfg_adc.h | 149 ++ .../sam3x-ek_sd_bootloader/cfg/cfg_afsk.h | 113 + .../sam3x-ek_sd_bootloader/cfg/cfg_ax25.h | 75 + .../sam3x-ek_sd_bootloader/cfg/cfg_battfs.h | 67 + .../cfg/cfg_context_switch.h | 71 + .../sam3x-ek_sd_bootloader/cfg/cfg_dac.h | 88 + .../cfg/cfg_dataflash.h | 55 + .../sam3x-ek_sd_bootloader/cfg/cfg_dc_motor.h | 111 + .../sam3x-ek_sd_bootloader/cfg/cfg_debug.h | 70 + .../sam3x-ek_sd_bootloader/cfg/cfg_eeprom.h | 64 + .../cfg/cfg_emb_flash.h | 73 + .../sam3x-ek_sd_bootloader/cfg/cfg_eth.h | 57 + .../sam3x-ek_sd_bootloader/cfg/cfg_fat.h | 156 ++ .../sam3x-ek_sd_bootloader/cfg/cfg_flash25.h | 51 + .../sam3x-ek_sd_bootloader/cfg/cfg_formatwr.h | 65 + .../sam3x-ek_sd_bootloader/cfg/cfg_gfx.h | 67 + .../cfg/cfg_hashtable.h | 51 + .../sam3x-ek_sd_bootloader/cfg/cfg_heap.h | 50 + .../sam3x-ek_sd_bootloader/cfg/cfg_i2c.h | 83 + .../sam3x-ek_sd_bootloader/cfg/cfg_i2s.h | 137 ++ .../cfg/cfg_ini_reader.h | 48 + .../sam3x-ek_sd_bootloader/cfg/cfg_kbd.h | 58 + .../sam3x-ek_sd_bootloader/cfg/cfg_keytag.h | 61 + .../sam3x-ek_sd_bootloader/cfg/cfg_kfile.h | 61 + .../cfg/cfg_lcd_32122a.h | 63 + .../sam3x-ek_sd_bootloader/cfg/cfg_lcd_hd44.h | 69 + .../sam3x-ek_sd_bootloader/cfg/cfg_led_7seg.h | 80 + .../sam3x-ek_sd_bootloader/cfg/cfg_lm75.h | 57 + .../sam3x-ek_sd_bootloader/cfg/cfg_lwip.h | 1863 +++++++++++++++++ .../sam3x-ek_sd_bootloader/cfg/cfg_md2.h | 53 + .../sam3x-ek_sd_bootloader/cfg/cfg_monitor.h | 47 + .../sam3x-ek_sd_bootloader/cfg/cfg_nand.h | 111 + .../sam3x-ek_sd_bootloader/cfg/cfg_nmea.h | 85 + .../sam3x-ek_sd_bootloader/cfg/cfg_parser.h | 66 + .../sam3x-ek_sd_bootloader/cfg/cfg_phase.h | 55 + .../cfg/cfg_pocketbus.h | 71 + .../sam3x-ek_sd_bootloader/cfg/cfg_proc.h | 113 + .../sam3x-ek_sd_bootloader/cfg/cfg_pwm.h | 64 + .../sam3x-ek_sd_bootloader/cfg/cfg_ramp.h | 115 + .../sam3x-ek_sd_bootloader/cfg/cfg_random.h | 65 + .../sam3x-ek_sd_bootloader/cfg/cfg_randpool.h | 55 + .../sam3x-ek_sd_bootloader/cfg/cfg_sd.h | 83 + .../sam3x-ek_sd_bootloader/cfg/cfg_sem.h | 47 + .../sam3x-ek_sd_bootloader/cfg/cfg_ser.h | 222 ++ .../sam3x-ek_sd_bootloader/cfg/cfg_signal.h | 47 + .../cfg/cfg_spi_bitbang.h | 51 + .../sam3x-ek_sd_bootloader/cfg/cfg_stepper.h | 69 + .../sam3x-ek_sd_bootloader/cfg/cfg_tas5706a.h | 50 + .../sam3x-ek_sd_bootloader/cfg/cfg_tftp.h | 20 + .../sam3x-ek_sd_bootloader/cfg/cfg_thermo.h | 71 + .../sam3x-ek_sd_bootloader/cfg/cfg_timer.h | 67 + .../sam3x-ek_sd_bootloader/cfg/cfg_usb.h | 85 + .../sam3x-ek_sd_bootloader/cfg/cfg_usbkbd.h | 78 + .../sam3x-ek_sd_bootloader/cfg/cfg_usbmouse.h | 78 + .../sam3x-ek_sd_bootloader/cfg/cfg_usbser.h | 78 + .../sam3x-ek_sd_bootloader/cfg/cfg_wdt.h | 47 + .../sam3x-ek_sd_bootloader/cfg/cfg_wm8731.h | 133 ++ .../sam3x-ek_sd_bootloader/cfg/cfg_xmodem.h | 79 + .../examples/sam3x-ek_sd_bootloader/main.c | 237 +++ .../sam3x-ek_sd_bootloader/project.bertos | 75 + .../sam3x-ek_sd_bootloader.mk | 97 + .../sam3x-ek_sd_bootloader_user.mk | 47 + boards/sam3x-ek/hw/hw_boot.h | 50 + 64 files changed, 6725 insertions(+) create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/.spec create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_adc.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_afsk.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_ax25.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_battfs.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_context_switch.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_dac.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_dataflash.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_dc_motor.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_debug.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_eeprom.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_emb_flash.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_eth.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_fat.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_flash25.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_formatwr.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_gfx.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_hashtable.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_heap.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_i2c.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_i2s.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_ini_reader.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_kbd.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_keytag.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_kfile.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_lcd_32122a.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_lcd_hd44.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_led_7seg.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_lm75.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_lwip.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_md2.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_monitor.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_nand.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_nmea.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_parser.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_phase.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_pocketbus.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_proc.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_pwm.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_ramp.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_random.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_randpool.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_sd.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_sem.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_ser.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_signal.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_spi_bitbang.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_stepper.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_tas5706a.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_tftp.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_thermo.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_timer.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_usb.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_usbkbd.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_usbmouse.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_usbser.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_wdt.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_wm8731.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_xmodem.h create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/main.c create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/project.bertos create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/sam3x-ek_sd_bootloader.mk create mode 100644 boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/sam3x-ek_sd_bootloader_user.mk create mode 100644 boards/sam3x-ek/hw/hw_boot.h diff --git a/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/.spec b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/.spec new file mode 100644 index 00000000..1a957719 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/.spec @@ -0,0 +1 @@ +name = 'sam3x-ek_sd_bootloader preset' \ No newline at end of file diff --git a/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_adc.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_adc.h new file mode 100644 index 00000000..62ee6ed7 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_adc.h @@ -0,0 +1,149 @@ +/** + * \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 + + +/** + * Start up timer[s] = startup value / ADCClock [Hz] + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "sam3_adc_sut" + * $WIZ$ supports = "sam3" + */ +#define CONFIG_ADC_SUT ADC_SUT512 + +/** + * Analog Settling Time[s] = settling value / ADCClock[Hz] + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "sam3_adc_stt" + * $WIZ$ supports = "sam3" + */ +#define CONFIG_ADC_STTLING ADC_AST17 + +/** + * Tracking Time[s] = (TRACKTIM + 1) / ADCClock[Hz] + * + * $WIZ$ type = "int" + * $WIZ$ min = 0 + * $WIZ$ supports = "sam3" + */ +#define CONFIG_ADC_TRACKTIM 0 + +/** + * Transfer Period[s] = (TRANSFER * 2 + 3) ADCClock[Hz] + * + * $WIZ$ type = "int" + * $WIZ$ min = 0 + * $WIZ$ supports = "sam3" + */ +#define CONFIG_ADC_TRANSFER 1 + +#endif /* CFG_ADC_H */ diff --git a/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_afsk.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_afsk.h new file mode 100644 index 00000000..cce47c1f --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_ax25.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_ax25.h new file mode 100644 index 00000000..f561d212 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_battfs.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_battfs.h new file mode 100644 index 00000000..249dda76 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_context_switch.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_context_switch.h new file mode 100644 index 00000000..fe0b4f87 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_dac.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_dac.h new file mode 100644 index 00000000..1ae1e984 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_dac.h @@ -0,0 +1,88 @@ +/** + * \file + * + * + * \brief Configuration file for DAC module. + * + * + * \author Daniele Basile + */ + +#ifndef CFG_DAC_H +#define CFG_DAC_H + +/** + * Module logging level. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_level" + */ +#define DAC_LOG_LEVEL LOG_LVL_WARN + +/** + * Module logging format. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_format" + */ +#define DAC_LOG_FORMAT LOG_FMT_TERSE + +/** + * DAC Refresh Period = 1024*REFRESH/DACC Clock + * + * $WIZ$ type = "int" + * $WIZ$ supports = "sam3x" + * $WIZ$ min = 0 + * $WIZ$ max = 65536 + */ +#define CONFIG_DAC_REFRESH 16 + +/** + * DAC Startup Time Selection. + * see datasheet table. + * + * $WIZ$ type = "int" + * $WIZ$ supports = "sam3x" + * $WIZ$ min = 0 + * $WIZ$ max = 63 + */ +#define CONFIG_DAC_STARTUP 0 + +/** + * DAC Trigger Selection. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "sam3x_dac_tc" + * $WIZ$ supports = "sam3x" + */ +#define CONFIG_DAC_TIMER DACC_TRGSEL_TIO_CH0 + +#endif /* CFG_DAC_H */ diff --git a/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_dataflash.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_dataflash.h new file mode 100644 index 00000000..4e7dfbd9 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_dc_motor.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_dc_motor.h new file mode 100644 index 00000000..fd9bac73 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_debug.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_debug.h new file mode 100644 index 00000000..10639848 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_debug.h @@ -0,0 +1,70 @@ +/** + * \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 0 + +/** + * Baudrate for the debug console. + * $WIZ$ type = "int"; min = 300 + */ +#define CONFIG_KDEBUG_BAUDRATE 115200UL + +/** + * Clock source for the UART module. You need to write the code to reprogram the respective clock at the required frequency in your project before calling kdbg_init(). + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "kdbg_clk_src" + * $WIZ$ supports = "msp430" + */ +#define CONFIG_KDEBUG_CLOCK_SOURCE KDBG_UART_SMCLK + +/** + * Clock frequency. (Only if different from MCLK's frequency, otherwise leave it zero) + * $WIZ$ type = "int"; min = 0 + * $WIZ$ supports = "msp430" + */ +#define CONFIG_KDEBUG_CLOCK_FREQ 0UL + +#endif /* CFG_DEBUG_H */ diff --git a/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_eeprom.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_eeprom.h new file mode 100644 index 00000000..b56c1f9c --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_eeprom.h @@ -0,0 +1,64 @@ +/** + * \file + * + * + * \brief Configuration file for the Eeprom module. + * + * \author Daniele Basile + */ + +#ifndef CFG_EEPROM_H +#define CFG_EEPROM_H + +/** + * Module logging level. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_level" + */ +#define EEPROM_LOG_LEVEL LOG_LVL_INFO + +/** + * Module logging format. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_format" + */ +#define EEPROM_LOG_FORMAT LOG_FMT_TERSE + +/** + * Check this to disable Eeprom deprecated API support. + * + * $WIZ$ type = "boolean" + */ +#define CONFIG_EEPROM_DISABLE_OLD_API 0 + +#endif /* CFG_EEPROM_H */ diff --git a/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_emb_flash.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_emb_flash.h new file mode 100644 index 00000000..9378552f --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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 1 + +#endif /* CFG_FLASH_AT91_H */ diff --git a/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_eth.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_eth.h new file mode 100644 index 00000000..a3788081 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_eth.h @@ -0,0 +1,57 @@ +/** + * \file + * + * + * \author Andrea Righi + * + * \brief Configuration file for the generic ethernet driver module + */ + +#ifndef CFG_ETH_H +#define CFG_ETH_H + +/** + * Module logging level. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_level" + */ +#define ETH_LOG_LEVEL LOG_LVL_WARN + +/** + * module logging format. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_format" + */ +#define ETH_LOG_FORMAT LOG_FMT_TERSE + +#endif /* CFG_ETH_H */ diff --git a/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_fat.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_fat.h new file mode 100644 index 00000000..fcd717af --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_flash25.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_flash25.h new file mode 100644 index 00000000..4b478b21 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_formatwr.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_formatwr.h new file mode 100644 index 00000000..bac8aca7 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_gfx.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_gfx.h new file mode 100644 index 00000000..59dde04c --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_hashtable.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_hashtable.h new file mode 100644 index 00000000..e4645f33 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_heap.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_heap.h new file mode 100644 index 00000000..e1a37b76 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_i2c.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_i2c.h new file mode 100644 index 00000000..ea599a81 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_i2s.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_i2s.h new file mode 100644 index 00000000..934da1b9 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_i2s.h @@ -0,0 +1,137 @@ +/** + * \file + * + * + * \brief Configuration file for I2S module. + * + * + * \author Luca Ottaviano + * \author Daniele Basile + */ + +#ifndef CFG_I2S_H +#define CFG_I2S_H + +/** + * 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 + +/** + * 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 + +/** + * Sample bits per channel. + * + * $WIZ$ type = "int" + * * $WIZ$ min = 8 + * $WIZ$ max = 32 + */ +#define CONFIG_WORD_BIT_SIZE 16 + +/** + * Number of channel. + * + * $WIZ$ type = "int" + */ +#define CONFIG_CHANNEL_NUM 2 + +/** + * Size of trasmit start delay + * + * $WIZ$ type = "int" + * $WIZ$ min = 0 + * $WIZ$ max = 255 + */ +#define CONFIG_DELAY 0 + +/** + * Generate frame sync every 2 x CONFIG_PERIOD bits (zero based) + * + * $WIZ$ type = "int" + * $WIZ$ min = 0 + * $WIZ$ max = 512 + */ +#define CONFIG_PERIOD 15 + +/** + * Number of words transmitted in frame + * + * $WIZ$ type = "int" + * $WIZ$ min = 0 + * $WIZ$ max = 16 + */ +#define CONFIG_WORD_PER_FRAME 1 + +/** + * Size of Synchro data register (zero based) + * + * $WIZ$ type = "int" + * $WIZ$ min = 0 + * $WIZ$ max = 15 + */ +#define CONFIG_FRAME_SYNC_SIZE 15 + + +/** + * Extra Size of Synchro data register (CONFIG_FRAME_SYNC_SIZE + CONFIG_EXTRA_FRAME_SYNC_SIZE * 16 + 1) (zero based) + * + * $WIZ$ type = "int" + * $WIZ$ min = 0 + * $WIZ$ max = 15 + */ +#define CONFIG_EXTRA_FRAME_SYNC_SIZE 0 + +#endif /* CFG_I2S_H */ diff --git a/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_ini_reader.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_ini_reader.h new file mode 100644 index 00000000..d0be4389 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_kbd.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_kbd.h new file mode 100644 index 00000000..92aa272d --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_keytag.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_keytag.h new file mode 100644 index 00000000..8bedadf6 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_kfile.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_kfile.h new file mode 100644 index 00000000..0ebed7b1 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_lcd_32122a.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_lcd_32122a.h new file mode 100644 index 00000000..5a9b3ca7 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_lcd_hd44.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_lcd_hd44.h new file mode 100644 index 00000000..7bea4376 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_led_7seg.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_led_7seg.h new file mode 100644 index 00000000..d854b11d --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_led_7seg.h @@ -0,0 +1,80 @@ +/** + * \file cfg_led_7seg.h + * + * + * \brief Configuration file for led 7 segment display. + * + * \author Fabio Bizzi + * + * \addtogroup SevenSegDisplay 7 Segments LED Displays Driver + * \{ + * + */ + +#ifndef CFG_LED_7SEG_H +#define CFG_LED_7SEG_H + +/** + * Use a Common Cathode display. + * $WIZ$ type = "boolean" + */ +#define CONFIG_LED_7SEG_CCAT 0 + +/** + * Number of digit present in the LED display. + * $WIZ$ type = "int" + * $WIZ$ min = 1 + * $WIZ$ max = 8 + */ +#define CONFIG_LED_7SEG_DIGIT 4 + +/** + * Max lenght of the string to be displayed. + * $WIZ$ type = "int" + * $WIZ$ min = 16 + * $WIZ$ max = 255 + */ +#define CONFIG_LED_7SEG_STRLEN 255 + +/** + * Default scrolling speed (ms * CONFIG_LED_7SEG_RTIME). + * $WIZ$ type = "int" + */ +#define CONFIG_LED_7SEG_SSPEED 10 + +/** + * Default refresh time (ms). + * $WIZ$ type = "int" + */ +#define CONFIG_LED_7SEG_RTIME 5 + +#endif /* CFG_LED_7SEG_H */ + /** \} */ //defgroup drivers + diff --git a/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_lm75.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_lm75.h new file mode 100644 index 00000000..91b347ad --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_lwip.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_lwip.h new file mode 100644 index 00000000..73acb913 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_lwip.h @@ -0,0 +1,1863 @@ +/** + * \file + * + * + * \author Andrea Righi + * + * \brief Configuration file for the lwIP TCP/IP stack module + */ + +/* + * Copyright (c) 2001-2004 Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the lwIP TCP/IP stack. + * + * Author: Adam Dunkels + * + */ +#ifndef CFG_LWIP_H +#define CFG_LWIP_H + +/* + ----------------------------------------------- + ---------- Platform specific locking ---------- + ----------------------------------------------- +*/ + +/** + * SYS_LIGHTWEIGHT_PROT==1: if you want inter-task protection for certain + * critical regions during buffer allocation, deallocation and memory + * allocation and deallocation. + */ +#ifndef SYS_LIGHTWEIGHT_PROT +#define SYS_LIGHTWEIGHT_PROT 1 +#endif + +/** + * NO_SYS==1: Provides VERY minimal functionality. Otherwise, + * use lwIP facilities. + */ +#ifndef NO_SYS +#define NO_SYS 0 +#endif + +/** + * MEMCPY: override this if you have a faster implementation at hand than the + * one included in your C library + */ +#ifndef MEMCPY +#define MEMCPY(dst,src,len) memcpy(dst,src,len) +#endif + +/** + * SMEMCPY: override this with care! Some compilers (e.g. gcc) can inline a + * call to memcpy() if the length is known at compile time and is small. + */ +#ifndef SMEMCPY +#define SMEMCPY(dst,src,len) memcpy(dst,src,len) +#endif + +/* + ------------------------------------ + ---------- Memory options ---------- + ------------------------------------ +*/ +/** + * MEM_LIBC_MALLOC==1: Use malloc/free/realloc provided by your C-library + * instead of the lwip internal allocator. Can save code size if you + * already use it. + */ +#ifndef MEM_LIBC_MALLOC +#define MEM_LIBC_MALLOC 0 +#endif + +/** + * Use mem_malloc/mem_free instead of the lwip pool allocator. + * + * $WIZ$ type = "boolean" + */ +#ifndef MEMP_MEM_MALLOC +#define MEMP_MEM_MALLOC 0 +#endif + +/** + * MEM_ALIGNMENT: should be set to the alignment of the CPU + * \verbatim + * 4 byte alignment -> #define MEM_ALIGNMENT 4 + * 2 byte alignment -> #define MEM_ALIGNMENT 2 + * \endverbatim + */ +#ifndef MEM_ALIGNMENT +#define MEM_ALIGNMENT 4 +#endif + +/** + * The size of the lwIP heap memory. + * + * If the application will send a lot of data that needs to be copied, this + * should be set high. + * + * $WIZ$ type = "int"; min = 1600 + */ +#define MEM_SIZE 1600 + +/** + * Dynamic pool memory overflow protection check level. + * + * MEMP_OVERFLOW_CHECK == 0 no checking + * MEMP_OVERFLOW_CHECK == 1 checks each element when it is freed + * MEMP_OVERFLOW_CHECK >= 2 checks each element in every pool every time + * memp_malloc() or memp_free() is called (useful but slow!) + * + * $WIZ$ type = "int"; min = "0"; max = "2" + */ +#define MEMP_OVERFLOW_CHECK 0 + +/** + * Run a sanity check after each memp_free(). + * + * $WIZ$ type = "boolean" + */ +#define MEMP_SANITY_CHECK 0 + +/** + * MEM_USE_POOLS==1: Use an alternative to malloc() by allocating from a set + * of memory pools of various sizes. When mem_malloc is called, an element of + * the smallest pool that can provide the length needed is returned. + * To use this, MEMP_USE_CUSTOM_POOLS also has to be enabled. + */ +#ifndef MEM_USE_POOLS +#define MEM_USE_POOLS 0 +#endif + +/** + * MEM_USE_POOLS_TRY_BIGGER_POOL==1: if one malloc-pool is empty, try the next + * bigger pool - WARNING: THIS MIGHT WASTE MEMORY but it can make a system more + * reliable. */ +#ifndef MEM_USE_POOLS_TRY_BIGGER_POOL +#define MEM_USE_POOLS_TRY_BIGGER_POOL 0 +#endif + +/** + * MEMP_USE_CUSTOM_POOLS==1: whether to include a user file lwippools.h + * that defines additional pools beyond the "standard" ones required + * by lwIP. If you set this to 1, you must have lwippools.h in your + * inlude path somewhere. + */ +#ifndef MEMP_USE_CUSTOM_POOLS +#define MEMP_USE_CUSTOM_POOLS 0 +#endif + +/** + * Set this to 1 if you want to free PBUF_RAM pbufs (or call mem_free()) from + * interrupt context (or another context that doesn't allow waiting for a + * semaphore). + * If set to 1, mem_malloc will be protected by a semaphore and SYS_ARCH_PROTECT, + * while mem_free will only use SYS_ARCH_PROTECT. mem_malloc SYS_ARCH_UNPROTECTs + * with each loop so that mem_free can run. + * + * ATTENTION: As you can see from the above description, this leads to dis-/ + * enabling interrupts often, which can be slow! Also, on low memory, mem_malloc + * can need longer. + * + * If you don't want that, at least for NO_SYS=0, you can still use the following + * functions to enqueue a deallocation call which then runs in the tcpip_thread + * context: + * - pbuf_free_callback(p); + * - mem_free_callback(m); + */ +#ifndef LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT +#define LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 0 +#endif + +/* + ------------------------------------------------ + ---------- Internal Memory Pool Sizes ---------- + ------------------------------------------------ +*/ +/** + * MEMP_NUM_PBUF: the number of memp struct pbufs (used for PBUF_ROM and PBUF_REF). + * If the application sends a lot of data out of ROM (or other static memory), + * this should be set high. + */ +#ifndef MEMP_NUM_PBUF +#define MEMP_NUM_PBUF 16 +#endif + +/** + * MEMP_NUM_RAW_PCB: Number of raw connection PCBs + * (requires the LWIP_RAW option) + */ +#ifndef MEMP_NUM_RAW_PCB +#define MEMP_NUM_RAW_PCB 4 +#endif + +/** + * MEMP_NUM_UDP_PCB: the number of UDP protocol control blocks. One + * per active UDP "connection". + * (requires the LWIP_UDP option) + */ +#ifndef MEMP_NUM_UDP_PCB +#define MEMP_NUM_UDP_PCB 4 +#endif + +/** + * MEMP_NUM_TCP_PCB: the number of simulatenously active TCP connections. + * (requires the LWIP_TCP option) + */ +#ifndef MEMP_NUM_TCP_PCB +#define MEMP_NUM_TCP_PCB 5 +#endif + +/** + * MEMP_NUM_TCP_PCB_LISTEN: the number of listening TCP connections. + * (requires the LWIP_TCP option) + */ +#ifndef MEMP_NUM_TCP_PCB_LISTEN +#define MEMP_NUM_TCP_PCB_LISTEN 8 +#endif + +/** + * MEMP_NUM_TCP_SEG: the number of simultaneously queued TCP segments. + * (requires the LWIP_TCP option) + */ +#ifndef MEMP_NUM_TCP_SEG +#define MEMP_NUM_TCP_SEG 16 +#endif + +/** + * MEMP_NUM_REASSDATA: the number of simultaneously IP packets queued for + * reassembly (whole packets, not fragments!) + */ +#ifndef MEMP_NUM_REASSDATA +#define MEMP_NUM_REASSDATA 5 +#endif + +/** + * MEMP_NUM_ARP_QUEUE: the number of simulateously queued outgoing + * packets (pbufs) that are waiting for an ARP request (to resolve + * their destination address) to finish. + * (requires the ARP_QUEUEING option) + */ +#ifndef MEMP_NUM_ARP_QUEUE +#define MEMP_NUM_ARP_QUEUE 30 +#endif + +/** + * MEMP_NUM_IGMP_GROUP: The number of multicast groups whose network interfaces + * can be members et the same time (one per netif - allsystems group -, plus one + * per netif membership). + * (requires the LWIP_IGMP option) + */ +#ifndef MEMP_NUM_IGMP_GROUP +#define MEMP_NUM_IGMP_GROUP 8 +#endif + +/** + * MEMP_NUM_SYS_TIMEOUT: the number of simulateously active timeouts. + * (requires NO_SYS==0) + */ +#ifndef MEMP_NUM_SYS_TIMEOUT +#define MEMP_NUM_SYS_TIMEOUT 8 +#endif + +/** + * MEMP_NUM_NETBUF: the number of struct netbufs. + * (only needed if you use the sequential API, like api_lib.c) + */ +#ifndef MEMP_NUM_NETBUF +#define MEMP_NUM_NETBUF 2 +#endif + +/** + * MEMP_NUM_NETCONN: the number of struct netconns. + * (only needed if you use the sequential API, like api_lib.c) + */ +#ifndef MEMP_NUM_NETCONN +#define MEMP_NUM_NETCONN 4 +#endif + +/** + * MEMP_NUM_TCPIP_MSG_API: the number of struct tcpip_msg, which are used + * for callback/timeout API communication. + * (only needed if you use tcpip.c) + */ +#ifndef MEMP_NUM_TCPIP_MSG_API +#define MEMP_NUM_TCPIP_MSG_API 8 +#endif + +/** + * MEMP_NUM_TCPIP_MSG_INPKT: the number of struct tcpip_msg, which are used + * for incoming packets. + * (only needed if you use tcpip.c) + */ +#ifndef MEMP_NUM_TCPIP_MSG_INPKT +#define MEMP_NUM_TCPIP_MSG_INPKT 8 +#endif + +/** + * PBUF_POOL_SIZE: the number of buffers in the pbuf pool. + */ +#ifndef PBUF_POOL_SIZE +#define PBUF_POOL_SIZE 16 +#endif + +/* + --------------------------------- + ---------- ARP options ---------- + --------------------------------- +*/ +/** + * LWIP_ARP==1: Enable ARP functionality. + */ +#ifndef LWIP_ARP +#define LWIP_ARP 1 +#endif + +/** + * ARP_TABLE_SIZE: Number of active MAC-IP address pairs cached. + */ +#ifndef ARP_TABLE_SIZE +#define ARP_TABLE_SIZE 10 +#endif + +/** + * ARP_QUEUEING==1: Outgoing packets are queued during hardware address + * resolution. + */ +#ifndef ARP_QUEUEING +#define ARP_QUEUEING 1 +#endif + +/** + * ETHARP_TRUST_IP_MAC==1: Incoming IP packets cause the ARP table to be + * updated with the source MAC and IP addresses supplied in the packet. + * You may want to disable this if you do not trust LAN peers to have the + * correct addresses, or as a limited approach to attempt to handle + * spoofing. If disabled, lwIP will need to make a new ARP request if + * the peer is not already in the ARP table, adding a little latency. + */ +#ifndef ETHARP_TRUST_IP_MAC +#define ETHARP_TRUST_IP_MAC 1 +#endif + +/** + * ETHARP_SUPPORT_VLAN==1: support receiving ethernet packets with VLAN header. + * Additionally, you can define ETHARP_VLAN_CHECK to an u16_t VLAN ID to check. + * If ETHARP_VLAN_CHECK is defined, only VLAN-traffic for this VLAN is accepted. + * If ETHARP_VLAN_CHECK is not defined, all traffic is accepted. + */ +#ifndef ETHARP_SUPPORT_VLAN +#define ETHARP_SUPPORT_VLAN 0 +#endif + +/* + -------------------------------- + ---------- IP options ---------- + -------------------------------- +*/ +/** + * IP_FORWARD==1: Enables the ability to forward IP packets across network + * interfaces. If you are going to run lwIP on a device with only one network + * interface, define this to 0. + */ +#ifndef IP_FORWARD +#define IP_FORWARD 0 +#endif + +/** + * IP_OPTIONS_ALLOWED: Defines the behavior for IP options. + * IP_OPTIONS_ALLOWED==0: All packets with IP options are dropped. + * IP_OPTIONS_ALLOWED==1: IP options are allowed (but not parsed). + */ +#ifndef IP_OPTIONS_ALLOWED +#define IP_OPTIONS_ALLOWED 1 +#endif + +/** + * Reassemble incoming fragmented IP packets. + * + * $WIZ$ type = "boolean" + */ +#define IP_REASSEMBLY 1 + +/** + * Fragment outgoing IP packets if their size exceeds MTU. + * + * $WIZ$ type = "boolean" + */ +#define IP_FRAG 1 + +/** + * IP_REASS_MAXAGE: Maximum time (in multiples of IP_TMR_INTERVAL - so seconds, normally) + * a fragmented IP packet waits for all fragments to arrive. If not all fragments arrived + * in this time, the whole packet is discarded. + */ +#ifndef IP_REASS_MAXAGE +#define IP_REASS_MAXAGE 3 +#endif + +/** + * IP_REASS_MAX_PBUFS: Total maximum amount of pbufs waiting to be reassembled. + * Since the received pbufs are enqueued, be sure to configure + * PBUF_POOL_SIZE > IP_REASS_MAX_PBUFS so that the stack is still able to receive + * packets even if the maximum amount of fragments is enqueued for reassembly! + */ +#ifndef IP_REASS_MAX_PBUFS +#define IP_REASS_MAX_PBUFS 10 +#endif + +/** + * IP_FRAG_USES_STATIC_BUF==1: Use a static MTU-sized buffer for IP + * fragmentation. Otherwise pbufs are allocated and reference the original + * packet data to be fragmented. + */ +#ifndef IP_FRAG_USES_STATIC_BUF +#define IP_FRAG_USES_STATIC_BUF 1 +#endif + +/** + * IP_FRAG_MAX_MTU: Assumed max MTU on any interface for IP frag buffer + * (requires IP_FRAG_USES_STATIC_BUF==1) + */ +#if IP_FRAG_USES_STATIC_BUF && !defined(IP_FRAG_MAX_MTU) +#define IP_FRAG_MAX_MTU 1500 +#endif + +/** + * IP_DEFAULT_TTL: Default value for Time-To-Live used by transport layers. + */ +#ifndef IP_DEFAULT_TTL +#define IP_DEFAULT_TTL 255 +#endif + +/** + * IP_SOF_BROADCAST=1: Use the SOF_BROADCAST field to enable broadcast + * filter per pcb on udp and raw send operations. To enable broadcast filter + * on recv operations, you also have to set IP_SOF_BROADCAST_RECV=1. + */ +#ifndef IP_SOF_BROADCAST +#define IP_SOF_BROADCAST 0 +#endif + +/** + * IP_SOF_BROADCAST_RECV (requires IP_SOF_BROADCAST=1) enable the broadcast + * filter on recv operations. + */ +#ifndef IP_SOF_BROADCAST_RECV +#define IP_SOF_BROADCAST_RECV 0 +#endif + +/* + ---------------------------------- + ---------- ICMP options ---------- + ---------------------------------- +*/ +/** + * Enable ICMP module inside the IP stack. + * + * $WIZ$ type = "boolean" + */ +#define LWIP_ICMP 1 + +/** + * ICMP_TTL: Default value for Time-To-Live used by ICMP packets. + */ +#ifndef ICMP_TTL +#define ICMP_TTL (IP_DEFAULT_TTL) +#endif + +/** + * LWIP_BROADCAST_PING==1: respond to broadcast pings (default is unicast only) + */ +#ifndef LWIP_BROADCAST_PING +#define LWIP_BROADCAST_PING 0 +#endif + +/** + * LWIP_MULTICAST_PING==1: respond to multicast pings (default is unicast only) + */ +#ifndef LWIP_MULTICAST_PING +#define LWIP_MULTICAST_PING 0 +#endif + +/* + --------------------------------- + ---------- RAW options ---------- + --------------------------------- +*/ +/** + * Enable application layer to hook into the IP layer itself. + * + * $WIZ$ type = "boolean" + */ +#define LWIP_RAW 1 + +/** + * LWIP_RAW==1: Enable application layer to hook into the IP layer itself. + */ +#ifndef RAW_TTL +#define RAW_TTL (IP_DEFAULT_TTL) +#endif + +/* + ---------------------------------- + ---------- DHCP options ---------- + ---------------------------------- +*/ +/** + * Enable DHCP module. UDP must be also available. + * + * $WIZ$ type = "boolean" + */ +#define LWIP_DHCP 1 + +/** + * DHCP_DOES_ARP_CHECK==1: Do an ARP check on the offered address. + */ +#ifndef DHCP_DOES_ARP_CHECK +#define DHCP_DOES_ARP_CHECK ((LWIP_DHCP) && (LWIP_ARP)) +#endif + +/* + ------------------------------------ + ---------- AUTOIP options ---------- + ------------------------------------ +*/ +/** + * LWIP_AUTOIP==1: Enable AUTOIP module. + */ +#ifndef LWIP_AUTOIP +#define LWIP_AUTOIP 0 +#endif + +/** + * LWIP_DHCP_AUTOIP_COOP==1: Allow DHCP and AUTOIP to be both enabled on + * the same interface at the same time. + */ +#ifndef LWIP_DHCP_AUTOIP_COOP +#define LWIP_DHCP_AUTOIP_COOP 0 +#endif + +/** + * LWIP_DHCP_AUTOIP_COOP_TRIES: Set to the number of DHCP DISCOVER probes + * that should be sent before falling back on AUTOIP. This can be set + * as low as 1 to get an AutoIP address very quickly, but you should + * be prepared to handle a changing IP address when DHCP overrides + * AutoIP. + */ +#ifndef LWIP_DHCP_AUTOIP_COOP_TRIES +#define LWIP_DHCP_AUTOIP_COOP_TRIES 9 +#endif + +/* + ---------------------------------- + ---------- SNMP options ---------- + ---------------------------------- +*/ +/** + * Turn on SNMP module. UDP must be also available. + * + * $WIZ$ type = "boolean" + */ +#define LWIP_SNMP 0 + +/** + * SNMP_CONCURRENT_REQUESTS: Number of concurrent requests the module will + * allow. At least one request buffer is required. + */ +#ifndef SNMP_CONCURRENT_REQUESTS +#define SNMP_CONCURRENT_REQUESTS 1 +#endif + +/** + * SNMP_TRAP_DESTINATIONS: Number of trap destinations. At least one trap + * destination is required + */ +#ifndef SNMP_TRAP_DESTINATIONS +#define SNMP_TRAP_DESTINATIONS 1 +#endif + +/** + * SNMP_PRIVATE_MIB: + */ +#ifndef SNMP_PRIVATE_MIB +#define SNMP_PRIVATE_MIB 0 +#endif + +/** + * Only allow SNMP write actions that are 'safe' (e.g. disabeling netifs is not + * a safe action and disabled when SNMP_SAFE_REQUESTS = 1). + * Unsafe requests are disabled by default! + */ +#ifndef SNMP_SAFE_REQUESTS +#define SNMP_SAFE_REQUESTS 1 +#endif + +/* + ---------------------------------- + ---------- IGMP options ---------- + ---------------------------------- +*/ +/** + * Turn on IGMP module. + * + * $WIZ$ type = "boolean" + */ +#define LWIP_IGMP 0 + +/* + ---------------------------------- + ---------- DNS options ----------- + ---------------------------------- +*/ +/** + * Turn on DNS module. UDP must be available for DNS transport. + * + * $WIZ$ type = "boolean" + */ +#define LWIP_DNS 0 + +/** DNS maximum number of entries to maintain locally. */ +#ifndef DNS_TABLE_SIZE +#define DNS_TABLE_SIZE 4 +#endif + +/** DNS maximum host name length supported in the name table. */ +#ifndef DNS_MAX_NAME_LENGTH +#define DNS_MAX_NAME_LENGTH 256 +#endif + +/** The maximum of DNS servers */ +#ifndef DNS_MAX_SERVERS +#define DNS_MAX_SERVERS 2 +#endif + +/** DNS do a name checking between the query and the response. */ +#ifndef DNS_DOES_NAME_CHECK +#define DNS_DOES_NAME_CHECK 1 +#endif + +/** DNS use a local buffer if DNS_USES_STATIC_BUF=0, a static one if + DNS_USES_STATIC_BUF=1, or a dynamic one if DNS_USES_STATIC_BUF=2. + The buffer will be of size DNS_MSG_SIZE */ +#ifndef DNS_USES_STATIC_BUF +#define DNS_USES_STATIC_BUF 1 +#endif + +/** DNS message max. size. Default value is RFC compliant. */ +#ifndef DNS_MSG_SIZE +#define DNS_MSG_SIZE 512 +#endif + +/** DNS_LOCAL_HOSTLIST: Implements a local host-to-address list. If enabled, + * you have to define + * \code + * #define DNS_LOCAL_HOSTLIST_INIT {{"host1", 0x123}, {"host2", 0x234}} + * \endcode + * (an array of structs name/address, where address is an u32_t in network + * byte order). + * + * Instead, you can also use an external function: + * \code + * #define DNS_LOOKUP_LOCAL_EXTERN(x) extern u32_t my_lookup_function(const char *name) + * \endcode + * that returns the IP address or INADDR_NONE if not found. + */ +#ifndef DNS_LOCAL_HOSTLIST +#define DNS_LOCAL_HOSTLIST 0 +#endif /* DNS_LOCAL_HOSTLIST */ + +/** If this is turned on, the local host-list can be dynamically changed + * at runtime. */ +#ifndef DNS_LOCAL_HOSTLIST_IS_DYNAMIC +#define DNS_LOCAL_HOSTLIST_IS_DYNAMIC 0 +#endif /* DNS_LOCAL_HOSTLIST_IS_DYNAMIC */ + +/* + --------------------------------- + ---------- UDP options ---------- + --------------------------------- +*/ +/** + * Turn on UDP. + * + * $WIZ$ type = "boolean" + */ +#define LWIP_UDP 1 + +/** + * LWIP_UDPLITE==1: Turn on UDP-Lite. (Requires LWIP_UDP) + */ +#ifndef LWIP_UDPLITE +#define LWIP_UDPLITE 0 +#endif + +/** + * UDP_TTL: Default Time-To-Live value. + */ +#ifndef UDP_TTL +#define UDP_TTL (IP_DEFAULT_TTL) +#endif + +/** + * LWIP_NETBUF_RECVINFO==1: append destination addr and port to every netbuf. + */ +#ifndef LWIP_NETBUF_RECVINFO +#define LWIP_NETBUF_RECVINFO 0 +#endif + +/* + --------------------------------- + ---------- TCP options ---------- + --------------------------------- +*/ +/** + * Turn on TCP. + * + * $WIZ$ type = "boolean" + */ +#define LWIP_TCP 1 + +/** + * TCP_TTL: Default Time-To-Live value. + */ +#ifndef TCP_TTL +#define TCP_TTL (IP_DEFAULT_TTL) +#endif + +/** + * TCP_WND: The size of a TCP window. This must be at least + * (2 * TCP_MSS) for things to work well + */ +#ifndef TCP_WND +#define TCP_WND (4 * TCP_MSS) +#endif + +/** + * TCP_MAXRTX: Maximum number of retransmissions of data segments. + */ +#ifndef TCP_MAXRTX +#define TCP_MAXRTX 12 +#endif + +/** + * TCP_SYNMAXRTX: Maximum number of retransmissions of SYN segments. + */ +#ifndef TCP_SYNMAXRTX +#define TCP_SYNMAXRTX 6 +#endif + +/** + * TCP_QUEUE_OOSEQ==1: TCP will queue segments that arrive out of order. + * Define to 0 if your device is low on memory. + */ +#ifndef TCP_QUEUE_OOSEQ +#define TCP_QUEUE_OOSEQ (LWIP_TCP) +#endif + +/** + * TCP_MSS: TCP Maximum segment size. (default is 536, a conservative default, + * you might want to increase this.) + * For the receive side, this MSS is advertised to the remote side + * when opening a connection. For the transmit size, this MSS sets + * an upper limit on the MSS advertised by the remote host. + */ +#ifndef TCP_MSS +#define TCP_MSS 536 +#endif + +/** + * TCP_CALCULATE_EFF_SEND_MSS: "The maximum size of a segment that TCP really + * sends, the 'effective send MSS,' MUST be the smaller of the send MSS (which + * reflects the available reassembly buffer size at the remote host) and the + * largest size permitted by the IP layer" (RFC 1122) + * Setting this to 1 enables code that checks TCP_MSS against the MTU of the + * netif used for a connection and limits the MSS if it would be too big otherwise. + */ +#ifndef TCP_CALCULATE_EFF_SEND_MSS +#define TCP_CALCULATE_EFF_SEND_MSS 1 +#endif + + +/** + * TCP_SND_BUF: TCP sender buffer space (bytes). + */ +#ifndef TCP_SND_BUF +#define TCP_SND_BUF (2 * TCP_MSS) +#endif + +/** + * TCP_SND_QUEUELEN: TCP sender buffer space (pbufs). This must be at least + * as much as (2 * TCP_SND_BUF/TCP_MSS) for things to work. + */ +#ifndef TCP_SND_QUEUELEN +#define TCP_SND_QUEUELEN (4 * (TCP_SND_BUF)/(TCP_MSS)) +#endif + +/** + * TCP_SNDLOWAT: TCP writable space (bytes). This must be less than or equal + * to TCP_SND_BUF. It is the amount of space which must be available in the + * TCP snd_buf for select to return writable. + */ +#ifndef TCP_SNDLOWAT +#define TCP_SNDLOWAT ((TCP_SND_BUF)/2) +#endif + +/** + * TCP_LISTEN_BACKLOG: Enable the backlog option for tcp listen pcb. + */ +#ifndef TCP_LISTEN_BACKLOG +#define TCP_LISTEN_BACKLOG 0 +#endif + +/** + * The maximum allowed backlog for TCP listen netconns. + * This backlog is used unless another is explicitly specified. + * 0xff is the maximum (u8_t). + */ +#ifndef TCP_DEFAULT_LISTEN_BACKLOG +#define TCP_DEFAULT_LISTEN_BACKLOG 0xff +#endif + +/** + * LWIP_TCP_TIMESTAMPS==1: support the TCP timestamp option. + */ +#ifndef LWIP_TCP_TIMESTAMPS +#define LWIP_TCP_TIMESTAMPS 0 +#endif + +/** + * TCP_WND_UPDATE_THRESHOLD: difference in window to trigger an + * explicit window update + */ +#ifndef TCP_WND_UPDATE_THRESHOLD +#define TCP_WND_UPDATE_THRESHOLD (TCP_WND / 4) +#endif + +/* + ---------------------------------- + ---------- Pbuf options ---------- + ---------------------------------- +*/ +/** + * PBUF_LINK_HLEN: the number of bytes that should be allocated for a + * link level header. The default is 14, the standard value for + * Ethernet. + */ +#ifndef PBUF_LINK_HLEN +#define PBUF_LINK_HLEN 14 +#endif + +/** + * PBUF_POOL_BUFSIZE: the size of each pbuf in the pbuf pool. The default is + * designed to accomodate single full size TCP frame in one pbuf, including + * TCP_MSS, IP header, and link header. + */ +#ifndef PBUF_POOL_BUFSIZE +#define PBUF_POOL_BUFSIZE LWIP_MEM_ALIGN_SIZE(TCP_MSS+40+PBUF_LINK_HLEN) +#endif + +/* + ------------------------------------------------ + ---------- Network Interfaces options ---------- + ------------------------------------------------ +*/ +/** + * Use DHCP_OPTION_HOSTNAME with netif's hostname field. + * + * $WIZ$ type = "boolean" + */ +#define LWIP_NETIF_HOSTNAME 1 + +/** + * Support netif api (in netifapi.c) + * + * $WIZ$ type = "boolean" + */ +#define LWIP_NETIF_API 0 + +/** + * LWIP_NETIF_STATUS_CALLBACK==1: Support a callback function whenever an interface + * changes its up/down status (i.e., due to DHCP IP acquistion) + */ +#ifndef LWIP_NETIF_STATUS_CALLBACK +#define LWIP_NETIF_STATUS_CALLBACK 0 +#endif + +/** + * LWIP_NETIF_LINK_CALLBACK==1: Support a callback function from an interface + * whenever the link changes (i.e., link down) + */ +#ifndef LWIP_NETIF_LINK_CALLBACK +#define LWIP_NETIF_LINK_CALLBACK 0 +#endif + +/** + * LWIP_NETIF_HWADDRHINT==1: Cache link-layer-address hints (e.g. table + * indices) in struct netif. TCP and UDP can make use of this to prevent + * scanning the ARP table for every sent packet. While this is faster for big + * ARP tables or many concurrent connections, it might be counterproductive + * if you have a tiny ARP table or if there never are concurrent connections. + */ +#ifndef LWIP_NETIF_HWADDRHINT +#define LWIP_NETIF_HWADDRHINT 0 +#endif + +/** + * LWIP_NETIF_LOOPBACK==1: Support sending packets with a destination IP + * address equal to the netif IP address, looping them back up the stack. + */ +#ifndef LWIP_NETIF_LOOPBACK +#define LWIP_NETIF_LOOPBACK 0 +#endif + +/** + * LWIP_LOOPBACK_MAX_PBUFS: Maximum number of pbufs on queue for loopback + * sending for each netif (0 = disabled) + */ +#ifndef LWIP_LOOPBACK_MAX_PBUFS +#define LWIP_LOOPBACK_MAX_PBUFS 0 +#endif + +/** + * LWIP_NETIF_LOOPBACK_MULTITHREADING: Indicates whether threading is enabled in + * the system, as netifs must change how they behave depending on this setting + * for the LWIP_NETIF_LOOPBACK option to work. + * Setting this is needed to avoid reentering non-reentrant functions like + * tcp_input(). + * LWIP_NETIF_LOOPBACK_MULTITHREADING==1: Indicates that the user is using a + * multithreaded environment like tcpip.c. In this case, netif->input() + * is called directly. + * LWIP_NETIF_LOOPBACK_MULTITHREADING==0: Indicates a polling (or NO_SYS) setup. + * The packets are put on a list and netif_poll() must be called in + * the main application loop. + */ +#ifndef LWIP_NETIF_LOOPBACK_MULTITHREADING +#define LWIP_NETIF_LOOPBACK_MULTITHREADING (!NO_SYS) +#endif + +/** + * LWIP_NETIF_TX_SINGLE_PBUF: if this is set to 1, lwIP tries to put all data + * to be sent into one single pbuf. This is for compatibility with DMA-enabled + * MACs that do not support scatter-gather. + * Beware that this might involve CPU-memcpy before transmitting that would not + * be needed without this flag! Use this only if you need to! + * + * @todo: TCP and IP-frag do not work with this, yet: + */ +#ifndef LWIP_NETIF_TX_SINGLE_PBUF +#define LWIP_NETIF_TX_SINGLE_PBUF 0 +#endif /* LWIP_NETIF_TX_SINGLE_PBUF */ + +/* + ------------------------------------ + ---------- LOOPIF options ---------- + ------------------------------------ +*/ +/** + * Support loop interface (127.0.0.1) and loopif.c + * + * $WIZ$ type = "boolean" + */ +#define LWIP_HAVE_LOOPIF 0 + +/* + ------------------------------------ + ---------- SLIPIF options ---------- + ------------------------------------ +*/ +/** + * Support slip interface and slipif.c + * + * $WIZ$ type = "boolean" + */ +#define LWIP_HAVE_SLIPIF 0 + +/* + ------------------------------------ + ---------- Thread options ---------- + ------------------------------------ +*/ +/** + * TCPIP_THREAD_NAME: The name assigned to the main tcpip thread. + */ +#ifndef TCPIP_THREAD_NAME +#define TCPIP_THREAD_NAME "tcpip_thread" +#endif + +/** + * TCPIP_THREAD_STACKSIZE: The stack size used by the main tcpip thread. + * The stack size value itself is platform-dependent, but is passed to + * sys_thread_new() when the thread is created. + */ +#ifndef TCPIP_THREAD_STACKSIZE +#define TCPIP_THREAD_STACKSIZE (KERN_MINSTACKSIZE * 3) +#endif + +/** + * TCPIP_THREAD_PRIO: The priority assigned to the main tcpip thread. + * The priority value itself is platform-dependent, but is passed to + * sys_thread_new() when the thread is created. + */ +#ifndef TCPIP_THREAD_PRIO +#define TCPIP_THREAD_PRIO 0 +#endif + +/** + * TCPIP_MBOX_SIZE: The mailbox size for the tcpip thread messages + * The queue size value itself is platform-dependent, but is passed to + * sys_mbox_new() when tcpip_init is called. + */ +#ifndef TCPIP_MBOX_SIZE +#define TCPIP_MBOX_SIZE 0 +#endif + +/** + * SLIPIF_THREAD_NAME: The name assigned to the slipif_loop thread. + */ +#ifndef SLIPIF_THREAD_NAME +#define SLIPIF_THREAD_NAME "slipif_loop" +#endif + +/** + * SLIP_THREAD_STACKSIZE: The stack size used by the slipif_loop thread. + * The stack size value itself is platform-dependent, but is passed to + * sys_thread_new() when the thread is created. + */ +#ifndef SLIPIF_THREAD_STACKSIZE +#define SLIPIF_THREAD_STACKSIZE 0 +#endif + +/** + * SLIPIF_THREAD_PRIO: The priority assigned to the slipif_loop thread. + * The priority value itself is platform-dependent, but is passed to + * sys_thread_new() when the thread is created. + */ +#ifndef SLIPIF_THREAD_PRIO +#define SLIPIF_THREAD_PRIO 1 +#endif + +/** + * PPP_THREAD_NAME: The name assigned to the pppMain thread. + */ +#ifndef PPP_THREAD_NAME +#define PPP_THREAD_NAME "pppMain" +#endif + +/** + * PPP_THREAD_STACKSIZE: The stack size used by the pppMain thread. + * The stack size value itself is platform-dependent, but is passed to + * sys_thread_new() when the thread is created. + */ +#ifndef PPP_THREAD_STACKSIZE +#define PPP_THREAD_STACKSIZE 0 +#endif + +/** + * PPP_THREAD_PRIO: The priority assigned to the pppMain thread. + * The priority value itself is platform-dependent, but is passed to + * sys_thread_new() when the thread is created. + */ +#ifndef PPP_THREAD_PRIO +#define PPP_THREAD_PRIO 1 +#endif + +/** + * DEFAULT_THREAD_NAME: The name assigned to any other lwIP thread. + */ +#ifndef DEFAULT_THREAD_NAME +#define DEFAULT_THREAD_NAME "lwIP" +#endif + +/** + * DEFAULT_THREAD_STACKSIZE: The stack size used by any other lwIP thread. + * The stack size value itself is platform-dependent, but is passed to + * sys_thread_new() when the thread is created. + */ +#ifndef DEFAULT_THREAD_STACKSIZE +#define DEFAULT_THREAD_STACKSIZE (KERN_MINSTACKSIZE * 3) +#endif + +/** + * DEFAULT_THREAD_PRIO: The priority assigned to any other lwIP thread. + * The priority value itself is platform-dependent, but is passed to + * sys_thread_new() when the thread is created. + */ +#ifndef DEFAULT_THREAD_PRIO +#define DEFAULT_THREAD_PRIO 1 +#endif + +/** + * DEFAULT_RAW_RECVMBOX_SIZE: The mailbox size for the incoming packets on a + * NETCONN_RAW. The queue size value itself is platform-dependent, but is passed + * to sys_mbox_new() when the recvmbox is created. + */ +#ifndef DEFAULT_RAW_RECVMBOX_SIZE +#define DEFAULT_RAW_RECVMBOX_SIZE 0 +#endif + +/** + * DEFAULT_UDP_RECVMBOX_SIZE: The mailbox size for the incoming packets on a + * NETCONN_UDP. The queue size value itself is platform-dependent, but is passed + * to sys_mbox_new() when the recvmbox is created. + */ +#ifndef DEFAULT_UDP_RECVMBOX_SIZE +#define DEFAULT_UDP_RECVMBOX_SIZE 0 +#endif + +/** + * DEFAULT_TCP_RECVMBOX_SIZE: The mailbox size for the incoming packets on a + * NETCONN_TCP. The queue size value itself is platform-dependent, but is passed + * to sys_mbox_new() when the recvmbox is created. + */ +#ifndef DEFAULT_TCP_RECVMBOX_SIZE +#define DEFAULT_TCP_RECVMBOX_SIZE 0 +#endif + +/** + * DEFAULT_ACCEPTMBOX_SIZE: The mailbox size for the incoming connections. + * The queue size value itself is platform-dependent, but is passed to + * sys_mbox_new() when the acceptmbox is created. + */ +#ifndef DEFAULT_ACCEPTMBOX_SIZE +#define DEFAULT_ACCEPTMBOX_SIZE 0 +#endif + +/* + ---------------------------------------------- + ---------- Sequential layer options ---------- + ---------------------------------------------- +*/ +/** + * LWIP_TCPIP_CORE_LOCKING: (EXPERIMENTAL!) + * Don't use it if you're not an active lwIP project member + */ +#ifndef LWIP_TCPIP_CORE_LOCKING +#define LWIP_TCPIP_CORE_LOCKING 0 +#endif + +/** + * Enable Netconn API (require to use api_lib.c) + * + * $WIZ$ type = "boolean" + */ +#define LWIP_NETCONN 1 + +/* + ------------------------------------ + ---------- Socket options ---------- + ------------------------------------ +*/ +/** + * Enable Socket API (require to use sockets.c) + * + * $WIZ$ type = "boolean" + */ +#define LWIP_SOCKET 1 +#if LWIP_SOCKET + /* + * The sockets.c file requires this macro to be defined to really + * set errno on errors. + */ + #define ERRNO +#endif + +/** + * Enable BSD-style sockets functions names. + * + * NOTE: do not change this!!! + */ +#ifndef LWIP_COMPAT_SOCKETS +#define LWIP_COMPAT_SOCKETS 0 +#endif + +/** + * LWIP_POSIX_SOCKETS_IO_NAMES==1: Enable POSIX-style sockets functions names. + * Disable this option if you use a POSIX operating system that uses the same + * names (read, write & close). (only used if you use sockets.c) + */ +#ifndef LWIP_POSIX_SOCKETS_IO_NAMES +#define LWIP_POSIX_SOCKETS_IO_NAMES 0 +#endif + +/** + * LWIP_TCP_KEEPALIVE==1: Enable TCP_KEEPIDLE, TCP_KEEPINTVL and TCP_KEEPCNT + * options processing. Note that TCP_KEEPIDLE and TCP_KEEPINTVL have to be set + * in seconds. (does not require sockets.c, and will affect tcp.c) + */ +#ifndef LWIP_TCP_KEEPALIVE +#define LWIP_TCP_KEEPALIVE 0 +#endif + +/** + * LWIP_SO_RCVTIMEO==1: Enable SO_RCVTIMEO processing. + */ +#ifndef LWIP_SO_RCVTIMEO +#define LWIP_SO_RCVTIMEO 0 +#endif + +/** + * LWIP_SO_RCVBUF==1: Enable SO_RCVBUF processing. + */ +#ifndef LWIP_SO_RCVBUF +#define LWIP_SO_RCVBUF 0 +#endif + +/** + * If LWIP_SO_RCVBUF is used, this is the default value for recv_bufsize. + */ +#ifndef RECV_BUFSIZE_DEFAULT +#define RECV_BUFSIZE_DEFAULT INT_MAX +#endif + +/** + * SO_REUSE==1: Enable SO_REUSEADDR and SO_REUSEPORT options. DO NOT USE! + */ +#ifndef SO_REUSE +#define SO_REUSE 0 +#endif + +/* + ---------------------------------------- + ---------- Statistics options ---------- + ---------------------------------------- +*/ +/** + * LWIP_STATS==1: Enable statistics collection in lwip_stats. + */ +#ifndef LWIP_STATS +#define LWIP_STATS 0 +#endif + +#if LWIP_STATS + +/** + * LWIP_STATS_DISPLAY==1: Compile in the statistics output functions. + */ +#ifndef LWIP_STATS_DISPLAY +#define LWIP_STATS_DISPLAY 0 +#endif + +/** + * LINK_STATS==1: Enable link stats. + */ +#ifndef LINK_STATS +#define LINK_STATS 1 +#endif + +/** + * ETHARP_STATS==1: Enable etharp stats. + */ +#ifndef ETHARP_STATS +#define ETHARP_STATS (LWIP_ARP) +#endif + +/** + * IP_STATS==1: Enable IP stats. + */ +#ifndef IP_STATS +#define IP_STATS 1 +#endif + +/** + * IPFRAG_STATS==1: Enable IP fragmentation stats. Default is + * on if using either frag or reass. + */ +#ifndef IPFRAG_STATS +#define IPFRAG_STATS (IP_REASSEMBLY || IP_FRAG) +#endif + +/** + * ICMP_STATS==1: Enable ICMP stats. + */ +#ifndef ICMP_STATS +#define ICMP_STATS 1 +#endif + +/** + * IGMP_STATS==1: Enable IGMP stats. + */ +#ifndef IGMP_STATS +#define IGMP_STATS (LWIP_IGMP) +#endif + +/** + * UDP_STATS==1: Enable UDP stats. Default is on if + * UDP enabled, otherwise off. + */ +#ifndef UDP_STATS +#define UDP_STATS (LWIP_UDP) +#endif + +/** + * TCP_STATS==1: Enable TCP stats. Default is on if TCP + * enabled, otherwise off. + */ +#ifndef TCP_STATS +#define TCP_STATS (LWIP_TCP) +#endif + +/** + * MEM_STATS==1: Enable mem.c stats. + */ +#ifndef MEM_STATS +#define MEM_STATS ((MEM_LIBC_MALLOC == 0) && (MEM_USE_POOLS == 0)) +#endif + +/** + * MEMP_STATS==1: Enable memp.c pool stats. + */ +#ifndef MEMP_STATS +#define MEMP_STATS (MEMP_MEM_MALLOC == 0) +#endif + +/** + * SYS_STATS==1: Enable system stats (sem and mbox counts, etc). + */ +#ifndef SYS_STATS +#define SYS_STATS (NO_SYS == 0) +#endif + +#else + +#define LINK_STATS 0 +#define ETHARP_STATS 0 +#define IP_STATS 0 +#define IPFRAG_STATS 0 +#define ICMP_STATS 0 +#define IGMP_STATS 0 +#define UDP_STATS 0 +#define TCP_STATS 0 +#define MEM_STATS 0 +#define MEMP_STATS 0 +#define SYS_STATS 0 +#define LWIP_STATS_DISPLAY 0 + +#endif /* LWIP_STATS */ + +/* + --------------------------------- + ---------- PPP options ---------- + --------------------------------- +*/ +/** + * Enable PPP. + * + * $WIZ$ type = "boolean" + */ +#define PPP_SUPPORT 0 + +/** + * Enable PPP Over Ethernet. + * + * $WIZ$ type = "boolean" + */ +#define PPPOE_SUPPORT 0 + +/** + * PPPOS_SUPPORT==1: Enable PPP Over Serial + */ +#ifndef PPPOS_SUPPORT +#define PPPOS_SUPPORT PPP_SUPPORT +#endif + +#if PPP_SUPPORT + +/** + * NUM_PPP: Max PPP sessions. + */ +#ifndef NUM_PPP +#define NUM_PPP 1 +#endif + +/** + * PAP_SUPPORT==1: Support PAP. + */ +#ifndef PAP_SUPPORT +#define PAP_SUPPORT 0 +#endif + +/** + * CHAP_SUPPORT==1: Support CHAP. + */ +#ifndef CHAP_SUPPORT +#define CHAP_SUPPORT 0 +#endif + +/** + * MSCHAP_SUPPORT==1: Support MSCHAP. CURRENTLY NOT SUPPORTED! DO NOT SET! + */ +#ifndef MSCHAP_SUPPORT +#define MSCHAP_SUPPORT 0 +#endif + +/** + * CBCP_SUPPORT==1: Support CBCP. CURRENTLY NOT SUPPORTED! DO NOT SET! + */ +#ifndef CBCP_SUPPORT +#define CBCP_SUPPORT 0 +#endif + +/** + * CCP_SUPPORT==1: Support CCP. CURRENTLY NOT SUPPORTED! DO NOT SET! + */ +#ifndef CCP_SUPPORT +#define CCP_SUPPORT 0 +#endif + +/** + * VJ_SUPPORT==1: Support VJ header compression. + */ +#ifndef VJ_SUPPORT +#define VJ_SUPPORT 0 +#endif + +/** + * MD5_SUPPORT==1: Support MD5 (see also CHAP). + */ +#ifndef MD5_SUPPORT +#define MD5_SUPPORT 0 +#endif + +/* + * Timeouts + */ +#ifndef FSM_DEFTIMEOUT +#define FSM_DEFTIMEOUT 6 /* Timeout time in seconds */ +#endif + +#ifndef FSM_DEFMAXTERMREQS +#define FSM_DEFMAXTERMREQS 2 /* Maximum Terminate-Request transmissions */ +#endif + +#ifndef FSM_DEFMAXCONFREQS +#define FSM_DEFMAXCONFREQS 10 /* Maximum Configure-Request transmissions */ +#endif + +#ifndef FSM_DEFMAXNAKLOOPS +#define FSM_DEFMAXNAKLOOPS 5 /* Maximum number of nak loops */ +#endif + +#ifndef UPAP_DEFTIMEOUT +#define UPAP_DEFTIMEOUT 6 /* Timeout (seconds) for retransmitting req */ +#endif + +#ifndef UPAP_DEFREQTIME +#define UPAP_DEFREQTIME 30 /* Time to wait for auth-req from peer */ +#endif + +#ifndef CHAP_DEFTIMEOUT +#define CHAP_DEFTIMEOUT 6 /* Timeout time in seconds */ +#endif + +#ifndef CHAP_DEFTRANSMITS +#define CHAP_DEFTRANSMITS 10 /* max # times to send challenge */ +#endif + +/* Interval in seconds between keepalive echo requests, 0 to disable. */ +#ifndef LCP_ECHOINTERVAL +#define LCP_ECHOINTERVAL 0 +#endif + +/* Number of unanswered echo requests before failure. */ +#ifndef LCP_MAXECHOFAILS +#define LCP_MAXECHOFAILS 3 +#endif + +/* Max Xmit idle time (in jiffies) before resend flag char. */ +#ifndef PPP_MAXIDLEFLAG +#define PPP_MAXIDLEFLAG 100 +#endif + +/* + * Packet sizes + * + * Note - lcp shouldn't be allowed to negotiate stuff outside these + * limits. See lcp.h in the pppd directory. + * (XXX - these constants should simply be shared by lcp.c instead + * of living in lcp.h) + */ +#define PPP_MTU 1500 /* Default MTU (size of Info field) */ +#ifndef PPP_MAXMTU +/* #define PPP_MAXMTU 65535 - (PPP_HDRLEN + PPP_FCSLEN) */ +#define PPP_MAXMTU 1500 /* Largest MTU we allow */ +#endif +#define PPP_MINMTU 64 +#define PPP_MRU 1500 /* default MRU = max length of info field */ +#define PPP_MAXMRU 1500 /* Largest MRU we allow */ +#ifndef PPP_DEFMRU +#define PPP_DEFMRU 296 /* Try for this */ +#endif +#define PPP_MINMRU 128 /* No MRUs below this */ + +#ifndef MAXNAMELEN +#define MAXNAMELEN 256 /* max length of hostname or name for auth */ +#endif +#ifndef MAXSECRETLEN +#define MAXSECRETLEN 256 /* max length of password or secret */ +#endif + +#endif /* PPP_SUPPORT */ + +/* + -------------------------------------- + ---------- Checksum options ---------- + -------------------------------------- +*/ +/** + * CHECKSUM_GEN_IP==1: Generate checksums in software for outgoing IP packets. + */ +#ifndef CHECKSUM_GEN_IP +#define CHECKSUM_GEN_IP 1 +#endif + +/** + * CHECKSUM_GEN_UDP==1: Generate checksums in software for outgoing UDP packets. + */ +#ifndef CHECKSUM_GEN_UDP +#define CHECKSUM_GEN_UDP 1 +#endif + +/** + * CHECKSUM_GEN_TCP==1: Generate checksums in software for outgoing TCP packets. + */ +#ifndef CHECKSUM_GEN_TCP +#define CHECKSUM_GEN_TCP 1 +#endif + +/** + * CHECKSUM_CHECK_IP==1: Check checksums in software for incoming IP packets. + */ +#ifndef CHECKSUM_CHECK_IP +#define CHECKSUM_CHECK_IP 1 +#endif + +/** + * CHECKSUM_CHECK_UDP==1: Check checksums in software for incoming UDP packets. + */ +#ifndef CHECKSUM_CHECK_UDP +#define CHECKSUM_CHECK_UDP 1 +#endif + +/** + * CHECKSUM_CHECK_TCP==1: Check checksums in software for incoming TCP packets. + */ +#ifndef CHECKSUM_CHECK_TCP +#define CHECKSUM_CHECK_TCP 1 +#endif + +/* + --------------------------------------- + ---------- Debugging options ---------- + --------------------------------------- +*/ + +#ifdef _DEBUG +#define LWIP_DEBUG +#endif + +/** + * LWIP_DBG_MIN_LEVEL: After masking, the value of the debug is + * compared against this value. If it is smaller, then debugging + * messages are written. + */ +#ifndef LWIP_DBG_MIN_LEVEL +#define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_ALL +#endif + +/** + * LWIP_DBG_TYPES_ON: A mask that can be used to globally enable/disable + * debug messages of certain types. + */ +#ifndef LWIP_DBG_TYPES_ON +#define LWIP_DBG_TYPES_ON LWIP_DBG_ON +#endif + +/** + * ETHARP_DEBUG: Enable debugging in etharp.c. + */ +#ifndef ETHARP_DEBUG +#define ETHARP_DEBUG LWIP_DBG_OFF +#endif + +/** + * NETIF_DEBUG: Enable debugging in netif.c. + */ +#ifndef NETIF_DEBUG +#define NETIF_DEBUG LWIP_DBG_OFF +#endif + +/** + * PBUF_DEBUG: Enable debugging in pbuf.c. + */ +#ifndef PBUF_DEBUG +#define PBUF_DEBUG LWIP_DBG_OFF +#endif + +/** + * API_LIB_DEBUG: Enable debugging in api_lib.c. + */ +#ifndef API_LIB_DEBUG +#define API_LIB_DEBUG LWIP_DBG_OFF +#endif + +/** + * API_MSG_DEBUG: Enable debugging in api_msg.c. + */ +#ifndef API_MSG_DEBUG +#define API_MSG_DEBUG LWIP_DBG_OFF +#endif + +/** + * SOCKETS_DEBUG: Enable debugging in sockets.c. + */ +#ifndef SOCKETS_DEBUG +#define SOCKETS_DEBUG LWIP_DBG_OFF +#endif + +/** + * ICMP_DEBUG: Enable debugging in icmp.c. + */ +#ifndef ICMP_DEBUG +#define ICMP_DEBUG LWIP_DBG_OFF +#endif + +/** + * IGMP_DEBUG: Enable debugging in igmp.c. + */ +#ifndef IGMP_DEBUG +#define IGMP_DEBUG LWIP_DBG_OFF +#endif + +/** + * INET_DEBUG: Enable debugging in inet.c. + */ +#ifndef INET_DEBUG +#define INET_DEBUG LWIP_DBG_OFF +#endif + +/** + * IP_DEBUG: Enable debugging for IP. + */ +#ifndef IP_DEBUG +#define IP_DEBUG LWIP_DBG_OFF +#endif + +/** + * IP_REASS_DEBUG: Enable debugging in ip_frag.c for both frag & reass. + */ +#ifndef IP_REASS_DEBUG +#define IP_REASS_DEBUG LWIP_DBG_OFF +#endif + +/** + * RAW_DEBUG: Enable debugging in raw.c. + */ +#ifndef RAW_DEBUG +#define RAW_DEBUG LWIP_DBG_OFF +#endif + +/** + * MEM_DEBUG: Enable debugging in mem.c. + */ +#ifndef MEM_DEBUG +#define MEM_DEBUG LWIP_DBG_OFF +#endif + +/** + * MEMP_DEBUG: Enable debugging in memp.c. + */ +#ifndef MEMP_DEBUG +#define MEMP_DEBUG LWIP_DBG_OFF +#endif + +/** + * SYS_DEBUG: Enable debugging in sys.c. + */ +#ifndef SYS_DEBUG +#define SYS_DEBUG LWIP_DBG_OFF +#endif + +/** + * TCP_DEBUG: Enable debugging for TCP. + */ +#ifndef TCP_DEBUG +#define TCP_DEBUG LWIP_DBG_OFF +#endif + +/** + * TCP_INPUT_DEBUG: Enable debugging in tcp_in.c for incoming debug. + */ +#ifndef TCP_INPUT_DEBUG +#define TCP_INPUT_DEBUG LWIP_DBG_OFF +#endif + +/** + * TCP_FR_DEBUG: Enable debugging in tcp_in.c for fast retransmit. + */ +#ifndef TCP_FR_DEBUG +#define TCP_FR_DEBUG LWIP_DBG_OFF +#endif + +/** + * TCP_RTO_DEBUG: Enable debugging in TCP for retransmit + * timeout. + */ +#ifndef TCP_RTO_DEBUG +#define TCP_RTO_DEBUG LWIP_DBG_OFF +#endif + +/** + * TCP_CWND_DEBUG: Enable debugging for TCP congestion window. + */ +#ifndef TCP_CWND_DEBUG +#define TCP_CWND_DEBUG LWIP_DBG_OFF +#endif + +/** + * TCP_WND_DEBUG: Enable debugging in tcp_in.c for window updating. + */ +#ifndef TCP_WND_DEBUG +#define TCP_WND_DEBUG LWIP_DBG_OFF +#endif + +/** + * TCP_OUTPUT_DEBUG: Enable debugging in tcp_out.c output functions. + */ +#ifndef TCP_OUTPUT_DEBUG +#define TCP_OUTPUT_DEBUG LWIP_DBG_OFF +#endif + +/** + * TCP_RST_DEBUG: Enable debugging for TCP with the RST message. + */ +#ifndef TCP_RST_DEBUG +#define TCP_RST_DEBUG LWIP_DBG_OFF +#endif + +/** + * TCP_QLEN_DEBUG: Enable debugging for TCP queue lengths. + */ +#ifndef TCP_QLEN_DEBUG +#define TCP_QLEN_DEBUG LWIP_DBG_OFF +#endif + +/** + * UDP_DEBUG: Enable debugging in UDP. + */ +#ifndef UDP_DEBUG +#define UDP_DEBUG LWIP_DBG_OFF +#endif + +/** + * TCPIP_DEBUG: Enable debugging in tcpip.c. + */ +#ifndef TCPIP_DEBUG +#define TCPIP_DEBUG LWIP_DBG_OFF +#endif + +/** + * PPP_DEBUG: Enable debugging for PPP. + */ +#ifndef PPP_DEBUG +#define PPP_DEBUG LWIP_DBG_OFF +#endif + +/** + * SLIP_DEBUG: Enable debugging in slipif.c. + */ +#ifndef SLIP_DEBUG +#define SLIP_DEBUG LWIP_DBG_OFF +#endif + +/** + * DHCP_DEBUG: Enable debugging in dhcp.c. + */ +#ifndef DHCP_DEBUG +#define DHCP_DEBUG LWIP_DBG_OFF +#endif + +/** + * AUTOIP_DEBUG: Enable debugging in autoip.c. + */ +#ifndef AUTOIP_DEBUG +#define AUTOIP_DEBUG LWIP_DBG_OFF +#endif + +/** + * SNMP_MSG_DEBUG: Enable debugging for SNMP messages. + */ +#ifndef SNMP_MSG_DEBUG +#define SNMP_MSG_DEBUG LWIP_DBG_OFF +#endif + +/** + * SNMP_MIB_DEBUG: Enable debugging for SNMP MIBs. + */ +#ifndef SNMP_MIB_DEBUG +#define SNMP_MIB_DEBUG LWIP_DBG_OFF +#endif + +/** + * DNS_DEBUG: Enable debugging for DNS. + */ +#ifndef DNS_DEBUG +#define DNS_DEBUG LWIP_DBG_OFF +#endif + +/* Custom definitions: !!!DO NOT CHANGE THIS SECTION!!! */ +#define LWIP_TIMEVAL_PRIVATE 0 + +#endif /* CFG_LWIP_H */ diff --git a/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_md2.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_md2.h new file mode 100644 index 00000000..e937b900 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_monitor.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_monitor.h new file mode 100644 index 00000000..78f222bf --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_nand.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_nand.h new file mode 100644 index 00000000..bd3b2623 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_nand.h @@ -0,0 +1,111 @@ +/** + * \file + * + * + * \author Stefano Fedrigo + * + * \brief Configuration file for NAND driver module. + */ + +#ifndef CFG_NAND_H +#define CFG_NAND_H + +/** + * Page data size + * + * Size of the data section of a programmable page in bytes. + * + * $WIZ$ type = "int" + */ +#define CONFIG_NAND_DATA_SIZE 2048 + +/** + * Page spare area size + * + * Size of the spare section of a programmable page in bytes. + * + * $WIZ$ type = "int" + */ +#define CONFIG_NAND_SPARE_SIZE 64 + +/** + * Pages per block + * + * Number of pages in a erase block. + * + * $WIZ$ type = "int" + */ +#define CONFIG_NAND_PAGES_PER_BLOCK 64 + +/** + * Number of blocks + * + * Total number of erase blocks in one NAND chip. + * + * $WIZ$ type = "int" + */ +#define CONFIG_NAND_NUM_BLOCK 2048 + +/** + * Number of reserved blocks + * + * Blocks reserved for remapping defective NAND blocks. + * + * $WIZ$ type = "int" + */ +#define CONFIG_NAND_NUM_REMAP_BLOCKS 128 + +/** + * NAND operations timeout + * + * How many milliseconds the cpu waits for + * completion of NAND operations. + * + * $WIZ$ type = "int" + */ +#define CONFIG_NAND_TMOUT 100 + +/** + * Module logging level + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_level" + */ +#define CONFIG_NAND_LOG_LEVEL LOG_LVL_WARN + +/** + * Module logging format + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_format" + */ +#define CONFIG_NAND_LOG_FORMAT LOG_FMT_TERSE + +#endif /* CFG_NAND_H */ diff --git a/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_nmea.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_nmea.h new file mode 100644 index 00000000..9249a9af --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_parser.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_parser.h new file mode 100644 index 00000000..67e091a5 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_parser.h @@ -0,0 +1,66 @@ +/** + * \file + * + * + * \brief Configuration file for parser module. + * + * \author Daniele Basile + */ + +#ifndef CFG_PARSER_H +#define CFG_PARSER_H + +/** + * Max number of arguments and results for each command + * $WIZ$ type = "int" + * $WIZ$ min = 0 + */ +#define CONFIG_PARSER_MAX_ARGS 4 + +/** + * Max number of commands + * $WIZ$ type = "int" + * $WIZ$ min = 8 + */ +#define CONFIG_MAX_COMMANDS_NUMBER 16 + +/** + * Enable compatibility behaviour. + * + * Skip the first word from incoming commands. Don't enable in new projects. + * $WIZ$ type = "boolean" + */ +#define CONFIG_ENABLE_COMPAT_BEHAVIOUR 1 + +#endif /* CFG_PARSER_H */ + + + diff --git a/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_phase.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_phase.h new file mode 100644 index 00000000..1ed51076 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_pocketbus.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_pocketbus.h new file mode 100644 index 00000000..aa0b090b --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_proc.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_proc.h new file mode 100644 index 00000000..fca6edef --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_proc.h @@ -0,0 +1,113 @@ +/** + * \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 + +/** + * Priority-inheritance protocol. + * $WIZ$ type = "boolean" + */ +#define CONFIG_KERN_PRI_INHERIT 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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_pwm.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_pwm.h new file mode 100644 index 00000000..68d62837 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_pwm.h @@ -0,0 +1,64 @@ +/** + * \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 + +/** + * Enable the OLD pwm API. + * Not recommended for new projects. + * + * $WIZ$ type = "boolean" + */ +#define CFG_PWM_ENABLE_OLD_API 1 + +#endif /* CFG_PWM_H */ diff --git a/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_ramp.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_ramp.h new file mode 100644 index 00000000..162d2db2 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_random.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_random.h new file mode 100644 index 00000000..5e3afdff --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_random.h @@ -0,0 +1,65 @@ +/** + * \file + * + * + * \author Andrea Righi + * + * \brief Configuration file for the "random" module + */ + +#ifndef CFG_RANDOM_H +#define CFG_RANDOM_H + +/** + * Module logging level. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_level" + */ +#define RANDOM_LOG_LEVEL LOG_LVL_INFO + +/** + * module logging format. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_format" + */ +#define RANDOM_LOG_FORMAT LOG_FMT_TERSE + +/** + * Random security level. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "random_level" + */ +#define RANDOM_SECURITY_LEVEL RANDOM_SECURITY_MINIMUM + +#endif /* CFG_RANDOM_H */ diff --git a/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_randpool.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_randpool.h new file mode 100644 index 00000000..3038363e --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_sd.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_sd.h new file mode 100644 index 00000000..b08ac9c3 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_sd.h @@ -0,0 +1,83 @@ +/** + * \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 + +/** + * SD bus mode. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "sd_mode" + */ +#define CONFIG_SD_MODE SD_SDMMC_MODE + +/** + * 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 0 + +#endif /* CFG_SD_H */ diff --git a/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_sem.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_sem.h new file mode 100644 index 00000000..51811da4 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_ser.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_ser.h new file mode 100644 index 00000000..91a10e0b --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_signal.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_signal.h new file mode 100644 index 00000000..e48d86a6 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_spi_bitbang.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_spi_bitbang.h new file mode 100644 index 00000000..1a3a8a92 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_stepper.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_stepper.h new file mode 100644 index 00000000..2925fb66 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_tas5706a.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_tas5706a.h new file mode 100644 index 00000000..32b3598f --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_tftp.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_tftp.h new file mode 100644 index 00000000..36cc622c --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_tftp.h @@ -0,0 +1,20 @@ +#ifndef CFG_TFTP_H +#define CFG_TFTP_H + +/** + * Module logging level. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_level" + */ +#define TFTP_LOG_LEVEL LOG_LVL_WARN + +/** + * Module logging format. + * + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_format" + */ +#define TFTP_LOG_FORMAT LOG_FMT_VERBOSE + +#endif /* CFG_TFTP_H */ diff --git a/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_thermo.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_thermo.h new file mode 100644 index 00000000..2734f899 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_timer.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_timer.h new file mode 100644 index 00000000..b6d43b38 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_usb.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_usb.h new file mode 100644 index 00000000..dbfd6fe1 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_usb.h @@ -0,0 +1,85 @@ +/** + * \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 + +/** + * Maximum number of USB device interfaces (default = 1). + * $WIZ$ type = "int" + * $WIZ$ min = 1 + */ +#define CONFIG_USB_INTERFACE_MAX 1 + +/** + * Maximum number of allocated endpoints (0 = auto). + * $WIZ$ type = "int" + * $WIZ$ min = 0 + */ +#define CONFIG_USB_EP_MAX 0 + +/** + * Maximum packet size of the control endpoint 0 [bytes]. + * $WIZ$ type = "int" + * $WIZ$ min = 8 + */ +#define CONFIG_EP0_MAX_SIZE 8 + +#endif /* CFG_USB_H */ diff --git a/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_usbkbd.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_usbkbd.h new file mode 100644 index 00000000..5b6fb65a --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_usbmouse.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_usbmouse.h new file mode 100644 index 00000000..73143284 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_usbser.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_usbser.h new file mode 100644 index 00000000..1fa44e73 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_wdt.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_wdt.h new file mode 100644 index 00000000..b53b327e --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_wm8731.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_wm8731.h new file mode 100644 index 00000000..76280b65 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_wm8731.h @@ -0,0 +1,133 @@ +/** + * \file + * + * + * \brief Configuration file for the WM8731 module. + * + * \author Daniele Basile + */ + +#ifndef CFG_WM8731_H +#define CFG_WM8731_H + +/** + * Module logging level. + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_level" + */ +#define WM8731_LOG_LEVEL LOG_LVL_INFO + +/** + * Module logging format. + * $WIZ$ type = "enum" + * $WIZ$ value_list = "log_format" + */ +#define WM8731_LOG_FORMAT LOG_FMT_TERSE + + +/** + * Digital control: ADC High pass filter + * $WIZ$ type = "boolean" + */ +#define CONFIG_WM8731_DAPC 0 + + +/** + * Digital control: De-emphasis control + * $WIZ$ type = "enum" + * $WIZ$ value_list = "wm8731_deemp" + */ +#define CONFIG_WM8731_DEEMP WM8731_DEEMP_DISABLE + +/** + * Digital control: DAC soft mute control + * $WIZ$ type = "boolean" + */ +#define CONFIG_WM8731_DACMU 0 + + +/** + * Analog control: Microphone boost + * $WIZ$ type = "boolean" + */ +#define CONFIG_WM8731_MICBOOST 0 + +/** + * Analog control: Microphone/Line Input select to ADC + * $WIZ$ type = "enum" + * $WIZ$ value_list = "wm8731_insel" + */ +#define CONFIG_WM8731_INSEL WM8731_INSEL_MIC + + +/** + * Analog control: out selector + * $WIZ$ type = "enum" + * $WIZ$ value_list = "wm8731_bypass" + */ +#define CONFIG_WM8731_BYPASS WM8731_DACSEL + +/** + * Analog control: Side tone attenuation + * $WIZ$ type = "enum" + * $WIZ$ value_list = "wm8731_sideatt" + */ +#define CONFIG_WM8731_SIDEATT WM8731_SIDEATT_6dB + + +/** + * Digital Audio interface format. + * $WIZ$ type = "enum" + * $WIZ$ value_list = "wm8731_fmt" + */ +#define CONFIG_WM8731_INTERFACE_FORMAT WM8731_FORMAT_I2S + +/** + * Digital Audio data bit length. + * $WIZ$ type = "enum" + * $WIZ$ value_list = "wm8731_databit" + */ +#define CONFIG_WM8731_IWL_BITS WM8731_IWL_16_BIT + +/** + * Enable Master mode. + * $WIZ$ type = "boolean" + */ +#define CONFIG_WM8731_MS 0 + + +/** + * Data sampling rate, refer to datasheet for this value. + * $WIZ$ type = "hex" + */ +#define CONFIG_WM8731_SAMPLING_RATES 0x6 + +#endif /* CFG_WM8731_H */ diff --git a/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_xmodem.h b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/cfg/cfg_xmodem.h new file mode 100644 index 00000000..38db7359 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/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/sam3x-ek/examples/sam3x-ek_sd_bootloader/main.c b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/main.c new file mode 100644 index 00000000..712e7467 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/main.c @@ -0,0 +1,237 @@ +/** + * \file + * + * + * \author Stefano Federico + * + * \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 "hw/hw_sd.h" +#include "hw/hw_boot.h" + +// Define log settings for cfg/log.h +#define LOG_LEVEL 3 +#define LOG_FORMAT 0 +#include +#include + +#include + +#include +#include +#include +#include +#include + +#include + +#include + +#include + + +static Flash internal_flash; +static KFileBlock flash; +static Sd sd; + +FATFS fs; +FatFile fw_file; + +uint8_t fw_buf[4096]; +uint8_t fw_buf1[4096]; + +/* + * To jump to the application init, we should add this offset plus one. + */ +#define FLASH_INIT_OFFSET 0x13 +#define FLASH_TRIM_START FLASH_BOOT_SIZE / FLASH_PAGE_SIZE_BYTES +/* + * Define pointer function to main program. + */ +void (*rom_start)(void) NORETURN = (void *)(FLASH_BOOT_SIZE + FLASH_INIT_OFFSET); + +#define START_APP() rom_start() + +static void init(void) +{ + kdbg_init(); + + IRQ_ENABLE; + + timer_init(); + dmac_init(); + LED_INIT(); + + flash_init(&internal_flash, 0); + + kprintf("Trim start: %d, blocks: %ld\n", FLASH_TRIM_START, internal_flash.blk.blk_cnt - FLASH_TRIM_START); + kblock_trim(&internal_flash.blk, FLASH_TRIM_START, internal_flash.blk.blk_cnt - FLASH_TRIM_START); + kfileblock_init(&flash, &internal_flash.blk); +} + + +int main(void) +{ + init(); + + LED_ON(LED_RED); + + if (SD_CARD_PRESENT()) + { + // There is an hardware bug, so to flash correctly we access to flash more slowing. + EEFC0_FMR = EEFC_FMR_FWS(7); + EEFC1_FMR = EEFC_FMR_FWS(7); + + FRESULT result; + bool sd_ok = sd_init(&sd, NULL, 0); + if (sd_ok) + { + kprintf("Mount FAT filesystem.\n"); + result = f_mount(0, &fs); + if (result != FR_OK) + { + kprintf("Mounting FAT volumes error[%d]\n", result); + sd_ok = false; + f_mount(0, NULL); + goto end; + } + + if (sd_ok) + { + result = fatfile_open(&fw_file, "firmware.bin", FA_READ); + if (result == FR_OK) + { + + LOG_INFO("Firmware file found, checking for update...\n"); + size_t fw_len = fw_file.fat_file.fsize; + if (fw_len > (kfile_off_t)(FLASH_MEM_SIZE - FLASH_BOOT_SIZE)) + { + LOG_ERR("Fw file too large\n"); + kfile_close(&fw_file.fd); + f_mount(0, NULL); + goto end; + } + + size_t len; + while (fw_len) + { + len = MIN(sizeof(fw_buf), fw_len); + + if (kfile_read(&fw_file.fd, fw_buf, len) != len) + { + LOG_ERR("Error reading fw file\n"); + kfile_close(&fw_file.fd); + f_mount(0, NULL); + goto end; + } + + if (kfile_read(&flash.fd, fw_buf1, len) != len) + { + LOG_ERR("Error reading from flash\n"); + kfile_close(&fw_file.fd); + f_mount(0, NULL); + goto end; + } + if (memcmp(fw_buf, fw_buf1, len)) + break; + + fw_len -= len; + } + + if (fw_len == 0) + { + LOG_INFO("Already up-to date\n"); + kfile_close(&fw_file.fd); + f_mount(0, NULL); + goto end; + } + + LOG_INFO("Firmware file differs from memory, reprogramming...\n"); + fw_len = fw_file.fat_file.fsize; + kfile_seek(&fw_file.fd, 0, KSM_SEEK_SET); + kfile_seek(&flash.fd, 0, KSM_SEEK_SET); + + while (fw_len) + { + len = MIN(sizeof(fw_buf), fw_len); + if (kfile_read(&fw_file.fd, fw_buf, len) != len) + { + LOG_ERR("Error reading fw file[%d]\n", len); + kfile_close(&fw_file.fd); + f_mount(0, NULL); + goto end; + } + if (kfile_write(&flash.fd, fw_buf, len) != len) + { + LOG_ERR("Error writing flash!\n"); + kfile_close(&fw_file.fd); + f_mount(0, NULL); + goto end; + } + + fw_len -= len; + } + kfile_flush(&flash.fd); + kfile_close(&fw_file.fd); + + f_mount(0, NULL); + LOG_INFO("Done!\n"); + + } + else + { + LOG_INFO("firmware file not found\n"); + f_mount(0, NULL); + goto end; + } + } + } + } + + +end: + //Shut down all peripheral before to jump to application. + timer_hw_exit(); + IRQ_DISABLE; + + EEFC0_FMR = EEFC_FMR_FWS(3); + EEFC1_FMR = EEFC_FMR_FWS(3); + + LOG_INFO("Jump to main application.\n"); + START_APP(); + + return 0; +} diff --git a/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/project.bertos b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/project.bertos new file mode 100644 index 00000000..745535ac --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/project.bertos @@ -0,0 +1,75 @@ +(dp0 +S'BERTOS_PATH' +p1 +S'../../../..' +p2 +sS'SELECTED_FREQ' +p3 +V84000000 +p4 +sS'WIZARD_VERSION' +p5 +I4 +sS'PROJECT_NAME' +p6 +Vsam3x-ek_sd_bootloader +p7 +sS'TOOLCHAIN' +p8 +(dp9 +S'path' +p10 +Varm-none-eabi-gcc +p11 +ssS'PROJECT_SRC_PATH_FROM_MAKEFILE' +p12 +Vboards/sam3x-ek/examples/sam3x-ek_sd_bootloader +p13 +sS'ENABLED_MODULES' +p14 +(lp15 +S'debug' +p16 +aS'fat' +p17 +aS'flash' +p18 +aS'formatwr' +p19 +aS'kblock' +p20 +aS'kfile' +p21 +aS'kfile_block' +p22 +aS'lcd_hx8347' +p23 +aS'sd' +p24 +aS'timer' +p25 +asS'CPU_NAME' +p26 +VSAM3X8 +p27 +sS'PROJECT_HW_PATH' +p28 +S'../..' +p29 +sS'PROJECT_SRC_PATH' +p30 +S'.' +p31 +sS'PRESET' +p32 +I01 +sS'PROJECT_HW_PATH_FROM_MAKEFILE' +p33 +Vboards/sam3x-ek +p34 +sS'OUTPUT' +p35 +(lp36 +S'codelite' +p37 +as. \ No newline at end of file diff --git a/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/sam3x-ek_sd_bootloader.mk b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/sam3x-ek_sd_bootloader.mk new file mode 100644 index 00000000..2d1dcb77 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/sam3x-ek_sd_bootloader.mk @@ -0,0 +1,97 @@ +# +# Wizard autogenerated makefile. +# DO NOT EDIT, use the sam3x-ek_sd_bootloader_user.mk file instead. +# + +# Constants automatically defined by the selected modules +sam3x-ek_sd_bootloader_DEBUG = 1 + +# Our target application +TRG += sam3x-ek_sd_bootloader + +sam3x-ek_sd_bootloader_PREFIX = "arm-none-eabi-" + +sam3x-ek_sd_bootloader_SUFFIX = "" + +sam3x-ek_sd_bootloader_SRC_PATH = boards/sam3x-ek/examples/sam3x-ek_sd_bootloader + +sam3x-ek_sd_bootloader_HW_PATH = boards/sam3x-ek + +# Files automatically generated by the wizard. DO NOT EDIT, USE sam3x-ek_sd_bootloader_USER_CSRC INSTEAD! +sam3x-ek_sd_bootloader_WIZARD_CSRC = \ + bertos/cpu/cortex-m3/drv/flash_sam3.c \ + bertos/cpu/cortex-m3/drv/sd_sam3.c \ + bertos/cpu/cortex-m3/drv/timer_cm3.c \ + bertos/drv/lcd_hx8347.c \ + bertos/drv/sd.c \ + bertos/drv/sd_spi.c \ + bertos/drv/timer.c \ + bertos/fs/fat.c \ + bertos/fs/fatfs/diskio.c \ + bertos/fs/fatfs/ff.c \ + bertos/io/kblock.c \ + bertos/io/kfile.c \ + bertos/io/kfile_block.c \ + bertos/mware/event.c \ + bertos/mware/formatwr.c \ + bertos/mware/hex.c \ + # + +# Files automatically generated by the wizard. DO NOT EDIT, USE sam3x-ek_sd_bootloader_USER_PCSRC INSTEAD! +sam3x-ek_sd_bootloader_WIZARD_PCSRC = \ + \ + # + +# Files automatically generated by the wizard. DO NOT EDIT, USE sam3x-ek_sd_bootloader_USER_CPPASRC INSTEAD! +sam3x-ek_sd_bootloader_WIZARD_CPPASRC = \ + \ + # + +# Files automatically generated by the wizard. DO NOT EDIT, USE sam3x-ek_sd_bootloader_USER_CXXSRC INSTEAD! +sam3x-ek_sd_bootloader_WIZARD_CXXSRC = \ + \ + # + +# Files automatically generated by the wizard. DO NOT EDIT, USE sam3x-ek_sd_bootloader_USER_ASRC INSTEAD! +sam3x-ek_sd_bootloader_WIZARD_ASRC = \ + \ + # + +sam3x-ek_sd_bootloader_CPPFLAGS = -D'CPU_FREQ=(84000000UL)' -D'ARCH=(ARCH_DEFAULT)' -D'WIZ_AUTOGEN' -I$(sam3x-ek_sd_bootloader_HW_PATH) -I$(sam3x-ek_sd_bootloader_SRC_PATH) $(sam3x-ek_sd_bootloader_CPU_CPPFLAGS) $(sam3x-ek_sd_bootloader_USER_CPPFLAGS) + +# Automatically generated by the wizard. PLEASE DO NOT EDIT! +sam3x-ek_sd_bootloader_LDFLAGS = $(sam3x-ek_sd_bootloader_CPU_LDFLAGS) $(sam3x-ek_sd_bootloader_WIZARD_LDFLAGS) $(sam3x-ek_sd_bootloader_USER_LDFLAGS) + +# Automatically generated by the wizard. PLEASE DO NOT EDIT! +sam3x-ek_sd_bootloader_CPPAFLAGS = $(sam3x-ek_sd_bootloader_CPU_CPPAFLAGS) $(sam3x-ek_sd_bootloader_WIZARD_CPPAFLAGS) $(sam3x-ek_sd_bootloader_USER_CPPAFLAGS) + +# Automatically generated by the wizard. PLEASE DO NOT EDIT! +sam3x-ek_sd_bootloader_CSRC = $(sam3x-ek_sd_bootloader_CPU_CSRC) $(sam3x-ek_sd_bootloader_WIZARD_CSRC) $(sam3x-ek_sd_bootloader_USER_CSRC) + +# Automatically generated by the wizard. PLEASE DO NOT EDIT! +sam3x-ek_sd_bootloader_PCSRC = $(sam3x-ek_sd_bootloader_CPU_PCSRC) $(sam3x-ek_sd_bootloader_WIZARD_PCSRC) $(sam3x-ek_sd_bootloader_USER_PCSRC) + +# Automatically generated by the wizard. PLEASE DO NOT EDIT! +sam3x-ek_sd_bootloader_CPPASRC = $(sam3x-ek_sd_bootloader_CPU_CPPASRC) $(sam3x-ek_sd_bootloader_WIZARD_CPPASRC) $(sam3x-ek_sd_bootloader_USER_CPPASRC) + +# Automatically generated by the wizard. PLEASE DO NOT EDIT! +sam3x-ek_sd_bootloader_CXXSRC = $(sam3x-ek_sd_bootloader_CPU_CXXSRC) $(sam3x-ek_sd_bootloader_WIZARD_CXXSRC) $(sam3x-ek_sd_bootloader_USER_CXXSRC) + +# Automatically generated by the wizard. PLEASE DO NOT EDIT! +sam3x-ek_sd_bootloader_ASRC = $(sam3x-ek_sd_bootloader_CPU_ASRC) $(sam3x-ek_sd_bootloader_WIZARD_ASRC) $(sam3x-ek_sd_bootloader_USER_ASRC) + +# CPU specific flags and options, defined in the CPU definition files. +# Automatically generated by the wizard. PLEASE DO NOT EDIT! +sam3x-ek_sd_bootloader_CPU_CPPASRC = bertos/cpu/cortex-m3/hw/crt_cm3.S bertos/cpu/cortex-m3/hw/vectors_cm3.S +sam3x-ek_sd_bootloader_CPU_CPPAFLAGS = -g -gdwarf-2 -mthumb -mno-thumb-interwork +sam3x-ek_sd_bootloader_CPU_CPPFLAGS = -O0 -g3 -gdwarf-2 -mthumb -mno-thumb-interwork -fno-strict-aliasing -fwrapv -fverbose-asm -Ibertos/cpu/cortex-m3/ -D__ARM_SAM3X8__ +sam3x-ek_sd_bootloader_CPU_CSRC = bertos/cpu/cortex-m3/hw/init_cm3.c bertos/cpu/cortex-m3/drv/irq_cm3.c bertos/cpu/cortex-m3/drv/clock_sam3.c +sam3x-ek_sd_bootloader_PROGRAMMER_CPU = sam3 +sam3x-ek_sd_bootloader_CPU_LDFLAGS = -mthumb -mno-thumb-interwork -nostartfiles -Wl,--no-warn-mismatch -Wl,-dT bertos/cpu/cortex-m3/scripts/sam3x8_rom.ld +sam3x-ek_sd_bootloader_STOPFLASH_SCRIPT = bertos/prg_scripts/arm/stopopenocd.sh +sam3x-ek_sd_bootloader_CPU = cortex-m3 +sam3x-ek_sd_bootloader_STOPDEBUG_SCRIPT = bertos/prg_scripts/arm/stopopenocd.sh +sam3x-ek_sd_bootloader_DEBUG_SCRIPT = bertos/prg_scripts/arm/debug.sh +sam3x-ek_sd_bootloader_FLASH_SCRIPT = bertos/prg_scripts/arm/flash-sam3.sh + +include $(sam3x-ek_sd_bootloader_SRC_PATH)/sam3x-ek_sd_bootloader_user.mk diff --git a/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/sam3x-ek_sd_bootloader_user.mk b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/sam3x-ek_sd_bootloader_user.mk new file mode 100644 index 00000000..d6fced72 --- /dev/null +++ b/boards/sam3x-ek/examples/sam3x-ek_sd_bootloader/sam3x-ek_sd_bootloader_user.mk @@ -0,0 +1,47 @@ +# +# User makefile. +# Edit this file to change compiler options and related stuff. +# + +# Programmer interface configuration, see http://dev.bertos.org/wiki/ProgrammerInterface for help +sam3x-ek_sd_bootloader_PROGRAMMER_TYPE = none +sam3x-ek_sd_bootloader_PROGRAMMER_PORT = none + +# Files included by the user. +sam3x-ek_sd_bootloader_USER_CSRC = \ + $(sam3x-ek_sd_bootloader_SRC_PATH)/main.c \ + bertos/cpu/cortex-m3/drv/dmac_sam3.c \ + bertos/cpu/cortex-m3/drv/hsmci_sam3.c \ + bertos/cpu/cortex-m3/io/sam3_chipid.c \ + # + +# Files included by the user. +sam3x-ek_sd_bootloader_USER_PCSRC = \ + # + +# Files included by the user. +sam3x-ek_sd_bootloader_USER_CPPASRC = \ + # + +# Files included by the user. +sam3x-ek_sd_bootloader_USER_CXXSRC = \ + # + +# Files included by the user. +sam3x-ek_sd_bootloader_USER_ASRC = \ + # + +# Flags included by the user. +sam3x-ek_sd_bootloader_USER_LDFLAGS = \ + # + +# Flags included by the user. +sam3x-ek_sd_bootloader_USER_CPPAFLAGS = \ + # + +# Flags included by the user. +sam3x-ek_sd_bootloader_USER_CPPFLAGS = \ + -fno-strict-aliasing \ + -fwrapv \ + -Os \ + # diff --git a/boards/sam3x-ek/hw/hw_boot.h b/boards/sam3x-ek/hw/hw_boot.h new file mode 100644 index 00000000..b44bdf5d --- /dev/null +++ b/boards/sam3x-ek/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 0x10000 // 64kbyte + +#endif /* HW_BOOT_H */ -- 2.25.1