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.

[参考译文] AM2432:无需 EEPROM 即可执行示例代码

Guru**** 2455560 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1482511/am2432-execute-example-code-without-eeprom

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

工具与软件:

您好!

客户希望在没有 EEPROM 的情况下在 MCU+SDK 中执行一些示例代码。

他们曾尝试删除访问 EEPROM 的以下代码、但在构建工程时、即使这些代码已删除、这些代码也会恢复。

在 debug/syscfg 文件夹中、

  • ti_board_config.c
  • ti_board_open_close.c

您能告诉他们如何修改 debug/syscfg 中的代码吗?

您能告诉他们删除 EEPROM 访问的具体方法吗?

 

谢谢。此致、

英明

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

    您好、Hideaki

    我正在查看您的问题,您可能希望在一两天内得到回复。

    此致、

    Anil。

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

    您好、 Hideaki

    上述文件是 syscfg 生成的文件、我们无法编辑这些文件。

    即使再次编辑和编译工程、也可能会获得 EEPROM 生成的文件。  

    如果您确实不需要 EEPROM、为何不能通过 syscfg 禁用 EEPROM 外设并生成代码? 这是一种很好的方法。

    如果您在从 syscfg 禁用 EEPROM 时遇到任何问题、请告知我。

    此致、

    Anil。

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

    尊敬的 Anil:

    客户尝试从 SysConfig 中禁用 EEPROM、但在编译示例项目时发生了一些错误。

    您能否在下面的程序中检查是否有任何问题?

     

    CCS :       ver.12.7.1.

    系统配置:  1.20.0.3587版本

    MCU+ SDK: mcu_plus_am243x_09_01_00_41

     

    导入以下示例工程

    • examples / networking / enet_layer2_icssg / icssg_layer2_dualmac / am243x-evm

     

    1) 编译=>成功

    2) 2) 选择 EEPROM 并删除 SysConfig 上的"CONFIG_EEPROM0"。

       然后对其进行编译。

    3) 出现如下错误。

    "c:/ti/ti_cgt_tiarmclang_3.2.0.LTS/bin/tiarmclang.exe gnom_d-c -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb /ti/mcu_plus_sdk_am243x_09_01_00_41/source -i"C:/ti/ti_cgt_tiarmclang_3.2.0.LTS/include/c /ti/mcu_plus_sdk_am243x_09_01_00_41/source/kernel/freertos/FreeRTOS-Kernel/include /ti/mcu_plus_sdk_am243x_09_01_00_41/source/kernel/freertos/portable/TI_ARM_CLANG/ARM_CR5F /ti/mcu_plus_sdk_am243x_09_01_00_41/source/kernel/freertos/config/am243x/r5f /ti/mcu_plus_sdk_am243x_09_01_00_41/source/networking/enet/utils /ti/mcu_plus_sdk_am243x_09_01_00_41/source/networking/enet/core /ti/mcu_plus_sdk_am243x_09_01_00_41/source/networking/enet/core/include/core /ti/mcu_plus_sdk_am243x_09_01_00_41/source/networking/enet/hw_include/mdio/V4 /ti/mcu_plus_sdk_am243x_09_01_00_41/source/networking/enet /ti/mcu_plus_sdk_am243x_09_01_00_41/source/networking/enet/utils/include /ti/mcu_plus_sdk_am243x_09_01_00_41/source/networking/enet/utils/V3 /ti/mcu_plus_sdk_am243x_09_01_00_41/source/networking/enet/core/include /ti/mcu_plus_sdk_am243x_09_01_00_41/source/networking/enet/core/include/phy /ti/mcu_plus_sdk_am243x_09_01_00_41/source/networking/enet soc /ti/mcu_plus_sdk_am243x_09_01_00_41/source/networking/enet/hw_include   

    subdir_rules.mk:52:目标"syscfg/ti_board_config.o"的配方失败

     

    SYSCFG/ti_board_config.c:520:26:错误:使用未声明的标识符"gEpromHandle";您是指"gUartHandle"吗?

       状态= EEPROM_Read (gEepromHandle[CONFIG_EEPROM0]、I2C_EEPROM_MAC_CTRL_OFFSET 、&numMacMax、sizeof (uint8_t));

                            ^~~~~~~~~~~~~μ A

                            gUartHandle

    C:/AM2432lan/icssg_layer2_dualmac_am243x-evm_r5fss0-0_freertos_ti-arm-clang/Debug/syscfg/ti_drivers_open_close.h:90:20:注意:"gUartHandle"在此处声明

    extern UART_Handle gUartHandle[CONFIG_UART_NUM_EVENTS];

                      ^μ A

    SYSCFG/ti_board_config.c:520:40:错误:使用未声明的标识符"CONFIG_EEPROM0"

       状态= EEPROM_Read (gEepromHandle[CONFIG_EEPROM0]、I2C_EEPROM_MAC_CTRL_OFFSET 、&numMacMax、sizeof (uint8_t));

                                          ^μ A

    SYSCFG/ti_board_config.c:527:26:错误:使用未声明标识符"gEpromHandle";您是指"gUartHandle"吗?

       STATUS = EEPROM_READ (gEpromHandle[CONFIG_EEPROM0]、I2C_EEPROM_MAC_DATA_OFFSET、macAddrBuf、(macAddrCnt * ENET_MAC_ADDR_LEN));

                            ^~~~~~~~~~~~~μ A

                            gUartHandle

    C:/AM2432lan/icssg_layer2_dualmac_am243x-evm_r5fss0-0_freertos_ti-arm-clang/Debug/syscfg/ti_drivers_open_close.h:90:20:注意:"gUartHandle"在此处声明

    extern UART_Handle gUartHandle[CONFIG_UART_NUM_EVENTS];

                      ^μ A

    SYSCFG/ti_board_config.c:527:40:错误:使用未声明的标识符"CONFIG_EEPROM0"

       STATUS = EEPROM_READ (gEpromHandle[CONFIG_EEPROM0]、I2C_EEPROM_MAC_DATA_OFFSET、macAddrBuf、(macAddrCnt * ENET_MAC_ADDR_LEN));

                                          ^μ A

    生成4个错误。

     

    gmake:***[syscfg/ti_board_config.o]错误1.

     

    构建文件:"syscfg/ti_board_open_close.c"

    调用:ARM 编译器

    "c:/ti/ti_cgt_tiarmclang_3.2.0.LTS/bin/tiarmclang.exe gnom_d-c -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb /ti/mcu_plus_sdk_am243x_09_01_00_41/source -i"C:/ti/ti_cgt_tiarmclang_3.2.0.LTS/include/c /ti/mcu_plus_sdk_am243x_09_01_00_41/source/kernel/freertos/FreeRTOS-Kernel/include /ti/mcu_plus_sdk_am243x_09_01_00_41/source/kernel/freertos/portable/TI_ARM_CLANG/ARM_CR5F /ti/mcu_plus_sdk_am243x_09_01_00_41/source/kernel/freertos/config/am243x/r5f /ti/mcu_plus_sdk_am243x_09_01_00_41/source/networking/enet/utils /ti/mcu_plus_sdk_am243x_09_01_00_41/source/networking/enet/core /ti/mcu_plus_sdk_am243x_09_01_00_41/source/networking/enet/core/include/core /ti/mcu_plus_sdk_am243x_09_01_00_41/source/networking/enet/hw_include/mdio/V4 /ti/mcu_plus_sdk_am243x_09_01_00_41/source/networking/enet /ti/mcu_plus_sdk_am243x_09_01_00_41/source/networking/enet/utils/include /ti/mcu_plus_sdk_am243x_09_01_00_41/source/networking/enet/utils/V3 /ti/mcu_plus_sdk_am243x_09_01_00_41/source/networking/enet/core/include /ti/mcu_plus_sdk_am243x_09_01_00_41/source/networking/enet/core/include/phy /ti/mcu_plus_sdk_am243x_09_01_00_41/source/networking/enet soc /ti/mcu_plus_sdk_am243x_09_01_00_41/source/networking/enet/hw_include   

    已完成构建:"syscfg/ti_board_open_close.c"

     

     

    gmake:由于错误、未重制目标"all"。

     

     

     

    谢谢。此致、

    英明

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

    您好、 Hideaki、

    默认情况下、即使我们从 syscfg 中禁用 EEPROM 配置、该示例也期望从 EEPROM 配置中读取 MAC 地址。

    我不知道客户是否不使用 EEPROM 中的 MAC 地址、以及他们如何分配 MAC 地址。

    此致、

    Anil。

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

    尊敬的 Anil:

    感谢您的及时回复。

    它们在评估时使用固定的 MAC 地址。 您能给他们任何建议、使用不能访问 EEPROM 的 RAM 上任意地址上的固定 MAC 地址来修改上述示例代码吗?

    谢谢。此致、

    英明

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

    您好、 Hideaki、

    我将把您的查询转至 PRU 以太网专家来评论上述问题。

    此致、

    Anil。

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

    你好、英明、

    他们在评估时使用固定的 MAC 地址。 [报价]

    您走在正确的道路上。 您能否尝试以下步骤、并告诉我它是否适合您。

    1.转到"EEPROM"选项卡、并删除默认的 CONFIG_EEPROM0。

    2.对于两个 CONFIG_ENET_ICSS 实例、转至 Enet (ICSS)并在"MAC address assignment"(MAC 地址分配)下选择 Manual entry (手动输入)。 将您的 MAC 地址添加到"MAC address List"(MAC 地址列表)框中

    在步骤2中进行修改时、您将看到自动生成的 ti_enet_config.c 反映了以下更改:

    在这里,您可以看到对 EnetAppSoc_fillMacAddrList()的调用已被删除。 这个函数在内部调用 EnetBoard_getMacAddrList()函数-这是一个给你以上错误的函数。

    您可以在 SysConfig 模板文件中注释掉此函数的内容、从而避免编译错误。

    3.转到 \source\networking\.meta\enet_ICSS\templates\enet_board_cfg_am64x_am243x.c.xdt 文件、并注释掉函数 EnetBoard_getMacAddrList  ()的内容。

    注意:从 EEPROM 和/或电子保险丝读取时、只调用此函数来获取 MAC 地址列表、由于您已设置手动输入 MAC 地址、因此不再需要此函数。

    4.关闭 SysConfig 文件并再次将其打开、以验证注释掉的函数是否在 ti_board_config.c 文件中自动生成。 从 mcu_plus_sdk 文件夹中、运行  make -s -C examples\networking\enet_layer2_icssg\icssg_layer2_dualmac\am243x-evm\r5fss0-0_freertos\ti-arm-clang\ syscfg-gui  

    5.重新编译示例。

    此致、

    Nitika

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

    嗨、Nitika、

    感谢您解释程序。 客户能够构建示例项目"icssg_layer2_dualmac"。

    但是、只有以下步骤未成功。

    [报价 userid="546471" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1482511/am2432-execute-example-code-without-eeprom/5731289 #5731289"]从 mcu_plus_sdk 文件夹中、运行  make -s -C examples\networking\enet_layer2_icssg\icssg_layer2_dualmac\am243x-evm\r5fss0-0_freertos\ti-arm-clang\syscfg-gui][quot]   

     

    由于他们认为"make"存在错误的路径、因此他们会设置指定的路径"C:\ti\ccs1270\ccs\utils\bin\gmake.exe"。

    但是、出现了"File not found"。

    你有什么想法来解决这个问题吗? 或者这不重要吗?

    -----μ A

    PS C:\ti\mcu_plus_sdk_am243x_09_02_00_50> C:\ti\ccs1270\ccs\utils\bin\gmake.exe -s -C examples\networking\enet_layer2_icssg\icssg_layer2_dualmac\am243x-evm\r5fss0-0_freertos\ti-arm-clang\gui\   

    Process_BEGIN:CreateProcess (NULL、C:/ti/sysconfig_1.20.0/nw/nw C:/ti/sysconfig_1.20.0 --product C:/ti/mcu_plus_sdk_am243x_09_02_00_50/.metadata/product.json --device am243x_alv_Beta --context r5fss0-0 --part ALV --package alv --output generated/../example.syscfg……)失败。

    make (e=2):找不到指定的文件

    Makefile:279:目标"syscfg-gui"的配方失败

    gmake:***[syscfg-gui]错误2.

    -----μ A

     

    谢谢。此致、

    英明

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

    你好、英明 

    [报价 userid="1059" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1482511/am2432-execute-example-code-without-eeprom/5736262 #5736262"]客户已成功构建示例项目"icssg_layer2_dualmac"

    太棒了! 客户 也可以继续使用 CCS 查看 SysConfig 文件。 我上面建议使用 Makefiles (不需要这样做)。

    现在、您 在上面看到的错误通常是在 C:\ti\目录中不存在 sysconfig_1.20.0时发生的。 能否验证您在正确的目录中拥有正确的 SysConfig 版本?

    此致、

    Nitika