记ubuntu的uClinux交叉编译环境的搭建以及操作系统的引导
for(i=0;i<=x;i++) for(j=0;j<0xff;j++) for(k=0;k<0xff;k++); } 将这两个文件放到“~/uClinux-dist/user”下新建的文件夹“new_ap”中,接下来就是为 这两个文件建立 Makefile
Delay(10000); \\即 00000100B,16 进制为 0x04
IOPDATA=0x02;
Delay(10000);
IOPDATA=0x04;
Delay(10000);
IOPDATA=0x08;
Delay(10000);
}
return 0;
}
第二个程序 串口通信
#define IOPMOD (* (volatile unsigned *) 0x03ff5000)
#define UTXBUF1 (* (volatile unsigned *) 0x03ffe00c) \\定义 UART1 发送缓存寄存器
#define URXBUF1 (* (volatile unsigned *) 0x03ffe010) \\定义 UART1 接收缓存寄存器
#define UBRDIV1 (* (volatile unsigned *) 0x03ffe014) \\定义 UART1 波特率分频寄存
#define ULCON0 (* (volatile unsigned *) 0x03ffd000) \\定义 UART0 线控制寄存器地址
#define UCON0 (* (volatile unsigned *) 0x03ffd004) \\定义 UART0 控制寄存器地址
#define USTAT0 (* (volatile unsigned *) 0x03ffd008) \\定义 UART0 状态寄存器
**要注意到 all、romfs、clean 等后面是具体 GCC 命令,必须换行后 Tab 一下才能识别,这 是语法问题! 下一步建立 user 文件夹下的 Makefile
添加如标注的两行,这样就能告诉编译器我们需要编译的东东
下面我们需要让“make menuconfig”能够显示出我们的程序来就还需要设置 "~/Uclinux-dist/config"目录下的“config.in”文件
在开始我们的烧写工作之前,需要先处理一件很重要的事情,这个就是我们的 Boot Loader, 这是启动系统的关键。
在 ADS 中编写 Boot Loader 程序。
;**************************Boot Loader By Leo 2011 All Rights Reserved**************************************
保存,退出
一步步执行,直到在“Main Menu“中选上我们的“Test Program“
这样我们就设置结束了,保存退出,分别执行"make dep"、"make clean"、"make lib_only"、 "make user_only"、"make_romfs"、"make image"生成我们的 rom 文件,值得注意的是有时 在"make image"时会出错,这个时候需要用"make linux"命令重新编译 linux 内核即可。
记 ubuntu 的 uClinux 交叉编译环境的搭建以及操作系统的引导
1、uClinux 交叉编译环境的搭建
从 下载好的文件有 arm-elf-tools-20030314.sh 和 uClinux-dist.tar.gz, 其中前者是编译工具,后者是 uClinux 的内核源码,我们就是利用这个工具编译裁剪好了的 系统。
终于让我找到了最好的解决方法,就是用 vi 修改这个文件的文件头。
我是把 arm-elf-tools-20030314.sh 放在 root 里面的,所以命令如下
sudo su
cd ~/
vi arm-elf-tools-20030314.sh
将这个文件的第 38 行改成这个样子
然后重启系统之后,就可以用 root 登录终端./arm-elf-tools-20030314.sh 命令安装了(具 体 vi 命令请参见网络上的说明)
器
#define ULCON1 (* (volatile unsigned *) 0x03ffe000) \\定义 UART1 线控制寄存器地址
#define UCON1 (* (volatile unsigned *) 0x03ffe004) \\定义 UART1 控制寄存器地址
#define USTAT1 (* (volatile unsigned *) 0x03ffe008) \\定义 UART1 状态寄存器
IOPMOD EQU 0x3FF5000 IOPCON EQU 0x3FF5004 IOPDATA EQU 0x3FF5008 CODE32 AREA Init,CODE,READONLY ENTRY B RESET NOP NOP NOP NOP NOP NOP NOP RESET
;*************************************************** ;MASK ALL INTERRUPTS ;***************************************************
#define UTXBUF0 (* (volatile unsigned *) 0x03ffd00c) \\定义 UART0 发送缓存寄存器
#define URXBUF0 (* (volatile unsigned *) 0x03ffd010) \\定义 UART0 接收缓存寄存器
#define UBRDIV0 (* (volatile unsigned *) 0x03ffd014) \\定义 UART0 波特率分频寄存
第一个程序------跑马灯
#define IOPMOD (*(volatile unsigned *) 0x03ff5000) \\定义 IO 工作方式寄存器端口地 址 #define IOPDATA (*(volatile unsigned *) 0x03ff5008) \\定义 IO 数据寄存器地址
rSYSCFG EQU 0xE7FFFF90 ;各寄存器的待设数值 rEXTDBWTH EQU 0x00003002 rREFEXTCON EQU 0xCE338360
rfROMCON0 EQU 0x02000060 rfSDRAMCON0 EQU 0x14010380 rsROMCON0 EQU 0x14048060 rsSDRAMCON0 EQU 0x10000380 rROMCON1 EQU 0x0 rROMCON2 EQU 0x0 rROMCON3 EQU 0x0 rROMCON4 EQU 0x0 rROMCON5 EQU 0x0 rSDRAMCON1 EQU 0x0 rSDRAMCON2 EQU 0x0 rSDRAMCON3 EQU 0x0
LDR R1,=SYSCFG LDR R0,=rSYSCFG STR R0,[R1]
LDR R1,=EXTDBWTH LDR R0,=rEXTDBWTH STR R0,[R1]
LDR r0,=ROMCON0
LDR r1,=rfROMCON0
LDR r2,=rROMCON1 LDR r3,=rROMCON2 LDR r4,=rROMCON3 LDR r5,=rROMCON4 LDR r6,=rROMCON5 LDR r7,=rfSDRAMCON0 LDR r8,=rSDRAMCON1 LDR r9,=rSDRAMCON2 LDR r10,=rSDRAMCON3 LDR r11,=rREFEXTCON STMIA r0,{r1-r11}
这个很坑爹的工具安装好了以后,就可以解压 uClinux-dist.tar.gz,解压在主文件夹是个 不错的选择,root 里面要向外复制的话文件权限 不好解决。
解压好了 uClinux-dist.tar.gz 之后,就可以先在目录下 make menuconfig 看一看内核设置 之类的东东了
当然,现在只是一个开始,还是得添加自己的一些程序到系统里,所以先退出,编写下要用 到的东西
添加如图所示的代码。
最后,需要这两个程序自动启动的话还需要修改 “~/uClinux-dist/Vendors/Samsung/4510B/"下的 rc 文件,向其最后添加 “./bin/led& ./bin/uart&" 两行代码。 完成这些以后,我们就可以开始编译了
在“Target Platform Selection"中选择“Customize Kernel Settings (NEW)“和”Customize Vendor/User Settings (NEW)“
void InitUART(int Port,int Baudrate) \\串口初始化函数体 { if(Port==0) { ULCON0=0x03; UCON0=0x09; UBRDIV0=Baudrate; } if(Port==1) { ULCON1=0x03; UCON1=0x09; UBRDIV1=Baudrate; } }
\\定义 IO 工作方式寄存
器地址
#define IOPCON (* (volatile unsigned *) 0x03ff5004)
\\定义 IO 控制寄存器
地址
#define IOPDATA (* (volatile unsigned *) 0x03ff5008)
linux交叉编译环境搭建步骤
linux交叉编译环境搭建步骤在Linux系统下搭建交叉编译环境主要涉及以下几个步骤:2. 配置环境变量:将交叉编译工具链的路径添加到系统的环境变量中以便于使用。
可以在用户的`.bashrc`或`.bash_profile`文件中添加如下行:```bashexport PATH=<path_to_toolchain>/bin:$PATH```其中`<path_to_toolchain>`是指交叉编译工具链所在的路径。
3.设置目标平台的系统根目录:交叉编译时需要使用目标平台的系统库和头文件,因此需要设置目标平台的系统根目录。
可以通过以下方式设置:```bashexport SYSROOT=<path_to_sysroot>```其中`<path_to_sysroot>`是指目标平台的系统根目录。
4.编写一个简单的交叉编译项目:为了验证交叉编译环境是否搭建成功,可以编写一个简单的交叉编译项目进行测试。
例如,编写一个简单的C程序,将其交叉编译为ARM平台下的可执行文件。
```c#include <stdio.h>int maiprintf("Hello, world!\n");return 0;```将上述代码保存为`hello.c`文件。
然后,使用以下命令进行交叉编译:```basharm-linux-gnueabi-gcc -o hello hello.c```编译完成后,会生成一个名为`hello`的可执行文件。
在ARM平台上执行该可执行文件,将输出`Hello, world!`。
以上就是在Linux系统下搭建交叉编译环境的基本步骤。
根据具体的需求,可能还需要进行其他的配置和设置。
ubuntu10.04全过程创建交叉编译环境
ubuntu10.04下建立交叉编译工具链(支持软浮点)全过程参考了网上的不少的资料,花了五个小时终于完成了,记录下全过程供大家分享。
用到的源码包如下,建议新手全部放在/home/usr/downloads/ 目录下。
以下操作在用户权限下进行。
=======================================================================arm-linux-gcc-3.4.1.tar.gzglibc-2.3.3.tar.gzlinux-2.6.8.tar.gzcrosstool-0.43.tar.gzbinutils-2.15.tar.gzglibc-linuxthreads-2.3.3.tar.gzbinutils-2.18.tar.gz --安装用编译一次至少要花半个小时,如果因为依赖软件没有安装中途会报错退出,只有从头再来,那样很浪费时间的。
sudo apt-get install bison flex build-essential patch libncurses5-dev由于ubuntu10.04自带的ld ,as版本太高的原因,需要安装binutils的2.18版本,然后替换系统中的2.20版本。
方法如下:$cd downloads$tar xzvf binutils-2.18.tar.gz$cd binutils-2.18$./configure --prefix=/tmp/binutils --disable-nls (-prefix后面的是生成可执行文件存放的位置可以自己定义)$make all$make install编译成功后在/tmp/binutils/bin/中就生成了ld和as程序的可执行文件重新链接/usr/bin/ld 和/usr/bin/as文件$sudo rm /usr/bin/ld /usr/bin/as //删除2.20的ld,as$sudo ln –s /tmp/binutils/bin/ld /usr/bin/$sudo ln –s /tmp/binutils/bin/as /usr/bin/然后可运行ld –v 和as –v 查看版本是否为2.18。
ubuntu下交叉编译环境构建(arm-linux-gcc-432_).
ubuntu下交叉编译环境构建(arm-linux-gcc-4.3.2 )及第一个linux下的c程序1.解压arm-linux-gcc-4.3.2.tgz#tar -jxvf arm-linux-gcc-4.3.2.tgz解压过程需要一段时间,解压后的文件形成了usr/local/ 文件夹,进入该文件夹,将arm文件夹拷贝到/usr/local/下# cd usr/local/#cp -rv arm /usr/local/现在交叉编译程序集都在/usr/local/arm/4.3.2/bin下面了2. 修改环境变量,把交叉编译器的路径加入到PATH。
修改/etc/bash.bashrc文件#vim /etc/bash.bashrc在最后加上:export PATH=$PATH:/usr/local/arm/4.3.2/binexport PATH(如果不能编辑,先修改相关文件的权限使用chmod命令。
)3.立即使新的环境变量生效,不用重启电脑:对应方法一:#source /root/.bashrc对应方法二:# source /etc/profile4.检查是否将路径加入到PATH:# echo $PATH显示的内容中有/usr/local/arm/bin,说明已经将交叉编译器的路径加入PATH。
至此,叉编译环境安装完成。
5. 测试是否安装成功:首先查看bin目录下可执行文件,或许不是arm-linux-gcc# /arm/4.3.2/bin/arm-none-linux-gnueabi-gcc-4.3.2 –v上面的命令会显示arm-linux-gcc信息和版本,gcc version 4.3.26 .编译Hello World程序,测试交叉工具链#include <stdio.h>int main(){printf("Hello World!\n");return 0;}执行下面的命令:# arm-linux-gcc -o hello hello.c源程序有错误的话会有提示,没有任何提示的话,就是通过了,就可以下载到ARM目标板上运行了!接着可以输入file hello的命令,查看生成的hello文件的类型,要注意的是生成的可执行文件只能在ARM体系下运行,不能在其于X86的PC机上运行。
ubuntu10.10下建立交叉编译环境
1. 安装标准的C开发环境,由于Ubuntu 9.04 Linux安装默认是不安装的,所以需要先安装一下(如果已经安装好的话,就可以免去这一步了):$ sudo apt-get install gcc g++ libgcc1 libg++ make gdb如果上面这个安装不行,可以试试$ sudo apt-get install build-essential2. 下载arm-linux-gcc-4.3.2.tgz到任意的目录下,进入这个文件夹$ sudo tar xvzf arm-linux-gcc-4.3.2.tgz –C /注意:C 后面有个空格,并且 C 是大写的,它是英文单词“Change”的第一个字母,在此是改变目录的意思。
执行该命令,将把 arm-linux-gcc 安装到/usr/loca/arm/4.3.2 目录。
3. 修改环境变量,把交叉编译器的路径加入到PATH。
方法一:修改/etc/bash.bashrc文件(此文件只对当前用户适用)$sudo gedit /etc/bash.bashrc在最后加上export PATH=$PATH:/usr/local/arm/4.3.2/bin方法二:修改/etc/profile文件(此文件属于系统级别的环境变量,设置在里面的东西对所有用户适用):$sudo gedit /etc/profile增加路径设置,在末尾添加如下,保存/etc/profile文件:export PATH=$PATH:/usr/local/arm/4.3.2/bin方法三:修改/etc/environment文件$sudo gedit /etc/environment原文件应为PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin: /usr/games“将其改为PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/4.3.2/bin"保存退出即可4. 立即使新的环境变量生效,不用重启电脑:对应方法一:$ source /root/.bashrc对应方法二:$ source /etc/profile方法三立即生效5. 检查是否将路径加入到PATH: $ echo $PATH显示内容/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr /games:/usr/local/arm/4.3.2/bin 说明已经将交叉编译器的路径加入PATH。
Ubuntu18.04安装arm-linux-gcc交叉编译器的两种方法(附下载地址)
Ubuntu18.04安装arm-linux-gcc交叉编译器的两种⽅法(附下载地址)⽅法⼀: 我们都知道Ubuntu有⼀个专门⽤来安装软件的⼯具apt,我们可以⽤它来全⾃动安装arm-linux-gcc。
此⽅法安装的是最新版的,但是此⽅法需要FQ,否则99%会失败,这就是为什么⽹上⼤多都⽤压缩包安装的原因: ⾸先Ctrl+Alt+T弹出终端,使⽤如下命令进⾏arm-linux-gcc的安装:sudo apt-get install gcc-arm-linux-gnueabihf 使⽤如下命令进⾏arm-linux-g++的安装:sudo apt-get install g++-arm-linux-gnueabihf 如果要卸载时使⽤如下命令进⾏移除,arm-linux-gcc的卸载:sudo apt-get remove gcc-arm-linux-gnueabihf arm-linux-g++的卸载:sudo apt-get remove g++-arm-linux-gnueabihfsudo tar -xjvf /tmp/arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2 3.解压完成后,再在(/usr/local)中创建⼀个新⽬录arm,即在Terminal中输⼊以下命令:sudo mkdir /usr/local/arm 4.创建arm⽬录成功后,还需要给它解放全部权限,即在Terminal中输⼊以下命令:sudo chmod 777 /usr/local/arm 5.在解压出来的⽬录中找到并把整个arm-linux-gcc-3.4.5-glibc-2.3.6⽬录复制到刚刚建好的arm⽬录中,命令如下:sudo cp -r gcc-3.4.5-glibc-2.3.6 /usr/local/arm 6.打开(/etc/profile)配置环境变量和库变量,⽬的是以后可以在任何位置使⽤该交叉编译器,命令如下:sudo vi /etc/profile 7.⽤vi或者vim打开后,在⽂件最后添加两⾏,并输⼊以下代码:第⼀⾏是添加执⾏程序的环境变量,第⼆⾏是库⽂件的路径export PATH=$PATH:/usr/local/arm/gcc-3.4.5-glibc-2.3.6/binexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/arm/gcc-3.4.5-glibc-2.3.6/lib 8.使⽤source命令重新加载⽣效该配置⽂件source /etc/profile 9.检验是否安装成功,在 Terminal 输⼊以下命令输出版本信息:arm-linux-gcc -v 10.若有以下报错参考解决办法: 报错:bash: /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-gcc-4.2.2: No such file or directory 解决sudo apt-get install libc6-i386 该库中包括ia32-libs, lib32z1, lib32ncurses5等等依赖。
记ubuntu的uClinux交叉编译环境的搭建以及操作系统的引导
添加如图所示的代码。
最后,需要这两个程序自动启动的话还需要修改 “~/uClinux-dist/Vendors/Samsung/4510B/"下的 rc 文件,向其最后添加 “./bin/led& ./bin/uart&" 两行代码。 完成这些以后,我们就可以开始编译了
在“Target Platform Selection"中选择“Customize Kernel Settings (NEW)“和”Customize Vendor/User Settings (NEW)“
#define UTXBUF1 (* (volatile unsigned *) 0x03ffe00c) \\定义 UART1 发送缓存寄存器
#define URXBUF1 (* (volatile unsigned *) 0x03ffe010) \\定义 UART1 接收缓存寄存器
#define UBRDIV1 (* (volatile unsigned *) 0x03ffe014) \\定义 UART1 波特率分频寄存
void InitUART(int Port,int Baudrate) \\串口初始化函数体 { if(Port==0) { ULCON0=0x03; UCON0=0x09; UBRDIV0=Baudrate; } if(Port==1) { ULCON1=0x03; UCON1=0x09; UBRDIV1=Baudrate; } }
这次我选择了用 Ubuntu 这个版本的 linux 作为我的开发环境,是因为它的界面还算友好, 对于我这种 linux 白痴一样的人能少用一点命令那是再好不过了的。可是我没有想到 Ubuntu 可以这样的坑爹,由于用的 shell 和别个的 linux 不同,所以直接导致 arm-elf-tools-20030314.sh 不能打开,所以更别说安装了。Google 了很久,终于不得不去 面对了一个现实,就是我偷懒不想用命令,结果我得用更多的命令去安装这个该死的工具。
linux学习之交叉编译环境
linux学习之交叉编译环境⼀在Linux上配置交叉编译环境:1. 根据芯⽚型号确定芯⽚指令集架构,并根据该架构选择合适的交叉编译⼯具2. 将交叉编译⼯具解压,添加到环境变量。
3. 编译⽬标⽂件,并想法设法将⽬标⽂件整到开发板上,有以下⽅法:将⽬标⽂件先整到windows PC下,拷贝到U盘/SD卡然后再插⼊开发板;⽤⽀持SSH的⼯具如putty登陆板⼦linux服务器;⽤NFS实现。
⼆ Uboot:⽤来启动内核(CPU不能直接从块设备中执⾏代码): 执⾏uboot代码,在uboot中把块设备中的内核代码复制到某内存地址处,然后再执⾏这个地址,即可启动内核。
uboot代码(uboot 根⽬录的spl⽂件夹u-boot-spl.bin和uboot根⽬录下u-boot.bin)需要⽤make(makefile配置+“.config”(make menuconfig图形化配置⼯具的输出⽂件))出来。
然后分别烧录进板⼦。
三编译kernel,并将其烧写进板⼦,启动板⼦后linux的shell环境应该跑起来了。
注意烧录内核的位置和内核运⾏环境: ramdisk根⽂件系统,这个⽂件系统是存在RAM⾥的,所以你在⾥⾯写⼊东西,⼀断电就没有了。
NAND Yaffs2⽂件系统:断电后还是存在的,使⽤busybox⽤来⽣成linux⽂件系统的⼏个基本⽂件夹,然后通过打包⼯具mkyaffs2,它⽤来⽣成能直接烧录到板⼦⾥的镜像⽂件,以下都是要烧写的⽂件。
Image Name Image Type Image start offsetu-boot-spl.bin uboot0x200u-boot.bin data 0x100000env.txt env0x80000970uImage data0x200000rootfs_yaffs2.img data 0x2000000四:将⾃⼰编写的程序的可执⾏⽂件拷贝到/opt⽬录下,并拷贝所需的库⽂件到/lib下,即可通过命令⾏来运⾏⽂件了。
交叉编译环境的配置与使用
交叉编译环境的配置与使用交叉编译是指在一个不同的开发环境中编译程序,以在目标平台上运行。
目标平台可以是不同的硬件架构、操作系统或操作系统版本。
交叉编译可以有效地减少在目标平台上进行开发和测试的时间,尤其是在限制了资源的嵌入式系统中。
配置交叉编译环境的步骤主要包括以下几个方面:1. 选择交叉编译工具链:交叉编译工具链是包含了交叉编译器、交叉链接器和相关工具的集合。
根据目标平台的特点,可以选择使用已有的工具链,或者自己构建定制的交叉编译工具链。
常见的交叉编译工具链有Cygwin、GCC等。
3.配置交叉编译环境:在配置交叉编译环境之前,首先需要确定目标平台和目标操作系统的相关信息,例如:处理器架构、操作系统版本、库文件位置等。
然后设置环境变量,包括设置交叉编译工具链的路径、目标平台和操作系统的相关信息。
4. 编写和编译代码:在配置好交叉编译环境后,可以使用常规的编程工具,如IDE或命令行工具,编写程序代码。
在编译时,需要使用交叉编译工具链中的编译器和相关工具来进行编译。
例如,使用交叉编译工具链中的gcc来代替本机的gcc进行编译。
5.链接和生成目标文件:编译成功后,会生成目标文件,即在目标平台上可以运行的可执行文件或库文件。
在链接时,需要使用交叉链接器来链接目标文件和相关库文件。
6.在目标平台上运行:将生成的目标文件复制到目标平台上,并通过目标平台的方式运行。
例如,在嵌入式系统中,可以通过串口或其他方式加载程序并运行。
1.确定目标平台和操作系统的要求:在进行交叉编译之前,需要确保了解目标平台和操作系统的相关要求,例如处理器架构、操作系统版本、库文件位置等。
这些信息将有助于选择合适的交叉编译工具链和配置交叉编译环境。
2.编写适用于目标平台的代码:在进行交叉编译时,需要注意编写适用于目标平台的代码。
例如,需要避免使用与目标平台不兼容的库函数和系统调用,以及考虑目标平台的资源限制等。
3.调试和测试:由于交叉编译环境和目标平台的不同,可能会遇到一些问题,如编译错误、链接错误或运行错误等。
【整理】Ubuntu 16.04[64bit]交叉编译环境搭建过程图解
开发裸机环境之前需要先搭建其开发环境,毕竟工欲善其事必先利其器嘛。
安装步骤1、准备工具安装目录将压缩包arm-Linux-gcc-4.4.3.tar.gz存放在一个目录下,这个目录就是你等会解压缩的目录,以后这个目录就不能随便删掉了,我的存放路径是/home/aldrich/arm,如下图,记住这个路径,等会还会用到。
1. .tar.gz 和.tgz2. 解压:tar zxvf FileName.tar.gz3. 压缩:tar zcvf FileName.tar.gz DirName2、安装软件使用tar命令:tar zxvf arm-linux-gcc-4.3.2.tgz将software文件夹下的arm-linux-gcc-4.3.2.tgz解压缩安装到当前目录。
通过下图可以看到解压成功了,并且解压后的文件存放在了1. /home/aldrich/arm/arm-linux-gcc-4.3.2文件夹下,如下图所示,这个存放路径可得记住,如下图3、配置系统环境变量配置环境前先坐下普及:Ubuntu不同目录下profile与bashrc的区别/etc/profile此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行,并从/etc/profile.d目录的配置文件中搜集shell的设置。
/etc/bash.bashrc为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取。
~/.bash_profile每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次,默认情况下,他设置一些环境变量,执行用户的.bashrc文件。
~/.bashrc该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取。
~/.bash_logout当每次退出系统(退出bash shell)时,执行该文件。
linux操作系统交叉编译环境的建立
linux 操作系统交叉编译环境的建立
基于linux 操作系统的应用开发环境一般是由目标系统硬件(开发板)和宿主PC 机所构成。
目标硬件开发板用于运行操作系统和系统应用软件,而
目标板所用到的操作系统的内核编译、应用程序的开发和调试则需要通过宿
主PC 机来完成(所以称为交叉编译)。
双方之间一般通过串口,并口或以太网接口建立连接关系。
但在此我建议构建如下的交叉编译环境,适合个人或研发小组使用:单独
拿出一台PC 机(PII 以上即可,就用以前淘汰的旧机器就可以),在该PC 上安装桌面的Linux 操作系统(如Red Hat Linux 8.0 及以上),可以采用默认的安装选项(注意要包含ftp 服务),这台PC 作为Linux 服务器,除管理员以外,一般不直接让其他人去操作。
将该Linux 服务器接入局域网,并新建一些合法用户,以便其他的PC 机(在此我们将其称为工作站)的合法用户能访问到Linux 服务器。
而其他的PC 机(工作站)仍然使用Windows 操作系统,原来干啥继续干啥。
需要的软件工具包括:
1、ftp 客户端程序(如Cuteftp,可到网上下载)
2、Telnet 工具(如SecureCRT,可到网上下载)。
