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.

RM57L843: HERCULES BOARD - BOOT PROCESS

Part Number: RM57L843
Other Parts Discussed in Thread: HALCOGEN

HI TI Team,

I want to learn about booting process of RM57L843 and TMS570l843 microcontroller. In userguide where we need study about that. Is there any specific guide or refernce links are there please share us.

What is bootprocess, where to study that, What is the Bootprocess of RTOS and Embedded. 

Is that the same boot procedure was followed for rtos as embedded.

Please guide me

Thanks and Regards,

A. Ajith Kumar.

  • Hi Ajith Kumar,

    Hercules devices doesn't have ROM bootloader. These devices only support boot from flash.

    So, after Power ON Reset the code in the flash will get executed from address 0x0.

    And refer below app notes to understand the initialization sequence of Hercules devices:

    Initialization of Hercules ARM Cortex-R4F Microcontrollers (Rev. D)

    --

    Thanks & regards,
    Jagadish.

  • Hi Jagadish,

    I have learn about the boot process. I have understand something but I have still confusion about this. I will tell below what I understand ,Please correct me if I am wrong.

    1. After the microcontroller startup (or) reset.

    2. The boot code will execute from the flash.(which was predefined by the manufacturer)

    3. This boot code will contains the peripherals initializes and load the bootloader. The bootloader will check for nRST pin low for update the main program. If  its low. The bootloader will erase the previous memory and load the main program into the microcontroller.

    4.The main application program consists of startup program which will initialize all the peripherals, clock, interrupts and Programmable Built in Self Test (PBIST)Module will test all the peripherals working currectly or not.

    5.After that main function will execute which user defined.

    Questions:

    1.Is the Above process I have mentioned was correct or change in any order.

    2.Is the Boot code can be modified by user. Is it possible and how?

    3.PBIST Module will persent in boot code or startup code?

    4.Difference between boot code and startup code?

    5. Is the same process is also for microprocessors? Please mentions the differences.

    6. What is the role of assembly language in boot code?

    Thanks and regards,

    A. Ajith Kumar

  • Hi Ajith Kumar,

    2. The boot code will execute from the flash.(which was predefined by the manufacturer)

    There won't be any predefined code from manufacturer. After controller out of the reset it will directly starts executes the code from 0x0 address of the flash.

    So, there won't be any primary bootloader concept here. So, all the initializations will be the part of the application code only. I mean all the necessary initializations like CPU registers initializations, stack pointer initializations, memory initializations and system initializations everything will be stored in flash only. And these all initializations will be located in the function "_c_int00".

    After processor come out of the reset it will directly execute these initializations by branching to the function "_c_int00".

    1.Is the Above process I have mentioned was correct or change in any order.

    Not correct, there won't be any manufacturer bootloader concept in Hercules devices.

    2.Is the Boot code can be modified by user. Is it possible and how?

    The code will always start executing from the flash address 0x0, it's all depending on the type of code we programmed at the starting of the flash.

    In general, HALCoGen will generate code like below:

    On starting address, it will store the interrupt vectors and then it will store the different object files of the code one by one.

    So, after reset the processor will execute the code vector table located in address 0x0 and it will jump to the _c_int00 function.

    So, you can modify this code as per your requirements.

    3.PBIST Module will persent in boot code or startup code?

    The PBIST related code will be located in the separate memory section called on-chip PBIST ROM.

    And it is a Read Only Memory and cannot be alter.

    4.Difference between boot code and startup code?

    As i mentioned earlier there won't be any boot code from manufacturer. All the initializations in the _c_int00 function till it is calling main function could be called as a startup code.

    5. Is the same process is also for microprocessors? Please mentions the differences.

    No, microprocessors will have different procedure, because they don't have any in built flash right. So, there the processor will contains in built ROM memory which consists of the boot code (we can call it as a primary bootloader). After the reset the processor will execute the primary bootloader and using this primary bootloader, we can load the secondary bootloader and/or application.

    6. What is the role of assembly language in boot code?

    Before all the core registers initializations, stack pointer and memory initializations the code will be in assembly language. Once all these initializations completed the code can be in c-language because as per my understanding without these initializations we can't do any function calls right?

    --

    Thanks & regards,
    Jagadish.