随笔分类 -  u-boot

摘要:在移植nand flash驱动之前,我们要先熟悉u-boot中nand flash驱动架构以及nand flash操作原理。在u-boot启动过程中调用了nand_init函数,这就是nand flash驱动初始化的入口点。#if defined(CONFIG_CMD_NAND) puts ("NAND: "); nand_init(); /* go init the NAND */#endif我们看,这个函数被调用的前提条件是CONFIG_CMD_NAND宏被定义,所以如果你要操作nand flash,这个宏一定要在配置文件中被定义,我们先记在这里。进入nand_ini. 阅读全文
posted @ 2012-06-03 00:34 移动应用开发 阅读(501) 评论(0) 推荐(0)
摘要:平台:mini2440 + sst39vf1601 日期:2012-5-24四、nor flash移植分析源代码是为了更好理解芯片的操作时序。flash_init函数,我们在分析u-boot启动代码时就看见过调用了这个函数,这个函数主要是将flash扇区的起始地址保存在一个全局数据区中,之所以其中有if判断语句判断,是因为该芯片的每个扇区大小不一样,sst39vf1601和这款芯片不同,它的每个扇区大小都是一样的,所以我们需要对这部分代码做部分修改。sst39vf1601芯片知识补充:sst39vf1601它是块2M大小的nofflash芯片,它有32个块,每块大小为64K。如果以扇区来看,它 阅读全文
posted @ 2012-06-01 23:05 移动应用开发 阅读(223) 评论(0) 推荐(0)
摘要:三、第二阶段启动代码移植1.S3C2440时钟工作频率设置Index: mini2440.c===================================================================RCS file: /home/tracy/work/cvsroot/u-boot-2009.08/board/samsung/mini2440/mini2440.c,vretrieving revision 1.1retrieving revision 1.2diff -u -r1.1 -r1.2--- mini2440.c 10 Mar 2012 13:37:07 - 阅读全文
posted @ 2012-04-26 22:46 移动应用开发 阅读(175) 评论(0) 推荐(0)
摘要:二、第一阶段启动代码移植1.首先在include/configs/mini2440.h配置文件中修改S3C2410的宏定义为S3C2440,修改SMDK2410的宏定义为MINI2440。Index: mini2440.h===================================================================RCS file: /home/tracy/work/cvsroot/u-boot-2009.08/include/configs/mini2440.h,vretrieving revision 1.1retrieving revision 1 阅读全文
posted @ 2012-04-26 22:38 移动应用开发 阅读(192) 评论(0) 推荐(0)
摘要:首先看命令定义:72 extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);7374 U_BOOT_CMD(75 reset, 1, 0, do_reset,76 "Perform RESET of the CPU",77 ""78 );使用U_BOOT_CMD向系统添加了一条reset命令,当我们输入reset命令时,执行do_reset函数。42 int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * 阅读全文
posted @ 2012-03-23 14:21 移动应用开发 阅读(588) 评论(0) 推荐(0)
摘要:u-boot版本为u-boot-2009.08,平台smdk2410一、第一阶段启动代码分析在学习ARM时就知道,ARM在上电复位时将PC指针修改为0,即ARM是从0地址开始读取指令执行的。在cpu/arm920t/目录下有个u-boot.lds链接脚本,首先看代码段定义:. =0x00000000;. =ALIGN(4);.text :{ cpu/arm920t/start.o (.text) *(.text)} 我们看start.o就是放在0地址处的,所以它就是我们要找的启动代码,再看程序的入口点在哪:ENTRY(_start)程序入口点是由ENTRY伪指令指定的,所以程序的入口点就是_s 阅读全文
posted @ 2012-02-26 17:31 移动应用开发 阅读(650) 评论(0) 推荐(0)
摘要:u-boot版本为u-boot-2009.08,平台为mini2440一、建立开发板支持1.修改顶层Makefile,指定交叉编译器CROSS_COMPILE ?=arm-linux-2.修改顶层Makefile,仿照smdk2410的格式在smdk2410后添加mini2440_config: unconfig @$(MKCONFIG) $(@:_config=) arm arm920t mini2440 samsung s3c24x03.在board/samsung/目录下新建目录mini2440里面内容由smdk2410复制而得,将mini2440中的smkd2410.c修改为mini2 阅读全文
posted @ 2012-02-25 17:51 移动应用开发 阅读(123) 评论(0) 推荐(0)