实验一mini2440裸板驱动开发环境搭建.docx

上传人:b****5 文档编号:7540354 上传时间:2023-01-24 格式:DOCX 页数:17 大小:836.79KB
下载 相关 举报
实验一mini2440裸板驱动开发环境搭建.docx_第1页
第1页 / 共17页
实验一mini2440裸板驱动开发环境搭建.docx_第2页
第2页 / 共17页
实验一mini2440裸板驱动开发环境搭建.docx_第3页
第3页 / 共17页
实验一mini2440裸板驱动开发环境搭建.docx_第4页
第4页 / 共17页
实验一mini2440裸板驱动开发环境搭建.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

实验一mini2440裸板驱动开发环境搭建.docx

《实验一mini2440裸板驱动开发环境搭建.docx》由会员分享,可在线阅读,更多相关《实验一mini2440裸板驱动开发环境搭建.docx(17页珍藏版)》请在冰豆网上搜索。

实验一mini2440裸板驱动开发环境搭建.docx

实验一mini2440裸板驱动开发环境搭建

实验一mini2440裸板驱动开发环境搭建

讲师:

杨行

【实验目的】

1、了解mini配置串口通信参数的过程,掌握利用mini进行传输文件方法

2、了解网络文件系统nfs的配置,掌握利用nfs进行文件的传输和异地运行目标板程序

3、掌握tftp的使用方法

【实验原理】

一、安装编译器

1.mkdir/usr/local/arm

2.tarxjvfarm-linux-gcc-4.4.3.tar.bz2–C/usr/local/arm

3.vim/etc/profile

+

PATH=/usr/local/arm/4.4.3/bin:

$PATH

4.source/etc/profile

5.arm-linux-gcc-v

注意:

1Ubuntu14.0464位系统无法运行32位可执行文件,需要安装一个32位兼容库lib32z1

2Ubuntu12.0464位系统安装ia32-libs

3sudoapt-getinstalllibstdc++6

4sudoapt-getinstalllib32stdc++6

二、mini的使用

1.安装:

sudoapt-getinstallmini

2.配置:

mini-s

3.使用:

命令:

ctrla+qquit

ctrla+wlineWrap

ctrla+zhelp

1、串口通信参数的设置

确认USB转串口工具是否已经连接到电脑上,如果连接到电脑上,则:

ls/dev/ttyUSB0

如果已经确认了ttyUSB0已经存在,则:

首先运行mini,由于mini是通过串口来工作的,所以要通过mini程序来对串口通信参数进行设置。

启动mini的设置窗口:

在linux的终端中输入“mini–s”,然后,按下回车键。

springspring-virtual-machine:

~$sudomini-s

“-s”选项调出配置信息。

下面显示的就是配置的菜单。

有关串口通信选项的含义:

"Filenamesandpaths":

选择需要传输的文件和路径

"Filetransferprotocols":

选择传输文件的通信协议

"Serialportsetup":

设置串口通信参数

"Savesetupasdfl":

将设置好的各项参数保存为dfl

"Savesetupas":

将设置好的各项参数保存为自定义的文件名

"Exit":

退出返回到mini设置好后的终端

"ExitfromMini":

从mini命令中退出返回Linux终端

将光标移到"Serialportsetup",按回车键会弹出串口通信参数的配置菜单。

(1)、串口通信口的选择:

(A-SerialDevice)

接"A"键把光标移动到SerialDevice。

如果串口线连在PC机的串口1上,则把Serialdevice设置为/dev/ttyUSB0。

如果连在串口2上,则把Serialdevice设置为/dev/ttyUSB1,然后按下回车键。

(2)、串口参数的设置(E-Bps/Par/Bits)

按"E"键来设置通信波特率、数据位、奇偶校验位和停止位。

可以通过按下不同的键来设置通信参数。

例如mini2440平台需要把波特率设为115200,数据位设为8,奇偶校验位设为无,停止位设为1。

可以分别通过按"E"、"V"、"L"、"W"键设置波特率、数据位、奇偶校验位和停止位。

设置完后按"Esc"返回。

(3)、数据流的控制选择(F-HardwareFlowControl、G-SoftwareFlowControl)

按"F"键可以完成硬件流控制切换,即完成"Yes"与"No"之间的切换。

按"G"键完成软件流控制切换,即完成"Yes"与"No"之间的切换。

下图显示的是串口配置好的后完整信息。

(4)、设置参数的保存与退出

配置完成后,按下“Esc”键,将会出现下图的配置菜单。

选择“Savesetupasdfl”按ENTER键来保存,当配置保存后,按下“Esc”键完成设置。

当mini窗口出现后,将mini2440开发板的启动方式选择按键拨到norflash重起mini2440将会看到启动信息。

如果没有出现启动信息,请检查min的设置和线缆连接是否有错。

2、利用串口通信文件传输

在与目标板连接后,可以通过串口下传一些文件到目标板,具体操作步骤如下:

(1)、在与目标正确连接后,进入[root51board~],按下CTRL+A键后,再按Z键,系统调出mini的命令选项菜单;

其中Sendfiles和Receivefiles两项负责文件数据的传输,所用命令使用热键进行激活。

如上传文件只需按S键。

(2)、当向目标板上传文件时,按S键,系统弹出串口通信协议选项,利用方向键选中zmodem传输协议,按回车键,进入文件选择菜单。

 

(3)、文件传输

文件选择菜单弹出后,利用空格键选中需要上传的文件,一次可以选择多个文件,选好需要传输的文件后按回车键,便可以进行文件数据传输。

当数据传输完毕,系统会弹出传输完毕提示菜单(如下图所示)。

 

三、安装tftp服务

1.sudoapt-getinstalltftptftpdxinetd

2.sudovim/etc/xinetd.d/tftp

servicetftp

{

socket_type=dgram

protocol=udp

wait=yes

user=root

server=/usr/sbin/in.tftpd

server_args=-s/tftpboot

disable=no

per_source=11

cps=1002#每秒100连接入站,如果超过限制则等待2秒

flags=IPv4

}

3.sudomkdir/tftpboot

4.sudochmod777/tftpboot-R

5.sudo/etc/init.d/xinetdrestart

6.sudonetstat-a|greptftp

说明:

修改项server_args=-s-c,其中处可以改为你的tftp-server的根目录,参数-s指定chroot,-c指定了可以创建文件。

 

四、安装NFS服务

1.sudoapt-getinstallnfs-kernel-server

2.sudovim/etc/exports

+

/nfsroot*(rw,sync,no_root_squash)

3.sudo/etc/init.d/portmaprestart

4.sudo/etc/init.d/nfs-kernel-serverrestart

5.showmount-e

网络文件系统nfs可以将PC机上的一部分文件系统作为目标机的资源,这样可以弥补目标机存储空间的不足。

在使用网络文件之时,应对网络文件配置进行一定的设置。

[root51Board~]$mount–tnfs192.168.1.12:

/mnt/nfs/mnt

上述设置实现将主机上的/mnt/nfs目录挂载到目标机的/mnt目录下,并作为目标机文件系统的一部分。

这时,可以将需要传输的文件或需要运行的程序保存在主机的/mnt/nfs目录下,然后在目标机对主机/mnt/nfs上的文件进行运行或复制等相应的处理。

五、编译安装u-boot

1.tarxvfbootloader.tar

2.cdbootloader

3.cdu-boot

4.makedistclean

5.makemini2440_config

6.make-j2

7.cpu-boot.bin~/桌面

8.使用mini2440提供的MiniTools烧写到开发板中

注:

开发板的S2开关搬到nor处。

makeclean仅仅是清除之前编译的可执行文件及配置文件。

而makedistclean要清除所有生成的文件。

下载完成后,将S2开关拨到nand处,启动板子,出现如下信息:

快速的按下任意键(建议按下回车键),使得进入u-boot模式中:

六、使用putty工具实现远程桌面连接

1、在ubuntu系统中安装ssh,可使用如下的命令进行安装:

sudoapt-getinstallopenssh-server

2、为了保险起见,安装完成后重启一下ssh服务,命令如下:

sudo/etc/init.d/sshrestart

3、下载putty,运行,如下后图所示,输入IP地址即可,注意端口号不要改

4、点击open,即可建立远程连接,运行后如下图所示

6、输入用户名后回车,然后会提示输入密码,这时输入相应的密码就可以了

注意:

如果直接登录在登录时可能会出现中文乱码的情况,这时可以在登录前进行如下的设置,就不会出现乱码了

这里我选择的是UTF-8是因为我的ubuntu系统是UTF-8编码格式的,大家可根据实际情况进行设置

七、Ubuntu终端远程连接计算机(Linux)

SSH是一个远程接入软件,可以让你想坐在计算机前面一样操作计算机。

SSH使用加密方式传输数据,是一种非常安全的工作方式。

步骤如下:

前提:

如果没有安装ssh的话请sudoapt-getinstallssh

1、在需要远程访问的计算机的“新立得”里面安装openssh-server。

这台计算机是远程计算机,你当前使用的计算机是本地计算机。

如果使用Ubuntu或者其他Linux版本,已经安装了连接到远程计算机的软件。

2、远程计算机软件安装完毕。

在本地计算机的终端里面输入:

sshusernameaddress

其中username是远程计算机的账户名称,address是远程计算机的IP地址或者域名。

平日你希望以root用户名登录192.168.0.99,可以使用:

例如:

sshspring192.168.0.99

如果不知道远程计算机的IP地址,可以在远程计算机上面点击网络监视器,选择“连接信息”,查看IP地址信息。

3、首次连接,可能提示“theauthenticityofthehostcan’tbeestablished”。

没有关系,回答yes进行连接,输入密码即可。

4、如果你登录一个标准的Shell会话,命令行提示符是“用户名远程计算机的名称”。

如果希望通过SSH运行图形程序,可以使用:

ssh-Xusernameaddress

连接以后,输入程序的名称即可。

譬如,启动gedit,输入gedit即可。

另外注意,尽管程序出现在你的计算机上面,但是它依然是运行在远程计算机上面。

如果启动OpenOffice或者其他复杂的图形程序,可能有一段时间的延迟。

另外一个SSH连接的用途是传输文件。

sftp命令可以实现这个功能。

用sftp连接到远程计算机,就可以像登录了一个ftp服务器一样。

另外还可以在Nautilus里面使用sftp,在Nautilus的地址栏里面输入:

sftp:

//address,系统会提示用户名和密码。

连接完成,就可以在Nautilus里面拷贝/删除文件了。

sftp是一个交互式文件传输程式。

它类似于ftp,但它进行加密传输,比FTP有更高的安全性。

下边就简单介绍一下如何远程连接主机,进行文件的上传和下载,以及一些相关操作。

举例,如远程主机的IP是202.206.64.33或者是域名.hebust.edu.,用户名是fyt,在命令行模式下:

sftpfyt202.206.64.33或者fyt.hebust.edu.。

回车提示输入密码。

进入提示符

sftp>

如果登陆远程机器不是为了上传下载文件,而是要修改远程主机上的某些文件。

可以

sshfyt202.206.64.33(其实sftp就是ssh的一个程式。

sftp>get/var//fuyatao/index.php/home/fuyatao/

这条语句将从远程主机的/var//fuyatao/目录下将index.php下载到本地/home/fuyatao/目录下。

sftp>put/home/fuyatao/downloads/Linuxgl.pdf/var//fuyatao/

这条语句将把本地/home/fuyatao/downloads/目录下的linuxgl.pdf文件上传至远程主机/var//fuyatao/目录下。

你如果不知道远程主机的目录是什么样,pwd命令可以帮您查询远程主机的当前路径。

查询本机当前工作目录lpwd.

改变路径可以用cd,改变本机路径可以用lcd;

lsrmrmdirmkdir这些命令都可以使用。

同理调用本机都是加l,即llslrm.

要离开sftp,用exit或quit、bye均可。

详细情况可以查阅mansftp.

如果觉得在命令行模式下不太方便,可以sudoapt-getinstallgftp。

在图形界面下操作就简便多了。

 

6、使用expect自动连接

#!

/usr/bin/expect

spawn/usr/bin/sshspring127.0.0.1

expect"*password:

"

send"123456\r"

expect"*]#"

send"cd/root"

expect"*]#"

send"exit\r"

expecteof

【实验仪器】

1、装有Linux操作系统的PC机一台;

2、mini2440实验开发平台一套

【实验内容】

一、使用u-bootprintf函数

1、用u-boot中的printf函数,而printf在u-boot中的实际地址是0x33f663a8;

该地址可以从u-boot.map文件中查找到;

2、个hello.c函数,代码如下:

void(*my_printf)(constchar*format,...)=(void*)0x33f963a8;

intmain()

{

my_printf("helloworld!

\n;

}

3、以下命令编译hello.c文件,如下:

编译产生目标文件:

springspring-ThinkPad-T60:

~/sq1415/01$arm-linux-gcc-chello.c-ohello.o

指定连接地址,连接产生可执行文件:

springspring-ThinkPad-T60:

~/sq1415/01$arm-linux-ld-Ttext0x30000000hello.o-ohello

/usr/local/arm/4.4.3/bin/.arm-none-linux-gnueabi-ld:

warning:

cannotfindentrysymbol_start;defaultingto30000000

注意:

有操作系统的时候不需要指定地址,无操作系统的时候,必须手动指定地址

去掉可执行文件的一些头信息,产生单纯二进制文件:

springspring-ThinkPad-T60:

~/sq1415/01$arm-linux-objcopy-Obinaryhellohello.bin

编译产生汇编文件:

springspring-ThinkPad-T60:

~/sq1415/01$arm-linux-objdump-Dhello>hello.S

查看产生的文件信息:

springspring-ThinkPad-T60:

~/sq1415/01$ls

hellohello.binhello.chello.ohello.SMakefile

springspring-ThinkPad-T60:

~/sq1415/01$

4、使用u-boot的tftp工具下载hello.bin到mini2440开发板中并运行:

下载之前首先确认上位机的网络配置与mini2440板子的配置信息

以下为板子的配置信息:

可以使用setipaddr192.168.0.230

setserverip192.168.0.1

saveenv

完成对,mini2440的网络配置

新建一个PC端的有线网络连接,使得PC端的

Ip192.168.0.1

子网掩码255.255.255.0

网关192.168.0.1

使用ping命令测试mini2440板是否与PC机联通

5、由于arm-linux-gcc、ld、objcopy、objdump命令字较长,键盘输入并不方便,所以以后调试过程中尽可能使用Makefile工具:

书写一个Makefile文件内容如下:

all:

arm-linux-gcc-chello.c-ohello.o

arm-linux-ld-Ttext0x30000000hello.o-ohello

arm-linux-objcopy-Obinaryhellohello.bin

cphello.bin/tftpboot/

clean:

rmhello.ohellohello.bin

【思考题】

使用u-boot自带函数实现输入输出操作

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1