收藏 分销(赏)

概要设计基于μcosii系统在s3c2440平台的移植的设计与实现.doc

上传人:快乐****生活 文档编号:2487650 上传时间:2024-05-30 格式:DOC 页数:15 大小:246KB
下载 相关 举报
概要设计基于μcosii系统在s3c2440平台的移植的设计与实现.doc_第1页
第1页 / 共15页
概要设计基于μcosii系统在s3c2440平台的移植的设计与实现.doc_第2页
第2页 / 共15页
点击查看更多>>
资源描述
µuC/OS-Ⅱ在ARM9上的移植(S3C2440) 概要设计 总页数 编制 15 南昌航空大学东软班 概要设计 修 改 履 历 修改编号 日期 修改人 版本号 修改内容 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 1 文档概述 1.1 文档目的和范围 该项目主要完成主要包括μC/OS-II移植到ARM9 S3C2440上,主要实现任务的启动和任务在中断级的调度和任务的上下文切换,还有实现中断处理服务和开关中断。 1.2 术语/缩略语 序号 术语/缩略语 说明 1 任务调度 通过一定的规则实现任务的切换 2 1.3 参考文档 序号 文档名 作者 时间 版本 1 需求分析 付海文 2013-12-11 VER0.1.0 2 阶段文档模板 东软实训中心 2014-4-14 VER0.1.0 2 模块概述 本模块是μC/OS-II移植到ARM9 S3C2440上的最主要的工作,是连接μC/OS-II操作系统内核和处理器的中间桥梁,每个任务的任务控制块(TCB)中都有自己的堆栈空间用来保存任务的上下文,当需要启动该任务时,通过把管理模式下的堆栈指针SP指向任务的堆栈空间,以出栈的方式把任务的上下文导入到处理器的寄存器中,此时处理器程序计数器(PC)指向任务程序入口地址,即实现了任务的启动;当发生任务级的调度时,首先将当前处理器各寄存器压入栈中,然后在当前任务的TCB中保存任务的堆栈指针,最后将最高优先级就绪态任务切换到处理器中运行态;在中断级的任务切换中需要考虑到中断的嵌套和中断的返回。 2.1 模块功能定义 序号 功能点 功能点详细内容 1 多任务启动 用于用户程序开始启动任务,直接运行最高优先级就绪态任务 2 任务级的切换 当前任务被挂起时,通过比较优先级判优进行任务切换 3 中断级的任务切换 当中断处理结束后,在中断非嵌套情况下实现任务的切换 4 中断服务子程序 当中断发生,保存CPU现场,调用中断处理程序,中断返回 5 关中断 将处理器程序状态寄存器设置为关中断状态,禁止中断发生 6 开中断 将处理器程序状态寄存器设置为开中断状态,使能中断 7 时钟中断处理 发生时钟中断,调用内核时钟节拍处理函数 8 任务堆栈初始化 每个任务都有一个任务堆栈,该堆栈用来保存任务的上下文。 2.2 模块结构 图 1 模块间接口 模块名称 模块类型 概要说明 OSTaskStkInit 接口 任务堆栈初始化 OSStartHighRdy 接口 最高优先级任务启动 OSTaskSwHook 接口 用户自定义函数 OSCtxSw 接口 任务级任务切换 OSIntCtxSw 接口 中断级任务切换 OSTickISR 接口 时钟中断处理 OSCPUSaveSR 接口 关中断 OSCPURestoreSR 接口 开中断 OS_CPU_IRQ_ISR 接口 中断服务程序 2.3 模块动作时序 系统时钟产生中断后,CPU转去处理时钟中断如下图 图2 cpu时钟中断处理的过程 3 接口说明 3.1 数据结构定义 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位长度)*/ typedef INT32U OS_STK; /*堆栈是32位宽度 */ typedef INT32U OS_CPU_SR; /*CPU state register*/ #define OS_CRITICAL_METHOD 3 #define OS_ENTER_CRITICAL() (cpu_sr = OSCPUSaveSR()) /*Disable interrupts*/ #define OS_EXIT_CRITICAL() (OSCPURestoreSR(cpu_sr)) /*Enable interrupts*/ #define OS_STK_GROWTH 1 /*Stack grows from High to Low On ARM*/函数 #define OS_TASK_SW() OSCtxSw() 3.1.1 模块间接口函数 3.1.1.1 OSTaskStkInit 函数名 OSTaskStkInit 文件名 ../OS_CPU_c.c 功能概要 定义数据类型 记述形式 OS_STK *OSTaskStkInit(void(*task)(void *pd),void *p_arg,OS_STK *ptos,INT16U opt) 参数 类型 变量名 I/O 说明 void(*)(void *) task,pd - 函数入口地址 返回值 类型 OS_STK 说明 值 堆栈栈顶指针 正常结束 - - 详细说明 任务堆栈初始化函数 使用注意事项 无 3.1.1.2 OSTaskSwHook 函数名 OSTaskSwHook 文件名 ../OS_CPU_c.c 功能概要 用户自定以钩子函数 记述形式 void OSTaskSwHook (void) 参数 类型 变量名 I/O 说明 void - - - 返回值 类型 - 说明 值 - - - - 详细说明 用户可以自己更改钩子函数 使用注意事项 如果更改此函数时不要在该函数里延时太长 3.1.1.3 OSStartHighRdy 函数名 OSStartHighRdy 文件名 ../OS_CPU_a.s 功能概要 启动最高优先级就绪态任务 记述形式 OSStartHighRdy 参数 类型 变量名 I/O 说明 - - - - 返回值 类型 - 说明 值 - - - - 详细说明 此函数为汇编函数,在任务第一次启动时被调用 使用注意事项 不需要保存任务堆栈 3.1.1.4 OSCtxSw 函数名 OSCtxSw 文件名 ../OS_CPU_a.s 功能概要 任务级任务切换 记述形式 OSCtxSw 参数 类型 变量名 I/O 说明 - - - - 返回值 类型 - 说明 值 - - - - 详细说明 当任务被挂起时,通过优先级判优选择后,会调用此汇编函数执行任务调度 使用注意事项 首先保存当前任务的堆栈,然后在切换到最高优先级就绪态任务 3.1.1.5 OSIntCtxSw 函数名 OSIntCtxSw 文件名 ../OS_CPU_a.s 功能概要 中断级任务调度 记述形式 OSIntCtxSw 参数 类型 变量名 I/O 说明 - - - - 返回值 类型 - 说明 值 - - - - 详细说明 当前中断退出后,若在非中断嵌套情况下,会调用该函数执行任务调度 使用注意事项 无需保存CPU现场,直接切换到最高优先级就绪任务 3.1.1.6 OSTickISR 函数名 OSTickISR 文件名 ../OS_CPU_a.s 功能概要 时钟中断服务 记述形式 OSTickISR 参数 类型 变量名 I/O 说明 - - - - 返回值 类型 - 说明 值 - - - - 详细说明 当发生定时器中断时,此函数被中断服务子程序调用执行时钟中断服务 使用注意事项 在清除INTPND时必须通过写INTPND实现 3.1.1.7 OS_CPU_IRQ_ISR 函数名 OS_CPU_IRQ_ISR 文件名 ../OS_CPU_a.s 功能概要 发生IRQ,提供中断服务 记述形式 OS_CPU_IRQ_ISR 参数 类型 变量名 I/O 说明 - - - - 返回值 类型 - 说明 值 - - - - 详细说明 该函数被安装在启动代码中,作为HanlerIRQ的处理程序 使用注意事项 中断向量的大范围跳转需要使用DCD 3.1.1.8 OSCPUSaveSR 函数名 OSCPUSaveSR 文件名 ../OS_CPU_a.s 功能概要 关中断 记述形式 OSCPUSaveSR 参数 类型 变量名 I/O 说明 - - - - 返回值 类型 INT32U 说明 值 cpu_sr 保存当前程序状态寄存器CPSR的控制位,在此使用R0,来保存该值 - - 详细说明 OS_ENTER_CRITICAL()被宏定义为OSCPUSaveSR,实现临界段保护 使用注意事项 通用寄存器R0被用来保存CPSR的值 3.1.1.9 OSCPURestoreSR 函数名 OSCPURestoreSR 文件名 ../OS_CPU_a.s 功能概要 开中断 记述形式 OSCPURestoreSR 参数 类型 变量名 I/O 说明 INT32U cpu_sr - 恢复当前程序状态寄存器CPSR的控制位,在此用R0来保存cpu_sr 返回值 类型 - 说明 值 - - - - 详细说明 OS_EXIT_CRITICAL()被宏定义为OSCPURestoreSR,实现临界段打开 使用注意事项 寄存器R0保存的值用来恢复CPSR的值 目 录 第1章 总 论 3 1.1. 项目背景与概况 3 1.2. 主要技术经济指标 7 1.3. 问题与建议 8 第2章 项目投资环境与市场研究 9 2.1. 投资环境分析 9 2.2. 区域房地产市场分析 11 2.3. 销售预测 15 2.4. 营销策略 19 第3章 建设规模与项目开发条件 21 3.1. 建设规模 21 3.2. 项目概况现状 21 3.3. 项目建设条件 22 第4章 建筑方案 26 4.1. 设计依据 26 4.2. 项目设计主题和开发理念 26 4.3. 项目总体规划方案 27 4.4. 建筑设计 28 4.5. 结构设计 29 4.6. 给排水设计 30 第5章 节能节水措施 32 5.1. 设计依据 32 5.2. 建筑部分节能设计 32 第6章 环境影响评价 33 6.1. 编制依据 33 6.2. 环境现状 33 6.3. 项目建设对环境的影响 34 6.4. 环境保护措施 34 第7章 劳动卫生与消防 35 7.1. 指导思想 35 7.2. 职业安全卫生健康对策与措施 35 7.3. 消防设计 36 第8章 组织机构与人力资源配置 38 8.1. 组织机构 38 8.2. 人力资源配置 38 第9章 项目实施进度 39 9.1. 项目开发期 39 9.2. 项目实施进度安排 39 9.3. 项目实施过程控制措施 39 第10章 项目招投标 41 10.1. 工程项目招标投标概述 41 10.2. 工程项目招标投标因素分析 42 10.3. 招标依据 44 10.4. 招标范围 44 10.5. 招标方式 44 第11章 投资估算与资金筹措 45 11.1. 投资估算 45 11.2. 资金筹措 45 第12章 财务评价 47 12.1. 项目评估依据 47 12.2. 财务评价基础数据的选择 47 12.3. 财务评价 47 12.4. 不确定性分析 48 第13章 社会评价 49 13.1. 项目对社会的影响分析 49 13.2. 风险分析 50 13.3. 社会评价结论 51 第14章 研究结论与建议 52 14.1. 可行性研究结论 52 14.2. 建议 52
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 研究报告 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服