μC/OS-II在S3C44BOX上的移植

发布者:中和子最新更新时间:2013-03-30 来源: dzsc关键字:μCOS-II  S3C44BOX  移植过程 手机看文章 扫描二维码
随时随地手机看文章
  μC/OS-II在处理器S3C44B0X上的移植,就是使μC/OS-II在该微控制器上运行。由μC/OS-II文件系 统可知,在移植过程中,用户所需要关注的就是与处理器相关的代码,包括OS_CPU.H、OS_CPU_A.ASM和 OS_CPU_C.C三个文件。

  (1)OS_CPU.H

  在OS_CPU.H文件中定义。与编译器相关的数据类型。μS/OS-II为了保证可移植性,程序中没有直接使 用int、unsigned int等定义,而是自己定义了一套数据类型,例如,INT16U表示16位无符号整型。对于 32位内核ARM微控制器,INT16U是unsianed short型;若是16位的处理器,则是unsigned int型。; μC/OS-II使用的变量类型如表1所示。

  表1 μC/OS-II使用的变量类型

  同时,在该文件中还定义了使能和禁止中断宏、栈的增长方向、定义符号OS_STK_GROWTH的值;还定义 了μC/OS-II的OS TASK SW宏,该宏是μC/OS-II从低优先级任务切换到高优先级任务时的调用,可以 采用下面两种方式定义:一种是如果处理器支持软中断,那么可以使用软中断向量指向OSCtxSw函数;另 一种是直接调用OSCrxSw函数。

  (2)OS_CPU_A.ASM

  在该文件中有4个汇编函数需要移植,如下:

  ●OSStartHighRdy函数:该函数由OSStart函数调用,OSStart函数负责调度就绪状态的任务开始运行 ,而其中OSStartHighRdy负责获取新任务的堆栈指针,并从堆栈指针中恢复新任务的所有处理器寄存器 。函数要移植的原因就是因为它涉及将处理器寄存器保存到堆栈。

  ●OSCtxSw函数:该函数由OS_TASK_SW宏调用,OS_TASK_SW宏由OSSched函数调用,OSSched函数负责任 务之间的切换。OSCtxSw函数在OSSched函数中负责将当前任务对应的处理器寄存器保存到堆栈中,并将 任务中需要恢复的处理器寄存器从堆栈中恢复出来。

  ●OSlntCtxSw函数:该函数由OSlntExit函数调用,OSlntExit函数由OSTickISR函数调用。OSlntCtxSw 负责在定时中断中任务之间的切换,保存当前任务堆栈指针,并将新任务对应的处理器寄存器从堆栈中 恢复出来。

  ●OSTickISR函数:时间节拍函数,由定时中断产生,主要负责在进入时保存处理器寄存器,完成任务 时切换,退出时恢复寄存器并返回。

  (3)OS_CPU_C.C

  OS_CPU_C.C文件中有6个函数需要移植。

  其中,OSTaskStklnit函数是在任务创建时被调用的,它负责初始化任务的堆栈结构。其他的5个函数均 为钩子函数:OSTaskCreateHook、OSTaskDelHook、OSTaskSwHook、OSTaskStatHook、OSTimeTickHook, 这些函数主要用来扩展;μC/OS-II的功能。

关键字:μCOS-II  S3C44BOX  移植过程 引用地址:μC/OS-II在S3C44BOX上的移植

上一篇:车载信息的硬件电路设计
下一篇:嵌入式系统flash接口电路的实现

推荐阅读最新更新时间:2024-03-16 13:20

μC/OS-II在S3C44BOX处理器上的移植
摘要:介绍实时操作系统μC/OS-II的特点和内核结构,给出μC/OS-II在Samsung嵌入式S3C44BOX ARM7微处理器上的移植的步骤及详细相关代码,同时阐述μC/OS-II在应用中应注意的问题。 关键词:μC/OS-II S3C44BOX 移植 实时操作系统 μC/OS-II功能强大,支持56个用户任务,其内核为占先式,支持信号量、邮箱、消息队列等多种常用的进程间通信机制,现已成功应用到众多商业嵌入式系统中,是一个成熟稳定的实时内核。与大多商用RTOS不同的是,μC/OS-II公开所有的源代码,90%的代码使用标准的ANSI C语言书写,程序可读性强、移植性好;同时它可免费获得,即使商业应用也只收取少量的许可费用
[嵌入式]
μCOS_II移植到STM32F103VC过程
一.μCOS-II源码文件结构介绍 下载地址: https://www.micrium.com/download/micrium_stm32xxx_ucos-ii/ 这个地址下载的时候需要注册Micrium账号才能下载,源码是Micrium官方提供给移植内核ARM Cortex-M3的例子,我们所要移植的STM32F103VC芯片的内核是ARM Cortex-M3,因此我们下载这个源码文件。 下载成功之后是一个Micrium_STM32xxx_uCOS-II.exe可执行文件的压缩文件(图1)需要我们解压缩(图2)得到(图3)。 图1: 图2: 图3: 树形展开结构:
[单片机]
μCOS_II<font color='red'>移植</font>到STM32F103VC<font color='red'>过程</font>
高压双电源智能控制系统的研制
引 言   随着电力事业的发展,电力质量日益受到人们的重视。供电的连续性是电力质量的一个重要方面,对于某些用电部门,如医院、机场、大型生产线等尤为重要。保证供电连续性的办法是给供电对象提供主、备两路独立的电源,对两路电源都进行实时监控。当一侧电源发生故障时,能根据设定的切换程序准确完成向另一侧电源的切换,以最大限度地保证供电的连续性。现在的新式高压双电源切换装置有两个高压隔离开关,有明显的隔离断口.较好地保证了检修的安全,但需两套驱动机构联动,故产品的工作可靠性受到极大的制约。本文开发研制的控制系统可用一套驱动机构驱动主、备两路电源,两侧都实现了实时监控。且当故障发生时,能安全、可靠地实现电源转换,并且具备通信功能,可在无人职
[单片机]
高压双电源智能控制系统的研制
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved