Giter Club home page Giter Club logo

cc3200-core's Introduction

The Energia project is no longer maintained.

Energia, the fork of the Arduino IDE and SDK for the LaunchPad boards, is no longer maintained. The last release 1.8.10E23 was published in December 2019.

The official tools from Texas Instruments are Code Composer Studio, based on Eclipse with an online variant, and the SimpleLink SDK for the ARM Cortex-M MCUs.

What Is Energia?

Energia is a fork/port of Arduino for the Launchpads, or boards with MCUs from Texas Instruments.

What Are the LaunchPads Supported?

Energia provides native support for the following LaunchPads:

  • LaunchPad with MSP430G2231, MSP430G2452 or MSP430G2553 or LaunchPad
  • Experimeter Board with MSP430FR5739 or FraunchPad
  • LaunchPad with MSP430F5529 or FattyPad
  • LaunchPad with MSP430FR5969
  • LaunchPad with Stellaris LM4F120 or Tiva C Series TM4C123 or StellarPad
  • Connected LaunchPad with Tiva C Series TM4C129

What Are the BoosterPacks Supported?

Energia includes ready-to-use libraries for the following BoosterPacks:

  • Anaren Air CC110L BoosterPack
  • Educational BoosterPack MKII
  • LCD Sharp BoosterPack
  • CC3000 SimpleLink WiFi BoosterPack

Looking for Help?

No problem! There are a variety of resources available to get you up and running, and sprinting once you're up and running.

  • GitHub repository - This very page!
  • Download - Download a compiled application for Linux, Mac OS X, or Windows.
  • Website - Full documentation including tutorials, reference, pins maps, FAQ and much more!
  • Wiki - Find basic information and tutorials here.
  • LaunchPad forum at 43oh - A community around the original LaunchPad but also the newer ones.
  • StellarPad forum at Stellaristi - A community more focused on the newer Stellaris LaunchPad.
  • Bug report - Is something not working as it ought to? Or better yet, is there something we could make better?

Clone instructions:

Energia consists of the main repository and a submodule called emt. The emt tree contains the sources for the Energia MT (Multi Tasking) feature that is based on TI-RTOS/SYSBIOS. To clone Energia and the emt submodule:

git clone --recursive https://github.com/energia/Energia.git

If you already have a clone of Energia then:

git submodule update --init --recursive
git submodule sync
cd emt
git pull
cd ..

cc3200-core's People

Contributors

rei-vilo avatar robertinant avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

cc3200-core's Issues

CC3200 SPI Issue

When the SPI library is called from a library, compilation fails, even when SPI has been included in the main sketch.

"/Users/ReiVilo/Library/Energia15/packages/energia/tools/arm-none-eabi-gcc/4.8.4-20140725/bin/arm-none-eabi-g++" -c -g -Os -w -std=gnu++11 -ffunction-sections -fdata-sections -nostdlib -fno-threadsafe-statics --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -Dprintf=iprintf -MMD -mcpu=cortex-m4 -mthumb -DF_CPU=80000000L -DARDUINO=10610 -DENERGIA=10610 -DENERGIA_CC3200-LAUNCHXL -DENERGIA_ARCH_CC3200 "-I/Users/ReiVilo/Library/Energia15/packages/energia/hardware/cc3200/1.0.2/variants/CC3200-LAUNCHXL" "-I/Users/ReiVilo/Library/Energia15/packages/energia/hardware/cc3200/1.0.2/system/driverlib" "-I/Users/ReiVilo/Library/Energia15/packages/energia/hardware/cc3200/1.0.2/system/inc" "-I/Users/ReiVilo/Library/Energia15/packages/energia/hardware/cc3200/1.0.2/system" -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -mabi=aapcs "-I/Users/ReiVilo/Library/Energia15/packages/energia/hardware/cc3200/1.0.2/cores/cc3200" "-I/Users/ReiVilo/Library/Energia15/packages/energia/hardware/cc3200/1.0.2/variants/CC3200-LAUNCHXL" "/var/folders/hz/wncgspfd5wxgzmly78yvzk_m0000gn/T/build2bd1d110e6c47d509a7edf46f7b5491e.tmp/sketch/myLibrary.cpp" -o "/var/folders/hz/wncgspfd5wxgzmly78yvzk_m0000gn/T/build2bd1d110e6c47d509a7edf46f7b5491e.tmp/sketch/myLibrary.cpp.o"
In file included from /var/folders/hz/wncgspfd5wxgzmly78yvzk_m0000gn/T/build2bd1d110e6c47d509a7edf46f7b5491e.tmp/sketch/myLibrary.h:1:0,
from /var/folders/hz/wncgspfd5wxgzmly78yvzk_m0000gn/T/build2bd1d110e6c47d509a7edf46f7b5491e.tmp/sketch/myLibrary.cpp:1:
/Users/ReiVilo/Library/Energia15/packages/energia/hardware/cc3200/1.0.2/system/driverlib/SPI.h:143:57: error: 'tBoolean' has not been declared
extern unsigned long SPIIntStatus(unsigned long ulBase, tBoolean bMasked);
^
/var/folders/hz/wncgspfd5wxgzmly78yvzk_m0000gn/T/build2bd1d110e6c47d509a7edf46f7b5491e.tmp/sketch/myLibrary.cpp: In function 'void beginSPI()':
myLibrary.cpp:5: error: 'SPI' was not declared in this scope
SPI.begin();
^
exit status 1
'SPI' was not declared in this scope

  • Solution

The arm-none-eabi-g++ command line is missing the include -I/Users/ReiVilo/Library/Energia15/packages/energia/hardware/cc3200/1.0.2/libraries/SPI.

  • CC3200_SPI_issue.ino
#include "myLibrary.h"
#include "SPI.h"

void setup() {
  // put your setup code here, to run once:
  beginSPI();
}

void loop() {
  // put your main code here, to run repeatedly:

}
  • myLibrary.h
#include "SPI.h"


void beginSPI();
  • myLibrary.cpp
#include "myLibrary.h"

void beginSPI()
{
  SPI.begin();

}

Anaren CC110L Examples Fail to Compile Against CC3200

Anaren CC110L Examples Fail to Compile Against CC3200.

~/Library/Energia15/packages/energia/hardware/cc3200emt/1.0.0/libraries/AIR430BoostEuropeETSI/utility/Platform.cpp:53:4: error: 'SPI' was not declared in this scope
    SPI.setClockDivider(SPI_CLOCK_DIV16); //5 MHz SPI Clock

    ^
~/Library/Energia15/packages/energia/hardware/cc3200emt/1.0.0/libraries/AIR430BoostEuropeETSI/utility/Platform.cpp:53:24: error: 'SPI_CLOCK_DIV16' was not declared in this scope
    SPI.setClockDivider(SPI_CLOCK_DIV16); //5 MHz SPI Clock

                        ^
~/Library/Energia15/packages/energia/hardware/cc3200emt/1.0.0/libraries/AIR430BoostEuropeETSI/utility/Platform.cpp:60:19: error: 'SPI_MODE0' was not declared in this scope
   SPI.setDataMode(SPI_MODE0);

                   ^
~/Library/Energia15/packages/energia/hardware/cc3200emt/1.0.0/libraries/AIR430BoostEuropeETSI/utility/Platform.cpp: In function 'void A110x2500SpiRead(unsigned char, unsigned char*, unsigned char)':
~/Library/Energia15/packages/energia/hardware/cc3200emt/1.0.0/libraries/AIR430BoostEuropeETSI/utility/Platform.cpp:75:3: error: 'SPI' was not declared in this scope
   SPI.transfer(address);

   ^
~/Library/Energia15/packages/energia/hardware/cc3200emt/1.0.0/libraries/AIR430BoostEuropeETSI/utility/Platform.cpp: In function 'void A110x2500SpiWrite(unsigned char, const unsigned char*, unsigned char)':
~/Library/Energia15/packages/energia/hardware/cc3200emt/1.0.0/libraries/AIR430BoostEuropeETSI/utility/Platform.cpp:100:3: error: 'SPI' was not declared in this scope
   SPI.transfer(address);

   ^
Using library AIR430BoostEuropeETSI at version 1.0.0 in folder: ~/Library/Energia15/packages/energia/hardware/cc3200emt/1.0.0/libraries/AIR430BoostEuropeETSI 
exit status 1
Error compiling for board CC3200-LAUNCHXL (80MHz).
Invalid library found in ~/Documents/Projets/Energia/libraries/DHT22_Library: ~/Documents/Projets/Energia/libraries/DHT22_Library

The culprit seems to be the empty file SPI.h at ~/Library/Energia15/packages/energia/hardware/cc3200/1.0.2/libraries/AIR430BoostEuropeETSI/SPI.h.

Removing the file solves the issue.

CC3220 — 'ltoa' was not declared in this scope

The following sketch succeeds to compile against the CC3200 but fails against the CC3220SF.

  • Error message

/private/var/folders/px/cyfvtr757lqg0yp_cv9j79jh0000gn/T/arduino_modified_sketch_537852/sketch_oct24a.ino: In function 'void setupsketch_oct24a()':
sketch_oct24a:6:22: error: 'ltoa' was not declared in this scope
ltoa(value, str, 10);
^
exit status 1
'ltoa' was not declared in this scope

  • Minimal code
void setup() {
  // put your setup code here, to run once:
  long value = 12.34;
  char * str;
  ltoa(value, str, 10);
}

void loop() {
  // put your main code here, to run repeatedly:

}

SmartConfig no longer works

Once issue #19 has been patched with the suggested solution, the SmartConfig.ino example fails to run properly.

The same example built in January 2017 runs fine. Has a regression bug been introduced since then?

screenshot_2017-11-11-16-02-01 - copie

CC3200 Not Responding to energia sketches

Here's the issue. I am working on a project where I was asked to use CC3200 WIFI to create interference in a transmission where 2 nrf24l01 Transceivers are communicating with each other. Initially, I flashed the HTTP server program to the cc3200 using Uniflash and ccs. That didn't create any interference. Now I wish to send continuous data from my phone/laptop to CC3200 in order to create some rigid Interference.
Now I have two issues,

  1. Initially, I want to test CC3200 with Energia sketches starting with the blink and other wifi examples.
    Now the problem is, my cc3200 is not responding to any of the sketches I am uploading through Energia. Every time, there is no problem with the compilation and upload, everything is functioning smoothly, but my cc3200 is not responding at all. I tried the blink and simple web server wifi sketches.
    Can anyone tell me how to make my cc3200 respond to the blink, other Energia sketches?

  2. Does anybody know any sketch in the Energia examples which I can use to proceed with my particular case? (i.e., to send data from a client to cc3200 in order to create interference in the nrf24l01 transceivers communication)

P.S: I am a newbie, just started using CC3200 a week ago, lack of solid resources is eating up my brain. I hope you don't mind my silly issue.

Slave I²C Not Implemented

Slave I²C is not implemented for CC3200.

  • Error

/var/folders/hz/wncgspfd5wxgzmly78yvzk_m0000gn/T/buildcbd00b46c3f98c5befd14c5298baa174.tmp/sketch/sketch_jun29a.ino.cpp.o: In function setup': /var/folders/hz/wncgspfd5wxgzmly78yvzk_m0000gn/T/arduino_modified_sketch_540132/sketch_jun29a.ino:5: undefined reference toTwoWire::begin(int)'
collect2: error: ld returned 1 exit status
Using library Wire at version 1.0.1 in folder: /Users/ReiVilo/Library/Energia15/packages/energia/hardware/cc3200/1.0.2/libraries/Wire
exit status 1
Error compiling for board CC3200-LAUNCHXL (80MHz).

  • Code
#include "Wire.h"

void setup() {
  // put your setup code here, to run once:
  Wire.begin(0x18);
}

void loop() {
  // put your main code here, to run repeatedly: 

}

CC3220 — Missing Repository

The repository for the CC3220 boards package is available on the Energia IDE but the source code is missing from the GitHub Energia repository.

capture 2018-10-24 a 07 41 08

WiFiUdpNtpClient.ino example fails to get time

Once issue #19 has been patched with the suggested solution, the WiFiUdpNtpClient.ino example fails to get time.

WiFiUDP::parsePacket() exits at line 277.

    int iRet = sl_Select(socketHandle+1, &readSocketHandles, NULL, &errorSocketHandles, &timeout);
    if (iRet <= 0) {
        return 0;
    }

Any idea?

RAM Size boards.txt Entry Consistency

Updated boards.txt for MSP432 and MSP430 uses maximum_data_size

MSP-EXP432P401R.upload.maximum_data_size=65536
MSP-EXP430F5529LP.upload.maximum_data_size=8192

when Tiva C and CC3200 use maximum_ram_size

EK-LM4F120XL.upload.maximum_ram_size=32768

CC3200-LAUNCHXL.upload.maximum_ram_size=32768

CC3200 EMT — Specific Compilation Procedure?

When compiling the MultiBlink.ino against the CC1310 EMT and MSP432 EMT, compilation generates two files, MultiBlink_CC3200.ino.cpp and main.cpp.

The former concatenate all the different task into one file and the latter declares the tasks to the RTOS.

However, compiling the MultiBlink.ino against the CC3200 EMT does not generate the main.cpp.

Has the compilation procedure changed?

/* magic insertion point 769d20fcd7a0eedaf64270f591438b01 */
extern void setupBlueLed();
extern void loopBlueLed();
extern void setupGreenLed();
extern void loopGreenLed();
extern void setupRedLed();
extern void loopRedLed();
extern void setupMultiBlink_CC3200();
extern void loopMultiBlink_CC3200();

#define NUM_SKETCHES 4
void (*func_ptr[NUM_SKETCHES][2])(void) = {
	{setupBlueLed, loopBlueLed},
	{setupGreenLed, loopGreenLed},
	{setupRedLed, loopRedLed},
	{setupMultiBlink_CC3200, loopMultiBlink_CC3200}
};
const char *taskNames[] = {
	"loopBlueLed",
	"loopGreenLed",
	"loopRedLed",
	"loopMultiBlink_CC3200"
};

SPI examples do not compile

compiling the SPI example of the CC3200 generates the below error:
CC3200-LAUNCHXL (80MHz)
windows installation

exit status 1
'SPI' was not declared in this scope

warning: ISO C99 requires whitespace after the macro name

Hello, I'm new to this and I'm probably doing something wrong and that's why I'm here. I get this message in the title when i try to Verify the code and i cant fix it. I've seen other threads with different boards and how they fixed the problem. So i tried the same with CC3200 launchpad by changing the boards.txt file.

I changed the line:
CC3200-LAUNCHXL.build.board=CC3200-LAUNCHXL
to this:
CC3200-LAUNCHXL.build.board=CC3200_LAUNCHXL

I also added this:
{"name": "CC3200_LAUNCHXL"},
to package_index(JSON File)

None of this didn't fix the problem, I still get the same message. Anything else i can do?

CC3200 EMT — MultiBlink Fails to Upload

  • Good, used to upload blink.ino to CC3200 standard
/Users/ReiVilo/Library/Energia15/packages/energia/tools/cc3200prog/1.1.4/cc3200prog /dev/cu.usbserial-cc3200B /var/folders/px/cyfvtr757lqg0yp_cv9j79jh0000gn/T/build9548c7de2eb0fa195db29d7f1b03d466.tmp/Blink.ino.bin 
  • Bad, used to upload MulitBlink.ino to CC3200 EMT
/Applications/IDE/Energia.app/Contents/Java/hardware/tools/DSLite/DebugServer/bin/DSLite load -c /Applications/IDE/Energia.app/Contents/Java/hardware/tools/DSLite/MSP_EXP432P401R.ccxml -f /var/folders/px/cyfvtr757lqg0yp_cv9j79jh0000gn/T/buildcf7d690e97b58be70057bbfed06e8f9b.tmp/MultiBlink_CC3200.ino.elf 
  • Fixed, used to upload MulitBlink.ino to CC3200 EMT
/Users/ReiVilo/Library/Energia15/packages/energia/tools/cc3200prog/1.1.4/cc3200prog /dev/cu.usbserial-cc3200B /var/folders/px/cyfvtr757lqg0yp_cv9j79jh0000gn/T/buildcf7d690e97b58be70057bbfed06e8f9b.tmp/MultiBlink_CC3200.ino.elf 

Blink fails to compile with V 1.0.2 of the core libraries

I tried to compile the blink example after updating the CC3200 library to 1.0.2 and it fails with:

In file included from c:\users\mike\appdata\local\energia15\packages\energia\tools\arm-none-eabi-gcc\6.3.1-20170620\arm-none-eabi\include\string.h:10:0,

             from C:\Users\mike\AppData\Local\Energia15\packages\energia\hardware\cc3200\1.0.2\cores\cc3200/Energia.h:8,

             from C:\Users\mike\AppData\Local\Energia15\packages\energia\hardware\cc3200\1.0.2\cores\cc3200/Arduino.h:3,

             from sketch\Blink.ino.cpp:1:

c:\users\mike\appdata\local\energia15\packages\energia\tools\arm-none-eabi-gcc\6.3.1-20170620\arm-none-eabi\include\stdlib.h:225:8: error: conflicting declaration of C function 'char* utoa(unsigned int, char*, int)'

char * _EXFUN(utoa,(unsigned, char *, int));

    ^

In file included from C:\Users\mike\AppData\Local\Energia15\packages\energia\hardware\cc3200\1.0.2\cores\cc3200/Energia.h:10:0,

             from C:\Users\mike\AppData\Local\Energia15\packages\energia\hardware\cc3200\1.0.2\cores\cc3200/Arduino.h:3,

             from sketch\Blink.ino.cpp:1:

C:\Users\mike\AppData\Local\Energia15\packages\energia\hardware\cc3200\1.0.2\cores\cc3200/itoa.h:34:14: note: previous declaration 'char* utoa(long unsigned int, char*, int)'

extern char* utoa( unsigned long value, char *string, int radix ) ;

          ^~~~

exit status 1
Error compiling for board CC3200-LAUNCHXL (80MHz).

itoa.h Issue with CC3200 Examples

The WiFiWebClient.ino example fails to compile with this error.

"~/Library/Energia15/packages/energia/tools/arm-none-eabi-gcc/6.3.1-20170620/bin/arm-none-eabi-g++" -c -g -Os -w -std=gnu++11 -ffunction-sections -fdata-sections -nostdlib -fno-threadsafe-statics --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -Dprintf=iprintf -MMD -mcpu=cortex-m4 -mthumb -DF_CPU=80000000L -DARDUINO=10610 -DENERGIA=10610 -DENERGIA_CC3200-LAUNCHXL -DENERGIA_ARCH_CC3200 "-I~/Library/Energia15/packages/energia/hardware/cc3200/1.0.2/variants/CC3200-LAUNCHXL" "-I~/Library/Energia15/packages/energia/hardware/cc3200/1.0.2/system/driverlib" "-I~/Library/Energia15/packages/energia/hardware/cc3200/1.0.2/system/inc" "-I~/Library/Energia15/packages/energia/hardware/cc3200/1.0.2/system" -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -mabi=aapcs "-I~/Library/Energia15/packages/energia/hardware/cc3200/1.0.2/system/libsam" "-I~/Library/Energia15/packages/energia/hardware/cc3200/1.0.2/system/CMSIS/CMSIS/Include/" "-I~/Library/Energia15/packages/energia/hardware/cc3200/1.0.2/system/CMSIS/Device/ATMEL/" "-I~/Library/Energia15/packages/energia/hardware/cc3200/1.0.2/cores/cc3200" "-I~/Library/Energia15/packages/energia/hardware/cc3200/1.0.2/variants/CC3200-LAUNCHXL" "-I~/Library/Energia15/packages/energia/hardware/cc3200/1.0.2/libraries/WiFi" "/var/folders/px/cyfvtr757lqg0yp_cv9j79jh0000gn/T/build0d1587afb6c57dc7e7ff7cc898bcb84c.tmp/sketch/WiFiWebClient.ino.cpp" -o "/var/folders/px/cyfvtr757lqg0yp_cv9j79jh0000gn/T/build0d1587afb6c57dc7e7ff7cc898bcb84c.tmp/sketch/WiFiWebClient.ino.cpp.o"
In file included from ~/Library/Energia15/packages/energia/tools/arm-none-eabi-gcc/6.3.1-20170620/arm-none-eabi/include/string.h:10:0,
                 from ~/Library/Energia15/packages/energia/hardware/cc3200/1.0.2/cores/cc3200/Energia.h:8,
                 from ~/Library/Energia15/packages/energia/hardware/cc3200/1.0.2/cores/cc3200/Arduino.h:3,
                 from /var/folders/px/cyfvtr757lqg0yp_cv9j79jh0000gn/T/build0d1587afb6c57dc7e7ff7cc898bcb84c.tmp/sketch/WiFiWebClient.ino.cpp:1:
~/Library/Energia15/packages/energia/tools/arm-none-eabi-gcc/6.3.1-20170620/arm-none-eabi/include/stdlib.h:225:8: error: conflicting declaration of C function 'char* utoa(unsigned int, char*, int)'
 char * _EXFUN(utoa,(unsigned, char *, int));
        ^
In file included from ~/Library/Energia15/packages/energia/hardware/cc3200/1.0.2/cores/cc3200/Energia.h:10:0,
                 from ~/Library/Energia15/packages/energia/hardware/cc3200/1.0.2/cores/cc3200/Arduino.h:3,
                 from /var/folders/px/cyfvtr757lqg0yp_cv9j79jh0000gn/T/build0d1587afb6c57dc7e7ff7cc898bcb84c.tmp/sketch/WiFiWebClient.ino.cpp:1:
~/Library/Energia15/packages/energia/hardware/cc3200/1.0.2/cores/cc3200/itoa.h:34:14: note: previous declaration 'char* utoa(long unsigned int, char*, int)'
 extern char* utoa( unsigned long value, char *string, int radix ) ;
              ^~~~
Using library WiFi at version 1.0.0 in folder: ~/Library/Energia15/packages/energia/hardware/cc3200/1.0.2/libraries/WiFi 
exit status 1
Error compiling for board CC3200-LAUNCHXL (80MHz).

Multiple Boards for CC3200 — Only One Works

There are multiple options for the CC3200 boards. The test was conducted on the blink and a basic print to console examples.

capture 2018-09-24 a 13 48 26

However, only one works, the first one highlighted in green above from package Energia CC3200 boards version 1.0.3 below.

capture 2018-09-24 a 13 48 39

CC3200 EMT — MultiBlink Fails to Compile Against CC3200 EMT

The `MultiBlink example fails to compile against CC3200 EMT, but succeeds agains MSP432 EMT.

  1. BLUE_LED is unknown, should be replaced by YELLOW_LED

Add

#define BLUE_LED YELLOW_LED
  1. Linking fails, with the following error message

Linking everything together...
"/Users/ReiVilo/Library/Energia15/packages/energia/tools/arm-none-eabi-gcc/4.8.4-20140725/bin/arm-none-eabi-g++" -mcpu=cortex-m4 -mthumb -nostartfiles -nostdlib -Os -Wl,--gc-sections "-T/Users/ReiVilo/Library/Energia15/packages/energia/hardware/cc3200emt/1.0.0/cores/cc3200/cc3200.ld" "-Wl,-Map,/var/folders/px/cyfvtr757lqg0yp_cv9j79jh0000gn/T/build63d44f843ff038a6bc73c3b80b8f85e0.tmp/MultiBlink.ino.map" -o "/var/folders/px/cyfvtr757lqg0yp_cv9j79jh0000gn/T/build63d44f843ff038a6bc73c3b80b8f85e0.tmp/MultiBlink.ino.elf" "-L/var/folders/px/cyfvtr757lqg0yp_cv9j79jh0000gn/T/build63d44f843ff038a6bc73c3b80b8f85e0.tmp" -Wl,--check-sections -Wl,--cref -Wl,--gc-sections -Wl,--entry=ResetISR -Wl,--unresolved-symbols=report-all -Wl,--warn-common -mthumb -mcpu=cortex-m4 -mfloat-abi=soft -mabi=aapcs -Wl,--start-group "/var/folders/px/cyfvtr757lqg0yp_cv9j79jh0000gn/T/build63d44f843ff038a6bc73c3b80b8f85e0.tmp/sketch/MultiBlink.ino.cpp.o" "/var/folders/px/cyfvtr757lqg0yp_cv9j79jh0000gn/T/build63d44f843ff038a6bc73c3b80b8f85e0.tmp/core/core.a" -Wl,--end-group "/Users/ReiVilo/Library/Energia15/packages/energia/hardware/cc3200emt/1.0.0/system/driverlib/libdriverlib.a" -lm -lc -lgcc
/var/folders/px/cyfvtr757lqg0yp_cv9j79jh0000gn/T/build63d44f843ff038a6bc73c3b80b8f85e0.tmp/core/core.a(main.cpp.o): In function main': /Users/ReiVilo/Library/Energia15/packages/energia/hardware/cc3200emt/1.0.0/cores/cc3200/main.cpp:39: undefined reference to setup'
/Users/ReiVilo/Library/Energia15/packages/energia/hardware/cc3200emt/1.0.0/cores/cc3200/main.cpp:42: undefined reference to `loop'
collect2: error: ld returned 1 exit status
exit status 1
Error compiling for board CC3200-LAUNCHXL EMT (80MHz).

CC3200 - Linux64 bit without 32bit - cannot compile

When trying to compile a sketch under a debian based 64 bit linux I get following error:

fork/exec /home/scilor/.energia15/packages/energia/tools/arm-none-eabi-gcc/4.8.4-20140725/bin/arm-none-eabi-g++: no such file or directory

CC3200 EMT — Error, size if data (1234045) is too big to write

Once #12 has been fixed with suggested command, upload fails due to too big file to write.

Resulting MultiBlink_CC3200.ino.elf for the MultiBlink.ino example weights 1234045 whereas arm-none-eabi-size MultiBlink_CC3200.ino.elf gives 33833.

  • Files sizes
ls -all /var/folders/px/cyfvtr757lqg0yp_cv9j79jh0000gn/T/buildcf7d690e97b58be70057bbfed06e8f9b.tmp
total 4512
drwxr-xr-x   10 reivilo  staff      340 21 déc 16:16 .
drwx------@ 122 reivilo  staff     4148 21 déc 16:17 ..
-rwxr-xr-x    1 reivilo  staff  1234045 21 déc 16:16 MultiBlink_CC3200.ino.elf
-rw-r--r--    1 reivilo  staff  1062939 21 déc 16:16 MultiBlink_CC3200.ino.map
-rw-r--r--    1 reivilo  staff      717 21 déc 16:16 build.options.json
drwxr-xr-x    4 reivilo  staff      136 21 déc 16:16 core
-rw-r--r--    1 reivilo  staff      699 21 déc 16:16 includes.cache
drwxr-xr-x    2 reivilo  staff       68 21 déc 16:15 libraries
drwxr-xr-x    3 reivilo  staff      102 21 déc 16:15 preproc
drwxr-xr-x    7 reivilo  staff      238 21 déc 16:16 sketch
  • Upload
$ /Users/ReiVilo/Library/Energia15/packages/energia/tools/cc3200prog/1.1.4/cc3200prog /dev/cu.usbserial-cc3200B /var/folders/px/cyfvtr757lqg0yp_cv9j79jh0000gn/T/buildcf7d690e97b58be70057bbfed06e8f9b.tmp/MultiBlink_CC3200.ino.elf 
Open UART /dev/cu.usbserial-cc3200B
open UART success
Getting storage list
Bootloader Version: 3
Silicon version ES1.32 or higher
Bootloader version is 2, 0, 3, 2
It's a CC3200 device: PG1.32
BlockSize is 4096, number of blocks is 64
erasing 1 blocks starting from  4
Switch to NWP bootloader complete
Load common boot command for PG1.32
Bootloader version is 2, 0, 3, 4
BlockSize is 4096, number of blocks is 16
erasing 12 blocks starting from  0
erasing file "/sys/mcuimg.bin"
deleting file "/sys/mcuimg.bin"
erase file completed
--- Invalid file size ---
Error, size if data (1234045) is too big to write
  • Size
$ /Users/ReiVilo/Library/Energia15/packages/energia/tools/arm-none-eabi-gcc/4.8.4-20140725/bin/arm-none-eabi-size /var/folders/px/cyfvtr757lqg0yp_cv9j79jh0000gn/T/buildcf7d690e97b58be70057bbfed06e8f9b.tmp/MultiBlink_CC3200.ino.elf 
   text	   data	    bss	    dec	    hex	filename
  26013	   4532	   3288	  33833	   8429	/var/folders/px/cyfvtr757lqg0yp_cv9j79jh0000gn/T/buildcf7d690e97b58be70057bbfed06e8f9b.tmp/MultiBlink_CC3200.ino.elf
``

Switching AP to STA still has issues.

I have written a small Energia sketch to switch back and forth between AP and STA.
Switching works initially, but always ends up failing eventually after switching a seemingly random number of times.

I've run this test multiple times and recorded the number of times it was able to switch before getting stuck:
57, 128, 62, 75, 104, 46, 30, 26, 9, 47, 52, 51.
It always seems to eventually get stuck in the switch from AP to STA, but never when switching from STA back to AP.

I am using the latest commit of the WiFi library from this repo.

#include <WiFi.h>  

#define WIFI_SSID         "<Your WiFi Network SSID>"
#define WIFI_PASSWORD     "<Your WiFi Network Password>"

#define AP_SSID           "AP_Test"
#define AP_PASSWORD       "12345678"

#define MODE_CHANGING     0
#define MODE_AP           1
#define MODE_STATION      2

unsigned int currentMode;
unsigned int swapToApCount;
unsigned int swapToStationCount;

void setup() {

  Serial.begin(115200);
  
  setupStation();
}

void loop() {

  switch (currentMode) {

    case MODE_AP:
      delay(1000);
      setupStation();
      break;

    case MODE_STATION:
      delay(1000);
      setupAp();
      break;
  }  
}

/**
 * Set the CC3200 up as an Access Point
 */
void setupAp() {

  Serial << "Setup AP with SSID: " << AP_SSID << "\r\n";
  Serial << "AP uses WPA with Password: " << AP_PASSWORD <<  "\r\n";

  WiFi.beginNetwork(AP_SSID, AP_PASSWORD);
  while (WiFi.localIP() == INADDR_NONE) {
    Serial << ".";
    delay(300);
  }

  Serial << "\r\nAP Active!\r\n\r\n";
  currentMode = MODE_AP;
  swapToApCount++;
  printStats();
}

/**
 * Connect the CC3200 as a Client to a WiFi network.
 */
void setupStation() {

  Serial << "Connecting to network with SSID: " << WIFI_SSID << "\r\n";
  Serial << "Connecting using password: " << WIFI_PASSWORD << "\r\n";

  WiFi._initialized = false;
  WiFi._connecting = false;
  
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  while ( WiFi.status() != WL_CONNECTED) {
    Serial << ".";
    delay(300);
  }

  Serial << "\r\nConnected to network!\r\n";
  Serial << "Waiting for an IP address\r\n";

  while (WiFi.localIP() == INADDR_NONE) {
    Serial << ".";
    delay(300);
  }

  Serial << "\r\nIP address obtained: " << WiFi.localIP() << "\r\n\r\n";
  Serial << "Attached to network: " << WiFi.SSID() << "\r\n\r\n";
  currentMode = MODE_STATION;
  swapToStationCount++;
  printStats();
}

void printStats() {

  Serial << "Stats\r\n-----\r\n";
  Serial << "Swap to AP count: " << swapToApCount << "\r\n";
  Serial << "Swap to Station count: " << swapToStationCount << "\r\n\r\n";
}

/**
 * Template to allow easier concatenation of print output.
 */
template<class T> inline Print &operator <<(Print &obj, T arg) {
  obj.print(arg);
  return obj;
}

Not Enough RAM for Variables on CC3200

I've found an interesting solution for my latest project Pervasive Reporting on the CC3200.

The e-paper display requires to have two frame buffers on RAM, but using two arrays of 9472 bytes raised an error while compiling.

~/Library/Energia15/packages/energia/tools/arm-none-eabi-gcc/4.8.4-20140725/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/bin/ld: ~/Library/Developer/Xcode/DerivedData/eX-Check-Display-dkzssdmfeebnduggodwhukhifkst/Build/Products/Debug/embeddedcomputing.elf section '.heap' will not fit in region 'SRAM'
~/Library/Energia15/packages/energia/tools/arm-none-eabi-gcc/4.8.4-20140725/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/bin/ld: region 'SRAM' overflowed by 12376 bytes

I was surprised, since the CC3200 features 512 kB 256 kB of RAM, but Energia is mum about how they are allocated.

According to this E2E post, editing the cc3200.ld link script solved the issue.

I just changed HEAP_SIZE = 0x00010000; for HEAP_SIZE = 0x0000C000; as suggested, and everything built and ran fine now.

Is there something similar to the solution we're using for FRAM (energia/msp430-lg-core#31)?

#define PLACE_IN_FRAM __attribute__((section(".text")))

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.