#bootloader #usb #stm32 #connect #operation #context #micro-controller

用于连接到点 STM32 USB 启动加载程序的库

4 个版本 (2 个重大变更)

0.3.0 2023年9月23日
0.2.1 2023年9月23日
0.2.0 2020年1月29日
0.1.0 2020年1月20日

硬件支持 中排名 1570

每月下载量 42

ISC 许可证

38KB
658

punt-rs

CI badge docs.rs badge

这是一个用于点实验性最小USB启动加载程序 punt PC 端的库。

许可证

此代码遵循 ISC 许可证。有关详细信息,请参阅 LICENCE.md。


lib.rs:

此包提供了一种通过USB连接到带有点启动加载程序的微控制器的方法,并公开了所有启动加载程序功能。

示例:基本烧录

use punt::{Context, UsbContext, Operation};
use std::fs::File;
use std::io::{Read, Write};

// Open binary file and read contents
let mut file = File::open("test.bin")?;
let mut buff = Vec::new();
file.read_to_end(&mut buff)?;

// Find a bootloader target
let mut context = Context::new()?;
let mut target_handle = context.pick_target(None)?.open()?;

// Fetch information about the target's bootloader
let start_address = target_handle.bootloader_info()?.application_base;

// Erase the necessary flash area
target_handle.erase_area(start_address, buff.len())?.execute()?;

// Program the buffer into flash
target_handle.program_at(buff.as_slice(), start_address)?.execute()?;

// Verify flash contents
target_handle.verify(buff.as_slice(), start_address)?;

println!("Done!");

除了这个非常基本的API之外,它还提供了在读取、擦除和烧录等操作过程中提供进度反馈的功能。有关详细信息,请参阅Operation 特性。

依赖项

~1.5MB
~32K SLoC