1.一種嵌入式系統(tǒng)交叉調(diào)試方法,其特征在于,包括以下步驟:
步驟S1:上電啟動(dòng),加載運(yùn)行操作系統(tǒng);
步驟S2:判斷是否有接收到進(jìn)入“更新程序”的觸發(fā)命令,若是,則進(jìn)入步驟S3;
步驟S3:操作系統(tǒng)加載程序更新模塊及外存對(duì)應(yīng)的驅(qū)動(dòng)程序,并運(yùn)行該模塊程序,接管CPU控制權(quán);
步驟S4:利用JTAG下載修改后的應(yīng)用程序到內(nèi)存;
步驟S5:利用JTAG寫(xiě)入應(yīng)用程序名稱(chēng)、寫(xiě)入內(nèi)存的起始地址、應(yīng)用程序大小三個(gè)信息到預(yù)定內(nèi)存地址;
步驟S6:當(dāng)程序更新模塊監(jiān)控到所述預(yù)定內(nèi)存發(fā)生變化后,解析該預(yù)定內(nèi)存中的內(nèi)容,將之前寫(xiě)入內(nèi)存中的應(yīng)用程序?qū)懙酵獯娴墓碳^(qū);
步驟S7:在該固件區(qū)的文件系統(tǒng)目錄項(xiàng)中添加一條指向新增應(yīng)用程序的目錄記錄。
2.根據(jù)權(quán)利要求1所述嵌入式系統(tǒng)交叉調(diào)試方法,其特征在于:還包括步驟S8:通過(guò)LED燈提示更新結(jié)束,并執(zhí)行系統(tǒng)重啟。
3.根據(jù)權(quán)利要求1所述嵌入式系統(tǒng)交叉調(diào)試方法,其特征在于:在步驟S2中,當(dāng)判斷沒(méi)有接收到進(jìn)入“更新程序”的觸發(fā)命令時(shí),執(zhí)行以下步驟:
步驟S9:進(jìn)入正常的應(yīng)用加載狀態(tài),從外存固件區(qū)的文件系統(tǒng)目錄項(xiàng)末尾開(kāi)始往前檢索對(duì)應(yīng)的應(yīng)用目錄項(xiàng);最先檢索到的目錄項(xiàng)即是最新的應(yīng)用程序?qū)?yīng)的目錄項(xiàng);
步驟S10:通過(guò)最新目錄項(xiàng)加載最新的應(yīng)用程序,并開(kāi)始運(yùn)行該應(yīng)用程序;
步驟S11:再次啟動(dòng)JTAG調(diào)試,進(jìn)入正常的調(diào)試狀態(tài)。
4.一種嵌入式系統(tǒng)交叉調(diào)試裝置,其特征在于,包括:
啟動(dòng)模塊,用于加載并啟動(dòng)操作系統(tǒng);
判斷加載模塊,用于判斷是否有接收到進(jìn)入“更新程序”的觸發(fā)命令;如果收到,則進(jìn)入程序更新?tīng)顟B(tài),由操作系統(tǒng)加載程序更新模塊并運(yùn)行;如果沒(méi)收到,則進(jìn)入正常的應(yīng)用加載狀態(tài)。
程序更新模塊,對(duì)預(yù)訂內(nèi)存塊的內(nèi)容進(jìn)行監(jiān)控。若監(jiān)控到所述預(yù)定內(nèi)存發(fā)生變化后,解析該預(yù)定內(nèi)存中的內(nèi)容,將之前通過(guò)JTAG寫(xiě)入到內(nèi)存中的應(yīng)用程序?qū)懙酵獯娴墓碳^(qū);
目錄新增模塊,用于在系統(tǒng)固件區(qū)的文件系統(tǒng)目錄項(xiàng)中添加一條指向新增應(yīng)用程序的目錄記錄。
5.根據(jù)權(quán)利要求4所述嵌入式系統(tǒng)交叉調(diào)試裝置,其特征在于:還包括提醒模塊,用于通過(guò)控制LED燈提示更新結(jié)束,并執(zhí)行系統(tǒng)重啟。
6.根據(jù)權(quán)利要求4所述嵌入式系統(tǒng)交叉調(diào)試裝置,其特征在于,還包括:
檢索模塊,用于進(jìn)入正常加載狀態(tài)時(shí),從外存系統(tǒng)固件區(qū)的文件系統(tǒng)目錄項(xiàng)的末尾開(kāi)始往前檢索對(duì)應(yīng)的應(yīng)用目錄項(xiàng);最先檢索到的目錄項(xiàng)即是最新的應(yīng)用程序?qū)?yīng)的目錄項(xiàng)。
加載模塊,用于通過(guò)最新目錄加載最新的應(yīng)用程序,并開(kāi)始運(yùn)行該應(yīng)用程序;
調(diào)試模塊,用于啟動(dòng)JTAG調(diào)試,進(jìn)入正常的調(diào)試狀態(tài)。