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.

Serial Flash Programmer on 28054M

Other Parts Discussed in Thread: TMS320F28054M, CONTROLSUITE

Hello!


I am trying to load my first program to TMS320F28054M. It is a custom board and hence the chip is empty, so I am trying to burn my code to it using SCI bootloader with the help of Flash Kernel. I already implemented this many times on 28027 chip and everything worked perfectly.

I do start the flash Kernel through the Visual Studio (verbose option enabled). It burns the Kernel, then starts application update, does auto baudlock, and then exits the application. The thing that looks suspicious to me is that the Controlsuite contains only example for 28055 chip (f28055_flash_kernel), I wonder if it is compatible with 28054M? Both devices have the same flash memory map (at least according to this document), but maybe I'm still missing something.

Thanks in advance.

  • Hi Andrei,

    The F28055_flash_kernel will work for F28054. After programming your flash application into flash, the kernel will branch to the entry address of your application and begin executing.

    Are you having any problems?

    sal
  • Hi Sal,

    Yes, it should happen that way, the problem is - it doesn't :) As I said, program breaks after FlashKernel is burnt into device, nothing happens afterwards.

    Ok, FlashKernel lives in the RAM, however, 28055 and 28054M have different RAM memory maps (and different ram cmd files, although it's not clear from the documment). So, should I switch for the FlashKernel project 28055 RAM cmd file to 28054M cmd file?

    And yes, my application project is in flash. I also converted some examples from ControlSuite (like sci_echoback and gpio_toggle) to flash and tried to burn them, but result is the same all the time.
  • Yes, you should use the F28054 linker command file.

    You said that the kernel gets loaded correctly and then there is a successful autobaud lock with the kernel and PC. Is this what is happening? If so, it seems like the kernel is able to communicate with the serial_flash_programmer.

    Which SCI pins are you using? Are you using the default SCI bootloader pins?

    sal
  • Hi Sal,

    I have managed to get it working and that is incredibly cool! Thank you for your suggestions and assistance.

    Of course one needs to build an application program using F28054m.cmd file. But one also needs to change RAM cmd file for Kernel project. So, I replaced 28055_RAM_lnk.cmd with a 28054m_RAM_lnk.cmd and that's it; it worked! Therefore f28055_flash_kernel project doesn't work out of the box for 28054 chips.

    The only strange thing I noticed, is that when you build Flash kernel with 28054m_RAM_lnk.cmd   file you get a warning "warning #10247-D: creating output section ".InitBoot" without a SECTIONS".

    And really, 28054m_RAM_lnk.cmd doesn't have .InitBoot defined anywhere. Is that ok?

  • Glad to see it works well for you.  You can put .InitBoot in any RAM section.  I am not completely sure if .InitBoot actually gets called in this kernel.  My assumption is that it does not get called and that is why you are not having a problem.  I believe only _ExitBoot is called from the file Exit_Boot.asm.

    If you want, you can set a break point at .InitBoot in Exit_Boot.asm and see if it is getting called.  If you do this, please post your results here.

    sal

  • Also, please verify my response above which helped you to solve the issue.
  • Hi Sal,

    I verified my own post because it answers the question, so that it will be easier for other ppl to find direct answer instead of reading the whole thread. I gave your post a thumbs up instead. But ok, I'll verify your answer too, your a nice person and also one of the authors of C2000 flash programmer so kudos to you!

    Thank you for assistance :)