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.

PROCESSOR-SDK-AM64X: MCU-PLUS-SDK-AM64X

Part Number: PROCESSOR-SDK-AM64X
Other Parts Discussed in Thread: SYSCONFIG, ADC-PHI-PRU-EVM, ADS8598H

Working with v08.06.00.45, I'm running into the following problem building a default example:

user@ubuntu:~/ti/mcu_plus_sdk_am64x_08_06_00_45$ make -s -C examples/pru_io/adc/ads85x8/am64x-evm/r5fss0-0_freertos/ti-arm-clang all
Generating SysConfig files ...
Running script...
Validating...
info: /kernel/dpl/debug_log uartLog.baudRate: Actual Baudrate Possible: 115385 (0 % error)
Generating Code (example.syscfg)...
Writing /home/user/ti/mcu_plus_sdk_am64x_08_06_00_45/examples/pru_io/adc/ads85x8/am64x-evm/r5fss0-0_freertos/ti-arm-clang/generated/ti_dpl_config.c...
Writing /home/user/ti/mcu_plus_sdk_am64x_08_06_00_45/examples/pru_io/adc/ads85x8/am64x-evm/r5fss0-0_freertos/ti-arm-clang/generated/ti_dpl_config.h...
Writing /home/user/ti/mcu_plus_sdk_am64x_08_06_00_45/examples/pru_io/adc/ads85x8/am64x-evm/r5fss0-0_freertos/ti-arm-clang/generated/ti_drivers_config.c...
Writing /home/user/ti/mcu_plus_sdk_am64x_08_06_00_45/examples/pru_io/adc/ads85x8/am64x-evm/r5fss0-0_freertos/ti-arm-clang/generated/ti_drivers_config.h...
Writing /home/user/ti/mcu_plus_sdk_am64x_08_06_00_45/examples/pru_io/adc/ads85x8/am64x-evm/r5fss0-0_freertos/ti-arm-clang/generated/ti_drivers_open_close.c...
Writing /home/user/ti/mcu_plus_sdk_am64x_08_06_00_45/examples/pru_io/adc/ads85x8/am64x-evm/r5fss0-0_freertos/ti-arm-clang/generated/ti_drivers_open_close.h...
Writing /home/user/ti/mcu_plus_sdk_am64x_08_06_00_45/examples/pru_io/adc/ads85x8/am64x-evm/r5fss0-0_freertos/ti-arm-clang/generated/ti_pinmux_config.c...
Writing /home/user/ti/mcu_plus_sdk_am64x_08_06_00_45/examples/pru_io/adc/ads85x8/am64x-evm/r5fss0-0_freertos/ti-arm-clang/generated/ti_power_clock_config.c...
Writing /home/user/ti/mcu_plus_sdk_am64x_08_06_00_45/examples/pru_io/adc/ads85x8/am64x-evm/r5fss0-0_freertos/ti-arm-clang/generated/ti_board_config.c...
Writing /home/user/ti/mcu_plus_sdk_am64x_08_06_00_45/examples/pru_io/adc/ads85x8/am64x-evm/r5fss0-0_freertos/ti-arm-clang/generated/ti_board_config.h...
Writing /home/user/ti/mcu_plus_sdk_am64x_08_06_00_45/examples/pru_io/adc/ads85x8/am64x-evm/r5fss0-0_freertos/ti-arm-clang/generated/ti_board_open_close.c...
Writing /home/user/ti/mcu_plus_sdk_am64x_08_06_00_45/examples/pru_io/adc/ads85x8/am64x-evm/r5fss0-0_freertos/ti-arm-clang/generated/ti_board_open_close.h...
Writing /home/user/ti/mcu_plus_sdk_am64x_08_06_00_45/examples/pru_io/adc/ads85x8/am64x-evm/r5fss0-0_freertos/ti-arm-clang/generated/ti_enet_config.c...
Writing /home/user/ti/mcu_plus_sdk_am64x_08_06_00_45/examples/pru_io/adc/ads85x8/am64x-evm/r5fss0-0_freertos/ti-arm-clang/generated/ti_enet_config.h...
Writing /home/user/ti/mcu_plus_sdk_am64x_08_06_00_45/examples/pru_io/adc/ads85x8/am64x-evm/r5fss0-0_freertos/ti-arm-clang/generated/ti_enet_open_close.c...
Writing /home/user/ti/mcu_plus_sdk_am64x_08_06_00_45/examples/pru_io/adc/ads85x8/am64x-evm/r5fss0-0_freertos/ti-arm-clang/generated/ti_enet_open_close.h...
Writing /home/user/ti/mcu_plus_sdk_am64x_08_06_00_45/examples/pru_io/adc/ads85x8/am64x-evm/r5fss0-0_freertos/ti-arm-clang/generated/ti_enet_soc.c...
Writing /home/user/ti/mcu_plus_sdk_am64x_08_06_00_45/examples/pru_io/adc/ads85x8/am64x-evm/r5fss0-0_freertos/ti-arm-clang/generated/ti_enet_lwipif.c...
Writing /home/user/ti/mcu_plus_sdk_am64x_08_06_00_45/examples/pru_io/adc/ads85x8/am64x-evm/r5fss0-0_freertos/ti-arm-clang/generated/ti_enet_lwipif.h...
Writing /home/user/ti/mcu_plus_sdk_am64x_08_06_00_45/examples/pru_io/adc/ads85x8/am64x-evm/r5fss0-0_freertos/ti-arm-clang/generated/ti_pru_io_config.inc...
Compiling: am64x:r5fss0-0:freertos:ti-arm-clang adc.release.out: ../../../ads8598_example.c
Compiling: am64x:r5fss0-0:freertos:ti-arm-clang adc.release.out: ../../../adc_functions.c
Compiling: am64x:r5fss0-0:freertos:ti-arm-clang adc.release.out: ../main.c
Compiling: am64x:r5fss0-0:freertos:ti-arm-clang adc.release.out: generated/ti_drivers_config.c
generated/ti_drivers_config.c:260:26: error: incompatible integer to pointer conversion initializing 'Config_Mem_Struct *' with an expression of type 'unsigned long' [-Werror,-Wint-conversion]
        .config        = CSL_PRU_ICSSG0_DRAM0_SLV_RAM_BASE + 0,
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/user/ti/mcu_plus_sdk_am64x_08_06_00_45/source/drivers/hw_include/am64x_am243x/cslr_soc_baseaddress.h:415:100: note: expanded from macro 'CSL_PRU_ICSSG0_DRAM0_SLV_RAM_BASE'
#define CSL_PRU_ICSSG0_DRAM0_SLV_RAM_BASE                                                          (0x30000000UL)
                                                                                                   ^
1 error generated.
makefile:162: recipe for target 'ti_drivers_config.obj' failed
make: *** [ti_drivers_config.obj] Error 1 

Is this perhaps an issue with Sysconfig (v1.14.0)?

I can disable the generated files from being rebuilt in syscfg-gui, and then modify generated/ti_drivers_config.c:260 with a manual type cast to a void* to resolve the error and build the app image. 

When I attempt to boot the default adc.release.appimage on a AM64x GPEVM + ADC-PHI-PRU-EVM Adapter + ADS8588SEVM, I only get the following output on the serial console:

DMSC Firmware Version 8.6.4--v08.06.04 (Chill Capybar
DMSC Firmware revision 0x8
DMSC ABI revision 3.1

[BOOTLOADER_PROFILE] Boot Media       : SD Card
[BOOTLOADER_PROFILE] Boot Image Size  : 51 KB
[BOOTLOADER_PROFILE] Cores present    :
r5f0-0
[BOOTLOADER PROFILE] SYSFW init                       :      10929us
[BOOTLOADER PROFILE] System_init                      :      17143us
[BOOTLOADER PROFILE] Drivers_open                     :      62140us
[BOOTLOADER PROFILE] Board_driversOpen                :          0us
[BOOTLOADER PROFILE] Sciclient Get Version            :      10023us
[BOOTLOADER PROFILE] File read from SD card           :      10264us
[BOOTLOADER PROFILE] CPU load                         :       1407us
[BOOTLOADER_PROFILE] SBL Total Time Taken             :     111911us

Image loading done, switching to application ...
--------------------------------------------------
Initializing ADC
--------------------------------------------------
Powering up ADC
--------------------------------------------------
Resetting ADC
--------------------------------------------------
Starting ADC Conversion
Started

(I've actually reproduced this boot log by building the adc app in both windows and Ubuntu linux now too  btw).

I never get anymore output with the channel measurements I'm expecting, per the documentation for this example. Looking for some help to get those measurements working.

Note:

Thanks for all the help!

  • Hello,

    Is this perhaps an issue with Sysconfig (v1.14.0)?

    No, this is not a problem with your system configuration version; it is mainly a problem with gmake compile settings.

    I have tried to reproduce the issue at my side and compiled same projects from CCS.

    I have not received any compilation errors.

    Please see the image below.

    Again ,  I have compiled the same project  in gmake, and I got the same error which you got.

    Typically, both compilers have the same compiler settings, and I will raise a defect on this issue .

    Temporarily , I have modified the make file to compile them; currently in gmake, all warnings are generating errors, so I removed that setting. Please see the image below after removing the highlighted color, and it is compiling.

    I am Routing your query to PRU ADC expert for commenting on second question .

    You may expect a reply for the second issue next week since PRU ADC experts are not available this week.

    Regards,

    S.Anil.

  • "You may expect a reply for the second issue next week since PRU ADC experts are not available this week."

    Any updates on running the MCU+ Example on a TI AM64x EVM?

    I noticed a new MCU+ release, is the newer release expected to work any better with regards to this specific example?

  • I have moved to another expert on this topic and hope he can help you. Since PRU experts are still in training.

    Regards,

    S.Anil.

  • True,

    Looking at the logs it looks like the program has moved ahead with the ADC configurations and you are still not able to capture any data.

    I have few queries just to understand your problem better.

    1. have you tried to do data capture using the ADS8588 Software https://www.ti.com/lit/zip/slyc145
    2. if you can capture the logic Analyzer Trace at these Test points and compare with ADS8588 Software and the Processor SDK SW, See snapshots from User Guide below

    what i am trying to understand if there is some mismatch in ADC configuration, as the Pin Connection is mostly hard wired

    Regards

    Anshu

  • Greetings Anshu,

    I appreciate the debugging tips... sounds like no one at TI is sure if this example (https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/08_06_00_45/exports/docs/api_guide_am64x/EXAMPLES_PRU_ADC_ADS85x8.html) actually works with AM64x GPEVM + ADC-PHI-PRU-EVM Adapter + ADS8588SEVM (without using the out-of-stock ADS8598H chip).

    I'll try following your debugging tips, thanks for the help.

  • Hi, 

    I noticed a new MCU+ release, is the newer release expected to work any better with regards to this specific example?

    Can you please give it a try with the examples from the latest release (9.0). There were some fixes made to the example as part of this release. 

    Also, if you still see some issues, it will be helpful if you can capture the signals as Anshu mentioned earlier using the test points on the ADC EVM and compare them with AM64x MCU+ SDK: ADS85x8 Implementation Details or also share with us. 

    Also, as mentioned by Anil please try to compile it using CCS.

    Thanks.