请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:AM62D-Q1 主题:SysConfig 中讨论的其他器件
工具/软件:
你(们)好
我们正在开发一个系统、让 R5-MCU 引导其他内核:A53、C7和 R5-WKUP。
SysConfig 工具为 R5-WKUP 内核提供引导加载程序驱动程序、但不为 R5-MCU 提供这些驱动程序。
我尝试编辑 r5-MCU 内核的.syscfg 文件、希望这些功能得到支持、但在 GUI 中尚不可用。
这是我们的 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 "AM62Dx" --part "AM62D24-G" --package "ANF" --context "mcu-r5fss0-0" --product "MCU_PLUS_SDK_AM62Dx@11.00.00"
* @v2CliArgs --device "AM62D-Q1" --package "FCBGA (ANF)" --variant "AM62D24-G" --context "mcu-r5fss0-0" --product "MCU_PLUS_SDK_AM62Dx@11.00.00"
* @versions {"tool":"1.23.1+4034"}
*/
/**
* Import the modules used in this configuration.
*/
const ipc = scripting.addModule("/drivers/ipc/ipc");
const debug_log = scripting.addModule("/kernel/dpl/debug_log");
const mpu_armv7 = scripting.addModule("/kernel/dpl/mpu_armv7", {}, false);
const bootloader = scripting.addModule("/drivers/bootloader/bootloader", {}, false);
const bootloader1 = bootloader.addInstance();
const bootloader2 = bootloader.addInstance();
const bootloader3 = bootloader.addInstance();
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();
const mpu_armv77 = mpu_armv7.addInstance();
const mpu_armv78 = mpu_armv7.addInstance();
const mpu_armv79 = mpu_armv7.addInstance();
const mmcsd = scripting.addModule("/drivers/mmcsd/mmcsd", {}, false);
const mmcsd1 = mmcsd.addInstance({}, false);
mmcsd1.$name = "CONFIG_MMCSD0";
/**
* Write custom configuration values to the imported modules.
*/
bootloader1.bootMedia = "EMMC";
bootloader1.EMMCAppImageOffset = "0x00080000";
bootloader1.$name = "CONFIG_BOOTLOADER_EMMC_R5WKUP";
bootloader2.$name = "CONFIG_BOOTLOADER_EMMC_A53";
bootloader2.appImageOffset = "0x00480000";
bootloader2.bootMedia = "EMMC";
bootloader2.EMMCAppImageOffset = "0x00480000";
bootloader3.bootMedia = "EMMC";
bootloader3.$name = "CONFIG_BOOTLOADER_EMMC_C7";
bootloader3.EMMCAppImageOffset = "0x00680000";
bootloader1.MMCSDDriver = mmcsd1;
bootloader2.MMCSDDriver = mmcsd1;
bootloader3.MMCSDDriver = mmcsd1;
ipc.a53ss0_0 = "notify";
ipc.r5fss0_0 = "notify";
ipc.c75ss0_0 = "notify";
ipc.enableLinuxIpc = false;
mpu_armv71.size = 31;
mpu_armv71.attributes = "Device";
mpu_armv71.accessPermissions = "Supervisor RD+WR, User RD";
mpu_armv71.allowExecute = false;
mpu_armv71.$name = "REGISTERS";
mpu_armv72.size = 15;
mpu_armv72.accessPermissions = "Supervisor RD+WR, User RD";
mpu_armv72.$name = "ATCM";
mpu_armv72.attributes = "NonCached";
mpu_armv73.baseAddr = 0x41010000;
mpu_armv73.size = 15;
mpu_armv73.accessPermissions = "Supervisor RD+WR, User RD";
mpu_armv73.$name = "BTCM";
mpu_armv73.attributes = "NonCached";
mpu_armv74.accessPermissions = "Supervisor RD+WR, User RD";
mpu_armv74.baseAddr = 0x79100000;
mpu_armv74.size = 19;
mpu_armv74.$name = "MSRAM";
mpu_armv75.baseAddr = 0x60000000;
mpu_armv75.size = 28;
mpu_armv75.accessPermissions = "Supervisor RD, User RD";
mpu_armv75.$name = "FLASH_SUBSYSTEM";
mpu_armv76.$name = "DDR_R5MCU";
mpu_armv76.baseAddr = 0x80000000;
mpu_armv76.size = 31;
mpu_armv77.allowExecute = false;
mpu_armv77.attributes = "Cached+Sharable";
mpu_armv77.size = 21;
mpu_armv77.baseAddr = 0x88000000;
mpu_armv77.$name = "DDR_IPC";
mpu_armv78.size = 21;
mpu_armv78.attributes = "NonCached";
mpu_armv78.allowExecute = false;
mpu_armv78.$name = "DDR_LOG_MEM";
mpu_armv78.baseAddr = 0x88200000;
mpu_armv79.allowExecute = false;
mpu_armv79.$name = "DDR_IPC_DESC_MEM";
mpu_armv79.attributes = "NonCached";
mpu_armv79.size = 19;
mpu_armv79.baseAddr = 0x88180000;
/**
* 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.
*/
mmcsd1.MMC0.$suggestSolution = "MMC0";
mmcsd1.MMC0.CLK.$suggestSolution = "MMC0_CLK";
mmcsd1.MMC0.CMD.$suggestSolution = "MMC0_CMD";
mmcsd1.MMC0.DAT0.$suggestSolution = "MMC0_DAT0";
mmcsd1.MMC0.DAT1.$suggestSolution = "MMC0_DAT1";
mmcsd1.MMC0.DAT2.$suggestSolution = "MMC0_DAT2";
mmcsd1.MMC0.DAT3.$suggestSolution = "MMC0_DAT3";
mmcsd1.MMC0.DAT4.$suggestSolution = "MMC0_DAT4";
mmcsd1.MMC0.DAT5.$suggestSolution = "MMC0_DAT5";
mmcsd1.MMC0.DAT6.$suggestSolution = "MMC0_DAT6";
mmcsd1.MMC0.DAT7.$suggestSolution = "MMC0_DAT7";遗憾的是、我收到未定义符号的链接器错误:
- Bootloader_Boot 图像信息初始化
- Bootloader_Params_初始化
- Bootloader_bootCpu
-等等...
是否完全可以从 R5-MCU 引导其他内核?
如果是、TI 是否会提供驱动程序来执行此操作?
谢谢!
Mateusz