1. 背景
首先非常感谢灵动公司提供的MM32L0136C7P开发板,笔者非常荣幸的获得了测评机会。之前一直在ESP32上做micropython开发,偶然间从B站刷到灵动微电子样片测评的消息,刚好想尝试下其他开发环境于是发起了申请,万分幸运申请通过获得了样片。本文面向micropython从业者从0开始搭件arm keil c语言开发环境,简单给MM32L0136C7P开发板亮个灯。
2. ESP32无线烧录器准备
为什么需要准备ESP32无线烧录器?上文有提到笔者是做ESP32开发的,当前市面上的ESP32大都集成了串口芯片具备烧录功能做到了USB一线通,因此手头没有额外的芯片烧录器,而本文提到的 MM32L0136C7P 样片本身并未集成串口烧录功能,正当笔者一筹莫展时在论坛里看到了一篇好文: 链接 ,手头恰好有大量的ESP32C3能解燃眉之急。
2.1 编译固件
用到windowsair大佬开发的神固件: https://github.com/windowsair/wireless-esp8266-dap
笔者选用最简单的构建方式: Build-with-Github-Action
【fork仓库】-> 【修改main/wifi_configuration.h添加自己家里的wifi密码信息】-> 【git提交触发github action构建】
一套简单的操作之后便获得了适用于ESP32C3(笔者手里是ESP32C3,根据自己ESP32类型选择相应的包)做无线串口的神固件:firmware_esp32c3.zip
解压这个zip后里面长这样:
$tree firmware_esp32c3.zip/
firmware_esp32c3.zip/
├── bootloader
│ └── bootloader.bin
├── partition_table
│ └── partition-table.bin
├── wireless_esp_dap_app.bin
└── wireless_esp_dap_full.bin
我们需要的是all in one的固件:wireless_esp_dap_full.bin
2.2 烧录固件
笔者选用操作简单的 Thonny 做烧录
接着在弹窗里选中准备好的 wireless_esp_dap_full.bin 固件,点击【安装】等待片刻便完成了ESP32无线串口烧录器的制作
2.3 ESP32连接 MM32L0136C7P 开发板 SWD 口
按照这个表格的IO口接线
SWD | ESP32 |
---|---|
SWCLK | GPIO6 |
SWDIO | GPIO7 |
TVCC | 3V3 |
GND | GND |
SWD口引脚图灵动官网有给出: pdf
连完线后长这样
2.4 查看ESP32无线烧录器的IP
这里依然用 Thonny 获取烧录器IP
【运行】->【配置解释器】->【确认】后会看到左下角shell并未显示我们想要的IP信息
别急,按下ESP32板子上的RST,等待重启后即可看到
2.5 准备无线烧录器客户端elaphureLink
依然用到windowsair大神的工具: elaphureLink
直接下载已经编译好的binary: releases
注意:在安装完keil IDE之后再运行 elaphureLink,否则“安装”按钮会提示路径不对(因为Keil安装好后会创建路径)
解压后双击运行:elaphureLink.Wpf.exe
按照截图操作后,一切顺利的话会看到Thonny的串口输出里提示 "Socket accepted",OK 无线烧录器准备完成
3. arm keil环境搭件
3.1 keil官网下载最新的安装程序
https://www.keil.com/demo/eval/arm.htm#/DOWNLOAD
之后按照提示装好keil IDE即可。要注意的是,首次安装好keil运行后会弹窗安装开发板对应的pack,默认这里是搜不到 MM32L0136C7P 的,这里先关闭Installer窗口
3.2 获取支持keil开发的pack
灵动官网: https://www.mindmotion.com.cn/support/software/keil_pack/
下载解压后,找到:MindMotion.MM32L0130_DFP.1.1.2.pack,双击自动安装到keil
3.2 获取examples
很贴心,灵动官网已经准备好了丰富的示例程序,在这里:
https://www.mindmotion.com.cn/development_tools/info.aspx?itemid=3535
3.3 用keil打开示例程序
注意:确保 elaphureLink 已开启并配置完成,再打开 Keil 否则后续加载不到 debugger
3.3.1 选中SLCD_Basic示例
在左侧边栏里找到要运行的 "SLCD_Basic"示例,右键选择"Set as Active Project"
3.3.2 配置示例环境
Device选择 MM32L0136C7P
Target里需要选下arm编译器版本,选 "V6.22"
Debug配置 elaphureLink
注意:确保 elaphureLink 已开启并配置完成后再打开 Keil 否则这里加载不到 elaphureLink Debugger
下面这里很关键,Max Clock一定要选小于 10MHz的,否则识别不到设备;下面Reset方式一定要改 SYSRESETREQ ,elaphureLink不支持默认的Auto
3.3.3 编译 & 烧录
3.3.4 运行
回到 MM32L0136C7P 开发板上,点击右上角的【nRST】触发运行。
上文一切配置正确的话,恭喜你,成功运行了官方示例!
5. 总结
作为micropython开发者,第一次接触到其他开发环境,由于缺少现成的烧录器,笔者额外完成了ESP32无线烧录器的制作。本文总结了笔者在arm keil环境搭件过程中遇到的坑,希望能帮助到和笔者一样初次接触非micropython开发环境的朋友。
后续笔者会在 MM32L0136C7P 上接入更多传感器,尝试用做智能家居终端。
一个小建议:每次按开发板上的【nRST】后,都会有扬声器响,大半夜的我每按一次reset,楼下的狗就会狂叫几声🤣,这个对夜猫子很不友好!希望灵动能给个关闭reset后扬声器响的开关🙏