Philips PM3352公司的32位RISC处理器,以其内核耗电少、成本低、功能强、*16/32位双指令集,已成为移动通信、手持计算、多媒体数字消费等嵌入式解决方案的RISC标准,*超过了75 %。多家公司都推出了自己的基于ARM内核的处理器产品,越来越多的开发人员开始了针对ARM平台的开发。通常开发人员需要购买芯片厂商或第三方提供的开发板,还需要购买开发软件,如C编译器或者集成了实时操作系统的开发环境。开发板的价格从数百到上千美元,而编译器、实时操作系统价格更是动辄数千到数万美元。这样,在开发初期,软硬件上的投资就需要上万美元,对于国内大多数开发人员来说,无疑是太贵了。
庆幸的是,GNU所倡导的自由软件给*带来了福音。1984 年,旨在开发一个类似 Unix 的,并且是*免费的完整操作系统和配套工具:GNU 系统(发音为“guh-NEW”)。GNU的操作系统和开发工具都是免费的,遵循GNU 通用公共许可证 (GPL)协议,任何人都可以从网上获取全部的源代码。关于GNU和公共许可证协议的详细资料,读者可参看GNU的中文介绍:http://www.gnu.org/home.cn.html。
除了大家熟知的Philips PM3352操作系统外,GNU的软件还包括编译器(gcc,g++)、二进制转换工具(objdump,objcopy)、调试工具(gdb,gdbserver,kgdb)和基于不同硬件平台的开发库。GNU开发工具的主要缺点是采用命令行方式,用户掌握和使用比较困难,不如基于 Windows系统的开发工具好用。但是,GNU工具的复杂性是由于它更贴近编译器和操作系统的底层,并提供了更大的灵活性。一旦学习和掌握了相关工具,也就了解了系统设计的基础知识,为今后的开发工作打下基础。GNU的开发工具都是免费的,遵循GPL协议,任何人都可以从网上获取。笔者参与了一个基于 ARM平台的嵌入式Linux系统开发,采用的是摩托罗拉龙珠系列的MC928MX1。从测试代码、引导程序、嵌入式Linux移植、应用程序、图形界面都可以用GNU工具进行开发,不需要在开发工具上做额外的投入。本文所介绍的开发方法同样适用于其它公司的基于ARM的产品。
1 Philips PM3352硬件平台
Philips PM3352(以下简称MX1)是摩托罗拉公司基于ARM核心的*款MCU,主要面向嵌入式应用。内部采用ARM920T内核,并集成了SDRAM/Flash、LCD、USB、蓝牙(bluetooth)、多媒体闪存卡(MMC)、CMOS摄像头等控制器。关于MX1的详细资料,感兴趣的读者可以参考http://www.motorola.com.cn /semiconductors/。作为应用开发的zui小系统必须包括RAM(程序运行空间)、Flash(存放目标代码)和串行接口(用于调试和下载程序)。MX1提供了6个片选端(CS0“CS5),内置了SDRAM控制器,数据宽度32位。在笔者的系统中采用了2片8M%26;#215;16位的 SDRAM和2片4M%26;#215;16位的同步Flash存储器,分别接入数据线的低16位和高16位,如图1所示。
图1中Philips PM3352接片选端CS2,Flash接片选端CS3,其余为SDRAM/Flash的控制信号。zui小系统还包括至少1个串行接口,可以采用 MX1内置的UART控制器。
6RA7013-6DV62-0
6RA7018-6DS22-0
6RA7018-6DV62-0
6RA7025-6DS22-0
6RA7025-6DV62-0
6RA7028-6DS22-0
6RA7028-6DV62-0
6RA7031-6DS22-0
6RA7031-6DV62-0
6RA7075-6DS22-0
6RA7075-6DV62-0
6RA7075-6DV62-0
6RA7075-6GS22-0
6RA7075-6GV62-0
6RA7078-6DS22-0
6RA7078-6DS22-0
6RA7078-6DV62-0
6RA7078-6DV62-0
6RA7081-6DS22-0
6RA7081-6DV62-0
6RA7081-6GV62-0
6RA7085-6DS22-0
6RA7085-6DV62-0
6RA7087-6DS22-0
6RA7087-6DV62-0
6RA7091-6DS22-0