mirror of
https://github.com/google/pebble.git
synced 2025-11-14 19:43:12 -05:00
80 lines
2.7 KiB
Python
80 lines
2.7 KiB
Python
import sys
|
|
|
|
import waftools.objcopy
|
|
|
|
from resources.types.resource_definition import ResourceDefinition
|
|
from resources.types.resource_object import ResourceObject
|
|
|
|
CUSTOM_CONFIG_H_PATH = 'config/custom_config_boot.h'
|
|
|
|
|
|
def build(bld):
|
|
bld.env.append_value('DEFINES', ['BLE_BOOTLOADER=1'])
|
|
|
|
sys.path.append(bld.path.find_node('../..').abspath())
|
|
from dialog_waf import get_sdk_node, collect_sdk_sources, generate_mem_ld
|
|
|
|
mem_ld_node = generate_mem_ld(bld, CUSTOM_CONFIG_H_PATH)
|
|
|
|
# Collect source files:
|
|
source_dirs = ['src', '../common/src']
|
|
sources = sum([bld.path.ant_glob('%s/**/*.c' % d)
|
|
for d in source_dirs], [])
|
|
sdk_sources = [
|
|
'sdk/bsp/startup/vector_table.S',
|
|
'sdk/bsp/startup/startup_ARMCM0.S',
|
|
'sdk/bsp/startup/system_ARMCM0.c',
|
|
'sdk/bsp/startup/config.c',
|
|
'sdk/bsp/peripherals/src/hw_cpm.c',
|
|
'sdk/bsp/peripherals/src/hw_dma.c',
|
|
'sdk/bsp/peripherals/src/hw_gpio.c',
|
|
'sdk/bsp/peripherals/src/hw_spi.c',
|
|
'sdk/bsp/peripherals/src/hw_uart.c',
|
|
'sdk/bsp/peripherals/src/hw_watchdog.c',
|
|
|
|
# Used by system_ARMCM0.c:
|
|
'sdk/bsp/peripherals/src/hw_otpc.c',
|
|
'sdk/bsp/peripherals/src/sys_tcs.c',
|
|
]
|
|
sources.extend(collect_sdk_sources(bld, sdk_sources))
|
|
|
|
linkflags = ['-Wl,-Map,bt_da14681_boot.map',
|
|
'-Wl,--build-id=sha1']
|
|
|
|
# Includes:
|
|
includes = ['include', '../common/include', '../../include', 'config']
|
|
elf_node = bld.path.get_bld().make_node('bt_da14681_boot.elf')
|
|
bld.program(features='c asm cprogram',
|
|
source=sources,
|
|
includes=includes,
|
|
target=elf_node,
|
|
lib=['gcc'],
|
|
linkflags=linkflags,
|
|
ldscript=mem_ld_node,
|
|
inject_include_files=[CUSTOM_CONFIG_H_PATH],
|
|
use=['dialog_sdk_includes', 'dialog_board_boot',
|
|
'pblibc-cm0', 'libutil_includes', 'libutil-cm0'])
|
|
|
|
bld.add_manual_dependency(elf_node, mem_ld_node)
|
|
|
|
bin_node = elf_node.change_ext('.bin')
|
|
bld(rule=waftools.objcopy.objcopy_bin, source=elf_node, target=bin_node)
|
|
|
|
def create_bt_patch_resource(task):
|
|
bin_data = task.inputs[0].read('rb')
|
|
reso = ResourceObject(ResourceDefinition('raw', 'BT_BOOT_IMAGE', None,
|
|
storage=task.generator.storage), bin_data)
|
|
reso.dump(task.outputs[0])
|
|
|
|
reso_node = elf_node.change_ext('.bin.reso')
|
|
bld(rule=create_bt_patch_resource, source=bin_node, target=reso_node,
|
|
storage=bld.get_bluetooth_fw_storage())
|
|
|
|
bld.DYNAMIC_RESOURCES.append(reso_node)
|
|
|
|
def configure(ctx):
|
|
pass
|
|
|
|
|
|
# vim:filetype=python
|