FreeRTOS从入门到摔倒-List

背景交代:在差不多熟练运用完STM32F103单片机的基本功能之后,比如GPIO口配置、IIC、SPI、PWM波等,想继续深入系统进行学习,当然学习阶段最终的目标是ARM+Linux,为了学习这些轻量级的操作系统,将开发板从F103换成了F429,因为后续想结合GUI一起学习。去年了解过一些FreeRTOS的API,并走过一些基本的例程,但不入虎穴,焉得虎子,内核不了解有什么意思,所以这段时间...
摘要由CSDN通过智能技术生成

背景交代:

在差不多熟练运用完STM32F103单片机的基本功能之后,比如GPIO口配置、IIC、SPI、PWM波等,想继续深入系统进行学习,当然学习阶段最终的目标是ARM+Linux,为了学习这些轻量级的操作系统,将开发板从F103换成了F429,因为后续想结合GUI一起学习。

去年了解过一些FreeRTOS的API,并走过一些基本的例程,但不入虎穴,焉得虎子,内核不了解有什么意思,所以这段时间的学习从内核入手,可能在学习的过程当中会复习一些《操作系统与编译原理》中的知识,希望自己尽快完成这方面的学习。

Day 1:

在新建工程之后开始了概念学习:

裸机系统:分为轮询系统和前后台系统。轮询系统:只适合哪些按顺序执行的功能代码,实时性差;前后台系统:在轮询系统中加入中断,中断被称之为前台,main函数的无限循环被称之为后台;

多任务系统:就是任务也拥有了优先级,相对前后台系统,能够提升实时性,用言语描述,太麻烦,直接用代码来表现好了:

int flag1 = 0;
int flag2 = 0;
int flag3 = 0;

void DoSomething1(void) 
void DoSomething2(void) 
void DoSomething3(void) 

int main(void)
{
   
    HardWareInit();  //硬件相关初始化;
    RTOSInit();      //OS初始化;
    RTOSStart()//OS开始启动,多任务调度;
}

void ISR1(void) 
{
      
     flag1 = 1;      //置位标志位; 
}

void ISR2(void) 
{
      
     flag2 = 2;      //置位标志位; 
}

void ISR3(void) 
{
      
     flag3 = 1;      //置位标志位; 
}

void DoSomething1(void) 
{
    
     for (;;) {
                           
      if (flag1) {
   }  // 任务实体 ;  
     }
}

void DoSomething2(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值