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.

[参考译文] AM2434:MCU+ SDK 11.00.00.15 (AM2434)–构建修复和 AMP;网络/FreeRTOS 改进(补丁建议)

Guru**** 2774995 points

Other Parts Discussed in Thread: AM2434, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1618493/am2434-mcu-sdk-11-00-00-15-am2434-build-fixes-networking-freertos-improvements-patch-suggestions

器件型号: AM2434
主题: SysConfig 中讨论的其他器件

我正在使用  AM2434 和  MCU+ SDK 11.00.00.15、在集成过程中发现了一些问题、并进行了几处小修改、这些修改可能有助于在未来的 SDK 版本中加入。

如果有建议的方法可以在不修改 SDK 的情况下实现相同的结果、请告知我。 一般而言、我认为即使是用户端的小幅配置更改(例如 FreeRTOSConfig.h)也不方便 、需要重新编译 SDK 库、这使得更难维护具有不同配置的多个项目。

下面是我所应用的按组件分组的更改列表。

1) TinyUSB (NoRTOS)–缺少 NO_SYS 定义

文件:source/usb/tinyusb/makefile.ncm_nortos.am243x.r5f.ti-arm-clang  

在  defines_common 中、添加:

DNO_SYS=1 

文件:source/usb/tinyusb/makefile.RNDIS_nortos.am243xr5f.ti-arm-clang  

在  defines_common 中、添加:

DNO_SYS=1 

2) FreeRTOS 内核 makefile–缺少文件和堆选择

文件:source/kernel/freertos/makefile.am243x.r5f.ti-arm-clang  

在  files_common 中、添加:

stream_buffer.c 

可选(但更适合我的用例)、replace: heap_3.c →heap_4.c  

3) ENET lwIP 接口–buf 类型+ IPv6 支持

文件: source/networking/enet/core/lwipif/lwip2enet.c src

在行~1246 附近、更改: PBUF_POOL →PBUF_REF  

文件: source/networking/enet/core/lwipif/lwip2lwipif.c src

a) 添加 IPv6 报头包括

#include “lwip/ethip6.h"</s>“ 

b) 在  LWIPIF_LWIP_init 中、当填充 netf 标志/接口时、添加 IPv6 支持

NETIF->flags |= NETIF_FLAG_ETHARP | NETIF_FLAG_BROADCAST;
#if LWIP_IGMP
NETIF->flags |= NETIF_FLAG_IGMP;
#endif #ifdef
LWIP_IPv6
NETIF->flags|=  NETIF_FLAG_MLD6;NEWaddr_ENDIF>ETH_

输出;#endifif #endifif_ipf #entif_ipf

4) lwIP TLS (mbedTLS)–pbuf 类型+熵/RNG 挂钩

文件: source/networking/lwip/lwip-stack/apps/altcp_tls/altcp_tls_mbedtls.c src

在行~385 附近、更改: PBUF_POOL →PBUF_RAM  

将  ALTCP_MBEDTLS_RNG_FN 块替换为以下内容以使用真实的熵发生器:

#ifndef ALTCP_MBEDTLS_RNG_FN
extern int EnetApp_getEntropy (void *ctx、unsigned char *buffer、size_t len);
#define ALTCP_MBEDTLS_RNG_FN EnetApp_getEntropy
#endif 

5) lwIP 栈 makefile–缺少 mDNS 和 TLS 文件

文件:source/networking/lwip/makefile.stack_freertos.am243x.r5f.ti-arm-clang  

在  files_common 下、添加所需的 mDNS 源:

mDNS out.c
mdns_domain.c 

另外、还应添加缺少的 TLS 源:

altcp_tls_mbedtls.c 

6) Percepio Tracealyzer / FreeRTOS 跟踪–包括构建所需的路径

为了集成 Percepio Tracealyzer 支持(FreeRTOS 跟踪)、我必须添加以下包含路径;否则 SDK 无法构建。

文件:

  • source/networking/enet/makefile.lwipif-ic-freertos.am243x.r5f.ti-arm-clang
  • source/networking/enet/makefile.lwipif-cpsw-freertos.am243x.r5f.ti-arm-clang
  • source/networking/enet/makefile.lwipif-icssg-freertos.am243x.r5f.ti-arm-clang
  • source/networking/lwip/makefile.contrib-Freertos.am243x.r5f.ti-arm-clang
  • source/networking/lwip/makefile.stack_freertos.am243x.r5f.ti-arm-clang

添加到  INCLUDES_COMMON

-i${MCU_PLUS_SDK_PATH}/source/kernel/freertos/config/am243x/r5f \
-i${MCU_PLUS_SDK_PATH}/source/kernel/freertos/FreeRTOS-Kernel/include \
-i${MCU_PLUS_SDK_PATH}/source/kernel/freertos/portable/TI_ARM_CLANG/ARM_CR5F \ 

开发环境

  • MCU+ SDK:11.00.00.15
  • 编译器:TI ARM CLANG 4.0.4 LTS
  • SysConfig:1.26.0
  • CCS:20.40
  • 器件:AM2434 (Cortex-R5F 0-0)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Roberto:

    请留出一些时间来检查上述内容并返回。

    此致、

    Tushar

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

    尊敬的 Roberto:

    感谢您的耐心。

    如果有建议的方法可以在不修改 SDK 的情况下实现相同的结果、请告诉我。 一般而言、我认为即使是用户端的小幅配置更改(例如 FreeRTOSConfig.h)也不方便 、需要重新编译 SDK 库、这使得更难维护具有不同配置的多个项目。

    每当您在 SDK 源代码中进行更改时、应用这些更改的唯一方法是通过重新构建库文件。 如果不重新构建库、更改将不会反映在最终二进制文件中。

    我已为上述问题提交内部 Jira、并将在收到团队回复后立即更新。

    开发环境

    建议使用 MCU+SDK 官方文档中建议的确切版本工具。 请参阅  sdk_download_page 以了解详细信息。

    请参阅  

    此致、

    Tushar