[MM32生态] 【EV Board (MM32L0136C7P)测评】+评测之一_开发工具和使用体验

[复制链接]
 楼主| zhanzr21 发表于 2022-11-26 12:42 | 显示全部楼层 |阅读模式
本帖最后由 zhanzr21 于 2022-11-26 12:46 编辑

#申请原创#为这个板子写的第一篇评测, 记录从拿到板子到配置开发环境, 创建简单工程, 直到下载第一个程序过程.

这个贴子中有一些吐槽, 作者本意是和灵动官方的工程师探讨, 并不是想故意”黑”哪个板子或哪个芯片.惯例先上图吧,
e081073d20c261baa28b6f1786ecea40
e6f02f7cc33f741224d1f27bbbec84d1
265b5cfe603be44094a066ad5d1f738e
c64367bfcd10c4e354817bd42b14ac6c
因为不是摄影比赛, 所以也没有上原始的高清图, 大家凑和看看.板子外形没有啥好评论的, 中规中矩. 主要还是看功能和开发体验.

下面开始准备开发环境, 板子自己没有带调试器, 需外接调试器和电源就可以了, 实验中直接用调试器的电源对板子也可以供电, 不用单独插那个MicroUSB的电源线. 不过这肯定不规范.

软件开发, 首先准备设备驱动支持包. 作者本人使用Keil MDK 5.36.于是开始找对应的设备支持包. 首先在灵动的网站上找到了一个应用手册,按照这个手册来的, 发现坑比较多.
11faf30967f324d92d8e80ed44ac61c2
这个手册给了三种方法, 实验中全部没有成功,虽然最后就在下载应用手册的旁边找到了需要的Keil Pack, 不过还是把其中的经历记录下,希望官方工程师做出相应的修复, 要么修复文档,要么修复网站.

上述应用笔记推荐的第一种方法, 就是通过Keil软件本身的包管理器来下载, 这个其实也是本人一向推荐的方法, 最直接明了,理论上是”最佳实践”, 实际情况下因为灵动官方没有上传相应的软件包,导致这个方法没有走通.
2581b8563eeb5c0f27e97b0ce07760c0
这是本人MDK版本, 5.36,比较新,所以不认为是版本原因.
bea5e0e5ed44cc202d626f03a05aafa5
在包管理器中没有找到MM32L0136C7P对应的软件包, 应该是厂商没有上传, 顺便测试了下另外还有两个其他两个包无法下载,原因不明.

上述应用笔记推荐的第二种方法,是去Keil网站去下载回来手动安装.本人认为第一种方法如果不可行, 第二种方法肯定也行不通, 因为从包管理器和网站下载是读取的同一个数据源. 实际情况验证了作者的推断. 该网站页面上的内容和Keil包管理器内的内容完全一致, 没有MM32L0136C7P对应的软件包.
faa5dbe64d8e7697d3ac9a177a2873a6

应用笔记中提供的第三种方法是到提供的一个网址上去下载软件包.
这个更离谱, 打开直接给你翻白眼.
bba855eaaa380f489e239ebf2ea84d34
用了应用笔记中的例子连接,点开是404错误.
b819b73f4705d4db97c307ee782b4a32
最后只好到下载这个应用笔记的页面去找, 这次还好, 找到了.
abc9f864563e196fad55060930c6a55e
下载解压, 发现要找的软件包.
13593c86aa66733e39104eac4cb7f1d1
点击安装,一路next.

现在来创建一个最简单的工程,用工程向导,选这几个组件,来个先进的流水灯实验以验证硬件软件开发环境.
ac3b709662486c9a3c5ad3db0bf2b00c
dc477e4804a7cad60064f7d5f4862b5a
之后点击按钮进行build,BANG的一声.下面看第一个错误:
399f24b37222eb7e9f5e09d19469cc1d
然来是官方软件包提供的启动文件有误, 也不知道发布前怎么测试的:定义异常向量和默认向量处理函数的符号没有对应上.
  1. __Vectors       DCD     |Image$ARM_LIB_STACK$ZI$Limit|                       ;         Top of Stack
  2.                 DCD     Reset_Handler                                           ;  -15    Reset
  3.                 DCD     NMI_Handler                                             ;  -14    NMI
  4.                 DCD     Hardwarefault_Handler                                   ;  -13    Hardwarefault
  5.                 DCD     0                                                       ;  -12    Reserved
  6.                 DCD     0                                                       ;  -11    Reserved
  7.                 DCD     0                                                       ;  -10    Reserved
  8.                 DCD     0                                                       ;  -9    Reserved
  9.                 DCD     0                                                       ;  -8    Reserved
  10.                 DCD     0                                                       ;  -7    Reserved
  11.                 DCD     0                                                       ;  -6    Reserved
  12.                 DCD     SVCall_Handler                                          ;  -5    SVCall
  1. HardFault_Handler\
  2.                 PROC
  3.                 EXPORT  HardFault_Handler          [WEAK]
  4.                 B       .
  5.                 ENDP
  6. SVC_Handler     PROC
  7.                 EXPORT  SVC_Handler                [WEAK]
  8.                 B       .
  9.                 ENDP
修复这个简单, 改成一致就好了.
再来build,BANG的一声, 来看第二个错误:
8d3ac1582c996bc1fe6b6d29bab59735
看了下是初始栈顶没有定义导致的错误.
  1. ; Vector Table Mapped to Address 0 at Reset
  2.                 AREA    RESET, DATA, READONLY
  3.                 EXPORT  __Vectors
  4.                 EXPORT  __Vectors_End
  5.                 EXPORT  __Vectors_Size
  6.                 IMPORT  |Image$ARM_LIB_STACK$ZI$Limit|

  7. __Vectors       DCD     |Image$ARM_LIB_STACK$ZI$Limit|                       ;         Top of Stack
  8.                 DCD     Reset_Handler                                           ;  -15    Reset
  9.                 DCD     NMI_Handler                                             ;  -14    NMI
  10.                 DCD     HardFault_Handler                                   ;  -13    Hardwarefault  
这个有点无厘头, 其它厂家的启动文件中就顺便把stack,heap的大小定义了, 虽不是最合理的做法, 却已经约定俗成, 本人的意见是继续沿用.
但这个是芯片厂商的选择权利, 我们只能去适应.
于是参考灵动官方的例子工程, 另外配置了一个自定义连接脚本.
ff7a1549c563b7a42810c125c10e347d
连接脚本可以用文本编辑, 也可以在Keil界面进行图形化配置, 本人倾向后者.
58d6476b6d703dea58dcd8db77f8e0c1
这下终于build通过了, 下载也可以了.
495834d5a08a932ff29f278962bef5b7
这板子上手的经历实在是有点崎岖, 强烈呼吁厂商提升开发体验. 第一篇评测贴到此为止, 下篇再见!

mnynt121 发表于 2022-12-15 10:20 | 显示全部楼层
MM32L0136C7P的性能怎么样
biechedan 发表于 2022-12-15 11:07 | 显示全部楼层
MM32L0136C7P支持哪些下载器?
hilahope 发表于 2022-12-15 13:23 | 显示全部楼层
不都是keil的开发吗?              
 楼主| zhanzr21 发表于 2022-12-16 13:53 | 显示全部楼层
hilahope 发表于 2022-12-15 13:23
不都是keil的开发吗?

是用Keil的

后来问了灵动的工程师说上面这种直接DevicePack的驱动代码不再维护,以MindSDK为准.
单片小菜 发表于 2023-1-29 17:00 | 显示全部楼层
这个太棒了,很棒的, 期待后续
robertesth 发表于 2023-2-2 15:41 | 显示全部楼层
MM32L系列MCU CAN不支持DMA,支持硬件重发功能。
wilhelmina2 发表于 2023-2-4 09:51 | 显示全部楼层
MM32L0136C7P功耗多少
houjiakai 发表于 2023-2-4 10:42 | 显示全部楼层
MM32L系列低功耗特性就比较适合
modesty3jonah 发表于 2023-2-4 11:03 | 显示全部楼层
mm32是车规级的mcu吗?               
ingramward 发表于 2023-2-4 13:02 | 显示全部楼层
MM32L的ADC快速采样误差是多少?
juliestephen 发表于 2023-2-4 16:16 | 显示全部楼层
MM32系列MCU支持哪些通信协议?
houjiakai 发表于 2023-2-4 17:46 | 显示全部楼层
mm32有哪些封装?               
 楼主| zhanzr21 发表于 2023-2-6 10:41 | 显示全部楼层
mnynt121 发表于 2022-12-15 10:20
MM32L0136C7P的性能怎么样

专门做的低功耗应用的,性能不是卖点
 楼主| zhanzr21 发表于 2023-2-6 10:42 | 显示全部楼层
wilhelmina2 发表于 2023-2-4 09:51
MM32L0136C7P功耗多少

这个具体参数就去看数据手册吧
 楼主| zhanzr21 发表于 2023-2-6 10:42 | 显示全部楼层

这个具体参数就去看数据手册吧
 楼主| zhanzr21 发表于 2023-2-6 10:42 | 显示全部楼层
juliestephen 发表于 2023-2-4 16:16
MM32系列MCU支持哪些通信协议?

这个具体参数就去看数据手册吧
 楼主| zhanzr21 发表于 2023-2-6 10:42 | 显示全部楼层
ingramward 发表于 2023-2-4 13:02
MM32L的ADC快速采样误差是多少?

这个具体参数就去看数据手册吧
 楼主| zhanzr21 发表于 2023-2-6 10:43 | 显示全部楼层
modesty3jonah 发表于 2023-2-4 11:03
mm32是车规级的mcu吗?

不是,也不需要是.主要面向遥控器之类的产品
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:每天都進步

91

主题

1017

帖子

34

粉丝
快速回复 返回顶部 返回列表