关于 ST eMotion board 使用DFU的一点总结
在用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目标序号的设置和添加文件时地址的设置要正确,否则就有问题。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |