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.

TMS470MF06607: SCI bootloader for tms470

Part Number: TMS470MF06607
Other Parts Discussed in Thread: UNIFLASH, HALCOGEN

hi,

i am using the TMS470MF06607 microcontroller.

i want to develop the SCI boot loader for this microcontroller. but in  one of  my previous mail, from the e2e forum i got the reply you have only CAN bootloader for this microcontroller.

in my previous mail i got some link for that CAN boot loader. from that link what ever the file i got it, i attached that file  here also. can you please verify that one.

i have few doubt regarding that CAN & SCI boot loader.

1) i got that XDS100V2 emulator. through that ARM JTAG emulator i can flash my boot loader also into my microcontroller ??

2) from the CAN boot loader is it possible to convert it as a SCI boot loader.??? if its possible means how?

3) what i thought means in place of CAN TX & RX  function, if i replace that SCI TX & RX function means the CAN boot loader will converted to SCI boot loader. is it correct or not ??

4)in  that CAN  boot loader zip file, i got one PDF also regarding that CAN boot loader. in that PDF they mentioned that b1_config.h file .   from which folder i want to take that header file.

5) if i want to change that CAN boot loader to SCI boot loader means, in that CAN boot loader file from where i want to start . can you please suggest me little bit briefly.

regards

Arun Kumar.N4212.TMS470_BOOT.rar

 

  • Hi Arun,

    I am looking into your question and will get back to you tomorrow after I have some time to do some investigation on this topic.
  • Arun,

    You have asked the same question before and we provided clear answers in this post e2e.ti.com/.../2071744

    Certainly, if you have a chance to review the implementation and have specific questions, we can offer assistance, but this requires you to invest some time to understand the CAN implementation and how the SCI drivers work so they can be integrated to replace the CAN portion of the bootloader.
  • hi sir,

    actually i download that CAN boot loader from what ever the link you gave it to me. i tried to understand the sequence of the boot loader using that PDF. but its little bit complecated to me. is any other document you have for that CAN BOOT loader, its helpful for me to under stand that CAN BOOT LOADER.

    regards
    Arun Kumar.N
  • hi sir,

    for TMS470 CAN BOOT LOADER i download that zip file from what ever the link you gave it to me.
    but in that file also files are have that boot loader for TMS570 only.
    i attached that what ever the zip file i got it from that link. is it correct file only for TMS470 CAN BOOT LOADER.
    if it is not send the TMS470 CAN boot loader link.


    regards
    Arun Kumar.N
  • Hello Arun,

    We don't really have any other CAN boot loader documentation considering the documentation goes directly with the software. I think the question came up previously, but could you explain again why there is a need for a boot loader in your application? Are you wanting to do field updates?

    If this is intended for a production programming operation, is there a reason you can't use UNIFLASH in command line mode?
  • hi sir,

    thank you for your response.
    actually i designed one custom board. my custom board want to communicate with another CAN device.
    what ever the data i got from that CAN module , i send that data to the another end through the MICRO USB only.
    now i am flash my code through the ARM JTAG(20 pin) only. but i want to flash my code also through the USB only.
    that's why i need the SCI boot loader.


    Regards
    Arun Kumar.N
  • Hello Arun,

    I have tried to follow the links from the prior posts as well and see that there are confusing results in both wiki link and the app note available on the product home page. I contacted the engineer that originally authored the boot loader code and he provided me with the source directly. I have uploaded to this post for easier access for you.

    8231.TMS470M CAN Bootloader.zip

    This should help clarify a bit. Even though there seems to be mixed references to the 570 CAN boot loader and the TMS470M boot loader code, I think the app note on the TMS470MF06607 home page should serve as a good overview of the features and functionality of the boot loader.

    From a conceptual point of view you should be able to separate the application into multiple parts as shown in the simplified diagram below:

    To migrate the CAN boot loader to an SCI boot loader, you would need to implement the SCI drivers and replace the calls to the CAN driver that receives data/commands with comparable SCI calls, If the current implementation for CAN uses interrupts (I don't believe it does), you will have to do the same for SCI or consider replacing it with polling functions.

    Hopefully this helps.

  • hi sir,

    sorry for the delayed response.
    i saw your mail and its very helpful to me. I will verify the boot loader and if there any issue i will let you know.
    thank you for guiding .

    regards
    Arun Kumar.N
  • hi sir,

    i was saw that CAN BOOT LOADER file. in that b1_dcan.c file i saw some functions. but its not available in my can.c file.

    ex:
    static void CANMessageSetRx(canBASE_t *node);
    static uint32 CANMessageGetRx(canBASE_t *node, uint8 *pucData, uint32 *pulMsgID)

    these function names are not available in my can.c file (file which is generated by halcogen code gnerator).

    so i have some doubt about this boot loader.

    1) how can i check this bootloader is correct one for my microcontroller ??
    2)if its correct one means how can i flash using emulator ?? (i need the proper flashing steps for that boot loader) .

    i have one more query. can you please tell me the steps to generate the hex file for my program. and how can i flash that hex file in to my board. (can you please tell me the proper steps).


    thanks
    Arun Kumar.N
  • Hello Arun.

    The differences in the file names and architecture are. most likely, a result of either boot loader being developed outside of Halcogen or from differences in the versions of Halcogen used to create the drivers. As usual, the boot loader code is provided as an example and it is your choice to use it or not.

    arun kumar93 said:
    1) how can i check this bootloader is correct one for my microcontroller ??

    You can load it and execute it? You can use code inspection? You can look at the project configuration file? I am not certain what you are looking for here other than to state that I recieved the latest code supplied from the author of the code.

    arun kumar93 said:
    2)if its correct one means how can i flash using emulator ?? (i need the proper flashing steps for that boot loader)

    The boot loader is programmed into the device the same way any other code is programmed into it. i.e., using either TIs Uniflash or CCS programming utilities or a third party programming tool/IDE like IAR.

    To generate the hex file, you would need to import the project into CCS, build and then load via debug. Many of our training videos show these steps. I have seen other posts of yours where you have had applications assumedly running on the board. This project would be the same as those.

    Here is a link to some training videos that will show how to use CCS to generate the output file (we use either the TI format ,put file or the mre generic COFF format).

    training.ti.com/.../embedded-processors-microcontrollers-mcu

  • hi sir,
    now i try to flash the CAN boot loader in my micro.
    from the CAN BOOT LOADER link i got one PDF for , how to flash the CAN BOOT LOADER.
    i followed the steps same in the PDF. but i get some error. it showing like some files are missing. i attached the PDF & what error i got.
    i searched that file but i did not get those files. can you please tell to me where i can get those files.

    ERROR MESSAGE ( what i got in ccs) :

    "C:/ti/ccsv6/utils/tiobj2bin/tiobj2bin.bat"
    Usage: tiobj2bin file.out file.bin [ofd] [hex] [mkhex]
    "OS_blinky.out" "OS_blinky.bin"
    gmake[1]: [post-build] Error -1073741515 (ignored)
    "C:/ti/ccsv6/tools/compiler/ti-cgt-arm_5.2.2/bin/armhex.exe"
    fatal error: no input files provided
    gmake[1]: [post-build] Error 1 (ignored)
    "OS_blinky.bin"
    '"OS_blinky.bin"' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: [post-build] Error 1 (ignored)
    "C:/ti/ccsv6/utils/tiobj2bin/mkhex4bin.exe"
    Reading from stdin ...
    File does not exist: at XML_TI_OFD.pm line 877.
    gmake[1]: [post-build] Error 255 (ignored)
    ' '


    CAN BOOT LOADER PDF IMAGE (page :14)

    To create an application using TI Code Composer Studio 5.x, use the linker files included with this
    application report for your project. The included linker files set up the starting address of Vector Table and
    Memory Regions to 0x4000 for the binary. In the project properties window, type the following command in
    “Post-Built Steps Command”:
    "${CCE_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin.bat"
    "${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin"
    "${CG_TOOL_ROOT}/bin/ofd470.exe"
    "${CG_TOOL_ROOT}/bin/hex470.exe"
    "${CCE_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin.exe"



    regards
    Arun Kumar.N
  • Arun.

    The part of the pdf you posted has nothing to do with programming the boot loader into the device. It is giving instruction how to generate a binary file with CCS that can then be programmed into the the device using the boot loader that is already in the device and a PC application to send packets of data to the boot loader in the device.

    Have you successfully been able to run any example programs on the device? If so, how did you program the code into the device for those examples? You need to program the boot loader the same way.

    arun kumar93 said:
    CAN BOOT LOADER PDF IMAGE (page :14)

    To create an application using TI Code Composer Studio 5.x, use the linker files included with this
    application report for your project. The included linker files set up the starting address of Vector Table and
    Memory Regions to 0x4000 for the binary. In the project properties window, type the following command in
    “Post-Built Steps Command”:
    "${CCE_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin.bat"
    "${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin"
    "${CG_TOOL_ROOT}/bin/ofd470.exe"
    "${CG_TOOL_ROOT}/bin/hex470.exe"
    "${CCE_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin.exe"

    As I said before, use Uniflash or CCS to program the boot loader .out file created when building the code with CCS. The boot loader will be loaded starting at address 0x00000000 and will execute on power up. The instructions you pasted note that the application you are downloading will load to an address of 0x4000 based on the linker command file provided.

    Can you provide more details of what you are trying to accomplish? Are your trying to establish an in circuit test programmer or general programming station? Are you developing an application that needs a boot loader to program? What is driving the need for a boot loader on the device?

  • hi sir,

    you are correct. actually i did the mistake. sorry for that.
    i didn't get any error's in the CAN BOOT LOADER file. what ever the link you gave it to me for CAN boot loader i build that boot loader in the ccs.
    it's not gave me any error. i can flash that CAN boot loader file normally to controller.
    now i am build my application code.for that application code only i follow that steps gave in the PDF .(pdf is attached in the TMS570 BOOTLOADER zip file).
    in that PDF i followed that 10th step. i change that linkervalue, memory mapping value,section configuration values similar to that PDF.
    after that i gave the POST BUILD STEP COMMANDS also . after making this changes if i try to build my project means CCS gave some error .
    it's gave some input files are not available like. so thats why i asked, from where i can get those files.
    i attached that error i get from the CCS.

    ERROR:

    "C:/ti/ccsv6/utils/tiobj2bin/tiobj2bin.bat"
    Usage: tiobj2bin file.out file.bin [ofd] [hex] [mkhex]
    "OS_blinky.out" "OS_blinky.bin"
    gmake[1]: [post-build] Error -1073741515 (ignored)
    "C:/ti/ccsv6/tools/compiler/ti-cgt-arm_5.2.2/bin/armhex.exe"
    fatal error: no input files provided
    gmake[1]: [post-build] Error 1 (ignored)
    "OS_blinky.bin"
    '"OS_blinky.bin"' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: [post-build] Error 1 (ignored)
    "C:/ti/ccsv6/utils/tiobj2bin/mkhex4bin.exe"
    Reading from stdin ...
    File does not exist: at XML_TI_OFD.pm line 877.
    gmake[1]: [post-build] Error 255 (ignored)


    actually in developed one application. in my application i need the SCI boot loader. but you tell to me there is no SCI boot loader for this micro. so now i try to develop SCI BOOT LOADER for this MICRO. for that first i should know how this CAN BOOT LOADER is working. that why i tried to do this steps.

    can you please tell me , from where i can get those files.(that missing files).

    regards
    Arun Kumar.N
  • It is a missing project file. i.e., it is expecting your application to be converted to a binary to be named OS_blinky.out. This is probably the default application used for the example. You would need to update the post processing command files to indicate the name of your application you are trying to convert to binary.

    It is also potentially a path issue where your system OS doesn't recognize the path information to the object file you are trying to convert to a binary. If this is the case, you can enter the full path to the location of your .out as the target and then the full path to the location you want the resulting output .bin file to be stored.

    Once you have the boot loader in the device, it is setup and used just like any other boot loader program we have documentation on. As I think QJ has instructed on another thread you will need:

    1.) boot loader programmed into the device

    2.) object file converted to binary

    3.) Application on the PC to transfer the binary to the device by communicating with the boot loader in the device which will then program the image into flash.

  • Hi Arun,

    I think you should have copied from the pdf and pasted it on the CCS Post Build Steps. These should be in one line like below.

    "${CCE_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin.bat" "${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin" "${CG_TOOL_ROOT}/bin/ofd470.exe" "${CG_TOOL_ROOT}/bin/hex470.exe" "${CCE_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin.exe"