Keil5-Boot和App配置
- ■ Keil5-Boot和APP配置
- ■ 一:sct文件 sct文件配置
- ■ 二:发布版本不需要在 C/C++,Asm,Linker,中添加 CMDDEBUG 宏定义。
- ■ 三:Debug版本需要在Linker添加 --pd="-DCMDDEBUG" 才能 生效sct配置文件
- ■ 四:app和debug 版本分开工程文件(也非必须分开,就是要来回设置比较麻烦,建议分开工程文件)
- ■ 五:Debug版本才有跳转函数,boot 跳转到app 代码中boot 会重新配置向量表偏移地址并将app地址压栈,这样就完美调到App中
- ■ 六:Keil5-将App应用程序烧录到指定Flash地址
- ■ 设置一:修改Keil5 下载地址
- ■ 设置二:修改sct文件
- ■ 设置三:IROM1 设置
- ■ 设置四:向量表偏移地址
- ■ 设置五:查看烧录结果
■ Keil5-Boot和APP配置
关键词 | 描述 |
---|---|
无 boot 有 app | app烧录在0x08000000地址中的进行调试。 |
有 boot 有 app | 有boot 的情况下boot 开机在没有接收到握手信号就会跳到app地址执行,所以这个时候在App在用Keil调试也是没有问题的。 例如: boot 烧录在0x08000000地址中 app 烧录在0x08008000地址中 , boot 大小就是0x08000; |
■ 一:sct文件 sct文件配置
注意 :#! armcc -E 必须占用第一行,或者编译不通过。
■ 二:发布版本不需要在 C/C++,Asm,Linker,中添加 CMDDEBUG 宏定义。
■ 三:Debug版本需要在Linker添加 --pd=“-DCMDDEBUG” 才能 生效sct配置文件
--pd="-DCMDDEBUG"
■ 四:app和debug 版本分开工程文件(也非必须分开,就是要来回设置比较麻烦,建议分开工程文件)
■ 五:Debug版本才有跳转函数,boot 跳转到app 代码中boot 会重新配置向量表偏移地址并将app地址压栈,这样就完美调到App中
■ 六:Keil5-将App应用程序烧录到指定Flash地址
将它的程序分为Bootloader程序和用户程序。
一个Bootloader程序和一个用户程序,那么这就需要调整分散加载文件 .stm32f2_dock.sct文件,以达成在一个Flash里面同时摆放两个不同程序的目的。
下面修改App示例,boot也是这样修改为boot起始地址和大小:
例如 Flash128KByte 大小为 0x20000 == 0x8020000 - 0x8000000
128*1024 == 131,072 == 0x20000
假如我们要讲APP烧录在APP_START_ADDR 0x8008000
■ 设置一:修改Keil5 下载地址
■ 设置二:修改sct文件
■ 设置三:IROM1 设置
■ 设置四:向量表偏移地址
因为在boot中已经设置了向量表 SCB->VTOR = APP_START_ADDR; //设置向量表偏移地址。
发布版本要屏蔽修改向量表。所以条件个CMDDEBUG .不在初始化向量表。