Linux驱动开发——SmartArm3250板子上搭建Linux


搞linux驱动开发,最关键的一点应该是环境的搭建,只有环境搭建好,我们才能在上面做后续更多的开发工作。实验室很多牛人都已经在博客上有详细描述过每个部分的搭建过程,但都比较多,比较分散,用来详细学习很不错。我这次主要是把内容都整合到一起,只是希望跟着我的步骤做,能很快的完成这么个系统的搭建,具体的解释和学习请点击 这里 。在这里也感谢他们的贡献。


在具体的搭建工作之前,我先介绍下我们所使用的现有环境。PC机所装系统是:Ubuntu 10.04和win XP(win系统下要进行Bootloader固化工作)。嵌入式板子是周立功所提供的ARM9——SmartArm3250。参考书籍是周立功板子配套带的《LPC3250&Linux 2.6 实验指导》。


前面所说的就是我们现有的资源,下面就介绍下装载系统前所需要进行的工作。(1)首先就是板子上的工作,将板子上的电池装上(电池一般在盒子的塑料袋中);(2)然后观察下板子, 在中间靠下的位置找到一个BOOT(ISP)的插针,确保短接它的条线冒,这步很关键,以后更新Bootloader时会遇到;(3)最后就是将连接线连接到主机上,需要连接的线有三条,一条是电源线,第二条是串口线,将板子CON4(紧挨网线口)接口与主机后串口接口相连,最后一条就是网线,将板子端和主机端相连接。(4)最后还可以做一个工作,以避免以后的麻烦,就是将主机和板子的Ip地址配置在一个网段内,因为目标机与主机通信时,需要两个机子在一个网段。板子一般在出厂时有一个默认的Ip地址是192.168.7.236,255.255.255.0。板子与主机默认通信的地址是192.168.7.110。所以咱们第一次用就将主机的IP地址配置成.110(以后还可以更改板子和主机的IP地址,Linux改IP的命令是:sudo ifconfig eth0 192.168.7.110 netmask 255.255.255.0)。


这些全部做完后,那我们的前期工作就全部完成了。下面就开始为板子装系统阶段,我们可以根据自己对win装系统的理解进行一下分析,如果板子是个裸机,我们都需要进行哪几步?第一如果让板子加电后进入Linux,首先肯定要有一个引导文件,win下是在硬盘的第0号扇区有个引导文件,板子也一样,我们需要将Bootloader装载在FLASH的前几个扇区,它的工作就是引导和进行一些初始化工作。第二步就是将Linux内核放到板子中。但Linux中光有内核是不行的,必须有文件系统,这样第三步也就出来了,那就是安装文件系统,SmartArm3250采用了双系统架构,一个功能简单的安全文件系统,一个用户系统。所以我们的文件系统装载又分为了两步。


有了对大概安装知识的了解,下面我们装系统大家也肯定就在心里有个谱。接下来我们分析一下每步需要进行的具体操作和环境。装载Bootloader需要用到两个软件,这两个软件在周立功配套光盘中都有,一个是UpdateBootloader.exe和Tera Term(这个在压缩包中,需要安装)。这两个软件都需要在windows下进行操作,装载Bootloader在win环境下进行。以后都可以在Linux下进行操作。第二步加载内核和装载文件系统都需要用到tftp服务器,这就需要我们在开始要搭建一个tftp服务器。这些都完成后系统就装完了,但是还有三个东西需要我们了解,并安装的。第一就是minicom,这个是Linux下最常见的串口调试工具(相当win下的超级终端),它可以对开发板进行操作与控制,这个是必须安装的。第二个是一个交叉工具链,我们Linux下有gcc,g++……这些编译工具,但这些编译工具都是运行在我们的PC机上,是PC机可以识别执行的,对于这样的程序放在嵌入式板上肯定不行。这就需要我们有目标板自己的编译工具链,这就是我们在写程序前必须安装的。第三个就是NFS网络文件系统,它允许板子通过网线访问主机的共享文件,这样可以减少对目标机系统FLASH的烧写,既减少了对FLASH损害,同时也节省了烧写FLASH所花费的时间。在我们写完程序后,可以采用交叉工具先进行编译,然后才通过NFS,让目标板进行访问。



下面就让我分别来介绍每个步骤,相信大家跟着做,一定能成功。



一、交叉工具链和安装


1、周立功配套光盘中提供了已经编译好的交叉工具链,是以rpm包形式提供:tc-nxp-lnx-armvfp-4.3.2-1.i386.rmp。首先将该文件复制到Linxu下的一个目录,输入命令: sudo rpm --force-debian -ivh tc-nxp-lnx-armvfp-4.3.2.1-1.i386.rpm 。交叉工具链将会被安装到/opt/nxp目录下,具体是在 /opt/nxp/gcc-4.3.2-glibc-2.7/bin/。 


2、为了方便使用,还需要将交叉编译器路径添加到系统路径中,在~/(用户根目录)下新建一个文件.bash_profile (注意是个隐藏文件,前面有点)。在文件中添加一句话: PATH=$PATH:$HOME/bin:/opt/nxp/gcc-4.3.2-glibc-2.7/bin   。这句话增加了交叉编译器安装路径。


3、要使编译器能用,必须运行。运行 .bash_profile文件的方法 ,进入~/目录,输入. . bash_profile 命令(点+空格 .bash_profile)。运行该文件后,在终端输入命令:arm-vfp-linux-gnu- 并按两下TAB键,如果能看到很多 arm-vfp-linux-gnu-前缀的命令,则基本可以确定交叉编译器安装正确。


注意:每次打开一个新的终端,都要运行一次 .bash_profile文件。




二、安装minicom


1、在终端中输入命令:sudo apt-get install minicom


2、配置minicom。在终端中输入命令:sudo minicom -s 。进入目录项 Serial port setup, 然后按下a键,修改为/dev/ttyS0(注意S是大写,后面是数字0),这样就是选择了板子端口UART0,然后按下回车;再按e,修改为115200 8N1,设置传输的比特率等设置,然后按下回车;再按f,把Hardware Flow Control 修改为No,然后按下回车。完后再按下回车进入刚才的那个目录,在主菜单中选择Save setup as dfl,保存为默认配置;最后选择Exit from minicom,退出配置菜单。


3、启动minicom。在终端中输入命令:minicom ,进入到minicom界面,如果主机跟开发板连接,这时如果按下板子的启动键,则在minicom界面中会看到整个加载的过程。系统启动完成后,minicom就相当与板子的一个终端,它可以对板子进行一些命令操作。




三、安装tftp服务器


1、安装三个软件t ftp-hpa,tftpd-hpa, xinetd 。在终端输入命令:sudo apt-get tftp-hpa tftpd-hpa xinetd 第一软件是客户端,第二个是服务程序,最后一个是 是一个守护进程,用于处理对各种服务的请求。


2、安装完成后,默认的服务器路径是 /var/lib/tftpboot/ (还有一种可以自己配置路径的方法,具体请点这里 ), 以后目标机需要通过tftp获取文件时,都是从这个目录中获得。


3、安装完成后,可以重启服务器,输入命令:sudo /etc/init.d/xinetd restart 。


4、现在来测试一下,首先在tftp服务器目录下随便新建一个 文件,比如a.c, 输入命令:   sudo touch a.c 。这时随便再进入到其他目录,输入命令: sudo tftp localhost 。这时会出现tftp命令行,这时输入命令: get a.c   。该意思是在localhost下,也就是 访问 本机中tftp服务器,获取文件a.c,若服务器没问题,则在该目录下会多出来一个刚才获得的文件a.c,这时就说明我们所安装的tftp服务器可以正常使用。




四、安装NFS服务器


1、安装软件,在终端输入命令: sudo apt-get install nfs-kernel-server


2、修改配置文件,在终端输入命令:sudo gedit /etc/exports  。在后面添加一条语句: /home/LPC3250  *(rw,sync,no_root_squash)   。前面的目录是设置你想要共享的主机里的某个目录,这里是将/home/LPC3250共享出来,后面的*是设置允许哪一段IP访问,这里的*代表任意IP段,括号里的是设置参数(具体的代表意义请看这里 )。


3、重新启动服务。每次更改配置文件后,都要输入命令进行保存: sudo exportfs -rv 。然后重新启动服务: sudo /etc/init.d/nfs-kernel-server restart 。


4、在本机中进行测试。输入命令: m ount -t nfs localhost:/home/LPC3250 /mnt -o nolock 。 本条命令的意思是将本机/home/LPC3250这个文件夹挂载到本机的/mnt下,即在/mnt目录下能够看到LPC3250中的内容,如果成功,则代表NFS安装成功。


5、在目标板中进行测试。在minicom的终端中输入命令: m ount -t nfs 192.168.7.110:/home/LPC3250 /mnt -o nolock 。 本条命令的意思是将主机/home/LPC3250这个文件夹挂载到目标板的/mnt下,目标板可以访问到主机共享文件中的内容。




五、下载Bootloader


1、进入到win系统中。在光盘中找到 UpdateBootloader.exe,双击运行。在左上角的窗口串口选择,选择COM1,点击打开串口按键。若旁边的灯变绿,则说明板子连接正常。下一步点击右上角的更新,会弹出一个信息提示窗口,它让我们将ISP跳线短接,并复位开发板。我们的跳线刚开始已经短接,这时我们要先点击这个小窗口的确定,等它消失后,我们再按开发板的复位键(这步操作顺序很关键,一定得先按确定,再按复位键)。大约10秒,程序提示更新成功。这时,Bootloader中的Kickstart和S1L就全部加载进开发板中。


2、固化U-Boot。在光盘中找到Tera Term压缩包,解压并安装。然后打开软件,在Setup目录下设置正确的串口(115200-8N1,无流控制)。然后复位,系统进入S1L的命令提示符界面,即SmartARM3250> (若原来板子中有系统的,在重启后,快速按任意键,则进入S1L命令提示符界面)。输入命令:erase 2 10 1 ,这条命令是擦除2扇区后面的10个扇区,即U-Boot;然后输入命令: load term raw 0x83fc0000 ;最后通过串口装载程序,打开File--->Send File,选择光盘中的u-boot.bin(光盘/Linux2.6.27/images目录下),点确定即可开始传输。


3、传完毕后,输入CTRL+B或者Control-->Send break,给个中断信后,使其返回到界面中,输入命令: nsave ,该命令将u-boot.bin写入到FLASH中。然后再输入命令: aboot flash raw 0x83fc0000 ,该命令是设置自启动参数从NAND FLASH启动。




六、固化Linux内核


说明:由于实验室很多人的板子都是里面存在着文件系统,所以不必要非得全部安装,只要将内核重新更新一下,就可以正常使用了。而且由于文件系统传输,需要用到SD卡,所以比较麻烦,若要装载文件系统,请参照书上的步骤。在这里,我只是介绍更新内核的步骤。


1、在更新内核前,要先对内核的扇区进行擦除,我们还要进入到S1L命令提示符命令行中(打开minicom, 在重启后,快速按任意键,则进入S1L命令提示符界面) ,SmartARM3250-->,在这里输入命令: erase 16 32 1   (将16扇区和后面的32个扇区全部删除,即内核所在扇区)。


2、重新启动SmartARM3250,在U-Boot启动过程中,在minicom下按任意键进入U-Boot的命令行状态(要比进入S1L命令行晚会儿再按任意键),即U-Boot$ 命令提示符。输入四条命令: (1)、输入 tftp 80008000 uImage ,下载uImage文件到开发板中。(2)、输入 nand write.jffs2 0x80008000 0x00200000 $(filesize) ,把刚才的uImage文件写入对应的Nand Flash的区域。(3)、输入 setenv kernelsize $(filesize) ,设置内核大小为uImage文件的大小。(4)、输入 saveenv ,保存设置。然后重新启动开发板,就可以看到在启动信息中,内核是刚才的那个uImage了。





哈哈。如果跟我走到这步,那么恭喜你,我们板子上的Linux就算是搭建成功了,如果没有什么例外,应该都能成功。大家都来试一试,有什么问题可以跟我交流。


 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值