主题中讨论的其他器件:C2000WARE、
尊敬的 TI 支持团队:
- USE_20MHz_XTAL (我的 controlCARD 为修订版 MCU063A-)
controlCARD 上是否需要任何硬件配置?
有关如何进行调试的其他建议吗?
谢谢、
心搏
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.
尊敬的 TI 支持团队:
controlCARD 上是否需要任何硬件配置?
有关如何进行调试的其他建议吗?
谢谢、
心搏
您好、
以太网的 DMA 无法访问闪存扇区。 如果不将.const SRAM 更改为 CMBANK0_Sector、它是否起作用? 为了使其独立工作、您可以执行类似的操作。 从闪存加载 const、在以太网初始化之前将其复制到主函数中的 SRAM。
链接器命令更改:
const:{} load = CMBANK0_SECTOR0 | CMBANK0_SECTOR1、
run = SRAM、
Load_start (constLoadStart)、
load_size (constLoadSize)、
Load_End (constLoadEnd)、
RUN_START (constRunStart)、
run_size (constRunSize)、
RUN_END (constRunEnd)
主函数添加:
memcpy (&constRunStart、&constLoadStart、(size_t)&constLoadSize);
谢谢、
Yashwant
Yashwant、
是的、定义了"_flash"。 "cm_common_config_c28"也错过了主函数末尾的无限循环、我添加了该循环。
我怀疑问题出在 CM 侧。 可能是器件初始化(闪存、外设时钟、看门狗?) 在没有 CCS 配置的情况下启动时。
您认为何时可以发布更新的版本?
此外、您对此是否有任何反馈:
同时、您能否给我一个文档、说明您的端口支持 lwip 的哪些部分。 例如、我在代码中看到以下注释:"当前实施仅适用于静态 IP 地址。"
谢谢、
心搏
您好、
这些是已针对独立模式进行测试的最新文件。 您能否尝试使用新的更新。
关于 lwip 支持、注释显而易见。
e2e.ti.com/.../5556.f2838xif.c
e2e.ti.com/.../3731.enet_5F00_lwip.ce2e.ti.com/.../2352.startup_5F00_ccs.c
e2e.ti.com/.../2838x_5F00_flash_5F00_lnk_5F00_cm_5F00_lwip_5F00_cmd.txt
谢谢、
Yashwant
心搏、
您可以在 enet_lwip.c 文件中定义以下函数。 这些计划在下一版中提供。
void Ethernet_disableDmaInterrupt (
uint32_t base、
uint32_t 通道数量、
uint32_t 标志)
{
HWREG (基址+(通道数* Ethernet_channel_offset)+
EtherNet_O_DMA_CH0_INTERRUPT_ENABLE)和=~标志;
}
void Ethernet_enableMTLInterrupt (
uint32_t base、
uint32_t queueNum、
uint32_t 标志)
{
HWREG (基址+(queueNum * Ethernet_queue_offset)+
EtherNet_O_MTL_Q0_INTERRUPT_CONTROL_STATUS)|=标志;
}
谢谢、
Yashwant
Yashwant、
我还尝试获取 lwip 示例、以便在具有 C2000Ware_3_03_00_00的 TMS320F28388D 评估板上独立运行(从闪存)。
我遵循了您的最新笔记:
替换了文件(5556.f2838xif.c、3731.enet_lwip.c、2352.startup_ccs.c、2838x_flash_lnk_cm_lwip_cmd.txt)。
2.添加了函数(Ethernet_disableDmaInterrupt、 Ethernet_enableMTLInterrupt)。
通过这些修改,我可以从闪存中运行程序(也可以在关闭电源后运行,没有 CCS),但我仍然有一些问题。
当从 CCS (通过 JTAG)运行时、程序完全正常运行、但当在下电上电后从闪存运行时、连接不稳定。
特别是,如果我按下 Web 服务器上的按钮“getDataFromServer”,应答将延迟(2-5秒),这会导致 ping 在该时间内失败。 当我从 CCS 运行时、来自服务器的答案是立即的(服务器立即发送更新的数字)、并且 ping 永远不会丢失。
如果我只是对电路板执行 Ping 操作、从 CCS 运行时、它绝不会错过 Ping 操作、但当从闪存运行一次时、Ping 操作会丢失(在~20秒内执行一次)
有什么想法为什么?
谢谢、
帝汶
小更新:
我不认为这是问题的原因、但我认为 在您发送的示例中 lwIPTimer 没有正确触发。
在 SysTickIntHandler 中、它使用 lwIPTimer (SysTick PeriodValue)调用、而 SysTick PeriodValue=15000000。
lwIPTimer 的调用应具有从最后一次调用传递的毫秒值。
我进行了以下更改:
1. sysstickPeriodValue=1250000
2.在 SysTickIntHandler 中:lwIPTimer(100);
这会每隔100ms 更新一次 lwip 计时器
似乎没有什么帮助、但可能是它的一大优势...
此外、我还将 Ethernet_NO_of RX_packets 从2U 更改为5U。 这有助于解决一点问题。
当独立运行与连接调试器(来自 CCS)运行时、看起来运行速度非常慢。 这会导致处理请求的速度非常慢、因此响应会延迟、ping 会丢失。 我可以说、它不是主时钟、因为我添加了 LED 闪烁(CPU1和 CM)、并且闪烁速率在独立时和 CCS 之间不会改变。