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: Not able to program CC2650 with contiki os-hello-world example

Part Number: CC2650
Other Parts Discussed in Thread: UNIFLASH, , CC2538

Hello Guys,

I am using CC2650 launchpad Rev: 1.1 for the development of 6Lowpan project and I am getting this error.

Before executing this command I used UniFlash to Erase the entire memory.

$ sudo make TARGET=srf06-cc26xx BOARD=launchpad/cc2650 hello-world.upload PORT=/dev/ttyACM0
CC ../../cpu/cc26xx-cc13xx/lib/cc26xxware/startup_files/ccfg.c
CC ../../cpu/cc26xx-cc13xx/./ieee-addr.c
AR contiki-srf06-cc26xx.a
CC ../../cpu/cc26xx-cc13xx/./fault-handlers.c
CC ../../cpu/cc26xx-cc13xx/lib/cc26xxware/startup_files/startup_gcc.c
CC hello-world.c
hello-world.c: In function 'process_thread_hello_world_process':
hello-world.c:52:3: warning: implicit declaration of function 'leds_on' [-Wimplicit-function-declaration]
leds_on(LEDS_GREEN);
^~~~~~~
LD hello-world.elf
arm-none-eabi-objcopy -O binary --gap-fill 0xff hello-world.elf hello-world.bin
python ../../tools/cc2538-bsl/cc2538-bsl.py -e -w -v -p /dev/ttyACM0 hello-world.bin
Opening port /dev/ttyACM0, baud 500000
Reading data from hello-world.bin
Cannot auto-detect firmware filetype: Assuming .bin
Connecting to target...
CC2650 PG2.2 (7x7mm): 128KB Flash, 20KB SRAM, CCFG.BL_CONFIG at 0x0001FFD8
Primary IEEE Address: 00:12:4B:00:07:B5:ED:82
Erasing all main bank flash sectors
Erase done
Writing 131072 bytes starting at address 0x00000000
Write 128 bytes at 0x0001FF800
ERROR: Timeout waiting for ACK/NACK after 'Get Status (0x23)'
../../cpu/cc26xx-cc13xx/Makefile.cc26xx-cc13xx:149: recipe for target 'hello-world.upload' failed
make: *** [hello-world.upload] Error 1

If I tried to directly use the Terminal without erasing the entire memory with flash I got this:

ERROR: Timeout waiting for ACK/NACK after 'Synch (0x55 0x55)'


Even if I used TI's flash programmer or Uniflash programmer to dump the code into the launchpad it does that without getting any error.But the hardware does not response to it (I tried to Turn on the RED and GREEN leds on the launchpad).

  • Do you follow steps in github.com/.../Toolchain-installation-on-Linux to setup Toolchain on your Linux?
  • yeah, I followed the tutorial and I installed all the dependancies to work with my hardware....still no luck...

  • According to section 2.3.3 Establishing Communication in www.ti.com/.../swra466a.pdf , it mentioned "If the device does not respond to the auto baud bytes, it may not be in bootloader mode, or the baud rate is not supported" so I suspect your device is not in bootloader mode.
  • I checked with that also it is in the bootloader mode.
  • Can you try the steps in sunmaysky.blogspot.com/.../how-to-use-backdoor-serial-boot-loader.html to make sure your LAUNCHXL-CC2650 serial boot loader works.
  • 
    

    Hey,
    I just used contiki-ng for dumping and it is doing that without the error but the on board leds are not responding I checked the leds if they are working or not by using on board 3.3v power supply.

    using contiki-ng:-

    $ sudo make TARGET=srf06-cc26xx BOARD=launchpad/cc2650 hello-world.upload PORT=/dev/ttyACM0
    CC ../../arch/cpu/cc26xx-cc13xx/lib/cc26xxware/startup_files/ccfg.c
    CC ../../arch/cpu/cc26xx-cc13xx/./ieee-addr.c
    CC ../../arch/cpu/cc26xx-cc13xx/./fault-handlers.c
    CC ../../arch/cpu/cc26xx-cc13xx/lib/cc26xxware/startup_files/startup_gcc.c
    CC hello-world.c
    LD hello-world.elf
    arm-none-eabi-objcopy -O binary --gap-fill 0xff hello-world.elf hello-world.bin
    python ../../tools/cc2538-bsl/cc2538-bsl.py -e -w -v -p /dev/ttyACM0 hello-world.bin
    Opening port /dev/ttyACM0, baud 500000
    Reading data from hello-world.bin
    Cannot auto-detect firmware filetype: Assuming .bin
    Connecting to target...
    CC2650 PG2.2 (7x7mm): 128KB Flash, 20KB SRAM, CCFG.BL_CONFIG at 0x0001FFD8
    Primary IEEE Address: 00:12:4B:00:07:B5:ED:82
    Erasing all main bank flash sectors
    Erase done
    Writing 131072 bytes starting at address 0x00000000
    Write 128 bytes at 0x0001FF808
    Write done
    Verifying by comparing CRC32 calculations.
    Verified (match: 0x2734d7f8)
    rm hello-world.o obj_srf06-cc26xx/fault-handlers.o obj_srf06-cc26xx/startup_gcc.o

    The hardware leds are not responding.

    I also tried using contiki again but the same error came.

    using contiki:-

    $ sudo make TARGET=srf06-cc26xx BOARD=launchpad/cc2650 hello-world.upload PORT=/dev/ttyACM0
    CC ../../cpu/cc26xx-cc13xx/lib/cc26xxware/startup_files/ccfg.c
    CC ../../cpu/cc26xx-cc13xx/./ieee-addr.c
    AR contiki-srf06-cc26xx.a
    CC ../../cpu/cc26xx-cc13xx/./fault-handlers.c
    CC ../../cpu/cc26xx-cc13xx/lib/cc26xxware/startup_files/startup_gcc.c
    CC hello-world.c
    hello-world.c: In function 'process_thread_hello_world_process':
    hello-world.c:52:3: warning: implicit declaration of function 'leds_on' [-Wimplicit-function-declaration]
    leds_on(LEDS_GREEN);
    ^~~~~~~
    LD hello-world.elf
    arm-none-eabi-objcopy -O binary --gap-fill 0xff hello-world.elf hello-world.bin
    python ../../tools/cc2538-bsl/cc2538-bsl.py -e -w -v -p /dev/ttyACM0 hello-world.bin
    Opening port /dev/ttyACM0, baud 500000
    Reading data from hello-world.bin
    Cannot auto-detect firmware filetype: Assuming .bin
    Connecting to target...
    CC2650 PG2.2 (7x7mm): 128KB Flash, 20KB SRAM, CCFG.BL_CONFIG at 0x0001FFD8
    Primary IEEE Address: 00:12:4B:00:07:B5:ED:82
    Erasing all main bank flash sectors
    Erase done
    Writing 131072 bytes starting at address 0x00000000
    Write 128 bytes at 0x0001FF800
    ERROR: Timeout waiting for ACK/NACK after 'Get Status (0x23)'
    ../../cpu/cc26xx-cc13xx/Makefile.cc26xx-cc13xx:149: recipe for target 'hello-world.upload' failed
    make: *** [hello-world.upload] Error 1
    rm hello-world.co obj_srf06-cc26xx/fault-handlers.o obj_srf06-cc26xx/startup_gcc.o

    This is the code I modified to work with LEDs and can be found under.contiki-ng hello world example:-

    #include "contiki.h"
    #include "dev/leds.h"
    #include <stdio.h> /* For printf() */
    /*---------------------------------------------------------------------------*/
    PROCESS(hello_world_process, "Hello world process");
    AUTOSTART_PROCESSES(&hello_world_process);
    /*---------------------------------------------------------------------------*/
    PROCESS_THREAD(hello_world_process, ev, data)
    {
      static struct etimer timer;
    
      PROCESS_BEGIN();
    
      /* Setup a periodic timer that expires after 10 seconds. */
      etimer_set(&timer, CLOCK_SECOND * 10);
    
      while(1) {
        printf("Hello, world\n");
        leds_on(LEDS_GREEN);
        leds_on(LEDS_RED);
        leds_on(LEDS_BLUE);
        leds_on(LEDS_YELLOW);
        leds_on(LEDS_ORANGE);
    
        /* Wait for the periodic timer to expire and then restart the timer. */
        PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&timer));
        etimer_reset(&timer);
      }
    
      PROCESS_END();
    }
    /*---------------------------------------------------------------------------*/

  • I suspect you are using steps for CC2538. You should use the steps in github.com/.../Platform-srf06-cc26xx for CC2650.
  • Hey,
    I am following the necessary procedure to work with CC2650, not with CC2538.
    I am using this command
    $ sudo make TARGET=srf06-cc26xx BOARD=launchpad/cc2650 hello-world.upload PORT=/dev/ttyACM0
    This command directly compiles and upload the program into hardware. Also, this creates the bin, elf files which is necessary for dumping.
    The port which I used is ACM0 tested and I am sure about that.

    If there was an issue that I an=m working with CC2538. The code has shown me the error. In that case, it could not be successfully dumped into launchpad by using Contiki-ng.

  • I see "Opening port /dev/ttyACM0, baud 500000" in your log. It seems you use wrong baud rate. I suggest you to try to use 115200 to test again.
  • $ sudo make TARGET=srf06-cc26xx BOARD=launchpad/cc2650 hello-world.upload PORT=/dev/ttyACM0
    [sudo] password for faith:
    CC ../../cpu/cc26xx-cc13xx/lib/cc26xxware/startup_files/ccfg.c
    CC ../../cpu/cc26xx-cc13xx/./ieee-addr.c
    AR contiki-srf06-cc26xx.a
    CC ../../cpu/cc26xx-cc13xx/./fault-handlers.c
    CC ../../cpu/cc26xx-cc13xx/lib/cc26xxware/startup_files/startup_gcc.c
    CC hello-world.c
    hello-world.c: In function 'process_thread_hello_world_process':
    hello-world.c:52:3: warning: implicit declaration of function 'leds_on' [-Wimplicit-function-declaration]
    leds_on(LEDS_GREEN);
    ^~~~~~~
    LD hello-world.elf
    arm-none-eabi-objcopy -O binary --gap-fill 0xff hello-world.elf hello-world.bin
    python ../../tools/cc2538-bsl/cc2538-bsl.py -e -w -v -b 115200 -e -w -v -p /dev/ttyACM0 hello-world.bin
    Opening port /dev/ttyACM0, baud 115200
    Reading data from hello-world.bin
    Cannot auto-detect firmware filetype: Assuming .bin
    Connecting to target...
    CC2650 PG2.2 (7x7mm): 128KB Flash, 20KB SRAM, CCFG.BL_CONFIG at 0x0001FFD8
    Primary IEEE Address: 00:12:4B:00:07:B5:ED:82
    Erasing all main bank flash sectors
    Erase done
    Writing 131072 bytes starting at address 0x00000000
    Write 128 bytes at 0x0001FF800
    ERROR: Timeout waiting for ACK/NACK after 'Get Status (0x23)'
    ../../cpu/cc26xx-cc13xx/Makefile.cc26xx-cc13xx:149: recipe for target 'hello-world.upload' failed
    make: *** [hello-world.upload] Error 1
    rm hello-world.co obj_srf06-cc26xx/fault-handlers.o obj_srf06-cc26xx/startup_gcc.o

  • Oops, run out of idea. I suggest you to post your issue on Contiki-NG github to see if experts there can help you.