天脉(ACoreOS)操作系统培训第八章:可配置组件ppt课件.ppt
第八章可配置组件,2,VxWorks兼容包BIT管理OpenGL其他组件,提纲,3,VxWorks兼容包,为方便原面向VxWorks 5.4/5.5操作系统开发的应用软件的迁移,充分分析现有系统使用API服务,实现VxWorks兼容包作为独立的可配置组件,可以进行裁剪,4,VxWorks兼容包,5,VxWorks兼容包功能组成,6,VxWorks-API使用建议,对于熟悉VxWorks 5.4/5.5的用户,建议采用VxWorks兼容包接口编程,对于首次使用嵌入式实时操作系统的用户建议采用ACoreOS-API接口建议用户不要在应用程序混合使用VxWorks-API接口和ACoreOS-API接口,7,任务管理API,8,任务管理API,9,VxWorks兼容包帮助资源,VxWorks兼容包实现的14个功能模块、110个API服务在下列文件中有详细描述,本培训不再一一列举: ACoreOS机载嵌入式实时操作系统程序员手册 ACoreOS机载嵌入式实时操作系统参考手册,10,VxWorks兼容包移植步骤,(一)在配置OS时,选择支持“VxWorks兼容包” 组件;(二)将在VxWorks上开发的应用软件源程序放置在LambdaAE环境创建的项目中,进行编译、链接;(三)解决编译或链接过程中出现警告、错误,可能会出现如下情形:应用软件使用到VxWorks兼容包中未实现的服务;由于编译版本不同(2.96、3.4.4),引入警告信息;(四)加载、调试与运行(五)测试与验证,11,VxWorks兼容包移植注意事项,(一)系统实现差异各类对象ID号(执行TCB地址指针,无符号整形值) 任务优先级范围(0-255,1-255)(二)编译选项ANSI C/C+对齐(-mstrict-align)优化选项(-o0, -o1, -o2 , -o3)(三)系统能力配置各类对象数配置存储空间配置(四)编译器使用注意事项或存在问题(详见软件发布说明或开发环境用户文档),12,GCC-3.4.4编译器使用注意事项示例,简述:立即数计算顺序不同版本编译器(3.4.4,2.96)处理不同详细描述:表达式存在立即数计算时,gcc-2.96在编译阶段会直接计算立即数,而gcc-3.4.4严格按照从左到右的顺序计算表达式,可能导致计算结果和gcc-2.96计算的不一致。示例:result = a * 10/6;,13,VxWorks兼容包BIT管理OpenGL其他扩展组件,提纲,14,BIT管理,BIT(Build In Test)管理主要用于检测硬件设备的状态,包括上电BIT测试(PBIT)、启动BIT测试(IBIT)、周期BIT测试(CBIT)和维护BIT测试(MBIT)ACoreOS为X86平台提供IBIT、CBIT和MBIT,为PowerPC平台提供四种BIT支持,15,上电BIT测试,是指系统上电之后转入MSL层入口代码之前就运行的BIT测试。PBIT可以对系统中定义的所有BIT测试项进行测试,但对于对PBIT测试有时间限制(如要求2s内完成PBIT测试)的系统,用户就需要对测试项进行合理取舍,既要进行尽可能完善的测试,又要保证满足测试时限,16,启动BIT测试,通常是指系统在正常运行时进行的BIT测试(最常见的情形是对处于飞行状态的飞机的某些设备进行检测)。由于某种需要,在系统正常运转过程中,操作人员手动启动IBIT以了解系统某些硬件设备的运转状态。因为这种测试是在系统正常运转情况下进行的,用户对IBIT测试项进行配置或实现某些测试接口时,必要慎重考虑和取舍以保证IBIT测试不影响系统的正常运行,17,周期BIT测试,通常指在系统正常运转过程中周期性或利用系统空闲时间进行的BIT测试。这种测试允许系统在运行过程中,对某些系统硬件设备进行周期性或间歇性的监测。通常测试任务是一个可以被抢占的低优先级任务,因此用户对CBIT进行测试项进行配置或实现某些测试接口时,必要慎重考虑和取舍以保证CBIT测试不影响系统的正常运行,18,维护BIT测试,通常是指在地面对系统进行维护时进行的测试。在维护过程中,需要对某些硬件设备进行测试以辅助维护人员查找设备故障原因等。维护BIT测试与启动BIT测试的使用方法相似,但使用场合不同,19,BIT测试方法,系统状态不同,需进行不同的测试,其测试类型、测试项、测试方法均不同系统无法实现所有测试项,仅提供常用部件的测试程序(CPU、存储器等),提供标准接口,支持用户自行扩展,20,BIT测试管理接口,BIT测试启动接口BIT_Cbit_Start()BIT_Mbit_Start()BIT_Ibit_Start()BIT测试结果获取接口BIT_CbitResult_Get()BIT_MbitResult_Get()BIT_IbitResult_Get()BIT_PubitResult_Get(),21,BIT配置,22,BIT配置,23,BIT测试结果定义,四种BIT测试结果遵循相同格式:,24,VxWorks兼容包BIT管理OpenGL其他扩展组件,提纲,25,OpenGL,OpenGL是美国高级图形和高性能计算机系统公司SGI所开发的三维图形库,是高性能图形和交互式视景处理的工业标准。ACoreOS操作系统支持OpenGL V1.3标准的2D/3D图形处理软件支持ATI/AMD公司的M9图形加速卡支持点与线、面和体、显示列表、图形变换、色彩构成与光照、融合与透明、反走样与雾化、图像贴图与文字显示、动画与实时处理,26,OpenGL实现软件层次图,五类接口: OpenGL Mini-X GLX GLU GLUT,27,OpenGL软件层次说明,图形加速卡资源管理层:该层配置OpenGL运行所需的各种硬件资源。OpenGL:包含OpenGL的基本函数,是通用函数,以gl开头,可以运行于任何的OpenGL平台。Mini-X:X窗口系统的轻量级实现,主要用来创建本地渲染描述表(Rendering Context),用来全屏显示。GLX:用于连接Windows窗口与OpenGL。用于管理渲染描述表(Rendering Context)、显示列表、缓冲交换、及其他扩展功能。GLU:OpenGL实用库函数,该函数是在基本函数基础上编制的例程,用来简化编程工作。它是基本函数的高级函数,具有通用性。它可以完成纹理影像管理、坐标变换、渲染简单曲面等工作。GLUT:GL实用开发包,易于创建简单的渲染描述表,具有平台无关的特性。该开发包实现的是图形显示功能的一个子集。,28,OpenGL应用框架,void OpenglDemo()DEFINE_DEFAULT_ALT_DISPLAY_MODE; SET_DEFAULT_ALT_DISPLAY_MODE_PRIMARY_CRT;SET_DEFAULT_ALT_DISPLAY_MODE_RESOLUTION(WIDTH, HEIGHT, BPP, REFRESH);SET_DEFAULT_ALT_DISPLAY_MODE_BUFFER_FLIP_CNTL(BUFFER_FLIP_CNTL_ON_HSYNC);display_name = ALTOpenDisplay( USE_DEFAULT_ALT_DISPLAY_MODE ); dpy = XOpenDisplay(display_name);vi = glXChooseVisual(dpy, DefaultScreen(dpy), (BPP = 32) ? dblBuf32 : dblBuf16);cx = glXCreateContext(dpy, vi, None, GL_TRUE);win = XCreateWindow(dpy,RootWindow(dpy, vi-screen),0, 0,WIDTH, HEIGHT,0,vi-depth,InputOutput,vi-visual,0, NULL);glXMakeCurrent(dpy, win, cx);/* 添加用户自己的应用程序 */,29,VxWorks兼容包BIT管理OpenGL其他扩展组件,提纲,30,其他扩展组件,高可靠Reliance文件系统(COTS)C+支持TCP/IP协议栈,31,其他扩展组件,Reliance文件系统具有高可靠、访问快速和安全三个主要特点,是业界唯一保证在任何掉电环境下仍可正常工作的文件系统基于事务型存储,写入算法为原子操作,保证数据一致性上电启动不需要检查文件系统的完整性和一致性文件转储和恢复,形成多个文件副本通过标准接口访问文件系统,包括基本I/O接口(read/write等)、缓冲I/O接口(fread/fwrite等),