美文网首页嵌入式 Linux C ARM 我用 LinuxLinux
学习ucos和ARM体系结构的路线图

学习ucos和ARM体系结构的路线图

作者: Leon_Geo | 来源:发表于2017-12-31 10:13 被阅读50次

    Step 1:学会使用开发板跑简单程序

    熟读对应开发板上的ARM芯片的datasheet,之后就尽可能的在开发板上逐个实现芯片对应的每个功能,像GPIO实验,UART通讯,I2C,ADC,DAC,PWM,RTC,SPI等等。当每个功能模块都实现以后,再实现多个功能复合的编程,比如用UART打印出ADC的值什么的。

    Step 2:搞懂uCOS等简单OS

    建议购买《嵌入式实时操作系统μCOS-II(第二版)》,

    1.重点搞清楚什么是任务,什么是前后台,为什么要在系统中加入嵌入式操作系统;

    2.详细了解他的TCB(Task Control Block)和ECB(Event Control Block)的数据结构,搞清楚整个uCOS的实现机制;

    3.详细了解信号量,互斥信号量、消息队列、邮箱和时间标志组。

    Step 3:建立对uCOS的初步认识

    下载对应你的开发板ARM芯片移植好了文件OS_CPU_C.c,OS_CPU.H,OS_CPU_A.asm(当然有的开发板已经提供了这样的基础实验)

    在你的开发板上跑跑uCOS,建立起自己对于uCOS在开发板上的认识。在你的开发板上编写一个自己跑uCOS的简单任务。

    Step 4:熟悉ARM体系结构

    可参考《ARM体系结构与编程》或《ARM+Architecture+Reference+Manual(2nd+Edition)》

    了解以下几个方面的知识:

    1、ARM模式下的指令集

    2、Thumd模式下的指令集

    3、异常模式及进入异常时ARM如何处理

    4、一定能熟悉ARM中的汇编指令

    5、熟悉CPSR,R0-R7,R8-R14,R15及在各个模式下,这些寄存器的映射。

    熟悉以后,再来自己做uCOS的移植了。

    Step 5:自己动手移植uCOS

    对于uCOS的移植,我们只需要编写关键的三个文件,文件如下:

    1、OS_CPU_C.c(堆栈初始化操作OSTaskStkInit函数)

    2、OS_CPU.H:完成在该芯片下的数据定义,比如什么unsigned char 之类的,注意一下OS_STK和OS_CPU_SR的定义,定义下关中断和开中断的方式,有三个只能选择1个,ARM芯片一般是定义为第三种方式

    3、OS_CPU_A.asm(这个是MDK环境下的汇编文件)或OS_CPU_A.a(这个是IAR开发环境下的汇编),这个文件的内容就多了,要做以下几个函数的重写:

    a、OSStartHighRdy函数

    b、任务级的任务切换函数OSCtxSw,

    c、中断级的任务切换OSIntCtxSw,其实只要写好了OSCtxSw,OSIntCtxSw自然就copy一下就完了(copy的时候记者要把保存当前任务的寄存器去掉就可以了。

    Step 6:测试自己的uCOS移植代码

    Step 7:在自己写的uCOS移植代码中跑跑任务。

    相关文章

      网友评论

        本文标题:学习ucos和ARM体系结构的路线图

        本文链接:https://www.haomeiwen.com/subject/tdpogxtx.html