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.

ROV not showing stackPeak and stackSize

Other Parts Discussed in Thread: CC2650

Hello!

I've been using CCS 6.1.2 to debug my CC2650 sensortag. My OS is windows7 64-bit SP2

It seems every time I enter CCS debug, and open ROV, I am not able to see stackPeak and stackSize for every task. I tried multiple project examples from BLE SDK 2.1 and it's all the same.

Any suggestion will be greatly appreciated! Thanks a lot!

  • Hi Xiaoxiao,

    This is a bug that was recently fixed in which constructed tasks' information did not show up within ROV. This is fixed within TIRTOS 2.16.00.08 which can be downloaded here:

    software-dl.ti.com/.../index.html

    You'll also need to update your package paths within CCS after installing the new TIRTOS, a Wiki page covers that topic here:

    processors.wiki.ti.com/.../Installing_TI-RTOS

    Best,
    Alexander
  • Hi Alex,

    Thanks so much for your advice! I downloaded latest TI-RTOS 2.16.1.14, and managed to migrate my simpleBLEPeripheral project from 2.13.0.06 to it.

    However, I ran into new problems: I am not able to see custom-defined tasks any more. The only task available in ROV is the RTOS idle task.

    Do you think if this is because I didn't set up ROV settings correctly? I remembered once I migrated to the latest TI-RTOS 2.16.1.14, there is a ROV setting window that pops up. I didn't pay much attention to it at that time. When I tried to find it later, it seems I am not able to locate it any more. 

    Thanks so much for your help! Looking forward to your responses.

    Best,

    Xiaoxiao

  • Hi Xiaoxiao,

    Could you attach/post your .cfg file? Also make sure that you've run the application past the point where those tasks are first created in order to have them show up in ROV.

    Best,
    Alexander
  • Hi Alex,

    Thanks for your attention!

    I tried to run the application for 10-20 seconds in debug mode, and I am only able to see two tasks: 

    1) RTOS Idle task

    2) BLE stack task (priority: 5)

    However, I am not able to see custom tasks (priority: 1)

    Attached is the .cfg file for this simpleBLEPeripheral project. I made changes in this .cfg file when I migrated my simpleBLEPeripheral project from TI-RTOS 2.13.0.06 to 2.16.1.14, by following this link: github.com/.../dccfcc26a4aba70c4e97abfeb47ecf741c3b353e

    Again, thanks so much for your help! Looking forward to your responses!

    8535.appBLE.cfg

    Best,

    Xiaoxiao

  • No problem, it looks like the default application is only constructing a single task in addition to the idle task. Where exactly are you creating your own tasks? I couldn't seem to find it within your .cfg or application code. Could you post exactly where that's occurring? Thanks

    Best,
    Alexander
  • Hi Alex,

    Yes I am constructing tasks in main.c (please take a look at the attached file). Each custom task will point to a source and header file that I created under the project folder.

    It seems I am able to see those tasks from BLE device monitor (each task has registered GATT services in BLE stack). But I am not able to see them in ROV.

    Thanks!4846.main.c

    Best,

    Xiaoxiao

  • Hi Xiaoxiao,

    Looking through the examples that are shipped with the SDK, it looks like the task object structures are declared as static within their respective files. In order to show up in ROV they must be globally defined.

    So in order to have your Tasks show up in ROV you can exclude the static definition of the task structure variable (Task_Struct).

    Best,
    Alexander
  • Hi Alex,

    Thanks for your suggestion! However, it didn't solve the problem. I excluded the static definition of task structure variable, for example:

    Task_construct(&sbpTask, SimpleBLEPeripheral_taskFxn, &taskParams, NULL);

    I changed function SimpleBLEPeripheral_taskFxn from local to global, by removing static definition and add it to header file. I did the same thing for function SimpleBLEPeripheral_init, which is part of function SimpleBLEPeripheral_taskFxn.

    It seems in ROV, I am only able to see task ICall (priority 5) and Idle (priority 0), and not able to see the rest of tasks: GAPRole (priority 3) and simpleBLEPeripheral (priority 1)

    Best,

    Xiaoxiao

  • Hi Xiaoxiao,

    Still looking into this issue, having trouble reproducing it on our end. I see your using the 2650 .cfg file, could you comment out this line?

    ROM.romName = ROM.CC2650;

    Does your application run as expected right now? Not including the ROV issue.

    Best,
    Alexander
  • Hi Alex,

    Thanks for your continuous attention on this thread! I really appreciate that!

    I commented it out and the application is running exactly the same as before.

    What I forgot to mention before was that each time I entered debug mode, the first time I pressed "resume" button, let the application run for a while, and then press "suspend", in the console window CCS says No source available for "0x10000486". 

    Sorry I forgot to mention this before. Not sure if this is related to the problem or not.

    Best,

    Xiaoxiao

  • Hi Xiaoxiao, sorry for the late reply.

    That shouldn't be a problem, odds are the application is in a ROM subroutine in which case CCS won't be able to find the source code.

    As for the original problem, i've run a test application and ROV seems to be functioning correctly, would it be possible to upload your version of the project? You can export a project in CCS through File->Export

    Best,
    Alexander
  • Hi Alex,

    No problem at all. Thanks for your help! Please see attached project file.

    I highly suspect there is some ROV setting I didn't set up correctly in my CCS.

    CCS: 6.1.2

    Add-on installations:

    GUI composer

    TI-RTOS CC13XX/26XX

    RTSC setting:

    SYS/BIOS 6.45.1.29

    TI-RTOS for CC13XX and CC26XX 2.16.1.14

    XDC: 3.32.0.06

    Thanks in advance!

    7217.Project_ROV_test.rar

    Best,

    Xiaoxiao

  • While I look over the code you sent, could you build/run the Task Mutex example? It can be found within the Resource Explorer for your board. Within the example you should be able to see three tasks in ROV, Idle, Task1 and Task2. If this isn't working then it may be an installation issue.

    Best,
    Alexander
  • Hi Alex,

    In my current workspace, I cannot build the Task Mutex example. There is one error saying:

    xdc.cfg.SourceDir: Build of generated source libraries failed: exit status = 2

    However, once I changed to another workspace, imported the Mutex Example, and it compiled successfully! Also I can see the 3 tasks in ROV without any problem!

    In both workspaces, I used sample versions of compiler, XDC (3.32.0.06), and TI-RTOS for CC13XX and CC26XX (2.16.1.14).

    It seems the problem is from the selection of workspace? Do you think if there is an setting issue somewhere?

    Thanks a lot!

    Best,

    Xiaoxiao

  • Hi Xiaoxiao,

    I've come across similar issues when I move projects around outside of CCS( in windows explorer), in that case certain CCS files can become stale and corrupted. In that case the simplest solution would be to start a new workspace and move your project over. Would that be possible?

    Best,
    Alexander
  • Hi Alex,

    Thanks for your suggestion!

    Workspace A: where Mutex example project fails and not being able to see ROV tasks

    Workspace B: where Mutex example project works well and being able to see ROV tasks

    I followed your suggestion, migrated my custom project from workspace A to B (in the same CCS, same computer), built successfully, but unfortunately, still not able to see ROV tasks

    Now I am trying to run and build my custom project in another computer, with exactly the same CCS 6.1.2, XDC, TI-RTOS, and SYS/BIOS. However, it seems the exported project has some setting problem and I haven’t got it working yet (this means the project I sent to you probably didn’t work out well, I apologize)

    I will keep working on this, and decipher whether this is a project-based, workspace-based, or CCS environment-based problem.

    Thanks again for your continuous focus on this question thread!

    Best,

    Xiaoxiao

  • No Problem, please let us know if you're still unable to resolve the problem.

    Best,
    Alexander
  • Hi Alex,

    I managed to run my project in the CCS workspace of another computer, where project mutex works fine and I am able to see 3 tasks in ROV when debugging. 

    However, I am still not able to see any tasks of my project in ROV.

    I am wondering once you are available, do you mind trying to run my project in your CCS again? I think I did export my project correctly this time and you should be able to run it in your CCS by adding 3 more variables:

    1) In CCS-Window-Preferences-Code Composer Studio-Build-Variables, add following three variables:

    XXH_SERVICE_LOC

    Value: YourWorkSpace\SimpleBLEPeripheral\Application (basically the destination location of simpleBLEPeripheral.c once my project is copied to your workspace)

    XXH_SIMPLE_HEADER_LOC

    Value: YourWorkSpace\SimpleBLEPeripheral\PROFILES (basically the destination location of simpleGATTprofile.h once my project is copied to your workspace)

    XXH_SIMPLE_SOURCE_LOC

    Value: YourWorkSpace\SimpleBLEPeripheral\PROFILES (basically the destination location of simpleGATTprofile.c once my project is copied to your workspace)

    2) Add those 3 variables into simpleBLEPeripheral Project-Properties-Build-ARM Compiler-Include Options

    However, the exported project.zip (22.4kB) exceeds the allowable size of the post (20kB). Do you mind sharing with me your email so that I can send it to you?

    Thanks a lot! Much appreciated!

    Best,

    Xiaoxiao

  • 1563.package.zip

    Xiaoxiao,
    global variables are detected by parsing DWARF debug sections in the output file. Our parsing code was incomplete, and it was failing to find some global variables. I am not sure yet what change in your environment would cause a different content in the DWARF sections, but our parser is now fixed and it should find missing global variables.

    The TI-RTOS product with the fix should be received within a month, but if you want to check it earlier, I have attached a ZIP file with a JAR file inside. To test it, go to your TI-RTOS installation, and then to products/bios_<version>/packages/ti/targets/omf/elf/java. You'll find a file package.jar there. Make a copy of it because the fixed code was barely tested so you want to have a copy of that JAR file to revert to it if needed. After making a copy, unzip the attached ZIP file and you'll get a new version of package.jar. Restart ROV and check if the global tasks are showing up.

  • Hi Sasha,

    Thanks a lot for your JAR file! Now I can see the tasks in CCS-ROV! I really appreciate that!

    May I do a quick check with you on the task running status in your CCS?

    On my computer, it seems all tasks are blocked for semaphore, while only idle task is running. Also, no matter how long I let the project run in debug mode and then click “suspend” button to check, this is always the case. I am wondering if this is also true for my project running on your CCS?

     

    Thanks!

    Best,

    Xiaoxiao

  • I had the same problem, ROV didn't show all my running tasks.
    Thanks to Sasha to point me to the DWARF output I found the settings in CCS to correct that issue:
    In the project properties -> ARM Linker -> Advanced Options -> Linktime Optimization set "Aggressively reduce size of DWARF info" to "off".
    I hope this is useful for somebody.

    Andreas

  • Hi Andreas,

    They are really helpful information! Thanks for sharing!

    Best,
    Xiaoxiao