{"id":20536675,"url":"https://github.com/islandcontroller/armcm-devcontainer","last_synced_at":"2025-12-07T05:02:46.808Z","repository":{"id":203170405,"uuid":"694350655","full_name":"islandcontroller/armcm-devcontainer","owner":"islandcontroller","description":"VSCode Devcontainer for ARM Cortex-M development","archived":false,"fork":false,"pushed_at":"2025-02-23T15:31:46.000Z","size":188,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-23T16:27:15.588Z","etag":null,"topics":["arm","cmake","cortex-m","gnu-arm-embedded-toolchain","jlink","openocd","vscode-devcontainer"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/islandc/armcm-devcontainer","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/islandcontroller.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"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":"2023-09-20T20:29:10.000Z","updated_at":"2025-02-23T15:26:42.000Z","dependencies_parsed_at":"2023-11-18T00:09:22.083Z","dependency_job_id":"5515aa50-7043-4a85-b36e-5a8d009e19e8","html_url":"https://github.com/islandcontroller/armcm-devcontainer","commit_stats":null,"previous_names":["islandcontroller/armcm-devcontainer"],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/islandcontroller%2Farmcm-devcontainer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/islandcontroller%2Farmcm-devcontainer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/islandcontroller%2Farmcm-devcontainer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/islandcontroller%2Farmcm-devcontainer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/islandcontroller","download_url":"https://codeload.github.com/islandcontroller/armcm-devcontainer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242144416,"owners_count":20078964,"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":["arm","cmake","cortex-m","gnu-arm-embedded-toolchain","jlink","openocd","vscode-devcontainer"],"created_at":"2024-11-16T00:37:28.764Z","updated_at":"2025-12-07T05:02:46.794Z","avatar_url":"https://github.com/islandcontroller.png","language":"Dockerfile","readme":"# armcm-devcontainer\n[![License](https://img.shields.io/github/license/islandcontroller/armcm-devcontainer)](LICENSE) [![GitHub](https://shields.io/badge/github-islandcontroller%2Farmcm--devcontainer-black?logo=github)](https://github.com/islandcontroller/armcm-devcontainer) [![Docker Hub](https://shields.io/badge/docker-islandc%2Farmcm--devcontainer-blue?logo=docker)](https://hub.docker.com/r/islandc/armcm-devcontainer) ![Docker Image Version (latest semver)](https://img.shields.io/docker/v/islandc/armcm-devcontainer?sort=semver)\n\n*Arm Cortex-M development and debugging environment inside a VSCode devcontainer.*\n\n![Screenshot](scr.PNG)\n\n### Packages\n* [Arm GNU Toolchain](https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads) Version 14.3rel1\n* [SEGGER J-Link Software](https://www.segger.com/downloads/jlink/) Version 8.84\n* [xPack OpenOCD](https://github.com/xpack-dev-tools/openocd-xpack) Version 0.12.0-7\n* [CMake](https://cmake.org/download) Version 4.1.2\n\n## System Requirements\n* VSCode [Dev Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) extension\n* [usbipd-win](https://learn.microsoft.com/en-us/windows/wsl/connect-usb) (Windows *and* WSL parts installed!)\n\n## Usage\n* Include this repo as `.devcontainer` in the root of your project\n* Connect debug probe\n* Select `Dev Containers: Reopen in Container`\n\nFor CMake projects:\n* Upon prompt, select the `Arm GNU Toolchain x.x` CMake Kit. \n  * The toolchain file is located at [`/opt/gcc-arm-none-eabi/gcc-arm-none-eabi.cmake`](gcc-arm-none-eabi.cmake).\n  * The CMake kit definition for VS Code is located at [`/opt/devcontainer/cmake-tools-kits.json`](cmake-tools-kits.json).\n* Run `CMake: Configure`\n* Build using `CMake: Build [F7]`\n\n### CMake+IntelliSense Notes\nUpon first run, an error message may appear in Line 1, Column 1. Try re-running CMake configuration, or run a build. If the file is a `.h` header file, it needs to be `#include`'d into a C module.\n\n### UDEV Rules installation\nIn order to use SEGGER and OpenOCD debug probes within the container, some udev rules need to be installed on the **host** machine. A setup script has been provided to aid with installation.\n* Run `setup-devcontainer` inside the **container**\n* Close the container, and re-open the work directory on your **host**\n* Run the `install-rules` script inside `.vscode/setup/` on your host machine\n\n      cd .vscode/setup\n      sudo ./install-rules\n\n### Serial Monitor\nTo access a serial port inside the devcontainer, use the `cu` command as shown below:\n\n    cu -l \u003cserial port device\u003e -s \u003cbaudrate\u003e\n\ne.g. \"`cu -l /dev/ttyACM0 -s 115200`\".\n\nTo close the connection, press RETURN/ESC/Ctrl-C, type \"`~.`\" (tilde, dot) and wait for 3 seconds.\n\n### SEGGER Ozone\nUse the `setup-devcontainer` script to download and install [SEGGER Ozone](https://www.segger.com/products/development-tools/ozone-j-link-debugger/) and its dependencies:\n\n    setup-devcontainer --install-ozone\n\nLaunch it from a terminal tab using the `ozone` command.\n\n### SEGGER J-Flash other GUI tools\nUse the following command to install the GUI dependencies:\n\n    setup-devcontainer --install-gui\n\nThen, you can launch J-Flash using the `JFlashExe` command.\n\n## Licensing\n\nIf not stated otherwise, the contents of this project are licensed under The MIT License. The full license text is provided in the [`LICENSE`](LICENSE) file.\n\n    SPDX-License-Identifier: MIT","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fislandcontroller%2Farmcm-devcontainer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fislandcontroller%2Farmcm-devcontainer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fislandcontroller%2Farmcm-devcontainer/lists"}