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.

StellarisWare USB Library rebuild issue on RDK-IDM-SBC

Other Parts Discussed in Thread: CCSTUDIO

I am having issues attempting to use the StellarisWare USB library to program a device to work with a USB keyboard, so I have gone back to the TI development kit: a RDK-IDM-SBC.

This development system works OK with my USB keyboard with the default loaded version of the firmware.

However: Once I get the firmware to rebuild (source in C:\StellarisWare\boards\rdk-idm-sbc\qs-blox) the USB keyboard in now inoperative: I never see any calls to the KeyboardCallback() function whilst debugging.

Notably I did have to change some settings to get the software to build: I had to change some Include Library files in the 'File Search Path' part of the 'ARM Linker' settings for the qs-blox project.
I changed "${PROJECT_ROOT}/../../../../driverlib/ccs/Debug/driverlib.lib" to "${PROJECT_ROOT}/../../../../driverlib/ccs-cm3/Debug/driverlib-cm3.lib" , "${PROJECT_ROOT}/../../../../grlib/ccs/Debug/grlib.lib" to "${PROJECT_ROOT}/../../../../grlib/ccs-cm3/Debug/grlib-cm3.lib" and "${PROJECT_ROOT}/../../../../usblib/ccs/Debug/usblib.lib" to "${PROJECT_ROOT}/../../../../usblib/ccs-cm3/Debug/usblib-cm3.lib".

I thought that this was just to do with the split of Stellarisware and TivaWare.

Is there some dependency that I am missing, or some library change that means this is no longer working?

Thanks in advance for any assistance with this issue.

  • Hi,

    I don't have this development board, therefore I can only talk about the project build aspects.

    By using CCSv5.5 and Stellarisware version 9453 I was able to build this project without any modifications to the library names, therefore you may be using an older release which may have a hidden bug.

    If you have the original working .out file (usually in the original project location under the Stellarisware install directory), you can also try to compare both files using one of the cg_xml utilities called objdiff.

    To perform the comparison, simply type the following command from inside the cg_xml bin directory (using the typical default paths for CCSv5 and Stellarisware):

    objdiff C:\Users\user\workspace_v5_5\qs-blox\Debug\qs-blox.out C:\StellarisWare\boards\rdk-idm-sbc\qs-blox\ccs\Debug C:\ti\ccsv5\tools\compiler\arm_5.1.1\bin\armofd.exe

    I did the comparison in mine and found out the differences in the attached file.

    Unfortunately to explain the differences you will have to check with the experts in the Tiva forum.

    Hope this helps,

    Rafael

  • Your rebuilding USBlib, right?

    When I rebuilt the TivaWare usblib to enable DEBUG and setup my own project, I had to enable optimizations (-O2) for it to work. The symptom was only one callback to my HID device. Pretty sure the rest of the errors were pretty obvious compile time errors.

  • Hi,

    Well, I wasn't aware you were rebuilding USBLib and using Tivaware, but even still I did and it built without errors. I even included the newly built usblib into the qs-blox project and everything built fine. As I mentioned before I can't tell anything about the runtime aspects, as I don't have the board.

    All that said, what I read from your post is that everything is working now, is that so?

    Regards,

    Rafael

     

  • I'm not the person with the issue. I thought he was rebuilding usblib.

    But when I re-read it looks like I might be wrong. Sorry to confuse anyone and hopefully the original poster will clarify.

    (I came hereabout copy expressions in the watch window in CCS 5.5 debug, but that looks like it's a known issue.)

  • Duh, you are definitely not the original poster. I am the one confused. I'll hold off and wait for additional info.

  • I am trying to recompile the qs-blox example application that comes preinstalled on the RDK-IDM-SBC reference design, which includes USB host support for a USB keyboard, to control the game.

    Basically this is because my application did not work and I felt it would be easier to tackle this with known hardware and software.

    I currently have Stellarisware version 10636, which is the current version at http://www.ti.com/tool/sw-drl
    I believe that the changes that I required were due to changes in the Stellarisware folder structure when it supported both the Stellaris Cortex M3 and what are now called the Tiva Cortex M4 microcontrollers. These have now split into two separate packages, but the new folder convention has remained.

    I also have version 10636 of the USB library. Again the current version, at http://www.ti.com/tool/sw-usbl

    Once the above changes were made the software does build successfully, with no warnings or errors, but the USB keyboard does not work.
    Currently I have only tried the Debug version not the Release. I don't know if this could be an issue.
    Would I need to recompile the USB library to work in a debug release? 

    My installation of CCS reports as  'Version: 5.4.0.00091', I will look into whether there is a newer version.

     It does show in the installation details that I have ' Code Composer Studio Base Components 5.5.0.00400 com.ti.ccstudio.base.feature.group Texas Instruments'.

    The optimization level is already set to 2, for this project.

    Thanks for the suggestions, so far.

    Kevin.

  • I also meant to note that I have left the compiler version as TI v4.9.5, as per the original project, whereas I also have 4.9.8, 5.0.4, 5.0.5 and 5.0.6 available.

    I don't know if this could affect the outcome,

    Kevin.

  • I have tried the 'check for updates' and this fails with a conflict with some Eclipse help files.

    I does not show a CCS update to 5.5.0.00077 however, as this will have shown up in the last couple of months otherwise.

    To do this update do I need to install the latest version from here http://processors.wiki.ti.com/index.php/Download_CCS over the top of the installed version?
    The help file tells you to run the exe, but makes no mention of what would happen if installing over another version.
    I don't want to lose my settings for the additional Eclipse add ins such as subversion. 

    Thanks, 

    Kevin.

  • I have updated CCS to 5.5.0.00077 now. The installer has an upgrade feature. Shame it is not recognized as an upgrade though.

    However, since I tried to create a Release build the Debug build now fails with 'could not open source file "lwipopts.h"' in several places and '"C:/StellarisWare/third_party/blox/blox.c", line 49: fatal error #5: could not open source file "random.h"', so I am unable to test whether the upgrade has made a difference.

    My original custom hardware still behaves the same before and after the upgrade however, in that the USB keyboard does not work.

    Kevin.

  • I have now tried CCS 5.5 with the latest set of RDK-IDM-SBC firmware (from http://www.ti.com/tool/sw-rdk-idm-sbc) and this does not build I get several errors relating to 'could not open source file "lwipopts.h"' .

    This file does not exist on my C drive.

    Kevin

  • Hi Kevin,

    You might get more help posting in the Stellaris forum.

    Something is wrong with your build settings or your project source. lwipopts.h is in the qs-blox project. I downloaded  http://www.ti.com/tool/sw-rdk-idm-sbc and it's there.

    Can you post your build log?

  • I have this file in the latest installation too at C:\StellarisWare\boards\rdk-idm-sbc\qs-blox\lwipopts.h

    Still get the following on building though:

    **** Build of configuration Debug for project qs-blox ****
    
    "C:\\ti\\ccsv5\\utils\\bin\\gmake" -k all 
    'Building file: C:/StellarisWare/boards/rdk-idm-sbc/qs-blox/blox_fs.c'
    'Invoking: ARM Compiler'
    "C:/ti/ccsv5/tools/compiler/tms470_4.9.5/bin/cl470" -mv7M3 --code_state=16 --abi=eabi -me -O2 -g --include_path="C:/ti/ccsv5/tools/compiler/tms470_4.9.5/include" --include_path="C:/StellarisWare/boards/rdk-idm-sbc/qs-blox/ccs" --include_path="C:/StellarisWare/boards/rdk-idm-sbc" --include_path="C:/StellarisWare" --include_path="C:/StellarisWare/third_party/blox" --include_path="C:/StellarisWare/third_party/bget" --include_path="C:/StellarisWare/third_party/jpeg" --include_path="C:/StellarisWare/third_party/lwip-1.3.2/apps" --include_path="C:/StellarisWare/third_party/lwip-1.3.2/src/include" --include_path="C:/StellarisWare/third_party/lwip-1.3.2/src/include/ipv4" --include_path="C:/StellarisWare/third_party/lwip-1.3.2/ports/stellaris/include" --include_path="C:/StellarisWare/utils" --gcc --define=ccs="ccs" --define=PART_LM3S9B92 --define=INCLUDE_BGET_STATS --define=TARGET_IS_TEMPEST_RB1 --diag_warning=225 --display_error_number --gen_func_subsections=on --ual --preproc_with_compile --preproc_dependency="blox_fs.pp"  "C:/StellarisWare/boards/rdk-idm-sbc/qs-blox/blox_fs.c"
    "C:/StellarisWare/third_party/lwip-1.3.2/src/include/lwip/opt.h", line 45: fatal error #5: could not open source file "lwipopts.h"
    1 fatal error detected in the compilation of "C:/StellarisWare/boards/rdk-idm-sbc/qs-blox/blox_fs.c".
    Compilation terminated.
    gmake: *** [blox_fs.obj] Error 1
    
    >> Compilation failure
    'Building file: C:/StellarisWare/boards/rdk-idm-sbc/qs-blox/blox_web.c'
    'Invoking: ARM Compiler'
    "C:/ti/ccsv5/tools/compiler/tms470_4.9.5/bin/cl470" -mv7M3 --code_state=16 --abi=eabi -me -O2 -g --include_path="C:/ti/ccsv5/tools/compiler/tms470_4.9.5/include" --include_path="C:/StellarisWare/boards/rdk-idm-sbc/qs-blox/ccs" --include_path="C:/StellarisWare/boards/rdk-idm-sbc" --include_path="C:/StellarisWare" --include_path="C:/StellarisWare/third_party/blox" --include_path="C:/StellarisWare/third_party/bget" --include_path="C:/StellarisWare/third_party/jpeg" --include_path="C:/StellarisWare/third_party/lwip-1.3.2/apps" --include_path="C:/StellarisWare/third_party/lwip-1.3.2/src/include" --include_path="C:/StellarisWare/third_party/lwip-1.3.2/src/include/ipv4" --include_path="C:/StellarisWare/third_party/lwip-1.3.2/ports/stellaris/include" --include_path="C:/StellarisWare/utils" --gcc --define=ccs="ccs" --define=PART_LM3S9B92 --define=INCLUDE_BGET_STATS --define=TARGET_IS_TEMPEST_RB1 --diag_warning=225 --display_error_number --gen_func_subsections=on --ual --preproc_with_compile --preproc_dependency="blox_web.pp"  "C:/StellarisWare/boards/rdk-idm-sbc/qs-blox/blox_web.c"
    "C:/StellarisWare/third_party/lwip-1.3.2/src/include/lwip/opt.h", line 45: fatal error #5: could not open source file "lwipopts.h"
    1 fatal error detected in the compilation of "C:/StellarisWare/boards/rdk-idm-sbc/qs-blox/blox_web.c".
    
    Compilation terminated.
    >> Compilation failure
    gmake: *** [blox_web.obj] Error 1
    'Building file: C:/StellarisWare/boards/rdk-idm-sbc/qs-blox/qs-blox.c'
    'Invoking: ARM Compiler'
    "C:/ti/ccsv5/tools/compiler/tms470_4.9.5/bin/cl470" -mv7M3 --code_state=16 --abi=eabi -me -O2 -g --include_path="C:/ti/ccsv5/tools/compiler/tms470_4.9.5/include" --include_path="C:/StellarisWare/boards/rdk-idm-sbc/qs-blox/ccs" --include_path="C:/StellarisWare/boards/rdk-idm-sbc" --include_path="C:/StellarisWare" --include_path="C:/StellarisWare/third_party/blox" --include_path="C:/StellarisWare/third_party/bget" --include_path="C:/StellarisWare/third_party/jpeg" --include_path="C:/StellarisWare/third_party/lwip-1.3.2/apps" --include_path="C:/StellarisWare/third_party/lwip-1.3.2/src/include" --include_path="C:/StellarisWare/third_party/lwip-1.3.2/src/include/ipv4" --include_path="C:/StellarisWare/third_party/lwip-1.3.2/ports/stellaris/include" --include_path="C:/StellarisWare/utils" --gcc --define=ccs="ccs" --define=PART_LM3S9B92 --define=INCLUDE_BGET_STATS --define=TARGET_IS_TEMPEST_RB1 --diag_warning=225 --display_error_number --gen_func_subsections=on --ual --preproc_with_compile --preproc_dependency="qs-blox.pp"  "C:/StellarisWare/boards/rdk-idm-sbc/qs-blox/qs-blox.c"
    "C:/StellarisWare/third_party/lwip-1.3.2/src/include/lwip/opt.h", line 45: fatal error #5: could not open source file "lwipopts.h"
    
    >> Compilation failure
    1 fatal error detected in the compilation of "C:/StellarisWare/boards/rdk-idm-sbc/qs-blox/qs-blox.c".
    Compilation terminated.
    gmake: *** [qs-blox.obj] Error 1
    gmake: Target `all' not remade because of errors.
    
    **** Build Finished ****

    Kevin

  • OK, it looks like your project is still located in the stellarisware folder. Perhaps your import went wrong. Usually when you import a project into your workspace it gets a new location. Specifically it is doing --include_path="C:/StellarisWare/boards/rdk-idm-sbc/qs-blox/ccs" This should be your project location in the workspace.

    I would try starting from a clean set. I can compile successfully.

    1. Extract the http://www.ti.com/tool/sw-rdk-idm-sbc file again to a new location.
    2. Create a new workspace (mine is "C:/ti/workspace_CCS5.5/qs-blox" "C:/ti/workspace_CCS5.5")
    3. Import the qs-blox project. When I do I can't select the "Copy project into workspace" option.
    4. Build the debug version.

    I've attached my build log so you can compare. Please note that I probably can't help much with the actual usb keyboard issue as I don't have this hardware (or any M3 parts).

    edit: correct workspace location

  • Hi,

    I followed as similar procedure as stepman: downloaded the RDK-IDM-SBC, installed in a directory different than my original Stellarisware, imported the project. BTW, that is what I see when I import the project: special attention that the option Copy projects into workspace is mandatory):

    Just adding to stepman's suggestions:

    - Usually updating CCS - i.e., installing over a previous release - can cause trouble. It is always better to wipe out the existing install beforehand or install to a different directory and use a different workspace.

    - As stepman said, the file <lwipopts.h> is located in the project directory itself and should be physically copied to the workspace as shown in the Project Explorer below:

    Hope this helps,

    Rafael

  • Thanks Stepman, I have created a completely new workspace and installed the RDK_IDM_SBC into a new location.

    The import now seems to be OK, into CCS v5.5 and I am able to build the debug version and this works with my USB keyboard on the RDK_IDM_SBC hardware.

    Rafael, the step-by-step instructions were very useful. Thanks.

    Kevin