请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号: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