您的位置 首页 制造

uboot在2440上的移植

Bootloard代码是芯片复位后进入操作系统之前执行的一段代码,主要用于完成由硬件启动到操作系统启动的过渡,从而为操作系统提供基本…

Bootloard代码是芯片复位后进入操作体系之前履行的一段代码,首要用于完结由硬件发动到操作体系发动的过渡,从而为操作体系供给根本的运转环境,如初始化CPU、仓库、储存器体系等。由于Bootloard代码与CPU芯片的内核结构、详细类型、运用体系的装备及运用的操作体系等要素有关,其功用相似与PC机的BIOS。因而不行能有通用的Bootloard,开发时应根据详细的装备进行移植

为什么咱们要用U-BOOT?明显能够将操作体系直接烧入flash中履行,但从软件的晋级和程序修补来说则是不行少的。

U-BOOT 目录结构剖析:

1. board:开发板相关目录
2. common:通用的指令函数

3. cpu:特定CPU架构相关目录,如arm920t
4. doc:uboot的开发、运用文档

5. drivers:uboot支撑的设备驱动程序,比方串口,nandflash,网卡
6. fs: 支撑的文件体系,Uboot现在支撑cramfs、fat、fdos、jffs2和registerfs。

7. include:头文件和开发板装备文件,configs目录下是开发板的装备文件
8. lib_xxxx: 与体系结构相关的库文件。如与ARM相关的库放在lib_arm中。

9. lib_generic:通用的库函数

10. net:各种网络协议,TFTP协议、NFS协议等。

11. tools:uboot自带的东西

U-BOOT的发动分为两个阶段

第一阶段:1)设置CPU作业形式

2)关看门狗

3)设置体系时钟

4)关MMU,CACHE

5)为第二阶段预备RAM空间(borad/smdk2410/lowlevel_init.s)

6)设置仓库

7)跳到第二阶段C进口点(lib_arm/board.c)

第二阶段:1)start_armboot函数
init_sequence:
初始化CPU,设置体系时钟,初始化定时器,初始化环境参数,初始化串口控制台,检测内存映射
2)flash_init: 初始化NORFLASH
3)env_relocate: 初始化环境变量
4)初始化体系外围设备
5)最终调用main_loop (command/main.c)(下载形式和发动形式在这儿)

U-BOOT没有图形装备界面,咱们只需经过手动修正文件来装备

1)移植进程要用穿插编译器(我用的arm_linux_gcc_3.3.2)

2)指定环境变量 vi /etc/profile 指定途径,把不必的注释掉,然后保存退出

3)source /etc/profile 使其收效 ,然后能够检查版别arm-linux-gcc -v 看是不是现在运用的版别

4)vi cpu/arm920t/config.mk 注释掉软浮点 由于咱们运用的硬浮点编译PLATFORM_RELFLAGS += -fno-strict-aliasing -fno-common -ffixed-r8 \
# -msoft-float /*注释掉*/

5)修正

在smdk2410_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0

加上

TX2440_config: unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t TX2440 NULL s3c24x0

各项的意思如下:
arm: CPU的架构(ARCH)
arm920t: CPU的类型(CPU),其对应于cpu/arm920t子目录。
TX2440: 开发板的类型(BOARD),对应于board/TX2440目录。
NULL: 开发者/或经销商(vender)。
s3c24x0: 片上体系(SOC)。

在第128行:

ifeq ($(ARCH),arm)

CROSS_COMPILE = arm-linux- 指定穿插编译器,(http://xgc94418297.blog.163.com/blog/static/112966040200952971543686/)

6)把smdk2410 改为TX2440(恣意改,只需一致就行)mv smdk2410 TX2440

7)删去board下的其他目录,只留TX2440 办法:mv TX2440 ../ 移动到上层

rm -rf * //删去地点层一切目录

mv ../TX2440 ./ //把上层的TX2440移动到该层

8)到这儿就能够测验是否编译成功了

make TX2440_config

呈现 Configuring for TX2440 board….. 表明编译成功

9)装备SDRAM(在lowlevel_Init.s中修正BANK和改写频率)

10)在TX2440.C中修正时钟代码。

可在include/configs/TX2440.h中

#define CFG_PROMPT 后边修正你自己喜爱的指令提示符。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/zhizao/272141.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部