{"id":37693837,"url":"https://github.com/itzandroidtab/dfu_bootloader","last_synced_at":"2026-01-16T12:45:49.643Z","repository":{"id":196381636,"uuid":"695986939","full_name":"itzandroidtab/dfu_bootloader","owner":"itzandroidtab","description":"Klib dfu bootloader","archived":false,"fork":false,"pushed_at":"2024-02-28T13:00:21.000Z","size":13,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-04-28T02:05:01.329Z","etag":null,"topics":["bootloader","dfu","klib","lpc17xx"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/itzandroidtab.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2023-09-24T20:02:20.000Z","updated_at":"2023-09-24T20:31:16.000Z","dependencies_parsed_at":"2024-02-16T23:04:58.184Z","dependency_job_id":"49c68a60-4980-4faf-8e0a-860fc6b8c17a","html_url":"https://github.com/itzandroidtab/dfu_bootloader","commit_stats":null,"previous_names":["itzandroidtab/klib_bootloader"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/itzandroidtab/dfu_bootloader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itzandroidtab%2Fdfu_bootloader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itzandroidtab%2Fdfu_bootloader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itzandroidtab%2Fdfu_bootloader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itzandroidtab%2Fdfu_bootloader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/itzandroidtab","download_url":"https://codeload.github.com/itzandroidtab/dfu_bootloader/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itzandroidtab%2Fdfu_bootloader/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28478737,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"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":["bootloader","dfu","klib","lpc17xx"],"created_at":"2026-01-16T12:45:48.590Z","updated_at":"2026-01-16T12:45:49.623Z","avatar_url":"https://github.com/itzandroidtab.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# USB DFU bootloader\n\nUSB DFU bootloader for the lpc1756. Supports writing binary files using dfu-util 0.11. Has a override input that prevents the bootloader from starting the application. \n\n:warning: Currently the bootloader only checks if the flash is blank and does not check if a valid user application is present. This can cause the target to get stuck until a power cycle, as the bootloader does not initialize any watchdogs.\n\nThe bootloader should be easy to change to a different target. (As long as it has the USB driver, flash driver and pin_in working)\n\n### Compiling\nThe bootloader uses [klib](https://github.com/itzandroidtab/klib). This repo can be cloned in the klib project folder. See [build.yml](./.github/workflows/build.yml) for more info on compiling this project.\n\n### Example usage dfu-util\n```bash\ndfu-util -D ./klib.bin\n```\nCurrently dfuSe is not supported. This means the content of `klib.bin` will be written at location `app_vector_address`. This also prevents dfu-util from overwriting the bootloader.\n\n### Size optimization\nSize can be optimized further by removing the CRP section in the linkerscript (decreasing the size to ≈3800 bytes. This makes it fit in the first sector).\n\n### User application\nThe bootloader expects the user application to start at the address specified in `app_vector_address`. This means the user application needs to modify the linkerscript so the vector table is in this location.\n\nThe bootloader expects the normal vector table that includes the stack, reset handler and the other interrupts. The bootloader will \nsetup the stack and move the vector table to `app_vector_address`. This allows the user application to trigger interrupts without moving the vector table to ram. After this setup the bootloader will call the reset handler. \n\n:warning: If the stack entry or the reset handler is incorrect the bootloader will crash as there is no check for a valid application at the moment.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitzandroidtab%2Fdfu_bootloader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fitzandroidtab%2Fdfu_bootloader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitzandroidtab%2Fdfu_bootloader/lists"}