一、评测简介
这次参加的原因是想测试一下STAR-MC1架构的ETH模块,但是发现灵动mindsdk并没有提供ETH相关的HAL库,这就有点尴尬了,只能放弃掉之前的测试计划。转而完成对开发板的串口中断进行评测。
二、开发板开箱
开发板的图片如图所示,盒子上有开发板贴图,可以看到是为2022年全国大学生物联网设计竞赛提供的开发板。这款开发板是逐飞做的开发板,做智能车的小伙伴都比较熟悉了。
1. 开发板本体
开发板是这样,外设还比较多。MPU6050、光敏电阻、麦克风、电位器、以太网等等。尴尬的就是官方没有提供ETH相关的HAL库,无法使用,我去找了逐飞,逐飞他们也没有ETH相关内容提供。可能这个物联网比赛里用无线的多一点,比如8266、或者是SPI的无线网卡。
板卡结构如图,外设非常多,就是我想要的以太网没提供软件资料。这次测评我就评测板子的串口中断啦。
2. 开发板附赠
开发板带了一个SWD的调试器,还有一张防BUG的黄色卡纸,这个真的是吸睛呀,感觉很灵性,多给几张就好了。
这个SWD接口用起来不太方便,需要插USB然后杜邦线连到开发板的20P的SWD接口上。正好我手里有逐飞的SWD下载器,找个转接板就可以啦,非常方便。
三、评测过程
1.MDK更新及PACK安装
因为STAR-MC1是一个比较新的内核,类似于Cortex-M33,所以旧版本的MDK不支持STAR-MC1的PACK安装,这里需要使用MDK-V5.37版本以上才可以安装MM32F5277E_DFP.0.0.7.pack,所以我又去下载安装了一次MDK。安装以及破X过程忽略啦。
安装完MDK后需要安装PACK,灵动将所有PACK全部打包,下载解压后直接安装即可,默认会自动适配MDK-PACK的路径。
2. MindSDK下载
MindSDK是灵动提供的SDK下载途径,这里我们需要注册下账号,然后选择MDK的SDK及开发板为plus-f5270,选择建立工程即可。
也可以打开下面SDK API DOCUMENT看看相关的API信息,反正里面是没有ETH相关的信息,这个就比较失望了。
3. Demo测试
下载完SDK后,就可以打开hello world工程来编译下看看了。
如图所示,设置好下载器及下载完成后自动复位,然后插着Type-C接口的串口USB并编译程序。
编译完成后0错误,0警告,下载即可。
当前程序下载完后,会打印一个hello world,复位开发板后发现串口输出了hello world。
但是要注意一下,默认代码的波特率是9600,一般我们都用115200,所以没有输出的时候注意看一下是不是波特率没有设置正确。
4. 串口中断测试
还是使用之前的hello world程序。只需要打开串口中断使能。
首先我们在board.h里定义一下中断源及中断句柄
#define BOARD_DEBUG_UART_IRQn UART1_IRQn
#define BOARD_DEBUG_UART_IRQHandler UART1_IRQHandler
然后在串口初始化中打开串口接收使能。
48行使能的第一个参数就是串口回调函数的句柄。所以我们还需要创建一个串口中断回调函数。
这里你会发现,我在57行读了一下串口接收到的数据,下面来对比一下如果没有它会怎么样呢。
5. 演示结果
我们注释掉这里的代码,如果串口接收到数据,那么它就会进入回调函数从而打印出hello world。
大家可以看到,我发了一个1,结果串口中断打印了成百上千个hello world,这说明一直在重复执行中断中的程序。
这是怎么回事呢,因为ARM默认串口中断不会自动清除中断标志位,需要手动清除下中断标志位。可以有两种方式,一种就是使用清除中断的API,另外就是读一下接收BUFF中缓冲的数据。我这里使用的就是第二种方式,接下来我们取消掉注释试试看。
可以看到,我发送了字符1,它输出了两次hello world。已经没有刚才一直卡在中断里的情况了。
四、评测总结
灵动MM32F5270还是ARM的M核,所以SDK和M3相差不大,但是指令集里相差挺多东西的,这个是有Trust Zone的。使用起来挺方便,特别是灵动提供的MindSDK,希望灵动可以更新下ETH相关的HAL驱动,我想开发下这块开发板的ETH相关应用。
原作者:乐乐爱学习