您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 嵌入式可配置实时操作系统eCos软件开发
嵌入式可配置实时操作系统eCos软件开发PE四部林高峰1UseembeddedOS,why?2UseembeddedOS,why?前后台系统or超循环系统3UseembeddedOS,why?多任务调度系统4常见的嵌入式OS系统Linux、uClinux、WinCE、PalmOS,Symbian、VxWorks、pSOS、eCos、uCOS-II、Nucleus、ThreadX、Rtems、QNX、INTEGRITY、OSE、CExecutive...5eCosbasedproductsshowcase6ProcessorArchitecturesupportedbyeCosARM(ARM720T,ARM7EJ-S,ARM7TDMI,ARM7TDMI-S,...ARM920/922T,ARM926EJ-S,ARM940T,......)SamsungCalmRISC16/32FujitsuFR-VHitachiH8intelIA32(X86)M68KMIPS(MIPS32®M4K®,MIPS32®4KS™,MIPS32®4KE®,...NECV8xxPowerPCSPARCSuperHMatsushitaAM3x7eCossystemdevelopment8eCos概况1.发展历程2.优势:完全开源,完全免费由免费软件基金会做版权维护(FSF:FreeSoftwareFoundation)3.特点:可配置性,可裁剪性,可移植性,实时性兼容性(posix,uitron…),代码量小,符合标准协议9eCos功能10eCosHAL概念HAL硬件抽象层:处理器结构和系统硬件平台进行抽象体系结构抽象层(ArchitectureHAL)主要是指eCos所支持的具有不同体系结构的处理器系列,如SPARC系列、arm系列等等。变体抽象层(VariantHAL)指的是处理器系列中某款处理器在Cache、MMU和FPU等方面所具有的特殊性。平台抽象层(PlatformHAL)是对当前系统硬件平台的抽象,包括了平台的启动、芯片选择与配置、定时设备、I/O寄存器访问以及中断寄存器等等。11eCos系统中嵌入式软件包的层次结构目标硬件系统平台RedBootROMMonitor硬件抽象层设备驱动中断例外虚向量网络串口Flash内核多线程,调度,中断,同步,定时器,内存分配网络栈文件系统网络服务器标准库兼容性MathCUTRONPOSIX嵌入式应用12eCos源码库的文件组织结构13eCoskernel1415eCos内核提供了一个RTOS所期望的标准功能:线程管理,线程调度,中断和异常处理,同步等eCos内核的标准功能组件是可以配置的eCos内核的支持标准的uITRON和POSIX兼容层接口eCos内核提供C语言的API接口eCoskernel特性调度器内存分配中断通信同步机制时钟eCoskernelcomponent16eCoskernel---scheduler(0)位图调度17eCoskernel---scheduler(1)多级队列调度18eCoskernel---内存分配高地址低地址.text.data.bss_heap_top内存池用户区_Heap(target.ld配置)19eCoskernel---中断20eCoskernel---同步机制同步机制有:互斥量(mutex)信号量(semaphore)条件变量(condition)标志量(flag)消息邮箱(mbox)同步机制是内核为线程提供通信,以及对共享资源进行同步的机制21eCoskernel---同步机制voidcyg_user_start(){cyg_semaphore_init(&g_sem,0);cyg_thread_creat(12,thread_A,...);cyg_thread_creat(6,thread_B,...);cyg_thread_resume(thread_a);cyg_thread_resume(thread_b);}voidthread_A(){while(1){cyg_thread_delay(100);diag_printf(ThreadA:postsignal);cyg_semaphore_post(&g_sem);}}voidthread_B(){while(1){cyg_semaphore_wait(&g_sem);diag_printf(ThreadB:getsignal);}}信号量例子22eCoskernel---时钟eCos内核使用时钟特性来提供超时、延迟、线程调度、计数器、报警器、定时器等服务.通常1tick=10ms.23eCos驱动开发24eCos驱动---架构主要设备类型:字符设备,块设备,网络设备25eCos驱动---3种中断模型26eCos驱动---字符设备驱动接口开发eCosLogicDriver#defineCHAR_DEVIO_TABLE(_l,_write,_read,_select,_get_config,_set_config)\cyg_devio_table_t_l={\_write,\_read,\cyg_devio_bwrite,\cyg_devio_bread,\_select,\_get_config,\_set_config,\};#defineCHAR_DEVTAB_ENTRY(_l,_name,_dep_name,_handlers,_init,_lookup,_priv)\cyg_devtab_entry_t_lCYG_HAL_TABLE_ENTRY(devtab)={\_name,\_dep_name,\_handlers,\_init,\_lookup,\_priv,\CYG_DEVTAB_STATUS_CHAR\};HardwareDriverCodeCHAR_DEVIO_TABLE(spg293_ts_handlers,NULL,//Unsupportedwrite()functionts_read,ts_select,ts_get_config,ts_set_config);CHAR_DEVTAB_ENTRY(spg293_ts_device,CYGDAT_DEVS_TOUCH_SPG293_NAME,NULL,//Basedevicename&spg293_ts_handlers,ts_init,ts_lookup,NULL);27eCos驱动---应用层调用IO接口28eCosfilesystem2930文件系统屏蔽底层细节,用户可以在ROM、RAM、网络、硬盘、SD卡、CF卡、USB等很多种介质上实现“按名存取”。文件系统的本质是“按名存取”,把文件名字和数据对应起来eCosfilesystemeCos文件系统符合POSIX标准31eCosnetworking3233随着网络应用的普及,嵌入式系统对网络的要求也越来越迫切.eCos为满足这种需求,在网络方面提供了强有力支持.它包含公共的网络协议包(CommonNetworkingPackage)支持完整的TCP/IP网络协议栈,提供了基于OpenBSD和FreeBSD的两种实现.目前支持的网络服务包括FTP,TFTP,SNMP,DNS,HTTP等等.eCosnetworkingeCosNetFramework34eCos宿主机开发平台35eCos开发环境的建立3.安装ecos开发包和配置工具Configtool(GNUCygnusWindows)与平台相关的交叉开发工具4.安装WinCVS组件管理的一些重要概念配置选项:1.最基本的可配置单元2.每个配置选项对应一个单一的选择,可以选中还是禁止,或者设成某个值3.每个配置选项都有一个宏与其对应,该宏用于系统源码级控制4.对于特定的ecos应用,可以通过调整配置选择来满足应用的特定需求37eCos组件管理的一些重要概念组件:1,组件可以包含更多的配置选项2,组件也是一个配置选项,用户可以对组件的所有功能的使能和禁止进行选择3,组件可以是一组相关配置选项称呼,此时没有宏名与此对应38eCos组件管理的一些重要概念包:是一种特殊类型的组件,它是组件的发布单位。对于一个包含了所有源代码、头文件、说明文档和其他一些相关文件的包,可以形成一个发布文件。39eCos配置工具屏幕布局40eCos应用开发过程4142建立eCos映像文件43建立eCos应用程序映像文件eCos技术资料44Thanks!45
本文标题:嵌入式可配置实时操作系统eCos软件开发
链接地址:https://www.777doc.com/doc-3137521 .html