TI中文支持网
TI专业的中文技术问题搜集分享网站

AM335X SPI FLASH无法启动

我使用的是AM335X芯片,祼机跑,现在想从SPI FALSH启动,可是无法启动,以下是我的操作步骤:

1)设置启动方式  SYSBOOT[4..0] 为11000  即启动顺序为:SPI0 MMC0 USB0 UART0

2)下载BOOT到SPI FLASH。

3)断电后无法看到BOOT启动的现象。

 

测试:1)关于启动顺序:当我把BOOT下载到FLASH中时,断电后,就不能够从SD卡正确启动。当我把FLASH短接(造成FLASH异常)后,就能够从SD卡正常启动。所以启动顺序设置应该是正确的。

          2)程序:我将FLASH里面的数据全部擦除后,MLO能够正常引导app,能够跑起来,所以程序应该也是没有问题的。

          3)下载方式:使用官方提供的SPI_FLASH_TOOL程序(去掉EEPROM部分,能够正常下载)下载BOOT到SPI FLASH,仍然无法启动。

          4)SPI_FLASH_TOOL程序提供四种SPI FLASH,我将我使用的FLASH的有关信息添加到winbond_spi_flash_table里面去,下载成功,仍然无法启动。但是手头上没有这个程序提供的四种FLASH。

 

问题:1)是不是我下载FLASH的方式是否有问题,即我下载的是带有封装的数据,即前8个数据分别4字节的文件大小和4字节的加载地址。如:48 D7 00 0000 04 2F 40

           2)是不是从SPI启动只支持SPI_FLASH_TOOL中指定的四种FLASH,而其它的不支持。

          3)贴上用SPI_FLASH_TOOL下载boot时console打印信息(将boot文件直接放到SPI_FLASH_TOOL工程中的Debug文件下),请帮忙看下,谢谢。

[CortxA8] Welcome to CCS SPI Flash Utility 
[CortxA8] AM335X part detected. SF: Got idcode c8 40 15
[CortxA8] Checking if Winbond flash writer can be used..
[CortxA8] SF: Detected W25Q16 with page size 256, total 2097152 bytes
[CortxA8] Flash page size: 256 bytes
[CortxA8] Flash sector size: 4096 bytes
[CortxA8] Starting SPIWriter.
[CortxA8] Enter the File Name
boot
[CortxA8] Enter the Offset in bytes (in HEX)
0x00
[CortxA8] Erasing flash at byte offset: 0, byte length: 57344
[CortxA8] SE: cmd = { 0x20 0x000000 }
[CortxA8] SE: cmd = { 0x20 0x001000 }
[CortxA8] SE: cmd = { 0x20 0x002000 }
[CortxA8] SE: cmd = { 0x20 0x003000 }
[CortxA8] SE: cmd = { 0x20 0x004000 }
[CortxA8] SE: cmd = { 0x20 0x005000 }
[CortxA8] SE: cmd = { 0x20 0x006000 }
[CortxA8] SE: cmd = { 0x20 0x007000 }
[CortxA8] SE: cmd = { 0x20 0x008000 }
[CortxA8] SE: cmd = { 0x20 0x009000 }
[CortxA8] SE: cmd = { 0x20 0x00a000 }
[CortxA8] SE: cmd = { 0x20 0x00b000 }
[CortxA8] SE: cmd = { 0x20 0x00c000 }
[CortxA8] SE: cmd = { 0x20 0x00d000 }
[CortxA8] SF: Winbond: Successfully erased 57344 bytes @ 0xe000
[CortxA8] Writing flash at page offset: 0, number of pages: 216
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x000000 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x100
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x000100 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x200
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x000200 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x300
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x000300 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x400
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x000400 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x500
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x000500 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x600
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x000600 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x700
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x000700 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x800
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x000800 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x900
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x000900 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xa00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x000a00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xb00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x000b00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xc00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x000c00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xd00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x000d00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xe00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x000e00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xf00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x000f00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x1000
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x001000 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x1100
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x001100 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x1200
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x001200 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x1300
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x001300 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x1400
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x001400 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x1500
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x001500 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x1600
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x001600 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x1700
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x001700 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x1800
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x001800 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x1900
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x001900 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x1a00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x001a00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x1b00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x001b00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x1c00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x001c00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x1d00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x001d00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x1e00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x001e00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x1f00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x001f00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x2000
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x002000 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x2100
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x002100 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x2200
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x002200 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x2300
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x002300 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x2400
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x002400 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x2500
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x002500 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x2600
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x002600 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x2700
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x002700 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x2800
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x002800 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x2900
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x002900 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x2a00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x002a00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x2b00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x002b00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x2c00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x002c00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x2d00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x002d00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x2e00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x002e00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x2f00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x002f00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x3000
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x003000 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x3100
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x003100 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x3200
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x003200 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x3300
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x003300 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x3400
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x003400 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x3500
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x003500 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x3600
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x003600 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x3700
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x003700 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x3800
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x003800 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x3900
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x003900 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x3a00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x003a00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x3b00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x003b00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x3c00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x003c00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x3d00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x003d00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x3e00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x003e00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x3f00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x003f00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x4000
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x004000 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x4100
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x004100 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x4200
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x004200 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x4300
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x004300 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x4400
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x004400 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x4500
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x004500 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x4600
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x004600 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x4700
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x004700 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x4800
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x004800 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x4900
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x004900 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x4a00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x004a00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x4b00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x004b00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x4c00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x004c00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x4d00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x004d00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x4e00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x004e00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x4f00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x004f00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x5000
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x005000 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x5100
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x005100 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x5200
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x005200 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x5300
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x005300 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x5400
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x005400 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x5500
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x005500 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x5600
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x005600 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x5700
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x005700 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x5800
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x005800 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x5900
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x005900 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x5a00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x005a00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x5b00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x005b00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x5c00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x005c00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x5d00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x005d00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x5e00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x005e00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x5f00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x005f00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x6000
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x006000 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x6100
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x006100 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x6200
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x006200 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x6300
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x006300 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x6400
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x006400 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x6500
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x006500 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x6600
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x006600 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x6700
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x006700 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x6800
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x006800 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x6900
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x006900 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x6a00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x006a00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x6b00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x006b00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x6c00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x006c00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x6d00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x006d00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x6e00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x006e00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x6f00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x006f00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x7000
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x007000 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x7100
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x007100 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x7200
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x007200 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x7300
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x007300 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x7400
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x007400 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x7500
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x007500 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x7600
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x007600 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x7700
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x007700 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x7800
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x007800 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x7900
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x007900 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x7a00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x007a00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x7b00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x007b00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x7c00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x007c00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x7d00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x007d00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x7e00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x007e00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x7f00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x007f00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x8000
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x008000 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x8100
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x008100 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x8200
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x008200 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x8300
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x008300 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x8400
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x008400 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x8500
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x008500 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x8600
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x008600 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x8700
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x008700 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x8800
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x008800 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x8900
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x008900 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x8a00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x008a00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x8b00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x008b00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x8c00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x008c00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x8d00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x008d00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x8e00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x008e00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x8f00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x008f00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x9000
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x009000 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x9100
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x009100 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x9200
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x009200 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x9300
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x009300 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x9400
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x009400 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x9500
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x009500 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x9600
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x009600 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x9700
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x009700 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x9800
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x009800 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x9900
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x009900 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x9a00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x009a00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x9b00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x009b00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x9c00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x009c00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x9d00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x009d00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x9e00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x009e00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0x9f00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x009f00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xa000
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00a000 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xa100
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00a100 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xa200
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00a200 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xa300
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00a300 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xa400
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00a400 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xa500
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00a500 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xa600
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00a600 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xa700
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00a700 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xa800
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00a800 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xa900
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00a900 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xaa00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00aa00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xab00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00ab00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xac00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00ac00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xad00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00ad00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xae00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00ae00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xaf00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00af00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xb000
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00b000 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xb100
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00b100 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xb200
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00b200 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xb300
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00b300 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xb400
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00b400 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xb500
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00b500 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xb600
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00b600 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xb700
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00b700 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xb800
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00b800 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xb900
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00b900 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xba00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00ba00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xbb00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00bb00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xbc00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00bc00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xbd00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00bd00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xbe00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00be00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xbf00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00bf00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xc000
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00c000 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xc100
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00c100 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xc200
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00c200 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xc300
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00c300 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xc400
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00c400 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xc500
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00c500 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xc600
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00c600 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xc700
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00c700 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xc800
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00c800 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xc900
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00c900 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xca00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00ca00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xcb00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00cb00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xcc00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00cc00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xcd00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00cd00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xce00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00ce00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xcf00
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00cf00 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xd000
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00d000 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xd100
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00d100 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xd200
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00d200 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xd300
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00d300 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xd400
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00d400 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xd500
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00d500 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xd600
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00d600 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xd700
[CortxA8] PP: 0x40305f70 => cmd = { 0x02 0x00d700 } chunk_len = 256
[CortxA8] SF: Winbond: Successfully programmed 256 bytes @ 0xd800
[CortxA8] Verifying... 
[CortxA8] Verifying... [CortxA8] Success. 

Steven Liu1:

你编译出来的bootloader,就是你烧写的MLO是基于Starterware编译的吧,编译的时候配置是用SPI booting的配置编译的吗?我这边有不少客户用的就是Winbond的flash,没有遇到什么问题。

afsa af a:

回复 Steven Liu1:

你好,是的。烧写的Boot是MLO,是基于Starterware编译的。就是按照官方提供的Demo示例进行编译的。下载完后就是启动不起来。

Steven Liu1:

回复 afsa af a:

我的意思是说,你有设置编译的启动模式选择吗,如果想用SPI启动的话,首先,你必须要基于这个目录下面的bootloader

C:\ti\AM335X_StarterWare_02_00_01_01\build\armv7a\cgt_ccs\am335x\evmAM335x\bootloader

同时选择模式的时候在build configuration中需要选择Set Active -> Debug_SPI or RELEASE_SPI

Jian Zhou:

回复 Steven Liu1:

请问你是按照哪个demo程序编译的?是GPEVM么?

afsa af a:

回复 Jian Zhou:

你好,谢谢你的回复。是AM335X_StarterWare_02_00_00_07里面的Demo进行编译的。

afsa af a:

回复 Steven Liu1:

谢谢你的回复。是的,我选择是DEBUG_SPI进行编译的。

afsa af a:

回复 Jian Zhou:

问题已得到解决,是工程配制的问题,造成前8字节中地址出现异常。

 

 

 

谢谢回复。

赞(0)
未经允许不得转载:TI中文支持网 » AM335X SPI FLASH无法启动
分享到: 更多 (0)