uboot-2011-06 之makefile分析(三)结合代码的编译

来源:互联网 发布:淘宝模特拍摄技巧 编辑:程序博客网 时间:2024/05/17 04:01

在虚拟机里装个一个ubuntu14.04 64位版本,开始结合代码分析和编译。

首先要设置编译器的类型,一般默认的是gcc ,而我们要用的是以arm-linux为版本的编译器。我使用的编译器的版本是arm-linux-gcc 4.3.2,网上有下载,或者换个其他的版本试试。

解压后放在/opt/目录下,然后回到自己的home目录,打开.profile,添加

if [ -d "/opt/arm/4.3.2" ]; then    PATH="/opt/arm/4.3.2/bin:$PATH"fi
</pre><p>或者是在.bashrc文件中添加</p><p></p><pre name="code" class="cpp">export PATH=/opt/arm/4.3.2/bin:$PATH

然后保存后执行source .profile的命令,查看echo $PATH,看是否已经多了一个path的路径,或者是敲arm ,然后tab ,看是否能显示一堆的关于arm-linux 。。。的东西。

注意,我的移植的目标是三星的S5PV210,具体的架构在前面提到过,或者自己百度一下。

我是用的是14.04的64bit ubuntu,

装一些32位的库

sudo apt-get update
然后执行

sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0

之前说到,先要配置make xxx_config,然后到mkconfig的shell脚本中,shell脚本会读取boards.cfg中的有关xxx的一行,那么第一步需要我们来添加和自己对板子的配置

Target                     ARCH        CPU         Board name          Vendor         SoC         Optionscarl210                   arm          armv7       carl210             samsung       s5pc1xx

执行make carl210_config ,

进入include目录下,ls -al asm 

然后


再然后


看一下config.mk文件

ARCH   = armCPU    = armv7BOARD  = carl210VENDOR = samsungSOC    = s5pc1xx

看一下config.h

/* Automatically generated - do not edit */#define CONFIG_BOARDDIR board/samsung/carl210#include <config_cmd_defaults.h>#include <config_defaults.h>#include <configs/carl210.h>#include <asm/config.h>
看看这些config.h中包含的文件。

config_cmd_defaults.h

#ifndef _CONFIG_CMD_DEFAULTS_H_#define _CONFIG_CMD_DEFAULTS_H_#define CONFIG_CMD_BOOTM 1#define CONFIG_CMD_CRC32 1#define CONFIG_CMD_EXPORTENV 1#define CONFIG_CMD_GO 1#define CONFIG_CMD_IMPORTENV 1#endif

支持简单的命令,go,bootm,exportenv,inportenv

看看config_defaults.h

#ifndef _CONFIG_DEFAULTS_H_#define _CONFIG_DEFAULTS_H_/* Support bootm-ing different OSes */#define CONFIG_BOOTM_LINUX 1#define CONFIG_BOOTM_NETBSD 1#define CONFIG_BOOTM_RTEMS 1#define CONFIG_GZIP 1#define CONFIG_ZLIB 1#endif
这个是支持什么linux,netbsd,rtems系统启动的。

看看configs目录下的carl210.h,没有定义的,这个需要我们自己来定义其中的内容,这个后续会讲到定义哪些东西。

看看asm/config.h 文件

#ifndef _ASM_CONFIG_H_#define _ASM_CONFIG_H_#define CONFIG_LMB#define CONFIG_SYS_BOOT_RAMDISK_HIGH#endif



0 0