Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pyocd/FlashAlgo
Framework for building Arm Cortex-M "FLM" style flash programming algorithms.
https://github.com/pyocd/FlashAlgo
cortex-m flash-algorithm
Last synced: 23 days ago
JSON representation
Framework for building Arm Cortex-M "FLM" style flash programming algorithms.
- Host: GitHub
- URL: https://github.com/pyocd/FlashAlgo
- Owner: pyocd
- License: apache-2.0
- Created: 2015-02-21T06:24:41.000Z (almost 10 years ago)
- Default Branch: main
- Last Pushed: 2023-09-01T08:02:41.000Z (over 1 year ago)
- Last Synced: 2024-11-09T14:12:18.132Z (about 1 month ago)
- Topics: cortex-m, flash-algorithm
- Language: C
- Homepage:
- Size: 9.14 MB
- Stars: 159
- Watchers: 35
- Forks: 151
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-embedded-software - FlashAlgo - Framework for building Arm Cortex-M "FLM" style flash programming algorithms. (Storage / Flash Memory)
README
# 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](https://www.keil.com/dd2/pack/) or [by part number](https://www.keil.com/dd2/).
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](https://www.python.org/downloads/) and make sure it's added to path
2. Install [Git](https://git-scm.com/downloads) and make sure it's added to path
3. Install a supported toolchain:
1. [GNU Arm Embedded](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm)
2. [Keil MDK-ARM](https://www.keil.com/download/product/)
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\\`To change the RAM base address to something other than the default value of 0x20000000, add the argument `--blob_start ` 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](CONTRIBUTING.md) for detailed requirements.
In order to foster a healthy and safe community, all contributors are expected to follow the
[code of conduct](CODE_OF_CONDUCT.md).To report bugs, please [create an issue](https://github.com/pyocd/FlashAlgo/issues/new) in the GitHub project.