新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > S3C2410外围存储系统的研究与设计

S3C2410外围存储系统的研究与设计

作者: 时间:2013-03-30 来源:网络 收藏

  3 硬件电路设计

  在本嵌入式系统开发实验中,S3C2410扩展的存储系统采用了英国Intel公司的16M E28F128J3A-150 NOR Flash芯片,以及Hynix公司的32M HY57V561620B SDRAM芯片。地址空间分配如下:Flash为Bank0中的0x00000000~0x07FFFFFF地址段,而SDRAM为Bank6中的0x30000000~0x37FFFFFF地址段,具体的电路连接如图2。

  图 2 S3C2410 与Flash、SDRAM的电路连接图

  4 存储系统初始化

  U-Boot是德国DENX小组的开发用于多种嵌入式CPU的开放源代码bootloader程序,目前最新版本是1.1.6,本实验使用的是U-Boot-1.1.4。U-Boot是在ppcboot以及armboot的基础上发展而来,现已非常成熟和稳定,已经在许多嵌入式系统开发过程中被采用。其支持多种目标操作系统,其中对Linux的支持最完善,是嵌入式Linux Bootloader的最佳选择。

  由于本实验Linux要移植的开发板是基于s3c2410的开发板,在U-Boot中已有移植成功的smdk2410开发板,故以smdk2410开发板上运行的U-Boot为模板设计适合本实验的U-Boot。有关存储系统的初始化修改如下:

  (1)Flash驱动程序采用了board/Cmi/Flash.c,由于cmi中的flash.c在写入时要交换字节,因而删除了它的write_short()和write_buff()函数,利用board/ep7312/Flash.c中的write_word()和write_buff()函数,并且把flash.c中的FLASH_BASE0_PRELIM改为CFG_FLASH_BASE。把FLASH_BLOCK_SIZE改为0x20000,(E28F128J3A flash中块的大小是128K)。

  (2)Board/ smdk2410/smdk2410.c中函数dram_init()定义了SDRAM的真实地址和实际大小。由于本实验中,SDRAM的大小为32M,所以修改Include/configs/Smdk2410.h中的PHYS_SDRAM_1_SIZE,改为0x02000000。

  (3)将如下代码替代原来在Include/configs/Smdk2410.h的/*FLASH and environment organization*/一栏中的内容。

  #define PHYS_FLASH_1 0x00000000                /* Flash Bank #1 */

  #define PHYS_FLASH_SIZE 0x01000000           /* 16 MB */

  #define CFG_FLASH_PROTECTION

  #define CFG_FLASH_BASE PHYS_FLASH_1

  #define CFG_MONITOR_BASE PHYS_FLASH_1

  #define CFG_MAX_FLASH_BANKS 1        /* max number of memory banks */

  #define CFG_MAX_FLASH_SECT 128              /* max number of sectors on one chip */

  #define CFG_FLASH_ERASE_TOUT (2*CFG_HZ)    /* Timeout for Flash Erase */

  #define CFG_FLASH_WRITE_TOUT (2*CFG_HZ)   /* Timeout for Flash Write */

  #define CFG_ENV_IS_IN_FLASH 1

  #define CFG_ENV_ADDR (PHYS_FLASH_1 + 0x60000)

  #define CFG_ENV_SIZE 0x20000                     /* Total Size of Environment Sector */

  如上分析,SDRAM和Flash的初始化信息分别在smdk2410.c和flash.c文件中定义了,最后是通过lib_arm/board.c文件的display_dram_config()和display_flash_config()函数来显示的。

  5 结束语

  本文结合实际实验,分析了S3C2410的存储系统原理,完成了其的硬件电路设计和软件初始化,最后成功实现了对S3C2410存储系统的存取访问。开发人员可以根据笔者的研究和设计思路,同时结合所需的存储容量和类型进行高效的存储系统设计。

存储器相关文章:存储器原理



上一页 1 2 下一页

评论


相关推荐

技术专区

关闭