U-boot内核移植步骤

发布者:MysticalWhisper最新更新时间:2024-09-29 来源: cnblogs关键字:U-boot  内核移植  步骤 手机看文章 扫描二维码
随时随地手机看文章

Linux 3.3.5系统移植

  1. 将arch/arm/mach-s3c6410/下的,mach-smdk6410.c cp为mach-my6410.c;

  2. 打开arch/arm/mach-s3c6410/下的Kconfig,仿照MACH_SMDK6410做一个菜单项:

config MACH_MY6410

    bool 'MY6410'

    select CPU_S3C6410

    select SAMSUNG_DEV_ADC

    select S3C_DEV_HSMMC

    select S3C_DEV_HSMMC1

    select S3C_DEV_I2C1

    select SAMSUNG_DEV_IDE

    select S3C_DEV_FB

    select S3C_DEV_RTC

    select SAMSUNG_DEV_TS

    select S3C_DEV_USB_HOST

    select S3C_DEV_USB_HSOTG

    select S3C_DEV_WDT

    select SAMSUNG_DEV_BACKLIGHT

    select SAMSUNG_DEV_KEYPAD

    select SAMSUNG_DEV_PWM

    select HAVE_S3C2410_WATCHDOG if WATCHDOG

    select S3C64XX_SETUP_SDHCI

    select S3C64XX_SETUP_I2C1

    select S3C64XX_SETUP_IDE

    select S3C64XX_SETUP_FB_24BPP

    select S3C64XX_SETUP_KEYPAD

    help

     Machine support for the Pillar MY6410

  1. 打开arch/arm/tools/mach-types文件,这里面存的是机器ID必须要和uboot里面的ID保持一致,将其283行复制添加在后面并修改为:

smdk6410        MACH_SMDK6410        SMDK6410        1626

xx6410  MACH_XX6410  XX6410  1626 这个机器ID和UBOOT里的机器ID相同时才能启动内核;

  1. 修改BSP文件mach-my6410.c,内容如下:

将mach-mach-my6410.c文件中的所有smdk6410改成my6410(不要改大写SMDK6410的)

MACHINE_START(MY6410, 'MY6410')//这个要和Kconfig里的MACH-MY6410匹配 

  1. 在当前目录的Makefile最后一行加上 obj-$(CONFIG_MACH_MY6410) += mach-my6410.o

  2.  修改顶层的Makefile:

 ARCH ?= arm

 CROSS_COMPILE ?= /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-

  1. 复制arch/arm/configs/下的s3c6400-defconfig文件,然后将其保存为.config,配置内核支持EABI,再选中XX6410 board这一项,保存退出;

  2. 执行make menuconfig对内核进行配置:


关键字:U-boot  内核移植  步骤 引用地址:U-boot内核移植步骤

上一篇:学习控制发光二极管代码心得
下一篇:2440,6410,210存储器接口比较

推荐阅读最新更新时间:2026-03-25 11:20

移植5.4内核到迅为I.MX6ULL开发板
本篇推文会加到后续的文档里面,另外等QT视频录制完成以后,就开始更新终结者驱动和系统移植的视频,后续的驱动移植教程和视频也全部会在本次移植的5.4内核上进行讲解和录制。大家也可以趁着端午节亲手移植感受下。 获取Linux内核源码 NXP官方提供了I.MX6ULL的Linux内核源码,我们可以使用git来获取Linux 5.4.3的内核源码(为了大家学习方便我们给大家提供了下载好的核源码,后续会保存在光盘资料的“i.MX6UL终结者光盘资料5_uboot linux源码”目录下“i.MX6ULL_Kernel_5.4.3.tar.bz2”)。 下面我们通过git下载5.4.3内核源码。输入以下命令获取源码: git clon
[单片机]
<font color='red'>移植</font>5.4<font color='red'>内核</font>到迅为I.MX6ULL开发板
【IMX6ULL学习笔记】九、Linux内核移植
一、在 Linux 中添加自己的开发板 1、添加开发板默认配置文件 将 arch/arm/configs 目 录 下 的 imx_v7_mfg_defconfig 重新复制一份,命名为 imx_kodo_emmc_defconfig,命令如下: cd arch/arm/configs cp imx_v7_mfg_defconfig imx_kodo_emmc_defconfig 以后就可以使用如下命令来配置正点原子 EMMC 版开发板对应的 Linux 内核了: make imx_kodo_emmc_defconfig 2、添加开发板对应的设备树文件 添加适合 EMMC 版开发板的设备树文件,进入目录 arch/arm/b
[单片机]
【IMX6ULL学习笔记】九、Linux<font color='red'>内核</font><font color='red'>移植</font>
Linux4.1.15内核移植-imx6ull
一、Linux内核编译 1、修改顶层Makefile 第252行修改: ARCH ?= arm CROSS_COMPLIE ?= arm-linux-gnueabihf- 2、配置并编译Linux内核 make clean make imx_v7_mfg_defconfig 3、Linux内核启动测试   1、确保以下变量配置     console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw   2、将zImage和设备树文件拷贝到tftp服务器目录下   3、下载内核与设备树文件到开发板中,并启动内核 tftp 80800000 zImage tftp
[单片机]
从samsung提供内核进行移植
1、尝试编译分析结果 配置编译下载尝试 (1)检查Makefile中ARCH和CROSS_COMPILE (2)make xx_defconfig (3)make menuconfig (4)make -j4、 显示结构:Starting kernel ...后没有任何反应(...为uboot输出的最后信息) 结果分析: (1)根据运行结果,分析发现:linux内核的自解压代码都没有运行(因为没有看到:Uncompressing Linux... done, booting the kernel.) (2)说明zImage根本没有被解压成功,内核代码根本就没有被运行,当然没有输出信息了。所以问题出在解压相关的部分。 (3)问题出在
[单片机]
2、内核的配置和移植
1.linux内核源码目录结构1 源码从哪里来 之前讲过,我们使用2.6.35.7版本的内核。这个版本的内核有三种:第一种是kernel.org上的官方版本,第二种是三星移植过的,第三种是九鼎X210的移植版本。我们讲课时使用第三种内核来讲解,后面的移植实验使用第二种内核来移植。 源码在开发板光盘中有。可以自己去linux下解压然后make distclean清理然后再次打包传输到windows下去解压分析;也可以直接去我网盘中下载我打包好的。 解压后最终在windows下得到了一个kernel的源码目录树,这个源码目录就是九鼎以三星移植过的内核为原材料自己针对X210移植后的内核版本。 分析源码目录下的单个文件 1 .m
[单片机]
2、<font color='red'>内核</font>的配置和<font color='red'>移植</font>
linux内核Kernel3.0.8编译移植到天嵌210
内核版本:linux3.0.8_for_TQ210_CoreB_v2.1 交叉编译器版本:4.4.6 Step 1:解压系统源码 将linux内核压缩包拷贝到Ubuntu,并使用sudo tar xvfj xxxxxx.tar.bz2 -C / 解压到/opt/EmbedSky/目录(这个解压命令是天嵌提供的有关解压linux内核的,别的压缩包的命令可能不同) Step 2 :添加对ARM的支持 进入内核源码,修改Makefile文件,在大概193行左右,“ARCH ?= (SUBARCH)”和194行“CROSS_COMPILE ?=”,将其修改为“ARCH ?= arm”和“CROSS_COMPILE ?= arm-lin
[单片机]
内核提供的读写寄存器接口实现可移植
arm是IO与内存统一编址,其他平台如x86是IO与内存独立编址访问方式不一样,使用内核提供的寄存器读写接口writelreadl具有可移植性 在文章随笔–Linux字符设备驱动开发基础前面写的驱动在静态映射操作寄存器,都用#define rGPJ0CON *((volatile unsigned int *)GPJ0CON)的方式来访问寄存器,这样的做法在驱动中并不是很好,因为这样的做法在不同平台的情况下不具有可移植性。现在写的驱动是在ARM平台下去写的,ARM属于内存和IO统一编址的,在读写寄存器的时候即为进行IO操作,进行IO操作是和读写内存是一样的(IO也有个地址),这就叫统一编址。但是还有另外一些CPU(像x86)是
[单片机]
tiny210移植linux内核(3.0.8)杂项
关于三星芯片nand内存分区文件: linux-3.0.8/drivers/mtd/nand/s3c_nand.c struct mtd_partition s3c_partition_info uboot和kernel的机器码对应: uboot: make tiny210_config board/samsung/tiny210/tiny210.c gd- bd- bi_arch_number = CONFIG_MACH_TYPE; includeconfigsTiny210.h #define MACH_TYPE_TINY210 3466 #define CONFIG_MACH_TYPE MACH_TYPE
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

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