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.

[参考译文] TMS320F28069:CAN 引导模式和 CAN 闪存内核

Guru**** 2583395 points
Other Parts Discussed in Thread: TMS320F28069, C2000WARE, TMS320F28379D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/704634/tms320f28069-can-boot-mode-and-can-flash-kernal

器件型号:TMS320F28069
主题中讨论的其他器件:C2000WARETMS320F28379D

您好!

我对 CAN 引导和 CAN Flasble bootloader 有一些疑问

如果我们不使用 OTP 方法、如何进入 CAN 引导模式并退出 CAN 引导模式。 目前、我们 计划在其中创建一个应用分支测试代码表单、并将其巧妙分支到 CAN 引导跳转地址0x03FF4FC。 此方法是否正确? 在这一点之后、我们将加载 CAN 内核和应用程序。

2.我们应该使用哪种引导命令来对 ASCII 文件.A00进行分级? 请提供相同的信息。

我的重要问题是、Kernal 是否已擦除整个闪存以加载新应用、并且电源已关闭。 那么、在这种情况下、闪存中没有应用程序将发生什么以及如何在上电后再次进入 CAN 引导模式? 我没有 JTAG 编程器来再次刷写/编程应用程序? 请指导我如何处理这种迷信。 我们也在闪存之外运行。 我们不能让一个完整的扇区用于可以跳转到 CAN Boot 的浸出程序。

3. 是否可以擦除完全擦除整个扇区的宏伟的扇区。 在这种情况下、我们的计划是将分支代码保留在扇区的开头、并且只擦除未使用的器件。

我们 迫切需要这方面的细节。

此致、

Pandurang Khutal

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

    我们是否获得了 CAN 闪存编程实用程序的另一个查询?
    我相信我无法使用 CAN 的串行闪存编程实用程序、因为我们正在使用 PCAN USB 软件狗、它不会检测到 COM 端口?
    请提供下载实用程序的路径。


    当我读取 main.c 文件头时、我在下面找到了文本。
    //标题:F28069 CAN 闪存内核示例
    //
    //! addtogroup f2806x_example_list
    //!

    F28069 CAN 闪存内核(f28069_CAN_FLASH_kernel)


    //!
    //! 此示例用于 CAN 闪存编程器实用程序。 这种情况
    //! 应用程序旨在通过加载到器件的 RAM 中
    //! CAN 引导模式。 成功加载该程序后、将实现
    //! 允许用户应用程序的 CAN 引导协议的修改版本
    //! 编程到闪存中

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

    1) 1)如果不对 OTP 进行编程、则无法在独立模式下进入 CAN 引导模式。 如果您可以使用仿真启动选项、则可以写入0xD00 = 0x55AA 和0xD01 = 0x0007。 CAN 引导跳转地址为0x3FF4FF。

    2) hex2000.exe --boot -a -sci8 -o 。 请参阅第271页(表12-1)。 基本十六进制转换实用程序选项) www.ti.com/.../spru513p.pdf 以了解更多详细信息。

    3) 3)如果能够将引导加载程序安装到 OTP 阵列中、则可以考虑使用 OTP 阵列(0x3D7800 - 0x3D7BFF)对自定义引导加载程序进行编程

    4) 4)否、无法部分擦除扇区的一部分。

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

    我的问题是、在没有程序时如何进入 CAN 引导(意味着控制器是全新的)? 对于 SCI、在加电时使用 GPIO 引脚(34个低电平引脚和37个高电平引脚)、它将像 CAN 引导中发生的那样进入 SCI 引导。


    您能否提供代码来说明如何加载引导 ROM 的符号。


    对于可闪存引导加载程序、我们将介绍 SCI 引导加载程序文档、并发现对于串行闪存编程器实用程序、我们需要提供 COM 端口详细信息、但对于 CAN 接口、我们使用的是 PCAN 适配器、而 PC 接口是 USB 而不是 CAN。 您能否告诉我们如何将串行闪存编程器实用程序用于 CAN 引导加载程序? 或者是否有用于测试 CAN 引导加载程序的任何其他实用程序。 请提供详细信息。


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

    1) 1)如果您想实现在独立模式下引导。 您需要执行以下操作:-

    a)编程0x3D7BFB = 0x005A
    b)编程0x3D7BFE = 0x0007
    c) GPIO34 = GPIO37 = 1 (在上电期间将这些引脚拉高)

    2) 2)引导 ROM 源文件和中提供的符号 \libraries\boot_rom\f2806x\v1_1\rom_sources\Release

    3) CodeSkin 支持通过 CAN 对闪存进行编程。 请访问 www.codeskin.com/programr

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

    您好、Manoj、

    1) 1)我们的要求是对电路板进行编程、而不在生产线生产结束时连接 JTAG。 我们 计划  使用将在主机上运行的 PC 实用程序对次级引导加载程序和应用程序映像进行编程。

    您 建议使用的上述方法是正确写入 OTP 位置? 当控制器为全新/空白而未连接 JTAG 时、如何解决此问题? 请给出建议?

    2) OTP 的另一个问题是每次上电控制都会进入 CAN_BOOT、并且它会无限等待(没有超时退出) CAN 消息从外部接收、但每次上电时都无法发送 CAN 消息以从 CAN_BOOT 退出并进入闪存引导。

    在不发送 CAN 消息并跳转到闪存引导的情况下退出 CAN_boot 的另一种方法是什么?

    3) 3)对于 SCI、我们使用 serial_flash_programr.exe 对 SCI 闪存内核进行编程。 现在 、我们必须使用哪个实用程序来对 CAN 闪存内核进行编程? 我认为 TI 在测试 CAN 闪存内核时可能会使用一些实用程序。 请提供下载路径。

    或者、如果 TI 使用 serial_flash_programr.exe 进行测试、那么您能否提供用于闪存 CAN 内核的命令。

    我们尝试提供如下命令: serial_flash_programmer -v -d f2806x -k f28069_can_flash_kernel.txt -a Test_2806xLEDBlink.txt -w 、但 它抛出 COM 端口无法识别错误、不会继续。 请建议。

    4) 4) CodeSkin 是否支持对 CAN 闪存内核进行编程? 我们已经下载了 CodeSkin 实用程序、但在 c2prog 中、CAN 选项被禁用、对于 TMS320F28069、CAN 功能不受支持。 请确认。

    此致、

    Pandurang Khutal

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

    1) 1)如果不对 OTP 进行编程、则无法实现 CAN 引导。 如果您不想使用 JTAG 对 OTP 值进行编程、则可能必须使用 SCI 引导来对十六进制代码进行编程、执行后会对 OTP 进行编程、以便为 CAN 引导做好准备。

    2) 2)是的、您的理解是正确的。 当针对 CAN 引导对 OTP 进行编程时、它会在每次加电时进入 CAN_BOOT、并在无限循环中等待接收 CAN 数据。 遗憾的是、没有超时、退出 CAN 引导的唯一方法是发送错误的密钥值(除0x08AA 以外的任何值)。 当发送错误的密钥时、它将进入闪存引导

    3) 3) TI 不提供与 SCI 闪存内核实用程序类似的 CAN 闪存内核实用程序

    4) 4)请就此问题联系 CodeSkin。

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

    请查看以下建议是否符合您的需求:-

    1) 1)使用引导至闪存。 这不需要您对 TI OTP 进行编程

    2) 2)编写适合 USR OTP 的自定义引导加载程序。 一旦器件引导至闪存、您需要跳转至自定义的起始地址
    OTP 中的引导加载程序

    3) 3)使用 SCI 引导程序将自定义引导加载程序编程到 USR OTP 中。

    3) 3)在 OTP 中对客户引导加载程序进行编程后、您可以使用它更新现场生产线(或)中的应用程序。 您的自定义引导加载程序(使用 CAN 引导)应查找特定签名、该签名决定是否更新应用程序代码(或)、只需跳转至现有应用程序代码并执行即可。

    以下示例使用 SCI 引导对闪存进行编程。 您可以修改示例工程以用作定制的 CAN 引导加载程序、以满足您的要求。

    \device_support\f2806x\examples\c28\f28069_flash_kernel

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

    您好、Manoj、

    我尝试为 CAN 开发自定义次级引导加载程序、以将其用作 F28379d 的闪存内核。 我从您的建议开始。
    当我开发自定义次级引导加载程序时,是否可以在不对 OTP 进行编程的情况下实现 CAN 引导?

    您以前回答过我:“是的,可以使用自定义的辅助引导加载程序。 您已经使用了 GPIO72 = GPIO84 = 1、如果您不对 TI OTP 进行编程、它将引导至闪存。 一旦它引导至闪存、您就可以设置自定义引导加载条件(或)、只需跳转到您的应用程序项目即可。"

    但在使用 Pandurang 的线程中有一个类似的阶段:"如果没有 OTP 编程、您无法实现 CAN 引导。"

    我想我之前误解了您的帖子。 您是否想再次澄清此问题?

    此致、
    ADEM。

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

    当我们收到引导加载程序请求时、我们会强制从应用程序代码跳转到 CAN_boot 地址(0x003FF4FC)。 我们相信 PC 会跳转到该地址、但从 CAN_boot 退出、我们发送的数据无效、但它不是只停留在那里。

    请告诉我们如何确保跳转至 CAN_boot 地址并通过 CAN 获取数据?

    我们已检查、如果应用正在运行、我们将获取 CAN 上的数据并接收到引导加载程序更新命令、我们将跳转到 CAN_boot 地址、CAN 上的数据也将停止、这就是我们说控制(程序计数器)的原因 正确跳转至 CAN_BOOT 地址、并保持该地址以接收0x08AA 或无效命令。 除了0x08AA、我们正在发送无效数据、但它仍然不是从 CAN_Boot 到闪存入口点发出的。

    这是什么原因以及 TI 是如何测试这种 CAN 闪存的? cAn、请您指导、如何测试 CAN 闪存内核是否正常工作?

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

    您的自定义次级引导加载程序可以在内部调用 CAN 引导选项(BootROM 中提供了该选项)。 该次级引导加载程序可在闪存(或)用户 OTP 中进行编程。 在 Pandurang 情况下、由于闪存中没有足够的空间、我建议使用用户 OTP。

    无论我在您的原始帖子中给您的建议是什么、都是好的。 不要混淆 Pandurang 的帖子。 我只是想说、如果不使用自定义引导加载程序(或)编程 OTP、您就无法使用引导模式引脚进行引导。

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

    在调试模式下、您应该能够在 CAN_Boot 地址设置断点、并确保您处于 CAN_boot 状态、可在 Bootrom 中使用。
    BootROM 中的哪个地址是代码卡住的?

    我建议您加载以下路径中提供的 BootROM 符号、以帮助您进行调试过程。

    BootROM 源代码: \libraries\boot_rom\f2806x\v1_1\rom_sources\

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

    1.您能告诉我们如何加载符号以及它们如何帮助测试代码状态吗? 您是否有任何文档。

    2.我已签入调试器程序计数器会转到 CAN_boot 地址(0x003FF4FC)、但在该点控制转到 ROM 引导后、我们无法调试代码。 我们正在 CAN 上发送无效数据、但它不是从 CAN 引导到闪存引导。 我在等待无穷大。 为什么?

    3、我们使用 CAN ID 开启、波特率为100Kbps、通过 PCAN 发送无效数据进行测试。 是这样吗?

    4.我对 TI 如何在没有基于 PC 的实用程序的情况下测试此 CAN 闪存内核有疑问、就像串行闪存编程器一样?
    我们知道、此实用程序不能用于闪存 CAN 闪存 Kennel。 请提供基于 CAN 闪存 PC 的实用程序以进行测试。


    我们甚至还没有解决这个问题,而且我们的项目已经越过了死胡同? 需要有关此方面的帮助以解决问题。

    我们能否在明天@下午5点印度时间安排 WebEx 会议进行讨论? 请向我发送您的电子邮件 ID、以便我可以设置 WebEx 呼叫。

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

    1) 1)如何加载符号?
    a)连接到设备
    b)首先导入 CCS 中的\libraries\boot_rom\f2806x\v1_1\rom_sources\项目
    c)运行->加载->添加符号->加载 BootROM COFF 文件(TMS320x2806x_boot_rom_gold_release.out)
    请在可能卡在无限循环后添加 BootROM 符号

    2) 2)我希望您加载符号的原因是为了帮助您调试代码、以解释为什么 CAN 引导停留在无限循环中

    3) 3)抱歉、我没有使用 PCAN。 我不知道

    4) 4)我们不使用基于 PC 的实用程序。 我们配置一个 C2000器件(支持 CAN)来发送我们的十六进制文件

    很遗憾、我们不支持通过 WebEx 会话提供联合调试支持。 我们的员工不能提供这种级别的支持。

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

    大家好、Manjo、

    我已将代码导入工作区并 尝试编译代码 以连接到 JTAG、但 遇到以下错误。 可以告诉我缺少什么、并且无法添加符号、因为该选项已禁用。

    说明 资源 路径 位置 类型
    找不到文件 TMS320x2806x_boot_rom_lnk.cmd /2806x_boot_rom/lnk 行56 C/C++问题
    找不到文件 TMS320x2806x_boot_rom_lnk.cmd /2806x_boot_rom/lnk 行57 C/C++问题
    链接期间遇到错误;链接期间未遇到"TMS320x2806x_boot_rom.out"错误;"TMS320x2806x_boot_rom.out"不    是2806x_boot_ROM C/C++问题
    gmake:***[TMS320x2806x_boot_rom.out]错误1 2806x_boot_ROM   C/C++问题
    gmake:目标"全部"不会由于错误而重新生成。  2806x_boot_ROM   C/C++问题
    未解析的符号_Fl2806x_ClearSector、首先在./source/rom_flash_api_table.obj 2806x_boot_ROM   C/C++问题中引用
    未解析的符号_Fl2806x_CompactSector、首先在./source/rom_flash_api_table.obj 2806x_boot_ROM   C/C++问题中引用
    未解析的符号_Fl2806x_EraseSector、首先在./source/rom_flash_api_table.obj 2806x_boot_ROM   C/C++问题中引用
    未解析的符号_Fl2806x_Init、首先在./source/rom_flash_api_table.obj 2806x_boot_ROM   C/C++问题中引用
    未解析的符号_Fl28x_ClearLoop、首先在./source/rom_flash_api_table.obj 2806x_boot_ROM   C/C++问题中引用
    未解析的符号_Fl28x_ClosePulse、首先在./source/rom_flash_api_table.obj 2806x_boot_ROM   C/C++问题中引用
    未解析的符号_Fl28x_CompactPulse、首先在./source/rom_flash_api_table.obj 2806x_boot_ROM   C/C++问题中引用
    未解析的符号_Fl28x_CompactVerify、首先在./source/rom_flash_api_table.obj 2806x_boot_ROM   C/C++问题中引用
    未解析的符号_Fl28x_delay、首先在./source/rom_flash_api_table.obj 2806x_boot_ROM   C/C++问题中引用
    未解析的符号_Fl28x_DepRecoverCompactSector、首先在./source/rom_flash_api_table.obj 2806x_boot_ROM   C/C++问题中引用
    未解析的符号_Fl28x_DisableInt、首先在./source/rom_flash_api_table.obj 2806x_boot_ROM   C/C++问题中引用
    未解析的符号_Fl28x_DisableNMI、首先在./source/rom_flash_api_table.obj 2806x_boot_ROM   C/C++问题中引用
    未解析的符号_Fl28x_EnterCmdMode、首先在./source/rom_flash_api_table.obj 2806x_boot_ROM   C/C++问题中引用
    未解析的符号_Fl28x_ErasePulse、首先在./source/rom_flash_api_table.obj 2806x_boot_ROM   C/C++问题中引用

    我做了一个实验、 我加载了应用程序代码并 将代码置于调试模式之后、我加载了 ROM 的 symcols 可以引导并开始调试 代码可以容纳引导代码、  我找到的是在 CAN_GetWordData()函数中以黄色线填入代码。 我已配置 CAN ID = 1、波特率为100KBPS 此设置是否正确? 还附加了屏幕截图供参考。

    我使用了 CANA 端口和 GPIO30和31。 我已经在 正常应用中测试了 Cana 端口、它工作正常。 我看不到任何硬件问题。 请告诉我问题是什么以及如何解决。

    uint16 CAN_GetWordData()

    uint16 wordcata;

    uint16字节数据;

    wordData = 0x0000;

    字节数据= 0x0000;

    //获取 LSB

    while (ECANaRegs.CANRMP.ALL =0){}

     

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

    BootROM golden COFF 文件(TMS320x2806x_boot_rom_gold_release.out)在以下路径中已可用。 因此、您无需编译 BootROM 代码。

    COFF 文件路径: \libraries\boot_rom\f2806x\v1_1\rom_sources\Release\TMS320x2806x_boot_rom_gold_release.out

    如果代码滞留在 CAN_GetWordData()函数中,则会告知 F28069.Cana 未接收到任何 CAN 数据。 BootROM 中提供的 CAN 设置正确。 当 BootROM 以10MHz 执行时、CAN 比特率在 SYCLKOUT = 10MHz 时计算得出。

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

    我已经使用 PCAN 视图中的其他代码测试了 Cana 端口、它工作正常。 为什么它不适用于 CAN ROM 引导代码?

    我在下面设置了 PCAN 视图并按如下方式发送数据-

    模式标准
    比特率为100kbps

    CAN ID-001
    长度- 2.
    数据-从 CAN 引导发出 FF 33 //无效

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

    您好、Manoj、

    我正在从应用程序代码跳转到 CAN 底部地址0x3ff4fc、应用程序以90Mhz 运行。  在跳转至 CAN ROM 引导之前、我是否需要将此 OSC 和 PLL 设置更改为内部 OSC 10Nhz 和 PPL 为1、否则将由 CAN 引导代码处理。  请 对此进行确认。 这对向前迈进非常重要。

    谢谢

    Pandurang

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    引导加载程序将 PLL 的 o/p 设置为/1。 它不配置 PLL。 IOW、I/p 时钟确实预计为10MHz。 因此、您的问题答案是"是"。 引导加载程序源位于 C:\ti\c2000Ware_1_00_05_00\libraries\boot_rom\f2806x\v1_rom_sources\source 中
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、CAN_BOOT 假定系统以10MHz 的频率运行。 因此、在跳转到引导之前、更改设置以以10MHz 运行器件。

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

    您好、Manoj、

    1)  我使用 DCAN_Boot.c 源代码修改了 tms320f28379d 的 CAN_FLASH_kernel 代码、该源代码位于 C:\ti\c2000Ware_1_00_05_00\libraries\boot_rom\f2837xd\reVB \rom_sources\F2837x_bootrom\cpu01-bootrom\source 中。 代码顶部有一个类似如下的阶段:"Soprano 的 DCAN 引导加载程序函数"。 但我使用的是 LaunchXL F283779d。 这可能是一个问题吗?

    2) 对于 GetWordData()函数,有两种不同的逻辑,如下所示。 我应该使用哪一个?  

    在用于 f2806x GetWordData 函数的 CAN_Boot 中、如下所示:  

    uint16 CAN_GetWordData()

    uint16 wordcata;
    uint16字节数据;

    wordData = 0x0000;
    字节数据= 0x0000;

    //获取 LSB
    while (ECANaRegs.CANRMP.ALL =0){}
    wordData =(UINT16) ECANaMboxs.MBOX1.MDL.byte.BYTE0;// LS 字节

    //获取 MSB
    字节数据=(UINT16) ECANaMboxs.MBOX1.MDL.byte.BYTE1;// MS byte

    //从 MSB:LSB 中形成 wordcata
    wordData |=(byteData <<8);

    /*清除所有 RMPn 位*/
    ECANaRegs.CANRMP.ALL = 0xFFFFFFFF;

    返回 wordData;

    在 f28379d GetWordData()函数的 DCAN-Boot 中、如下所示:  

    uint16 DCAN GetWordData()

    //等待邮箱1中接收到新的 CAN 消息
    while (DcanaRegs.CAN_NDAT_21!= 0x1){;}

    //从 IF1传输消息
    DcanaRegs.CAN_IF1CMD.ALL = 0x0007701;
    while (DcanaRegs.CAN_IF1CMD.all & 0x8000){;}
    返回(uint16) DcanaRegs.CAN_IF1DATA.all;

    此外、 用于 f28379d 的 SCI_Boot 中的 GetWordData 函数与  CAN_Boot 中的 GetWordData 函数类似。

    我应该使用哪一个?  

    此致。

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

    您好、Manoj、

    感谢您的参与。

    在应用程序中,在跳跃之前,我已经完成了 PLL 的设置,并选择了 IntOsc1Sel()作为时钟源 ,并且器件以10MHz 的频率运行。  但 它仍然是在 CAN_GetWordData 函数中填入的。

    在这一点之后、我已经对 应用程序代码的完整初始化部分进行了注释、并刚刚在 main.c 中将以下内容添加为初始化代码、其工作正常。 现在、我的问题是如何通过应用程序代码使其可行。

    1.存在应用程序代码初始化部分时,是什么导致了此问题?

    2.在通过应用程序跳转到 CAN_boot 之前、我们需要格外小心 、这些是什么? 请告诉我们 步骤。

    3.在跳过需要执行的操作之前,您能否提供代码片段?

    void (* EntryFunc_ptr)(void);

    void main()

    DisableDog ();

    国际振荡1Sel();

    DELAY_US (100);

    //IntOsc2Sel();

    //InitPll (DSP28_PLLCR、DSP28_DIVSEL);

    InitPll(1,3);

    while (1)

    DELAY_US (100);

    EntryFunc_ptr =(void (*)(void)) 0x3ff4fc;

    EntryFunc_ptr();

    谢谢、

    Pandurang Khutal

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

    Adam、

               C:\ti\c2000\C2000Ware_1_00_05_00\libraries\boot_rom\f2837xd\revB\rom_sources\F2837x_bootrom\cpu01-bootrom\source 目录中的 DCAN Boot.c 是 F28379D 的正确文件。

     SCI 模块在 F28069和28379D 之间是相同的。 因此、这两个器件之间应具有 SCI 模块功能的一致性。 但是、这两个器件之间的 CAN 模块完全不同(从寄存器/位的角度以及因此从编程的角度来看)。 请打开个新帖子并清楚地解释您的问题。 请勿继续本主题中的讨论。

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

    ADEM、

    请打开新主题并发布此问题。

    此致、

    曼诺伊

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

    我想不需要任何额外的代码。 下面是我们要尝试的一些操作。

    您是否检查了 CANA 寄存器是否配置正确? 不确定还有什么可能出错? 我将检查 CAN 寄存器是否正确编程。 检查您是否访问右侧的 CAN 引导 GPIO 引脚(CAN 引导使用30 / 31)? 您是否查看过示波器截图等?

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

    您好,Haresh,

    我打开了一个包含此问题的新主题。 但是、我有一个简短的问题。 我想为 f28379d 开发定制的 CAN 引导加载程序。 当我问我如何开发时,一些 TI 员工说我:“您可以在 f2806x 中引用 CAN_FLASH_kernel,在 f28379d 中引用 sci_FLASH_kernel,在 f28379d 中引用 DCAN_Boot.c 源代码。 您可以将它们移植到 f28379d。"

    我在回答我的问题时了解到、我应该修改这些示例代码并将 CAN_FLASH_kernel 代码移植到 f28379d。 但是、所有这些示例彼此之间都非常不同。 我无法确定哪一个对我而言是正确的。 我 应该采取哪些步骤 为 f28379d 开发 CAN_FLASH_kernel。

    此致。

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

    我很抱歉。 但您必须在自己的主题上发布您的问题。 尽管您和 Pandurang 都在使用 CAN 引导加载程序、但您的同事正在使用两种不同的器件。 在这个论坛中回答您的问题会使 Pandurang 和 viceversa 感到困惑。

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

    Pandurang、

       我认为这个问题已经解决。 请关闭帖子。

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

    您是否已经解决了 CAN 引导加载程序? 从 CAN 现场加载引导时、我遇到的问题与您完全相同。 我也有与你相同的问题。 如有问题、请分享您的经验。 非常感谢。


    BR
    Feng
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我在开发 CAN 引导加载程序时也有同样的问题。 我已经在以下链接中打开了一个线程: e2e.ti.com/.../2616003

    根据您的建议:我可以基于 SCI 引导加载程序"f28069_flash_kernel"开发客户 CAN 引导程序、您能不能建议 CAN 引导加载程序使用基于 PC 的实用程序?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    主机 PC CAN 闪存编程器应在年底之前发布。

    您可以同时使用串行闪存编程器主机工具并对其进行修改。

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

    尊敬的 Sal:

    非常感谢您的回复。

    实际上、我已经根据 SCI 闪存编程器为 CAN 闪存进行了修改、并在 e2e.ti.com/.../2630431上发布了一个新的线程

    但不幸的是,它直到现在才起作用。 您是否会给我更详细的建议? 谢谢、

    BR

    ChenFeng

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

    我正在关闭此主题、因为我很长时间没有听到您的反馈。

    此致、
    曼诺伊