diff options
-rw-r--r-- | fw/app/meson.build | 59 | ||||
-rw-r--r-- | fw/meson.build | 20 | ||||
-rw-r--r-- | meson.build | 2 | ||||
-rw-r--r-- | web/index.html | 2 |
4 files changed, 83 insertions, 0 deletions
diff --git a/fw/app/meson.build b/fw/app/meson.build index 63c3c01..6665fe4 100644 --- a/fw/app/meson.build +++ b/fw/app/meson.build @@ -1 +1,60 @@ +external_project = import('unstable-external_project') + application_source = meson.current_source_dir() + +external_project.add_project( + configure_zephyr, + configure_options: [ + '--source-tree', application_source, + '--build-tree', meson.current_build_dir() / 'build', + '--board', board, + '--zephyr-base', zephyr, + '--zephyr-modules', ';'.join(zephyr_modules), + ], + verbose: true, +) + +application = custom_target( + output: ['application.bin'], + command: [ + build_zephyr, + '--build-tree', meson.current_build_dir() / 'build', + '--binary-name', 'zephyr.bin', + '--target-name', 'application.bin', + ], +) + +version = '0.0.0' +header_size = '0x200' +slot_size = '0xc0000' + +update_image = custom_target( + output: ['update-image.bin'], + command: [ + imgtool, + 'sign', + '--version', version, + '--header-size', header_size, + '--slot-size', slot_size, + '--key', signing_key, + application, + '@OUTPUT@', + ], + depends: application, +) + +application_signed_confirmed = custom_target( + output: ['application.signed.confirmed.bin'], + command: [ + imgtool, + 'sign', + '--version', version, + '--header-size', header_size, + '--slot-size', slot_size, + '--key', signing_key, + '--confirm', + application, + '@OUTPUT@', + ], + depends: application, +) diff --git a/fw/meson.build b/fw/meson.build index bc70142..8f45d5b 100644 --- a/fw/meson.build +++ b/fw/meson.build @@ -1,3 +1,23 @@ +board = 'nucleo_f767zi' + +fs = import('fs') +signing_key = fs.expanduser('~') / 'mcuboot' / 'key.pem' + subdir('rtos') subdir('app') +subdir('btl') subdir('sim') + +factory_image = custom_target( + output: ['factory-image.bin'], + command: [ + make_factory_image, + '--bootloader', bootloader, + '--application', application_signed_confirmed, + '--factory-image', '@OUTPUT@', + ], + depends: [ + bootloader, + application_signed_confirmed, + ], +) diff --git a/meson.build b/meson.build index f9443ed..90c7c15 100644 --- a/meson.build +++ b/meson.build @@ -22,6 +22,8 @@ artifacts = [ schematic, bom, simulation, + # update_image, + # factory_image, kicad_pcb, erc_report, ] diff --git a/web/index.html b/web/index.html index e6c41e2..d353cb7 100644 --- a/web/index.html +++ b/web/index.html @@ -19,6 +19,8 @@ <h4>Firmware</h4> <ul> + <li><a href="fw/factory-image.bin">factory-image.bin</a></li> + <li><a href="fw/app/update-image.bin">update-image.bin</a></li> <li><a href="fw/sim/simulation-linux-amd64.exe">simulation-linux-amd64.exe</a></li> </ul> </main> |