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.

[参考译文] TMS320F28335:通过 UART/USB 从 C# GUI 加载闪存中的十六进制文件

Guru**** 2561530 points
Other Parts Discussed in Thread: CONTROLSUITE

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/636828/tms320f28335-load-hex-file-in-flash-from-c-gui-through-uart-usb

器件型号:TMS320F28335
Thread 中讨论的其他器件:controlSUITE

你(们)好  

我目前正在为我的大学开设有关控制卡 F28335的课程、我的任务是通过 C# GUI 中的 UART (USB)加载闪烁 LED 项目(可在 controlSUITE 中找到)。 我不熟悉 TI 产品及其工作原理。

到目前为止、我尝试的是:

  • 我尝试在由 CCS 生成的 C#写入十六进制文件中打开串行端口、当时为8位、9600为波特率、但未发生任何情况。
  • 当我从 CCS 加载闪烁 LED 项目时、一切工作正常

我的任务是擦除所有扇区、加载十六进制文件、并从 C# GUI 将十六进制文件编程到闪存中的所有内容

有人有什么建议吗?

 我在许多论坛上都有、但找不到我要找的内容。

有人可以帮帮我吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Nick、

    请参阅此应用手册、了解串行闪存编程器和 sci 闪存内核。

    www.ti.com/lit/sprabv4


    SAL
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好

    感谢您的建议、但 sprabv4提供了 C++示例。

    C#中是否有任何示例?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    否 我们没有针对您的课程分配的确切解决方案。 但您可以使用我们提供的源代码和解决方案来创建您自己的解决方案。

    SAL
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好

    感谢您的澄清。 还有一个问题吗? 此解决方案是否仅适用于 SCI-A 引导模式? 如果我的引导模式是跳转至闪存并且我想进行串行闪存编程、该怎么办? 有可能吗?

    谢谢
    Nick
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    它旨在与 SCIA 引导加载程序配合使用。 您可以将引导加载应用程序放入闪存中并引导至闪存、然后开始执行您自己的引导加载程序。 您将需要修改主机应用程序以适应引导加载程序并与之通信。 这很有可能。

    此致、
    SAL
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回答

    但我无法使用 C#。
    以下是从 GUI 引导.A00的主函数:

    使用 hex2000创建.a00、如下所示:
    C:\ti\ccsv5\tools\compiler\c2000_6.1.0\bin\hex2000.exe"-i .out -a -o a.a00 -boot -i2c8 -i2cpsc=0x1D -i2cclkh=0x05 -i2cclkl=0x0A


    我从 LightingDCDC 源代码获取了该函数

    公共字符串 LoadProgramFromFile (字符串端口、字符串路径)

    请尝试

    字符 oldChar ='X';

    this.close();//close 端口

    int oldBaud = Convert.ToInt32 (cboBaudRate.text);

    此.portname =端口;

    int 波特率= 38400;

    this.Open();

    this.WriteString ("A");
    int temp = Convert.ToInt32 (this.ReadByte());
    如果(temp ==65)

    //创建一个 StreamReader 实例以从文件中读取。
    //使用语句也会关闭 StreamReader。
    使用(StreamReader SR =新的 StreamReader (path))

    字节[]回声字节=新字节[256];
    byte[] toBeTxedBytes =新字节[256];
    字符 readChar;
    int i = 0;

    while (SR.EndOfStream!= true)

    readChar =(char)(SR.read());
    if ((readChar >='A'&& readChar <='F')||(readChar >='0'&& readChar <='9'))

    if (oldChar!='X')

    字节 b =(字节)(Convert.ToInt32 (readChar.ToString ()、16)+(Convert.ToInt32 (oldChar.ToString ()、16)* 16));

    oldChar ='X';
    toBeTxedBytes[i]= b;
    i++;

    其他

    oldChar = readChar;


    其他

    oldChar ='X';

    如果(I ==256)

    echoedBytes =此.WriteBytes (toBeTxedBytes);
    if (回声字节=空)

    抛出新的 InvalidProgramException();

    //if (PRB.value >= 100)
    //{
    // PRB.value = 0;
    //}
    //PRB.value = PRB.Value + 2;
    I = 0;


    如果(i!= 0)

    字节[]字节缓冲区剩余=新字节[i];
    对于(int p = 0;p < i;p++)

    字节缓冲区剩余容量[p]= toBeTxedBytes[p];

    回声字节=此.WriteBytes (字节缓冲器剩余);
    if (回声字节=空)

    抛出新的 InvalidProgramException();

    // PRB.value = 100;

    this.close();//关闭端口
    波特率= oldBaud;
    返回("程序已成功加载");


    this.close();//close 端口
    波特率= oldBaud;
    返回("错误:程序未加载。 请重试。");

    其他

    this.close();
    波特率= oldBaud;
    返回("错误:COM 端口不正确、电源关闭、程序已加载或 SCI 引导跳线未放置。");




    catch (异常错误)

    this.close();
    返回("错误:程序未加载。 请重试。");






    有什么建议吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Nick、

    我们将无法为您提供帮助。 如果您对 SCI、串行闪存编程器或引导加载程序有更具体的问题、我们将能够为您提供更多帮助。

    此致、
    SAL
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢

    对于我来说、F28335控制卡的所有这些内容非常令人困惑和陌生。

    好的、我阅读了一个文档、要使用 SCI-A 引导模式、我需要使用 GPIO 87、86和85至1以及84至0、我是否需要从 CCS 执行该操作并从 CCS 推送工程?

    然后、我尝试使用前面提到的串行闪存编程、但我得到了断言错误。 我正在通过运行以下命令上载 blinky_dc_cpu_01和 blinky_dc_cpu02:  

    serial_flash_programr.exe -d F2803x -k f2837xD_FW_upgrade_example/blinky_dc_cpu01.txt -a f2837xD_FW_upgrade_example/blinky_dc_cpu02.txt -p COM9

    我得到一些断言错误、您有什么建议吗?

    我还尝试了 GUI Lighting_DCDC_v2.2,在设置连接时,我获得了正确 的端口,按下“Continue (继续)”,其显示 为“Please make sure SCI Boot junper is set or that the target is flashed then try again (请确保 SCI 引导跳线已放置或目标已刷新,然后再 我的问题是,什么是 SCI 引导跳线? 我是否将此跳线物理放置在扩展坞上? 如果是、在哪个引脚中?

    很抱歉、如果我问所有这些问题、但有点令人困惑

    谢谢

    Nick