Skip to content

Framework for building Arm Cortex-M "FLM" style flash programming algorithms.

License

Notifications You must be signed in to change notification settings

pyocd/FlashAlgo

Repository files navigation

FlashAlgo

Framework for building Arm "FLM" style flash programming algorithms.

Other options

Before you consider adding a flash algo here, you might wish to check if an open source flash algo already exists for your device or a similar device. Many of the FLM flash algos included in CMSIS Device Family Packs (DFPs) come with source code. For instance, the Keil DFPs include sources.

You can download a DFP for your device from the official CMSIS-Pack list: by pack or by part number.

DFPs extract as zips (change the extension). For the DFPs created by Keil, .FLM algos and code are under ./CMSIS/Flash/. Other vendors may have algos in a different folder, and may or may not include source.

Development Setup

Skip any step where a compatible tool already exists

  1. Install Python 3.6 or later and make sure it's added to path
  2. Install Git and make sure it's added to path
  3. Install a supported toolchain:
    1. GNU Arm Embedded
    2. Keil MDK-ARM
  4. Install GNU Make.
$ git clone https://github.com/mbedmicro/FlashAlgo
$ python3 -mvenv venv
$ source venv/bin/activate
$ pip install -r requirements.txt

Develop

GCC with Make

  1. Update tools and generate project files. This should be done everytime you pull new changes
$ progen build -t make_gcc_arm

Add the project name(s) to the command if you only want to build a limited set of projects. You can list available projects with progen list -f projects.yaml projects.

MDK

$ progen generate -t uvision
$ tools\launch_uvision.bat

Now open the project file for the desired target in .\projectfiles\uvision\<target>\

To change the RAM base address to something other than the default value of 0x20000000, add the argument --blob_start <hex-ram-address> in "Projects ❱ Options ❱ User ❱ After Build/Rebuild section of the µVision project.

Adding a new project

For adding new targets start from template and use these docs...

Contributions

We welcome contributions! Please see the contribution guidelines for detailed requirements. In order to foster a healthy and safe community, all contributors are expected to follow the code of conduct.

To report bugs, please create an issue in the GitHub project.

About

Framework for building Arm Cortex-M "FLM" style flash programming algorithms.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Languages