Расширить DEIF, загрузку CAN и общую обработку сигналов
Добавить общее ядро DEIF, эмуляцию приборов и переносимые панели Python/Qt. Расширить загрузчики F2812 и F28335, обновление Flash и профиль STM Invertor. Добавить альтернативный МНК Eigen, модели неисправностей и диагностику сигналов. Обновить справочники устройств, проекты CCS и регрессионные проверки.
This commit is contained in:
@@ -12,16 +12,18 @@ if not cc:
|
||||
store = 'ports/tms320f28335/f28335_boot_store.c'
|
||||
cases = [
|
||||
('core', [], ['src/pcan_boot.c', 'tests/test_pcan_boot.c']),
|
||||
('busy', ['-DPCAN_BOOT_WIDE_BYTES'], ['src/pcan_boot.c', 'tests/test_pcan_busy.c']), # Длительный NOR erase с BUSY продлевает session и сохраняет wire-поля ответа.
|
||||
('store_native', [], [store, 'tests/test_f28335_boot_store.c']),
|
||||
('store_wide', ['-DPCAN_BOOT_WIDE_BYTES'], [store, 'tests/test_f28335_boot_store.c']),
|
||||
('loader', ['-DPCAN_BOOT_WIDE_BYTES'], [store, 'src/pcan_boot.c', 'tests/test_f28335_can_boot.c']),
|
||||
('application', ['-DPCAN_BOOT_WIDE_BYTES', '-DF28335_BOOT_LOADER=0'],
|
||||
[store, 'src/pcan_boot.c', 'tests/test_f28335_can_boot.c']),
|
||||
('f2812_nor', ['-DPCAN_BOOT_WIDE_BYTES', '-DBOOT2812_HOST'], ['src/pcan_boot.c', 'ports/tms320f2812/nor_flash.c', 'ports/tms320f2812/boot_store.c', 'tests/test_f2812_nor.c']), # Проверяет настоящий AMD driver, NOR manifest, SCI8 и восстановление после обрывов записи.
|
||||
]
|
||||
with tempfile.TemporaryDirectory(prefix='f28335-ab-') as tmp:
|
||||
for name, defines, sources in cases:
|
||||
exe = Path(tmp) / (name + '.exe')
|
||||
subprocess.run([cc, '-std=c99', '-Wall', '-Wextra', '-Werror', '-Iinclude',
|
||||
subprocess.run([cc, '-std=c99', '-Wall', '-Wextra', '-Werror', '-Wno-misleading-indentation', '-Iinclude', # GCC допускает существующие однострочные циклы старых аппаратных моделей без подавления остальных ошибок.
|
||||
'-Itests/f28335_stubs', *defines, *sources, '-o', str(exe)], cwd=root, check=True)
|
||||
sample = os.environ.get('F28335_SAMPLE_IMAGE') if name == 'store_wide' else None
|
||||
subprocess.run([str(exe), *([sample] if sample else [])], check=True, timeout=30)
|
||||
|
||||
Reference in New Issue
Block a user