新聞中心

        EEPW首頁(yè) > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 基于USB總線的MC68HC908JB8 Flash在線編程

        基于USB總線的MC68HC908JB8 Flash在線編程

        作者: 時(shí)間:2011-05-11 來源:網(wǎng)絡(luò) 收藏
        1.3 安全密鑰防止非法訪問

        本文引用地址:http://www.104case.com/article/156311.htm

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

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

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

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

          ②ICP_FLAG字不等于校驗(yàn)和。否則,JB8進(jìn)入正常的工作模式。

          1.5 ICP

          ICP流程圖如圖3所示。

          

        ICP編程流程圖

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

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

          本文使用了一些必要的擦除、、校驗(yàn)命令,如表2所列。

          

        一些必要的擦除

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

          1.6 ICP_FLAG的編程

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

          

        指令使用格式

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 杭锦后旗| 松江区| 钟祥市| 丁青县| 时尚| 巴南区| 淅川县| 家居| 宜黄县| 乐陵市| 德昌县| 石泉县| 若尔盖县| 措美县| 邵东县| 铜鼓县| 阳山县| 蒙阴县| 南平市| 巨鹿县| 邯郸市| 天峨县| 绍兴县| 西城区| 陆良县| 太和县| 五大连池市| 泰安市| 金秀| 建阳市| 八宿县| 松阳县| 修武县| 英吉沙县| 哈尔滨市| 宜昌市| 上栗县| 叙永县| 饶平县| 永兴县| 汤阴县|