mirror of
https://github.com/google/pebble.git
synced 2025-05-06 01:41:41 -04:00
1156 lines
26 KiB
Python
1156 lines
26 KiB
Python
mcu_family = bld.env.MICRO_FAMILY
|
|
if mcu_family not in ('STM32F2', 'STM32F4', 'STM32F7'):
|
|
bld.fatal('src/fw/drivers/wscript: '
|
|
'Unknown MICRO_FAMILY {}'.format(mcu_family))
|
|
|
|
if bld.is_tintin():
|
|
bld(
|
|
name='drivers',
|
|
use=[
|
|
'driver_ambient_light',
|
|
'driver_backlight',
|
|
'driver_battery',
|
|
'driver_button',
|
|
'driver_clocksource',
|
|
'driver_display',
|
|
'driver_flash',
|
|
'driver_gpio_defaults',
|
|
'driver_hci_passthrough',
|
|
'driver_imu',
|
|
'driver_led_controller',
|
|
'driver_mcu',
|
|
'driver_mpu',
|
|
'driver_otp',
|
|
'driver_pwr',
|
|
'driver_rng',
|
|
'driver_rtc',
|
|
'driver_system_flash',
|
|
'driver_task_watchdog',
|
|
'driver_uart',
|
|
'driver_vibe',
|
|
'driver_voltage_monitor',
|
|
'driver_watchdog',
|
|
],
|
|
)
|
|
|
|
elif bld.is_silk():
|
|
bld(
|
|
name='drivers',
|
|
use=[
|
|
'driver_accessory',
|
|
'driver_ambient_light',
|
|
'driver_backlight',
|
|
'driver_battery',
|
|
'driver_button',
|
|
'driver_clocksource',
|
|
'driver_crc',
|
|
'driver_display',
|
|
'driver_flash',
|
|
'driver_gpio_defaults',
|
|
'driver_hci_passthrough',
|
|
'driver_hrm',
|
|
'driver_imu',
|
|
'driver_led_controller',
|
|
'driver_mcu',
|
|
'driver_mic',
|
|
'driver_mpu',
|
|
'driver_otp',
|
|
'driver_pmic',
|
|
'driver_pwr',
|
|
'driver_rng',
|
|
'driver_rtc',
|
|
'driver_system_flash',
|
|
'driver_task_watchdog',
|
|
'driver_temperature',
|
|
'driver_uart',
|
|
'driver_vibe',
|
|
'driver_voltage_monitor',
|
|
'driver_watchdog',
|
|
],
|
|
)
|
|
|
|
elif bld.is_snowy_compatible():
|
|
bld(
|
|
name='drivers',
|
|
use=[
|
|
'driver_accessory',
|
|
'driver_ambient_light',
|
|
'driver_backlight',
|
|
'driver_battery',
|
|
'driver_button',
|
|
'driver_clocksource',
|
|
'driver_display',
|
|
'driver_flash',
|
|
'driver_fpc_pinstrap',
|
|
'driver_gpio_defaults',
|
|
'driver_hci_passthrough',
|
|
'driver_imu',
|
|
'driver_led_controller',
|
|
'driver_mcu',
|
|
'driver_mic',
|
|
'driver_mpu',
|
|
'driver_otp',
|
|
'driver_pmic',
|
|
'driver_pwr',
|
|
'driver_rng',
|
|
'driver_rtc',
|
|
'driver_system_flash',
|
|
'driver_task_watchdog',
|
|
'driver_temperature',
|
|
'driver_touch',
|
|
'driver_uart',
|
|
'driver_vibe',
|
|
'driver_voltage_monitor',
|
|
'driver_watchdog',
|
|
],
|
|
)
|
|
|
|
elif bld.is_cutts():
|
|
bld(
|
|
name='drivers',
|
|
use=[
|
|
'driver_accessory',
|
|
'driver_ambient_light',
|
|
'driver_backlight',
|
|
'driver_battery',
|
|
'driver_button',
|
|
'driver_clocksource',
|
|
'driver_display',
|
|
'driver_flash',
|
|
'driver_gpio_defaults',
|
|
'driver_hci_passthrough',
|
|
'driver_imu',
|
|
'driver_led_controller',
|
|
'driver_mcu',
|
|
'driver_mic',
|
|
'driver_mpu',
|
|
'driver_otp',
|
|
'driver_pmic',
|
|
'driver_pwr',
|
|
'driver_rng',
|
|
'driver_rtc',
|
|
'driver_system_flash',
|
|
'driver_task_watchdog',
|
|
'driver_temperature',
|
|
'driver_touch',
|
|
'driver_uart',
|
|
'driver_vibe',
|
|
'driver_voltage_monitor',
|
|
'driver_watchdog',
|
|
],
|
|
)
|
|
|
|
elif bld.is_robert():
|
|
bld(
|
|
name='drivers',
|
|
use=[
|
|
'driver_accessory',
|
|
'driver_ambient_light',
|
|
'driver_backlight',
|
|
'driver_battery',
|
|
'driver_button',
|
|
'driver_clocksource',
|
|
'driver_display',
|
|
'driver_flash',
|
|
'driver_gpio_defaults',
|
|
'driver_hci_passthrough',
|
|
'driver_hrm',
|
|
'driver_imu',
|
|
'driver_led_controller',
|
|
'driver_mcu',
|
|
'driver_mic',
|
|
'driver_mpu',
|
|
'driver_otp',
|
|
'driver_pmic',
|
|
'driver_pwr',
|
|
'driver_rng',
|
|
'driver_rtc',
|
|
'driver_system_flash',
|
|
'driver_task_watchdog',
|
|
'driver_temperature',
|
|
'driver_uart',
|
|
'driver_vibe',
|
|
'driver_voltage_monitor',
|
|
'driver_watchdog',
|
|
],
|
|
)
|
|
|
|
## ----------
|
|
|
|
if bld.is_snowy_compatible() or bld.is_silk() or bld.is_cutts() or bld.is_robert():
|
|
bld.objects(
|
|
name='driver_accessory',
|
|
source=[
|
|
'accessory.c',
|
|
],
|
|
use=[
|
|
'driver_dma',
|
|
'driver_exti',
|
|
'driver_gpio',
|
|
'driver_periph_config',
|
|
'freertos',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
|
|
if mcu_family in ('STM32F2', 'STM32F4', 'STM32F7'):
|
|
bld.objects(
|
|
name='driver_ambient_light',
|
|
source=[
|
|
'ambient_light.c',
|
|
],
|
|
use=[
|
|
'driver_gpio',
|
|
'driver_periph_config',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
|
|
if mcu_family in ('STM32F4', 'STM32F7'):
|
|
bld.objects(
|
|
name='driver_temperature',
|
|
source=[
|
|
'stm32f4/temperature.c',
|
|
],
|
|
use=[
|
|
'driver_gpio',
|
|
'driver_periph_config',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
|
|
# FIXME: break dependency on driver_led_controller when not needed
|
|
if mcu_family in ('STM32F2', 'STM32F4', 'STM32F7'):
|
|
bld.objects(
|
|
name='driver_backlight',
|
|
source=[
|
|
'backlight.c',
|
|
],
|
|
use=[
|
|
'driver_pwm',
|
|
'driver_gpio',
|
|
'driver_led_controller',
|
|
'fw_includes',
|
|
'root_includes',
|
|
],
|
|
)
|
|
|
|
if bld.env.QEMU:
|
|
bld.objects(
|
|
name='driver_battery',
|
|
source=[
|
|
'battery/battery_adc_conversion.c',
|
|
'battery/battery_common.c',
|
|
'qemu/qemu_battery.c',
|
|
],
|
|
use=[
|
|
'driver_qemu_serial',
|
|
'driver_qemu_settings',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
elif bld.is_tintin():
|
|
bld.objects(
|
|
name='driver_battery',
|
|
source=[
|
|
'battery/battery_adc_conversion.c',
|
|
'battery/battery_common.c',
|
|
'battery/battery_tintin.c',
|
|
],
|
|
use=[
|
|
'driver_exti',
|
|
'driver_gpio',
|
|
'driver_otp',
|
|
'driver_periph_config',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
else:
|
|
bld.objects(
|
|
name='driver_battery',
|
|
source=[
|
|
'battery/battery_adc_conversion.c',
|
|
'battery/battery_common.c',
|
|
'battery/battery_pmic.c',
|
|
],
|
|
use=[
|
|
'driver_gpio',
|
|
'driver_periph_config',
|
|
'driver_pmic',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
|
|
if (bld.is_snowy_compatible() or bld.is_cutts() or bld.is_robert()) and not bld.env.QEMU:
|
|
bld.objects(
|
|
name='driver_bmi160',
|
|
source=[
|
|
'imu/bmi160/bmi160.c',
|
|
'imu/bmi160/bmi160_spi.c',
|
|
],
|
|
use=[
|
|
'driver_exti',
|
|
'driver_rtc',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
|
|
if bld.is_silk() and not bld.env.QEMU:
|
|
bld.objects(
|
|
name='driver_bma255',
|
|
source=[
|
|
'imu/bma255/bma255.c',
|
|
'imu/bma255/bma255_spi.c',
|
|
],
|
|
use=[
|
|
'driver_gpio',
|
|
],
|
|
)
|
|
|
|
if mcu_family in ('STM32F2', 'STM32F4', 'STM32F7'):
|
|
bld.objects(
|
|
name='driver_button',
|
|
source=[
|
|
'button.c',
|
|
'debounced_button.c',
|
|
],
|
|
use=[
|
|
'driver_exti',
|
|
'driver_gpio',
|
|
'driver_periph_config',
|
|
'driver_timer',
|
|
'freertos',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
|
|
if mcu_family in ('STM32F2', 'STM32F4', 'STM32F7'):
|
|
bld.objects(
|
|
name='driver_clocksource',
|
|
source=[
|
|
'stm32f2/clocksource.c',
|
|
],
|
|
use=[
|
|
'freertos',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
|
|
if bld.is_tintin() or bld.is_silk():
|
|
bld.objects(
|
|
name='driver_display',
|
|
source=[
|
|
'display/sharp_ls013b7dh01/sharp_ls013b7dh01.c',
|
|
],
|
|
use=[
|
|
'driver_dma',
|
|
'driver_gpio',
|
|
'driver_periph_config',
|
|
'driver_spi',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
elif bld.is_snowy_compatible() or bld.is_cutts() or bld.is_robert():
|
|
bld.objects(
|
|
name='driver_display',
|
|
source=[
|
|
'display/ice40lp/ice40lp.c',
|
|
'display/ice40lp/ice40lp_internal.c',
|
|
'display/ice40lp/snowy_boot.c',
|
|
],
|
|
use=[
|
|
'driver_dma',
|
|
'driver_exti',
|
|
'driver_gpio',
|
|
'driver_periph_config',
|
|
'driver_pmic',
|
|
'driver_spi',
|
|
'freertos',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
|
|
if mcu_family in ('STM32F2', 'STM32F4', 'STM32F7'):
|
|
bld.objects(
|
|
name='driver_dma',
|
|
source=[
|
|
'stm32f2/dma.c',
|
|
],
|
|
use=[
|
|
'driver_periph_config',
|
|
],
|
|
)
|
|
|
|
if mcu_family in ('STM32F2', 'STM32F4', 'STM32F7'):
|
|
bld.objects(
|
|
name='driver_exti',
|
|
source=[
|
|
'stm32f2/exti.c',
|
|
],
|
|
use=[
|
|
'driver_periph_config',
|
|
'freertos',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
|
|
if bld.is_tintin():
|
|
bld.objects(
|
|
name='driver_flash',
|
|
source=[
|
|
'flash/flash_crc.c',
|
|
'flash/micron_n25q/cd_flash_driver.c',
|
|
'flash/micron_n25q/flash.c',
|
|
'flash/micron_n25q/flash_core.c',
|
|
],
|
|
use=[
|
|
'driver_dma',
|
|
'driver_gpio',
|
|
'driver_periph_config',
|
|
'driver_spi',
|
|
'driver_watchdog',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
elif bld.is_silk():
|
|
bld.objects(
|
|
name='driver_flash',
|
|
source=[
|
|
'flash/cd_flash_driver.c',
|
|
'flash/flash_api.c',
|
|
'flash/flash_crc.c',
|
|
'flash/flash_erase.c',
|
|
'flash/mx25u.c',
|
|
'flash/nvram_bkp.c',
|
|
'flash/qspi_flash.c',
|
|
],
|
|
use=[
|
|
'driver_gpio',
|
|
'driver_periph_config',
|
|
'driver_qspi',
|
|
'driver_task_watchdog',
|
|
'driver_watchdog',
|
|
'freertos',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
elif bld.is_cutts() or bld.is_robert():
|
|
bld.objects(
|
|
name='driver_flash',
|
|
source=[
|
|
'flash/cd_flash_driver.c',
|
|
'flash/flash_api.c',
|
|
'flash/flash_crc.c',
|
|
'flash/flash_erase.c',
|
|
'flash/mt25q.c',
|
|
'flash/nvram_bkp.c',
|
|
'flash/qspi_flash.c',
|
|
],
|
|
use=[
|
|
'driver_gpio',
|
|
'driver_periph_config',
|
|
'driver_qspi',
|
|
'driver_task_watchdog',
|
|
'driver_watchdog',
|
|
'freertos',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
elif bld.is_snowy_compatible():
|
|
bld.objects(
|
|
name='driver_flash',
|
|
source=[
|
|
'flash/cd_flash_driver.c',
|
|
'flash/flash_api.c',
|
|
'flash/flash_crc.c',
|
|
'flash/flash_erase.c',
|
|
'flash/nvram_bkp.c',
|
|
'flash/spansion_s29vs.c',
|
|
],
|
|
use=[
|
|
'driver_gpio',
|
|
'driver_periph_config',
|
|
'driver_task_watchdog',
|
|
'driver_watchdog',
|
|
'freertos',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
|
|
if bld.is_snowy_compatible():
|
|
bld.objects(
|
|
name='driver_fpc_pinstrap',
|
|
source=[
|
|
'fpc_pinstrap/fpc_pinstrap_snowy.c',
|
|
],
|
|
use=[
|
|
'driver_gpio',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
|
|
if mcu_family in ('STM32F2', 'STM32F4', 'STM32F7'):
|
|
bld.objects(
|
|
name='driver_gpio',
|
|
source=[
|
|
'stm32f2/gpio.c',
|
|
],
|
|
use=[
|
|
'freertos',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
|
|
|
|
if mcu_family == 'STM32F7':
|
|
bld.objects(
|
|
name='driver_pwr',
|
|
source=[
|
|
'stm32f7/pwr.c',
|
|
],
|
|
use=[
|
|
'fw_includes',
|
|
],
|
|
)
|
|
elif mcu_family == 'STM32F4':
|
|
bld.objects(
|
|
name='driver_pwr',
|
|
source=[
|
|
'stm32f4/pwr.c',
|
|
],
|
|
use=[
|
|
'fw_includes',
|
|
'root_includes',
|
|
],
|
|
)
|
|
else:
|
|
bld.objects(
|
|
name='driver_pwr',
|
|
source=[
|
|
'stm32f2/pwr.c',
|
|
],
|
|
use=[
|
|
'fw_includes',
|
|
'root_includes',
|
|
],
|
|
)
|
|
|
|
# FIXME: More of a board config than driver
|
|
if mcu_family == 'STM32F2':
|
|
bld.objects(
|
|
name='driver_gpio_defaults',
|
|
source=[
|
|
'stm32f2/gpio_defaults.c',
|
|
],
|
|
use=[
|
|
'driver_gpio',
|
|
],
|
|
)
|
|
elif mcu_family in ('STM32F4', 'STM32F7'):
|
|
bld.objects(
|
|
name='driver_gpio_defaults',
|
|
source=[
|
|
'stm32f4/gpio_defaults.c',
|
|
],
|
|
use=[
|
|
'driver_gpio',
|
|
],
|
|
)
|
|
|
|
if mcu_family in ('STM32F2', 'STM32F4'):
|
|
bld.objects(
|
|
name='driver_i2c',
|
|
source=[
|
|
'i2c.c',
|
|
'stm32f2/i2c_hal.c',
|
|
],
|
|
use=[
|
|
'driver_gpio',
|
|
'driver_periph_config',
|
|
'driver_rtc',
|
|
'freertos',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
|
|
elif mcu_family in ('STM32F7',):
|
|
bld.objects(
|
|
name='driver_i2c',
|
|
source=[
|
|
'i2c.c',
|
|
'stm32f7/i2c_hal.c',
|
|
'stm32f7/i2c_timingr.c',
|
|
],
|
|
use=[
|
|
'driver_gpio',
|
|
'driver_periph_config',
|
|
'driver_rtc',
|
|
'freertos',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
|
|
if bld.env.QEMU:
|
|
mag_driver = ('driver_mag3110' if bld.capability('HAS_MAGNETOMETER')
|
|
else 'driver_mag_null')
|
|
bld.objects(
|
|
name='driver_imu',
|
|
source=[
|
|
'imu/imu_qemu.c',
|
|
'qemu/qemu_accel.c',
|
|
],
|
|
use=[
|
|
mag_driver,
|
|
'driver_qemu_serial',
|
|
'fw_includes',
|
|
'root_includes',
|
|
],
|
|
)
|
|
elif bld.is_tintin():
|
|
bld.objects(
|
|
name='driver_imu',
|
|
source=[
|
|
'imu/imu_tintin.c',
|
|
],
|
|
use=[
|
|
'driver_lis3dh',
|
|
'driver_mag3110',
|
|
'fw_includes',
|
|
'root_includes',
|
|
],
|
|
)
|
|
elif bld.is_snowy_compatible() or bld.is_cutts() or bld.is_robert():
|
|
bld.objects(
|
|
name='driver_imu',
|
|
source=[
|
|
'imu/imu_snowy_evt2.c',
|
|
],
|
|
use=[
|
|
'driver_bmi160',
|
|
'driver_mag3110',
|
|
'fw_includes',
|
|
'root_includes',
|
|
],
|
|
)
|
|
elif bld.is_silk():
|
|
bld.objects(
|
|
name='driver_imu',
|
|
source=[
|
|
'imu/imu_silk.c',
|
|
],
|
|
use=[
|
|
'driver_bma255',
|
|
'driver_mag_null',
|
|
'fw_includes',
|
|
'root_includes',
|
|
],
|
|
)
|
|
|
|
if bld.env.BOARD == "v2_0":
|
|
bld.objects(
|
|
name='driver_led_controller',
|
|
source=[
|
|
'led_controller.c',
|
|
],
|
|
use=[
|
|
'driver_gpio',
|
|
'driver_i2c',
|
|
'driver_periph_config',
|
|
'freertos',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
|
|
if bld.is_tintin() and not bld.env.QEMU:
|
|
bld.objects(
|
|
name='driver_lis3dh',
|
|
source=[
|
|
'imu/lis3dh/config.c',
|
|
'imu/lis3dh/lis3dh.c',
|
|
],
|
|
use=[
|
|
'driver_exti',
|
|
'driver_gpio',
|
|
'driver_i2c',
|
|
'driver_periph_config',
|
|
'driver_vibe',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
|
|
if bld.is_tintin() or bld.is_snowy_compatible() or bld.is_cutts() or bld.is_robert():
|
|
bld.objects(
|
|
name='driver_mag3110',
|
|
source=[
|
|
'imu/mag3110/mag3110.c',
|
|
],
|
|
use=[
|
|
'driver_exti',
|
|
'driver_gpio',
|
|
'driver_i2c',
|
|
'driver_periph_config',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
|
|
if not bld.capability('HAS_MAGNETOMETER'):
|
|
bld.objects(
|
|
name='driver_mag_null',
|
|
source=[
|
|
'imu/mag_null.c',
|
|
],
|
|
use=[
|
|
'fw_includes',
|
|
],
|
|
)
|
|
|
|
if mcu_family in ('STM32F2', 'STM32F4', 'STM32F7'):
|
|
bld.objects(
|
|
name='driver_mcu',
|
|
source=[
|
|
'stm32f2/mcu.c',
|
|
],
|
|
use=[
|
|
'freertos',
|
|
],
|
|
)
|
|
|
|
if bld.capability('HAS_MICROPHONE'):
|
|
bld.objects(
|
|
name='driver_mic',
|
|
source=[
|
|
'mic/mic_command.c',
|
|
],
|
|
use=[
|
|
'driver_accessory',
|
|
'driver_dma',
|
|
'driver_gpio',
|
|
'driver_periph_config',
|
|
'driver_pmic',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'freertos',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
|
|
|
|
# FIXME: make generic to Cortex-M
|
|
if mcu_family in ('STM32F2', 'STM32F4', 'STM32F7'):
|
|
bld.objects(
|
|
name='driver_mpu',
|
|
source=[
|
|
'mpu.c',
|
|
],
|
|
use=[
|
|
'freertos',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
|
|
if mcu_family in ('STM32F2', 'STM32F4', 'STM32F7'):
|
|
bld.objects(
|
|
name='driver_otp',
|
|
source=[
|
|
'stm32f2/otp.c',
|
|
],
|
|
use=[
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
|
|
if mcu_family in ('STM32F2', 'STM32F4', 'STM32F7'):
|
|
bld.objects(
|
|
name='driver_periph_config',
|
|
source=[
|
|
'stm32f2/periph_config.c',
|
|
],
|
|
use=[
|
|
'freertos',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
|
|
if bld.is_snowy_compatible() or bld.is_cutts() or bld.is_robert():
|
|
bld.objects(
|
|
name='driver_pmic',
|
|
source=[
|
|
'pmic/max14690_pmic.c',
|
|
],
|
|
use=[
|
|
'driver_exti',
|
|
'driver_gpio',
|
|
'driver_i2c',
|
|
'driver_periph_config',
|
|
'freertos',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
elif bld.is_silk():
|
|
bld.objects(
|
|
name='driver_pmic',
|
|
source=[
|
|
'pmic/as3701b.c',
|
|
],
|
|
use=[
|
|
'driver_gpio',
|
|
'driver_i2c',
|
|
'fw_includes',
|
|
'root_includes',
|
|
],
|
|
)
|
|
|
|
if bld.env.QEMU:
|
|
bld.objects(
|
|
name='driver_qemu_serial',
|
|
source=[
|
|
'qemu/qemu_serial.c',
|
|
'qemu/qemu_serial_util.c',
|
|
],
|
|
use=[
|
|
'driver_gpio',
|
|
'driver_periph_config',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
'root_includes',
|
|
],
|
|
)
|
|
|
|
if bld.env.QEMU:
|
|
bld.objects(
|
|
name='driver_qemu_settings',
|
|
source=[
|
|
'qemu/qemu_settings.c',
|
|
],
|
|
use=[
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
|
|
if mcu_family in ('STM32F2', 'STM32F4'):
|
|
bld.objects(
|
|
name='driver_pwm',
|
|
source=[
|
|
'stm32f2/pwm.c',
|
|
],
|
|
use=[
|
|
'driver_gpio',
|
|
'driver_periph_config',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
]
|
|
)
|
|
elif mcu_family in ('STM32F7',):
|
|
bld.objects(
|
|
name='driver_pwm',
|
|
source=[
|
|
'stm32f7/pwm.c',
|
|
],
|
|
use=[
|
|
'driver_gpio',
|
|
'driver_periph_config',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
]
|
|
)
|
|
|
|
if 'STM32F412xG' in bld.env.DEFINES or mcu_family in ('STM32F7',):
|
|
bld.objects(
|
|
name='driver_qspi',
|
|
source=[
|
|
'stm32f412/qspi.c',
|
|
],
|
|
use=[
|
|
'driver_dma',
|
|
'driver_periph_config',
|
|
'freertos',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
|
|
if 'STM32F412xG' in bld.env.DEFINES:
|
|
bld.objects(
|
|
name='driver_voltage_monitor',
|
|
source=[
|
|
'stm32f412/voltage_monitor.c',
|
|
],
|
|
use=[
|
|
'driver_gpio',
|
|
'driver_periph_config',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
]
|
|
)
|
|
elif mcu_family in ('STM32F2', 'STM32F4', 'STM32F7'):
|
|
bld.objects(
|
|
name='driver_voltage_monitor',
|
|
source=[
|
|
'stm32f2/voltage_monitor.c',
|
|
],
|
|
use=[
|
|
'driver_gpio',
|
|
'driver_periph_config',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
]
|
|
)
|
|
|
|
if mcu_family in ('STM32F2', 'STM32F4', 'STM32F7'):
|
|
bld.objects(
|
|
name='driver_rng',
|
|
source=[
|
|
'stm32f2/rng.c',
|
|
],
|
|
use=[
|
|
'driver_periph_config',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
|
|
if mcu_family == 'STM32F2':
|
|
bld.objects(
|
|
name='driver_rtc',
|
|
source=[
|
|
'rtc_common.c',
|
|
'stm32f2/rtc.c',
|
|
'stm32f2/rtc_calibration.c',
|
|
],
|
|
use=[
|
|
'driver_clocksource',
|
|
'driver_gpio',
|
|
'driver_pwr',
|
|
'driver_periph_config',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
elif mcu_family in ('STM32F4', 'STM32F7'):
|
|
bld.objects(
|
|
name='driver_rtc',
|
|
source=[
|
|
'rtc_common.c',
|
|
'stm32f4/rtc.c',
|
|
],
|
|
use=[
|
|
'driver_pwr',
|
|
'driver_clocksource',
|
|
'freertos',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
|
|
if mcu_family in ('STM32F2', 'STM32F4', 'STM32F7'):
|
|
bld.objects(
|
|
name='driver_spi',
|
|
source=[
|
|
'stm32f2/spi.c',
|
|
'stm32f2/spi_legacy.c'
|
|
],
|
|
use=[
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
|
|
if mcu_family == 'STM32F7':
|
|
bld.objects(
|
|
name='driver_spi',
|
|
source=[
|
|
'stm32f2/spi.c',
|
|
],
|
|
use=[
|
|
'fw_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
|
|
if mcu_family in ('STM32F2', 'STM32F4', 'STM32F7'):
|
|
bld.objects(
|
|
name='driver_system_flash',
|
|
source=[
|
|
'stm32f2/system_flash.c',
|
|
],
|
|
use=[
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
|
|
# FIXME: not really a driver
|
|
if mcu_family in ('STM32F2', 'STM32F4', 'STM32F7'):
|
|
bld.objects(
|
|
name='driver_task_watchdog',
|
|
source=[
|
|
'task_watchdog.c',
|
|
],
|
|
use=[
|
|
'driver_periph_config',
|
|
'driver_watchdog',
|
|
'freertos',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
|
|
if mcu_family in ('STM32F2', 'STM32F4', 'STM32F7'):
|
|
bld.objects(
|
|
name='driver_timer',
|
|
source=[
|
|
'stm32f2/timer.c',
|
|
],
|
|
use=[
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
|
|
if bld.is_cutts():
|
|
if bld.env.QEMU:
|
|
bld.objects(
|
|
name='driver_touch',
|
|
source=[
|
|
'qemu/qemu_touch.c',
|
|
],
|
|
)
|
|
else:
|
|
bld.objects(
|
|
name='driver_touch',
|
|
source=bld.path.ant_glob('touch/ewd1000/*.c'),
|
|
use=[
|
|
'freertos',
|
|
'fw_includes',
|
|
'root_includes',
|
|
],
|
|
)
|
|
|
|
if mcu_family in ('STM32F2', 'STM32F4'):
|
|
bld.objects(
|
|
name='driver_uart',
|
|
source=[
|
|
'stm32f2/uart.c',
|
|
],
|
|
use=[
|
|
'driver_gpio',
|
|
'freertos',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
elif mcu_family == 'STM32F7':
|
|
bld.objects(
|
|
name='driver_uart',
|
|
source=[
|
|
'stm32f7/uart.c',
|
|
],
|
|
use=[
|
|
'driver_gpio',
|
|
'freertos',
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
|
|
if mcu_family in ('STM32F2', 'STM32F4', 'STM32F7'):
|
|
bld.objects(
|
|
name='driver_vibe',
|
|
source=[
|
|
'vibe.c',
|
|
],
|
|
use=[
|
|
'driver_gpio',
|
|
'driver_periph_config',
|
|
'driver_pwm'
|
|
'freertos',
|
|
'fw_includes',
|
|
'root_includes',
|
|
],
|
|
)
|
|
|
|
if mcu_family in ('STM32F2', 'STM32F4', 'STM32F7'):
|
|
bld.objects(
|
|
name='driver_watchdog',
|
|
source=[
|
|
'stm32f2/watchdog.c',
|
|
],
|
|
use=[
|
|
'fw_includes',
|
|
'root_includes',
|
|
'stm32_stdlib',
|
|
],
|
|
)
|
|
|
|
# vim:filetype=python
|