一、簡(jiǎn)介
很多的工程師,在開(kāi)發(fā)杰理藍(lán)牙芯片的第一步就會(huì)有一個(gè)很深的疑惑,關(guān)于key的
1、什么是key文件?
2、Key文件是如何產(chǎn)生的?
3、為什么需要他key文件?
4、如何添加key文件?
5、以及實(shí)際開(kāi)發(fā)中的一些報(bào)錯(cuò)該如何處理?
二、詳細(xì)描述
關(guān)于杰理芯片的key文件,實(shí)際上 杰理芯片特有的一種機(jī)制,而這種機(jī)制就是存在于杰理芯片特有的架構(gòu),也是杰理公司延續(xù)將近10年的特點(diǎn),估計(jì)以后也會(huì)是這種機(jī)制。具體為什么,請(qǐng)聽(tīng)我娓娓道來(lái),這里是我個(gè)人的理解和總結(jié),不代表杰理的觀點(diǎn)
2.1 什么是key文件?
簡(jiǎn)單理解,key文件就是密碼文件,用來(lái)加密芯片的。僅此而已,無(wú)其他作用
2.2 key文件是如何產(chǎn)生的?誰(shuí)來(lái)分配?
首先,key文件是杰理公司給每家代理商分配的,只有杰理才有權(quán)限分配key,一旦分配之后就是固定存在的,不可修改 。
其次key文件一旦燒錄到芯片里面之后,就不可修改,不可刪除
最后,key文件要寫(xiě)入到芯片里面去,只有兩個(gè)途徑
1、批量生產(chǎn)用的一拖二燒寫(xiě)器
2、批量生產(chǎn)用的一拖八燒寫(xiě)器
2.3 為什么需要key文件?
要明白key的作用,就要先從杰理芯片的整體架構(gòu)講起:
1、杰理的芯片架構(gòu)是SOC 。他是由控制器+存儲(chǔ)器的合封產(chǎn)物,也就是你看到的是一顆芯片,但是內(nèi)部其實(shí)是2顆,甚至可能是三顆【比如早期的WIFI芯片】
==》其中“控制器”這個(gè)是杰理公司所設(shè)計(jì),大概是才有OTP的機(jī)制,就是控制器生產(chǎn)出來(lái)就會(huì)燒錄固定的代碼,引導(dǎo)芯片直接去讀取外掛的spiflash的內(nèi)容到ram去執(zhí)行
==》其中“存儲(chǔ)器”是外購(gòu)的,用來(lái)存放用戶的程序
2、理解這個(gè)之后,我們?cè)賮?lái)探討,杰理為什么要這么去做?
==》其實(shí)答案,呼之欲出,就是為了降成本
==》因?yàn)橐趩晤w芯片上面實(shí)現(xiàn)大容量的rom程序空間,成本是比較高昂的
==》但是如果選擇把這些存儲(chǔ)空間外擴(kuò),用成熟的工藝、低廉的價(jià)格的spiflash去代理,這樣就是完美的解決了這個(gè)問(wèn)題
==》這里還要引入一個(gè)技術(shù),就是虛擬存儲(chǔ)映射。早期杰理芯片開(kāi)發(fā)的時(shí)候,會(huì)有一個(gè)切換bank的概念,就是程序執(zhí)行到一個(gè)新的地方,就load對(duì)應(yīng)位置的flash代碼到ram里面運(yùn)行,此時(shí)全局變量的定義就要特殊的處理 。但是目前杰理的芯片有了虛擬存儲(chǔ)映射之后,就沒(méi)有切換bank的概念了。
總結(jié):正因?yàn)檫@種特殊的機(jī)制,就需要密碼了,也稱(chēng)之為key文件,其實(shí)就是密碼。先來(lái)說(shuō)說(shuō),不加key有什么隱患
==》假如別人要破解你的程序,只需要拿到你的芯片,開(kāi)蓋,然后把里面的spiflash的bin文件全部讀出來(lái),再進(jìn)行簡(jiǎn)單的分析,就可以直接破解了 。因?yàn)槟闼械某绦蚨际窃趦?nèi)置的spiflash里面放著的
==》引入key之后的好處:
(1)、通過(guò)批量燒寫(xiě)器寫(xiě)入“key”到芯片內(nèi)部的控制器里面 。再將經(jīng)過(guò)key加密的bin文件燒入到內(nèi)置的spiflash里面 。那么請(qǐng)問(wèn)這種情況你該如何破解呢
(2)、這個(gè)加密bin文件的操作,是杰理開(kāi)發(fā)環(huán)境最終生成程序的時(shí)候,產(chǎn)生的
(3)、因?yàn)槟阕x出來(lái)flash的bin文件是經(jīng)過(guò)加密的,沒(méi)有用
(4)、假如你知道了key文件,也就是密碼,你也沒(méi)法復(fù)制。因?yàn)槟惬@取的bin文件沒(méi)辦法反推出來(lái)實(shí)際的bin文件
所以,整個(gè)的機(jī)制這里就講明白了,key存在的必要性
2.4 如何在程序中添加key文件
這里拿AC695N系列的芯片舉例說(shuō)明
至于key文件獲取,需要聯(lián)系您的供應(yīng)商直接獲取即可
2.5 實(shí)際開(kāi)發(fā)中關(guān)于key文件報(bào)錯(cuò)的處理
錯(cuò)誤:KEY不匹配!!
芯片沒(méi)有被燒寫(xiě)過(guò)KEY,請(qǐng)刪除“-key參數(shù)”
ERROR: Failed to parse device info, error info:ERR KEY
已復(fù)制 個(gè)文件。
錯(cuò)誤:fw文件中已經(jīng)存在要添加的文件。
1個(gè)文件。
錯(cuò)誤:fw文件中已經(jīng)存在要添加的文件。
==》這個(gè)問(wèn)題,log信息寫(xiě)的很詳細(xì)了,就是目標(biāo)芯片沒(méi)有燒錄key 。而你的程序里面加入了key文件,導(dǎo)致不能下載,僅此而已,詳見(jiàn)2.4章節(jié),刪除加key這個(gè)操作即可解決
三、總結(jié)
很多工程師質(zhì)疑key存在的意義,覺(jué)得很麻煩。有這個(gè)疑惑只是自己沒(méi)有深入去理解而已
所以通過(guò)這篇文章詳細(xì)的講解他的來(lái)歷,以及存在的必要性,希望能幫助到大家
審核編輯 黃昊宇
-
藍(lán)牙芯片
+關(guān)注
關(guān)注
17文章
375瀏覽量
46036
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論