├── Doc ├── CAN Logger (manual).docx ├── CAN Logger (manual).pdf ├── Examples │ ├── 2000-00-01T00-00-38Z.csv │ └── Config.txt └── Test │ ├── Config.txt │ ├── Original │ ├── Log.trc │ └── log.csv │ ├── Postprocessed │ ├── Log_.trc │ ├── WinMerge.png │ └── log_.csv │ ├── Readme.txt │ ├── postprocess_my.py │ └── postprocess_pcan.py ├── Firmware ├── ChibiStudio │ └── CAN-Logger │ │ ├── .cproject │ │ ├── .project │ │ ├── Makefile │ │ ├── board │ │ ├── board.c │ │ ├── board.h │ │ └── board.mk │ │ ├── chconf.h │ │ ├── ffconf.h │ │ ├── file_utils.c │ │ ├── file_utils.h │ │ ├── halconf.h │ │ ├── main.c │ │ ├── mcuconf.h │ │ └── readme.md └── IAR │ ├── .gitignore │ ├── README.md │ ├── boards │ └── ST_STM32F4_DISCOVERY │ │ ├── board.c │ │ ├── board.h │ │ ├── board.mk │ │ └── cfg │ │ └── board.chcfg │ ├── demos │ └── ARMCM4-STM32F407-DISCOVERY │ │ ├── .cproject │ │ ├── .project │ │ ├── Makefile │ │ ├── chconf.h │ │ ├── ffconf.h │ │ ├── file_utils.c │ │ ├── file_utils.h │ │ ├── halconf.h │ │ ├── halconf.h.bak │ │ ├── iar │ │ ├── ch.dep │ │ ├── ch.ewd │ │ ├── ch.ewp │ │ ├── ch.eww │ │ ├── ch.hex │ │ └── ch.icf │ │ ├── lwipopts.h │ │ ├── main.c │ │ ├── mcuconf.h │ │ ├── mcuconf.h.bak │ │ └── readme.txt │ ├── ext │ └── fatfs │ │ └── src │ │ ├── 00readme.txt │ │ ├── diskio.h │ │ ├── ff.c │ │ ├── ff.h │ │ ├── ffconf_template.h │ │ ├── integer.h │ │ └── option │ │ ├── cc932.c │ │ ├── cc936.c │ │ ├── cc949.c │ │ ├── cc950.c │ │ └── ccsbcs.c │ └── os │ ├── hal │ ├── dox │ │ ├── adc.dox │ │ ├── can.dox │ │ ├── ext.dox │ │ ├── gpt.dox │ │ ├── hal.dox │ │ ├── i2c.dox │ │ ├── i2s.dox │ │ ├── icu.dox │ │ ├── io_block.dox │ │ ├── io_channel.dox │ │ ├── mac.dox │ │ ├── mmc_spi.dox │ │ ├── mmcsd.dox │ │ ├── pal.dox │ │ ├── pwm.dox │ │ ├── rtc.dox │ │ ├── sdc.dox │ │ ├── serial.dox │ │ ├── serial_usb.dox │ │ ├── spi.dox │ │ ├── tm.dox │ │ ├── uart.dox │ │ └── usb.dox │ ├── hal.dox │ ├── hal.mk │ ├── include │ │ ├── adc.h │ │ ├── can.h │ │ ├── ext.h │ │ ├── gpt.h │ │ ├── hal.h │ │ ├── i2c.h │ │ ├── icu.h │ │ ├── io_block.h │ │ ├── io_channel.h │ │ ├── mac.h │ │ ├── mii.h │ │ ├── mmc_spi.h │ │ ├── mmcsd.h │ │ ├── pal.h │ │ ├── pwm.h │ │ ├── rtc.h │ │ ├── sdc.h │ │ ├── serial.h │ │ ├── serial_usb.h │ │ ├── spi.h │ │ ├── tm.h │ │ ├── uart.h │ │ └── usb.h │ ├── platforms │ │ ├── AT91SAM7 │ │ │ ├── adc_lld.c │ │ │ ├── adc_lld.h │ │ │ ├── at91lib │ │ │ │ ├── AT91SAM7A3.h │ │ │ │ ├── AT91SAM7S128.h │ │ │ │ ├── AT91SAM7S256.h │ │ │ │ ├── AT91SAM7S512.h │ │ │ │ ├── AT91SAM7S64.h │ │ │ │ ├── AT91SAM7X128.h │ │ │ │ ├── AT91SAM7X256.h │ │ │ │ ├── AT91SAM7X512.h │ │ │ │ ├── aic.c │ │ │ │ └── aic.h │ │ │ ├── at91sam7.h │ │ │ ├── at91sam7_mii.c │ │ │ ├── at91sam7_mii.h │ │ │ ├── ext_lld.c │ │ │ ├── ext_lld.h │ │ │ ├── gpt_lld.c │ │ │ ├── gpt_lld.h │ │ │ ├── hal_lld.c │ │ │ ├── hal_lld.h │ │ │ ├── i2c_lld.c │ │ │ ├── i2c_lld.h │ │ │ ├── mac_lld.c │ │ │ ├── mac_lld.h │ │ │ ├── pal_lld.c │ │ │ ├── pal_lld.h │ │ │ ├── platform.dox │ │ │ ├── platform.mk │ │ │ ├── pwm_lld.c │ │ │ ├── pwm_lld.h │ │ │ ├── serial_lld.c │ │ │ ├── serial_lld.h │ │ │ ├── spi_lld.c │ │ │ └── spi_lld.h │ │ ├── AVR │ │ │ ├── hal_lld.c │ │ │ ├── hal_lld.h │ │ │ ├── i2c_lld.c │ │ │ ├── i2c_lld.h │ │ │ ├── pal_lld.c │ │ │ ├── pal_lld.h │ │ │ ├── platform.dox │ │ │ ├── platform.mk │ │ │ ├── serial_lld.c │ │ │ └── serial_lld.h │ │ ├── LPC11Uxx │ │ │ ├── LPC11Uxx.h │ │ │ ├── ext_lld.c │ │ │ ├── ext_lld.h │ │ │ ├── ext_lld_isr.c │ │ │ ├── ext_lld_isr.h │ │ │ ├── gpt_lld.c │ │ │ ├── gpt_lld.h │ │ │ ├── hal_lld.c │ │ │ ├── hal_lld.h │ │ │ ├── pal_lld.c │ │ │ ├── pal_lld.h │ │ │ ├── platform.mk │ │ │ ├── serial_lld.c │ │ │ ├── serial_lld.h │ │ │ ├── spi_lld.c │ │ │ ├── spi_lld.h │ │ │ └── system_LPC11Uxx.h │ │ ├── LPC11xx │ │ │ ├── LPC11xx.h │ │ │ ├── gpt_lld.c │ │ │ ├── gpt_lld.h │ │ │ ├── hal_lld.c │ │ │ ├── hal_lld.h │ │ │ ├── pal_lld.c │ │ │ ├── pal_lld.h │ │ │ ├── platform.dox │ │ │ ├── platform.mk │ │ │ ├── serial_lld.c │ │ │ ├── serial_lld.h │ │ │ ├── spi_lld.c │ │ │ ├── spi_lld.h │ │ │ └── system_LPC11xx.h │ │ ├── LPC122x │ │ │ ├── LPC122x.h │ │ │ ├── gpt_lld.c │ │ │ ├── gpt_lld.h │ │ │ ├── hal_lld.c │ │ │ ├── hal_lld.h │ │ │ ├── pal_lld.c │ │ │ ├── pal_lld.h │ │ │ ├── platform.mk │ │ │ ├── serial_lld.c │ │ │ ├── serial_lld.h │ │ │ ├── spi_lld.c │ │ │ ├── spi_lld.h │ │ │ └── system_LPC122x.h │ │ ├── LPC13xx │ │ │ ├── LPC13xx.h │ │ │ ├── gpt_lld.c │ │ │ ├── gpt_lld.h │ │ │ ├── hal_lld.c │ │ │ ├── hal_lld.h │ │ │ ├── pal_lld.c │ │ │ ├── pal_lld.h │ │ │ ├── platform.dox │ │ │ ├── platform.mk │ │ │ ├── serial_lld.c │ │ │ ├── serial_lld.h │ │ │ ├── spi_lld.c │ │ │ ├── spi_lld.h │ │ │ └── system_LPC13xx.h │ │ ├── LPC214x │ │ │ ├── hal_lld.c │ │ │ ├── hal_lld.h │ │ │ ├── lpc214x.h │ │ │ ├── pal_lld.c │ │ │ ├── pal_lld.h │ │ │ ├── platform.dox │ │ │ ├── platform.mk │ │ │ ├── serial_lld.c │ │ │ ├── serial_lld.h │ │ │ ├── spi_lld.c │ │ │ ├── spi_lld.h │ │ │ ├── vic.c │ │ │ └── vic.h │ │ ├── LPC8xx │ │ │ ├── LPC8xx.h │ │ │ ├── ext_lld.c │ │ │ ├── ext_lld.h │ │ │ ├── ext_lld_isr.c │ │ │ ├── ext_lld_isr.h │ │ │ ├── gpt_lld.c │ │ │ ├── gpt_lld.h │ │ │ ├── hal_lld.c │ │ │ ├── hal_lld.h │ │ │ ├── pal_lld.c │ │ │ ├── pal_lld.h │ │ │ ├── platform.dox │ │ │ ├── platform.mk │ │ │ ├── serial_lld.c │ │ │ ├── serial_lld.h │ │ │ ├── spi_lld.c │ │ │ ├── spi_lld.h │ │ │ └── system_LPC8xx.h │ │ ├── MSP430 │ │ │ ├── hal_lld.c │ │ │ ├── hal_lld.h │ │ │ ├── pal_lld.c │ │ │ ├── pal_lld.h │ │ │ ├── platform.dox │ │ │ ├── platform.mk │ │ │ ├── serial_lld.c │ │ │ └── serial_lld.h │ │ ├── Posix │ │ │ ├── console.c │ │ │ ├── console.h │ │ │ ├── hal_lld.c │ │ │ ├── hal_lld.h │ │ │ ├── pal_lld.c │ │ │ ├── pal_lld.h │ │ │ ├── platform.mk │ │ │ ├── serial_lld.c │ │ │ └── serial_lld.h │ │ ├── SPC560BCxx │ │ │ ├── hal_lld.c │ │ │ ├── hal_lld.h │ │ │ ├── platform.mk │ │ │ ├── spc560bc_registry.h │ │ │ ├── typedefs.h │ │ │ └── xpc560bc.h │ │ ├── SPC560Pxx │ │ │ ├── hal_lld.c │ │ │ ├── hal_lld.h │ │ │ ├── platform.mk │ │ │ ├── spc560p_registry.h │ │ │ ├── typedefs.h │ │ │ └── xpc560p.h │ │ ├── SPC563Mxx │ │ │ ├── hal_lld.c │ │ │ ├── hal_lld.h │ │ │ ├── platform.dox │ │ │ ├── platform.mk │ │ │ ├── spc563m_registry.h │ │ │ ├── typedefs.h │ │ │ └── xpc563m.h │ │ ├── SPC564Axx │ │ │ ├── hal_lld.c │ │ │ ├── hal_lld.h │ │ │ ├── platform.mk │ │ │ ├── spc564a_registry.h │ │ │ ├── typedefs.h │ │ │ └── xpc564a.h │ │ ├── SPC56ELxx │ │ │ ├── hal_lld.c │ │ │ ├── hal_lld.h │ │ │ ├── platform.mk │ │ │ ├── spc56el_registry.h │ │ │ ├── typedefs.h │ │ │ └── xpc56el.h │ │ ├── SPC5xx │ │ │ ├── EDMA_v1 │ │ │ │ ├── spc5_edma.c │ │ │ │ └── spc5_edma.h │ │ │ ├── EQADC_v1 │ │ │ │ ├── adc_lld.c │ │ │ │ └── adc_lld.h │ │ │ ├── ESCI_v1 │ │ │ │ ├── serial_lld.c │ │ │ │ └── serial_lld.h │ │ │ ├── FlexPWM_v1 │ │ │ │ ├── pwm_lld.c │ │ │ │ ├── pwm_lld.h │ │ │ │ └── spc5_flexpwm.h │ │ │ ├── LINFlex_v1 │ │ │ │ ├── serial_lld.c │ │ │ │ └── serial_lld.h │ │ │ ├── SIUL_v1 │ │ │ │ ├── pal_lld.c │ │ │ │ └── pal_lld.h │ │ │ ├── SIU_v1 │ │ │ │ ├── pal_lld.c │ │ │ │ └── pal_lld.h │ │ │ └── eTimer_v1 │ │ │ │ ├── icu_lld.c │ │ │ │ ├── icu_lld.h │ │ │ │ └── spc5_etimer.h │ │ ├── STM32 │ │ │ ├── GPIOv1 │ │ │ │ ├── pal_lld.c │ │ │ │ └── pal_lld.h │ │ │ ├── GPIOv2 │ │ │ │ ├── pal_lld.c │ │ │ │ └── pal_lld.h │ │ │ ├── I2Cv1 │ │ │ │ ├── i2c_lld.c │ │ │ │ └── i2c_lld.h │ │ │ ├── I2Cv2 │ │ │ │ ├── i2c_lld.c │ │ │ │ └── i2c_lld.h │ │ │ ├── OTGv1 │ │ │ │ ├── stm32_otg.h │ │ │ │ ├── usb_lld.c │ │ │ │ └── usb_lld.h │ │ │ ├── RTCv1 │ │ │ │ ├── rtc_lld.c │ │ │ │ └── rtc_lld.h │ │ │ ├── RTCv2 │ │ │ │ ├── rtc_lld.c │ │ │ │ └── rtc_lld.h │ │ │ ├── SPIv1 │ │ │ │ ├── spi_lld.c │ │ │ │ └── spi_lld.h │ │ │ ├── SPIv2 │ │ │ │ ├── spi_lld.c │ │ │ │ └── spi_lld.h │ │ │ ├── TIMv1 │ │ │ │ ├── gpt_lld.c │ │ │ │ ├── gpt_lld.h │ │ │ │ ├── icu_lld.c │ │ │ │ ├── icu_lld.h │ │ │ │ ├── pwm_lld.c │ │ │ │ ├── pwm_lld.h │ │ │ │ └── stm32_tim.h │ │ │ ├── USARTv1 │ │ │ │ ├── serial_lld.c │ │ │ │ ├── serial_lld.h │ │ │ │ ├── uart_lld.c │ │ │ │ └── uart_lld.h │ │ │ ├── USARTv2 │ │ │ │ ├── serial_lld.c │ │ │ │ ├── serial_lld.h │ │ │ │ ├── uart_lld.c │ │ │ │ └── uart_lld.h │ │ │ ├── USBv1 │ │ │ │ ├── stm32_usb.h │ │ │ │ ├── usb_lld.c │ │ │ │ └── usb_lld.h │ │ │ ├── can_lld.c │ │ │ ├── can_lld.h │ │ │ ├── ext_lld.c │ │ │ ├── ext_lld.h │ │ │ ├── mac_lld.c │ │ │ ├── mac_lld.h │ │ │ ├── sdc_lld.c │ │ │ ├── sdc_lld.h │ │ │ └── stm32.h │ │ ├── STM32F0xx │ │ │ ├── adc_lld.c │ │ │ ├── adc_lld.h │ │ │ ├── ext_lld_isr.c │ │ │ ├── ext_lld_isr.h │ │ │ ├── hal_lld.c │ │ │ ├── hal_lld.h │ │ │ ├── platform.dox │ │ │ ├── platform.mk │ │ │ ├── stm32_dma.c │ │ │ ├── stm32_dma.h │ │ │ ├── stm32_isr.h │ │ │ ├── stm32_rcc.h │ │ │ ├── stm32_registry.h │ │ │ └── stm32f0xx.h │ │ ├── STM32F1xx │ │ │ ├── adc_lld.c │ │ │ ├── adc_lld.h │ │ │ ├── ext_lld_isr.c │ │ │ ├── ext_lld_isr.h │ │ │ ├── hal_lld.c │ │ │ ├── hal_lld.h │ │ │ ├── hal_lld_f100.h │ │ │ ├── hal_lld_f103.h │ │ │ ├── hal_lld_f105_f107.h │ │ │ ├── platform.dox │ │ │ ├── platform.mk │ │ │ ├── platform_f105_f107.mk │ │ │ ├── stm32_dma.c │ │ │ ├── stm32_dma.h │ │ │ ├── stm32_isr.h │ │ │ ├── stm32_rcc.h │ │ │ └── stm32f10x.h │ │ ├── STM32F30x │ │ │ ├── adc_lld.c │ │ │ ├── adc_lld.h │ │ │ ├── ext_lld_isr.c │ │ │ ├── ext_lld_isr.h │ │ │ ├── hal_lld.c │ │ │ ├── hal_lld.h │ │ │ ├── platform.mk │ │ │ ├── stm32_dma.c │ │ │ ├── stm32_dma.h │ │ │ ├── stm32_isr.h │ │ │ ├── stm32_rcc.h │ │ │ ├── stm32_registry.h │ │ │ └── stm32f30x.h │ │ ├── STM32F37x │ │ │ ├── adc_lld.c │ │ │ ├── adc_lld.h │ │ │ ├── ext_lld_isr.c │ │ │ ├── ext_lld_isr.h │ │ │ ├── hal_lld.c │ │ │ ├── hal_lld.h │ │ │ ├── platform.mk │ │ │ ├── stm32_dma.c │ │ │ ├── stm32_dma.h │ │ │ ├── stm32_isr.h │ │ │ ├── stm32_rcc.h │ │ │ ├── stm32_registry.h │ │ │ └── stm32f37x.h │ │ ├── STM32F4xx │ │ │ ├── adc_lld.c │ │ │ ├── adc_lld.h │ │ │ ├── ext_lld_isr.c │ │ │ ├── ext_lld_isr.h │ │ │ ├── hal_lld.c │ │ │ ├── hal_lld.h │ │ │ ├── platform.dox │ │ │ ├── platform.mk │ │ │ ├── stm32_dma.c │ │ │ ├── stm32_dma.h │ │ │ ├── stm32_isr.h │ │ │ ├── stm32_rcc.h │ │ │ ├── stm32f2xx.h │ │ │ └── stm32f4xx.h │ │ ├── STM32L1xx │ │ │ ├── adc_lld.c │ │ │ ├── adc_lld.h │ │ │ ├── ext_lld_isr.c │ │ │ ├── ext_lld_isr.h │ │ │ ├── hal_lld.c │ │ │ ├── hal_lld.h │ │ │ ├── platform.dox │ │ │ ├── platform.mk │ │ │ ├── stm32_dma.c │ │ │ ├── stm32_dma.h │ │ │ ├── stm32_isr.h │ │ │ ├── stm32_rcc.h │ │ │ ├── stm32_registry.h │ │ │ └── stm32l1xx.h │ │ ├── Win32 │ │ │ ├── console.c │ │ │ ├── console.h │ │ │ ├── hal_lld.c │ │ │ ├── hal_lld.h │ │ │ ├── pal_lld.c │ │ │ ├── pal_lld.h │ │ │ ├── platform.mk │ │ │ ├── serial_lld.c │ │ │ └── serial_lld.h │ │ └── platforms.dox │ ├── src │ │ ├── adc.c │ │ ├── can.c │ │ ├── ext.c │ │ ├── gpt.c │ │ ├── hal.c │ │ ├── i2c.c │ │ ├── icu.c │ │ ├── mac.c │ │ ├── mmc_spi.c │ │ ├── mmcsd.c │ │ ├── pal.c │ │ ├── pwm.c │ │ ├── rtc.c │ │ ├── sdc.c │ │ ├── serial.c │ │ ├── serial_usb.c │ │ ├── spi.c │ │ ├── tm.c │ │ ├── uart.c │ │ └── usb.c │ └── templates │ │ ├── adc_lld.c │ │ ├── adc_lld.h │ │ ├── can_lld.c │ │ ├── can_lld.h │ │ ├── ext_lld.c │ │ ├── ext_lld.h │ │ ├── gpt_lld.c │ │ ├── gpt_lld.h │ │ ├── hal_lld.c │ │ ├── hal_lld.h │ │ ├── halconf.h │ │ ├── i2c_lld.c │ │ ├── i2c_lld.h │ │ ├── icu_lld.c │ │ ├── icu_lld.h │ │ ├── mac_lld.c │ │ ├── mac_lld.h │ │ ├── mcuconf.h │ │ ├── meta │ │ ├── driver.c │ │ ├── driver.h │ │ ├── driver_lld.c │ │ └── driver_lld.h │ │ ├── pal_lld.c │ │ ├── pal_lld.h │ │ ├── platform.mk │ │ ├── pwm_lld.c │ │ ├── pwm_lld.h │ │ ├── sdc_lld.c │ │ ├── sdc_lld.h │ │ ├── serial_lld.c │ │ ├── serial_lld.h │ │ ├── spi_lld.c │ │ ├── spi_lld.h │ │ ├── uart_lld.c │ │ ├── uart_lld.h │ │ ├── usb_lld.c │ │ └── usb_lld.h │ ├── kernel │ ├── include │ │ ├── ch.h │ │ ├── chbsem.h │ │ ├── chcond.h │ │ ├── chdebug.h │ │ ├── chdynamic.h │ │ ├── chevents.h │ │ ├── chfiles.h │ │ ├── chheap.h │ │ ├── chinline.h │ │ ├── chlists.h │ │ ├── chmboxes.h │ │ ├── chmemcore.h │ │ ├── chmempools.h │ │ ├── chmsg.h │ │ ├── chmtx.h │ │ ├── chqueues.h │ │ ├── chregistry.h │ │ ├── chschd.h │ │ ├── chsem.h │ │ ├── chstreams.h │ │ ├── chsys.h │ │ ├── chthreads.h │ │ └── chvt.h │ ├── kernel.dox │ ├── kernel.mk │ ├── src │ │ ├── chcond.c │ │ ├── chdebug.c │ │ ├── chdynamic.c │ │ ├── chevents.c │ │ ├── chheap.c │ │ ├── chlists.c │ │ ├── chmboxes.c │ │ ├── chmemcore.c │ │ ├── chmempools.c │ │ ├── chmsg.c │ │ ├── chmtx.c │ │ ├── chqueues.c │ │ ├── chregistry.c │ │ ├── chschd.c │ │ ├── chsem.c │ │ ├── chsys.c │ │ ├── chthreads.c │ │ └── chvt.c │ └── templates │ │ ├── chconf.h │ │ ├── chcore.c │ │ ├── chcore.h │ │ └── chtypes.h │ ├── ports │ ├── GCC │ │ ├── ARM │ │ │ ├── AT91SAM7 │ │ │ │ ├── armparams.h │ │ │ │ ├── ld │ │ │ │ │ ├── AT91SAM7A3.ld │ │ │ │ │ ├── AT91SAM7S256.ld │ │ │ │ │ └── AT91SAM7X256.ld │ │ │ │ ├── port.mk │ │ │ │ ├── vectors.s │ │ │ │ └── wfi.h │ │ │ ├── LPC214x │ │ │ │ ├── armparams.h │ │ │ │ ├── ld │ │ │ │ │ └── LPC2148.ld │ │ │ │ ├── port.mk │ │ │ │ ├── vectors.s │ │ │ │ └── wfi.h │ │ │ ├── chcore.c │ │ │ ├── chcore.h │ │ │ ├── chcoreasm.s │ │ │ ├── chtypes.h │ │ │ ├── crt0.s │ │ │ ├── port.dox │ │ │ └── rules.mk │ │ ├── ARMCMx │ │ │ ├── LPC11xx │ │ │ │ ├── cmparams.h │ │ │ │ ├── ld │ │ │ │ │ ├── LPC1114.ld │ │ │ │ │ └── LPC11U14.ld │ │ │ │ ├── port.mk │ │ │ │ └── vectors.c │ │ │ ├── LPC122x │ │ │ │ ├── cmparams.h │ │ │ │ ├── ld │ │ │ │ │ └── LPC1227.ld │ │ │ │ ├── port.mk │ │ │ │ └── vectors.c │ │ │ ├── LPC13xx │ │ │ │ ├── cmparams.h │ │ │ │ ├── ld │ │ │ │ │ └── LPC1343.ld │ │ │ │ ├── port.mk │ │ │ │ └── vectors.c │ │ │ ├── LPC8xx │ │ │ │ ├── cmparams.h │ │ │ │ ├── ld │ │ │ │ │ └── LPC812.ld │ │ │ │ ├── port.mk │ │ │ │ └── vectors.c │ │ │ ├── SAM4L │ │ │ │ ├── cmparams.h │ │ │ │ ├── ld │ │ │ │ │ └── ATSAM4LC4C.ld │ │ │ │ ├── port.mk │ │ │ │ └── vectors.c │ │ │ ├── STM32F0xx │ │ │ │ ├── cmparams.h │ │ │ │ ├── ld │ │ │ │ │ ├── STM32F030x8.ld │ │ │ │ │ └── STM32F051x8.ld │ │ │ │ ├── port.mk │ │ │ │ └── vectors.c │ │ │ ├── STM32F1xx │ │ │ │ ├── cmparams.h │ │ │ │ ├── ld │ │ │ │ │ ├── STM32F100xB.ld │ │ │ │ │ ├── STM32F103xB.ld │ │ │ │ │ ├── STM32F103xD.ld │ │ │ │ │ ├── STM32F103xE.ld │ │ │ │ │ ├── STM32F103xG.ld │ │ │ │ │ └── STM32F107xC.ld │ │ │ │ ├── port.mk │ │ │ │ └── vectors.c │ │ │ ├── STM32F2xx │ │ │ │ ├── cmparams.h │ │ │ │ ├── ld │ │ │ │ │ ├── STM32F205xB.ld │ │ │ │ │ └── STM32F207xG.ld │ │ │ │ ├── port.mk │ │ │ │ └── vectors.c │ │ │ ├── STM32F3xx │ │ │ │ ├── cmparams.h │ │ │ │ ├── ld │ │ │ │ │ ├── STM32F303xC.ld │ │ │ │ │ └── STM32F373xC.ld │ │ │ │ ├── port.mk │ │ │ │ └── vectors.c │ │ │ ├── STM32F4xx │ │ │ │ ├── cmparams.h │ │ │ │ ├── ld │ │ │ │ │ ├── STM32F401xC.ld │ │ │ │ │ ├── STM32F401xE.ld │ │ │ │ │ ├── STM32F405xG.ld │ │ │ │ │ ├── STM32F407xG.ld │ │ │ │ │ ├── STM32F407xG_CCM.ld │ │ │ │ │ └── STM32F429xI.ld │ │ │ │ ├── port.mk │ │ │ │ └── vectors.c │ │ │ ├── STM32L1xx │ │ │ │ ├── cmparams.h │ │ │ │ ├── ld │ │ │ │ │ ├── STM32L152xB.ld │ │ │ │ │ └── STM32L152xE.ld │ │ │ │ ├── port.mk │ │ │ │ └── vectors.c │ │ │ ├── chcore.c │ │ │ ├── chcore.h │ │ │ ├── chcore_v6m.c │ │ │ ├── chcore_v6m.h │ │ │ ├── chcore_v7m.c │ │ │ ├── chcore_v7m.h │ │ │ ├── chtypes.h │ │ │ ├── crt0.c │ │ │ ├── port.dox │ │ │ └── rules.mk │ │ ├── AVR │ │ │ ├── chcore.c │ │ │ ├── chcore.h │ │ │ ├── chtypes.h │ │ │ ├── port.dox │ │ │ └── port.mk │ │ ├── MSP430 │ │ │ ├── chcore.h │ │ │ ├── chcoreasm.s │ │ │ ├── chtypes.h │ │ │ ├── port.dox │ │ │ ├── port.mk │ │ │ └── rules.mk │ │ ├── PPC │ │ │ ├── SPC560BCxx │ │ │ │ ├── bam.s │ │ │ │ ├── core.s │ │ │ │ ├── ld │ │ │ │ │ ├── SPC560B44.ld │ │ │ │ │ └── SPC560B50.ld │ │ │ │ ├── port.mk │ │ │ │ ├── ppcparams.h │ │ │ │ ├── vectors.h │ │ │ │ └── vectors.s │ │ │ ├── SPC560Bxx │ │ │ │ ├── bam.s │ │ │ │ ├── core.s │ │ │ │ ├── ld │ │ │ │ │ └── SPC560B64.ld │ │ │ │ ├── port.mk │ │ │ │ ├── ppcparams.h │ │ │ │ ├── vectors.h │ │ │ │ └── vectors.s │ │ │ ├── SPC560Dxx │ │ │ │ ├── bam.s │ │ │ │ ├── core.s │ │ │ │ ├── ld │ │ │ │ │ ├── SPC560D30.ld │ │ │ │ │ └── SPC560D40.ld │ │ │ │ ├── port.mk │ │ │ │ ├── ppcparams.h │ │ │ │ ├── vectors.h │ │ │ │ └── vectors.s │ │ │ ├── SPC560Pxx │ │ │ │ ├── bam.s │ │ │ │ ├── core.s │ │ │ │ ├── ld │ │ │ │ │ ├── SPC560P44.ld │ │ │ │ │ └── SPC560P50.ld │ │ │ │ ├── port.mk │ │ │ │ ├── ppcparams.h │ │ │ │ ├── vectors.h │ │ │ │ └── vectors.s │ │ │ ├── SPC563Mxx │ │ │ │ ├── bam.s │ │ │ │ ├── core.s │ │ │ │ ├── ld │ │ │ │ │ └── SPC563M64.ld │ │ │ │ ├── port.mk │ │ │ │ ├── ppcparams.h │ │ │ │ ├── vectors.h │ │ │ │ └── vectors.s │ │ │ ├── SPC564Axx │ │ │ │ ├── bam.s │ │ │ │ ├── core.s │ │ │ │ ├── ld │ │ │ │ │ ├── SPC564A70.ld │ │ │ │ │ └── SPC564A80.ld │ │ │ │ ├── port.mk │ │ │ │ ├── ppcparams.h │ │ │ │ ├── vectors.h │ │ │ │ └── vectors.s │ │ │ ├── SPC56ECxx │ │ │ │ ├── ppcparams.h │ │ │ │ ├── vectors.h │ │ │ │ └── vectors.s │ │ │ ├── SPC56ELxx │ │ │ │ ├── bam.s │ │ │ │ ├── core.s │ │ │ │ ├── ld │ │ │ │ │ ├── SPC56EL54_LSM.ld │ │ │ │ │ ├── SPC56EL60_LSM.ld │ │ │ │ │ └── SPC56EL70_LSM.ld │ │ │ │ ├── port.mk │ │ │ │ ├── ppcparams.h │ │ │ │ ├── vectors.h │ │ │ │ └── vectors.s │ │ │ ├── chcore.c │ │ │ ├── chcore.h │ │ │ ├── chtypes.h │ │ │ ├── crt0.s │ │ │ ├── ivor.s │ │ │ ├── port.dox │ │ │ └── rules.mk │ │ └── SIMIA32 │ │ │ ├── chcore.c │ │ │ ├── chcore.h │ │ │ ├── chtypes.h │ │ │ └── port.mk │ ├── IAR │ │ └── ARMCMx │ │ │ ├── LPC11xx │ │ │ ├── cmparams.h │ │ │ └── vectors.s │ │ │ ├── LPC13xx │ │ │ ├── cmparams.h │ │ │ └── vectors.s │ │ │ ├── STM32F1xx │ │ │ ├── cmparams.h │ │ │ └── vectors.s │ │ │ ├── STM32F4xx │ │ │ ├── cmparams.h │ │ │ └── vectors.s │ │ │ ├── STM32L1xx │ │ │ ├── cmparams.h │ │ │ └── vectors.s │ │ │ ├── chcore.c │ │ │ ├── chcore.h │ │ │ ├── chcore_v6m.c │ │ │ ├── chcore_v6m.h │ │ │ ├── chcore_v7m.c │ │ │ ├── chcore_v7m.h │ │ │ ├── chcoreasm_v6m.s │ │ │ ├── chcoreasm_v7m.s │ │ │ ├── chtypes.h │ │ │ ├── cstartup.s │ │ │ └── port.dox │ ├── RVCT │ │ └── ARMCMx │ │ │ ├── LPC11xx │ │ │ ├── cmparams.h │ │ │ └── vectors.s │ │ │ ├── LPC13xx │ │ │ ├── cmparams.h │ │ │ └── vectors.s │ │ │ ├── STM32F1xx │ │ │ ├── cmparams.h │ │ │ └── vectors.s │ │ │ ├── STM32F4xx │ │ │ ├── cmparams.h │ │ │ └── vectors.s │ │ │ ├── STM32L1xx │ │ │ ├── cmparams.h │ │ │ └── vectors.s │ │ │ ├── chcore.c │ │ │ ├── chcore.h │ │ │ ├── chcore_v6m.c │ │ │ ├── chcore_v6m.h │ │ │ ├── chcore_v7m.c │ │ │ ├── chcore_v7m.h │ │ │ ├── chcoreasm_v6m.s │ │ │ ├── chcoreasm_v7m.s │ │ │ ├── chtypes.h │ │ │ ├── cstartup.s │ │ │ └── port.dox │ ├── common │ │ └── ARMCMx │ │ │ ├── CMSIS │ │ │ ├── include │ │ │ │ ├── arm_common_tables.h │ │ │ │ ├── arm_math.h │ │ │ │ ├── core_cm0.h │ │ │ │ ├── core_cm0plus.h │ │ │ │ ├── core_cm3.h │ │ │ │ ├── core_cm4.h │ │ │ │ ├── core_cm4_simd.h │ │ │ │ ├── core_cmFunc.h │ │ │ │ └── core_cmInstr.h │ │ │ └── readme.txt │ │ │ ├── nvic.c │ │ │ ├── nvic.h │ │ │ └── port.dox │ └── ports.dox │ └── various │ ├── chprintf.c │ ├── chprintf.h │ ├── chrtclib.c │ ├── chrtclib.h │ ├── cpp_wrappers │ ├── ch.cpp │ ├── ch.hpp │ └── kernel.mk │ ├── devices_lib │ └── accel │ │ ├── lis302dl.c │ │ ├── lis302dl.dox │ │ └── lis302dl.h │ ├── evtimer.c │ ├── evtimer.h │ ├── fatfs_bindings │ ├── fatfs.mk │ ├── fatfs_diskio.c │ ├── fatfs_syscall.c │ └── readme.txt │ ├── lwip_bindings │ ├── arch │ │ ├── cc.h │ │ ├── perf.h │ │ ├── sys_arch.c │ │ └── sys_arch.h │ ├── lwip.mk │ ├── lwipthread.c │ ├── lwipthread.h │ └── readme.txt │ ├── memstreams.c │ ├── memstreams.h │ ├── shell.c │ ├── shell.h │ ├── syscalls.c │ └── various.dox ├── Hardware ├── CAN_Logger.brd ├── CAN_Logger.pdf ├── CAN_Logger.sch └── Gerber │ ├── CANLogger_Gerber_PCBway.zip │ ├── CAN_Logger.GBL │ ├── CAN_Logger.GBO │ ├── CAN_Logger.GBP │ ├── CAN_Logger.GBS │ ├── CAN_Logger.GML │ ├── CAN_Logger.GTL │ ├── CAN_Logger.GTO │ ├── CAN_Logger.GTP │ ├── CAN_Logger.GTS │ ├── CAN_Logger.TXT │ ├── CAN_Logger.dri │ └── CAN_Logger.gpi ├── LICENSE └── Readme.md /Doc/CAN Logger (manual).docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akpc806a/CAN_Logger/db23d2e5c2f1b6b5b7c5ac875baa646f43d4948c/Doc/CAN Logger (manual).docx -------------------------------------------------------------------------------- /Doc/CAN Logger (manual).pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akpc806a/CAN_Logger/db23d2e5c2f1b6b5b7c5ac875baa646f43d4948c/Doc/CAN Logger (manual).pdf -------------------------------------------------------------------------------- /Doc/Examples/Config.txt: -------------------------------------------------------------------------------- 1 | baud 1000 2 | ack_en 1 3 | id_filter_mask 0 4 | id_filter_value 10 5 | log_std 1 6 | log_ext 1 7 | timestamp 1 -------------------------------------------------------------------------------- /Doc/Test/Config.txt: -------------------------------------------------------------------------------- 1 | baud 500 2 | ack_en 0 3 | id_filter_mask 0 4 | id_filter_value 0 5 | log_std 1 6 | log_ext 1 7 | timestamp 1 8 | -------------------------------------------------------------------------------- /Doc/Test/Postprocessed/WinMerge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akpc806a/CAN_Logger/db23d2e5c2f1b6b5b7c5ac875baa646f43d4948c/Doc/Test/Postprocessed/WinMerge.png -------------------------------------------------------------------------------- /Doc/Test/Readme.txt: -------------------------------------------------------------------------------- 1 | This is use case data for OBD-II diagnostic bus logging. 2 | In parallel to the device the PCAN-USB Adapter (by PACN / Grid Connect) was connected and logging performed using PcanView software. Logging to SD card was started first, so there is portion of data at the beginning which is absent in PCAN log. 3 | Then both logs were post-processed and compared with WinMerge. You can check the screenshot WinMerge.png of comparision. 4 | No difference has been found. 5 | The 'Config.txt' file used to configure logger device included. 6 | 7 | -------------------------------------------------------------------------------- /Doc/Test/postprocess_my.py: -------------------------------------------------------------------------------- 1 | f_in = open('log.csv', 'r') 2 | f_out = open('log_.csv', 'w') 3 | 4 | for line in f_in: 5 | index = line.index(',') 6 | str = line[index+1:len(line)] 7 | index = str.index(',') 8 | id = str[0:index] 9 | if len(id) == 1: 10 | padding = '000' 11 | if len(id) == 2: 12 | padding = '00' 13 | if len(id) == 3: 14 | padding = '0' 15 | 16 | f_out.writelines(padding + str) 17 | 18 | f_in.close() 19 | f_out.close() 20 | -------------------------------------------------------------------------------- /Doc/Test/postprocess_pcan.py: -------------------------------------------------------------------------------- 1 | f_in = open('Log.trc', 'r') 2 | f_out = open('Log_.trc', 'w') 3 | 4 | for line in f_in: 5 | id = line[32:32+4] 6 | str = line[41:len(line)-2] 7 | f_out.writelines(id + ' ' + str+'\n') 8 | 9 | f_in.close() 10 | f_out.close() 11 | -------------------------------------------------------------------------------- /Firmware/ChibiStudio/CAN-Logger/board/board.mk: -------------------------------------------------------------------------------- 1 | # List of all the board related files. 2 | BOARDSRC = board/board.c 3 | 4 | # Required include directories 5 | BOARDINC = board 6 | -------------------------------------------------------------------------------- /Firmware/ChibiStudio/CAN-Logger/file_utils.c: -------------------------------------------------------------------------------- 1 | /*===========================================================================*/ 2 | // functions to convert the FatFs functions to C standard routines 3 | 4 | #include "ch.h" 5 | #include "hal.h" 6 | 7 | #include "ff.h" 8 | 9 | extern FATFS SDC_FS; 10 | //static SDCDriver SDCD1; 11 | 12 | static FIL file_sdc; 13 | static FRESULT fres; // error code for fatfs calls 14 | //extern bool_t fs_ready; 15 | 16 | FIL * fopen_( const char * fileName, const char *mode ) 17 | { 18 | BYTE attr = FA_READ; 19 | FIL* File = &file_sdc; 20 | 21 | if (mode[0] == 'a') 22 | { 23 | fres = f_open(File, fileName, FA_WRITE | FA_OPEN_EXISTING ); 24 | if (fres != FR_OK) 25 | { 26 | // file does not exist, create it 27 | fres = f_open(File, fileName, FA_WRITE | FA_OPEN_ALWAYS ); 28 | } 29 | else 30 | { 31 | // rewind file to end for append write 32 | fres = f_lseek(File, f_size(File)); 33 | } 34 | } 35 | else 36 | { 37 | // determine attributes to open file 38 | if (mode[0] == 'r') 39 | attr = FA_READ; 40 | else 41 | if (mode[0] == 'w') 42 | attr = FA_WRITE | FA_OPEN_ALWAYS; 43 | 44 | fres = f_open(File, fileName, attr); 45 | } 46 | 47 | // if file opened -- return pointer to local variable 48 | if (fres == FR_OK) 49 | return File; 50 | else 51 | return 0; 52 | } 53 | 54 | int fclose_(FIL *fo) 55 | { 56 | //TODO: f_sync ? 57 | 58 | if (f_close(fo) == FR_OK) 59 | return 0; 60 | else 61 | return EOF; 62 | } 63 | 64 | size_t fwrite_(const void *data_to_write, size_t size, size_t n, FIL *stream) 65 | { 66 | UINT data_written; 67 | 68 | fres = f_write(stream, data_to_write, size*n, &data_written); 69 | if (fres != FR_OK) return 0; 70 | 71 | return data_written; 72 | } 73 | 74 | size_t fread_(void *ptr, size_t size, size_t n, FIL *stream) 75 | { 76 | UINT data_written; 77 | 78 | fres = f_read(stream, ptr, size*n, &data_written); 79 | if (fres != FR_OK) return 0; 80 | 81 | return data_written; 82 | } 83 | 84 | int finit_(void) 85 | { 86 | /* 87 | * Activates the SDC driver 1 using default configuration. 88 | */ 89 | 90 | 91 | return TRUE; 92 | } 93 | 94 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /Firmware/ChibiStudio/CAN-Logger/file_utils.h: -------------------------------------------------------------------------------- 1 | FIL * fopen_( const char * fileName, const char *mode ); 2 | int fclose_(FIL *fo); 3 | size_t fwrite_(const void *data_to_write, size_t size, size_t n, FIL *stream); 4 | size_t fread_(void *ptr, size_t size, size_t n, FIL *stream); 5 | int finit_(void); 6 | #define feof_(stream) f_eof(stream) -------------------------------------------------------------------------------- /Firmware/ChibiStudio/CAN-Logger/readme.md: -------------------------------------------------------------------------------- 1 | How to build: 2 | - download and install ChibiStudio_Preview17 3 | - place project to [ChibiStudio]\chibios161\demos\STM32 4 | - launch "Chibi Studio GCC 4.9" 5 | - File>Import, select General>Existing Projects into Workspace, click Next 6 | - Select root directory, Browse... point to project folder [ChibiStudio]\chibios161\demos\STM32 7 | - check CAN-Logger, click Finish 8 | - wait a little bit until Eclipse recognizes the project 9 | - right click: Build project -------------------------------------------------------------------------------- /Firmware/IAR/.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *.o 3 | .o.d 4 | *.d 5 | *.crf 6 | *.log 7 | .DS_Store 8 | build 9 | dist 10 | disassembly 11 | output 12 | Debug 13 | funclist 14 | *.exe 15 | *.vpj 16 | *.vpw 17 | *.vpwhist 18 | *.vtg 19 | private 20 | *.mk 21 | *.bash 22 | *.properties 23 | *.tmp 24 | obj 25 | lst 26 | DebugConfig 27 | settings 28 | -------------------------------------------------------------------------------- /Firmware/IAR/README.md: -------------------------------------------------------------------------------- 1 | This is project for IAR 6.50.3.4757 based on ChibiOS 2.6.7 RTOS for CAN bus logger -------------------------------------------------------------------------------- /Firmware/IAR/boards/ST_STM32F4_DISCOVERY/board.mk: -------------------------------------------------------------------------------- 1 | # List of all the board related files. 2 | BOARDSRC = boards/ST_STM32F4_DISCOVERY/board.c 3 | 4 | # Required include directories 5 | BOARDINC = boards/ST_STM32F4_DISCOVERY 6 | -------------------------------------------------------------------------------- /Firmware/IAR/demos/ARMCM4-STM32F407-DISCOVERY/file_utils.c: -------------------------------------------------------------------------------- 1 | /*===========================================================================*/ 2 | // functions to convert the FatFs functions to C standard routines 3 | 4 | #include "ch.h" 5 | #include "hal.h" 6 | 7 | #include "ff.h" 8 | 9 | extern FATFS SDC_FS; 10 | static SDCDriver SDCD1; 11 | 12 | static FIL file_sdc; 13 | static FRESULT fres; // error code for fatfs calls 14 | extern bool_t fs_ready; 15 | 16 | FIL * fopen_( const char * fileName, const char *mode ) 17 | { 18 | BYTE attr = FA_READ; 19 | FIL* File = &file_sdc; 20 | 21 | if (mode[0] == 'a') 22 | { 23 | fres = f_open(File, fileName, FA_WRITE | FA_OPEN_EXISTING ); 24 | if (fres != FR_OK) 25 | { 26 | // file does not exist, create it 27 | fres = f_open(File, fileName, FA_WRITE | FA_OPEN_ALWAYS ); 28 | } 29 | else 30 | { 31 | // rewind file to end for append write 32 | fres = f_lseek(File, f_size(File)); 33 | } 34 | } 35 | else 36 | { 37 | // determine attributes to open file 38 | if (mode[0] == 'r') 39 | attr = FA_READ; 40 | else 41 | if (mode[0] == 'w') 42 | attr = FA_WRITE | FA_OPEN_ALWAYS; 43 | 44 | fres = f_open(File, fileName, attr); 45 | } 46 | 47 | // if file opened -- return pointer to local variable 48 | if (fres == FR_OK) 49 | return File; 50 | else 51 | return 0; 52 | } 53 | 54 | int fclose_(FIL *fo) 55 | { 56 | //TODO: f_sync ? 57 | 58 | if (f_close(fo) == FR_OK) 59 | return 0; 60 | else 61 | return EOF; 62 | } 63 | 64 | size_t fwrite_(const void *data_to_write, size_t size, size_t n, FIL *stream) 65 | { 66 | UINT data_written; 67 | 68 | fres = f_write(stream, data_to_write, size*n, &data_written); 69 | if (fres != FR_OK) return 0; 70 | 71 | return data_written; 72 | } 73 | 74 | size_t fread_(void *ptr, size_t size, size_t n, FIL *stream) 75 | { 76 | UINT data_written; 77 | 78 | fres = f_read(stream, ptr, size*n, &data_written); 79 | if (fres != FR_OK) return 0; 80 | 81 | return data_written; 82 | } 83 | 84 | int finit_(void) 85 | { 86 | /* 87 | * Activates the SDC driver 1 using default configuration. 88 | */ 89 | 90 | 91 | return TRUE; 92 | } 93 | 94 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /Firmware/IAR/demos/ARMCM4-STM32F407-DISCOVERY/file_utils.h: -------------------------------------------------------------------------------- 1 | FIL * fopen_( const char * fileName, const char *mode ); 2 | int fclose_(FIL *fo); 3 | size_t fwrite_(const void *data_to_write, size_t size, size_t n, FIL *stream); 4 | size_t fread_(void *ptr, size_t size, size_t n, FIL *stream); 5 | int finit_(void); 6 | #define feof_(stream) f_eof(stream) -------------------------------------------------------------------------------- /Firmware/IAR/demos/ARMCM4-STM32F407-DISCOVERY/iar/ch.eww: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | $WS_DIR$\ch.ewp 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Firmware/IAR/demos/ARMCM4-STM32F407-DISCOVERY/iar/ch.icf: -------------------------------------------------------------------------------- 1 | /*###ICF### Section handled by ICF editor, don't touch! ****/ 2 | /*-Editor annotation file-*/ 3 | /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ 4 | /*-Specials-*/ 5 | define symbol __ICFEDIT_intvec_start__ = 0x08000000; 6 | /*-Memory Regions-*/ 7 | define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; 8 | define symbol __ICFEDIT_region_ROM_end__ = 0x0801FFFF; 9 | define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; 10 | define symbol __ICFEDIT_region_RAM_end__ = 0x2001FFFF; 11 | /*-Sizes-*/ 12 | define symbol __ICFEDIT_size_cstack__ = 0x400; 13 | define symbol __ICFEDIT_size_heap__ = 0x400; 14 | /**** End of ICF editor section. ###ICF###*/ 15 | 16 | /* Size of the IRQ Stack (Main Stack).*/ 17 | define symbol __ICFEDIT_size_irqstack__ = 0x400; 18 | 19 | define memory mem with size = 4G; 20 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 21 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 22 | 23 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ {section CSTACK}; 24 | define block IRQSTACK with alignment = 8, size = __ICFEDIT_size_irqstack__ {}; 25 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ {}; 26 | define block SYSHEAP with alignment = 8 {section SYSHEAP}; 27 | define block DATABSS with alignment = 8 {readwrite, zeroinit}; 28 | 29 | initialize by copy { readwrite }; 30 | do not initialize { section .noinit }; 31 | 32 | keep { section .intvec }; 33 | 34 | place at address mem:__ICFEDIT_intvec_start__ {section .intvec}; 35 | place in ROM_region {readonly}; 36 | place at start of RAM_region {block IRQSTACK}; 37 | place in RAM_region {block DATABSS, block HEAP}; 38 | place in RAM_region {block SYSHEAP}; 39 | place at end of RAM_region {block CSTACK}; 40 | -------------------------------------------------------------------------------- /Firmware/IAR/demos/ARMCM4-STM32F407-DISCOVERY/readme.txt: -------------------------------------------------------------------------------- 1 | ***************************************************************************** 2 | ** ChibiOS/RT port for ARM-Cortex-M4 STM32F407. ** 3 | ***************************************************************************** 4 | 5 | ** TARGET ** 6 | 7 | The demo runs on an ST STM32F4-Discovery board. 8 | 9 | ** The Demo ** 10 | 11 | The demo shows how to use the ADC, PWM and SPI drivers using asynchronous 12 | APIs. The ADC samples two channels (temperature sensor and PC1) and modulates 13 | the PWM using the sampled values. The sample data is also transmitted using 14 | the SPI port 2 (NSS=PB12, SCK=PB13, MISO=PB14, MOSI=PB15). 15 | By pressing the button located on the board the test procedure is activated 16 | with output on the serial port SD2 (USART2). 17 | 18 | ** Build Procedure ** 19 | 20 | The demo has been tested by using the free Codesourcery GCC-based toolchain 21 | and YAGARTO. just modify the TRGT line in the makefile in order to use 22 | different GCC toolchains. 23 | 24 | ** Notes ** 25 | 26 | Some files used by the demo are not part of ChibiOS/RT but are copyright of 27 | ST Microelectronics and are licensed under a different license. 28 | Also note that not all the files present in the ST library are distributed 29 | with ChibiOS/RT, you can find the whole library on the ST web site: 30 | 31 | http://www.st.com 32 | -------------------------------------------------------------------------------- /Firmware/IAR/ext/fatfs/src/integer.h: -------------------------------------------------------------------------------- 1 | /*-------------------------------------------*/ 2 | /* Integer type definitions for FatFs module */ 3 | /*-------------------------------------------*/ 4 | 5 | #ifndef _INTEGER 6 | #define _INTEGER 7 | 8 | #ifdef _WIN32 /* FatFs development platform */ 9 | 10 | #include 11 | #include 12 | 13 | #else /* Embedded platform */ 14 | 15 | /* These types must be 16-bit, 32-bit or larger integer */ 16 | typedef int INT; 17 | typedef unsigned int UINT; 18 | 19 | /* These types must be 8-bit integer */ 20 | typedef char CHAR; 21 | typedef unsigned char UCHAR; 22 | typedef unsigned char BYTE; 23 | 24 | /* These types must be 16-bit integer */ 25 | typedef short SHORT; 26 | typedef unsigned short USHORT; 27 | typedef unsigned short WORD; 28 | typedef unsigned short WCHAR; 29 | 30 | /* These types must be 32-bit integer */ 31 | typedef long LONG; 32 | typedef unsigned long ULONG; 33 | typedef unsigned long DWORD; 34 | 35 | #endif 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/dox/hal.dox: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @defgroup HAL HAL Driver 30 | * @brief Hardware Abstraction Layer. 31 | * @details The HAL (Hardware Abstraction Layer) driver performs the system 32 | * initialization and includes the platform support code shared by 33 | * the other drivers. This driver does contain any API function 34 | * except for a general initialization function @p halInit() that 35 | * must be invoked before any HAL service can be used, usually the 36 | * HAL initialization should be performed immediately before the 37 | * kernel initialization.
38 | * Some HAL driver implementations also offer a custom early clock 39 | * setup function that can be invoked before the C runtime 40 | * initialization in order to accelerate the startup time. 41 | * 42 | * @ingroup IO 43 | */ 44 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/dox/i2s.dox: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @defgroup I2S I2S Driver 30 | * @brief Generic I2S Driver. 31 | * @details This module implements a generic I2S driver. 32 | * @pre In order to use the I2S driver the @p HAL_USE_I2S option 33 | * must be enabled in @p halconf.h. 34 | * 35 | * @section i2s_1 Driver State Machine 36 | * 37 | * @ingroup IO 38 | */ 39 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/dox/io_channel.dox: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @defgroup IO_CHANNEL Abstract I/O Channel 30 | * @ingroup IO 31 | */ 32 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/dox/mac.dox: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @defgroup MAC MAC Driver 30 | * @brief Generic MAC driver. 31 | * @details This module implements a generic MAC (Media Access Control) 32 | * driver for Ethernet controllers. 33 | * @pre In order to use the MAC driver the @p HAL_USE_MAC option 34 | * must be enabled in @p halconf.h. 35 | * 36 | * @ingroup IO 37 | */ 38 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/dox/mmc_spi.dox: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @defgroup MMC_SPI MMC over SPI Driver 30 | * @brief Generic MMC driver. 31 | * @details This module implements a portable MMC/SD driver that uses a SPI 32 | * driver as physical layer. Hot plugging and removal are supported 33 | * through kernel events. 34 | * @pre In order to use the MMC_SPI driver the @p HAL_USE_MMC_SPI and 35 | * @p HAL_USE_SPI options must be enabled in @p halconf.h. 36 | * 37 | * @section mmc_spi_1 Driver State Machine 38 | * This driver implements a state machine internally, see the @ref IO_BLOCK 39 | * module documentation for details. 40 | * 41 | * @section mmc_spi_2 Driver Operations 42 | * This driver allows to read or write single or multiple 512 bytes blocks 43 | * on a SD Card. 44 | * 45 | * @ingroup IO 46 | */ 47 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/dox/mmcsd.dox: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @defgroup MMCSD MMC/SD Block Device 30 | * @details This module implements a common ancestor for all device drivers 31 | * accessing MMC or SD cards. This interface inherits the state 32 | * machine and the interface from the @ref IO_BLOCK module. 33 | * 34 | * @ingroup IO 35 | */ 36 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/dox/rtc.dox: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @defgroup RTC RTC Driver 30 | * @brief Real Time Clock Abstraction Layer 31 | * @details This module defines an abstract interface for a Real Time Clock 32 | * Peripheral. 33 | * @pre In order to use the RTC driver the @p HAL_USE_RTC option 34 | * must be enabled in @p halconf.h. 35 | * 36 | * @ingroup IO 37 | */ 38 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/dox/sdc.dox: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @defgroup SDC SDC Driver 30 | * @brief Generic SD Card Driver. 31 | * @details This module implements a generic SDC (Secure Digital Card) driver. 32 | * @pre In order to use the SDC driver the @p HAL_USE_SDC option 33 | * must be enabled in @p halconf.h. 34 | * 35 | * @section sdc_1 Driver State Machine 36 | * This driver implements a state machine internally, see the @ref IO_BLOCK 37 | * module documentation for details. 38 | * 39 | * @section sdc_2 Driver Operations 40 | * This driver allows to read or write single or multiple 512 bytes blocks 41 | * on a SD Card. 42 | * 43 | * @ingroup IO 44 | */ 45 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/dox/tm.dox: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @defgroup TM Time Measurement Driver 30 | * 31 | * @brief Time Measurement unit. 32 | * @details This module implements a time measurement mechanism able to 33 | * monitor a portion of code and store the best/worst/last 34 | * measurement. The measurement is performed using the realtime 35 | * counter mechanism abstracted in the HAL driver. 36 | * 37 | * @ingroup IO 38 | */ 39 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/hal.mk: -------------------------------------------------------------------------------- 1 | # List of all the ChibiOS/RT HAL files, there is no need to remove the files 2 | # from this list, you can disable parts of the HAL by editing halconf.h. 3 | HALSRC = ${CHIBIOS}/os/hal/src/hal.c \ 4 | ${CHIBIOS}/os/hal/src/adc.c \ 5 | ${CHIBIOS}/os/hal/src/can.c \ 6 | ${CHIBIOS}/os/hal/src/ext.c \ 7 | ${CHIBIOS}/os/hal/src/gpt.c \ 8 | ${CHIBIOS}/os/hal/src/i2c.c \ 9 | ${CHIBIOS}/os/hal/src/icu.c \ 10 | ${CHIBIOS}/os/hal/src/mac.c \ 11 | ${CHIBIOS}/os/hal/src/mmc_spi.c \ 12 | ${CHIBIOS}/os/hal/src/mmcsd.c \ 13 | ${CHIBIOS}/os/hal/src/pal.c \ 14 | ${CHIBIOS}/os/hal/src/pwm.c \ 15 | ${CHIBIOS}/os/hal/src/rtc.c \ 16 | ${CHIBIOS}/os/hal/src/sdc.c \ 17 | ${CHIBIOS}/os/hal/src/serial.c \ 18 | ${CHIBIOS}/os/hal/src/serial_usb.c \ 19 | ${CHIBIOS}/os/hal/src/spi.c \ 20 | ${CHIBIOS}/os/hal/src/tm.c \ 21 | ${CHIBIOS}/os/hal/src/uart.c \ 22 | ${CHIBIOS}/os/hal/src/usb.c 23 | 24 | # Required include directories 25 | HALINC = ${CHIBIOS}/os/hal/include 26 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/AT91SAM7/at91sam7.h: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006-2013 Giovanni Di Sirio 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #ifndef _AT91SAM7_H_ 18 | #define _AT91SAM7_H_ 19 | 20 | /* 21 | * Supported platforms. 22 | */ 23 | #define SAM7S64 0 24 | #define SAM7S128 1 25 | #define SAM7S256 2 26 | #define SAM7S512 3 27 | #define SAM7X128 4 28 | #define SAM7X256 5 29 | #define SAM7X512 6 30 | #define SAM7A3 7 31 | 32 | #ifndef SAM7_PLATFORM 33 | #error "SAM7 platform not defined" 34 | #endif 35 | 36 | #if SAM7_PLATFORM == SAM7S64 37 | #include "at91lib/AT91SAM7S64.h" 38 | #elif SAM7_PLATFORM == SAM7S128 39 | #include "at91lib/AT91SAM7S128.h" 40 | #elif SAM7_PLATFORM == SAM7S256 41 | #include "at91lib/AT91SAM7S256.h" 42 | #elif SAM7_PLATFORM == SAM7S512 43 | #include "at91lib/AT91SAM7S512.h" 44 | #elif SAM7_PLATFORM == SAM7X128 45 | #include "at91lib/AT91SAM7X128.h" 46 | #elif SAM7_PLATFORM == SAM7X256 47 | #include "at91lib/AT91SAM7X256.h" 48 | #elif SAM7_PLATFORM == SAM7X512 49 | #include "at91lib/AT91SAM7X512.h" 50 | #elif SAM7_PLATFORM == SAM7A3 51 | #include "at91lib/AT91SAM7A3.h" 52 | #else 53 | #error "SAM7 platform not supported" 54 | #endif 55 | 56 | #endif /* _AT91SAM7_H_ */ 57 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/AT91SAM7/platform.mk: -------------------------------------------------------------------------------- 1 | # List of all the AT91SAM7 platform files. 2 | PLATFORMSRC = ${CHIBIOS}/os/hal/platforms/AT91SAM7/hal_lld.c \ 3 | ${CHIBIOS}/os/hal/platforms/AT91SAM7/pal_lld.c \ 4 | ${CHIBIOS}/os/hal/platforms/AT91SAM7/i2c_lld.c \ 5 | ${CHIBIOS}/os/hal/platforms/AT91SAM7/adc_lld.c \ 6 | ${CHIBIOS}/os/hal/platforms/AT91SAM7/ext_lld.c \ 7 | ${CHIBIOS}/os/hal/platforms/AT91SAM7/serial_lld.c \ 8 | ${CHIBIOS}/os/hal/platforms/AT91SAM7/spi_lld.c \ 9 | ${CHIBIOS}/os/hal/platforms/AT91SAM7/mac_lld.c \ 10 | ${CHIBIOS}/os/hal/platforms/AT91SAM7/pwm_lld.c \ 11 | ${CHIBIOS}/os/hal/platforms/AT91SAM7/gpt_lld.c \ 12 | ${CHIBIOS}/os/hal/platforms/AT91SAM7/at91sam7_mii.c \ 13 | ${CHIBIOS}/os/hal/platforms/AT91SAM7/at91lib/aic.c 14 | 15 | # Required include directories 16 | PLATFORMINC = ${CHIBIOS}/os/hal/platforms/AT91SAM7 17 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/AVR/hal_lld.c: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006-2013 Giovanni Di Sirio 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | /** 18 | * @file AVR/hal_lld.c 19 | * @brief AVR HAL subsystem low level driver code. 20 | * 21 | * @addtogroup HAL 22 | * @{ 23 | */ 24 | 25 | #include "ch.h" 26 | #include "hal.h" 27 | 28 | /*===========================================================================*/ 29 | /* Driver exported variables. */ 30 | /*===========================================================================*/ 31 | 32 | /*===========================================================================*/ 33 | /* Driver local variables and types. */ 34 | /*===========================================================================*/ 35 | 36 | /*===========================================================================*/ 37 | /* Driver local functions. */ 38 | /*===========================================================================*/ 39 | 40 | /*===========================================================================*/ 41 | /* Driver interrupt handlers. */ 42 | /*===========================================================================*/ 43 | 44 | /*===========================================================================*/ 45 | /* Driver exported functions. */ 46 | /*===========================================================================*/ 47 | 48 | /** 49 | * @brief Low level HAL driver initialization. 50 | * 51 | * @notapi 52 | */ 53 | void hal_lld_init(void) { 54 | 55 | } 56 | 57 | /** @} */ 58 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/AVR/platform.mk: -------------------------------------------------------------------------------- 1 | # List of all the AVR platform files. 2 | PLATFORMSRC = ${CHIBIOS}/os/hal/platforms/AVR/hal_lld.c \ 3 | ${CHIBIOS}/os/hal/platforms/AVR/pal_lld.c \ 4 | ${CHIBIOS}/os/hal/platforms/AVR/serial_lld.c \ 5 | ${CHIBIOS}/os/hal/platforms/AVR/i2c_lld.c 6 | 7 | # Required include directories 8 | PLATFORMINC = ${CHIBIOS}/os/hal/platforms/AVR 9 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/LPC11Uxx/platform.mk: -------------------------------------------------------------------------------- 1 | # List of all the LPC11Uxx platform files. 2 | PLATFORMSRC = ${CHIBIOS}/os/hal/platforms/LPC11Uxx/hal_lld.c \ 3 | ${CHIBIOS}/os/hal/platforms/LPC11Uxx/gpt_lld.c \ 4 | ${CHIBIOS}/os/hal/platforms/LPC11Uxx/pal_lld.c \ 5 | ${CHIBIOS}/os/hal/platforms/LPC11Uxx/spi_lld.c \ 6 | ${CHIBIOS}/os/hal/platforms/LPC11Uxx/serial_lld.c \ 7 | ${CHIBIOS}/os/hal/platforms/LPC11Uxx/ext_lld.c \ 8 | ${CHIBIOS}/os/hal/platforms/LPC11Uxx/ext_lld_isr.c 9 | 10 | # Required include directories 11 | PLATFORMINC = ${CHIBIOS}/os/hal/platforms/LPC11Uxx 12 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/LPC11Uxx/system_LPC11Uxx.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************//** 2 | * @file system_LPC11Uxx.h 3 | * @brief CMSIS Cortex-M0 Device Peripheral Access Layer Header File 4 | * for the NXP LPC11Uxx Device Series 5 | * @version V1.10 6 | * @date 24. November 2010 7 | * 8 | * @note 9 | * Copyright (C) 2009-2010 ARM Limited. All rights reserved. 10 | * 11 | * @par 12 | * ARM Limited (ARM) is supplying this software for use with Cortex-M 13 | * processor based microcontrollers. This file can be freely distributed 14 | * within development tools that are supporting such ARM based processors. 15 | * 16 | * @par 17 | * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED 18 | * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF 19 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. 20 | * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR 21 | * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. 22 | * 23 | ******************************************************************************/ 24 | 25 | 26 | #ifndef __SYSTEM_LPC11Uxx_H 27 | #define __SYSTEM_LPC11Uxx_H 28 | 29 | #ifdef __cplusplus 30 | extern "C" { 31 | #endif 32 | 33 | #include 34 | 35 | extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */ 36 | 37 | 38 | /** 39 | * Initialize the system 40 | * 41 | * @param none 42 | * @return none 43 | * 44 | * @brief Setup the microcontroller system. 45 | * Initialize the System and update the SystemCoreClock variable. 46 | */ 47 | extern void SystemInit (void); 48 | 49 | /** 50 | * Update SystemCoreClock variable 51 | * 52 | * @param none 53 | * @return none 54 | * 55 | * @brief Updates the SystemCoreClock with current core Clock 56 | * retrieved from cpu registers. 57 | */ 58 | extern void SystemCoreClockUpdate (void); 59 | 60 | #ifdef __cplusplus 61 | } 62 | #endif 63 | 64 | #endif /* __SYSTEM_LPC11Uxx_H */ 65 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/LPC11xx/platform.mk: -------------------------------------------------------------------------------- 1 | # List of all the LPC11xx platform files. 2 | PLATFORMSRC = ${CHIBIOS}/os/hal/platforms/LPC11xx/hal_lld.c \ 3 | ${CHIBIOS}/os/hal/platforms/LPC11xx/gpt_lld.c \ 4 | ${CHIBIOS}/os/hal/platforms/LPC11xx/pal_lld.c \ 5 | ${CHIBIOS}/os/hal/platforms/LPC11xx/serial_lld.c \ 6 | ${CHIBIOS}/os/hal/platforms/LPC11xx/spi_lld.c 7 | 8 | # Required include directories 9 | PLATFORMINC = ${CHIBIOS}/os/hal/platforms/LPC11xx 10 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/LPC11xx/system_LPC11xx.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * @file: system_LPC11xx.h 3 | * @purpose: CMSIS Cortex-M0 Device Peripheral Access Layer Header File 4 | * for the NXP LPC11xx Device Series 5 | * @version: V1.0 6 | * @date: 25. Nov. 2008 7 | *---------------------------------------------------------------------------- 8 | * 9 | * Copyright (C) 2008 ARM Limited. All rights reserved. 10 | * 11 | * ARM Limited (ARM) is supplying this software for use with Cortex-M0 12 | * processor based microcontrollers. This file can be freely distributed 13 | * within development tools that are supporting such ARM based processors. 14 | * 15 | * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED 16 | * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF 17 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. 18 | * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR 19 | * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. 20 | * 21 | ******************************************************************************/ 22 | 23 | 24 | #ifndef __SYSTEM_LPC11xx_H 25 | #define __SYSTEM_LPC11xx_H 26 | 27 | /* Vector Table Base ---------------------------------------------------------*/ 28 | #define NVIC_VectTab_RAM (0x10000000) 29 | #define NVIC_VectTab_FLASH (0x00000000) 30 | 31 | extern uint32_t ClockSource; 32 | extern uint32_t SystemFrequency; /*!< System Clock Frequency (Core Clock) */ 33 | extern uint32_t SystemAHBFrequency; 34 | 35 | /** 36 | * Initialize the system 37 | * 38 | * @param none 39 | * @return none 40 | * 41 | * @brief Setup the microcontroller system. 42 | * Initialize the System and update the SystemFrequency variable. 43 | */ 44 | extern void SystemInit (void); 45 | #endif 46 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/LPC122x/platform.mk: -------------------------------------------------------------------------------- 1 | # List of all the LPC122x platform files. 2 | PLATFORMSRC = ${CHIBIOS}/os/hal/platforms/LPC122x/hal_lld.c \ 3 | ${CHIBIOS}/os/hal/platforms/LPC122x/gpt_lld.c \ 4 | ${CHIBIOS}/os/hal/platforms/LPC122x/pal_lld.c \ 5 | ${CHIBIOS}/os/hal/platforms/LPC122x/serial_lld.c \ 6 | ${CHIBIOS}/os/hal/platforms/LPC122x/spi_lld.c 7 | 8 | # Required include directories 9 | PLATFORMINC = ${CHIBIOS}/os/hal/platforms/LPC122x 10 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/LPC122x/system_LPC122x.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************//** 2 | * $Id: system_LPC122x.h 6933 2011-03-23 19:02:11Z nxp28548 $ 3 | * 4 | * @file system_LPC12xx.h 5 | * @brief CMSIS Cortex-M0 Device Peripheral Access Layer Header File 6 | * for the NXP LPC12xx Device Series 7 | * @version 1.1 8 | * @date $Date:: 2011-03-23#$ 9 | * @author NXP MCU Team 10 | * 11 | * @note 12 | * Copyright (C) 2010 NXP Semiconductors(NXP). All rights reserved. 13 | * 14 | * @par 15 | * Software that is described herein is for illustrative purposes only 16 | * which provides customers with programming information regarding the 17 | * products. This software is supplied "AS IS" without any warranties. 18 | * NXP Semiconductors assumes no responsibility or liability for the 19 | * use of the software, conveys no license or title under any patent, 20 | * copyright, or mask work right to the product. NXP Semiconductors 21 | * reserves the right to make changes in the software without 22 | * notification. NXP Semiconductors also make no representation or 23 | * warranty that such application will be suitable for the specified 24 | * use without further testing or modification. 25 | ******************************************************************************/ 26 | 27 | #ifndef __SYSTEM_LPC12xx_H 28 | #define __SYSTEM_LPC12xx_H 29 | 30 | #ifdef __cplusplus 31 | extern "C" { 32 | #endif 33 | 34 | #include 35 | 36 | extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */ 37 | extern uint32_t MainClock; /*!< Main Clock Frequency (Main Clock) */ 38 | 39 | /** 40 | * Initialize the system 41 | * 42 | * @param none 43 | * @return none 44 | * 45 | * @brief Setup the microcontroller system. 46 | * Initialize the System and update the SystemCoreClock variable. 47 | */ 48 | extern void SystemInit (void); 49 | 50 | /** 51 | * Update SystemCoreClock variable 52 | * 53 | * @param none 54 | * @return none 55 | * 56 | * @brief Updates the SystemCoreClock with current core Clock 57 | * retrieved from cpu registers. 58 | */ 59 | extern void SystemCoreClockUpdate (void); 60 | 61 | #ifdef __cplusplus 62 | } 63 | #endif 64 | 65 | #endif /* __SYSTEM_LPC12xx_H */ 66 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/LPC13xx/platform.mk: -------------------------------------------------------------------------------- 1 | # List of all the LPC13xx platform files. 2 | PLATFORMSRC = ${CHIBIOS}/os/hal/platforms/LPC13xx/hal_lld.c \ 3 | ${CHIBIOS}/os/hal/platforms/LPC13xx/gpt_lld.c \ 4 | ${CHIBIOS}/os/hal/platforms/LPC13xx/pal_lld.c \ 5 | ${CHIBIOS}/os/hal/platforms/LPC13xx/serial_lld.c \ 6 | ${CHIBIOS}/os/hal/platforms/LPC13xx/spi_lld.c 7 | 8 | # Required include directories 9 | PLATFORMINC = ${CHIBIOS}/os/hal/platforms/LPC13xx 10 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/LPC13xx/system_LPC13xx.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************//** 2 | * @file system_LPC13xx.h 3 | * @brief CMSIS Cortex-M3 Device Peripheral Access Layer Header File 4 | * for the NXP LPC13xx Device Series 5 | * @version V1.10 6 | * @date 24. November 2010 7 | * 8 | * @note 9 | * Copyright (C) 2009-2010 ARM Limited. All rights reserved. 10 | * 11 | * @par 12 | * ARM Limited (ARM) is supplying this software for use with Cortex-M 13 | * processor based microcontrollers. This file can be freely distributed 14 | * within development tools that are supporting such ARM based processors. 15 | * 16 | * @par 17 | * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED 18 | * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF 19 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. 20 | * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR 21 | * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. 22 | * 23 | ******************************************************************************/ 24 | 25 | 26 | #ifndef __SYSTEM_LPC13xx_H 27 | #define __SYSTEM_LPC13xx_H 28 | 29 | #ifdef __cplusplus 30 | extern "C" { 31 | #endif 32 | 33 | #include 34 | 35 | extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */ 36 | 37 | 38 | /** 39 | * Initialize the system 40 | * 41 | * @param none 42 | * @return none 43 | * 44 | * @brief Setup the microcontroller system. 45 | * Initialize the System and update the SystemCoreClock variable. 46 | */ 47 | extern void SystemInit (void); 48 | 49 | /** 50 | * Update SystemCoreClock variable 51 | * 52 | * @param none 53 | * @return none 54 | * 55 | * @brief Updates the SystemCoreClock with current core Clock 56 | * retrieved from cpu registers. 57 | */ 58 | extern void SystemCoreClockUpdate (void); 59 | 60 | #ifdef __cplusplus 61 | } 62 | #endif 63 | 64 | #endif /* __SYSTEM_LPC13xx_H */ 65 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/LPC214x/platform.mk: -------------------------------------------------------------------------------- 1 | # List of all the LPC214x platform files. 2 | PLATFORMSRC = ${CHIBIOS}/os/hal/platforms/LPC214x/hal_lld.c \ 3 | ${CHIBIOS}/os/hal/platforms/LPC214x/pal_lld.c \ 4 | ${CHIBIOS}/os/hal/platforms/LPC214x/serial_lld.c \ 5 | ${CHIBIOS}/os/hal/platforms/LPC214x/spi_lld.c \ 6 | ${CHIBIOS}/os/hal/platforms/LPC214x/vic.c 7 | 8 | # Required include directories 9 | PLATFORMINC = ${CHIBIOS}/os/hal/platforms/LPC214x 10 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/LPC214x/vic.c: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006-2013 Giovanni Di Sirio 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | /** 18 | * @file LPC214x/vic.c 19 | * @brief LPC214x VIC peripheral support code. 20 | * 21 | * @addtogroup LPC214x_VIC 22 | * @{ 23 | */ 24 | 25 | #include "ch.h" 26 | #include "hal.h" 27 | 28 | /** 29 | * @brief VIC Initialization. 30 | * @note Better reset everything in the VIC, it is a HUGE source of trouble. 31 | * 32 | * @notapi 33 | */ 34 | void vic_init(void) { 35 | int i; 36 | 37 | VIC *vic = VICBase; 38 | vic->VIC_IntSelect = 0; /* All sources assigned to IRQ. */ 39 | vic->VIC_SoftIntClear = ALLINTMASK; /* No interrupts enforced */ 40 | vic->VIC_IntEnClear = ALLINTMASK; /* All sources disabled. */ 41 | for (i = 0; i < 16; i++) { 42 | vic->VIC_VectCntls[i] = 0; 43 | vic->VIC_VectAddrs[i] = 0; 44 | vic->VIC_VectAddr = 0; 45 | } 46 | } 47 | 48 | /** 49 | * @brief Initializes a VIC vector. 50 | * @details Set a vector for an interrupt source and enables it. 51 | * 52 | * @param[in] handler the pointer to the IRQ service routine 53 | * @param[in] vector the vector number 54 | * @param[in] source the IRQ source to be associated to the vector 55 | * 56 | * @api 57 | */ 58 | void SetVICVector(void *handler, int vector, int source) { 59 | 60 | VIC *vicp = VICBase; 61 | vicp->VIC_VectAddrs[vector] = (IOREG32)handler; 62 | vicp->VIC_VectCntls[vector] = (IOREG32)(source | 0x20); 63 | } 64 | 65 | /** @} */ 66 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/LPC214x/vic.h: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006-2013 Giovanni Di Sirio 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | /** 18 | * @file LPC214x/vic.h 19 | * @brief LPC214x VIC peripheral support header. 20 | * 21 | * @addtogroup LPC214x_VIC 22 | * @{ 23 | */ 24 | 25 | #ifndef _VIC_H_ 26 | #define _VIC_H_ 27 | 28 | #ifdef __cplusplus 29 | extern "C" { 30 | #endif 31 | void vic_init(void); 32 | void SetVICVector(void *handler, int vector, int source); 33 | #ifdef __cplusplus 34 | } 35 | #endif 36 | 37 | #endif /* _VIC_H_ */ 38 | 39 | /** @} */ 40 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/LPC8xx/platform.mk: -------------------------------------------------------------------------------- 1 | # List of all the LPC8xx platform files. 2 | PLATFORMSRC = ${CHIBIOS}/os/hal/platforms/LPC8xx/hal_lld.c \ 3 | ${CHIBIOS}/os/hal/platforms/LPC8xx/gpt_lld.c \ 4 | ${CHIBIOS}/os/hal/platforms/LPC8xx/pal_lld.c \ 5 | ${CHIBIOS}/os/hal/platforms/LPC8xx/serial_lld.c \ 6 | ${CHIBIOS}/os/hal/platforms/LPC8xx/spi_lld.c \ 7 | ${CHIBIOS}/os/hal/platforms/LPC8xx/ext_lld.c \ 8 | ${CHIBIOS}/os/hal/platforms/LPC8xx/ext_lld_isr.c 9 | 10 | # Required include directories 11 | PLATFORMINC = ${CHIBIOS}/os/hal/platforms/LPC8xx 12 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/LPC8xx/system_LPC8xx.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * @file: system_LPC8xx.h 3 | * @purpose: CMSIS Cortex-M0+ Device Peripheral Access Layer Header File 4 | * for the NXP LPC8xx Device Series 5 | * @version: V1.0 6 | * @date: 16. Aug. 2012 7 | *---------------------------------------------------------------------------- 8 | * 9 | * Copyright (C) 2012 ARM Limited. All rights reserved. 10 | * 11 | * ARM Limited (ARM) is supplying this software for use with Cortex-M0+ 12 | * processor based microcontrollers. This file can be freely distributed 13 | * within development tools that are supporting such ARM based processors. 14 | * 15 | * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED 16 | * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF 17 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. 18 | * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR 19 | * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. 20 | * 21 | ******************************************************************************/ 22 | 23 | 24 | #ifndef __SYSTEM_LPC8xx_H 25 | #define __SYSTEM_LPC8xx_H 26 | 27 | #ifdef __cplusplus 28 | extern "C" { 29 | #endif 30 | 31 | #include 32 | 33 | extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */ 34 | 35 | 36 | /** 37 | * Initialize the system 38 | * 39 | * @param none 40 | * @return none 41 | * 42 | * @brief Setup the microcontroller system. 43 | * Initialize the System and update the SystemCoreClock variable. 44 | */ 45 | extern void SystemInit (void); 46 | 47 | /** 48 | * Update SystemCoreClock variable 49 | * 50 | * @param none 51 | * @return none 52 | * 53 | * @brief Updates the SystemCoreClock with current core Clock 54 | * retrieved from cpu registers. 55 | */ 56 | extern void SystemCoreClockUpdate (void); 57 | 58 | #ifdef __cplusplus 59 | } 60 | #endif 61 | 62 | #endif /* __SYSTEM_LPC8xx_H */ 63 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/MSP430/platform.mk: -------------------------------------------------------------------------------- 1 | # List of all the MSP430 platform files. 2 | PLATFORMSRC = ${CHIBIOS}/os/hal/platforms/MSP430/hal_lld.c \ 3 | ${CHIBIOS}/os/hal/platforms/MSP430/pal_lld.c \ 4 | ${CHIBIOS}/os/hal/platforms/MSP430/serial_lld.c 5 | 6 | # Required include directories 7 | PLATFORMINC = ${CHIBIOS}/os/hal/platforms/MSP430 8 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/Posix/platform.mk: -------------------------------------------------------------------------------- 1 | # List of all the Posix platform files. 2 | PLATFORMSRC = ${CHIBIOS}/os/hal/platforms/Posix/hal_lld.c \ 3 | ${CHIBIOS}/os/hal/platforms/Posix/pal_lld.c \ 4 | ${CHIBIOS}/os/hal/platforms/Posix/serial_lld.c 5 | 6 | # Required include directories 7 | PLATFORMINC = ${CHIBIOS}/os/hal/platforms/Posix 8 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/SPC560BCxx/platform.mk: -------------------------------------------------------------------------------- 1 | # List of all the SPC560B/Cxx platform files. 2 | PLATFORMSRC = ${CHIBIOS}/os/hal/platforms/SPC560BCxx/hal_lld.c \ 3 | ${CHIBIOS}/os/hal/platforms/SPC5xx/EDMA_v1/spc5_edma.c \ 4 | ${CHIBIOS}/os/hal/platforms/SPC5xx/SIUL_v1/pal_lld.c \ 5 | ${CHIBIOS}/os/hal/platforms/SPC5xx/LINFlex_v1/serial_lld.c 6 | 7 | # Required include directories 8 | PLATFORMINC = ${CHIBIOS}/os/hal/platforms/SPC560BCxx \ 9 | ${CHIBIOS}/os/hal/platforms/SPC5xx/EDMA_v1 \ 10 | ${CHIBIOS}/os/hal/platforms/SPC5xx/SIUL_v1 \ 11 | ${CHIBIOS}/os/hal/platforms/SPC5xx/LINFlex_v1 12 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/SPC560BCxx/typedefs.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPC5 HAL - Copyright (C) 2013 STMicroelectronics 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | /** 18 | * @file SPC560BCxx/typedefs.h 19 | * @brief Dummy typedefs file. 20 | */ 21 | 22 | #ifndef _TYPEDEFS_H_ 23 | #define _TYPEDEFS_H_ 24 | 25 | #include "chtypes.h" 26 | 27 | #endif /* _TYPEDEFS_H_ */ 28 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/SPC560Pxx/platform.mk: -------------------------------------------------------------------------------- 1 | # List of all the SPC560Pxx platform files. 2 | PLATFORMSRC = ${CHIBIOS}/os/hal/platforms/SPC560Pxx/hal_lld.c \ 3 | ${CHIBIOS}/os/hal/platforms/SPC5xx/EDMA_v1/spc5_edma.c \ 4 | ${CHIBIOS}/os/hal/platforms/SPC5xx/eTimer_v1/icu_lld.c \ 5 | ${CHIBIOS}/os/hal/platforms/SPC5xx/FlexPWM_v1/pwm_lld.c \ 6 | ${CHIBIOS}/os/hal/platforms/SPC5xx/SIUL_v1/pal_lld.c \ 7 | ${CHIBIOS}/os/hal/platforms/SPC5xx/LINFlex_v1/serial_lld.c 8 | 9 | # Required include directories 10 | PLATFORMINC = ${CHIBIOS}/os/hal/platforms/SPC560Pxx \ 11 | ${CHIBIOS}/os/hal/platforms/SPC5xx/EDMA_v1 \ 12 | ${CHIBIOS}/os/hal/platforms/SPC5xx/eTimer_v1 \ 13 | ${CHIBIOS}/os/hal/platforms/SPC5xx/FlexPWM_v1 \ 14 | ${CHIBIOS}/os/hal/platforms/SPC5xx/SIUL_v1 \ 15 | ${CHIBIOS}/os/hal/platforms/SPC5xx/LINFlex_v1 16 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/SPC560Pxx/typedefs.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPC5 HAL - Copyright (C) 2013 STMicroelectronics 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | /** 18 | * @file SPC560Pxx/typedefs.h 19 | * @brief Dummy typedefs file. 20 | */ 21 | 22 | #ifndef _TYPEDEFS_H_ 23 | #define _TYPEDEFS_H_ 24 | 25 | #include "chtypes.h" 26 | 27 | #endif /* _TYPEDEFS_H_ */ 28 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/SPC560Pxx/xpc560p.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akpc806a/CAN_Logger/db23d2e5c2f1b6b5b7c5ac875baa646f43d4948c/Firmware/IAR/os/hal/platforms/SPC560Pxx/xpc560p.h -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/SPC563Mxx/platform.dox: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under ST Liberty SW License Agreement V2, (the "License"); 3 | * You may not use this file except in compliance with the License. 4 | * You may obtain a copy of the License at: 5 | * 6 | * http://www.st.com/software_license_agreement_liberty_v2 7 | * 8 | * Unless required by applicable law or agreed to in writing, software 9 | * distributed under the License is distributed on an "AS IS" BASIS, 10 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | * See the License for the specific language governing permissions and 12 | * limitations under the License. 13 | */ 14 | 15 | /** 16 | * @defgroup SPC563 SPC563Mx Drivers 17 | * @details This section describes all the supported drivers on the 18 | * SPC563Mx/MPC563xM platform and the implementation details 19 | * of the single drivers. 20 | * 21 | * @ingroup platforms 22 | */ 23 | 24 | /** 25 | * @defgroup SPC563_HAL SPC563Mx Initialization Support 26 | * @details The SPC563Mx/MPC563xM HAL support is responsible for system 27 | * initialization. 28 | * 29 | * @section spc563_hal_1 Supported HW resources 30 | * - FMPLL. 31 | * - INTC. 32 | * - XBAR. 33 | * - CFLASH0. 34 | * . 35 | * @section spc563_hal_2 SPC563Mx HAL driver implementation features 36 | * - FMPLL startup and stabilization. 37 | * - Clock tree initialization. 38 | * - Clock source selection. 39 | * - Flash wait states initialization based on the selected clock options. 40 | * - SYSTICK initialization based on current clock and kernel required rate. 41 | * - DMA support initialization. 42 | * . 43 | * @ingroup SPC563 44 | */ 45 | 46 | /** 47 | * @defgroup SPC563_SERIAL SPC563Mx Serial Support 48 | * @details The SPC563Mx/MPC563xM Serial driver uses the ESCI peripherals 49 | * in a buffered, interrupt driven, implementation. 50 | * 51 | * @section spc563_serial_1 Supported HW resources 52 | * The serial driver can support any of the following hardware resources: 53 | * - ESCIA. 54 | * - ESCIB. 55 | * . 56 | * @section spc563_serial_2 SPC563Mx Serial driver implementation features 57 | * - Clock stop for reduced power usage when the driver is in stop state. 58 | * - Each ESCI can be independently enabled and programmed. Unused 59 | * peripherals are left in low power mode. 60 | * - Fully interrupt driven. 61 | * - Programmable priority levels for each ESCI. 62 | * . 63 | * @ingroup SPC563 64 | */ 65 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/SPC563Mxx/platform.mk: -------------------------------------------------------------------------------- 1 | # List of all the SPC563Mxx platform files. 2 | PLATFORMSRC = ${CHIBIOS}/os/hal/platforms/SPC563Mxx/hal_lld.c \ 3 | ${CHIBIOS}/os/hal/platforms/SPC5xx/DSPI_v1/spi_lld.c \ 4 | ${CHIBIOS}/os/hal/platforms/SPC5xx/EDMA_v1/spc5_edma.c \ 5 | ${CHIBIOS}/os/hal/platforms/SPC5xx/EQADC_v1/adc_lld.c \ 6 | ${CHIBIOS}/os/hal/platforms/SPC5xx/SIU_v1/pal_lld.c \ 7 | ${CHIBIOS}/os/hal/platforms/SPC5xx/ESCI_v1/serial_lld.c 8 | 9 | # Required include directories 10 | PLATFORMINC = ${CHIBIOS}/os/hal/platforms/SPC563Mxx \ 11 | ${CHIBIOS}/os/hal/platforms/SPC5xx/DSPI_v1 \ 12 | ${CHIBIOS}/os/hal/platforms/SPC5xx/EDMA_v1 \ 13 | ${CHIBIOS}/os/hal/platforms/SPC5xx/EQADC_v1 \ 14 | ${CHIBIOS}/os/hal/platforms/SPC5xx/ESCI_v1 \ 15 | ${CHIBIOS}/os/hal/platforms/SPC5xx/SIU_v1 16 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/SPC563Mxx/typedefs.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPC5 HAL - Copyright (C) 2013 STMicroelectronics 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | /** 18 | * @file SPC563Mxx/typedefs.h 19 | * @brief Dummy typedefs file. 20 | */ 21 | 22 | #ifndef _TYPEDEFS_H_ 23 | #define _TYPEDEFS_H_ 24 | 25 | #include "chtypes.h" 26 | 27 | #endif /* _TYPEDEFS_H_ */ 28 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/SPC563Mxx/xpc563m.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akpc806a/CAN_Logger/db23d2e5c2f1b6b5b7c5ac875baa646f43d4948c/Firmware/IAR/os/hal/platforms/SPC563Mxx/xpc563m.h -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/SPC564Axx/platform.mk: -------------------------------------------------------------------------------- 1 | # List of all the SPC564Axx platform files. 2 | PLATFORMSRC = ${CHIBIOS}/os/hal/platforms/SPC564Axx/hal_lld.c \ 3 | ${CHIBIOS}/os/hal/platforms/SPC5xx/EDMA_v1/spc5_edma.c \ 4 | ${CHIBIOS}/os/hal/platforms/SPC5xx/EQADC_v1/adc_lld.c \ 5 | ${CHIBIOS}/os/hal/platforms/SPC5xx/SIU_v1/pal_lld.c \ 6 | ${CHIBIOS}/os/hal/platforms/SPC5xx/ESCI_v1/serial_lld.c 7 | 8 | # Required include directories 9 | PLATFORMINC = ${CHIBIOS}/os/hal/platforms/SPC564Axx \ 10 | ${CHIBIOS}/os/hal/platforms/SPC5xx/EDMA_v1 \ 11 | ${CHIBIOS}/os/hal/platforms/SPC5xx/EQADC_v1 \ 12 | ${CHIBIOS}/os/hal/platforms/SPC5xx/ESCI_v1 \ 13 | ${CHIBIOS}/os/hal/platforms/SPC5xx/SIU_v1 14 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/SPC564Axx/spc564a_registry.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPC5 HAL - Copyright (C) 2013 STMicroelectronics 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | /** 18 | * @file SPC564Axx/spc564a_registry.h 19 | * @brief SPC564Axx capabilities registry. 20 | * 21 | * @addtogroup HAL 22 | * @{ 23 | */ 24 | 25 | #ifndef _SPC563M_REGISTRY_H_ 26 | #define _SPC563M_REGISTRY_H_ 27 | 28 | /*===========================================================================*/ 29 | /* Platform capabilities. */ 30 | /*===========================================================================*/ 31 | 32 | /** 33 | * @name SPC564Axx capabilities 34 | * @{ 35 | */ 36 | /* eDMA attributes.*/ 37 | #define SPC5_HAS_EDMA TRUE 38 | #define SPC5_EDMA_NCHANNELS 64 39 | #define SPC5_EDMA_HAS_MUX FALSE 40 | 41 | /* eQADC attributes.*/ 42 | #define SPC5_HAS_EQADC TRUE 43 | 44 | /* eSCI attributes.*/ 45 | #define SPC5_HAS_ESCIA TRUE 46 | #define SPC5_ESCIA_HANDLER vector146 47 | #define SPC5_ESCIA_NUMBER 146 48 | 49 | #define SPC5_HAS_ESCIB TRUE 50 | #define SPC5_ESCIB_HANDLER vector149 51 | #define SPC5_ESCIB_NUMBER 149 52 | 53 | #define SPC5_HAS_ESCIC TRUE 54 | #define SPC5_ESCIC_HANDLER vector473 55 | #define SPC5_ESCIC_NUMBER 473 56 | 57 | /* SIU attributes.*/ 58 | #define SPC5_HAS_SIU TRUE 59 | #define SPC5_SIU_SUPPORTS_PORTS FALSE 60 | /** @} */ 61 | 62 | #endif /* _SPC563M_REGISTRY_H_ */ 63 | 64 | /** @} */ 65 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/SPC564Axx/typedefs.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPC5 HAL - Copyright (C) 2013 STMicroelectronics 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | /** 18 | * @file SPC564Axx/typedefs.h 19 | * @brief Dummy typedefs file. 20 | */ 21 | 22 | #ifndef _TYPEDEFS_H_ 23 | #define _TYPEDEFS_H_ 24 | 25 | #include "chtypes.h" 26 | 27 | #endif /* _TYPEDEFS_H_ */ 28 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/SPC564Axx/xpc564a.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akpc806a/CAN_Logger/db23d2e5c2f1b6b5b7c5ac875baa646f43d4948c/Firmware/IAR/os/hal/platforms/SPC564Axx/xpc564a.h -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/SPC56ELxx/platform.mk: -------------------------------------------------------------------------------- 1 | # List of all the SPC56ELxx platform files. 2 | PLATFORMSRC = ${CHIBIOS}/os/hal/platforms/SPC56ELxx/hal_lld.c \ 3 | ${CHIBIOS}/os/hal/platforms/SPC5xx/EDMA_v1/spc5_edma.c \ 4 | ${CHIBIOS}/os/hal/platforms/SPC5xx/eTimer_v1/icu_lld.c \ 5 | ${CHIBIOS}/os/hal/platforms/SPC5xx/FlexPWM_v1/pwm_lld.c \ 6 | ${CHIBIOS}/os/hal/platforms/SPC5xx/SIUL_v1/pal_lld.c \ 7 | ${CHIBIOS}/os/hal/platforms/SPC5xx/LINFlex_v1/serial_lld.c 8 | 9 | # Required include directories 10 | PLATFORMINC = ${CHIBIOS}/os/hal/platforms/SPC56ELxx \ 11 | ${CHIBIOS}/os/hal/platforms/SPC5xx/EDMA_v1 \ 12 | ${CHIBIOS}/os/hal/platforms/SPC5xx/eTimer_v1 \ 13 | ${CHIBIOS}/os/hal/platforms/SPC5xx/FlexPWM_v1 \ 14 | ${CHIBIOS}/os/hal/platforms/SPC5xx/SIUL_v1 \ 15 | ${CHIBIOS}/os/hal/platforms/SPC5xx/LINFlex_v1 16 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/SPC56ELxx/typedefs.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPC5 HAL - Copyright (C) 2013 STMicroelectronics 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | /** 18 | * @file SPC56ELxx/typedefs.h 19 | * @brief Dummy typedefs file. 20 | */ 21 | 22 | #ifndef _TYPEDEFS_H_ 23 | #define _TYPEDEFS_H_ 24 | 25 | #include "chtypes.h" 26 | 27 | #endif /* _TYPEDEFS_H_ */ 28 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/STM32F0xx/platform.mk: -------------------------------------------------------------------------------- 1 | # List of all the STM32F0xx platform files. 2 | PLATFORMSRC = ${CHIBIOS}/os/hal/platforms/STM32F0xx/stm32_dma.c \ 3 | ${CHIBIOS}/os/hal/platforms/STM32F0xx/hal_lld.c \ 4 | ${CHIBIOS}/os/hal/platforms/STM32F0xx/adc_lld.c \ 5 | ${CHIBIOS}/os/hal/platforms/STM32F0xx/ext_lld_isr.c \ 6 | ${CHIBIOS}/os/hal/platforms/STM32/ext_lld.c \ 7 | ${CHIBIOS}/os/hal/platforms/STM32/GPIOv2/pal_lld.c \ 8 | ${CHIBIOS}/os/hal/platforms/STM32/I2Cv2/i2c_lld.c \ 9 | ${CHIBIOS}/os/hal/platforms/STM32/RTCv2/rtc_lld.c \ 10 | ${CHIBIOS}/os/hal/platforms/STM32/SPIv2/spi_lld.c \ 11 | ${CHIBIOS}/os/hal/platforms/STM32/TIMv1/gpt_lld.c \ 12 | ${CHIBIOS}/os/hal/platforms/STM32/TIMv1/icu_lld.c \ 13 | ${CHIBIOS}/os/hal/platforms/STM32/TIMv1/pwm_lld.c \ 14 | ${CHIBIOS}/os/hal/platforms/STM32/USARTv2/serial_lld.c \ 15 | ${CHIBIOS}/os/hal/platforms/STM32/USARTv2/uart_lld.c 16 | 17 | # Required include directories 18 | PLATFORMINC = ${CHIBIOS}/os/hal/platforms/STM32F0xx \ 19 | ${CHIBIOS}/os/hal/platforms/STM32 \ 20 | ${CHIBIOS}/os/hal/platforms/STM32/GPIOv2 \ 21 | ${CHIBIOS}/os/hal/platforms/STM32/RTCv2 \ 22 | ${CHIBIOS}/os/hal/platforms/STM32/I2Cv2 \ 23 | ${CHIBIOS}/os/hal/platforms/STM32/SPIv2 \ 24 | ${CHIBIOS}/os/hal/platforms/STM32/TIMv1 \ 25 | ${CHIBIOS}/os/hal/platforms/STM32/USARTv2 26 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/STM32F1xx/platform.mk: -------------------------------------------------------------------------------- 1 | # List of all the STM32F1xx platform files. 2 | PLATFORMSRC = ${CHIBIOS}/os/hal/platforms/STM32F1xx/stm32_dma.c \ 3 | ${CHIBIOS}/os/hal/platforms/STM32F1xx/hal_lld.c \ 4 | ${CHIBIOS}/os/hal/platforms/STM32F1xx/adc_lld.c \ 5 | ${CHIBIOS}/os/hal/platforms/STM32F1xx/ext_lld_isr.c \ 6 | ${CHIBIOS}/os/hal/platforms/STM32/can_lld.c \ 7 | ${CHIBIOS}/os/hal/platforms/STM32/ext_lld.c \ 8 | ${CHIBIOS}/os/hal/platforms/STM32/mac_lld.c \ 9 | ${CHIBIOS}/os/hal/platforms/STM32/sdc_lld.c \ 10 | ${CHIBIOS}/os/hal/platforms/STM32/GPIOv1/pal_lld.c \ 11 | ${CHIBIOS}/os/hal/platforms/STM32/I2Cv1/i2c_lld.c \ 12 | ${CHIBIOS}/os/hal/platforms/STM32/RTCv1/rtc_lld.c \ 13 | ${CHIBIOS}/os/hal/platforms/STM32/SPIv1/spi_lld.c \ 14 | ${CHIBIOS}/os/hal/platforms/STM32/TIMv1/gpt_lld.c \ 15 | ${CHIBIOS}/os/hal/platforms/STM32/TIMv1/icu_lld.c \ 16 | ${CHIBIOS}/os/hal/platforms/STM32/TIMv1/pwm_lld.c \ 17 | ${CHIBIOS}/os/hal/platforms/STM32/USARTv1/serial_lld.c \ 18 | ${CHIBIOS}/os/hal/platforms/STM32/USARTv1/uart_lld.c \ 19 | ${CHIBIOS}/os/hal/platforms/STM32/USBv1/usb_lld.c 20 | 21 | # Required include directories 22 | PLATFORMINC = ${CHIBIOS}/os/hal/platforms/STM32F1xx \ 23 | ${CHIBIOS}/os/hal/platforms/STM32 \ 24 | ${CHIBIOS}/os/hal/platforms/STM32/GPIOv1 \ 25 | ${CHIBIOS}/os/hal/platforms/STM32/I2Cv1 \ 26 | ${CHIBIOS}/os/hal/platforms/STM32/RTCv1 \ 27 | ${CHIBIOS}/os/hal/platforms/STM32/SPIv1 \ 28 | ${CHIBIOS}/os/hal/platforms/STM32/TIMv1 \ 29 | ${CHIBIOS}/os/hal/platforms/STM32/USARTv1 \ 30 | ${CHIBIOS}/os/hal/platforms/STM32/USBv1 31 | 32 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/STM32F1xx/platform_f105_f107.mk: -------------------------------------------------------------------------------- 1 | # List of all the STM32F1xx platform files. 2 | PLATFORMSRC = ${CHIBIOS}/os/hal/platforms/STM32F1xx/stm32_dma.c \ 3 | ${CHIBIOS}/os/hal/platforms/STM32F1xx/hal_lld.c \ 4 | ${CHIBIOS}/os/hal/platforms/STM32F1xx/adc_lld.c \ 5 | ${CHIBIOS}/os/hal/platforms/STM32F1xx/ext_lld_isr.c \ 6 | ${CHIBIOS}/os/hal/platforms/STM32/can_lld.c \ 7 | ${CHIBIOS}/os/hal/platforms/STM32/ext_lld.c \ 8 | ${CHIBIOS}/os/hal/platforms/STM32/mac_lld.c \ 9 | ${CHIBIOS}/os/hal/platforms/STM32/sdc_lld.c \ 10 | ${CHIBIOS}/os/hal/platforms/STM32/GPIOv1/pal_lld.c \ 11 | ${CHIBIOS}/os/hal/platforms/STM32/I2Cv1/i2c_lld.c \ 12 | ${CHIBIOS}/os/hal/platforms/STM32/RTCv1/rtc_lld.c \ 13 | ${CHIBIOS}/os/hal/platforms/STM32/SPIv1/spi_lld.c \ 14 | ${CHIBIOS}/os/hal/platforms/STM32/TIMv1/gpt_lld.c \ 15 | ${CHIBIOS}/os/hal/platforms/STM32/TIMv1/icu_lld.c \ 16 | ${CHIBIOS}/os/hal/platforms/STM32/TIMv1/pwm_lld.c \ 17 | ${CHIBIOS}/os/hal/platforms/STM32/USARTv1/serial_lld.c \ 18 | ${CHIBIOS}/os/hal/platforms/STM32/USARTv1/uart_lld.c \ 19 | ${CHIBIOS}/os/hal/platforms/STM32/OTGv1/usb_lld.c 20 | 21 | # Required include directories 22 | PLATFORMINC = ${CHIBIOS}/os/hal/platforms/STM32F1xx \ 23 | ${CHIBIOS}/os/hal/platforms/STM32 \ 24 | ${CHIBIOS}/os/hal/platforms/STM32/GPIOv1 \ 25 | ${CHIBIOS}/os/hal/platforms/STM32/I2Cv1 \ 26 | ${CHIBIOS}/os/hal/platforms/STM32/RTCv1 \ 27 | ${CHIBIOS}/os/hal/platforms/STM32/SPIv1 \ 28 | ${CHIBIOS}/os/hal/platforms/STM32/TIMv1 \ 29 | ${CHIBIOS}/os/hal/platforms/STM32/USARTv1 \ 30 | ${CHIBIOS}/os/hal/platforms/STM32/OTGv1 31 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/STM32F30x/platform.mk: -------------------------------------------------------------------------------- 1 | # List of all the STM32F30x platform files. 2 | PLATFORMSRC = ${CHIBIOS}/os/hal/platforms/STM32F30x/stm32_dma.c \ 3 | ${CHIBIOS}/os/hal/platforms/STM32F30x/hal_lld.c \ 4 | ${CHIBIOS}/os/hal/platforms/STM32F30x/adc_lld.c \ 5 | ${CHIBIOS}/os/hal/platforms/STM32F30x/ext_lld_isr.c \ 6 | ${CHIBIOS}/os/hal/platforms/STM32/can_lld.c \ 7 | ${CHIBIOS}/os/hal/platforms/STM32/ext_lld.c \ 8 | ${CHIBIOS}/os/hal/platforms/STM32/GPIOv2/pal_lld.c \ 9 | ${CHIBIOS}/os/hal/platforms/STM32/I2Cv2/i2c_lld.c \ 10 | ${CHIBIOS}/os/hal/platforms/STM32/RTCv2/rtc_lld.c \ 11 | ${CHIBIOS}/os/hal/platforms/STM32/SPIv2/spi_lld.c \ 12 | ${CHIBIOS}/os/hal/platforms/STM32/TIMv1/gpt_lld.c \ 13 | ${CHIBIOS}/os/hal/platforms/STM32/TIMv1/icu_lld.c \ 14 | ${CHIBIOS}/os/hal/platforms/STM32/TIMv1/pwm_lld.c \ 15 | ${CHIBIOS}/os/hal/platforms/STM32/USARTv2/serial_lld.c \ 16 | ${CHIBIOS}/os/hal/platforms/STM32/USARTv2/uart_lld.c \ 17 | ${CHIBIOS}/os/hal/platforms/STM32/USBv1/usb_lld.c 18 | 19 | # Required include directories 20 | PLATFORMINC = ${CHIBIOS}/os/hal/platforms/STM32F30x \ 21 | ${CHIBIOS}/os/hal/platforms/STM32 \ 22 | ${CHIBIOS}/os/hal/platforms/STM32/GPIOv2 \ 23 | ${CHIBIOS}/os/hal/platforms/STM32/I2Cv2 \ 24 | ${CHIBIOS}/os/hal/platforms/STM32/RTCv2 \ 25 | ${CHIBIOS}/os/hal/platforms/STM32/SPIv2 \ 26 | ${CHIBIOS}/os/hal/platforms/STM32/TIMv1 \ 27 | ${CHIBIOS}/os/hal/platforms/STM32/USARTv2 \ 28 | ${CHIBIOS}/os/hal/platforms/STM32/USBv1 29 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/STM32F30x/stm32f30x.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akpc806a/CAN_Logger/db23d2e5c2f1b6b5b7c5ac875baa646f43d4948c/Firmware/IAR/os/hal/platforms/STM32F30x/stm32f30x.h -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/STM32F37x/platform.mk: -------------------------------------------------------------------------------- 1 | # List of all the STM32F37x platform files. 2 | PLATFORMSRC = ${CHIBIOS}/os/hal/platforms/STM32F37x/stm32_dma.c \ 3 | ${CHIBIOS}/os/hal/platforms/STM32F37x/hal_lld.c \ 4 | ${CHIBIOS}/os/hal/platforms/STM32F37x/adc_lld.c \ 5 | ${CHIBIOS}/os/hal/platforms/STM32F37x/ext_lld_isr.c \ 6 | ${CHIBIOS}/os/hal/platforms/STM32/can_lld.c \ 7 | ${CHIBIOS}/os/hal/platforms/STM32/ext_lld.c \ 8 | ${CHIBIOS}/os/hal/platforms/STM32/GPIOv2/pal_lld.c \ 9 | ${CHIBIOS}/os/hal/platforms/STM32/I2Cv2/i2c_lld.c \ 10 | ${CHIBIOS}/os/hal/platforms/STM32/RTCv2/rtc_lld.c \ 11 | ${CHIBIOS}/os/hal/platforms/STM32/SPIv2/spi_lld.c \ 12 | ${CHIBIOS}/os/hal/platforms/STM32/TIMv1/gpt_lld.c \ 13 | ${CHIBIOS}/os/hal/platforms/STM32/TIMv1/icu_lld.c \ 14 | ${CHIBIOS}/os/hal/platforms/STM32/TIMv1/pwm_lld.c \ 15 | ${CHIBIOS}/os/hal/platforms/STM32/USARTv2/serial_lld.c \ 16 | ${CHIBIOS}/os/hal/platforms/STM32/USARTv2/uart_lld.c \ 17 | ${CHIBIOS}/os/hal/platforms/STM32/USBv1/usb_lld.c 18 | 19 | # Required include directories 20 | PLATFORMINC = ${CHIBIOS}/os/hal/platforms/STM32F37x \ 21 | ${CHIBIOS}/os/hal/platforms/STM32 \ 22 | ${CHIBIOS}/os/hal/platforms/STM32/GPIOv2 \ 23 | ${CHIBIOS}/os/hal/platforms/STM32/I2Cv2 \ 24 | ${CHIBIOS}/os/hal/platforms/STM32/RTCv2 \ 25 | ${CHIBIOS}/os/hal/platforms/STM32/SPIv2 \ 26 | ${CHIBIOS}/os/hal/platforms/STM32/TIMv1 \ 27 | ${CHIBIOS}/os/hal/platforms/STM32/USARTv2 \ 28 | ${CHIBIOS}/os/hal/platforms/STM32/USBv1 29 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/STM32F37x/stm32f37x.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akpc806a/CAN_Logger/db23d2e5c2f1b6b5b7c5ac875baa646f43d4948c/Firmware/IAR/os/hal/platforms/STM32F37x/stm32f37x.h -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/STM32F4xx/platform.mk: -------------------------------------------------------------------------------- 1 | # List of all the STM32F2xx/STM32F4xx platform files. 2 | PLATFORMSRC = ${CHIBIOS}/os/hal/platforms/STM32F4xx/stm32_dma.c \ 3 | ${CHIBIOS}/os/hal/platforms/STM32F4xx/hal_lld.c \ 4 | ${CHIBIOS}/os/hal/platforms/STM32F4xx/adc_lld.c \ 5 | ${CHIBIOS}/os/hal/platforms/STM32F4xx/ext_lld_isr.c \ 6 | ${CHIBIOS}/os/hal/platforms/STM32/can_lld.c \ 7 | ${CHIBIOS}/os/hal/platforms/STM32/ext_lld.c \ 8 | ${CHIBIOS}/os/hal/platforms/STM32/mac_lld.c \ 9 | ${CHIBIOS}/os/hal/platforms/STM32/sdc_lld.c \ 10 | ${CHIBIOS}/os/hal/platforms/STM32/GPIOv2/pal_lld.c \ 11 | ${CHIBIOS}/os/hal/platforms/STM32/I2Cv1/i2c_lld.c \ 12 | ${CHIBIOS}/os/hal/platforms/STM32/OTGv1/usb_lld.c \ 13 | ${CHIBIOS}/os/hal/platforms/STM32/RTCv2/rtc_lld.c \ 14 | ${CHIBIOS}/os/hal/platforms/STM32/SPIv1/spi_lld.c \ 15 | ${CHIBIOS}/os/hal/platforms/STM32/TIMv1/gpt_lld.c \ 16 | ${CHIBIOS}/os/hal/platforms/STM32/TIMv1/icu_lld.c \ 17 | ${CHIBIOS}/os/hal/platforms/STM32/TIMv1/pwm_lld.c \ 18 | ${CHIBIOS}/os/hal/platforms/STM32/USARTv1/serial_lld.c \ 19 | ${CHIBIOS}/os/hal/platforms/STM32/USARTv1/uart_lld.c 20 | 21 | # Required include directories 22 | PLATFORMINC = ${CHIBIOS}/os/hal/platforms/STM32F4xx \ 23 | ${CHIBIOS}/os/hal/platforms/STM32 \ 24 | ${CHIBIOS}/os/hal/platforms/STM32/GPIOv2 \ 25 | ${CHIBIOS}/os/hal/platforms/STM32/I2Cv1 \ 26 | ${CHIBIOS}/os/hal/platforms/STM32/OTGv1 \ 27 | ${CHIBIOS}/os/hal/platforms/STM32/RTCv2 \ 28 | ${CHIBIOS}/os/hal/platforms/STM32/SPIv1 \ 29 | ${CHIBIOS}/os/hal/platforms/STM32/TIMv1 \ 30 | ${CHIBIOS}/os/hal/platforms/STM32/USARTv1 31 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/STM32F4xx/stm32f4xx.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akpc806a/CAN_Logger/db23d2e5c2f1b6b5b7c5ac875baa646f43d4948c/Firmware/IAR/os/hal/platforms/STM32F4xx/stm32f4xx.h -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/STM32L1xx/platform.mk: -------------------------------------------------------------------------------- 1 | # List of all the STM32L1xx platform files. 2 | PLATFORMSRC = ${CHIBIOS}/os/hal/platforms/STM32L1xx/stm32_dma.c \ 3 | ${CHIBIOS}/os/hal/platforms/STM32L1xx/hal_lld.c \ 4 | ${CHIBIOS}/os/hal/platforms/STM32L1xx/adc_lld.c \ 5 | ${CHIBIOS}/os/hal/platforms/STM32L1xx/ext_lld_isr.c \ 6 | ${CHIBIOS}/os/hal/platforms/STM32/ext_lld.c \ 7 | ${CHIBIOS}/os/hal/platforms/STM32/GPIOv2/pal_lld.c \ 8 | ${CHIBIOS}/os/hal/platforms/STM32/I2Cv1/i2c_lld.c \ 9 | ${CHIBIOS}/os/hal/platforms/STM32/RTCv2/rtc_lld.c \ 10 | ${CHIBIOS}/os/hal/platforms/STM32/SPIv1/spi_lld.c \ 11 | ${CHIBIOS}/os/hal/platforms/STM32/TIMv1/gpt_lld.c \ 12 | ${CHIBIOS}/os/hal/platforms/STM32/TIMv1/icu_lld.c \ 13 | ${CHIBIOS}/os/hal/platforms/STM32/TIMv1/pwm_lld.c \ 14 | ${CHIBIOS}/os/hal/platforms/STM32/USARTv1/serial_lld.c \ 15 | ${CHIBIOS}/os/hal/platforms/STM32/USARTv1/uart_lld.c \ 16 | ${CHIBIOS}/os/hal/platforms/STM32/USBv1/usb_lld.c 17 | 18 | # Required include directories 19 | PLATFORMINC = ${CHIBIOS}/os/hal/platforms/STM32L1xx \ 20 | ${CHIBIOS}/os/hal/platforms/STM32 \ 21 | ${CHIBIOS}/os/hal/platforms/STM32/GPIOv2 \ 22 | ${CHIBIOS}/os/hal/platforms/STM32/I2Cv1 \ 23 | ${CHIBIOS}/os/hal/platforms/STM32/RTCv2 \ 24 | ${CHIBIOS}/os/hal/platforms/STM32/SPIv1 \ 25 | ${CHIBIOS}/os/hal/platforms/STM32/TIMv1 \ 26 | ${CHIBIOS}/os/hal/platforms/STM32/USARTv1 \ 27 | ${CHIBIOS}/os/hal/platforms/STM32/USBv1 28 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/STM32L1xx/stm32l1xx.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akpc806a/CAN_Logger/db23d2e5c2f1b6b5b7c5ac875baa646f43d4948c/Firmware/IAR/os/hal/platforms/STM32L1xx/stm32l1xx.h -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/Win32/platform.mk: -------------------------------------------------------------------------------- 1 | # List of all the Win32 platform files. 2 | PLATFORMSRC = ${CHIBIOS}/os/hal/platforms/Win32/hal_lld.c \ 3 | ${CHIBIOS}/os/hal/platforms/Win32/pal_lld.c \ 4 | ${CHIBIOS}/os/hal/platforms/Win32/serial_lld.c 5 | 6 | # Required include directories 7 | PLATFORMINC = ${CHIBIOS}/os/hal/platforms/Win32 8 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/platforms/platforms.dox: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006-2013 Giovanni Di Sirio 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | /** 18 | * @defgroup platforms Platforms 19 | * @brief Supported platforms. 20 | * @details The implementation of the device drivers can be slightly different 21 | * on the various platforms because architectural constrains. This section 22 | * describes the implementation of the various device drivers on the various 23 | * supported platforms. 24 | */ 25 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/templates/mcuconf.h: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006-2013 Giovanni Di Sirio 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | /* 18 | * Platform drivers configuration. 19 | * The following settings override the default settings present in 20 | * the various device driver implementation headers. 21 | * Note that the settings for each driver only have effect if the whole 22 | * driver is enabled in halconf.h. 23 | */ 24 | 25 | #define PLATFORM_MCUCONF 26 | -------------------------------------------------------------------------------- /Firmware/IAR/os/hal/templates/platform.mk: -------------------------------------------------------------------------------- 1 | # List of all the template platform files. 2 | PLATFORMSRC = ${CHIBIOS}/os/hal/templates/hal_lld.c \ 3 | ${CHIBIOS}/os/hal/templates/adc_lld.c \ 4 | ${CHIBIOS}/os/hal/templates/can_lld.c \ 5 | ${CHIBIOS}/os/hal/templates/ext_lld.c \ 6 | ${CHIBIOS}/os/hal/templates/gpt_lld.c \ 7 | ${CHIBIOS}/os/hal/templates/i2c_lld.c \ 8 | ${CHIBIOS}/os/hal/templates/icu_lld.c \ 9 | ${CHIBIOS}/os/hal/templates/mac_lld.c \ 10 | ${CHIBIOS}/os/hal/templates/pal_lld.c \ 11 | ${CHIBIOS}/os/hal/templates/pwm_lld.c \ 12 | ${CHIBIOS}/os/hal/templates/sdc_lld.c \ 13 | ${CHIBIOS}/os/hal/templates/serial_lld.c \ 14 | ${CHIBIOS}/os/hal/templates/spi_lld.c \ 15 | ${CHIBIOS}/os/hal/templates/uart_lld.c \ 16 | ${CHIBIOS}/os/hal/templates/usb_lld.c 17 | 18 | # Required include directories 19 | PLATFORMINC = ${CHIBIOS}/os/hal/templates 20 | -------------------------------------------------------------------------------- /Firmware/IAR/os/kernel/include/chdynamic.h: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file chdynamic.h 30 | * @brief Dynamic threads macros and structures. 31 | * 32 | * @addtogroup dynamic_threads 33 | * @{ 34 | */ 35 | 36 | #ifndef _CHDYNAMIC_H_ 37 | #define _CHDYNAMIC_H_ 38 | 39 | #if CH_USE_DYNAMIC || defined(__DOXYGEN__) 40 | 41 | /* 42 | * Module dependencies check. 43 | */ 44 | #if CH_USE_DYNAMIC && !CH_USE_WAITEXIT 45 | #error "CH_USE_DYNAMIC requires CH_USE_WAITEXIT" 46 | #endif 47 | #if CH_USE_DYNAMIC && !CH_USE_HEAP && !CH_USE_MEMPOOLS 48 | #error "CH_USE_DYNAMIC requires CH_USE_HEAP and/or CH_USE_MEMPOOLS" 49 | #endif 50 | 51 | /* 52 | * Dynamic threads APIs. 53 | */ 54 | #ifdef __cplusplus 55 | extern "C" { 56 | #endif 57 | Thread *chThdAddRef(Thread *tp); 58 | void chThdRelease(Thread *tp); 59 | #if CH_USE_HEAP 60 | Thread *chThdCreateFromHeap(MemoryHeap *heapp, size_t size, 61 | tprio_t prio, tfunc_t pf, void *arg); 62 | #endif 63 | #if CH_USE_MEMPOOLS 64 | Thread *chThdCreateFromMemoryPool(MemoryPool *mp, tprio_t prio, 65 | tfunc_t pf, void *arg); 66 | #endif 67 | #ifdef __cplusplus 68 | } 69 | #endif 70 | 71 | #endif /* CH_USE_DYNAMIC */ 72 | 73 | #endif /* _CHDYNAMIC_H_ */ 74 | 75 | /** @} */ 76 | -------------------------------------------------------------------------------- /Firmware/IAR/os/kernel/kernel.mk: -------------------------------------------------------------------------------- 1 | # List of all the ChibiOS/RT kernel files, there is no need to remove the files 2 | # from this list, you can disable parts of the kernel by editing chconf.h. 3 | KERNSRC = ${CHIBIOS}/os/kernel/src/chsys.c \ 4 | ${CHIBIOS}/os/kernel/src/chdebug.c \ 5 | ${CHIBIOS}/os/kernel/src/chlists.c \ 6 | ${CHIBIOS}/os/kernel/src/chvt.c \ 7 | ${CHIBIOS}/os/kernel/src/chschd.c \ 8 | ${CHIBIOS}/os/kernel/src/chthreads.c \ 9 | ${CHIBIOS}/os/kernel/src/chdynamic.c \ 10 | ${CHIBIOS}/os/kernel/src/chregistry.c \ 11 | ${CHIBIOS}/os/kernel/src/chsem.c \ 12 | ${CHIBIOS}/os/kernel/src/chmtx.c \ 13 | ${CHIBIOS}/os/kernel/src/chcond.c \ 14 | ${CHIBIOS}/os/kernel/src/chevents.c \ 15 | ${CHIBIOS}/os/kernel/src/chmsg.c \ 16 | ${CHIBIOS}/os/kernel/src/chmboxes.c \ 17 | ${CHIBIOS}/os/kernel/src/chqueues.c \ 18 | ${CHIBIOS}/os/kernel/src/chmemcore.c \ 19 | ${CHIBIOS}/os/kernel/src/chheap.c \ 20 | ${CHIBIOS}/os/kernel/src/chmempools.c 21 | 22 | # Required include directories 23 | KERNINC = ${CHIBIOS}/os/kernel/include 24 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/ARM/AT91SAM7/armparams.h: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file ARM/AT91SAM7/armparams.h 30 | * @brief ARM7 AT91SAM7 Specific Parameters. 31 | * 32 | * @defgroup ARM_AT91SAM7 AT91SAM7 Specific Parameters 33 | * @ingroup ARM_SPECIFIC 34 | * @details This file contains the ARM specific parameters for the 35 | * AT91SAM7 platform. 36 | * @{ 37 | */ 38 | 39 | #ifndef _ARMPARAMS_H_ 40 | #define _ARMPARAMS_H_ 41 | 42 | /** 43 | * @brief ARM core model. 44 | */ 45 | #define ARM_CORE ARM_CORE_ARM7TDMI 46 | 47 | /** 48 | * @brief AT91SAM7-specific wait for interrupt. 49 | * @details This implementation writes 1 into the PMC_SCDR register. 50 | */ 51 | #if !defined(port_wait_for_interrupt) || defined(__DOXYGEN__) 52 | #if ENABLE_WFI_IDLE || defined(__DOXYGEN__) 53 | #define port_wait_for_interrupt() { \ 54 | (*((volatile uint32_t *)0xFFFFFC04)) = 1; \ 55 | } 56 | #else 57 | #define port_wait_for_interrupt() 58 | #endif 59 | #endif 60 | 61 | #endif /* _ARMPARAMS_H_ */ 62 | 63 | /** @} */ 64 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/ARM/AT91SAM7/port.mk: -------------------------------------------------------------------------------- 1 | # List of the ChibiOS/RT ARM7 AT91SAM7 port files. 2 | PORTSRC = ${CHIBIOS}/os/ports/GCC/ARM/chcore.c 3 | 4 | PORTASM = ${CHIBIOS}/os/ports/GCC/ARM/crt0.s \ 5 | ${CHIBIOS}/os/ports/GCC/ARM/chcoreasm.s \ 6 | ${CHIBIOS}/os/ports/GCC/ARM/AT91SAM7/vectors.s 7 | 8 | PORTINC = ${CHIBIOS}/os/ports/GCC/ARM \ 9 | ${CHIBIOS}/os/ports/GCC/ARM/AT91SAM7 10 | 11 | PORTLD = ${CHIBIOS}/os/ports/GCC/ARM/AT91SAM7/ld 12 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/ARM/AT91SAM7/wfi.h: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | #ifndef _WFI_H_ 29 | #define _WFI_H_ 30 | 31 | #include "board.h" 32 | 33 | #ifndef port_wait_for_interrupt 34 | #if ENABLE_WFI_IDLE != 0 35 | #define port_wait_for_interrupt() { \ 36 | AT91C_BASE_SYS->PMC_SCDR = AT91C_PMC_PCK; \ 37 | } 38 | #else 39 | #define port_wait_for_interrupt() 40 | #endif 41 | #endif 42 | 43 | #endif /* _WFI_H_ */ 44 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/ARM/LPC214x/armparams.h: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file ARM/LPC214x/armparams.h 30 | * @brief ARM7 LPC214x Specific Parameters. 31 | * 32 | * @defgroup ARM_LPC214x LPC214x Specific Parameters 33 | * @ingroup ARM_SPECIFIC 34 | * @details This file contains the ARM specific parameters for the 35 | * LPC214x platform. 36 | * @{ 37 | */ 38 | 39 | #ifndef _ARMPARAMS_H_ 40 | #define _ARMPARAMS_H_ 41 | 42 | /** 43 | * @brief ARM core model. 44 | */ 45 | #define ARM_CORE ARM_CORE_ARM7TDMI 46 | 47 | /** 48 | * @brief LPC214x-specific wait for interrupt code. 49 | * @details This implementation writes 1 into the PCON register. 50 | */ 51 | #if !defined(port_wait_for_interrupt) || defined(__DOXYGEN__) 52 | #if ENABLE_WFI_IDLE || defined(__DOXYGEN__) 53 | #define port_wait_for_interrupt() { \ 54 | (*((volatile uint32_t *)0xE01FC0C0)) = 1; \ 55 | } 56 | #else 57 | #define port_wait_for_interrupt() 58 | #endif 59 | #endif 60 | 61 | #endif /* _ARMPARAMS_H_ */ 62 | 63 | /** @} */ 64 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/ARM/LPC214x/port.mk: -------------------------------------------------------------------------------- 1 | # List of the ChibiOS/RT ARM7 LPC214x port files. 2 | PORTSRC = ${CHIBIOS}/os/ports/GCC/ARM/chcore.c 3 | 4 | PORTASM = ${CHIBIOS}/os/ports/GCC/ARM/crt0.s \ 5 | ${CHIBIOS}/os/ports/GCC/ARM/chcoreasm.s \ 6 | ${CHIBIOS}/os/ports/GCC/ARM/LPC214x/vectors.s 7 | 8 | PORTINC = ${CHIBIOS}/os/ports/GCC/ARM \ 9 | ${CHIBIOS}/os/ports/GCC/ARM/LPC214x 10 | 11 | PORTLD = ${CHIBIOS}/os/ports/GCC/ARM/LPC214x/ld 12 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/ARM/LPC214x/wfi.h: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | #ifndef _WFI_H_ 29 | #define _WFI_H_ 30 | 31 | #include "lpc214x.h" 32 | 33 | #ifndef port_wait_for_interrupt 34 | #if ENABLE_WFI_IDLE != 0 35 | #define port_wait_for_interrupt() { \ 36 | PCON = 1; \ 37 | } 38 | #else 39 | #define port_wait_for_interrupt() 40 | #endif 41 | #endif 42 | 43 | #endif /* _WFI_H_ */ 44 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/ARM/chcore.c: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file ARM/chcore.c 30 | * @brief ARM7/9 architecture port code. 31 | * 32 | * @addtogroup ARM_CORE 33 | * @{ 34 | */ 35 | 36 | #include "ch.h" 37 | 38 | /** 39 | * Halts the system. 40 | */ 41 | #if !defined(__DOXYGEN__) 42 | __attribute__((weak)) 43 | #endif 44 | void port_halt(void) { 45 | 46 | port_disable(); 47 | while (TRUE) { 48 | } 49 | } 50 | 51 | /** @} */ 52 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/ARMCMx/LPC11xx/cmparams.h: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file GCC/ARMCMx/LPC11xx/cmparams.h 30 | * @brief ARM Cortex-M0 parameters for the LPC11xx. 31 | * 32 | * @defgroup ARMCMx_LPC11xx LPC11xx Specific Parameters 33 | * @ingroup ARMCMx_SPECIFIC 34 | * @details This file contains the Cortex-M0 specific parameters for the 35 | * LPC11xx platform. 36 | * @{ 37 | */ 38 | 39 | #ifndef _CMPARAMS_H_ 40 | #define _CMPARAMS_H_ 41 | 42 | /** 43 | * @brief Cortex core model. 44 | */ 45 | #define CORTEX_MODEL CORTEX_M0 46 | 47 | /** 48 | * @brief Systick unit presence. 49 | */ 50 | #define CORTEX_HAS_ST TRUE 51 | 52 | /** 53 | * @brief Memory Protection unit presence. 54 | */ 55 | #define CORTEX_HAS_MPU FALSE 56 | 57 | /** 58 | * @brief Floating Point unit presence. 59 | */ 60 | #define CORTEX_HAS_FPU FALSE 61 | 62 | /** 63 | * @brief Number of bits in priority masks. 64 | */ 65 | #define CORTEX_PRIORITY_BITS 2 66 | 67 | #endif /* _CMPARAMS_H_ */ 68 | 69 | /** @} */ 70 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/ARMCMx/LPC11xx/port.mk: -------------------------------------------------------------------------------- 1 | # List of the ChibiOS/RT Cortex-M0 LPC11xx port files. 2 | PORTSRC = $(CHIBIOS)/os/ports/GCC/ARMCMx/crt0.c \ 3 | $(CHIBIOS)/os/ports/GCC/ARMCMx/LPC11xx/vectors.c \ 4 | ${CHIBIOS}/os/ports/GCC/ARMCMx/chcore.c \ 5 | ${CHIBIOS}/os/ports/GCC/ARMCMx/chcore_v6m.c \ 6 | ${CHIBIOS}/os/ports/common/ARMCMx/nvic.c 7 | 8 | PORTASM = 9 | 10 | PORTINC = ${CHIBIOS}/os/ports/common/ARMCMx/CMSIS/include \ 11 | ${CHIBIOS}/os/ports/common/ARMCMx \ 12 | ${CHIBIOS}/os/ports/GCC/ARMCMx \ 13 | ${CHIBIOS}/os/ports/GCC/ARMCMx/LPC11xx 14 | 15 | PORTLD = ${CHIBIOS}/os/ports/GCC/ARMCMx/LPC11xx/ld 16 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/ARMCMx/LPC122x/cmparams.h: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file GCC/ARMCMx/LPC13xx/cmparams.h 30 | * @brief ARM Cortex-M0 LPC122x Specific Parameters. 31 | * 32 | * @defgroup ARMCMx_LPC122x LPC122x Specific Parameters 33 | * @ingroup ARMCMx_SPECIFIC 34 | * @details This file contains the Cortex-M0 specific parameters for the 35 | * LPC122x platform. 36 | * @{ 37 | */ 38 | 39 | #ifndef _CMPARAMS_H_ 40 | #define _CMPARAMS_H_ 41 | 42 | /** 43 | * @brief Cortex core model. 44 | */ 45 | #define CORTEX_MODEL CORTEX_M0 46 | 47 | /** 48 | * @brief Systick unit presence. 49 | */ 50 | #define CORTEX_HAS_ST TRUE 51 | 52 | /** 53 | * @brief Memory Protection unit presence. 54 | */ 55 | #define CORTEX_HAS_MPU FALSE 56 | 57 | /** 58 | * @brief Floating Point unit presence. 59 | */ 60 | #define CORTEX_HAS_FPU FALSE 61 | 62 | /** 63 | * @brief Number of bits in priority masks. 64 | */ 65 | #define CORTEX_PRIORITY_BITS 2 66 | 67 | #endif /* _CMPARAMS_H_ */ 68 | 69 | /** @} */ 70 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/ARMCMx/LPC122x/port.mk: -------------------------------------------------------------------------------- 1 | # List of the ChibiOS/RT Cortex-M0 LPC122x port files. 2 | PORTSRC = $(CHIBIOS)/os/ports/GCC/ARMCMx/crt0.c \ 3 | $(CHIBIOS)/os/ports/GCC/ARMCMx/LPC122x/vectors.c \ 4 | ${CHIBIOS}/os/ports/GCC/ARMCMx/chcore.c \ 5 | ${CHIBIOS}/os/ports/GCC/ARMCMx/chcore_v6m.c \ 6 | ${CHIBIOS}/os/ports/common/ARMCMx/nvic.c 7 | 8 | PORTASM = 9 | 10 | PORTINC = ${CHIBIOS}/os/ports/common/ARMCMx/CMSIS/include \ 11 | ${CHIBIOS}/os/ports/common/ARMCMx \ 12 | ${CHIBIOS}/os/ports/GCC/ARMCMx \ 13 | ${CHIBIOS}/os/ports/GCC/ARMCMx/LPC122x 14 | 15 | PORTLD = ${CHIBIOS}/os/ports/GCC/ARMCMx/LPC122x/ld 16 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/ARMCMx/LPC13xx/cmparams.h: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file GCC/ARMCMx/LPC13xx/cmparams.h 30 | * @brief ARM Cortex-M3 LPC13xx Specific Parameters. 31 | * 32 | * @defgroup ARMCMx_LPC13xx LPC13xx Specific Parameters 33 | * @ingroup ARMCMx_SPECIFIC 34 | * @details This file contains the Cortex-M3 specific parameters for the 35 | * LPC13xx platform. 36 | * @{ 37 | */ 38 | 39 | #ifndef _CMPARAMS_H_ 40 | #define _CMPARAMS_H_ 41 | 42 | /** 43 | * @brief Cortex core model. 44 | */ 45 | #define CORTEX_MODEL CORTEX_M3 46 | 47 | /** 48 | * @brief Systick unit presence. 49 | */ 50 | #define CORTEX_HAS_ST TRUE 51 | 52 | /** 53 | * @brief Memory Protection unit presence. 54 | */ 55 | #define CORTEX_HAS_MPU FALSE 56 | 57 | /** 58 | * @brief Floating Point unit presence. 59 | */ 60 | #define CORTEX_HAS_FPU FALSE 61 | 62 | /** 63 | * @brief Number of bits in priority masks. 64 | */ 65 | #define CORTEX_PRIORITY_BITS 3 66 | 67 | #endif /* _CMPARAMS_H_ */ 68 | 69 | /** @} */ 70 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/ARMCMx/LPC13xx/port.mk: -------------------------------------------------------------------------------- 1 | # List of the ChibiOS/RT Cortex-M0 LPC13xx port files. 2 | PORTSRC = $(CHIBIOS)/os/ports/GCC/ARMCMx/crt0.c \ 3 | $(CHIBIOS)/os/ports/GCC/ARMCMx/LPC13xx/vectors.c \ 4 | ${CHIBIOS}/os/ports/GCC/ARMCMx/chcore.c \ 5 | ${CHIBIOS}/os/ports/GCC/ARMCMx/chcore_v7m.c \ 6 | ${CHIBIOS}/os/ports/common/ARMCMx/nvic.c 7 | 8 | PORTASM = 9 | 10 | PORTINC = ${CHIBIOS}/os/ports/common/ARMCMx/CMSIS/include \ 11 | ${CHIBIOS}/os/ports/common/ARMCMx \ 12 | ${CHIBIOS}/os/ports/GCC/ARMCMx \ 13 | ${CHIBIOS}/os/ports/GCC/ARMCMx/LPC13xx 14 | 15 | PORTLD = ${CHIBIOS}/os/ports/GCC/ARMCMx/LPC13xx/ld 16 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/ARMCMx/LPC8xx/cmparams.h: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file GCC/ARMCMx/LPC8xx/cmparams.h 30 | * @brief ARM Cortex-M0+ parameters for the LPC8xx. 31 | * 32 | * @defgroup ARMCMx_LPC8xx LPC8xx Specific Parameters 33 | * @ingroup ARMCMx_SPECIFIC 34 | * @details This file contains the Cortex-M0+ specific parameters for the 35 | * LPC8xx platform. 36 | * (Taken from the device header file where possible) 37 | * @{ 38 | */ 39 | 40 | #ifndef _CMPARAMS_H_ 41 | #define _CMPARAMS_H_ 42 | 43 | #include "LPC8xx.h" 44 | 45 | /** 46 | * @brief Cortex core model. 47 | */ 48 | #define CORTEX_MODEL __CORTEX_M 49 | 50 | /** 51 | * @brief Systick unit presence. 52 | */ 53 | #define CORTEX_HAS_ST TRUE 54 | 55 | /** 56 | * @brief Memory Protection unit presence. 57 | */ 58 | #define CORTEX_HAS_MPU __MPU_PRESENT 59 | 60 | /** 61 | * @brief Number of bits in priority masks. 62 | */ 63 | #define CORTEX_PRIORITY_BITS __NVIC_PRIO_BITS 64 | 65 | #endif /* _CMPARAMS_H_ */ 66 | 67 | /** @} */ 68 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/ARMCMx/LPC8xx/port.mk: -------------------------------------------------------------------------------- 1 | # List of the ChibiOS/RT Cortex-M0 LPC8xx port files. 2 | PORTSRC = $(CHIBIOS)/os/ports/GCC/ARMCMx/crt0.c \ 3 | $(CHIBIOS)/os/ports/GCC/ARMCMx/LPC8xx/vectors.c \ 4 | ${CHIBIOS}/os/ports/GCC/ARMCMx/chcore.c \ 5 | ${CHIBIOS}/os/ports/GCC/ARMCMx/chcore_v6m.c \ 6 | ${CHIBIOS}/os/ports/common/ARMCMx/nvic.c 7 | 8 | PORTASM = 9 | 10 | PORTINC = ${CHIBIOS}/os/ports/common/ARMCMx/CMSIS/include \ 11 | ${CHIBIOS}/os/ports/common/ARMCMx \ 12 | ${CHIBIOS}/os/ports/GCC/ARMCMx \ 13 | ${CHIBIOS}/os/ports/GCC/ARMCMx/LPC8xx 14 | 15 | PORTLD = ${CHIBIOS}/os/ports/GCC/ARMCMx/LPC8xx/ld 16 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/ARMCMx/SAM4L/cmparams.h: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file GCC/ARMCMx/SAM4L/cmparams.h 30 | * @brief ARM Cortex-M4 parameters for the ATSAM4L. 31 | * 32 | * @defgroup ARMCMx_SAM4L ATSAM4L Specific Parameters 33 | * @ingroup ARMCMx_SPECIFIC 34 | * @details This file contains the Cortex-M4 specific parameters for the 35 | * ATSAM4L platform. 36 | * @{ 37 | */ 38 | 39 | #ifndef _CMPARAMS_H_ 40 | #define _CMPARAMS_H_ 41 | 42 | /** 43 | * @brief Cortex core model. 44 | */ 45 | #define CORTEX_MODEL CORTEX_M4 46 | 47 | /** 48 | * @brief Systick unit presence. 49 | */ 50 | #define CORTEX_HAS_ST TRUE 51 | 52 | /** 53 | * @brief Memory Protection unit presence. 54 | */ 55 | #define CORTEX_HAS_MPU TRUE 56 | 57 | /** 58 | * @brief Floating Point unit presence. 59 | */ 60 | #define CORTEX_HAS_FPU FALSE 61 | 62 | /** 63 | * @brief Number of bits in priority masks. 64 | */ 65 | #define CORTEX_PRIORITY_BITS 4 66 | 67 | #endif /* _CMPARAMS_H_ */ 68 | 69 | /** @} */ 70 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/ARMCMx/SAM4L/port.mk: -------------------------------------------------------------------------------- 1 | # List of the ChibiOS/RT Cortex-M4 STM32 port files. 2 | PORTSRC = $(CHIBIOS)/os/ports/GCC/ARMCMx/crt0.c \ 3 | $(CHIBIOS)/os/ports/GCC/ARMCMx/SAM4L/vectors.c \ 4 | ${CHIBIOS}/os/ports/GCC/ARMCMx/chcore.c \ 5 | ${CHIBIOS}/os/ports/GCC/ARMCMx/chcore_v7m.c \ 6 | ${CHIBIOS}/os/ports/common/ARMCMx/nvic.c 7 | 8 | PORTASM = 9 | 10 | PORTINC = ${CHIBIOS}/os/ports/common/ARMCMx/CMSIS/include \ 11 | ${CHIBIOS}/os/ports/common/ARMCMx \ 12 | ${CHIBIOS}/os/ports/GCC/ARMCMx \ 13 | ${CHIBIOS}/os/ports/GCC/ARMCMx/SAM4L 14 | 15 | PORTLD = ${CHIBIOS}/os/ports/GCC/ARMCMx/SAM4L/ld 16 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/ARMCMx/STM32F0xx/cmparams.h: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file GCC/ARMCMx/STM32F0xx/cmparams.h 30 | * @brief ARM Cortex-M0 parameters for the STM32F0xx. 31 | * 32 | * @defgroup ARMCMx_STM32F0xx STM32F0xx Specific Parameters 33 | * @ingroup ARMCMx_SPECIFIC 34 | * @details This file contains the Cortex-M0 specific parameters for the 35 | * STM32F0xx platform. 36 | * @{ 37 | */ 38 | 39 | #ifndef _CMPARAMS_H_ 40 | #define _CMPARAMS_H_ 41 | 42 | /** 43 | * @brief Cortex core model. 44 | */ 45 | #define CORTEX_MODEL CORTEX_M0 46 | 47 | /** 48 | * @brief Systick unit presence. 49 | */ 50 | #define CORTEX_HAS_ST TRUE 51 | 52 | /** 53 | * @brief Memory Protection unit presence. 54 | */ 55 | #define CORTEX_HAS_MPU FALSE 56 | 57 | /** 58 | * @brief Floating Point unit presence. 59 | */ 60 | #define CORTEX_HAS_FPU FALSE 61 | 62 | /** 63 | * @brief Number of bits in priority masks. 64 | */ 65 | #define CORTEX_PRIORITY_BITS 2 66 | 67 | #endif /* _CMPARAMS_H_ */ 68 | 69 | /** @} */ 70 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/ARMCMx/STM32F0xx/port.mk: -------------------------------------------------------------------------------- 1 | # List of the ChibiOS/RT Cortex-M0 STM32 port files. 2 | PORTSRC = $(CHIBIOS)/os/ports/GCC/ARMCMx/crt0.c \ 3 | $(CHIBIOS)/os/ports/GCC/ARMCMx/STM32F0xx/vectors.c \ 4 | ${CHIBIOS}/os/ports/GCC/ARMCMx/chcore.c \ 5 | ${CHIBIOS}/os/ports/GCC/ARMCMx/chcore_v6m.c \ 6 | ${CHIBIOS}/os/ports/common/ARMCMx/nvic.c 7 | 8 | PORTASM = 9 | 10 | PORTINC = ${CHIBIOS}/os/ports/common/ARMCMx/CMSIS/include \ 11 | ${CHIBIOS}/os/ports/common/ARMCMx \ 12 | ${CHIBIOS}/os/ports/GCC/ARMCMx \ 13 | ${CHIBIOS}/os/ports/GCC/ARMCMx/STM32F0xx 14 | 15 | PORTLD = ${CHIBIOS}/os/ports/GCC/ARMCMx/STM32F0xx/ld 16 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/ARMCMx/STM32F1xx/cmparams.h: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file GCC/ARMCMx/STM32F1xx/cmparams.h 30 | * @brief ARM Cortex-M3 parameters for the STM32F1xx. 31 | * 32 | * @defgroup ARMCMx_STM32F1xx STM32F1xx Specific Parameters 33 | * @ingroup ARMCMx_SPECIFIC 34 | * @details This file contains the Cortex-M3 specific parameters for the 35 | * STM32F1xx platform. 36 | * @{ 37 | */ 38 | 39 | #ifndef _CMPARAMS_H_ 40 | #define _CMPARAMS_H_ 41 | 42 | /** 43 | * @brief Cortex core model. 44 | */ 45 | #define CORTEX_MODEL CORTEX_M3 46 | 47 | /** 48 | * @brief Systick unit presence. 49 | */ 50 | #define CORTEX_HAS_ST TRUE 51 | 52 | /** 53 | * @brief Memory Protection unit presence. 54 | */ 55 | #define CORTEX_HAS_MPU FALSE 56 | 57 | /** 58 | * @brief Floating Point unit presence. 59 | */ 60 | #define CORTEX_HAS_FPU FALSE 61 | 62 | /** 63 | * @brief Number of bits in priority masks. 64 | */ 65 | #define CORTEX_PRIORITY_BITS 4 66 | 67 | #endif /* _CMPARAMS_H_ */ 68 | 69 | /** @} */ 70 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/ARMCMx/STM32F1xx/port.mk: -------------------------------------------------------------------------------- 1 | # List of the ChibiOS/RT Cortex-M3 STM32 port files. 2 | PORTSRC = $(CHIBIOS)/os/ports/GCC/ARMCMx/crt0.c \ 3 | $(CHIBIOS)/os/ports/GCC/ARMCMx/STM32F1xx/vectors.c \ 4 | ${CHIBIOS}/os/ports/GCC/ARMCMx/chcore.c \ 5 | ${CHIBIOS}/os/ports/GCC/ARMCMx/chcore_v7m.c \ 6 | ${CHIBIOS}/os/ports/common/ARMCMx/nvic.c 7 | 8 | PORTASM = 9 | 10 | PORTINC = ${CHIBIOS}/os/ports/common/ARMCMx/CMSIS/include \ 11 | ${CHIBIOS}/os/ports/common/ARMCMx \ 12 | ${CHIBIOS}/os/ports/GCC/ARMCMx \ 13 | ${CHIBIOS}/os/ports/GCC/ARMCMx/STM32F1xx 14 | 15 | PORTLD = ${CHIBIOS}/os/ports/GCC/ARMCMx/STM32F1xx/ld 16 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/ARMCMx/STM32F2xx/cmparams.h: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file GCC/ARMCMx/STM32F2xx/cmparams.h 30 | * @brief ARM Cortex-M3 parameters for the STM32F2xx. 31 | * 32 | * @defgroup ARMCMx_STM32F2xx STM32F2xx Specific Parameters 33 | * @ingroup ARMCMx_SPECIFIC 34 | * @details This file contains the Cortex-M4 specific parameters for the 35 | * STM32F2xx platform. 36 | * @{ 37 | */ 38 | 39 | #ifndef _CMPARAMS_H_ 40 | #define _CMPARAMS_H_ 41 | 42 | /** 43 | * @brief Cortex core model. 44 | */ 45 | #define CORTEX_MODEL CORTEX_M3 46 | 47 | /** 48 | * @brief Systick unit presence. 49 | */ 50 | #define CORTEX_HAS_ST TRUE 51 | 52 | /** 53 | * @brief Memory Protection unit presence. 54 | */ 55 | #define CORTEX_HAS_MPU TRUE 56 | 57 | /** 58 | * @brief Floating Point unit presence. 59 | */ 60 | #define CORTEX_HAS_FPU FALSE 61 | 62 | /** 63 | * @brief Number of bits in priority masks. 64 | */ 65 | #define CORTEX_PRIORITY_BITS 4 66 | 67 | #endif /* _CMPARAMS_H_ */ 68 | 69 | /** @} */ 70 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/ARMCMx/STM32F2xx/port.mk: -------------------------------------------------------------------------------- 1 | # List of the ChibiOS/RT Cortex-M3 STM32 port files. 2 | PORTSRC = $(CHIBIOS)/os/ports/GCC/ARMCMx/crt0.c \ 3 | $(CHIBIOS)/os/ports/GCC/ARMCMx/STM32F2xx/vectors.c \ 4 | ${CHIBIOS}/os/ports/GCC/ARMCMx/chcore.c \ 5 | ${CHIBIOS}/os/ports/GCC/ARMCMx/chcore_v7m.c \ 6 | ${CHIBIOS}/os/ports/common/ARMCMx/nvic.c 7 | 8 | PORTASM = 9 | 10 | PORTINC = ${CHIBIOS}/os/ports/common/ARMCMx/CMSIS/include \ 11 | ${CHIBIOS}/os/ports/common/ARMCMx \ 12 | ${CHIBIOS}/os/ports/GCC/ARMCMx \ 13 | ${CHIBIOS}/os/ports/GCC/ARMCMx/STM32F2xx 14 | 15 | PORTLD = ${CHIBIOS}/os/ports/GCC/ARMCMx/STM32F2xx/ld 16 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/ARMCMx/STM32F3xx/cmparams.h: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file GCC/ARMCMx/STM32F3xx/cmparams.h 30 | * @brief ARM Cortex-M4 parameters for the STM32F3xx. 31 | * 32 | * @defgroup ARMCMx_STM32F3xx STM32F3xx Specific Parameters 33 | * @ingroup ARMCMx_SPECIFIC 34 | * @details This file contains the Cortex-M4 specific parameters for the 35 | * STM32F3xx platform. 36 | * @{ 37 | */ 38 | 39 | #ifndef _CMPARAMS_H_ 40 | #define _CMPARAMS_H_ 41 | 42 | /** 43 | * @brief Cortex core model. 44 | */ 45 | #define CORTEX_MODEL CORTEX_M4 46 | 47 | /** 48 | * @brief Systick unit presence. 49 | */ 50 | #define CORTEX_HAS_ST TRUE 51 | 52 | /** 53 | * @brief Memory Protection unit presence. 54 | */ 55 | #define CORTEX_HAS_MPU TRUE 56 | 57 | /** 58 | * @brief Floating Point unit presence. 59 | */ 60 | #define CORTEX_HAS_FPU TRUE 61 | 62 | /** 63 | * @brief Number of bits in priority masks. 64 | */ 65 | #define CORTEX_PRIORITY_BITS 4 66 | 67 | #endif /* _CMPARAMS_H_ */ 68 | 69 | /** @} */ 70 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/ARMCMx/STM32F3xx/port.mk: -------------------------------------------------------------------------------- 1 | # List of the ChibiOS/RT Cortex-M4 STM32 port files. 2 | PORTSRC = $(CHIBIOS)/os/ports/GCC/ARMCMx/crt0.c \ 3 | $(CHIBIOS)/os/ports/GCC/ARMCMx/STM32F3xx/vectors.c \ 4 | ${CHIBIOS}/os/ports/GCC/ARMCMx/chcore.c \ 5 | ${CHIBIOS}/os/ports/GCC/ARMCMx/chcore_v7m.c \ 6 | ${CHIBIOS}/os/ports/common/ARMCMx/nvic.c 7 | 8 | PORTASM = 9 | 10 | PORTINC = ${CHIBIOS}/os/ports/common/ARMCMx/CMSIS/include \ 11 | ${CHIBIOS}/os/ports/common/ARMCMx \ 12 | ${CHIBIOS}/os/ports/GCC/ARMCMx \ 13 | ${CHIBIOS}/os/ports/GCC/ARMCMx/STM32F3xx 14 | 15 | PORTLD = ${CHIBIOS}/os/ports/GCC/ARMCMx/STM32F3xx/ld 16 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/ARMCMx/STM32F4xx/cmparams.h: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file GCC/ARMCMx/STM32F4xx/cmparams.h 30 | * @brief ARM Cortex-M4 parameters for the STM32F4xx. 31 | * 32 | * @defgroup ARMCMx_STM32F4xx STM32F4xx Specific Parameters 33 | * @ingroup ARMCMx_SPECIFIC 34 | * @details This file contains the Cortex-M4 specific parameters for the 35 | * STM32F4xx platform. 36 | * @{ 37 | */ 38 | 39 | #ifndef _CMPARAMS_H_ 40 | #define _CMPARAMS_H_ 41 | 42 | /** 43 | * @brief Cortex core model. 44 | */ 45 | #define CORTEX_MODEL CORTEX_M4 46 | 47 | /** 48 | * @brief Systick unit presence. 49 | */ 50 | #define CORTEX_HAS_ST TRUE 51 | 52 | /** 53 | * @brief Memory Protection unit presence. 54 | */ 55 | #define CORTEX_HAS_MPU TRUE 56 | 57 | /** 58 | * @brief Floating Point unit presence. 59 | */ 60 | #define CORTEX_HAS_FPU TRUE 61 | 62 | /** 63 | * @brief Number of bits in priority masks. 64 | */ 65 | #define CORTEX_PRIORITY_BITS 4 66 | 67 | #endif /* _CMPARAMS_H_ */ 68 | 69 | /** @} */ 70 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/ARMCMx/STM32F4xx/port.mk: -------------------------------------------------------------------------------- 1 | # List of the ChibiOS/RT Cortex-M4 STM32 port files. 2 | PORTSRC = $(CHIBIOS)/os/ports/GCC/ARMCMx/crt0.c \ 3 | $(CHIBIOS)/os/ports/GCC/ARMCMx/STM32F4xx/vectors.c \ 4 | ${CHIBIOS}/os/ports/GCC/ARMCMx/chcore.c \ 5 | ${CHIBIOS}/os/ports/GCC/ARMCMx/chcore_v7m.c \ 6 | ${CHIBIOS}/os/ports/common/ARMCMx/nvic.c 7 | 8 | PORTASM = 9 | 10 | PORTINC = ${CHIBIOS}/os/ports/common/ARMCMx/CMSIS/include \ 11 | ${CHIBIOS}/os/ports/common/ARMCMx \ 12 | ${CHIBIOS}/os/ports/GCC/ARMCMx \ 13 | ${CHIBIOS}/os/ports/GCC/ARMCMx/STM32F4xx 14 | 15 | PORTLD = ${CHIBIOS}/os/ports/GCC/ARMCMx/STM32F4xx/ld 16 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/ARMCMx/STM32L1xx/cmparams.h: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file GCC/ARMCMx/STM32L1xx/cmparams.h 30 | * @brief ARM Cortex-M3 parameters for the STM32L1xx. 31 | * 32 | * @defgroup ARMCMx_STM32L1xx STM32L1xx Specific Parameters 33 | * @ingroup ARMCMx_SPECIFIC 34 | * @details This file contains the Cortex-M3 specific parameters for the 35 | * STM32L1xx platform. 36 | * @{ 37 | */ 38 | 39 | #ifndef _CMPARAMS_H_ 40 | #define _CMPARAMS_H_ 41 | 42 | /** 43 | * @brief Cortex core model. 44 | */ 45 | #define CORTEX_MODEL CORTEX_M3 46 | 47 | /** 48 | * @brief Systick unit presence. 49 | */ 50 | #define CORTEX_HAS_ST TRUE 51 | 52 | /** 53 | * @brief Memory Protection unit presence. 54 | */ 55 | #define CORTEX_HAS_MPU TRUE 56 | 57 | /** 58 | * @brief Floating Point unit presence. 59 | */ 60 | #define CORTEX_HAS_FPU FALSE 61 | 62 | /** 63 | * @brief Number of bits in priority masks. 64 | */ 65 | #define CORTEX_PRIORITY_BITS 4 66 | 67 | #endif /* _CMPARAMS_H_ */ 68 | 69 | /** @} */ 70 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/ARMCMx/STM32L1xx/port.mk: -------------------------------------------------------------------------------- 1 | # List of the ChibiOS/RT Cortex-M3 STM32L1xx port files. 2 | PORTSRC = $(CHIBIOS)/os/ports/GCC/ARMCMx/crt0.c \ 3 | $(CHIBIOS)/os/ports/GCC/ARMCMx/STM32L1xx/vectors.c \ 4 | ${CHIBIOS}/os/ports/GCC/ARMCMx/chcore.c \ 5 | ${CHIBIOS}/os/ports/GCC/ARMCMx/chcore_v7m.c \ 6 | ${CHIBIOS}/os/ports/common/ARMCMx/nvic.c 7 | 8 | PORTASM = 9 | 10 | PORTINC = ${CHIBIOS}/os/ports/common/ARMCMx/CMSIS/include \ 11 | ${CHIBIOS}/os/ports/common/ARMCMx \ 12 | ${CHIBIOS}/os/ports/GCC/ARMCMx \ 13 | ${CHIBIOS}/os/ports/GCC/ARMCMx/STM32L1xx 14 | 15 | PORTLD = ${CHIBIOS}/os/ports/GCC/ARMCMx/STM32L1xx/ld 16 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/ARMCMx/chcore.c: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file GCC/ARMCMx/chcore.c 30 | * @brief ARM Cortex-Mx port code. 31 | * 32 | * @addtogroup ARMCMx_CORE 33 | * @{ 34 | */ 35 | 36 | #include "ch.h" 37 | 38 | /** 39 | * @brief Halts the system. 40 | * @note The function is declared as a weak symbol, it is possible 41 | * to redefine it in your application code. 42 | */ 43 | #if !defined(__DOXYGEN__) 44 | __attribute__((weak)) 45 | #endif 46 | void port_halt(void) { 47 | 48 | port_disable(); 49 | while (TRUE) { 50 | } 51 | } 52 | 53 | /** @} */ 54 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/AVR/port.mk: -------------------------------------------------------------------------------- 1 | # List of the ChibiOS/RT AVR port files. 2 | PORTSRC = ${CHIBIOS}/os/ports/GCC/AVR/chcore.c 3 | 4 | PORTASM = 5 | 6 | PORTINC = ${CHIBIOS}/os/ports/GCC/AVR 7 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/MSP430/chcoreasm.s: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | #include "chconf.h" 29 | 30 | #define FALSE 0 31 | #define TRUE 1 32 | 33 | .text 34 | .p2align 1, 0 35 | .weak _port_switch 36 | _port_switch: 37 | push r11 38 | push r10 39 | push r9 40 | push r8 41 | push r7 42 | push r6 43 | push r5 44 | push r4 45 | mov r1, 6(r14) 46 | mov 6(r15), r1 47 | pop r4 48 | pop r5 49 | pop r6 50 | pop r7 51 | pop r8 52 | pop r9 53 | pop r10 54 | pop r11 55 | ret 56 | 57 | .p2align 1, 0 58 | .weak _port_thread_start 59 | _port_thread_start: 60 | #if CH_DBG_SYSTEM_STATE_CHECK 61 | call #dbg_check_unlock 62 | #endif 63 | eint 64 | mov r11, r15 65 | call r10 66 | call #chThdExit 67 | ; Falls into _port_halt 68 | 69 | .p2align 1, 0 70 | .weak _port_halt 71 | _port_halt: 72 | dint 73 | .L1: jmp .L1 74 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/MSP430/port.mk: -------------------------------------------------------------------------------- 1 | # List of the ChibiOS/RT MSP430 port files. 2 | PORTSRC = 3 | 4 | PORTASM = ${CHIBIOS}/os/ports/GCC/MSP430/chcoreasm.s 5 | 6 | PORTINC = ${CHIBIOS}/os/ports/GCC/MSP430 7 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/MSP430/rules.mk: -------------------------------------------------------------------------------- 1 | # MSP430 makefile scripts and rules. 2 | 3 | # Automatic compiler options 4 | OPT = $(USE_OPT) 5 | COPT = $(USE_COPT) 6 | CPPOPT = $(USE_CPPOPT) 7 | ifeq ($(USE_LINK_GC),yes) 8 | OPT += -ffunction-sections -fdata-sections 9 | endif 10 | 11 | # Source files groups 12 | SRC = $(CSRC)$(CPPSRC) 13 | 14 | # Object files groups 15 | COBJS = $(CSRC:.c=.o) 16 | CPPOBJS = $(CPPSRC:.cpp=.o) 17 | ASMOBJS = $(ASMSRC:.s=.o) 18 | OBJS = $(ASMOBJS) $(COBJS) $(CPPOBJS) 19 | 20 | # Paths 21 | IINCDIR = $(patsubst %,-I%,$(INCDIR) $(DINCDIR) $(UINCDIR)) 22 | LLIBDIR = $(patsubst %,-L%,$(DLIBDIR) $(ULIBDIR)) 23 | 24 | # Macros 25 | DEFS = $(DDEFS) $(UDEFS) 26 | ADEFS = $(DADEFS) $(UADEFS) 27 | 28 | # Libs 29 | LIBS = $(DLIBS) $(ULIBS) 30 | 31 | MCFLAGS = -mmcu=$(MCU) 32 | ODFLAGS = -x --syms 33 | ASFLAGS = $(MCFLAGS) -Wa,-amhls=$(<:.s=.lst) $(ADEFS) 34 | CPFLAGS = $(MCFLAGS) $(OPT) $(COPT) $(WARN) -Wa,-alms=$(<:.c=.lst) $(DEFS) 35 | ifeq ($(LINK_GC),yes) 36 | LDFLAGS = $(MCFLAGS) -T$(LDSCRIPT) -Wl,-Map=$(PROJECT).map,--cref,--no-warn-mismatch,--gc-sections $(LLIBDIR) 37 | else 38 | LDFLAGS = $(MCFLAGS) -T$(LDSCRIPT) -Wl,-Map=$(PROJECT).map,--cref,--no-warn-mismatch $(LLIBDIR) 39 | endif 40 | 41 | # Generate dependency information 42 | ASFLAGS += -MD -MP -MF .dep/$(@F).d 43 | CPFLAGS += -MD -MP -MF .dep/$(@F).d 44 | 45 | # 46 | # Makefile rules 47 | # 48 | all: $(OBJS) $(PROJECT).elf $(PROJECT).hex $(PROJECT).bin $(PROJECT).dmp MAKE_ALL_RULE_HOOK 49 | 50 | MAKE_ALL_RULE_HOOK: 51 | 52 | $(CPPOBJS) : %.o : %.cpp 53 | @echo 54 | $(CPPC) -c $(CPPFLAGS) -I . $(IINCDIR) $< -o $@ 55 | 56 | $(COBJS) : %.o : %.c 57 | @echo 58 | $(CC) -c $(CPFLAGS) -I . $(IINCDIR) $< -o $@ 59 | 60 | $(ASMOBJS) : %.o : %.s 61 | @echo 62 | $(AS) -c $(ASFLAGS) -I . $(IINCDIR) $< -o $@ 63 | 64 | %elf: $(OBJS) 65 | @echo 66 | $(LD) $(OBJS) $(LDFLAGS) $(LIBS) -o $@ 67 | 68 | %hex: %elf 69 | $(HEX) $< $@ 70 | 71 | %bin: %elf 72 | $(BIN) $< $@ 73 | 74 | %dmp: %elf 75 | $(OD) $(ODFLAGS) $< > $@ 76 | 77 | clean: 78 | -rm -f $(OBJS) 79 | -rm -f $(CSRC:.c=.lst) $(CPPSRC:.cpp=.lst) $(ASMSRC:.s=.lst) 80 | -rm -f $(PROJECT).elf $(PROJECT).dmp $(PROJECT).map $(PROJECT).hex $(PROJECT).bin 81 | -rm -fR .dep 82 | 83 | # 84 | # Include the dependency files, should be the last of the makefile 85 | # 86 | -include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*) 87 | 88 | # *** EOF *** 89 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/PPC/SPC560BCxx/bam.s: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file SPC560BCxx/bam.s 30 | * @brief SPC560BCxx boot assistant record. 31 | * 32 | * @addtogroup PPC_CORE 33 | * @{ 34 | */ 35 | 36 | #if !defined(__DOXYGEN__) 37 | 38 | /* BAM record.*/ 39 | .section .bam, "ax" 40 | .long 0x015A0000 41 | .long _reset_address 42 | 43 | .align 2 44 | .globl _reset_address 45 | .type _reset_address, @function 46 | _reset_address: 47 | bl _coreinit 48 | bl _ivinit 49 | 50 | b _boot_address 51 | 52 | #endif /* !defined(__DOXYGEN__) */ 53 | 54 | /** @} */ 55 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/PPC/SPC560BCxx/port.mk: -------------------------------------------------------------------------------- 1 | # List of the ChibiOS/RT SPC560BCxx port files. 2 | PORTSRC = ${CHIBIOS}/os/ports/GCC/PPC/chcore.c 3 | 4 | PORTASM = ${CHIBIOS}/os/ports/GCC/PPC/SPC560BCxx/bam.s \ 5 | ${CHIBIOS}/os/ports/GCC/PPC/SPC560BCxx/core.s \ 6 | ${CHIBIOS}/os/ports/GCC/PPC/SPC560BCxx/vectors.s \ 7 | ${CHIBIOS}/os/ports/GCC/PPC/ivor.s \ 8 | ${CHIBIOS}/os/ports/GCC/PPC/crt0.s 9 | 10 | PORTINC = ${CHIBIOS}/os/ports/GCC/PPC \ 11 | ${CHIBIOS}/os/ports/GCC/PPC/SPC560BCxx 12 | 13 | PORTLD = ${CHIBIOS}/os/ports/GCC/PPC/SPC560BCxx/ld 14 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/PPC/SPC560Bxx/bam.s: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file SPC560Bxx/bam.s 30 | * @brief SPC560Bxx boot assistant record. 31 | * 32 | * @addtogroup PPC_CORE 33 | * @{ 34 | */ 35 | 36 | #if !defined(__DOXYGEN__) 37 | 38 | /* BAM record.*/ 39 | .section .bam, "ax" 40 | .long 0x015A0000 41 | .long _reset_address 42 | 43 | .align 2 44 | .globl _reset_address 45 | .type _reset_address, @function 46 | _reset_address: 47 | bl _coreinit 48 | bl _ivinit 49 | 50 | b _boot_address 51 | 52 | #endif /* !defined(__DOXYGEN__) */ 53 | 54 | /** @} */ 55 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/PPC/SPC560Bxx/port.mk: -------------------------------------------------------------------------------- 1 | # List of the ChibiOS/RT SPC560Bxx port files. 2 | PORTSRC = ${CHIBIOS}/os/ports/GCC/PPC/chcore.c 3 | 4 | PORTASM = ${CHIBIOS}/os/ports/GCC/PPC/SPC560Bxx/bam.s \ 5 | ${CHIBIOS}/os/ports/GCC/PPC/SPC560Bxx/core.s \ 6 | ${CHIBIOS}/os/ports/GCC/PPC/SPC560Bxx/vectors.s \ 7 | ${CHIBIOS}/os/ports/GCC/PPC/ivor.s \ 8 | ${CHIBIOS}/os/ports/GCC/PPC/crt0.s 9 | 10 | PORTINC = ${CHIBIOS}/os/ports/GCC/PPC \ 11 | ${CHIBIOS}/os/ports/GCC/PPC/SPC560Bxx 12 | 13 | PORTLD = ${CHIBIOS}/os/ports/GCC/PPC/SPC560Bxx/ld 14 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/PPC/SPC560Dxx/bam.s: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file SPC560Dxx/bam.s 30 | * @brief SPC560Dxx boot assistant record. 31 | * 32 | * @addtogroup PPC_CORE 33 | * @{ 34 | */ 35 | 36 | #if !defined(__DOXYGEN__) 37 | 38 | /* BAM record.*/ 39 | .section .bam, "ax" 40 | .long 0x015A0000 41 | .long _reset_address 42 | 43 | .align 2 44 | .globl _reset_address 45 | .type _reset_address, @function 46 | _reset_address: 47 | bl _coreinit 48 | bl _ivinit 49 | 50 | b _boot_address 51 | 52 | #endif /* !defined(__DOXYGEN__) */ 53 | 54 | /** @} */ 55 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/PPC/SPC560Dxx/port.mk: -------------------------------------------------------------------------------- 1 | # List of the ChibiOS/RT SPC560Dxx port files. 2 | PORTSRC = ${CHIBIOS}/os/ports/GCC/PPC/chcore.c 3 | 4 | PORTASM = ${CHIBIOS}/os/ports/GCC/PPC/SPC560Dxx/bam.s \ 5 | ${CHIBIOS}/os/ports/GCC/PPC/SPC560Dxx/core.s \ 6 | ${CHIBIOS}/os/ports/GCC/PPC/SPC560Dxx/vectors.s \ 7 | ${CHIBIOS}/os/ports/GCC/PPC/ivor.s \ 8 | ${CHIBIOS}/os/ports/GCC/PPC/crt0.s 9 | 10 | PORTINC = ${CHIBIOS}/os/ports/GCC/PPC \ 11 | ${CHIBIOS}/os/ports/GCC/PPC/SPC560Dxx 12 | 13 | PORTLD = ${CHIBIOS}/os/ports/GCC/PPC/SPC560Dxx/ld 14 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/PPC/SPC560Pxx/bam.s: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file SPC560Pxx/bam.s 30 | * @brief SPC560Pxx boot assistant record. 31 | * 32 | * @addtogroup PPC_CORE 33 | * @{ 34 | */ 35 | 36 | #if !defined(__DOXYGEN__) 37 | 38 | /* BAM record.*/ 39 | .section .bam, "ax" 40 | .long 0x015A0000 41 | .long _reset_address 42 | 43 | .align 2 44 | .globl _reset_address 45 | .type _reset_address, @function 46 | _reset_address: 47 | bl _coreinit 48 | bl _ivinit 49 | 50 | b _boot_address 51 | 52 | #endif /* !defined(__DOXYGEN__) */ 53 | 54 | /** @} */ 55 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/PPC/SPC560Pxx/port.mk: -------------------------------------------------------------------------------- 1 | # List of the ChibiOS/RT SPC560Pxx port files. 2 | PORTSRC = ${CHIBIOS}/os/ports/GCC/PPC/chcore.c 3 | 4 | PORTASM = ${CHIBIOS}/os/ports/GCC/PPC/SPC560Pxx/bam.s \ 5 | ${CHIBIOS}/os/ports/GCC/PPC/SPC560Pxx/core.s \ 6 | ${CHIBIOS}/os/ports/GCC/PPC/SPC560Pxx/vectors.s \ 7 | ${CHIBIOS}/os/ports/GCC/PPC/ivor.s \ 8 | ${CHIBIOS}/os/ports/GCC/PPC/crt0.s 9 | 10 | PORTINC = ${CHIBIOS}/os/ports/GCC/PPC \ 11 | ${CHIBIOS}/os/ports/GCC/PPC/SPC560Pxx 12 | 13 | PORTLD = ${CHIBIOS}/os/ports/GCC/PPC/SPC560Pxx/ld 14 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/PPC/SPC563Mxx/bam.s: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file SPC563Mxx/bam.s 30 | * @brief SPC563Mxx boot assistant record. 31 | * 32 | * @addtogroup PPC_CORE 33 | * @{ 34 | */ 35 | 36 | #if !defined(__DOXYGEN__) 37 | 38 | /* BAM record.*/ 39 | .section .bam, "ax" 40 | #if PPC_USE_VLE 41 | .long 0x015A0000 42 | #else 43 | .long 0x005A0000 44 | #endif 45 | .long _reset_address 46 | 47 | .align 2 48 | .globl _reset_address 49 | .type _reset_address, @function 50 | _reset_address: 51 | bl _coreinit 52 | bl _ivinit 53 | 54 | b _boot_address 55 | 56 | #endif /* !defined(__DOXYGEN__) */ 57 | 58 | /** @} */ 59 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/PPC/SPC563Mxx/port.mk: -------------------------------------------------------------------------------- 1 | # List of the ChibiOS/RT SPC563Mxx port files. 2 | PORTSRC = ${CHIBIOS}/os/ports/GCC/PPC/chcore.c 3 | 4 | PORTASM = ${CHIBIOS}/os/ports/GCC/PPC/SPC563Mxx/bam.s \ 5 | ${CHIBIOS}/os/ports/GCC/PPC/SPC563Mxx/core.s \ 6 | ${CHIBIOS}/os/ports/GCC/PPC/SPC563Mxx/vectors.s \ 7 | ${CHIBIOS}/os/ports/GCC/PPC/ivor.s \ 8 | ${CHIBIOS}/os/ports/GCC/PPC/crt0.s 9 | 10 | PORTINC = ${CHIBIOS}/os/ports/GCC/PPC \ 11 | ${CHIBIOS}/os/ports/GCC/PPC/SPC563Mxx 12 | 13 | PORTLD = ${CHIBIOS}/os/ports/GCC/PPC/SPC563Mxx/ld 14 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/PPC/SPC563Mxx/ppcparams.h: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file SPC563Mxx/ppcparams.h 30 | * @brief PowerPC parameters for the SPC563Mxx. 31 | * 32 | * @defgroup PPC_SPC563Mxx SPC563Mxx Specific Parameters 33 | * @ingroup PPC_SPECIFIC 34 | * @details This file contains the PowerPC specific parameters for the 35 | * SPC563Mxx platform. 36 | * @{ 37 | */ 38 | 39 | #ifndef _PPCPARAMS_H_ 40 | #define _PPCPARAMS_H_ 41 | 42 | /** 43 | * @brief PPC core model. 44 | */ 45 | #define PPC_VARIANT PPC_VARIANT_e200z3 46 | 47 | /** 48 | * @brief Number of writable bits in IVPR register. 49 | */ 50 | #define PPC_IVPR_BITS 16 51 | 52 | /** 53 | * @brief IVORx registers support. 54 | */ 55 | #define PPC_SUPPORTS_IVORS TRUE 56 | 57 | /** 58 | * @brief Book E instruction set support. 59 | */ 60 | #define PPC_SUPPORTS_BOOKE TRUE 61 | 62 | /** 63 | * @brief VLE instruction set support. 64 | */ 65 | #define PPC_SUPPORTS_VLE TRUE 66 | 67 | /** 68 | * @brief Supports VLS Load/Store Multiple Volatile instructions. 69 | */ 70 | #define PPC_SUPPORTS_VLE_MULTI TRUE 71 | 72 | /** 73 | * @brief Supports the decrementer timer. 74 | */ 75 | #define PPC_SUPPORTS_DECREMENTER TRUE 76 | 77 | #endif /* _PPCPARAMS_H_ */ 78 | 79 | /** @} */ 80 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/PPC/SPC564Axx/bam.s: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file SPC564Axx/bam.s 30 | * @brief SPC564Axx boot assistant record. 31 | * 32 | * @addtogroup PPC_CORE 33 | * @{ 34 | */ 35 | 36 | #if !defined(__DOXYGEN__) 37 | 38 | /* BAM record.*/ 39 | .section .bam, "ax" 40 | #if PPC_USE_VLE 41 | .long 0x015A0000 42 | #else 43 | .long 0x005A0000 44 | #endif 45 | .long _reset_address 46 | 47 | .align 2 48 | .globl _reset_address 49 | .type _reset_address, @function 50 | _reset_address: 51 | bl _coreinit 52 | bl _ivinit 53 | 54 | b _boot_address 55 | 56 | #endif /* !defined(__DOXYGEN__) */ 57 | 58 | /** @} */ 59 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/PPC/SPC564Axx/port.mk: -------------------------------------------------------------------------------- 1 | # List of the ChibiOS/RT SPC564Axx port files. 2 | PORTSRC = ${CHIBIOS}/os/ports/GCC/PPC/chcore.c 3 | 4 | PORTASM = ${CHIBIOS}/os/ports/GCC/PPC/SPC564Axx/bam.s \ 5 | ${CHIBIOS}/os/ports/GCC/PPC/SPC564Axx/core.s \ 6 | ${CHIBIOS}/os/ports/GCC/PPC/SPC564Axx/vectors.s \ 7 | ${CHIBIOS}/os/ports/GCC/PPC/ivor.s \ 8 | ${CHIBIOS}/os/ports/GCC/PPC/crt0.s 9 | 10 | PORTINC = ${CHIBIOS}/os/ports/GCC/PPC \ 11 | ${CHIBIOS}/os/ports/GCC/PPC/SPC564Axx 12 | 13 | PORTLD = ${CHIBIOS}/os/ports/GCC/PPC/SPC564Axx/ld 14 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/PPC/SPC564Axx/ppcparams.h: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file SPC564Axx/ppcparams.h 30 | * @brief PowerPC parameters for the SPC564Axx. 31 | * 32 | * @defgroup PPC_SPC564Axx SPC564Axx Specific Parameters 33 | * @ingroup PPC_SPECIFIC 34 | * @details This file contains the PowerPC specific parameters for the 35 | * SPC564Axx platform. 36 | * @{ 37 | */ 38 | 39 | #ifndef _PPCPARAMS_H_ 40 | #define _PPCPARAMS_H_ 41 | 42 | /** 43 | * @brief PPC core model. 44 | */ 45 | #define PPC_VARIANT PPC_VARIANT_e200z4 46 | 47 | /** 48 | * @brief IVORx registers support. 49 | */ 50 | #define PPC_SUPPORTS_IVORS TRUE 51 | 52 | /** 53 | * @brief Book E instruction set support. 54 | */ 55 | #define PPC_SUPPORTS_BOOKE TRUE 56 | 57 | /** 58 | * @brief VLE instruction set support. 59 | */ 60 | #define PPC_SUPPORTS_VLE TRUE 61 | 62 | /** 63 | * @brief Supports VLS Load/Store Multiple Volatile instructions. 64 | */ 65 | #define PPC_SUPPORTS_VLE_MULTI TRUE 66 | 67 | /** 68 | * @brief Supports the decrementer timer. 69 | */ 70 | #define PPC_SUPPORTS_DECREMENTER TRUE 71 | 72 | #endif /* _PPCPARAMS_H_ */ 73 | 74 | /** @} */ 75 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/PPC/SPC56ELxx/bam.s: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file SPC56ELxx/bam.s 30 | * @brief SPC56ELxx boot assistant record. 31 | * 32 | * @addtogroup PPC_CORE 33 | * @{ 34 | */ 35 | 36 | #if !defined(__DOXYGEN__) 37 | 38 | /* BAM record.*/ 39 | .section .bam, "ax" 40 | #if PPC_USE_VLE 41 | .long 0x015A0000 42 | #else 43 | .long 0x005A0000 44 | #endif 45 | .long _reset_address 46 | 47 | .align 2 48 | .globl _reset_address 49 | .type _reset_address, @function 50 | _reset_address: 51 | bl _coreinit 52 | bl _ivinit 53 | 54 | b _boot_address 55 | 56 | #endif /* !defined(__DOXYGEN__) */ 57 | 58 | /** @} */ 59 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/PPC/SPC56ELxx/port.mk: -------------------------------------------------------------------------------- 1 | # List of the ChibiOS/RT SPC56ELxx port files. 2 | PORTSRC = ${CHIBIOS}/os/ports/GCC/PPC/chcore.c 3 | 4 | PORTASM = ${CHIBIOS}/os/ports/GCC/PPC/SPC56ELxx/bam.s \ 5 | ${CHIBIOS}/os/ports/GCC/PPC/SPC56ELxx/core.s \ 6 | ${CHIBIOS}/os/ports/GCC/PPC/SPC56ELxx/vectors.s \ 7 | ${CHIBIOS}/os/ports/GCC/PPC/ivor.s \ 8 | ${CHIBIOS}/os/ports/GCC/PPC/crt0.s 9 | 10 | PORTINC = ${CHIBIOS}/os/ports/GCC/PPC \ 11 | ${CHIBIOS}/os/ports/GCC/PPC/SPC56ELxx 12 | 13 | PORTLD = ${CHIBIOS}/os/ports/GCC/PPC/SPC56ELxx/ld 14 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/GCC/SIMIA32/port.mk: -------------------------------------------------------------------------------- 1 | # List of the ChibiOS/RT SIMIA32 port files. 2 | PORTSRC = ${CHIBIOS}/os/ports/GCC/SIMIA32/chcore.c 3 | 4 | PORTASM = 5 | 6 | PORTINC = ${CHIBIOS}/os/ports/GCC/SIMIA32 7 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/IAR/ARMCMx/LPC11xx/cmparams.h: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file IAR/ARMCMx/LPC11xx/cmparams.h 30 | * @brief ARM Cortex-M0 parameters for the LPC11xx. 31 | * 32 | * @defgroup IAR_ARMCMx_LPC11xx LPC11xx Specific Parameters 33 | * @ingroup IAR_ARMCMx_SPECIFIC 34 | * @details This file contains the Cortex-M0 specific parameters for the 35 | * LPC11xx platform. 36 | * @{ 37 | */ 38 | 39 | #ifndef _CMPARAMS_H_ 40 | #define _CMPARAMS_H_ 41 | 42 | /** 43 | * @brief Cortex core model. 44 | */ 45 | #define CORTEX_MODEL CORTEX_M0 46 | 47 | /** 48 | * @brief Systick unit presence. 49 | */ 50 | #define CORTEX_HAS_ST TRUE 51 | 52 | /** 53 | * @brief Memory Protection unit presence. 54 | */ 55 | #define CORTEX_HAS_MPU FALSE 56 | 57 | /** 58 | * @brief Floating Point unit presence. 59 | */ 60 | #define CORTEX_HAS_FPU FALSE 61 | 62 | /** 63 | * @brief Number of bits in priority masks. 64 | */ 65 | #define CORTEX_PRIORITY_BITS 2 66 | 67 | #endif /* _CMPARAMS_H_ */ 68 | 69 | /** @} */ 70 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/IAR/ARMCMx/LPC13xx/cmparams.h: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file IAR/ARMCMx/LPC13xx/cmparams.h 30 | * @brief ARM Cortex-M3 parameters for the LPC13xx. 31 | * 32 | * @defgroup IAR_ARMCMx_LPC13xx LPC13xx Specific Parameters 33 | * @ingroup IAR_ARMCMx_SPECIFIC 34 | * @details This file contains the Cortex-M3 specific parameters for the 35 | * LPC13xx platform. 36 | * @{ 37 | */ 38 | 39 | #ifndef _CMPARAMS_H_ 40 | #define _CMPARAMS_H_ 41 | 42 | /** 43 | * @brief Cortex core model. 44 | */ 45 | #define CORTEX_MODEL CORTEX_M3 46 | 47 | /** 48 | * @brief Systick unit presence. 49 | */ 50 | #define CORTEX_HAS_ST TRUE 51 | 52 | /** 53 | * @brief Memory Protection unit presence. 54 | */ 55 | #define CORTEX_HAS_MPU FALSE 56 | 57 | /** 58 | * @brief Floating Point unit presence. 59 | */ 60 | #define CORTEX_HAS_FPU FALSE 61 | 62 | /** 63 | * @brief Number of bits in priority masks. 64 | */ 65 | #define CORTEX_PRIORITY_BITS 3 66 | 67 | #endif /* _CMPARAMS_H_ */ 68 | 69 | /** @} */ 70 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/IAR/ARMCMx/STM32F1xx/cmparams.h: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file IAR/ARMCMx/STM32F1xx/cmparams.h 30 | * @brief ARM Cortex-M3 parameters for the STM32F1xx. 31 | * 32 | * @defgroup IAR_ARMCMx_STM32F1xx STM32F1xx Specific Parameters 33 | * @ingroup IAR_ARMCMx_SPECIFIC 34 | * @details This file contains the Cortex-M3 specific parameters for the 35 | * STM32F1xx platform. 36 | * @{ 37 | */ 38 | 39 | #ifndef _CMPARAMS_H_ 40 | #define _CMPARAMS_H_ 41 | 42 | /** 43 | * @brief Cortex core model. 44 | */ 45 | #define CORTEX_MODEL CORTEX_M3 46 | 47 | /** 48 | * @brief Systick unit presence. 49 | */ 50 | #define CORTEX_HAS_ST TRUE 51 | 52 | /** 53 | * @brief Memory Protection unit presence. 54 | */ 55 | #define CORTEX_HAS_MPU FALSE 56 | 57 | /** 58 | * @brief Floating Point unit presence. 59 | */ 60 | #define CORTEX_HAS_FPU FALSE 61 | 62 | /** 63 | * @brief Number of bits in priority masks. 64 | */ 65 | #define CORTEX_PRIORITY_BITS 4 66 | 67 | #endif /* _CMPARAMS_H_ */ 68 | 69 | /** @} */ 70 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/IAR/ARMCMx/STM32F4xx/cmparams.h: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file IAR/ARMCMx/STM32F4xx/cmparams.h 30 | * @brief ARM Cortex-M3 parameters for the STM32F4xx. 31 | * 32 | * @defgroup IAR_ARMCMx_STM32F4xx STM32F4xx Specific Parameters 33 | * @ingroup IAR_ARMCMx_SPECIFIC 34 | * @details This file contains the Cortex-M4 specific parameters for the 35 | * STM32F4xx platform. 36 | * @{ 37 | */ 38 | 39 | #ifndef _CMPARAMS_H_ 40 | #define _CMPARAMS_H_ 41 | 42 | /** 43 | * @brief Cortex core model. 44 | */ 45 | #define CORTEX_MODEL CORTEX_M4 46 | 47 | /** 48 | * @brief Systick unit presence. 49 | */ 50 | #define CORTEX_HAS_ST TRUE 51 | 52 | /** 53 | * @brief Memory Protection unit presence. 54 | */ 55 | #define CORTEX_HAS_MPU TRUE 56 | 57 | /** 58 | * @brief Floating Point unit presence. 59 | */ 60 | #define CORTEX_HAS_FPU TRUE 61 | 62 | /** 63 | * @brief Number of bits in priority masks. 64 | */ 65 | #define CORTEX_PRIORITY_BITS 4 66 | 67 | #endif /* _CMPARAMS_H_ */ 68 | 69 | /** @} */ 70 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/IAR/ARMCMx/STM32L1xx/cmparams.h: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file IAR/ARMCMx/STM32L1xx/cmparams.h 30 | * @brief ARM Cortex-M3 parameters for the STM32L1xx. 31 | * 32 | * @defgroup IAR_ARMCMx_STM32L1xx STM32L1xx Specific Parameters 33 | * @ingroup IAR_ARMCMx_SPECIFIC 34 | * @details This file contains the Cortex-M3 specific parameters for the 35 | * STM32L1xx platform. 36 | * @{ 37 | */ 38 | 39 | #ifndef _CMPARAMS_H_ 40 | #define _CMPARAMS_H_ 41 | 42 | /** 43 | * @brief Cortex core model. 44 | */ 45 | #define CORTEX_MODEL CORTEX_M3 46 | 47 | /** 48 | * @brief Systick unit presence. 49 | */ 50 | #define CORTEX_HAS_ST TRUE 51 | 52 | /** 53 | * @brief Memory Protection unit presence. 54 | */ 55 | #define CORTEX_HAS_MPU TRUE 56 | 57 | /** 58 | * @brief Floating Point unit presence. 59 | */ 60 | #define CORTEX_HAS_FPU FALSE 61 | 62 | /** 63 | * @brief Number of bits in priority masks. 64 | */ 65 | #define CORTEX_PRIORITY_BITS 4 66 | 67 | #endif /* _CMPARAMS_H_ */ 68 | 69 | /** @} */ 70 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/IAR/ARMCMx/chcore.c: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file IAR/ARMCMx/chcore.c 30 | * @brief ARM Cortex-Mx port code. 31 | * 32 | * @addtogroup IAR_ARMCMx_CORE 33 | * @{ 34 | */ 35 | 36 | #include "ch.h" 37 | 38 | /** 39 | * @brief Halts the system. 40 | * @note The function is declared as a weak symbol, it is possible 41 | * to redefine it in your application code. 42 | */ 43 | #if !defined(__DOXYGEN__) 44 | __weak 45 | #endif 46 | void port_halt(void) { 47 | 48 | port_disable(); 49 | while (TRUE) { 50 | } 51 | } 52 | 53 | /** @} */ 54 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/RVCT/ARMCMx/LPC11xx/cmparams.h: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file RVCT/ARMCMx/LPC11xx/cmparams.h 30 | * @brief ARM Cortex-M0 parameters for the LPC11xx. 31 | * 32 | * @defgroup RVCT_ARMCMx_LPC11xx LPC11xx Specific Parameters 33 | * @ingroup RVCT_ARMCMx_SPECIFIC 34 | * @details This file contains the Cortex-M0 specific parameters for the 35 | * LPC11xx platform. 36 | * @{ 37 | */ 38 | 39 | #ifndef _CMPARAMS_H_ 40 | #define _CMPARAMS_H_ 41 | 42 | /** 43 | * @brief Cortex core model. 44 | */ 45 | #define CORTEX_MODEL CORTEX_M0 46 | 47 | /** 48 | * @brief Systick unit presence. 49 | */ 50 | #define CORTEX_HAS_ST TRUE 51 | 52 | /** 53 | * @brief Memory Protection unit presence. 54 | */ 55 | #define CORTEX_HAS_MPU FALSE 56 | 57 | /** 58 | * @brief Floating Point unit presence. 59 | */ 60 | #define CORTEX_HAS_FPU FALSE 61 | 62 | /** 63 | * @brief Number of bits in priority masks. 64 | */ 65 | #define CORTEX_PRIORITY_BITS 2 66 | 67 | #endif /* _CMPARAMS_H_ */ 68 | 69 | /** @} */ 70 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/RVCT/ARMCMx/LPC13xx/cmparams.h: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file RVCT/ARMCMx/LPC13xx/cmparams.h 30 | * @brief ARM Cortex-M3 parameters for the LPC13xx. 31 | * 32 | * @defgroup RVCT_ARMCMx_LPC13xx LPC13xx Specific Parameters 33 | * @ingroup RVCT_ARMCMx_SPECIFIC 34 | * @details This file contains the Cortex-M3 specific parameters for the 35 | * LPC13xx platform. 36 | * @{ 37 | */ 38 | 39 | #ifndef _CMPARAMS_H_ 40 | #define _CMPARAMS_H_ 41 | 42 | /** 43 | * @brief Cortex core model. 44 | */ 45 | #define CORTEX_MODEL CORTEX_M3 46 | 47 | /** 48 | * @brief Systick unit presence. 49 | */ 50 | #define CORTEX_HAS_ST TRUE 51 | 52 | /** 53 | * @brief Memory Protection unit presence. 54 | */ 55 | #define CORTEX_HAS_MPU FALSE 56 | 57 | /** 58 | * @brief Floating Point unit presence. 59 | */ 60 | #define CORTEX_HAS_FPU FALSE 61 | 62 | /** 63 | * @brief Number of bits in priority masks. 64 | */ 65 | #define CORTEX_PRIORITY_BITS 3 66 | 67 | #endif /* _CMPARAMS_H_ */ 68 | 69 | /** @} */ 70 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/RVCT/ARMCMx/STM32F1xx/cmparams.h: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file RVCT/ARMCMx/STM32F1xx/cmparams.h 30 | * @brief ARM Cortex-M3 parameters for the STM32F1xx. 31 | * 32 | * @defgroup RVCT_ARMCMx_STM32F1xx STM32F1xx Specific Parameters 33 | * @ingroup RVCT_ARMCMx_SPECIFIC 34 | * @details This file contains the Cortex-M3 specific parameters for the 35 | * STM32F1xx platform. 36 | * @{ 37 | */ 38 | 39 | #ifndef _CMPARAMS_H_ 40 | #define _CMPARAMS_H_ 41 | 42 | /** 43 | * @brief Cortex core model. 44 | */ 45 | #define CORTEX_MODEL CORTEX_M3 46 | 47 | /** 48 | * @brief Systick unit presence. 49 | */ 50 | #define CORTEX_HAS_ST TRUE 51 | 52 | /** 53 | * @brief Memory Protection unit presence. 54 | */ 55 | #define CORTEX_HAS_MPU FALSE 56 | 57 | /** 58 | * @brief Floating Point unit presence. 59 | */ 60 | #define CORTEX_HAS_FPU FALSE 61 | 62 | /** 63 | * @brief Number of bits in priority masks. 64 | */ 65 | #define CORTEX_PRIORITY_BITS 4 66 | 67 | #endif /* _CMPARAMS_H_ */ 68 | 69 | /** @} */ 70 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/RVCT/ARMCMx/STM32F4xx/cmparams.h: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file RVCT/ARMCMx/STM32F4xx/cmparams.h 30 | * @brief ARM Cortex-M3 parameters for the STM32F4xx. 31 | * 32 | * @defgroup RVCT_ARMCMx_STM32F4xx STM32F4xx Specific Parameters 33 | * @ingroup RVCT_ARMCMx_SPECIFIC 34 | * @details This file contains the Cortex-M4 specific parameters for the 35 | * STM32F4xx platform. 36 | * @{ 37 | */ 38 | 39 | #ifndef _CMPARAMS_H_ 40 | #define _CMPARAMS_H_ 41 | 42 | /** 43 | * @brief Cortex core model. 44 | */ 45 | #define CORTEX_MODEL CORTEX_M4 46 | 47 | /** 48 | * @brief Systick unit presence. 49 | */ 50 | #define CORTEX_HAS_ST TRUE 51 | 52 | /** 53 | * @brief Memory Protection unit presence. 54 | */ 55 | #define CORTEX_HAS_MPU TRUE 56 | 57 | /** 58 | * @brief Floating Point unit presence. 59 | */ 60 | #define CORTEX_HAS_FPU TRUE 61 | 62 | /** 63 | * @brief Number of bits in priority masks. 64 | */ 65 | #define CORTEX_PRIORITY_BITS 4 66 | 67 | #endif /* _CMPARAMS_H_ */ 68 | 69 | /** @} */ 70 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/RVCT/ARMCMx/STM32L1xx/cmparams.h: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file RVCT/ARMCMx/STM32L1xx/cmparams.h 30 | * @brief ARM Cortex-M3 parameters for the STM32L1xx. 31 | * 32 | * @defgroup RVCT_ARMCMx_STM32L1xx STM32L1xx Specific Parameters 33 | * @ingroup RVCT_ARMCMx_SPECIFIC 34 | * @details This file contains the Cortex-M3 specific parameters for the 35 | * STM32L1xx platform. 36 | * @{ 37 | */ 38 | 39 | #ifndef _CMPARAMS_H_ 40 | #define _CMPARAMS_H_ 41 | 42 | /** 43 | * @brief Cortex core model. 44 | */ 45 | #define CORTEX_MODEL CORTEX_M3 46 | 47 | /** 48 | * @brief Systick unit presence. 49 | */ 50 | #define CORTEX_HAS_ST TRUE 51 | 52 | /** 53 | * @brief Memory Protection unit presence. 54 | */ 55 | #define CORTEX_HAS_MPU TRUE 56 | 57 | /** 58 | * @brief Floating Point unit presence. 59 | */ 60 | #define CORTEX_HAS_FPU FALSE 61 | 62 | /** 63 | * @brief Number of bits in priority masks. 64 | */ 65 | #define CORTEX_PRIORITY_BITS 4 66 | 67 | #endif /* _CMPARAMS_H_ */ 68 | 69 | /** @} */ 70 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/RVCT/ARMCMx/chcore.c: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @file RVCT/ARMCMx/chcore.c 30 | * @brief ARM Cortex-Mx port code. 31 | * 32 | * @addtogroup RVCT_ARMCMx_CORE 33 | * @{ 34 | */ 35 | 36 | #include "ch.h" 37 | 38 | /** 39 | * @brief Halts the system. 40 | * @note The function is declared as a weak symbol, it is possible 41 | * to redefine it in your application code. 42 | */ 43 | #if !defined(__DOXYGEN__) 44 | __attribute__((weak)) 45 | #endif 46 | void port_halt(void) { 47 | 48 | port_disable(); 49 | while (TRUE) { 50 | } 51 | } 52 | 53 | /** @} */ 54 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/common/ARMCMx/CMSIS/include/arm_common_tables.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------- 2 | * Copyright (C) 2010 ARM Limited. All rights reserved. 3 | * 4 | * $Date: 11. November 2010 5 | * $Revision: V1.0.2 6 | * 7 | * Project: CMSIS DSP Library 8 | * Title: arm_common_tables.h 9 | * 10 | * Description: This file has extern declaration for common tables like Bitreverse, reciprocal etc which are used across different functions 11 | * 12 | * Target Processor: Cortex-M4/Cortex-M3 13 | * 14 | * Version 1.0.2 2010/11/11 15 | * Documentation updated. 16 | * 17 | * Version 1.0.1 2010/10/05 18 | * Production release and review comments incorporated. 19 | * 20 | * Version 1.0.0 2010/09/20 21 | * Production release and review comments incorporated. 22 | * -------------------------------------------------------------------- */ 23 | 24 | #ifndef _ARM_COMMON_TABLES_H 25 | #define _ARM_COMMON_TABLES_H 26 | 27 | #include "arm_math.h" 28 | 29 | extern const uint16_t armBitRevTable[1024]; 30 | extern const q15_t armRecipTableQ15[64]; 31 | extern const q31_t armRecipTableQ31[64]; 32 | extern const q31_t realCoefAQ31[1024]; 33 | extern const q31_t realCoefBQ31[1024]; 34 | extern const float32_t twiddleCoef[6144]; 35 | extern const q31_t twiddleCoefQ31[6144]; 36 | extern const q15_t twiddleCoefQ15[6144]; 37 | 38 | #endif /* ARM_COMMON_TABLES_H */ 39 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/common/ARMCMx/CMSIS/readme.txt: -------------------------------------------------------------------------------- 1 | CMSIS is Copyright (C) 2011 ARM Limited. All rights reserved. 2 | 3 | This directory contains only part of the CMSIS package. If you need the whole 4 | package please download it from: 5 | 6 | http://www.onarm.com 7 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/common/ARMCMx/port.dox: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @defgroup COMMON_ARMCMx ARM Cortex-Mx Common Code 30 | * @ingroup port_common 31 | */ 32 | 33 | /** 34 | * @defgroup COMMON_ARMCMx_NVIC NVIC Support 35 | * @details ARM Cortex-Mx NVIC support. 36 | * 37 | * @ingroup COMMON_ARMCMx 38 | */ 39 | 40 | /** @} */ 41 | 42 | -------------------------------------------------------------------------------- /Firmware/IAR/os/ports/ports.dox: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 3 | 2011,2012,2013 Giovanni Di Sirio. 4 | 5 | This file is part of ChibiOS/RT. 6 | 7 | ChibiOS/RT is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | ChibiOS/RT is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | 20 | --- 21 | 22 | A special exception to the GPL can be applied should you wish to distribute 23 | a combined work that includes ChibiOS/RT, without being obliged to provide 24 | the source code for any proprietary components. See the file exception.txt 25 | for full details of how and when the exception can be applied. 26 | */ 27 | 28 | /** 29 | * @defgroup ports Ports 30 | * This section describes the technical details of the various supported 31 | * ChibiOS/RT ports. 32 | */ 33 | 34 | /** 35 | * @defgroup port_common Common Code 36 | * Code common to all compilers. 37 | * 38 | * @ingroup ports 39 | */ 40 | 41 | /** 42 | * @defgroup gcc GCC Ports 43 | * Ports for the GCC compiler or derivatives. 44 | * 45 | * @ingroup ports 46 | */ 47 | 48 | /** 49 | * @defgroup iar IAR Ports 50 | * Ports for the IAR compiler. 51 | * 52 | * @ingroup ports 53 | */ 54 | 55 | /** 56 | * @defgroup rvct RVCT Ports 57 | * Ports for the RVCT compiler. 58 | * 59 | * @ingroup ports 60 | */ 61 | 62 | /* * 63 | * @defgroup cosmic Cosmic Compiler Ports 64 | * Ports for the Compiler compiler. 65 | * 66 | * @ingroup ports 67 | */ 68 | 69 | /* * 70 | * @defgroup raisonance Raisonance Compiler Ports 71 | * Ports for the Raisonance compiler. 72 | * 73 | * @ingroup ports 74 | */ 75 | -------------------------------------------------------------------------------- /Firmware/IAR/os/various/chrtclib.h: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006-2013 Giovanni Di Sirio 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | /* 17 | Concepts and parts of this file have been contributed by Uladzimir Pylinsky 18 | aka barthess. 19 | */ 20 | 21 | /** 22 | * @file chrtclib.h 23 | * @brief RTC time conversion utilities header. 24 | * 25 | * @addtogroup chrtclib 26 | * @{ 27 | */ 28 | 29 | #ifndef CHRTCLIB_H_ 30 | #define CHRTCLIB_H_ 31 | 32 | #include 33 | 34 | #if HAL_USE_RTC || defined(__DOXYGEN__) 35 | 36 | /*===========================================================================*/ 37 | /* External declarations. */ 38 | /*===========================================================================*/ 39 | 40 | #ifdef __cplusplus 41 | extern "C" { 42 | #endif 43 | #if !STM32_RTC_IS_CALENDAR 44 | uint32_t rtcGetTimeFat(RTCDriver *rtcp); 45 | #endif 46 | void rtcGetTimeTm(RTCDriver *rtcp, struct tm *timp); 47 | void rtcSetTimeTm(RTCDriver *rtcp, struct tm *timp); 48 | time_t rtcGetTimeUnixSec(RTCDriver *rtcp); 49 | uint64_t rtcGetTimeUnixUsec(RTCDriver *rtcp); 50 | void rtcSetTimeUnixSec(RTCDriver *rtcp, time_t tv_sec); 51 | #ifdef __cplusplus 52 | } 53 | #endif 54 | 55 | #endif /* HAL_USE_RTC */ 56 | 57 | #endif /* CHRTCLIB_H_ */ 58 | 59 | /** @} */ 60 | -------------------------------------------------------------------------------- /Firmware/IAR/os/various/cpp_wrappers/kernel.mk: -------------------------------------------------------------------------------- 1 | # C++ wrapper files. 2 | CHCPPSRC = ${CHIBIOS}/os/various/cpp_wrappers/ch.cpp 3 | 4 | CHCPPINC = ${CHIBIOS}/os/various/cpp_wrappers 5 | -------------------------------------------------------------------------------- /Firmware/IAR/os/various/devices_lib/accel/lis302dl.dox: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006-2013 Giovanni Di Sirio 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | /** 18 | * @defgroup lis302dl Interface module for LIS302DL MEMS 19 | * 20 | * @brief Interface module for LIS302DL MEMS. 21 | * @details This module implements a generic interface for the LIS302DL 22 | * STMicroelectronics MEMS device. The communication is performed 23 | * through a standard SPI driver. 24 | * 25 | * @ingroup accel 26 | */ 27 | -------------------------------------------------------------------------------- /Firmware/IAR/os/various/evtimer.c: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006-2013 Giovanni Di Sirio 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | /** 18 | * @file evtimer.c 19 | * @brief Events Generator Timer code. 20 | * 21 | * @addtogroup event_timer 22 | * @{ 23 | */ 24 | 25 | #include "ch.h" 26 | #include "evtimer.h" 27 | 28 | static void tmrcb(void *p) { 29 | EvTimer *etp = p; 30 | 31 | chSysLockFromIsr(); 32 | chEvtBroadcastI(&etp->et_es); 33 | chVTSetI(&etp->et_vt, etp->et_interval, tmrcb, etp); 34 | chSysUnlockFromIsr(); 35 | } 36 | 37 | /** 38 | * @brief Starts the timer 39 | * @details If the timer was already running then the function has no effect. 40 | * 41 | * @param etp pointer to an initialized @p EvTimer structure. 42 | */ 43 | void evtStart(EvTimer *etp) { 44 | 45 | chSysLock(); 46 | 47 | if (!chVTIsArmedI(&etp->et_vt)) 48 | chVTSetI(&etp->et_vt, etp->et_interval, tmrcb, etp); 49 | 50 | chSysUnlock(); 51 | } 52 | 53 | /** 54 | * @brief Stops the timer. 55 | * @details If the timer was already stopped then the function has no effect. 56 | * 57 | * @param etp pointer to an initialized @p EvTimer structure. 58 | */ 59 | void evtStop(EvTimer *etp) { 60 | 61 | chVTReset(&etp->et_vt); 62 | } 63 | 64 | /** @} */ 65 | -------------------------------------------------------------------------------- /Firmware/IAR/os/various/evtimer.h: -------------------------------------------------------------------------------- 1 | /* 2 | ChibiOS/RT - Copyright (C) 2006-2013 Giovanni Di Sirio 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | /** 18 | * @file evtimer.h 19 | * @brief Events Generator Timer structures and macros. 20 | * 21 | * @addtogroup event_timer 22 | * @{ 23 | */ 24 | 25 | #ifndef _EVTIMER_H_ 26 | #define _EVTIMER_H_ 27 | 28 | 29 | /* 30 | * Module dependencies check. 31 | */ 32 | #if !CH_USE_EVENTS 33 | #error "Event Timers require CH_USE_EVENTS" 34 | #endif 35 | 36 | /** 37 | * @brief Event timer structure. 38 | */ 39 | typedef struct { 40 | VirtualTimer et_vt; 41 | EventSource et_es; 42 | systime_t et_interval; 43 | } EvTimer; 44 | 45 | #ifdef __cplusplus 46 | extern "C" { 47 | #endif 48 | void evtStart(EvTimer *etp); 49 | void evtStop(EvTimer *etp); 50 | #ifdef __cplusplus 51 | } 52 | #endif 53 | 54 | /** 55 | * @brief Initializes an @p EvTimer structure. 56 | * 57 | * @param etp the EvTimer structure to be initialized 58 | * @param time the interval in system ticks 59 | */ 60 | #define evtInit(etp, time) { \ 61 | chEvtInit(&(etp)->et_es); \ 62 | (etp)->et_vt.vt_func = NULL; \ 63 | (etp)->et_interval = (time); \ 64 | } 65 | 66 | #endif /* _EVTIMER_H_ */ 67 | 68 | /** @} */ 69 | -------------------------------------------------------------------------------- /Firmware/IAR/os/various/fatfs_bindings/fatfs.mk: -------------------------------------------------------------------------------- 1 | # FATFS files. 2 | FATFSSRC = ${CHIBIOS}/os/various/fatfs_bindings/fatfs_diskio.c \ 3 | ${CHIBIOS}/os/various/fatfs_bindings/fatfs_syscall.c \ 4 | ${CHIBIOS}/ext/fatfs/src/ff.c \ 5 | ${CHIBIOS}/ext/fatfs/src/option/ccsbcs.c 6 | 7 | FATFSINC = ${CHIBIOS}/ext/fatfs/src 8 | -------------------------------------------------------------------------------- /Firmware/IAR/os/various/fatfs_bindings/readme.txt: -------------------------------------------------------------------------------- 1 | This directory contains the ChibiOS/RT "official" bindings with the FatFS 2 | library by ChaN: http://elm-chan.org 3 | 4 | In order to use FatFS within ChibiOS/RT project, unzip FatFS under 5 | ./ext/fatfs then include $(CHIBIOS)/os/various/fatfs_bindings/fatfs.mk 6 | in your makefile. 7 | -------------------------------------------------------------------------------- /Firmware/IAR/os/various/lwip_bindings/lwip.mk: -------------------------------------------------------------------------------- 1 | # List of the required lwIP files. 2 | LWIP = ${CHIBIOS}/ext/lwip 3 | 4 | LWBINDSRC = \ 5 | $(CHIBIOS)/os/various/lwip_bindings/lwipthread.c \ 6 | $(CHIBIOS)/os/various/lwip_bindings/arch/sys_arch.c 7 | 8 | LWNETIFSRC = \ 9 | ${LWIP}/src/netif/etharp.c 10 | 11 | LWCORESRC = \ 12 | ${LWIP}/src/core/dhcp.c \ 13 | ${LWIP}/src/core/dns.c \ 14 | ${LWIP}/src/core/init.c \ 15 | ${LWIP}/src/core/mem.c \ 16 | ${LWIP}/src/core/memp.c \ 17 | ${LWIP}/src/core/netif.c \ 18 | ${LWIP}/src/core/pbuf.c \ 19 | ${LWIP}/src/core/raw.c \ 20 | ${LWIP}/src/core/stats.c \ 21 | ${LWIP}/src/core/sys.c \ 22 | ${LWIP}/src/core/tcp.c \ 23 | ${LWIP}/src/core/tcp_in.c \ 24 | ${LWIP}/src/core/tcp_out.c \ 25 | ${LWIP}/src/core/udp.c 26 | 27 | LWIPV4SRC = \ 28 | ${LWIP}/src/core/ipv4/autoip.c \ 29 | ${LWIP}/src/core/ipv4/icmp.c \ 30 | ${LWIP}/src/core/ipv4/igmp.c \ 31 | ${LWIP}/src/core/ipv4/inet.c \ 32 | ${LWIP}/src/core/ipv4/inet_chksum.c \ 33 | ${LWIP}/src/core/ipv4/ip.c \ 34 | ${LWIP}/src/core/ipv4/ip_addr.c \ 35 | ${LWIP}/src/core/ipv4/ip_frag.c \ 36 | ${LWIP}/src/core/def.c \ 37 | ${LWIP}/src/core/timers.c 38 | 39 | LWAPISRC = \ 40 | ${LWIP}/src/api/api_lib.c \ 41 | ${LWIP}/src/api/api_msg.c \ 42 | ${LWIP}/src/api/err.c \ 43 | ${LWIP}/src/api/netbuf.c \ 44 | ${LWIP}/src/api/netdb.c \ 45 | ${LWIP}/src/api/netifapi.c \ 46 | ${LWIP}/src/api/sockets.c \ 47 | ${LWIP}/src/api/tcpip.c 48 | 49 | LWSRC = $(LWBINDSRC) $(LWNETIFSRC) $(LWCORESRC) $(LWIPV4SRC) $(LWAPISRC) 50 | 51 | LWINC = \ 52 | $(CHIBIOS)/os/various/lwip_bindings \ 53 | ${LWIP}/src/include \ 54 | ${LWIP}/src/include/ipv4 55 | -------------------------------------------------------------------------------- /Firmware/IAR/os/various/lwip_bindings/readme.txt: -------------------------------------------------------------------------------- 1 | This directory contains the ChibiOS/RT "official" bindings with the lwIP 2 | TCP/IP stack: http://savannah.nongnu.org/projects/lwip 3 | 4 | In order to use FatFS within ChibiOS/RT project, unzip FatFS under 5 | ./ext/lwip-1.4.0 then include $(CHIBIOS)/os/various/lwip_bindings/lwip.mk 6 | in your makefile. 7 | -------------------------------------------------------------------------------- /Hardware/CAN_Logger.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akpc806a/CAN_Logger/db23d2e5c2f1b6b5b7c5ac875baa646f43d4948c/Hardware/CAN_Logger.pdf -------------------------------------------------------------------------------- /Hardware/Gerber/CANLogger_Gerber_PCBway.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akpc806a/CAN_Logger/db23d2e5c2f1b6b5b7c5ac875baa646f43d4948c/Hardware/Gerber/CANLogger_Gerber_PCBway.zip -------------------------------------------------------------------------------- /Hardware/Gerber/CAN_Logger.GBO: -------------------------------------------------------------------------------- 1 | G75* 2 | G70* 3 | %OFA0B0*% 4 | %FSLAX24Y24*% 5 | %IPPOS*% 6 | %LPD*% 7 | %AMOC8* 8 | 5,1,8,0,0,1.08239X$1,22.5* 9 | % 10 | %ADD10C,0.0000*% 11 | D10* 12 | X001043Y000625D02* 13 | X001043Y008833D01* 14 | X020042Y008833D01* 15 | X020042Y000625D01* 16 | X001043Y000625D01* 17 | M02* 18 | -------------------------------------------------------------------------------- /Hardware/Gerber/CAN_Logger.GBP: -------------------------------------------------------------------------------- 1 | G75* 2 | G70* 3 | %OFA0B0*% 4 | %FSLAX24Y24*% 5 | %IPPOS*% 6 | %LPD*% 7 | %AMOC8* 8 | 5,1,8,0,0,1.08239X$1,22.5* 9 | % 10 | %ADD10C,0.0000*% 11 | D10* 12 | X001043Y000625D02* 13 | X001043Y008833D01* 14 | X020042Y008833D01* 15 | X020042Y000625D01* 16 | X001043Y000625D01* 17 | M02* 18 | -------------------------------------------------------------------------------- /Hardware/Gerber/CAN_Logger.GBS: -------------------------------------------------------------------------------- 1 | G75* 2 | G70* 3 | %OFA0B0*% 4 | %FSLAX24Y24*% 5 | %IPPOS*% 6 | %LPD*% 7 | %AMOC8* 8 | 5,1,8,0,0,1.08239X$1,22.5* 9 | % 10 | %ADD10C,0.0000*% 11 | %ADD11C,0.0634*% 12 | D10* 13 | X001043Y000625D02* 14 | X001043Y008833D01* 15 | X020042Y008833D01* 16 | X020042Y000625D01* 17 | X001043Y000625D01* 18 | D11* 19 | X018953Y001425D02* 20 | X019546Y001425D01* 21 | X019546Y002425D02* 22 | X018953Y002425D01* 23 | X018928Y006150D02* 24 | X019521Y006150D01* 25 | X019521Y007150D02* 26 | X018928Y007150D01* 27 | X018928Y008150D02* 28 | X019521Y008150D01* 29 | M02* 30 | -------------------------------------------------------------------------------- /Hardware/Gerber/CAN_Logger.GML: -------------------------------------------------------------------------------- 1 | G75* 2 | G70* 3 | %OFA0B0*% 4 | %FSLAX24Y24*% 5 | %IPPOS*% 6 | %LPD*% 7 | %AMOC8* 8 | 5,1,8,0,0,1.08239X$1,22.5* 9 | % 10 | %ADD10C,0.0000*% 11 | D10* 12 | X001043Y000625D02* 13 | X001043Y008833D01* 14 | X020042Y008833D01* 15 | X020042Y000625D01* 16 | X001043Y000625D01* 17 | M02* 18 | -------------------------------------------------------------------------------- /Hardware/Gerber/CAN_Logger.TXT: -------------------------------------------------------------------------------- 1 | % 2 | M48 3 | M72 4 | T01C0.0157 5 | T02C0.0236 6 | T03C0.0394 7 | % 8 | T01 9 | X5774Y2400 10 | X6624Y2275 11 | X6249Y1775 12 | X7899Y2675 13 | X5374Y3600 14 | X8149Y4250 15 | X10499Y3800 16 | X11499Y4200 17 | X11699Y3650 18 | X12099Y3650 19 | X12024Y3175 20 | X13824Y3675 21 | X15399Y4300 22 | X14724Y5850 23 | X13899Y6425 24 | X13249Y5975 25 | X15724Y6350 26 | X13199Y7125 27 | X13899Y8000 28 | X13574Y8250 29 | X14574Y8500 30 | X15149Y8075 31 | X15824Y7950 32 | X10249Y7150 33 | X9874Y7150 34 | X7474Y8100 35 | X5849Y8475 36 | X4974Y7800 37 | X5124Y7200 38 | X5349Y6150 39 | X3174Y5575 40 | X2774Y5575 41 | X13724Y2100 42 | X13824Y1575 43 | X15024Y1575 44 | X19149Y3250 45 | X19524Y3250 46 | T02 47 | X4774Y1750 48 | X3124Y2375 49 | X4024Y4675 50 | X14449Y3100 51 | X16424Y1875 52 | T03 53 | X19249Y1425 54 | X19249Y2425 55 | X19224Y6150 56 | X19224Y7150 57 | X19224Y8150 58 | M30 59 | -------------------------------------------------------------------------------- /Hardware/Gerber/CAN_Logger.dri: -------------------------------------------------------------------------------- 1 | Generated by EAGLE CAM Processor 6.4.0 2 | 3 | Drill Station Info File: D:/Electronics/CAN/CAN_Logger/CAN_Logger/Hardware/CAN_Logger.dri 4 | 5 | Date : 7/15/2018 7:08:55 PM 6 | Drills : generated 7 | Device : Excellon drill station 8 | 9 | Parameter settings: 10 | 11 | Tolerance Drill + : 0.00 % 12 | Tolerance Drill - : 0.00 % 13 | Rotate : no 14 | Mirror : no 15 | Optimize : yes 16 | Auto fit : yes 17 | OffsetX : 0inch 18 | OffsetY : 0inch 19 | Layers : Drills Holes 20 | 21 | Drill File Info: 22 | 23 | Data Mode : Absolute 24 | Units : 1/10000 Inch 25 | 26 | Drills used: 27 | 28 | Code Size used 29 | 30 | T01 0.0157inch 37 31 | T02 0.0236inch 5 32 | T03 0.0394inch 5 33 | 34 | Total number of drills: 47 35 | 36 | Plotfiles: 37 | 38 | D:/Electronics/CAN/CAN_Logger/CAN_Logger/Hardware/CAN_Logger.TXT 39 | -------------------------------------------------------------------------------- /Hardware/Gerber/CAN_Logger.gpi: -------------------------------------------------------------------------------- 1 | Generated by EAGLE CAM Processor 6.4.0 2 | 3 | Photoplotter Info File: D:/Electronics/CAN/CAN_Logger/CAN_Logger/Hardware/CAN_Logger.gpi 4 | 5 | Date : 7/15/2018 7:08:56 PM 6 | Plotfile : D:/Electronics/CAN/CAN_Logger/CAN_Logger/Hardware/CAN_Logger.GTL 7 | Apertures : generated: 8 | Device : Gerber RS-274-X photoplotter, coordinate format 2.4 inch 9 | 10 | Parameter settings: 11 | 12 | Emulate Apertures : no 13 | Tolerance Draw + : 0.00 % 14 | Tolerance Draw - : 0.00 % 15 | Tolerance Flash + : 0.00 % 16 | Tolerance Flash - : 0.00 % 17 | Rotate : no 18 | Mirror : no 19 | Optimize : yes 20 | Auto fit : yes 21 | OffsetX : 0inch 22 | OffsetY : 0inch 23 | 24 | Plotfile Info: 25 | 26 | Coordinate Format : 2.4 27 | Coordinate Units : Inch 28 | Data Mode : Absolute 29 | Zero Suppression : None 30 | End Of Block : * 31 | 32 | Apertures used: 33 | 34 | Code Shape Size used 35 | 36 | D10 draw 0.0000inch 4 37 | D11 rectangle 0.0118inch x 0.0630inch 32 38 | D12 rectangle 0.0630inch x 0.0118inch 32 39 | D13 rectangle 0.0790inch x 0.0590inch 3 40 | D14 rectangle 0.0790inch x 0.1500inch 1 41 | D15 rectangle 0.0394inch x 0.0433inch 34 42 | D16 rectangle 0.0709inch x 0.0630inch 2 43 | D17 rectangle 0.0780inch x 0.0220inch 8 44 | D18 rectangle 0.0433inch x 0.0394inch 30 45 | D19 rectangle 0.2000inch x 0.0700inch 2 46 | D20 draw 0.0594inch 5 47 | D21 rectangle 0.0591inch x 0.0512inch 2 48 | D22 square 0.0394inch 2 49 | D23 rectangle 0.0394inch x 0.0551inch 3 50 | D24 square 0.0315inch 6 51 | D25 rectangle 0.0630inch x 0.0709inch 2 52 | D26 rectangle 0.0600inch x 0.0500inch 2 53 | D27 rectangle 0.0169inch x 0.0110inch 2 54 | D28 rectangle 0.0500inch x 0.1000inch 2 55 | D29 rectangle 0.0660inch x 0.0320inch 8 56 | D30 round 0.0277inch 37 57 | D31 draw 0.0240inch 41 58 | D32 draw 0.0100inch 284 59 | D33 draw 0.0160inch 9 60 | D34 draw 0.0400inch 13 61 | D35 draw 0.0320inch 12 62 | D36 draw 0.0560inch 7 63 | D37 round 0.0356inch 5 64 | 65 | -------------------------------------------------------------------------------- /Readme.md: -------------------------------------------------------------------------------- 1 | # CAN Bus Logger / Playback Device with SD-card 2 | 3 | The device can be used to log data from any CAN-bus based application: vehicle, automation, robotics, etc. The log is stored in comma separated text file (CSV) and each log entry (CAN-message) has a time stamp. It also has playback function, i.e. can play recorded file back onto a CAN bus, turning the device into a CAN bus simulator. The logger is an ideal solution for applications where small, cheap and simple device is needed to record CAN-bus activity without any additional hardware. 4 | 5 | ## Features 6 | 7 | - The device has only one start/stop button, and all the settings are stored in configuration text file on SD card. No external PC or smartphone is required for logger operation. 8 | - Bitrates up to 1 Mbps (any non-standard baud rate supported), supports CAN 2.0A (11-Bit ID) and CAN 2.0B (29-Bit ID). 9 | - Optional message filtering based on ID mask matching. 10 | - Selectable listen-only mode (without CAN bus acknowledge). 11 | - Three LEDs for indication of logger status. 12 | - Playback function with time accuracy of 3 ms. 13 | - Open source and open hardware project. 14 | 15 | 16 | ## Specification 17 | 18 | - Support for up to 32GB micro-SD cards (FAT32), for best results the UHS Speed Class 1 (U1) SD card recommended. 19 | - Power supply voltage: from +5V to +20V DC. 20 | - Dimensions: 48.26 x 20.85 mm (1.9 x 0.82 in). 21 | - Microcontroller: STM32F405RGT6 (ARM Cortex M4). 22 | 23 | ## Where to buy ready made device 24 | 25 | - [My Tindie store](https://www.tindie.com/products/akpc806a/can-bus-logger-with-sd-card/) 26 | - [eBay](https://www.ebay.com/sch/i.html?_from=R40&_trksid=p2380057.m570.l1313.TR0.TRC0.H0.XCAN+Bus+Logger+with+SD-card.TRS5&_nkw=CAN+Bus+Logger+with+SD-card&_sacat=0) 27 | 28 | ![N|Solid](http://i.ebayimg.com/images/g/-foAAOSwYXVYy2zs/s-l1600.jpg) --------------------------------------------------------------------------------