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+ 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。
请按照以下步骤操作。
%%{ 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 * and then the NVIC input interrupts start, hence we need to add +16 to the value specified by TRM */ #define `instance.$name.toUpperCase()`_INTR_NUM (CSLR_`config.routerId`_GPIOMUX_INTROUTER0_OUTP_`config.intrOut` + 16u) %} %else { #define `instance.$name.toUpperCase()`_INTR_NUM (CSLR_`config.routerId`_GPIOMUX_INTROUTER0_OUTP_`config.intrOut`) %} % } % } #define CONFIG_GPIO_NUM_INSTANCES (`module.$instances.length`U)
完成上述更改后、 SysConfig 工具将能够生成具有正确宏定义的文件。
此致、
Tushar