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.

[参考译文] MCU-PLUS-SDK-AM263X:多核调试目标配置/Gel 文件阐明

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1253313/mcu-plus-sdk-am263x-multicore-debug-target-configuration-gel-file-clarification

器件型号:MCU-PLUS-SDK-AM263X
主题中讨论的其他器件:AM2634

您好!

关于示例: ipc_notify_echo_am263x-cc_system_freertos_nortos

1) 尽管该示例专门针对控制卡(cc)、但系统项目目标配置常规设置不会选择_CC 器件。 为什么会这样呢?

2) 在目标配置高级设置中、只有 R5_0与初始化脚本(GEL)文件相关联。 为什么其他内核不需要该脚本?

 

3) 该示例的必要条件说明告诉我们修改 AM263x.gel 文件、以便能够将所有四个内核(2个双核)用作独立内核:

C:/ti/mcu_plus_sdk_am263x_08_05_00_24/docs/api_guide_am263x/CCS_LAUNCH_PAGE.html #先决条件

在我想为 R5_0/1使用双核但为 R5_2/3保持锁步的情况下、我是否需要使多个 GEL 文件:a) mode = 1和 b) mode = 0并分别为 R5_0和 R5_2分配 a)和 b)?

谢谢你。

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

    尊敬的 Kier:

    [报价用户 id="479799" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1253313/mcu-plus-sdk-am263x-multicore-debug-target-configuration-gel-file-clarification "] 1) 尽管该示例专门针对控制卡(cc)、但系统项目目标配置常规设置不会选择_CC 器件。 为什么要这样做?

    目前来看、SDK 示例使用的是来自 CSP 的器件 XMLs、而不是您指向的电路板 XMLs。 AM263x XML 和 AM263x_CC XML 在功能上没有区别(截至目前、但我无法保证此声明在未来将是正确的)。 这是因为、我们过去在示例中使用的是 AM263x XML、在启动过程中、这个是在特定于电路板的示例之前创建的、从那时起我们就没有更改。

    [报价用户 id="479799" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1253313/mcu-plus-sdk-am263x-multicore-debug-target-configuration-gel-file-clarification "] 2) 在目标配置高级设置中、只有 R5_0与初始化脚本(GEL)文件相关联。 为什么其他内核不需要脚本?

    因为没有必要。 GEL 脚本被加载到 R5中、其余的初始化将通过该内核完成、包括 PLL 配置和唤醒其余的 R5内核。 在 R5中对整个器件完成初始化后、不再需要在不同的内核中再次运行脚本。

    [报价用户 id="479799" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1253313/mcu-plus-sdk-am263x-multicore-debug-target-configuration-gel-file-clarification "] 3) 此示例的必要条件说明告诉我们修改 AM263x.gel 文件、以便能够将所有四个内核(2个双核)用作独立内核:

    不幸的是,我不能直接访问您发送的链接,如果你可以指向我在 API 指南中的部分,我可以看一下。 但是、我知道您要在双核模式下唤醒集群0、而在锁步模式下唤醒集群1。 您必须直接从 R50执行此操作、但必须在 OnTaargetConnect 期间执行。 如果是这种情况、则必须在 AM263x.gel 文件中进行以下修改:

    1. 在 Configure_Dual_Core_mode ()下面创建一个新脚本;在我的代码段中,这个函数是  Configure_Dual_Core_SS0_LockStep_SS1_MODE ():

    (为了便于复制粘贴、请使用以下代码片段)  

    hotmenu Configure_Dual_Core_SS0_Lockstep_SS1_mode()
    {
        if(Enable_OnTarget_Connect == 1){
            MSS_CTRL_unlock();
            MSS_TOPRCM_unlock();
            MSS_RCM_unlock();
            MSS_IOMUX_Unlock();
            TOP_CTRL_unlock();
            R5F_SS0_Reset_Dualcore();
            R5F_SS1_Reset_Lockstep();
            R5F_ROM_eclipse();
            Unhalt_All_R5F_cores();
            MSS_L2_Mem_Init();
            MailBox_MEM_Init();
            GEL_TextOut("*********** R5FSS0/1 Dual Core mode Configured, ********\n");
            GEL_TextOut("*********** R5FSS2/3 Lockstep mode Configured   ********\n");
        }else{
            GEL_TextOut("Errrrr... Please Load Gel files\n");
        } 
    }

    这实际上主要是  Configure_Dual_Core_mode ()脚本的副本,但第175行被修改,以在锁步中唤醒第二个集群,而不是双核

        2.您必须将此脚本设置为初始化脚本中的默认调用。 为此、请在 同一 AM263x.gel 文件中查看 OnTargetConnect ()函数/脚本、并执行以下操作:

    OnTargetConnect()
    {
    	unsigned int mode = 0;
        if(Enable_OnTarget_Connect == 1){
    
            GEL_TextOut("***OnTargetConnect() Launched***\n\n");
            GEL_TextOut("AM263x Initialization Scripts Launched. \nPlease Wait...\n\n\n");
    
            GEL_TextOut("AM263x_Cryst_Clock_Loss_Status() Launched\n");
            AM263x_Cryst_Clock_Loss_Status();
    
            GEL_TextOut("AM263x_SOP_Mode() Launched\n");
            AM263x_SOP_Mode();
    
            GEL_TextOut("AM263x_Read_Device_Type() Launched\n");
            AM263x_Read_Device_Type();
    
            GEL_TextOut("AM263x_Check_supported_mode() Launched\n");
            mode = AM263x_Check_supported_mode_jtagID();
            GEL_TextOut("\n mode = %d \n" ,,,,, mode);
            if(mode == 1){
    //            Configure_Dual_Core_mode();
                Configure_Dual_Core_SS0_Lockstep_SS1_mode();
    
            }else if (mode == 0){
    //            Configure_Lockstep_mode();
                Configure_Dual_Core_SS0_Lockstep_SS1_mode
            }else{
                GEL_TextOut("\n This mode is not supported \n");
            }
            //Configure PLLs
            Configure_Plls_R5F_400_SYS_200_Clocks();
    
            //Enable all peripheral clocks
            Configure_All_Peripheral_Clks();
        }else{
            GEL_TextOut("Warning !! None of the scripts executed in this mode\n");
        }
    }
    
    OnPreFileLoaded()
    {
       GEL_Reset();
       GEL_TextOut("CPU reset (soft reset) has been issued through GEL.\n");
    }

    •     从 if 和 else if 调用注释掉 Configure_Dual_Core_mode ()和 Configure_Lockstep_mode ()(上面屏幕截图中的第116行和第120行)
    • 为新脚本  Configure_Dual_Core_SS0_Lockstep_SS1_MODE ()添加调用 (上面屏幕截图中的第117行和第121行)

    进行这些修改后、您的器件应该能够在 Cluster0中的双核模式和 Core1中的锁步模式下工作。 即:

    R50、R51、R52 =可访问

    R53=无法访问

    假设您使用的 OPN 支持双核操作(AM2634)

    如果您在查找需要修改的文件时需要额外的帮助、或者在应用上述更改时遇到任何问题、请告诉我

    此致!

    丹尼尔

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

    Daniel、您好!

    非常感谢您的全面回答! 我将完成 GEL 文件修改。

    同时、 这里是我所指的用户指南中的必要条件部分:

    此信息是否会改变您的答案?

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

    尊敬的 Kier:  

    用户指南中的上述所有摘录内容都将默认将两个集群配置为双核模式。 如果这是你想要的,那么它是可行的,如果不是,那么你将不得不采取不同的方法。

    此致!

    丹尼尔