目录
前言
准备工作
开始操作
问题回顾
后记
去年曾经尝试Pico制作openmv固件,由于知识储备不够最后失败了,留了一个大坑,有了前几天的基础,慢慢补齐知识,最近这一周一直在学习如何编译Stm固件并烧录到单片机里,之前编译过lvgl for pico的固件,所以也算是熟门熟路了。
F103C8T6(失败) |
F401RCT6(失败) |
F411CEU6(成功) |
F407VET6 (未试) |
H743CEU6 (未试) |
|
---|---|---|---|---|---|
CPU | 72MHz | 84MHz | 100MHz | 168MHz | 480MHz |
RAM | 20KB | 64KB | 128KB | 192KB | 1MB |
FLASH | 64KB | 256KB | 512KB | 512KB | 2MB |
git clone https://github.com/micropython/micropython.git
cd micropython
git checkout v1.24.0
git submodule update --init
make BOARD=WEACT_F411CEU6
firmware.dfu
firmware0.bin
firmware1.bin
C:\Users\Administrator>dfu-util --list
dfu-util 0.11
Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2021 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
Found DFU: [0483:df11] ver=2200, devnum=4, cfg=1, intf=0, path="1-1.3", alt=3, name="@Device Feature/0xFFFF0000/01*004 e", serial="3362334E3034"
Found DFU: [0483:df11] ver=2200, devnum=4, cfg=1, intf=0, path="1-1.3", alt=2, name="@OTP Memory /0x1FFF7800/01*512 e,01*016 e", serial="3362334E3034"
Found DFU: [0483:df11] ver=2200, devnum=4, cfg=1, intf=0, path="1-1.3", alt=1, name="@Option Bytes /0x1FFFC000/01*016 e", serial="3362334E3034"
Found DFU: [0483:df11] ver=2200, devnum=4, cfg=1, intf=0, path="1-1.3", alt=0, name="@Internal Flash /0x08000000/04*016Kg,01*064Kg,03*128Kg", serial="3362334E3034"
D:\A_GitCode\micropython\ports\stm32\build-WEACT_F411CEU6>dfu-util -a 0 -s :leave -D firmware.dfu
dfu-util 0.11
Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2021 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
Match vendor ID from file: 0483
Match product ID from file: df11
Multiple alternate interfaces for DfuSe file
Opening DFU capable USB device...
Device ID 0483:df11
Device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Interface #0 ...
Determining device status...
DFU state(10) = dfuERROR, status(10) = Device's firmware is corrupt. It cannot return to run-time (non-DFU) operations
Clearing status
Determining device status...
DFU state(2) = dfuIDLE, status(0) = No error condition is present
DFU mode device DFU version 011a
Device returned transfer size 2048
DfuSe interface name: "Internal Flash "
File contains 1 DFU images
Parsing DFU image 1
Target name: ST...
Image for alternate setting 0, (2 elements, total size = 314432)
Setting Alternate Interface #0 ...
Parsing element 1, address = 0x08000000, size = 14704
Erase [=========================] 100% 14704 bytes
Erase done.
Download [=========================] 100% 14704 bytes
Download done.
Parsing element 2, address = 0x08020000, size = 299712
Erase [=========================] 100% 299712 bytes
Erase done.
Download [=========================] 100% 299712 bytes
Download done.
Done parsing DfuSe file
Submitting leave request...
Transitioning to dfuMANIFEST state
还是吃了基础薄弱的亏,弄了一下午,期间还走了用Daplink测串口、晶振计算错误等弯路,最后找到了这个标准的配置文件后,才算排除了一些因素,最后锁定在bin烧录问题上,最后换dfu才成功。好啦,接下来可以踏实的尝试画PCB了,回过头来再继续补坑Micropython+Pico2+Lvgl(官方的停止更新了)、Micropython+Pico1/Pico2+Openmv(官方不支持)。考虑到Lvgl的C版本还一直活跃,可以继续尝试C+Stm32+Lvgl。另外单片机支持TensorFlow Lite,做一些简单的边缘计算,还是可以玩玩的。