新聞中心

        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.104case.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的塊寫入首地址傳遞給塊擦除程序,重新進行擦除,等待當前頁發送完畢,作為下一頁數據參與整個流程進行寫入。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 衡山县| 屏东县| 宜丰县| 凯里市| 宜昌市| 新竹县| 慈溪市| 兴山县| 龙山县| 双牌县| 张家界市| 德钦县| 乌鲁木齐市| 林甸县| 长葛市| 石嘴山市| 阿拉善右旗| 申扎县| 垫江县| 沅陵县| 安义县| 昌图县| 城步| 威远县| 徐州市| 疏附县| 平江县| 西丰县| 荣昌县| 怀安县| 韶关市| 尖扎县| 江门市| 汾西县| 鄄城县| 蒲江县| 左贡县| 图片| 南康市| 马边| 鲜城|