Thread 中讨论的其他器件: SysConfig
系统设置:
AM2432
SDK MCU_PLUS_SDK_am243x_08_04_00_17
SysConfig 1.14
CCS 12.1.0.00007
您好!
我正在尝试设置由主域中引脚 Y1上的引脚 PRG0_PRU0_GPO0 (GPIO1_0)触发的中断。 ISR 必须由 R5FSS1_CORE0提供服务。 当我配置 GPIO 引脚为中断提供服务时、SysConfig 生成了以下文件(ti_drivers_config.c)、其中包含设置中断的代码。 但是,当在 ti_drivers_config.c 中调用 Sciclient_gpioIrqSet()时,对 Sciclient_rmIrqSet()的调用失败。
随附了我的 example.syscfg 和 ti_drivers_config.c 文件:
e2e.ti.com/.../4747.ti_5F00_drivers_5F00_config.c
示例.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 "AM243x_ALV_beta" --package "ALV" --part "ALV" --context "r5fss1-0" --product "MCU_PLUS_SDK_AM243x@08.04.00"
* @versions {"tool":"1.14.0+2667"}
*/
/**
* Import the modules used in this configuration.
*/
const flash = scripting.addModule("/board/flash/flash", {}, false);
const flash1 = flash.addInstance();
const gpio = scripting.addModule("/drivers/gpio/gpio", {}, false);
const gpio1 = gpio.addInstance();
const i2c = scripting.addModule("/drivers/i2c/i2c", {}, false);
const i2c1 = i2c.addInstance();
const i2c2 = i2c.addInstance();
const ipc = scripting.addModule("/drivers/ipc/ipc");
const mcspi = scripting.addModule("/drivers/mcspi/mcspi", {}, false);
const mcspi1 = mcspi.addInstance();
const mcspi2 = mcspi.addInstance();
const uart = scripting.addModule("/drivers/uart/uart", {}, false);
const uart1 = uart.addInstance();
const watchdog = scripting.addModule("/drivers/watchdog/watchdog", {}, false);
const watchdog1 = watchdog.addInstance();
const clock = scripting.addModule("/kernel/dpl/clock");
const debug_log = scripting.addModule("/kernel/dpl/debug_log");
const mpu_armv7 = scripting.addModule("/kernel/dpl/mpu_armv7", {}, false);
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();
/**
* Write custom configuration values to the imported modules.
*/
flash1.$name = "CONFIG_FLASH0";
flash1.peripheralDriver.$name = "CONFIG_OSPI0";
flash1.peripheralDriver.inputClkFreq = 200000000;
flash1.peripheralDriver.dmaEnable = true;
flash1.peripheralDriver.advanced = true;
gpio1.$name = "GPIO_UPDATE_PS";
gpio1.trigType = "RISE_EDGE";
gpio1.advanced = true;
gpio1.intrOut = "12";
gpio1.GPIO.$assign = "GPIO1";
gpio1.GPIO.gpioPin.$assign = "ball.Y1";
i2c1.$name = "CONFIG_I2C0";
i2c1.advanced = true;
i2c1.I2C.$assign = "I2C0";
i2c1.I2C.SCL.$assign = "ball.A18";
i2c1.I2C.SDA.$assign = "ball.B18";
i2c2.$name = "CONFIG_I2C1";
i2c2.advanced = true;
i2c2.I2C.$assign = "I2C1";
i2c2.I2C.SCL.$assign = "ball.C18";
i2c2.I2C.SDA.$assign = "ball.B19";
ipc.r5fss0_1 = "NONE";
ipc.r5fss1_1 = "NONE";
ipc.m4fss0_0 = "notify";
ipc.vringMsgSize = 256;
ipc.vringNumBuf = 12;
mcspi1.$name = "CONFIG_MCSPI0";
mcspi1.SPI.$assignAllowConflicts = "SPI0";
mcspi1.SPI.CLK.$assignAllowConflicts = "ball.D13";
mcspi1.SPI.D0.$assignAllowConflicts = "ball.A13";
mcspi1.SPI.D1.$assignAllowConflicts = "ball.A14";
mcspi1.mcspiChannel[0].$name = "CONFIG_MCSPI_CH0";
mcspi1.mcspiChannel[0].CSn.$assign = "ball.D12";
scripting.suppress("Resource conflict,SPI0 is also in use by @@@.+?@@@", mcspi1.SPI, "$assign");
scripting.suppress("Resource conflict,@@@.+?@@@ is also in use by @@@.+?@@@", mcspi1.SPI, "CLK");
scripting.suppress("Resource conflict,@@@.+?@@@ is also in use by @@@.+?@@@", mcspi1.SPI, "D0");
scripting.suppress("Resource conflict,@@@.+?@@@ is also in use by @@@.+?@@@", mcspi1.SPI, "D1");
mcspi2.$name = "CONFIG_MCSPI1";
mcspi2.SPI.$assignAllowConflicts = "SPI0";
mcspi2.SPI.CLK.$assignAllowConflicts = "ball.D13";
mcspi2.SPI.D0.$assignAllowConflicts = "ball.A13";
mcspi2.SPI.D1.$assignAllowConflicts = "ball.A14";
mcspi2.mcspiChannel[0].$name = "CONFIG_MCSPI_CH1";
mcspi2.mcspiChannel[0].CSn.$assign = "ball.C13";
scripting.suppress("Resource conflict,SPI0 is also in use by @@@.+?@@@", mcspi2.SPI, "$assign");
scripting.suppress("Resource conflict,@@@.+?@@@ is also in use by @@@.+?@@@", mcspi2.SPI, "CLK");
scripting.suppress("Resource conflict,@@@.+?@@@ is also in use by @@@.+?@@@", mcspi2.SPI, "D0");
scripting.suppress("Resource conflict,@@@.+?@@@ is also in use by @@@.+?@@@", mcspi2.SPI, "D1");
uart1.$name = "CONFIG_UART0";
uart1.rxTrigLvl = "1";
uart1.intrEnable = "USER_INTR";
uart1.txTrigLvl = "8";
uart1.UART.$assign = "USART1";
uart1.UART.RXD.$assign = "ball.E15";
uart1.UART.TXD.$assign = "ball.E14";
const udma = scripting.addModule("/drivers/udma/udma", {}, false);
const udma1 = udma.addInstance({}, false);
udma1.$name = "CONFIG_UDMA0";
flash1.peripheralDriver.udmaDriver = udma1;
watchdog1.$name = "CONFIG_WDT10";
watchdog1.instance = "WDT10";
watchdog1.resetMode = "Watchdog_RESET_OFF";
debug_log.enableSharedMemLog = true;
mpu_armv71.$name = "CONFIG_MPU_REGION0";
mpu_armv71.size = 31;
mpu_armv71.attributes = "Device";
mpu_armv71.accessPermissions = "Supervisor RD+WR, User RD";
mpu_armv71.allowExecute = false;
mpu_armv72.size = 15;
mpu_armv72.accessPermissions = "Supervisor RD+WR, User RD";
mpu_armv72.$name = "CONFIG_MPU_ATCM";
mpu_armv73.baseAddr = 0x41010000;
mpu_armv73.size = 15;
mpu_armv73.accessPermissions = "Supervisor RD+WR, User RD";
mpu_armv73.$name = "CONFIG_MPU_BTCM";
mpu_armv74.accessPermissions = "Supervisor RD+WR, User RD";
mpu_armv74.baseAddr = 0x70000000;
mpu_armv74.size = 21;
mpu_armv74.$name = "CONFIG_MPU_MSRAM_ALL";
mpu_armv75.baseAddr = 0xC0000000;
mpu_armv75.size = 30;
mpu_armv75.$name = "CONFIG_MPU_DDR";
mpu_armv76.allowExecute = false;
mpu_armv76.size = 17;
mpu_armv76.attributes = "NonCached";
mpu_armv76.$name = "CONFIG_MPU_MSRAM_NOCACHE";
mpu_armv76.baseAddr = 0x70120000;
mpu_armv77.baseAddr = 0x701D0000;
mpu_armv77.size = 16;
mpu_armv77.attributes = "Device";
mpu_armv77.allowExecute = false;
mpu_armv77.$name = "CONFIG_MPU_MSRAM_SHARED";
/**
* 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.
*/
flash1.peripheralDriver.OSPI.$suggestSolution = "OSPI0";
flash1.peripheralDriver.OSPI.CLK.$suggestSolution = "ball.N20";
flash1.peripheralDriver.OSPI.CSn0.$suggestSolution = "ball.L19";
flash1.peripheralDriver.OSPI.DQS.$suggestSolution = "ball.N19";
flash1.peripheralDriver.OSPI.D7.$suggestSolution = "ball.M17";
flash1.peripheralDriver.OSPI.D6.$suggestSolution = "ball.N18";
flash1.peripheralDriver.OSPI.D5.$suggestSolution = "ball.P20";
flash1.peripheralDriver.OSPI.D4.$suggestSolution = "ball.P21";
flash1.peripheralDriver.OSPI.D3.$suggestSolution = "ball.M21";
flash1.peripheralDriver.OSPI.D2.$suggestSolution = "ball.M20";
flash1.peripheralDriver.OSPI.D1.$suggestSolution = "ball.M18";
flash1.peripheralDriver.OSPI.D0.$suggestSolution = "ball.M19";
根据相关的支持请求、我需要进行修改 sources\drivers\sciclient\sciclient_default_boardcfg\am64x_am243x\sciclient_defaultBoardcfg_rm.c 以完成从中断源到请求内核(R5FSS1_CORE0)的管道。 如何修改该文件以将 GPIO1_0连接到 R5FSS1_CORE0? 是否有描述此过程的文档(AM243x MCU+ SDK 文档的"修改资源分配"部分除外)? 相关的支持请求对于如何执行此操作不是很清楚、我在阅读相关的支持请求单或 SDK 文档时也不清楚"启动资源"和"num_resource"在配置的"资源类型"中指的是什么。
它非常令人困惑。
如果有任何帮助,将不胜感激。
谢谢。