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

BLE_otas and Bootloader applications makes use of external flash #2

Merged
merged 5 commits into from
Jul 20, 2022

Conversation

EdwinFairchild
Copy link
Contributor

@EdwinFairchild EdwinFairchild commented Jul 13, 2022

Makes changes to allow BLE_otas and Bootloader applications to take advantage of the on-board external flash.
once merged I can add this project to Jenkins

BLE_otac:

  • Sends a header packet via the WP characteristic to the peer device once file discovery has completed.
  • The header contains fileLen and fileCRC fields.
  • The command to reset peer device only executes if the verify stage was successful, meaning peer device matched CRC from header with calculated CRC

BLE_otas:

  • When file transfer is initiated, external flash sectors are erased based on received fileLen
  • Header is written at start of external flash
  • CRC is calculated on file packets as they are received, the final CRC is compared against
    received fileCRC in the header.
  • The status of CRC check is returned during the verify stage.

Bootloader:

  • Fetches fileLen and fileCRC from ext flash
  • Verifies CRC of ext flash before writing
  • Erases internal pages based on fielLen
  • Erases start of ext flash

@EdwinFairchild EdwinFairchild added the WIP work in progress label Jul 13, 2022
@EdwinFairchild EdwinFairchild removed the WIP work in progress label Jul 18, 2022
@kevin-gillespie
Copy link
Contributor

I tested this on a couple MAX32655 EvKits and it works well. Good work!

@kevin-gillespie kevin-gillespie merged commit 64c8812 into main Jul 20, 2022
@kevin-gillespie kevin-gillespie deleted the OTAS-make-use-of-ext-flash branch August 15, 2022 20:52
kevin-gillespie pushed a commit that referenced this pull request Nov 30, 2022
* Changes made to Cordio files to Support IAR/Keil Effort

* updated pal_flash.c and wsf_heap_sbrk.c based on PR comments

Co-authored-by: SRV-JenkinsIDE <SRV-JenkinsIDE@maximintegrated.com>
kevin-gillespie added a commit that referenced this pull request Dec 1, 2022
* Original move from gerrit repot: https://gerrit.maxim-ic.com:8443/#/admin/projects/cordio-open

    2960f7917b43be03c60b7882a48424185a3875fd

* removes byte swapping, in turn fixing pairing failures

* Fixing build errors.

* Changes made to Cordio files to Support IAR/Keil Effort (#2)

* Changes made to Cordio files to Support IAR/Keil Effort

* updated pal_flash.c and wsf_heap_sbrk.c based on PR comments

Co-authored-by: SRV-JenkinsIDE <SRV-JenkinsIDE@maximintegrated.com>

* added missing argument fix to PalCfgLoadData() for max32655 and max32665

* Adding BLE_Examples_Tests.yml

* Deleting Libraries/Cordio before checkout.

* Updating nordic pal_cfg.c

* Fixing sign of trace value.

* Adding VS commands.

* Recovering from decryption failure due to counter offset.

* Fixing HCI bug with LHCI_OPCODE_VS_RESET_CONN_STATS.

* Making default Host and Controller definitions.

* update yaml to use workflow from .github folder

* testing

* Update BLE_Examples_Tests.yml

* Added new command 'cmd' in terminal.

* Corrected the terminal cmd example.

* Using 32kHz clock for pal_timer. (#7)

* Using 32kHz clock for pal_timer.

* Accounting for short timeouts.

* Update pal_timer.c

Correcting PalTimerGetExpTime conversion.

* Increasing setup time.

* Tuning setup time.

* Updating .yml file to match msdk.

* Fixing .yml syntax.

Co-authored-by: Kevin Gillespie <Kevin.Gillespie@analog.com>

* removes memset workaround in ME18 PalFlashRead

* Removing Cordio submodules.

* Merge prep.

* clang-format bot reformatting.

* Adding Libraries/Cordio to ignore list

* Updating ignore directories.

* Revert "clang-format bot reformatting."

This reverts commit 6db1af9.

* Ignoring Libraries/Cordio

* Removing submodules.

* Adding Libraries/Cordio to watch list.

Co-authored-by: Kevin Gillespie <Kevin.Gillespie@analog.com>
Co-authored-by: Eddie <eddie.amaya@analog.com>
Co-authored-by: Eddie <62710807+EdwinFairchild@users.noreply.github.com>
Co-authored-by: ftariqAnalogTx <109228171+ftariqAnalogTx@users.noreply.github.com>
Co-authored-by: SRV-JenkinsIDE <SRV-JenkinsIDE@maximintegrated.com>
Co-authored-by: Ying Cai <110848915+yc-adi@users.noreply.github.com>
Co-authored-by: Ying Cai <ying.cai@analog.com>
Co-authored-by: kevin-gillespie <kevin-gillespie@users.noreply.github.com>
Jake-Carter pushed a commit that referenced this pull request Feb 24, 2023
* MAX32655: Adding Coremark example.

* MAX32520:Adding Coremark example.

* MAX32520: Enabling ICC for Coremark example.

* MAX32655: Enabling ICC for Coremark example.

* MAX32572: Adding Coremark example and updating ICC references to SFCC.

* MAX32520: Updating Coremark example's project.mk.

* MAX32650: Adding Coremark example.

* MAX32650: Enabling ICC for Coremark example.

* MAX32660: Adding Coremark example.

* MAX32662: Adding Coremark example.

* MAX32665: Adding Coremark example.

* MAX32670: Adding Coremark example.

* MAX32672: Adding Coremark example.

* MAX32675: Adding Coremark example.

* MAX32675: Enabling ICC for Coremark example.

* MAX32680: Adding Coremark example.

* MAX78000: Adding Coremark example.

* MAX78002: Adding Coremark example.

* Creating Coremark library and removing all duplicates from each of the Coremark examples.

* Adding a README to each of the Coremark examples.

* Adding 'Coremark' to examples.txt.

* Updating clang-formatting workflows to ignore Coremark library.

* Updating clang format workflows to exclude Coremark example.

* Attempt #2 to exclude Coremark example from clang-format-check workflow.

* Updating Verify Register workflow to be compatible with forks.

* Updating Verify Register workflow to be compatible with forks. (Attempt 2)

* Verify_Register_SVD: Updated the steps so workflow will finish if no file changes were detected.

* ME55: Updated ICC -> SFCC SVD.

* Verify_Register_SVD: Added ME55 to supported parts list.

* Resolving SVD workflow error. (Attempt #1)

* Revert "Resolving SVD workflow error. (Attempt #1)"

This reverts commit 1aea2d3.

* MAX32690: Adding Coremark example.

* Removing Coremark Library and examples from clang format checks.

* ME55: Added sema_reva2_me55.svd to fixed SVD Action errors.

* ME55: Coremark: Resolving register file differences.

* MAX32690: Adding 'Coremark' to examples.txt.

* Adding comments to Coremark example project.mk's.

* Fixing typo and re-organizing Coremark example project.mk's.

* Adding more information to Coremark example README's.

---------

Co-authored-by: Sihyung Woo <75494566+sihyung-maxim@users.noreply.github.com>
kevin-gillespie added a commit that referenced this pull request Mar 6, 2023
Co-authored-by: Kevin Gillespie <Kevin.Gillespie@analog.com>
Jake-Carter pushed a commit that referenced this pull request Mar 7, 2023
* MAX32655: Adding Coremark example.

* MAX32520:Adding Coremark example.

* MAX32520: Enabling ICC for Coremark example.

* MAX32655: Enabling ICC for Coremark example.

* MAX32572: Adding Coremark example and updating ICC references to SFCC.

* MAX32520: Updating Coremark example's project.mk.

* MAX32650: Adding Coremark example.

* MAX32650: Enabling ICC for Coremark example.

* MAX32660: Adding Coremark example.

* MAX32662: Adding Coremark example.

* MAX32665: Adding Coremark example.

* MAX32670: Adding Coremark example.

* MAX32672: Adding Coremark example.

* MAX32675: Adding Coremark example.

* MAX32675: Enabling ICC for Coremark example.

* MAX32680: Adding Coremark example.

* MAX78000: Adding Coremark example.

* MAX78002: Adding Coremark example.

* Creating Coremark library and removing all duplicates from each of the Coremark examples.

* Adding a README to each of the Coremark examples.

* Adding 'Coremark' to examples.txt.

* Updating clang-formatting workflows to ignore Coremark library.

* Updating clang format workflows to exclude Coremark example.

* Attempt #2 to exclude Coremark example from clang-format-check workflow.

* Updating Verify Register workflow to be compatible with forks.

* Updating Verify Register workflow to be compatible with forks. (Attempt 2)

* Verify_Register_SVD: Updated the steps so workflow will finish if no file changes were detected.

* ME55: Updated ICC -> SFCC SVD.

* Verify_Register_SVD: Added ME55 to supported parts list.

* Resolving SVD workflow error. (Attempt #1)

* Revert "Resolving SVD workflow error. (Attempt #1)"

This reverts commit 1aea2d3.

* MAX32690: Adding Coremark example.

* Removing Coremark Library and examples from clang format checks.

* ME55: Added sema_reva2_me55.svd to fixed SVD Action errors.

* ME55: Coremark: Resolving register file differences.

* MAX32690: Adding 'Coremark' to examples.txt.

* Adding comments to Coremark example project.mk's.

* Fixing typo and re-organizing Coremark example project.mk's.

* Adding more information to Coremark example README's.

---------

Co-authored-by: Sihyung Woo <75494566+sihyung-maxim@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants