嵌入式处理器基于SPI引导的RAM 自检.docVIP

嵌入式处理器基于SPI引导的RAM 自检.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式处理器基于SPI引导的RAM 自检   0 引言   随着全球网络进一步扩展到新终端设备和以前未连接的行业中,网络安全对消费者、企业和其他机构变得越来越重要。人们越来越需要性能安全、价格便宜的装置设备。为了降低成本, 往往需要简化电路设计。例如,采用SPI 方式引导硬件,使用SPI Flash 作为存储媒介,减少总线的布线,是简化硬件电路的较好的方法。但采用SPI 方式引导硬件,需要将程序引导到DDR 内存中,同时又需要对DDR 内存进行检查,这就出现了矛盾。   1 基于SPI 的硬件引导   本文以一个实例,对嵌入式处理器基于SPI 引导硬件时如何进行RAM 检查进行详细的介绍。是嵌入式处理器使用SPI 引导的硬件框图。硬件引导程序和系统程序放在SPI Flash 中,在上电引导后,系统程序会被搬移到DDR 空间,在D DR 空间运行起来。现在以U-Boot 硬件引导程序为例, 介绍以SPI 引导模式引导系统硬件的情况。U-Boot 是德国DENX 小组的开发用于多种嵌入式CPU 的Bootloader 程序, 可以支持多种嵌入操作系统和多种处理器。编译的U-Boot 程序, 往往是运行在NOR Flash 或DDR 中的。但在基于SPI 引导时, 需要先从SPI Flash 往片内RAM 里运行一段程序, 将DDR 内存检查一遍, 然后再将U-Boot 引导到DDR 内存中去运行。   2 SPI 引导采用的数据格式   在TI 公司的DSP 及ARM 处理器,飞思卡尔公司POWERPC 及ARM 处理器, 都支持基于SPI 的引导模式。在这些处理器的片内ROM 都包含基本的SPI 引导驱动程序。本文以飞思卡尔公司的QorIQ P1010 处理器为例介绍其引导过程。P1010 片内的SPI 驱动程序能够把SPI 接口Flash 中的程序拷贝到DDR 内存或片内RAM 中。不过,在拷贝之前,需要先对DDR 控制器或片内RAM 进行配置。这就需要定义一个特定的数据结构,完成引导程序所需要的环境配置。对于不同的处理器,生产厂家定义的引导数据结构是不同的。在P1010 处理器完成复位序列后,通过选择使用处理器片内ROM 的SPI 引导配置程序,而后处理器内核开始运行该片内ROM 程序, 配置SPI 控制器,并与外部的SPI Flash 通信,将程序拷贝出来并跳到指定的位置运行时配置数据写入此地址。当最低位为1 时,配置地址域高30 bit 代表的是指令,此时配置数据写入此地址。这样的结构让用户可以方便地配置4 B 对齐的内存,完成控制指令操作,或定义程序配置阶段的结束   当CNT ( 最低位)=0 时, 则高30 bit 用作要写入数据的地址,配置数据包含要写入的数据。   当CNT=1 时, 则高30 bit 用作控制指令。   当EC=1 时, 代表配置阶段结束指令。   当DLY=1 时, 代表延时一定时间指令。   当CF=1 时, 代表更改SPI 频率的指令。   CNT 表示地址模式与指令模式的切换。   当处理器内核开始拷贝程序时, 先判断0X40 位置的标志是否正确, 如果正确, 先根据配置的地址/数据对的个数N 来配置一些外围寄存器,然后从0X50 处指示的Flash 地址搬移用户代码数据到0X58 指示的地址。搬移完成后,从0X60 指示的地址开始运行。将片内运行的这一段程序叫TPL 程序。   3 片内RAM 运行的TPL 程序   P1010 包含256 KB 的L2CACHE, 也可以当片内RAM 使用。要检查DDR 内存, 要先在片内RAM 里运行一小段TPL 程序。这一段程序是对基于DDR 引导程序U-Boot 的一个裁剪, 主要完成内核的配置,初始化串口终端, 初始化DDR 内存控制器, 然后检查DDR 内存。在这里不需要设置U-Boot 的环境变量,不需要配置以太网等其他的外围器件。编译后的TPL 目标文件为uboot-tpl.bin 。TPL 程序的编译按RAM 引导的方式处理。程序的开始地址设为:0xc0030000~0xc0038800 。现在需要对编译后的uboot-tpl.bin 进行格式处理, 在其前面加上SPI 引导的可以识别的数据表头,是按照(SPI 引导模式的数据结构) 和( 配置地址域的数据格式) 完成的一个SPI 引导配置实例。在这个实例中, 将L2CACHE 设为片内RAM, 开始地址设为0xc0000000 。这一部分空间在处理器内核引导时已经通过TLB 映射, 可以直接使用。   4 结论   嵌入式处理器在使用SPI 引导硬件时,先通过片内RAM 运行一段程序,对DDR 内存进行

您可能关注的文档

文档评论(0)

专注于电脑软件的下载与安装,各种疑难问题的解决,office办公软件的咨询,文档格式转换,音视频下载等等,欢迎各位咨询!

1亿VIP精品文档

相关文档