Linux-arm开发板与宿主机

Linux-arm交叉编译环境的建立

一、minicom的设置  

1、  在虚拟机上,首先停止虚拟机,在虚拟机的菜单栏上:VM→setting→add→series port→选择串口物理接口,自动选择auto detecte。这样在物理上实现了虚拟机的串口设置。  

2、  启动虚拟机,在终端上命令:﹟minicom –s 在出现的设置界面上,选择(1)series port→视你串口的具体连接设置好ttys0(com1)/ttys1(com2)→hardware 一行设置为NO→波特设置为112500。退出来。(2)选择modem and daily选项,按A把这一行所有文字删除,按B把这一行文字删除。      

  3、退出,保存为SF1      

  4、﹟minicom 进入超级终端界面,按下ctrl+A,Z进入菜单,按S,选择Zmodel,选择你要发送的文件,按下回车,如果开发板发出了清脆的声音,表示minicom设置成功了。

二、NFS的设置     

 1、在虚拟机上,点击左下角的红帽标志,进入菜单栏,系统设置→服务设置→服务。然后在出现的服务配置窗口中,把iptable,ipchains前的√去掉,把 nfs ,tftp选上。保存退出。    

 2、在控制开发板终端上﹟ifconfig  记住IP地址。      

3、在另外的宿主机上的终端上 (1)#ifconfig eth0 IP地址,把宿主机的IP与开发板的IP设置在一个网段上,如:         

 开发板IP:192。168。2。223          那么把宿主机IP设置为:192。168。2。33          

(2)#ifconfig lo 127.0.0.1       

4、在宿主机终端#vi /etc/exports      

 添加:/home 192.168.2.33 (rw,sync,no_root_sqaush)  保存退出。    

 5、在宿主机上运行:#exportfs –rv   

  6、#service portmap restart       看是否正常关闭启动    

 7. #service nfs restart         看是否正常关闭启动,如不正常,在网上查找原因。   

 8.如果NFS服务正常运行,我们在开发板上的主文件目录/下:   

    #mount –t nfs –o nolock 192.168.2.33:/home /tmp     

把IP为192。168。2。33的宿主机的/home目录的文件通过NFS方式挂载到开发板的 /tmp目录下。  

 9.然后在开发板的/tmp下看是否有宿主机的/home上的文件。如相同,表示NFS设置成功      

 三.建立交叉编译环境  

    下载交叉编译工具cross-3.3.2/2.9.5.tar.bz2到/usr/local/arm目录下,     

#tar zxvf cross-3.3.2/2.9.5.tar.bz2    

 #vi /etc/profile      

在出现pathmunge 文字段之后加入:pathmunge /usr/local/arm/3.3.2/2.9.5/bin 退出保存。这样我们就设置好了交叉编译环境了,  

 四.交叉编译     

在要交叉编译文件的目录下,如/home/hello     编写好hello.c

(1)  #vi Makefile   其内容如下:

 CROSS_COMPILE   ?= /usr/local/arm/3.3.2/bin/arm-linux- //交叉编译工具的目录  

 AS      = $(CROSS_COMPILE)as  

LD      = $(CROSS_COMPILE)ld  

CC      = $(CROSS_COMPILE)gcc

CPP     = $(CC) -E AR      = $(CROSS_COMPILE)ar

NM      = $(CROSS_COMPILE)nm

STRIP       = $(CROSS_COMPILE)strip

OBJCOPY     = $(CROSS_COMPILE)objcopy

OBJDUMP     = $(CROSS_COMPILE)objdump  

# To build modules outside of the kernel tree, we run "make"

 # in the kernel source tree; the Makefile these then includes this # Makefile once again.This conditional selects whether we are being included from the # kernel Makefile or not.   ifeq ($(KERNELRELEASE),)       

 # Assume the source tree is where the running kernel was built    

# You should set KERNELDIR in the environment if it's elsewhere    

 #KERNELDIR ?= /lib/modules/$(shell uname -r)/build     KERNELDIR ?= /usr/src/gec2410-linux-2.6.8.1  //我们已经把gec2410-~~编译在此目录      

# The current directory is passed to sub-makes as argument    

PWD := $(shell pwd)  

modules:    

$(MAKE) -C $(KERNELDIR) M=$(PWD) modules  

modules_install:  

 $(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install    

clean:     rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions  

.PHONY: modules modules_install clean  

else

# called from kernel build system: just declare what our modules are    

obj-m :=hello.o  //编译文件为hello.c与hello.o同主名

#hello.o hellop.o seq.o jit.o jiq.o sleepy.o complete.o /

#led.o gpio.o #s3c2410-adc.o

#silly.o faulty.o kdatasize.o kdataalign.o

endif  

# make -C /home/linux-2.6.8.1-zzm M=$pwd modules   

2) #make 这样得到了一系列文件

(3)在开发板上通过NFS或者minicom把hello.o的文件传送到开发板上,  

 (4)在开发板上#./hello.o,就可以看到调试结果了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值