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.

RTOS/TIDM-TM4C129XNFC: Software does not boot if code is bigger than 720k (0xB0000)

Part Number: TIDM-TM4C129XNFC

Tool/software: TI-RTOS

Hello

When my code size in the flash passes 720K (0xB0000 bytes) the code can run only from debugger, but not after restart.

my .cmd file looks like this:

/* The starting address of the application. Normally the interrupt vectors */
/* must be located at the beginning of the application. */
#define APP_BASE 0x00000000
#define FLASH_RAM_BASE 0x000D0000
#define RAM_BASE 0x20000000

/* System memory map */

MEMORY

{

FLASH (RX) : origin = APP_BASE, length = 0x000D0000
FLASH_RAM (RWX) : origin = FLASH_RAM_BASE, length = 0x00030000
SRAM (RWX) : origin = 0x20000000, length = 0x00040000

}

this is the .map result

MEMORY CONFIGURATION

name       origin  length   used     unused   attr fill
---------------------- -------- --------- -------- -------- ---- --------
FLASH     00000000 000d0000 000b0262 0001fd9e R X
FLASH_RAM 000d0000 00030000 00000000 00030000 RW X
SRAM      20000000 00040000 000357ca 0000a836 RW X


SEGMENT ALLOCATION MAP

run origin load origin length init length attrs members
---------- ----------- ---------- ----------- ----- -------
00000000 00000000 000b0270 000b0270 r-x
00000000 00000000 0000003c 0000003c r-- .resetVecs
00000040 00000040 0005d384 0005d384 r-- .const
0005d3c8 0005d3c8 000522ca 000522ca r-x .text
000af698 000af698 00000bd8 00000bd8 r-- .cinit
20000000 20000000 00000360 00000000 rw-
20000000 20000000 00000360 00000000 rw- .vecs
20000400 20000400 0003546c 00000000 rw-
20000400 20000400 00021d9e 00000000 rw- .bss
200221a0 200221a0 0000c350 00000000 rw- .sysmem
2002e4f0 2002e4f0 0000637c 00000000 rw- .data
2003486c 2003486c 00001000 00000000 rw- .stack

 

please help, it is urgent...

  • With the debugger attached, have you tried re-executing the code from a system reset? This will mimic operation without the debugger being attached.
  • tried it now. no change. it starts after loaded from jtag, would not load from flash.

    I am reminding that I stole the upper 0x30000 of the flash for my data as a flash-ram

  • Do you mean that when you program your application by JTAG it works, but when programmed with a bootloader it does not work?
  • That is correct. it is true with a DFU bootloader, with uniflash, and even when downloaded with JTAG. we also tried it in the TM4C129x eveluation board, with the same results.

    here is an image from the uniflash, showing that code burning stops at 0xB0000

  • Use the Code Composer Register window and check that the "FLASH_CTL" -> "FLASH_FMPPEn" registers are all 0xFFFFFFFF.

  • more info: 

    I can write past the address 0xB0000 if I start from any  address other than 0. even a large file.

    only when I start from 0 the file is cut at 0xB0000. 

    so theoretically, I can split the bin file and get over it. but I would like to have a better solution.

  • It sounds like the issue may be in your binary file. How did you create the binary file?
    Just to make sure we are talking the same language, Code Composer will create an object file in ELF format with a .out extension. While it is not ASCII readable, it is not what we mean by a binary file because it contains symbols and address information. Code Composer also has the ability to create several formats of hex files. These are ASCII files and contain address information, but no symbols. Finally, there is a tiobj2bin.bat file that is used by Code Composer to make a pure binary file. Is this what you are creating and then trying to program using a boot loader?

    The other option is a problem in the boot loader. If you can program properly with Code Composer and UniFlash, but programming stops after 0xB0000 bytes when programmed with your boot loader, then it may be a limitation in the boot loader. What boot loader are you using?
  • I have not heard back from you so I assume you have resolved this issue. If not, let me know by responding and I will continue to try and help you.