本科毕业设计论文-概要设计基于μcosii系统在s3c2440平台的移植的设计与实现.docVIP

  • 2
  • 0
  • 约 13页
  • 2017-01-22 发布于辽宁
  • 举报

本科毕业设计论文-概要设计基于μcosii系统在s3c2440平台的移植的设计与实现.doc

本科毕业设计论文-概要设计基于μcosii系统在s3c2440平台的移植的设计与实现

μuC/OS-Ⅱ在ARM9上的移植(S3C2440) 概要设计 总页数 编制 修 改 履 历 修改编号 日期 修改人 版本号 修改内容 1 VER0.1.0 初始做成 2 3 目 录 1 文档概述 5 1.1 文档目的和范围 5 1.2 术语/缩略语 5 1.3 参考文档 5 2 模块概述 5 2.1 模块功能定义 6 2.2 模块结构 7 2.3 模块动作时序 8 3 接口说明 8 3.1 数据结构定义 8 3.1.1 模块间接口函数 9 文档概述 文档目的和范围 该项目主要完成主要包括μC/OS-II移植到ARM9 S3C2440上,主要实现任务的启动和任务在中断级的调度和任务的上下文切换,还有实现中断处理服务和开关中断。 术语/缩略语 序号 术语/缩略语 说明 1 任务调度 通过一定的规则实现任务的切换 2 参考文档 序号 文档名 作者 时间 版本 1 需求分析 付海文 2013-12-11 VER0.1.0 2 阶段文档模板 东软实训中心 2014-4-14 VER0.1.0 模块概述 本模块是μC/OS-II移植到ARM9 S3C2440上的最主要的工作,是连接μC/OS-II操作系统内核和处理器的中间桥梁,每个任务的任务控制块(TCB)中都有自己的堆栈空间用来保存任务的上下文,当需要启动该任务时,通过把管理模式下的堆栈指针SP指向任务的堆栈空间,以出栈的方式把任务的上下文导入到处理器的寄存器中,此时处理器程序计数器(PC)指向任务程序入口地址,即实现了任务的启动;当发生任务级的调度时,首先将当前处理器各寄存器压入栈中,然后在当前任务的TCB中保存任务的堆栈指针,最后将最高优先级就绪态任务切换到处理器中运行态;在中断级的任务切换中需要考虑到中断的嵌套和中断的返回。 模块功能定义 序号 功能点 功能点详细内容 1 多任务启动 用于用户程序开始启动任务,直接运行最高优先级就绪态任务 2 任务级的切换 当前任务被挂起时,通过比较优先级判优进行任务切换 3 中断级的任务切换 当中断处理结束后,在中断非嵌套情况下实现任务的切换 4 中断服务子程序 当中断发生,保存CPU现场,调用中断处理程序,中断返回 5 关中断 将处理器程序状态寄存器设置为关中断状态,禁止中断发生 6 开中断 将处理器程序状态寄存器设置为开中断状态,使能中断 7 时钟中断处理 发生时钟中断,调用内核时钟节拍处理函数 8 任务堆栈初始化 每个任务都有一个任务堆栈,该堆栈用来保存任务的上下文。 模块结构 图 1 模块间接口 模块名称 模块类型 概要说明 OSTaskStkInit 接口 任务堆栈初始化 OSStartHighRdy 接口 最高优先级任务启动 OSTaskSwHook 接口 用户自定义函数 OSCtxSw 接口 任务级任务切换 OSIntCtxSw 接口 中断级任务切换 OSTickISR 接口 时钟中断处理 OSCPUSaveSR 接口 关中断 OSCPURestoreSR 接口 开中断 OS_CPU_IRQ_ISR 接口 中断服务程序 模块动作时序 系统时钟产生中断后,CPU转去处理时钟中断如下图 图2 cpu时钟中断处理的过程 接口说明 数据结构定义 typedef unsigned char BOOLEAN; /*布尔变量*/ typedef unsigned char INT8U; /*无符号8位整形变量*/ typedef signed char INT8S; /*有符号8位整形变量*/ typedef unsigned short INT16U; /*无符号16位整形变量*/ typedef signed short INT16S; /*有符号16位整形变量*/ typedef unsigned int INT32U; /*无符号32位整形变量*/ typedef signed int INT32S; /*有符号32位整形变量*/ typedef float FP32; /*单精度浮点数(32位长度)*/ typedef double FP64; /*双精度浮点数(64位长度)*/

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档