自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

转角遇到嵌入式

誓以春哥的霸气,凤姐的自信征服嵌入式!

  • 博客(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关注的人

提示
确定要删除当前文章?
取消 删除