16个版本
0.1.0 | 2023年12月3日 |
---|---|
0.0.15 | 2023年12月2日 |
0.0.14 | 2023年6月9日 |
0.0.13 | 2023年3月17日 |
0.0.6 | 2022年1月18日 |
#1 in #teensy
每月47次下载
240KB
6K SLoC
Teensycore
Teensycore是用Rust编写的内核,用于Teensy-4.0微控制器。
安装
要正确构建Teensycore和任何后续项目,你需要以下内容
# Install build tools
sudo apt-get install build-essential gcc-arm-none-eabi jq
# Configure rust
rustup default nightly
rustup target add thumbv7em-none-eabihf
使用方法
首先,将你的项目配置为库。你的Cargo.toml应该看起来像这样
[package]
name = "my_project"
version = "0.1.0"
edition = "2021"
[lib]
crate-type = ["staticlib"]
path = "src/lib.rs"
[dependencies]
teensycore = "^0.1.0"
Teensycore导出一个方便的宏,它有助于配置应用程序的入口点。它负责默认的panic处理程序、初始化系统时钟、设置irq、启用调试UART等等。这样,你就可以专注于项目启动所需的内容。用以下内容替换你的src/lib.rs
#![feature(lang_items)]
#![crate_type = "staticlib"]
#![no_std]
use teensycore::prelude::*;
teensycore::main!({
/* Application code here */
});
你现在可以开始编写裸机Rust代码了!
构建
为了使你的项目正确构建,你需要以下内容
- 将你的项目配置为库
- 将你的入口点代码放在src/lib.rs中
- 下载构建模板 bash脚本
- 执行
build-template.sh
代替cargo build
。
构建脚本将生成一个.hex
文件并将其放置在名为out
的文件夹中。此hex文件与Teensy 4.0兼容,可以用teensy-loader实用程序进行闪存。
注意:不要以发布模式构建。它会优化很多东西,可能会造成问题。
示例
以下是一个非常基础的闪烁示例。要查看更多示例,请查看/examples
文件夹。
#![feature(lang_items)]
#![crate_type = "staticlib"]
#![no_std]
use teensycore::prelude::*;
main!({
pin_mode(13, Mode::Output);
loop {
pin_out(13, Power::High);
wait_ns(1 * S_TO_NANO);
pin_out(13, Power::Low);
wait_ns(1 * S_TO_NANO);
}
});
贡献
该项目仍在进行中,在接下来的几个月和几年中,我将继续对其进行重大开发,使其满足我的需求。欢迎贡献。如果你有任何具体问题,请提交问题。
许可证
无运行时依赖
~185KB