FBOOTROM引导模式和程序.docx
- 文档编号:5012634
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:20
- 大小:116.18KB
FBOOTROM引导模式和程序.docx
《FBOOTROM引导模式和程序.docx》由会员分享,可在线阅读,更多相关《FBOOTROM引导模式和程序.docx(20页珍藏版)》请在冰豆网上搜索。
FBOOTROM引导模式和程序
28335使用串口烧写程序
串口烧写是一种相对较方便的烧写方式,相对于仿真器或是CAN烧写,相对于
仿真器或是USB转CAN的设备,串口是一种非常廉价的烧写方式,而且也不需要安装专业的集成开发环境CCS等,但是不能实现在线调试,因此也只适用于程序基本不用再调整或大批量的场合。
F28335的存储器映射图如下:
PhOCfc
StartAddma
-•S4B33-CIE4WwmpDxw!
一
H
才OntKl(»DCi
Qh0400轴
加如MM
ihcwmoo
onooCEoe
"043QQ«
OwM整対
OmOD7000 DhM Dn«Ml» &KMMOC QxOOBOHO 6切 teMM04 0■帥EfiO« *(MOF0D4 DmO1300 OxJUOCH04 0X33FF1F8 fri34DODO 如3«OCM «i3«OOM «m»(Moe 9i»oew 』fcSF3SQfl MM9>DW taJFA4MI Om-SFrnw ta3fEOW 0i3FFFCD EbImaIMemoryX1NTF DlOa40 叭Qi$OQQ Di1DOOCHI Dsl9ODOI U«3DODCK) DbCi9pflc« FragSfNKJt MO-R*Mi: 32i37| 传HVWAP=qj W5ARAM”民Xtfl|i HtMRAM<1KX FtrlphwtlFr^met R*&er¥ml FIEVfrCICrf-RAM (Eiubi«drfVMAP=1BEHPliE-1) RfrlphnlFrvnwP R«>$i Rartphar^lFrnm4羊P*{MWdfCM此AccoH—F PertpherHiFr^mv1 曲aglw・lFrsHMi2 CPYfirtMlfid. «l! B-XZeSDFAccni-iiMi USAAARt(4Kn.14,SfiCiMZ^neDualMapped1 LI&ARAM|4Krt1ft.SwuraZan«DualMdpp«f3| L2SALAMII-4KK-1E,Sfiuifira2Arw,tluslHapped| L3aARAKIMKkIB.3«£w*DualMappedl UMFUMMMk1«DMAAcc4«lHt| UIWFtAM0MAAcw«im L4MFEAHHKMlfi,DMA島笔awl聊巒| L7SAIUMpnuAcpnBlbl>9|> Rj? 5 FLASHMh16,S*Cuf#Zan«] m-bitPav«wv<4 札Mirv血 ADCCatabrationDatil Tl■吕音 UserOTP|1ICk1ESeemZcincp ILOS^IUM(4Kh1民ZonaOv・lJpp«褂 L1SARAMi|4K覽S«urQZjomDualKLappadl LISARANI(«AIS.ShKLpT-9ZOMW L3SARAH[4K■.14.*5Z^napu卍febipiMd^ R«B4iFirtd * fiooCR£CM伸|Ck16J RRC1M-ROMaa切 |EmIMhiPVMAP*1ENPIE»D| XIWTFZ«ne&[1Mb16.XZCSjEKDMAAcCrteAie} XINTF7047(IMSH«aXZC57b'DNIA BOOTROM是一块8KX16的只读存储器,位于地址空间0x3FE000〜0x3FFFFF, 片内BOOTROM在出厂时固化了引导加载程序以及定点和浮点数据表,片上 BOOTROM的存储映射如下图所示: figure1-1.MemoryMapofOn-ChipROM 3FEOOO 3FEBDC 3FF27C 3FF54C 3FF9EE 3FFFB9 3FFFCO 3FFFFF DataspaceProgramspace IQmathtables FPUmathtables Reserved Bootloaderfunctions Reserved ROMversion ROMchecksum Resetvector CPUvectortnble 1.内BOOTROM数学表: 在BOOTROM中保留了4KX16位空间,用以存放浮点和IQ数据公式表,这些数据公式表有助于改善性能和节省SARAM空间。 向量表: CPU向量表位于ROM存储器0X3FE000〜0X3FFFFF段内,如下图所示。 复位后,当VMAP=1,ENPIE=0(PIE向量表禁止)时,该向量表激活。 Table1-1.VectorLocations Vector LsBti卯inBootROM Contents (i.e.: poiiritKIo) Vector LocationmBncitROM CGOtents (ieo;lpoints-Lo) F? ESET 0k3F卜FCO ImtBo^t RTOSINT 0x3FFFlEO OxOQ006Q INTI 013FFFC2 0x000042 Re-&^r>jed OxSFFFE3 OkOO0C62 IMT2 (Jx3FFFC4 0x000044 NMl 血3FFFF4 n-tfonnnfw INT3 0x3FFFC& Cxoo00料 ILLEGAL FFE6 (TRAPlar NT4 0x3FFfC& 0x000048 USER! FFE6 INT5 0x3FFFC^ OxOOfflMA USER2 张FFEA o-cooqcm IMT6 0x3FFFCC 0x00004C USERS 0x3FFFEC OxOC0D6U IMT7 0*3FFFCE 0x00004E USER4 0k3FFFEE OkOO0C6E INT8 0x3FFFDO 0x000050 USFR5 0x3FFFFO oxnnoczn INT9 0x3FFFD2 OXQO00轻 USER6 Ox护FFF2 0*0000 INT1O ObdFFFtM 0x000054 USEftT FFF4 OjfOOQCIT4 INTV 0i3FFFDB omo0056 USERS 伽眇FFF6 0*000076 IMTI2 0x3卜FFD8 0x00OOS8 USERy IftiiFFFF& OxOCOCTS IhlTU 0i3FFFDA 0x00005A USER10 ftxlFFFFA 0x00007A IMT14 Qk3FFFDG OxflOoosc USFR11 血新FFFC OwOC007G DLOGINT 0x3FFFDE OXQOOT5E USER12 (hiJFFFFE 0: OU00rE 在内部BOOTROM引导区中能够调用的唯一向量就是位于0X3FFFC0的复位向量。 复 位向量在出厂时被烧录为直接指向存储在BOOTROM空间中的InitBoot函数,该函数 用于开启引导过程。 然后通过通用I/O引脚上的检验判断,决定具体引导模式。 引导 模式与控制引脚之间的关系如下图所示: HTable2-GlBoatModeSfilectian MODE GPIO87XA1I5 右PIQ&&/XA14 GPIOA5/XA13 GPIO84/XA12 MODE',f F 1 1 1 1 Jlitiotc-Flash E 1 1 1 0 3CPAbiMJt D 1 1 0 1 歹l-AtOOt C 1 1 0 0 l2C-Abool B 1 0 1 1 dCAHA A 11 0 1 a 0W1 9 1 0 0 i jLmptoXINTFxlfc B 1 0 Q a 」LEptoXINTFJt32 7 0 1 1 1 JurniploOTF 6 0 1 11 0 Parate^lGPIO1/0boa£ 5 0 1 0 11 Pa®同XlhTTFIhrwi 4 0 1 口 0 血币即tvS^iRAW 3 0 a i i &rancfitochKHt»o 2 0 0 i 0 BenchtoslipADC 1 0 0 o i 如应皿hto&ARAM,ekpADC 0 0 a 0 Q &arcfiVJ3Q.6klf)ADCWDWUJH (1)MlfoutGPK)pinshdvsannitsrn^pdllup. Bootloader特性: Bootloader是位于片上引导ROM中的在复位后执行的程序,用于在上电复位后,将程序代码从外部源转移到内部存储器。 这允许代码暂时存储在掉电不丢失数据的外部存储器内,然后被转移到高速存储器中执行。 引导ROM中的复位向量将程序执行重定向至InitBoot函数。 执行器件初始化之后,bootloader将检查GPIO引脚的状态以确定您需要执行哪种引导模式。 这些选项包括: 跳转至闪存、跳转至SARAM、跳转至OTP或调用其中一个片上引导加载例程。 完成选择进程后,如果已完成所需的引导加载,处理器将在所选引导模式确定的应用起点继续执行。 如果调用了bootloader,则由外设加载的输入流确定此应用起 点地址。 然而,如果选择直接引导至闪存、OTP或SARAM,这些存储器块中每一个存 储器块的应用起点均已预定义。 Figure2-1,BootloaderFlowDiagram BeginexecutionatEntryPointas determinedbyselectedbootmode 上图显示了引导进程的概述 以下引导模式不掉用bootloader,他们会跳转至存储器中的预定义位置: 1.跳转至闪存中的分支指令: 在此模式下,引导ROM软件将针对28x操作配置器件,然后直接分支至闪存的 0X33FFF6位置。 此位置刚好是128位代码安全模块(CSM)密码位置之前。 您需要预 先在0X33FFF6位置处编写分支指令,以将代码执行重定向至定制的boot-loader或应 用代码。 Reset Figuire24Jump4o*FIashFlawDiagram 在仅有RAM的器件上,“引导至闪存”将跳转到保留存储器,因此不应当使用此选项。 2.跳转至MOSARAM 在此模式下,BOOTROM将针对28x操作配置器件,然后直接分支至0x000000,即 M0SARAM存储器块中的第一个地址 3. 在此模式下直接分支至 0x380400,即OTP存储器块中的第一个地址 跳转至OTP存储器 Table3-1AddressesofFlashSectorsinF28335/F28235 ADDRESSRANGE PROGRAMANDDATASPACE 0r300000-7FFF SectorH(32Kx1C) 0x3D6000-0a3CFFFF SKtDrG(3-2Kx1即 0x31OOOd・0Jt3lTFFF SectorF(32Kx16> 0x318000<0x31FFFF SectorE(32K%16) 0x32DM0-0j(327FFF SectorD(32Kx QK32HOOD”8(32FFFF SederC(32Kx 0x330000■0? 337FFF SedorS(32Ki1C) 0^336000「(hi盟FF7F SfldiXA(32Kit16) 0x33FF8Q-Dx33FFF5 Progrsmto0x0000钿h»en画怡tKeCodeSecurity(Module a(33Fm-0k33FFF7 BdMMJZA吉胡EftiiyPsHl(programbranchlnstructj 0j(33FFF6・0/33FFFF SecurityPasswond (DqMolProflrarnWallzero^J 以下引导模式将调用一个用于将数据流从外设加载至存储器的引导加载例程: SCI-A(注意此处的SCI-A对应的是GPIO28和GPIO29) SPI-A I2C-A eCAN-A GPIO0-GPIO15并行引导 如果使用SCI或者其他引导的话,首先需要将启动模式选择相关的引脚配置成对应的模式,然后器件退出复位状态之后,首先从复位向量处开始运行,即从0x3FFFC0处,该地址存放着BOOTROM中的第一个汇编初始引导程序InitBoot程序的入口地址,程序跳转至0x3FFC00执行InitBoot程序。 该程序主要初始化F28335器件工作的目标模式。 然后读取安全保护模块的密码,如果CSM密码被擦除(全部等于 OxFFFF)则自动解锁,否则CSM仍被锁定。 对CSM密码读取完成后,初始化例程调用模式选择功能函数(SelectBoot), 该函数根据GPIO的状态确定处理器引导的方式。 一旦完成SelectMode将会把入口地址返回给初始化引导。 然后初始化引导函数调用回复CPU寄存器的退出例程 (ExitBoot)并退出到由引导模式确定的程序入口地址。 因此我们在使用SCI升级程序时可以分两个步骤,第一个步骤是我们需要一个Bootloader程序,第二个就是我们要升级的程序,BootLoader程序就是我们在选择引导SCI模式之后,SelectBoot之后通过串口加载的第一个程序,待ExitBoot之后会跳转到我们这个bootloader指定的地址开始执行(即将控制权交给我们的这个BootLoader程序),因此我们的BootLoader程序就肩负着串口接收我们的应用程序并将应用程序烧写到FLASH的任务。 第二个就是我们的应用程序,这个跟平常的应用程序一样,没有任何区别。 1.BootLoader程序 由上面的介绍明显知道我们的Bootloader程序是运行在RAM里面的,所以使 用CCS在编写该程序的时候使用的是RAM_Link的CMD,而且该程序除了串口的处理 还有包括FLASH操作的API函数,而这些函数必须要运行在RAM里面,而且在进行FLASH操作的时候要将中断全部都关掉,FLASH的API有相关的例程是烧进FLASH的 还要拷贝到RAM,我们这里正好还免去了拷贝的过程,因为我们整个程序都是运行在RAM中的。 Bootloader数据流的结构: Word 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ••• ••• n n*1 Table2-3.GeneralStructureOfSourceProgramDataStreamIn16-BitMode Contents 10AA(KeyValueformemorywidth二16bits) Registerin Registervaueorreservedforfutureuse Registerinrtiabzatjonvaueorreservedforfutursuse Registerinitiabzatonvaueorreservedforfutureuse RegistermtAhzationvaueorreservedforfutureuse RegisterintiaSrationvrueorre^iervedforhitureuse Registerintiairatonv«ueorroservedforhitureuse RogstorinitiMzobonvniuoorrosorvodforfutumuse EntrypointPC|2216) EntrypointPC(15: 01 Blocksjzo(numberofwords)ofthefirstbiocKcfdatatobad.Iftheblocksizeis0・thisindicatestheendofth©sourceprogramOtherwiseanothersectionblows. D^stnAtionaddn*«offirstblockAddr[31*16J Dominationaddressof十贰blockAddr(15: 0] FirstwordofthofirstWookinthosourcebeingkxidod ••• ••• LastwordofthofrstblockoftheMurcebeingloaded Blocksizeofth©2ndblocktoload DestnationaddressofsecondblockAddrt31: 16, DestnationaddressofsecondMockAddr{150] FirstwoolofthosecondbiockinthesourwbehgloRded Lastwordofthosocondblockofthesourcebohgloodod Blocksjzooftnelastblocktooad DestinationaddressofastblockAddr[31: 16] DestinationaddressoflastblockAddr[1501 Firstwordoftholastblockinthosourcebeingbaded ••• ••• Lastwordoftbolastblockofthesourcebeingbodod BlocksjzoofOOOOh•Indicatorondofthosourceprogram Table2-4.LSB/MSBLoadingSequoncoin/BitDataStream Byltt Conljent^ LSB(FniB/te口f MSB{SecondByteaf2) 1 2 L30 AA(KftyVflkiRfairm^norywidth=fibrls) MSB"DBh(Kfl^VnuplormfimnTywirJth=fthH) 3 斗 LSB Rogiiiofm: iDizaton舸ucwFMD(vod MSB: inntalizanonv^Ijoorrawrvo-d 5 fl LSB Regli^rniiJEiiiZijLon MSB.Inltdlizdlhn曲llvwor 7 8 LSB Registerirv'ializalljdui/buborres-ETVsd MSB: RegisilBrinrit^lizalion•启Ijbarreserved 17 IB LSB Regislermitiaiczaftionvstueorres曰iv巳d MSB"Registerinitalizaton%alueorreserved 20 LSB Lipp«rhalfcf£ntr\poin: PC[23: 1q) MSB: Upporhalfc^eTlr^puntPC[3i: 24)(AJ^ay^MOQ) 21 22 LSB Lflwwh測ofEntrypcln: PC|70] MSB.Low»rluifolErilrypoiniPC[15B] 23 24 LSBDlach»inwordsofImtblocktaloadIfthe bocks04th詁indiciii«tth*«ndo1lhe pTjgrBm.OtrwnvsoanoCicfjjKki;followsForoxampo,aMxKxeB(MJDQAwcMdindiGale10wonfeor20bytesintheblock MSG: dock»i» 25 26 LJL MSV,d&stinmtitinatidress.r血Noc 16| MSB: MS^/denabonaccress,tiratbbekAddr(31: 24] 27 26 L$'AdestinationjiiuiqseblockAJdrp.OI MSB.LSWdo^UnaUw帀stblockAtM1i53| 29 30 S First旳rdof召僅Iblocktwngicadod MSB.Fir$lwordofllwblocibvmqto^dud LSB Lssrwtwdolt"firstbockrolose M9G'Li*twordM(hefirstClackm窈詢 a - LSB Idi^Gk5zcoftficsecondbloc* MbB: BlocksizeoftresecondDk>sk - LSE 制S讥de^LnidtiDtladiJibw.urdL-ClKAdd-123丨白 MSB.MSWadciess,second
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FBOOTROM 引导 模式 程序
![提示](https://static.bdocx.com/images/bang_tan.gif)