一、簡介
很多的工程師,在開發杰理藍牙芯片的第一步就會有一個很深的疑惑,關于key的
1、什么是key文件?
2、Key文件是如何產生的?
3、為什么需要他key文件?
4、如何添加key文件?
5、以及實際開發中的一些報錯該如何處理?
二、詳細描述
關于杰理芯片的key文件,實際上 杰理芯片特有的一種機制,而這種機制就是存在于杰理芯片特有的架構,也是杰理公司延續將近10年的特點,估計以后也會是這種機制。具體為什么,請聽我娓娓道來,這里是我個人的理解和總結,不代表杰理的觀點
2.1 什么是key文件?
簡單理解,key文件就是密碼文件,用來加密芯片的。僅此而已,無其他作用
2.2 key文件是如何產生的?誰來分配?
首先,key文件是杰理公司給每家代理商分配的,只有杰理才有權限分配key,一旦分配之后就是固定存在的,不可修改 。
其次key文件一旦燒錄到芯片里面之后,就不可修改,不可刪除
最后,key文件要寫入到芯片里面去,只有兩個途徑
1、批量生產用的一拖二燒寫器
2、批量生產用的一拖八燒寫器
2.3 為什么需要key文件?
要明白key的作用,就要先從杰理芯片的整體架構講起:
1、杰理的芯片架構是SOC 。他是由控制器+存儲器的合封產物,也就是你看到的是一顆芯片,但是內部其實是2顆,甚至可能是三顆【比如早期的WIFI芯片】
==》其中“控制器”這個是杰理公司所設計,大概是才有OTP的機制,就是控制器生產出來就會燒錄固定的代碼,引導芯片直接去讀取外掛的spiflash的內容到ram去執行
==》其中“存儲器”是外購的,用來存放用戶的程序
2、理解這個之后,我們再來探討,杰理為什么要這么去做?
==》其實答案,呼之欲出,就是為了降成本
==》因為要在單顆芯片上面實現大容量的rom程序空間,成本是比較高昂的
==》但是如果選擇把這些存儲空間外擴,用成熟的工藝、低廉的價格的spiflash去代理,這樣就是完美的解決了這個問題
==》這里還要引入一個技術,就是虛擬存儲映射。早期杰理芯片開發的時候,會有一個切換bank的概念,就是程序執行到一個新的地方,就load對應位置的flash代碼到ram里面運行,此時全局變量的定義就要特殊的處理 。但是目前杰理的芯片有了虛擬存儲映射之后,就沒有切換bank的概念了。
總結:正因為這種特殊的機制,就需要密碼了,也稱之為key文件,其實就是密碼。先來說說,不加key有什么隱患
==》假如別人要破解你的程序,只需要拿到你的芯片,開蓋,然后把里面的spiflash的bin文件全部讀出來,再進行簡單的分析,就可以直接破解了 。因為你所有的程序都是在內置的spiflash里面放著的
==》引入key之后的好處:
(1)、通過批量燒寫器寫入“key”到芯片內部的控制器里面 。再將經過key加密的bin文件燒入到內置的spiflash里面 。那么請問這種情況你該如何破解呢
(2)、這個加密bin文件的操作,是杰理開發環境最終生成程序的時候,產生的
(3)、因為你讀出來flash的bin文件是經過加密的,沒有用
(4)、假如你知道了key文件,也就是密碼,你也沒法復制。因為你獲取的bin文件沒辦法反推出來實際的bin文件
所以,整個的機制這里就講明白了,key存在的必要性
2.4 如何在程序中添加key文件
這里拿AC695N系列的芯片舉例說明
至于key文件獲取,需要聯系您的供應商直接獲取即可
2.5 實際開發中關于key文件報錯的處理
錯誤:KEY不匹配!!
芯片沒有被燒寫過KEY,請刪除“-key參數”
ERROR: Failed to parse device info, error info:ERR KEY
已復制 個文件。
錯誤:fw文件中已經存在要添加的文件。
1個文件。
錯誤:fw文件中已經存在要添加的文件。
==》這個問題,log信息寫的很詳細了,就是目標芯片沒有燒錄key 。而你的程序里面加入了key文件,導致不能下載,僅此而已,詳見2.4章節,刪除加key這個操作即可解決
三、總結
很多工程師質疑key存在的意義,覺得很麻煩。有這個疑惑只是自己沒有深入去理解而已
所以通過這篇文章詳細的講解他的來歷,以及存在的必要性,希望能幫助到大家
審核編輯 黃昊宇
-
藍牙芯片
+關注
關注
17文章
379瀏覽量
46213
發布評論請先 登錄
相關推薦
基于javaPoet的緩存key優化實踐
![基于javaPoet的緩存<b class='flag-5'>key</b>優化實踐](https://file1.elecfans.com/web2/M00/EB/95/wKgZomZevfiAZTUiAAAYyNC3ogI340.png)
《DNESP32S3使用指南-IDF版_V1.6》第十一章 KEY實驗
請教幾個關于杰理藍牙芯片的問題
【龍芯2K0300蜂鳥板試用】4 gpio控制key字符驅動
OpenAI api key獲取并可調用GPT-4.0、GPT-4o、GPT-4omini
![OpenAI api <b class='flag-5'>key</b>獲取并可調用GPT-4.0、GPT-4o、GPT-4omini](https://file1.elecfans.com/web2/M00/DF/17/wKgaomYuCbSAVjVdAAFqVfXnuJY859.png)
杰理JL芯片絲印解釋, 如何通過絲印來判斷真實型號,供參考
![<b class='flag-5'>杰</b><b class='flag-5'>理</b>JL<b class='flag-5'>芯片</b>絲印解釋, 如何通過絲印來判斷真實型號,供參考](https://file1.elecfans.com//web2/M00/FD/05/wKgZomaXgCaAQyUlAANy659BhmE853.png)
請問怎樣批量下載設備key到ROM?
OpenAI API Key獲取:開發人員申請GPT-4 API Key教程
![OpenAI API <b class='flag-5'>Key</b>獲取:開發人員申請GPT-4 API <b class='flag-5'>Key</b>教程](https://file1.elecfans.com/web2/M00/B1/D3/wKgZomVddfqAVkq0AABxTmjVfN0431.png)
緩存有大key?你得知道的一些手段
![緩存有大<b class='flag-5'>key</b>?你得知道的一些手段](https://file1.elecfans.com//web2/M00/F0/D7/wKgaomZxZm6AdTxjAAT8AKxapPY680.png)
OpenAI API Key獲取與充值教程:助開發者解鎖GPT-4.0 API
![OpenAI API <b class='flag-5'>Key</b>獲取與充值教程:助開發者解鎖GPT-4.0 API](https://file1.elecfans.com/web2/M00/DF/17/wKgaomYuCbSAVjVdAAFqVfXnuJY859.png)
在TSMaster中加載基于DotNet平臺的Seed&amp;Key
![在TSMaster中加載基于DotNet平臺的Seed&amp;<b class='flag-5'>Key</b>](https://file.elecfans.com/web2/M00/40/07/pYYBAGJrUk2AaMaTAAAQONQtdzo461.jpg)
GaussDB(for Redis) 特性揭秘:大 key 治理
![GaussDB(for Redis) 特性揭秘:大 <b class='flag-5'>key</b> 治理](https://file1.elecfans.com/web2/M00/C6/25/wKgZomYFeOCAed07AAI8IiCcEsM153.png)
國際盛會 | 蔚藍創造亮相KEY ENERGY 2024能源展
![國際盛會 | 蔚藍創造亮相<b class='flag-5'>KEY</b> ENERGY 2024能源展](https://file1.elecfans.com//web2/M00/C2/24/wKgZomXgRe2ACP6iABRvRlc_mCM820.jpg)
評論