![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
boot相关
文章平均质量分 91
Dod_o_
这个作者很懒,什么都没留下…
展开
-
自己写一个最简单的bootloader_jz2440
boot是为了启动内核,本质上也就是一个裸板程序,就是为了引导内核的启动。所以打算自己写一个boot,功能只有引导内核启动。首先是汇编的代码段,是为了关闭看门狗,设置时钟以及代码的重定位,这些都是在main函数之前执行的。之前学习单片机的时候,我们只看到main函数,实际上是main之前的执行步骤都被包起来了。整个汇编文件的开头要写上 .text @这是为了表示这是一个原创 2016-08-10 14:57:05 · 1669 阅读 · 0 评论 -
移植uboot第九步:支持yaffs映像烧写
uboot启动以后,先烧写jffss看看能不能用tftp 30000000 fs_mini_mdev.jffs2nand erase.part rootfsnand write.jffs2 30000000 0x00260000 5b89a8“5b89a8”是实际文件的大小,下载以后会显示的,直接copy过来就可以了。这个时候还不能直接启动,uboot传给内核的参数需要修改bootargs=co原创 2016-08-14 02:56:04 · 607 阅读 · 0 评论 -
移植uboot第八步:裁剪、修改默认参数、分区
到这里uboot差不多已经结束了,再完成最后一步,就能启动内核啦。一. 首先先解决启动时的一个警告,这个和裁剪无关,只是先把警告消除掉*** Warning - bad CRC, using default environment这句话意思就是环境没有配置,搜索这句话是哪里打出来的 a.在env_common.c文件内的下面这个函数void set_default_env(const char原创 2016-08-14 00:44:02 · 4066 阅读 · 0 评论 -
移植uboot第七步:支持DM9000
一. 在Uboot中搜索DM9000,可以找到dm9000x.c,说明uboot是可以支持dm9000的。该文件的路径为:drivers\net\Dm9000x.c,找到net目录下的MakefileCOBJS-$(CONFIG_DRIVER_DM9000) += dm9000x.odm9000x是否编译取决于宏CONFIG_DRIVER_DM9000,同样,uboot原先默认的网卡是cs8900原创 2016-08-13 19:40:30 · 1999 阅读 · 0 评论 -
移植uboot第六步:支持NANDFlash
前面已经让板子能够支持NORFlash了,还没有支持NANDFlash。一. 找到之前第一步注释掉的NAND相关的宏定义//#define CONFIG_S3C2410 /* specifically a SAMSUNG S3C2410 SoC */#ifdef CONFIG_S3C2410#define CONFIG_NAND_S3C2410#define CONFIG_SY原创 2016-08-13 15:57:09 · 2007 阅读 · 0 评论 -
移植uboot第五步:支持NORFlash
之前已经将板子设为NAND启动了,但这只是能从NANDcopy代码,不代表板子就支持了以后对NANDFlash的读写操作。 启动板子以后输出信息:CPUID: 32440001FCLK: 400 MHzHCLK: 100 MHzPCLK: 50 MHzDRAM: 64 MiBWARNING: Caches not enabledFlash: *** f原创 2016-08-12 00:50:59 · 2109 阅读 · 0 评论 -
移植uboot第四步:设置NAND启动
移植的uboot使用NOR启动,不支持NAND,这次就是修改代码以支持NAND。 之前uboot的Makefile里面有-pie,前面写到了,这是为了生成位置无关码,代码可以copy到任何地方。因为代码段里面是有变量的,程序去读取变量的时候要知道变量的存放地址,你移到别的地方,变量的存储位置肯定会变。位置无关就是额外在一块内存区域中存放变量的地址信息,当移动代码的时候,要去读取这块区域,重新修改变原创 2016-08-11 01:12:18 · 2549 阅读 · 0 评论 -
移植uboot第三步:修改时钟
这个步骤弄死我了,弄了一宿,有很多原因,老是这里那里有问题。 因为是基于s3c2410改的boot,2410和2440在使用上区别不大,所以暂时修改不大。 1.还是从start.S依次往下看。 a.设置管理模式的代码都没有条件编译,肯定差不多,跳过。 b.关闭看门狗的条件编译是CONFIG_S3C24X0,都一样的,跳过 c.设置分频,这里需要改,2410和2440有区别。(先做个标记)原创 2016-08-10 15:07:20 · 1659 阅读 · 0 评论 -
移植uboot第二步:分析uboot
1.在make的过程中,最后会显示链接文件,如下 UNDEF_SYM=arm-linux-objdump -x board/samsung/smdk2410/libsmdk2410.o api/libapi.o arch/arm/cpu/arm920t/libarm920t.o arch/arm/cpu/arm920t/s3c24x0/libs3c24x0.o arch/arm/lib/libar原创 2016-08-10 15:03:17 · 787 阅读 · 0 评论 -
移植uboot第一步:下载,编译,烧到板子上试验
一直在看韦东山的二期视频,打算跟着移植一个uboot,百度uboot,进入官网,左侧SourceCode下载最新的源码,此次用的是和韦东山同款的u-boot-2012.04.01。步骤:1.建立Source ubsight工程,把2440要用到的东西添加进去,如果记不清,就全加,SI只是用来阅读代码的,全加没有坏影响,只是查找函数之类的时候会找到你不需要的文件里面去。2.把压缩文件通过FTP放入虚拟原创 2016-08-10 15:01:52 · 1611 阅读 · 0 评论 -
移植uboot第十步:制作uboot补丁
1.进入linux虚拟机,找到uboot文件夹u-boot-2012.04.012.清除编译过程文件make distcleanrm u-boot.dis //反汇编也清除掉3.在上一层目录输入命令mv u-boot-2012.04.01 u-boot-2012.04.01_jz2440将原先的uboot复制一份,重新起个名字4.解压原版uboottar xjf u-boot-2012原创 2016-08-14 02:56:39 · 1069 阅读 · 0 评论