【系统移植】实验一:修改uboot源码使其点亮LED灯

一、GPJ:

GPJ0【8】

GPJ1【6】

GPJ2【8】:GPJ2_0、GPJ2_1、GPJ2_2、GPJ2_3

涉及到四个寄存器的操作GPJ2CON(管理IO口)、GPJ2DAT(输入输出)、GPJ2PUD(上/下拉电阻)、GPJ2DRV(驱动)

GPJ3【9】

GPJ4【5】

 

拓展:上拉/下拉电阻

将高电平的选择权交给外围电路;若高电平为5V,则电阻上拉5V。

 

二、实验:

1、mkv210源码分析:

【系统移植】实验一:修改uboot源码使其点亮LED灯_第1张图片

(1)关于函数入口的int amin( int argc, char *argv[] )

【系统移植】实验一:修改uboot源码使其点亮LED灯_第2张图片

当运行main函数之后,main就会知道外部传递给它的参数信息;

(2)输入参数个数有误:

【系统移植】实验一:修改uboot源码使其点亮LED灯_第3张图片

输入参数不是3个,则会报错;正常退出返回0,非正常退出返回-1;

(3)初始化:

【系统移植】实验一:修改uboot源码使其点亮LED灯_第4张图片

【系统移植】实验一:修改uboot源码使其点亮LED灯_第5张图片

buf为0则打印正常,并返回-1;若不为0则将16K空间置成0;

u-boot.bin文件过大,需要处理才能烧录到SD卡中,因为SRAM只能加载16K的内容去运行。

(4)只读方式打开u-boot.bin文件失败:

【系统移植】实验一:修改uboot源码使其点亮LED灯_第6张图片

(5)获取源bin长度:

【系统移植】实验一:修改uboot源码使其点亮LED灯_第7张图片

【系统移植】实验一:修改uboot源码使其点亮LED灯_第8张图片

(6)校验和:

【系统移植】实验一:修改uboot源码使其点亮LED灯_第9张图片

(6)拷贝:

【系统移植】实验一:修改uboot源码使其点亮LED灯_第10张图片

 

2、分析镜像16进制代码:

【系统移植】实验一:修改uboot源码使其点亮LED灯_第11张图片

其中u-boot.16k为镜像文件;

由内存地址00 00 00 10可看出14 00 00 ea存储顺序与程序中定义的不同;

(1)大小端问题:

大端:网络传输应用——>先传高位,再传低位;

 

3、烧录到SD卡:

dev目录相当于设备管理器,涵盖所有的硬件设备;

【系统移植】实验一:修改uboot源码使其点亮LED灯_第12张图片

4、LED灯不亮,修改程序(前 / 后):

【系统移植】实验一:修改uboot源码使其点亮LED灯_第13张图片

 

【系统移植】实验一:修改uboot源码使其点亮LED灯_第14张图片

1)make

2)制作镜像程序:

【系统移植】实验一:修改uboot源码使其点亮LED灯_第15张图片

上图不是从第一行开始烧写,应加上seek=1;

【系统移植】实验一:修改uboot源码使其点亮LED灯_第16张图片

 

 

 

你可能感兴趣的:(【系统移植】实验一:修改uboot源码使其点亮LED灯)