学习操作系统的进度(3)

一.  关于文件夹

1.  OS有关于自己内核的东西,放在core中,这些不用改,凡是关于os内核的东西都不用该

2.  需要改动的是关于操作系统与不同板子不同CPU的接口的文件(因为OS可以放在很多类型的单片机上使用,那么这些单片机与操作系统都有一个接口)就像图中的中间部分CPUport,配置这些接口的文件包括BSP,CPU。其中BSP中一般放外设(网卡声卡LED等)的初始化。这些换一个类型的板子就需要重新移植,这些文件板子的官网一般都有,直接下即可

二。关于任务控制块,任务堆栈,任务函数

1.任务控制块:是一个结构体,一个数据结构,存放优先级,堆栈首地址的指针等等

2。任务堆栈:上下文切换时,将寄存器的值保存起来,每个任务都有,保证可以切会来。当获得CPU使用权时,将任务堆栈内容复制到CPU的各个寄存器。

3。任务函数:实实在在跑的程序

三.关于程序的运行情况

1。操作系统就像是一个管家,内部采用抵达定时器,有时钟节拍,每个节拍都会检测一下任务的运行情况,比如哪个任务就绪哪个任务需要调度执行。

2。关于delay init里面包含systicktask, 在systick task中一个是task++,一个是每个节拍检测下任务的运行情况.

3.关于延时函数的任务调度,

其中,while(1)只是代表这个任务一直存在,一直在os3中。当执行到延时函数时,CPU的使用权就会交出去,此时systicktask中time++,然后检测,就绪表中哪个任务就绪,并执行它。等time++到500后这个LED的任务重新回到就绪表中,继续执行LED1=1。如果进入到延时函数中后,当前没有就绪的任务要执行,那么就会执行空闲任务,每个节拍检测任务运行情况,并且time++,知道有任务就绪

 

四。关于函数书写

  关于

uart_init(115200);

   LED_Init();

   Motor_Init();

   OWN_DMA_Init();

   OWN_ADC_Init();这些的初始化可以放在一个函数里面,然后放进BSP中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值