#arm #cortex-m #template

无std 应用程序 mcumeter

基于STM32F042和INA260的MCU功率计固件

3个不稳定版本

0.2.0 2022年4月6日
0.1.1 2019年1月14日
0.1.0 2018年12月26日

#1869 in 嵌入式开发

0BSD 许可证

11KB
116

mcumeter

mcumeter 包包含一个基于ST Microelectronics STM32F042 MCU和Texas instruments INA260功率计的定制设计功率计板的固件。

该硬件也是开源的,可以在此仓库中找到。

构建

要构建固件,只需调用cargo build --release,然后在target/thumbv6m-none-eabi/release/mcumeter中找到可烧录的二进制文件。

烧录

OpenOCD

要使用OpenOCD,您需要安装OpenOCD并有一个单独的SWD调试器可用。使用OpenOCD的方法取决于使用的调试接口。一种简单且开源的烧录方法是获取DAPLink接口(例如,通过购买NXP FRDM板并填充SWD引脚)并使用包含的脚本。

# openocd_program.sh target/thumbv6m-none-eabi/release/mcumeter

通过USB / dfu-util

要使用此方法,您需要安装cargo-binutils,可以通过在软件目录外调用cargo install binutils

您还需要安装dfu-util

满足这些先决条件后,您需要将生成的ELF二进制文件转换为原始二进制文件

# cargo objcopy --release -- -O binary mcumeter.bin

要将此文件烧录到设备中,您需要将其转换为引导模式,方法是短接标有BOOT的引脚并插上电源。如果设备处于DFU模式,dfu-util会告诉您

# dfu-util -l
dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 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=50, cfg=1, intf=0, path="20-11.2", alt=1, name="@Option Bytes  /0x1FFFF800/01*016 e", serial="FFFFFFFEFFFF"
Found DFU: [0483:df11] ver=2200, devnum=50, cfg=1, intf=0, path="20-11.2", alt=0, name="@Internal Flash  /0x08000000/032*0001Kg", serial="FFFFFFFEFFFF"

达到这一阶段后,您可以使用以下方法烧录mcumeter.bin文件

# dfu-util -a0 --dfuse-address 0x08000000 -D mcumeter.bin
dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 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/

dfu-util: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!
Opening DFU capable USB device...
ID 0483:df11
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 2048
DfuSe interface name: "Internal Flash  "
Downloading to address = 0x08000000, size = 13048
Download	[=========================] 100%        13048 bytes
Download done.
File downloaded successfully

许可证

0条款BSD许可证.

依赖关系

~18MB
~457K SLoC