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.

[参考译文] J721EXCPXEVM:在将 GPIO LedBlink 应用程序加载到 MCU 3_0 ifconfig 时不显示 IPv4

Guru**** 2539500 points
Other Parts Discussed in Thread: TDA4VM, J721EXCPXEVM

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1301436/j721excpxevm-upon-loading-gpio-ledblink-application-into-mcu-3_0-ifconfig-does-not-show-ipv4

器件型号:J721EXCPXEVM
主题中讨论的其他器件:OMAPL138TDA4VMDRA829

您好!

我已经为 FreeRTOS - GPIO LedBlink 构建了示例应用程序。 我已放入一个循环、并且能够看到串行端口中的日志通信。 但当我执行 ipconfig 命令时、它并未显示 IPv4。 但是、如果我将/lib/firmware 中的应用与 MCU 3_0取消链接并重新启动、则 ifconfig 会显示 IPv4 IP 地址。

如何解决此问题有任何想法?

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

    这是我们用于以下目的的命令:

    构建:
    make -s GPIO_L4577_FreeRTOS Blink_Test Board=j721e_evm core=mcu3_0。

    链接:
    ln -s /lib/firmware/GPIO_Ledcla_freertos_mcu3_0_release.xer5f Blink_Test j7-main-r5F1_0-FW

    ifconfig 输出:
    root@tda4vm-sk:/opt/edgeai-gst-apps ifconfig
    ETH0:flags=4099 MTU 1500
    乙醚  txqueuelen 1000 (以太网)
    RX 数据包0字节0 (0.0B)
    RX 错误0丢弃0溢出0帧0
    TX 数据包0字节0 (0.0B)
    TX 错误0丢弃0溢出0载波0冲突0

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

    但是、如果我们在 J7-main-r5F1_0-FW 上取消链接、然后重启电路板。 LAN LED 闪烁,ifconfig 显示 IP 地址:

    iroot@tda4vm-sk:/opt/edgeai-gst-apps # ifconfig
    ETH0:flags=4163 MTU 1500
    INET 192.168.29.148网络掩码255.255.255.0广播192.168.29.255
    inet6 f a:f505 prefixlen 64 scopeid 0x20
    插座6 2 5 prefixlen 64 scopeid 0x0
    乙醚 txqueuelen 1000 (以太网)
    RX 数据包95字节8360 (8.1 KiB)
    RX 错误0丢弃0溢出0帧0
    TX 数据包82字节9521 (9.2 KiB)
    TX 错误0丢弃0溢出0载波0冲突0

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

    尊敬的 Soumya:

    您能否在这两种情况下共享启动日志?

    此致、

    坦迈

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

    您好!

    这似乎与 mcu3_0和 Linux 上的应用程序之间的一些资源冲突有关。 您将遇到以下内核紧急情况:

    [ 6.957046] Unable to handle kernel paging request at virtual address ffff7ffffcffbf7f
    [ 6.969170] Mem abort info:
    [ 6.972367] ESR = 0x0000000096000004
    [ 6.977140] EC = 0x25: DABT (current EL), IL = 32 bits
    [ 6.982993] SET = 0, FnV = 0
    [ 6.986081] EA = 0, S1PTW = 0
    [ 6.986086] FSC = 0x04: level 0 translation fault
    [ 6.986088] Data abort info:
    [ 6.996950] ISV = 0, ISS = 0x00000004
    [ 7.000781] CM = 0, WnR = 0
    [ 7.003739] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000083089000
    [ OK ] Reached target Network.[ 7.010434] [ffff7ffffcffbf7f] pgd=0000000000000000, p4d=0000000000000000
    
    [ 7.029940] Internal error: Oops: 0000000096000004 [#1] PREEMPT SMP
    [ 7.036204] Modules linked in: crct10dif_ce ti_tfp410 display_connector cfg80211 bluetooth ecdh_generic ecc rfkill ti_k3_r5_remoteproc(+) cdns_mhdp8546 tidss drm_display_helper vxe_enc vxd_dec drm_dma_helper j721e_csi2rx videobuf2_dma_sg videobuf2_dma_contig v4l2_mem2mem drm_kms_helper videobuf2_memops videobuf2_v4l2 cfbfillrect videobuf2_common v4l2_async ti_k3_dsp_remoteproc syscopyarea videodev pruss pvrsrvkm(O) cfbimgblt sysfillrect virtio_rpmsg_bus sysimgblt fb_sys_fops rpmsg_ns sa2ul cfbcopyarea ti_k3_common cdns_dphy_rx pci_j721e_host(+) mc pci_j721e pcie_cadence_host pcie_cadence cdns3_ti rti_wdt optee_rng rng_core cryptodev(O) fuse drm drm_panel_orientation_quirks ipv6
    [ 7.096208] CPU: 1 PID: 191 Comm: systemd-udevd Tainted: G O 6.1.46-gf8110d9ce8 #1
    [ 7.096217] Hardware name: Texas Instruments J721E SK (DT)
    [ 7.096219] pstate: 00000005 (nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
    [ 7.096224] pc : rproc_handle_resources.constprop.0+0x94/0x168
    [ 7.123383] lr : rproc_boot+0x448/0x570
    [ 7.127212] sp : ffff800009d33740
    [ 7.130514] x29: ffff800009d33740 x28: ffff800009466578 x27: 0000000000000001
    [ 7.137636] x26: ffffffffdcffbf7f x25: ffff800020000000 x24: ffff8000090024e0
    [ 7.144755] x23: ffff00082dd18038 x22: 0000000000000000 x21: ffff8000093ce278
    [ 7.151874] x20: ffff00082dd18000 x19: 0000000000000000 x18: 0000000000000000
    [ OK ] Reached target Host and Network Nam[ 7.158993] x17: 0000000000000000 x16: 0000000000000000 x15: fffffb7fdfffffff
    [ 7.171653] x14: fffffde7fbefffff x13: fffffb7fdfffffff x12: fffffde7fbefffff
    [ 7.178773] x11: ffffffffeffffffd x10: bbffffffdfff6fff x9 : 9ffbfff7fffefffe
    [ 7.185893] x8 : ffdefffcfdfffa8f x7 : fffdfffffffaddff x6 : ffffefffffffff77
    e[ L o o7k.u1p9s3[103m]. x
    5 : ffff000828724e00 x4 : ffff800000000002300417d
    [ 7.200219] x2 : 00000000dcffbf7f x1 : ffff7ffffcffbf83 x0 : ffff800020000000
    [ 7.207341] Call trace:
    [ 7.209775] rproc_handle_resources.constprop.0+0x94/0x168
    [ 7.215254] rproc_boot+0x448/0x570
    [ 7.218739] rproc_add+0xcc/0x16c
    [ 7.222046] k3_r5_probe+0x70c/0xdf0 [ti_k3_r5_remoteproc]
    [ 7.227530] platform_probe+0x68/0xe0
    [ 7.231183] really_probe+0xbc/0x2dc
    [ 7.234748] __driver_probe_device+0x78/0x114
    [ 7.239092] driver_probe_device+0xd8/0x15c
    [ 7.243263] __driver_attach+0x94/0x19c
    [ 7.247088] bus_for_each_dev+0x70/0xd0
    [ 7.250915] driver_attach+0x24/0x30
    [ 7.254480] bus_add_driver+0x154/0x20c
    [ 7.258307] driver_register+0x78/0x130
    [ 7.262132] __platform_driver_register+0x28/0x34
    [ 7.266824] k3_r5_rproc_driver_init+0x20/0x1000 [ti_k3_r5_remoteproc]
    [ 7.273344] do_one_initcall+0x50/0x1d0
    [ 7.277172] do_init_module+0x48/0x1d0
    [ 7.280912] load_module+0x18e8/0x1c70
    [ 7.284651] __do_sys_finit_module+0xa8/0x100
    [ 7.288998] __arm64_sys_finit_module+0x20/0x30
    [ 7.293518] invoke_syscall+0x48/0x114
    [ 7.297256] el0_svc_common.constprop.0+0xd4/0xfc
    [ 7.301949] do_el0_svc+0x30/0xd0
    [ 7.305255] el0_svc+0x2c/0x84
    [ 7.308301] el0t_64_sync_handler+0xbc/0x140
    [ 7.312559] el0t_64_sync+0x18c/0x190
    [ 7.316215] Code: 128002b3 9112a021 97ffe1c7 1400002e (b87a6b20)
    [ 7.322291] ---[ end trace 0000000000000000 ]---

    我会将该线程重新分配给 Remoteproc 专家。

    同时、您是否可以共享命令"ifconfig -a "的输出。 如果输出包含接口"eth0"、能否尝试运行"ifconfig eth0 up"并查看是否能够建立链路。

    此致、
    坦迈

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

    尊敬的 Soumya:

    ---------------- 在 MCU 3_0上加载 FreeRTOS 应用程序后,LAN 不工作时-------------------------------------------------------

    [/报价]

    这是您构建的定制 MCU3_0固件吗? 这将需要一些具有.r.t 内存映射和资源映射的 Remoteproc 更改。

    -基尔西

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

    Keerthy、您好!

    我以 SDK 中默认存在的 GPIO LedBlink (packages/ti/drv/Gpio/test/leed_blink/main_leed_blink.c)应用为例、我已经添加了一个循环、以每5秒添加一次日志、持续10次。

    以下是完成更改的主要函数:

    #if 定义(RTOS_ENV)
    void GPIO_test (void* arg0、void* arg1)
    {
    #else
    int main()
    {
    Board_initGPIO();
    #endif

    /* GPIO 初始化*/
    GPIO_init ();

    /*设置回调函数*/
    GPIO_setCallback (USER_LED0、AppGpioCallbackFxn);

    /*在特定 GPIO 引脚上启用 GPIO 中断*/
    GPIO_enableInt (USER_LED0);

    /*向 GPIO 引脚写入高电平以控制 LED1 */
    GPIO_WRITE (((USER_LED1)、GPIO_PIN_VAL_HIGH);
    AppDelay (DELAY_VALUE);

    GPIO_log ("\n GPIO LED 闪烁应用程序\n");

    if (mqtt_client == NULL){
    mqtt_client = mqtt_client_new ();
    示例_do_connect (mqtt_client);

    //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 添加的新代码-开始>>>至>>>至>>>至>>>
    INT I = 100;
    while (i-!=0)
    {
    GPIO_log ("\n GPIO 循环正在运行................ #\n");
    AppDelay(3000);

    //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 添加的新代码- end >>>至>>>至>>>至>>>

    #if defined (SOC_K2L)|| defined (SOC_C6678)|| defined (SOC_C6657)
    /*没有 GPIO 引脚直接连接到 K2L/C6678/C6657/AM65xx EVM 上的用户 LED、只触发一次中断*/
    GPIO_TOGGLE (USER_LED0);
    while (!gpio_intr_triggered);

    UART_printStatus ("\n 所有测试均已通过\n");
    #ifdef use_bios
    task_exit();
    #endif

    #Elif Defined (SOC_TPR12)|| defined (SOC_AWR294X)
    {
    uint32_t loopCnt = 4;
    while (loopCnt-->0u)
    {
    uint32_t pinVal;
    while (!gpio_intr_triggered);
    pinVal = GPIO_read (USER_LED0);
    GPIO_log (" GPIO USER_LED0输入引脚值:%d\n"、pinVal);
    GPIO_intr_triggered = 0;
    /*切换 LED1 */
    GPIO_toggle (USER_LED1);
    AppDelay (DELAY_VALUE);

    GPIO_log ("\n 所有测试均已通过\n");

    #else

    UART_printStatus ("\n 等待中断发生\n");

    while (1)
    {
    #if defined (SOC_AM574x)|| defined (SOC_AM572x)|| defined (SOC_AM571x)|| defined (SOC_AM335x)|| defined (SOC_AM437x)|| defined (SOC_AM437x)

    #if defined (idkAM572x)|| defined (idkAM574x)
    /*根据电路板更新 GPIO 信息*/
    GPIOAppUpdateConfig (&gpioBaseAddr、&gpioPin);
    #else
    gpioBaseAddr = GPIO_BASE_ADDR;
    gpioPin = GPIO_LED_PIN;
    #endif
    /*触发中断*/
    GPIOTriggerPinInt (gpioBaseAddr、0、gpioPin);
    #endif
    #if defined (SOC_K2H)|| defined (SOC_K2K)|| defined (SOC_K2E)|| defined (SOC_K2G)|| defined (SOC_OMAPL137)|| defined (SOC_OMAPL138)|| defined (SOC_AM65XX)|| defined (SOC_J721E)|| defined (SOC_J7200)|| defined (SOC_J7200)
    GPIO_TOGGLE (USER_LED0);
    #Elif 已定义(SOC_AM64X)
    /*在 AM64x GP EVM 中、USER_LED0 (TEST_LED1)连接到 IO 扩展器。
    *因此、切换 USER_LED1 (TEST_LED2)-连接到 MCU_GPIO0_5 (EVM-LD26)*/
    GPIO_toggle (USER_LED1);
    #endif
    AppDelay (DELAY_VALUE);
    如果(gpio_intr_triggered!= last_gpio_intr_count)
    {
    uart_printf ("\n 闪烁迭代-%d \n"、gpio_intr_triggered);
    last_gpio_intr_count = gpio_intr_triggered;

    /*需要此字符串以确保自动测试和结果
    解析器能够确定此应用程序的状态*/
    UART_printStatus ("\n 所有测试均已通过\n");


    #endif

    GPIO_log ("\n GPIO 指示的应用程序正在停止\n");

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

    即使在执行 ifconfig eth0 down 和 ifconfig eth0 up 时、也无法帮助启动 LAN 端口。 将 LAN 电缆物理拔下再重新插入 LAN 端口不能解决问题。 关于如何解决问题的任何想法。

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

    您好!

    您能否确认您是否进行了上述循环之外的任何更改。
    您能否共享您的"gBoardPinmuxCfg"数据、默认值如下。

    static Board_PinmuxConfig_t gBoardPinmuxCfg = {BOARD_PINMUX_CUSTOM,
                                                   BOARD_PINMUX_INFO_VOUT,
                                                   BOARD_PINMUX_CSI_COMMON,
                                                   BOARD_PINMUX_ENET_QSGMII};

    此外、在您的情况下、eth0是 MCU CPSW2G 吗?

    您能否检查您是否正在将任何 CPSW2G RGMII 引脚配置为 LED 闪烁应用中的 GPIO 引脚。

    此致、
    苏德黑尔

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

    尊敬的 Sudheer:

    除了上面提到的环路之外、我们没有进行任何其他更改。 在构建期间、我们只需执行以下命令:
    make -s GPIO_L4577_FreeRTOS Blink_Test Board=j721e_evm core=mcu3_0。

    完成后、我们将其放入/lib/firmware 中并生成一个软链接。 我们正在 SK TDA4VM 电源板上对其进行测试。

    您能否检查您是否正在将任何 CPSW2G RGMII 引脚配置为 LED 闪烁应用中的 GPIO 引脚。

    我们没有进行任何与此相关的更改。 我们刚刚在 SD 卡上刷写了 edge-ai 映像(wic.xz)、然后复制上述应用程序。

    此外、在您的情况下、eth0是 MCU CPSW2G 吗?

    如果这是默认配置、则必须是该配置。 不确定如何检查 SK TDA4VM。

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

    您好!

    我们没有任何 RTOS SDK。 仅 Linux SDK 可用于 SK 板。

    要运行 RTOS 应用程序,您需要在 DRA829/TDA4VM RTOS SDK 中管理 RTOS 应用程序的存储器映射和引脚映射,如 J721EXSOMXEVM 和 J721EXCPXEVM  所示。

    验证/比较 SK SDK 的存储器映射、相应地调整 RTOS 应用程序链接器文件、并检查一次。

    此致、
    苏德黑尔

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

    尊敬的 Sudheer:

    是的、我们正在使用以下 RTOS SDK:

    DRA829-TDA4VM-J721E  适用于 PROCESSOR-SDK-RTOS 和 TDA4VM Jacinto 处理器的 RTOS SDK


    但在受支持平台列表中、还支持 TDA4VM。 因此、我们继续在 MCU 内核上开发用于 FreeRTOS 应用程序的 SDK。  

    验证/比较 SK SDK 的存储器映射

    您能帮助我们获取信息吗? 此外、 我们已经能够找到 gBoardPinmuxCfg、但它位于 j721e 文件夹下:

    Board/PinMux/j721e_evm/board_pinmux.c src:45:static Board_Pinmux _strang_t gBoardPinmuxCfg ={Board_PINMUX_CUSTOM、


    SK 板、我们没有任何 RTOS SDK

    这是否意味着我们无法获取针对 SK TDA4VM 的 FreeRTOS 应用程序开发支持、但需要一个 EVM 板才能继续开发?

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

    您好!

    ,但在支持的平台列表中,也支持 TDA4VM。 因此、我们继续在 MCU 内核上开发用于 FreeRTOS 应用程序的 SDK。  

    [/报价]

    尽管 SOC 很常见、但两个 SDK 都不同。
    请参阅 SK-SDK 的 SDK 文档。中提到了这两个 SDK 是不同的且不兼容。  
    我们不支持 SK-BAORD 上的 RTOS 应用程序。

    SK 板、我们没有任何 RTOS SDK

    这是否意味着我们无法获取针对 SK TDA4VM 的 FreeRTOS 应用程序开发支持、但需要一个 EVM 板才能继续开发?

    [/报价]

    可以。 您需要使用 EVM (J721EXSOMXEVM & J721EXCPXEVM )进行 RTOS 应用开发。

    此致、
    苏德黑尔

    [/quote]