u-boot-2011.03在mini2440/micro2440上的移植 准备工作

发布者:幸福如愿最新更新时间:2024-06-27 来源: elecfans关键字:u-boot  mini2440  micro2440  移植 手机看文章 扫描二维码
随时随地手机看文章

u-boot自2010.09版以后有比较大的变化,首先是不再在顶层Makefile中配置板级支持文件,其次是重写了start.S和board.c,还有就是提供了对S3C2440的部分支持,使得在移植时难度减小。但由于是新版本,bug也有不少。本文尝试对u-boot-2011.03进行移植,主要参考了bscbem的日志和L_Backkom的专栏,在此表示感谢。

具体见http://www.linuxidc.com/Linux/2011-02/32772.htm 与 http://www.linuxidc.com/Linux/2011-03/33476.htm

U-Boot源代码下载地址 http://www.linuxidc.com/Linux/2011-07/38897.htm

1.1 移植环境

u-boot版本:u-boot-2011-03
Linux平台:Fedora 14
交叉编译工具:arm-linux-gcc-4.3.2
arm开发板:micro2440
        CPU:S3C2440
        SDRAM:64M
        Nor Flash:2M
        Nand Flash:256M
        网卡:DM9000EP

 

1.2 移植目标

支持Nand启动
支持Nand读写
支持yaffs写入
支持tftp下载

 

1.3 删减u-boot文件(可不做)

(1)删除arch目录下除arm目录以外的所有目录
(2)删除arm/cpu目录下除arm920tmulu以外的所有目录
(3)删除arch/arm/cpu/arm920t目录下除s3c24x0目录以外的所有目录(文件不要删)
(4)删除arch/arm/include/asm目录下除arch‐s3c24x0外的所有arch‐xxxx目录(文件不要删)
(5)删除board目录下除samsung目录以外的所有目录
(6)删除board/samsung目录下除smdk2410目录以外的所有目录
(7)删除include/configs目录下除smdk2410.h文件以外的所有头文件。

 

1.4 建立Micro2440配置

(1)[www.linuxidc.com@linuxidc u-boot-2011.03]$ vim boards.cfg
添加一行
micro2440 arm arm920t - samsung s3c24x0
【说明】
我们是基于smdk2410开发板移植,我们仍然将开发板文件建立在board/samsung下

 

(2)创建板级支持文件
[www.linuxidc.com@linuxidc u-boot-2011.06]$ cp -r board/samsung/smdk2410 board/samsung/micro2440
[www.linuxidc.com@linuxidc u-boot-2011.06]$ cd board/samsung/micro2440/
[www.linuxidc.com@linuxidc micro2440]$ mv smdk2410.c micro2440.c
[www.linuxidc.com@linuxidc micro2440]$ vim Makefile
COBJS := smdk2410.o flash.o改为COBJS := micro2440.o flash.o
[www.linuxidc.com@linuxidc u-boot-2011.06]$ cd ../../..
[www.linuxidc.com@linuxidc u-boot-2011.06]$ cp include/configs/smdk2410.h include/configs/micro2440.h
[www.linuxidc.com@linuxidc u-boot-2011.03]$ vim include/configs/micro2440.h
修改一:
#define CONFIG_SYS_PROMPT '[Micro2440]# ' /* Monitor Command Prompt */
修改二:
#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1
#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_SDRAM_BASE + 0x1000 - GENERATED_GBL_DATA_SIZE)
【说明】
如果不定义修改二的内容,编译时就会出错,这是新版本的一个bug。
这里需要注意,直接复制内容到micro2440.h可能导致make通不过,提示有garbage,我想可能是因为windows和Linux回车编码不同造成的。

(3)测试编译环境
[www.linuxidc.com@linuxidc u-boot-2011.06]$ make micro2440_config
Configuring for micro2440 board...
[www.linuxidc.com@linuxidc u-boot-2011.06]$ make
Generating include/autoconf.mk
Generating include/autoconf.mk.dep
......
......
arm-linux-objcopy -O srec u-boot u-boot.srec
arm-linux-objcopy --gap-fill=0xff -O binary u-boot u-boot.bin


关键字:u-boot  mini2440  micro2440  移植 引用地址:u-boot-2011.03在mini2440/micro2440上的移植 准备工作

上一篇:Sqlite移植到mini2440
下一篇:u-boot-2011.03在mini2440/micro2440上的移植 在RAM中运行

推荐阅读最新更新时间:2026-03-22 19:35

u-boot-2011.03在mini2440/micro2440上的移植 结束语及资源下载
8.1 其他 (1)支持使用向上的箭头显示上一条命令 include/configs/micro2440.h #define CONFIG_CMDLINE_EDITING #ifdef CONFIG_CMDLINE_EDITING #undef CONFIG_AUTO_COMPLETE #else #define CONFIG_AUTO_COMPLETE #endif (2)使用自己的环境变量 common/env_common.c文件中的default_environment 数组,格式如: b= nand read 0x30008000 0x60000 0x300000;bootm 0x30008000 /0 8.2
[单片机]
u-boot-2011.03在mini2440/micro2440上的移植 支持Nand Flash
5.1 添加s3c2440_nand.c $ touch drivers/mtd/nand/s3c2440_nand.c $ cat drivers/mtd/nand/s3c2440_nand.c #include common.h #if 0 #define DEBUGN printf #else #define DEBUGN(x, args ...) {} #endif #include nand.h #include asm/arch/s3c24x0_cpu.h #include asm/io.h #define __REGb(x) (*(volatile unsigned char *)(x)) #define
[单片机]
u-boot-2011.03在<font color='red'>mini2440</font>/<font color='red'>micro2440</font>上的<font color='red'>移植</font> 支持Nand Flash
U-boot移植mini2440
本文章中的很多内容参考友善之臂的说明文档《mini2440之U-boot移植详细手册-20100419》,使用的U-boot的版本是u-boot-2010.03 说明:此次移植的目的不是为了制作一个功能强大的U-boot,只是做一个最简单的U_boot。该U-boot能够实现通过串口和电脑通信,可以将环境变量保存在NOR Flash中,通过TFTP服务器将使用NFS根文件系统的内核镜像从电脑拷贝到内存中执行。而且这个U-boot只支持从NOR中启动。 在移植U-Boot之前建议对U-Boot中的源码组织结构有较深的理解,可参考我的另一篇博文Bootloader介绍和Uboot源码结构 移植U-Boot的原则是,先选取与
[单片机]
从零开始移植U-bootmini2440(三)——CPU初始化篇
经过前两节的准备,我们现在可以开始肝u-boot的代码了 U-boot版本:2020/5/2 编译环境:Ubuntu 16.04 arm-none-eabi-gcc version 4.9.3 20150529 (prerelease) (15:4.9.3+svn231177-1) 运行环境:mini2440(s3c2440,arm920t) 代码仓库:git@github.com:JingyeLi/u-boot_2440.git https://github.com/JingyeLi/u-boot_2440/tree/v0.1 u-boot.lds 这是一个很容易被人忽略的一个文件,包括我自己,以前一般用keil的时候都是自
[单片机]
mini2440通过NFS启动的U-Boot参数设置
// 编译内核 cd /home/guoqian/4-3-1/linux-2.6.29 make disclean cp config-mini2440 .config make menuconfig ARCH=arm make uImage ARCH=arm CROSS_COMPILE=arm-linux- // 将uImage拷至TFTP cp arch/arm/boot/uImage /tftpboot/ // u-boot参数设置 set ipaddr 192.168.1.230 set serverip 192.168.1.123 set gatewayip 192.168.1.1 set bootcmd 'tf
[单片机]
搭建一个mini2440开发板U-Boot的框架
一、移植环境 主 机: Ubuntu 开发板:友善之臂mini2440 编译器:arm-linux-gcc-4.3.2 u-boot:u-boot-2009.03.tar.bz2 二、移植步骤 目前u-boot对很多CPU直接支持,可以查看board目录的一些子目录,如:board/samsung/目录下就是对三星一些ARM处理器的支持,有smdk2400、smdk2410和smdk6400,但没有2440,所以我们就在这里建立自己的开发板项目。 1)因2440和2410的资源差不多,主频和外设有点差别,所以我们就在board/samsung/下建立自己开发板的项目,取名叫mini2440 #tar -jx
[单片机]
mini2440 u-boot linux 内核启动,u-boot.2012.10——mini2440(二、启动流程分析)
参考资料:https://blog.csdn.net/suiyuan19840208/article/details/7239949 https://blog.csdn.net/pugu12/article/details/47011159 http://tscsh.blog.163.com/blog/static/200320103201312645149965/ https://blog.csdn.net/winheroii58/article/details/6803327 1、第一阶段功能 * 硬件设备初始化 * 加载u-boot第二段代码到RAM空间 * 设置好栈 * 跳转到第二段代码入口 2、第二段代码的功能 * 初始
[单片机]
<font color='red'>mini2440</font> <font color='red'>u-boot</font> linux 内核启动,u-boot.2012.10——<font color='red'>mini2440</font>(二、启动流程分析)
玩转mini2440开发板之【tekkamanninja版的u-boot的编译和烧录】
今天继续玩一玩mini2440开发板,弄清楚U-boot的编译和烧录过程。 首先,这里交代一个前提,此处所使用的u-boot,是已经移植测试过的,完全可用的版本。就本文而言,我使用的是tekkamanninja大神于2010.03移植过来的mini2440定制版的u-boot,这位大神是友善之臂官方推荐的研究u-boot的大神,厉害之极,其所移植的代码也一直都是大众所效仿和研究的目标。下面就开始具体步骤的介绍: 1、下载和分支 由于tekkamanninja大神的u-boot源码存放于github上,因此我们使用以下命令进行克隆: git clone https://github.com/tekkamanninja/u
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved