github:https://github.com/gqf2008/xtask
可移植多任务调度中间件,用于嵌入式环境,与应用程序一起编译打包,参考FreeRTOS实现。
如果您有一块longan-nano最小系统板,那么example中的例子直接可以跑起来
打开一个终端
串口调试
打开另外一个终端
如果您能在终端看到任务工作时的日志输出,恭喜您已经成功了
.
|____src 源码目录
| |____lib.rs
| |____chip 芯片移植目录
| | |____gd32vf103 gd32vf103vf103移植代码
| | | |____mod.rs
| | | |____port.S 汇编代码,中断上下文保存
| | | |____port.rs 中断处理函数
| | | |____restore_ctx.S 首次启动恢复任务汇编代码
| | | |____stdout.rs 串口输出
| | | |____memory.x 内存布局链接脚本
| | |____env.rs 移植环境参数
| | |____mod.rs
| |____port.rs port接口定义
| |____task.rs 任务定义
| |____allocator.rs 内存分配器
| |____timer.rs
| |____arch 指令集架构,官方嵌入式工程组项目重新导出
| | |____x86_64
| | | |____mod.rs
| | |____mod.rs
| | |____riscv
| | | |____mod.rs
| | |____cortex_m
| | | |____mod.rs
| |____task
| | |____executor.rs 单物理线程执行器实现
| | |____scheduler 调度器实现
| | | |____xtask.rs
| | | |____idle.rs
| | | |____xworker.rs
| | | |____misc.rs
| | |____scheduler.rs
| |____sync 信号量、通知、队列、临界段等
| | |____semaphore.rs
| | |____queue.rs
| | |____mod.rs
| | |____mutex.rs
| | |____notifier.rs
| | |____broadcast.rs
| |____bsp 板级支持包
| | |____mod.rs
| | |____longan_nano longan_nano最小系统板
| | | |____mod.rs
| | | |____led.rs
| | | |____lcd.rs
| | | |____hcsr04.rs
| | | |____epd27b.rs
| | | |____kalman.rs
| |____io.rs io读写之类
| |____prelude.rs
| |____time.rs 时间相关函数
|____.vscode
| |____settings.json
|____Cargo.lock
|____Cargo.toml
|____hal 依赖的hal库
/// 移植层接口定义
pub trait Portable {
/// 完全内存屏障
/// 保证在屏障之前的任何存储操作先于屏障之后的代码执行。
fn barrier();
/// 临界区保护函数
fn free<F, R>(f: F) -> R
where
F: FnOnce(&CriticalSection) -> R;
/// 开全局中断
fn enable_interrupt();
/// 关全局中断
fn disable_interrupt();
/// 启动调度器
fn start_scheduler() -> !;
/// 软中断
fn irq();
/// 关闭软中断
fn disable_irq();
/// 重置下一次中断时间
fn reset_systick();
/// 获取systick
fn systick() -> u64;
/// 硬件延时,单位us
fn delay_us(us: u64);
/// 保存任务环境到任务栈
fn save_context(task: &mut Task);
/// 打印文本函数
fn printf(str: &str);
}
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有