吧务
level 8
gemmember
楼主
源自Github Readme内容: 网页链接
NobroRTOS Core 用一个清晰的模型回答嵌入式产品最关键的问题: 下一项工作是什么,它能否按时完成? 它提供无堆、截止期感知的轻量运行时, 同时把驱动、中断、定时器、睡眠策略和板级框架的控制权留给应用。从 8 位控制器到现代 Arm 和 RISC-V 开发板,开发方式始终一致:声明有界任务, 在启动前拒绝不可行调度,并在没有隐藏任务栈和动态分配的情况下运行任务。
以下是一段周期性传感器数据采集的Arduino风格的代码,跟传统FreeRTOS风格代码相比差别较大。
#include <NobroRTOSCore.h>
using nobro::core::Scheduler;
using nobro::core::Task;
Scheduler<1> scheduler;
void sample(void *) {
// 读取传感器、更新控制,然后返回。
}
void setup() {
static const Task tasks[] = {
scheduler.begin(tasks, micros());
}
void loop() {
scheduler.releaseDue(micros()); scheduler.runReady();
yield();
}
2026年09月09日 03点09分
1
NobroRTOS Core 用一个清晰的模型回答嵌入式产品最关键的问题: 下一项工作是什么,它能否按时完成? 它提供无堆、截止期感知的轻量运行时, 同时把驱动、中断、定时器、睡眠策略和板级框架的控制权留给应用。从 8 位控制器到现代 Arm 和 RISC-V 开发板,开发方式始终一致:声明有界任务, 在启动前拒绝不可行调度,并在没有隐藏任务栈和动态分配的情况下运行任务。
以下是一段周期性传感器数据采集的Arduino风格的代码,跟传统FreeRTOS风格代码相比差别较大。
#include <NobroRTOSCore.h>
using nobro::core::Scheduler;
using nobro::core::Task;
Scheduler<1> scheduler;
void sample(void *) {
// 读取传感器、更新控制,然后返回。
}
void setup() {
static const Task tasks[] = {
scheduler.begin(tasks, micros());
}
void loop() {
scheduler.releaseDue(micros()); scheduler.runReady();
yield();
}