• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

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

    S12系列MCU通用編程系統的改進設計

    作者: 時間:2009-07-08 來源:網絡 收藏

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

    本文引用地址:http://www.czjhyjcfj.com/article/152430.htm

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

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



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 威海市| 大连市| 龙岩市| 弥渡县| 梨树县| 荥经县| 连州市| 奎屯市| 徐州市| 新密市| 翁源县| 凤凰县| 澄迈县| 桂阳县| 南安市| 塘沽区| 晋江市| 灯塔市| 镇巴县| 仙居县| 临澧县| 汕尾市| 广宁县| 都江堰市| 鄂伦春自治旗| 克什克腾旗| 威海市| 潮州市| 壶关县| 毕节市| 广宁县| 阜平县| 许昌市| 山东省| 平原县| 宽城| 和田县| 定远县| 兴化市| 临清市| 黑龙江省|