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