单片机解密GD32F103C8T6做的bootloader方案
| 单片机解密GD32F103C8T6片内flash64k分为三个区域,boot大小0x2000,APP大小0x7000,升级按块传输,每块最大1K,升级前先传输升级标志、升级包大小;每块数据先发送当前是第几块、块大小、块校验;剩余片内flash前面1K存放升级标志、升级包大小、每块升级包的信息,其它存放数据 主函数如下: #include "DefExtern.h" #include "gd32f10x.h" int main(void) { INT16U UpgradeFlag = 0; UpgradeFlag = *(__IO INT16U*)(UPGRADE_FLAG_ADDRESS); if(UpgradeFlag == 0xFEFE) { if(CheckUpgradeData()) { UpGradeDataToApp(); } EraseNPage(UPGRADE_FLAG_ADDRESS, FLASH_PAGE_SIZE); } BootLoadJump(); } |

芯片解密