{"id":13812460,"url":"https://github.com/pyocd/FlashAlgo","last_synced_at":"2025-05-14T22:30:48.635Z","repository":{"id":27632873,"uuid":"31117400","full_name":"pyocd/FlashAlgo","owner":"pyocd","description":"Framework for building Arm Cortex-M \"FLM\" style flash programming algorithms.","archived":false,"fork":false,"pushed_at":"2023-09-01T08:02:41.000Z","size":9582,"stargazers_count":161,"open_issues_count":15,"forks_count":152,"subscribers_count":35,"default_branch":"main","last_synced_at":"2025-04-06T09:08:05.875Z","etag":null,"topics":["cortex-m","flash-algorithm"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pyocd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-02-21T06:24:41.000Z","updated_at":"2025-03-08T19:06:39.000Z","dependencies_parsed_at":"2024-08-04T04:02:26.287Z","dependency_job_id":"36697550-6ff3-4bd1-8c97-022f48fcf347","html_url":"https://github.com/pyocd/FlashAlgo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyocd%2FFlashAlgo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyocd%2FFlashAlgo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyocd%2FFlashAlgo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyocd%2FFlashAlgo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyocd","download_url":"https://codeload.github.com/pyocd/FlashAlgo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254239451,"owners_count":22037713,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cortex-m","flash-algorithm"],"created_at":"2024-08-04T04:00:52.168Z","updated_at":"2025-05-14T22:30:43.608Z","avatar_url":"https://github.com/pyocd.png","language":"C","funding_links":[],"categories":["Storage"],"sub_categories":["Flash Memory"],"readme":"# FlashAlgo\n\nFramework for building Arm \"FLM\" style flash programming algorithms.\n\n\n## Other options\n\nBefore you consider adding a flash algo here, you might wish to check if an open source flash algo already exists\nfor 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.\n\nYou 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/).\n\nDFPs 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.\n\n\n## Development Setup\n\nSkip any step where a compatible tool already exists\n\n1. Install [Python 3.6 or later](https://www.python.org/downloads/) and make sure it's added to path\n2. Install [Git](https://git-scm.com/downloads) and make sure it's added to path\n3. Install a supported toolchain:\n    1. [GNU Arm Embedded](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm)\n    2. [Keil MDK-ARM](https://www.keil.com/download/product/)\n4. Install GNU Make.\n\n```\n$ git clone https://github.com/mbedmicro/FlashAlgo\n$ python3 -mvenv venv\n$ source venv/bin/activate\n$ pip install -r requirements.txt\n```\n\n## Develop\n\n### GCC with Make\n\n1. Update tools and generate project files. This should be done everytime you pull new changes\n\n```\n$ progen build -t make_gcc_arm\n```\n\nAdd 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`.\n\n### MDK\n\n```\n$ progen generate -t uvision\n$ tools\\launch_uvision.bat\n\n```\nNow open the project file for the desired target in `.\\projectfiles\\uvision\\\u003ctarget\u003e\\`\n\nTo change the RAM base address to something other than the default value of 0x20000000, add the argument `--blob_start \u003chex-ram-address\u003e` in \"Projects ❱ Options ❱ User ❱ After Build/Rebuild section of the µVision project.\n\n\n## Adding a new project\n\nFor adding new targets start from template and use these docs...\n\n## Contributions\n\nWe welcome contributions! Please see the [contribution guidelines](CONTRIBUTING.md) for detailed requirements.\nIn order to foster a healthy and safe community, all contributors are expected to follow the\n[code of conduct](CODE_OF_CONDUCT.md).\n\nTo report bugs, please [create an issue](https://github.com/pyocd/FlashAlgo/issues/new) in the GitHub project.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpyocd%2FFlashAlgo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpyocd%2FFlashAlgo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpyocd%2FFlashAlgo/lists"}