cramfs 文件系统是专门针对闪存设计的只读压缩文件系统,其容量上限为256 MB,采用zlib 压缩,文件系统类型可以是EXT2 或EXT3。本系统选择的文件系统正是cramfs文件系统。可通过busybox 工具集来制作根文件系统。
(5)CGI 部分的设计
要实现网页的交互性和实时更新, 就要用到CGI 技术。公共网关接口CGI (common gateway interface ) 是一种服务器与浏览器信息交换的标准接口。从物理上看,CGI程序属于一个外部程序, 需要编译成可执行文件, 以便能够在服务器端执行, 它提供客户端页面HTML 代码的接口, 完成无法做到的交互功能。CGI 建立在C/S 机制上, 为外部扩展应用程序与Web 服务器交互提供了一个标准接口。按照CGI 标准编写的外部扩展应用程序可以处理客户端输入的工作数据, 完成客户端与服务器的交互操作。因此, 如果说CGI 是Web 能够发展如此迅猛的最大原因也不为过。本系统的CGI 部分的主函数(main) 中代码截取如图3 所示。
(6) 镜像的烧入
通过网络烧入代码可以利用tfttp 协议,在主机中开启tftp 服务, 同时指定镜像文件所在的目录, 然后利用超级终端来控制代码的烧入,打印信息。首先需要在超级终端中设置目标板的环境,包括MAC 地址、目标板的IP 地址、tftp 服务器的IP 地址,这里需要将目标板和开发主机的IP地址设置在同一个网段, 设置完成以后重启目标系统,进入待烧入模式, 通过tftpboot、erase、cp.b 等命令拷贝镜像文件到嵌入式设备存储设备中的指定地址段。
完全烧入完成后重启目标板上的Linux 系统即可。待烧入镜像在nand flash 中存放的地址空间如表1 所示。
表1 镜像文件在Nand Flash 中对应的存储位置
本文主要讨论了应用于投影机设备的嵌入式模块的设计与开发。包括开发平台的选择,配置嵌入式开发的环境,对于Kernel 和文件系统的裁剪。最后通过tftp 程序将编译生成的镜像文件烧写到嵌入式模块的存储设备中。