UBOOT-SPI-FLASH的驱动分析

该博客详细介绍了SPI闪存加载镜像的过程,包括通过spi_flash_probe()进行设备验证,使用CMD_READ_ID获取设备ID,根据ID匹配SPI闪存参数,设置读写命令以及进入高速传输模式。文章深入探讨了SPI闪存的初始化步骤,为理解嵌入式系统的固件加载提供了基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、入口:

spl_spi_load_image()->

                spi_flash_probe();

                spi_flash_read(flash, header);             //获取image头信息

                spi_parse_image_header();  

                spi_flash_read(flash, image.size);     //获取image的数据

二、spi_flash probe过程:

spi_flash_probe_slave() ->

                  1、spi_flash_cmd(spi, CMD_READ_ID, idcode);  首先获取SPI_FLASH ID;

                  2、spi_flash_validate_params(spi, idcode);

                        jedec = idcode[1] << 8 | idcode[2];

                        ext_jedec = idcode[3] << 8 | idcode[4];

                        从全局参数列表spi_flash_params_table[]中匹配jedec和ext_jedec;

                        flash->read_cmd =  //

                                这里根据RD_FULL匹配QUAD_FAST(4线模式);

                                              DU_FULL匹配DU_FAST(2线模式);

                                              普通(1线模式);

                        flash->write_cmd = 同上。

                        spi_flash_set_qeb(); 设置spi-flash的qeb标识,标识启动FAST传输模式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值