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 次
38KB
658 行
punt-rs
这是一个用于点实验性最小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