SD卡启动允许设备从SD卡(Secure Digital Card)上读取引导加载程序或操作系统,从而启动系统。SD卡启动具有一些显著的优点,例如方便性、灵活性和可移植性。通过将必要的启动文件存储在SD卡上,用户可以轻松地更换或更新这些文件,而无需对设备的内部存储进行复杂的操作。
1 特点
SD卡启动支持以下特性:
• 支持从标准SD或SDHC卡启动
• 支持FAT 16/32文件系统
• 支持最高32GB的存储卡容量
注意:SD卡启动模式在7z010双核和7z007s单核CLG225设备中不受支持。且SD卡启动模式不支持Header搜索或多引导功能。
SD卡启动是一种灵活且常见的启动方式,尤其适用于需要从外部存储介质加载操作系统或应用程序的场景。通过使用SD卡,用户可以轻松地将引导加载程序、操作系统镜像或其他必要文件存储在SD卡上,并在上电时直接从SD卡启动设备。
2 SD卡启动步骤
在SD卡启动模式下,BootROM会执行以下步骤:
①初始化表6-15中列出的MIO引脚。
②配置SDIO_CLK_CTRL为32的除数,并将SD_CLK_CTL_R的值设置为1(除以2)。
③设置SD控制器以4位模式工作,并使用3字节寻址。
④测试接口。
⑤从SD文件系统的根目录读取BOOT.BIN文件,并在解析所需的BootROM头部后,将其复制到OCM(片上存储器)中。
⑥BootROM将CPU的执行权转移给下载到OCM中的代码。
完成这些步骤后,设备将成功地从SD卡启动,并开始执行存储在OCM中的代码。
3 文件分区
为了使BootROM能够读取BOOT.BIN文件,SD卡必须进行分区,确保第一个分区是FAT 16/32文件系统。虽然允许存在其他非FAT分区,但BootROM不会读取这些其他分区。
4 启动页访问
当SD卡复位时,它默认提供对启动页的访问。BootROM在执行时假定启动页是可访问的。如果用户代码更改到其他页,并且Zynq系统发生复位而未对SD卡进行复位,那么BootROM将无法从SD卡的启动页读取BootROM Header信息。
5 优化SD卡的启动时间
为了优化SD卡的启动时间,可以将CPU时钟分频器设置为2而不是4。这一设置假设PS_CLK为33 MHz。如果使用了更快的时钟,则需要考虑使用更大的分频器值。
通过减少分频器的值,可以提高CPU的时钟频率,从而加快启动过程中代码的执行速度。但是,需要注意的是,过高的时钟频率可能会对硬件的稳定性和兼容性产生影响,因此在进行优化时需要综合考虑这些因素。
另外,除了调整CPU时钟分频器之外,还可以考虑其他优化措施来进一步减少启动时间,例如优化启动加载程序的大小、减少不必要的初始化步骤或并行处理启动过程中的某些任务等。
最后,在进行启动时间优化时,务必确保系统的稳定性和可靠性。不要为了追求更快的启动速度而牺牲系统的稳定性或引入潜在的问题。建议在优化过程中进行充分的测试和验证,以确保优化后的系统能够正常工作并满足使用要求。