1 / 24
文档名称:

联发科芯片.doc

格式:doc   页数:24页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

联发科芯片.doc

上传人:xxj16588 2016/6/2 文件大小:0 KB

下载得到文件列表

联发科芯片.doc

相关文档

文档介绍

文档介绍:联发科芯片 nucleu s 实时操作系统 MTK 手机软件系统工程和配置简介 2009-01-24 20:42MTK 是现在市场上所有国内手机设计、制造商使用的最多的一个完整的手机产品解决方案, 大部分做手机的技术人员都对此有接触和了解。不过, MTK 的整套软件系统十分庞大且复杂, 很多刚接触这套系统的软件工程师一时不知如何进行配置和客户化定制。本文在此对整个 MTK 软件系统的工程结构和配置进行了简单介绍, 希望通过此文和大家相互交流 MTK 软件系统的维护和修改、定制方面的心得。 MTK 使用了 nucleus 实时操作系统, 在其上做了个内核抽象层的封装,以适应多种实时操作系统,如 oscar 、 ThreadX 、 nucleus 。整个软件系统包括 nucleus 操作系统、平台设备驱动、协议栈、文件系统、 WGUI 、 MMI 、 J2ME 等。在这里 MMI 部分几乎包括了操作系统内核、协议栈、文件系统之上的所有部分,其中 WGUI 也在其中。 MTK 的 PC 模拟版使用 VC 的编译器和链接器生成, ARM 版使用 的编译器和链接器生成。因为 MTK 的整个软件系统是一个很庞大而且复杂的工程, 并且要支持多个 MTK 的产品系列和多家客户的客户化支持,使用集成开发环境(IDE) 已经无法胜任,而且很难做到整个工程的自动构建和资源、代码的生成。所以 MTK 的软件系统使用了 windows 下的 GNU 开发工具链(MinGW) 来进行工程的管理、配置和构建, MTK 将 MinGW 放到了第三方工具中。另外还使用了 perl 脚本来解析用户输入的命令行参数,因此第三方工具中还包含了 ActivePerl(windows 下的 perl 解释器) 。不过,整个软件系统并没有使用 MinGW 的全部工具,好象只使用了 make 这个工具,由几个 Makefile 控制了构建的过程, 在编译和链接时根据最终生成 PC 模拟版还是 ARM 版而分别调用VC 的编译器和链接器或 ADS1. 2 的编译器和链接器。接下来我们从具体的工程实践来看 MTK 的手机软件系统。一. MTK 手机软件系统的目录结构简介 MTK 手机软件系统的主要目录如下所示, 因整个工程的目录树非常庞大, 为简单起见和减小篇幅, 去除了在工程结构中相对不重要的目录。. |-- Fast_DL |-- ROM |-- adaptation |-- applib |-- bootloader |-- config |-- custom | |-- app || `-- TOP_6227_BB | |-- common | |-- drv || |-- LCD ||| `-- TOP_6227_LCM || `-- image_sensor || `-- MT9D011 |-- drv |-- fs |-- inc |-- init |-- interface |-- j2me |-- kal |-- make | |-- applib || |-- || |-- || |-- || `-- | |-- bootloader | |-- config | |-- custom |-- media |-- mmi |-- modis |-- mtk_lib | `-- MT6227 | `-- S01 | `-- gprs | |-- | |-- | |-- .lib |-- nucleus |-- nvram |-- plutommi |-- tools Fast_DL 是开发时下载二进制映像和资源等的相关文件的目录。 ROM 是固化在 ROM( 可能是 Flash 的只读区) 中的相关代码和头文件的目录,在给客户的发布版中大都只有一些导出函数的头文件,其中似乎还有一个跳转表的东西 ROMSA_FuncTable 。 kal 是上面所说的内核抽象层的相关文件的目录。 nvram 是存取 NV 中的内容的相关代码的目录。 nucleus 是 nucleus 实时操作系统的目录, 在给客户的发布版中只有头文件。 drv 是驱动相关的代码的目录。 fs 是文件系统相关的目录, 好像只支持 fat 格式的。 tools 是工程相关工具的目录,包括 MinGW 。 interface 是系统各层的接口的目录, 还包含重要模块的接口,如 bluetooth 、 WIFI 。 config 是一些系统和任务(task) 相关头文件的目录, 感觉不像是配置相关的目录。 inc 是中断控制和寄存器地址相关头文件的目录。