实验二:交叉编译环境的建立

合集下载

linux实验二交叉编译和Makefile实验报告

linux实验二交叉编译和Makefile实验报告
运行gcc编译出来的可执行文件。
[root @localhost hehui]# ./hmily
④使用交叉编译器编译并运行。
A.[root @localhost hehui]# arm-linux-gcc -o hmily ji_oushu.c
B.打开另外一个终端,输入minicom进入板子里去。
C.操作一下命令。
[root @localhost ~]# cd 2008550533
[root @localhost 2008550533]# mkdir hehui
[root @localhost ~]# cd hehui
[root @localhost hehui]# vi ji_oushu.c
/*输出50以内的奇数和偶数*/
④使用gcc编译,查看运行结果。
[root @localhost prime]# gcc prime.c -oprime_hehui
[root @localhost prime]# ./prime_hehui
⑤编写Makefile文件实现第④步功能,并使用make工具生成这个可执行文件。
[root @localhost prime]# rm -r prime_hehui
all:prime
prime:prime.o main.o
$(CC) $(CFLAGS) $^ -o $@
prime.o:prime.c
$(CC) $(CFLAGS) -c $< -o $@
main.o:main.c prime.h
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -fr prime_hehui *.o
clean: 37

交叉编译环境的配置与使用

交叉编译环境的配置与使用
cd / usr/ local/ src / tar xzvf gcc - core - 3 . tar. gz cd gcc - core - 3 / . . / configure ———target = TARGET ———p refix = / usr/ local/my_crosscom2 p iler 这是两个基本的参数 ,针对不同的环境还有其它的参数可以使用 ,参 考各项配置参数的含义以决定使用哪些参数
Ttext 0x80000000. 其中的 filename是生成的可执行文件名 ,参数 ———entry = my_main -
Ttext 0x80000000就是程序的入口 ,地址是 0x80000000。 参考文献 : [1]http: / /www. objsw. com /CrossGCC / CrossGCC Frequently A sked Ques2 tions
[2]http: / /www. debian. org /ports/m ip s/ debian - m ip s and debian - m ip sel (作者单位 :江苏南京市幼儿高等师范学校 )
(上接第 185页 )个性化推荐服务 ,不但根据读者的特性提供具有针对性的 信息 ,而且还能通过对读者专业特征 、研究兴趣的智能分析而主动向读者 推荐其可能需要的信息 ;三是个性化知识决策服务 。即利用数据仓库 、数 据挖掘 、知识提取 、人工智能等技术对信息内容进行深加工 ,向读者提供能 够用于决策支持 、智能查询 、科学研究 、解决问题的策略 。这是数字图书馆 个性化信息服务的发展趋势 。开展个性化信息服务还必须注重对读者信 息需求的获取和分析 。读者的信息可以从读者的注册和调查记录 、流通和 借阅记录 、参考咨询留档 、馆际互借记录 、电话和邮件服务情况 、电子数据 库的使用等统计和分析中得来 。基于大量读者的各自不同的信息需求 ,应 对集成化信息进行高效率的过滤 ,即进行“信息分流 ”,从而提高个性化信 息服务的质量和效率 。

实验二 GCC 及GDB的使用

实验二  GCC 及GDB的使用

实验二GCC 及GDB的使用一、实验目的和要求a)掌握VI编译环境。

b)掌握GCC编译命令。

c)掌握多个文件共同编译方法。

d)掌握GDB调试命令。

二、实验内容和原理(可参照课件第五章)a)在VI编辑器里编写简单的“hello,world,I am 13050141XX XXX”,利用GCC编译为可执行文件,执行,观察运行结果。

b)在VI编辑器里编写多个文件(至少两个,其中一个为主程序,一个为需要调用的子程序),为其书写头文件,共同编译为可执行文件,执行,观察运行结果。

学习书写MAKEFILE文件,编译,执行,观察结果。

c)编写循环结构的程序,利用GCC 编译(加参数-g)为可执行文件,利用GDB调试,学习GDB调试命令。

三、实验环境a)硬件:PC机b)软件:LINUX操作系统、虚拟机四、实验步骤vi hello.c i:C语言编程Esc :wq gcc hello.c gdb file a.out run a实验三交叉编译环境配置一、实验目的和要求熟悉 Linux 开发环境,学会基于S3C2410 的Linux 开发环境的配置和使用。

使用Linux 的armv4l-unknown-linux-gcc 编译,使用基于NFS 方式的下载调试,了解嵌入式开发的基本过程。

二、实验内容a)配置网络,包括配置IP 地址、NFS 服务、防火墙。

b)安装交叉编译器c)配置超级终端,下载文件到目标机上。

三、实验设备及工具(包括软件调试工具)硬件:UP-TECH S2410/P270 DVP 嵌入式实验平台、PC 机Pentium 500 以上, 硬盘10G 以上。

软件:REDHAT LINUX 9.0+超级终端+ARM-LINUX 开发环境四、实验步骤(所有的内容截图)1、虚拟机设置为桥接模式。

2、配置IP地址,设置为192.168.0.xxx参照实验指导书图1.4.1-1.4.3. 自己截图,说明3、关闭防火墙,参照实验指导书图1.4.4自己截图,说明4、打开桌面超级终端(HyperTerminal),配置COM1,115200波特率,8N1,实验箱插上电源线,网线与主机相连,串口线与主机串口1相连,开机,看bootloader程序VIVI是否自动加载,回车后进入命令提示符。

iwpriv交叉编译

iwpriv交叉编译

iwpriv交叉编译
1. 交叉编译工具链,首先,我们需要准备适合目标平台的交叉编译工具链,这包括交叉编译器、交叉链接器等工具。

这些工具通常由目标平台的开发者或厂商提供,我们需要根据目标平台的架构和操作系统选择合适的工具链。

2. 构建环境设置,在进行交叉编译之前,我们需要设置好构建环境,包括环境变量、编译选项等。

这些设置需要根据目标平台的要求进行调整,以确保生成的代码能够在目标平台上正确运行。

3. 代码配置与编译,针对iwpriv工具的源代码,我们需要进行相应的配置和编译。

在进行配置时,需要指定交叉编译工具链,并根据目标平台的要求进行选项设置。

然后使用交叉编译工具链进行编译,生成适合目标平台的可执行文件。

4. 测试与调试,在生成可执行文件后,我们需要在目标平台上进行测试与调试。

这包括验证iwpriv工具在目标平台上的功能是否正常,以及进行必要的调试工作,确保生成的可执行文件能够在目标平台上稳定运行。

总之,进行iwpriv交叉编译需要我们充分了解目标平台的架构
和要求,准备好相应的交叉编译工具链,进行适当的代码配置与编译,并在目标平台上进行测试与调试。

这样才能确保生成的可执行
文件能够在目标平台上正常运行。

希望以上内容能够对你有所帮助。

实验报告-linux环境开发

实验报告-linux环境开发

实验报告- 一、交叉编译环境搭建:在没有root 用户权限时,用sudo 来执行超级权限的命令。

解压缩后,最好要加入path 中,方便使用。

Path 文件在vim /home/ubuntu/.bashrc 加入的语句为export PATH=$PATH:/usr/local/arm/2.95.3/bin二、Ubuntu 10.04 下安装配置NFS安装nfs后,要创建共享目录,是为了上传文件用,而串口作为命令控制和输出的功能。

而且必须要设定好权限允许读写。

然后重启nfs服务。

注意:实际的程序文件保存在共享文件夹后,并没有上传到板卡的存储上,还是存在在宿主机的存储中,两者mount在一起,运行时,板卡执行是共享文件夹的程序。

三、挂载nfs文件系统配置minicom, /dev/ttyS0是表示com串口端口1,配置ip后,挂载nfs文件系统,mount两个文件夹。

四、Hello程序测试用arm-linux-gcc 来编译文件,copy到共享目录后,在mincom里执行程序。

五、编程实验1、Client程序:若是自己创建的配置文件,需要替换最后的回车符为文字结束符。

2、server程序:在while中不断等待客户端连入时,需要把每次READ输入参数的功能创建一个新的线程来响应,而不影响下一次客户端的连入。

ret=pthread_create(&id,NULL,(void*)thread,NULL);创建一个新的线程。

这个thread函数里完成的功能是,一旦客户端输入,即刻打出输入字符,并close这个线程。

3、makefile:执行顺序与行排列无关,注意编译要用超级用户,并且server 程序编译要带 lpthread,连接多线程的库。

综述,第一次实际接触到板卡,对开发过程和开发模式有了实质性的飞跃。

对linux下的开发有了初步的了解。

并发现了很多自己存在的问题。

理论和实际操作有很大差距,在实际操作时,会出现很多想象不到的问题。

嵌入式linux实验报告

嵌入式linux实验报告

嵌入式linux实验报告嵌入式Linux实验报告一、引言嵌入式系统是指嵌入在各种设备中的计算机系统,它通常包括硬件和软件两部分。

而Linux作为一种开源的操作系统,被广泛应用于嵌入式系统中。

本实验报告将介绍嵌入式Linux的相关实验内容和实验结果,以及对实验过程中遇到的问题的解决方法。

二、实验目的本次实验旨在通过搭建嵌入式Linux系统,了解Linux在嵌入式领域的应用,并掌握相关的配置和调试技巧。

具体目标如下:1. 理解嵌入式系统的基本概念和原理;2. 掌握Linux内核的编译和配置方法;3. 熟悉交叉编译环境的搭建和使用;4. 实现简单的应用程序开发和调试。

三、实验环境1. 硬件环境:嵌入式开发板、计算机;2. 软件环境:Ubuntu操作系统、交叉编译工具链、嵌入式Linux内核源码。

四、实验步骤与结果1. 内核编译与配置通过下载嵌入式Linux内核源码,使用交叉编译工具链进行编译和配置。

在编译过程中,需要根据实际需求选择合适的内核配置选项。

编译完成后,生成内核镜像文件。

2. 系统烧录与启动将生成的内核镜像文件烧录到嵌入式开发板中,并通过串口连接进行启动。

在启动过程中,可以观察到Linux内核的启动信息,并通过串口终端进行交互。

3. 应用程序开发与调试在嵌入式Linux系统中,可以通过交叉编译工具链进行应用程序的开发。

开发过程中,需要注意与目标平台的兼容性和调试方法。

通过调试工具,可以实时监测应用程序的运行状态和调试信息。

五、实验结果与分析在本次实验中,我们成功搭建了嵌入式Linux系统,并实现了简单的应用程序开发和调试。

通过观察实验结果,我们可以得出以下结论:1. 嵌入式Linux系统的搭建需要一定的配置和编译知识,但通过合理的配置选项和编译参数,可以实现系统的定制化;2. 应用程序的开发过程中,需要注意与目标平台的兼容性和调试方法,以确保程序的正确运行和调试的有效性;3. 嵌入式Linux系统的稳定性和性能受到硬件和软件的综合影响,需要进行系统级的优化和调试。

crosstool

crosstool

建立交叉开发环境一、实验目的通过运用crosstool-0.43.tar.gz脚本工具包来制作自己的交叉编译器二、实验环境UBUNTU开发环境 linux-2.6.14.tar.gz内核 fs2410开发板三、实验步骤1、crosstool是由美国人Dan Kegel(毕业于加(利福尼亚)州工学院)开发的一套可以自动编译不同匹配版本gcc和glibc,并作测试的脚本程序。

下载地址/crosstool/crosstool-0.43.tar.gz在/crosstool/crosstool-0.43/buildlogs/可以看到各种CPU和GCC+Glibc版本那些已经编译成功,那些部分成功,那些彻底失败。

2、制作之前确保你的机子上有如下几个工具:bison,flex,build-essential 具体安装如下:(1)#apt-get -d install flex //这条命令是下载flex安装包,下载的默认地址在/var/cache/apt/archives/flex_2.5.33-10build1_i386.deb(2)#dpkg -i /var/cache/apt/archives/flex_2.5.33-10build1_i386.deb 这条命令是安装flex_2.5.33-10build1_i386.deb这个软件包,这样你的系统就支持了flex工具。

(3)其他两个工具包安装同flex安装步骤一样。

3、#su linux //权限必须是一般用户。

4、在/home/linux目录下面建立crosstool和downloads目录(1)#mkdir /home/linux/crosstool downloads5.把需要用的工具包拷贝到downloads目录下面.(1)工具包有(gcc-3.4.5-glibc-2.3.6.dat有说明):gcc-3.4.5.tar.gz glibc-2.3.6.tar.gz linux-2.6.14.tar.gz crosstool-0.43.tar.gzbinutils-2.15.tar.gz glibc-linuxthreads-2.3.3.tar.gz(2)下载地址:/中可搜索到需要的数据包。

搭建ppc交叉编译环境

搭建ppc交叉编译环境
/home/yaoxt/ppc_cross,ppc_85xx为交叉编译的目标处理器(根据目标即处理器类型
而定)
注意:
安装时不要使用root权限,很有可能会导致安装失败
按安装时可能会因缺少库依赖而安装失败,安装对应的库文件重新安装即可
3
3.1
命令:vi ~/.bashrc
3.2
"PATH=$PATH:/home/yaoxt/ppc_cross/bin:/home/yaoxt/ppc_cross/usr/bin"
3.4
"CROSS_COMPILE=ppc_85xx-"
注意:ppc_85xx-最后面有一个横杠,该横杠必须添加。
以上环境变量配置完成后使用export命令设置以上环境变量,最终设置结果如下图所示:
设置完成后,将设置的环境变量置生效,主要的方式有:
(1)执行:source ~/.bashrc
(2)重启中端(推荐)
4
编一个简单的main.c程序,执行:ppc-linux-gcc -Wall -g -o main main.c
若编译成功,则说明ppc交叉编译环境搭建成功。
5
5.1
Linux源码下载地址:/,在该网站中选择合适的版本下载。本文中以下载linux-2.6.36.2版本为例进行说明。
1.2
为方便公司内部下载使用,已将ppc-2008-04-01.iso镜像文件下载后上传至本地ftp,ftp地址为:xxxxx
2
2.1
命令:mkdir /mnt/cdrom
说明:该命令的目的是创建一个镜像文件的挂载点,挂载点/mnt/cdrom的目录名称和路径可自定义
2.2
命令:sudo mount–o loop ppc-2008-04-01.iso /mnt/cdrom
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二:交叉编译环境的建立一.实验目的通过本实验,使学生掌握交叉编译环境的建立,了解在S3C2410平台上交叉编译的工作方式和原理。

二.实验原理和说明1、minicom 用法:minicom 是安装REDHAT 时安装的软件,它使用配置文件/etc/minirc.dfl,华恒光盘安装时会提供这个文件。

【注意】minicom 占用串口,能且仅能启动一个minicom,启动第二个时就会报错:Device /dev/modem is locked。

其中/dev/modem 就是/dev/ttyS0,即PC 机串口1,它是在光盘安装时执行./arminst 时创建的链接。

查看arminst 文件,可以看到如下一行: ln -sf /dev/ttyS0 /dev/modemminicom 所有的操作都以ctrl+A 开始,例如:退出为ctrl+A,松手后再按下Q,则弹出如下一个小框:选Yes 即可退出minicom。

minicom 中最重要的操作就是对其进行配置的修改。

这个操作要先ctrl+A,松手后按下o(是字母o,option 之意,不是零),则弹出如下框:选择第三项“Serial port setup”,则弹出下面框:键入E 则弹出如下框,可改变波特率:若要使用PC 机的串口2 来接开发板的串口1 做监控,则要在串口配置框中选择A,即“Serial Device”,则原来的配置框第一行进入编辑模式,将原来的/dev/modem 改为如下的:/dev/ttyS1,即串口2。

退出配置框只需连续按ESC 键即可返回。

2、HHARM9-EDU目录结构介绍安装过我们提供的光盘以下,会在您的PC机上建立一个HHARM9-EDU的目录。

在shell提示符下执行ls命令,可以显示整个PC上的目录结构:[root@…. root]# cd /[root@…. /]# lsHHARM9-EDU boot lost+found opt sbin usr dev home proc tftpboot var initrd misc root tmp bin etc lib mnt[root@….. /]#其中在PC机(宿主机)的根目录下安装了HHARM9-EDU的目录和opt目录,其中HHARM9-EDU是开发套件的源代码、驱动、以及相应的应用程序。

opt是ARM的编译器存放的目录。

进入HHARM9-EDU看看。

[root@……. /]# cd / HHARM9-EDU[root@HHARM9-EDU /] # lsImages applications kernel opt.tgz gprs-ppp minirc.dfl ppcboot-2.0.0 record-image SJF下面对以上目录作简单介绍:(1) /HHARM9-EDU/SJF/JTAG烧写工具源码目录,在该目录下执行make,即可生成JTAG烧写工具SJF2410,它就是我们通过JTAG烧写ppcboot要用到的文件。

(2) /HHARM9-EDU/ppcboot/bootloader源码目录,在该目录下简单的make即可生成HHARM9-EDU的bootloader - ppcboot.bin,可以通过修改这些源码来修改bootloader。

『说明』在嵌入式系统中,我们把引导系统的初始化部分的代码统称为bootloader,相当于PC机的BIOS。

但在我们提供的很多套件中,有的引导代码用的是ppcboot,有的是u-boot,有的是bootloader等等,但实际烧写到flash中的文件一般为ppcboot.bin、u-boot.bin、bootloader.bin等二进制代码文件。

(3)/HHARM9-EDU/kernel/Linux 内核源代码目录,以后如果改动内核后,若重新生成新的内核镜像文件zImage,就可以在此目录下执行make zImage。

(4) /HHARM9-EDU/application/应用程序目录,用户可参考此目录下的其它目录,其中添加自己的应用程序。

(5) /HHARM9-EDU/Images/其下是编译好的映像文件或者可执行文件,其中:zImage是编译好的内核文件,SJF2410是编译好的JTAG烧写工具,ppcboot是编译好的引导程序,ramdisk.image.gz是ramdisk 文件系统映像,cramfs.img是cramfs文件系统的镜像文件,jffs2.img是jffs2文件系统的镜像文件。

如果是用tftp下载相关的文件,请把相关文件放到/tftpboot目录下。

三.实验内容和步骤1、NFS的配置(1) NFS的配置:首先在REDHAT LINUX PC机上shell提示符[root@….]# 执行setup,弹出菜单界面后,选中:System services,回车进入系统服务选项菜单,在其中选中 [*]nfs ,然后退出setup 界面返回到命令提示符下。

vim /etc/exports将这个默认的空文件修改为只有如下一行内容:/ (rw) //即根目录可读写,/和(rw)之间要要留空格然后保存退出(:wq),然后执行如下命令:/etc/rc.d/init.d/nfs restart这样就一切OK了!【注意】默认情况下Linux启动时并不启动NFS服务,为了避免每次都要执行以下这一句: /etc/rc.d/init.d/nfs restart可以把此句写入PC机的脚本文件/etc/rc.d/rc.local中,PC机启动时会执行此文件,不用每次执行上面的那条命令来启动NFS。

配置完成后,可用如下办法简单测试一下NFS是否配置好了:PC机自己mount自己,看是否成功就可以判断NFS是否配好了。

例如在PC机的根目录下执行:(假定PC机的IP是192.168.2.122)mount 192.168.2.122:/ /mnt然后到/mnt/目录下看是否可以列出所指定的IP的机器(可以是本机,当然可以测试其它机器是否可以被mount)根目录(/)下的所有文件和目录,可以则说明mount成功,NFS 配置成功。

2、TFTP服务的配置:TFTP服务只在第一次使用时需要配置,以后其开机自己运行。

在PC机上执行setup,选择System services,将其中的tftp一项选中(出现 [*]表示选中),并去掉ipchains和iptables两项服务(即去掉它们前面的*号)。

然后还要选择Firewall configuration,选中No firewall。

【注意】setup里面的防火墙显示永远都是HIGH,这个是REDHAT一直的一个小BUG,即使你安装时默认选择了NO FIREWALL,setup里面也照样会显示防火墙设置是HIGH的,这个可以不必理会。

只要你选择了一次NO FIREWALL就可以了。

最后,退出setup,执行如下命令以启动TFTP服务:service xinetd restart配置完成后,建议简单测试一下TFTP服务器是否可用,即自己tftp自己,例如在PC机上执行:cd /cp /etc/inittab /tftpboot/ /*随便拷贝一个文件到/tftpboot目录下以供下面使用tftp命令下载,如果在/tftpboot目录下没有下面使用get命令下载的文件,会提示您没有找到相关文件。

*/tftp 192.168.2.122tftp> get inittab若出现如下信息:Received 741512 bytes in 0.7 seconds就表示TFTP服务器配置成功了。

在根目录下就会在刚才下载的inittab文件存在了;若弹出信息说:Timed out,则表明未成功,或者用如下命令查看tftp服务是否开通:netstat -a|grep tftp若TFTP服务器没有配置成功,需要按照上述步骤重新检查一遍。

【注意】对于REDHAT7.2及以前的版本,需要使用linuxconf命令来配置NFS。

4、内核编译如果想编译可以在非X86系统的CPU中运行的可执行的程序,必须安装适合于此CPU体系结构的编译工具,也就是说不同的CPU体系结构用的编译器是不一样的,HHARM9-EDU使用的交叉编译的工具被放置到/opt/host/armv4l目录下。

GNU工具集armv4l-unknown-linux-gcc armv4l-unknown-linux-objcopy Armv4l-unknown-linux-gdb armv4l-unknown-linux-as armv4l-unknown-linux-objdump Armv4l-unknown-linux-gasp armv4l-unknown-linux-ld armv4l-unknown-linux-strip Armv4l-unknown-linux-size armv4l-unknown-linux-g++ armv4l-unknown-linux-nm Armv4l-unknown-linux-addr2line armv4l-unknown-linux-cc1 armv4l-unknown-linux-ararmv4l-unknown-linux-cpp armv4l-unknown-linux-ranlibarmv4l-unknown-linux-cc1plus armv4l-unknown-linux-stringscd /HHARM9-EDU/kernelmake menuconfig则出现如下界面,可逐项对内核和驱动模块进行选择和配置:可见内核版本为:Linux Kernel v2.4.18-rmk7-pxa1一些关键的设置:System Type --->(S3C2410-based) ARM system type--- S3C2410 Implementation[*] SMDK (MERI TECH BOARD)[*] change AIJI< > S3C2410 USB function support--- Processor Type[*] ARM920T CPU idle[*] ARM920T I-Cache on[*] ARM920T D-Cache on[ ] Force write through caches on ARM920T[ ] Support Thumb instructions (experimental)完成自己的设置后,退出,保存配置,然后执行make zImage即可编译生成自己定制的内核映像文件zImage,此文件会被复制到/tftpboot/目录下以供烧写。

相关文档
最新文档