首页 > 评测 > 又一款IoT开发板-ADICUP3029开发板评测

又一款IoT开发板-ADICUP3029开发板评测

ADI   CUP3029   M3   ADICUP360   物联网    ESP8266   
  • 作者:zhanzr
  • 来源:21ic
  • [导读]
  • 最近在深圳的嵌入式展上,MOUSER携手ADI等厂牌推出现场免费送开发板的活动,笔者也去薅了一把羊毛。ADI的板子,平常大家应该接触的不多,从ADICUP3029来管窥一豹吧。

评测方面代码移植没有什么可讲的, 因为属于标准代码.这里只把结果贴出来:

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

这个结果符合一般Cortex M3内核的性能,至于与其他处理器对比,就留给读者自己去进行了.另外作者还做了Coremark的评测移植,限于篇幅这里赘述.感兴趣的读者可以去文末的Git页面中下载相关代码进一步研究.

Demo3:硬件SHA计算例子评测

随着IoT应用逐渐展开,还有最近比特币的疯狂走势,相信很多程序员开始更深入研究加密算法与Hash算法.SHA256属SHA2的一种,简单来讲是计算Hash值的一种算法.特点是结果与原数据相关极小,且原始数据的些微变动能引起结果的巨大改变.比如看下面的例子:

SHA256("The quick brown fox jumps over the lazy dog")

d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592

SHA256 ("The quick brown fox jumps over the lazy dog.")

ef537f25c895bfa782526529a9b63d97aa631564d5d789c2b765448c8635fb6c

这些特点使得SHA算法广泛应用在当今的加密通信中.很多人下载大文件之后会比较其sha或者md5值来验证是否下载完整或者未被改动的文件,这是sha算法的一种简单应用.

如果用软件实现SHA256算法,对于嵌入式平台来讲最大问题是性能.在加密通信过程中,SHA算法往往要反复执行.所以ADuCM3029这个芯片内置了硬件加速模块,这里看看如何使用这个模块来计算SHA256值. 首先准备三个测试用例,后面用以验证计算结果:

image16.png

具体使用硬件加速器的简要步骤:

/* 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

);

这里为什么要对输入进行格式化呢,因为ADuCM302x的SHA硬件加速器需要的数据的字序与输入的数据字序不同且不能在线调整字序,导致需要重新排列一下子.后来的产品改进了这点,使用起来更方便.这个可以说是ADuCM302x的一个小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);

简单来讲,就是把数据格式化为加速器所需要的格式,提交给它,再等输出即可.

与前面的代码一样,请到文末的连接中下载此例程的完整工程代码.

Cross Core Embedded Studio篇

这个工具是ADI公司自己推出的开发工具,目的是兼容ADI所有器件的开发.风格上来说是Eclipse的,所以界面操作也不需要再次熟悉的过程.唯一有点小问题的是正式版本要花钱买,对于自己DIY或者预算有限的微小公司,价格不能算便宜.好在ADI公司考虑到了这一点,在这个开发板中附带了一个有限版本License.用这个License就可以使用Studio来开发ADICUP3029.

17.png

图 开发板专用License

下载安装不用说了,第一次运行需要输入License:

image18.png

图 输入License

一路next下来就可以了.但是安装注册成功现在还不能开发这个芯片,因为它的支持包还没有被安装.这个支持包跟Keil MDK的是一样子的,理论上直接导入MDK的支持包即可.但是为了便于描述,还是通过Studio这个工具来下载.

image19.png

image19.png图 这个菜单很隐晦

image20.png

图 连图标也跟Keil MDK中的一样的CMSIS Package Manager

打开这个界面,安装什么就跟Keil MDK的操作一样了.感到有点奇怪的是,其他公司的支持包也列在上面了,如果安装了其他公司的支持包是否也能用这个工具来开发相应芯片呢?限于篇幅原因,作者这里不节外生枝了.

image21.png

  • 本文系21ic原创,未经许可禁止转载!

网友评论