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.

[参考译文] SK-AM62A-LP:在 MCU R5F 内核上集成 Autosar

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1494228/sk-am62a-lp-autosar-integration-on-mcu-r5f-core

器件型号:SK-AM62A-LP
主题: SysConfig 中讨论的其他器件

工具/软件:

您好、

我们目前正在 将 Autosar 堆栈集成到 SK-AM62A-LP 评估套件的 MCU R5F 内核上。

现在、我们有一个基本的 Autosar 可编译程序、可以在 R5F 内核上刷写和调试该程序、但会出现一些问题。

1.我们目前在 System_init ()函数中遇到问题,我从 TI MCAL Dio 示例文件 ti_drivers_config.c 集成到了我的工程中 程序会滞留在初始化的地址转换部分、最终出现数据中止异常

2. 第二次与我们的 autosar 堆栈供应商会面时 、我被告知 TI 提供了专门用于与 autosar 堆栈集成的 tisdk_wrapper 文件、如下所示。 是否有可能获得这一点、因为我认为、我们所面临的问题可能是因为这一点  

如果您需要其他信息、请告知我

谢谢、此致、

Nikhil Bhat

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

    您正在使用哪个供应商 Autosar?

     Pekka

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

    您是否已将系统固件加载到设备管理器(DMSC)中?

    例如、此步骤 https://software-dl.ti.com/mcu-plus-sdk/esd/AM62AX/10_01_00_33/exports/docs/api_guide_am62ax/EVM_SETUP_PAGE.html#EVM_FLASH_SOC_INIT 。 或使用 CCS 菜单将其加载。

     Pekka

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

    您好 Pekka、

    我们使用的是 Vector Microsar 堆栈。 是的、我已经将系统固件加载到链接中提到的设备管理器(DMSC)中。

    当前状态是我能够解决 sciclient_init ()问题。 导致该问题的原因是 microsar 栈和启动代码对 mpu_init 函数进行了双重初始化。

    不过、我亦遇到其他问题-

    1.我尝试切换 GPIO、我观察到一种奇怪的行为、在使用 CCS 进行调试期间、GPIO 有时会切换、但大部分时间都没有切换。 我尝试更改编译器的优化设置、使用 volatile 关键字

    2. Vector 告诉我、TI 提供了一组用于 autosar 集成的 tisdk_wrapper 文件(如上面的快照中所述)、目前我使用的是来自 MCAL 的预先生成的 SysConfig 文件、例如 ti_board_config、ti_DPL_config。 作为权变措施的 TI_drivers_config 等

    此致、

    Nikhil

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

    您好、Nikhil、

    对延迟深表歉意。 很高兴您能够解决 sciclient_init 问题。

    1.您能否分享您的应用代码和使用的 DIO 配置?  

    您是否尝试过运行随 MCAL SDK 打包的默认 DIO LED 示例?
    https://software-dl.ti.com/mcu-plus-sdk/esd/PLATFORM_SW_MCAL/AM62xx/10.01.00.02/ug_dio_top.html#ug_dio_eg_top 

    2.示例配置文件位于 C:\ti\MCAL soc Generated_Dpl  
    您将需要使用 SysConfig 工具更改这些配置并生成文件:
    https://software-dl.ti.com/mcu-plus-sdk/esd/AM62AX/10_01_00_33/exports/docs/api_guide_am62ax/SYSCONFIG_INTRO_PAGE.html 
    https://software-dl.ti.com/mcu-plus-sdk/esd/AM62AX/10_01_00_33/exports/docs/api_guide_am62ax/SDK_DOWNLOAD_PAGE.html#autotoc_md13 
    https://software-dl.ti.com/mcu-plus-sdk/esd/PLATFORM_SW_MCAL/AM62xx/10.01.00.02/mcusw_getting_started_top.html#autotoc_md3 

    此致、
    Krithika.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当前状态是我能够解决 sciclient_init ()问题。 导致该问题的原因是 microsar 栈和 ti 启动代码对 mpu_init 函数进行了双重初始化。

    很好。请使用 GPIO 操作函数 https://software-dl.ti.com/mcu-plus-sdk/esd/AM62AX/latest/exports/docs/api_guide_am62ax/DRIVERS_GPIO_PAGE.html 、而不是直接存储器映射。 我不熟悉矢量 Autosar、但我假设它具有 GPIO 接口、而不是原始寄存器操作。

    如果仍然打开、我建议关闭该问题、并就您在 GPIO 切换时遇到的新问题提交一个特定问题、其中包括您正在使用的特定步骤和代码。

     Pekka

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引述 userid="648352" url="~/support/processors-group/processors/f/processors-forum/1494228/sk-am62a-lp-autosar-integration-on-mcu-r5f-core/5750291 #5750291"]

    2. Vector 告诉我、TI 提供了一组用于 autosar 集成的 tisdk_wrapper 文件(如上面的快照中所述)、目前我使用的是来自 MCAL 的预先生成的 SysConfig 文件、例如 ti_board_config、ti_DPL_config。 作为权变措施的 TI_drivers_config 等

    [/报价]

    最新版本(SDK 11.0将在4月15日前提供)的更新文档提供了更多详细信息。

    software-dl.ti.com/.../ug_no_mcu_port_top.html

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

    尊敬的 Krithika:

    感谢您的答复

    我尝试了以下方法-

    最初从 ti_drivers_config.c 中调用 System_init ()

    void System_init(void)
    {
    /* DPL init sets up address transalation unit, on some CPUs this is needed
    * to access SCICLIENT services, hence this needs to happen first
    */
    Dpl_init();
    /* We should do sciclient init before we enable power and clock to the peripherals */
    /* SCICLIENT init */
    {
    int32_t retVal = SystemP_SUCCESS;
    
    retVal = Sciclient_init(CSL_CORE_ID_MCU_R5FSS0_0);
    DebugP_assertNoLog(SystemP_SUCCESS == retVal);
    
    }
    PowerClock_init();
    /* Now we can do pinmux */
    Pinmux_init();
    /* finally we initialize all peripheral drivers */
    Drivers_uartInit();
    
    GPIO_init();
    
    }
    
    void GPIO_init()
    {
    uint32_t baseAddr;
    
    /* Instance 0 */
    /* Get address after translation translate */
    baseAddr = (uint32_t) AddrTranslateP_getLocalAddr(GPIO_LED_BASE_ADDR);
    GPIO_pinWriteLow(baseAddr, GPIO_LED_PIN);
    
    GPIO_setDirMode(baseAddr, GPIO_LED_PIN, GPIO_LED_DIR);
    }

    在此之后、为了打开 LED、我执行以下操作-

    gpioBaseAddr = (uint32) AddrTranslateP_getLocalAddr(GPIO_LED_BASE_ADDR);
    
    pinNum = GPIO_LED_PIN;
    
    GPIO_setDirMode(gpioBaseAddr, pinNum, 0);
    GPIO_pinWriteHigh(gpioBaseAddr, pinNum);

    我从 MCU SDK gpio_led_blink 示例中获取了此实现的参考。 此实现有时有效、但并非总是有效

    此致、
    Nikhil  

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

    您好、Nikhil、

    能否说明 GPIO 切换不起作用的次数以及有多少次试验(例如50次切换中出现3次失败)?

    此外、如何确认 GPIO 切换是否发生? 对于切换完成 v/s 未完成的相同计数或某种计数、您是否有调试语句?

    此致、

    Tushar

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

    我想我已经注意到了一种模式。 每次我先刷写 gpio_led_blink 示例、然后刷写 autosar 工程时、GPIO 切换都会正常工作。 当我重新启动电路板并首先刷写 autosar 工程时、它不起作用。

    此外,在我的 autosar 项目中,我在 dp_init ()的 ti_DPL_config.c 文件中不得不注释掉 HwiP_enable (),因为这导致 sciclient_init ()调用在一个异常中登陆。

    我通过板载 LED 切换开关来确认 GPIO 切换工作正常。 我使用的地址和引脚编号与 led_blink_examples 相同

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

    你好、Nikhil、

    另外、在我的 autosar 项目中、在 dpl_init ()的 ti_DPL_config.c 文件中、我不得不注释掉 HwiP_enable ()、因为这使 sciclient_init ()调用在 exceptio

    您能否确认您的 autosar 应用程序是否集成了 DM?

    此致、

    Tushar

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

    您能告诉我如何验证吗?  

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

    你好、Nikhil、

    在 MCU+SDK DM 示例中,我们调用 sciServer_init () API,它创建并运行 DM 任务。 任何集成了 DM 的应用程序都应在线程上启动 SCI 服务器。

    请参阅下图。

    另一种确认方法是 DM R5需要由 SBL 启动、不能如上图所述通过 CCS 加载。

    有关更多详细信息、请参阅  development_and_debug_DMR5

    此致、

    Tushar

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

    尊敬的 Tushar:

    澄清一下、我在 MCU R5F 上运行应用、而不是在 DM R5F 上运行。 我是否需要将应用程序加载到 DM 无网络上?  即使在 MCU R5F 的 ti led_blink _examples 中、我也看不到任何 DM 集成、它会在通过 CCS 加载时运行。 在我用于 MCU R5F 的 autosar 项目中、实现了相同的初始化序列。 是否可以在我的 autosar 项目可执行文件中缺少的示例项目中将某些引导标头等添加到.out 可执行文件?  

    此致、

    Nikhil  

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

    你好、Nikhil、

    我知道您没有在 DM R5内核上加载任何 Autosar 二进制文件。  

    您是否不使用 MCAL 中的 DIO 示例? 上面分享的代码来自 MCU+SDK 中提供的 gpio_led_examples。

    当 GPIO 示例失败时、您看到了什么错误? 当您暂停内核时、它正在执行什么指令?

    此致、

    Tushar

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

    尊敬的 Tushar:

    感谢您的答复。 是的、我还集成了 MCAL 中的 Dio 示例、但我观察到了前面提到的相同行为。 仅当我使用标准 ti GPIO 示例预刷写电路板、然后刷写应用程序时、该程序才会工作。 重新启动时、仅刷写我的应用程序不起作用。

     

    在进一步调试时、我注意到、

    1.停止执行时、程序进入 Os_Hal_Core 冻结状态、但在首次用 TI 示例刷写电路板时不会发生这种情况。 可能在启动阶段缺少 ti 示例所承担的 autosar 应用程序中缺少一些内容、因为初始化序列和其余部分(如 GPIO init)在两个应用中是相似的。 调用栈如下所示

    2.刷写 autosar 应用程序及以后的 ti GPIO 闪烁示例时、闪烁示例不起作用。 在程序停止时、调用栈如下所示-

    此外,在我的 autosar 应用程序中,我已经注释掉了 DPL_init ()中的 HwiP_enable ()函数,因为它进入了 Os_Hal_Core 冻结。 HwiP 模块是否存在导致异常的问题? 有没有办法进行调试?  

    此致、

    Nikhil  

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

    尊敬的 Tushar:

    感谢您的答复。 是的、我还集成了 MCAL 中的 Dio 示例、但我观察到了前面提到的相同行为。 仅当我使用标准 ti GPIO 示例预刷写电路板、然后刷写应用程序时、该程序才会工作。 重新启动时、仅刷写我的应用程序不起作用。

     

    在进一步调试时、我注意到、

    1.停止执行时、程序进入 Os_Hal_Core 冻结状态、但在首次用 TI 示例刷写电路板时不会发生这种情况。 可能在启动阶段缺少 ti 示例所承担的 autosar 应用程序中缺少一些内容、因为初始化序列和其余部分(如 GPIO init)在两个应用中是相似的。 调用栈如下所示

    2.刷写 autosar 应用程序及以后的 ti GPIO 闪烁示例时、闪烁示例不起作用。 在程序停止时、调用栈如下所示-

    此外,在我的 autosar 应用程序中,我已经注释掉了 DPL_init ()中的 HwiP_enable ()函数,因为它进入了 Os_Hal_Core 冻结。 HwiP 模块是否存在导致异常的问题? 有没有办法进行调试?  

    此致、

    Nikhil  

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

    你好、Nikhil、

    2. 当我刷写 autosar 应用程序并在稍后刷写 ti GPIO 闪烁示例时、闪烁示例不起作用。 在程序停止时、调用栈如下所示-

    在加载 GPIO 示例之前、是否对 MCU R5F 进行 CPU 复位?

    我也可以看到,当你停止 CPU 时,它 在 Hwip_clearInt ()。

    您能告诉它正在尝试清除哪个中断号吗? 在 CCS 中检查变量视图以了解中断号。

    您是否也可以登录并检查它是否从 HwiP_clearInt () API 中出来?

    此致、

    Tushar

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

    尊敬的 Tushar:

    感谢您的答复。

    是的、我正在加载 GPIO 示例之前进行 CPU 复位

    在调试时、我可以看到中断号是28  

    是的、我可以进来、它从 Hwip_clearInt () API 退出到 Hwip_IRQ_HANDLER_c (void)中。

    此致、

    Nikhil  

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

    你好、Nikhil、

    感谢您分享以上详细信息。

    是的、我可以进来、它从 HwiP_clearInt () API 退出到 HwiP_IRQ_HANDLER_c (void)

    一旦能够退出 Hwip_irq_handler.c ()调用、您是否能够运行该示例?

    此外、您能否告知您通过 SBL 将哪些映像刷写到 MCU R5F 和 WKUP/DM R5内核?

    此致、

    Tushar

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

    尊敬的 Tushar:

    不幸的是、不是。 退出 HwiP_IRQ_HANDLER_c 调用后、它再次卡在作为 System_init ()一部分的 sciclient_init ()中。 目前我正在使用板载 JTAG 在 MCU R5F 内核上刷写.out 文件。 我已经执行了以下链接- AM62Ax MCU+ SDK:EVM Setup 中所述的初始化步骤 

    另外,我观察到在单步执行时,当遇到 HwiP_enable ()函数时, led_blink 示例也会卡住。 因此、两个应用都会冲突该特定的函数调用。  

    此致、

    Nikhil  

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

    你好、Nikhil、

    、它再次卡在 sciclient_init ()中、它是 System_init ()
    的一部分。

    您能否在此处暂停处理器并在 CCS 的"Variable View"中检查变量值?

    此外 、还应在 CCS 的表达式视图中所示的全局变量内共享这些值。

    请参阅下图

    此致、

    Tushar

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

    尊敬的 Tushar:

    以下是快照  

    监视窗口与程序执行中的以下点相对应  

    从这一点开始、我们跳回 HwiP_IRQ_HANDLER

    此致、

    Nikhil  

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

    你好、Nikhil、

    您是否在示例中正确配置了 RAT 和 MPU 区域? 从上面看,它看起来像当你越过 AddrTranslateP_getLocalAddr() API 时,它会进入 Hwip_handler。

    您能与我们分享 example.syscfg 文件吗?

    此致、

    Tushar

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

    尊敬的 Tushar:

    这是 example.syscfg 文件。

    /**
    * These arguments were used when this file was generated. They will be automatically applied on subsequent loads
    * via the GUI or CLI. Run CLI with '--help' for additional information on how to override these arguments.
    * @cliArgs --device "AM62Ax" --package "AMB" --part "Default" --context "mcu-r5fss0-0" --product "MCU_PLUS_SDK_AM62Ax@10.01.00"
    * @versions {"tool":"1.20.0+3587"}
    */
    
    /**
    * Import the modules used in this configuration.
    */
    const gpio = scripting.addModule("/drivers/gpio/gpio", {}, false);
    const gpio1 = gpio.addInstance();
    const clock = scripting.addModule("/kernel/dpl/clock");
    const debug_log = scripting.addModule("/kernel/dpl/debug_log");
    const mpu_armv7 = scripting.addModule("/kernel/dpl/mpu_armv7", {}, false);
    const mpu_armv71 = mpu_armv7.addInstance();
    const mpu_armv72 = mpu_armv7.addInstance();
    const mpu_armv73 = mpu_armv7.addInstance();
    const mpu_armv74 = mpu_armv7.addInstance();
    const mpu_armv75 = mpu_armv7.addInstance();
    const mpu_armv76 = mpu_armv7.addInstance();
    
    /**
    * Write custom configuration values to the imported modules.
    */
    gpio1.$name = "GPIO_LED";
    gpio1.pinDir = "OUTPUT";
    gpio1.useMcuDomainPeripherals = false;
    gpio1.GPIO.gpioPin.$assign = "MMC1_SDWP";
    
    clock.timerInputClkHz = 80000000;
    
    debug_log.enableUartLog = true;
    debug_log.uartLog.$name = "CONFIG_UART0";
    
    mpu_armv71.$name = "CONFIG_MPU_REGION0";
    mpu_armv71.size = 31;
    mpu_armv71.attributes = "Device";
    mpu_armv71.accessPermissions = "Supervisor RD+WR, User RD";
    mpu_armv71.allowExecute = false;
    
    mpu_armv72.$name = "CONFIG_MPU_REGION1";
    mpu_armv72.size = 15;
    mpu_armv72.accessPermissions = "Supervisor RD+WR, User RD";
    
    mpu_armv73.$name = "CONFIG_MPU_REGION2";
    mpu_armv73.baseAddr = 0x41010000;
    mpu_armv73.size = 15;
    mpu_armv73.accessPermissions = "Supervisor RD+WR, User RD";
    
    mpu_armv74.$name = "CONFIG_MPU_REGION3";
    mpu_armv74.accessPermissions = "Supervisor RD+WR, User RD";
    mpu_armv74.baseAddr = 0x79100000;
    mpu_armv74.size = 19;
    
    mpu_armv75.$name = "CONFIG_MPU_REGION4";
    mpu_armv75.baseAddr = 0x60000000;
    mpu_armv75.size = 28;
    mpu_armv75.accessPermissions = "Supervisor RD, User RD";
    
    mpu_armv76.$name = "CONFIG_MPU_REGION5";
    mpu_armv76.baseAddr = 0x80000000;
    mpu_armv76.size = 31;
    
    /**
    * Pinmux solution for unlocked pins/peripherals. This ensures that minor changes to the automatic solver in a future
    * version of the tool will not impact the pinmux you originally saw. These lines can be completely deleted in order to
    * re-solve from scratch.
    */
    gpio1.GPIO.$suggestSolution = "GPIO1";
    debug_log.uartLog.MCU_UART.$suggestSolution = "MCU_USART0";
    debug_log.uartLog.MCU_UART.RXD.$suggestSolution = "MCU_UART0_RXD";
    debug_log.uartLog.MCU_UART.TXD.$suggestSolution = "MCU_UART0_TXD";

    由于某种原因、我无法上传 example.syscfg 文件、因此我粘贴了文件内容

    谢谢、此致、
    Nikhil  

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

    你好、Nikhil、

    您能否说明上述 syscfg 文件来自 MCAL 或 MCU+SDK GPIO 示例?

    可以看到、您已配置80MHz 频率下的计时器实例、默认情况下该频率设置为25MHz。

    请参阅下图。

    我还可以看到、您已在文件中完成了一些 MPU 配置。 这些 MPU 配置是否也在 MCAL 应用端完成?

    此致、

    Tushar

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

    尊敬的 Tushar:

    是正确我已将计时器实例更改为80MHz 频率、因为我们的 OS Autosar 模块配置为在80MHz 上运行。 但是、当计时器设置为默认25MHz 时、也会出现问题。

    此外、MCU_TIMER0是否可以从25MHz 配置为80MHz、这种更改是否允许、或者我们是否需要实现 PLL 或使用其他时钟源?  

    此致、

    Nikhil  

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

    你好、Nikhil、

    此外、MCU_TIMER0是否可以从25MHz 配置为80MHz、是否允许此更改、或者我们是否需要实施 PLL 或使用其他时钟源?  [/报价]

    我邀请我们的域专家评论计时器配置。  Vaibhav Kumar 您能否确认以上内容?

    Nikhil 您能否确认上述有关 MPU 配置和 syscfg 文件的待解决问题。

    此致、

    Tushar   

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

    尊敬的 Tushar:

    感谢您的答复。  

    1.上述 syscfg 文件来自 gpio_led_blink 示例。 在 MCAL 示例中、我们没有 syscfg、因为工程由 autosar 栈供应商矢量提供。 我们在工程中使用了 TI MCAL dio 示例生成的文件  
    MCAL 端的 MPU 配置取自 ti_DPL_config.c 文件中提供的 TI MCAL Dio 示例。 我可以提供 MCAL 侧 MPU 配置的详细信息-  


    const MpuP_RegionConfig gMpuRegionConfig[CONFIG_MPU_NUM_REGIONS] =
    {
    {
    .baseAddr = 0x0u,
    .size = MpuP_RegionSize_2G,
    .attrs = {
    .isEnable = 1,
    .isCacheable = 0,
    .isBufferable = 0,
    .isSharable = 1,
    .isExecuteNever = 1,
    .tex = 0,
    .accessPerm = MpuP_AP_S_RW_U_R,
    .subregionDisableMask = 0x0u
    },
    },
    {
    .baseAddr = 0x0u,
    .size = MpuP_RegionSize_32K,
    .attrs = {
    .isEnable = 1,
    .isCacheable = 1,
    .isBufferable = 1,
    .isSharable = 0,
    .isExecuteNever = 0,
    .tex = 1,
    .accessPerm = MpuP_AP_S_RW_U_R,
    .subregionDisableMask = 0x0u
    },
    },
    {
    .baseAddr = 0x41010000u,
    .size = MpuP_RegionSize_32K,
    .attrs = {
    .isEnable = 1,
    .isCacheable = 1,
    .isBufferable = 1,
    .isSharable = 0,
    .isExecuteNever = 0,
    .tex = 1,
    .accessPerm = MpuP_AP_S_RW_U_R,
    .subregionDisableMask = 0x0u
    },
    },
    {
    .baseAddr = 0x79100000u,
    .size = MpuP_RegionSize_512K,
    .attrs = {
    .isEnable = 1,
    .isCacheable = 1,
    .isBufferable = 1,
    .isSharable = 0,
    .isExecuteNever = 0,
    .tex = 1,
    .accessPerm = MpuP_AP_S_RW_U_R,
    .subregionDisableMask = 0x0u
    },
    },
    {
    .baseAddr = 0x60000000u,
    .size = MpuP_RegionSize_256M,
    .attrs = {
    .isEnable = 1,
    .isCacheable = 1,
    .isBufferable = 1,
    .isSharable = 0,
    .isExecuteNever = 0,
    .tex = 1,
    .accessPerm = MpuP_AP_ALL_R,
    .subregionDisableMask = 0x0u
    },
    },
    {
    .baseAddr = 0x80000000u,
    .size = MpuP_RegionSize_2G,
    .attrs = {
    .isEnable = 1,
    .isCacheable = 1,
    .isBufferable = 1,
    .isSharable = 0,
    .isExecuteNever = 0,
    .tex = 1,
    .accessPerm = MpuP_AP_ALL_RW,
    .subregionDisableMask = 0x0u
    },
    },
    {
    .baseAddr = 0x9B000000u,
    .size = MpuP_RegionSize_16M,
    .attrs = {
    .isEnable = 1,
    .isCacheable = 0,
    .isBufferable = 0,
    .isSharable = 1,
    .isExecuteNever = 0,
    .tex = 1,
    .accessPerm = MpuP_AP_ALL_RW,
    .subregionDisableMask = 0x0u
    },
    },
    };


    此致、
    Nikhil  

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

    您好、

    此外、MCU_TIMER0是否可以从25MHz 配置为80MHz、是否允许此更改、或者我们是否需要实施 PLL 或使用其他时钟源?  [/报价]

    在此方面、我希望您以通用方式了解计时器。

    目前、您可以使用的两个来源如下:

    我想说的是、当前请将默认选择设为25 MHz。

    需要修改分压器才能达到80或接近80 MHz。  

    我已经能够得到将导致80 MHz 的组合。 请访问 dev.ti.com/sysconfig 并打开 AM62A 的时钟树工具。

    完成后、前往左侧的计时器部分、您应该能够选择其中一个 MCU 计时器来查看时钟的生成方式。

    请按照我在以下代码段上所写的那样选择以下组合:

    我可以看到生成的频率是80 MHz

    此致、

    Vaibhav

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

    你好、Nikhil、

    MCAL 侧有一个额外的 MPU 区域、用于存储器地址0x9B000000。 删除此部分后、您可以重试一次吗?

    此致、

    Tushar

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

    尊敬的 Tushar:

    内存地址0x9B000000是应用程序条目由 autosar 链接器文件定义的位置。 我想我们现在可以关闭这个 TT。 我正在澄清一些相似的事情、并将再次创建一个新的 TT

    谢谢、此致、

    Nikhil  

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

    你好、Nikhil、

    感谢您提供上述说明。 关闭螺纹。

    此致、

    Tushar