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.

Code Composer Studio 4 was not detected (Error message from Hercules Safety MCU Demos)

Other Parts Discussed in Thread: HALCOGEN

Hi, I have just aqcuired a TMS570LS31xxUSB dev board and am keen to view some Code Composer Studio demos.  However, when I try to do this I get the error message given in the title followed by a pop up box saying it is not installed on the system and asking me if I want to download it.  I have seen this thread http://e2e.ti.com/support/microcontrollers/hercules/f/312/t/219081.aspx where the answers given for a different dev board were

1. You can open the Demo project from CCS under project menu -> Import existing CCS project. Assuming that the installation was in the default directory, set the search location to: C:\ti\Hercules\Hercules Safety MCU Demos\RM48x_target_sources\build.
You can build this project and flash it using 'run->load' under CCS debug view.

2. It is highly recommended that you update to CCSv5 and latest version of the HalcoGen (code creation tool) and the demo software.

3. At the minimum you need the CCS and the Hercules Demo software. That can be found at this link: http://www.ti.com/mcu/docs/mcuprodtoolsw.tsp?sectionId=95&tabId=2836&familyId=1931&toolTypeId=1

However, I can't find the appropriate folder, either in C:\Program Files (x86)\Texas Instruments\Hercules\Hercules Safety MCU Demos or using a system search, and I'm not sure how to download any software without a company, website, etc.

Could you advise me what to do to view these demos.  Thanks.

  • Nicholas,

    Welcome on our forum.

    I will recommend upgrading CCS to version 5.3 CCS4 is no more supported and I will not suggest to use it anymore.

    All upgrade are available online. 

    Please let me know if you need additional help.

  • Hi

    Thanks for the reply. I have updated to CCS 5.  However, when I debugged the Hello World example I recieved this error message.  Could you advise me as to why this might be and what I can do about it.

    Thanks again.

    IcePick: Error connecting to the target: (Error -151 @ 0x0) One of the FTDI driver functions used during the connect returned bad status or an error. The cause may one or more of: invalid emulator serial number, blank emulator EEPROM, missing FTDI drivers, faulty USB cable. Use the xds100serial command-line utility in the 'common/uscif' folder to verify the emulator can be located. (Emulation package 5.1.73.0)
    IcePick: Error connecting to the target: (Error -151 @ 0x0) One of the FTDI driver functions used during the connect returned bad status or an error. The cause may one or more of: invalid emulator serial number, blank emulator EEPROM, missing FTDI drivers, faulty USB cable. Use the xds100serial command-line utility in the 'common/uscif' folder to verify the emulator can be located. (Emulation package 5.1.73.0)
    IcePick: Error connecting to the target: (Error -151 @ 0x0) One of the FTDI driver functions used during the connect returned bad status or an error. The cause may one or more of: invalid emulator serial number, blank emulator EEPROM, missing FTDI drivers, faulty USB cable. Use the xds100serial command-line utility in the 'common/uscif' folder to verify the emulator can be located. (Emulation package 5.1.73.0)

  • Nicholas,

    First, it is necessary to check if you have all drivers installed to use the USB board.

    Open the control panel->system->Device Manager and compare to this screenshot:

    You should see the TI XDS100 Channel A and B. (The TMS570LS31xx USB has to be plugged on your PC)

    If this is the case than we can move on.
    Now you have to start CCS and check if you have a valid Target Configuration to be used for your hardware.
    To create a new Target Configuration, open View->Target Configuration.
    Right click in the Target Configuration window and select New Target Configuration.
    Name this configuration TMS570LS31xxUSB.ccxml for example.
    Configure it as following:

    Save and click on Test Configuration. A test sequence will be executed and search for error.
    If the test is ok than continue.

    From the Target Configuration window, right click on your new configuration and select: Launch Selected Configuration.
    Connect to the target as following:

    CCS is now connected to your target.

    Please let me know when you are at this point.




  • Hi,

    Thanks again.  I have drivers installed and created and saved the installation.  I have copied and pasted the test connection results below, followed by a screenshot taken after my attempt to connect target.

    [Start]

    Execute the command:

    %ccs_base%/common/uscif/dbgjtag -f %boarddatafile% -rv -o -F inform,logfile=yes -S pathlength -S integrity

    [Result]


    -----[Print the board config pathname(s)]------------------------------------

    C:\Users\Nick\AppData\Local\.TI\693494126\
        0\0\BrdDat\testBoard.dat

    -----[Print the reset-command software log-file]-----------------------------

    This utility has selected a 100- or 510-class product.
    This utility will load the adapter 'jioserdesusb.dll'.
    The library build date was 'Apr  1 2013'.
    The library build time was '23:55:08'.
    The library package version is '5.1.73.0'.
    The library component version is '35.34.40.0'.
    The controller does not use a programmable FPGA.
    The controller has a version number of '4' (0x00000004).
    The controller has an insertion length of '0' (0x00000000).
    This utility will attempt to reset the controller.
    This utility has successfully reset the controller.

    -----[Print the reset-command hardware log-file]-----------------------------

    The scan-path will be reset by toggling the JTAG TRST signal.
    The controller is the FTDI FT2232 with USB interface.
    The link from controller to target is direct (without cable).
    The software is configured for FTDI FT2232 features.
    The controller cannot monitor the value on the EMU[0] pin.
    The controller cannot monitor the value on the EMU[1] pin.
    The controller cannot control the timing on output pins.
    The controller cannot control the timing on input pins.
    The scan-path link-delay has been set to exactly '0' (0x0000).

    -----[The log-file for the JTAG TCLK output generated from the PLL]----------

    There is no hardware for programming the JTAG TCLK frequency.

    -----[Measure the source and frequency of the final JTAG TCLKR input]--------

    There is no hardware for measuring the JTAG TCLK frequency.

    -----[Perform the standard path-length test on the JTAG IR and DR]-----------

    This path-length test uses blocks of 512 32-bit words.

    The test for the JTAG IR instruction path-length succeeded.
    The JTAG IR instruction path-length is 6 bits.

    The test for the JTAG DR bypass path-length succeeded.
    The JTAG DR bypass path-length is 1 bits.

    -----[Perform the Integrity scan-test on the JTAG IR]------------------------

    This test will use blocks of 512 32-bit words.
    This test will be applied just once.

    Do a test using 0xFFFFFFFF.
    Scan tests: 1, skipped: 0, failed: 0
    Do a test using 0x00000000.
    Scan tests: 2, skipped: 0, failed: 0
    Do a test using 0xFE03E0E2.
    Scan tests: 3, skipped: 0, failed: 0
    Do a test using 0x01FC1F1D.
    Scan tests: 4, skipped: 0, failed: 0
    Do a test using 0x5533CCAA.
    Scan tests: 5, skipped: 0, failed: 0
    Do a test using 0xAACC3355.
    Scan tests: 6, skipped: 0, failed: 0
    All of the values were scanned correctly.

    The JTAG IR Integrity scan-test has succeeded.

    -----[Perform the Integrity scan-test on the JTAG DR]------------------------

    This test will use blocks of 512 32-bit words.
    This test will be applied just once.

    Do a test using 0xFFFFFFFF.
    Scan tests: 1, skipped: 0, failed: 0
    Do a test using 0x00000000.
    Scan tests: 2, skipped: 0, failed: 0
    Do a test using 0xFE03E0E2.
    Scan tests: 3, skipped: 0, failed: 0
    Do a test using 0x01FC1F1D.
    Scan tests: 4, skipped: 0, failed: 0
    Do a test using 0x5533CCAA.
    Scan tests: 5, skipped: 0, failed: 0
    Do a test using 0xAACC3355.
    Scan tests: 6, skipped: 0, failed: 0
    All of the values were scanned correctly.

    The JTAG DR Integrity scan-test has succeeded.

    [End]

  • Sorry, my attempts to post the screenshot do not seem to have been successful (they are not visible to me). I will try once more.

  • Nicholas,

    You are now able to connect and debug your target.

    The default "Hello World" available in CCS cannot be used as is on our part.
    This code does not initialize anything in the device. (I've asked to remove it many times, it is confusing)

    The easiest way to start an application is to use Halcogen.
    Halcogen is available from our software page and I will recommend to use the latest release. (03.05.02)

    Here is a CCS project and Halcogen project for Hello_World.

    Please try it and let me know if it is working for you.

    0247.Hello_World.zip

  • I have updated to the latest demo software, which takes me to the eclipse platform and opens the code, I assume for the demo programs.  I'm still not sure how to upload a program to the MCU from either CCS, HalCoGen.  How do I get the Hello_World program to run on the MCU? (Apart from Arduino, I am completely new to MCUs).

  • Nicholas,

    Once you have unzipped the project hello_word, go in CCS and select Project->Import as shown below.

    Browse and select the project directory and click OK.

    Now the project is visible in CCS Project Explorer window.

    Start a debug session using your target configuration.

    Connect to the target.

    Load code in target.

    Use browse project to navigate to the out file.

    Click ok. The download is starting, the code is programmed in the internal FLASH.

    Automatically CCS will run your code from reset and stop in your main routine as shown below.

    Use the Step Over button to execute your code.

    On execution of printf, the message "Hello World" is printed out in the Console window.

    To understand the device initialization, I recommend to now reset the part and execute from the reset vector.

    Use Step Into (F5) and Step Over (F6) to execute your code.

    Please let me know if this quick intro is helpful.

  • Nicholas,

    Did you had a chance to dbug the "hello world" project.

    If your problem is solved, can you please mark my answer as verified so i can close this thread.

  • Hi.  Sorry for the slow reply.  This is very helpful.  Is there anywhere I can find documentation about how to reference the pins in code, and also for the TI libraries?  One last question.  Are all the non-main source code files in the "hello world" project necessary for initialization, and can I copy and paste these as a starting point for a new project?

  • Nicholas,

    To create the Hello_World project, I've used HalCoGen.

    This tool, via a GUI interface, allows you to create the startup code for your application.
    It will configure all aspect of the device. It also provides a way to generate drivers code for almost all IPs available in the device.
    When you start using Halcogen and create a new project, you will have to select the device type and the board you are using.
    That way Halcogen knows the resources available for your application.
    In the case of this Hello_World project, I've deselected the generation of all module drivers to make is easier to understand.
    There is part of the help in Halcogen some example code to use RTI, NHET, SPI...
    I will suggest to go through these basic examples to understand better the concept.

    Concerning the IOs, Halcogen provides a driver for GIO. Via this driver you have API to set direction, set a pin high, low, interrupt and many others options.
    This GIO driver can be use for the dedicated GIO module as well as NHET.
    NHET (programmable timer) can manage 32 dedicated pins for PWM, Capture...
    When not used for timing purposes, these 32 pins can also be managed as simple IO pins. (You will find an example to use NHET pin as basic IO in the blinky example)

    When you generate the code with Halcogen, it will create a directory for source and a directory for your header files.
    Not all c and h files are necessary, but I don't see a reason to remove the one not used.
    During compilation and link time, only the code necessary for your application is used.

    At this point, I will suggest to close this thread, and if you have any other question, please open a new one.

    To close a thread, just mark my answer as "verified answer"

  • 你是怎么解决上面图片所显示的问题