编译bootloader和编译linux,BootLoader配置移植及编译实验

U-Boot的作用

U-Boot移植的步骤

(1)建立自己的开发板类型

(2)修改程序连接地址

(3)将终端禁止的部分改为下图所示

(4)修改启动代码

(5)修改内核配置

(6)加入Nand Flash读函数

(7)加入Nand Flash的初始化函数

(8)修改GPIO配置

(9)提供Nand Flash的相关宏定义

(10)加入Nand Flash设备

(11)设置Nand Flash环境

安装arm-linux-gcc交叉编译工具

wget粘贴文件路径

解压缩交叉编译工具源码 # tar jxvf gcc-

执行pwd命令确定所在目录

./运行该文件

654ef5255adc9626ac477e8122e93b8f.png

ae4b2f46239858a2c5e04cc08dda1299.png

53eb6d2a9dcfec715bec054c01195aa9.png

1.4解决64位系统下安装32位软件的问题

sudo apt-get update

sudo apt-get install lsb-core

再次运行./arm-linux-gcc,提示arm-linux-gcc:no input files,意思是arm-linux-gcc命令没有输入文件,说明该文件在当前环境下可用。

1.5执行export命令将arm-linux-gcc所在目录临时加入PATH中

bc1e766a07ec44d96194575ff1e2ebe2.png

2、bootloader的配置、移植和编译

wget获取 然后tar解压缩

2.2实验楼实验楼

把smdk2410目录下的所有文件都拷贝到了我们的eduk2410目录下,并做相应的更名和修改,修改Makefile实验楼

e2a5a77ea16f99ca5550f6cc2f2f7d84.png

2.3.配置U-Boot

运行make命令编译

关于课堂程序

实验楼

/ copy_file.c /

include

include

include

include

include

include

define BUFFER_SIZE 1024 / 每次读写缓存大小,影响运行效率 /

define SRC_FILE_NAME "src_file" / 源文件名 /

define DEST_FILE_NAME "dest_file" / 目标文件名 /

define OFFSET 10240 / 复制的数据大小 /

int main()

{

int src_file, dest_file;

unsigned char buff[BUFFER_SIZE];

int real_read_len;

/ 以只读方式打开源文件 /

src_file = open(SRC_FILE_NAME, O_RDONLY);

/ 以只写方式打开目标文件,若此文件不存在则创建该文件,访问权限值为644 /

dest_file = open(DEST_FILE_NAME, O_WRONLY | O_CREAT,

S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);

if(src_file < 0 || dest_file < 0)

{

printf("Open file error\n");

exit(1);

}

/ 将源文件的读写指针移到最后10KB的起始位置 /

lseek(src_file, -OFFSET, SEEK_END);

/ 读取源文件的最后10KB数据并写到目标文件中,每次读写1KB /

while((real_read_len = read(src_file, buff, sizeof(buff))) > 0)

{

write(dest_file, buff, real_read_len);

}

close(dest_file);

close(src_file);

return 0;

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值