{"id":13423279,"url":"https://github.com/fudanchii/imtomu-rs","last_synced_at":"2026-02-05T17:31:09.542Z","repository":{"id":45615391,"uuid":"159979031","full_name":"fudanchii/imtomu-rs","owner":"fudanchii","description":"Program Tomu board with Rust","archived":false,"fork":false,"pushed_at":"2022-08-26T02:52:57.000Z","size":451,"stargazers_count":19,"open_issues_count":4,"forks_count":9,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-10-26T22:17:36.088Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fudanchii.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}},"created_at":"2018-12-01T19:19:48.000Z","updated_at":"2023-05-08T18:42:35.000Z","dependencies_parsed_at":"2022-08-26T00:10:38.327Z","dependency_job_id":null,"html_url":"https://github.com/fudanchii/imtomu-rs","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fudanchii%2Fimtomu-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fudanchii%2Fimtomu-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fudanchii%2Fimtomu-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fudanchii%2Fimtomu-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fudanchii","download_url":"https://codeload.github.com/fudanchii/imtomu-rs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243750478,"owners_count":20342066,"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":[],"created_at":"2024-07-31T00:00:27.656Z","updated_at":"2026-02-05T17:31:09.507Z","avatar_url":"https://github.com/fudanchii.png","language":"Rust","funding_links":[],"categories":["HAL implementation crates"],"sub_categories":["Silicon Labs"],"readme":"imtomu-rs\n---\n\nBoard support crate targeted for [Tim's Open Micro USB](http://tomu.im/)\n\nIncludes support for tomu-bootloader config (toboot v2).\n\nwork in progress\n\n- [X] toboot config\n- [ ] timers\n- [X] GPIO (most of the functionality is implemented)\n- [ ] USB\n- [ ] AES\n\n\ndependencies\n---\n\nTo build embedded programs using this template you'll need:\n\n- Rust stable, ie 1.31 or a newer toolchain.\n\n- `rust-std` components (pre-compiled `core` crate) for the ARM Cortex-M\n  targets. Run:\n``` console\n$ rustup target add thumbv6m-none-eabi\n```\n\n- llvm-tools-preview for `llvm-objcopy` to turn the elf into a binary for uploading. Run:\n``` console\n$ rustup component add llvm-tools-preview\n```\n\n- The [dfu-util](https://tomu.im/update#installing-dfu-util)\n\n\nusage\n---\n\n```\ncargo run --example blink --release\n\n```\ntoboot config\n---\n\nApplication can interact with tomu bootloader by using `toboot_config` macro.\nIt's fully typesafe so there's no need to worry you're putting wrong config. It will even warns you if you're trying to lock bootloader entry like this:\n```rust\ntoboot_config! {\n    lock_entry: true,\n}\n```\n\n![warns](https://f4.fudan.ch/shx/putty_(3)_2019-01-28_13-43-45.png)\n\nFull config as the following:\n```rust\ntoboot_config! {\n    config: [autorun_enable, irq_enable],\n    lock_entry: false,\n    // efm32hg309f64 has 64KiB flash memory,\n    // each bit below represent 1 sector (1KiB)\n    // which will be erased when tomu load its bootloader\n    erase_mask_lo: 0, // 32bit uint\n    erase_mask_hi: 0, // 32bit uint\n}\n```\n\nToboot api ref: [here](https://github.com/im-tomu/tomu-bootloader/blob/master/API.md).\n\nexamples\n---\nThere are some examples on how to use tomu in examples folder.\n\nlicense\n---\nLicensed under 2-clause BSD.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffudanchii%2Fimtomu-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffudanchii%2Fimtomu-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffudanchii%2Fimtomu-rs/lists"}