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.

[参考译文] LAUNCHXL2-RM57L:在运行 FreeRTOS 和 Lwip 时看不到电路板上的数据

Guru**** 2535150 points
Other Parts Discussed in Thread: HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/794613/launchxl2-rm57l-not-seeing-data-out-of-the-board-when-running-freertos-and-lwip

器件型号:LAUNCHXL2-RM57L
主题中讨论的其他器件:HALCOGEN

我在具有 FreeRTOS 的 RM57L 上运行了 Lwip 1.4.1。 我可以看到、写入数据的 lwip 调用正在工作、当我的程序运行时、电路板上的黄色指示灯持续闪烁。 我与处理类似问题的人一起发布了此帖子:

https://e2e.ti.com/support/microcontrollers/hercules/f/312/t/547007?LwIP-RM57-configuration-problem 

他们得到的解决方案是"更改为 NORMAL _UIWNOWA_NONSHARED (直写式高速缓存方案)"、但 从 Halcogen 文件更改 MPU 选项的页面被冻结。 如何进行此更改?   

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

    是的、你是对的。 使用 HALCoGen FreeRTOS 时、前4个区域的 MPU 设置将被冻结。 请手动检查设置:

    在 os_port.c 中的 vPortStoreTaskMPUSettings ()
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我对 os_port.c 中的 vPortStoreTaskMPUSettings 进行了以下更改、但仍然看不到电路板上的数据:



    if (xRegions == NULL)


    /*未指定 MPU 区、因此允许访问所有 RAM。 *
    xMPUSettings ->xRegion[0]。ulRegionBaseAddress = 0x080000;
    xMPUSettings ->xRegion[0].ulRegionSize = portMPU_size_512KB | portMPU_REGION_ENABLE;
    //xMPUSettings ->xRegion[0].ulRegionAttribute = portMPU_PRIV_RW_USER_RW_EXEC | portMPU_NORMAL OIWBWA_NONSHARED;
    xMPUSettings ->xRegion[0].ulRegionAttribute = portMPU_PRIV_RW_USER_RW_EXEC | portMPU_NORMAL OIWTNOWA_NONSHARED;

    /*重新安装只有特权 RAM 区域,因为 xRegion[0]将具有该区域
    仅删除了特权参数。 *
    xMPUSettings ->xRegion[1].ulRegionBaseAddress = 0x080000;
    xMPUSettings ->xRegion[1].ulRegionSize = portMPU_SIZE_4KB | portMPU_REGION_ENABLE;
    //xMPUSettings ->xRegion[1].ulRegionAttribute = portMPU_PRIV_RW_USER_NA_NOexec | portMPU_normal_OIWBWA_NONSHARED;
    xMPUSettings ->xRegion[1].ulRegionAttribute = portMPU_PRIV_RW_USER_NA_NOexec | portMPU_NORMAL OIWTNOWA_NONSHARED;




    否则{

    if (usStackDepth >0)

    /*定义允许访问堆栈的区域。 *
    xMPUSettings ->xRegion[0]。ulRegionBaseAddress =(无符号) pxBottomOfStack;
    xMPUSettings ->xRegion[0].ulRegionSize = prvGetMPURegionSizeSetting (unsigned long) usStackDepth *(unsigned long) sizeof (portSTACK_type))| portMPU_REGION_ENABLE;
    //xMPUSettings ->xRegion[0]。ulRegionAttribute = portMPU_REGION_READ_WRITE | portMPU_NORMAL OIWBWA_NONSHARED;
    xMPUSettings ->xRegion[0].ulRegionAttribute = portMPU_REGION_READ_WRITE | portMPU_NORY_OIWTNOWA_NONSHARED;






    这些更改是否正确? 我的项目还有什么问题?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    e2e.ti.com/.../4617.myHalcogenFile.zip 我在这里添加了 halcogen 文件、以查看您是否可以找到我没有执行的操作

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

    您是否知道如何修改 FreeRTOS 中的 MPU 设置?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、我了解了如何修改 MPU 设置。 我可以通过 Sharktap 看到电路板上的数据、但不能直接传输到运行 Wireshark 的另一台计算机。 这是通过静态 lwip 连接实现的。 我在使 LWIP DHCP 连接正常工作时也遇到了问题。 您能查看我上传的 Halcogen 文件吗?

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

    您好、Christian、

    随附的内容请在 TMS570LC43x 上找到 FreeRTOS + LWIP 的工作示例代码。 您可以使用此示例代码作为参考。 将此项目导入 CCS、更改项目属性中的器件字节序和器件型号、还更改项目属性中预定义的符号。

    e2e.ti.com/.../3107.TMS570LC4357_5F00_FreeRTOS_5F00_LWIP.7z