登录
首页 » Others » μC/OS-II操作系统在STM32上的移植

μC/OS-II操作系统在STM32上的移植

于 2020-12-07 发布
0 366
下载积分: 1 下载次数: 1

代码说明:

详细介绍μC/OS-II操作系统在STM32上的移植过程,引导初学者完成基本的操作系统架构的创建。建立工程使用(我使用版)在目录下建立工程,工程名为。选一个系列的芯片,哪一个都无所谓(我选的是因为我的板子就是用这个芯片),接下来要注意的是当弹出是否拷贝启动代码到工程文件夹时要选,因为标准外设厍里已经有启动代码了。将里的顶层日录名改为,并将第一个名改为把日录下所有和文件加载到工程里的在下建立一个目录用来放置系统初始化代码。把拷贝到文件夹拷贝到文件夹中。是中断服务程序文件。是标准外设库的配置文件,对于工程中不需要的外设,可以注释掉里面的包含的头文件。这里我建议先仅留下,用到什么再打开什么,这样编译起来快一点,当然也可都留着。使用标准外设库事实上标准外设库的使用在中的节中已有说明,下面我把其中的步骤罗列一下根据所选芯片,把中的启动代码加到工程中,这一步在上面凵经做过了。在的行,根据所选芯片类型,去掉相应注释,这里我去掉行的注释(大谷量型片)去掉行的注释,启用标准外设库。在的行,根据所选芯片主频,去掉相应注释,默认注释已去掉,如果你的芯片主频是,就不用做修改了,这里我的芯片是注释去掉注释跑马灯程序现在可以使用标准外设库了,下面以一个简单的跑马灯程序说明。在日录下建立作为系统入口在下建立一个日录用来放置板级支持代码,建立代码如下:在中建立组,并将各种代码加入。在工程的选项卡的中添加选项卡中选选项卡中选选项卡选打钩,这一步大家可以根据自己手上的仿真器做不同选择。编译运行。在上的移植详解虽然目前网上凵经有不少关于在上的移植版本,包括也有官方移植版本。但这些版本具体是怎么移植出来的,又该怎么基于移植好的开发应用软件,网上介绍的并不多。这里介绍一下我的移植经历,希望对大家有所帮助。我的移植基本上是从零开始的。首先想要做好移植,有两方面的內容是必须要了解。日标芯片内核原理虽然我们移植的目标芯片是,但操作系统的移植基木是针对内核(以下简称)而言的,所以我们只需了解内核就好了。片就是内核加上各种各样的外设。怎么才能了解呢?看一本书权威指南(宋岩译,网上多的很)就好了,很多同学可能想,看完这本书移植的新鲜劲都没了,因此我把该书和移植有关的章节都刎了出来,并对其中的重点内容进行介绍,我数了数相关章节还不到页,就这点内容,总要看了吧。相关章节如下概览主要了解的概貌。刚开始看时不用追求仝部理解,后面会有详细介绍,很多内容多看几遍就明白。其中指令集,只要了解,只使用就了基础寄存器组通用寄存器堆栈寄存器有两个,和同时只能看见一个引用时,引用的是正在使用的那个可用于异常服务和应用程序只能用于应用程序系统复位后,用的堆栈指针是连接寄存器,又名,存储返冋地址程序计数寄存器,又名特殊功能寄存器程序状态字寄存器组(中断屏蔽寄存器组(控制寄存器(程序状态字寄存器组()分为应用程序中断号执行每个都是位,由于这个寄存器有效位是错开的,因此可以组合访问。中断屏蔽寄存器组(),这三个寄存器用于控制异常的使能和除能。控制寄存器()它有两个作用:定义特权级别选择当前使用哪个堆栈指针操作模式和特权极别操作模式处理者模式和线程模式异常处理:处理者模式主程序:线程模式不区分特权级和用户级,程序始终工作在特权级这两个堆栈指针的切换是全自动的,就在出入异常服务例程时由硬件处理。没什么好讲的,需要看。复位序列初值初值复位向量异常异常类型分为系统异常编号和外部中断大于优先级支持个固定的高优先级和多达级的可编程优先级。在中,每个中断都有一个优先级配置寄存器(个,用来配置该中断的优先级。但该寄冇器并不是每个位都被使用,不同制造商生产的芯片不相同,譬如使用位,也就是说支持个可编程优先级(参考注意该寄存器是以对齐的,因此每个中断的优先级配置寄存器位有效,位无效。对于优先级,又分为抢占优先级和亚优先级,中的应用程序中断及复位掉制寄存器的优先级分组描述了如何划分抢占优先级和亚优先级什么意思?以为例,优先级配置寄存器不是位有效吗,如果中的优先级分组值为,则优先级配置寄冇器的位确定抢占优先级,位确定亚优先级。此时所有中断有个抢占优先级,每个抢占优先级有个亚优先级。抢占优先级高的中断可以抢占抢占优先级低的中断,即抢占优先级决定了中断是否可以嵌套相同抢占优先级的中断不能嵌套,但当抢占优宄级相同的异常有不止一个到来时,就优先响应亚优先级最高的异常。参考附求表表中断优先级寄存器阵列共系统异常优先级寄冇器共个优先级相同,看中断号,中断号小的优先。向量表初始在处,可以通过向量表偏移量寄存器(地址:)更改,般无需更收。中断输入及挂起行为需要看。异常可不看和主要用在分特权级和用户级的操作系统,不区分特权级和用户级可以不管这个东西。这里说点题外话,一开始我很奇怪为什么会提供这种中断,因为这种中断一般都是用在大型的操作系统上,如系统上,可又不提供,应该是无法移植系统。后来我才知道是针对没有的嵌入式系统而设计的不过还是很怀疑有人会在像这种芯片上用中断主要做上下文切换,也就是任务切换,是移植过程中最重要的中断。主要有两点中断是手工往的悬起寄存器中写产生的(由写)中断优先级必须设为最低在讲移植代码时会介绍具体是如何做的。对于的部分应认真研读一下。与中断控制负责芯片的中断管理,它和内核紧密相关。如果对于中断配置不是很了解,可以看看节讲述了定时器,需要看。中断的具体行为中断/异常的响应序列当开始响应一个中断时以及入栈取向量选择堆栈指针,更新堆栈指针,更新连接寄存器,更新程序计数器对移植米说,需要注意异常返同在中,进入中断时,寄存器的值会被自动更新。节对史新后的值进行说明。这里统称。返回时通过把往里写来识别返回动作的。因为是一个特殊值,所以对于,汇编语言就不需要类似这种指令,而用语言开发时,不需要特殊编译器命令指示个函数为中断服务程序。实际上,中断服务程序如果是代码编写,汇编成汇编代码,函数结尾一般是嵌套的中断只要注意:中断嵌套不能过深即可。和这两节说明对中断的响应能力大大提高了,主要是硬件机制的改进。但对移植来说,并不需要关注异常返回值对不同状态进入中断时,寄存器的值进行说明,需要看。这里有一点需要注意,该点在讲移植代码时再介绍利对移植来说,并不需要关注。的低层编程这·章仅需关注节,因为对移植来说汇编与的接口是必须面对的。汇编与的接口有两点需要知道当主调函数需要传递参数(实参)时,它们使用。其中传递第一个,传递第个在返冋时,把返冋值写到中在函数中,用汇编写代码时,可以随便使用,而使用则必须先以上内容和移植多少都有些关系,刚开始看,可能不太明白,多看几遍就好了。

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • MATLAB实践GUI成绩管理系统
    文件包含matlab的源代码m文件,gui文件,文本说明,都很详细,适合本科课程设计,需要的可以下载。
    2020-12-11下载
    积分:1
  • abaqus切削实例
    abaqus切削实例,感觉不错,别人做的,拿出来分享
    2020-12-09下载
    积分:1
  • Geomagic Control X 2017基础教程
    3D数据检测软件教学教程,可以帮助使用人员更加快速掌握软件使用基础教程本教程的目的是让你基础的了解在 Geomagic Control X的检查过程.通过程序的教程,你将学会Geomagic Control X的基本使用方法基本的检查过程在本次课程中,你将学到如何导入参考和测试数据并把它们对齐到一起.在检査数据的3D比较和添加比较点之后你将学会如何输出结果报告127GNi. 43503H22.32244614的Pe,料动什dP长359,系1阳A17atinsti检查GD&T在本次课程中,你将学会如何在模型上测量2D和3DGD&T(几何尺寸和公差PMI界面在本次课程中,你将学会如何通过使用PM面向导,导入其他CAD程序已定义PM的参考数据.并检查参考和测试数据之间的偏差.系统检查过程在本次课程中,你将学会如何打开一个含有GD&T测量的 Geomagic Control x项目文件除了现有的测量,你还将检查轮廓偏差,2DGD&T,和2D比较.伞2叫钣金检查过程在本次课程中,你将学会如何检査钣金数据.你将使用RPS对齐方法来对齐数据.多个2D比较命令将用来检查参考和测试数据0≠2aRLES0使用面片数据作为基准数据在本次课程中,你将学会如何使用面片对象作为参考数据,并在检査3DGD&T和面片对象的偏差Gd Dist0:1556D4t:0.141Gaa Dist=0.09b2Gs02590.1237Gap Distt Gap Dist,0:15034第一章.基本的检查过程概要本次练习包括什么?步骤介绍结果导入参考和测试数据使用初始对齐命令对齐数据2使用初始对齐工具对齐参考和测试数据添加3D比较特征3使用3D比较工具分析模型的整体偏差.添加2D比较特征4Ltr使用2D比较工具分析模型的断面偏差.添加比较点理三5分析模型上特定位置的偏差.日但生成报告6将分析结果生成报告■步骤1:导入参考和测试数据在步骤1中,将导入参考数据和测试数据并利用数据创建一个检测项目导入参考数据在模型管理器中选择其中一个结果数据标签把它设置成激活标签.2.在初始选项卡中,导入组下,点击导入或者选择菜单>文件>导入3.从下面的路径浏览这个文件 Reference Data. CXProj然后点击仅导入/Sample/Basic/Basic Inspection Process「导入文件4.一个CAD对象将在模型视图中显示并自动设置成参考数据.二、导入测试数据.在初始选项卡中,导入组下,点击导入或者选择菜单>文件>导入2.从下面的路径浏览这个文件 Measured Data. CXProj然后点击仅导入/Sample/ Basic/Basic Inspection Process「导入文件3.一个面片对象将在模型视图中显示并自动设置成测试数据.步骤2:使用初始对齐命令对齐数据在步骤2中,初始对齐工具将用于对齐测试数据和参考数据初始对齐工具可以智能的把测试数据移动到参考数据合适的位置上初始对齐1.在初始选项卡中对齐组下,点击初始对齐,或者选择菜单>插入>对齐>初始对齐侣亮显命令运行命令注释:此工具也可以从上下文菜单中访问.在模型视图中任意位置点击右键然后在上下文菜单中点击对齐工具.查看"上下文菜单"在 Geomagic Contro/X的帮助说明来获取更多信息d Frit Annotation styleselection modeL: All-FacesShift+AnItt: NSE nverseshiit-2.取消选择利用特征识别提高对齐精度选项.7 Initial Alignment√xEnhance Alignment Accuracy with Feature recognition注释:如果勾选利用特征识别提高对齐精度选项,程序将分析和比较参考和测试数据之间的特征形状然后移动测试数据到两个数据间的最小偏差处3.点击OKM4.检查测试数据是否已经对齐到参考数据上步骤3:添加3D比较特征在步骤3中,3D比较工具将用于计算和显示参考和测试数据之问的整体偏差、添加3D比较1.在初始选项卡中,比较组下,点击3D比较,或者选择菜单>插入>比较>3D比较亮显命令运行命令2.第一步,选择类型选项作为方法并选择贔短选项作为投影方冋.这种方法计算参考数据和测量数据之间的最小距离3 D Compare+√x7 Calculation OptionSampling Ratio% 7MethodO ShapeTHicknessProjection DirectionShortestO Along NormalCustomMax Deviation Auto ob More Options3.点击下一阶段进入下一步.测量数据将自动隐藏因此你可以清楚的看见色图注释:如果需要可以在模型管理器中点击参考数据后面的眼睛图标◎,使测量数据可见Model ManagerInsul bald回 Reference(o Feference DataReferenc是Eata电 Constructed GeometryMeasuredMeasured dataMeasured cata电 Cor structed Geometryv 99 AliyrinmenIlsa Initial AlignmentE Pairing Map3D Compare争3DGD&5f Cross Sectioned Probe Sequence回 Custom vievA Measurement4.检査预览.蓝色的区域表示测量数据在参考数据的下面或者后面,黄色到红色表示测量数据在参考数据的上面5.使用偏差标签下面的选择选项并在体上面选择若干点来査看特定位置的偏差值.每个点位置和偏差的注释将会显示Reference Pos. Measured PosGen vec.Check00008s000217024216829一0,18130113Reference Pos, Measured Pos, Gap vec:Cheel170,00o00000a85,00014.02301428210.24910,916.点击OK√完成命令二、隐藏3D比较在模型管理器中分析下点击3D比较后面的眼睛图标◎,使3D比较的结果在模型视图中不可见.步骤4:添加2D比较特征在步骤4中,2D比较工具将用于计算和显示参考和测试数据之间的断面偏差.你可以在模型上剪切一个平面断面来添加2D比较特征并测量参考和测试数据在断面上的缝隙一、添加2D比较1.在初始选项卡中,比较组下,点击2D比较或者选择菜单>插入>比较>2D比较亮显命令运行命令2.在第一阶段中,你将定义截面平面的位置和计算方法.选择偏移方法并选择一个平面作为基准平面PLane3.点击反转方向来反转切断面的方向4.在偏移距离的输入框中输入3mm来设置所选面的偏移距离.2 D Compare Q→√xv Set section planeO OffsetO RotationO Along CurveBase planeFace 4OffsetDistance[3m⑧D Multiple Cutting Planev Calculation OptionProjection DirectionShortest
    2020-11-28下载
    积分:1
  • 可编程CIC内插滤波器
    CIC内插滤波器的verilog程序,可以改变内插的倍数。
    2020-12-09下载
    积分:1
  • 小蔡转换工具 by zj1244
    小蔡转换工具 by zj1244可以转换为URL格式,SQL_En、HEX、ASC、MD5_32 、MD5_16Base64、等格式,非常实用,是黑客入侵,网站手工注入之必备工具
    2020-12-12下载
    积分:1
  • 现代通信系统(matlab版)第二版以及所有M文件源代码全部验证过了
    现代通信系统 (matlab版)第二版 以及所有M文件 源代码 全部验证过了都能用。
    2020-12-09下载
    积分:1
  • TortoiseGit-2.6.0.0-64位附加汉化包下载
    TortoiseGit 简称 tgit, 中文名海龟Git. 海龟Git只支持神器 Windows 系统, 有一个前辈海龟SVN, TortoiseSVN和TortoiseGit都是非常优秀的开源的版本库客户端.。分为32位版与64位版.并且支持各种语言,包括简体中文(Chinese, simplified; zh_CN)。
    2020-12-07下载
    积分:1
  • 混合整数非线性规划
    混合整数非线性规划matlab代码,需要者请下吧~
    2020-11-28下载
    积分:1
  • 基于MATLAB的车牌识别系统研究(课设参考文献)
    以一幅汽车牌照的识别为例,具体介绍了车牌自动识别的原理。整个处理过程分为预处理、边缘提取、车牌定位、字符分割、字符识别五大模块,用MATLAB软件编程来实现每一个部分,最后识别出汽车牌照。在研究的同时对其中出现的问题进行了具体分析,处理。寻找出对于具体的汽车牌照识别过程的最好的方法。
    2020-12-02下载
    积分:1
  • 基于数字图像处理技术的光学元件表面缺陷检测与分析
    本课题开发了基于数字图像处理的光学元件表面缺陷检测系统,系统对于表面缺陷检测较之于目测法的可以实现精确,快速,可靠,以及数字化处理。 介绍了国内外精密光学元件表面缺陷的各种评价标准与级数设定,并介绍了表面缺陷的一些常用的检测方法。主要研究内容是开发一种应用于光学元件表面缺陷图像检测系统。硬件系统设计中的三维电控平移台及服务器处理系统用于控制图像的采集。
    2021-05-07下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载