首页 | Linux 基础 | 资讯动态 | Linux 应用 | Linux 服务器 | Linux 开发 | Linux 安全 | 专题 | 联盟论坛
  当前位置:主页>Linux 开发>Linux 嵌入式>文章内容
嵌入应用--9200M开发板实验文档
来源:http://www.unix5.com 作者:linux爱好者 发布时间:2008-05-07  
6s8Linux联盟
6、最后

把include/configs/at91rm9200dk.h  copy一份并改名为h9200m.h修改其中的内容:# define PLLAR_VAL 0x20263E04 改为   0x2026BE04 我们设置cpu的工作频率为180MHz# define SDRAM1 0x20000080 改为   0x20000020  我们不需要sdram的burst读模式# else# define CFG_ENV_ADDR (PHYS_FLASH_1 + 0xe000)  把ENV定义在FLASHROM最高端 (PHYS_FLASH_1 + 0x3F0000) # define CFG_ENV_SIZE 0x2000  /*0x8000*/  把0x2000改为0x10000由于FLASH高端是每64K为一个sector# define PHYS_FLASH_SIZE 0x200000   /*  2 megs main flash */ 修改flash rom的大小为0x400000    /*  4 megs main flash  */  我们板上的FLASH容量是4MB6s8Linux联盟
在# define CONFIG_BAUDRATE 115200下面添加以下的一些环境变量

6s8Linux联盟
# define CONFIG_ETHADDR  00:11:43:43:93:5F# define CONFIG_IPADDR   192.168.0.139# define CONFIG_SERVERIP 192.168.0.123# define CONFIG_BOOTARGS "root=/dev/ram rw initrd=0x21400000,6000000 ramdisk_size=15360 console=ttyS0,115200 mem=32M"# define CONFIG_BOOTCOMMAND "run ramdisk;run image;run boot"# define CONFIG_EXTRA_ENV_SETTINGS  \"image=cp.b 10020000 21000000 13ffff\0"  \"ramdisk=cp.b 10160000 21400000 28ffff\0"  \"boot=bootm\0"  \""6s8Linux联盟
好了,到此为止,我们的uboot就配好了,为了编译出ARM可以识别的指令,我们需要搭建一个交叉编译环境,所谓交叉编译,就是说在一台机器上运 行编译器,但该编译器生产的代码是运行在另外一种架构的机器上的,具体来说就是我们以X86的pc机作为开发主机,用搭建好的交叉编译环境,编译出ARM 可以识别的指令的程序(pc机X86架构,我们的H9200开发板是ARM架构)。由于我们不仅仅只是编译uboot和linux内核,还要编译其他一些 应用软件,而那些应用软件需要其他一些常用的库文件支持,如:libssl库,编译与ssl有关的应用软件时便需要这库文件支持,所以为了后期开发工作的 方便,我们用uboot官方提供的专为ARM架构所用的开发工具包,Embedded Linux Development Kit ,当然我们也可以自己编译一个交叉编译平台,具体请参考 XXXXXXXX文档。下载完开发工具包后,执行./install [-d <dir>] [<cpu_family1>],其中[-d <dir>]为指定要安装的目录, [<cpu_family1>]为所要安装的CPU架构,我们应该选择ARM,输入命令./install [-d <dir>] arm 平台搭建好后,我们还要修改一下linux的环境变量,好让编译时能找到交叉编译时用到的工具,输入export PATH=$PATH: [-d <dir>](开发工具包的安装路径)/usr/bin命令。进入uboot的源码目录,由于uboot在编译时,默认是选择源码目录为代码 输出目录的,因此可定义一个环境变量BUILD_DIR,让它指向想要的uboot代码输出目录,我们假设要输出到/opt/uboot, 因此执行命令,mkdir –p /opt/uboot && export BUILD_DIR=/opt/uboot ,然后便可以开始编译了,首先make distclean ,然后 make h9200m_config ,最后make all 等编译完毕后,在 /opt/uboot目录下便有u-boot.bin、u-boot、u-boot.srec文件,其中u-boot.bin是要烧写进板内 NORFLASH的二进制文件。

把uboot.bin烧写进板内的NORFLASH,让目标板能运行uboot 1、配置终端,好让我们能看到目标板的输出和控制目标板。 输入minicom -s 将光标移到Serial port setup并且回车 在Serial port setup 选项中输入每个选项所列的首字母进行相应选项的修改 Serial Device 设置为/dev/ttyS0 Bps/Par/Bits 设置为115200 8N1 Hardware Flow Control 设置为 No Software Flow Control 设置为 No 最后按ESC返回主菜单 选择Save setup as dfl 保存为默认设置。

2、启动片内ROM的程序,下载Uboot到SDRAM运行 把程序烧写进NORFLASH,有几种方法,用专用的烧写器,但不现实;用JTAG调试器,成本太高;用一个运行在目标板上的烧写程序,这是一个好方法, 但我们该到哪去找这个烧写程序呢?uboot里就有,用我们已编译好的uboot.bin行吗?可以!但是有个前提条件,就是在配置 include/configs/h9200m.h时要定义多一个宏定义: # define CONFIG_SKIP_LOWLEVEL_INIT 1,目的是跳过uboot运行时,对cpu底层的初始化工作,但这样一来问题又出现了,为了要让目标板正常运行起来,一定要进行cpu底层的初始化工作, 我们能定义的那个,跳过对cpu底层的初始化工作的宏,是因为Atmel公司的AT91RM9200的特殊性,该芯片内就集成了Atmel为 at91rm9200的初始化程序,因此可以跳过uboot的对cpu底层的初始化程序,但在我们的H9200M开发板上,Atmel公司的初始化程序最 终目的只是用于使用Xmodem协议下载程序进cpu片内RAM,而片内RAM只有区区的16K,根本容纳不下我们的uboot.bin,怎么办?可以用 厂家提供的loader.bin来把我们的uboot.bin加载到SDRAM中运行,但即使我们的uboot.bin能正常运行也不能烧写进 NORFLASH,因为没有了对cpu底层的初始化工作啊!除非我们做了两个uboot.bin,一个含有底层初始化程序,一个没有,用没有底层初始化程 序的那个,烧写有底层初始化程序的那个,这是调试uboot的好方法,在SDRAM频繁的读写不会有什么损失,但FLASH却不同了,FLASH有擦写寿 命限制,擦多了,FLASH便报废了。(以上描述可能有点绕,慢慢理顺一下吧 ^_^)

但在此我们使用让厂家提供的uboot(偷一懒,毕竟少编译了一个uboot,呵呵!)。在配置好终端后,将H9200M的跳线J100 的2-3短接(选择片内ROM启动),然后复位系统,打开minicom终端,在终端会出现“CCCCCCCC…..”,此时AT91RM9200片内 ROM的程序已开始运行,等待你的下一步操作,按ALT+a,s键,使用Xmodem协议,发送loader.bin文件,然后终端会出现下载Uboot 的提示,下载完毕后会继续出现“CCCCCCCCC………” ,继续使用Xmodem协议,发送uboot.bin文件,此时uboot.bin被发送到系统的SDRAM中,发送完毕后uboot开始运行,显示 >U-Boot的提示符。

共4页: 上一页 [1] 2 [3] [4] 下一页
 
如果您对本文有任何疑问或者建议,请到论坛讨论区发表您的意见: >> 论坛入口
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
  热点文章
·嵌入式Linux系统下图形库讲解及
·Qt/Embedded在嵌入式Linux中的应
·嵌入式Linux:uClinux操作系统移
·嵌入式系统 Boot Loader 技术内
·嵌入式 用户图形接口uC/GUI的简
·基于GTK+和X的GUI在嵌入式Linux
·嵌入式Linux系统下的MiniGUI研究
·Linux串口上网的简单实现 (图解)
·在Ubuntu上建立Arm Linux的开发
·嵌入式Linux操作系统启动信息完
·Linux 2.6 内核的嵌入式系统应用
·嵌入式Linux在Blackfin处理器上
  相关文章
·如何在虚拟机Linux系统下连接ARM
·BusyBox 精简嵌入式 Linux 系统
·嵌入式uClinux的内核结构和开发
·三种嵌入式操作系统的深入分析与
·嵌入式Linux平台的多协议路由器
·实时嵌入式系统的图形界面支持系
·Linux 2.6 内核的嵌入式系统应用
·Qt/Embedded在嵌入式Linux中的应
·一种嵌入式Linux平台的软硬件设
·嵌入式Linux系统的低功耗策略研
·嵌入式Linux移植实时设备驱动程
·文档分析__嵌入式Linux在网络处

本站信息源至:互联网络,均为学习,交流所用,如有版权问题,请联系我们.
站长QQ:397422079 E_mail:riechelr_hl@unix5.com
转载本站内容请注明原作者名.谢谢!