This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

NAND flash fails to boot helloworld example

Other Parts Discussed in Thread: SYSBIOS

Hi, I am using c6678 custom board. I encountered a problem when booting the example "helloword"(under ti\mcsdk_2_01_01_04\examples\ndk\helloWorld) from NAND flash. I can make sure that the booting process is ok because I tried the nand example under "ti\mcsdk_2_01_01_04\tools\boot_loader\examples\i2c\nand" which can boot from NAND flash and execute successfully( It can print the message in the example program via UART).  I know that the "helloworld" example runs based on sysbios and the .out file is loaded to DDR3. So I changed the .cmd file of the nand example under "ti\mcsdk_2_01_01_04\tools\boot_loader\examples\i2c\nand", mapped all the segments to DDR3, it could also boot and execute successfully. Since the "helloworld" example didn't boot successfully, I tried to connect the DSP via emulator, but the emulator failed to connect the DSP, which printed the error in the figure below. I noticed that the size of .out file of "helloword" is about 6, 659KB. Does the .out file is too big to load? Or is there some parameters of ibl I forgot to set causes this problem?

  • Did you remove the GEL file when connecting to the DSP? Since the RBL initilaizes the device it may be better to remove the GEL when connecting to the device. Regarding size of the application binary, did you see any issues when building the application binary. what is the size of the boot image you built.

    Did you see any errors when flashing the boot image to nand flash?

    Regards,

    Rahul

  • Hi, Rahul. 

    1. When I connected the DSP, I removed the GEL file.

    2. the size of ELF file is about 6678KB. When flashing the image, there is no error.

    I printed the entry point after IBL loading the image via UART, which is the same as _c_int00 in helloworld.map. when I download the .out file with emulator, it can execute successfully. Now, I cant make sure whether the image loaded by IBL correctly, or the problem is in the execution stage.

    Since I dont have the c6678 EVM board, can you try to load the helloworld example from NAND FLASH and help me check if it can boot and run successfully? Thanks

  • Hi, I have found the reason: the address generated to reading the sign of bad block is different in nand_writer and ibl. when flashing nand flash, the program nand_write_evmc6678 read the 6th byte in page 0 in each block to determine whether the current block is a bad block, however, in ibl, it read the 6th byte in page 1. Apparently, ibl read the wrong region.