全志SDK - 4. Flash支持
全志SDK - 1. 系统编译
全志SDK - 2. PC与开发板连接方式
全志SDK - 3. 系统配置(1)
全志SDK - 3. 系统配置(2)
全志SDK - 4. Flash支持
全志平台,选择Flash时,尽量选用 支持列表 中的那些,否则后续非常麻烦!
Flash不支持的话,系统无法烧录进去,第一步就行不通了!
Flash调试的一般步骤为:
- 设置SPI支持
- 打最新的补丁,以便支持拓展Flash列表
- 增加Flash支持:uboot支持和Kernel支持
1. SPI支持
SPI (Serial Peripheral Interface,串行外设接口),是最常用的Flash有CPU连接总线!
注意,有的Flash可能使用的不是SPI (Serial Peripheral Interface,串行外设接口) 接口,这个要根据接口进行配置,不可以乱来!
具体的配置,参见:《SPI总线驱动使用说明》
2. Flash支持 - 方案1
Uboot目录: 快捷命令:cboot
lichee/brandy-2.0/u-boot-2018/drivers/sunxi_flash/nand/common1/spinand/spinand_ids.c
Kernel目录: 快捷命令:ckernel
lichee/linux-4.9/modules/nand/sun8iw18p1/spinand/spinand_ids.c
在以上文件的ext_spinand_idts 结构体中添加待适配的物料ID信息,如我的R328板子:
{ /* XT26G01C */ .NandID = {0x0B, 0x11, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, .DieCntPerChip = 1, .SectCntPerPage = 4, .PageCntPerBlk = 64, .BlkCntPerDie = 1024, .OperationOpt = NAND_DUAL_READ | NAND_QUAD_READ | NAND_MULTI_READ | NAND_MULTI_PROGRAM | NAND_MAX_BLK_ERASE_CNT, .AccessFreq = 100, .SpiMode = 0, .pagewithbadflag = FIRST_PAGE, /* the 1st page */ .spi_nand_function = &spinand_function, .MultiPlaneBlockOffset = 1, .MaxEraseTimes = 65000, .EccType = BIT4_LIMIT5_TO_8_ERR15, .EccProtectedType = SIZE16_OFF0_LEN16, .ecc_status_shift = ECC_STATUS_SHIFT_4, }
ID表具体信息参考文档: 《NAND物料调试指南v1.11》
3. Flash支持 - 方案2
drivers/mtd/aw-spinand/physic/id.c
(包括 kernel & uboot)中,加入对应的类别,如下所示:
struct aw_spinand_phy_info dosilicon[] = { { .Model = "DS35X1GAXXX", .NandID = {0xe5, 0x71, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, .DieCntPerChip = 1, .SectCntPerPage = 4, .PageCntPerBlk = 64, .BlkCntPerDie = 1024, .OobSizePerPage = 64, .OperationOpt = SPINAND_QUAD_READ | SPINAND_QUAD_PROGRAM | SPINAND_DUAL_READ, .MaxEraseTimes = 65000, .EccType = BIT2_LIMIT1_ERR2, .EccProtectedType = SIZE16_OFF4_LEN4_OFF8, .BadBlockFlag = BAD_BLK_FLAG_FIRST_2_PAGE, }, };
如下图我的添加:
分类:
全志SDK
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?