AM6442: AM64 MCU SDK in CCS v20, Fetch Board Configuraiton for resource table error

Part Number: AM6442
Other Parts Discussed in Thread: SYSCONFIG

Tool/software:

Hi all,

When using the AM64 MCU SDK 11.00.00.15 with CCS v20.1.1, it throws an error in the Sysconfig GPIO section when pushing the "GET RM DATA" button for the interrupt configuration.

Little background:
We want to change the resource tables of the AM64 which we did following the instructions in this thread: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1198105/faq-am64x-how-to-run-mcu-sdk-gpio_input_interrupt-example-for-r5fss0-0-with-linux-running-on-a53. As far as I can tell, after the change the new resources should be pulled into the project when pushing that button.

The button somehow works when starting Sysconfig directly without CCS, but then the build throws an error.

I have tried different versions of CCS 20.x and Sysconfig 1.20+ but it seems to be the same error and it looks more it is tied to the MCU SDK?

Is this something wrong with my install? (I am going to spin up a clean VM and make a new install next)

Or is there some fundamental bug?

To reproduce:

Load the "gpio_input_interrupt_am64x-evm_r5fss0-0_nortos" example of the "mcu_plus_sdk_am64x_11_00_00_15" SDK inside CCS v20.x.

Open Sysconfig, go to GPIO, push the GET RM DATA button at "Fetch Board Configuration".

Best regards,

Ergin

  • Small update.


    On a fresh install inside a VM with the following specs I am getting the following behavior:

    Specs: 

    - OS: Windows 10

    - SDK: mcu_plus_sdk_am64x_11_00_00_15

    - CCS: CCS1281 and CCS2011

    - Sysconfig: 1.23.1

    Behavior with the following experiments:

    1. "gpio_input_interrupt_am64x-evm_r5fss0-0_nortos_ti-arm-clang" project inside CCS1281 clicking "GET RM DATA" works fine and compiles fine.

    2. "hello_world_am64x-sk_r5fss0-0_freertos_ti-arm-clang" project inside CCS1281 -> GPIO -> ADD -> Enable Interrupt Configuration -> "GET_RM DATA" works fine and compiles fine.

    3 . "gpio_input_interrupt_am64x-evm_r5fss0-0_nortos_ti-arm-clang" project inside CCS2011 clicking "GET RM DATA" works fine and compiles fine.

    4.  "hello_world_am64x-sk_r5fss0-0_freertos_ti-arm-clang" project inside CCS2011 -> GPIO -> ADD -> Enable Interrupt Configuration -> "GET_RM DATA" works fine and compiles fine.

    5. "hello_world_am64x-evm_r5fss0-0_freertos_ti-arm-clang" project inside CCS2011 -> GPIO -> ADD -> Enable Interrupt Configuration -> "GET_RM DATA" crashes or rather throws the before mentioned error.

    6. Further sporadic testing showed for some projects it worked for some it didn't.

    Not sure what to make of it yet...

    Edit: I just recognized the error happens after it has been compiled once or also editing the ,syscfg file especially like adding more gpio interrupts or so. It happens in all projects as far as I can tell and also in the old CCS1281.

    Cheers

  • Hi Ergin,

    It seems there are some path errors in the source code of SDK. Please apply the below patch and try once.

    diff --git a/source/sysconfig/drivers/.meta/gpio/soc/getBoardConfigRm.js b/source/sysconfig/drivers/.meta/gpio/soc/getBoardConfigRm.js
    index 63a51981..ad68465d 100644
    --- a/source/sysconfig/drivers/.meta/gpio/soc/getBoardConfigRm.js
    +++ b/source/sysconfig/drivers/.meta/gpio/soc/getBoardConfigRm.js
    @@ -154,7 +154,7 @@ try {
     }
     
     try {
    -    var cfg = path.resolve(dir, `../../../sciclient/sciclient_default_boardcfg/${soc}/sciclient_defaultBoardcfg_rm.c`)
    +    var cfg = path.resolve(dir, `../../../../../drivers/sciclient/sciclient_default_boardcfg/${soc}/sciclient_defaultBoardcfg_rm.c`)
         var cfgData = fs.readFileSync(cfg, "utf-8");
     } catch (err) {
         writeErrorLog("Board Cfg File Read Error !!\n" + err);
    diff --git a/source/sysconfig/drivers/.meta/gpio/v0/gpio_v0.syscfg.js b/source/sysconfig/drivers/.meta/gpio/v0/gpio_v0.syscfg.js
    index 50b35bc3..dc2dc677 100644
    --- a/source/sysconfig/drivers/.meta/gpio/v0/gpio_v0.syscfg.js
    +++ b/source/sysconfig/drivers/.meta/gpio/v0/gpio_v0.syscfg.js
    @@ -296,11 +296,11 @@ function getConfigurables() {
                         let nodeCmd = common.getNodePath()
                         let products = system.getProducts()
                         let sdkPath = products[0].path.split("/.metadata/product.json")[0]
    -                    let filePath = sdkPath + "/source/drivers/.meta/gpio/soc/getBoardConfigRm.js"
    +                    let filePath = sdkPath + "/source/sysconfig/drivers/.meta/gpio/soc/getBoardConfigRm.js"
                         let socName = common.getSocName();
                         if (system.getOS() == "win") {
                             sdkPath = products[0].path.split("\\.metadata\\product.json")[0]
    -                        filePath = sdkPath + "//source//drivers//.meta//gpio//soc//getBoardConfigRm.js"
    +                        filePath = sdkPath + "//source//sysconfig//drivers//.meta//gpio//soc//getBoardConfigRm.js"
                         }
                         return {
                             command: nodeCmd,
    diff --git a/source/sysconfig/drivers/.meta/gpio/v0_1/gpio_v0_1.syscfg.js b/source/sysconfig/drivers/.meta/gpio/v0_1/gpio_v0_1.syscfg.js
    index 3f51684a..4af879a4 100644
    --- a/source/sysconfig/drivers/.meta/gpio/v0_1/gpio_v0_1.syscfg.js
    +++ b/source/sysconfig/drivers/.meta/gpio/v0_1/gpio_v0_1.syscfg.js
    @@ -187,11 +187,11 @@ function getConfigurables() {
                         let nodeCmd = common.getNodePath()
                         let products = system.getProducts()
                         let sdkPath = products[0].path.split("/.metadata/product.json")[0]
    -                    let filePath = sdkPath + "/source/drivers/.meta/gpio/soc/getBoardConfigRm.js"
    +                    let filePath = sdkPath + "/source/sysconfig/drivers/.meta/gpio/soc/getBoardConfigRm.js"
                         let socName = common.getSocName();
                         if (system.getOS() == "win") {
                             sdkPath = products[0].path.split("\\.metadata\\product.json")[0]
    -                        filePath = sdkPath + "//source//drivers//.meta//gpio//soc//getBoardConfigRm.js"
    +                        filePath = sdkPath + "//source//sysconfig//drivers//.meta//gpio//soc//getBoardConfigRm.js"
                         }
                         return {
                             command: nodeCmd,
    

    Please update the results.

    I have tested this with MCU+SDK v11.00 and CCS v12.8.1 and the issue you are facing above doesn't seems to occur with above changes.

    Regards,

    Tushar

  • Hi Tushar,

    Thank you for the patch. Applying it and using CCS v12.8.1 does work now, except we have just migrated to CCS 20. 

    On CCS 20.x the solution does not work somehow. How could that be and is that something that will be fixed?

    On a side note, on Windows the patch doesn't work somehow (git is a bit odd sometimes on Windows), I had to fiddle in the changes by hand. On Linux the patch worked fine.

    Best regards,

    Ergin

  • Hi Ergin,

    From the AM64x MCU+SDK documentation, it looks like the SDK is not tested with the latest CCS v20. This will hopefully be supported by the next SDK release.

    On a side note, on Windows the patch doesn't work somehow (git is a bit odd sometimes on Windows), I had to fiddle in the changes by hand. On Linux the patch worked fine

    Not sure what the problem here is with git tool. I have created the patch from windows machine and tested it on another windows machine. It works fine for me.

    Regards,

    Tushar

  • Tushar:  Are we talking about AM64x MCU+SDK v12 timeframe for CCS v20 interactivity?  I think it may be quite a task to re-regression test for MCU+SDK v 11.1 (estimated July); also have to consider the Industrial Communications SDK version.

    regards

    Jim