SmartARM实验笔记Word文档格式.docx
- 文档编号:7752442
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:32
- 大小:1.83MB
SmartARM实验笔记Word文档格式.docx
《SmartARM实验笔记Word文档格式.docx》由会员分享,可在线阅读,更多相关《SmartARM实验笔记Word文档格式.docx(32页珍藏版)》请在冰点文库上搜索。
1-1、下载ZLG_BOOT
可以通过串口和以太网下载ZLG_BOOT。
串口下载较慢,以太网下载较快。
1-1-1、串口下载
(1)将开发板JP3断开,将JP1、JP2和JP8短接,将JP10设置为Bank0-Flash,Bank1-RAM,将JP9短接到OUTSIDE端。
使用串口延长线连接CZ2到PC机串口。
JP1—ISP功能使能,短接有效。
JP2—独立按键KEY1跳线,短接时KEY1输入有效。
JP8—P0.8RTL8019AS复位控制,短接时有效;
P0.9RTL8019AS中断输出,短接时有效。
(2)启动WINDOWS操作系统自带的超级终端,并设置为8位数据位,1位停止位,无奇偶校验位,波特率为38400,设置流量控制为“无”。
注:
超级终端的原理并不复杂,它是将用户输入随时发向串口(采用TCP协议时是发往网口,这里只说串口的情况),但并不显示输入。
它显示的是从串口接收到的字符。
所以,嵌入式系统的相应程序应该完成的任务便是:
1、将自己的启动信息、过程信息主动发到运行有超级终端的主机;
2、将接收到的字符返回到主机,同时发送需要显示的字符(如命令的响应等)到主机。
(3)运行H-JTAG并设置H-Flasher,然后打开FlashDown程序并进入AXD调试环境,全速运行程序,超级终端将会显示如图1.1所示的操作菜单子。
(4)在PC机键盘上输入1,进行FLASH芯片擦除,若正确擦除,将会显示“SuccessfullyErased”。
(5)正确擦除后,根据提示输入“.”即可继续操作,键盘输入3,编程FLASH。
(6)选择编程命令后,从【传送】【发送文本文件】打开program目录下的zlg_boot.hex文件,即可开始编程文件,如图所示。
程序下载需要几分钟至十几分钟,这与PC机的速度和系统已运行的程序多少有关,编程结束后,关闭超级终端。
1-1-2、通过以太网下载
为了能够ZLG/BOOT通过以太网下载程序(如uCLinux)到开发板上,需要设置PC机子网掩码为“255.255.0.0”。
通过以太网下载的操作和通过串口下载的操作方法很类似,因而在这里仅重点介绍以太网下载不同的地方。
(开发板设置同上)
(1)运行FlashDown工程
将EasyJTAG和开发板相连。
打开FlashDown_net文件夹下的FlashDown工程,选择DebugInExtRam。
设置跳线BANK0-Flash,BANK1-RAM,点击Debug按钮,进入AXD调试环境,全速运行程序。
注意:
该工程基于μC/OS-II操作系统,但工程中没有μC/OS-II源代码,用户需将μC/OS-IIV2.52的源代码放到source目录下,方可进行编译调试。
(2)建立以太网下载终端
打开超级终端,建立以太网下载终端。
选择使用TCP/IP,并设置主机IP地址192.168.15.25,端口号21,如图所示。
其中,主机IP地址可以在FlashDown_net文件夹下的FlashDown工程中的main.c文件中进行更改。
设置完毕后保存,并启动终端,将得到和图1.1一样的FlashDown界面。
如果先运行了终端,再运行FlashDown程序,有可能出现无法打开主机端口的警告,只要再次启动终端即可。
(3)下载ZLG_BOOT
按照“通过串口下载”中介绍的方法进行下载,不到1分钟,即可完成整个下载过程。
1-2、下载uCLinux内核、文件系统和演示程序
(1)启动超级终端,并设置为8位数据位,1位停止位,无奇偶校验位,波特率为115200,设置流量控制为“无”。
使用网线(交叉型)连接PC机和开发板的CZ4,将开发板上的JP1跳线器断开。
(注意问题:
是否需要在ADS运行工程的情况下下载?
)
(2)然后按RST键复位开发板。
此时开发板启动ZLG/BOOT,超级终端上会显示启动菜单,如图所示。
使用PC机的键盘输入F,格式化NANDFLASH。
(3)格式化完成后,超级终端上会显示启动菜单,使用PC机的键盘输入2,选择运行ZLG/FTP,IP地址按默认值(192.168.15.115)。
说明:
在下载程序(如uCLinux)到NANDFLASH之前,必须先格式化一次NAND
FLASH,而且只需要格式化一次。
(4)打开FlashFXP.exe程序,单击FlashFXP主窗口中的“连接”“快速连接”按钮。
然后在“快速连接”窗口中输入“192.168.15.115”,单击“连接”。
若网线正确连接,开发板上的RTL8019正常工作,则FlashFXP会提示连接成功。
若
提示连接失败,则需要检查连接的网线是否连接好。
(5)接下来就可以下载程序了,首先FlashFXP的左半部窗口(本地目录窗口)中找到要下载的目录program,然后把program目录下的除zlg_boot.hex文件之外的所有文件选中,单击鼠标右键,在弹出的浮动菜单中选择“传输”,即开始下载所选的文件,如图所示。
下载结束后,FlashFXP右下部的小窗口会有相应信息提示。
1-3、启动开发板
最后,将所有连接线拔出,按开RST键复位开发板,此时在超级终端上将会显示新的引导菜单,如图1.14所示。
不要输入任何选择,十几秒钟后自动运行出厂程序,TFT液晶屏会正常显示各种图片。
实验2uCLinux实验平台构建
1、宿主机和目标机
由于嵌入式Linux的开发板资源有限,不可能在开发板上运行开发和调试工具。
通常需要交叉编译调试的方式进行,即“宿主机+目标机(开发板)”的形式。
目标机和宿主机一般采用串口连接,亦可同时通过网口连接。
宿主机是运行Linux的PC,可以是安装了Linux操作系统的本地机,亦可以是Linux服务器(模型假定其IP为192.168.0.10)。
宿主机和目标机的处理器通常情况下都不会相同。
宿主机需要建立适合于目标机的交叉编译环境。
程序在宿主机上编译-连接-定位,得到的可执行文件则在目标机运行。
在宿主机上一般要运行两个窗口:
宿主机本机操作窗口和串口终端窗口。
(1)宿主机操作窗口可以是本机的操作终端(安装Linux的本地机),也可以是Windows下通过远程登陆软件Telnet登录到Linux服务器的操作界面,宿主机只能编译-链接程序,不能运行产生的flat文件(GCC模式的交叉编译调试方式)。
(2)串口终端,可以是Linux的minicom,也可以是Widows的超级终端,目标机可以看成一台计算机,串口终端就相当于这台计算机的显示器,作为人机交互界面。
在宿主机编译-链接后得到的可执行文件下载到目标机中运行。
2、建立交叉开发环境
2-1、建立开发环境
宿主机是运行Linux的PC或者服务器。
由于Linux版本众多,各版本之间存在差异,出于兼容性考虑,推荐安装RedHatLinux9.0。
在安装RedHatLinux的时候,建议选择Custom(定制)安装,在选择软件Package时,选择Everything,即安装所有软件包。
由于目标板平台处理器是ARM,因而需要安装GCC针对ARM的编译器。
适用于uCLinux的编译器为arm-elf-gcc。
arm-elf-gcc安装步骤:
(1)将光盘附带的文件arm-elf-tools-20040427.sh拷贝到目录如/usr/src下,为
arm-elf-tools-20040427.sh增加可执行权限(如果已经具有可执行权限,这步可省略)。
增加权限必须具有root权限,若没有root权限,请先为用户增加root权限(命令su)。
(2)安装arm-elf-gcc。
执行arm-elf-tools-20040427.sh。
安装完毕后,查看/usr/local/bin目录下是否存在arm-elf-gcc等文件,如果存在,基本可以确定交叉编译器安装成功。
(3)添加交叉编译器的路径。
一般情况下安装过程会自动执行,并在下次启动还有效。
2-2、安装uCLinux
(1)将光盘附带的uCLinux源码包uClinux-dist-20040408.tar.gz拷贝到目录如/usr/src下,并解压。
(2)为SmartARM2200开发板和LPC2200芯片打补丁。
将光盘附带的补丁文件uClinux-dist-20040408-lpc-chy-cmj.patch拷贝到当前目录下,并执行:
为LPC2200打补丁后,在uCLinux平台内核配置的时候将会有LPC2200的选项。
2-3、配置uCLinux
(1)配置方式
(2)配置uCLinux和文件系统
1:
新建终端或者控制台(CTRL+ALT+F1~F6)下,进入uCLinux源代码所在的目录,如/usr/src/uClinux-dist。
2:
如果不是进行第一次编译,需要先清除以前编译产生的辅助文件和目标文件,以保证编译的正确性。
如果是第一次编译则可省略。
3:
通过文本菜单方式配置uCLinux。
界面中有提示:
使用“↑”“↓”选择配置模块,使用空格键选择或者取消,使用“←”“→”选择命令,使用回车键Enter执行命令。
第一项可进行厂商/产品设置,选择第二项则进行内核版本和函数库设置。
各选项的含义以及设置如表1.1所示。
使用光盘提供的补丁文件后,只需对平台进行基本设置,最后选择DefaultallSettings退出保存即可。
如果要对内核或者厂商等进行特殊设置,请选中CustomizeKernelSettings或者CustomizeVendor/UserSettings。
使用光盘附带的uCLinux-dist包,可以不进行特殊设置,不过,用户可选中这2个选项,查看内核和用户程序的具体配置,参考。
如果用户在配置过程中进行了不恰当的配置,导致编译出错,选择DefaultallSettings后进行编译即可。
选择该项,为LPC2200打的补丁信息依然保留。
如果用户不需要对内核或者厂商进行特殊设置,选择Exit后则直接跳转到第4步。
如果用户在平台配置过程中选中了CustomizeKernelSettings,在平台配置完毕即可进入Linux内核配置界面,如图1.4所示。
配置完毕后选择Exit,然后在提示是否保存的时候选择保存。
如果用户在平台配置过程中选择了CustomizeVendor/UserSettings,则可进入用户程序配置界面,如图1.5所示。
配置完毕后,选择Exit,在对话提示选择保存。
4:
建立源代码文件依赖关系(第一次必须执行)。
makedep
5:
编译内核。
make
这两步的时间都比较长。
编译结束,会在uCLinux安装目录下建立romfs和images两个目录。
其中romfs为romfs文件系统的临时存放目录,里面有很多实用程序;
images为生成的目标代码目录,其中ronfs.img为romfs文件系统的映象文件,image.bin为文件系统和内核代码的目标文件。
在linux-2.4.x目录下会有一个linux文件,是编译好的内核文件,为elf格式。
这些文件可用于进行uCLinux内核实验。
至此,宿主机的交叉编译环境已经建立完成。
3、下载uCLinux内核到开发板
下载ZLG_BOOT要在Windows下进行,并且需要安装ADS1.2软件,下载uCLinux内核既可在Windows下也可在Linux下进行。
3-1、文件结构
光盘附带的用于下载到开发板的文件和目录如下所示:
下面对几个可编辑文件进行详细描述:
1)boot\zlg_boot.ini
ZLG_BOOT默认通过zlg_boot.ini文件进行文件管理和加载,对应于ZLG_BOOT启动界面选择菜单的选项3。
Zlg_boot.ini是一个文本文件,可以进行根据需要进行编辑。
它的每一行为一条命令,zlg_boot.ini顺序执行这些命令。
对于不能识别的命令,ZLG_BOOT将忽略。
典型的zlg_boot.ini内容如程序清单1.1所
2)zlg_ftp.ini
当使用FTP和开发板相连的时候,开发板使用zlg_ftp.ini所设定的IP地址等信息,在图1.33的界面中,具体体现为用户IP。
开发板默认IP为192.168.15.115。
zlg_ftp.ini文件内容如程序清单1.2所示。
(注意:
IPMark、MacID一定要与开发板一致)
3)etc\rc
uCLinux启动后,将会运行rc文件。
rc是文本文件,里面每行是一个命令,uCLinux将会顺序执行该文件。
典型的rc文件内容如程序清单1.3所示。
uCLinux启动后:
(1)加载bin目录下的rtl8019驱动程序;
(2)设定开发板运行uCLinux的IP地址;
(3)设定子网掩码;
(4)关闭网卡;
(5)设置网卡MacID地址;
(要与实际开发板一直)
(6)打开网卡;
(7)设定网关信息;
用户需要对此文件进行修改,但是注意:
MacID地址的第1字节必须为偶数。
如果用户需要uCLinux启动后自动运行某些命令或者程序,可修改rc文件,如后面会提到的自动进行NFS连接等。
如果在rc文件末尾添加命令:
则uCLinux启动后自动与IP地址为192.168.41.42的主机进行NFS连接。
3-2、下载ZLG_BOOT
出厂的开发板已经下载了完整的BootLoader程序和uCLinux内核以及文件系统等程序。
如果用户在使用过程中没有擦除NORFLASH(SST39VF160/1601),则不需要进行BootLoader的下载工作。
SmartARM2200主芯片为LPC2210,LPC2210芯片没有内部Flash,无法进行ISP下载,需要额外的DownLoad程序。
SmartARM2200提供了2种方式用于下载ZLG_BOOT:
串口下载和以太网下载,串口下载较慢,以太网下载较快,用户可以根据自身情况进行选择。
(1)下载ZLG_BOOT需要ADS1.2集成开发环境,如果用户的电脑上没有安装ADS1.2,请先安装。
(2)光盘提供了2个ADS工程分别用于串口下载和以太网下载,分别在文件夹FlashDown和FlashDown_net中。
由于下载方式同实验1,故在此不再赘述。
注意网络信息的设定:
设定网络的子网掩码,使其和FlashDown_net文件夹下的FlashDown工程中的main.c文件网络信息设定一致。
当然,用户也可以修改该文件,使文件和本地网络信息一致。
3-3、下载uCLinux内核和文件系统
1、Windows下进行FTP下载
该部分同实验1,再次不赘述。
2、Linux下进行FTP下载
(1)设置minicom
在Linux下,打开终端(亦可在控制台进行),启动minicom:
成功启动后的minicom运行界面如图1.23所示。
根据minicom的提示,按CTRL+A,松开后再按Z,进入monicom配置界面,如图1.24所示。
根据提示,按O,选择cOnfigureMinicom,在弹出的界面选择SerialPortSetup,如图1.25所示。
对串口进行正确设置:
波特率115200、8位数据位、1位停止位、无奇偶校验、无流控制,如图1.26所示。
设置好串口后,选择更改,在退回图1.25的界面,选择SaveSetupasdf1保存,并退出。
(2)启动ZLG_BOOT
进行正确的串口设置后,将开发板串口0和PC串口相连,给开发板上电,将进入ZLG_BOOT界面,如图1.27所示。
选择1,则使用用户IP进行FTP连接;
选择2,使用默认IP(192.168.15.115)进行FTP连接;
输入F,则对NANDFlash进行格式化。
现在选择2,使用默认IP进行FTP连接。
(3)启动gFTP
在Linux下,可以通过命令行和图形界面进行FTP下载,使用图形界面相对直观和简单,因而在这里介绍使用gFTP软件进行下载的方法。
在Linux下新建终端,输入gftp,启动gFTP软件,如图1.28所示。
通过网线将开发板接入局域网,或者通过网络交叉线直接将SmartARM2200和电脑相连。
在gftp中进行FTP设置:
在Host填入正确的IP地址,如在图1.27的界面选择2(使用默认IP)则填入192.168.15.115,并输入端口号21。
连接成功后的界面如图1.29所示。
亦可在Remote菜单,选择OpenURL,在弹出的对话框中填入开发板IP地址,然后点击Conect按钮进行连接,如图1.30所示。
进入存放内核和文件系统的目录,选择要下载的文件,然后点击传输按钮进行FTP上传。
大约一分钟后,传输完毕。
传送成功后的界面如图1.32所示。
3-4、启动uCLinux
在命令提示符“/>
”下,可输入各种uCLinux的命令。
如用户可以输入查看命令ls,查看一下开发板所建立的文件系统大致结构。
3-5、NFS设置
该节重点介绍使用NFS(NetworkFileSystem)调试uCLinux应用程序的方法。
要想进行NFS调试,需要在宿主机启动NFS服务以及主机进行一些设置。
(1)网卡设置
从RedHatLinux开始菜单,选择“系统设置”->
“网络”,打开网络配置界面,如下图所示。
双击eth0,在弹出的界面进行具体的网络设置,如IP地址、子网掩码和网关等信息,如图1.38所示。
不同局域网的设置不一样,详细的网络设置请参考RedHatLinux操作系统的使用教材。
(2)关闭防火墙
由于RedHatLinux默认安装时启动了防火墙,它将拒绝其它所有外来IP对它的访问。
要使用NFS服务,必须将防火墙关闭。
“安全级别”,打开RedHatLinux安全级别设置界面,将其安全级别设置为“无防火墙”,如图1.39示。
(3)去掉iptables服务
“服务器设置”->
“服务”,在弹出的界面中,将iptables前面的“√”去掉,如图1.40所示。
(4)启动NFS服务
如果用户在安装RedHatLinux9.0的时候选择了Everything,则从开始菜单,选择“系统设置”->
“服务器设置”,在其下一级将会有“NFS服务”的子菜单,如图1.41所示。
选择点击,将会弹出如所示的界面。
如果不是完全安装,则可能没有“NFS服务”子菜单,那样的话,请插入RedHatLinux的光盘,安装NFS服务。
点击“Add”按钮,将会弹出如图1.43所示的界面。
在相应栏分别填入共享目录以及可以访问该共享目录的主机的IP。
示例中设置主机IP为“192.168.*.*”,表示处于网段192.168.X.X的主机均可对共享目录“/home/armwork”进行访问。
至于一些权限,如“读/写”等,可以根据需要进行设置。
设置后的文件保存在/etc/exports文件中。
用户亦可直接修改该文件进行共享设置。
测试NFS是否设置成功。
可以将主机上的共享目录mount到自己另外一个目录下,如:
然后查看/mnt目录下是否有/home/armwork目录下的文件,如果有的话,则NFS启动成功。
3-6、GDB调试
在很多情况下,用户需要对一个应用程序进行反复调试,特别是复杂的程序。
调试Linux程序,常用的方法是进行GDB调试。
GDB调试既可通过网口进行,亦可通过串口进行调试。
采用GDB方法调试,由于嵌入式系统资源有限性,一般不可能直接在目标系统上进行调试,通常采取gdb+gdbserver的方式进行调试。
gdbserver在目标系统中运行,gdb则在宿主机上运行。
要进行GDB调试,目标系统必须包含gdbserver程序,宿主机也必须安装gdb程序。
开发板的内核已经包含了gdbserver程序;
如果用户的宿主机没有安装gdb程序,请先安装。
产品光盘上有安装文件(arm-elf-binutils-2.11-3.i386.rpm和arm-elf-gdb-5.0-1.i386.rpm)。
进行GDB调试,首先要在目标系统上启动gdbserver服务。
先进入要调试的程序所在目录,如hello,然后输入命令:
上述命令表示在目标系统的2000端口开启了一个调试进程,hello就是要调
试的程序。
然后在宿主机上启动gdb程序。
先进入要调试的程序所在的目录如hello,然后启动调试器arm-elf-gdb。
启动arm-elf-gdb后,在gdb命令提示符状态下输入“file+文件名”,装入调试程序的调试信息。
如果通过网口进行GDB调试,输入命令,与目标系统进行连接。
注意,端口号要和目标系统开启的端口号一致。
连接成功后,宿主机会输出提示信息,如:
在目标系统串口端将会输出提示信息,如:
连接成功后,即可输入各种GDB命令如list、run、next、step、break等进行程序调试了。
实验3uCLinux平台构建及预备知识
1、平台构建
本部分首先要基于实验2,在实验2的基础上进行NFS测试实验。
详细内容参见实验教材,着重强调以下几点:
Ø
进行NFS调试时,必须具有相应的权限,最好设为rwx模式。
Makefile内容的改写要与实验程序一致。
进行NFS连接时需将JP8短接!
注意在进行NFS连接时,要确保ZLG_FTP.ini和rc文件中有关网关、MacID的设置与开发板一致。
在SmartARM2200上,只有/usr目录是可写并能够掉电保存的(NANDFLASH),其余目录不能保存。
2、预备知识
2-1、程序目录结构
假定建立目录/home/armwork为实验工作目录,所有实验均在此目录下进行。
每个实验有自己的目录,每个实验目录下有自己的实验程序C文件、配置文件config.h以及Makefile文件等。
其中,header目录下存放了所有驱动的头文件,同时,需要在各自的实验程序config.h文件中添加语句“#include“../header/xxx.h””。
2-2、基本概念
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SmartARM 实验 笔记