Micriμm 公司提供嵌入式软件产品,μC/OS-II,μC/GUI,μC/FS,μC/USB,μC/FL,μC/ModBus, uC/Probe 。
μC/OS-II :一个源码公开、可移植、可固化、可裁剪、占先式的实时多任务操作系统。其绝大部分源码是用ANSI C写的,世界著名嵌入式专家Jean J.Labrosse出版的《μC/OS-II,实时内核》(ISDN 1-57820-103-9)详细分析了该内核。μC/OS-II通过了联邦航空局(FAA)商用航行器认证,符合RTCA(航空无线电技术委员会)DO-178B标准,该标准是为航空电子设备所使用软件的性能要求而制定的。自1992年问世以来,μC/OS-II已经被应用到数以百计的产品中。uC/OS-II在高校教学使用是不需要申请许可证的,但将μC/OS-II的目标代码嵌入到产品中去,应当购买目标代码销售许可证。μC/GUI:一个软件模块集合,通过该模块可以在我们的嵌入式产品中加入用户图形接口(GUI)。μC/GUI具有很高的执行效率,并且与处理器和LCD控制器相独立。该模块可以工作在单任务或者多任务环境,可以支持不同大小的显示方式。
μC/FS:一个高度可移植的嵌入式FAT文件系统。该系统可以用于不同的介质,而用户只需要提供不同设备的驱动函数。μC/FS是一个经过对速度、多功能性和内存需求等优化的高性能库。 Micrium 推出了 uC/Probe ,这款通用工具能让嵌入式开发人员在实时环境中监测嵌入式系统。有了 uC/Probe ,不再需要像以前一样为了得到系统反馈必须停止一个应用程序;有了 uC/Probe ,用户 可以图形化方式 观测正在运行的嵌入式应用程序的内部,这样节省了大量的开发时间;有了 uC/Probe , 开发者可以保证系统正确地运行,或者迅速找到系统的不稳定性 , 这些不稳定性一般情况下 ( 不用工具 ) 在系统运行时才能被发现 . Micrium 推出首个工业级通用嵌入式系统监测工具, 荣获 2007 美国菲斯卡尔技术论坛“最高级别”开发支持工具, uC/Probe 可以和任意能产生 ELF/DWARF 或者 IEEE 695 导出文件的编译器 / 连接器一起工作, uC/Probe 同样可和任何 8 位 16 位 32 位和 64 位的 CPU 以及 DSP 一起工作, 有了 uC/Probe , 就不必而定制程序或脚本了 , 从而节省了开发时间 . 数据在运行 Microsoft Windows 的 PC 上 以图形化方式 来显示,值可以是数字也可以量表,条线图,区图,曲线图,电子显示器,计数器或者圆形分隔统计图表的形式来显示。 uC/Probe 可以用于诊断系统的功能或者作为允许 现场 技术员遥 控 设备状态的最终产品用户接口。 只需要 15 分钟,就可以构建一个如上的数据显示器。 uC/Probe 不需要用户自己写代码,即使没有实时操作系统( RTOS )也能被轻松操纵,这又节省了更多的开发时间。当前发行的版本支持 RS-232 或者 J-Link (对 ARM 目标机而言是 J-Tag 的特别类型)接口,用来从目标机收集数据。
μC/OS-II 是一个移植方便的、可固化的、可裁剪的、占先的多任务实时内核,它适用于多种微处理器,微控制器和数字处理芯片。μC/OS-II 可以管理63个应用任务同时通过下列服务:
信号量 | 事件标志组 |互斥信号量 (可用于降解优先级反转) |消息邮箱 | 消息队列| 任务管理| 时间管理 | 固定大小内存块管理
μC/OS-II 发布所有的源代码。事实上,其源代码与标准C完全兼容,在所有实时操作系统中,μC/OS-II的源代码几乎是最整洁、编写最一致的。 μC/OS-II的内核在《 MicroC/OS-II, The Real-Time Kernel》
(ISBN 1-57820-103-9) 的书中有详细描述,该书的作者是 Jean J. Labrosse. 所有μC/OS-II 提供的系统服务都以前缀‘OS’开始,这样可以方便地知道用户应用中所用到的内核服务函数。同时,这些内核服务都有明确的分类:比如OSTask() 与任务管理函数有关,OSQ()与消息队列管理相关, OSSem() 与信号量管理相关等等。
已为μC/OS-II开发了相关工具并提供了必要的文档证明μC/OS-II 适用于安全性要求高的系统,能满足航天和医药产品的安全要求。虽然这一特性对用户的需求并不一定实用,但却证明了μC/OS-II是一个非常强劲的实时系统。
μC/OS-II 目前与汽车制造业软件可靠协会(MISRA)规范的C代码标准99%兼容。这些标准由MISRA制定以提高安全性要求高的汽车系统C程序的可靠性和可预测性。在Micrium 的网站上,可以获取详细的μC/OS-II与MISRA的127条C编程规则兼容的描述列表。
μC/OS-II 可以在大部分处理器上运行在我们的网站上可以获取(免费下载)μC/OS-II的移植。大量已移植成功的代码可以说明μC/OS-II 确实是非常方便的,一旦新的处理器出现,μC/OS-II 很可能将在其上移植。
μC/OS-II 是可裁剪的,可以只包含用户应用所需的性能。这样就可以提供最小的存储器封装。根据处理器不同, μC/OS-II可以降低到只用 2K 字节的代码空间 和 300 字节的数据空间 (堆栈除外)。
μC/OS-II提供的大多数服务的执行时间都是确定的常数。这意味着执行时间与应用程序中运行的任务数无关。 μC/OS-II 已经广泛应用于全世界各个公司的成百上千种产品中。世界上许多学院和大学也都在实时系统的课程教学中采用μC/OS-II. 这保证了工作岗位上的工程师能够获得培训为以后在产品中使用μC/OS-II 做准备。
借助于μC/OS-View 模块用户可以查看μC/OS-II所管理任务的状态。要完成该功能,用户需要添加一个小的目标驻留模块,这个模块通过RS-232C串口与Microsoft 的窗口应用程序通信。
μC/OS-II KA (Kernel Awareness插件)允许用户在一系列方便的窗口中显示 内部数据结构 ,这些窗口把C-SPY调试器和IAR Embedded Workbench结合在一起。
它为用户提供了目标应用系统中的活动任务,每个信号量,互斥信号量,邮箱,队列和事件标志组和一个等待这些内核对象的所有任务的列表等,这对嵌入式开发者在测试和调试应用程序时很有帮助。在Kernel Awareness中为μC/OS-II提供的调试器还有: Lauterbach and Nohau μC/FS是FAT型文件系统,它适用于所有的存储介质,用户可以提供这些储存介质的基本硬件访问函数。μC/FS 在速度,多功能性和内存封装上都做了优化,是一个高性能的函数库。
μC/FS是为与各种类型的硬件兼容而设计的。为了在 μC/FS中使用特定的硬件,
需要这种硬件的设备驱动程序。驱动程序中包括访问硬件的底层I/O函数和全局表,
全局表中存放了这些I/O函数的指针。
μC/FS 的代码是用ANSI C写的,适用于所有的处理器。μC/FS具有如有一些特点: | 支持与MS-DOS/Windows 兼容的FAT12,FAT16,FAT32文件系统。
支持多种设备驱动。μC/FS支持各种不同的设备驱动,从而允许用户在同一时间通过文件系
统访问不同类型的硬件。
支持多种存储介质。通过设备驱动允许用户在同一时间访问不同的介质。
支持操作系统。其他操作系统,包括 μC/OS-II可以很方便地与μC/FS结合。这样用户就可
以在多线程环境下进行文件操作。
为用户的应用程序提供类似于stdio.h的API,它是用ANSI C写的,所以一个用标准C
I/O库的应用程序可以方便地移植以使用 μC/FS.
非常简单的设备驱动结构。μC/FS只需要读写分区的底层函数,所以要支持用户定制的硬件
也是很简单的。
提供以下设备的驱动:
SMC | SD| MMC |CF | IDE | RAMdisk| Windows (允许用户在Windows环境下仿真软件) 及其
他。
存储器封装NT
这些数字是用IAR编译器在ARM7目标板 在ARM模式下编译得到的。配置只允许打开一个文件。
打开更多的文件需要 1064 RAM 字节 (2 个扇区缓存+一个文件句柄).
| 使用Ramdisk
■ ROM: 15896 ■ RAM: 1584
文件系统的层体系
API 层
API 层是 μC/FS 与用户应用程序之间的接口。它包含了一个与文件函数相关的ANSI C 库,如FS_FOpen, FS_FWrite 等。 API 层把这些调用传递给文件系统层。目前在μC/FS下只有FAT型的文件系统可以获取, 但是 API层可以同时处理不同类型的文件系统层,所以在μC/FS下可以同时使用FAT 和其它文件系统。
文件系统层
文件系统层把文件操作请求传递给逻辑块操作,通过这种传递文件系统调用逻辑块操作来为设备指定相应的设备驱动。
逻辑块层
逻辑块层的主要功能是使对设备驱动的访问同步,并为文件系统层提供一个便捷的接口。逻辑块层调用一个设备驱动来进行块操作。
设备驱动
设备驱动是处于系统底层的例程,用以访问存储硬件。设备驱动的结构简单,易于与用户自己的存储设备进行整合。
μC/GUI是嵌入式应用中通用的图形软件,是为带LCD的图形应用系统提供高效的图形用户接口而设计的,它不依赖于处理器和LCD控制器。μC/GUI在多任务环境下工作与在单任务环境下工作性能同样卓越,任何尺寸大小的显示设备,不管是物理的或是虚拟的,只要具备LCD控制器和处理器,都可以运用μC/GUI。μC/GUI产品包中包含有所有的源代码。实际上,在所有的嵌入式图形用户接口中,μC/GUI提供的源代码是最整洁最统一的。μC/GUI提供的所有服务都以该模块相关的前缀开始(如:GUI,WM),这将易于理解应用程序中与μC/GUI相关的函数。同时,μC/GUI所有的服务都有很明晰的分类:GUI表示二维图形,GUI_AA表示反锯齿等。
μC/GUI适用于所有处理器,与那些需要C++编译器的GUI不同的是,μC/GUI完全用标准C编写。
8位至32位的处理器都可以运行μC/GUI;处于性能方面的考虑,推荐使用16位及其以上的CPU 。 可选的附加模块允许用户根据应用的需要和性能定制存储器封装。这些模块有:
存储设备:用于避免在绘制重叠图案时显示屏闪烁
窗口管理:允许用户创建并处理各种大小的窗口
控件:控件是具有对象属性的窗口,比如:按钮,收音机按钮,滚动条,复选框,列表等。它相当于Windows下的控件。
对话框:对话框一般是指需要用户输入信息的窗口。它可能包含多个控件,需要用户通过选择输入信息,也可能是消息框和确认按钮,给用户显示一些简单的信息(比如给用户提示或警告)
触摸屏:目前基本的μC/GUI 包中包含有对触摸屏的支持,该模块包括一个底层驱动,用于处理模拟量输入(模拟量来自于两个8位或者更高精度的A/D转换通道)以及触摸屏的反跳和校准。该模块是可选的,因为如果用户产品没有触摸屏,就不需要该模块。
反锯齿:通过将前景色和背景色混合得到平滑的曲线和斜线。
多个显示设备:可以在所有层和显示设备上显示窗口和进行画图操作。多个层和多个显示设备的处理方式是一样的(使用相同的API例程),即便是某个嵌入式系统使用了多个显示设备,这些显示设备也只是简单地被当做是多层。μC/GUI 阅读器允许用户查看每个单独的层(显示设备),但是如果是多层系统,则会查看实际的输出(复合的视图)。
LCD 驱动:Micrium 为目前流行的大多数LCD控制器提供驱动
μC/GUI 产品包中包含有开发工具包,以方便用户的项目开发
μC/GUI 包括 MSVC++下的仿真环境。它可以用于在PC上编写和测试所有的用户接口(不管采用什么CPU和LCD,所有的例程都与嵌入式应用完全等同)。 这将方便调试和开发。产生在LCD上的截屏可以作为截图直接加入文档中。
JPEG采用实际硬件的位图来对目标系统进行显示仿真。
| μC/GUI 阅览器, 一个独立的程序,即便在调试时也可显示所模拟的LCD中的内容。
μC/GUI位图转换器:能把所有的位图转换成标准的C代码。位图转换器显示要转换的图形。
大量例子函数都可以用位图转换器来实现, 包括横向或者纵向浏览,旋转位图,以及转换位图的索引或颜色。 μC/GUI字体转换器:它可以把任意一种Windows-PC下的字体转换成一个"C"文件,在用户的嵌入式应用中可以编译和链接。这样,用μC/GUI就可以在LCD上显示字体,它支持各种比例大小的字体,同时可以创建外文字体。
最小化封装
存储器大小要求根据所用的软件部分和目标编译器的效率不同而有所不同,所以不可能指定精确的数值,但是下面的参数适用于典型的系统。
小型系统(没有窗口管理器)
■ RAM: 100 bytes
■堆栈: 500 bytes
■ ROM: 10-25 kb (与所用的功能有关)
大型系统 (包括窗口管理器和控件)
■ RAM: 2-6 kb (与要求的窗口数有关)
■ 堆栈: 1200 bytes
■ ROM: 30-60 kb (与所用的功能有关)
注意如果用户的应用需要用到很多字体则要求增加ROM的大小。上面的所以参数只是粗略估计,并不能完全保证。
例子
μC/GUI 以源代码的形式发布。在μC/GUI产品包中包含了大量源代码的例子,这些例子为μC/GUI的一些特性提供了一个简单的介绍。比如:
■ 二维图形
■ 反锯齿
■ 色彩管理
■ 窗口/控件/对话框
■ 字体
■ 存储器设备(避免闪烁)
■ 仿真PC模拟环境下的硬按键 还有一个例子综合演示了μC/GUI的大部分特点。
用户手册
μC/GUI的源代码结构合理,有丰富的文档手册。除了源代码软件的性质,μC/GUI的用户手册中包含了500页描述API函数的内容。
|
μC/TCP-IP 是一个经过压缩的、可靠的、高性能的 TCP/IP协议栈。它是在遵从Micrium公司高质量,可裁剪和高可靠性的声誉的原则下构建的,因而可以快速地配置所需的网络选项,使客户的产品尽快上市。 整洁的源代码 μC/TCP-IP 为客户提供业界质量最高的源代码。μC/TCP-IP 遵从无冗余设计,它不是来自于可以公开获取的Unix 协议栈,但是仍然与 Berkeley 4.4 套接层接口兼容。与所有 Micrium 的产品一样, μC/TCP-IP 用ANSI C编写,可以在一系列优秀的交叉开发工具下广泛使用。
方便 μC/TCP-IP 可以用于16位, 32位甚至是一些64位 的CPU上。
高性能 μC/TCP-IP 是特别为嵌入式系统的要求设计的。临界段被设置到最小,同时可以禁止选择运行时间确认来提高性能。μC/TCP-IP 通过零拷贝缓存管理来实现最高效率。
可裁剪和可固化 μC/TCP-IP 允许用户根据实际需求调整存储封装。μC/TCP-IP 可以配置只包括那些目标系统必需的网络模块。如果某个模块没有用到,在编译时不会被包括以为资源有限的嵌入式系统节约宝贵的存储空间。
版税免费μC/TCP-IP 授权于每个终端产品,不需要任何运行时间版税。
以太网 μC/TCP-IP 目前支持以太网 NICs,可以方便地移植到任何一种以太网控制器上。
需要RTOS μC/TCP-IP 需要运行一个实时操作系统(RTOS)或者一个执行任务调度和互斥的内核 。μC/TCP-IP 包括了所有与μC/OS-II 接口的源代码, 但是可以方便地移植到其它RTOS上。 这些数据是用IAR的编译器在ARM7的目标板上的ARM模式下编译得到的。编译时做了优化以提高速度。选项表示是否使能那些检查声明、空指针、无限制的范围、静态计数器、错误计数器的代码。
Micrium发布USB客户端批量协议栈:uC/USB版本1.00
USB客户端批量协议栈已经在任何嵌入式系统上通过USB客户端控制器设计工作。硬件抽象层容易编写或者修改已经存在的硬件访问子程序。这可以应用于USB1.1或者USB2.0设备。
这个协议栈包括嵌入式系统部分和PC的驱动程序。嵌入式系统部分以源码形式发布;PC驱动程序通常提供可执行文件(.sys),但是也可以提供源代码。
这个USB协议栈的目标是让开发者快速顺利的开发嵌入式设备与PC通过USB通讯软件。这个通讯象一个单一的、高速的、可靠的通道(跟TCP连接很类似)
这个协议基本能够允许PC发送数据给嵌入式目标机,目标机接收这些数据并且应答几个字节。PC是USB主设备,目标机是USB从设备。这个USB标准定义了4种通讯方式:控制,等时,中断和批量。经验说明:绝大多数嵌入式设备选择批量通讯模式。它可以利用USB总线的最大带宽。
速度:
USB1.1(12Mbit/sec)设备的最大可能传输速率大约每秒1.1Mbyte。这个数据传输率在快速系统上能够达到,比如ARM7。
软件包含(根据LICENSE的选择):
协议栈的源代码(目标机端)
配置样例
硬件层子程序样例
加载测试系统USB驱动和.inf文件的PC程序(源代码和可执行格式) |