基于USB總線的MC68HC908JB8 Flash在線編程
ICP是一種在實際的目標電路板上燒寫和擦除芯片的方法,無需從目標板上將芯片卸下來再編程實現(xiàn)用戶程序的修改。這種方法適用于產(chǎn)品開發(fā)和代碼升級。目前市面上很多芯片(如Philips公司的P89C51、P89V51和LPC932A1,STC89C51和STC89L516RD+,以及AVR公司的ATmega8系列等)都支持串口ICP方式。本文采用USB接口的ICP方法,燒寫速度快,無需專用的電平轉(zhuǎn)換芯片,硬件通過微處理器JB8的USB接口與計算機USB口連接即可。
本文引用地址:http://butianyuan.cn/article/156311.htm1 底層軟件實現(xiàn)方法
1.1 Flash配置
為使用ICP通信連接的USB接口,必須修改JB8中的用戶代碼以識別預先為ICP定義的USB命令。因此在出廠前,必須將ICP代碼燒入JB8中。JB8的Flash配置如圖1所示。
圖1中,用戶Flash區(qū)范圍為$DC00~$FBFF,用戶Flash向量區(qū)是從$FFFO到$FFFF。ICP的配置中:ICP的代碼是從$F800到 $FBFF。用戶Flash向量區(qū)在ICP操作中是不能再編程的,這兩個區(qū)是JB8事先寫入的,ICP操作可以對$DCOO~$F7FF的Flash區(qū)(圖1中陰影區(qū))進行擦除和燒寫。
1.2 向量重定位
因為ICP的操作只能對用戶代碼進行編程和燒寫,不能擦除用戶Flash向量,且用戶F1ash向量是固定的,因此在用戶代碼中的中斷服務子程序地址必須重新定位到合適的地址。這種重新定位是通過“假”向量來實現(xiàn)的,3字節(jié)的假向量包括JMP指令和在用戶代碼中的中斷服務子程序的絕對地址。圖2中指出了假向量是如何重定位的。只有復位向量沒有重新定位,總是指向$F800(ICP代碼的入口地址)。
表1列出了中斷向量地址和重定位“假”向量地址。
評論