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.

System Projects errors on building the projects

Other Parts Discussed in Thread: SYSCONFIG

Dear all,

we are trying to compile and debug a multicore project based on Sitara AM263 MCU. For this purpose we create a System Project and configure the system.xml file as occurred.

The problem is that when we try to build the system project, if at least one project is not updated, we get errors on that project. 

The name of the 2 projects are F088GN-A-B1 and F088GN-A-B2.

In the console windows of first project F088GN-A-B1 we have this output:

**** Build of configuration Debug for project F088GN-B-A1 ****

"C:\\ti\\ccs1210\\ccs\\utils\\bin\\gmake" -k -j 8 all -O

Building file: "../F088GN-B-A1.syscfg"
Invoking: SysConfig
"C:/ti/ccs1210/ccs/utils/sysconfig_1.14.0/sysconfig_cli.bat" -s "C:/ti/mcu_plus_sdk_am263x_08_04_00_17/.metadata/product.json" --script "C:/FirmwareWorks/F088GN-B-A2/F088GN-B-A2.syscfg" --context "r5fss0-0" --script "C:/FirmwareWorks/F088GN-B-A1/F088GN-B-A1.syscfg" --context "r5fss0-0" -o "C:/FirmwareWorks/F088GN-B-A1/syscfg" --part AM263x --package ZCZ --compiler ticlang

Usage:
cli [-o <dir>] [-s <file>] [-u <string>] [-b <name>] [-d <name>] [-p <name>] [-r <name>] [--treatWarningsAsErrors] [--quiet -q] <script>
cli --help
cli --version

example: cli -s meta_data/sdk.json -d MSP432P401R scripts/two_uarts.js
example: -s sdk.json -d MSP432P401R -o ./display_cfg sdk/cfgs/display.syscfg

Note that the all arguments other than '--help' and '--version' may also be
specified via the script with an embedded @cliArgs comment directive.
E.g. // @cliArgs -d MSP432P401R

If an argument is embedded in a script and explicitly specified via the CLI
then precedence is given to the CLI arguments. Additionally, specifying
"--board" or "--device" on the CLI will override any "--board" and "--device"
arguments specified in the script.

subdir_rules.mk:9: recipe for target 'C:/FirmwareWorks/F088GN-B-A1/syscfg/error.h' failed
Every --script must be followed by a unique --context
gmake: *** [C:/FirmwareWorks/F088GN-B-A1/syscfg/error.h] Error 1
gmake: Target 'all' not remade because of errors.

**** Build Finished ****

Same issue on the other project F088GN-B-A2:

**** Build of configuration Debug for project F088GN-B-A2 ****

"C:\\ti\\ccs1210\\ccs\\utils\\bin\\gmake" -k -j 8 all -O

Building file: "../F088GN-B-A2.syscfg"
Invoking: SysConfig
"C:/ti/ccs1210/ccs/utils/sysconfig_1.14.0/sysconfig_cli.bat" -s "C:/ti/mcu_plus_sdk_am263x_08_04_00_17/.metadata/product.json" --script "C:/FirmwareWorks/F088GN-B-A1/F088GN-B-A1.syscfg" --context "r5fss1-0" --script "C:/FirmwareWorks/F088GN-B-A2/F088GN-B-A2.syscfg" --context "r5fss1-0" -o "C:/FirmwareWorks/F088GN-B-A2/syscfg" --part AM263x --package ZCZ --compiler ticlang

Usage:
cli [-o <dir>] [-s <file>] [-u <string>] [-b <name>] [-d <name>] [-p <name>] [-r <name>] [--treatWarningsAsErrors] [--quiet -q] <script>
cli --help
cli --version

example: cli -s meta_data/sdk.json -d MSP432P401R scripts/two_uarts.js
example: -s sdk.json -d MSP432P401R -o ./display_cfg sdk/cfgs/display.syscfg

Note that the all arguments other than '--help' and '--version' may also be
specified via the script with an embedded @cliArgs comment directive.
E.g. // @cliArgs -d MSP432P401R

If an argument is embedded in a script and explicitly specified via the CLI
then precedence is given to the CLI arguments. Additionally, specifying
"--board" or "--device" on the CLI will override any "--board" and "--device"
arguments specified in the script.

subdir_rules.mk:9: recipe for target 'C:/FirmwareWorks/F088GN-B-A2/syscfg/error.h' failed
Every --script must be followed by a unique --context
gmake: *** [C:/FirmwareWorks/F088GN-B-A2/syscfg/error.h] Error 1
gmake: Target 'all' not remade because of errors.

**** Build Finished ****

We are using:

CCS version 12.1

mcu_plus_sdk_am263x_08_04_00_17

sysconfig_1.14.0

Could you help us, please?

Waiting for your kind reply

Thanks

Best regards

Gianni Perugini

  • Hi Gianni,

    According to the AM263x MCU+ SDK download page, the CCS version for 08.04.00.17 is CCS 12.0.0 and the SysConfig is 1.13.0.

    Can you try the correct CCS and SysConfig versions?

    Best regards,

    Ming

  • Hi Ming,

    many thanks for your fast answer.

    I did what you suggest but I had the same issue as you can see below:

    **** Build of configuration Debug for project F088GN-B-A1 ****

    "C:\\ti\\ccs1200\\ccs\\utils\\bin\\gmake" -k -j 8 all -O

    Building file: "../F088GN-B-A1.syscfg"
    Invoking: SysConfig
    "C:/ti/ccs1200/ccs/utils/sysconfig_1.13.0/sysconfig_cli.bat" -s "C:/ti/mcu_plus_sdk_am263x_08_04_00_17/.metadata/product.json" --script "C:/Progetti/SITARA/Software/F088GN-B-A2/F088GN-B-A2.syscfg" --context "r5fss0-0" --script "C:/Progetti/SITARA/Software/F088GN-B-A1/F088GN-B-A1.syscfg" --context "r5fss0-0" -o "C:/Progetti/SITARA/Software/F088GN-B-A1/syscfg" --part AM263x --package ZCZ --compiler ticlang

    Usage:
    cli [-o <dir>] [-s <file>] [-u <string>] [-b <name>] [-d <name>] [-p <name>] [-r <name>] [--treatWarningsAsErrors] <script>
    cli --help
    cli --version

    example: cli -s meta_data/sdk.json -d MSP432P401R scripts/two_uarts.js
    example: -s sdk.json -d MSP432P401R -o ./display_cfg sdk/cfgs/display.syscfg

    Note that the all arguments other than '--help' and '--version' may also be
    specified via the script with an embedded @cliArgs comment directive.
    E.g. // @cliArgs -d MSP432P401R

    If an argument is embedded in a script and explicitly specified via the CLI
    then precedence is given to the CLI arguments. Additionally, specifying
    "--board" or "--device" on the CLI will override any "--board" and "--device"
      arguments specified in the script.

    subdir_rules.mk:9: recipe for target 'C:/Progetti/SITARA/Software/F088GN-B-A1/syscfg/error.h' failed
    Every --script must be followed by a unique --context
    gmake: *** [C:/Progetti/SITARA/Software/F088GN-B-A1/syscfg/error.h] Error 1
    gmake: Target 'all' not remade because of errors.

    **** Build Finished ****

    As you can see, when the System Project has compiled, the F088GN-B-A1 single project has compiled, the sysconfig_cli.bat has been invoked passing the wrong argument related to the second project F088GN-B-A2!!!

    Is it normal?

    Have you got some other suggestion?

    Waiting for your kind reply

    Thanks

    Best regards

    Gianni Perugini

  • Hi Gianni,

    Without seeing your system project and the *.syscfg files, it is hard for us to pinpoint where the problem is.

    I installed the MCU+ SDK 08.04.00.17 for AM263x. Imported the ipc_notify_echo_am263x-cc_system_freertos_nortos and built it with CCS 12.0.0 and SysConfig 1.13.0 successfully. Here is the screen capture. You may want to try the same on your set up. If it builds OK, then your system setup is OK. The next thing you may want to try is to compare your system project with the ipc_notify_echo_am263x-cc_system_freertos_nortos and the F088GN-B-A1.syscfg and F088GN-B-A2.syscfg with example.syscfg files in the IPC notify example.

    Best regards,

    Ming

  • Hi Ming,

    thanks for your reply.

    Attached you will find the file you requested:

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <system>
        <project configuration="@match" id="project_1366276478" name="F088GN-B-A1"/>
        <core id="Cortex_R5_0" project="project_1366276478"/>
        <project configuration="@match" id="project_897076724" name="F088GN-B-A2"/>
        <core id="Cortex_R5_2" project="project_897076724"/>
        <postBuildSteps>
            <step command="$(MAKE) -C ${CCS_PROJECT_DIR} -f makefile_system_ccs_bootimage_gen OUTNAME=F088GN-B-A PROFILE=${ConfigName} MCU_PLUS_SDK_PATH=${MCU_PLUS_SDK_PATH} CG_TOOL_ROOT=${CG_TOOL_ROOT} CCS_INSTALL_DIR=${CCS_INSTALL_DIR} CCS_IDE_MODE=${CCS_IDE_MODE}"/>
        </postBuildSteps>
    </system>
    

    the syscfg related to the F088GN-B-A1 project is:

    /**
    * 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 "AM263x_beta" --package "ZCZ" --part "AM263x" --context "r5fss0-0" --product "MCU_PLUS_SDK_AM263x@08.04.00"
    * @versions {"tool":"1.13.0+2553"}
    */

    /**
    * Import the modules used in this configuration.
    */
    const flash = scripting.addModule("/board/flash/flash", {}, false);
    const flash1 = flash.addInstance();
    const led = scripting.addModule("/board/led/led", {}, false);
    const led1 = led.addInstance();
    const gpio = scripting.addModule("/drivers/gpio/gpio", {}, false);
    const gpio1 = gpio.addInstance();
    const ipc = scripting.addModule("/drivers/ipc/ipc");
    const mcan = scripting.addModule("/drivers/mcan/mcan", {}, false);
    const mcan1 = mcan.addInstance();
    const mcan2 = mcan.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_QSPI0";

    led1.$name = "BLINK_LED";

    const edma = scripting.addModule("/drivers/edma/edma", {}, false);
    const edma1 = edma.addInstance({}, false);
    edma1.$name = "CONFIG_EDMA0";
    flash1.peripheralDriver.edmaConfig = edma1;
    edma1.edmaRmDmaCh[0].$name = "CONFIG_EDMA_RM0";
    edma1.edmaRmQdmaCh[0].$name = "CONFIG_EDMA_RM1";
    edma1.edmaRmTcc[0].$name = "CONFIG_EDMA_RM2";
    edma1.edmaRmParam[0].$name = "CONFIG_EDMA_RM3";

    led1.peripheralDriver = gpio1;
    gpio1.pinDir = "OUTPUT";
    gpio1.$name = "CONFIG_BLINK_LED";
    gpio1.GPIO.gpioPin.$assign = "ball.R3";

    ipc.r5fss0_1 = "NONE";
    ipc.r5fss1_1 = "NONE";
    ipc.vringMsgSize = 512;

    mcan1.$name = "CONFIG_MCAN1";
    mcan1.MCAN.$assign = "MCAN1";

    mcan2.$name = "CONFIG_MCAN0";

    debug_log.enableCssLog = false;
    debug_log.enableUartLog = true;
    debug_log.uartLog.$name = "CONFIG_UART0";
    debug_log.uartLog.readMode = "CALLBACK";
    debug_log.uartLog.readCallbackFxn = "UartReadCallback";
    debug_log.uartLog.rxTrigLvl = "1";
    debug_log.uartLog.txTrigLvl = "1";
    debug_log.uartLog.intrPriority = 15;
    debug_log.uartLog.UART.$assign = "UART0";
    debug_log.uartLog.UART.RXD.$assign = "ball.A7";
    debug_log.uartLog.UART.TXD.$assign = "ball.A6";

    mpu_armv71.$name = "CONFIG_MPU_REGION0";
    mpu_armv71.size = 31;
    mpu_armv71.accessPermissions = "Supervisor RD+WR, User RD";
    mpu_armv71.allowExecute = false;
    mpu_armv71.attributes = "Device";

    mpu_armv72.$name = "CONFIG_MPU_REGION1";
    mpu_armv72.size = 15;
    mpu_armv72.accessPermissions = "Supervisor RD+WR, User RD";

    mpu_armv73.$name = "CONFIG_MPU_REGION2";
    mpu_armv73.baseAddr = 0x80000;
    mpu_armv73.size = 15;
    mpu_armv73.accessPermissions = "Supervisor RD+WR, User RD";

    mpu_armv74.$name = "CONFIG_MPU_REGION3";
    mpu_armv74.size = 21;
    mpu_armv74.baseAddr = 0x70000000;
    mpu_armv74.accessPermissions = "Supervisor RD+WR, User RD";

    mpu_armv75.$name = "CONFIG_MPU_REGION4";
    mpu_armv75.baseAddr = 0x50D00000;
    mpu_armv75.size = 14;
    mpu_armv75.allowExecute = false;
    mpu_armv75.attributes = "Device";

    mpu_armv76.$name = "CONFIG_MPU_REGION5";
    mpu_armv76.attributes = "NonCached";
    mpu_armv76.allowExecute = false;
    mpu_armv76.baseAddr = 0x72000000;
    mpu_armv76.size = 14;

    mpu_armv77.$name = "CONFIG_MPU_REGION6";
    mpu_armv77.baseAddr = 0x701D0000;
    mpu_armv77.size = 15;
    mpu_armv77.allowExecute = false;
    mpu_armv77.attributes = "NonCached";

    /**
    * 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.QSPI.$suggestSolution = "QSPI";
    flash1.peripheralDriver.QSPI.QSPI_D0.$suggestSolution = "ball.N1";
    flash1.peripheralDriver.QSPI.QSPI_D1.$suggestSolution = "ball.N4";
    flash1.peripheralDriver.QSPI.QSPI_D2.$suggestSolution = "ball.M4";
    flash1.peripheralDriver.QSPI.QSPI_D3.$suggestSolution = "ball.P3";
    flash1.peripheralDriver.QSPI.QSPI_CLK.$suggestSolution = "ball.N2";
    flash1.peripheralDriver.QSPI.QSPI_CSn0.$suggestSolution = "ball.P1";
    gpio1.GPIO.$suggestSolution = "GPIO0";
    mcan1.MCAN.RX.$suggestSolution = "ball.L2";
    mcan1.MCAN.TX.$suggestSolution = "ball.K1";
    mcan2.MCAN.$suggestSolution = "MCAN0";
    mcan2.MCAN.RX.$suggestSolution = "ball.M1";
    mcan2.MCAN.TX.$suggestSolution = "ball.L1";

    the syscfg related to the F088GN-B-A2 project is:

     

    /**
    * 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 "AM263x_beta" --package "ZCZ" --part "AM263x" --context "r5fss1-0" --product "MCU_PLUS_SDK_AM263x@08.04.00"
    * @versions {"tool":"1.13.0+2553"}
    */

    /**
    * Import the modules used in this configuration.
    */
    const led = scripting.addModule("/board/led/led", {}, false);
    const led1 = led.addInstance();
    const gpio = scripting.addModule("/drivers/gpio/gpio", {}, false);
    const gpio1 = gpio.addInstance();
    const ipc = scripting.addModule("/drivers/ipc/ipc");
    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.
    */
    led1.$name = "BLINK_LED";

    led1.peripheralDriver = gpio1;
    gpio1.pinDir = "OUTPUT";
    gpio1.$name = "CONFIG_BLINK_LED";
    gpio1.GPIO.gpioPin.$assign = "ball.A8";

    ipc.r5fss0_1 = "NONE";
    ipc.r5fss1_1 = "NONE";
    ipc.vringMsgSize = 512;

    debug_log.enableSharedMemLog = true;

    mpu_armv71.$name = "CONFIG_MPU_REGION0";
    mpu_armv71.size = 31;
    mpu_armv71.accessPermissions = "Supervisor RD+WR, User RD";
    mpu_armv71.allowExecute = false;
    mpu_armv71.attributes = "Device";

    mpu_armv72.$name = "CONFIG_MPU_REGION1";
    mpu_armv72.size = 15;
    mpu_armv72.accessPermissions = "Supervisor RD+WR, User RD";

    mpu_armv73.$name = "CONFIG_MPU_REGION2";
    mpu_armv73.baseAddr = 0x80000;
    mpu_armv73.size = 15;
    mpu_armv73.accessPermissions = "Supervisor RD+WR, User RD";

    mpu_armv74.$name = "CONFIG_MPU_REGION3";
    mpu_armv74.accessPermissions = "Supervisor RD+WR, User RD";
    mpu_armv74.baseAddr = 0x70000000;
    mpu_armv74.size = 21;

    mpu_armv75.$name = "CONFIG_MPU_REGION4";
    mpu_armv75.baseAddr = 0x50D00000;
    mpu_armv75.size = 14;
    mpu_armv75.attributes = "Device";
    mpu_armv75.allowExecute = false;

    mpu_armv76.$name = "CONFIG_MPU_REGION5";
    mpu_armv76.baseAddr = 0x72000000;
    mpu_armv76.size = 14;
    mpu_armv76.allowExecute = false;
    mpu_armv76.attributes = "NonCached";

    mpu_armv77.$name = "CONFIG_MPU_REGION6";
    mpu_armv77.baseAddr = 0x701D0000;
    mpu_armv77.size = 15;
    mpu_armv77.attributes = "NonCached";
    mpu_armv77.allowExecute = false;

    /**
    * 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.
    */
    gpio1.GPIO.$suggestSolution = "GPIO0";

    We tried to import the examples as you suggested and they work fine but our projects don't work.

    Have you got some other suggestion?

    Waiting for your kind reply

    Thanks

    Best regards

    Gianni Perugini

  • Hi Gianni,

    I noticed the system.xml in the IPC notify is different than the one you sent. The "core id" is "MAIN_PULSAR_Cortex_R5_0_0". Yours is "Cortex_R5_0".

    Where is your system.xml came from?

    Best regards,

    Ming 

    -------------------------------------------

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <system>
    <project configuration="@match" id="project_0" name="ipc_notify_echo_am263x-lp_r5fss0-0_freertos_ti-arm-clang">
    </project>
    <core id="MAIN_PULSAR_Cortex_R5_0_0" project="project_0"/>
    <project configuration="@match" id="project_1" name="ipc_notify_echo_am263x-lp_r5fss0-1_nortos_ti-arm-clang">
    </project>
    <core id="MAIN_PULSAR_Cortex_R5_0_1" project="project_1"/>
    <project configuration="@match" id="project_2" name="ipc_notify_echo_am263x-lp_r5fss1-0_nortos_ti-arm-clang">
    </project>
    <core id="MAIN_PULSAR_Cortex_R5_1_0" project="project_2"/>
    <project configuration="@match" id="project_3" name="ipc_notify_echo_am263x-lp_r5fss1-1_nortos_ti-arm-clang">
    </project>
    <core id="MAIN_PULSAR_Cortex_R5_1_1" project="project_3"/>
    <preBuildSteps>
    </preBuildSteps>
    <postBuildSteps>
    <step command="$(MAKE) -C ${CCS_PROJECT_DIR} -f makefile_system_ccs_bootimage_gen OUTNAME=ipc_notify_echo_system PROFILE=${ConfigName} MCU_PLUS_SDK_PATH=${MCU_PLUS_SDK_PATH} CG_TOOL_ROOT=${CG_TOOL_ROOT} CCS_INSTALL_DIR=${CCS_INSTALL_DIR} CCS_IDE_MODE=${CCS_IDE_MODE}"/>
    </postBuildSteps>

    </system>

  • Hi Ming,

    Our system.xml was generated from CCS IDE.

    Have you got some other suggestion?

    Waiting for your kind reply

    Thanks

    Best regards

    Gianni Perugini

  • Hi Ming,

    Finally I fixed the issue.

    When I opened this thread, in my project I had F088GN-B-A1.syscfg and F088GN-B-A2.syscfg files. In the F088GN-B-A2.syscfg there was a wrong core r5fss0-0 after the --context (the same core that was on the F088GN-B-A1 syscfg). Yesterday, I saw this issue and I tried to fix entry on syscfg file but nothing happened.

    So, I decided to regenerate 2 new syscfg files with Syscfg tool and I call them syscfg.syscfg for both the projects... But even this time I didn't solve may issue.

    This morning, I closed all the projects, remove the syscfg files and then I restored the old F088GN-B-A1.syscfg and F088GN-B-A2.syscfg files (with the correct r5fss0-0 and r5fss1-0 cores). I reoponed the projects and... everythings works fine!!!

    As i replied before, no matter that my system.xml core id is Cortex_R5_0. The name was generated automatycally by the CCS IDE.

    Just to inform you I still using this version:

    CCS version 12.1

    mcu_plus_sdk_am263x_08_04_00_17

    sysconfig_1.14.0

    Thanks anyway

    Best regards

    Gianni Perugini

  • Hi Gianni,

    So the root cause is the incorrect core in the F088GN-B-A2.syscfg (r5fss0-0 instead of r5fss1-0).

    Glad to see this issue has been fixed. Appreciate your persistence.

    Would you mind mark this thread as "Resolved". Thanks!

    Best regards,

    Ming