2024年2月18日发(作者:我的人生目标)
通讯链接。
pSOSystem 操作系统是一个高性能、高度模块化的实时操作系统,他完整的提供了基1.概述2.系统结构们的编程语言接口是C/C++和汇编。像其他操作系统一样,pSOSystem操作系统有它的系于开放系统标准的多任务环境,被广泛应用于嵌入式微处理器程序开发。pSOSystem实时多任务操作系统内核是以库文件方式存在,他有用于不同CPU的不同OS版本。提供给我辑、编译和调试)可以驻留在UNIX或DOS主机上,他们通过串口或以太网同目标机建立统调用,让上层应用使用系统的功能。pSOSystem 操作系统的交插开发环境工具(包括编D:Doc技术总结pSOS介绍.doc pSOSystem 操作系统
才可能发生系统事件。的是主从结构。pSOS+ 实时单处理器多任务操作系统内核模块作为监控软件来提供应用程序要求的系统服务、调度、管理和资源分配,并且协殊的调度策略。执行的,也就是说,一个Task在执行过程中可以被另一个Task所打断,存在多个Task由用户提供或配置OS提供的具体的硬件相关的驱动程序或接口程序。在上图的整个系统pSOSystem的内核及各个模块都是硬件独立的,不依赖于具体的硬件,不对硬件作假设。中,深灰框内是系统内核及系统模块,只需对其按要求进行配置或为其提供驱动程序。在备驱动程序,而编写上层应用程序是编写各个任务(Tasks)。宏观上多个Task是可以并行么情况下会发生Task切换呢?只有在发生某一个系统事件的时候,pSOS+便检查现在该动程序(Drivers)。这三个部分是由用户来做的,做BSP程序主要是编写中断处理程序和设包括目标系统硬件初始化代码、设备驱动程序和中断处理例程。在BSP里都是以原码(Full
都在执行,但是都未结束的情况。当然在微观上多个Task是串行的(对单个CPU)。在什浅灰色框内的部分包括:用户任务(Ur Task)、中断处理程序(Interrupt Handlers)、设备驱哪个Task运行了,如果不是当前Task,便会发生Task 切换。一般只有发生系统调用时Source Code) 存放仅仅与板子硬件相关的程序,与上层有何应用毫无关系。这也是我们把D:Doc技术总结pSOS介绍.doc利于上层应用程序在不同的板间移植。调各种同步和异步操作。pSOS+的特点是小、快、完全可抢占、可重入。pSOS+m 实时多处理器多任务操作系统内核模块pSOS+是完全与硬件无关的,使得用户能在自己的硬件上使用pSOSystem。pSOSystem操作系统是一个模块化高度可配置的操作系统,整个系统的结构如上图:程序加入BSP的一个准则,如果某个程序仅仅与硬件相关,与上层有何应用没有关系,就可以把这个程序放入BSP中。BSP中为上层应用提供了操作硬件的驱动程序及功能函数,BSP提供给上层应用的接口都是相同的,只是对不同的BSP它们的实现不同而已,这样有用了基于优先级的、可抢占的和基于时间片的调度策略,并且每个任务可以有自己特BSP(Board-Support Package)板级支持包,是完成用户硬件板功能的程序包,他是对pSOS+一些特性的扩展,使pSOSystem支持多处理器的操作,处理器间采用pSOS+将应用程序抽象为:任务、I/O设备驱动程序和中断服务程序ISRs。pSOS+采
3.开发方式嵌入式开发环境主要可以分为两部分,宿主机上的工具和目标机上的软件映像。假如我们的目标板采用的是MPC860作为CPU,它本身不具有自开发能力,即我们无法在MPC860下开发运行在它之上的软件,只有借助PC机(x86)来开发软件。这种开发方式被称为嵌入式开发。不具有自开发能力的、待开发的机器(MPC860)叫做目标机(Target),把所借助的PC机叫做宿主机(Host)。我们所能用的编辑器、编译器、调试器等工具都在HOST上。首先利用集成开发环境上的编辑器写源代码,其中要根据目标板的功能特性对BSP部分做不同的改动;然后编译自己的源文件和BSP部分,链接OS等不能改动的库文件(操作系统部分是目标代码,是以库文件的方式存放的)形成一个可以在Target上运行的IMAGE;最后用运行在Host之上的调试器把代码下载到Target上,进行调试。D:Doc技术总结pSOS介绍.docpHILE+ 文件系统管理模块pRPC+ 远端过程调用库模块pNA+ TCP/IP协议堆栈模块pROBE+ 调试/分析器pREPC+ 标准C库模块用标准的socket接口,包括Stream、Datagram和Raw Socket。统、CD-ROM文件系统、pSOSystem特有的快速文件系统、NFS的Client和Server端是一个完全的TCP/IP协议组,包括网关路由协议、UDP、ARP和IGMP等。pNA+使可以通过它有效地访问各种不同的存储设备,支持四种文件格式:MS-DOS文件系提供了与SUN兼容的RPC和XDR服务,允许用户用熟悉的远程调用来构造分布式应用。
级:4.1初始化上电D:Doc技术总结pSOS介绍.doc4.嵌入式应用部分结合上图我们所要开发的有如下几块部分:结合ATM和IP的经验嵌入式应用部分由支撑软件模块和应用软件模块构成。支撑软件模块又是由以下几个子模块组成:调度系统,定时系统,通讯系统,内存管理,监控系统,控制系统,告警系统,诊断系统,文件和装载系统。应用软件模块可根据具体的应用来分解。操作系统部分是目标代码,是以库文件的方式存放的,无法修改;I/O Drivers(仅提供标准的系统调用接口)实际上也是固定部分,不需改动;只有嵌入式应用部分和BSP是我们要为目标板定做的。是指从加电或复位后的第一条指令,到操作系统举起的过程。Boot的初始化可分为三
3.3.2.1.2.1.4.2驱动程序都提供了六种操作的驱动程序:init、open、clo、read、write和control。驱动程序D:Doc技术总结pSOS介绍.doccpu initboard init必须由上层调用,其调用方式有三种:1sys init在任务中直接调用设备驱动程序。task2pSOS+CPU的初始化,如Cache、寄存器的设置。板级初始化,指内存的自检、Flash的刷新等。系统初始化,为操作系统的运行准备数据结构、配置表等。driverÓëÓ²¼þÎÞ¹Ø3ÓëÓ²¼þÓйØrvice驱动程序是包含I/O操作的子函数,是指目标板上所有硬件的驱动程序。对每个设备,在任务中调用了某个服务,而该服务需要设备驱动程序的支持,如网卡。任务调用内核中的设备驱动程序,由内核根据设备号再调用相应的驱动程序。
3.2.1.I/O管理自己的BSP程序。常规操作包括:与内核接口是指:须要了解处理器的硬件结构。在购买的系统上,带有BSP的模板,可以指导用户如何编写D:Doc技术总结pSOS介绍.doc这些驱动程序也可抽象为三个层:如何设置寄存器中的值³£¹æ²Ù×÷操作的规整性,定义了六种标准操作ÓëpSOS+½Ó¿ÚÓëÆäËüÄ£¿é½Ó¿ÚI/O编址方式,即三种寄存器CR、DR、SR的编址参数的规整性,每个函数的参数个数、类型是固定的通过KI与多处理器通讯的drivers要符合KI的参数要求与模块接口要符合接口标准,例如:可选部分通过NI与TCP/UDP通讯的drivers要符合NI的参数要求我们开发具体硬件的BSP就是编写有关处理器初始化和设备驱动程序的函数,所以必
织和内存的规划。BSP软件包的开发:D:Doc技术总结pSOS介绍.docCPU6.技术细节和难点
用户目标板4.3引导和加载(ATM & IP)ISRs的使用,主要是与task的接口:RAMROMFLASH7.内存规划和有关内存的系统调用接口由于用户目标板上软、硬件各部份是可定制的,这给我们带来了许多灵活性同时也带来了许多困难。目标单板上的内存组织有以下几点需要注意。(bsp.h、sys_conf.h、),partition和region有什么区别?1.pSOS的内存划分引导和装载(boot & load):FLASM ROM,DPRAM,FLASM RAM对版本的组
用户板加电或复位,首先运行ROM里的引导程序,该引导程序按以下次序处理:CPU初始化、板级初始化和运行OS内核,并把控制权交给pSOS内核。pSOS内核运行我们的应用程序(root任务,类似于main),在ROM里的版本程序包括了我们的支撑系统、文件管理应用和版本加载应用,进行RAM版本加载过程(该版本为OS+APP)。这当中要校验FLASH中的版本文件,如没有则要和后台进行同步,校验通过后将该版本加载到RAM中指定地址空间里后硬跳转到该地址处运行。ROM里存放引导程序和版本加栽程序(OS+APP)。FLASM RAM是用户板上的电子盘,掉电可保存数据在其上建立了我们的文件系统。RAM中存放我们的运行程序(OS+APP)。从内存资源和版本文件的角度来看我们可将内存分成ROM和RAM(版本为
程序的数据冲突。D:Doc技术总结pSOS介绍.doc通常给应用程序做内存区用。该区域的大小是可配置的他由SC_RAM_SIZE和KC_RN0USIZE
一下RAM。假设物理内存有32M,OS如何得到并使用他呢?RG#0是运行版本使用的最大RAM内存大小,当指定出的SC_RAM_SIZE小于KC_RN0USIZE
32767系统只能访问BSP_RAM_BASE(bsp.h)到BSP_RAM_BASE
在做BOOTROM程序时,一般把SC_RAM_SIZE
x
3.pSOS的内存系统调用The rn_create, 从指定的起始地址处,创建指定大小的内存区(region)。The rn_ident, 获得内存区标识。The rn_delete, 删除指定的内存区。The rn_getg, 从内存区中申请一个内存段。The rn_retg, 释放内存段到内存区中。The pt_create, 创建一个内存缓冲分区(partition)。The pt_ident, 获得内存分区的标识。The pt_delete, 删除指定的内存缓冲分区。BOOTROM程序只使用0~0x60000-1内存来存放数据。0x60000以上的保留给RAM(sys_conf.h),取其中最小的。KC_RN0USIZE是系统内存RG#0的每个unit的大如果有64MB的物理内存,应设为0x800。SC_RAM_SIZE(sys_conf.h)指出系统设为0x60000,这样(OS+APP)的内存区(包括代码段、数据段和堆栈段等),也即系统使用的内存区,程序使用,我们在链接ram程序时,一定要链接到0x60000以上,不要和BOOTROM32767决定小,单位是字节。如果系统有32MB的内存,应设为0x400(32KB × 0x400 = 32MB);SC_RAM_SIZE – 1这段内存,BSP_RAM_BASE + SC_RAM_SIZE可以做别的用,+
x
和,他们只需在配置文件中做修改即可,),这我主要想说明2.pSOS的内存使用pSOS在给应用提供可分配的动态内存资源时是将系统内存管理成partition和region。在partition中又可分出许多个buffers,每个buffer的大小是2的幂次方这样就不受unit大小限制;而region中可分出许多个gments,每个gment的大小由unit大小决定,每次调用rn_getg从指定region动态分配内存的时候,系统以unit为单元进行分配,如unit大小为0x400,哪怕你只需要分配一个字节,系统也是给你一个unit ,即0x400个字节。为了合理利用系统内存资源,我们必须自己管理内存。pSOS在内存操作上极不安全也没有边界保护检查,这也是我们必须自己管理内存的原因之一。我的想法是在一个region里面申请一个比较大的gment,在该gment中进行内存管理(划分成小的内存块)和保护性检查。
据。TaskApplicationApplicationTask2.异步I/O模式1.同步I/O模式D:Doc技术总结pSOS介绍.doc8.设备驱动程序设计The pt_getbuf, 从分区中获得一个缓冲。The pt_retbuf, 释放一个缓冲到缓冲区中。如图所示Driver接口和ISR之间通过信号来处理同步为同步模式,表现在CPU上则是调用任务被挂起等待设备准备好才继续处理。 pSOS+ pSOS+DriverInterfaceDriverInterface ISRDeviceHardwareDeviceDevice ISRDeviceHardware如图所示Driver接口和ISR之间通过消息队列进行通讯,双方都是从消息队列里取数
本文发布于:2024-02-18 16:10:25,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/zhishi/a/1708243826143693.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:pSOS操作系统先容.doc
本文 PDF 下载地址:pSOS操作系统先容.pdf
留言与评论(共有 0 条评论) |