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.

we have two basic boot loaders, boot demo1 and boot_serial..

Other Parts Discussed in Thread: TM4C1230H6PM

hi

please explain the  boot serial and boot demo1..

first  I was load  the  serial boatload  code into  tiva controller,after  that sample led application was loaded into tiva controller by   using LM Flash programmer,but its not happened ..please explain what is the  exact procedure........

  • I have serial boot loader code,I loaded that code into tiva controller,after that my application code was loaded into tiva by LM flash programmer,on that time how it behaves the LM flash programmer,how its validate the packets and data..please help me ..
  • Hello Mookambu,

    Please elaborate the process you are following to download the two codes.

    Regards
    Amit
  • hi,

           for tm4c1230h6pm   controller,how  to  divided the  application   flash for different applications...how to  develop the customized boot loaders,first  i have to do the partition ,how its happens?

  • Hello Mookambu,

    The Flash Size is fixed on TM4C12x devices. So you cannot have a large number of "reasonable" applications. So what is done is to have a boot loader that resides at 0x0 with the smallest memory footprint and then at the next sector start address an application. The function of the boot loader is to download an application and then execute. When doing so it is important to note that the redundancies in the boot loader can make an application very robust. Typically the Total Size of the flash can be distributed as Boot Loader + App Current + App Next. The App Next is the updated application, which will be executed if all goes well. The App Current is the current application image that shall be executed if the App Next fails to update,

    To write a customized boot loader you can refer to the boot_loader in TivaWare which contains all the routines to do so and is used in the reference examples.

    Regards
    Amit
  • this is my monitor test code...

    FLASH (RX) : origin = 0x00000000, length = 0x00001000
    SRAM (RWX) : origin = 0x20000000, length = 0x00008000

    main()

    {

    HWREG(NVIC_VTABLE) = 0x2800;
    //
    // Load the stack pointer from the application's vector table.
    //
    __asm(" ldr r1, [r0]\n"
    " mov sp, r1");

    //
    // Load the initial PC from the application's vector table and branch to
    // the application's entry point.
    //
    __asm(" ldr r0, [r0, #4]\n"
    " bx r0\n");

    }

    FLASH (RX) : origin = 0x00002800, length = 0x00005000
    SRAM (RWX) : origin = 0x20000000, length = 0x00008000

    my application will starts at 0x2800,but its not jumping into application.  this address...plz help me,what is the problem..

  • Hello Mookambu,

    You have just copied the cmd file and given the problem statement again. But in my first post I have asked for the steps you are doing to get the boot loader and boot application example into the device, which remains unanswered still...

    Regards
    Amit
  • HI sir,

    I  got that  one,no problem..after creating the  hex  file for  application,it will take the  starting  address(for example @2800) like that,now my application  was  loaded by  custom boot loader..

    In hex code  starting address is @2800,after  that  some hex  bytes is there,after  that  @2d70 is there,what  is that  address,after that  some more bytes is there  finally   q is there..

    In below case  why it will consider @2d70..for boot loader purpose,i have to read the  all address location..starting address i Know,but after that  i cant understand that next  location address(i mean @2d70)...

    @2800
    00 02 00 20 5F 2D 00 00 6D 2D 00 00 FB 2B 00 00
    6B 2D 00 00 6B 2D 00 00 6B 2D 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 6B 2D 00 00
    6B 2D 00 00 00 00 00 00 6B 2D 00 00 6B 2D 00 00
    6B 2D 00 00 6B 2D 00 00 6B 2D 00 00 6B 2D 00 00
    6B 2D 00 00 6B 2D 00 00 6B 2D 00 00 6B 2D 00 00
    6B 2D 00 00 6B 2D 00 00 6B 2D 00 00 6B 2D 00 00
    6B 2D 00 00 6B 2D 00 00 6B 2D 00 00 6B 2D 00 00
    6B 2D 00 00 6B 2D 00 00 6B 2D 00 00 6B 2D 00 00
    6B 2D 00 00 6B 2D 00 00 6B 2D 00 00 6B 2D 00 00
    6B 2D 00 00 6B 2D 00 00 6B 2D 00 00 6B 2D 00 00
    6B 2D 00 00 6B 2D 00 00 6B 2D 00 00 6B 2D 00 00
    6B 2D 00 00 6B 2D 00 00 6B 2D 00 00 6B 2D 00 00
    6B 2D 00 00 6B 2D 00 00 6B 2D 00 00 6B 2D 00 00
    6B 2D 00 00 00 00 00 00 00 00 00 00 6B 2D 00 00
    6B 2D 00 00 6B 2D 00 00 6B 2D 00 00 6B 2D 00 00
    6B 2D 00 00 6B 2D 00 00 6B 2D 00 00 6B 2D 00 00
    00 00 00 00 00 00 00 00 6B 2D 00 00 6B 2D 00 00
    6B 2D 00 00 6B 2D 00 00 6B 2D 00 00 6B 2D 00 00
    6B 2D 00 00 6B 2D 00 00 6B 2D 00 00 6B 2D 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    6B 2D 00 00 6B 2D 00 00 6B 2D 00 00 6B 2D 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    6B 2D 00 00 6B 2D 00 00 6B 2D 00 00 6B 2D 00 00
    6B 2D 00 00 6B 2D 00 00 6B 2D 00 00 6B 2D 00 00
    6B 2D 00 00 6B 2D 00 00 6B 2D 00 00 6B 2D 00 00
    6B 2D 00 00 6B 2D 00 00 6B 2D 00 00 00 00 00 00
    00 00 00 00 6B 2D 00 00 6B 2D 00 00 6B 2D 00 00
    6B 2D 00 00 6B 2D 00 00 00 00 00 00 00 00 00 00
    6B 2D 00 00 6B 2D 00 00 6B 2D 00 00 6B 2D 00 00
    6B 2D 00 00 6B 2D 00 00 6B 2D 00 00 6B 2D 00 00
    6B 2D 00 00 6B 2D 00 00 6B 2D 00 00 6B 2D 00 00
    6B 2D 00 00 6B 2D 00 00 6B 2D 00 00 6B 2D 00 00
    6B 2D 00 00 6B 2D 00 00 6B 2D 00 00 6B 2D 00 00
    6B 2D 00 00 6B 2D 00 00 6B 2D 00 00 00 2A 4A D0
    5F EA 00 0C 8B 07 1C D1 83 07 22 D1 10 2A 08 D3
    70 B4 10 3A 78 C9 78 C0 10 3A FB D2 70 BC 10 32
    38 D0 04 2A 2C D3 08 2A 05 D3 0C 2A 24 BF 08 C9
    08 C0 08 C9 08 C0 08 C9 08 C0 92 07 2A D0 92 0F
    22 E0 0B 78 03 70 49 1C 40 1C 52 1E 22 D0 8B 07
    F7 D1 C3 07 14 D1 83 07 D8 D0 12 1F 12 D3 08 C9
    03 80 1B 0C 43 80 00 1D 12 1F F8 D2 0A E0 08 C9
    03 70 1B 0A 43 70 1B 0A 83 70 1B 0A C3 70 00 1D
    12 1F F4 D2 12 1D 05 D0 0B 78 03 70 49 1C 40 1C
    52 1E F9 D1 60 46 70 47 F0 B5 1E 48 01 27 F8 42
    01 D0 00 F0 C3 F8 1E 4D 1E 4F 1F 4E BD 42 06 D2
    03 CD 04 78 A4 00 34 59 40 1C A0 47 F6 E7 16 4D
    16 4F BD 42 02 D2 10 CD A0 47 FA E7 F0 BD 03 25
    1B E0 41 68 08 30 0A 1C 2A 40 0B D1 1A 1C 2A 40
    AB 43 05 D0 04 68 04 30 0C 60 04 31 04 3B F9 D1
    13 1C 05 D0 04 78 01 30 0C 70 01 31 01 3B F9 D1
    02 1C 2A 40 01 D0 A8 43 04 30 03 68 00 2B E0 D1
    70 47 C0 46 FF FF FF FF 00 00 00 00 00 00 00 00
    88 2D 00 00 90 2D 00 00 80 2D 00 00 70 B5 10 F8
    01 4B 1B E0 40 1C 5A B1 1D 0A 09 D1 02 25 10 F8
    01 6B 6D 1E 46 EA 03 23 F9 D1 01 E0 04 2B 02 D3
    10 F8 01 5B 03 E0 25 46 01 E0 01 F8 01 5B 5B 1E
    B3 F1 FF 3F F9 D1 01 E0 01 F8 01 3B 10 F8 01 3B
    9C 42 F9 D1 10 F8 01 3B 00 2B E7 D1 10 F8 01 5B
    03 78 2D 02 5B 19 D5 D1 70 BD FE E7 12 48 13 4B
    20 21 01 60 02 68 12 49 AD F1 08 0D 00 92 04 20
    58 60 00 22 C3 F8 20 01 18 68 40 F0 04 00 18 60
    00 92 00 98 81 42 0B D8 18 68 20 F0 04 00 18 60
    00 92 00 98 81 42 EF D9 00 98 40 1C 00 90 F8 E7
    00 98 40 1C 00 90 EC E7 08 E1 0F 40 FC 53 02 40
    40 0D 03 00 4E F6 88 51 CE F2 00 01 08 68 4F F0
    F0 03 40 EA 03 40 08 60 09 48 85 46 09 48 85 44
    6F 46 07 20 87 43 BD 46 07 48 6F 46 07 60 FF F7
    43 FF 00 F0 4F F8 01 20 00 F0 30 F8 FE E7 C0 46
    00 00 00 20 00 01 00 00 10 01 00 20 70 B5 0F 4D
    06 46 73 88 00 24 16 E0 A0 00 00 EB C4 00 30 18
    41 68 C2 68 80 68 4A B9 2A 68 52 B1 0A 78 55 F8
    22 30 4A 1C 01 46 10 46 98 47 01 E0 FF F7 CE FE
    73 88 64 1C A4 B2 A3 42 E6 DC 70 BD 80 2D 00 00
    00 BF 70 47 08 B5 FF F7 FB FF FE E7 38 B5 05 46
    09 48 00 68 80 47 09 4C 20 1D 00 68 10 B1 01 46
    28 46 88 47 20 68 00 B1 80 47 05 48 00 68 80 47
    FF F7 E8 FF 38 BD C0 46 00 01 00 20 08 01 00 20
    04 01 00 20 04 49 B1 F1 FF 3F 07 BF 00 21 08 1C
    08 68 09 1D FF F7 62 BF FF FF FF FF 03 49 08 60
    70 47 02 49 09 1F 08 60 70 47 70 47 04 01 00 20
    D0 F8 03 20 C3 1D 08 46 19 46 FF F7 87 BE FF F7
    79 BF 70 47 01 22 FF F7 19 BF FE E7 FE E7
    @2d70
    00 01 4B 2D 00 00 4B 2D 01 0E 00 01 00 00 00 00
    65 2D 00 00 51 2D 00 00 70 2D 00 00 00 01 00 20
    q

  • Hello Mookambu

    What is the HEX converter you are using? I have checked a bin file and I do not see anything before the application address space.

    Regards
    Amit

  • Hi,

    I am not using  any  hex converter software,In compiler options  only  I  am  select  ARM HEX utility option  and  TI-TXT hex format,after  compiling its immediately  creates the   hex file(text file) and bin file also..

    what i want is 

    Here is an example ti-txt file taken from the reference below:

    @F000
    31 40 00 03 B2 40 80 5A 20 01 D2 D3 22 00 D2 E3
    21 00 3F 40 E8 FD 1F 83 FE 23 F9 3F
    @FFFE
    00 F0
    q

    for example my starting address is @F000,after that one more section is there @FFFE(what is this,why it will take another section of address),plz give me the clarification of TI-hex FORMAT file,why it will take two address sections,because i know my starting address of application but after that one more section is there(that address i don't know),how can identified the particularly starting address for the second section ...........

    please as early possible give me the reply...


  • Hello Mookambu,

    Code and Data may not always be placed in continuous format. So instead of defining every location in the address map, it is more optimal to define the locations at an address where a non-default value is residing. It is the assumed by the download tool that all other locations need not be changed.

    When you flash the original file that you sent with data @2d70 can you check the map file to see what is kept at 2d70 address. The map file will be in your project.

    Regards
    Amit
  • HI SIR,

      thanks i got it..but  i have  small doubt.. @2d70 address  is specified  for  .cinit..

    you  told  these optimal address,compiler only its creates..what  i am thinking is    .cinit   address  is specified  for one  default location (its possible)..i can do these method  any problem is occurred..because  i am developing the custom bootloders..i don't which address it will assign..that's way  these .cinit also  put into one default address..its possible..

  • Hello Mookambu,

    That is not correct then and it not possible either. Take the bin file being generated and check the content and address in a binary viewer or if you have Linux the use "od -sx <binary file>" to view what is the first address the data is placed.

    Regards
    Amit
  • hi sir,

    MY starting address location @2C00, I can directly pass the 2700..for these any problem is  occurred..@ simple  necessary  r no need..my hex code loading through  terminal..

    the main problem is..my app is starting at @2c00..my hex size is 2k

    @2c00

    data

    @3170

    .cinit_data

    what happened is,first 1st  1k  sector erase and flash the data..still data is there again (after 1k)one more sector erase d and load the data is stored into next location..may be after 400bytes my hex data was completed(at @ 3168)..but still  .cinit is there..these starting at    @3170 again erase  the hole 1k sector..according to this here the  problem is previous @3000   location   data also  erased ..what  have to do..plz give some information..

  • Hello Mookambu,

    I have never faced as many issue with the boot loaders. My advice, start clean by erasing the entire flash. If the code is as simple as a blinky, then send me over the bin files to "first" see what you are saying.

    Regards
    Amit
  • hi sir,

    first  I was  load  the  serial  boot loader code after that  loading  the  my application code.but its  not working..

    serial boot load hex file is 

    @0x0000

    data

    @200000e0
    83 09 00 00 83 09 00 00 00 00 00 00 00 00 00 00
    00 00 00 00
    q

    ias  per  above  hex file  what is this  location  @200000e0..i didn't  understand where  it will  store...plz explain  this location @200000e0

  • Hello Mookambu,

    I asked for the bin files as well, if it is Serial Boot Loader. Note that I would be using a LaunchPad to do the same.

    Regards
    Amit