2014025653《嵌入式系统程序设计》第三、四周学习总结
课本学习总结
tftp是简单文件传输协议,它可以看作是一个ftp的简化版本,与FTP相比,它最大的区别就是没有用户管理的功能。它的传输速度快,可以通过防火墙,使用方便快捷。
BootLoader是在操作系统内核运行之前运行的小程序,它类似于PC机中的BIOS程序,可以完成硬件设备的初始化。
BootLoader流程


U-Boot特点


U-Boot主要功能

实验楼总结
获取交叉编译工具的源代码并解压

测试arm-linux-gcc是否可运行

运行结果显示找不到该文件或目录,主要原因是当前系统环境是x86_64位,而arm-linux-gcc是32位,需要解决64位系统下安装32位软件的问题。
解决64位系统下安装32位软件的问题
sudo apt-get update
sudo apt-get install lsb-core
执行export命令将arm-linux-gcc所在目录临时加入PATH中:
export PATH=$PATH:/home/shiyanlou/gcc-3.4.6-glibc-2.3.6/bin
获取u-boot源码导入解压

建立板级支持包并将eduk2410目录下的smdk2410.c文件更名为eduk2410.c:

将eduk2410.c文件中的gpio->GPBCON = 0x00044555改为gpio->GPBCON = 0x0004455A:
为了使编译的时候能把这个文件编译进去,需要修改相应的Makefile:
将COBJS := smdk2410.o flash.o
改为COBJS := eduk2410.o flash.o
我们也需要为我们的开发板建立自己的配置文件。可以直接从 smdk2410开发板的配置文件中修改而来。因此我们先把smdk2410的配置文件复制到我们开发板的配置文件当中:

修改Makefile
将smdk2400_config: unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t smdk2400 NULL s3c24x0
修改为eduk2410_config: unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t eduk2410 NULL s3c24x0
编译U-Boot运行

结果

作业

由代码可知需要新建一个src_file

最后的结果

代码注释

学习进度条
|
代码行数(新增/累积) |
博客量(新增/累积) |
学习时间(新增/累积) |
重要成长 |
| 目标 |
5000行 |
9篇 |
180小时 |
熟悉了Linux,vi,gcc |
| 第一周 |
200/200 |
1/1 |
20/20 |
学会应用vi、gdb和makefile |
| 第二周 |
400/600 |
1/2 |
20/40 |
了解了交叉编译和BootLoader的应用 |
| 第三周 |
600/1200 |
1/3 |
20/60 |
|
| 第四周 |
800/2000 |
1/4 |
20/80 |
|
| 第五周 |
800/2800 |
1/5 |
20/100 |
|
| 第六周 |
600/3200 |
1/6 |
20/120 |
|
| 第七周 |
600/2800 |
1/7 |
20/140 |
|
| 第八周 |
600/4400 |
1/8 |
20/160 |
|
| 第九周 |
600/5000 |
1/9 |
20/180 |
|