结合DC的《关于 ST eMotion board 使用DFU的一点总结》(http://blog.csdn.net/xiangshimoni/article/details/7992106)
开发用到的软件:IAR EWARM 6.3,Dfuse 3.0.2,Secure CRT6.5.0
Demo使用IAREmbedded Workbench 6.3编写,需要安装6.3或者更高版本,使用时拷贝到自己的工作目录,直接用IAR打开即可,配置不需要太多改动。
一、
编译项目时会出现以下错误提示:Error[Pe147]:declaration is incompatible with "__nounwind __interwork __softfp unsig……
解决方法如下:
在项目上右键→options:
1- 勾选"GeneralOptions" –>"Library Configuration" ->“Use CMSIS”
2-删除"C/C++Compiler" ->"Preprocessor" ->"$PROJ_DIR$\..\..\Libraries\CMSIS\CM3\CoreSupport"
以上工作之后Rebuild All就可以了
具体参考:http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/TECHNICAL_NOTE/DM00039768.pdf
二、
1. 修改完工程编译的时候只用make即可,不用先make再Rebuild all。
(make就是仅把改动的文件编译了,然后再跟其他的obj文件链接起来,不用全部编译一遍)
Make可以直接点这个按钮:
2.生成hex比生成bin文件后面用起来更方便(生成dfu的时候不用选择起始地址,当然这样做不严谨,仅供调试用)
3.生成dfu的过程:(调试用,有资料称选择Target Name 很重要,详见下面的参考资料)
参考资料:
STM32的DFU文件生成方法详解:
最近好象很多人都在问关于DFU文件的使用问题,正好我们刚研究过,给大家讲讲我们的用法。
第一步,准备好要转换的文件,bmp和wav格式,ST原版的DEMO就是这两种格式,后缀改为.bin(也可不改,只是选文件类型过滤选ALL Files(*.*)).
第二步,运行DFU File Manager,选择第一项(I want to GENERATE a DFU file from S19,HEX,or BIN Files),这个是生成DFU文件,第二项是解压DFU文件,点OK进入下一步。
第三步,左边的三个文本框是产品ID,版本信息,可以不用动它,右边有个Target文本框,这个是选择生成的DFU文件写到哪个存储器里,这个非常重要,一定要写对,前面问DFU不 成功的都可能是这个问题,ST原版有三个存储器可写,分别是(0,片内Flash),(1,外部SPI Flash),(2,外部Nor Flash),这里我们选择写到外部Nor Flash里面,所以改为 2,下面是芯片的名称可以不管,只要上面的数字对了就可以,点击Multi
BIN...进入下一步。
第四步,这里是添加你要转换的文件了,首先将地址该为你要存放的位置,如64000000,这是nor flash 的起始地址,当然根据你的片选分配的不一样这个地址也是不一样的,然后点右边的...按钮选择一个你要添加的文件点打开,再点Add to list,一个文件就加进来了,下面显示有这个文件的起始地址和结尾地址,要再添加文件就在前一个文件的结尾地址上加1设置为下一个文件的起始地址,这样一直把你要添加的文件加完,点OK返回。点右下方的Generate...按钮选择你要保存DFU文件的目录和输入文件名称再点保存,一个DFU文件就生成了。
这里特别要注意的就是Target目标序号的设置和添加文件时地址的设置要正确,否则就有问题。