LPC1300通過(guò) USB 在線系統(tǒng)編程 ISP
1、簡(jiǎn)介
基于ARM?Cortex-M3?CPU架構(gòu)的LPC1300系列微控制器,在嵌入式應(yīng)用中具有高級(jí)別塊集成支持和低功耗的特點(diǎn)。LPC1300輔助外設(shè),包括高達(dá)32KB的flash存儲(chǔ)器,8KB的數(shù)據(jù)存儲(chǔ)器,USB接口,1個(gè)UART,1個(gè)SSP控制器,SPI接口,I2C接口,8通道10位ADC,4個(gè)通用定時(shí)器/PWMs,以及高達(dá)40個(gè)通用I/O引腳。
另外,可在線系統(tǒng)編程的片上ROM(a?bootloader)支持UART和USB?flash編程,類(lèi)似于APIs的用戶(hù)代碼編程方式。flash?API通過(guò)一個(gè)簡(jiǎn)單的接口實(shí)現(xiàn)板上flash編程功能,并可隨時(shí)進(jìn)入ISP模式。USB?API能夠兼容人機(jī)接口設(shè)備(HID)和大容量存儲(chǔ)設(shè)備(MSC)的新產(chǎn)品,既不需要用戶(hù)編寫(xiě)驅(qū)動(dòng)程序,也不需要存儲(chǔ)在flash上。
包含在該使用手冊(cè)上的條目如下
- 1、USB在線系統(tǒng)編程概述
- 2、USB?ISP?詳述
- 3、自動(dòng)化的?USB?ISP
- 4、USB?ISP的自動(dòng)化入口
- 5、軟件實(shí)例
- 6、結(jié)論
2、USB?In-System?Programming(ISP)?概述
LPC1300片上的USB?ISP固件,終端用戶(hù)可以通過(guò)標(biāo)準(zhǔn)個(gè)人電腦操作系統(tǒng)對(duì)其進(jìn)行編程和更新。本文檔引用了一部分LPC1343的內(nèi)容,其他同樣帶有片上USB的LPC1300系列產(chǎn)品也作了類(lèi)似處理。
在上電期間保持PIO0_1低電平將引發(fā)片上ISP固件進(jìn)入ISP模式(除非被NO_ISP代碼讀保護(hù)[CRP]模式所禁止)。一旦進(jìn)入ISP模式,USB?VBUS上的PIO0_3口將會(huì)進(jìn)行電平檢測(cè)。如果是高電平,將會(huì)進(jìn)入U(xiǎn)SB?ISP;若是低電平,則進(jìn)入U(xiǎn)ART?ISP。在用戶(hù)指南手冊(cè)標(biāo)題為“Boot?Process?Flowchart”的章節(jié)中,有圖表詳細(xì)的介紹了這一過(guò)程。
進(jìn)入U(xiǎn)SB?ISP模式后,LPC1300可以把片上全速USB接口作為大容量存儲(chǔ)設(shè)備使用。這個(gè)磁盤(pán)設(shè)備含有FAT12文件系統(tǒng),是大多數(shù)操作系統(tǒng)的標(biāo)準(zhǔn)磁盤(pán)設(shè)備。盤(pán)符將指出CRP狀態(tài)而且盤(pán)中將包含單個(gè)文件firmware.bin。在代碼保護(hù)的設(shè)置允許的情況下,刪除和重寫(xiě)這個(gè)文件將寫(xiě)到flash存儲(chǔ)器。讀flash存儲(chǔ)器上的內(nèi)容,就像復(fù)制firmware.bin文件一樣簡(jiǎn)單。
圖1???LPC?1300?USB?ISP?系統(tǒng)
圖2???Windows?XP上的USB?ISP?firmware.bin文件
3.??USB?ISP?詳述
LPC1300片上USB?ISP固件,虛擬FAT文件系統(tǒng),這樣就可以通過(guò)PC軟件讀寫(xiě)固件。我們?cè)敿?xì)描述了在幾種標(biāo)準(zhǔn)的主流操作系統(tǒng)上更新固件的模擬過(guò)程和技巧。
LPC1300連接USB主機(jī),并初始化USB?ISP模式之后,枚舉了USB供應(yīng)商ID?0x04CC和設(shè)備ID?0x0003。這些信息通常對(duì)終端用戶(hù)屏蔽,但通過(guò)固件更新軟件,這些信息可以用來(lái)尋找已經(jīng)連接到計(jì)算機(jī)上的,含有LPC1300的USB設(shè)備。一旦找到這些設(shè)備,將會(huì)發(fā)送存儲(chǔ)設(shè)備查詢(xún)指令,之后會(huì)返回一串描述LPC微控制器產(chǎn)品的附件。LPC134X產(chǎn)品的查詢(xún)字符串是“NXP?LPC134X?IFLASH?1.0”。通過(guò)設(shè)備產(chǎn)商的名稱(chēng)“NXP”以及設(shè)備型號(hào)“LPC134X?IFLASH”也可以識(shí)別這些設(shè)備。這樣,設(shè)備型號(hào)ID的全稱(chēng)為“NXP_LPC13XX_IFLASH”。
LPC1300模擬的磁盤(pán)有不用的卷標(biāo)號(hào),卷標(biāo)號(hào)取決于代碼讀保護(hù)(CRP)的設(shè)置和重新編程過(guò)程中的細(xì)微改變。這些內(nèi)容在下面會(huì)給出簡(jiǎn)要介紹,完整的文檔請(qǐng)參考LPC1300用戶(hù)手冊(cè)中的UM10375部分。
?如果CRP1或者CRP2可用,當(dāng)文件被刪除或復(fù)制新文件而導(dǎo)致原文件改變,用戶(hù)flash將被擦除。
如果CRP1可用,或者兩個(gè)CRP都不用,用戶(hù)flash將被擦除或重新編程(當(dāng)復(fù)制新文件時(shí))。盡管這樣,也只有被新文件覆蓋的區(qū)域才會(huì)被擦除或重新編程。因此,理想情況下,新的編程文件將包含整個(gè)flash容量(LPC1300為32KB),這樣,整個(gè)flash容量將處于已知狀態(tài)。使用填補(bǔ)(32KB或flash大小)編程文件,也可以通過(guò)編程工具,對(duì)已連接的LPC部件進(jìn)行錯(cuò)誤檢查(比較新的固件文件與設(shè)備上firmware.bin文件的大小),而不需要額外的配置信息。
注意:只有Windows命令支持LPC1300?flash?映像文件夾的復(fù)制和刪除。在覆蓋的過(guò)程中虛擬盤(pán)的空間不足以存儲(chǔ)Windows創(chuàng)建的臨時(shí)文件時(shí),覆蓋操作使用Windows的資源管理器將不成功。
圖?3??LPC1300用戶(hù)手冊(cè)-CRP磁盤(pán)卷標(biāo)號(hào)
引導(dǎo)盤(pán)虛擬的FAT文件系統(tǒng),組成了一個(gè)單一的文件firmware.bin,文件中包含了整個(gè)flash容量的信息。通常,一個(gè)盤(pán)的容量必須稍大于所需的存儲(chǔ)容量,取決于目錄和頂層的文件系統(tǒng)分配表。在LPC1300虛擬的FAT文件系統(tǒng)下,需要4個(gè)額外的塊提供給引導(dǎo)塊、根目錄、文件分配表。因?yàn)镸CU需要使用ISP來(lái)編程整個(gè)flash存儲(chǔ)器,這些額外的塊使用RAM和ROM上的數(shù)據(jù)模擬,而不是映射到flash上作為代碼存儲(chǔ)。因此,掉電時(shí)文件系統(tǒng)的元數(shù)據(jù)將丟失,只有通過(guò)文件寫(xiě)的方式編入flash的數(shù)據(jù)才會(huì)被保存。
在flash上,寫(xiě)進(jìn)文件系統(tǒng)的數(shù)據(jù)按照磁盤(pán)塊的順序存儲(chǔ),以塊4作為起點(diǎn)。如果firmware.bin文件被刪除,PC在運(yùn)行Windows時(shí)將以塊4作為起點(diǎn)分配任一新的文件,并隨著寫(xiě)入數(shù)據(jù)的增多而使用更多的塊。這意味著,在Windows中,可以使用任一標(biāo)準(zhǔn)的程序或工具,把固件寫(xiě)進(jìn)LPC1300。在Windows瀏覽器窗口中,用戶(hù)可以刪除firmware.bin文件,并拖動(dòng)一個(gè)新文件來(lái)編程flash。不幸的是,Mac和Linux機(jī)器上的FAT文件系統(tǒng)以不同的規(guī)則分配塊,數(shù)據(jù)寫(xiě)進(jìn)ISP磁盤(pán),固件寫(xiě)進(jìn)flash,重新編排。這樣,將導(dǎo)致固件更新不成功。為此,有兩種變通方法。最常用的方法是適當(dāng)?shù)母采wfirmware.bin文件,另一個(gè)更暴力的方法是獲得管理權(quán)限直接進(jìn)行磁盤(pán)設(shè)備寫(xiě)/dev操作。
4、自動(dòng)化?USB?ISP
有時(shí)候,要求系統(tǒng)執(zhí)行固件的更新不需要用戶(hù)介入。要求用戶(hù)確定哪個(gè)盤(pán)驅(qū)動(dòng)器連接到USB設(shè)備,或要求他們手動(dòng)刪除和重寫(xiě)一個(gè)文件,常常是很復(fù)雜的事情。在電腦程序的控制下,固件經(jīng)常需要被自動(dòng)更新。此部分將描述這是如何實(shí)現(xiàn)。為了在電腦上全自動(dòng)化運(yùn)行,程序需要找到正確的USB設(shè)備進(jìn)行更新,改變USB設(shè)備“handle”到一個(gè)文件路徑,檢查CRP模式,存盤(pán)的文件燒寫(xiě)到flash,在確保flash內(nèi)容保存的情況下最終卸載盤(pán)設(shè)備器。這些步驟將被單獨(dú)的討論。這能有效的驗(yàn)證被燒寫(xiě)的固件文件。通過(guò)LPC134X用戶(hù)手冊(cè)里的“Criterion?for?Valid?User?Code”,可以對(duì)其進(jìn)行驗(yàn)證,這已用Windows?ISP工具執(zhí)行過(guò)。它也合理的驗(yàn)證在被燒寫(xiě)的設(shè)備空間里是相同長(zhǎng)度。這是在?Mac?和?Linux?系統(tǒng)中應(yīng)用的ISP例子。注意:在這些步驟中產(chǎn)生的一些偏差,在不同操作系統(tǒng)的簡(jiǎn)易執(zhí)行中影響不大。
4.1?找到正確的USB設(shè)備
枚舉USB設(shè)備的方法取決于不同的操作系統(tǒng)。在Linux上,大多數(shù)分配提供一個(gè)叫l(wèi)susb的程序,這程序能搜索指定供應(yīng)商ID和產(chǎn)品ID的?USB?設(shè)備。然后,udevadm(目前系統(tǒng)上使用udev設(shè)備文件系統(tǒng))可以分列出USB?型號(hào)ID和系統(tǒng)設(shè)備路徑。LPC1300系列的型號(hào)ID為“NXP_LPC13XX_IFLASH”。一旦供應(yīng)商ID、產(chǎn)品ID和型號(hào)ID被確認(rèn),你肯定會(huì)發(fā)現(xiàn)一個(gè)處于ISP模式的NXP?LPC1300微控制器。在Windows和Mac?OS-X中,這個(gè)步驟有點(diǎn)不同。在Mac上,可以從磁盤(pán)數(shù)據(jù)庫(kù)取得的USB設(shè)備型號(hào)信息,也就沒(méi)有去找實(shí)際USB設(shè)備。相反,直到正確的生產(chǎn)商和設(shè)備型號(hào)被找到,磁盤(pán)設(shè)備才開(kāi)始檢測(cè)。在Windows下,有相似的過(guò)程,通過(guò)iTuner?UsbManager來(lái)檢索磁盤(pán)信息。
4.2?改變USB設(shè)備控制權(quán)到文件路徑
在Linux中,一個(gè)USB設(shè)備的控制權(quán)能被轉(zhuǎn)換到文件路徑,通過(guò)循環(huán)訪問(wèn)在udev文件系統(tǒng)中的所有盤(pán)設(shè)備和為它們的系統(tǒng)設(shè)備路徑查詢(xún)udevadm,直到一個(gè)帶有ISP的USB設(shè)備被找到。
1、lsusb以生產(chǎn)商ID和NXP?ISP設(shè)備產(chǎn)品ID來(lái)命名。lsusb輸出總線和設(shè)備ID到standard?out(控制臺(tái))。輸出結(jié)果用來(lái)為USB設(shè)備創(chuàng)建一個(gè)udev路徑,例如,總線2設(shè)備3的路徑為/dev/bus/usb/002/003。
2、一個(gè)盤(pán)設(shè)備名從/dev?截取,在我們的樣品腳本中,我們使用一個(gè)與/dev/sd[a-z]匹配的通配符,并在設(shè)備間循環(huán),這些設(shè)備與像/dev/sda,?/dev/sdb,?/dev/sdc,etc這樣的組合相匹配。這就可以在系統(tǒng)上找到磁盤(pán)驅(qū)動(dòng)器,包括硬盤(pán)和USB大容量存儲(chǔ)器。
3、完整的低級(jí)盤(pán)設(shè)備文件路徑?用udevadm?info?-q?path?–n?/dev/sdX?查找,如果盤(pán)設(shè)備與我們找到的USB設(shè)備有聯(lián)系,那么返回的文件路徑以低級(jí)USB設(shè)備文件路徑開(kāi)頭。
4、最后,mount命令的輸出用于決定在步驟2測(cè)試過(guò)的盤(pán)設(shè)備名安裝到linux文件系統(tǒng)的哪個(gè)地方。我們現(xiàn)在有了一個(gè)文件系統(tǒng)路徑用于我們的的USB?ISP設(shè)備并能夠訪問(wèn)fi?rmware.bin
在?Mac?和?Windows?系統(tǒng)下,我們采用?盤(pán)操作?(替代USB設(shè)備操作)和查詢(xún)操作系統(tǒng)的盤(pán)符和文件路徑
4.3?檢查代碼的read保護(hù)(CRP)
LPC1300?USB?ISP的特色是設(shè)置USB盤(pán)的盤(pán)符指出CRP模式。USB?ISP?flash編程器的穩(wěn)定設(shè)計(jì)將檢查盤(pán)符來(lái)確認(rèn)CRP沒(méi)有使能。在Linux系統(tǒng)下,F(xiàn)AT盤(pán)文件系統(tǒng)盤(pán)符能用?mtools包讀出。遺憾的是,這不被推薦,因?yàn)樗枰猘dministrative來(lái)訪問(wèn)。另一種方法在Linux系統(tǒng)下讀文件系統(tǒng)盤(pán)符是使用?mount?-l?命令,如果你的系統(tǒng)mount版本能夠支持的話(huà)。這將列出所有安裝的文件系統(tǒng)和它們的盤(pán)符。在?Mac?和?Windows?操作系統(tǒng)中,盤(pán)符信息顯示在DiskDescription目錄或在Volume中來(lái)自?WMI?各自的目標(biāo)檢索。
如果CRP1或CRP2被使能,在USB?ISP?盤(pán)中的?firmware.bin?文件在新文件能寫(xiě)入之前肯定要被刪除來(lái)禁止代碼保護(hù)。刪除?firmware.bin?后,設(shè)備需要掉電和重連接,以使改變的CRP設(shè)置生效,這樣固件就能更新。如果CRP3被使能,設(shè)備不能被擦除和固件不能被更新。
4.4寫(xiě)文件到程序flash
在Windows操作系統(tǒng)下,幾乎任一標(biāo)準(zhǔn)文件系統(tǒng)寫(xiě)時(shí)序都這樣工作,Windows多樣的FAT文件系統(tǒng)以ISP磁盤(pán)上的第一個(gè)空閑塊作為起始,來(lái)分配塊。在Linux操作系統(tǒng)中,設(shè)備自己能直接被寫(xiě)(用/dev),但需要同時(shí)使用dd來(lái)確認(rèn)塊序列。這方法不被推薦,因?yàn)樗笥脩?hù)有?administrative??的權(quán)限。第二個(gè)選擇是打開(kāi)USB?ISP盤(pán)中已存在的?firmware.bin?并重寫(xiě)內(nèi)容。如果文件打開(kāi)后沒(méi)有截位,新的數(shù)據(jù)將以與已有文件(ISP固件建立的文件)相同的規(guī)則寫(xiě)入。(記住“file?metadata”?是通過(guò)ROM代碼創(chuàng)建的,且不存儲(chǔ)到flash)通過(guò)conv=nocreat,notrunc.選項(xiàng),使用dd來(lái)寫(xiě)入firmware.bin文件,可以實(shí)現(xiàn)重寫(xiě)。如果代碼用C語(yǔ)言,盡可能的使用?open(path,?O_RDWR)?或?fopen(path,?“r+”)。此外,在Windows操作系統(tǒng)中沒(méi)有必要覆蓋已有的文件,這樣,就有存儲(chǔ)空間可用,只要覆蓋或刪除當(dāng)前文件以釋放存儲(chǔ)空間。在我們提供的Windows程序例子中,我們使了C#?函數(shù)System.IO.File.WriteAllBytes(filePath,?firmwareData),在寫(xiě)之前做了簡(jiǎn)化處理。
4.5?卸載盤(pán)設(shè)備
大多數(shù)操作系統(tǒng)在一個(gè)延時(shí)之后將最終完整寫(xiě)到盤(pán),但強(qiáng)制卸載是最后的有效步驟,以確保操作系統(tǒng)完成數(shù)據(jù)寫(xiě)入磁盤(pán)的操作,這樣的話(huà),當(dāng)設(shè)備成功移除時(shí)就會(huì)告知用戶(hù)。為了卸載操作成功,所有打開(kāi)的文件包括firmware.bin?文件必須先關(guān)閉。在Linux操作系統(tǒng)中?,可以使用posix(可移值接口)標(biāo)準(zhǔn)?umount?命令。通常,卸載自動(dòng)加載的USB大容量存儲(chǔ)設(shè)備不需要管理權(quán)限。在Mac操作系統(tǒng)中,因?yàn)榇疟P(pán)仲裁器能夠自動(dòng)管理加載操作,使用DADiskUnmount系統(tǒng)呼叫是最好的路徑。在Windows操作系統(tǒng)中,大多數(shù)用戶(hù)使用自我卸載或使用SetupAPI?里的CM_Request_Device_Eject函數(shù)。我們的例子中Windows?ISP?更新器不卸載設(shè)備當(dāng)它,反而,它會(huì)顯示一個(gè)對(duì)話(huà)框提醒用戶(hù)。
圖4
5、自動(dòng)進(jìn)入U(xiǎn)SB?ISP
在前面的章節(jié),我們解釋了在USB?ISP模式下,PC更新設(shè)備固件的過(guò)程。當(dāng)固件未編程,或者拉低一個(gè)引腳(在LPC134x系列是PIO0.1腳),設(shè)備復(fù)位/上電,NXP?LPC1300微控制器默認(rèn)為ISP模式。有時(shí),ISP模式下更新固件、連接設(shè)備,用戶(hù)不想去按一下按鈕。這樣的話(huà),我們可以設(shè)計(jì)出允許ISP模式下編程的固件。
在LPC1300片上ROM中,通過(guò)In-Application?Programming?API請(qǐng)求,可以實(shí)現(xiàn)ISP模式下編程。固件更新之后,用戶(hù)需要重啟設(shè)備以使新的固件生效。下載新固件之后,新固件可以預(yù)設(shè)置看門(mén)狗定時(shí)器來(lái)重新設(shè)置LPC1300。下面的流程圖顯示了設(shè)備自動(dòng)化ISP過(guò)程。名為“autoisp”的軟件實(shí)例演示了這一技術(shù)。
?圖5
6 軟件例子
為了盡早建立用戶(hù)界面友好的固件更新工具,NXP發(fā)布了三個(gè)實(shí)例(一個(gè)ISP下載程序并提供了源代碼)。提供一個(gè)基于C#的應(yīng)用程序窗體,可運(yùn)行于Windows?XP、Windows?Vista和Windows?7?。使用Microsoft?Visual?Studio?C#?Express?2010,可以讓W(xué)indows的應(yīng)用得到擴(kuò)展。一個(gè)用C語(yǔ)言編寫(xiě)的命令行工具可以在Mac上使用。這個(gè)工具在Apple?Xcode中得到加強(qiáng),可以運(yùn)行在OS-X?10.5或更高的版本上。最后,Ubuntu?Linux也有一個(gè)程序化的腳本,已在Ubuntu?10.04通過(guò)測(cè)試,并可以運(yùn)行在具有相同udev文件系統(tǒng)和工具的不同版本的Linux上。
所有工具都是開(kāi)放的、沒(méi)有限制,可重復(fù)使用,除了Windows應(yīng)用[取決于iTuner(http://ituner.codeplex.com/)?計(jì)劃的USB磁盤(pán)設(shè)備等級(jí)]。這是一個(gè)在開(kāi)源許可下,要求公開(kāi)源代碼的衍生著作。
應(yīng)用手冊(cè)中還包括一個(gè)實(shí)現(xiàn)代碼讀保護(hù)的blinky的程序。這個(gè)程序用在the?LPCXpresso?IDE,在the?LPCXpresso板上讓LED閃爍,在嵌入式板上讓七段數(shù)碼管顯示屏計(jì)數(shù)。有九種程序編譯版本,所以,設(shè)備可以反復(fù)的編程(使用不同的CRP模式和LED閃爍/計(jì)數(shù)速率)。?????????????????還有一個(gè)叫“autoisp”的程序。這個(gè)例子演示了如何在程序控制下進(jìn)入ISP模式。在LED閃爍十秒鐘之后,進(jìn)入ISP模式。如果設(shè)備連接到PC上,它將順序輸出,固件開(kāi)始閃動(dòng)。這期間,LPC1343進(jìn)入ISP模式,看門(mén)狗定時(shí)器繼續(xù)工作。時(shí)間到了之后,LPC1343復(fù)位并再次運(yùn)行固件。
最后,還有一個(gè)叫“padto”的小命令行程序。這個(gè)程序用來(lái)從開(kāi)發(fā)工具獲得二進(jìn)制輸出,并填補(bǔ)成0xFF字節(jié),直到與LPC上的flash大小相匹配。這種匹配有助于PC主機(jī)上的ISP下載程序,確保固件適用于連接到USB上的特定的LPC134X。
Windows?NXPISP?實(shí)用工具
這程序是基于Microsoft?.NET?,當(dāng)setup.exe?程序運(yùn)行時(shí)啟動(dòng),附帶的Visual?Studio?Installer?將檢查電腦和下載??NET?的最新版本(如果還未安裝)。因此,當(dāng)你第一次運(yùn)行setup.exe程序時(shí),請(qǐng)確認(rèn)你已經(jīng)通過(guò)寬帶連接到互聯(lián)網(wǎng)上。在Windows?.NET子系統(tǒng)更新完之后,NXPISP程序?qū)⒆詣?dòng)安裝并運(yùn)行。NXPISP運(yùn)行時(shí),點(diǎn)擊“Select?Firmware.”一個(gè)文件選擇對(duì)話(huà)框?qū)?huì)彈出,讓你選擇一個(gè).bin文件。這個(gè).bin文件將用“Criterion?for?Valid?User?Code”核對(duì),即向量表的前8個(gè)32位字總和為0。如果?bin?文件符合要求,“Select?Firmware”?按鈕的那個(gè)綠色的檢查標(biāo)志將顯示正確,否則。顯示一個(gè)紅色的X。
實(shí)際燒寫(xiě)一個(gè)設(shè)備,單擊?“Update?Firmware.”?,“Update?Firmware.”?按鈕工作起來(lái)像一個(gè)觸發(fā)器,而且當(dāng)單擊時(shí)能停留在壓低或再一次單擊時(shí)釋放,當(dāng)按鍵被按下,電腦將掃描NXP?ISP設(shè)備,如果有一個(gè)被發(fā)現(xiàn),它的固件將被更新,而且“Update?Firmware”?按鈕的綠色檢查標(biāo)志顯示正確并且按鈕將釋放,如果沒(méi)有設(shè)備被找到,“Update?Firmware”按鈕將停留在壓低而且工具將等待設(shè)備被連接。設(shè)備被找到和更新后,綠色檢查標(biāo)志將顯示而且“Update?Firmware”?按鈕將彈起,如果實(shí)用工具等待設(shè)備連接(“Update?Firmware”?按鈕仍然壓低)它將通過(guò)再一次單擊“Update?Firmware”?按鈕取消而且導(dǎo)致彈起。
安全彈出USB?ISP設(shè)備以確保新固件已經(jīng)寫(xiě)入(Windows?NXPISP工具不會(huì)卸載設(shè)備)。通過(guò)Windows硬件彈出圖標(biāo)和Windows瀏覽器彈出選項(xiàng)來(lái)安全彈出設(shè)備。這個(gè)步驟失敗將導(dǎo)致固件惡化。
聲明:本站部分內(nèi)容根據(jù)互聯(lián)網(wǎng)資料整理而成,若侵犯您的權(quán)益,請(qǐng)聯(lián)系我們,我們會(huì)盡快處理。








