here the template file:
detailed steps:
Startup files.
-----------------------------------------
reference:
$(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/startup_stm32f1xx.mk
source files:
$(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/crt1.c
$(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/vectors.c
$(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/crt0_v7m.s
include folders:
$(CHIBIOS)/os/common/ports/ARMCMx/devices/STM32F1xx
$(CHIBIOS)/os/ext/CMSIS/include
$(CHIBIOS)/os/ext/CMSIS/ST
RTOS kernel files.
-----------------------------------------
reference:
$(CHIBIOS)/os/rt/rt.mk
source files:
$(CHIBIOS)/os/rt/src/chsys.c
$(CHIBIOS)/os/rt/src/chdebug.c
$(CHIBIOS)/os/rt/src/chvt.c
$(CHIBIOS)/os/rt/src/chschd.c
$(CHIBIOS)/os/rt/src/chthreads.c
$(CHIBIOS)/os/rt/src/chtm.c
$(CHIBIOS)/os/rt/src/chstats.c
$(CHIBIOS)/os/rt/src/chdynamic.c
$(CHIBIOS)/os/rt/src/chregistry.c
$(CHIBIOS)/os/rt/src/chsem.c
$(CHIBIOS)/os/rt/src/chmtx.c
$(CHIBIOS)/os/rt/src/chcond.c
$(CHIBIOS)/os/rt/src/chevents.c
$(CHIBIOS)/os/rt/src/chmsg.c
$(CHIBIOS)/os/rt/src/chmboxes.c
$(CHIBIOS)/os/rt/src/chqueues.c
$(CHIBIOS)/os/rt/src/chmemcore.c
$(CHIBIOS)/os/rt/src/chheap.c
$(CHIBIOS)/os/rt/src/chmempools.c
include folders:
$(CHIBIOS)/os/rt/include
RTOS kernel stm32 port files.
-----------------------------------------
reference:
$(CHIBIOS)/os/rt/ports/ARMCMx/compilers/GCC/mk/port_v7m.mk
source files:
$(CHIBIOS)/os/rt/ports/ARMCMx/chcore.c
$(CHIBIOS)/os/rt/ports/ARMCMx/chcore_v7m.c
$(CHIBIOS)/os/rt/ports/ARMCMx/compilers/GCC/chcoreasm_v7m.s
include folders:
$(CHIBIOS)/os/rt/ports/ARMCMx
$(CHIBIOS)/os/rt/ports/ARMCMx/compilers/GCC
OSAL files.
-----------------------------------------
reference:
$(CHIBIOS)/os/hal/osal/rt/osal.mk
source files:
${CHIBIOS}/os/hal/osal/rt/osal.c
include folders:
${CHIBIOS}/os/hal/osal/rt
HAL files.
-----------------------------------------
reference:
$(CHIBIOS)/os/hal/hal.mk
source files:
$(CHIBIOS)/os/hal/src/hal.c
$(CHIBIOS)/os/hal/src/hal_queues.c
$(CHIBIOS)/os/hal/src/hal_mmcsd.c
$(CHIBIOS)/os/hal/src/adc.c
$(CHIBIOS)/os/hal/src/can.c
$(CHIBIOS)/os/hal/src/dac.c
$(CHIBIOS)/os/hal/src/ext.c
$(CHIBIOS)/os/hal/src/gpt.c
$(CHIBIOS)/os/hal/src/i2c.c
$(CHIBIOS)/os/hal/src/i2s.c
$(CHIBIOS)/os/hal/src/icu.c
$(CHIBIOS)/os/hal/src/mac.c
$(CHIBIOS)/os/hal/src/mmc_spi.c
$(CHIBIOS)/os/hal/src/pal.c
$(CHIBIOS)/os/hal/src/pwm.c
$(CHIBIOS)/os/hal/src/rtc.c
$(CHIBIOS)/os/hal/src/sdc.c
$(CHIBIOS)/os/hal/src/serial.c
$(CHIBIOS)/os/hal/src/serial_usb.c
$(CHIBIOS)/os/hal/src/spi.c
$(CHIBIOS)/os/hal/src/st.c
$(CHIBIOS)/os/hal/src/uart.c
$(CHIBIOS)/os/hal/src/usb.c
include folders:
$(CHIBIOS)/os/hal/include
stm32 platform files.
-----------------------------------------
reference:
$(CHIBIOS)/os/hal/ports/STM32/STM32F1xx/platform.mk
source files:
$(CHIBIOS)/os/hal/ports/common/ARMCMx/nvic.c
$(CHIBIOS)/os/hal/ports/STM32/STM32F1xx/stm32_dma.c
$(CHIBIOS)/os/hal/ports/STM32/STM32F1xx/hal_lld.c
$(CHIBIOS)/os/hal/ports/STM32/STM32F1xx/adc_lld.c
$(CHIBIOS)/os/hal/ports/STM32/STM32F1xx/ext_lld_isr.c
$(CHIBIOS)/os/hal/ports/STM32/LLD/can_lld.c
$(CHIBIOS)/os/hal/ports/STM32/LLD/ext_lld.c
$(CHIBIOS)/os/hal/ports/STM32/LLD/mac_lld.c
$(CHIBIOS)/os/hal/ports/STM32/LLD/sdc_lld.c
$(CHIBIOS)/os/hal/ports/STM32/LLD/DACv1/dac_lld.c
$(CHIBIOS)/os/hal/ports/STM32/LLD/GPIOv1/pal_lld.c
$(CHIBIOS)/os/hal/ports/STM32/LLD/I2Cv1/i2c_lld.c
$(CHIBIOS)/os/hal/ports/STM32/LLD/RTCv1/rtc_lld.c
$(CHIBIOS)/os/hal/ports/STM32/LLD/SPIv1/spi_lld.c
$(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/gpt_lld.c
$(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/icu_lld.c
$(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/pwm_lld.c
$(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/st_lld.c
$(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv1/serial_lld.c
$(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv1/uart_lld.c
$(CHIBIOS)/os/hal/ports/STM32/LLD/USBv1/usb_lld.c
include folders:
$(CHIBIOS)/os/hal/ports/common/ARMCMx
$(CHIBIOS)/os/hal/ports/STM32/STM32F1xx
$(CHIBIOS)/os/hal/ports/STM32/LLD
$(CHIBIOS)/os/hal/ports/STM32/LLD/DACv1
$(CHIBIOS)/os/hal/ports/STM32/LLD/GPIOv1
$(CHIBIOS)/os/hal/ports/STM32/LLD/I2Cv1
$(CHIBIOS)/os/hal/ports/STM32/LLD/RTCv1
$(CHIBIOS)/os/hal/ports/STM32/LLD/SPIv1
$(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1
$(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv1
$(CHIBIOS)/os/hal/ports/STM32/LLD/USBv1
board files.
-----------------------------------------
source files:
$(your_board)/board.c
include folders:
$(your_board)
project build options
-----------------------------------------
1.Device set "cortext-m3"
2.Link script set "$(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/ld/stm32f103x8.ld"
3.Linker settings > Linker symbols add "__process_stack_size__=0x400" and "__main_stack_size__=0x400"
4.Assembler settings > Assembler Flags > Others set "-x assembler-with-cpp"
5.Search directories > includes add "above include folders"
6.Search directories > Linker add "$(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/ld"
note: all of those could found in ChibiOS demo's Makefile and rules.mk files.
done!
Zhu