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

C6678 EMIF16 Nand FLASH 引导问题

C6678 EMIF16 Nand FLASH  boot的帖子在论坛里面很多,我都一一看过了,但是我的始终没有成功。

我也是按照下面的方法一步一步做的,最终也没有成功。不知道是为什么? 希望高人能够解答。

CCS版本:CCS5.5

开发板:TMS320C6678L

使用的库:mcsdk_2_01_02_06 ,pdk_C6678_1_1_2_6

步骤:

 

(一) 将生成程序的二进制文件烧入nand flash

1. Be sure to set the boot mode dip switch to no boot/EMIF16 boot mode on the EVM.

2. Copy the binary file to writer\nand\evmc66xxl\bin directory, and rename it to app.bin.

3. Change the file_name and start_addr in writer\nand\evmc66xxl\bin\nandwriter_input.txt if necessary. By default the NAND writer will load app.bin to DSP memory and write the data to NAND device start byte address 16384 (start address of block 1). The start_addr should always be set to the start byte addess of a block.

4. Open CCSv5 and launch the evmc66xx emulator target configuration and connect to core 0.

5. Load the program writer\nand\evmc66xxl\bin\nandwriter_evm66xxl.out to CCS, be sure evmc66xxl.gel is used in CCS and DDR is intialized.

6. Open the Memory view (in CCSv5, view->Memory Browser), and view the memory address 0x80000000.

7. Load app.bin to 0x80000000:

 * In CCSv5, right click mouse in memory window, select "load memory".

 * Browse and select writer\nand\evmc66xxl\bin\app.bin (raw data format), click "next"

 * Set the Start Address to "0x80000000", Type-size to 32-bits, leave swap unchecked, click "finish"

8. After the data file is loaded into the memory, run the program (in CCSv5, press F8), it will start to program the NAND.

9. When programming is completed, the console will print "NAND programming completed successfully", if there is any error, the console will show the error message.

(二)  IBL烧入EEPROM

1. Be sure to set the boot mode dip switch to no boot/EMIF16 boot mode on the EVM.

2. Copy the binary file to writer\eeprom\evmc66xxl\bin directory.

3.Change the file_name, bus_addr, start_addr and swap_data in writer\eeprom\evmc66xxl\bin\eepromwriter_input.txt if necessary. Make sure that file_name is set to the name of your binary file.

  *By default the EEPROM writer will load app.dat to DSP memory and write the data to I2C slave bus address 81 (0x51) at EEPROM device start byte address 0 with data swap disabled (0).

4. Open CCSv5 and launch the evmc66xx emulator target configuration and connect to core 0.

5. Load the program writer\eeprom\evmc66xxl\bin\eepromwriter_evm66xxl.out to CCS, be sure evmc66xxl.gel is used in CCS and DDR is intialized.

6. Open the Memory view (in CCSv5, view->Memory Browser), and view the memory address 0x0C000000.

7. Load your .bin file from step 3 to 0x0C000000:

     * In CCSv5, right click mouse in memory window, select "load memory".

     * Browse and select your binary file.

       – By default, the browse menu only displays .dat files. You will have to change the option

      TI Data Format (*.dat) to Raw Data Format (*.bin) to find your binary file.

     * Click "Next".

     * Change the Start Address to "0x0C000000" if it is not 0x0C000000.

     * Change the Type-size to 32 bits if it is not 32 bits.

        * Make sure the swap checkbox is unchecked.

     * click "Finish".

8.After the data file is loaded into the memory, run the program (in CCSv5, press F8), it will start to program the EEPROM.

9.When programming is completed, the console will print "EEPROM programming completed successfully", if there is any error, the console will show the error message.

(三)  配置IBL

1.修改tools\boot_loader\ibl\src\make\bin\i2cConfig.gel的内容,将函数setConfig_c6678_main()的语句 ibl.bootModes[1].u.nandBoot.bootFormat = ibl_BOOT_FORMAT_BBLOB; 替换为 ibl.bootModes[1].u.nandBoot.bootFormat = ibl_BOOT_FORMAT_ELF;

2.运行程序tools\boot_loader\ibl\src\make\bin\i2cparam_0x51_c6678_le_0x500.out

3.加载文件 i2cConfig.gel然后在CCS的DEBUG界面上点击,Srcipts->EVM c6678 IBL -> setConfig_c6678_main

4.几秒钟以后,在console界面上敲击回车键

(四)  测试

修改板卡的启动模式:

(pin1,pin2,pin3,pin4)

SW3 (off, off,on,off)

SW4 (on, off,on, on)

SW5 (on, on,on,off)

SW6 (on, on,on, on)

现象:led没有像正常调试的时候闪烁。不知道原因在什么地方?(调试的程序是可以正常闪烁的)

备注:有人说是测试程序中的代码段指定的有问题,如果是的话,怎么修改?


���53:

补充一下:开发板为:TMDSEVM6678LE

Allen35065:

回复 ���53:

段地址指定到全局地址上,不要使用局部地址0x008xxxxx这样的形式;然后再试试

���53:

回复 Allen35065:

你好!Allen Yin,

感谢你的回复,我使用别的工程测试没问题了

赞(0)
未经允许不得转载:TI中文支持网 » C6678 EMIF16 Nand FLASH 引导问题
分享到: 更多 (0)