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.

TMS320F28374D: Seeking Assistance for Building Serial Flash Programmer on Linux for TMS320F28374D

Part Number: TMS320F28374D
Other Parts Discussed in Thread: CONTROLSUITE, FLASHTOOL

Hello,

We need to update the TMS320F28374D device's fw inside a Linux (Ubuntu) environment.

We have already succeeded to do that in a Windows environment with the provided cli utility 'serial flash programmer', with the example files and with our deploy code too,

The original thread linked in this question pointed to some initial solutions, however, we are having some issues:

- the solutions teaching to build/make the original visual studio serial flash programmer utility under Linux do not appear to work, leading to make errors right away;

- the alternative 'Tapas Flash Tool' does not appear to fully work, although it has worked to some extent (until the end of the kernel uploading);

- nothing really new was found under the controlSUITE software or folders regarding Linux environments, only the usual Windows utility;

Although well commented, the source file 'f021_DownloadedImage.cpp' where the 'loadProgram_checksum()' function resides would be a good basis for us

to advance in this task. Ideally, if there was a known source for this function in Python, it could be aggregated with some effort into the 'Tapas FlashTool' source code.

On the other hand, ideally, of course, a complete package that is known to be fully prepared for make/build under Linux would be the best answer.

We could provide a lot more of context and details, depending to where this question's thread turns to.

Thank you in advance for your assistance.

Best regards,

Marchesi

  • Hi Bruno,

    What solutions were looked at to generate the Linux build for the serial_flash_programmer

    I'll need some time to look into this request, will update you over the next few days.

    Thanks and regards,

    Charles

  • Hi Charles,

    a- We explored various TI-provided packages, including downloading the full controlSuite package, in search of a Linux equivalent of the Windows command-line interface (CLI) utility. Unfortunately, we were unable to find any suitable options.

    b- Following the guidelines in the linked thread, we attempted to build the Linux variant using the suggested GitHub repository. However, we encountered build errors. Despite making minor adjustments to some include/source files, we were unable to achieve a successful build. It's important to note that this procedure was not officially recommended by TI but was a tip from a forum member.

    c- We also downloaded and tested a pre-compiled Linux binary purported to replicate the functionality of the Windows CLI utility. Although the software executed, it failed to establish a successful communication link with the target DSP unit.

    d- In an effort to find documentation or tips for cross-compiling to a Linux target, we inspected the source code of the Visual Studio 2017 C++ project. Unfortunately, we found no relevant information. While we considered trial and error cross-compilation using tools like gdb, the absence of documentation dissuaded us from pursuing this approach initially.

    e- Additionally, within the same thread, we discovered a suggestion to try the Tapas Flash Tool utility, a Python-written module, in hopes it could emulate the official TI Windows CLI tool. This utility successfully executed and managed to transmit the kernel firmware file entirely. However, it could not progress beyond that point.

    We appreciate your prompt response and any guidance or suggestions you could offer to help us resolve these issues.

    Thank you,

    Marchesi

  • Hi Bruno,

    For listed step e-, what is the device doing following download of the kernel? Does the kernel use the default GPIOs for SCI-Boot for the device?

    Thanks and regards,

    Charles

  • For listed step e-, what is the device doing following download of the kernel?

    I am unable to inform that with precision. The current state of testing is that I have the said 3rd party Python code running, and I am unaware and unable to find which is the state of the TI device right after the successfull transmission of the kernel file.

    Does the kernel use the default GPIOs for SCI-Boot for the device?

    The kernel file name is 'F2837xD_sci_flash_kernels_cpu01.txt', which I believe to be provided by TI. So, I infer it is using the default GPIOs for the process.

    I'd like to offer my original question one time again, does TI at the moment have a cli for the serial flash programmer utility that is built for a Linux environment? Or, alternatively, does TI have to offer a sequence of steps that, from the source files, might build/make succesfully on standard Linux distros, e.g. Ubuntu?

  • For reference, it is using the default configuration for SCI Flash Kernel, the SCI_BOOT parameter which relates to GPIO84/85. If connecting to a host machine, it uses GPIO28/29 for the serial connection to the COM Port, which requires the SCI_BOOT_ALTERNATE parameter to be set in the SCI Flash Kernel project. If this is value is changed in the project you should be able to download the application image.

    We at the moment do not have a CLI version of the serial flash programmer utility for Linux. 

    Thanks and regards,

    Charles

  • We at the moment do not have a CLI version of the serial flash programmer utility for Linux. 

    I see. I'll then mark this thread as 'resolved' in this case.

    Thank you very much for your prompt replies.