一种基于ZynqQspi-Flash的双功能复用方法与流程

文档序号:15229759发布日期:2018-08-21 19:15阅读:3354来源:国知局

本申请属于嵌入式技术领域,具体地说,涉及一种基于zynqqspi-flash的双功能复用方法。



背景技术:

当前zynq电路上的qspi-flash多作为小型嵌入式系统的启动盘或者嵌入式程序的启动源来应用。如遇到诸如数据掉电存储此类需求,由于qspi-flash的接口与nandflash、norflash的接口共用,所以当今的解决方案大多为另加sd卡。这样的方案,一方面会增加电路设计任务、提高硬件开销;另一方面,sd卡当前更新换代速度很快,小容量的sd卡货源无法得到保障,大容量的sd卡又局限于平台支持与资源浪费等原因。所以对一些小容量存储需求的设计方案来说,以上设计方案存在种种缺陷。



技术实现要素:

有鉴于此,本申请所要解决的技术问题是提供了一种基于zynqqspi-flash的双功能复用方法,针对小容量存储数据需求既能保证设备开发功能满足要求,又能在成本、技术难度、开发周期等方面提供优化选择。

为了解决上述技术问题,本申请公开了一种基于zynqqspi-flash的双功能复用方法,并采用以下技术方案来实现。

一种基于zynqqspi-flash的双功能复用方法,使用qspi-flash作为数据存储设备和系统的启动源。

进一步的,所述基于zynqqspi-flash的双功能复用方法,具体步骤包括:

s1:在zynq平台上选择qspi-flash作为数据存储设备;

s2:增加qspi-flash读写控制模块并初始化;

s3:将所述qspi-flash读写控制模块加入待启动系统中,生成新的系统文件;

s4:将所述系统文件下载至所述qspi-flash,并将所述qspi-flash设置为启动源。

更进一步的,所述qspi-flash的容量大于所述系统文件的容量与所需存储数据最大容量之和,并保留余量。

再进一步的,所述qspi-flash保留余量具体为多预留出25%的容量。

进一步的,所述初始化的具体步骤包括:

s201:读取当前qspi-flash的配置信息;

s202:将需求配置信息写入控制器;

s203:确定硬件连接情况;

s204:设置时钟分频系数;

s205:选定当前使用的qspi-flash芯片;

s206:读取选定的所述qspi-flash的id信息。

更进一步的,所述初始化的具体步骤还包括:

s207:对所选存储块写入指定数据;

s208:读取刚写入的数据;

s209:验证读取的数据的正确性。

更进一步的,所述s203和所述s204之间还包括:初始化测试数据值。

与现有技术相比,本申请可以获得包括以下技术效果:将单片qspi-flash用作zynq的启动盘和存储数据盘,能够省掉开发sd卡功能的任务,降低项目开发成本;针对小容量存储数据需求,在不增加设计成本和结构资源的情况下,既实现了系统启动的功能,又满足了数据存储的需求,极大的降低了设备开发难度,提高了芯片利用率,缩短了产品开发周期。

当然,实施本申请的任一产品必不一定需要同时达到以上所述的所有技术效果。

具体实施方式

以下将配合实施例来详细说明本申请的实施方式,藉此对本申请如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。

一种基于zynqqspi-flash的双功能复用方法,步骤包括:

s1:根据设备实际使用情况和需求,确定所需的qspi-flash的容量大小,并保留余量;

此容量大小应大于系统启动文件容量与所需存储数据最大容量之和,建议在选择qspi-flash芯片时,多预留出25%的余量。这是因为部分qspi-flash只支持块擦除,在写数据到qspi-flash时需要先擦除,再写入,留出足够余量可以保证擦除过程不影响系统启动文件,另外也增加了系统更改的灵活性。

s2:在zynq平台上选择qspi-flash作为数据存储设备;

在vivado上搭建平台,在zynq核内勾选qspi-flash作为数据存储设备,并根据电路图配置好qspi-flash所连接的mio端口。在clockconfiguration窗口下选择qspi-flash控制器的读写速度。

s3:查看所选qspi-flash芯片资料,明确内部存储结构;

s4:确定系统文件的容量大小及存储起始地址,明确系统文件在qspi-flash内部所占存储区间;

s5:增加qspi-flash读写控制模块,选择上一步剩余的qspi-flash存储空间进行初始化,并根据需求进行擦除、读取、写入等操作;

s6:将新增加的qspi-flash读写控制模块添加入系统中,生成新的系统文件,并确认系统文件所占存储空间,与qspi-flash读写模块所使用的存储空间做对比,无重叠即可;

s7:将新的系统文件或设备程序下载至qspi-flash,记录文件大小及文件初始地址;将zynq的启动源设置为qspi-flash;

s8:测试验证启动功能与数据存储功能均实现。

以上8个步骤并不严格要求顺序。

其中,s5中qspi-flash读写控制模块初始化的流程包括:

s501:读取当前qspi-flash的配置信息;

s502:写入用户需求的qspi-flash的配置信息到zynq系统的控制器;

s501读取当前配置信息是为了了解当前qspi-flash的配置状态,明确当前配置状态后执行s502的内容,即根据需求更改配置信息并下发配置信息至qspi-flash控制器(即zynq系统的控制器,具有控制qspi-flash的功能)。

s503:通过自环测试确定硬件连接情况;

s504:初始化测试数据值;

通过写入特定数据,并读取写入的数据,如果两者相同,则说明qspi-flash工作正常;这里的数据值即为上述特定数据。

s505:设置时钟分频系数;

s506:选定新的当前使用的qspi-flash芯片;

当前使用的qspi-flash芯片即从设备,对于zynq的qspi-flash控制器来说,可连接多个qspi-flash,这里是指定具体哪片qspi-flash为当前使用的芯片。

s507:读取当前使用的qspi-flash的id信息;

每片qspi-flash都有一个独一无二的id号,读取id号后,通过id号对选定的qspi-flash进行其他操作。

s508:对所选存储块写入指定数据;

此处写入的数据根据需求各异,如需要qspi-flash掉电后存储设备工作状态的信息,此处即写入设备工作状态的信息。

s509:读取刚写入的数据;

s510:验证读取的数据的正确性;

s511:初始化完成。

本申请的有益效果是:将单片qspi-flash用作zynq的启动盘和存储数据盘,能够省掉开发sd卡功能的任务,降低项目开发成本;针对小容量存储数据需求,在不增加设计成本和结构资源的情况下,既实现了系统启动的功能,又满足了数据存储的需求,极大的降低了设备开发难度,提高了芯片利用率,缩短了产品开发周期。

以上对本申请实施例所提供的一种基于zynqqspi-flash的双功能复用方法,进行了详细介绍。以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”、“包括”为一开放式用语,故应解释成“包含/包括但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。说明书后续描述为实施本申请的较佳实施方式,然所述描述乃以说明本申请的一般原则为目的,并非用以限定本申请的范围。本申请的保护范围当视所附权利要求所界定者为准。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。

上述说明示出并描述了本申请的若干优选实施例,但如前所述,应当理解本申请并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述申请构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本申请的精神和范围,则都应在本申请所附权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1