- 博客(28)
- 收藏
- 关注
原创 深度分析NandFlash—控制器参数TACLS、TWRPH0和TWRPH1的确定(以TQ2440开发板上的K9F2G08U0A为例)
<br /> 这三个参数对于NandFlash的读写操作来说是比较重要的,没搞清楚这三个参数,后面的事就不用提了,那这三个参数到底是干什么的呢,我们怎么样去配置他们呢,今天我花了点时间研究了一下这三个参数。在datasheet中对他们的时序有下面两种图示,一种是写命令或者地址的情况,一种是读写数据的情况:<br /> <br /><br />由上图可知,这三个参数控制的是Nand Flash 信号线CLE/ALE与写控制信号nWE的时序关系。<br />TACLS:表示CLT/ALE的建立时间(
2011-03-18 17:36:00 9109 5
原创 深度分析NandFlash—硬件实现机制
<br /> 最近看了好久的NandFlash,总算是有了一点感觉,但一直没有系统的整理一下,脑子里很乱,今天刚好公司的很多人都出去旅游了,所以工作不是很忙,就在这里好好整理一下吧。首先当然是最基础的了,NandFlash的硬件实现机制。<br /> Flash全名叫做Flash Memory,属于非易失性存储设备(Non-volatile Memory Device),与此相对应的是易失性存储设备(Volatile Memory Device)。关于什么是非易失性/易失性,从名字中
2011-03-18 11:18:00 2929 1
原创 u-boot-1.1.6 源码分析(3)--第二阶段
<br />上接第一阶段跳转语句<br />ldr pc, _start_armboot<br />第二阶段流程图 1。第二阶段的主线函数位于u-boot-2010.06/arch/arm/lib/board.c。<br />第二阶段的功能:<br /><1> 初始化本阶段要使用到的硬件设备。<br />设置时钟、初始化串口。<br />board_init函数设置MPLL、改变系统时钟,它是开发板相关的函数,在board/samsung/smdk2440/smdk2440.c中实现。值得注意的是boa
2011-03-23 15:28:00 2501 1
转载 u-boot-1.1.6 源码分析(2)--第一阶段
1。第一阶段完成的功能 u-boot-2010.06/arch/arm/cpu/arm920t/start.S硬件初始化。设置CPU工作模式为管理模式(svc) 关闭开门狗 设置FCLK,HCLK,PCLK的比例(即设置CLKDIVN) 关闭MMU.CACHE为加载Bootloader的第二阶段代码准备RAM空间。所谓准备RAM空间就是初始化内存芯片,使其能正常工作。在start.S中调用lowlevel_init 函数来设置存储控制器,使得外接的SDRAM可用。代码在board/samsung/sm
2011-03-23 15:26:00 1755
转载 u-boot-1.1.6 源码分析(1)--总体结构
<br />参考资料:<br />1 tekkaman博客<br />2 韦东山《嵌入式linux应用开发完全手册》第15章<br />3 http://www.arm79.com/<br />1。到ftp://ftp.denx.de/pub/u-boot/下载u-boot-2010.06.tar.bz2,解压进入根目录,列出根目录文件。源码整体框架如下:<br />蓝色:目录<br />黑色:文件<br />绿色:可执行文件<br />[root@localhost u-boot-2010.06]#
2011-03-23 15:25:00 1757
原创 U-Boot的常用命令详解
U-Boot还提供了更加详细的命令帮助,通过help命令还可以查看每个命令的参数说明。由于开发过程的需要,有必要先把U-Boot命令的用法弄清楚。接下来,根据每一条命令的帮助信息,解释一下这些命令的功能和参数。<br /><br />1、bootm<br />bootm [addr [arg ...]]<br /><br />- boot application image stored in memory<br /><br />passing arguments 'arg ...'; when booti
2011-03-23 09:42:00 1124
原创 u-boot-2011.03在TQ2440上的移植(11)--支持USB下载
参考资料http://chxxxyg.blog.163.com/blog/static/1502811932010813115518537/http://blog.chinaunix.net/u3/105764/showart_2144192.html1。在drivers/usb/下面建立新目录mkdir /drivers/usb/slave拷贝那个chxxxyg给的源代码。2。修改uboot根目录下的Makefeils,添加红色部分代码LIBS += drivers/usb/musb/libusb_mus
2011-03-23 09:27:00 3424 1
原创 u-boot-2011.03在TQ2440上的移植(10)--支持串口xmodem协议
1、在windows下的SecureCRT只支持Xmodem和Zmodem,为了方便在Windows下载U-Boot,现在修改代码增加对Xmodem的支持,即增加一个命令loadx。vi common/cmd_load.c在ymodem命令下添加xmodem命令U_BOOT_CMD( loady, 3, 0, do_load_serial_bin, "load binary file over serial line (ymodem mode)", "[ off ] [ baud ]/n" " - l
2011-03-23 09:24:00 2573
原创 u-boot-2011.03在TQ2440上的移植(9)--TFTP下载菜单制作
1、在common文件夹下添加tftp_menu.c, 内容如下:#include #include static char awaitkey(unsigned long delay, int* error_p){ int i; char c; if (delay == -1) { while (1) { if (tstc()) /* we got a key press */ return getc(); } } else { for (i = 0; i {
2011-03-23 09:22:00 2184
原创 u-boot-2011.03在TQ2440上的移植(8)--支持下载yaffs2文件系统
<br />参考文章http://blog.chinaunix.net/u3/101649/showart.php?id=2134240,第2步修改分区大小后经过测试可以在TQ2440上使用,TQ2440分区如下:<br />0~0x40000 u-boot (256K)<br />0x200000~0x500000 kernel (3M)<br />0x500000~~ (剩余的)<br />1、通常一个Nnad Flash存储设备由若干块组成,1个块由若干页组成。一般128MB以下容量的Nand Fl
2011-03-21 15:11:00 2907
原创 u-boot-2011.03在TQ2440上的移植(7)--机器码配对
1、在u-boot和kernel中都会有一个机器码(即:MACH_TYPE),只有这两个机器码一致时才能引导内核。2、uboot机器码路径:arch/arm/include/asm/mach-types.h第375行#define MACH_TYPE_S3C2440 362板子初始化时指定的MACH-TYPE路径board/samsung/smdk2440/smdk2440.c第126行 /* arch number of SMDK2440-Board */gd->bd->bi_arch_num
2011-03-21 15:10:00 2791
原创 u-boot-2011.03在TQ2440上的移植(6)--支持dm9000x网卡
移植过程基本同http://blog.chinaunix.net/u3/101649/showart_2126764.html,稍作修改1、u-boot-2010.06默认的网卡是CS8900,所以要先把它屏蔽掉vi include/configs/smdk2440.h/*#define CONFIG_NET_MULTI#define CONFIG_CS8900 /* we have a CS8900 on-board */#define CONFIG_CS8900_BASE 0x19000300#def
2011-03-21 15:08:00 3728
原创 u-boot-2011.03在TQ2440上的移植(4)--支持nandflash启动
1、由原理图知接TQ2440的nanflash型号是K9F2G08U0A,2KB页面大页结构,256M。16位数据格式,接2440如下图所示:2、在include/configs/smdk2440.h头文件中定义Nand要用到的宏和寄存器,如下:vi include/configs/smdk2440.h/* * Nand flash register and envionment variables */#define CONFIG_S3C2440_NAND_BOOT 1#define NAND_CTL
2011-03-21 15:04:00 3993 3
原创 u-boot-2011.03在TQ2440上的移植(3)--支持norflash启动
1、修改命令提示符为自己的vi include/configs/smdk2440.h第118行修改为#define CONFIG_SYS_PROMPT "[SMDK2440]#" //将命令行前的名字改成[SMDK2440]2、通常,在嵌入式bootloader中,有两种方式来引导启动内核:从Nor Flash启动和从Nand Flash启动。u-boot中默认是从Nor Flash启动的。3、TQ2440的所用的Norflash为EN29LV160AB。接线同AM29LV160DB翻开此芯片的dat
2011-03-21 14:59:00 5477 2
原创 u-boot-2011.03在TQ2440上的移植(2)--初始化时钟
smdk2440的初始化设置1、u-boot主要的目录结构如下 2、启动流程图下图 由上图可知u-boot的stage1代码通常放在cpu/xxxx/start.S文件中,他用汇编语言写成;u-boot的stage2代码通常放在lib_xxxx/board.c文件中,他用C语言写成。3、在include/configs/smdk2440.h头文件中添加CONFIG_S3C2440宏vi include/configs/smdk2440.h 在第40行添加#define CONFIG_S3C2440 1
2011-03-21 11:44:00 3855
原创 u-boot-2011.03在TQ2440上的移植(1)--建立自己的demo板
参考文章黄刚博客http://www.cublog.cn/u3/101649/showart_2276917.htmltekkman博客http://www.cublog.cn/u1/34474/showart_2212066.html1、到ftp://ftp.denx.de/pub/u-boot/下载u-boot-2010.06.tar.bz22、解压 tar jxvf u-boot-2010.06.tar.bz23、进入uboot cd u-boot-2010.064、删减uboot进入/board,留
2011-03-21 11:31:00 4907 11
转载 S3C2440启动方式研究
<br />S3C2440启动方式研究<br />不管S3C2440的启动设备是什么,它都是从0x0000 0000地址开始执行程序的,所不同的是地址的映射不一样。基于S3C2440的嵌入式系统上电之后,需要首选选择启动设备,2440的启动方式选择是通过模式引脚OM1和OM0来配置的,如图1 所示为2440的启动方式选择说明:<br /> <br />图1 S3C2440启动方式说明<br />由上图可知,S3C2440支持两种启动模式:NAND和非NAND(这里是Nor Flash),具体采用的方式取决于
2011-03-19 11:35:00 2238
转载 arm B和BL指令浅析
<br />B或BL指令引起处理器转移到“子程序名”处开始执行。两者的不同之处在于BL指令在转移到子<br />程序执行之前,将其下一条指令的地址拷贝到R14(LR,链接寄存器)。由于BL指令保存了下条指令的地<br />址,因此使用指令“MOV PC ,LR”即可实现子程序的返回。而B指令则无法实现子程序的返回,只能实<br />现单纯的跳转。用户在编程的时候,可根据具体应用选用合适的子程序调用语句。<br /> AREA Init,CODE,READONLY <br />;该伪指令定义了一个代码段
2011-03-19 11:00:00 35269 2
原创 深度分析NandFlash—物理结构及地址传送(以TQ2440开发板上的K9F2G08U0A为例)
K9F2G08U0A是三星公司生产的总容量为256M的NandFlash,常用于手持设备等消费电子产品。还是那句话,搞底层就得会看datasheet,我们就从它的datasheet看起。 这就是 K9F2G08U0A的内部结构,具体的各个部件的介绍,就不详细介绍了,想了解的话可以参考伟东山的《嵌入式linux应用开发完全手册》。 现在就看一下重点的,NandFlash的存储单元的组织结构,K9F2G08U0A的存储单元的组织结构如下:结合上面的图,我们现在来分析一下:
2011-03-18 15:17:00 6395 4
原创 pc、ssh与vmware中的linux互通解决方案
<br /> 妈的,我在我自己的电脑上的vmware中装个了RedHat,可不知道怎么我的xp与RedHat死活就是通不了,搞了两个多星期,一下班回来就不停地配ip,可就是不通,好不容易通了一下,可我的ssh又不知道怎么总连不上,这几吧破网络问题搞得我头疼死了,今天不知道怎么人品爆发了一回,一搞竟然通了。哈哈。。 赶紧记下来,免得以后又麻烦。<br /> 网络情况:pc机是用电信的网上网,不需要IP<br /> RedHat是装在vmware
2011-03-17 21:32:00 1226
原创 四步到位正确安装arm-linux 交叉编译器
<br /> 今天花了点时间在RedHat5.0上安装了一个arm-linux交叉编译器。装的过程中出现过几个问题,经过查询网上的资料。现在就总结一下正确的安装方法。<br /> 首先我用的是天嵌自带的交叉编译器EABI-4.3.3_EmbedSky_20100610.tar.bz2,<br /> 1.首先建一个存放交叉编译器的目录,我建的目录的绝对路径是:/opt/TQ (TQ就是我建的目录)<br /> 2.解压EABI-4.3.3_EmbedSky_20100610.tar.bz2
2011-03-17 17:32:00 2253 1
转载 nand flash 总结
<br />NAND Flash产品可以分为三大架构,分别是Single Level Cell;SLC,包括三星电子、Hynix、Micron以及东芝都是此技术使用者,第二种则是Multi Level Cell;MLC,目前有东芝、Renesas使用,不过三星电子将在2005第四季推出相关产品,最后则是Infineon与Saifun Semiconductors合资利用NROM技术所共同开发的Multi Bit Cell;MBC。 <br />MLC是Intel在1997年9月最先开发成功的,其作用是将两个
2011-03-09 13:43:00 1330
转载 S3C2440对Nand Flash操作和电路原理(基于K9F2G08U0A)
<br />S3C2440对Nand Flash操作和电路原理(基于K9F2G08U0A)<br />S3C2440内部集成了一个Nand flash控制器。S3C2440的Nand flash控制器包含了如下的特性:<br />l 一个引导启动单元<br />l Nand Flash存储器接口,支持8位或16位的每页大小为256字,512字节,1K字和2K字节的Nand flash<br />l 软件模式:用户可以直接访问Nand Flash存储器,此特性可以用于
2011-03-09 11:49:00 3092 2
原创 Linux 下 rz , sz 与 ssh 的配合使用
<br />1、与vmware 中的linux 共享数据。<br />1.1、安装VMware tools<br />1.2、在虚机的菜单VM --> Settings... --> Options --> Shared Folders --><br />#选上"Always enabled"<br />#Add... --> 选择人在windows 本地的共享目录<br />1.3、在linux 下进入/mnt/hgfs/ 共享文件夹/ 在这里就是vmware 与windows 共同使用的共享文件夹了,<
2011-03-09 09:25:00 1321
原创 s3c2440的时钟详解
这几天一直忙着研究移植U-boot,移植U-boot的过程中有一步很重要,就是要设置s3c2440的时钟,什么 Fin,Fclk,Hclk,Pclk,Mpll,Upll等时钟信号,让初学者看得一头雾水,各种信号混淆不清,本人特意花了一点时间,把这些东东理了理,现整理如下: 首先得弄清一个大的框架,s3c2440 cpu的默认工作主频有两种12MHz和16.9344MHz,也就是我们的晶振的频率,但一般12MHz的晶振用的比较多,Fin就是指我们接的晶振频率。大家都知道s3c2440上电正常工作后
2011-03-08 16:08:00 2888 5
转载 对/u-boot-1.1.6/board/smdk2410/u-boot.lds的更详细的分析
<br />Linker Script Format<br />Linker scripts are text files.<br />You write a linker script as a series of commands.Each command is either a keyword,<br />possibly followed by arguments,or an assignment to a symbol.You may separate commands using semicol
2011-03-06 14:11:00 1465
转载 u-boot-1.1.6顶层目录config.mk非常详细的分析
<br />u-boot-1.1.6顶层目录config.mk分析<br />#####################################<br /># 这个文件的主要任务就是:1、定义交叉编译器 2、定义AR、调试、优化、预处理、C编译器、链接选项 3、指定编译规则<br />#####################################<br />ifneq ($(OBJTREE),$(SRCTREE)) #如果目标存放目录不等于源码目录(UBOOT顶层目录)<br />ife
2011-03-06 14:08:00 1964
原创 “本命年计划”001—U-boot顶层Makefile的详细分析总结(结合众多网上高手资料)
<br />VERSION = 1 <br />PATCHLEVEL = 1<br />SUBLEVEL = 6<br />EXTRAVERSION =<br />U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) # $(xxx)相当于c中的宏定义,$(VERSION)即为 1,因为 VERSION = 1 ,其他三个类似<br />VERSION_FILE = $(obj)include/version_au
2011-03-06 14:07:00 2440
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人