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

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移植代码中跑跑任务。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,534评论 25 709
  • 姓名:吴兆阳 学号:14020199009 转自韦东山 嵌牛导读:对嵌入式初学者,没有足够的视野选择一个合适投入方...
    吴兆阳阅读 2,504评论 0 4
  • 姓名:屈彦维 学号:16020610026 引自:http://lw.3edu.net/qrs/lw_46749....
    怀光_ee48阅读 1,559评论 0 0
  • 天突然变冷,中午还下起了大雪。薄衫单衣在雪里走了一遭回来竟然有点发晕,鼻涕直流。羽绒棉袄都已经洗好收进了柜子,懒得...
    觉梦2016阅读 310评论 0 1
  • 脑洞大开已经进行到了第3期,每每到对练的时候,群里才真的热闹起来,尽管就只有我和丁丁两个人在群里讲话,大师兄围观。...
    婷下来思考阅读 192评论 0 3

友情链接更多精彩内容