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/TMS320F28069: 28069 USB Bootloader example question

Part Number: TMS320F28069
Other Parts Discussed in Thread: C2000WARE, UNIFLASH

Tool/software: Code Composer Studio

I am developing a product based on 28069PZT. I want to use usb bootloader to upgrade firmware at customer end.

So I am trying out the F2806x USB Bootloader example. C2000 10001 version

I did the following and stuck at step 3:

1. modified the code for clock source, as my application has no external crystal.

2. loading the bootloader project into flash and run in CCS through JTAG

3. update driver for the unknown device by pointing to boot_usb.inf under  C:\ti\c2000\C2000Ware_1_00_01_00\utilities\windows_drivers. Failed, I still got unknown device in my device manager.

My PC OS is windows 7. What might be the problem here?

Further, dfuprog should be run  in cmd.exe? Double click not working, DOS window pops up and disappears immediately

  • Hi,

    dfuprog.exe should be run from the command line. Let me know if the device is able to enumerate and be identified by the dfuprog program.

    We have seen some issues with Windows 7 being able to install the driver and recognize the device.

    If your PC is unable to recognize the device, could you using the serial flash programmer and SCI flash kernel solution for your DFU. It is a much simpler solution, requiring much less memory as well.

    www.ti.com/.../sprabv4b.pdf

    Regards,
    sal
  • Thanks

    ---- Question 1 --------
    I give up the idea of using usb to upgrade firmware. Because I think, during the production process, it would be a trouble to first download the usb bootloader through UART or JTAG, and then download firmware through usb. Two connections ( UART/JTAG and USB) are required. Am I right? Or is there a way to combine the USB bootloader and application firmware into one image file, and download in one go with UART/JTAG.

    ---- Question 2 --------
    I tried serial flash programmer, I run the following cmd:
    serial_flash_programmer.exe -d f2806x -k f28069_flash_kernel.txt -a blinky_dc_cpu01.txt -p COM15

    It prints out:
    getting com state
    building comm DCB
    adjusting port settings

    calling f05_DownloadImage
    Downloading blinky_dc_cpu01.txt to device...

    And it stops there, no more response. Is it correct? I reconnect my 28069 pcb, looks like the firmware I downloaded earlier has been erased at least, cause PC not recognizing the USB connection.

    ---- Question 3 --------
    How can I generate .txt of my own firmware? I am using CCS7.1, tried Hex Utility, but not working. Generating .hex is OK but not with txt option? What could be the problem?

    ---- Question 4 --------
    Further, any other serial Flash programming tool can you recommend? I saw SDFlash, but resources on the website are quite old and not very straightforward. Any suggestions?
  • .txt question:
    I got extra 10 similar warnings with hex utility enabled:
    section myfw.out (. cinit) at 07e8544h falls in unconfigured memory section
    (. econst) at 07e8000h
    (. switch)
    (. text.1)
    (. text.2)
    (CLA1mathTables)
    (Cla1Prog)
    (codestart)
    (IQmath)
    (ramfuncs)

    why was that?
  • Answer 1: The bootloader would resided in flash, so you could keep the boot loader there and you wouldn't have to combine the projects.

    Answer 2: Please add '-v' to the command line arguments. It may have downloaded properly. Do you see the LEDs blinking? You can check the GPIOs that the blinky application is using.

    Answer 3: Please see the post-build steps of the flash kernel. It invokes the hex2000 utility with the proper arguments. You can use that post build step for your flash application.

    Answer 4: There is Uniflash and some other third party tools available, but C2000 does not support those tools.

    Hope this helps.
    sal
  • For Q1: I know that once the usb bootloader is downloaded, it resides in flash. What I want to know is, in the production process, for the 1st time, both the usb bootloader and app firmware need to be downloaded. Is there a way to combine the two and download it in one go? Or they have to be downloaded separately?

    For Q4: I have tried Uniflash, it still requires a emulator JTAG connection (XDS100v3 USB Debug probe in my case). Is there a tool using only UART connection?
  • For Q3: I did generate .txt for my other project before. But failed on this one, I have no problem with downloading the .out file onto the device. That means cmd file is OK, nothing exceeds the memory region boundary, right?; I select .txt option, I got 10 more warnings like this:
    section myfw.out (. cinit) at 07e8544h falls in unconfigured memory section

    so there is a difference between compiling into .txt and .out? Is cmd file need to be changed for generating .txt?
  • A3. You can combined the bootloader and your flash application into one image.

    I don't know what you mean by, you select the .txt option and then get 10 warning... Can you describe what you are doing and what the warnings are? You may just need to map .cinit in your linker command file. Make sure it is marked out is the SECTIONS portion and is mapped to a memory region.

    What do you mean compiling into .txt and .out. The code generation tools compile and link to form a .out. Then the hex2000 converts the .out to a hex file format.

    A4. I suggest using the serial flash programmer and SCI flash kernel.

    Please see: www.ti.com/.../sprabv4b.pdf

    There are also many posts on E2E regarding this.

    Hope this helps.
    sal
  • In C2000 Hex Utility, I can select output format. So if I select hex format, an .hex is generated with .out after compile. If I select txt format, .txt is not generated, only .out file compiled. In this case, I got 10 extra warnings than normal compile:
    section myfw.out (. cinit) at 07e8544h falls in unconfigured memory section
    section myfw.out (. econst) at 07e8000h falls in unconfigured memory section
    section myfw.out (. switch) at 07e8a88h falls in unconfigured memory section
    section myfw.out (. text.1) at 07d8000h falls in unconfigured memory section
    section myfw.out (. text.2) at 07e8afch falls in unconfigured memory section
    section myfw.out (CLA1mathTables) at 07e0000h falls in unconfigured memory section
    section myfw.out (Cla1Prog) at 07d0000h falls in unconfigured memory section
    section myfw.out (codestart) at 07effech falls in unconfigured memory section
    section myfw.out (IQmath) at 07e89fah falls in unconfigured memory section
    section myfw.out (ramfuncs) at 07d0a4ch falls in unconfigured memory section

    I wonder why txt can not be generated from .out?