System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 兼容多款SPI Flash的SPI BOOT方法技术_技高网

兼容多款SPI Flash的SPI BOOT方法技术

技术编号:40293554 阅读:4 留言:0更新日期:2024-02-07 20:43
本申请涉及一种兼容多款SPI Flash的SPI BOOT方法。所述方法通过RBL设计与表格Boot Image设计能检测、获取用户程序在传输中的偏移量,达到自适应地纠正该偏移量,解决了不同型号SPI器件中dummy clock cycles参数默认值不同和读写访问该参数寄存器方式不同导致的兼容性问题,以及板级走线延时和芯片内布局布线不合规的延时导致的数据偏移问题;将自举模式信息集合到Boot Image中,节省了芯片引脚资源,避免了端口复用时多路信号干扰和引脚驱动力不足的风险,并增强了自举模式种类的扩展性;同时更多样的自举模式有利于SPI BOOT兼容各型号SPI Flash器件。

【技术实现步骤摘要】

本申请涉及嵌入式与ic,特别是涉及一种兼容多款spi flash的spiboot方法。


技术介绍

1、spi是一种高速的,可多线串行的,同步通信总线,因使用简单且节省芯片管脚,广泛用作芯片的外围器件接口。spi接口总线包括6条逻辑线,ss(slave select)片选信号、sclk(serial clock)串行时钟信号、dq串行数据i/o口。外接spi flash器件用于boot时,用户程序存储于该flash中。spi flash器件收到芯片发送的fast read(快速读)指令与地址后,会先返回一段由dummy clock cycles参数决定长度的dummy bits,再返回真实用户数据。spi boot按照spi标准协议设计,包括全双工、双线、四线数据传输模式。现有spi boot技术中,全双工模式自举时,命令、地址与数据传输都在全双工模式下;双线模式自举时,指令、地址与数据都在双线模式下;四线模式自举时,指令、地址与数据都在四线模式下。boot逻辑主要由固化在芯片中的rbl实现,通过执行rbl完成自举。步骤为,芯片退出复位,配置信息(自举模式)经过外部引脚进入芯片,锁存到特定寄存器(如spi_boot),rbl读取该配置信息去完成spi部件初始化,接着控制spi去初始化spi flash器件,包括访问dummy clockcycles参数(使参数已知,以后续用于删除dummy bits),和根据选定的传输模式(全双工、双线、四线)配置spi flash器件的传输模式,初始化完成后,向spi flash器件发送读指令与地址去读取用户数据,并删除读取到的用户数据中的dummy bits,获得真实的用户数据,最后将用户数据搬运到目的地址,跳转到用户程序开始执行,实现用户程序的引导。

2、不同型号spi flash器件的使用标准没有完全统一,而自举逻辑由不可修改的硬件实现,导致spi boot不兼容不同型号spi flash器件的问题;现有dsp/cpu中spi boot,通常参考特定厂商或型号spi flash器件的使用标准进行定制化设计,尚未有对多厂商各型号兼容性良好的spi boot设计;增加自举模式的选项是提高兼容性的方式之一,传统spiboot通过芯片引脚输入自举模式,而过多的boot引脚数会过度占用有限的引脚资源,若采用端口复用的方式提高引脚资源利用率,则会提高多路信号干扰的风险与降低引脚驱动能力。

3、因此,在高新技术产品国产化时代的背景下,针对spi boot不兼容各型号spiflash器件的现状,以及用户对使用国产各型号spi flash器件的需求,更新一套spi boot技术。


技术实现思路

1、基于此,有必要针对上述技术问题,提供一种兼容多款spi flash的spi boot方法。

2、一种兼容多款spi flash的spi boot方法,spi flash器件通过spi接口与芯片互联,该方法包括:

3、将spi boot方式的自举模式信息集合到boot image中,boot image存储于spiflash器件中;其中boot image包括表头、spi_boot段、表头、原始用户程序的字节数、原始用户程序的目的地址、原始用户数据以及结束标志。

4、芯片退出上电复位后开始执行rbl,采用rbl对boot image进行解码。

5、芯片接收来自spi flash器件的数据,自适应地检测、获取用户程序在传输中的偏移量。

6、根据偏移量纠正数据错位,保留用户程序段与结束标志,删除其他段。

7、将预设字节长度的原用户程序段搬移到程序的目的地址,以此方式将n段用户程序搬移到各自的目的地址。

8、当检测到结束标志,pc跳转到指定地址开始执行用户程序。

9、在其中一个实施例中,芯片退出上电复位后开始执行rbl,采用rbl对boot image进行解码,包括:

10、芯片退出上电复位后开始执行rbl,rbl对spi部件进行初始化配置。

11、芯片控制spi从spi flash器件读入spi_boot段,确定spi flash器件的自举模式;再根据spi flash器件的自举模式对spi flash器件进行初始化配置。

12、根据spi flash器件的自举模式对应的spiprototype控制spi向spi flash器件发送读指令。

13、根据spi flash器件的自举模式配置spi的prototype寄存器,并清空spi接收队列,然后生成特定周期的spiclk。

14、在其中一个实施例中,根据spi flash器件的自举模式对应的spiprototype控制spi向spi flash器件发送读指令,步骤中读指令包括:03h指令、0bh指令、3bh指令以及6bh指令。

15、在发送6bh指令之前需要判断spi_boot段的控制是否向spi flash器件qe位写1的使能位是否为1,如果不为1,则将spi flash器件qe位置1,再发送6bh指令,如果为1,则发送6bh指令。

16、当控制是否向spi flash器件qe位写1的使能位不为0时,则qe位写1;发送四线快速读数据指令。

17、在其中一个实施例中,芯片退出上电复位后开始执行rbl,rbl对spi部件进行初始化配置,包括配置全双工模式,配置cpol、cpha为2’b 00或2’b11。

18、在其中一个实施例中,芯片控制spi从spi flash器件读入spi_boot段,包括:

19、芯片向spi flash器件发送03h指令或0bh芯片,读取boot image中的spi_boot段。

20、在其中一个实施例中,芯片接收来自spi flash器件的数据,自适应地检测、获取用户程序在传输中的偏移量,包括:

21、芯片接收来自spi flash器件的数据;数据包括dummy bits与除spi_boot段与该段前的表头以外的boot image,

22、rbl通过处理spi_boot段后的表头计算出用户程序在传输中的偏移量。

23、在其中一个实施例中,当spi_boot段后的表头为表头一时:rbl通过处理spi_boot段后的表头计算出用户程序在传输中的偏移量,包括:

24、设置n=0,dummy bits length=0x20,k=0。

25、rbl对spi读入的数据按字进行分析,如果首字等于预设值时,则dummy bitslength=0x20,k=1;如果首字不等于预设值时,则dummy bits length=0,k=0。

26、计算出第2+k个字中带0位的个数为n;然后计算偏移量,删除dummy bits与表头;偏移量为:

27、偏移量=dummy bits length+n。

...

【技术保护点】

1.一种兼容多款SPI Flash的SPI BOOT方法,其特征在于,所述SPI Flash器件通过SPI接口与芯片互联,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,芯片退出上电复位后开始执行RBL,采用RBL对Boot Image进行解码,包括:

3.根据权利要求2所述的方法,其特征在于,根据SPI Flash器件的自举模式对应的SPIProtoType控制SPI向SPI Flash器件发送读指令,所述步骤中读指令包括:03h指令、0Bh指令、3Bh指令以及6Bh指令。

4.根据权利要求2所述的方法,其特征在于,芯片退出上电复位后开始执行RBL,RBL对SPI部件进行初始化配置,包括配置全双工模式,配置CPOL、CPHA为2’b 00或2’b 11。

5.根据权利要求2所述的方法,其特征在于,芯片控制SPI从SPI Flash器件读入SPI_BOOT段,包括:

6.根据权利要求1所述的方法,其特征在于,芯片接收来自SPI Flash器件的数据,自适应地检测、获取用户程序在传输中的偏移量,包括:

>7.根据权利要求6所述的方法,其特征在于,当SPI_BOOT段后的表头为表头一时:RBL通过处理SPI_BOOT段后的表头计算出用户程序在传输中的偏移量,包括:

8.根据权利要求6所述的方法,其特征在于,当SPI_BOOT段后的表头为表头二时:RBL通过处理SPI_BOOT段后的表头计算出用户程序在传输中的偏移量,包括:

9.根据权利要求6所述的方法,其特征在于,当SPI_BOOT段后的表头为表头三时:RBL通过处理SPI_BOOT段后的表头计算出用户程序在传输中的偏移量,包括:

10.根据权利要求1所述的方法,其特征在于,所述自举模式包括但不限于信号采样方式控制、SPICLK速率控制、SPI Flash器件QE、ProtoType。

...

【技术特征摘要】

1.一种兼容多款spi flash的spi boot方法,其特征在于,所述spi flash器件通过spi接口与芯片互联,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,芯片退出上电复位后开始执行rbl,采用rbl对boot image进行解码,包括:

3.根据权利要求2所述的方法,其特征在于,根据spi flash器件的自举模式对应的spiprototype控制spi向spi flash器件发送读指令,所述步骤中读指令包括:03h指令、0bh指令、3bh指令以及6bh指令。

4.根据权利要求2所述的方法,其特征在于,芯片退出上电复位后开始执行rbl,rbl对spi部件进行初始化配置,包括配置全双工模式,配置cpol、cpha为2’b 00或2’b 11。

5.根据权利要求2所述的方法,其特征在于,芯片控制spi从spi flash器件读入spi_boot段,包括:

【专利技术属性】
技术研发人员:龚国辉龙毅王永庆伍玉良龚星
申请(专利权)人:湖南长城银河科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1