主题中讨论的其他器件:OMAPL138、 TDA4VM、 DRA829
您好!
我已经为 FreeRTOS - GPIO LedBlink 构建了示例应用程序。 我已放入一个循环、并且能够看到串行端口中的日志通信。 但当我执行 ipconfig 命令时、它并未显示 IPv4。 但是、如果我将/lib/firmware 中的应用与 MCU 3_0取消链接并重新启动、则 ifconfig 会显示 IPv4 IP 地址。
如何解决此问题有任何想法?
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.
您好!
我已经为 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
您好!
这似乎与 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:
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");
}
您好!
您能否确认您是否进行了上述循环之外的任何更改。
您能否共享您的"gBoardPinmuxCfg"数据、默认值如下。
static Board_PinmuxConfig_t gBoardPinmuxCfg = {BOARD_PINMUX_CUSTOM,
BOARD_PINMUX_INFO_VOUT,
BOARD_PINMUX_CSI_COMMON,
BOARD_PINMUX_ENET_QSGMII};尊敬的 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:
但在受支持平台列表中、还支持 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 应用程序。[/quote]SK 板、我们没有任何 RTOS SDK
这是否意味着我们无法获取针对 SK TDA4VM 的 FreeRTOS 应用程序开发支持、但需要一个 EVM 板才能继续开发?
[/报价]可以。 您需要使用 EVM (J721EXSOMXEVM & J721EXCPXEVM )进行 RTOS 应用开发。
此致、
苏德黑尔