reertek
级别: 新手上路
精华:
0
发帖: 18
威望: 19 点
镭: 36 L
贡献值: 0 点
在线时间:1(小时)
注册时间:2008-09-02
最后登录:2009-03-31
|
用GNU工具开发基于ARM的嵌入式系统 (一)
用GNU工具开发基于ARM的嵌入式系统 (一)
当前 ,ARM公司的 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。
除了大家熟知的 Linux操作系统外 ,GNU的软件还包括编译器( gcc,g++)、二进制转换工具( objdump,objcopy)、调试工具( gdb,gdbserver,kgdb)和基于不同硬件平台的开发库。 GNU开发工具的主要缺点是采用命令行方式 ,用户掌握和使用比较困难 ,不如基于 Windows系统的开发工具好用。但是 ,GNU工具的复杂性是由于它更贴近编译器和操作系统的底层 ,并提供了更大的灵活性。一旦学习和掌握了相关工具 ,也就了解了系统设计的基础知识 ,为今后的开发工作打下基础。 GNU的开发工具都是免费的 ,遵循 GPL协议 ,任何人都可以从网上获取。笔者参与了一个基于 ARM平台的嵌入式 Linux系统开发 ,采用的是摩托罗拉龙珠系列的 MC928MX1。从测试代码、引导程序、嵌入式 Linux移植、应用程序、图形界面都可以用 GNU工具进行开发 ,不需要在开发工具上做额外的投入。本文所介绍的开发方法同样适用于其它公司的基于 ARM的产品。
1 硬件平台
MC928MX1(以下简称 MX1)是摩托罗拉公司基于 ARM核心的第一款 MCU,主要面向高端嵌入式应用。内部采用 ARM920T内核 ,并集成了 SDRAM/Flash、 LCD、 USB、蓝牙( bluetooth)、多媒体闪存卡( MMC)、 CMOS摄像头等控制器。关于 MX1的详细资料 ,感兴趣的读者可以参考 http://www.motorola.com.cn/semiconductors/。作为应用开发的最小系统必须包括 RAM(程序运行空间)、 Flash(存放目标代码)和串行接口(用于调试和下载程序)。 MX1提供了 6个片选端( CS0~CS5) ,内置了 SDRAM控制器 ,数据宽度 32位。在笔者的系统中采用了 2片 8M×16位的 SDRAM和 2片 4M×16位的同步 Flash存储器 ,分别接入数据线的低 16位和高 16位 ,如图 1所示。
图 1中 SDRAM接片选端 CS2,Flash接片选端 CS3,其余为 SDRAM/Flash的控制信号。最小系统还包括至少 1个串行接口 ,可以采用 MX1内置的 UART控制器 ,图略。
图 1
2 自举模式
目前 ,许多嵌入式处理器都提供了自举模式( Bootstrap) ,供用户写入引导代码。自举模式利用了固化在芯片内部的一段引导程序 ,当处理器复位时 ,如果在特定引脚上加信号 ,则处理器将在复位后执行固化 ROM中的程序。例如 ,MX1提供了 4条复位引脚 ,复位时引脚不同的电平组合可以从不同的片选端启动系统。自举 ROM中的程序完成串口的初始化 ,然后等待用户从串口写入用户代码。自举模式所能接受的是一种专门格式的文本文件 ,包括数据和要写入 /读出的地址。关于自举模式的代码格式 ,可参考相关芯片的手册。在摩托罗拉的网站还提供了许多小工具 ,帮助开发者将其它格式的文件转换成为自举模式格式。通过自举模式下载的通常是一段和上位机软件(如超级终端)通信的程序 ,完成接收数据并写入 Flash的操作。写入的数据可以是用户自己的应用程序、数据或者操作系统的内核。通过自举模式下载的引导程序同样可以用 GNU工具开发。 全国统一报名电话:800-886-3788 (免费) 成都:(028)-85175020 (028)-85194325 QQ:张老师:619646474 杜老师:1070109944 成都睿尔科技 公司网站:www.re-er.com.cn
|
|
|
[楼 主]
|
Posted: 2009-03-04 17:00 |
| |