第9章 μCOS-II在S3C2410的移植案例分析(μCOS-Ⅱ标准教程 教案).pptVIP

第9章 μCOS-II在S3C2410的移植案例分析(μCOS-Ⅱ标准教程 教案).ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
人民邮电出版社出版 杨宗德编著 μC/OS-II 操作系统标准教程 人民邮电出版社 出版 杨宗德,张兵 编著 2009年3月 第9章 μC/OS-II在S3C2410的移植案例分析 移植的主要工作是什么? 某个操作系统在设计之初都只针对某一种特定的处理器,不可能考虑太多其它类型的处理器,对于当前还没有设计出来的处理器更是如此,然后,人们又期望一个被广泛应用的操作系统能够适合这些新类型的处理器,这就需要对该操作系统的源代码进行修改,主要修改那些与平台相关的代码,这就是移植工作 。 使μC/OS-II能够在正常运行的必要处理: (1)系统启动处理。 (2)安装中断异常。 (3)添加新任务。 (4)任务管理与调度。 (5)如果要管理具体的硬件设备,还需要添加某个设备或端口的驱动程序。 ARM可执行文件存储态结构 运行态代码分布 设置代码存储加载位置 第9章 μC/OS-II在S3C2410的移植案例分析 开始执行,禁止中断 初始化栈空间 复制异常代码与异常向量地址 main()函数代码如下 第9章 μC/OS-II在S3C2410的移植案例分析 S3C2410中断向量 S3C2410中断向量跳转的问题 S3C2410中断处理硬件结构 S3C2410中断处理办法 (1)是否屏蔽该中断。根据是否属于二级中断源,即设置寄存器INTMSK和INTSUBMSK寄存器对应位; (2)设置某类中断为普通中断还是快速中断,即设置中断类型寄存器INTMOD对应位; (3)如果是IRQ中断,设置该中断的优先级。即设置寄存器PRIORITY以决定其优先级。 (4)更重要的是,针对该中断,CPU接收到该硬件请求后,执行怎么样的操作,即执行什么代码。  ISR中断处理过程 (1)中断发生,IRQ管脚向CPU产生中中断请求信号; (2)系统进行必要的数据保护后(将程序位置存储在LR寄存器,存储CPSR寄存器值在SPSR后,设置CPSR寄存器中断屏蔽位,切换到IRQ模式),PC指针跳转到IRQ的中断向量0x0000,0018地址; (3)CPU根据内存0x0000,0018位置的代码执行IRQ_Handler位置的代码(代码前面已经介绍),在IRQ_Handler中进行现场保护,将LR寄存器,SPSR寄存器,R0-R12通用寄存器的数据存入到IRQ栈中,然后执行ISR_IrqHandler()函数(在IRQ_Handler代码中有跳转指令,见上面说明)。 (4)ISR_IrqHandler()函数完成中断源判断(具体是什么中断),执行μC/OS-II操作系统进入中断处理函数OSIntEnter(),执行中断处理函数(在安装中断时已经指定),完成后清除中断,执行μC/OS-II操作系统退出中断函数OSIntExit()。 (5)OSIntExit()函数前面已经介绍,将执行中断级任务调度,具体内容请读者参阅本书第3章内容。 μC/OS-II系统时钟中断任务管理 (1)如果S3C2410处理器允许Timer4工作,其在一定时间到来时产生一个时钟中断信号,如果中断管理单元允许该中断,并果在INTMODE中设置其为IRQ中断,则在S3C2410处理器的IRQ管脚将产生一个硬件中断信号; (2)IRQ中断管理向CPU发送一个IRQ中断请求,系统将自动将当前程序位置存储在LR寄存器中,将CPSR寄存器的值存储在SPSR寄存器中,然后设置CPSR寄存器以允许FIQ中断,关闭其它IRQ中断,然后切换到IRQ模式,完成这些自动操作后PC指针自动跳转到0,地址0储IRQ处理代码位置,因此将存储前面介绍的IRQ_Handler代码; (3)IRQ_Handler先进行现场保护(代码如前所述),将现场数据存储到IRQ栈中,再跳转到具体的中断处理程序IrqHandler函数处; (4)IrqHandler查找具体的中断源,即中断值为14,根据此值,在中断处理结构体数组中根据前面安装的中断处理办法查找到相应的处理机制,执行时钟中断的处理函数,μC/OS-II操作系统的时钟处理函数为OSTimeTick(),见本书第3章说明。 第9章 μC/OS-II在S3C2410的移植案例分析 临界状态问题 OS_CPU_SR_Save()源代码 数据类型问题 添加硬件驱动程序 此部分根据实际情况而定。 习题 (1)根据中断源分类,中断可以分为哪些类? (2)什么是可屏蔽中断,什么是不可屏蔽中断? (3)什么是移植,移植的主要工作是什么?在将μC/OS-II操作系统移植到ARM处理器过程中主要工作有哪些? (4)ARM处理器支持的可执行代码分为哪些部分,为什么需要指定各代码的存储及加载位置,为什

您可能关注的文档

文档评论(0)

好文精选 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档