/tinyOS

基于stm32的RTOS实现

Primary LanguageC

stm32f1的嵌入式OS

环境为win keil,主要完成进程调度功能,同时引入小型FS,使用方法参考main.c。

进程调度

  • 建立位就序表,就绪任务的位为1,可通过轮询获得最高优先级,数字越小,优先级越高
  • 延时函数会挂起任务,延时计数设定,就绪表该位置零。
  • 定时器中断,挂起的每个任务的延时计数变化
  • 当所有任务不再运行时,所以我们需要创建一个空闲任务,当CPU没有东西可以运行时,运行空闲任务,优先级最低

FS

  • 包括目录和文件,每种类型占用SD卡一个盘块的空间
  • 第一个盘块存着每个盘块的使用情况
  • 目录项,包括目录项数目和一个结构体数组:包括文件名,文件类型和FCB盘块
  • FCB项,包括数据的起始盘块,盘块数目,已写入文件大小,读指针
  • 文件项,实际的文件存储