{"id":30017159,"url":"https://github.com/embeddedalpha/blackshield-bootloader","last_synced_at":"2025-08-05T22:43:54.585Z","repository":{"id":296132278,"uuid":"991722131","full_name":"embeddedalpha/Blackshield-Bootloader","owner":"embeddedalpha","description":null,"archived":false,"fork":false,"pushed_at":"2025-06-30T03:24:26.000Z","size":13776,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-30T04:29:44.483Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/embeddedalpha.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,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-28T04:03:51.000Z","updated_at":"2025-06-30T03:24:29.000Z","dependencies_parsed_at":"2025-06-30T04:23:43.852Z","dependency_job_id":"93d5805f-a71e-417d-bbd9-6a8c4747fa24","html_url":"https://github.com/embeddedalpha/Blackshield-Bootloader","commit_stats":null,"previous_names":["embeddedalpha/blackshield-bootloader"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/embeddedalpha/Blackshield-Bootloader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/embeddedalpha%2FBlackshield-Bootloader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/embeddedalpha%2FBlackshield-Bootloader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/embeddedalpha%2FBlackshield-Bootloader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/embeddedalpha%2FBlackshield-Bootloader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/embeddedalpha","download_url":"https://codeload.github.com/embeddedalpha/Blackshield-Bootloader/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/embeddedalpha%2FBlackshield-Bootloader/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268987244,"owners_count":24340648,"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","status":"online","status_checked_at":"2025-08-05T02:00:12.334Z","response_time":2576,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2025-08-05T22:43:52.741Z","updated_at":"2025-08-05T22:43:54.501Z","avatar_url":"https://github.com/embeddedalpha.png","language":"C","readme":"# Blackshield Bootloader \n\n\n### Developed for STM32F407. Bootloader's size is 28Kb on STM3232F407\n\n### Jumps to location 0x08010000 where application sits.\n\n\n\n### Update system_stm32f4xx.c \n\n```C\n\n#define USER_VECT_TAB_ADDRESS //Uncomment this line\n\n#if defined(USER_VECT_TAB_ADDRESS)\n/*!\u003c Uncomment the following line if you need to relocate your vector Table\n     in Sram else user remap will be done in Flash. */\n/* #define VECT_TAB_SRAM */\n#if defined(VECT_TAB_SRAM)\n#define VECT_TAB_BASE_ADDRESS   SRAM_BASE       /*!\u003c Vector Table base address field.\n                                                     This value must be a multiple of 0x200. */\n#define VECT_TAB_OFFSET         0x00000000U     /*!\u003c Vector Table base offset field.\n                                                     This value must be a multiple of 0x200. */\n#else\n#define VECT_TAB_BASE_ADDRESS   FLASH_BASE      /*!\u003c Vector Table base address field.\n                                                     This value must be a multiple of 0x200. */\n#define VECT_TAB_OFFSET         0x00010000U     /*!\u003c Vector Table base offset field.\n                                                     This value must be a multiple of 0x200. */\n#endif /* VECT_TAB_SRAM */\n#endif /* USER_VECT_TAB_ADDRESS */\n\n\n```\n\n### Update STM32F407GTX_FLASH.ld linker file\n\n```ld\nMEMORY\n{\n  CCMRAM    (xrw)    : ORIGIN = 0x10000000,   LENGTH = 64K\n  RAM    (xrw)    : ORIGIN = 0x20000000,   LENGTH = 128K\n  FLASH    (rx)    : ORIGIN = 0x8010000,   LENGTH = 448K \n}\n\n```\n\n### Application size needs to be updated in the linker file of the bootloader and application. \n\n### Run the PC application to flash the processor\n\n![alt text](./Software/Resources/image.png)\n\n\n### Command Structure\n\n```\n     ___________________________________________________________________\n     |                |          |          |         |                 |              \n     | Start of Frame |  Command | Length   | Payload | End of Frame    |\n     |________________|__________|__________|_________|_________________|\n\n     Start of Frame: 0xAA 0x55\n     Command: 0xA0 - 0xA6\n     Length: 0-255\n     Payload: data[0] - data[255]\n     End of Frame: 0xBB 0x66\n\n```\n### Boot and Application Data\n\n16 bytes are reserved for Application Configuration\n4 bytes for Application length in bytes\n4 bytes for Application CRC in\n1 byte for Firmware Version\n1 byte for Product ID\n1 byte for Product Version\n1 byte for App version\n\n\n```ld\nMEMORY\n{\n  CCMRAM    (xrw)    : ORIGIN = 0x10000000,   LENGTH = 64K\n  RAM    (xrw)    : ORIGIN = 0x20000000,   LENGTH = 128K\n  APP_SPACE    (rx)    : ORIGIN = 0x08010000,   LENGTH = 64K \n  APP_CONFIG(rw) : ORIGIN =  0x0801FFF0,  LENGTH = 16\n  \n}\n\n```","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fembeddedalpha%2Fblackshield-bootloader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fembeddedalpha%2Fblackshield-bootloader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fembeddedalpha%2Fblackshield-bootloader/lists"}