ladislas

ladislas

CTO @leka

Member Since 9 years ago

Leka Inc. - @leka , Paris, France

Experience Points
63
follower
Lessons Completed
260
follow
Lessons Completed
380
stars
Best Reply Awards
55
repos

1477 contributions in the last year

Pinned
⚡ Start your Arduino projects right out of the box
⚡ LekaOS is Leka's firmware based on Mbed OS
⚡ Homebrew AVR Toolchain
⚡ Lean 'n' Clean Neovim Config
⚡ A simple and easy to use event manager
Activity
Oct
15
6 days ago
open pull request

ladislas wants to merge leka/LekaOS

ladislas
ladislas

✨ (sd): Add sendFileToFlash

ladislas
ladislas
		auto address		 = uint32_t {0x0};
 		constexpr auto packet_size = std::size_t {0x100} ;
		auto packet_read		 = packet_size;
open pull request

ladislas wants to merge leka/LekaOS

ladislas
ladislas

✨ (sd): Add sendFileToFlash

ladislas
ladislas

enfin pour packet_read, ça n'a pas de sens de lui donner égale à la size alors qu'il n'a pas de raison de valoir autre chose que 0 parce qu'on a pour le moment rien lu.

auto packet_read = std::size {}; fait l'affaire

open pull request

ladislas wants to merge leka/LekaOS

ladislas
ladislas

✨ (sd): Add sendFileToFlash

ladislas
ladislas

je préfère un std::array ici, le vector il va utiliser le heap et donc ça risque sur le long terme de faire des bugs.

std::array on the other end is guaranteed to be on the stack

https://stackoverflow.com/questions/39548254/does-stdarray-guarantee-allocation-on-the-stack-only

open pull request

ladislas wants to merge leka/LekaOS

ladislas
ladislas

✨ (sd): Add sendFileToFlash

ladislas
ladislas

pour packet_size, je trouve que 0x100 c'est pas très clair, sauf si c'est un truc connu et spécifique. dans ce cas je trouve que 256 est plus explicite.

open pull request

ladislas wants to merge leka/LekaOS

ladislas
ladislas

✨ (sd): Add sendFileToFlash

ladislas
ladislas

ici tu peux avoir avec ton std::array

			packet_read = update_file.read(buffer.data(), std::size(buffer));

comme ça tu peux même enlever le packet_size

pull request

ladislas merge to leka/LekaOS

ladislas
ladislas

✨ (sd): Add sendFileToFlash

ladislas
ladislas

beaucoup mieux en FirmwareKit! :)

j'ai fait un premier passage :)

pull request

ladislas merge to leka/LekaOS

ladislas
ladislas

✨ (sd): Add sendFileToFlash

ladislas
ladislas

beaucoup mieux en FirmwareKit! :)

j'ai fait un premier passage :)

push

ladislas push leka/LekaOS

ladislas
ladislas

:bug: (qspi): Up address size from 8 to 24bits

If not set in 24 bits, cannot write large files in external flash via QSPI

ladislas
ladislas

:wrench: (mcuboot): Add missing macro to use MCUBoot in bootloader or apps

:wrench: (boot): Reduce app size to include header used by mcuboot

ladislas
ladislas

:truck: (cmake): Rename ENABLE_BOOTLOADER to BUILD_TARGETS_TO_USE_WITH_BOOTLOADER

ladislas
ladislas

:tada: (boot): Add bootloader

:construction: (boot): Use default main of mcuboot :alien: (boot): Add QSPIF as default block device mandatory by MCUBoot :alien: (boot): Add signing keys Public key of bootloader is associated with private key used with the application

ladislas
ladislas

:truck: (mcuboot): Add spikes to demonstrate how to use mcuboot in apps

Application place the update in external flash connected in QSPI

ladislas
ladislas

:hammer: (firmware): Script to generate firmware

Build bootloader, Build and sign application, Merge them to get firmware

:truck: (boot): Generated files move to _tmp folder and/or _release folder :children_crossing: (boot): Use .bin for updates :hammer: (firmware): Split in 3 scripts: bootloader, application and firmware :hammer: (boot): Add recompile all flag and mute mkdir warning

ladislas
ladislas

:see_no_evil: (firmware): Ignore _tmp and _release folders

These folders are generated by generate_firmware.sh, build_bootloader.sh and build_update.sh scripts

ladislas
ladislas

:twisted_rightwards_arrows: Merge branch 'yann/feature/basic-bootloader' into develop

  • yann/feature/basic-bootloader: :see_no_evil: (firmware): Ignore _tmp and _release folders :hammer: (firmware): Script to generate firmware :truck: (mcuboot): Add spikes to demonstrate how to use mcuboot in apps :tada: (boot): Add bootloader :truck: (cmake): Rename ENABLE_BOOTLOADER to BUILD_TARGETS_TO_USE_WITH_BOOTLOADER :wrench: (mcuboot): Add missing macro to use MCUBoot in bootloader or apps :bug: (qspi): Up address size from 8 to 24bits

commit sha: b1eefc4ae73c80d5a05f151fc9f70103749e993c

push time in 6 days ago
pull request

ladislas pull request leka/LekaOS

ladislas
ladislas

✨ Basic bootloader

11 October 2021

Remaining tasks

  • Remove mbed-trace
  • Separate bootloader.sh into several scripts (for instance application.sh and firmware.sh)
  • Application not in LekaOS but in a different spike
  • Same for the update
  • Rename ENABLE_BOOTLOADER for "build_os_with_bootloader"/"compile_apps_use_with_bootloader"
  • static checkin
  • Intuitive commands to generate only bootloader or only app or just associate for firmware or recompile everything
  • Modernize mcuboot default bootloader?

Tasks not yet considered

  • Private key on github
  • Rollback feature
  • CI: Test binary file generated from it (download from github)
Oct
14
1 week ago
pull request

ladislas merge to leka/LekaOS

ladislas
ladislas

✨ (sd): Add sendFileToFlash

ladislas
ladislas

comme discuté, la fonctionnalité a plus sa place dans un FirmwareKit qui pourra gérer tous ces sujets et faire le bridge entre les modules

pull request

ladislas merge to leka/LekaOS

ladislas
ladislas

✨ Basic bootloader

11 October 2021

Remaining tasks

  • Remove mbed-trace
  • Separate bootloader.sh into several scripts (for instance application.sh and firmware.sh)
  • Application not in LekaOS but in a different spike
  • Same for the update
  • Rename ENABLE_BOOTLOADER for "build_os_with_bootloader"/"compile_apps_use_with_bootloader"
  • static checkin
  • Intuitive commands to generate only bootloader or only app or just associate for firmware or recompile everything
  • Modernize mcuboot default bootloader?

Tasks not yet considered

  • Private key on github
  • Rollback feature
  • CI: Test binary file generated from it (download from github)
push

ladislas push leka/LekaOS

ladislas
ladislas

:truck: (cmake): Rename ENABLE_BOOTLOADER to BUILD_TARGETS_TO_USE_WITH_BOOTLOADER

commit sha: a25d9aa153f8f1227c50310046ede7c4cde06aae

push time in 1 week ago
open pull request

ladislas wants to merge leka/LekaOS

ladislas
ladislas

✨ Basic bootloader

11 October 2021

Remaining tasks

  • Remove mbed-trace
  • Separate bootloader.sh into several scripts (for instance application.sh and firmware.sh)
  • Application not in LekaOS but in a different spike
  • Same for the update
  • Rename ENABLE_BOOTLOADER for "build_os_with_bootloader"/"compile_apps_use_with_bootloader"
  • static checkin
  • Intuitive commands to generate only bootloader or only app or just associate for firmware or recompile everything
  • Modernize mcuboot default bootloader?

Tasks not yet considered

  • Private key on github
  • Rollback feature
  • CI: Test binary file generated from it (download from github)
ladislas
ladislas

même remarques que plus haut sur les arguments. d'ailleurs a-t-on besoin des arguments?

pour le fichier generate_bootloader.sh me semble plus explicite

open pull request

ladislas wants to merge leka/LekaOS

ladislas
ladislas

✨ Basic bootloader

11 October 2021

Remaining tasks

  • Remove mbed-trace
  • Separate bootloader.sh into several scripts (for instance application.sh and firmware.sh)
  • Application not in LekaOS but in a different spike
  • Same for the update
  • Rename ENABLE_BOOTLOADER for "build_os_with_bootloader"/"compile_apps_use_with_bootloader"
  • static checkin
  • Intuitive commands to generate only bootloader or only app or just associate for firmware or recompile everything
  • Modernize mcuboot default bootloader?

Tasks not yet considered

  • Private key on github
  • Rollback feature
  • CI: Test binary file generated from it (download from github)
ladislas
ladislas

je pense que si c'est unset, ça doit planter

si on veut une valeur par défaut, il faut un argument --build-os qui fait le setup comme il faut pour ça

pull request

ladislas merge to leka/LekaOS

ladislas
ladislas

✨ Basic bootloader

11 October 2021

Remaining tasks

  • Remove mbed-trace
  • Separate bootloader.sh into several scripts (for instance application.sh and firmware.sh)
  • Application not in LekaOS but in a different spike
  • Same for the update
  • Rename ENABLE_BOOTLOADER for "build_os_with_bootloader"/"compile_apps_use_with_bootloader"
  • static checkin
  • Intuitive commands to generate only bootloader or only app or just associate for firmware or recompile everything
  • Modernize mcuboot default bootloader?

Tasks not yet considered

  • Private key on github
  • Rollback feature
  • CI: Test binary file generated from it (download from github)
ladislas
ladislas

après discussion:

  • renommer les scripts en build_update.sh, build_bootloader.sh, generate_firmware.sh
  • renommer ENABLE_BOOTLOADER en BUILD_TARGETS_TO_USE_WITH_BOOTLOADER

je repasserai dans une autre pr sur les scripts pour clean up et avoir les arguments gérés de manière sécure.

open pull request

ladislas wants to merge leka/LekaOS

ladislas
ladislas

✨ Basic bootloader

11 October 2021

Remaining tasks

  • Remove mbed-trace
  • Separate bootloader.sh into several scripts (for instance application.sh and firmware.sh)
  • Application not in LekaOS but in a different spike
  • Same for the update
  • Rename ENABLE_BOOTLOADER for "build_os_with_bootloader"/"compile_apps_use_with_bootloader"
  • static checkin
  • Intuitive commands to generate only bootloader or only app or just associate for firmware or recompile everything
  • Modernize mcuboot default bootloader?

Tasks not yet considered

  • Private key on github
  • Rollback feature
  • CI: Test binary file generated from it (download from github)
ladislas
ladislas

les APPLICATION_HEX et APPLICATION_SIGNED_BIN doivent être générés à partir du nom du target + timestamp

open pull request

ladislas wants to merge leka/LekaOS

ladislas
ladislas

✨ Basic bootloader

11 October 2021

Remaining tasks

  • Remove mbed-trace
  • Separate bootloader.sh into several scripts (for instance application.sh and firmware.sh)
  • Application not in LekaOS but in a different spike
  • Same for the update
  • Rename ENABLE_BOOTLOADER for "build_os_with_bootloader"/"compile_apps_use_with_bootloader"
  • static checkin
  • Intuitive commands to generate only bootloader or only app or just associate for firmware or recompile everything
  • Modernize mcuboot default bootloader?

Tasks not yet considered

  • Private key on github
  • Rollback feature
  • CI: Test binary file generated from it (download from github)
ladislas
ladislas

cette manière de gérer les arguments est pas idéale parce que quelqu'un qui lit l'invocation du script ne comprendra pas forcément que l'ordre est important et à quoi correspond l'ordre.

de plus si tu en oublies un, le $1 va devenir le 2, etc. donc ton if/else après il marchera plus puisque tout sera décalé.

ici tu as des exemples intéressants, le premier Bash Space-Separated marche bien, est relativement simple et s'adapte bien à notre use case.

https://stackoverflow.com/a/14203146/2205264

ce qui donnera par exemple

$ ./application.sh --target spike_lk_logkit
$ ./application.sh --build-os

d'ailleurs peut être que le nom du fichier pourrait être plus explicite, puis que c'est une commande, par exemple

$ ./generate_update.sh --target spike_lk_logkit
$ ./generate_update.sh --os
open pull request

ladislas wants to merge leka/LekaOS

ladislas
ladislas

✨ Basic bootloader

11 October 2021

Remaining tasks

  • Remove mbed-trace
  • Separate bootloader.sh into several scripts (for instance application.sh and firmware.sh)
  • Application not in LekaOS but in a different spike
  • Same for the update
  • Rename ENABLE_BOOTLOADER for "build_os_with_bootloader"/"compile_apps_use_with_bootloader"
  • static checkin
  • Intuitive commands to generate only bootloader or only app or just associate for firmware or recompile everything
  • Modernize mcuboot default bootloader?

Tasks not yet considered

  • Private key on github
  • Rollback feature
  • CI: Test binary file generated from it (download from github)
ladislas
ladislas

ici le default devrait soit être:

  • le dernier tag + timestamp pour le build number, comme ça tu es sûr que ça augmente entre deux utilisation
  • si on est encore en beta 0.0.0+timestamp

après pour la CI, il faudra que le build number il soit lu du nom de la branch par exemple release/v2.3.4

pull request

ladislas merge to leka/LekaOS

ladislas
ladislas

✨ Basic bootloader

11 October 2021

Remaining tasks

  • Remove mbed-trace
  • Separate bootloader.sh into several scripts (for instance application.sh and firmware.sh)
  • Application not in LekaOS but in a different spike
  • Same for the update
  • Rename ENABLE_BOOTLOADER for "build_os_with_bootloader"/"compile_apps_use_with_bootloader"
  • static checkin
  • Intuitive commands to generate only bootloader or only app or just associate for firmware or recompile everything
  • Modernize mcuboot default bootloader?

Tasks not yet considered

  • Private key on github
  • Rollback feature
  • CI: Test binary file generated from it (download from github)
ladislas
ladislas

après discussion:

  • renommer les scripts en build_update.sh, build_bootloader.sh, generate_firmware.sh
  • renommer ENABLE_BOOTLOADER en BUILD_TARGETS_TO_USE_WITH_BOOTLOADER

je repasserai dans une autre pr sur les scripts pour clean up et avoir les arguments gérés de manière sécure.

Oct
12
1 week ago
push

ladislas push leka/LekaOS

ladislas
ladislas

WIP - move back to interface

commit sha: db9fb800cb2b79c74f8167944a6e2cac38ff1361

push time in 1 week ago
Oct
11
1 week ago
pull request

ladislas pull request leka/LekaOS

ladislas
ladislas

♻️ Clean CoreQSPI and CoreFlash

push

ladislas push leka/LekaOS

ladislas
ladislas

:fire: (qspi): Remove almost empty qspi spike

ladislas
ladislas

:fire: (is25lp): Remove SPIMode and ReadMode

ladislas
ladislas

:fire: (qspi): Remove alternate-byte phase parameter

ladislas
ladislas

:fire: (qspi): Simplify setDataTransmissionFormat

Remove DataTransmissionFormat struct and use only 1 configuration

ladislas
ladislas

:recycle: (emc): Modernize certification emc test

bt_lcd_qspi_rfid_touch_wifi only

ladislas
ladislas

:fire: (qspi): Remove LekaFirmware, old Flash control via QSPI

ladislas
ladislas

:twisted_rightwards_arrows: Merge branch 'yann/feature/qspi/clean-coreqspi-and-coreflash' into develop

  • yann/feature/qspi/clean-coreqspi-and-coreflash: :fire: (qspi): Remove LekaFirmware, old Flash control via QSPI :recycle: (emc): Modernize certification emc test :fire: (qspi): Simplify setDataTransmissionFormat :fire: (qspi): Remove alternate-byte phase parameter :fire: (is25lp): Remove SPIMode and ReadMode :fire: (qspi): Remove almost empty qspi spike

commit sha: 103c9f5e5d542be04d1025e39bd9f367fd423a1d

push time in 1 week ago
Oct
10
1 week ago
push

ladislas push leka/LekaOS

ladislas
ladislas

:recycle: (libs): Remove satic & static inline qualifiers

commit sha: 218fe4da4f8434b82acef3c56ad27dbcff1d9fce

push time in 1 week ago
pull request

ladislas merge to leka/LekaOS

ladislas
ladislas

✨ Basic bootloader

ladislas
ladislas

quelques questions/suggestions mais sinon LGTM! 👍

open pull request

ladislas wants to merge leka/LekaOS

ladislas
ladislas

✨ Basic bootloader

ladislas
ladislas

ici release est un nouveau dossier? pourquoi pas simplement _tmp/$RELEASE_FIRMWARE_BIN

open pull request

ladislas wants to merge leka/LekaOS

ladislas
ladislas

✨ Basic bootloader

ladislas
ladislas
	static auto bd = QSPIFBlockDevice {};
	
	static auto sliced_bd = mbed::SlicingBlockDevice {&_bd, 0x0, MCUBOOT_SLOT_SIZE};
	
	return &sliced_bd;

et est-ce qu'on a besoin qu'elles soient static?

open pull request

ladislas wants to merge leka/LekaOS

ladislas
ladislas

✨ Basic bootloader

ladislas
ladislas

et est-ce qu'on peut pas l'avoir à chaque fois quand même, il sera compilé mais pas utilisé?