首頁 > 評(píng)測 > 又一款I(lǐng)oT開發(fā)板-ADICUP3029開發(fā)板評(píng)測
又一款I(lǐng)oT開發(fā)板-ADICUP3029開發(fā)板評(píng)測
- [導(dǎo)讀]
- 最近在深圳的嵌入式展上,MOUSER攜手ADI等廠牌推出現(xiàn)場免費(fèi)送開發(fā)板的活動(dòng),筆者也去薅了一把羊毛。ADI的板子,平常大家應(yīng)該接觸的不多,從ADICUP3029來管窺一豹吧。
評(píng)測方面代碼移植沒有什么可講的, 因?yàn)閷儆跇?biāo)準(zhǔn)代碼.這里只把結(jié)果貼出來:
Without Microlib:
Microseconds for one run through Dhrystone[30-4730]: 15.7
Dhrystones per Second: 63829.8
With Microlib:
Microseconds for one run through Dhrystone[29-6509]: 21.6
Dhrystones per Second: 46296.3
這個(gè)結(jié)果符合一般Cortex M3內(nèi)核的性能,至于與其他處理器對(duì)比,就留給讀者自己去進(jìn)行了.另外作者還做了Coremark的評(píng)測移植,限于篇幅這里贅述.感興趣的讀者可以去文末的Git頁面中下載相關(guān)代碼進(jìn)一步研究.
Demo3:硬件SHA計(jì)算例子評(píng)測
隨著IoT應(yīng)用逐漸展開,還有最近比特幣的瘋狂走勢,相信很多程序員開始更深入研究加密算法與Hash算法.SHA256屬SHA2的一種,簡單來講是計(jì)算Hash值的一種算法.特點(diǎn)是結(jié)果與原數(shù)據(jù)相關(guān)極小,且原始數(shù)據(jù)的些微變動(dòng)能引起結(jié)果的巨大改變.比如看下面的例子:
SHA256("The quick brown fox jumps over the lazy dog")
d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592
SHA256 ("The quick brown fox jumps over the lazy dog.")
ef537f25c895bfa782526529a9b63d97aa631564d5d789c2b765448c8635fb6c
這些特點(diǎn)使得SHA算法廣泛應(yīng)用在當(dāng)今的加密通信中.很多人下載大文件之后會(huì)比較其sha或者md5值來驗(yàn)證是否下載完整或者未被改動(dòng)的文件,這是sha算法的一種簡單應(yīng)用.
如果用軟件實(shí)現(xiàn)SHA256算法,對(duì)于嵌入式平臺(tái)來講最大問題是性能.在加密通信過程中,SHA算法往往要反復(fù)執(zhí)行.所以ADuCM3029這個(gè)芯片內(nèi)置了硬件加速模塊,這里看看如何使用這個(gè)模塊來計(jì)算SHA256值. 首先準(zhǔn)備三個(gè)測試用例,后面用以驗(yàn)證計(jì)算結(jié)果:
具體使用硬件加速器的簡要步驟:
/* Open the crypto device */
eResult = adi_crypto_Open(CRYPTO_DEV_NUM, DeviceMemory, sizeof(DeviceMemory), &hDevice);
…
/* Register Callback */
eResult = adi_crypto_RegisterCallback (hDevice, CryptoCallback, NULL);
…
/* Format SHA message 1 */
SHA_FormatInput(
Sha1_Message ,
sizeof(Sha1_Message)*8u,
Sha1_FormattedMessage,
sizeof(Sha1_FormattedMessage)*8u
);
這里為什么要對(duì)輸入進(jìn)行格式化呢,因?yàn)锳DuCM302x的SHA硬件加速器需要的數(shù)據(jù)的字序與輸入的數(shù)據(jù)字序不同且不能在線調(diào)整字序,導(dǎo)致需要重新排列一下子.后來的產(chǎn)品改進(jìn)了這點(diǎn),使用起來更方便.這個(gè)可以說是ADuCM302x的一個(gè)小bug.
/* Submit the buffer for SHA hashing */
eResult = adi_crypto_SubmitBuffer (hDevice, &Buffer1);
/* Enable the device */
eResult = adi_crypto_Enable (hDevice, true);
/* retrieve the submitted buffer from the driver */
eResult = adi_crypto_GetBuffer (hDevice, &pGottenBuffer);
/* Disable the device */
eResult = adi_crypto_Enable (hDevice, false);
簡單來講,就是把數(shù)據(jù)格式化為加速器所需要的格式,提交給它,再等輸出即可.
與前面的代碼一樣,請(qǐng)到文末的連接中下載此例程的完整工程代碼.
Cross Core Embedded Studio篇
這個(gè)工具是ADI公司自己推出的開發(fā)工具,目的是兼容ADI所有器件的開發(fā).風(fēng)格上來說是Eclipse的,所以界面操作也不需要再次熟悉的過程.唯一有點(diǎn)小問題的是正式版本要花錢買,對(duì)于自己DIY或者預(yù)算有限的微小公司,價(jià)格不能算便宜.好在ADI公司考慮到了這一點(diǎn),在這個(gè)開發(fā)板中附帶了一個(gè)有限版本License.用這個(gè)License就可以使用Studio來開發(fā)ADICUP3029.
圖 開發(fā)板專用License
下載安裝不用說了,第一次運(yùn)行需要輸入License:
圖 輸入License
一路next下來就可以了.但是安裝注冊(cè)成功現(xiàn)在還不能開發(fā)這個(gè)芯片,因?yàn)樗闹С职沒有被安裝.這個(gè)支持包跟Keil MDK的是一樣子的,理論上直接導(dǎo)入MDK的支持包即可.但是為了便于描述,還是通過Studio這個(gè)工具來下載.
圖 這個(gè)菜單很隱晦
圖 連圖標(biāo)也跟Keil MDK中的一樣的CMSIS Package Manager
打開這個(gè)界面,安裝什么就跟Keil MDK的操作一樣了.感到有點(diǎn)奇怪的是,其他公司的支持包也列在上面了,如果安裝了其他公司的支持包是否也能用這個(gè)工具來開發(fā)相應(yīng)芯片呢?限于篇幅原因,作者這里不節(jié)外生枝了.
- 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!
網(wǎng)友評(píng)論
- 聯(lián)系人:巧克力娃娃
- 郵箱:board@21ic.com
- 我要投稿
-
歡迎入駐,開放投稿
- NRF52810藍(lán)牙數(shù)字耳機(jī)找人定制
預(yù)算:¥30005天前
- 125KW模塊式PCS軟硬件外包開發(fā)
預(yù)算:¥1100000015小時(shí)前
- 12V汽車啟動(dòng)電源項(xiàng)目BMS設(shè)計(jì)
預(yù)算:¥50000023小時(shí)前
- 數(shù)據(jù)可視化軟件 開發(fā)
預(yù)算:¥5000023小時(shí)前
- PLC項(xiàng)目調(diào)試修改
預(yù)算:¥100001天前
- 起動(dòng)電機(jī)控制器開發(fā)
預(yù)算:¥1100001天前