嵌入式系统中的操作系统与调度策略
1. 无操作系统:无限循环加中断
在处理 DoSomePeriodicalStuff 和 DoSomeBackgroundStuff 之间交换或共享的数据时,需要格外小心。数据一致性可能需要程序员手动确保。
1.1 轮询:无中断实现
可以不使用定时器中断来实现示例应用。以下是使用轮询实现相同应用的代码:
#include <avr/io.h>
#include <avr/interrupt.h>
void InitHardware(void)
{
DDRB = (1<<PB0); /* pin connected to LED is output pin */
/* initialize timer 1 */
TCCR1B = (1<<CS11) | (1<<CS10); /* prescaler = clk/64 */
}
int main(void)
{
InitHardware();
while(1) {
// DoSomeBackgroundStuff();
if (TIFR & (1<<TOV1)) {
TIFR |= (1<<TOV1); /* clear pending flag by writing a logical 1 */
PORTB ^= (1<<PB0); /*
嵌入式系统调度策略解析
超级会员免费看
订阅专栏 解锁全文
2020

被折叠的 条评论
为什么被折叠?



