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.

[参考译文] TDA4VM:在 C7x 上使用 board_clock 函数

Guru**** 2463330 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1547929/tda4vm-use-of-board_clock-functions-on-c7x

器件型号:TDA4VM


工具/软件:

尊敬的 TI:  

我正在尝试初始化一些板模块: pinmux、ClockInitMcu、ClockInitMain () 和 C7x 上的 uartStdioInit。  
我需要这样做、因为内部需要这些步骤  memcpy_main_bareMetal.c TI  添加到工程。  因为在尝试直接使用时总是出现问题 BOARD_INIT () 函数(在循环中运行的代码)、我知道 已绕过此功能 、并基于实现了此代码  Board_init () 函数  在中 board_init.c 文件  

/*
 * main.c
 *
 *  Created on: 30 juil. 2025
 *      
 */
#include <ti/board/board.h>                      //contient le statut BOARD_SOK
#include <ti/drv/sciclient/sciclient.h>          //pour utilisation type Sciclient_ConfigPrms_t
#include <stdlib.h>

/* --- BIBLIO UTILISEES DANS FICHIER BOARD_INIT.c --- */
//#include "board_internal.h"
#include <ti/board/src/j721e_evm/include/board_internal.h>      //contient Board_moduleClockInitMcu et Board_moduleClockInitMain
//#include "board_ethernet_config.h"
#include <ti/board/src/j721e_evm/include/board_ethernet_config.h>
//#include "board_utils.h"
#include <ti/board/src/j721e_evm/include/board_utils.h>
//#include "board_serdes_cfg.h"
#include <ti/board/src/j721e_evm/include/board_serdes_cfg.h>


// Ajout cf Wissam pour l'UART
#include <ti/drv/uart/UART.h>
#include <ti/drv/uart/UART_stdio.h>
#include <ti/drv/uart/soc/UART_soc.h>

// Ajout cf Wissam pour CLOCK
#include <ti/board/src/j721e_evm/include/board_clock.h>
//#include <ti/board/src/j721e_evm/include/board_utils.h>

// Add pour clock
#include <ti/board/src/j721e_evm/include/board_cfg.h>
#include <ti/board/src/j721e_evm/include/board_pll.h>


int main(){

    /* ETAT DE LA CARTE */
    Board_STATUS ret = BOARD_SOK;
    Board_initCfg cfg;

    // Config du pinmux                         // ETAT : OK !
    if (cfg & BOARD_INIT_PINMUX_CONFIG){

        ret = Board_pinmuxConfig();
        printf("Initialisation du pinmux\n");
    }

    if (BOARD_SOK != ret){
        return ret;
    }


    // Config de la clock
    if (cfg & BOARD_INIT_MODULE_CLOCK)
    {
        ret = Board_moduleClockInitMcu();
        if (BOARD_SOK != ret)
            return ret;

        ret = Board_moduleClockInitMain();
        if (BOARD_SOK != ret)
            return ret;
    }


//    /* SCICLIENT */
//    Sciclient_ConfigPrms_t config;


}

但是、每当我尝试调试并到达调用的线路时  board_pinmuxConfig ()  代码始终在循环中开始运行。 显然、存在与相关的问题  Board_clock  功能...
在调试时、我按照以下步骤操作:
-启动脚本 launch . js
-运行 R5F 内核
-连接 C7x 内核  
-在 C7x 上加载我之前的代码、然后运行它  

为了节省一些浪费的时间,我把所有的项目包括信息:  

此致、  

M é lanie

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

    您好、


    在代码中、不会初始化 Board_initCfg (cfg) 值。   您能检查一下这个吗?

    在 C7x 上加载我之前的代码、然后在其上运行 

    在 c7x 中运行哪些代码。 是否在 R5F 上运行电路板初始化代码?

    此致、
    Sivadeep

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

    您好、  

    这是正常的、我是 不使用 Board_init () 传递函数一样重要。 因此我不需要初始化 cfg 的值。 我已经尝试使用它、但因为它不起作用、我只通过实现执行三个模块初始化的代码部分 (Board_init_module_clock、Board_init_PINMUX_CONFIG 和 Board_init_uart_stdio) 来绕过它。

    我正在尝试运行我在上一条消息中添加的内容... 有时我想知道您是否阅读了所有内容。
    第二个答案是肯定的。

    此致、  

    M é lanie

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

    您好、

    我将在内部检查并更新您。

    此致、
    Sivadeep

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

    您好、

    感谢您发送编修。 我已经浏览过您分享的信息、但我仍有一些困惑之处。 您能帮助澄清以下内容吗? 对任何误解表示歉意。

    • 您是否使用 C7x 内核构建上述代码?

      从您分享的屏幕截图中、您似乎正在使用 C7x 编译器。 但是、基于 m akefile 指定 memcpy_main_baremetal.c该文件似乎仅受 A53 和 A72 内核支持

        

    • 如果可能、您能否分享cl7x用于编译代码和生成可执行文件的确切命令?
      这将帮助我尝试从我的身边,并有助于进一步调查问题.

    • 在您共享的代码中、cfg似乎没有设置配置 () 以进入条件检查
      您能否确认代码是否在 ret = Board_pinmuxConfig();"您的最终达到“条件?

    此致、

    Sivadeep

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

    您好、  

    • 实际上、我要在 C7x 上编译并运行 memcpy_main_bareMetal.c 文件。 好的、这意味着 C7x 内核不支持该代码、 您在哪里找到了与此文件相关的 makefile 文件?  而是呢 Umda_memcpy_test.c? 它是否受核心 C7x 的支持?  

    • 我没有使用任何命令来构建代码、一切都由 CCS 完成  

    • 是的、代码是 代码达到条件“  ret = Board_pinmuxConfig(); "
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我没有与您相同的 makefile ... 您能给我们讲讲道路吗? 这是我在中找到的  Makefile 裸机 :  

    此致、  

    M é lanie  

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

    您好、

    我没有与您相同的 makefile ... 您能给我们讲讲道路吗? 这是我在中找到的  Makefile 裸机 :
     

    如果要使用“ Makefile BareMetal“、  您需要构建应用程序  UDMA_BareMetal_memcpy_testapp。

    TI SDK 提供的 C7x 内核不支持上述应用?

     有关上述应用支持的内核、请参阅 pdk/packages/ti/drv/UDMA/UDMA_component.mk 文件。
     

    请检查您在 C7x_1 内核上加载的是哪个应用? 它是为 C7x_1 构建的吗?  
    此外、根据上述要求、请共享用于在 C71x 内核上构建应用程序和二进制加载的命令。

    此致、
    Sudheer

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

    尊敬的 Doredla:  

    我检查了 UDMA 文件夹中的 Makefile、并注意到我要在 C7x 内核上运行的代码不受我的用例支持(我正在使用裸机)。

    另一个问题:在 J784S4 板上使用裸机时、C7x 内核是否支持 UDMA 代码?

    此致、  

    M é lanie