C:\MinGW\msys\1.0\ibl\boot_loader\ibl\src\make\makefile
C:\MinGW\msys\1.0\ibl\boot_loader\ibl\src\main\iblinit.c
- 将IBL_ENTER_ROM设为0,或者将函数iblEnterRom();注释掉
9.3.9 将MinGW命令行输出信息输出到文件
IBL_buildibl_6678 2>&1 | tee -a log3
9.3.10 编译小问题
- 将IBL_CFG_SPI_MAP_TABLE_DATA_ADDR_LSW擅自改成0x500了,导致一下问题出现(乌龙)
C:\MinGW\msys\1.0\ibl\boot_loader\ibl\src\cfg\c66x\iblcfg.h
修改文件:C:\MinGW\msys\1.0\ibl\boot_loader\ibl\src\make\makestg2
修改后编译现象为:
- IBL烧写到NOR flash中,原理和普通的app程序烧到flash中一样,生成的i2crom.ccs(spi和i2c模式下生成的均叫作此文件)文件,必须用romparse小工具处理一下,即添加boottable表,因而会用到spiRom.map.pre文件。
- 修改后的spiRom.map.pre文件如下:
- 以上参数的配置值,参考与创龙开发板(Demo\Factory Reset\Tools\SPI NorFlash Image\Config\app_spirom.map.pp),主要用来配置pll时钟和spi模式速度信息等。
- 请确保以上参数配置和spi启动的gpio引脚配置、IBL Makefile(参考Makefile修改章节)中的参数配置一致,
- 实际编译工程时,spiRom.map.pre转换成spiRom.map.pp使用。
- 调试过程中ibl_c66x_init.out打印信息如下:
ibl_c66x_init.out调试打印信息如下:
[C66xx_0] ++++++bootDevice = 1
++++++BOOT_DEVICE_SPI_NOR
++++++littleEndian = 1
++++++v = 0x9e02f
++++++params = ROM_BOOT_PARAMS_ADDR_C6678
++++++if ((SPI_ROM == 1) && (params->boot_mode == BOOT_MODE_SPI))
++++++spip->mode = 1
++++++spip->addrWidth = 24
++++++spip->nPins = 4
++++++spip->csel = 0
++++++spip->c2tdelay = 0
++++++spip->cpuFreqMhz = 1000
++++++spip->busFreqMhz = 1
++++++spip->busFreqKhz = 0
++++++cfg->clkdiv = 166
++++++hwSpiRead iblBootMap_t ++++++map =
0x0 0x14 0x0 0x0 0x0 0x0 0xa7 0x80 0x0 0x0 0x5 0x0 0xff 0xff 0xff 0xff 0x0 0x0 0x5 0x0
++++++map.length = 0x14
++++++map.chkSum = 0x0
++++++map.addrLe = 0xa780
++++++map.configLe = 0x500
++++++map.addrBe = 0xffffffff
++++++map.configBe = 0x500
++++++configAddr = 0x500
++++++spiReadAddress = 0xa780
++++++in the 2 for (;;)
++++++ibl.chkSum = 0x0
++++++ibl.iblMagic = 0xcec11ebc
++++++success !!!