学习内容:
一.搭建交叉编译环境
1.交叉开发工具的安装
下载地址 wget http://labfile.oss.aliyuncs.com/courses/811/gcc-3.4.6-glibc-2.3.6.tar.bz2
(1)可以将其下载入windows系统中,通过虚拟机软件将其传入Linux虚拟系统中。
(2)也可以在Linux系统中直接通过以上的网址将开发工具下载到Linux系统中
2、交叉开发工具的运行测试
交叉开发工具运行需要一定的条件支持,需要尝试运行该工具,测试当前的环境是否符合要求。
运行结果显示找不到该文件或目录,主要原因是当前系统环境是x86_64位,而arm-linux-gcc是32位,需要解决64位系统下安装32位软件的问题。
运行以下命令:sudo apt-get update
sudo apt-get install lsb-core
安装完成后再次运行./arm-linux-gcc,提示arm-linux-gcc:no input files,意思是arm-linux-gcc命令没有输入文件,说明该文件在当前环境下可用。
3、配置环境变量
将arm-linxu-gcc加入环境变量PATH中:export PATH=$PATH:/home/shiyanlou/gcc-3.4.6-glibc-2.3.6/bin。这种方法只是临时进入PATH,如果关闭实验环境或者关闭终端,命令失效,需要重新export。
*永久添加方法:
可以通过修改 /etc/profile 文件来实现:
# sudo vim /etc/profile // 打开 profile 文件
// 在文件末尾加入下面代码,保存并退出
export PATH="$PATH:/home/shiyanlou/gcc-3.4.6-glibc-2.3.6/bin" # source /etc/profile // 在当前bash环境下读取并执行 profile 中的命令
这样配置的PATH是永久性的,不会随着系统的关闭而丢失。 //*转自魏顺同学*//
二、bootloader的配置、移植和编译
1、获得u-boot源码
获取地址wget http://labfile.oss.aliyuncs.com/courses/811/u-boot-1.3.2.tar.bz2
2、建立板级支持包
(1)创建新的目录
建立一个目录,名字叫做eduk2410,并创建相应的文件:
# cd u-boot-1.3.2/board/
# mkdir eduk2410
# cp smdk2410/* eduk2410
将eduk2410目录下的smdk2410.c文件更名为eduk2410.c:
# cd eduk2410
# mv smdk2410.c eduk2410.c
(2)修改 .c 源文件
vim eduk2410.c
在eduk2410.c文件中找到/gpio->GPBCON后,用vi编辑方法i 将gpio->GPBCON = 0x00044555改为gpio->GPBCON = 0x0004455A:
把smdk2410目录下的所有文件都拷贝到eduk2410目录下,并做相应的更名和修改
(3)修改当前目录的 Makefile 文件
修改相应的Makefile:
vim Makefile
用/COBJ找到:COBJS := smdk2410.o flash.o
并把这行的内容改为:COBJS := eduk2410.o flash.o
(4)添加配置文件
修改Makefile,使得可以配置我们的开发板:
# vi Makefile
在Makefile中找到下面两行:
smdk2400_config: unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t smdk2400 NULL s3c24x0
紧接这这两行添加如下两行:
eduk2410_config: unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t eduk2410 NULL s3c24x0
3、配置和编译 U-Boot
首先运行如下命令配置U-Boot:
# make eduk2410_config
Configuring for edul2410 board...
然后运行make命令编译:
# make
编译完成后,会在U-Boot的源代码目录下生成u-boot.bin文件。这个文件就是我们需要的二进制文件。
[实验楼](https://dn-simplecloud.shiyanlou.com/4253051494770598116-wm)
三、本周学习感悟
学会了交叉开发环境的搭建,知道了用LSB标准来解决软件的兼容问题。还有两种添加PATH的方法,使某个文件可以像shell命令一样在任意一个目录下执行掌握了 U-boot 的配置和编译过程,建立并配置新开发板,更加熟练了对于的vi操作。