{"id":44306623,"url":"https://github.com/crazybolillo/stm32f401xc","last_synced_at":"2026-02-11T03:16:32.049Z","repository":{"id":198147301,"uuid":"700177005","full_name":"crazybolillo/stm32f401xc","owner":"crazybolillo","description":"Bunch of  programs for a STM32F401CCU6. Using CMSIS, FreeRTOS and TinyUSB","archived":false,"fork":false,"pushed_at":"2024-01-13T17:35:39.000Z","size":39,"stargazers_count":1,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-01-14T02:23:40.872Z","etag":null,"topics":["arm","cmsis","freertos","stm32","tinyusb"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/crazybolillo.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}},"created_at":"2023-10-04T05:11:28.000Z","updated_at":"2023-11-14T15:46:46.000Z","dependencies_parsed_at":"2023-10-10T22:35:16.378Z","dependency_job_id":"6e5cef57-2d83-48e9-818e-af5ffcac7104","html_url":"https://github.com/crazybolillo/stm32f401xc","commit_stats":null,"previous_names":["crazybolillo/stm32f401xc"],"tags_count":0,"template":null,"template_full_name":null,"purl":"pkg:github/crazybolillo/stm32f401xc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crazybolillo%2Fstm32f401xc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crazybolillo%2Fstm32f401xc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crazybolillo%2Fstm32f401xc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crazybolillo%2Fstm32f401xc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/crazybolillo","download_url":"https://codeload.github.com/crazybolillo/stm32f401xc/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crazybolillo%2Fstm32f401xc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29326096,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-11T02:08:56.257Z","status":"ssl_error","status_checked_at":"2026-02-11T02:08:51.338Z","response_time":97,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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","cmsis","freertos","stm32","tinyusb"],"created_at":"2026-02-11T03:16:31.378Z","updated_at":"2026-02-11T03:16:32.037Z","avatar_url":"https://github.com/crazybolillo.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# stm32f401xc\nThis is a collection of programs using a STM32F401CCU6 chip. Most if not all of them follow a similar\nstructure:\n\n* FreeRTOS is used to schedule tasks.\n* TinyUSB is used for the USB stack.\n* Most data is displayed through a USB CDC connection (can be seen with a serial monitor).\n* Whenever possible, only CMSIS5 is used to configure/use the hardware registers. USB is an exception since I value my\n  mental sanity.\n\nOverall this project should be of help in the following cases:\n\n* Need some simple examples on how to use FreeRTOS in \"real life\".\n* Want to see how the TinyUSB stack is used for serial-like communication.\n* Need an example of how to set up some hardware modules with pure register access (no HAL).\n\nI should mention at this point that I am not an authoritative source of information. I personally enjoy the way I have\nset up all code in this project (using clang-format and clang-tidy), but who knows, maybe it's all crap.\n\n## Building\nThis project uses CMake and assumes you have a working ARM toolchain setup on your computer. The build process\nhas only been tested (at least that I know of) on Linux systems (specifically Arch Linux btw). You need to use\none of the toolchain files provided in the `vendor/arm-cmake` folder. For example, to build all programs in this\nrepository, use:\n\n```shell\ncmake -DCMAKE_TOOLCHAIN_FILE=\"vendor/arm-cmake/clang-arm-gcc-toolchain.cmake\" -S./ -B./build\ncmake --build build\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrazybolillo%2Fstm32f401xc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcrazybolillo%2Fstm32f401xc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrazybolillo%2Fstm32f401xc/lists"}