diff --git a/Blinker-MSP-EXP430G2/.project b/Blinker-MSP-EXP430G2/.project new file mode 100644 index 0000000..868c910 --- /dev/null +++ b/Blinker-MSP-EXP430G2/.project @@ -0,0 +1,36 @@ + + + Blinker-MSP-EXP430G2 + + + + + + com.emmoco.mcmtooling.core.mcmToolingBuilder + + + + + com.emmoco.mcmtooling.example.mcmToolingBuilder + + + + + + com.emmoco.mcmtooling.example.mcmToolingExampleNature + com.emmoco.mcmtooling.core.mcmToolingNature + + + + Hal + 2 + EM_PLATFORM_LOC/Hal + + + + + EM_PLATFORM_LOC + $%7BWORKSPACE_LOC%7D/Platform-MSP-EXP430G2 + + + diff --git a/Blinker-MSP-EXP430G2/Blinker-Prog.c b/Blinker-MSP-EXP430G2/Blinker-Prog.c new file mode 100644 index 0000000..b887714 --- /dev/null +++ b/Blinker-MSP-EXP430G2/Blinker-Prog.c @@ -0,0 +1,86 @@ +#include "Blinker.h" +#include "Hal.h" + +static void tickHandler(void); + +static Blinker_cmd_t cmdVal = Blinker_START_CMD; +static Blinker_count_t countVal = 0; +static Blinker_delay_t delayVal = 1.2 * Blinker_delay_scale; + +#define FOREVER -1 + +static Blinker_count_t curCount = FOREVER; +static Blinker_delay_t curTime = 0; + +void main() { + Hal_init(); + Hal_tickStart(Blinker_delay_step, tickHandler); + Blinker_start(); + Hal_idleLoop(); +} + +static void tickHandler(void) { + + if (cmdVal == Blinker_STOP_CMD) { + return; + } + + if (curTime < delayVal) { + curTime += Blinker_delay_step; + return; + } + + if (curCount == FOREVER || curCount-- > 0) { + Hal_ledToggle(); + } + else { + cmdVal = Blinker_STOP_CMD; + Hal_ledOff(); + } + curTime = 0; + Blinker_ledState_indicate(); +} + +/* -------- SCHEMA CALLBACKS -------- */ + +void Blinker_connectHandler(void) { + Hal_connected(); +} + +void Blinker_disconnectHandler(void) { + Hal_disconnected(); +} + +void Blinker_cmd_store(Blinker_cmd_t* input) { + cmdVal = *input; + switch (cmdVal) { + case Blinker_START_CMD: + curCount = countVal > 0 ? countVal * 2 : FOREVER; + curTime = 0; + break; + case Blinker_STOP_CMD: + Hal_ledOff(); + break; + } +} + +void Blinker_count_fetch(Blinker_count_t* output) { + *output = countVal; +} + +void Blinker_count_store(Blinker_count_t* input) { + countVal = *input; +} + +void Blinker_delay_fetch(Blinker_delay_t* output) { + *output = delayVal; +} + +void Blinker_delay_store(Blinker_delay_t* input) { + delayVal = *input; +} + +void Blinker_ledState_fetch(Blinker_ledState_t* output) { + *output = Hal_ledRead() ? Blinker_LED_ON : Blinker_LED_OFF; +} + diff --git a/Blinker-MSP-EXP430G2/Blinker.ems b/Blinker-MSP-EXP430G2/Blinker.ems new file mode 100644 index 0000000..0500366 --- /dev/null +++ b/Blinker-MSP-EXP430G2/Blinker.ems @@ -0,0 +1,38 @@ +version = "1.0.0"; +description = "Blinker, the hello world program for mobile control"; + +schema Blinker { + + /* -------- resource cmd -------- */ + + enum Cmd { + START_CMD, STOP_CMD + }; + + Cmd cmd { + writeonly + }; + + /* -------- resource count -------- */ + + int16 count { + readwrite + }; + + /* -------- resource delay -------- */ + + num <0.5, 2.0, 0.100> delay { + readwrite + }; + + /* -------- resource ledState -------- */ + + enum LedState { + LED_OFF, LED_ON + }; + + LedState ledState { + indicator + }; + +}; diff --git a/Blinker-MSP-EXP430G2/Em/Blinker-STUBS.c b/Blinker-MSP-EXP430G2/Em/Blinker-STUBS.c new file mode 100644 index 0000000..bc62f62 --- /dev/null +++ b/Blinker-MSP-EXP430G2/Em/Blinker-STUBS.c @@ -0,0 +1,42 @@ +/**** DO NOT EDIT -- this file has been automatically generated from @emmoco.com.Blinker on 2014-07-30T13:03:35T ****/ +/**** protocolLevel = 13, toolsVersion = 13.4.1.201311121909 ****/ + +#include "Blinker.h" + +#ifdef Blinker_STUBS_ /* enables optional inclusion of application stubs */ + +/* Copy the function skeletons below into your own application source file */ + +void Blinker_connectHandler(void) { + /* TODO: application is now connected */ +} + +void Blinker_disconnectHandler(void) { + /* TODO: application is now disconnected */ +} + +void Blinker_cmd_store(Blinker_cmd_t* input) { + /* TODO: write resource 'cmd' from 'input' */ +} + +void Blinker_count_fetch(Blinker_count_t* output) { + /* TODO: read resource 'count' into 'output' */ +} + +void Blinker_count_store(Blinker_count_t* input) { + /* TODO: write resource 'count' from 'input' */ +} + +void Blinker_delay_fetch(Blinker_delay_t* output) { + /* TODO: read resource 'delay' into 'output' */ +} + +void Blinker_delay_store(Blinker_delay_t* input) { + /* TODO: write resource 'delay' from 'input' */ +} + +void Blinker_ledState_fetch(Blinker_ledState_t* output) { + /* TODO: read resource 'ledState' into 'output' */ +} + +#endif /* application stubs */ diff --git a/Blinker-MSP-EXP430G2/Em/Blinker.c b/Blinker-MSP-EXP430G2/Em/Blinker.c new file mode 100644 index 0000000..a000fdf --- /dev/null +++ b/Blinker-MSP-EXP430G2/Em/Blinker.c @@ -0,0 +1,526 @@ +/**** DO NOT EDIT -- this file has been automatically generated from @emmoco.com.Blinker on 2014-07-30T13:03:35T ****/ +/**** protocolLevel = 13, toolsVersion = 13.4.1.201311121909 ****/ + +#include "Em_Message.h" +#include "Blinker.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define Em_Message_protocolLevel 13 + +typedef struct Em_App_Message { + uint8_t dummy[3]; + uint8_t sot; + Em_Message_Header hdr; + uint8_t data[20]; +} Em_App_Message; + +const uint8_t Em_App_hash[] = {100, 133, 204, 118, 171, 105, 196, 176, 165, 61, 177, 160, 190, 191, 194, 241, 13, 0, ((sizeof(struct{uint8_t f1; uint16_t f2;}) - sizeof(uint16_t)) << 4) | (sizeof(struct{uint8_t f1; uint32_t f2;}) - sizeof(uint32_t))}; + +const uint8_t Em_App_build[] = {71, 133, 240, 134, 71, 1, 0, 0}; + +#define Em_App_APP_RESOURCE_COUNT 4 +#define Em_App_SYS_RESOURCE_COUNT 9 + +#define Em_App_ACCEPT Blinker_accept +#define Em_App_ACTIVATEPARAMETERS Blinker_activateParameters +#define Em_App_BROADCASTOFF Blinker_broadcastOff +#define Em_App_DISCONNECT Blinker_disconnect +#define Em_App_PAIRINGON Blinker_pairingOn +#define Em_App_PAIRINGOFF Blinker_pairingOff +#define Em_App_RESET Blinker_reset +#define Em_App_SETDEVICENAME Blinker_setDeviceName +#define Em_App_START Blinker_start + +#define Em_App_CONNECTHANDLER Blinker_connectHandler +#define Em_App_DISCONNECTHANDLER Blinker_disconnectHandler + +#define Em_App_MAX_INDICATOR 2 + +/* BEGIN common code */ + +enum {Em_App_IDLE, Em_App_STARTING, Em_App_DISCONNECTED, Em_App_CONNECTED}; + +typedef struct Em_App_Indicator { + uint8_t dummy[3]; + uint8_t sot; + Em_Message_Header hdr; + uint8_t data[Em_Message_INDSIZE]; +} Em_App_Indicator; + +union { uint32_t align; Em_App_Message msg; } Em_App_msg_u; +union { uint32_t align; Em_App_Indicator ind; } Em_App_ind_u; +#define Em_App_msg Em_App_msg_u.msg +#define Em_App_ind Em_App_ind_u.ind + +void (*Em_App_pdHdlr)(void); + +const uint16_t Em_App_endian = 0x0100; + +Em_Message_Size Em_App_recvIdx; +Em_Message_Size Em_App_recvSize; +Em_Message_Size Em_App_xmitIdx; +Em_Message_Size Em_App_xmitSize; + +uint8_t Em_App_state = Em_App_IDLE; +int32_t Em_App_fileIndex = 0; +uint32_t Em_App_xmitMask = 0; + +uint8_t* Em_App_valp; +uint8_t* Em_App_bufp; +const char* Em_App_desc; + +uint8_t* Em_App_inBuf = (uint8_t*)&Em_App_msg.hdr; +uint8_t* Em_App_outBuf = 0; + +uint8_t* _Em_Message_rxBuf = 0; +uint8_t _Em_Message_rxCnt = 0; + +uint8_t* _Em_Message_txBuf = 0; +uint8_t _Em_Message_txCnt = 0; + +#define Em_App_DEVNAME_LEN 9 +const char* Em_App_devName = 0; + +void Em_App_fetchDispatch(void); +void Em_Message_marshallToBuf(uint8_t* valp, uint8_t* bufp, const char* desc); +void Em_Message_marshallToVal(uint8_t* valp, uint8_t* bufp, const char* desc); +void Em_App_storeDispatch(void); +void Em_App_sendIndicator(Em_Message_ResId indId); +void Em_App_sendResponse(Em_Message_Kind kind, Em_Message_Size size); +void Em_App_startIndSend(void); +void Em_App_startResSend(void); +void Em_App_sysFetchDispatch(void); +void Em_App_sysStoreDispatch(void); +bool Em_App_xmitReady(Em_Message_ResId indId); + +void Em_Message_nextXmit(void) { + uint8_t key = Em_Hal_lock(); + if (Em_App_xmitMask != 0) { + uint8_t i; + uint32_t m; + for (i = 0, m = 0x1; i < Em_App_MAX_INDICATOR; i++, m <<= 1) { + if (Em_App_xmitMask & m) { + Em_App_xmitMask &= ~m; + if (i == 0) { + Em_App_startResSend(); + } + else { + Em_App_sendIndicator(i - 1); + } + break; + } + } + } + Em_Hal_unlock(key); +} + +void Em_Message_restart(void) { + Em_App_START(); +} + +void Em_App_ACCEPT(bool enable) { + if (Em_App_state == Em_App_CONNECTED) { + return; + } + Em_App_ind.sot = 0; + Em_App_ind.hdr.kind = Em_Message_ACCEPT; + Em_App_ind.hdr.size = sizeof (Em_Message_Header); + Em_App_ind.hdr.resId = enable; + Em_App_startIndSend(); +} + +void Em_App_ACTIVATEPARAMETERS(uint8_t group) { + if (Em_App_state == Em_App_IDLE || Em_App_state == Em_App_STARTING) { + return; + } + Em_App_ind.sot = 0; + Em_App_ind.hdr.kind = Em_Message_ACTIVE_PARAMS; + Em_App_ind.hdr.size = sizeof (Em_Message_Header); + Em_App_ind.hdr.resId = group; + Em_App_startIndSend(); +} + +void Em_App_BROADCASTOFF(void) { + Em_App_ind.sot = 0; + Em_App_ind.hdr.kind = Em_Message_INDICATOR; + Em_App_ind.hdr.size = sizeof (Em_Message_Header); + Em_App_ind.hdr.resId = 0; + Em_App_startIndSend(); +} + +void Em_App_DISCONNECT(void) { + if (Em_App_state != Em_App_CONNECTED) { + return; + } + Em_App_state = Em_App_DISCONNECTED; + Em_App_ind.sot = 0; + Em_App_ind.hdr.kind = Em_Message_DISCONNECT; + Em_App_ind.hdr.size = sizeof (Em_Message_Header); + Em_App_ind.hdr.resId = 0; + Em_App_startIndSend(); +} + +void Em_Message_dispatch(void) { + if (Em_App_state == Em_App_IDLE) { + return; + } + switch (Em_App_msg.hdr.kind) { + case Em_Message_CONNECT: + Em_App_state = Em_App_CONNECTED; + Em_App_CONNECTHANDLER(); + break; + case Em_Message_DISCONNECT: + Em_App_state = Em_App_DISCONNECTED; + Em_App_DISCONNECTHANDLER(); + break; + case Em_Message_PAIRING_DONE: + if (Em_App_pdHdlr) { + (*Em_App_pdHdlr)(); + } + break; + case Em_Message_FETCH: + if (Em_App_msg.hdr.resId < 0x80) { + Em_App_fetchDispatch(); + } + else { + Em_App_sysFetchDispatch(); + } + break; + case Em_Message_STORE: + if (Em_App_msg.hdr.resId < 0x80) { + Em_App_storeDispatch(); + } + else { + Em_App_sysStoreDispatch(); + } + break; + } +} + +void Em_App_marshallToBuf() { + char ch; + while ((ch = *Em_App_desc++)) { + switch (ch) { + case '0' : { + *Em_App_bufp++ = 0; + break; + } + case '1' : { + *Em_App_bufp++ = *Em_App_valp & 0xFF; + break; + } + case '2' : { + uint16_t v16 = *(uint16_t*)Em_App_valp; + *Em_App_bufp++ = v16 & 0xFF; + *Em_App_bufp++ = (v16 >> 8) & 0xFF; + break; + } + case '4' : { + if (((uint32_t)Em_App_valp & 0x1)) Em_App_valp++; + uint32_t v32 = *(uint32_t*)Em_App_valp++; + *Em_App_bufp++ = v32 & 0xFF; + *Em_App_bufp++ = (v32 >> 8) & 0xFF; + *Em_App_bufp++ = (v32 >> 16) & 0xFF; + *Em_App_bufp++ = (v32 >> 24) & 0xFF; + break; + } + } + Em_App_valp += 1; + } +} + +void Em_App_marshallToVal() { + char ch; + while ((ch = *Em_App_desc++)) { + switch (ch) { + case '0' : { + *Em_App_valp = 0; + Em_App_bufp += 1; + break; + } + case '1' : { + *Em_App_valp = *Em_App_bufp++ & 0xFF; + break; + } + case '2' : { + uint16_t v16 = *Em_App_bufp++ & 0xFF; + v16 |= (*Em_App_bufp++ << 8); + *(uint16_t*)Em_App_valp = v16; + break; + } + case '4' : { + if (((uint32_t)Em_App_valp & 0x1)) Em_App_valp++; + uint32_t v32 = (uint32_t)*Em_App_bufp++ & 0xFF; + v32 |= ((uint32_t)*Em_App_bufp++ << 8); + v32 |= ((uint32_t)*Em_App_bufp++ << 16); + v32 |= ((uint32_t)*Em_App_bufp++ << 24); + *(uint32_t*)Em_App_valp++ = v32; + break; + } + } + Em_App_valp += 1; + } +} + +void Em_App_PAIRINGOFF(void(*handler)(void)) { + Em_App_PAIRINGON(0, handler); +} + +void Em_App_PAIRINGON(uint8_t secs, void(*handler)(void)) { + if (Em_App_state != Em_App_DISCONNECTED) { + return; + } + Em_App_pdHdlr = handler; + Em_App_ind.sot = 0; + Em_App_ind.hdr.kind = Em_Message_PAIRING; + Em_App_ind.hdr.size = sizeof (Em_Message_Header); + Em_App_ind.hdr.resId = secs; + Em_App_startIndSend(); +} + +void Em_App_RESET(void) { + Em_Hal_reset(); + _Em_Message_rxBuf = _Em_Message_txBuf = 0; + _Em_Message_rxCnt = _Em_Message_txCnt = 0; + Em_App_recvIdx = Em_App_recvSize = Em_App_xmitIdx = Em_App_xmitSize = 0; + Em_App_state = Em_App_IDLE; + Em_App_fileIndex = 0; + Em_App_xmitMask = 0; +} + +void Em_App_SETDEVICENAME(const char* name) { + Em_App_devName = name; +} + +void Em_App_START(void) { + Em_App_RESET(); + Em_App_state = Em_App_STARTING; +} + +void Em_App_sendResponse(Em_Message_Kind kind, Em_Message_Size size) { + if (Em_App_state != Em_App_IDLE) { + Em_App_msg.sot = 0; + Em_App_msg.hdr.kind = kind; + Em_App_msg.hdr.size = size + sizeof (Em_Message_Header); + if (Em_App_xmitReady(0)) { + Em_App_startResSend(); + } + } +} + +void Em_App_startIndSend(void) { + Em_App_outBuf = (uint8_t*)&Em_App_ind.sot; + Em_App_xmitSize = Em_App_ind.hdr.size + 1; + Em_App_xmitIdx = 0; + Em_Hal_startSend(); +} + +void Em_App_startResSend(void) { + Em_App_outBuf = (uint8_t*)&Em_App_msg.sot; + Em_App_xmitSize = Em_App_msg.hdr.size + 1; + Em_App_xmitIdx = 0; + Em_Hal_startSend(); +} + +void Em_App_sysFetchDispatch(void) { + uint8_t size = 0; + int i, j; + switch (Em_App_msg.hdr.resId) { + case Em_Message_SYS_SCHEMA_HASH: + for (i = 0; i < sizeof (Em_App_hash); i++) { + Em_App_msg.data[i] = Em_App_hash[i]; + } + Em_App_msg.data[sizeof (Em_App_hash)] = *((uint8_t*)&Em_App_endian); + size = sizeof (Em_App_hash) + 1; + break; + case Em_Message_SYS_MCM_NAME: + if (Em_App_devName) { + for (i = 0; i < Em_App_DEVNAME_LEN; i++) { + if ((Em_App_msg.data[i] = Em_App_devName[i]) == 0) { + break; + } + } + for (j = i; j < Em_App_DEVNAME_LEN; j++) { + Em_App_msg.data[j] = 0; + } + size = Em_App_DEVNAME_LEN; + } + break; + case Em_Message_SYS_EAP_PROTOCOL_LEVEL: + *((Em_Message_protocolLevel_t*)Em_App_msg.data) = Em_Message_protocolLevel; + size = sizeof (Em_Message_protocolLevel_t); + break; + case Em_Message_SYS_EAP_BUILD_DATE: + for (i = 0; i < sizeof (Em_App_build); i++) { + Em_App_msg.data[i] = Em_App_build[i]; + } + size = sizeof (Em_App_build); + break; + case Em_Message_SYS_RESOURCE_COUNT: + Em_App_msg.data[0] = Em_App_APP_RESOURCE_COUNT; + Em_App_msg.data[1] = Em_App_SYS_RESOURCE_COUNT; + size = 2; + break; + } + Em_App_sendResponse(Em_Message_FETCH_DONE, size); +} + +void Em_App_sysStoreDispatch(void) { + switch (Em_App_msg.hdr.resId) { + case Em_Message_SYS_FILE_INDEX_RESET: + Em_App_fileIndex = 0; + break; + } + Em_App_sendResponse(Em_Message_STORE_DONE, 0); +} + +bool Em_App_xmitReady(Em_Message_ResId indId) { + uint8_t key = Em_Hal_lock(); + bool res = _Em_Message_txBuf == 0 && Em_App_xmitMask == 0; + if (!res) { + Em_App_xmitMask |= (1 << indId); + } + Em_Hal_unlock(key); + return res; +} + +/* END common code */ + +void Em_App_fetchDispatch(void) { + uint8_t size = 0; + switch (Em_App_msg.hdr.resId) { + case 0: { + break; + } + case 2: { +#ifdef Em_16BIT + Blinker_count_t val; + Em_App_valp = (uint8_t*)&val; + Em_App_bufp = Em_App_msg.data; + Em_App_desc = "2"; + Blinker_count_fetch(&val); + Em_App_marshallToBuf(); +#else + Blinker_count_fetch((void*)Em_App_msg.data); +#endif + size = 2; + break; + } + case 3: { +#ifdef Em_16BIT + Blinker_delay_t val; + Em_App_valp = (uint8_t*)&val; + Em_App_bufp = Em_App_msg.data; + Em_App_desc = "2"; + Blinker_delay_fetch(&val); + Em_App_marshallToBuf(); +#else + Blinker_delay_fetch((void*)Em_App_msg.data); +#endif + size = 2; + break; + } + case 4: { +#ifdef Em_16BIT + Blinker_ledState_t val; + Em_App_valp = (uint8_t*)&val; + Em_App_bufp = Em_App_msg.data; + Em_App_desc = "1"; + Blinker_ledState_fetch(&val); + Em_App_marshallToBuf(); +#else + Blinker_ledState_fetch((void*)Em_App_msg.data); +#endif + size = 1; + break; + } + } + Em_App_sendResponse(Em_Message_FETCH_DONE, size); +} + +void Em_App_storeDispatch(void) { + switch (Em_App_msg.hdr.resId) { + case 0: { + break; + } + case 1: { +#ifdef Em_16BIT + Blinker_cmd_t val; + Em_App_valp = (uint8_t*)&val; + Em_App_bufp = Em_App_msg.data; + Em_App_desc = "1"; + Em_App_marshallToVal(); + Blinker_cmd_store(&val); +#else + Blinker_cmd_store((void*)Em_App_msg.data); +#endif + break; + } + case 2: { +#ifdef Em_16BIT + Blinker_count_t val; + Em_App_valp = (uint8_t*)&val; + Em_App_bufp = Em_App_msg.data; + Em_App_desc = "2"; + Em_App_marshallToVal(); + Blinker_count_store(&val); +#else + Blinker_count_store((void*)Em_App_msg.data); +#endif + break; + } + case 3: { +#ifdef Em_16BIT + Blinker_delay_t val; + Em_App_valp = (uint8_t*)&val; + Em_App_bufp = Em_App_msg.data; + Em_App_desc = "2"; + Em_App_marshallToVal(); + Blinker_delay_store(&val); +#else + Blinker_delay_store((void*)Em_App_msg.data); +#endif + break; + } + } + Em_App_sendResponse(Em_Message_STORE_DONE, 0); +} + +void Em_App_sendIndicator(Em_Message_ResId indId) { + Em_Message_Size resId = 0; + Em_Message_Size size = 0; + switch (indId) { + case 1: { +#ifdef Em_16BIT + Blinker_ledState_t val; + Em_App_valp = (uint8_t*)&val; + Em_App_bufp = Em_App_ind.data; + Em_App_desc = "1"; + Blinker_ledState_fetch(&val); + Em_App_marshallToBuf(); +#else + Blinker_ledState_fetch((Blinker_ledState_t*)&Em_App_ind.data); +#endif + resId = 4; + size = 1; + break; + } + } + Em_App_ind.sot = 0; + Em_App_ind.hdr.kind = Em_Message_INDICATOR; + Em_App_ind.hdr.size = sizeof (Em_Message_Header) + size; + Em_App_ind.hdr.resId = resId; + Em_App_startIndSend(); +} + +void Blinker_ledState_indicate(void) { + if (Em_App_state == Em_App_CONNECTED && Em_App_xmitReady(1 + 1)) Em_App_sendIndicator(1); +} + +#ifdef __cplusplus +} +#endif + diff --git a/Blinker-MSP-EXP430G2/Em/Blinker.h b/Blinker-MSP-EXP430G2/Em/Blinker.h new file mode 100644 index 0000000..b08eb34 --- /dev/null +++ b/Blinker-MSP-EXP430G2/Em/Blinker.h @@ -0,0 +1,72 @@ +/**** DO NOT EDIT -- this file has been automatically generated from @emmoco.com.Blinker on 2014-07-30T13:03:35T ****/ +/**** protocolLevel = 13, toolsVersion = 13.4.1.201311121909 ****/ + +#ifndef Blinker__H +#define Blinker__H + +#include "Em_Types.h" +#include "Em_Message.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* -------- connection callback functions implemented by the application -------- */ + +void Blinker_connectHandler(void); +void Blinker_disconnectHandler(void); + +/* -------- resource types defined in the schema -------- */ + +/* enum Cmd */ +typedef uint8_t Blinker_Cmd; +#define Blinker_START_CMD 0 +#define Blinker_STOP_CMD 1 + +/* enum LedState */ +typedef uint8_t Blinker_LedState; +#define Blinker_LED_OFF 0 +#define Blinker_LED_ON 1 + +/* -------- resource callback functions implemented by the application -------- */ + +/* resource cmd */ +typedef Blinker_Cmd Blinker_cmd_t; +extern void Blinker_cmd_store(Blinker_cmd_t* input); + +/* resource count */ +typedef int16_t Blinker_count_t; +extern void Blinker_count_fetch(Blinker_count_t* output); +extern void Blinker_count_store(Blinker_count_t* input); + +/* resource delay */ +typedef uint16_t Blinker_delay_t; +#define Blinker_delay_min 500 +#define Blinker_delay_max 2000 +#define Blinker_delay_step 100 +#define Blinker_delay_scale 1000 +extern void Blinker_delay_fetch(Blinker_delay_t* output); +extern void Blinker_delay_store(Blinker_delay_t* input); + +/* resource ledState */ +typedef Blinker_LedState Blinker_ledState_t; +extern void Blinker_ledState_fetch(Blinker_ledState_t* output); +extern void Blinker_ledState_indicate(void); /* called by the application */ + +/* -------- application functions implemented in Blinker.c -------- */ + +void Blinker_accept(bool enable); +void Blinker_activateParameters(uint8_t group); +void Blinker_broadcastOff(void); +void Blinker_disconnect(void); +void Blinker_pairingOn(uint8_t secs, void(*handler)(void)); +void Blinker_pairingOff(void(*handler)(void)); +void Blinker_reset(void); +void Blinker_setDeviceName(const char* name); +void Blinker_start(void); + +#ifdef __cplusplus +} +#endif + +#endif /* Blinker__H */ diff --git a/Blinker-MSP-EXP430G2/Em/Em_Message.h b/Blinker-MSP-EXP430G2/Em/Em_Message.h new file mode 100644 index 0000000..3bd0d58 --- /dev/null +++ b/Blinker-MSP-EXP430G2/Em/Em_Message.h @@ -0,0 +1,182 @@ +#ifndef Em_Message_H_ +#define Em_Message_H_ + +#include "Em_Types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* -------- SRT FUNCTIONS CALLED BY HAL -------- */ + +static inline bool Em_Message_addByte(uint8_t b); +extern void Em_Message_dispatch(void); +static inline bool Em_Message_getByte(uint8_t* bp); +extern void Em_Message_restart(void); +static inline bool Em_Message_startRx(void); +static inline uint8_t Em_Message_startTx(void); + + +/* -------- HAL FUNCTIONS CALLED BY SRT -------- */ + +extern uint8_t Em_Hal_lock(void); +extern void Em_Hal_reset(void); +extern void Em_Hal_startSend(void); +extern void Em_Hal_unlock(uint8_t key); +extern void Em_Hal_watchOff(void); +extern void Em_Hal_watchOn(void); + + +/* -------- MESSAGE FORMAT -------- */ + +/* protocolLevel #4 */ +#define Em_Message_INDSIZE 4 + +typedef uint8_t Em_Message_Size; +typedef uint8_t Em_Message_Kind; +/* protocolLevel #12 -- split 16-bit resId into */ +typedef uint8_t Em_Message_ResId; +typedef uint8_t Em_Message_Chan; + +#define Em_Message_NOP 0 +#define Em_Message_FETCH 1 +#define Em_Message_FETCH_DONE 2 +#define Em_Message_STORE 3 +#define Em_Message_STORE_DONE 4 +#define Em_Message_INDICATOR 5 +#define Em_Message_CONNECT 6 +#define Em_Message_DISCONNECT 7 +#define Em_Message_ECHO 8 +/* protocolLevel #3 */ +/* protocolLevel #6 -- rename from BROADCAST to PAIRING */ +#define Em_Message_PAIRING 9 +#define Em_Message_PAIRING_DONE 10 +/* protocolLevel #7 */ +#define Em_Message_OFFLINE 11 +/* protocolLevel #8 */ +#define Em_Message_ACCEPT 12 +/* protocolLevel #13 */ +#define Em_Message_START 13 +#define Em_Message_ACTIVE_PARAMS 14 + +typedef struct Em_Message_Header { + Em_Message_Size size; + Em_Message_Kind kind; + Em_Message_ResId resId; + Em_Message_Chan chan; +} Em_Message_Header; + +typedef uint16_t Em_Message_protocolLevel_t; + +/* protocolLevel #1 */ + +/* protocolLevel #10 */ +/* #define Em_Message_SYS_SCHEMA_UUID 0xFF */ + +#define Em_Message_SYS_MCM_PROTOCOL_LEVEL 0xFE +#define Em_Message_SYS_EAP_PROTOCOL_LEVEL 0xFD +#define Em_Message_SYS_EAP_BUILD_DATE 0xFC + +/* protocolLevel #2 */ +#define Em_Message_SYS_FILE_INDEX_RESET 0xFB + +/* protocolLevel #5 */ +#define Em_Message_SYS_SCHEMA_HASH 0xFA + +/* protocolLevel #7 */ +#define Em_Message_SYS_RESOURCE_COUNT 0xF9 + +/* protocolLevel #9 */ +#define Em_Message_SYS_MOBILE_RSSI 0xF8 + +/* protocolLevel #11 */ +#define Em_Message_SYS_MCM_DISCONNECT 0xF7 + +/* protocolLevel #13a */ +#define Em_Message_SYS_MCM_NAME 0xF5 + + +/* -------- PRIVATE -------- */ + +extern void Em_Message_nextXmit(void); + +extern uint8_t* Em_App_inBuf; +extern uint8_t* Em_App_outBuf; +extern Em_Message_Size Em_App_xmitSize; + +extern uint8_t* _Em_Message_rxBuf; +extern uint8_t _Em_Message_rxCnt; + +extern uint8_t* _Em_Message_txBuf; +extern uint8_t _Em_Message_txCnt; + +static inline bool Em_Message_addByte(uint8_t b) { + if (_Em_Message_rxCnt == 0) { + if (b == 0) { + return false; + } + _Em_Message_rxCnt = b; + } + *_Em_Message_rxBuf++ = b; + if (--_Em_Message_rxCnt == 0) { + _Em_Message_rxBuf = 0; + if (_Em_Message_txBuf == 0) { + Em_Hal_watchOff(); + } + return true; + } + else { + return false; + } +} + +static inline bool Em_Message_getByte(uint8_t* bp) { + if (_Em_Message_txBuf == 0) { + return false; + } + if (_Em_Message_txCnt == 0) { + _Em_Message_txCnt = *_Em_Message_txBuf + 1; + } + if (--_Em_Message_txCnt > 0) { + *bp = *_Em_Message_txBuf++; + return true; + } + else { + _Em_Message_txBuf = 0; + Em_App_xmitSize = 0; + Em_Message_nextXmit(); + if (_Em_Message_rxBuf == 0) { + Em_Hal_watchOff(); + } + return false; + } +} + +static inline bool Em_Message_startRx(void) { + if (_Em_Message_rxBuf == 0) { + _Em_Message_rxBuf = Em_App_inBuf; + if (_Em_Message_txBuf == 0) { + Em_Hal_watchOn(); + } + return true; + } + else { + return false; + } +} + +static inline uint8_t Em_Message_startTx(void) { + _Em_Message_txBuf = Em_App_outBuf + 1; + _Em_Message_txCnt = 0; + if (_Em_Message_rxBuf == 0) { + Em_Hal_watchOn(); + } + return 0; +} + + +#ifdef __cplusplus +} +#endif + +#endif /*Em_Message_H_*/ diff --git a/Blinker-MSP-EXP430G2/Em/Em_Types.h b/Blinker-MSP-EXP430G2/Em/Em_Types.h new file mode 100644 index 0000000..d002306 --- /dev/null +++ b/Blinker-MSP-EXP430G2/Em/Em_Types.h @@ -0,0 +1,17 @@ +#ifndef Em_Types_H_ +#define Em_Types_H_ + +#ifndef Em_NOSTDBOOL +#include +#endif + +#ifndef Em_NOSTDINT +#include +#endif + +#ifdef Em_16BIT +typedef signed char int8_t; +typedef unsigned char uint8_t; +#endif + +#endif /*Em_Types_H_*/ diff --git a/Blinker-MSP-EXP430G2/Em/blinker.json b/Blinker-MSP-EXP430G2/Em/blinker.json new file mode 100644 index 0000000..53c85ed --- /dev/null +++ b/Blinker-MSP-EXP430G2/Em/blinker.json @@ -0,0 +1,259 @@ +{ + "resources": { + "$eapProtocolLevel": { + "id": -3, + "align": 2, + "attributes": {"readonly": true}, + "type": "u2", + "access": "r", + "size": 2 + }, + "count": { + "id": 2, + "align": 2, + "attributes": {"readwrite": true}, + "type": "i2", + "access": "rw", + "size": 2 + }, + "$activeGroup": { + "id": -10, + "align": 1, + "pack": 1, + "attributes": {"readwrite": true}, + "type": "E:system@emmoco.com.System/ParameterGroup", + "access": "rw", + "size": 1 + }, + "$mcmDisconnect": { + "id": -9, + "align": 1, + "attributes": {"writeonly": true}, + "type": "u1", + "access": "w", + "size": 1 + }, + "$eapBuildDate": { + "dim": 8, + "id": -4, + "align": 1, + "attributes": {"readonly": true}, + "type": "A8:u1", + "access": "r", + "size": 8 + }, + "ledState": { + "id": 4, + "align": 1, + "pack": 1, + "attributes": {"indicator": true}, + "type": "E:@emmoco.com.Blinker/LedState", + "access": "ir", + "size": 1 + }, + "$resourceCount": { + "id": -7, + "align": 1, + "attributes": {"readonly": true}, + "type": "S:system@emmoco.com.System/ResourceCount", + "access": "r", + "size": 2 + }, + "$schemaHash": { + "dim": 20, + "id": -6, + "align": 1, + "attributes": {"readonly": true}, + "type": "A20:u1", + "access": "r", + "size": 20 + }, + "cmd": { + "id": 1, + "align": 1, + "pack": 1, + "attributes": {"writeonly": true}, + "type": "E:@emmoco.com.Blinker/Cmd", + "access": "w", + "size": 1 + }, + "$mcmProtocolLevel": { + "id": -2, + "align": 2, + "attributes": {"readonly": true}, + "type": "u2", + "access": "r", + "size": 2 + }, + "$mobileRssi": { + "id": -8, + "align": 1, + "attributes": {"readonly": true}, + "type": "i1", + "access": "r", + "size": 1 + }, + "delay": { + "id": 3, + "align": 2, + "pack": 4, + "attributes": {"readwrite": true}, + "type": "N:0.500000,2.000000,0.100000,3/u2/15", + "access": "rw", + "size": 2 + }, + "$fileIndexReset": { + "id": -5, + "align": 2, + "attributes": {"writeonly": true}, + "type": "i2", + "access": "w", + "size": 2 + } + }, + "resourceNamesSys": [ + "$activeGroup", + "$eapBuildDate", + "$eapProtocolLevel", + "$fileIndexReset", + "$mcmDisconnect", + "$mcmProtocolLevel", + "$mobileRssi", + "$resourceCount", + "$schemaHash" + ], + "manifest": { + "protocolLevel": 13, + "hash": [ + 100, + 133, + 204, + 118, + 171, + 105, + 196, + 176, + 165, + 61, + 177, + 160, + 190, + 191, + 194, + 241 + ], + "toolVersion": "13.4.1.201311121909", + "name": "Blinker", + "$$md5": "6485cc76ab69c4b0a53db1a0bebfc2f1", + "build": [ + 71, + 133, + 240, + 134, + 71, + 1, + 0, + 0 + ], + "date": "2014-07-30T13:03:35T", + "maxAlign": 2, + "maxSize": 20, + "version": "1.0.0" + }, + "resourceNames": [ + "cmd", + "count", + "delay", + "ledState", + "$mcmProtocolLevel", + "$eapProtocolLevel", + "$eapBuildDate", + "$fileIndexReset", + "$schemaHash", + "$resourceCount", + "$mobileRssi", + "$mcmDisconnect", + "$activeGroup" + ], + "attributes": { + "description": "Blinker, the hello world program for mobile control", + "version": "1.0.0" + }, + "resourceNamesApp": [ + "cmd", + "count", + "delay", + "ledState" + ], + "types": { + "@emmoco.com.Blinker/LedState": { + "values": [ + "LED_OFF", + "LED_ON" + ], + "align": 1, + "pack": 1, + "type": "E:@emmoco.com.Blinker/LedState", + "size": 1 + }, + "system@emmoco.com.System/ResourceCount": { + "packed": false, + "align": 1, + "type": "S:system@emmoco.com.System/ResourceCount", + "size": 2, + "fields": [ + { + "pad": 0, + "align": 1, + "name": "app", + "type": "u1", + "size": 1 + }, + { + "pad": 0, + "align": 1, + "name": "sys", + "type": "u1", + "size": 1 + } + ] + }, + "std:i2": { + "align": 2, + "size": 2 + }, + "std:i1": { + "align": 1, + "size": 1 + }, + "std:u1": { + "align": 1, + "size": 1 + }, + "system@emmoco.com.System/ParameterGroup": { + "values": [ + "GROUP_A", + "GROUP_B" + ], + "align": 1, + "pack": 1, + "type": "E:system@emmoco.com.System/ParameterGroup", + "size": 1 + }, + "@emmoco.com.Blinker/Cmd": { + "values": [ + "START_CMD", + "STOP_CMD" + ], + "align": 1, + "pack": 1, + "type": "E:@emmoco.com.Blinker/Cmd", + "size": 1 + }, + "std:u2": { + "align": 2, + "size": 2 + } + }, + "imports": {"@emmoco.com.Blinker": true} +} \ No newline at end of file diff --git a/Blinker-MSP-EXP430G2/Output/Blinker-Prog.hex b/Blinker-MSP-EXP430G2/Output/Blinker-Prog.hex new file mode 100644 index 0000000..cfadd06 --- /dev/null +++ b/Blinker-MSP-EXP430G2/Output/Blinker-Prog.hex @@ -0,0 +1,145 @@ +:10C000005542200135D0085A824562023140000471 +:10C010003F4006000F9308249242620220012F83C2 +:10C020009F4FA4C80002F8233F405C000F930724F1 +:10C030009242620220011F83CF430602F923B0120D +:10C04000F2C43E4060C03F406400B01224C6B0124B +:10C0500046C1B012C2C532D0F000FD3F30405CC8CE +:10C06000D293060215241F4208021F9200021128D3 +:10C070001F4202023F9306240E4F3E53824E02029D +:10C080001F930C38B0121CC682430802B012C8C4F9 +:10C0900030413F506400824F08023041D2430602D3 +:10C0A000B01202C6F13FB012E4C43041B012EAC48B +:10C0B00030416F4FC24F06024F930A201F420A02BF +:10C0C0001F930C380F5F824F0202824308023041F7 +:10C0D0005F9301243041B01202C630413F43F33F29 +:10C0E0009F420A0200003041A24F0A0230419F42A3 +:10C0F000000200003041A24F000230410B120B4FF2 +:10C10000B0120AC6CB4F00003B413041B01252C6BC +:10C110008243100282431402C2430E02C24312023F +:10C12000C2432D02C2435E02C2433C02C2432C0200 +:10C13000C243200282431C0282431E028243180231 +:10C1400082431A023041B0120CC1D2432002304166 +:10C15000B01246C13041B240330216025F4234028F +:10C160005F53C24F2D02C2435E02B012A8C63041D7 +:10C17000B240410216025F4242025F53C24F2D029B +:10C18000C2435E02B012A8C630410B120A12091255 +:10C190000812484FB01248C6494F1A4218021B42B3 +:10C1A0001A028293100224241E434F487FF00F008E +:10C1B00018200C4E8E108E118E108E110D4E0E4AC0 +:10C1C0000F4B0EDC0FDD824E1802824F1A024A43DB +:10C1D0004F49B012DAC64F4A384139413A413B41E2 +:10C1E00030410E5E7F53E5270E5E7F53FA23E13F19 +:10C1F0000A93DA230B93D8235A43EA3FC2932002CF +:10C2000001203041C2434102C24F43026E52C24E2E +:10C2100042024F43B0128AC14F93F327B01270C14C +:10C220003041F290FBFF4402042082431C0282430F +:10C230001E024E436F42B012FCC130415F424402C5 +:10C240007F500B007F90090005284E436F43B012CA +:10C25000FCC130414F4F0F5F104F5EC81C420C02B3 +:10C260000C93F3273F4046020E430D4C0D5E6D4D7F +:10C27000CF4D00004D9340241E531F533E900900A4 +:10C28000F4234E4E6F43B012FCC13041E2424602ED +:10C29000F240090047026E436F43B012FCC13041C7 +:10C2A0003F4090C83E404602FE4F00001E533F9064 +:10C2B000A3C8FA23D24286C859027E4014006F43B5 +:10C2C000B012FCC130413F4088C83E404602FE4F9C +:10C2D00000001E533F9090C8FA237E426F43B01275 +:10C2E000FCC13041F2400D004602C24347026E439A +:10C2F0006F43B012FCC130413E523E503E02CE432D +:10C3000000001E533E904F02FA237E4009006F4307 +:10C31000B012FCC130415F4244027F9003001B24F5 +:10C320006F9210246F9305244E436F43B012FCC1EB +:10C3300030413F404602B012E0C06E436F43B0123E +:10C34000FCC130413F404602B012FCC05E436F4327 +:10C35000B012FCC130413F404602B012EEC06E4305 +:10C360006F43B012FCC130415F4244026F931C2402 +:10C370007F90030010245F9305244E436F42B01258 +:10C38000FCC130413F404602B012B2C04E436F4242 +:10C39000B012FCC130413F404602B012F6C04E43DD +:10C3A0006F42B012FCC130413F404602B012E8C0BB +:10C3B0004E436F42B012FCC13041C29320020424AC +:10C3C000F2900B004302012830415F4243020F5FAD +:10C3D000104F70C81F425A020F93F6278F12304138 +:10C3E000E2432002B012ACC03041F2400300200210 +:10C3F000B012A6C03041C29344020938B01268C3DB +:10C400003041C29344020638B01216C33041B01214 +:10C4100022C23041B0123CC230415F930E246E42C2 +:10C420004F43C2433302F24005003502C24E34028C +:10C43000C24F3602B01256C130413F403802B012EE +:10C44000FCC07E4005006F42EC3F0B12B01248C6A4 +:10C450004B4F1E4218021F421A020E9307200F93E1 +:10C4600005204F4BB012DAC63B4130410C4E0D4F08 +:10C470001CF30DF30C930C240C4E0D4F3CF0FEFFFF +:10C480003DF3824C1802824D1A02B01270C1E93F8E +:10C490000D93F2230C4E0D4F2CF30DF30C930D2442 +:10C4A0000C4E0D4F3CF0FDFF3DF3824C1802824DC7 +:10C4B0001A024F43B0121AC4D43F0D93F1234F4BCD +:10C4C000B012DAC63B413041F29003002002012451 +:10C4D00030416F43B0128AC14F93FA275F43B012C5 +:10C4E0001AC43041D2D321003041F2F0FEFF2100C6 +:10C4F0003041B240805A2001C24358005F42FF10D1 +:10C500007F930824C2435600D242FF105700D24204 +:10C51000FE105600F2D080FF5700F2402400530076 +:10C52000F2D040002200F2F0BFFF2100D2D322005F +:10C53000F2F0FEFF2100F2D22A00F2F0F7FF29000C +:10C54000F2D010002A00F2F0EFFF2900F2D2290009 +:10C55000F2F0F7FF2900B240200180011F42900154 +:10C560003F50B80B824F9401B24010008401D2D3E7 +:10C570006100E2D32600E2D34100E2D22600E2D2FB +:10C580004100D2D32A00D2D32900F2F0FDFF2A00C5 +:10C59000E2D32C00F2F0FDFF2B00E2D32D00F2F0ED +:10C5A000FEFF2900F24081FF6100F2400C006400B0 +:10C5B000F2426200F2F0FEFF6100B240BAC328020C +:10C5C00030410B120A12091232D232C2034319420D +:10C5D0002202824322020993032032D0D800F53F81 +:10C5E00032D23A4024021B430F4B0FF904242F4A46 +:10C5F0000F9301248F120B5B2A533A902A02F423E3 +:10C60000E43FF2F0BFFF210030415E4221003EF0E6 +:10C6100040005F430E9301204F433041F2E0400061 +:10C6200021003041824E26020E4F0E5E0F5E0F5FDC +:10C630000F5F824F2A021E4290010E5F824E9201CE +:10C64000B2401000820130410F4232C203437FF2F8 +:10C6500030410D427DF232C20343F2F0FEFF290069 +:10C660003E4064003F404C011F83FE2303430343CD +:10C670003E53F823D2D329003E40F4013F404C0101 +:10C680001F83FE23034303433E53F823F2F0FEFFD0 +:10C690000300F2F0FDFF0300F2F0FDFF2B00D2D308 +:10C6A00001004F4D02DF30411F4216021F53824FDF +:10C6B0001002C2430E02829314020324C243670095 +:10C6C00030411F4290013F50B80B824F9401B2405D +:10C6D00010008401C243670030414F4F02DF3041F8 +:10C6E0000F120E120E4232C2034392D322024F4E59 +:10C6F0007FF24F4F02DFF2F0F7FF2300F2D2250066 +:10C70000B1C0D00004003E413F4100130F120E1291 +:10C710005E426600829314023324F2F0FEFF290089 +:10C72000D2D32900C29312020A204E930620B1C030 +:10C73000D00004003E413F410013C24E12021F428E +:10C740001402CF4E00001F53824F14025F421202A8 +:10C750007F53C24F1202EB238243140282931002D2 +:10C760001F240E4232C20343A2D222024F4E7FF256 +:10C770004F4F02DFB1C0D00004003E413F410013E3 +:10C7800092420402140282931002C7231F429001B6 +:10C790003F50B80B824F9401B24010008401BD3F5E +:10C7A00082438401DE3F0F120E1292522A0292013E +:10C7B0000E4232C20343A2D322024F4E7FF24F4FAA +:10C7C00002DFB1C0D00004003E413F4100130F1210 +:10C7D0000E120D120C125F422B002FF317241F4272 +:10C7E00010020F9310245E420E024E9302206E4FF1 +:10C7F0005E537E53C24E0E0211246E4F1F53824F62 +:10C800001002C24E6700F2F0FDFF2B00B1C0D00055 +:10C8100008003C413D413E413F410013824310022C +:10C82000C2432D02B0124AC482931402EC23824305 +:10C830008401E93F0F120E120D120C121F421E014D +:10C840002F93072082438401B01250C1B1C0D000A1 +:0EC8500008003C413D413E413F4100130013B2 +:10C85E005CC24AC24AC24AC28CC2A0C24AC2C6C244 +:10C86E00E4C2C8C302C4C8C3F6C3C8C3C8C3EAC3BC +:10C87E00E0C3C8C3C8C3D4C300014785F0864701CF +:10C88E0000006485CC76AB69C4B0A53DB1A0BEBF37 +:06C89E00C2F10D001100C3 +:06C8A400B004FFFF420298 +:02C8AA0000008C +:10FFE0005CC05CC0E0C6CEC75CC05CC05CC00CC777 +:10FFF0005CC05CC05CC05CC034C8A6C75CC000C04C +:040000030000C00039 +:00000001FF diff --git a/Blinker-MSP-EXP430G2/Output/Blinker-Prog.map b/Blinker-MSP-EXP430G2/Output/Blinker-Prog.map new file mode 100644 index 0000000..1e8f9cf --- /dev/null +++ b/Blinker-MSP-EXP430G2/Output/Blinker-Prog.map @@ -0,0 +1,786 @@ +Archive member included because of file (symbol) + +/Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o) + /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/crt0ivtbl16.o (_reset_vector__) +/Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o) + /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o) (__watchdog_support) +/Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__init_stack.o) + /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o) (__init_stack) +/Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__low_level_init.o) + /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o) (__low_level_init) +/Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_copy_data.o) + /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o) (__do_copy_data) +/Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_clear_bss.o) + /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o) (__do_clear_bss) +/Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__stop_progExec__.o) + /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o) (__stop_progExec__) +/Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_endless_loop__.o) + /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o) (_endless_loop__) +/Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_unexpected_.o) + /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/crt0ivtbl16.o (_unexpected_) + +Allocating common symbols +Common symbol size file + +Em_App_recvIdx 0x1 Output/Blinker.obj +Em_App_xmitSize 0x1 Output/Blinker.obj +Em_App_valp 0x2 Output/Blinker.obj +Em_App_ind_u 0xc Output/Blinker.obj +Em_App_recvSize 0x1 Output/Blinker.obj +Em_App_msg_u 0x1c Output/Blinker.obj +Em_App_pdHdlr 0x2 Output/Blinker.obj +Em_App_bufp 0x2 Output/Blinker.obj +Em_App_xmitIdx 0x1 Output/Blinker.obj +Em_App_desc 0x2 Output/Blinker.obj + +Discarded input sections + + .data 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/crt0ivtbl16.o + .bss 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/crt0ivtbl16.o + .text.crt0 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/crt0ivtbl16.o + .text 0x0000000000000000 0x0 Output/Blinker-Prog.obj + .data 0x0000000000000000 0x0 Output/Blinker-Prog.obj + .bss 0x0000000000000000 0x0 Output/Blinker-Prog.obj + .text 0x0000000000000000 0x0 Output/Blinker.obj + .data 0x0000000000000000 0x0 Output/Blinker.obj + .bss 0x0000000000000000 0x0 Output/Blinker.obj + .text.Em_App_marshallToBuf + 0x0000000000000000 0xd4 Output/Blinker.obj + .text.Em_App_marshallToVal + 0x0000000000000000 0x11a Output/Blinker.obj + .text.Blinker_setDeviceName + 0x0000000000000000 0x6 Output/Blinker.obj + .text.Blinker_pairingOn + 0x0000000000000000 0x24 Output/Blinker.obj + .text.Blinker_pairingOff + 0x0000000000000000 0xa Output/Blinker.obj + .text.Blinker_disconnect + 0x0000000000000000 0x26 Output/Blinker.obj + .text.Blinker_broadcastOff + 0x0000000000000000 0x1c Output/Blinker.obj + .text.Blinker_activateParameters + 0x0000000000000000 0x1e Output/Blinker.obj + .text.Blinker_accept + 0x0000000000000000 0x20 Output/Blinker.obj + .text 0x0000000000000000 0x0 Output/Hal.obj + .data 0x0000000000000000 0x0 Output/Hal.obj + .bss 0x0000000000000000 0x0 Output/Hal.obj + .text.buttonHandler + 0x0000000000000000 0x28 Output/Hal.obj + .text.Hal_buttonEnable + 0x0000000000000000 0x3c Output/Hal.obj + .text.Hal_debugOn + 0x0000000000000000 0x18 Output/Hal.obj + .text.Hal_debugOff + 0x0000000000000000 0x1a Output/Hal.obj + .text.Hal_debugPulse + 0x0000000000000000 0x24 Output/Hal.obj + .text.Hal_delay + 0x0000000000000000 0x16 Output/Hal.obj + .text.Hal_ledOn + 0x0000000000000000 0x8 Output/Hal.obj + .text.Em_Hal_watchOff + 0x0000000000000000 0x6 Output/Hal.obj + .text.Em_Hal_watchOn + 0x0000000000000000 0x14 Output/Hal.obj + .bss.appButtonHandler + 0x0000000000000000 0x2 Output/Hal.obj + .text 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o) + .data 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o) + .bss 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o) + .text 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o) + .data 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o) + .bss 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o) + .text 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__init_stack.o) + .data 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__init_stack.o) + .bss 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__init_stack.o) + .text 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__low_level_init.o) + .data 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__low_level_init.o) + .bss 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__low_level_init.o) + .text 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_copy_data.o) + .data 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_copy_data.o) + .bss 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_copy_data.o) + .text 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_clear_bss.o) + .data 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_clear_bss.o) + .bss 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_clear_bss.o) + .text 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__stop_progExec__.o) + .data 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__stop_progExec__.o) + .bss 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__stop_progExec__.o) + .text 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_endless_loop__.o) + .data 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_endless_loop__.o) + .bss 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_endless_loop__.o) + .text 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_unexpected_.o) + .data 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_unexpected_.o) + .bss 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_unexpected_.o) + +Memory Configuration + +Name Origin Length Attributes +sfr 0x0000000000000000 0x0000000000000010 +peripheral_8bit 0x0000000000000010 0x00000000000000f0 +peripheral_16bit 0x0000000000000100 0x0000000000000100 +ram 0x0000000000000200 0x0000000000000200 xw +infomem 0x0000000000001000 0x0000000000000100 +infod 0x0000000000001000 0x0000000000000040 +infoc 0x0000000000001040 0x0000000000000040 +infob 0x0000000000001080 0x0000000000000040 +infoa 0x00000000000010c0 0x0000000000000040 +rom 0x000000000000c000 0x0000000000003fe0 xr +vectors 0x000000000000ffe0 0x0000000000000020 +bsl 0x0000000000000000 0x0000000000000000 +far_rom 0x0000000000000000 0x0000000000000000 +*default* 0x0000000000000000 0xffffffffffffffff + +Linker script and memory map + +LOAD /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/crt0ivtbl16.o +LOAD Output/Blinker-Prog.obj +LOAD Output/Blinker.obj +LOAD Output/Hal.obj +LOAD /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libgcc.a +LOAD /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a +LOAD /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libgcc.a +LOAD /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a + 0x0000000000000040 PROVIDE (__info_segment_size, 0x40) + 0x0000000000001000 PROVIDE (__infod, 0x1000) + 0x0000000000001040 PROVIDE (__infoc, 0x1040) + 0x0000000000001080 PROVIDE (__infob, 0x1080) + 0x00000000000010c0 PROVIDE (__infoa, 0x10c0) + 0x0000000000000000 __IE1 = 0x0 + 0x0000000000000002 __IFG1 = 0x2 + 0x0000000000000001 __IE2 = 0x1 + 0x0000000000000003 __IFG2 = 0x3 + 0x0000000000000048 __ADC10DTC0 = 0x48 + 0x0000000000000049 __ADC10DTC1 = 0x49 + 0x000000000000004a __ADC10AE0 = 0x4a + 0x00000000000001b0 __ADC10CTL0 = 0x1b0 + 0x00000000000001b2 __ADC10CTL1 = 0x1b2 + 0x00000000000001b4 __ADC10MEM = 0x1b4 + 0x00000000000001bc __ADC10SA = 0x1bc + 0x0000000000000056 __DCOCTL = 0x56 + 0x0000000000000057 __BCSCTL1 = 0x57 + 0x0000000000000058 __BCSCTL2 = 0x58 + 0x0000000000000053 __BCSCTL3 = 0x53 + 0x0000000000000059 __CACTL1 = 0x59 + 0x000000000000005a __CACTL2 = 0x5a + 0x000000000000005b __CAPD = 0x5b + 0x0000000000000128 __FCTL1 = 0x128 + 0x000000000000012a __FCTL2 = 0x12a + 0x000000000000012c __FCTL3 = 0x12c + 0x0000000000000020 __P1IN = 0x20 + 0x0000000000000021 __P1OUT = 0x21 + 0x0000000000000022 __P1DIR = 0x22 + 0x0000000000000023 __P1IFG = 0x23 + 0x0000000000000024 __P1IES = 0x24 + 0x0000000000000025 __P1IE = 0x25 + 0x0000000000000026 __P1SEL = 0x26 + 0x0000000000000041 __P1SEL2 = 0x41 + 0x0000000000000027 __P1REN = 0x27 + 0x0000000000000028 __P2IN = 0x28 + 0x0000000000000029 __P2OUT = 0x29 + 0x000000000000002a __P2DIR = 0x2a + 0x000000000000002b __P2IFG = 0x2b + 0x000000000000002c __P2IES = 0x2c + 0x000000000000002d __P2IE = 0x2d + 0x000000000000002e __P2SEL = 0x2e + 0x0000000000000042 __P2SEL2 = 0x42 + 0x000000000000002f __P2REN = 0x2f + 0x0000000000000018 __P3IN = 0x18 + 0x0000000000000019 __P3OUT = 0x19 + 0x000000000000001a __P3DIR = 0x1a + 0x000000000000001b __P3SEL = 0x1b + 0x0000000000000043 __P3SEL2 = 0x43 + 0x0000000000000010 __P3REN = 0x10 + 0x000000000000012e __TA0IV = 0x12e + 0x0000000000000160 __TA0CTL = 0x160 + 0x0000000000000162 __TA0CCTL0 = 0x162 + 0x0000000000000164 __TA0CCTL1 = 0x164 + 0x0000000000000166 __TA0CCTL2 = 0x166 + 0x0000000000000170 __TA0R = 0x170 + 0x0000000000000172 __TA0CCR0 = 0x172 + 0x0000000000000174 __TA0CCR1 = 0x174 + 0x0000000000000176 __TA0CCR2 = 0x176 + 0x000000000000011e __TA1IV = 0x11e + 0x0000000000000180 __TA1CTL = 0x180 + 0x0000000000000182 __TA1CCTL0 = 0x182 + 0x0000000000000184 __TA1CCTL1 = 0x184 + 0x0000000000000186 __TA1CCTL2 = 0x186 + 0x0000000000000190 __TA1R = 0x190 + 0x0000000000000192 __TA1CCR0 = 0x192 + 0x0000000000000194 __TA1CCR1 = 0x194 + 0x0000000000000196 __TA1CCR2 = 0x196 + 0x0000000000000060 __UCA0CTL0 = 0x60 + 0x0000000000000061 __UCA0CTL1 = 0x61 + 0x0000000000000062 __UCA0BR0 = 0x62 + 0x0000000000000063 __UCA0BR1 = 0x63 + 0x0000000000000064 __UCA0MCTL = 0x64 + 0x0000000000000065 __UCA0STAT = 0x65 + 0x0000000000000066 __UCA0RXBUF = 0x66 + 0x0000000000000067 __UCA0TXBUF = 0x67 + 0x000000000000005d __UCA0ABCTL = 0x5d + 0x000000000000005e __UCA0IRTCTL = 0x5e + 0x000000000000005f __UCA0IRRCTL = 0x5f + 0x0000000000000068 __UCB0CTL0 = 0x68 + 0x0000000000000069 __UCB0CTL1 = 0x69 + 0x000000000000006a __UCB0BR0 = 0x6a + 0x000000000000006b __UCB0BR1 = 0x6b + 0x000000000000006c __UCB0I2CIE = 0x6c + 0x000000000000006d __UCB0STAT = 0x6d + 0x000000000000006e __UCB0RXBUF = 0x6e + 0x000000000000006f __UCB0TXBUF = 0x6f + 0x0000000000000118 __UCB0I2COA = 0x118 + 0x000000000000011a __UCB0I2CSA = 0x11a + 0x0000000000000120 __WDTCTL = 0x120 + 0x00000000000010f8 __CALDCO_16MHZ = 0x10f8 + 0x00000000000010f9 __CALBC1_16MHZ = 0x10f9 + 0x00000000000010fa __CALDCO_12MHZ = 0x10fa + 0x00000000000010fb __CALBC1_12MHZ = 0x10fb + 0x00000000000010fc __CALDCO_8MHZ = 0x10fc + 0x00000000000010fd __CALBC1_8MHZ = 0x10fd + 0x00000000000010fe __CALDCO_1MHZ = 0x10fe + 0x00000000000010ff __CALBC1_1MHZ = 0x10ff + +.hash + *(.hash) + +.dynsym + *(.dynsym) + +.dynstr + *(.dynstr) + +.gnu.version + *(.gnu.version) + +.gnu.version_d + *(.gnu.version_d) + +.gnu.version_r + *(.gnu.version_r) + +.rel.init + *(.rel.init) + +.rela.init + *(.rela.init) + +.rel.fini + *(.rel.fini) + +.rela.fini + *(.rela.fini) + +.rel.text + *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) + +.rela.text + *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) + +.rel.rodata + *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) + +.rela.rodata + *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) + +.rel.data + *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) + +.rela.data + *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) + +.rel.bss + *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) + +.rela.bss + *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) + +.rel.ctors + *(.rel.ctors) + +.rela.ctors + *(.rela.ctors) + +.rel.dtors + *(.rel.dtors) + +.rela.dtors + *(.rela.dtors) + +.rel.got + *(.rel.got) + +.rela.got + *(.rela.got) + +.rel.plt + *(.rel.plt) + +.rela.plt + *(.rela.plt) + +.text 0x000000000000c000 0x85e + 0x000000000000c000 . = ALIGN (0x2) + *(.init .init.*) + *(.init0) + .init0 0x000000000000c000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o) + 0x000000000000c000 _reset_vector__ + *(.init1) + .init1 0x000000000000c000 0xc /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o) + 0x000000000000c000 __watchdog_support + *(.init2) + .init2 0x000000000000c00c 0x4 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__init_stack.o) + 0x000000000000c00c __init_stack + *(.init3) + .init3 0x000000000000c010 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__low_level_init.o) + 0x000000000000c010 __low_level_init + *(.init4) + .init4 0x000000000000c010 0x18 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_copy_data.o) + 0x000000000000c010 __do_copy_data + .init4 0x000000000000c028 0x16 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_clear_bss.o) + 0x000000000000c028 __do_clear_bss + *(.init5) + *(.init6) + *(.init7) + *(.init8) + *(.init9) + .init9 0x000000000000c03e 0x18 Output/Blinker-Prog.obj + 0x000000000000c03e main + *(.fini9) + .fini9 0x000000000000c056 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__stop_progExec__.o) + 0x000000000000c056 __stop_progExec__ + *(.fini8) + *(.fini7) + *(.fini6) + *(.fini5) + *(.fini4) + *(.fini3) + *(.fini2) + *(.fini1) + *(.fini0) + .fini0 0x000000000000c056 0x6 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_endless_loop__.o) + 0x000000000000c056 _endless_loop__ + *(.fini .fini.*) + 0x000000000000c05c . = ALIGN (0x2) + 0x000000000000c05c __ctors_start = . + *(.ctors) + 0x000000000000c05c __ctors_end = . + 0x000000000000c05c __dtors_start = . + *(.dtors) + 0x000000000000c05c __dtors_end = . + 0x000000000000c05c . = ALIGN (0x2) + *(.text .text.* .gnu.linkonce.t.*) + .text 0x000000000000c05c 0x4 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/crt0ivtbl16.o + 0x000000000000c05c __isr_1 + 0x000000000000c05c __isr_4 + 0x000000000000c05c __isr_11 + 0x000000000000c05c __isr_5 + 0x000000000000c05c __isr_10 + 0x000000000000c05c __isr_0 + 0x000000000000c05c __isr_8 + 0x000000000000c05c __isr_9 + 0x000000000000c05c __isr_6 + 0x000000000000c05c __isr_14 + .text.tickHandler + 0x000000000000c060 0x46 Output/Blinker-Prog.obj + .text.Blinker_connectHandler + 0x000000000000c0a6 0x6 Output/Blinker-Prog.obj + 0x000000000000c0a6 Blinker_connectHandler + .text.Blinker_disconnectHandler + 0x000000000000c0ac 0x6 Output/Blinker-Prog.obj + 0x000000000000c0ac Blinker_disconnectHandler + .text.Blinker_cmd_store + 0x000000000000c0b2 0x2e Output/Blinker-Prog.obj + 0x000000000000c0b2 Blinker_cmd_store + .text.Blinker_count_fetch + 0x000000000000c0e0 0x8 Output/Blinker-Prog.obj + 0x000000000000c0e0 Blinker_count_fetch + .text.Blinker_count_store + 0x000000000000c0e8 0x6 Output/Blinker-Prog.obj + 0x000000000000c0e8 Blinker_count_store + .text.Blinker_delay_fetch + 0x000000000000c0ee 0x8 Output/Blinker-Prog.obj + 0x000000000000c0ee Blinker_delay_fetch + .text.Blinker_delay_store + 0x000000000000c0f6 0x6 Output/Blinker-Prog.obj + 0x000000000000c0f6 Blinker_delay_store + .text.Blinker_ledState_fetch + 0x000000000000c0fc 0x10 Output/Blinker-Prog.obj + 0x000000000000c0fc Blinker_ledState_fetch + .text.Blinker_reset + 0x000000000000c10c 0x3a Output/Blinker.obj + 0x000000000000c10c Blinker_reset + .text.Blinker_start + 0x000000000000c146 0xa Output/Blinker.obj + 0x000000000000c146 Blinker_start + .text.Em_Message_restart + 0x000000000000c150 0x6 Output/Blinker.obj + 0x000000000000c150 Em_Message_restart + .text.Em_App_startIndSend + 0x000000000000c156 0x1a Output/Blinker.obj + 0x000000000000c156 Em_App_startIndSend + .text.Em_App_startResSend + 0x000000000000c170 0x1a Output/Blinker.obj + 0x000000000000c170 Em_App_startResSend + .text.Em_App_xmitReady + 0x000000000000c18a 0x72 Output/Blinker.obj + 0x000000000000c18a Em_App_xmitReady + .text.Em_App_sendResponse + 0x000000000000c1fc 0x26 Output/Blinker.obj + 0x000000000000c1fc Em_App_sendResponse + .text.Em_App_sysStoreDispatch + 0x000000000000c222 0x1a Output/Blinker.obj + 0x000000000000c222 Em_App_sysStoreDispatch + .text.Em_App_sysFetchDispatch + 0x000000000000c23c 0xda Output/Blinker.obj + 0x000000000000c23c Em_App_sysFetchDispatch + .text.Em_App_fetchDispatch + 0x000000000000c316 0x52 Output/Blinker.obj + 0x000000000000c316 Em_App_fetchDispatch + .text.Em_App_storeDispatch + 0x000000000000c368 0x52 Output/Blinker.obj + 0x000000000000c368 Em_App_storeDispatch + .text.Em_Message_dispatch + 0x000000000000c3ba 0x60 Output/Blinker.obj + 0x000000000000c3ba Em_Message_dispatch + .text.Em_App_sendIndicator + 0x000000000000c41a 0x30 Output/Blinker.obj + 0x000000000000c41a Em_App_sendIndicator + .text.Em_Message_nextXmit + 0x000000000000c44a 0x7e Output/Blinker.obj + 0x000000000000c44a Em_Message_nextXmit + .text.Blinker_ledState_indicate + 0x000000000000c4c8 0x1c Output/Blinker.obj + 0x000000000000c4c8 Blinker_ledState_indicate + .text.Hal_connected + 0x000000000000c4e4 0x6 Output/Hal.obj + 0x000000000000c4e4 Hal_connected + .text.Hal_disconnected + 0x000000000000c4ea 0x8 Output/Hal.obj + 0x000000000000c4ea Hal_disconnected + .text.Hal_init + 0x000000000000c4f2 0xd0 Output/Hal.obj + 0x000000000000c4f2 Hal_init + .text.Hal_idleLoop + 0x000000000000c5c2 0x40 Output/Hal.obj + 0x000000000000c5c2 Hal_idleLoop + .text.Hal_ledOff + 0x000000000000c602 0x8 Output/Hal.obj + 0x000000000000c602 Hal_ledOff + .text.Hal_ledRead + 0x000000000000c60a 0x12 Output/Hal.obj + 0x000000000000c60a Hal_ledRead + .text.Hal_ledToggle + 0x000000000000c61c 0x8 Output/Hal.obj + 0x000000000000c61c Hal_ledToggle + .text.Hal_tickStart + 0x000000000000c624 0x24 Output/Hal.obj + 0x000000000000c624 Hal_tickStart + .text.Em_Hal_lock + 0x000000000000c648 0xa Output/Hal.obj + 0x000000000000c648 Em_Hal_lock + .text.Em_Hal_reset + 0x000000000000c652 0x56 Output/Hal.obj + 0x000000000000c652 Em_Hal_reset + .text.Em_Hal_startSend + 0x000000000000c6a8 0x32 Output/Hal.obj + 0x000000000000c6a8 Em_Hal_startSend + .text.Em_Hal_unlock + 0x000000000000c6da 0x6 Output/Hal.obj + 0x000000000000c6da Em_Hal_unlock + .text.buttonIsr + 0x000000000000c6e0 0x2c Output/Hal.obj + 0x000000000000c6e0 __isr_2 + 0x000000000000c6e0 buttonIsr + .text.rxIsr 0x000000000000c70c 0x9a Output/Hal.obj + 0x000000000000c70c rxIsr + 0x000000000000c70c __isr_7 + .text.timerIsr + 0x000000000000c7a6 0x28 Output/Hal.obj + 0x000000000000c7a6 timerIsr + 0x000000000000c7a6 __isr_13 + .text.txAckIsr + 0x000000000000c7ce 0x66 Output/Hal.obj + 0x000000000000c7ce txAckIsr + 0x000000000000c7ce __isr_3 + .text.uartWatchdogIsr + 0x000000000000c834 0x28 Output/Hal.obj + 0x000000000000c834 uartWatchdogIsr + 0x000000000000c834 __isr_12 + .text.crt0 0x000000000000c85c 0x2 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_unexpected_.o) + 0x000000000000c85c _unexpected_ + 0x000000000000c85e . = ALIGN (0x2) + +.rodata 0x000000000000c85e 0x46 + 0x000000000000c85e . = ALIGN (0x2) + *(.rodata .rodata.* .gnu.linkonce.r.*) + .rodata.Em_App_sysFetchDispatch + 0x000000000000c85e 0x12 Output/Blinker.obj + .rodata.Em_Message_dispatch + 0x000000000000c870 0x16 Output/Blinker.obj + .rodata.Em_App_endian + 0x000000000000c886 0x2 Output/Blinker.obj + 0x000000000000c886 Em_App_endian + .rodata.Em_App_build + 0x000000000000c888 0x8 Output/Blinker.obj + 0x000000000000c888 Em_App_build + .rodata.Em_App_hash + 0x000000000000c890 0x13 Output/Blinker.obj + 0x000000000000c890 Em_App_hash + 0x000000000000c8a4 . = ALIGN (0x2) + *fill* 0x000000000000c8a3 0x1 00 + 0x000000000000c8a4 _etext = . + +.data 0x0000000000000200 0x6 load address 0x000000000000c8a4 + 0x0000000000000200 . = ALIGN (0x2) + 0x0000000000000200 PROVIDE (__data_start, .) + *(.data .data.* .gnu.linkonce.d.*) + .data.delayVal + 0x0000000000000200 0x2 Output/Blinker-Prog.obj + .data.curCount + 0x0000000000000202 0x2 Output/Blinker-Prog.obj + .data.Em_App_inBuf + 0x0000000000000204 0x2 Output/Blinker.obj + 0x0000000000000204 Em_App_inBuf + 0x0000000000000206 . = ALIGN (0x2) + 0x0000000000000206 _edata = . + 0x000000000000c8a4 PROVIDE (__data_load_start, LOADADDR (.data)) + 0x0000000000000006 PROVIDE (__data_size, SIZEOF (.data)) + +.bss 0x0000000000000206 0x5c load address 0x000000000000c8aa + 0x0000000000000206 PROVIDE (__bss_start, .) + *(.bss .bss.*) + .bss.cmdVal 0x0000000000000206 0x1 Output/Blinker-Prog.obj + *fill* 0x0000000000000207 0x1 00 + .bss.curTime 0x0000000000000208 0x2 Output/Blinker-Prog.obj + .bss.countVal 0x000000000000020a 0x2 Output/Blinker-Prog.obj + .bss.Em_App_devName + 0x000000000000020c 0x2 Output/Blinker.obj + 0x000000000000020c Em_App_devName + .bss._Em_Message_txCnt + 0x000000000000020e 0x1 Output/Blinker.obj + 0x000000000000020e _Em_Message_txCnt + *fill* 0x000000000000020f 0x1 00 + .bss._Em_Message_txBuf + 0x0000000000000210 0x2 Output/Blinker.obj + 0x0000000000000210 _Em_Message_txBuf + .bss._Em_Message_rxCnt + 0x0000000000000212 0x1 Output/Blinker.obj + 0x0000000000000212 _Em_Message_rxCnt + *fill* 0x0000000000000213 0x1 00 + .bss._Em_Message_rxBuf + 0x0000000000000214 0x2 Output/Blinker.obj + 0x0000000000000214 _Em_Message_rxBuf + .bss.Em_App_outBuf + 0x0000000000000216 0x2 Output/Blinker.obj + 0x0000000000000216 Em_App_outBuf + .bss.Em_App_xmitMask + 0x0000000000000218 0x4 Output/Blinker.obj + 0x0000000000000218 Em_App_xmitMask + .bss.Em_App_fileIndex + 0x000000000000021c 0x4 Output/Blinker.obj + 0x000000000000021c Em_App_fileIndex + .bss.Em_App_state + 0x0000000000000220 0x1 Output/Blinker.obj + 0x0000000000000220 Em_App_state + *fill* 0x0000000000000221 0x1 00 + .bss.handlerEvents + 0x0000000000000222 0x2 Output/Hal.obj + .bss.handlerTab + 0x0000000000000224 0x6 Output/Hal.obj + .bss.clockTick + 0x000000000000022a 0x2 Output/Hal.obj + *(COMMON) + COMMON 0x000000000000022c 0x36 Output/Blinker.obj + 0x000000000000022c Em_App_recvIdx + 0x000000000000022d Em_App_xmitSize + 0x000000000000022e Em_App_valp + 0x0000000000000230 Em_App_ind_u + 0x000000000000023c Em_App_recvSize + 0x000000000000023e Em_App_msg_u + 0x000000000000025a Em_App_pdHdlr + 0x000000000000025c Em_App_bufp + 0x000000000000025e Em_App_xmitIdx + 0x0000000000000260 Em_App_desc + 0x0000000000000262 . = ALIGN (0x2) + 0x0000000000000262 PROVIDE (__bss_end, .) + 0x000000000000005c PROVIDE (__bss_size, SIZEOF (.bss)) + +.noinit 0x0000000000000262 0x2 load address 0x000000000000c8aa + 0x0000000000000262 PROVIDE (__noinit_start, .) + *(.noinit .noinit.*) + .noinit.crt0 0x0000000000000262 0x2 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o) + 0x0000000000000262 __wdt_clear_value + 0x0000000000000264 . = ALIGN (0x2) + 0x0000000000000264 PROVIDE (__noinit_end, .) + 0x0000000000000264 . = ALIGN (0x2) + 0x0000000000000264 _end = . + +.infomem 0x0000000000001000 0x0 + *(.infomem) + 0x0000000000001000 . = ALIGN (0x2) + *(.infomem.*) + +.infomemnobits 0x0000000000001000 0x0 + *(.infomemnobits) + 0x0000000000001000 . = ALIGN (0x2) + *(.infomemnobits.*) + +.infoa + *(.infoa .infoa.*) + +.infob + *(.infob .infob.*) + +.infoc + *(.infoc .infoc.*) + +.infod + *(.infod .infod.*) + +.vectors 0x000000000000ffe0 0x20 + 0x000000000000ffe0 PROVIDE (__vectors_start, .) + *(.vectors*) + .vectors 0x000000000000ffe0 0x20 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/crt0ivtbl16.o + 0x000000000000ffe0 __ivtbl_16 + 0x0000000000010000 _vectors_end = . + +.fartext 0x0000000000000000 0x0 + 0x0000000000000000 . = ALIGN (0x2) + *(.fartext) + 0x0000000000000000 . = ALIGN (0x2) + *(.fartext.*) + 0x0000000000000000 _efartext = . + +.profiler + *(.profiler) + +.stab + *(.stab) + +.stabstr + *(.stabstr) + +.stab.excl + *(.stab.excl) + +.stab.exclstr + *(.stab.exclstr) + +.stab.index + *(.stab.index) + +.stab.indexstr + *(.stab.indexstr) + +.comment + *(.comment) + +.debug + *(.debug) + +.line + *(.line) + +.debug_srcinfo + *(.debug_srcinfo) + +.debug_sfnames + *(.debug_sfnames) + +.debug_aranges 0x0000000000000000 0x198 + *(.debug_aranges) + .debug_aranges + 0x0000000000000000 0x38 Output/Blinker-Prog.obj + .debug_aranges + 0x0000000000000038 0x70 Output/Blinker.obj + .debug_aranges + 0x00000000000000a8 0x78 Output/Hal.obj + .debug_aranges + 0x0000000000000120 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o) + .debug_aranges + 0x0000000000000134 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__init_stack.o) + .debug_aranges + 0x0000000000000148 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_copy_data.o) + .debug_aranges + 0x000000000000015c 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_clear_bss.o) + .debug_aranges + 0x0000000000000170 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_endless_loop__.o) + .debug_aranges + 0x0000000000000184 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_unexpected_.o) + +.debug_pubnames + *(.debug_pubnames) + +.debug_info 0x0000000000000000 0x1bfd + *(.debug_info) + .debug_info 0x0000000000000000 0x310 Output/Blinker-Prog.obj + .debug_info 0x0000000000000310 0x91b Output/Blinker.obj + .debug_info 0x0000000000000c2b 0xc78 Output/Hal.obj + .debug_info 0x00000000000018a3 0x8f /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o) + .debug_info 0x0000000000001932 0x8f /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__init_stack.o) + .debug_info 0x00000000000019c1 0x8f /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_copy_data.o) + .debug_info 0x0000000000001a50 0x8f /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_clear_bss.o) + .debug_info 0x0000000000001adf 0x8f /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_endless_loop__.o) + .debug_info 0x0000000000001b6e 0x8f /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_unexpected_.o) + *(.gnu.linkonce.wi.*) + +.debug_abbrev 0x0000000000000000 0x715 + *(.debug_abbrev) + .debug_abbrev 0x0000000000000000 0x103 Output/Blinker-Prog.obj + .debug_abbrev 0x0000000000000103 0x240 Output/Blinker.obj + .debug_abbrev 0x0000000000000343 0x35a Output/Hal.obj + .debug_abbrev 0x000000000000069d 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o) + .debug_abbrev 0x00000000000006b1 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__init_stack.o) + .debug_abbrev 0x00000000000006c5 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_copy_data.o) + .debug_abbrev 0x00000000000006d9 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_clear_bss.o) + .debug_abbrev 0x00000000000006ed 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_endless_loop__.o) + .debug_abbrev 0x0000000000000701 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_unexpected_.o) + +.debug_line 0x0000000000000000 0xbad + *(.debug_line) + .debug_line 0x0000000000000000 0x19d Output/Blinker-Prog.obj + .debug_line 0x000000000000019d 0x3b8 Output/Blinker.obj + .debug_line 0x0000000000000555 0x3a9 Output/Hal.obj + .debug_line 0x00000000000008fe 0x72 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o) + .debug_line 0x0000000000000970 0x70 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__init_stack.o) + .debug_line 0x00000000000009e0 0x76 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_copy_data.o) + .debug_line 0x0000000000000a56 0x76 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_clear_bss.o) + .debug_line 0x0000000000000acc 0x71 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_endless_loop__.o) + .debug_line 0x0000000000000b3d 0x70 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_unexpected_.o) + +.debug_frame 0x0000000000000000 0x3aa + *(.debug_frame) + .debug_frame 0x0000000000000000 0x90 Output/Blinker-Prog.obj + .debug_frame 0x0000000000000090 0x17a Output/Blinker.obj + .debug_frame 0x000000000000020a 0x1a0 Output/Hal.obj + +.debug_str 0x0000000000000000 0x9b0 + *(.debug_str) + .debug_str 0x0000000000000000 0x266 Output/Blinker-Prog.obj + 0x2a2 (size before relaxing) + .debug_str 0x0000000000000266 0x3e3 Output/Blinker.obj + 0x554 (size before relaxing) + .debug_str 0x0000000000000649 0x367 Output/Hal.obj + 0x5a7 (size before relaxing) + +.debug_loc 0x0000000000000000 0x64e + *(.debug_loc) + .debug_loc 0x0000000000000000 0x31 Output/Blinker-Prog.obj + .debug_loc 0x0000000000000031 0x438 Output/Blinker.obj + .debug_loc 0x0000000000000469 0x1e5 Output/Hal.obj + +.debug_macinfo + *(.debug_macinfo) + +.debug_pubtypes + *(.debug_pubtypes) + +.debug_ranges 0x0000000000000000 0x19c + *(.debug_ranges) + .debug_ranges 0x0000000000000000 0x2c Output/Blinker-Prog.obj + .debug_ranges 0x000000000000002c 0x64 Output/Blinker.obj + .debug_ranges 0x0000000000000090 0x10c Output/Hal.obj + 0x0000000000000400 PROVIDE (__stack, (ORIGIN (ram) + 0x200)) + 0x000000000000c8a4 PROVIDE (__data_start_rom, _etext) + 0x000000000000c8aa PROVIDE (__data_end_rom, (_etext + SIZEOF (.data))) +OUTPUT(Output/Blinker-Prog.out elf32-msp430) diff --git a/Blinker-MSP-EXP430G2/Output/Blinker-Prog.obj b/Blinker-MSP-EXP430G2/Output/Blinker-Prog.obj new file mode 100644 index 0000000..b0faf51 --- /dev/null +++ b/Blinker-MSP-EXP430G2/Output/Blinker-Prog.obj diff --git a/Blinker-MSP-EXP430G2/Output/Blinker-Prog.out b/Blinker-MSP-EXP430G2/Output/Blinker-Prog.out new file mode 100755 index 0000000..d68574b --- /dev/null +++ b/Blinker-MSP-EXP430G2/Output/Blinker-Prog.out diff --git a/Blinker-MSP-EXP430G2/Output/Blinker.obj b/Blinker-MSP-EXP430G2/Output/Blinker.obj new file mode 100644 index 0000000..40ae3a6 --- /dev/null +++ b/Blinker-MSP-EXP430G2/Output/Blinker.obj diff --git a/Blinker-MSP-EXP430G2/Output/Hal.obj b/Blinker-MSP-EXP430G2/Output/Hal.obj new file mode 100644 index 0000000..804db00 --- /dev/null +++ b/Blinker-MSP-EXP430G2/Output/Hal.obj diff --git a/Blinker-MSP-EXP430G2/Schema-Imports/system@emmoco.com/System.ems b/Blinker-MSP-EXP430G2/Schema-Imports/system@emmoco.com/System.ems new file mode 100644 index 0000000..9601635 --- /dev/null +++ b/Blinker-MSP-EXP430G2/Schema-Imports/system@emmoco.com/System.ems @@ -0,0 +1,72 @@ +owner = "system@emmoco.com" + +schema System { + + // protocolLevel #13 + + enum ParameterGroup { + GROUP_A, GROUP_B + } + + // protocolLevel #1 + + uint8 $schemaUuid[16] { // protocolLevel #10 -- invisible to applications + readonly + } + + uint16 $mcmProtocolLevel { + readonly + } + + uint16 $eapProtocolLevel { + readonly + } + + uint8 $eapBuildDate[8] { // protocolLevel #5 -- rename from $eapBuildNumber + readonly + } + + // protocolLevel #2 + + int16 $fileIndexReset { + writeonly + } + + // protocolLevel #5 + + // protocolLevel #12 -- increase size to 20 + + uint8 $schemaHash[20] { + readonly + } + + // protocolLevel #7 + + struct ResourceCount { + uint8 app + uint8 sys + } + + ResourceCount $resourceCount { + readonly + } + + // protocolLevel #9 + + int8 $mobileRssi { + readonly + } + + // protocolLevel #11 + + uint8 $mcmDisconnect { + writeonly + } + + // protocolLevel #13 + + ParameterGroup $activeGroup { + readwrite + } + +} diff --git a/Blinker-MSP-EXP430G2/bundle.properties b/Blinker-MSP-EXP430G2/bundle.properties new file mode 100644 index 0000000..2727957 --- /dev/null +++ b/Blinker-MSP-EXP430G2/bundle.properties @@ -0,0 +1,10 @@ +# generated file - do not edit + +bundle.requires = com.emmoco.schema.translator +com.emmoco.framework.Properties.applicationDirectory = Em +com.emmoco.framework.Properties.schemaDestinationDirectory = Em +com.emmoco.framework.Properties.serverAPIToken = +com.emmoco.framework.Properties.align16 = 2 +com.emmoco.framework.Properties.align32 = 4 +com.emmoco.framework.Properties.schemaFile = /Users/imanol/devel/em-builder/Blinker-MSP-EXP430G2/Blinker.ems +com.emmoco.framework.Properties.toolVersion = 13.4.1.201311121909 diff --git a/Blinker-MSP-EXP430G2/makefile b/Blinker-MSP-EXP430G2/makefile new file mode 100644 index 0000000..9d1becd --- /dev/null +++ b/Blinker-MSP-EXP430G2/makefile @@ -0,0 +1,4 @@ +APPNAME = Blinker +PLATFORM = ../Platform-MSP-EXP430G2 + +include $(PLATFORM)/rules.mk diff --git a/DUREX/Output/DUREX-Prog.map b/DUREX/Output/DUREX-Prog.map index 2e86d79..a1e47f6 100644 --- a/DUREX/Output/DUREX-Prog.map +++ b/DUREX/Output/DUREX-Prog.map @@ -783,17 +783,17 @@ LOAD /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib .debug_frame 0x00000000000003bc 0x1e /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a(strcmp.o) .debug_frame 0x00000000000003da 0x38 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a(memcpy.o) -.debug_str 0x0000000000000000 0xa8e +.debug_str 0x0000000000000000 0xa89 *(.debug_str) - .debug_str 0x0000000000000000 0x2bb Output/DUREX-Prog.obj - 0x2f4 (size before relaxing) - .debug_str 0x00000000000002bb 0x3d9 Output/DUREX.obj - 0x53a (size before relaxing) - .debug_str 0x0000000000000694 0x367 Output/Hal.obj - 0x598 (size before relaxing) - .debug_str 0x00000000000009fb 0x5f /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a(strcmp.o) + .debug_str 0x0000000000000000 0x2b6 Output/DUREX-Prog.obj + 0x2ef (size before relaxing) + .debug_str 0x00000000000002b6 0x3d9 Output/DUREX.obj + 0x535 (size before relaxing) + .debug_str 0x000000000000068f 0x367 Output/Hal.obj + 0x593 (size before relaxing) + .debug_str 0x00000000000009f6 0x5f /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a(strcmp.o) 0xde (size before relaxing) - .debug_str 0x0000000000000a5a 0x34 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a(memcpy.o) + .debug_str 0x0000000000000a55 0x34 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a(memcpy.o) 0x100 (size before relaxing) .debug_loc 0x0000000000000000 0x868 diff --git a/DUREX/Output/DUREX-Prog.obj b/DUREX/Output/DUREX-Prog.obj index dead87e..3caf4a3 100644 --- a/DUREX/Output/DUREX-Prog.obj +++ b/DUREX/Output/DUREX-Prog.obj diff --git a/DUREX/Output/DUREX-Prog.out b/DUREX/Output/DUREX-Prog.out index e534196..d299a5e 100755 --- a/DUREX/Output/DUREX-Prog.out +++ b/DUREX/Output/DUREX-Prog.out diff --git a/DUREX/Output/DUREX.obj b/DUREX/Output/DUREX.obj index 8fe1a66..062fef2 100644 --- a/DUREX/Output/DUREX.obj +++ b/DUREX/Output/DUREX.obj diff --git a/DUREX/Output/Hal.obj b/DUREX/Output/Hal.obj index d4b4edd..89bd839 100644 --- a/DUREX/Output/Hal.obj +++ b/DUREX/Output/Hal.obj diff --git a/FirstApp-MSP-EXP430G2/.project b/FirstApp-MSP-EXP430G2/.project new file mode 100644 index 0000000..2fa624d --- /dev/null +++ b/FirstApp-MSP-EXP430G2/.project @@ -0,0 +1,36 @@ + + + FirstApp-MSP-EXP430G2 + + + + + + com.emmoco.mcmtooling.core.mcmToolingBuilder + + + + + com.emmoco.mcmtooling.example.mcmToolingBuilder + + + + + + com.emmoco.mcmtooling.example.mcmToolingExampleNature + com.emmoco.mcmtooling.core.mcmToolingNature + + + + Hal + 2 + EM_PLATFORM_LOC/Hal + + + + + EM_PLATFORM_LOC + $%7BWORKSPACE_LOC%7D/Platform-MSP-EXP430G2 + + + diff --git a/FirstApp-MSP-EXP430G2/Em/Em_Message.h b/FirstApp-MSP-EXP430G2/Em/Em_Message.h new file mode 100644 index 0000000..3bd0d58 --- /dev/null +++ b/FirstApp-MSP-EXP430G2/Em/Em_Message.h @@ -0,0 +1,182 @@ +#ifndef Em_Message_H_ +#define Em_Message_H_ + +#include "Em_Types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* -------- SRT FUNCTIONS CALLED BY HAL -------- */ + +static inline bool Em_Message_addByte(uint8_t b); +extern void Em_Message_dispatch(void); +static inline bool Em_Message_getByte(uint8_t* bp); +extern void Em_Message_restart(void); +static inline bool Em_Message_startRx(void); +static inline uint8_t Em_Message_startTx(void); + + +/* -------- HAL FUNCTIONS CALLED BY SRT -------- */ + +extern uint8_t Em_Hal_lock(void); +extern void Em_Hal_reset(void); +extern void Em_Hal_startSend(void); +extern void Em_Hal_unlock(uint8_t key); +extern void Em_Hal_watchOff(void); +extern void Em_Hal_watchOn(void); + + +/* -------- MESSAGE FORMAT -------- */ + +/* protocolLevel #4 */ +#define Em_Message_INDSIZE 4 + +typedef uint8_t Em_Message_Size; +typedef uint8_t Em_Message_Kind; +/* protocolLevel #12 -- split 16-bit resId into */ +typedef uint8_t Em_Message_ResId; +typedef uint8_t Em_Message_Chan; + +#define Em_Message_NOP 0 +#define Em_Message_FETCH 1 +#define Em_Message_FETCH_DONE 2 +#define Em_Message_STORE 3 +#define Em_Message_STORE_DONE 4 +#define Em_Message_INDICATOR 5 +#define Em_Message_CONNECT 6 +#define Em_Message_DISCONNECT 7 +#define Em_Message_ECHO 8 +/* protocolLevel #3 */ +/* protocolLevel #6 -- rename from BROADCAST to PAIRING */ +#define Em_Message_PAIRING 9 +#define Em_Message_PAIRING_DONE 10 +/* protocolLevel #7 */ +#define Em_Message_OFFLINE 11 +/* protocolLevel #8 */ +#define Em_Message_ACCEPT 12 +/* protocolLevel #13 */ +#define Em_Message_START 13 +#define Em_Message_ACTIVE_PARAMS 14 + +typedef struct Em_Message_Header { + Em_Message_Size size; + Em_Message_Kind kind; + Em_Message_ResId resId; + Em_Message_Chan chan; +} Em_Message_Header; + +typedef uint16_t Em_Message_protocolLevel_t; + +/* protocolLevel #1 */ + +/* protocolLevel #10 */ +/* #define Em_Message_SYS_SCHEMA_UUID 0xFF */ + +#define Em_Message_SYS_MCM_PROTOCOL_LEVEL 0xFE +#define Em_Message_SYS_EAP_PROTOCOL_LEVEL 0xFD +#define Em_Message_SYS_EAP_BUILD_DATE 0xFC + +/* protocolLevel #2 */ +#define Em_Message_SYS_FILE_INDEX_RESET 0xFB + +/* protocolLevel #5 */ +#define Em_Message_SYS_SCHEMA_HASH 0xFA + +/* protocolLevel #7 */ +#define Em_Message_SYS_RESOURCE_COUNT 0xF9 + +/* protocolLevel #9 */ +#define Em_Message_SYS_MOBILE_RSSI 0xF8 + +/* protocolLevel #11 */ +#define Em_Message_SYS_MCM_DISCONNECT 0xF7 + +/* protocolLevel #13a */ +#define Em_Message_SYS_MCM_NAME 0xF5 + + +/* -------- PRIVATE -------- */ + +extern void Em_Message_nextXmit(void); + +extern uint8_t* Em_App_inBuf; +extern uint8_t* Em_App_outBuf; +extern Em_Message_Size Em_App_xmitSize; + +extern uint8_t* _Em_Message_rxBuf; +extern uint8_t _Em_Message_rxCnt; + +extern uint8_t* _Em_Message_txBuf; +extern uint8_t _Em_Message_txCnt; + +static inline bool Em_Message_addByte(uint8_t b) { + if (_Em_Message_rxCnt == 0) { + if (b == 0) { + return false; + } + _Em_Message_rxCnt = b; + } + *_Em_Message_rxBuf++ = b; + if (--_Em_Message_rxCnt == 0) { + _Em_Message_rxBuf = 0; + if (_Em_Message_txBuf == 0) { + Em_Hal_watchOff(); + } + return true; + } + else { + return false; + } +} + +static inline bool Em_Message_getByte(uint8_t* bp) { + if (_Em_Message_txBuf == 0) { + return false; + } + if (_Em_Message_txCnt == 0) { + _Em_Message_txCnt = *_Em_Message_txBuf + 1; + } + if (--_Em_Message_txCnt > 0) { + *bp = *_Em_Message_txBuf++; + return true; + } + else { + _Em_Message_txBuf = 0; + Em_App_xmitSize = 0; + Em_Message_nextXmit(); + if (_Em_Message_rxBuf == 0) { + Em_Hal_watchOff(); + } + return false; + } +} + +static inline bool Em_Message_startRx(void) { + if (_Em_Message_rxBuf == 0) { + _Em_Message_rxBuf = Em_App_inBuf; + if (_Em_Message_txBuf == 0) { + Em_Hal_watchOn(); + } + return true; + } + else { + return false; + } +} + +static inline uint8_t Em_Message_startTx(void) { + _Em_Message_txBuf = Em_App_outBuf + 1; + _Em_Message_txCnt = 0; + if (_Em_Message_rxBuf == 0) { + Em_Hal_watchOn(); + } + return 0; +} + + +#ifdef __cplusplus +} +#endif + +#endif /*Em_Message_H_*/ diff --git a/FirstApp-MSP-EXP430G2/Em/Em_Types.h b/FirstApp-MSP-EXP430G2/Em/Em_Types.h new file mode 100644 index 0000000..d002306 --- /dev/null +++ b/FirstApp-MSP-EXP430G2/Em/Em_Types.h @@ -0,0 +1,17 @@ +#ifndef Em_Types_H_ +#define Em_Types_H_ + +#ifndef Em_NOSTDBOOL +#include +#endif + +#ifndef Em_NOSTDINT +#include +#endif + +#ifdef Em_16BIT +typedef signed char int8_t; +typedef unsigned char uint8_t; +#endif + +#endif /*Em_Types_H_*/ diff --git a/FirstApp-MSP-EXP430G2/Em/FirstApp-STUBS.c b/FirstApp-MSP-EXP430G2/Em/FirstApp-STUBS.c new file mode 100644 index 0000000..4dc7c9c --- /dev/null +++ b/FirstApp-MSP-EXP430G2/Em/FirstApp-STUBS.c @@ -0,0 +1,26 @@ +/**** DO NOT EDIT -- this file has been automatically generated from @emmoco.com.FirstApp on 2014-07-30T13:03:45T ****/ +/**** protocolLevel = 13, toolsVersion = 13.4.1.201311121909 ****/ + +#include "FirstApp.h" + +#ifdef FirstApp_STUBS_ /* enables optional inclusion of application stubs */ + +/* Copy the function skeletons below into your own application source file */ + +void FirstApp_connectHandler(void) { + /* TODO: application is now connected */ +} + +void FirstApp_disconnectHandler(void) { + /* TODO: application is now disconnected */ +} + +void FirstApp_data_fetch(FirstApp_data_t* output) { + /* TODO: read resource 'data' into 'output' */ +} + +void FirstApp_data_store(FirstApp_data_t* input) { + /* TODO: write resource 'data' from 'input' */ +} + +#endif /* application stubs */ diff --git a/FirstApp-MSP-EXP430G2/Em/FirstApp.c b/FirstApp-MSP-EXP430G2/Em/FirstApp.c new file mode 100644 index 0000000..203ecab --- /dev/null +++ b/FirstApp-MSP-EXP430G2/Em/FirstApp.c @@ -0,0 +1,445 @@ +/**** DO NOT EDIT -- this file has been automatically generated from @emmoco.com.FirstApp on 2014-07-30T13:03:45T ****/ +/**** protocolLevel = 13, toolsVersion = 13.4.1.201311121909 ****/ + +#include "Em_Message.h" +#include "FirstApp.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define Em_Message_protocolLevel 13 + +typedef struct Em_App_Message { + uint8_t dummy[3]; + uint8_t sot; + Em_Message_Header hdr; + uint8_t data[20]; +} Em_App_Message; + +const uint8_t Em_App_hash[] = {124, 222, 24, 201, 135, 244, 35, 197, 14, 170, 21, 17, 84, 224, 220, 189, 13, 0, ((sizeof(struct{uint8_t f1; uint16_t f2;}) - sizeof(uint16_t)) << 4) | (sizeof(struct{uint8_t f1; uint32_t f2;}) - sizeof(uint32_t))}; + +const uint8_t Em_App_build[] = {179, 173, 240, 134, 71, 1, 0, 0}; + +#define Em_App_APP_RESOURCE_COUNT 1 +#define Em_App_SYS_RESOURCE_COUNT 9 + +#define Em_App_ACCEPT FirstApp_accept +#define Em_App_ACTIVATEPARAMETERS FirstApp_activateParameters +#define Em_App_BROADCASTOFF FirstApp_broadcastOff +#define Em_App_DISCONNECT FirstApp_disconnect +#define Em_App_PAIRINGON FirstApp_pairingOn +#define Em_App_PAIRINGOFF FirstApp_pairingOff +#define Em_App_RESET FirstApp_reset +#define Em_App_SETDEVICENAME FirstApp_setDeviceName +#define Em_App_START FirstApp_start + +#define Em_App_CONNECTHANDLER FirstApp_connectHandler +#define Em_App_DISCONNECTHANDLER FirstApp_disconnectHandler + +#define Em_App_MAX_INDICATOR 1 + +/* BEGIN common code */ + +enum {Em_App_IDLE, Em_App_STARTING, Em_App_DISCONNECTED, Em_App_CONNECTED}; + +typedef struct Em_App_Indicator { + uint8_t dummy[3]; + uint8_t sot; + Em_Message_Header hdr; + uint8_t data[Em_Message_INDSIZE]; +} Em_App_Indicator; + +union { uint32_t align; Em_App_Message msg; } Em_App_msg_u; +union { uint32_t align; Em_App_Indicator ind; } Em_App_ind_u; +#define Em_App_msg Em_App_msg_u.msg +#define Em_App_ind Em_App_ind_u.ind + +void (*Em_App_pdHdlr)(void); + +const uint16_t Em_App_endian = 0x0100; + +Em_Message_Size Em_App_recvIdx; +Em_Message_Size Em_App_recvSize; +Em_Message_Size Em_App_xmitIdx; +Em_Message_Size Em_App_xmitSize; + +uint8_t Em_App_state = Em_App_IDLE; +int32_t Em_App_fileIndex = 0; +uint32_t Em_App_xmitMask = 0; + +uint8_t* Em_App_valp; +uint8_t* Em_App_bufp; +const char* Em_App_desc; + +uint8_t* Em_App_inBuf = (uint8_t*)&Em_App_msg.hdr; +uint8_t* Em_App_outBuf = 0; + +uint8_t* _Em_Message_rxBuf = 0; +uint8_t _Em_Message_rxCnt = 0; + +uint8_t* _Em_Message_txBuf = 0; +uint8_t _Em_Message_txCnt = 0; + +#define Em_App_DEVNAME_LEN 9 +const char* Em_App_devName = 0; + +void Em_App_fetchDispatch(void); +void Em_Message_marshallToBuf(uint8_t* valp, uint8_t* bufp, const char* desc); +void Em_Message_marshallToVal(uint8_t* valp, uint8_t* bufp, const char* desc); +void Em_App_storeDispatch(void); +void Em_App_sendIndicator(Em_Message_ResId indId); +void Em_App_sendResponse(Em_Message_Kind kind, Em_Message_Size size); +void Em_App_startIndSend(void); +void Em_App_startResSend(void); +void Em_App_sysFetchDispatch(void); +void Em_App_sysStoreDispatch(void); +bool Em_App_xmitReady(Em_Message_ResId indId); + +void Em_Message_nextXmit(void) { + uint8_t key = Em_Hal_lock(); + if (Em_App_xmitMask != 0) { + uint8_t i; + uint32_t m; + for (i = 0, m = 0x1; i < Em_App_MAX_INDICATOR; i++, m <<= 1) { + if (Em_App_xmitMask & m) { + Em_App_xmitMask &= ~m; + if (i == 0) { + Em_App_startResSend(); + } + else { + Em_App_sendIndicator(i - 1); + } + break; + } + } + } + Em_Hal_unlock(key); +} + +void Em_Message_restart(void) { + Em_App_START(); +} + +void Em_App_ACCEPT(bool enable) { + if (Em_App_state == Em_App_CONNECTED) { + return; + } + Em_App_ind.sot = 0; + Em_App_ind.hdr.kind = Em_Message_ACCEPT; + Em_App_ind.hdr.size = sizeof (Em_Message_Header); + Em_App_ind.hdr.resId = enable; + Em_App_startIndSend(); +} + +void Em_App_ACTIVATEPARAMETERS(uint8_t group) { + if (Em_App_state == Em_App_IDLE || Em_App_state == Em_App_STARTING) { + return; + } + Em_App_ind.sot = 0; + Em_App_ind.hdr.kind = Em_Message_ACTIVE_PARAMS; + Em_App_ind.hdr.size = sizeof (Em_Message_Header); + Em_App_ind.hdr.resId = group; + Em_App_startIndSend(); +} + +void Em_App_BROADCASTOFF(void) { + Em_App_ind.sot = 0; + Em_App_ind.hdr.kind = Em_Message_INDICATOR; + Em_App_ind.hdr.size = sizeof (Em_Message_Header); + Em_App_ind.hdr.resId = 0; + Em_App_startIndSend(); +} + +void Em_App_DISCONNECT(void) { + if (Em_App_state != Em_App_CONNECTED) { + return; + } + Em_App_state = Em_App_DISCONNECTED; + Em_App_ind.sot = 0; + Em_App_ind.hdr.kind = Em_Message_DISCONNECT; + Em_App_ind.hdr.size = sizeof (Em_Message_Header); + Em_App_ind.hdr.resId = 0; + Em_App_startIndSend(); +} + +void Em_Message_dispatch(void) { + if (Em_App_state == Em_App_IDLE) { + return; + } + switch (Em_App_msg.hdr.kind) { + case Em_Message_CONNECT: + Em_App_state = Em_App_CONNECTED; + Em_App_CONNECTHANDLER(); + break; + case Em_Message_DISCONNECT: + Em_App_state = Em_App_DISCONNECTED; + Em_App_DISCONNECTHANDLER(); + break; + case Em_Message_PAIRING_DONE: + if (Em_App_pdHdlr) { + (*Em_App_pdHdlr)(); + } + break; + case Em_Message_FETCH: + if (Em_App_msg.hdr.resId < 0x80) { + Em_App_fetchDispatch(); + } + else { + Em_App_sysFetchDispatch(); + } + break; + case Em_Message_STORE: + if (Em_App_msg.hdr.resId < 0x80) { + Em_App_storeDispatch(); + } + else { + Em_App_sysStoreDispatch(); + } + break; + } +} + +void Em_App_marshallToBuf() { + char ch; + while ((ch = *Em_App_desc++)) { + switch (ch) { + case '0' : { + *Em_App_bufp++ = 0; + break; + } + case '1' : { + *Em_App_bufp++ = *Em_App_valp & 0xFF; + break; + } + case '2' : { + uint16_t v16 = *(uint16_t*)Em_App_valp; + *Em_App_bufp++ = v16 & 0xFF; + *Em_App_bufp++ = (v16 >> 8) & 0xFF; + break; + } + case '4' : { + if (((uint32_t)Em_App_valp & 0x1)) Em_App_valp++; + uint32_t v32 = *(uint32_t*)Em_App_valp++; + *Em_App_bufp++ = v32 & 0xFF; + *Em_App_bufp++ = (v32 >> 8) & 0xFF; + *Em_App_bufp++ = (v32 >> 16) & 0xFF; + *Em_App_bufp++ = (v32 >> 24) & 0xFF; + break; + } + } + Em_App_valp += 1; + } +} + +void Em_App_marshallToVal() { + char ch; + while ((ch = *Em_App_desc++)) { + switch (ch) { + case '0' : { + *Em_App_valp = 0; + Em_App_bufp += 1; + break; + } + case '1' : { + *Em_App_valp = *Em_App_bufp++ & 0xFF; + break; + } + case '2' : { + uint16_t v16 = *Em_App_bufp++ & 0xFF; + v16 |= (*Em_App_bufp++ << 8); + *(uint16_t*)Em_App_valp = v16; + break; + } + case '4' : { + if (((uint32_t)Em_App_valp & 0x1)) Em_App_valp++; + uint32_t v32 = (uint32_t)*Em_App_bufp++ & 0xFF; + v32 |= ((uint32_t)*Em_App_bufp++ << 8); + v32 |= ((uint32_t)*Em_App_bufp++ << 16); + v32 |= ((uint32_t)*Em_App_bufp++ << 24); + *(uint32_t*)Em_App_valp++ = v32; + break; + } + } + Em_App_valp += 1; + } +} + +void Em_App_PAIRINGOFF(void(*handler)(void)) { + Em_App_PAIRINGON(0, handler); +} + +void Em_App_PAIRINGON(uint8_t secs, void(*handler)(void)) { + if (Em_App_state != Em_App_DISCONNECTED) { + return; + } + Em_App_pdHdlr = handler; + Em_App_ind.sot = 0; + Em_App_ind.hdr.kind = Em_Message_PAIRING; + Em_App_ind.hdr.size = sizeof (Em_Message_Header); + Em_App_ind.hdr.resId = secs; + Em_App_startIndSend(); +} + +void Em_App_RESET(void) { + Em_Hal_reset(); + _Em_Message_rxBuf = _Em_Message_txBuf = 0; + _Em_Message_rxCnt = _Em_Message_txCnt = 0; + Em_App_recvIdx = Em_App_recvSize = Em_App_xmitIdx = Em_App_xmitSize = 0; + Em_App_state = Em_App_IDLE; + Em_App_fileIndex = 0; + Em_App_xmitMask = 0; +} + +void Em_App_SETDEVICENAME(const char* name) { + Em_App_devName = name; +} + +void Em_App_START(void) { + Em_App_RESET(); + Em_App_state = Em_App_STARTING; +} + +void Em_App_sendResponse(Em_Message_Kind kind, Em_Message_Size size) { + if (Em_App_state != Em_App_IDLE) { + Em_App_msg.sot = 0; + Em_App_msg.hdr.kind = kind; + Em_App_msg.hdr.size = size + sizeof (Em_Message_Header); + if (Em_App_xmitReady(0)) { + Em_App_startResSend(); + } + } +} + +void Em_App_startIndSend(void) { + Em_App_outBuf = (uint8_t*)&Em_App_ind.sot; + Em_App_xmitSize = Em_App_ind.hdr.size + 1; + Em_App_xmitIdx = 0; + Em_Hal_startSend(); +} + +void Em_App_startResSend(void) { + Em_App_outBuf = (uint8_t*)&Em_App_msg.sot; + Em_App_xmitSize = Em_App_msg.hdr.size + 1; + Em_App_xmitIdx = 0; + Em_Hal_startSend(); +} + +void Em_App_sysFetchDispatch(void) { + uint8_t size = 0; + int i, j; + switch (Em_App_msg.hdr.resId) { + case Em_Message_SYS_SCHEMA_HASH: + for (i = 0; i < sizeof (Em_App_hash); i++) { + Em_App_msg.data[i] = Em_App_hash[i]; + } + Em_App_msg.data[sizeof (Em_App_hash)] = *((uint8_t*)&Em_App_endian); + size = sizeof (Em_App_hash) + 1; + break; + case Em_Message_SYS_MCM_NAME: + if (Em_App_devName) { + for (i = 0; i < Em_App_DEVNAME_LEN; i++) { + if ((Em_App_msg.data[i] = Em_App_devName[i]) == 0) { + break; + } + } + for (j = i; j < Em_App_DEVNAME_LEN; j++) { + Em_App_msg.data[j] = 0; + } + size = Em_App_DEVNAME_LEN; + } + break; + case Em_Message_SYS_EAP_PROTOCOL_LEVEL: + *((Em_Message_protocolLevel_t*)Em_App_msg.data) = Em_Message_protocolLevel; + size = sizeof (Em_Message_protocolLevel_t); + break; + case Em_Message_SYS_EAP_BUILD_DATE: + for (i = 0; i < sizeof (Em_App_build); i++) { + Em_App_msg.data[i] = Em_App_build[i]; + } + size = sizeof (Em_App_build); + break; + case Em_Message_SYS_RESOURCE_COUNT: + Em_App_msg.data[0] = Em_App_APP_RESOURCE_COUNT; + Em_App_msg.data[1] = Em_App_SYS_RESOURCE_COUNT; + size = 2; + break; + } + Em_App_sendResponse(Em_Message_FETCH_DONE, size); +} + +void Em_App_sysStoreDispatch(void) { + switch (Em_App_msg.hdr.resId) { + case Em_Message_SYS_FILE_INDEX_RESET: + Em_App_fileIndex = 0; + break; + } + Em_App_sendResponse(Em_Message_STORE_DONE, 0); +} + +bool Em_App_xmitReady(Em_Message_ResId indId) { + uint8_t key = Em_Hal_lock(); + bool res = _Em_Message_txBuf == 0 && Em_App_xmitMask == 0; + if (!res) { + Em_App_xmitMask |= (1 << indId); + } + Em_Hal_unlock(key); + return res; +} + +/* END common code */ + +void Em_App_fetchDispatch(void) { + uint8_t size = 0; + switch (Em_App_msg.hdr.resId) { + case 0: { + break; + } + case 1: { +#ifdef Em_16BIT + FirstApp_data_t val; + Em_App_valp = (uint8_t*)&val; + Em_App_bufp = Em_App_msg.data; + Em_App_desc = "2"; + FirstApp_data_fetch(&val); + Em_App_marshallToBuf(); +#else + FirstApp_data_fetch((void*)Em_App_msg.data); +#endif + size = 2; + break; + } + } + Em_App_sendResponse(Em_Message_FETCH_DONE, size); +} + +void Em_App_storeDispatch(void) { + switch (Em_App_msg.hdr.resId) { + case 0: { + break; + } + case 1: { +#ifdef Em_16BIT + FirstApp_data_t val; + Em_App_valp = (uint8_t*)&val; + Em_App_bufp = Em_App_msg.data; + Em_App_desc = "2"; + Em_App_marshallToVal(); + FirstApp_data_store(&val); +#else + FirstApp_data_store((void*)Em_App_msg.data); +#endif + break; + } + } + Em_App_sendResponse(Em_Message_STORE_DONE, 0); +} + +void Em_App_sendIndicator(Em_Message_ResId indId) { + /* no active resources */ +} + +#ifdef __cplusplus +} +#endif + diff --git a/FirstApp-MSP-EXP430G2/Em/FirstApp.h b/FirstApp-MSP-EXP430G2/Em/FirstApp.h new file mode 100644 index 0000000..4784efa --- /dev/null +++ b/FirstApp-MSP-EXP430G2/Em/FirstApp.h @@ -0,0 +1,44 @@ +/**** DO NOT EDIT -- this file has been automatically generated from @emmoco.com.FirstApp on 2014-07-30T13:03:45T ****/ +/**** protocolLevel = 13, toolsVersion = 13.4.1.201311121909 ****/ + +#ifndef FirstApp__H +#define FirstApp__H + +#include "Em_Types.h" +#include "Em_Message.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* -------- connection callback functions implemented by the application -------- */ + +void FirstApp_connectHandler(void); +void FirstApp_disconnectHandler(void); + +/* -------- resource types defined in the schema -------- */ + +/* -------- resource callback functions implemented by the application -------- */ + +/* resource data */ +typedef int16_t FirstApp_data_t; +extern void FirstApp_data_fetch(FirstApp_data_t* output); +extern void FirstApp_data_store(FirstApp_data_t* input); + +/* -------- application functions implemented in FirstApp.c -------- */ + +void FirstApp_accept(bool enable); +void FirstApp_activateParameters(uint8_t group); +void FirstApp_broadcastOff(void); +void FirstApp_disconnect(void); +void FirstApp_pairingOn(uint8_t secs, void(*handler)(void)); +void FirstApp_pairingOff(void(*handler)(void)); +void FirstApp_reset(void); +void FirstApp_setDeviceName(const char* name); +void FirstApp_start(void); + +#ifdef __cplusplus +} +#endif + +#endif /* FirstApp__H */ diff --git a/FirstApp-MSP-EXP430G2/Em/firstapp.json b/FirstApp-MSP-EXP430G2/Em/firstapp.json new file mode 100644 index 0000000..a733a6a --- /dev/null +++ b/FirstApp-MSP-EXP430G2/Em/firstapp.json @@ -0,0 +1,204 @@ +{ + "resources": { + "$schemaHash": { + "dim": 20, + "id": -6, + "align": 1, + "attributes": {"readonly": true}, + "type": "A20:u1", + "access": "r", + "size": 20 + }, + "$eapProtocolLevel": { + "id": -3, + "align": 2, + "attributes": {"readonly": true}, + "type": "u2", + "access": "r", + "size": 2 + }, + "$mcmProtocolLevel": { + "id": -2, + "align": 2, + "attributes": {"readonly": true}, + "type": "u2", + "access": "r", + "size": 2 + }, + "$mobileRssi": { + "id": -8, + "align": 1, + "attributes": {"readonly": true}, + "type": "i1", + "access": "r", + "size": 1 + }, + "data": { + "id": 1, + "align": 2, + "attributes": {}, + "type": "i2", + "access": "rw", + "size": 2 + }, + "$activeGroup": { + "id": -10, + "align": 1, + "pack": 1, + "attributes": {"readwrite": true}, + "type": "E:system@emmoco.com.System/ParameterGroup", + "access": "rw", + "size": 1 + }, + "$mcmDisconnect": { + "id": -9, + "align": 1, + "attributes": {"writeonly": true}, + "type": "u1", + "access": "w", + "size": 1 + }, + "$eapBuildDate": { + "dim": 8, + "id": -4, + "align": 1, + "attributes": {"readonly": true}, + "type": "A8:u1", + "access": "r", + "size": 8 + }, + "$resourceCount": { + "id": -7, + "align": 1, + "attributes": {"readonly": true}, + "type": "S:system@emmoco.com.System/ResourceCount", + "access": "r", + "size": 2 + }, + "$fileIndexReset": { + "id": -5, + "align": 2, + "attributes": {"writeonly": true}, + "type": "i2", + "access": "w", + "size": 2 + } + }, + "resourceNamesSys": [ + "$activeGroup", + "$eapBuildDate", + "$eapProtocolLevel", + "$fileIndexReset", + "$mcmDisconnect", + "$mcmProtocolLevel", + "$mobileRssi", + "$resourceCount", + "$schemaHash" + ], + "manifest": { + "protocolLevel": 13, + "hash": [ + 124, + 222, + 24, + 201, + 135, + 244, + 35, + 197, + 14, + 170, + 21, + 17, + 84, + 224, + 220, + 189 + ], + "toolVersion": "13.4.1.201311121909", + "name": "FirstApp", + "$$md5": "7cde18c987f423c50eaa151154e0dcbd", + "build": [ + 179, + 173, + 240, + 134, + 71, + 1, + 0, + 0 + ], + "date": "2014-07-30T13:03:45T", + "maxAlign": 2, + "maxSize": 20, + "version": "1.0.0" + }, + "resourceNames": [ + "data", + "$mcmProtocolLevel", + "$eapProtocolLevel", + "$eapBuildDate", + "$fileIndexReset", + "$schemaHash", + "$resourceCount", + "$mobileRssi", + "$mcmDisconnect", + "$activeGroup" + ], + "attributes": { + "description": "My first app", + "version": "1.0.0" + }, + "resourceNamesApp": ["data"], + "types": { + "system@emmoco.com.System/ResourceCount": { + "packed": false, + "align": 1, + "type": "S:system@emmoco.com.System/ResourceCount", + "size": 2, + "fields": [ + { + "pad": 0, + "align": 1, + "name": "app", + "type": "u1", + "size": 1 + }, + { + "pad": 0, + "align": 1, + "name": "sys", + "type": "u1", + "size": 1 + } + ] + }, + "std:i2": { + "align": 2, + "size": 2 + }, + "std:i1": { + "align": 1, + "size": 1 + }, + "std:u1": { + "align": 1, + "size": 1 + }, + "system@emmoco.com.System/ParameterGroup": { + "values": [ + "GROUP_A", + "GROUP_B" + ], + "align": 1, + "pack": 1, + "type": "E:system@emmoco.com.System/ParameterGroup", + "size": 1 + }, + "std:u2": { + "align": 2, + "size": 2 + } + }, + "imports": {"@emmoco.com.FirstApp": true} +} \ No newline at end of file diff --git a/FirstApp-MSP-EXP430G2/FirstApp-Prog.c b/FirstApp-MSP-EXP430G2/FirstApp-Prog.c new file mode 100644 index 0000000..aa59d3c --- /dev/null +++ b/FirstApp-MSP-EXP430G2/FirstApp-Prog.c @@ -0,0 +1,28 @@ +#include "FirstApp.h" +#include "Hal.h" + +static FirstApp_data_t dataVal = -40; + +void main() { + Hal_init(); + FirstApp_start(); + Hal_idleLoop(); +} + +/* -------- SCHEMA CALLBACKS -------- */ + +void FirstApp_connectHandler(void) { + Hal_connected(); +} + +void FirstApp_disconnectHandler(void) { + Hal_disconnected(); +} + +void FirstApp_data_fetch(FirstApp_data_t* output) { + *output = dataVal; +} + +void FirstApp_data_store(FirstApp_data_t* input) { + dataVal = *input; +} diff --git a/FirstApp-MSP-EXP430G2/FirstApp.ems b/FirstApp-MSP-EXP430G2/FirstApp.ems new file mode 100644 index 0000000..a0d8017 --- /dev/null +++ b/FirstApp-MSP-EXP430G2/FirstApp.ems @@ -0,0 +1,8 @@ +version = "1.0.0"; +description = "My first app"; + +schema FirstApp { + + int16 data; + +}; diff --git a/FirstApp-MSP-EXP430G2/Output/FirstApp-Prog.hex b/FirstApp-MSP-EXP430G2/Output/FirstApp-Prog.hex new file mode 100644 index 0000000..d6ef15b --- /dev/null +++ b/FirstApp-MSP-EXP430G2/Output/FirstApp-Prog.hex @@ -0,0 +1,115 @@ +:10C000005542200135D0085A82455A023140000479 +:10C010003F4004000F93082492425A0220012F83CC +:10C020009F4FBCC60002F8233F4056000F930724E1 +:10C0300092425A0220011F83CF430402F923B01217 +:10C0400050C3B012A8C0B01220C432D0F000FD3FDF +:10C05000304074C6B01242C33041B01248C33041C0 +:10C060009F42000200003041A24F00023041B01256 +:10C070006AC48243080282430C02C2430602C243DE +:10C080000A02C2432502C2435602C2433402C243DB +:10C090002402C243180282431402824316028243DE +:10C0A0001002824312023041B0126EC0D243180215 +:10C0B0003041B012A8C03041B24039020E025F4296 +:10C0C0003A025F53C24F2502C2435602B012C0C4A7 +:10C0D00030410B12B01260C44B4F1E4210021F427F +:10C0E00012020E9302200F9311240C4E0D4F1CF3DD +:10C0F0000DF30C9310240C4E0D4F3CF0FEFF3DF35E +:10C10000824C1002824D1202B012B8C04F4BB012D6 +:10C11000F2C43B4130410D93EE23F83F0B120A125B +:10C1200009120812484FB01260C4494F1A42100257 +:10C130001B4212028293080224241E434F487FF0C0 +:10C140000F0018200C4E8E108E118E108E110D4E79 +:10C150000E4A0F4B0EDC0FDD824E1002824F120290 +:10C160004A434F49B012F2C44F4A384139413A412B +:10C170003B4130410E5E7F53E5270E5E7F53FA232D +:10C18000E13F0A93DA230B93D8235A43EA3FC29341 +:10C19000180201203041C2433902C24F3B026E52A5 +:10C1A000C24E3A024F43B0121CC14F93F327B01254 +:10C1B000B8C03041F290FBFF3C02042082431402DD +:10C1C000824316024E436F42B0128EC130415F422D +:10C1D0003C027F500B007F90090005284E436F43BF +:10C1E000B0128EC130414F4F0F5F104F76C61C42C8 +:10C1F00004020C93F3273F403E020E430D4C0D5EAC +:10C200006D4DCF4D00004D9340241E531F533E9063 +:10C210000900F4234E4E6F43B0128EC13041D24319 +:10C220003E02F24009003F026E436F43B0128EC1DE +:10C2300030413F40A8C63E403E02FE4F00001E5324 +:10C240003F90BBC6FA23D2429EC651027E401400E4 +:10C250006F43B0128EC130413F40A0C63E403E0207 +:10C26000FE4F00001E533F90A8C6FA237E426F4344 +:10C27000B0128EC13041F2400D003E02C2433F0277 +:10C280006E436F43B0128EC130413E523E50360273 +:10C29000CE4300001E533E904702FA237E40090021 +:10C2A0006F43B0128EC13041D2933C0205244E43FD +:10C2B0006F43B0128EC130413F403E02B01260C0A9 +:10C2C0006E436F43B0128EC13041D2933C020420C2 +:10C2D0003F403E02B01268C04E436F42B0128EC162 +:10C2E0003041C29318020424F2900B003B02012853 +:10C2F00030415F423B020F5F104F88C61F4252021F +:10C300000F93F6278F123041E2431802B0125AC041 +:10C310003041F24003001802B01254C03041C293C1 +:10C320003C020938B012CAC23041C2933C020638FE +:10C33000B012A8C23041B012B4C13041B012CEC167 +:10C340003041D2D321003041F2F0FEFF21003041D4 +:10C35000B240805A2001C24358005F42FF107F93D1 +:10C360000824C2435600D242FF105700D242FE10AA +:10C370005600F2D080FF5700F24024005300F2D064 +:10C3800040002200F2F0BFFF2100D2D32200F2F0E1 +:10C39000FEFF2100F2D22A00F2F0F7FF2900F2D0CE +:10C3A00010002A00F2F0EFFF2900F2D22900F2F08B +:10C3B000F7FF2900B240200180011F4290013F5049 +:10C3C000B80B824F9401B24010008401D2D36100B7 +:10C3D000E2D32600E2D34100E2D22600E2D24100BD +:10C3E000D2D32A00D2D32900F2F0FDFF2A00E2D3F3 +:10C3F0002C00F2F0FDFF2B00E2D32D00F2F0FEFF47 +:10C400002900F24081FF6100F2400C006400F2421A +:10C410006200F2F0FEFF6100B240E2C22002304151 +:10C420000B120A12091232D232C2034319421A0203 +:10C4300082431A020993032032D0D800F53F32D24A +:10C440003A401C021B430F4B0FF904242F4A0F9351 +:10C4500001248F120B5B2A533A902202F423E43F0B +:10C460000F4232C203437FF230410D427DF232C2AD +:10C470000343F2F0FEFF29003E4064003F404C01C0 +:10C480001F83FE23034303433E53F823D2D32900E3 +:10C490003E40F4013F404C011F83FE23034303430E +:10C4A0003E53F823F2F0FEFF0300F2F0FDFF03001D +:10C4B000F2F0FDFF2B00D2D301004F4D02DF3041DF +:10C4C0001F420E021F53824F0802C243060282938C +:10C4D0000C020324C243670030411F4290013F50C9 +:10C4E000B80B824F9401B24010008401C243670030 +:10C4F00030414F4F02DF30410F120E120E4232C256 +:10C50000034392D31A024F4E7FF24F4F02DFF2F0F5 +:10C51000F7FF2300F2D22500B1C0D00004003E4155 +:10C520003F4100130F120E125E42660082930C020E +:10C530003324F2F0FEFF2900D2D32900C2930A026D +:10C540000A204E930620B1C0D00004003E413F4176 +:10C550000013C24E0A021F420C02CF4E00001F53AE +:10C56000824F0C025F420A027F53C24F0A02EB2342 +:10C5700082430C02829308021F240E4232C20343FC +:10C58000A2D21A024F4E7FF24F4F02DFB1C0D0004D +:10C5900004003E413F410013924202020C0282938A +:10C5A0000802C7231F4290013F50B80B824F9401ED +:10C5B000B24010008401BD3F82438401DE3F0F1270 +:10C5C0000E129252220292010E4232C20343A2D3B1 +:10C5D0001A024F4E7FF24F4F02DFB1C0D00004006D +:10C5E0003E413F4100130F120E120D120C125F421A +:10C5F0002B002FF317241F4208020F9310245E42D2 +:10C6000006024E9302206E4F5E537E53C24E0602C8 +:10C6100011246E4F1F53824F0802C24E6700F2F082 +:10C62000FDFF2B00B1C0D00008003C413D413E4120 +:10C630003F41001382430802C2432502B012D2C018 +:10C6400082930C02EC2382438401E93F0F120E1205 +:10C650000D120C121F421E012F93072082438401EA +:10C66000B012B2C0B1C0D00008003C413D413E41D3 +:06C670003F41001300131E +:10C67600EEC1DCC1DCC1DCC11EC232C2DCC158C2A3 +:10C6860076C2F0C22AC3F0C21EC3F0C2F0C212C301 +:10C6960008C3F0C2F0C2FCC20001B3ADF086470188 +:10C6A60000007CDE18C987F423C50EAA151154E0D4 +:06C6B600DCBD0D001100C7 +:04C6BC00D8FF3A0267 +:02C6C000000078 +:10FFE00050C050C0F8C4E6C550C050C050C024C571 +:10FFF00050C050C050C050C04CC6BEC550C000C05C +:040000030000C00039 +:00000001FF diff --git a/FirstApp-MSP-EXP430G2/Output/FirstApp-Prog.map b/FirstApp-MSP-EXP430G2/Output/FirstApp-Prog.map new file mode 100644 index 0000000..6514ca4 --- /dev/null +++ b/FirstApp-MSP-EXP430G2/Output/FirstApp-Prog.map @@ -0,0 +1,755 @@ +Archive member included because of file (symbol) + +/Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o) + /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/crt0ivtbl16.o (_reset_vector__) +/Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o) + /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o) (__watchdog_support) +/Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__init_stack.o) + /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o) (__init_stack) +/Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__low_level_init.o) + /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o) (__low_level_init) +/Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_copy_data.o) + /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o) (__do_copy_data) +/Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_clear_bss.o) + /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o) (__do_clear_bss) +/Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__stop_progExec__.o) + /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o) (__stop_progExec__) +/Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_endless_loop__.o) + /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o) (_endless_loop__) +/Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_unexpected_.o) + /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/crt0ivtbl16.o (_unexpected_) + +Allocating common symbols +Common symbol size file + +Em_App_recvIdx 0x1 Output/FirstApp.obj +Em_App_xmitSize 0x1 Output/FirstApp.obj +Em_App_valp 0x2 Output/FirstApp.obj +Em_App_ind_u 0xc Output/FirstApp.obj +Em_App_recvSize 0x1 Output/FirstApp.obj +Em_App_msg_u 0x1c Output/FirstApp.obj +Em_App_pdHdlr 0x2 Output/FirstApp.obj +Em_App_bufp 0x2 Output/FirstApp.obj +Em_App_xmitIdx 0x1 Output/FirstApp.obj +Em_App_desc 0x2 Output/FirstApp.obj + +Discarded input sections + + .data 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/crt0ivtbl16.o + .bss 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/crt0ivtbl16.o + .text.crt0 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/crt0ivtbl16.o + .text 0x0000000000000000 0x0 Output/FirstApp-Prog.obj + .data 0x0000000000000000 0x0 Output/FirstApp-Prog.obj + .bss 0x0000000000000000 0x0 Output/FirstApp-Prog.obj + .text 0x0000000000000000 0x0 Output/FirstApp.obj + .data 0x0000000000000000 0x0 Output/FirstApp.obj + .bss 0x0000000000000000 0x0 Output/FirstApp.obj + .text.Em_App_marshallToBuf + 0x0000000000000000 0xd4 Output/FirstApp.obj + .text.Em_App_marshallToVal + 0x0000000000000000 0x11a Output/FirstApp.obj + .text.FirstApp_setDeviceName + 0x0000000000000000 0x6 Output/FirstApp.obj + .text.Em_App_startIndSend + 0x0000000000000000 0x1a Output/FirstApp.obj + .text.FirstApp_pairingOn + 0x0000000000000000 0x24 Output/FirstApp.obj + .text.FirstApp_pairingOff + 0x0000000000000000 0xa Output/FirstApp.obj + .text.FirstApp_disconnect + 0x0000000000000000 0x26 Output/FirstApp.obj + .text.FirstApp_broadcastOff + 0x0000000000000000 0x1c Output/FirstApp.obj + .text.FirstApp_activateParameters + 0x0000000000000000 0x1e Output/FirstApp.obj + .text.FirstApp_accept + 0x0000000000000000 0x20 Output/FirstApp.obj + .text.Em_App_sendIndicator + 0x0000000000000000 0x2 Output/FirstApp.obj + .text 0x0000000000000000 0x0 Output/Hal.obj + .data 0x0000000000000000 0x0 Output/Hal.obj + .bss 0x0000000000000000 0x0 Output/Hal.obj + .text.buttonHandler + 0x0000000000000000 0x28 Output/Hal.obj + .text.Hal_buttonEnable + 0x0000000000000000 0x3c Output/Hal.obj + .text.Hal_debugOn + 0x0000000000000000 0x18 Output/Hal.obj + .text.Hal_debugOff + 0x0000000000000000 0x1a Output/Hal.obj + .text.Hal_debugPulse + 0x0000000000000000 0x24 Output/Hal.obj + .text.Hal_delay + 0x0000000000000000 0x16 Output/Hal.obj + .text.Hal_ledOn + 0x0000000000000000 0x8 Output/Hal.obj + .text.Hal_ledOff + 0x0000000000000000 0x8 Output/Hal.obj + .text.Hal_ledRead + 0x0000000000000000 0x12 Output/Hal.obj + .text.Hal_ledToggle + 0x0000000000000000 0x8 Output/Hal.obj + .text.Hal_tickStart + 0x0000000000000000 0x24 Output/Hal.obj + .text.Em_Hal_watchOff + 0x0000000000000000 0x6 Output/Hal.obj + .text.Em_Hal_watchOn + 0x0000000000000000 0x14 Output/Hal.obj + .bss.appButtonHandler + 0x0000000000000000 0x2 Output/Hal.obj + .text 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o) + .data 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o) + .bss 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o) + .text 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o) + .data 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o) + .bss 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o) + .text 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__init_stack.o) + .data 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__init_stack.o) + .bss 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__init_stack.o) + .text 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__low_level_init.o) + .data 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__low_level_init.o) + .bss 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__low_level_init.o) + .text 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_copy_data.o) + .data 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_copy_data.o) + .bss 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_copy_data.o) + .text 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_clear_bss.o) + .data 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_clear_bss.o) + .bss 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_clear_bss.o) + .text 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__stop_progExec__.o) + .data 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__stop_progExec__.o) + .bss 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__stop_progExec__.o) + .text 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_endless_loop__.o) + .data 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_endless_loop__.o) + .bss 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_endless_loop__.o) + .text 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_unexpected_.o) + .data 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_unexpected_.o) + .bss 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_unexpected_.o) + +Memory Configuration + +Name Origin Length Attributes +sfr 0x0000000000000000 0x0000000000000010 +peripheral_8bit 0x0000000000000010 0x00000000000000f0 +peripheral_16bit 0x0000000000000100 0x0000000000000100 +ram 0x0000000000000200 0x0000000000000200 xw +infomem 0x0000000000001000 0x0000000000000100 +infod 0x0000000000001000 0x0000000000000040 +infoc 0x0000000000001040 0x0000000000000040 +infob 0x0000000000001080 0x0000000000000040 +infoa 0x00000000000010c0 0x0000000000000040 +rom 0x000000000000c000 0x0000000000003fe0 xr +vectors 0x000000000000ffe0 0x0000000000000020 +bsl 0x0000000000000000 0x0000000000000000 +far_rom 0x0000000000000000 0x0000000000000000 +*default* 0x0000000000000000 0xffffffffffffffff + +Linker script and memory map + +LOAD /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/crt0ivtbl16.o +LOAD Output/FirstApp-Prog.obj +LOAD Output/FirstApp.obj +LOAD Output/Hal.obj +LOAD /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libgcc.a +LOAD /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a +LOAD /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libgcc.a +LOAD /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a + 0x0000000000000040 PROVIDE (__info_segment_size, 0x40) + 0x0000000000001000 PROVIDE (__infod, 0x1000) + 0x0000000000001040 PROVIDE (__infoc, 0x1040) + 0x0000000000001080 PROVIDE (__infob, 0x1080) + 0x00000000000010c0 PROVIDE (__infoa, 0x10c0) + 0x0000000000000000 __IE1 = 0x0 + 0x0000000000000002 __IFG1 = 0x2 + 0x0000000000000001 __IE2 = 0x1 + 0x0000000000000003 __IFG2 = 0x3 + 0x0000000000000048 __ADC10DTC0 = 0x48 + 0x0000000000000049 __ADC10DTC1 = 0x49 + 0x000000000000004a __ADC10AE0 = 0x4a + 0x00000000000001b0 __ADC10CTL0 = 0x1b0 + 0x00000000000001b2 __ADC10CTL1 = 0x1b2 + 0x00000000000001b4 __ADC10MEM = 0x1b4 + 0x00000000000001bc __ADC10SA = 0x1bc + 0x0000000000000056 __DCOCTL = 0x56 + 0x0000000000000057 __BCSCTL1 = 0x57 + 0x0000000000000058 __BCSCTL2 = 0x58 + 0x0000000000000053 __BCSCTL3 = 0x53 + 0x0000000000000059 __CACTL1 = 0x59 + 0x000000000000005a __CACTL2 = 0x5a + 0x000000000000005b __CAPD = 0x5b + 0x0000000000000128 __FCTL1 = 0x128 + 0x000000000000012a __FCTL2 = 0x12a + 0x000000000000012c __FCTL3 = 0x12c + 0x0000000000000020 __P1IN = 0x20 + 0x0000000000000021 __P1OUT = 0x21 + 0x0000000000000022 __P1DIR = 0x22 + 0x0000000000000023 __P1IFG = 0x23 + 0x0000000000000024 __P1IES = 0x24 + 0x0000000000000025 __P1IE = 0x25 + 0x0000000000000026 __P1SEL = 0x26 + 0x0000000000000041 __P1SEL2 = 0x41 + 0x0000000000000027 __P1REN = 0x27 + 0x0000000000000028 __P2IN = 0x28 + 0x0000000000000029 __P2OUT = 0x29 + 0x000000000000002a __P2DIR = 0x2a + 0x000000000000002b __P2IFG = 0x2b + 0x000000000000002c __P2IES = 0x2c + 0x000000000000002d __P2IE = 0x2d + 0x000000000000002e __P2SEL = 0x2e + 0x0000000000000042 __P2SEL2 = 0x42 + 0x000000000000002f __P2REN = 0x2f + 0x0000000000000018 __P3IN = 0x18 + 0x0000000000000019 __P3OUT = 0x19 + 0x000000000000001a __P3DIR = 0x1a + 0x000000000000001b __P3SEL = 0x1b + 0x0000000000000043 __P3SEL2 = 0x43 + 0x0000000000000010 __P3REN = 0x10 + 0x000000000000012e __TA0IV = 0x12e + 0x0000000000000160 __TA0CTL = 0x160 + 0x0000000000000162 __TA0CCTL0 = 0x162 + 0x0000000000000164 __TA0CCTL1 = 0x164 + 0x0000000000000166 __TA0CCTL2 = 0x166 + 0x0000000000000170 __TA0R = 0x170 + 0x0000000000000172 __TA0CCR0 = 0x172 + 0x0000000000000174 __TA0CCR1 = 0x174 + 0x0000000000000176 __TA0CCR2 = 0x176 + 0x000000000000011e __TA1IV = 0x11e + 0x0000000000000180 __TA1CTL = 0x180 + 0x0000000000000182 __TA1CCTL0 = 0x182 + 0x0000000000000184 __TA1CCTL1 = 0x184 + 0x0000000000000186 __TA1CCTL2 = 0x186 + 0x0000000000000190 __TA1R = 0x190 + 0x0000000000000192 __TA1CCR0 = 0x192 + 0x0000000000000194 __TA1CCR1 = 0x194 + 0x0000000000000196 __TA1CCR2 = 0x196 + 0x0000000000000060 __UCA0CTL0 = 0x60 + 0x0000000000000061 __UCA0CTL1 = 0x61 + 0x0000000000000062 __UCA0BR0 = 0x62 + 0x0000000000000063 __UCA0BR1 = 0x63 + 0x0000000000000064 __UCA0MCTL = 0x64 + 0x0000000000000065 __UCA0STAT = 0x65 + 0x0000000000000066 __UCA0RXBUF = 0x66 + 0x0000000000000067 __UCA0TXBUF = 0x67 + 0x000000000000005d __UCA0ABCTL = 0x5d + 0x000000000000005e __UCA0IRTCTL = 0x5e + 0x000000000000005f __UCA0IRRCTL = 0x5f + 0x0000000000000068 __UCB0CTL0 = 0x68 + 0x0000000000000069 __UCB0CTL1 = 0x69 + 0x000000000000006a __UCB0BR0 = 0x6a + 0x000000000000006b __UCB0BR1 = 0x6b + 0x000000000000006c __UCB0I2CIE = 0x6c + 0x000000000000006d __UCB0STAT = 0x6d + 0x000000000000006e __UCB0RXBUF = 0x6e + 0x000000000000006f __UCB0TXBUF = 0x6f + 0x0000000000000118 __UCB0I2COA = 0x118 + 0x000000000000011a __UCB0I2CSA = 0x11a + 0x0000000000000120 __WDTCTL = 0x120 + 0x00000000000010f8 __CALDCO_16MHZ = 0x10f8 + 0x00000000000010f9 __CALBC1_16MHZ = 0x10f9 + 0x00000000000010fa __CALDCO_12MHZ = 0x10fa + 0x00000000000010fb __CALBC1_12MHZ = 0x10fb + 0x00000000000010fc __CALDCO_8MHZ = 0x10fc + 0x00000000000010fd __CALBC1_8MHZ = 0x10fd + 0x00000000000010fe __CALDCO_1MHZ = 0x10fe + 0x00000000000010ff __CALBC1_1MHZ = 0x10ff + +.hash + *(.hash) + +.dynsym + *(.dynsym) + +.dynstr + *(.dynstr) + +.gnu.version + *(.gnu.version) + +.gnu.version_d + *(.gnu.version_d) + +.gnu.version_r + *(.gnu.version_r) + +.rel.init + *(.rel.init) + +.rela.init + *(.rela.init) + +.rel.fini + *(.rel.fini) + +.rela.fini + *(.rela.fini) + +.rel.text + *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) + +.rela.text + *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) + +.rel.rodata + *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) + +.rela.rodata + *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) + +.rel.data + *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) + +.rela.data + *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) + +.rel.bss + *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) + +.rela.bss + *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) + +.rel.ctors + *(.rel.ctors) + +.rela.ctors + *(.rela.ctors) + +.rel.dtors + *(.rel.dtors) + +.rela.dtors + *(.rela.dtors) + +.rel.got + *(.rel.got) + +.rela.got + *(.rela.got) + +.rel.plt + *(.rel.plt) + +.rela.plt + *(.rela.plt) + +.text 0x000000000000c000 0x676 + 0x000000000000c000 . = ALIGN (0x2) + *(.init .init.*) + *(.init0) + .init0 0x000000000000c000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o) + 0x000000000000c000 _reset_vector__ + *(.init1) + .init1 0x000000000000c000 0xc /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o) + 0x000000000000c000 __watchdog_support + *(.init2) + .init2 0x000000000000c00c 0x4 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__init_stack.o) + 0x000000000000c00c __init_stack + *(.init3) + .init3 0x000000000000c010 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__low_level_init.o) + 0x000000000000c010 __low_level_init + *(.init4) + .init4 0x000000000000c010 0x18 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_copy_data.o) + 0x000000000000c010 __do_copy_data + .init4 0x000000000000c028 0x16 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_clear_bss.o) + 0x000000000000c028 __do_clear_bss + *(.init5) + *(.init6) + *(.init7) + *(.init8) + *(.init9) + .init9 0x000000000000c03e 0xc Output/FirstApp-Prog.obj + 0x000000000000c03e main + *(.fini9) + .fini9 0x000000000000c04a 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__stop_progExec__.o) + 0x000000000000c04a __stop_progExec__ + *(.fini8) + *(.fini7) + *(.fini6) + *(.fini5) + *(.fini4) + *(.fini3) + *(.fini2) + *(.fini1) + *(.fini0) + .fini0 0x000000000000c04a 0x6 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_endless_loop__.o) + 0x000000000000c04a _endless_loop__ + *(.fini .fini.*) + 0x000000000000c050 . = ALIGN (0x2) + 0x000000000000c050 __ctors_start = . + *(.ctors) + 0x000000000000c050 __ctors_end = . + 0x000000000000c050 __dtors_start = . + *(.dtors) + 0x000000000000c050 __dtors_end = . + 0x000000000000c050 . = ALIGN (0x2) + *(.text .text.* .gnu.linkonce.t.*) + .text 0x000000000000c050 0x4 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/crt0ivtbl16.o + 0x000000000000c050 __isr_1 + 0x000000000000c050 __isr_4 + 0x000000000000c050 __isr_11 + 0x000000000000c050 __isr_5 + 0x000000000000c050 __isr_10 + 0x000000000000c050 __isr_0 + 0x000000000000c050 __isr_8 + 0x000000000000c050 __isr_9 + 0x000000000000c050 __isr_6 + 0x000000000000c050 __isr_14 + .text.FirstApp_connectHandler + 0x000000000000c054 0x6 Output/FirstApp-Prog.obj + 0x000000000000c054 FirstApp_connectHandler + .text.FirstApp_disconnectHandler + 0x000000000000c05a 0x6 Output/FirstApp-Prog.obj + 0x000000000000c05a FirstApp_disconnectHandler + .text.FirstApp_data_fetch + 0x000000000000c060 0x8 Output/FirstApp-Prog.obj + 0x000000000000c060 FirstApp_data_fetch + .text.FirstApp_data_store + 0x000000000000c068 0x6 Output/FirstApp-Prog.obj + 0x000000000000c068 FirstApp_data_store + .text.FirstApp_reset + 0x000000000000c06e 0x3a Output/FirstApp.obj + 0x000000000000c06e FirstApp_reset + .text.FirstApp_start + 0x000000000000c0a8 0xa Output/FirstApp.obj + 0x000000000000c0a8 FirstApp_start + .text.Em_Message_restart + 0x000000000000c0b2 0x6 Output/FirstApp.obj + 0x000000000000c0b2 Em_Message_restart + .text.Em_App_startResSend + 0x000000000000c0b8 0x1a Output/FirstApp.obj + 0x000000000000c0b8 Em_App_startResSend + .text.Em_Message_nextXmit + 0x000000000000c0d2 0x4a Output/FirstApp.obj + 0x000000000000c0d2 Em_Message_nextXmit + .text.Em_App_xmitReady + 0x000000000000c11c 0x72 Output/FirstApp.obj + 0x000000000000c11c Em_App_xmitReady + .text.Em_App_sendResponse + 0x000000000000c18e 0x26 Output/FirstApp.obj + 0x000000000000c18e Em_App_sendResponse + .text.Em_App_sysStoreDispatch + 0x000000000000c1b4 0x1a Output/FirstApp.obj + 0x000000000000c1b4 Em_App_sysStoreDispatch + .text.Em_App_sysFetchDispatch + 0x000000000000c1ce 0xda Output/FirstApp.obj + 0x000000000000c1ce Em_App_sysFetchDispatch + .text.Em_App_fetchDispatch + 0x000000000000c2a8 0x22 Output/FirstApp.obj + 0x000000000000c2a8 Em_App_fetchDispatch + .text.Em_App_storeDispatch + 0x000000000000c2ca 0x18 Output/FirstApp.obj + 0x000000000000c2ca Em_App_storeDispatch + .text.Em_Message_dispatch + 0x000000000000c2e2 0x60 Output/FirstApp.obj + 0x000000000000c2e2 Em_Message_dispatch + .text.Hal_connected + 0x000000000000c342 0x6 Output/Hal.obj + 0x000000000000c342 Hal_connected + .text.Hal_disconnected + 0x000000000000c348 0x8 Output/Hal.obj + 0x000000000000c348 Hal_disconnected + .text.Hal_init + 0x000000000000c350 0xd0 Output/Hal.obj + 0x000000000000c350 Hal_init + .text.Hal_idleLoop + 0x000000000000c420 0x40 Output/Hal.obj + 0x000000000000c420 Hal_idleLoop + .text.Em_Hal_lock + 0x000000000000c460 0xa Output/Hal.obj + 0x000000000000c460 Em_Hal_lock + .text.Em_Hal_reset + 0x000000000000c46a 0x56 Output/Hal.obj + 0x000000000000c46a Em_Hal_reset + .text.Em_Hal_startSend + 0x000000000000c4c0 0x32 Output/Hal.obj + 0x000000000000c4c0 Em_Hal_startSend + .text.Em_Hal_unlock + 0x000000000000c4f2 0x6 Output/Hal.obj + 0x000000000000c4f2 Em_Hal_unlock + .text.buttonIsr + 0x000000000000c4f8 0x2c Output/Hal.obj + 0x000000000000c4f8 __isr_2 + 0x000000000000c4f8 buttonIsr + .text.rxIsr 0x000000000000c524 0x9a Output/Hal.obj + 0x000000000000c524 rxIsr + 0x000000000000c524 __isr_7 + .text.timerIsr + 0x000000000000c5be 0x28 Output/Hal.obj + 0x000000000000c5be timerIsr + 0x000000000000c5be __isr_13 + .text.txAckIsr + 0x000000000000c5e6 0x66 Output/Hal.obj + 0x000000000000c5e6 txAckIsr + 0x000000000000c5e6 __isr_3 + .text.uartWatchdogIsr + 0x000000000000c64c 0x28 Output/Hal.obj + 0x000000000000c64c uartWatchdogIsr + 0x000000000000c64c __isr_12 + .text.crt0 0x000000000000c674 0x2 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_unexpected_.o) + 0x000000000000c674 _unexpected_ + 0x000000000000c676 . = ALIGN (0x2) + +.rodata 0x000000000000c676 0x46 + 0x000000000000c676 . = ALIGN (0x2) + *(.rodata .rodata.* .gnu.linkonce.r.*) + .rodata.Em_App_sysFetchDispatch + 0x000000000000c676 0x12 Output/FirstApp.obj + .rodata.Em_Message_dispatch + 0x000000000000c688 0x16 Output/FirstApp.obj + .rodata.Em_App_endian + 0x000000000000c69e 0x2 Output/FirstApp.obj + 0x000000000000c69e Em_App_endian + .rodata.Em_App_build + 0x000000000000c6a0 0x8 Output/FirstApp.obj + 0x000000000000c6a0 Em_App_build + .rodata.Em_App_hash + 0x000000000000c6a8 0x13 Output/FirstApp.obj + 0x000000000000c6a8 Em_App_hash + 0x000000000000c6bc . = ALIGN (0x2) + *fill* 0x000000000000c6bb 0x1 00 + 0x000000000000c6bc _etext = . + +.data 0x0000000000000200 0x4 load address 0x000000000000c6bc + 0x0000000000000200 . = ALIGN (0x2) + 0x0000000000000200 PROVIDE (__data_start, .) + *(.data .data.* .gnu.linkonce.d.*) + .data.dataVal 0x0000000000000200 0x2 Output/FirstApp-Prog.obj + .data.Em_App_inBuf + 0x0000000000000202 0x2 Output/FirstApp.obj + 0x0000000000000202 Em_App_inBuf + 0x0000000000000204 . = ALIGN (0x2) + 0x0000000000000204 _edata = . + 0x000000000000c6bc PROVIDE (__data_load_start, LOADADDR (.data)) + 0x0000000000000004 PROVIDE (__data_size, SIZEOF (.data)) + +.bss 0x0000000000000204 0x56 load address 0x000000000000c6c0 + 0x0000000000000204 PROVIDE (__bss_start, .) + *(.bss .bss.*) + .bss.Em_App_devName + 0x0000000000000204 0x2 Output/FirstApp.obj + 0x0000000000000204 Em_App_devName + .bss._Em_Message_txCnt + 0x0000000000000206 0x1 Output/FirstApp.obj + 0x0000000000000206 _Em_Message_txCnt + *fill* 0x0000000000000207 0x1 00 + .bss._Em_Message_txBuf + 0x0000000000000208 0x2 Output/FirstApp.obj + 0x0000000000000208 _Em_Message_txBuf + .bss._Em_Message_rxCnt + 0x000000000000020a 0x1 Output/FirstApp.obj + 0x000000000000020a _Em_Message_rxCnt + *fill* 0x000000000000020b 0x1 00 + .bss._Em_Message_rxBuf + 0x000000000000020c 0x2 Output/FirstApp.obj + 0x000000000000020c _Em_Message_rxBuf + .bss.Em_App_outBuf + 0x000000000000020e 0x2 Output/FirstApp.obj + 0x000000000000020e Em_App_outBuf + .bss.Em_App_xmitMask + 0x0000000000000210 0x4 Output/FirstApp.obj + 0x0000000000000210 Em_App_xmitMask + .bss.Em_App_fileIndex + 0x0000000000000214 0x4 Output/FirstApp.obj + 0x0000000000000214 Em_App_fileIndex + .bss.Em_App_state + 0x0000000000000218 0x1 Output/FirstApp.obj + 0x0000000000000218 Em_App_state + *fill* 0x0000000000000219 0x1 00 + .bss.handlerEvents + 0x000000000000021a 0x2 Output/Hal.obj + .bss.handlerTab + 0x000000000000021c 0x6 Output/Hal.obj + .bss.clockTick + 0x0000000000000222 0x2 Output/Hal.obj + *(COMMON) + COMMON 0x0000000000000224 0x36 Output/FirstApp.obj + 0x0000000000000224 Em_App_recvIdx + 0x0000000000000225 Em_App_xmitSize + 0x0000000000000226 Em_App_valp + 0x0000000000000228 Em_App_ind_u + 0x0000000000000234 Em_App_recvSize + 0x0000000000000236 Em_App_msg_u + 0x0000000000000252 Em_App_pdHdlr + 0x0000000000000254 Em_App_bufp + 0x0000000000000256 Em_App_xmitIdx + 0x0000000000000258 Em_App_desc + 0x000000000000025a . = ALIGN (0x2) + 0x000000000000025a PROVIDE (__bss_end, .) + 0x0000000000000056 PROVIDE (__bss_size, SIZEOF (.bss)) + +.noinit 0x000000000000025a 0x2 load address 0x000000000000c6c0 + 0x000000000000025a PROVIDE (__noinit_start, .) + *(.noinit .noinit.*) + .noinit.crt0 0x000000000000025a 0x2 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o) + 0x000000000000025a __wdt_clear_value + 0x000000000000025c . = ALIGN (0x2) + 0x000000000000025c PROVIDE (__noinit_end, .) + 0x000000000000025c . = ALIGN (0x2) + 0x000000000000025c _end = . + +.infomem 0x0000000000001000 0x0 + *(.infomem) + 0x0000000000001000 . = ALIGN (0x2) + *(.infomem.*) + +.infomemnobits 0x0000000000001000 0x0 + *(.infomemnobits) + 0x0000000000001000 . = ALIGN (0x2) + *(.infomemnobits.*) + +.infoa + *(.infoa .infoa.*) + +.infob + *(.infob .infob.*) + +.infoc + *(.infoc .infoc.*) + +.infod + *(.infod .infod.*) + +.vectors 0x000000000000ffe0 0x20 + 0x000000000000ffe0 PROVIDE (__vectors_start, .) + *(.vectors*) + .vectors 0x000000000000ffe0 0x20 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/crt0ivtbl16.o + 0x000000000000ffe0 __ivtbl_16 + 0x0000000000010000 _vectors_end = . + +.fartext 0x0000000000000000 0x0 + 0x0000000000000000 . = ALIGN (0x2) + *(.fartext) + 0x0000000000000000 . = ALIGN (0x2) + *(.fartext.*) + 0x0000000000000000 _efartext = . + +.profiler + *(.profiler) + +.stab + *(.stab) + +.stabstr + *(.stabstr) + +.stab.excl + *(.stab.excl) + +.stab.exclstr + *(.stab.exclstr) + +.stab.index + *(.stab.index) + +.stab.indexstr + *(.stab.indexstr) + +.comment + *(.comment) + +.debug + *(.debug) + +.line + *(.line) + +.debug_srcinfo + *(.debug_srcinfo) + +.debug_sfnames + *(.debug_sfnames) + +.debug_aranges 0x0000000000000000 0x180 + *(.debug_aranges) + .debug_aranges + 0x0000000000000000 0x24 Output/FirstApp-Prog.obj + .debug_aranges + 0x0000000000000024 0x6c Output/FirstApp.obj + .debug_aranges + 0x0000000000000090 0x78 Output/Hal.obj + .debug_aranges + 0x0000000000000108 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o) + .debug_aranges + 0x000000000000011c 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__init_stack.o) + .debug_aranges + 0x0000000000000130 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_copy_data.o) + .debug_aranges + 0x0000000000000144 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_clear_bss.o) + .debug_aranges + 0x0000000000000158 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_endless_loop__.o) + .debug_aranges + 0x000000000000016c 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_unexpected_.o) + +.debug_pubnames + *(.debug_pubnames) + +.debug_info 0x0000000000000000 0x1a82 + *(.debug_info) + .debug_info 0x0000000000000000 0x1ce Output/FirstApp-Prog.obj + .debug_info 0x00000000000001ce 0x8e2 Output/FirstApp.obj + .debug_info 0x0000000000000ab0 0xc78 Output/Hal.obj + .debug_info 0x0000000000001728 0x8f /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o) + .debug_info 0x00000000000017b7 0x8f /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__init_stack.o) + .debug_info 0x0000000000001846 0x8f /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_copy_data.o) + .debug_info 0x00000000000018d5 0x8f /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_clear_bss.o) + .debug_info 0x0000000000001964 0x8f /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_endless_loop__.o) + .debug_info 0x00000000000019f3 0x8f /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_unexpected_.o) + *(.gnu.linkonce.wi.*) + +.debug_abbrev 0x0000000000000000 0x6d2 + *(.debug_abbrev) + .debug_abbrev 0x0000000000000000 0xb0 Output/FirstApp-Prog.obj + .debug_abbrev 0x00000000000000b0 0x250 Output/FirstApp.obj + .debug_abbrev 0x0000000000000300 0x35a Output/Hal.obj + .debug_abbrev 0x000000000000065a 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o) + .debug_abbrev 0x000000000000066e 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__init_stack.o) + .debug_abbrev 0x0000000000000682 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_copy_data.o) + .debug_abbrev 0x0000000000000696 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_clear_bss.o) + .debug_abbrev 0x00000000000006aa 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_endless_loop__.o) + .debug_abbrev 0x00000000000006be 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_unexpected_.o) + +.debug_line 0x0000000000000000 0xac7 + *(.debug_line) + .debug_line 0x0000000000000000 0x120 Output/FirstApp-Prog.obj + .debug_line 0x0000000000000120 0x34f Output/FirstApp.obj + .debug_line 0x000000000000046f 0x3a9 Output/Hal.obj + .debug_line 0x0000000000000818 0x72 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o) + .debug_line 0x000000000000088a 0x70 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__init_stack.o) + .debug_line 0x00000000000008fa 0x76 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_copy_data.o) + .debug_line 0x0000000000000970 0x76 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_clear_bss.o) + .debug_line 0x00000000000009e6 0x71 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_endless_loop__.o) + .debug_line 0x0000000000000a57 0x70 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_unexpected_.o) + +.debug_frame 0x0000000000000000 0x35c + *(.debug_frame) + .debug_frame 0x0000000000000000 0x4e Output/FirstApp-Prog.obj + .debug_frame 0x000000000000004e 0x16e Output/FirstApp.obj + .debug_frame 0x00000000000001bc 0x1a0 Output/Hal.obj + +.debug_str 0x0000000000000000 0x8d7 + *(.debug_str) + .debug_str 0x0000000000000000 0x194 Output/FirstApp-Prog.obj + 0x1d0 (size before relaxing) + .debug_str 0x0000000000000194 0x3dc Output/FirstApp.obj + 0x521 (size before relaxing) + .debug_str 0x0000000000000570 0x367 Output/Hal.obj + 0x5a8 (size before relaxing) + +.debug_loc 0x0000000000000000 0x597 + *(.debug_loc) + .debug_loc 0x0000000000000000 0x3b2 Output/FirstApp.obj + .debug_loc 0x00000000000003b2 0x1e5 Output/Hal.obj + +.debug_macinfo + *(.debug_macinfo) + +.debug_pubtypes + *(.debug_pubtypes) + +.debug_ranges 0x0000000000000000 0x190 + *(.debug_ranges) + .debug_ranges 0x0000000000000000 0x18 Output/FirstApp-Prog.obj + .debug_ranges 0x0000000000000018 0x6c Output/FirstApp.obj + .debug_ranges 0x0000000000000084 0x10c Output/Hal.obj + 0x0000000000000400 PROVIDE (__stack, (ORIGIN (ram) + 0x200)) + 0x000000000000c6bc PROVIDE (__data_start_rom, _etext) + 0x000000000000c6c0 PROVIDE (__data_end_rom, (_etext + SIZEOF (.data))) +OUTPUT(Output/FirstApp-Prog.out elf32-msp430) diff --git a/FirstApp-MSP-EXP430G2/Output/FirstApp-Prog.obj b/FirstApp-MSP-EXP430G2/Output/FirstApp-Prog.obj new file mode 100644 index 0000000..fa49903 --- /dev/null +++ b/FirstApp-MSP-EXP430G2/Output/FirstApp-Prog.obj diff --git a/FirstApp-MSP-EXP430G2/Output/FirstApp-Prog.out b/FirstApp-MSP-EXP430G2/Output/FirstApp-Prog.out new file mode 100755 index 0000000..aa514f2 --- /dev/null +++ b/FirstApp-MSP-EXP430G2/Output/FirstApp-Prog.out diff --git a/FirstApp-MSP-EXP430G2/Output/FirstApp.obj b/FirstApp-MSP-EXP430G2/Output/FirstApp.obj new file mode 100644 index 0000000..3fc4e74 --- /dev/null +++ b/FirstApp-MSP-EXP430G2/Output/FirstApp.obj diff --git a/FirstApp-MSP-EXP430G2/Output/Hal.obj b/FirstApp-MSP-EXP430G2/Output/Hal.obj new file mode 100644 index 0000000..79a6af3 --- /dev/null +++ b/FirstApp-MSP-EXP430G2/Output/Hal.obj diff --git a/FirstApp-MSP-EXP430G2/Schema-Imports/system@emmoco.com/System.ems b/FirstApp-MSP-EXP430G2/Schema-Imports/system@emmoco.com/System.ems new file mode 100644 index 0000000..9601635 --- /dev/null +++ b/FirstApp-MSP-EXP430G2/Schema-Imports/system@emmoco.com/System.ems @@ -0,0 +1,72 @@ +owner = "system@emmoco.com" + +schema System { + + // protocolLevel #13 + + enum ParameterGroup { + GROUP_A, GROUP_B + } + + // protocolLevel #1 + + uint8 $schemaUuid[16] { // protocolLevel #10 -- invisible to applications + readonly + } + + uint16 $mcmProtocolLevel { + readonly + } + + uint16 $eapProtocolLevel { + readonly + } + + uint8 $eapBuildDate[8] { // protocolLevel #5 -- rename from $eapBuildNumber + readonly + } + + // protocolLevel #2 + + int16 $fileIndexReset { + writeonly + } + + // protocolLevel #5 + + // protocolLevel #12 -- increase size to 20 + + uint8 $schemaHash[20] { + readonly + } + + // protocolLevel #7 + + struct ResourceCount { + uint8 app + uint8 sys + } + + ResourceCount $resourceCount { + readonly + } + + // protocolLevel #9 + + int8 $mobileRssi { + readonly + } + + // protocolLevel #11 + + uint8 $mcmDisconnect { + writeonly + } + + // protocolLevel #13 + + ParameterGroup $activeGroup { + readwrite + } + +} diff --git a/FirstApp-MSP-EXP430G2/bundle.properties b/FirstApp-MSP-EXP430G2/bundle.properties new file mode 100644 index 0000000..9827e58 --- /dev/null +++ b/FirstApp-MSP-EXP430G2/bundle.properties @@ -0,0 +1,10 @@ +# generated file - do not edit + +bundle.requires = com.emmoco.schema.translator +com.emmoco.framework.Properties.applicationDirectory = Em +com.emmoco.framework.Properties.schemaDestinationDirectory = Em +com.emmoco.framework.Properties.serverAPIToken = +com.emmoco.framework.Properties.align16 = 2 +com.emmoco.framework.Properties.align32 = 4 +com.emmoco.framework.Properties.schemaFile = /Users/imanol/devel/em-builder/FirstApp-MSP-EXP430G2/FirstApp.ems +com.emmoco.framework.Properties.toolVersion = 13.4.1.201311121909 diff --git a/FirstApp-MSP-EXP430G2/makefile b/FirstApp-MSP-EXP430G2/makefile new file mode 100644 index 0000000..9287b7d --- /dev/null +++ b/FirstApp-MSP-EXP430G2/makefile @@ -0,0 +1,4 @@ +APPNAME = FirstApp +PLATFORM = ../Platform-MSP-EXP430G2 + +include $(PLATFORM)/rules.mk