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.

[FAQ] [参考译文] [常见问题解答] PROCESSOR-SDK-AM64X:MCU GPIO 中断路由器的未声明标识符

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1458956/faq-processor-sdk-am64x-undeclared-identifier-for-mcu-gpio-interrupt-routers

器件型号:PROCESSOR-SDK-AM64X
主题中讨论的其他器件:SysConfig

工具与软件:

我正在尝试升级工程以使用新的 MCU+ SDK 10.1、但出现编译错误、指出中断路由器编号未声明。 如下所示。

subdir_rules.mk:46:目标"main.o"的配方失败
../main.c:77:22:错误:使用未声明标识符"CSLR_MCU_M4FSS0_CORE0_INTR_MAIN_GPIOMUX_INTROUTER0_OUTP_4"
hwiPrms.intNum = USER_SWITCH_INTR_NUM;
^μ A
c:/Users/usr /workspace_v12/gpio_led_blink_am64x-sk_m4fss0-0_nortos_ti-arm-clang/Debug/syscfg/ti_drivers_config.h:69:35:注意:从宏"USER_SWITCH_INTR_NUM"扩展
#define USER_SWITCH_INTR_NUM (CSLR_MCU_M4FSS0_COR0_INTR_MAIN_GPIOMUX_INTROUTER0_OUTP_4)
^μ A
生成1个错误。
gmake:***[main.o]错误1.
gmake:由于错误、未重制目标"all"。

****构建完成****

您能帮助我们解决上述错误吗?

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

    上述错误是由于 的宏定义不正确而产生的  USER_SWITCH_INTR_NUM . 用于生成代码的模板文件不适用于 MCU GPIO。

    请按照以下步骤操作。

    • 请使用以下提供的代码替换模板文件代码、以正确生成文件。 模板文件位于  ${MCU+SDK}/source/sysconfig/drivers/.meta/gpio/templates/gpio.h.xdt.  

     

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    %%{
    let module = system.modules[args[0]];
    %%}
    /*
    * GPIO
    */
    #include <drivers/gpio.h>
    #include <kernel/dpl/AddrTranslateP.h>
    /* GPIO PIN Macros */
    % for(let i = 0; i < module.$instances.length; i++) {
    % let instance = module.$instances[i];
    % let config = module.getInstanceConfig(instance);
    #define `instance.$name.toUpperCase()`_BASE_ADDR (`config.baseAddr`)
    #define `instance.$name.toUpperCase()`_PIN (`config.pinIndex`)
    #define `instance.$name.toUpperCase()`_DIR (GPIO_DIRECTION_`config.pinDir`)
    #define `instance.$name.toUpperCase()`_TRIG_TYPE (GPIO_TRIG_TYPE_`config.trigType`)
    % if(config.enableIntr){
    %if(config.routerId === 'MCU_M4FSS0_CORE0_NVIC_MCU_MCU') {
    /* On M4F, interrupt number as specified in TRM is input to the NVIC but from M4 point of view there are 16 internal interrupts
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    • 关闭  example.syscfg  调试会话文件。
    • 来实现该操作  example.syscfg  删除 GPIO 部分并再次添加。
    • 保存此文件并重新构建项目。

    完成上述更改后、 SysConfig 工具将能够生成具有正确宏定义的文件。

    此致、

    Tushar