![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
uboot
longshan_2009
这个作者很懒,什么都没留下…
展开
-
uboot命令的实现以及解析
解析run_command1.argc = parse_line (finaltoken, argv) //解析命令的参数有几个2.cmdtp = find_cmd(argv[0] //获取命令的结构体3.(cmdtp->cmd) (cmdtp, flag, argc, argv) //执行命令的实现函数在分析之前先说一个命令的结构体1.结构体cmd_原创 2013-03-18 15:36:08 · 717 阅读 · 0 评论 -
real210 uboot分析
生成uboot.bin做要使用的文件如下:http://blog.csdn.net/liukun321/article/details/7270426http://blog.csdn.net/xiaojiaohuazi/article/details/8265199http://blog.csdn.net/xiaoxizi198807/article/details/75998原创 2013-04-17 15:30:26 · 784 阅读 · 0 评论 -
s3c6410 irom启动
转载:http://blog.csdn.net/nanjianhui/article/details/4230565目前的ARM处理器都支持多种启动模式,S3C6410和以前的Samsung的ARM处理器一样,通过外部管脚OM[4:0]的拉高拉低来决定是从哪个存储设备上启动。我认为S3C6410的User Manual并没有说的很清楚,所以我在最开始使用的时候,也对其启动模式有一些误解,下面就原创 2013-04-18 10:14:14 · 565 阅读 · 0 评论 -
移植bootloader到2440中遇到的问题
1. 自己写bootloader发现一些数据类型设置不准确导致重定位无法完成:NFDATA的使用,先看datasheet上的寄存器设置图:从上图可以看到,NFDATA可以支持两种NANDFLASH的访问接口,一种是16bit,一种是8bit的。2440所使用的NANDFLASH是8bit的接口。一次从NFDATA中读取的数据只能是8bit。所以要对NFDATA的定义为:#def原创 2013-04-26 09:46:36 · 724 阅读 · 0 评论 -
移植最新uboot之:保证可以在SDRAM上执行
一、建立自己的单板1. 加入板卡架构相关信息shanl@shanl-Aspire-4740:~/Boot/u-boot-2012.04.01_test1$ vi boards.cfgshanl2440 arm arm920t - samsung s3c24x0原创 2013-04-28 16:21:02 · 664 阅读 · 0 评论 -
移植最新uboot之:支持NANDFLASH启动
一、首先进行内存的初始化(vi arch/arm/cpu/arm920t/start.S)将前面的注释去掉:#ifndef CONFIG_SKIP_LOWLEVEL_INIT bl cpu_init_crit#endif沿着cpu_init_crit走到最后,将(vi board/samsung/shanl2440/lowlevel_init.S):SMRDAT原创 2013-04-28 16:49:18 · 873 阅读 · 0 评论 -
移植最新的uboot之:优化操作
环境变量的设置在nandflash上环境参数会保存在nandflash的某个地方在uboot启动后做的工作:1.读flash上的区域,获取环境变量2.判断是否有效3.有效则使用,无效则使用默认的参数裁剪就是将不需要的功能去除,这样uboot的大小就会小很多,做裁剪,使它只有200k左右裁剪:1.禁止USB功能:#if原创 2013-05-06 16:19:29 · 1014 阅读 · 0 评论 -
移植最新的uboot之:支持网络下载功能
支持网络下载功能tq2440的网卡使用了DM9000网卡在新的uboot中的驱动已经对DM9000支持的很好了,只需要做一些配置修改即可一、加入DM9000的编译配置shanl@shanl-Aspire-4740:~/Boot/netsupoort$ vi drivers/net/Makefile找到DM9000的编译选项:COBJS-$(CONFIG_CS8900) +=原创 2013-05-03 15:34:45 · 1117 阅读 · 0 评论 -
移植最新的uboot之:支持nandflash的读写
一、将配置文件中的nand命令打开:shanl@shanl-Aspire-4740:~/Boot/u-boot-2012.04.01_nandsupportTest$ vi include/configs/shanl2440.h#define CONFIG_CMD_BSP#define CONFIG_CMD_CACHE#define CONFIG_CMD_DATE#defi原创 2013-05-02 17:54:07 · 974 阅读 · 0 评论 -
uboot杂记之时钟分析
在分析初始化时钟代码之前先阅读下2440的datasheet:S3C2440A 中的时钟控制逻辑可以产生几种必须的时钟信号,包括 CPU 的 FCLK,AHB 总线外设的 HCLK 以及APB 总线外设的 PCLK。S3C2440A 包含两个锁相环(PLL):一个提供给 FCLK、HCLK 和 PCLK,另一个专用于USB 模块(48MHz)。时钟控制逻辑也可以不使用 PLL 来减慢时钟的原创 2013-03-19 16:34:08 · 681 阅读 · 0 评论 -
uboot第二阶段分析
uboot第二阶段分析:从start_armboot开始分析:一、gd_t和bd_t指针gd_t和bd_t是u-boot中两个重要的数据结构,在初始化操作很多都要靠这两个数据结构来保存或传递。分别定义在./include/asm-arm/global_data.h和 ./include/asm-arm/u-boot.h 1、gd_t : global data数据结构定义,原创 2013-03-18 14:26:22 · 785 阅读 · 0 评论 -
uboot杂记之搬移代码操作
首先列出搬移操作的代码:int CopyCode2Ram(unsigned long start_addr, unsigned char *buf, int size){ unsigned int *pdwDest; unsigned int *pdwSrc; int i; if (bBootFrmNORFlash()) { pdwDest = (unsigned int原创 2013-03-19 16:53:02 · 965 阅读 · 0 评论 -
nandflash与norflash
转载一篇文章:nandflash详解先列出nandflash和norflash之间的区别:从上面截取的图可以看到:1.之所以NOR可以随机访问,片上运行,最主要的原因他的接口和RAM的接口是相同的。它的可靠性比较高,但是不易擦写。 下面根据uboot的代码搬移操作分析一下nandflash的操作过程:#ifndef CONFIG_SKIP_RELOCATE_UB原创 2013-03-21 16:14:39 · 1125 阅读 · 0 评论 -
移植uboot到2440
一、修改顶层Makefile,加入:shanl2440_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t shanl2440 NULL s3c24x0arm: CPU 的架构(ARCH)arm920t: CPU 的类型(CPU),其对应于 cpu/arm920t 子目录。shanl2440: 开发板的型号(BOARD原创 2013-03-22 11:03:13 · 693 阅读 · 0 评论 -
异常中断处理
一、中断的方式获取键值的流程(单片机的处理方法:):1.按键按下2.CPU发生中断->跳到异常向量的入口执行3.b 函数,跳转到相关异常的函数中执行相关操作,异常函数所要做的事情:1.保存被中断的现场2.执行中断处理函数3.恢复现场下面举个例子:假如出现的IRQ中断,就会跳转到0x18的地址(这个地址是由arm920t处理器定死的)去执行相关的操作@ 0原创 2013-03-24 13:19:55 · 1351 阅读 · 0 评论 -
uboot第2阶段nand的初始化分析
在第二阶段中:#if (CONFIG_COMMANDS & CFG_CMD_NAND) puts ("NAND: "); //在uboot启动时打印的 nand_init(); /* go init the NAND */#endif从上面代码可以看到要对nand进行初始化,需要加入CFG_CMD_NAND的支持。方法:在board\shanl2440\shan原创 2013-03-25 13:56:07 · 1097 阅读 · 0 评论 -
uboot启动内核的流程分析
先讲一下分区的概念:嵌入式linux:flash上是没有分区表的。只能在源码里写死,我们关心的是地址。对于分区,uboot的配置在include\configs\100ask24x0.h里面进行配置的#define MTDPARTS_DEFAULT "mtdparts=nandflash0:256k@0(bootloader)," \原创 2013-03-18 15:51:40 · 814 阅读 · 0 评论 -
uboot中网卡的移植
Shanl2440.h (include\configs) 63582013-3-25#if 1#if 0#define CONFIG_DRIVER_CS8900 1/* we have a CS8900 on-board */#define CS8900_BASE 0x19000300#define CS8900_BUS16 1 /* the Linux dr原创 2013-03-25 17:26:21 · 615 阅读 · 0 评论 -
uboot第一阶段分析(目前还有很多不懂的地方)
Start.Suboot的第一阶段大致可以分别下面几个步骤:(1)设置CPU模式 (2)关闭看门狗 (3)关闭中断 (4)设置堆栈sp指针 (5)清除bss段 (6)异常中断处理 那么先分析下代码 一、中断向量表的设置.globl _start_start: b reset ldr pc, _undefined_i原创 2013-03-18 11:33:45 · 1197 阅读 · 0 评论 -
nandflash 使用sav命令
在配置文件中加入:#if 1#define CONFIG_ENV_IS_IN_NAND#define CONFIG_ENV_OFFSET 0x40000#define CONFIG_ENV_SIZE 0x20000#define CONFIG_ENV_RANGE CONFIG_ENV_SIZE#endif重启uboot发现原创 2013-05-06 11:50:37 · 432 阅读 · 0 评论