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.

Feedback on current SDK

Other Parts Discussed in Thread: CC3200

Hi TI staffers,

Couple of items to consider in the current SDK 1.0.0.1

#1 uart.h: When enabling DEBUG for the driverlib project the symbol UART_OUTPUT_DTR shows as undefined. Although my code uses 2 wire and not 4 wire ie no RTS/CTS or DSR/DTR I have had to insert a "dummy" definition. I assume the entry has to be corrected.for the final production SDK?

#2 cc3200.gel: RAM area set for 0x20000000+0x40000 SRAM but only 0x30000 present in pre production silicon

#3 cc3200.gel: SoC devices in area from 0xE0000000 not mapped in detail. foolwing possibly need adding.

GEL_MapAddStr(0xE0000000, 0, 0x00001000, "R|W", 0); /* AMM: ITM */
GEL_MapAddStr(0xE0001000, 0, 0x00001000, "R|W", 0); /* AMM: DWT */
GEL_MapAddStr(0xE0002000, 0, 0x00001000, "R|W", 0); /* AMM: FPB */
GEL_MapAddStr(0xE000E000, 0, 0x00001000, "R|W", 0); /* AMM: CSB & DCB */
// GEL_MapAddStr(0xE000E000, 0, 0x00001000, "R|W", 0); /* NVIC */
GEL_MapAddStr(0xE0040000, 0, 0x00001000, "R|W", 0); /* AMM: TPIU */
GEL_MapAddStr(0xE00FF000, 0, 0x00001000, "R", 0); /* AMM: ROM */

Hope this helps

Andre

  • Another item that might be a bug.

    Project using SDK 1.0.0.1 with CCS 6.0.1.40 and FreeRTOS 8.1.2 i ona Windows 8 platform.

    When defining configASSERT() and declaring vAssertCalled in FReeRTOSConfig.h as follows:

    #if defined(ccs)
       void vAssertCalled(const char *pcFile, unsigned long ulLine );
        #define configASSERT(expr) if ( expr ) {                                                    \
                                                            vAssertCalled( __FILE__ , __LINE__ ); \
                                                        }
    #endif

    a compile returns the following errors/warnings in port.c vPortValidateInterruptPriority() lines 674 & 677:

        #18 expected a ")"

        #551-D variable "ulCurrentInterrupt" is used before its value is set

    Commenting out the configASSERT() & vAssertCalled() lines remove the error and allow a compile to go through but the running code generates a fault soon after. I really need the configASSERT() functionality to work.

    Am I doing something else wrong somewhere, or missing a flag/parameter to make the assembler instructions at line 674 work?

    Thanks

    Andre

  • Hi Andre,

    About your Free-RTOS issue you can try this solution-

    • Modify FreeRTOSConfig.h-
    #if defined(ccs)
       void vAssertCalled(const char *pcFile, unsigned long ulLine );
        #define configASSERT(expr) if ( (expr) == 0)   {                                                    \
                                                            vAssertCalled( __FILE__ , __LINE__ ); \
                                                        }

    • Modify port.c (as CCS doesn't support assembly+C code, so you need to write assembly only code)
    #if( configASSERT_DEFINED == 1 )
    extern unsigned long ipsrFunc(void);
    
    	__asm("    .sect \".text:ipsrFunc\"\n"
              "    .clink\n"
              "    .thumbfunc ipsrFunc\n"
              "    .thumb\n"
              "    .global ipsrFunc\n"
              "ipsrFunc:\n"
              "    mrs     r0, ipsr\n"
              "    bx lr\n");
    
    	void vPortValidateInterruptPriority( void )
    	{
    	uint32_t ulCurrentInterrupt;
    	uint8_t ucCurrentPriority;
    
    #if defined(ccs)
    	ulCurrentInterrupt = ipsrFunc();
    #else
    	/* Obtain the number of the currently executing interrupt. */
    		__asm volatile( "mrs %0, ipsr" : "=r"( ulCurrentInterrupt ) );
    #endif

    • Define ccs in oslib project setting and build oslib project (in free_rtos config mode)
    • Build your example project which uses Free-RTOS

    Regards,

    Jitendra

  • Hi Andre,

    Regarding your other points,

    Point 1 was a bug and we have addressed it in the post http://e2e.ti.com/support/wireless_connectivity/f/968/t/375197.aspx

    Thanks for sharing your inputs on the GEL files. We will incorporate the suggestions in future releases of the SDK.

    Do let us know if any other points are open on this thread.

    Best regards,

    Naveen

  • Thanks Naveen, much appreciated.

    I did get the feeedback on uart.c and the suggested changes for port.c. Implemented all and working fine.

    Can I make a suggestion that a topic is started and pinned to the top of the forum with any and all changes/fixes to the SDK. Whenever something more is discovered and fixed, it is added to the topic.

    When a new version of SDK is released and all the items are fixed, the topic is unpinned and can fade into history.

    Strictly speaking, the FreeRTOS change is also a bug and should be published in the same manner.

    Lastly, I have a question open in a different thread regarding official support for the CC3200 in a lInux environment. I have a full compile setup working with Ubuntu 14.04 / Eclipse Luna but cannot get the debugging to work with GDB/OpenOCD/ICDI and need some statement from TI to make decisions on our side.

    Thanks

    Andre

  • hello 

    where can i find the cc3200.gel files en how do i change them

    sebastian

  • HiSebastian,

    Can be found at https://github.com/ammaree/cc3200/blob/master/various/cc3200.gel

    Andre

  • Locate the current/original cc3200.gel file on your system and rename it to something else.

    Then copy the modified file into this same location.

    Restart CCS, and when debugging the new/modified file will be used.

    Just remember when/if you get a device using the production silicon to restore the original gel file else a similar but opposite situation will occur.