μC/OS-II操作系统在STM32上的移植
详细介绍μC/OS-II操作系统在STM32上的移植过程,引导初学者完成基本的操作系统架构的创建。建立工程使用(我使用版)在目录下建立工程,工程名为。选一个系列的芯片,哪一个都无所谓(我选的是因为我的板子就是用这个芯片),接下来要注意的是当弹出是否拷贝启动代码到工程文件夹时要选,因为标准外设厍里已经有启动代码了。将里的顶层日录名改为,并将第一个名改为把日录下所有和文件加载到工程里的在下建立一个目录用来放置系统初始化代码。把拷贝到文件夹拷贝到文件夹中。是中断服务程序文件。是标准外设库的配置文件,对于工程中不需要的外设,可以注释掉里面的包含的头文件。这里我建议先仅留下,用到什么再打开什么,这样编译起来快一点,当然也可都留着。使用标准外设库事实上标准外设库的使用在中的节中已有说明,下面我把其中的步骤罗列一下根据所选芯片,把中的启动代码加到工程中,这一步在上面凵经做过了。在的行,根据所选芯片类型,去掉相应注释,这里我去掉行的注释(大谷量型片)去掉行的注释,启用标准外设库。在的行,根据所选芯片主频,去掉相应注释,默认注释已去掉,如果你的芯片主频是,就不用做修改了,这里我的芯片是注释去掉注释跑马灯程序现在可以使用标准外设库了,下面以一个简单的跑马灯程序说明。在日录下建立作为系统入口在下建立一个日录用来放置板级支持代码,建立代码如下:在中建立组,并将各种代码加入。在工程的选项卡的中添加选项卡中选选项卡中选选项卡选打钩,这一步大家可以根据自己手上的仿真器做不同选择。编译运行。在上的移植详解虽然目前网上凵经有不少关于在上的移植版本,包括也有官方移植版本。但这些版本具体是怎么移植出来的,又该怎么基于移植好的开发应用软件,网上介绍的并不多。这里介绍一下我的移植经历,希望对大家有所帮助。我的移植基本上是从零开始的。首先想要做好移植,有两方面的內容是必须要了解。日标芯片内核原理虽然我们移植的目标芯片是,但操作系统的移植基木是针对内核(以下简称)而言的,所以我们只需了解内核就好了。片就是内核加上各种各样的外设。怎么才能了解呢?看一本书权威指南(宋岩译,网上多的很)就好了,很多同学可能想,看完这本书移植的新鲜劲都没了,因此我把该书和移植有关的章节都刎了出来,并对其中的重点内容进行介绍,我数了数相关章节还不到页,就这点内容,总要看了吧。相关章节如下概览主要了解的概貌。刚开始看时不用追求仝部理解,后面会有详细介绍,很多内容多看几遍就明白。其中指令集,只要了解,只使用就了基础寄存器组通用寄存器堆栈寄存器有两个,和同时只能看见一个引用时,引用的是正在使用的那个可用于异常服务和应用程序只能用于应用程序系统复位后,用的堆栈指针是连接寄存器,又名,存储返冋地址程序计数寄存器,又名特殊功能寄存器程序状态字寄存器组(中断屏蔽寄存器组(控制寄存器(程序状态字寄存器组()分为应用程序中断号执行每个都是位,由于这个寄存器有效位是错开的,因此可以组合访问。中断屏蔽寄存器组(),这三个寄存器用于控制异常的使能和除能。控制寄存器()它有两个作用:定义特权级别选择当前使用哪个堆栈指针操作模式和特权极别操作模式处理者模式和线程模式异常处理:处理者模式主程序:线程模式不区分特权级和用户级,程序始终工作在特权级这两个堆栈指针的切换是全自动的,就在出入异常服务例程时由硬件处理。没什么好讲的,需要看。复位序列初值初值复位向量异常异常类型分为系统异常编号和外部中断大于优先级支持个固定的高优先级和多达级的可编程优先级。在中,每个中断都有一个优先级配置寄存器(个,用来配置该中断的优先级。但该寄冇器并不是每个位都被使用,不同制造商生产的芯片不相同,譬如使用位,也就是说支持个可编程优先级(参考注意该寄存器是以对齐的,因此每个中断的优先级配置寄存器位有效,位无效。对于优先级,又分为抢占优先级和亚优先级,中的应用程序中断及复位掉制寄存器的优先级分组描述了如何划分抢占优先级和亚优先级什么意思?以为例,优先级配置寄存器不是位有效吗,如果中的优先级分组值为,则优先级配置寄冇器的位确定抢占优先级,位确定亚优先级。此时所有中断有个抢占优先级,每个抢占优先级有个亚优先级。抢占优先级高的中断可以抢占抢占优先级低的中断,即抢占优先级决定了中断是否可以嵌套相同抢占优先级的中断不能嵌套,但当抢占优宄级相同的异常有不止一个到来时,就优先响应亚优先级最高的异常。参考附求表表中断优先级寄存器阵列共系统异常优先级寄冇器共个优先级相同,看中断号,中断号小的优先。向量表初始在处,可以通过向量表偏移量寄存器(地址:)更改,般无需更收。中断输入及挂起行为需要看。异常可不看和主要用在分特权级和用户级的操作系统,不区分特权级和用户级可以不管这个东西。这里说点题外话,一开始我很奇怪为什么会提供这种中断,因为这种中断一般都是用在大型的操作系统上,如系统上,可又不提供,应该是无法移植系统。后来我才知道是针对没有的嵌入式系统而设计的不过还是很怀疑有人会在像这种芯片上用中断主要做上下文切换,也就是任务切换,是移植过程中最重要的中断。主要有两点中断是手工往的悬起寄存器中写产生的(由写)中断优先级必须设为最低在讲移植代码时会介绍具体是如何做的。对于的部分应认真研读一下。与中断控制负责芯片的中断管理,它和内核紧密相关。如果对于中断配置不是很了解,可以看看节讲述了定时器,需要看。中断的具体行为中断/异常的响应序列当开始响应一个中断时以及入栈取向量选择堆栈指针,更新堆栈指针,更新连接寄存器,更新程序计数器对移植米说,需要注意异常返同在中,进入中断时,寄存器的值会被自动更新。节对史新后的值进行说明。这里统称。返回时通过把往里写来识别返回动作的。因为是一个特殊值,所以对于,汇编语言就不需要类似这种指令,而用语言开发时,不需要特殊编译器命令指示个函数为中断服务程序。实际上,中断服务程序如果是代码编写,汇编成汇编代码,函数结尾一般是嵌套的中断只要注意:中断嵌套不能过深即可。和这两节说明对中断的响应能力大大提高了,主要是硬件机制的改进。但对移植来说,并不需要关注异常返回值对不同状态进入中断时,寄存器的值进行说明,需要看。这里有一点需要注意,该点在讲移植代码时再介绍利对移植来说,并不需要关注。的低层编程这·章仅需关注节,因为对移植来说汇编与的接口是必须面对的。汇编与的接口有两点需要知道当主调函数需要传递参数(实参)时,它们使用。其中传递第一个,传递第个在返冋时,把返冋值写到中在函数中,用汇编写代码时,可以随便使用,而使用则必须先以上内容和移植多少都有些关系,刚开始看,可能不太明白,多看几遍就好了。
- 2020-12-07下载
- 积分:1
Hi3559A HiMPP V4.0 媒体处理软件开发参考
海思提供的媒体处理软件平台(Media Process Platform,简称MPP),可支持应用软件快速开发。该平台对应用软件屏蔽了芯片相关的复杂的底层处理,并对应用软件直接提供MPI(MPP Program Interface)接口完成相应功能。该平台支持应用软件快速开发以下功能:输入视频捕获、H.265/H.264/JPEG 编码、H.265/H.264/JPEG 解码、视频输出显示、视频图像前处理(包括去噪、增强、锐化)、图像拼接、图像几何矫正、智能、音频捕获及输出、音频编解码等功能。HiMPP V4.0媒体处理软件开发参考目录目录前言……海思专有和保密信息文档版本00B08(2018-01-10)版权所有◎深圳市海思半导体有限公司HiMPP V4.0媒体处理软件开发参考前言前言概述本文为使用IMP媒体处理芯片进行开发的程序员而写,目的是供您在开发过程中查阅媒体处理软件开发包的冬和参考信息,包括APⅠ、头文件、错误码等。本文档描述 HIMPP媒体处理软件的各个API的使用方法,以及相关的数据结构和错误码」说明未有特殊说明,Hi359V100与Hi3559AV100内容一致。产品版本与本文档相对应的产品版本如下。产品名称产品版本操作系统Hi3559AV100ESLinux/huawei lilesHi3559AV100Linux/huawei litesHi35590V100Linux/huawei LitcOs读者对象本文档主要适用于以下工程师技术支持工程师软件开发工程师海思专有和保密信息文档版本00B08(2018-01-10)版权所有◎深圳市海思半导体有限公司HiMPP V4.0媒体处理软件开发参考前言约定符号约定在本文中可能出现下列标志,它们所代表的含义如下。符号说明表小有高度潜在危险,如果不能避免,会导致人员死亡或危险严重伤害表示有中度或低度潜在危险,如果不能避免,可能导致人警告员轻微或中等伤害。△表示有潜在风险,如果忽视这些文本,可能导致设备损坏、注意数据丢失、设备性能降低或不可预知的结果。@窍门表示能帮助您解决某个问题或节省您的时间。口说明表示是正文的附加信息,是对正文的强调和补充。通用格式约定格式说明宋体正文采用宋体表示黑体级、二级、三级标题采用黑体楷体警告、提小等内容一律用楷体,并且在内容前后増加线条与正文隔离。Termina1 Display”格式|“ Termina1 Display”格式表示屏幕输出信息。此外,屏幕输出信息中夹杂的用户从终端输入的信息采用加粗字体表示用双引号衣示文件路径。如“C: Program Files Huawei”。命令行格式约定格式意义粗体命令行关键字(命令中保持不变、必须照输的部分)采用加粗字体表示。海思专有和保密信息文档版本00B08(2018-01-10)版权所有◎深圳市海思半导体有限公司HiMPP V4.0媒体处理软件开发参考前言格式意义斜体命令行参数(命令中必须由实际值进行替代的部分)采用斜体表示表小用“[]”括起来的部分在命令配置时是可选的。XY衣示从两个或多个选项中选取…个[x|y|….表示从两个或多个选项中选取一个或者不选。x|y|….}*表示从两个或多个选项中选取多个,最少选取一个,最多选取所有选项。[x|y|…]衣示从两个或多个选项中选取多个或者不选修订记录修订记录累积了每次文档更新的说明。最新版本的文档包含以前所有文档版本的更新内谷。修订日期版本修订说明201801-1000B08第8次临时版本发布第2章系统控制23小节, HI MPI SYS MmapCache【注意】涉及修改;朋除HI MPI SYS Sctrcg和 HI MPI SYS〔 trEg’新增HI MPI SYS SetTuningConnect FH HI MPI SYS GetTuningConnect2.6.2和264涉及修改第3章视频输入33小节,图3-2和图3-4涉及修改,新增表3-334小节,新增 HI MPI VI SetDevAttrEx HI MPI VI TriggerFlash;HI MPIⅤ I SetPipe Crop、 HI MPI VI GetPipecrop、HI MPI VI Query Pipe Status, HI MPI VI EnablPipelnterruptHI MPI VI DisablPipelnterrupt / FW HI MPI VI QueryChnStatus删除 HI MPI VI GetDevFd35小节,删除 VI PIPE MAX WIDTH和Ⅴ I CHN MAX WIDTH;新增VI DEV ATTR EX S、 VI PIPE STATUS S、 VI FLASH MODE SVI FLASH ATTR S和 VI CHN STATUS S;Ⅴ I PIPE ATTR S和Ⅵ I CHN ATTR S【成员】涉及修改第4章视频输出4.1和42小节涉及修改4.3小节,新增HMPIⅴ o SetmodParam和 HI MPI VO GetModParam432小节, HI MPI VO Set VideoLayerPartitionMode和海思专有和保密信息文档版本00B08(2018-01-10)版权所有◎深圳市海思半导体有限公司HiMPP V4.0媒体处理软件开发参考前言修订日期版本修订说明HI MPI VO Get VideolaverPartition Mode涉及修改44小节, VO MAX CHN NUM【定义】和【芯片差异】涉及修改VO VIDEO LAYER ATTR S【差异说明】涉及修改;新增VO MOD PARAM S第5章视频处理子系统523小节涉及修改5.3小节,新增 HI MPI VPSS Sct GrpNRXParam和HI MPI VPSS GetGrpNRXParam54小节, VPSS MAX IMAGE WIDTHVPSS EXTCHN MAX IMAGE WIDTH、 VPSS GRP ATTR S、VPSS CHN ATTR S和 VPSS EXT CHN ATTR S涉及修改新增Ⅴ PSS GRP NRX PARAM S、 VPSS IP NUM和VPSS MODULE PARAMS S第6章视频编码623和6216涉及修改63小节,新增 HI MPI VENC Attach vbpool和 HI MPI VENC Detach VbPool64小节, VENC CHN STATUS S和Ⅴ ENC MOD H265ES涉及修改;新增VENCⅠ NTRA REFRESH MODE E和 VENC PARAM MOD RC S第7章视频解码7.2小节涉及修改73小节,新增 HI MPi VDEC Setchnattr74小节, VDEC CHN ATTR S、 VDEC ATTR VIDEO S涉及修改第8章区域管理8.3小节,新增 HI MPI RGn BatchBegin和 HI MPI RGn BatchEnd;删除HI MPI RGN Set Attach Field FH HI MPI RGN Get AttachField84小节涉及修改第9章音频923小节,新增衣99941小节,新增 AO SYSCHN CHNID和 AIO ISTYPE E第10章视频图形子系统10.22小节涉及修改10.3小节,HMPIⅤ gs AddScaletask至HMPIⅤ Gs AddOsdTaskarray的【注意】涉及修改;新增 HI MPI VGS AddRolationtask10.4小节, VGS DRAW LINE S、Ⅴ GS ADD COVER S和VGS MODULE PARAMS S【成员】涉及修改;新增Ⅴ GS IP NUM第12章拼接12.1涉及修改12.3小节,新增 HI MPI AVS SetModParan和 HI MPI AVS SetModParam;表12-1涉及修改海思专有和保密信息文档版本00B08(2018-01-10)版权所有◎深圳市海思半导体有限公司HiMPP V4.0媒体处理软件开发参考前言修订日期版本修订说明12.4小节, AVS PROJECTION MODE E、 AVS GAIN MODE E、AS SPLIT ATTR S、 AVS GRP ATTR S和 AVS CUBE MAP ATTR S【注意事项】涉及修改;新增 AVS MOD PARAM S第13章Proc调试信息13.14、13.16、13.17、13.18和13.24小节涉及修改2017-111500B07第7次临时版本发布,添加H3559AV100的相关内容第2章系统控制23小节,删除 HI MPI SYS IOMmap, HI MPI VB CreatePoolHI MPI VB GetBlock和 HI MPIⅤ B GetSupplement∧ddr【参数】涉及修改第3章视频输入3.3小节涉及修改34小节,新增 MPI VI SetPipeRepeatMode和HI MPI VI GetPipeRepeat ModeI MPI VI SetMipiBindDev HI MPI VI GetMipiBindDevHI MPI VI GctPipc Cmp param、 HI MPI VI SetchnAttr【芯片差异】涉及修改3.5小节,新增 I PIPE MAX WIDTH、Ⅵ I CHN MAX WIDTH和VI PIPE REPEAT MODE E第5章视频处理子系统521和52.3小节涉及修改5.4小节, VPSS MAX IMAGE WIDTH~VPSS EXTCHN MAX IMAGE HEIGHT【定义】涉及修改;VPSS GRP ATTR S、 VPSS CHN ATTR S、Ⅴ PSS EXT CHN ATTR S和VPSS GRP SHARPEN AUTO ATTR S【成员】涉及修改第6章视频编码表6-1、表6-3、表6-4和表6-5涉及修改623和6.24小节涉及修改63小节,新增 HI MPI VENC SctScenc modc和 HI MPI VENC GctScenc Modc64小节,新增 VENC H264 AVBR S、 VENC H65 AVBR S、VENC PARAM H264 AVR S、 VENC PARAM H265 AVBR S和VENC SCENE MODE E第10章视频图形子系统10.22小节涉及修改10.3小节,HMPlⅤ gs AddScaletask【注意】涉及修改10.4小节, VGS DRAW LⅠNES、 VGS ADD COⅤERS【成员】涉及修改第11章几何畸变矫正子系统11.2小节涉及修改第12章全景拼接12.2和12.3小节涉及修改124小节, AVS LUT ACCURACY E、 AVS FOV S、海思专有和保密信息文档版本00B08(2018-01-10)版权所有◎深圳市海思半导体有限公司HiMPP V4.0媒体处理软件开发参考前言修订日期版本修订说明AS CUBE MAP ATTR S、 AVS GRP ATTR S【注意】涉及修改第13章Proc调试信息13.15小节涉及修改2017-092900806第6次临时版本发布第2章系统控制新增22.3小节23小节,新增 HI MPI SYS SeⅤ IVPSSMode和HI MPI SYS GetVIVPSSMode24.1小节,新增 DATA RATE F; FRAME RATE CTRI.S【成员】涉及修改FRAME FLAG E【定义】和【成员】涉及修改:删除 SNAP TYPE E和FRAME SUPPLEMENT INFO S2.42小节,新增Ⅵ VPSS MODE E和VIⅤ PSS MODE S24.3小节, VIDEO SUPPLEMENT S【定义】和【成员】涉及修改第3章视频输入34小节, HI MPI VI SetPipeFrame Source到 HI MPIⅤ I Release Pipeframe涉及修改,新增 HI MPI VI Setchnalign和HMPIⅥ GetchnAlignHI MPI VI SetDevTimingAttr HI MPI VI Destroy PipeHI MPI VI GetPipeFisheye Config、HMPIⅤ SetChn Rotation和HI MPIⅥ I SetchnldCattr【注意】涉及修改35小节,新增 VI PIPE ONLINE MAX WIDTH、VI PIPE OFFLINE MAX WIDTH VI PIPE PARALLEL MAX WIDTHVI CHN OFFLINE MAX WIDTH NH VI CHN PARALLEL MAX WIDTH修改Ⅵ CHN ONLINE MAX WIDTH和 VI PIPE FRAME SOURCE E,朋除 I PIPI MODE E36小节,表3-6涉及修改第4章视频输出41小节,衣4-1涉及更新。4.2小节,涉及更新。4.3.2小节,新增HMPIⅤ o Set videoplayer Priority至HI MPI VO Get VideoLaverPartitionMode, HI MPI VO BatchBegin EHI MPI VO Get VideoLayer Boundary4.3.3小节,新增 HI MPI VO SetChnParam至HI MPI VO GetChnDisplay position,新增H! MPI VO Refreshchn、HI MPI VO SctChn Boundary, HI MPI VO Gct Chn Boundary FHHI MPI VO Getchn Region luma44小节涉及修改第5章视频处理子系统53小节,新增HMPIⅤ PSS Enable Backup Frame至HI MPI VPSS GetChnAlign54小节,新增ⅴ PSS SHARPEN GAIN NUM至海思专有和保密信息文档版本00B08(2018-01-10)版权所有◎深圳市海思半导体有限公司HiMPP V4.0媒体处理软件开发参考前言修订日期版本修订说明VPSS YUV SHPLUMA NUM,Ⅴ PSS LOW DELAY INFO S至VPSS GRP SHARPEN ATTR S第6章视频编码63和6.4小节涉及修改第7章视频解码7.3小节,新增 HI MPI VDEC Setrotation和 HI MPI VDEC SetrotationHI MPI VDEC Releaseframe和 HI MPI VDEC ReleaseUserData【注意】涉及修改7.4小节, VDEC STREAM S和 VDEC MOD PARAM S涉及修改第8章区域管理821节,衣8-1涉及修改第11章几何畸变矫正子系统11.5小节, RECT S【注意事项】涉及修改第12章全景拼接12.4小节,新增 AVS SPLIT NUM、 AVS SPLIT PIPE NUM、AVS CUBE MAP SURFACE NUM、 AVS SPLIT ATTR S和AVS CUBE MAP ATTR S第13章Proc调试信息13.6、13.10、13.11、13.13、13.15、13.17和13.24的【调试信息】和【参数说明】均涉及修改2017072000805第5次临时版本发布第2章系统控制23小节,新增 HI MPI SYS IOMmapHI MPI SYS Mmap、 HI MPI SYS Setscale Coeflevel【注意】涉及修改242小节, SCALE RANGE E和 COEFF LEⅤELE【定义】涉及修改SCALE COEFF LEVEL S【成员】涉及修改2.43小节,新增 ISP CONFIG INFO S第3章视频输入3.3小节,修改“从模式”相关内容34小节,新增HMPIⅤ I SetStitch GrpAttr和 HI MPI VI GetStitch GrpAttrHI MPIⅥ I SendPiperaw【注意】涉及修改3.5小节,新增Ⅴ I MAX STITCH GRP NUM、Ⅴ I SHARPEN GAIN NUMⅥ I AUTO ISO STRENGTH NUM、Ⅴ I STITCH GRP ATTR、VI PIPE RAW SOURCE E FH VI RAW INFO SⅥ I BAS SCALE ATTR S【定义】和【注意事项】涉及修改Ⅵ I NR ATTR S和Ⅵ I PIPE ATTR S【注意事项】涉及修改第5章视频处理子系统521、52.3和53小节涉及修改海思专有和保密信息文档版本00B08(2018-01-10)版权所有◎深圳市海思半导体有限公司
- 2020-11-30下载
- 积分:1