新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > S12系列MCU通用編程系統(tǒng)的改進設計

S12系列MCU通用編程系統(tǒng)的改進設計

作者: 時間:2009-07-08 來源:網(wǎng)絡 收藏

①PC發(fā)送進入BDM命令,目標芯片進入BDM模式;
②PC發(fā)送完全擦除命令,擦除目標芯片F(xiàn)lash并進行空白校驗,返回校驗碼;
③PC發(fā)送命令將寫入子程序的目標代碼發(fā)送到目標芯片內(nèi)存中,寫入子程序的功能是將存放在目標芯片內(nèi)存上的用戶目標代碼寫入Flash中;
④PC分析S19文件,提取需要發(fā)送的目標代碼,以512字節(jié)組合成一頁,分頁發(fā)送到目標芯片內(nèi)存中,然后運行已發(fā)送目標芯片中的寫入子程序,將用戶目標代碼寫入目標芯片F(xiàn)lash中;
⑤PC判斷是否需要發(fā)送下一頁,并接收校驗碼判斷一頁數(shù)據(jù)發(fā)送是否正確。
PC發(fā)送一頁數(shù)據(jù)到目標芯片內(nèi)存之前,先將數(shù)據(jù)發(fā)送到調(diào)試器內(nèi)存,和一次向芯片F(xiàn)lash寫入512字節(jié)相比較。JB8的RAM只有有限的 256字節(jié),并且堆棧也在RAM區(qū)域,可用于接收一頁數(shù)據(jù)的RAM緩存太小,因而每次寫入的數(shù)據(jù)量就會受到限制,要分多次寫入。這就增加了PC和調(diào)試器之間的通信次數(shù)以及調(diào)試器和目標芯片的通信次數(shù),從而影響了編程的速度。圖3中,JB8以串行的方式接收和發(fā)送數(shù)據(jù),先從PC方接收一頁128字節(jié)用戶目標代碼(1,3,5,7過程),然后將數(shù)據(jù)發(fā)送到目標芯片內(nèi)存(2,4,6,8過程)。經(jīng)過4次的接收之后,目標芯片將RAM空間的512字節(jié)數(shù)據(jù)一次寫入Flash空間,返回校驗碼。

本文引用地址:http://2s4d.com/article/152430.htm

而JM60作為編程調(diào)試器則擁有4 KB的RAM,可以直接開辟512字節(jié)作為緩沖。在整個編程通信流程的上,就可以借鑒指令流水線操作的思想,充分考慮可作預取的操作,利用編程調(diào)試器和目標芯片之間通信的時間完成PC方單獨的操作,以及利用目標芯片自身進行操作的時間來完成PC方和編程調(diào)試器之間的操作,提高編程的運行速率,盡量減少空等待操作。
在圖4所示的以JM60作為編程調(diào)試器的編程通信流程中,首先PC發(fā)送第1頁用戶目標代碼到JM60內(nèi)存(過程1),然后發(fā)送到目標芯片內(nèi)存(過程 2),目標芯片執(zhí)行寫入子程序將數(shù)據(jù)寫入Flash。寫入子程序執(zhí)行過程中,字寫入命令時間t=9×(1÷fNMVOP)+25×(1÷fbus)。 fNMVOP指Flash操作頻率,fbus指總線頻率。芯片F(xiàn)lash的操作頻率范圍限制在150~200 kHz,取fNMVOP=200 kHz,fbus=40 MHz,計算得1個字寫入時間在最小情況下為t=0.045 625 ms,寫入512字節(jié)需要時間為11.68 ms,而PC發(fā)送1頁數(shù)據(jù)的時間為512×8÷12Mbps=0.341 ms。因此PC和JM60可以利用目標芯片寫入1頁數(shù)據(jù)的時間進行交互,將下一頁數(shù)據(jù)提前發(fā)送到JM60,完成從PC→JM60內(nèi)存,如圖5所示。 JM60和目標芯片也可以在PC對前一頁數(shù)據(jù)進行校驗的同時,將1頁數(shù)據(jù)從JM60發(fā)送到目標芯片,如圖6所示。

在實現(xiàn)以上思想的同時也充分考慮了寫入過程出錯的情況,如圖4在JM60內(nèi)存區(qū)域開辟了可存放2頁數(shù)據(jù)的緩沖區(qū)用于接收用戶目標代碼。若前一頁數(shù)據(jù)寫入錯誤,則將這頁數(shù)據(jù)在Flash的塊寫入首地址傳遞給塊擦除程序,重新進行擦除,等待當前頁發(fā)送完畢,作為下一頁數(shù)據(jù)參與整個流程進行寫入。



評論


相關推薦

技術專區(qū)

關閉