![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
uboot
乱世半仙
人生最大的悲哀莫过于坚持了不该坚持的,放弃了不该放弃的
展开
-
移植uboot-2012.04.01到JZ2440(九,制作补丁)
一、目的补丁文件就是通过对比当前文件和源码文件之后,得到修改内容的文件。有了补丁文件,就可以在uboot2012.04的源码之上,直接打补丁,就会变为移植好适配JZ2440的uboot,非常方便,在分享或者发布的时候,因为Uboot源码是统一的,所以只需要分享或者发布这个补丁文件即可。二、如何制作补丁1清除编译产生文件make distclean2 对文件夹重命名mv u-boot-2012.04.01 u-boot-2012.04.01-jz24403 重新解压uboot2012.04.原创 2020-09-03 15:29:30 · 111 阅读 · 0 评论 -
移植uboot-2012.04.01到JZ2440(八,烧写内核与文件系统)
一、烧写内核在上一篇文章中设置了默认内核启动参数和命令,如图:启动时内核先会进行倒数计时,如果没有操作,就会执行图中的命令,从nand flash中的kernel 分区处读取内核到内存中的0x30000000处,也就是SDRAM起始地址,然后从0x30000000处启动内核。所以,我们只需要将JZ2440官方提供的内核文件复制到TFTP服务器目录,然后将该内核文件提前烧写到nand flash的kernel分区即可,烧写方法如下:tftp 30000000 uImage_4.3nand eras原创 2020-09-03 15:13:02 · 204 阅读 · 0 评论 -
移植uboot-2012.04.01到JZ2440(七,设置默认环境变量)
一、定位问题目前移植的uboot支持SDRAM、Nor Flash、Nand Flash、DM9000网卡,但是还有一行警告没有处理:通过搜索这行日志内容找到所在位置:该函数中主要使用的 default_environment 数组,接着查看该数组内容,同样定义在该文件中,该数组的功能是根据我们定义的宏定义来设置默认环境变量参数。二、设置默认参数在单板配置文件include/configs/smdk2440.h中配置这些相关宏定义:2.1. 内核启动相关编译,下载到开发板,查看串口输出原创 2020-09-03 14:07:50 · 186 阅读 · 0 评论 -
移植uboot-2012.04.01到JZ2440(六 设置mtd分区表)
前言:这节继续移植uboot,让它支持mtd分区一、mtd分区规划及其作用uboot支持各种设备之后,接下来的工作就是烧写内核、烧写文件系统,所以需要对整块Nand Flash的空间作以规划,大致分为以下四个空间即可:bootloader空间内核参数空间内核空间文件系统空间但是目前我们仅知道uboot.bin被裁剪到了217KB,而不知道其它三个空间的信息,而且是第一次移植,对内核参数占用空间、内核空间的大小没有概念,所以我们需要借助别人已经制作好的内核和文件系统来查看这个信息。启动JZ24原创 2020-08-26 17:49:09 · 371 阅读 · 0 评论 -
移植uboot-2012-04.01到JZ2440(五 uboot裁剪)
前言:目前移植修改后的uboot327K,这里我们稍微进行裁剪1.裁剪方法裁剪的方法就是去掉单板配置文件include/configs/smdk2440.h中不想编译的宏。2.去掉usb部分3.去掉RTC支持4.去掉BOOTP、DHCP、DATE、USB支持5.去掉文件系统支持6.重新编译make distcleanmake smdk2440_configmake下载到开发板中,在串口终端中看看是否可以正常启动:...原创 2020-08-20 09:24:57 · 198 阅读 · 0 评论 -
移植uboot-2012.04.01到JZ2440(四)
前言:DM9000C网卡移植1.添加uboot中网卡的驱动到工程中由于uboot已经有支持DM9000C的网卡驱动,所以我么这里先把驱动添加到makefile中。从上面makefile可以看到,只要添加了CONFIG_DRIVER_DM9000这个宏,就能把改驱动增加进去,所以我们先去添加这个宏,我们先全局搜一下这个宏,看看还需要定义哪些相关的东西。找到别人使用该网卡定义的宏,我们这里也这样定义2.修改宏定义首先修改基地址,根据原理图我们知道,在2440上网卡是在back4区域,所以基地址原创 2020-08-19 17:42:38 · 142 阅读 · 0 评论 -
移植uboot-2012.04.01到JZ2440(三)
前言:这节我们来修改nand flash相关的代码,参考逻裸机操作第十一课JZ2440裸板开发发之Nand flash1.定位问题我们去掉之前屏蔽的nand的宏,如下:然后编译,错误如下:根据报错,我们定位到地方:nand这个指针有问题,初始化如下:接下来问题就变为struct s3c2410_nand这个结构体定义有问题,继续寻找该定义,果然,在文件arch/arm/include/asm/arch-s3c24x0/s3c24x0.h中,我们定义的是CONFIG_S3C2440,所以原创 2020-08-19 14:39:03 · 196 阅读 · 0 评论 -
移植uboot-2012.04.01到JZ2440(二)
前言:这节课我们解决nor flash的问题,需要了解nor flash的操作,这里参考之前的nor flash裸板操作:第十课JZ2440裸板开发之nor flash1.错误代码定位上节课修改的代码烧写后,串口信息如下,我们来定位flash的报错定位。全局搜索Flash,发现很多,不好找,我们沿着uboot的启动流程去找,发现就在第二阶段的board_init_r()函数中。我们来分析这段代码:#if !defined(CONFIG_SYS_NO_FLASH) puts("Flash: ")原创 2020-08-18 13:35:34 · 160 阅读 · 0 评论 -
移植uboot-2012.04.01到JZ2440(一)
前言:在移植之前,请熟悉JZ2440的裸板操作及uboot的编译配置及启动过程1.新建单板我们这里下载uboot-2012.04.01,然后解压,进入目录:tar -jxvf u-boot-2012.04.01.tar.bz2cd u-boot-2012.04.01我们基于2410来移植,所以接下来先创建相关的单板文件:(1)首先在board/samsung创建一个smdk2440的目录 cd u-boot-2012.04.01/board/samsung cp smdk2410/ s原创 2020-08-17 17:18:43 · 380 阅读 · 0 评论 -
uboot-2012.04.01启动流程分析(一)
一、启动流程图这篇文章是基于s3c2410分析uboot-2012.04.01的启动过程,下面这个图是在网上找的一个流程图,记录了启动的流程,可以参考一下:二、启动步骤分析首先之前的编译与配置分析中,我们知道第一个执行的文件是/arch/arm/cpu/amr920t/start.S这个文件,所以我们就从这个文件开始分析。第一部分:异常向量表.globl _start_start: b start_code //上电之后先从这里执行 ldr pc, _undefi原创 2020-07-29 15:26:59 · 306 阅读 · 0 评论 -
uboot-2012.04.01配置与编译分析(二)
这篇文章接着分析uboot-2012.04.01编译的第二步骤make all,主要分析顶层的makefile文件:第一部分VERSION = 2012 //主版本号PATCHLEVEL = 04 //修补版本号SUBLEVEL = 01 //次版本号EXTRAVERSION = ///附加信息,一般默认为空,我们可以自己设置ifneq "$(SUBLEVEL)" ""U_BOOT_VERS原创 2020-07-27 11:36:03 · 336 阅读 · 0 评论 -
uboot-2012.04.01配置与编译分析(一)
由于需要移植uboot-2012.04.01到JZ2440开发板,所以先下载了uboot-2012.04.01进行配置与编译分析。一、编译步骤一般情况下下载一个uboot之后解压,进入根目录下,我们的编译步骤分以下两个步骤:1.make xxx_config(由于uboot-2012.04.01不支持2440,我们先编译2410的,执行make smdk2410_config);2.make all;二、编译步骤分析1.make smdk2410_config当我们执行该命令后,makefi原创 2020-07-23 14:54:25 · 237 阅读 · 0 评论 -
链接地址、运行地址、加载地址、存储地址、位置相关与位置无关
uboot-链接地址、运行地址、加载地址、存储地址、位置相关与位置无关一.概念1.运行地址:程序执行时的地址,因为命令执行分取指、译码、执行,所以运行地址就是PC-8处的地址。2.链接地址:链接地址是给编译器用的,用来计算代码中相关地址偏移的。3.加载地址和存储地址是等价的,只是两个不同的说法而已,指的是程序保存在Flash中的地址。4.位置无关码:b、bl、mov等都是位置无关码5.位置相关码:ldr pc,=xxx 等都是位置有关码二.实例由于运行地址与链接地址有时相同,有时又不相同,所原创 2020-07-22 16:32:21 · 1468 阅读 · 1 评论