keil mdk 学习stm32f103C8 IAP笔记

1. 在学习stm32f103的IAP编程时候,需要生成bin文件,若需要还要生成反汇编文件,可在keil mdk进行如下设置

keil mdk 学习stm32f103C8 IAP笔记

生成bin文件填入:fromelf.exe --bin -o "[email protected]" "#L"

生成反汇编文件填入:fromelf.exe --text -a -c [email protected]_asm.txt "!L"

 

2. 若要将代码片段(不是完整的程序)编译产生bin文件,供iap下载用,还需修改分散加载文件(*.sct)进行如下设置

keil mdk 学习stm32f103C8 IAP笔记

keil mdk 学习stm32f103C8 IAP笔记

保存后按F7编译

 

3. Hex和bin文件的区别:

HEX文件是文本文件,包含了很多烧写记录,每条烧写记录为一行,包括烧写的位置和烧写的内容,用ASCII十六进制表示,文件比bin文件大。

BIN文件就是直接的二进制文件,内部没有地址标记。用烧写时必须制定烧写位置

 

4. 对stm32f103c8内部Flash进行烧写前,需要进行擦除操作,擦除后所有字节的数据都为0xFF,烧写过程则是将所需的bit位由1改写为0的过程,只有擦除操作能把0置位为1,所以擦除操作必不可少。为了烧写是按半字(halfword,16位)来进行的,一个比较实用的方法是,判断将要写入的半字的位置是否为为一页的起始(地址对1024求模等于0),若是则擦除这一页。也可先读出需要烧写的区域,判断是否都为0xFF,若是不急进行擦除即可写入。