概述
在用ST eMotion board的过程中,使用DFU进行reprogram的时候,可能出现一些问题。
ST eMotion board的结构如下:
并且dataSheet提到:
The eMotion also implements the DFU (device firmware upgrade) feature, therefore, in the
case of a new firmware release, it can be reprogrammed without the need to use a
programmer. See www.st.com/mems for new firmware release.
也就是eMotion实现了DFU。
关于DFU,网上教程零零散散,下面总结了一点:
1、eMotion board进入DFU模式之前,必须先按住SW2,再上电直到D1, D4, D5, and D6 light up.
2、使用DFU file manager的时候,最好选择bin文件转换,并修改rom起始地址和target ID与target Name,具体参照DfuSe Demonstration检测到设备之后的存储器可擦写的地址。
3、用IAR6.3以上版本编译官方Demo project的时候,出现以下错误:
Error[Pe147]: declaration is incompatible with "__nounwind __interwork __softfp unsigned long __get_PSP(void)".........
解决办法:
under project options:
1- on the "General Options" option in the "Library Configuration" tab
check the checkbox “Use CMSIS”
2- on the "C/C++ Compiler" option in the "Preprocessor" tab
remove the include directory of CM3 "$PROJ_DIR$....LibrariesCMSISCM3CoreSupport"
4、输出选择二进制Bin文件
==============================参考资料=================================
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目标序号的设置和添加文件时地址的设置要正确,否则就有问题。
最后
以上就是清秀心锁为你收集整理的关于 ST eMotion board 使用DFU的一点总结的全部内容,希望文章能够帮你解决关于 ST eMotion board 使用DFU的一点总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复