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.

CCS/TMS320F28377S: SCI Flash kernel on SCI Boot Mode&F2837x_cpu01_bootROM_REVB BOOTROM Code

Part Number: TMS320F28377S
Other Parts Discussed in Thread: C2000WARE

Tool/software: Code Composer Studio

I have a few simple quenstions.

1-)

I found this example C:\ti\c2000\C2000Ware_1_00_05_00\libraries\boot_rom\f2837xs\revB\F2837x_cpu01_bootROM_REVB.I am not sure it can be orjinal boot room code  which is inside MCU.İs it true?

2-)

If it is true,What is diiferent and same side between SCI_Boot in the flash kernel and  SCI_Boot.c in the bootrom code? 

According to my understanding, Firstly This Flash kernel example tell about to comminicate with own BootRom When send the packet(like run,reset,verify,DFU) from the serial flash_programmer.exe to host device.

I have achieved this and started the application code as branching the entrypoint

   PC(serial_flash_terminal) ------> send packet ------- >  Host device == Configured GPIO84 as SCITXDA (Output pin) and  Configured  GPIO85 as SCIRXDA (Input pin) /  Configured  SCI boot Mod

   send packet  from PC   ------>  | Start | Length | Command | Data | Checksum | End | (Packet Format:) ---------> SCI_GetFunction()  read the packet  ;separate package with  SCI_RX channel in flash_kernel    and  

    then sending echo back packet with SCI_TX cause of controlling packet(it can be NACK error)   ----> | Start | Length | Status_code| Status.code.Address | Checksum | End | (Packet     Format:) -----------> PC(serial_flash_terminal)


when all this happens ,How can run BootRom at background or how can receive command?For example I sent Run packet to kernel in host device,The Run packet was seperated the packet and gotton the command and entry address  from SCI_GetFunction() and was done echo back to  PC.

and then run the application   as jumping the application At the this time how Bootrom works?  or  I think Bootrom need to get entry address.RX and TX pins use comminicating serial_flash_terminal.

What is relation Kernel and BootRom?

  how   the  Flash kernel application does allow to commicate BootRom? 

3-)last question is about taking action the BootRom without Flash Kernel.Is the possible?

For example I would  send entry address from own interface to bootrom  . blinky_Application could be  run.  

  • If you haven't already read it, please check out this Serial Flash Programming application note:
    www.ti.com/.../sprabv4

    1. It is the same code as the boot ROM in the device.

    2. I'd encourage you to study and compare the two boot loaders yourself to get the details, but I can give you some examples of what is different between them. The main components are the same--initialize the SCI, do an autobaud lock, receive the key and data, and return the received entry point. The flash kernel example version of the code is enhanced to perform a checksum, receive and process a number of commands, and sends ACK/NAK and status replies in return.

    When running with the ROM SCI boot loader it receives the entry address from the host as part of the program load communication, and jumps to it when it is done running. It doesn't support a RUN command (or any other commands) like the flash kernel version.

    3. You can use the ROM SCI boot loader without the flash kernel to load the application into RAM (not flash). Also, like I said above, it does behave differently than the flash kernel example version.

    Whitney
  • thanks   for helping

    I have already read this document and tried to run serial flash programing application.

    My last working  had solved:

    e2e.ti.com/.../725814

    I understand you better  now.thank alot again.

    Allright, I study to orjinal bootRom code .

    after blinky_application code was dowload via C2prog on SCI mode, I  sent to _c_init00 address for run the application code.But it did not work.Which address I can send from the own my interface to SCI Boot ?Or for code to start ,could I software reset as sending like watchdog timer 's address ? or any special intterrupt's address?

    or I am curious that  last process is "you may now close and the window and reset the target "

    I dont find that the program counter is waiting for reset on which line.

    Thanks and Regards

  • To run the program after C2Prog has flashed it, switch your boot mode pins back to flash boot and reset the device (either hit a reset button or power cycle the board). Have you tried that?

    For flash boot there is a set entry point. If you built the flash configuration of the blinky example, you should see that it's where the CodeStartBranch.asm code is being placed.

    Whitney
  • When I hit reset button,to Run program successfully.

    I had done already it that you said.

    Especially I try to say software reset or something that jumping to application without flash kernel.

    I dont want to use hardware reset.

    For example ,Application code was dowloaded on emulation mode by code composer studio ,when I pressed dubug button.and then program counter wait main() function and CCS show me to run button option.ıf press run button, application will start.

    By the this way it is not enough harware reset .

    You must to think similar project that I tried to say above.

    I have a terminal program interface.there is inside run buttton and reset button.This terminal must to be comminicating host device on sci boot.

    When I click run button , terminal must to send run entry address  host  to device which had dowloaded application code before.and After the device received run entry address or reset entry address,host to device must to operate own BooRom. And it allow jump to application or reset as software. I dont think to use flash kernel , because flash kernel only use RAM,

    for every software upgrading application code,it can not dowloaded flash kernel that takes a few minutes on flash serial flash programmer.

    This is my work,İt can be possible?

    Or ıf you understand me , Please advice what could ı do?

    Thanks and Regards