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.

RTOS/PROCESSOR-SDK-AM437X: Endat diagnostic example problem

Part Number: PROCESSOR-SDK-AM437X
Other Parts Discussed in Thread: SYSBIOS, AM4379

Tool/software: TI-RTOS

Hi

When I run the endat diagnostic example code, it will get stuck in CONSOLEUtilsInit() function and never comes out

I use "run-> Step Into" to trace where the code is running, but it is seems not working

CCS won't show where the code is running

How can I trace the code in better way?

Is there any suggestion to solve this problem?

My Develop Enviroment:

Board: AM437x Industrial EVM Rev1.4A

CCS: 6.2.0.00050 

sysbios_ind_sdk: 02.01.03.02

Compiler: GNU v4.9.3(Linaro)

SYS/BIOS: 6.42.3.35

XDCtool: 3.31.2.38

Thanks a lot

Yi-Lin

  • The RTOS team have been notified. They will respond here.
  • Hi

    Each Sysbios Industrial SDK has specific tool requirements. These are documented in software section of the User Guide.

     http://processors.wiki.ti.com/index.php/SYSBIOS_Industrial_SDK_02.01.03_User_Guide#Software.C2.A0

    This release requires

    • Code Composer Studio version CCS 6.1.2.00015
    • Industrial SDK version 2.1.3
    • SYS/BIOS 6.45.01.29 Real Time Operating System
    • XDC Tool 3.32.00.06
    • NDK 2.24.3.35
    • Compiler GNU v4.8.4 (Linaro)

    David

  • Yi-Lin, along with David suggestions, I would suggest to pause/stop running and see in which function is stuck (maybe check in disassembly window could help). Also you can add a breakpoint in the line in CONSOLEUtilsInit(), and then step into.

    Let us know how your testing goes.

    thank you,

    Paula

  • Hi Paula

    Thanks for your replying.

    I change my Development Environment to 

    • Code Composer Studio version CCS 6.1.2.00015
    • Industrial SDK version 2.1.3
    • SYS/BIOS 6.45.01.29 Real Time Operating System
    • XDC Tool 3.32.00.06
    • NDK 2.24.3.35
    • Compiler GNU v4.8.4 (Linaro)

    I use Blackhawk USB560v2 System Trace for JTAG


    But the problem still can't be solve

    I check disassembly window.

    When program runs into CONSOLEUtilsInit(), CCS will tell me "No source available for CONSOLEUtilsInit()"

    I use Assembly step into to trace the code step by step on Disassembly window.

    When step into I2CModuleEnable(), the program will immediately jump to address 0x80056010. 

    And then get into ti_sysbios_family_arm_exc_Exception_excHandlerDataAsm__I.

    Seems like something going wrong in I2CModuleEnable()

    Please let me know how can I solve this problem

    Thanks 

    Yi-Lin

  • Hi Yi-Lin, when CCS shows "No source available for CONSOLEUtilsInit()" you have the option to add a path to the file.
    Searching ISDK 2.1.3.2 I found the paths for these two functions are:
    C:\TI\sysbios_ind_sdk_02.01.03.02\sdk\starterware\dal\i2c.c
    C:\TI\sysbios_ind_sdk_02.01.03.02\sdk\starterware\utils\console_utils.c

    If you add the paths you can keep steeping into functions

    thank you,
    Paula
  • Hi Paula,

    I add the files(i2c.c, console_utils.c, etc.) to example project

    The program will get into ti_sysbios_family_arm_exc_Exception_excHandlerDataAsm__I() when running for loop in BOARDGetDeviceCtrlModInstNum() (board.c line 541)

    I guess this exception might be cause by the symbol AM43XX_FAMILY_BUILD did not be define.

    Let pBoardData get NULL value from BOARDGetData() function.

    So I add AM43XX_FAMILY_BUILD to define symbols.

    And the program will step into ti_sysbios_family_arm_exc_Exception_excHandlerDataAsm__I()  agin, when running HW_WR_FIELD32_RAW() (hw_types.h line 387) in I2CModuleEnable() .

    Is there any configuration need to be set but I miss?

    Thanks

    Yi-Lin

  • Hi Yi-Lin

    If you are using an The AM4379 IDK has a USB connector for an XDS100 Emulator interface. The interface is implemented with a FT2232HL.  The FT2232HL also supports a UART interface.  When we use the XDS100 interface this UART port is used to provide console output using a terminal emulator program like teraterm/ hyperterminal/ minicom. This is what is meant by the 2nd paragraph in User Guide's EnDat Diagnostic section .

    "This application is controlled with a terminal interface using a serial over USB connection between the PC host and the EVM. Please connect a USB cable between the PC and the EVM. A serial terminal application (like teraterm/ hyperterminal/ minicom) is then run on the host. To configure, select the serial port corresponding to the port emulated over USB by the EVM."  

    Then - Instead of using the Blackhawk USB560v2 System Trace for JTAG -  connect a USB cable from your PC to the board and use the XDS 100 v2 emulator that is on the AM4379 IDK .  Power up the AM4379 IDK.  

    To configure the serial terminal application , select the serial port corresponding to the port emulated over USB by the EVM. The host serial port should be configured to 115200 baud, no parity, 1 stop bit and no flow control.

    Using CCS connect to the A9 and load the example program, If you have to reset the board close the terminal emulation and repeat the serial port connection and configuration.

    Place a breakpoint around line 1752 and run the program . You should see something like.


     

    David

     

  • Hi David,

    I delete and re-import the example project again.

    Connect the USB to my computer, use XDS 100v2 emulator for JTAG, Tera Term for serial terminal.

    I add a breakpoint at  line 1752  in endat_app.c

    but the program won't stop at that breakpoint, nothing be print at serial terminal.

    The program get stuck in  ti_sysbios_family_arm_exc_Exception_excHandlerDataAsm__I() as before

    I have to apologize that there is one thing I forget to mention

    When I build the imported endat diagnostic example project, I will get lots of warnings and errors.

    I found the IA_SDK_HOME is set to C:\ti\am335x_sysbios_ind_sdk_01.01.03.03\sdk by default.

    These warnings and errors can be solve by changing IA_SDK_HOME to C:\ti\sysbios_ind_sdk_02.01.03.02\sdk.

    Is there any configurations also need be set but I miss?

    My project setting is 

    Please help me get through this problem.

    Many thanks

    Yi-Lin

  • And do I need to change the boot mode follow by SYSBIOS Industrial SDK Getting Started Guide?

    Thanks.

    Yi-Lin
  • Hi Yi-Lin,  quick question, is your PC environmental variable "IA_SDK_HOME" set correctly? below example

    thank you,

    Paula

  • Hi Yi-Lin

    Paula is making a very good point. This IA_SDK_HOME is used throughout the project. We need to set it as an environmental variable. This is documented in http://processors.wiki.ti.com/index.php/SYSBIOS_Industrial_SDK_02.01.03_User_Guide#SDK_Setup

    The process that we recommend to build a project is under  http://processors.wiki.ti.com/index.php/SYSBIOS_Industrial_SDK_Getting_Started_Guide#Building_and_Running_Sample_Application

    The debugger input is the USB connector on the AM437x IDK board. Nothing is connected to the JTAG port.

    The build configuration should not have a load file

    I update the project tool settings to use the settings recommended in the User Guide

    I do not add any additional symbols

  • Hi David

    When I set "Linker command file" to <none>

    The example project works

    Many Thanks

    Yi-Lin