请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:PROCESSOR-SDK-AM62X 工具与软件:
我看到的是 mcu_plus_sdk 的 source/kernel/nortos/dpl/a53/Hwip_ARMv8_GIC.c 中的 Hwip_init、其中有:
/*更新转寄器和 SGI_ppi 地址*/
gicrRegs =(CSL_gic500_gicrRegs_core_control *)(HWIP_GIC_BASE_ADDR + CSL_GIC500_GICR_CORE_CONTROL_CTLR (CoreID));
gicsRegs =(CSL_gic500_gicrRegs_core_SGI_ppi *)((uintptr_t) gicrRegs +(uintptr_t) 0x10000u);
其中
// source/kernel_nortos/dpl/a53/nortos HwiP_armv8_gic.h
#define HWIP_GIC_BASE_ADDR (0x1800000UL)
// source/kernel_nortos/dpl/a53/nortos cslr_gic500.h
#define CSL_GIC500_GICR_CORE_CONTROL_CTLR (CORE )( CSL_GIC500_GICR_CORE_CONTROL_OFFSET +((CORE )*0x20000U )))
// soc source/kernel_nortos/dpl/a53/nortos/gic_base_address_am62x.h
#define CSL_GIC500_GICR_CORE_CONTROL_OFFSET (0x80000U)
但是、在手册(和器件描述符文件)中、 它们似乎位于0x40000:

并且只有两个(在0x40000和0x60000处)、并且代码表示应该有4个(每个内核1)。
什么是正确的? SDK 或手动/器件描述符文件(我怀疑是前者 、因为后者也缺少两个内核的寄存器(?))