ucosii在STM32上的移植详解.pdf

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ucosii在STM32上的移植详解.pdf

ucosii在stm32 上的移植详解 虽然目前网上已经有不少关于ucosii 在stm32 上的移植版本,包括micrium 也 有官方移植版本。但这些版本具体是怎么移植出来的,又该怎么基于移植好的ucosii 开发应用软件,网上介绍的并不多。这里介绍一下我的移植经历,希望对大家有所 帮助。 我的移植基本上是从零开始的。首先想要做好移植,有两方面的内容是必须要 了解。1. 目标芯片;2.ucosii 内核原理。 虽然我们移植的目标芯片是stm32,但操作系统的移植基本是针对Cortex-M3 内核(以下简称CM3)而言的,所以我们只需了解CM3 内核就好了。stm32 芯片 就是CM3 内核加上各种各样的外设。 怎么才能了解CM3 呢?看一本书ARM Cortex-M3 权威指南 (宋岩译,网 上多的很)就好了,很多同学可能想,看完这本书移植的新鲜劲都没了,因此我把 该书和移植有关的章节都列了出来,并对其中的重点内容进行介绍,我数了数相关 章节还不到100 页,就这点内容,总要看了吧。 相关章节如下: chapter2 Cortex-M3 概览 2.1 - 2.9 主要了解Cortex-M3 的概貌。刚开始看时不用追求全部理解,后面会有详细介 绍,很多内容多看几遍就明白。其中2.8 指令集,只要了解,CM3 只使用thumb2 就ok 了。 chapter3 Cortex-M3 基础 3.1 寄存器组 R0-R12: 通用寄存器 R13: 堆栈寄存器 有两个,MSP 和PSP,同时只能看见一个 引用R13 时,引用的是正在使用的那个 MSP:可用于异常服务和应用程序 PSP:只能用于应用程序 系统复位后,用的堆栈指针是MSP。 R14: 连接寄存器,又名LR,存储返回地址 R15: 程序计数寄存器,又名PC 3.2 特殊功能寄存器 程序状态字寄存器组(PSRs) 中断屏蔽寄存器组(PRIMASK, FAULTMASK, BASEPRI) 控制寄存器(CONTROL ) 程序状态字寄存器组(PSRs)分为 应用程序 PSR (APSR ) 中断号 PSR (IPSR) 执行 PSR (EPSR) 每个都是32 位,由于这3 个寄存器有效位是错开的,因此可以组合访问。 中断屏蔽寄存器组(PRIMASK, FAULTMASK, BASEPRI),这三个寄存器用于 控制异常的使能和除能。 控制寄存器(CONTROL )它有两个作用: 1.定义特权级别 2.选择当前使用哪个堆栈指针 3.3 操作模式和特权极别 操作模式: 处理者模式和线程模式 异常处理:处理者模式 主程序:线程模式 ucosii 不区分特权级和用户级,程序始终工作在特权级 这两个堆栈指针的切换是全自动的,就在出入异常服务例程时由硬件处理。 3.4 - 3.7 没什么好讲的,需要看。 3.8 复位序列 0MSP 初值 0PC 初值 复位向量 chapter7 异常 7.1 异常类型 分为系统异常(编号1-15)和外部中断(大于15) 7.2 优先级 CM3 支持3 个固定的高优先级和多达256 级的可编程优先级。 在NVIC 中,每个中断都有一个优先级配置寄存器(1 个byte),用来配置该 中断的优先级。但该寄存器并不是每个位都被使用,不同制造商生产的芯片不相同, 譬如stm32 使用4 位,也就是说stm32 支持16 个可编程优先级(参考:chapter9 )。 注意该寄存器是以MSB 对齐的,因此stm32 每个中断的优先级配置寄存器7:4 位有效,3:0 位无效。 对于优先级,CM3 又分为抢占优先级和亚优先级, NVIC 中的应用程序中断及复位控制寄存器(AIRCR)的优先级分组(10:8)描述了 如何划分抢占优先级和亚优先级。 什么意思?以stm32 为例,优先级配置寄存器不是7:4 位有效吗,如果AIRCR 中的优先级分组值为4,则优先级配置寄存器的7:5 位确定抢占优先级,位4 确定 亚优先级。此时所有中断有8 个抢占优先级,每个抢占优先级有2 个亚优先级。 抢占优先级高的中断可以抢占抢占优先级低的中断,即抢占优先级决定了

文档评论(0)

tangtianbao1 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档