主题中讨论的其他器件: SysConfig、 UNIFLASH
您好!
尝试使用本指南创建自定义闪存驱动程序时遇到问题:
AM243x MCU+ SDK:为定制闪存器件编写闪存驱动程序
步骤1:
AM2434使用 IS25PL080D 闪存。 我运行了 ospi_flash_diag 示例并获取了以下信息:
[OSPI 闪存诊断测试]启动  
[OSPI Flash Diagnostic Test] Flash Manufacturer ID:0x9D 
[OSPI Flash Diagnostic Test] Flash Device ID:0x6014 
[OSPI 闪存诊断测试]在第一个块上执行闪存擦除... 
[OSPI 闪存诊断测试]完成了!!! 
[OSPI 闪存诊断测试]正在执行读写测试... 
[OSPI 闪存诊断测试]写入-读取测试通过! 
[OSPI 闪存诊断测试] SFDP 信息: 
======================================================================================================== 
SFDP 
======================================================================================================== 
SFDP 主版本:0x1. 
SFDP 次要版本:0x6 
此表中的参数标题数:1. 
此闪存中其他参数表的类型 
------------------------------ 
Flash_NorXspiDevDefinites gFlashNorXspiDeviceDefinites_ ={
.xSPI_NOR_CMD_RSTEN = 0x66、 
.xSPI_NOR_CMD_RSTMEM = 0x99、 
.xSPI_NOR_CMD_WREN = 0x06、 
.xSPI_NOR_CMD_WRREG = 0x00、 
.xSPI_NOR_CMD_BULK_ERASE = 0xC7、 
.xSPI_NOR_CMD_SECTOR_ERASE_3B = 0x20、 
.xSPI_NOR_CMD_SECTOR_ERASE_4B = 0x20、 
.xSPI_NOR_CMD_BLOCK_ERASE_3B = 0xD8、 
.xSPI_NOR_CMD_BLOCK_ERASE_4B = 0xD8、 
.xSPI_NOR_CMD_PAGE_PROG_3B = 0x02、 
.xSPI_NOR_CMD_PAGE_PROG_4B = 0x00、 
.xSPI_NOR_CMD_RDSR = 0x05、 
.xSPI_NOR_CMD_RDREG = 0x00、 
.xSPI_NOR_CMD_RDID = 0x9F、 
.xSPI_NOR_CMD_READ = 0x03、 
.xSPI_NOR_CMD_888_SDR_READ = 0x00、 
.xSPI_NOR_CMD_888_DDR_Read = 0x00、 
.xSPI_NOR_CMD_444_SDR_READ = 0xEB、 
.xSPI_NOR_CMD_444_DDR_READ = 0x00、 
.xSPI_NOR_CMD_114_Read = 0x6B、 
.xSPI_NOR_SR_WIP = 0、 
.xSPI_NOR_SR_WEL = 0、 
.xspi_nor_RDID_NUM_bytes = 5、 
.xspi_nor_manf_ID = 0x9D、 
.xSPI_NOR_DEVICE_ID = 0x6014、 
.xSPI_NOR_114_READ_MODE_CLKS = 0、 
.xspi_nor_114_read_dummy_cycles = 8、 
.xSPI_NOR_444_READ_MODE_CLKS = 2、 
.xspi_nor_444_read_dummy_cycles = 4、 
.xspi_nor_444_read_dummy_cycles = 0x00、 
.xSPI_NOR_Quad_CMD_READ_Dummy_cycles = 0x00、 
.xspi_nor_cread_dummy_cycle = 0、 
.xspi_nor_cread_dum_cycle_lc = 0x00、 
.xspi_nor_cum_DDR_RDSR_dum_cycle = 0、 
.xSPI_NOR_Octal DDR_RDREG_ADDR_Bytes = 0、 
.xSPI_NOR_Octal DDR_WRREG_ADDR_Bytes = 0、 
.xSPI_NOR_Octal DDR_RDVREG_Dummy_cycle = 0、 
.xSPI_NOR_Octal DDR_RDNVREG_Dummy_cycle = 0、 
.xspi_nor_cum_RDSFDP_dum_cycle = 0、 
.xSPI_NOR_Octal RDSFDP_ADDR_TYPE = 0、 
.xSPI_NOR_WRR_WRITE_TIMEOUT = 2000、 
.xSPI_NOR_BULK_ERASE_TIMEOUT = 2048000、 
.xSPI_NOR_PAGE_PROG_TIMEOUT = 200、 
.xSPI_NOR_VREG_OFFSET = 0x0、 
.xSPI_NOR_NVREG_OFFSET = 0x0、 
.xSPI_NOR_Quad_MODE_CFG_ADDR = 0x0、 
.xSPI_NOR_Quad_MODE_CFG_BIT_LO位位= 0x0、 
.xSPI_NOR_DDR_八 进制_MODE_CFG_ADDR = 0x0、 
.xSPI_NOR_DDR_八 进制_MODE_CFG_BIT_LO位位= 0x0、 
.xspi_nor_dum_cycle_CFG_ADDR = 0x0、 
.xSPI_NOR_FLASH_SIZE = 1048576、 
.xSPI_NOR_PAGE_SIZE = 256、 
.xSPI_NOR_BLOCK_SIZE = 65536、 
.xSPI_NOR_Sector_size = 4096、 
.addrByteSupport = 0、 
.dtrSupport = 0、 
.qeType = 2、 
seq444Enable ={0、0、1、0、0}、 
seq444Disable ={0、1、0、1}、 
.oeType = 0、 
.cmdExtType = 0、 
.byteOrder = 0、 
}; 
步骤2:
按照步骤2中的指南操作。 我复制 了 flash_nor_ospi_quad_device_s25HL512T.c 文件,对其进行了修改, 并将其重命名为 flash_nor_ospi_quad_device_is25PL080D.c 并添加到 flash_nor_ospi_quad.h :
extern Flash_NorQspiDevDefinites gFlashNorQDevicespies_IS25PL080D; 
extern Flash_Attrs gFlashNorQspiAttrs_IS25PL080D; 
并更改了 makefile 和闪存 JS 文件以包含这些更改。
完成这些步骤并构建 示例工程 ospi_flash_io 后、我收到了此错误:
未定义的首次引用 
符号 
------ -------- 
gFlashNorQspiAttrs_IS25PL080D ./syscfg/ti_board_open_close.o 
gFlashNorQspiDeviceDefinites_IS25PL080D ./syscfg/ti_board_open_close.o 
因此、我修改了文件  flash_nor_ospi_quad_device_s25HL512T.c 以匹配我的闪存类型。 使用这种方法、项目完全构建。 
步骤3:
SFDP 表用于修改文件 FLASH_NOR_ospi_quad_device_S25HL512T.c
步骤4:
运行示例 OSPI 闪存 I/O 示例时、程序卡在"无限"循环中、无法退出。
因为它在这种情况下会失败

我的问题是:
在尝试添加自定义闪存驱动程序时、我是否错过了一些内容? (步骤2中的描述)
您可以编辑现有的闪存驱动程序吗? (例如 FLASH_NOR_ospi_quad_device_S25HL512T.c)
如果是、为什么闪存 I/O 示例卡在 while 环路中?
非常感谢你的帮助。
Dominik Ondra
 
				 
		 
					 
				
