<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > TMS320F2812三種運(yùn)行方式在SRM控制中的應(yīng)用

          TMS320F2812三種運(yùn)行方式在SRM控制中的應(yīng)用

          作者: 時(shí)間:2012-05-09 來(lái)源:網(wǎng)絡(luò) 收藏

          b.jpg
          段生成完畢,還需要在CMD文件中將其映射到RAMH0上,即所謂的H0啟動(dòng)模式。之后程序就會(huì)照流程直接在RAMH0上程序,實(shí)現(xiàn)RAM調(diào)試。
          c.jpg
          1.2 Flash直接
          Flash直接運(yùn)行指的是將用戶編寫(xiě)的代碼燒寫(xiě)到Flash,并在Flash初始化完成后,用戶代碼運(yùn)行于Flash上的一種運(yùn)行。
          與RAM調(diào)試運(yùn)行相比,F(xiàn)lash直接運(yùn)行的程序流程多了一個(gè)Memory_copy的環(huán)節(jié),即code_start-> wd_disable-> c_int00-> main()-> Memory_copy。這是因?yàn)橐朐贔lash上直接運(yùn)行程序,就需要配置好Flash寄存器(FACTIVEWAIT、FBANKWAIT等)。但這些寄存器是不能在Flash上直接配置的,所以只能將包含這些配置語(yǔ)句的Flash初始化函數(shù)InitFlash()搬運(yùn)到RAM中運(yùn)行。
          InitFlash()的搬運(yùn)是通過(guò)指令“#pragma CODE_SECTION(InitFlash,“ramfunes”)”和CMD文件配置實(shí)現(xiàn)的。前者將函數(shù)InitFlash()映射到段ramfuncs,后者在SECTIONS中作如下配置:
          ramfuncs:LOAD=FLASH,PAGE=0
          RUN=RAML0,PAGE=0
          LOAD_START(_RamfuncsLoadStart),
          LOAD_END(_RamfuncsLoadEnd),
          RUN_START(_RamfuncsRunStart)
          其中,RamfuncsLoadStart等為已定義好的3個(gè)外部全局變量。這樣配置后,只需要在主程序main()中先調(diào)用MemCopy(Ram-funcsLoad Start,&Ramfuncs LoadEnd,&Ram funcsRunStart)將已經(jīng)燒寫(xiě)到Flash中的初始化函數(shù)InitFlash()代碼全部復(fù)制到以Ram-funcsRun
          Start開(kāi)頭的RAM中,再調(diào)用函數(shù)InitFlash()就實(shí)現(xiàn)了InitFlash()的搬運(yùn)。
          最后需要注意的一點(diǎn)就是,給codestart段分配的BEGIN段需要映射到以0x3F7FF6開(kāi)頭的一段Flash上,用于Flash啟動(dòng)模式,而不再是在RAM上。如此配置之后,其他用戶代碼就可以在Flash上正常運(yùn)行了。


          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();