当选择,NOR flash 启用时,才可以访问 NOR FLASH 。
/common/board_r.c 364 line:
initr_flash()
flash_size = flash_init();
/drivers/mtd/cfi_flash.c
想要打开调试的话, 就定义这个
#define DEBUG
flash_init()
debug("JEDEC PROBE: ID %x %x %x\n",
info->manufacturer_id,
info->device_id,
info->device_id2);
if (jedec_flash_match(info, info->start[0]))
break;
/drivers/mtd/Jedec_flash.c
static const struct amd_flash_info jedec_table[] 中添加
1 { 2 .mfr_id = (u16)MX_MANUFACT, // 厂家ID 3 .dev_id = AM29LV160DB, // 设备ID 2249 4 .name = "MX 29LV160DB", // 名称随意写 5 .uaddr = { 6 [1] = MTD_UADDR_0x0555_0x02AA /* x16 */ 7 }, 8 .DevSize = SIZE_2MiB, //NOR FLASH 大小 9 .CmdSet = CFI_CMDSET_AMD_LEGACY, // 默认 10 .NumEraseRegions= 4, // 4个擦除块,在下面写有每个大小 11 .regions = { 12 ERASEINFO(16*1024, 1), 13 ERASEINFO(8*1024, 2), 14 ERASEINFO(32*1024, 1), 15 ERASEINFO(64*1024, 31), 16 } 17 },
烧写发现错误
ERROR: too many flash sectors
smdk2440.h
#define CONFIG_SYS_MAX_FLASH_SECT (19) 修改为比较大的值 35 : 1+2+1+31
打开调试,输出的信息
编译成功后,去掉调试信息
时间: 2024-11-07 22:49:35