日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 通信技術 > 通信技術
[導讀]ICP是一種在實際的目標電路板上燒寫和擦除芯片的方法,無需從目標板上將芯片卸下來再編程實現(xiàn)用戶程序的修改。這種方法適用于產(chǎn)品開發(fā)和代碼升級。目前市面上很多芯片(如Philips公司的P89C51、P89V51和LPC932A1,STC

ICP是一種在實際的目標電路板上燒寫和擦除芯片的方法,無需從目標板上將芯片卸下來再編程實現(xiàn)用戶程序的修改。這種方法適用于產(chǎn)品開發(fā)和代碼升級。目前市面上很多芯片(如Philips公司的P89C51、P89V51和LPC932A1,STC89C51和STC89L516RD+,以及AVR公司的ATmega8系列等)都支持串口ICP方式。本文采用USB接口的ICP方法,燒寫速度快,無需專用的電平轉換芯片,硬件通過微處理器JB8的USB接口與計算機USB口連接即可。

  1 底層軟件實現(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列出了中斷向量地址和重定位“假”向量地址。

  

1.3 安全密鑰防止非法訪問

 

  $FFF6~$FFFD的8字節(jié)內(nèi)容用于進入JB8的監(jiān)控模式。監(jiān)控軟件能完全訪問F1ash區(qū),正常情況下,8字節(jié)的安全密鑰是不可能被猜出的,因為這些中斷服務程序的起始地址是被固化到用戶代碼區(qū)中的。

  1.4 在ICP期間防止掉電的措施

  配置ICP時必須考慮到ICP子程序運行過程中有可能掉電,系統(tǒng)必須能夠恢復和完成ICP程序。ICP_FLAG字的設計正是基于此目的。復位后讀ICP_FLAG字,決定JB8是進入正常的工作模式還是ICP模式。該字地址是$F7FE,在用戶代碼區(qū)的最后2個字節(jié)。復位之后,復位向量地址$FFFE~$FFFF指向ICP程序入口地址$F800,一旦初始化完成,檢查進入ICP模式或用戶模式的條件。在以下2種情況下JB8進入ICP模式:

 ?、?ldquo;假”向量的高字節(jié)$FF7C是無效的,即不在$DC和$F7之間;

  ②ICP_FLAG字不等于校驗和。否則,JB8進入正常的工作模式。

  1.5 ICP編程

  ICP編程流程圖如圖3所示。

  

 

  一旦用戶代碼被燒入芯片,而“假”向量的高字節(jié)在無效的范圍($DC~$F7),同時ICP_FLAG被寫入校驗和(不能是$0000),則在插撥USB設備后,ICP代碼跳轉到正常操作的用戶模式。

  進入JB8 ICP模式有2種方式:ICP_FLAG被寫入$0000,或者PTA0被下拉成低電平。用戶代碼包括特別的命令來編寫ICP_FLAG,一旦ICP_FLAG被寫入零,則再次插撥上電后,JB8進入ICP模式。ICP指令支持有限的USB標準協(xié)議,如讀取描述符和狀態(tài)字,設置地址和配置字,以及清特征字。

  本文使用了一些必要的擦除、編程、校驗Flash命令,如表2所列。

  

 

  在使用讀取狀態(tài)命令后,程序返回1字節(jié)的應答命令來表示Program Row(行編程命令)、Erase Block(塊擦除命令)和Verify Row(行校驗命令)命令是否成功。字節(jié)$01表示命令執(zhí)行成功,字節(jié)$04表示命令執(zhí)行失敗。

  1.6 ICP_FLAG的編程

  由于JB8是為HID應用設計的,最好使用HID命令來編寫ICP_FLAG,這樣可以無需額外的驅(qū)動。本文使用8字節(jié)的Set_Feature指令來設置ICP_FLAG,使用8字節(jié)的Get_Ack指令(只有1字節(jié)是有用的)來校驗設置是否正確(響應為$0O表示命令成功,為$01表示命令失敗)。設置8字節(jié)足出于安全的考慮,如果這8字節(jié)與JB8中$FFE6~$FFED的8字節(jié)相匹配,那么命令才是有效的。只有命令有效,ICP_FLAG才會被寫入0。指令使用格式如表3所列。

  

2 應用軟件

 

  USB ICP驅(qū)動程序的安裝與普通的硬件驅(qū)動程序安裝一樣,需要安裝USB ICP.SYS文件和注冊表文件USBICP.INF。USB ICP的Windows運行界面如圖4所示。

  

 

  選擇燒寫文件(.SX格式),擦除Flash(Erase Flash)后執(zhí)行空檢查(Blank Check),然后選擇燒寫(Program)芯片,最后執(zhí)行校驗(Verify)。

  結語

  本文采用集成USBl.1協(xié)議的MC68HC908JB8,擴展了ICP在串行口的應用方式用于開發(fā),調(diào)試方便,實際運行效果很好,有一定的應用價值。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀

在STM32開發(fā)中,一個看似簡單的排序算法選擇,可能因內(nèi)存布局差異產(chǎn)生200%的性能波動。某工業(yè)物聯(lián)網(wǎng)項目曾遭遇這樣的困境:基于STM32F103的傳感器數(shù)據(jù)處理器,在實驗室環(huán)境下混合排序算法僅需1.2ms完成1000個...

關鍵字: Flash SRAM

三款全新的企業(yè)級存儲系統(tǒng)——IBM FlashSystem 5600、7600和9600——大幅提高存儲管理工作效率; FlashSystem.ai將AI智能體作為...

關鍵字: Flash IBM SYSTEM 智能體

在嵌入式產(chǎn)品開發(fā)中,將關鍵信息(如序列號、版本號、配置參數(shù))固化到Flash的指定地址是常見的需求。本文以STM32系列MCU為例,介紹如何在0x08030000地址寫入4字節(jié)數(shù)據(jù)0x11 0x22 0x33 0x44的...

關鍵字: MCU Flash

虛擬文件系統(tǒng)(VFS)的底層實現(xiàn)包括FatFS和LittleFS。VFS提供了fopen、fclose、fwrite、read等常用的文件操作接口。Key-Value (KV)接口就是基于這些常見的文件操作實現(xiàn)的。

關鍵字: LittleFS VFS Flash

中國北京(2025年11月18日)—— 業(yè)界領先的半導體器件供應商兆易創(chuàng)新GigaDevice(股票代碼 603986)宣布推出新一代雙電壓高性能xSPI NOR Flash——GD25NX系列。該系列采用1.8V核心電...

關鍵字: SoC Flash 數(shù)據(jù)中心
關閉