《单片机通过USB(U盘)升级固件的方法.docx》由会员分享,可在线阅读,更多相关《单片机通过USB(U盘)升级固件的方法.docx(9页珍藏版)》请在三一办公上搜索。
1、单片机升级固件的方法有很多中,比如:ISP(在系疣编程)、ICP(在电路编程)、IAP(在应用编程)等.今天结合瑞萨单片机(RA4M3)、e2studio开发环境给大家讲述的是单片机通过USB(U盘)升级固件的方法。RA4M3通过USB实现固件升破O1.固件更新应用案例 1)修更程序错误 2)功能升级02首先必须规划好BOOt1.Oader和APP1.iCatiOn的空间分配“如下图所示,案例使用R7FA4M3AF3CFB.有IM的ROM.BoOtIOader从0x000000开始存储,结束地址为OxIFFFF,所占空间大小为0x20000:App1.ication从0x20000开始存储,结
2、束地址为OXooOFFFFF,所占空间大小为OxEOOOO.VAVI52VUOxO1.A1OO0x010081B40x0100_80F00x0010.000x0000,005-pf1.ash(OptaVsett1.ngmemory)Reservedarea”On-ChiPRash(FaetoryF1.aSh)Reservedarea”On-chipf1.ash(codef1.ash)(read1.y),Ke1.In1.tfi1.d/AF-W-MIXMT(rVTC:N:TFA1.1.COVn;”】WT(sXniitSyttC1W0tWTUrn);*rorst.ft.;if(rCC!rror)rt
3、c.n1.t();MZr.tM.HtXWT(VrtaTCU1.MrY1.MUtfnw.rr);3JR.TWp);1mHUMTTIm“Mttoctfvnya);初始化f1.ash驶动,然后在dataf1.ash中读取设得设SI的1.og.*MMQ3S.W.E5eWT1.tM1.PeKrT,皿RVV-);wUy);,ta.Ms1.M);r*or*t*r1.1.tA-.rM(Un.1.*M-cMrr1.erUactt*cRgQMtIMtU1.1.MtzM*);初始化USB%动,等待US8设备插入,如果检测到有USB设备捅入,将会根据文件O:Put1.mageHere/update.txt中的内容.找
4、到相应的Jsrec文件,并打开文件读写数据(将文件内容解析后烧写到APP1.iCation对应的地址空间),读写完成后将文件名改为0:PUtImageHere1.oadcd.tt.表示己完成数据读写if(*S;1.dDitp1.yO);)18(1.1.”WACd2Mtwrt,t*ta)(U皿3.8ud4t.dv1.c.pr();if!4Xt.0k)(1.O1.tp1.F);W(C1.MtHere”.3)Uupt.M)C”二c*jonKw;1.dMp1.y(2;(rWa三p1.tirwruRt.rcutSaf1.y1.)ctr11);utb24ct()207Hi据信息类型擦除dataf1.ash
5、中的数据,擦除成功后写入新的设备设置参数。*,10*9r(aO);ftB1.XuH.,.JwM)(*u;M.叫JCyE.PiiMrcwas;打开memory,regions.1.d文件.F1.ASH.1.ENGTH三0x100000;更新为F1.ASH_1.ENGTH=OxEOOOO;由TBoOtIOader占用T0x20000大小,因此对TEK-RA4M3来说,仅剌下Ox100000-0x20000=OxEOOOO大小可供App1.ication使用.APP1.iCation工程生成SreC格式文件,卜图红框位.置勾选Section:-j.text&-j.data,使得app1.icatio
6、nproject仅生成codef1.ash对1应的内容。准备一个U盘(FAT32格式),在里面建一个文件夹,命名为“PutImageHere”,将RA4M3_BUNKY.srec文件添加进去Uft(三)FVI1.M4geHeeR23/?检312O?V2A1132SMCW文尊文update.txt文件里面添加R4M3.B1.INKY.srecttf1.BU3mwRA4MJBHNKYvec将U盘插入,开发板上电,当前运行的代码是Boot1.oader,由于此时尚未执行APPIiCation升级,因此1.ED2常亮,按下复位键,使得8oOt1.Oader卡新运行,执行APPHCat1.On代码升级,可以看到IED灯按照RA4M3,B1.INKY程序闪烁.将U盘插归I电脑查看PutImageHere文件夹,可以看到update.txt变为Ioaded.txt,程序升级成功。看到这里,你掌握了吗?