Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add Holybro KakuteH7 support #19019

Merged
merged 3 commits into from
Jan 17, 2022
Merged

add Holybro KakuteH7 support #19019

merged 3 commits into from
Jan 17, 2022

Conversation

bkueng
Copy link
Member

@bkueng bkueng commented Jan 17, 2022

known issues:

  • flash-based params does not work on H7 (due to ECC), so params are on SD card. The last flash sector is still reserved however.
  • output channel 6 does not support DShot (the implementation does not handle channel gaps) Fixed in dshot: remove BOARD_DSHOT_MOTOR_ASSIGNMENT & handle timer channel gaps #19030
  • flashing of the 2. flash bank is much slower (around 3x), than the 1. bank for some unknown reason. Fixed
  • after the BL jumps to the app, there's several seconds passing until stm32_boardinitialize() is called.

known issues:
- flash-based params does not work on H7 (due to ECC), so params are on
  SD card. The last flash sector is still reserved however.
- output channel 6 does not support DShot (the implementation does not
  handle channel gaps)
- flashing of the 2. flash bank is much slower (around 3x), than the 1.
  bank for some unknown reason.
- after the BL jumps to the app, there's several seconds passing until
  stm32_boardinitialize() is called.
Allows boards to set a higher rate.
@dagar
Copy link
Member

dagar commented Jan 17, 2022

flash-based params does not work on H7 (due to ECC), so params are on SD card. The last flash sector is still reserved however.

FYI I've been considering moving flash based parameters to littlefs as well (#18958).
The backing RAM for the erase sector is kind of expensive, but seems to scale well enough for each architecture (eg 128K H7, 32K F7, etc). If anything the hard part will be handling the transition.

@dagar dagar merged commit 4cbee44 into master Jan 17, 2022
@dagar dagar deleted the kakuteh7_support branch January 17, 2022 15:41
@bkueng
Copy link
Member Author

bkueng commented Jan 18, 2022

Does it work with a single page as well?

@dagar
Copy link
Member

dagar commented Jan 18, 2022

Does it work with a single page as well?

I still have to work through how to use the H7 flash (ECC, etc), but at the moment I don't see why it won't work with a single flash sector. There's a bit of a hole to be aware of when the entire flash sector needs to be erased (consider with wearleveling), but I think we can either live with it or use another flash sector as a backup (where necessary).

@mrpollo
Copy link
Contributor

mrpollo commented Mar 3, 2022

@bkueng which bootloader target did you use for the KakuteH7?

cc @vincentpoont2

@bkueng
Copy link
Member Author

bkueng commented Mar 4, 2022

make holybro_kakuteh7_bootloader

@vincentpoont2
Copy link
Contributor

@bkueng Sorry, how can I build the bootloader HEX file like this one , with make holybro_kakuteh7_bootloader, I only get the .bin & .px bootloader files.

@bkueng
Copy link
Member Author

bkueng commented Apr 1, 2022

You can use arm-none-eabi-objcopy -Oihex file.elf file.hex to convert the file. We can add that to the build if you like.

@vincentpoont2
Copy link
Contributor

vincentpoont2 commented Apr 1, 2022

You can use arm-none-eabi-objcopy -Oihex file.elf file.hex to convert the file. We can add that to the build if you like.

@bkueng Any chance you can share the bootloader HEX file directly so I can included in a kakute H7 PX4 doc?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants