Show HN:Chiplab——让 AI Agent 访问虚拟硬件
英文标题:🔶 Show HN: Chiplab - Give your AI agent access to virtual hardware
Chiplab 是一个面向 AI Agent 的虚拟硬件访问项目,旨在让智能体能够与模拟的嵌入式硬件环境交互。原文展示了一个裸机 Rust 示例:通过 DMA 缓冲区暂存“Hello world!”消息,并经 UART 逐字节发送。项目同时列出 Bare-metal Rust、Embassy Rust、Zephyr C 和 FreeRTOS C 等开发环境,表明其面向多种嵌入式软件栈。对开发者而言,这类虚拟硬件能力有望让 AI Agent 在无需实体开发板的情况下编写、测试和验证底层嵌入式代码。
打开原文相关 3 · 机会 1
38.2 KB
52.5 KB
27.9 KB
22.2 KB
8.1 KB
12.7 KB
9.7 KB
8.9 KB
51.3 KB
168.2 KB
中文
rust · main.rs
rust static mut DMA_BUF: [u8; 64] = [0; 64];
#[entry] fn main() { let mut tx = init_uart();
let msg = b"Hello world!\n";
let buf = &raw mut DMA_BUF as *mut u8;
let staged = unsafe {
ptr::copy_nonoverlapping(msg.as_ptr(), buf, msg.len());
slice::from_raw_parts(buf, msg.len())
};
for &byte in staged {
let _ = nb::block!(tx.write(byte));
}
}
裸机(Rust)
Embassy(Rust)
Zephyr(C)
FreeRTOS(C)
English / 原文
rust·main.rs
1
2
3
4 static mut DMA_BUF: [u8; 64] = [0; 64];
5
6 #[entry]
7 fn main() {
8 let mut tx = init_uart();
9
10 let msg = b"Hello world!\n";
11 let buf = &raw mut DMA_BUF as *mut u8;
12 let staged = unsafe {
13 ptr::copy_nonoverlapping(msg.as_ptr(), buf, msg.len());
14 slice::from_raw_parts(buf, msg.len())
15 };
16
17 for &byte in staged {
18 let _ = nb::block!(tx.write(byte));
19 }
20 }
Bare-metal (Rust)Embassy (Rust)Zephyr (C)FreeRTOS (C)