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.

CC2650: Recompiling driverlib in release breaks LCD

Other Parts Discussed in Thread: CC2650

So, this is a rather strange issue that requires some explaining. I had modified the LCDdogma driver by adding some new functions that would allow the display of 64bit integers on the LCD. I wrote the code, recompiled driverlib, and recompiled my simpleBLEcentral project and the whole thing functions perfectly.

However, when I subsequently went to recompile and test my simpleBLEperipheral, it has a problem opening an LCD. By debugging, I've found that once it enters LCD_open via "lcdHandle = LCD_open(&lcdBuffers[0], 1, &lcdParams);" it never returns (and thus the device doesnt function/nothing is displayed on lcd/etc).

I figured, no problem, I'll recompile the driverlib in 'debug' mode instead of 'release' mode so I could step through the LCD_open function. To my surprise, once recompiled in debug mode, the lcd and program once again work! So thinking maybe some change I made caused the issue, I undid them and recompiled once again in release mode - it still did not work, meaning that there must be something else going on here.

There are no warnings during compilation with gmake or IAR. I am lost on how I could possibly figure out what is causing this...

I am using xdc tools 3_30_06_67, tirtos simplelink 2_11_01_09, ble 2_00_00_42893, bios 6_41_02_41.

  • I'm suspecting that there may be a timing issue if debug is enabled. It would be helpful to know where in LCD_open you are getting stuck at. Can you use ROV (the TI-RTOS plugin) to see where in Task's callstack you are getting stuck?
  • Hi Tom,

    I'm unsure how to use ROV very well but I did manage to step through the assembly to find where exactly its hanging. Within the LCD_Open function once it gets to the line /* Delay ~100 ms for LCD to be powered up. */
    Task_sleep(100*1000/Clock_tickPeriod); it never returns, so it looks like a timing issue like you mentioned?

    Additionally, even if I load the application to the device to run without debugging it, the lcd still doesn't work so I suspect its having the same issue (note that the LCD and app definitely worked fine previously).

    EDIT: looks like if i comment out my DMA code which sets up the dma to transfer on timer0A event, specifically TimerIntEnable(GPT0_BASE,TIMER_TIMA_DMA); it runs. So that means for some reason with the new compiled driverlib the dma done int is triggering erroneously preventing the task from sleeping? Even if i set th edma attribute reqmask for my channel to prevent requests from triggering it, the issue is still present....

  • I found the issue, I had modified simpleBLEperipheral.c to setup my simpleprofile char value like SimpleProfile_SetParameter(SIMPLEPROFILE_CHAR6....etc), for some reason this broke task_wait. I have no idea why but once i commented those lines out it was fixed.
  • This is old but I feel I should update the true issue should anyone have it. The simpleBLE peripherals task stack size was too small and was causing the various strange errors I had mentioned. Increasing it's sized fixed the issue.
  • Hi,

    Myself working in CC2650 (SmartRF06) development board.

    Me too facing the same issue. Once the software enters LCD_open() it never comes back.

    But in the debug mode if I place a

    breakpoint + wait for ~3 to 5 sec before the LCD_open() code.  Its working as per my requirement.

    breakpoint + without wait (immediate run) before the LCD_open() code or without breakpoint. Non of the functionality is working. while doing the step by step debugging the cpu is always at 0x1001bbd8 and 0x1001bbda.(and never comes out)

    I have halted the CPU and had a look at ROV (the TI-RTOS plugin) and I noticed the CPU is halted at Task_sleep(10029(stale data)).which is inside the LCD_open().

    Please find the screen shot of the working and not working scenario's.

    For ref. I have attached the software files.

    Not Working without Breakpoint :

     working with break points:

    ROV (the TI-RTOS plugin)

  • I forgot to attach the source code. Please find the attachment.

    3660.WPIS_POC.zip

  • Hello Santhosh Kumar V,
    If you haven't already, can you please open a new thread for the issue you are having?

    Thanks