Fl2440 uboot移植步骤 一.配置参数的设置 1. ...是传因为是在shell状态,所以不必写全路径,有PATH来保证) 方法1:交叉工具链可以不设置:在make时以选项的参数传入: Sudo make CROSS_COMPILE =arm-none-linux-gnueabi...= /work/cross_compile_4.3.2/usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-163 endif 方法3:在config.mk就修改好...=arm-none-linux-gnueab Config.mk变量就是建立环境变量,相当于set.sh。 3. ...(并不等于移植,相应的板级文件还没有修改),编译一下,看能不能编译通过。
以下是基于fl2440开发板子上的内核移植实验总结 1. 解码内核源码包 2. 修改makefile中的arch和交叉工具链 3. ARCH ?...= arm-linux (前提交叉工具链已经加入Path环境变量) 也可以将路径写死,这样更方便 CROSS_COMPILE ?...=/work/cross_compile_3.4.1/usr/local/arm/3.4.1/bin/arm-linux- 也可以在make是传入 如:make ARCH=ia64 CROSS_COMPILE...= armlinux 5. ...注意zImage在\linux-kernel\linux-2.6.28.7\arch\arm\boot\compressed下生成 而vmlinux在内核的根目录下生成。
因为mtd的kernel分区只有2M大,而实际内核有2.37MB,所以需要裁剪到小于2M(或者修改mtd分区值) 首先裁剪内核里无关的CPU/单板文件 通过vi .config,然后搜索2440,如下图所示...如上图所示,CPU下只选择2440,单板文件下只选择SMDK2440以及MINI2440相关 裁剪无关的文件系统ext2、ext3、ext4 重新make menuconfig,进入File systems...由于,我们2440板子只有USB接口,所以需要裁剪掉PS2鼠标驱动: 重新make menuconfig,进入Device Drivers-> Input device support,去掉: [ ]...-3.4.2 linux-3.4.2_new //更改文件名 tar -xjf linux-3.4.2.tar.bz2 //解压需要比较的源文件 diff -urN linux...-3.4.2 linux-3.4.2_new > linux-3.4.2_new.patch //生成补丁文件linux-3.4.2_new.patch
这次我们借助libSDL来实现,我们先移植SDL到Ubuntu, 体验它的威力后再移植到开发板。...一、移植SDL到Ubuntu Ubuntu: Ubuntu9.10 gcc version 3.4.5 1、新建show_bmp_file.c,内容如下: /**********************...好俊的马啊~ 二、移植SDL到JZ2440 Ubuntu: Ubuntu9.10 开发板:JZ2440 任意uboot kernel:Linux-2.6.22.6 文件系统:fs_qtopia.yaffs2... --build=i386 CC=arm-linux-gcc CXX=arm-linux-g++ 编译安装 $ make &&make install 这时tmp下多了4个目录,这就是编译SDL所得到的文件...tmp/include -L/work/SDL-1.2.15/tmp/lib-lSDL 3、拷贝SDL库,应用程序、bmp图片到文件系统 拷贝方法不需要再细讲了吧,笔者习惯用NFS,笔者的内核已经烧到jz2440
由于2440在nand启动时,会自动装载nand的前4k内容,所以不支持norflash,因为nor的前4k内容被nand占用. 2.修改代码 所以修改上面代码,避免nand启动一直卡住,将: else...所以修改CONFIG_SYS_MAX_FLASH_SECT宏定义(位于include/configs/smdk2440.h),并去掉之前定义的DEBUG调试宏(位于u-boot-2012.04.01\drivers
resolv.conf,将nameserver地址改为: 114.114.114.114 将yaffs2源码来配置到内核里(使内核支持yaffs2) vi /work/nfs_root/yaffs2/README-linux.../patch-ker.sh c m /work/system/linux-3.4.2//c:将yffs2文件夹copy到linux-3.4.2/fs里, m:指定多版本 /*通过menuconfig...,来使内核支持yaffs2*/ cd /work/system/linux-3.4.2/ make menuconfig 搜索yaffs,找到位于: -> File systems ->...然后进入yaffs2/yaffs_vfs.c,第1958行: (linux下显示的是yaffs_vfs.c,vi可以打开yaffs_vfs.c。...uboot来烧写yaffs2、烧写uImage发现没成功,我们用替代法查找问题 UBOOT可能有问题:换上1.1.6的UBOOT,文件系统启动成功 发现1.1.6的UBOOT没问题,所以就是我们移植的新
可以看到下面有2440的NAND结构体 ?....h中定义的是CONFIG_S3C2440,所以便会根据上面的#ifdef来动态定义宏 修改s3c2440_nand.c 中的NFCONF,NFCONT,支持S3C2440 往下看代码发现原来的NFCONF...设置并不能匹配我们的2440 ?...2440的NFCONF的15位是保留的 ? 所以注释掉这部分代码 ? 2410 NFCONF的其他位设置也不匹配我们的2440 ? ...2440NFCONF 时序参数设置 ? s3c2440_hwcontrol中使能选中 ? ? 对照2440手册修改为支持2440的 ?
U-BOOT 移植到友善之臂mini2440 开发环境:ubuntu 10.10 编译器:友善之臂mini2440光盘自带arm-linux-gcc 4.4.3 一....主机编译环境为友善之臂提供的arm-linux-gcc.所參考板子为smdk2410。 三....启动第一阶段移植过程 1.首先測试编译环境,由于arm-linux-gcc,已经添�了PATH环境变量,在lib_arm文件夹下的config.mk 定义了CRPSS_COMPILE 为arm-linux...Nandflash驱动移植 (1)改动底层驱动代码 改动/drivers/mtd/nand/s3c2410_nand.c (2)加入�配置 在mini2440.h中加入�...总结 本次移植參考tekkamaninja对友善之臂mini2440的移植代码。好多地方都是照搬其代码。由于没有时间的缘故,对一些代码的实现还是不是非常了解。
移植环境 主 机:VMWare–ubuntu16.04 开发板:S3C2440 编译器:arm-linux-gcc-4.3.2.tgz u-boot:u-boot-2012.04.01.tar.bz2...发生了段错误,arm-linux-ld 工具链版本不支持uboot中新的属性。我们的交叉编译链版本为3.4.5,因此,需要更换新的交叉编译链支持uboot。...更新交叉编译工具 将arm-linux-gcc-4.3.2.tar.bz2上传到ubuntu服务器/work/tools。...将arm-linux-gcc-4.3.2.tar.bz2解压到/work/tools/tmp文件夹。...sudo tar xjf arm-linux-gcc-4.3.2.tar.bz2 -C / 为什么要设置环境变量? 因为我们执行ls 命令时,系统会去寻找所执行的命令,去哪里找呢?
1.去掉 "-pie"选项 参考之前uboot使用的start.S, init.c来修改uboot代码新的uboot链接地址位于0,且在arm-linux-ld时加了"-pie"选项, 使得u-boot.bin...使用grep “-pie” * -nR找到: arch/arm/config.mk:75:LDFLAGS_u-boot += -pie // LDFLAGS: arm-linux-ld...增加对init.c的支持 vi board/samsung/smdk2440/Makefile ? .../libsmdk2440.o (.text) *(.text) } libsmdk2440.o是将smdk2440单板目录下的所有*.c,*S文件编译后,连接成一个库文件...报错 board/samsung/smdk2440/libsmdk2440.o: In function `clear_bss': /work/system/u-boot-2012.04.01/board
在这里总结一下我在移植Linux2.6.22.6内核过程时的步骤。移植成功后最终能挂接做好的根文件系统,并且启动第一个init程序。...移植的步骤如下: 1、将网上下载的内核源码文件linux-2.6.22.6.tar.bz2放入/work/system路径下。...2、切换到/work/system,使用tar xjf linux-2.6.22.6.tar.bz2解压缩内核源码文件得到一个名为linux-2.6.22.6的文件夹 3、cd linux-2.6.22.6...init smdk2440_map_io(void) 325 { 326 s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440...17、发现内核可以启动位于root分区的根文件系统了,移植成功 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/155542.html原文链接:https://javaforall.cn
由于定义了宏CONFIG_BOOTM_LINUX,最终会跳转到do_bootm ->do_bootm_linux() 代码如下所示: int do_bootm_linux(int flag, int...return 0; } 最终跳转到do_bootm ->do_bootm_linux-> boot_jump_linux() static void boot_jump_linux(bootm_headers_t...= arm-linux- 配置编译 cd arch/arm/configs //由于我们板子是arm板,进入该目录 ls *2440*...由于我们板子是2440,所以测试7cf(mini2440)以及16a(smdk2440)这两个机器ID,是否支持我们开发板。 但是依旧乱码,可能是波特率设置不正确。...__init smdk2440_map_io(void) { s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_iodesc)
Linux移植一 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明....现在手上有两个开发板,一个是tiny6410,一个是OK6410-A.tiny6410上跑的是linux2.6.38,支持alsa,uboot支持yaffs2系统以及从sd卡启动linux,并且移植了qte...的库.而ok6410上跑的是linux2.6.36,没有移植alsa库,默认安装的系统为cramfs系统,yaffs2系统需要再安装.用户空间音频编程仅支持oss方式,可以跑qtopia,不过qte库未移植或至少不完整...移植到ok6410上.方案有两种: 1.用ok6410提供的uboot + linux2.6.38 2.用tiny6410提供的uboot + linux2.6.38 先尝试第一种. ok6410与tiny6410...我没有兴趣继续去修改cramfs系统,因为这是只读系统.所以接下来准备做第二步:在ok6410上移植用tiny6410提供的uboot + linux2.6.38.
ldr r0,=0x00000000 bl board_init_f 上面的CONFIG_SYS_INIT_SP_ADDR =0x30000f80,是通过arm-linux-objdump
_BASE 0x19000300 #define CONFIG_CS8900_BUS16 /* the Linux driver does accesses as shorts */ #else #define...*/ #define CONFIG_CS8900_BASE 0x19000300 #define CONFIG_CS8900_BUS16 /* the Linux driver does accesses...(也可以直接在dm9000x.c里的dm9000_initialize()函数设置)参考之前写的移植DM9000C驱动里的时序 由于兼容DM9000E,所以修改的值尽量大一点, 修改\u-boot...所以,我们修改2440单板的board_eth_init(),使它支持DM9000C 修改代码如下(位于board/samsung/smdk2440/smdk2440.c): int board_eth_init...主要修改文件:include/configs/smdk2440.h lowevel_init.s
而我们移植的uboot,由于一直没有使用save,所以没有读不出CRC校验,使用的默认环境变量,如下图所示: ?...ipaddr=",ip地址 "serverip=",使用tftp时的服务器地址 "netmask=",掩码, 默认值为255.255.255.0 "mtdparts=",mtd分区表 更改smdk2440...所以输入: make clean make smdk2440_config make make后,打印以下错误: ? ...然后在smdk2440.h搜索这两个宏,看看板卡默认配置的是不是env_nand.c 如下图所示: ? ...可以看到,smdk2440.h是将环境变量保存在nor flash,由于2440在nand启动下是无法支持nor,所以我们需要屏蔽这三处宏,重新设置宏 设置save相关宏 在其它板卡里搜索CONFIG_ENV_IS_IN_NAND
上章分析了uboot启动流程后,接下来便来配置新的单板,实现nor、nand启动 ---- 1.首先在uboot里新建单板2440 1.1将2410的单板文件夹拷贝成2440: cd board/samsung.../ cp smdk2410 smdk2440 -rf //拷贝文件夹, 然后将smdk2440下的smdk2410.c改为smdk2440.c,以及修改更改好的Makefile...7.接下来便修改uboot,实现NAND启动 新的uboot链接地址位于0,且在arm-linux-ld时加了"-pie"选项, 使得u-boot.bin里多了"*(.rel*)", "*(.dynsym...选项 使用grep "\-pie" * -nR找到: arch/arm/config.mk:75:LDFLAGS_u-boot += -pie // LDFLAGS: arm-linux-ld.../libsmdk2440.o (.text) *(.text) } libsmdk2440.o是将smdk2440单板目录下的所有*.c,*S文件编译后
上一节S3C2440移植uboot之新建单板_时钟_SDRAM_串口移植uboot初始化了时钟,配置了支持串口,这一节我们继续修改uboot支持NAND启动。...uboot之编译烧写uboot S3C2440移植uboot之新建单板_时钟_SDRAM_串口 S3C2440移植uboot之启动过程概述 S3C2440移植uboot之支持NAND启动 S3C2440...移植uboot之支持NORFLASH S3C2440移植uboot之支持NANDFLASH操作 S3C2440移植uboot之支持DM9000 S3C2440移植uboot之裁剪和修改默认参数 S3C2440...移植uboot之支持烧写yaffs映像及制作补丁 1.去掉 “-pie”选项 参考之前uboot使用的start.S, init.c来修改uboot代码新的uboot链接地址位于0,且在arm-linux-ld...下一节S3C2440移植uboot之支持NORFLASH我们将移植uboot支持我们的s3c2440。
MTDPART_OFS_APPEND: 填在offset里,表示该分区位置附加在上个分区结束的地址上 MTDPART_SIZ_FULL: 填在size里,表示剩下的内存size都归于该分区 若需要mini2440...的机器ID,则还需要修改mini2440单板对应的mach-mini2440.c 因为该单板的mtd分区也不对,将里面的mini2440_default_nand_part[]内容改为和上面一样,...//设置交叉编译前缀 进入Busybox Settings --->Build Options --->() Cross Compiler prefix 在弹出的对话框里面写入:arm-linux...安装glibc库 输入$PATH找到交叉编译位于/work/tools/arm-linux-gcc-4.3.2/usr/local/arm/4.3.2位置, 通过find -name lib,...配置EABI 进入si,搜索exitcode,找到0x00000004对应的宏定义是SIGILL,表示非法指令,是因为arm-linux-gcc-4.3.2是使用的EABI接口,内核由于未配置,所以出现非法
1.新建单板 1.1 将2410的单板文件夹拷贝成2440: cd /work/system/u-boot-2012.04.01/board/samsung cp smdk2410 smdk2440...1.2 将2410的头文件拷贝成2440 cd ../../include/configs/ cp smdk2410.h smdk2440.h ?...修改2440文件夹下的smdk2410.c和Makefile文件 ? ?...使用make smdk2440_config命令(命令便会调用include/configs/smdk2440.h和board/samsung/smdk2440里的文件来配置uboot) 同样的,.../smdk2440.h 然后将smdk2440.h的CONFIG_S3C2410宏 改为: CONFIG_S3C2440宏 5.2编译测试 make时,发现以下几个error: ?
领取专属 10元无门槛券
手把手带您无忧上云