diff --git a/DUREX/.project b/DUREX/.project
new file mode 100644
index 0000000..2fa624d
--- /dev/null
+++ b/DUREX/.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/DUREX/DUREX-Prog.c b/DUREX/DUREX-Prog.c
new file mode 100644
index 0000000..793c162
--- /dev/null
+++ b/DUREX/DUREX-Prog.c
@@ -0,0 +1,92 @@
+#include "DUREX.h"
+#include "Hal.h"
+
+DUREX_numBytes_t numBytes = 0;
+DUREX_data_t data = "";
+DUREX_numPackets_t numPackets = 0;
+DUREX_messageAvailable_t messageAvailable = 0;
+uint8_t lastMessageAck = 1;
+
+void main() {
+ Hal_init();
+ DUREX_start();
+ Hal_idleLoop();
+}
+
+/* -------- SCHEMA CALLBACKS -------- */
+
+void processMessage()
+{
+ if(!strcmp(data,"Hello"))
+ {
+ memcpy(data,"Hello",6);
+ numBytes = 6;
+ numPackets = 1;
+ }
+}
+
+void DUREX_connectHandler(void)
+{
+ Hal_connected();
+}
+
+void DUREX_disconnectHandler(void)
+{
+ Hal_disconnected();
+}
+
+void DUREX_numBytes_fetch(DUREX_numBytes_t* const output)
+{
+ *output = numBytes;
+}
+
+void DUREX_numBytes_store(DUREX_numBytes_t* const input)
+{
+ numBytes = *input;
+}
+
+void DUREX_data_fetch(DUREX_data_t output)
+{
+ memcpy(output,data,numBytes);
+}
+
+void DUREX_data_store(DUREX_data_t input)
+{
+ memcpy(data,input,numBytes);
+}
+
+void DUREX_numPackets_fetch(DUREX_numPackets_t* const output)
+{
+ *output = numPackets;
+}
+
+void DUREX_numPackets_store(DUREX_numPackets_t* const input)
+{
+ numPackets = *input;
+}
+
+void DUREX_messageAvailable_fetch(DUREX_messageAvailable_t* const output)
+{
+ *output = messageAvailable;
+}
+
+void DUREX_messageAvailable_store(DUREX_messageAvailable_t* const input)
+{
+ messageAvailable = *input;
+ if(messageAvailable == DUREX_TRUE)
+ {
+ led1_on();
+ lastMessageAck = 0;
+ messageAvailable = DUREX_FALSE;
+ DUREX_messageAvailable_indicate();
+ processMessage();
+ messageAvailable = DUREX_TRUE;
+ DUREX_messageAvailable_indicate();
+ }
+ else if(messageAvailable == DUREX_FALSE)
+ {
+ led1_off();
+ lastMessageAck = 1;
+ }
+}
+
diff --git a/DUREX/DUREX.ems b/DUREX/DUREX.ems
new file mode 100644
index 0000000..2afb32e
--- /dev/null
+++ b/DUREX/DUREX.ems
@@ -0,0 +1,16 @@
+version = "1.0.0"
+description = ""
+
+schema DUREX
+{
+ enum BOOLEAN{ TRUE, FALSE };
+ typedef string<200> String; //MAXIMUM SIZE AVAILABLE
+
+ uint8 numBytes;
+ String data;
+ uint8 numPackets;
+ BOOLEAN messageAvailable
+ {
+ indicator
+ }
+}
diff --git a/DUREX/Em/DUREX-STUBS.c b/DUREX/Em/DUREX-STUBS.c
new file mode 100644
index 0000000..b8409fc
--- /dev/null
+++ b/DUREX/Em/DUREX-STUBS.c
@@ -0,0 +1,46 @@
+/**** DO NOT EDIT -- this file has been automatically generated from @emmoco.com.DUREX on 2014-07-30T17:03:27T ****/
+/**** protocolLevel = 13, toolsVersion = 13.4.1.201311121909 ****/
+
+#include "DUREX.h"
+
+#ifdef DUREX_STUBS_ /* enables optional inclusion of application stubs */
+
+/* Copy the function skeletons below into your own application source file */
+
+void DUREX_connectHandler(void) {
+ /* TODO: application is now connected */
+}
+
+void DUREX_disconnectHandler(void) {
+ /* TODO: application is now disconnected */
+}
+
+void DUREX_numBytes_fetch(DUREX_numBytes_t* output) {
+ /* TODO: read resource 'numBytes' into 'output' */
+}
+
+void DUREX_numBytes_store(DUREX_numBytes_t* input) {
+ /* TODO: write resource 'numBytes' from 'input' */
+}
+
+void DUREX_data_fetch(DUREX_data_t output) {
+ /* TODO: read resource 'data' into 'output' */
+}
+
+void DUREX_data_store(DUREX_data_t input) {
+ /* TODO: write resource 'data' from 'input' */
+}
+
+void DUREX_numPackets_fetch(DUREX_numPackets_t* output) {
+ /* TODO: read resource 'numPackets' into 'output' */
+}
+
+void DUREX_numPackets_store(DUREX_numPackets_t* input) {
+ /* TODO: write resource 'numPackets' from 'input' */
+}
+
+void DUREX_messageAvailable_fetch(DUREX_messageAvailable_t* output) {
+ /* TODO: read resource 'messageAvailable' into 'output' */
+}
+
+#endif /* application stubs */
diff --git a/DUREX/Em/DUREX.c b/DUREX/Em/DUREX.c
new file mode 100644
index 0000000..be37168
--- /dev/null
+++ b/DUREX/Em/DUREX.c
@@ -0,0 +1,540 @@
+/**** DO NOT EDIT -- this file has been automatically generated from @emmoco.com.DUREX on 2014-07-30T17:03:27T ****/
+/**** protocolLevel = 13, toolsVersion = 13.4.1.201311121909 ****/
+
+#include "Em_Message.h"
+#include "DUREX.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[201];
+} Em_App_Message;
+
+const uint8_t Em_App_hash[] = {0, 164, 192, 32, 22, 163, 114, 239, 91, 240, 123, 128, 206, 12, 50, 148, 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[] = {171, 30, 204, 135, 71, 1, 0, 0};
+
+#define Em_App_APP_RESOURCE_COUNT 4
+#define Em_App_SYS_RESOURCE_COUNT 9
+
+#define Em_App_ACCEPT DUREX_accept
+#define Em_App_ACTIVATEPARAMETERS DUREX_activateParameters
+#define Em_App_BROADCASTOFF DUREX_broadcastOff
+#define Em_App_DISCONNECT DUREX_disconnect
+#define Em_App_PAIRINGON DUREX_pairingOn
+#define Em_App_PAIRINGOFF DUREX_pairingOff
+#define Em_App_RESET DUREX_reset
+#define Em_App_SETDEVICENAME DUREX_setDeviceName
+#define Em_App_START DUREX_start
+
+#define Em_App_CONNECTHANDLER DUREX_connectHandler
+#define Em_App_DISCONNECTHANDLER DUREX_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 1: {
+#ifdef Em_16BIT
+ DUREX_numBytes_t val;
+ Em_App_valp = (uint8_t*)&val;
+ Em_App_bufp = Em_App_msg.data;
+ Em_App_desc = "1";
+ DUREX_numBytes_fetch(&val);
+ Em_App_marshallToBuf();
+#else
+ DUREX_numBytes_fetch((void*)Em_App_msg.data);
+#endif
+ size = 1;
+ break;
+ }
+ case 2: {
+#ifdef Em_16BIT
+ DUREX_data_t val;
+ Em_App_valp = (uint8_t*)&val;
+ Em_App_bufp = Em_App_msg.data;
+ Em_App_desc = "*\xc9[1]";
+ DUREX_data_fetch(&val);
+ Em_App_marshallToBuf();
+#else
+ DUREX_data_fetch((void*)Em_App_msg.data);
+#endif
+ size = 201;
+ break;
+ }
+ case 3: {
+#ifdef Em_16BIT
+ DUREX_numPackets_t val;
+ Em_App_valp = (uint8_t*)&val;
+ Em_App_bufp = Em_App_msg.data;
+ Em_App_desc = "1";
+ DUREX_numPackets_fetch(&val);
+ Em_App_marshallToBuf();
+#else
+ DUREX_numPackets_fetch((void*)Em_App_msg.data);
+#endif
+ size = 1;
+ break;
+ }
+ case 4: {
+#ifdef Em_16BIT
+ DUREX_messageAvailable_t val;
+ Em_App_valp = (uint8_t*)&val;
+ Em_App_bufp = Em_App_msg.data;
+ Em_App_desc = "1";
+ DUREX_messageAvailable_fetch(&val);
+ Em_App_marshallToBuf();
+#else
+ DUREX_messageAvailable_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
+ DUREX_numBytes_t val;
+ Em_App_valp = (uint8_t*)&val;
+ Em_App_bufp = Em_App_msg.data;
+ Em_App_desc = "1";
+ Em_App_marshallToVal();
+ DUREX_numBytes_store(&val);
+#else
+ DUREX_numBytes_store((void*)Em_App_msg.data);
+#endif
+ break;
+ }
+ case 2: {
+#ifdef Em_16BIT
+ DUREX_data_t val;
+ Em_App_valp = (uint8_t*)&val;
+ Em_App_bufp = Em_App_msg.data;
+ Em_App_desc = "*\xc9[1]";
+ Em_App_marshallToVal();
+ DUREX_data_store(&val);
+#else
+ DUREX_data_store((void*)Em_App_msg.data);
+#endif
+ break;
+ }
+ case 3: {
+#ifdef Em_16BIT
+ DUREX_numPackets_t val;
+ Em_App_valp = (uint8_t*)&val;
+ Em_App_bufp = Em_App_msg.data;
+ Em_App_desc = "1";
+ Em_App_marshallToVal();
+ DUREX_numPackets_store(&val);
+#else
+ DUREX_numPackets_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
+ DUREX_messageAvailable_t val;
+ Em_App_valp = (uint8_t*)&val;
+ Em_App_bufp = Em_App_ind.data;
+ Em_App_desc = "1";
+ DUREX_messageAvailable_fetch(&val);
+ Em_App_marshallToBuf();
+#else
+ DUREX_messageAvailable_fetch((DUREX_messageAvailable_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 DUREX_messageAvailable_indicate(void) {
+ if (Em_App_state == Em_App_CONNECTED && Em_App_xmitReady(1 + 1)) Em_App_sendIndicator(1);
+}
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/DUREX/Em/DUREX.h b/DUREX/Em/DUREX.h
new file mode 100644
index 0000000..4963a1a
--- /dev/null
+++ b/DUREX/Em/DUREX.h
@@ -0,0 +1,68 @@
+/**** DO NOT EDIT -- this file has been automatically generated from @emmoco.com.DUREX on 2014-07-30T17:03:27T ****/
+/**** protocolLevel = 13, toolsVersion = 13.4.1.201311121909 ****/
+
+#ifndef DUREX__H
+#define DUREX__H
+
+#include "Em_Types.h"
+#include "Em_Message.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* -------- connection callback functions implemented by the application -------- */
+
+void DUREX_connectHandler(void);
+void DUREX_disconnectHandler(void);
+
+/* -------- resource types defined in the schema -------- */
+
+/* typedef String */
+typedef char DUREX_String[201];
+#define DUREX_String_length 201
+
+/* enum BOOLEAN */
+typedef uint8_t DUREX_BOOLEAN;
+#define DUREX_TRUE 0
+#define DUREX_FALSE 1
+
+/* -------- resource callback functions implemented by the application -------- */
+
+/* resource numBytes */
+typedef uint8_t DUREX_numBytes_t;
+extern void DUREX_numBytes_fetch(DUREX_numBytes_t* output);
+extern void DUREX_numBytes_store(DUREX_numBytes_t* input);
+
+/* resource data */
+typedef DUREX_String DUREX_data_t;
+extern void DUREX_data_fetch(DUREX_data_t output);
+extern void DUREX_data_store(DUREX_data_t input);
+
+/* resource numPackets */
+typedef uint8_t DUREX_numPackets_t;
+extern void DUREX_numPackets_fetch(DUREX_numPackets_t* output);
+extern void DUREX_numPackets_store(DUREX_numPackets_t* input);
+
+/* resource messageAvailable */
+typedef DUREX_BOOLEAN DUREX_messageAvailable_t;
+extern void DUREX_messageAvailable_fetch(DUREX_messageAvailable_t* output);
+extern void DUREX_messageAvailable_indicate(void); /* called by the application */
+
+/* -------- application functions implemented in DUREX.c -------- */
+
+void DUREX_accept(bool enable);
+void DUREX_activateParameters(uint8_t group);
+void DUREX_broadcastOff(void);
+void DUREX_disconnect(void);
+void DUREX_pairingOn(uint8_t secs, void(*handler)(void));
+void DUREX_pairingOff(void(*handler)(void));
+void DUREX_reset(void);
+void DUREX_setDeviceName(const char* name);
+void DUREX_start(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* DUREX__H */
diff --git a/DUREX/Em/Em_Message.h b/DUREX/Em/Em_Message.h
new file mode 100644
index 0000000..3bd0d58
--- /dev/null
+++ b/DUREX/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/DUREX/Em/Em_Types.h b/DUREX/Em/Em_Types.h
new file mode 100644
index 0000000..d002306
--- /dev/null
+++ b/DUREX/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/DUREX/Em/durex.json b/DUREX/Em/durex.json
new file mode 100644
index 0000000..ff2a0ed
--- /dev/null
+++ b/DUREX/Em/durex.json
@@ -0,0 +1,247 @@
+{
+ "resources": {
+ "$eapProtocolLevel": {
+ "id": -3,
+ "align": 2,
+ "attributes": {"readonly": true},
+ "type": "u2",
+ "access": "r",
+ "size": 2
+ },
+ "numBytes": {
+ "id": 1,
+ "align": 1,
+ "attributes": {},
+ "type": "u1",
+ "access": "rw",
+ "size": 1
+ },
+ "data": {
+ "id": 2,
+ "align": 1,
+ "attributes": {},
+ "type": "C:201",
+ "access": "rw",
+ "size": 201
+ },
+ "$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
+ },
+ "numPackets": {
+ "id": 3,
+ "align": 1,
+ "attributes": {},
+ "type": "u1",
+ "access": "rw",
+ "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
+ },
+ "messageAvailable": {
+ "id": 4,
+ "align": 1,
+ "pack": 1,
+ "attributes": {"indicator": true},
+ "type": "E:@emmoco.com.DUREX/BOOLEAN",
+ "access": "ir",
+ "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
+ },
+ "$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": [
+ 0,
+ 164,
+ 192,
+ 32,
+ 22,
+ 163,
+ 114,
+ 239,
+ 91,
+ 240,
+ 123,
+ 128,
+ 206,
+ 12,
+ 50,
+ 148
+ ],
+ "toolVersion": "13.4.1.201311121909",
+ "name": "DUREX",
+ "$$md5": "00a4c02016a372ef5bf07b80ce0c3294",
+ "build": [
+ 171,
+ 30,
+ 204,
+ 135,
+ 71,
+ 1,
+ 0,
+ 0
+ ],
+ "date": "2014-07-30T17:03:27T",
+ "maxAlign": 2,
+ "maxSize": 201,
+ "version": "1.0.0"
+ },
+ "resourceNames": [
+ "numBytes",
+ "data",
+ "numPackets",
+ "messageAvailable",
+ "$mcmProtocolLevel",
+ "$eapProtocolLevel",
+ "$eapBuildDate",
+ "$fileIndexReset",
+ "$schemaHash",
+ "$resourceCount",
+ "$mobileRssi",
+ "$mcmDisconnect",
+ "$activeGroup"
+ ],
+ "attributes": {
+ "description": "",
+ "version": "1.0.0"
+ },
+ "resourceNamesApp": [
+ "numBytes",
+ "data",
+ "numPackets",
+ "messageAvailable"
+ ],
+ "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
+ },
+ "@emmoco.com.DUREX/BOOLEAN": {
+ "values": [
+ "TRUE",
+ "FALSE"
+ ],
+ "align": 1,
+ "pack": 1,
+ "type": "E:@emmoco.com.DUREX/BOOLEAN",
+ "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.DUREX": true}
+}
\ No newline at end of file
diff --git a/DUREX/Output/DUREX-Prog.hex b/DUREX/Output/DUREX-Prog.hex
new file mode 100644
index 0000000..3fe4b60
--- /dev/null
+++ b/DUREX/Output/DUREX-Prog.hex
@@ -0,0 +1,150 @@
+:10C000005542200135D0085A8245DA0331400004F8
+:10C010003F4002000F9308249242DA0320012F834D
+:10C020009F4FF4C80002F8233F40D8010F93072424
+:10C030009242DA0320011F83CF430202F923B01298
+:10C040008CC4B012DCC0B0125CC532D0F000FD3F31
+:10C050003040ACC8B0127EC43041B01284C430410C
+:10C06000DF42CD0200003041E24FCD0230415D425F
+:10C07000CD023E400402B012B0C730415D42CD0255
+:10C080000E4F3F400402B012B0C73041DF420302FE
+:10C0900000003041E24F03023041DF420202000063
+:10C0A0003041B012A6C58243D2028243D602C243B7
+:10C0B000D002C243D402C243EF02C243D603C243FA
+:10C0C000FE02C243EE02C243E2028243DE02824328
+:10C0D000E0028243DA028243DC023041B012A2C0A5
+:10C0E000D243E2023041B012DCC03041B240F5022E
+:10C0F000D8025F42F6025F53C24FEF02C243D6033B
+:10C10000B012FCC53041B2400303D8025F420403C1
+:10C110005F53C24FEF02C243D603B012FCC5304199
+:10C120000B120A1209120812484FB0129CC5494F4F
+:10C130001A42DA021B42DC028293D20224241E43FA
+:10C140004F487FF00F0018200C4E8E108E118E106D
+:10C150008E110D4E0E4A0F4B0EDC0FDD824EDA02B1
+:10C16000824FDC024A434F49B0122EC64F4A384133
+:10C1700039413A413B4130410E5E7F53E5270E5E27
+:10C180007F53FA23E13F0A93DA230B93D8235A43D0
+:10C19000EA3FC293E20201203041C2430303C24F8F
+:10C1A00005036E52C24E04034F43B01220C14F9399
+:10C1B000F327B01206C13041F290FBFF06030420C2
+:10C1C0008243DE028243E0024E436F42B01292C1CC
+:10C1D00030415F4206037F500B007F900900052825
+:10C1E0004E436F43B01292C130414F4F0F5F104F1B
+:10C1F000AEC81C42CE020C93F3273F4008030E4307
+:10C200000D4C0D5E6D4DCF4D00004D9340241E53DF
+:10C210001F533E900900F4234E4E6F43B01292C15B
+:10C220003041E2420803F240090009036E436F43C4
+:10C23000B01292C130413F40E0C83E400803FE4F7B
+:10C2400000001E533F90F3C8FA23D242D6C81B0306
+:10C250007E4014006F43B01292C130413F40D8C8B5
+:10C260003E400803FE4F00001E533F90E0C8FA23F3
+:10C270007E426F43B01292C13041F2400D0008037C
+:10C28000C24309036E436F43B01292C130410F4E57
+:10C290003F523F500003CF4300001F533F90110314
+:10C2A000FA237E4009006F43B01292C130415F42D1
+:10C2B00006036F9321247F9003000A287F900300D8
+:10C2C00025246F9210244E436F43B01292C1304127
+:10C2D0005F93F9233F400803B01260C05E436F4391
+:10C2E000B01292C130413F400803B0129AC05E4381
+:10C2F0006F43B01292C130413F400803B0126EC08C
+:10C300007E40C9FF6F43B01292C130413F400803E5
+:10C31000B0128CC05E436F43B01292C130415F4295
+:10C3200006036F931C247F90030010245F93052461
+:10C330004E436F42B01292C130413F400803B012E9
+:10C3400068C04E436F42B01292C130413F40080373
+:10C35000B01294C04E436F42B01292C130413F4080
+:10C360000803B0127CC04E436F42B01292C13041FC
+:10C37000C293E2020424F2900B000503012830412D
+:10C380005F4205030F5F104FC0C81F42D2030F93D7
+:10C39000F6278F123041E243E202B0125AC0304118
+:10C3A000F2400300E202B01254C03041C2930603CF
+:10C3B0000938B0121EC33041C29306030638B012CA
+:10C3C000AEC23041B012B8C13041B012D2C130411A
+:10C3D0005F930E246E424F43C243F502F2400500C4
+:10C3E000F702C24EF602C24FF802B012ECC0304162
+:10C3F0003F40FA02B0129AC07E4005006F42EC3F07
+:10C400000B12B0129CC54B4F1E42DA021F42DC02D7
+:10C410000E9307200F9305204F4BB0122EC63B41C1
+:10C4200030410C4E0D4F1CF30DF30C930C240C4EAD
+:10C430000D4F3CF0FEFF3DF3824CDA02824DDC02F0
+:10C44000B01206C1E93F0D93F2230C4E0D4F2CF3B1
+:10C450000DF30C930D240C4E0D4F3CF0FDFF3DF3FE
+:10C46000824CDA02824DDC024F43B012D0C3D43F7B
+:10C470000D93F1234F4BB0122EC63B413041D2D326
+:10C4800021003041F2F0FEFF21003041B240805ADD
+:10C490002001C24358005F42FF107F930824C2432B
+:10C4A0005600D242FF105700D242FE105600F2D082
+:10C4B00080FF5700F24024005300F2D040002200D9
+:10C4C000F2F0BFFF2100D2D32200F2F0FEFF2100E4
+:10C4D000F2D22A00F2F0F7FF2900F2D010002A0071
+:10C4E000F2F0EFFF2900F2D22900F2F0F7FF290065
+:10C4F000B240200180011F4290013F50B80B824F93
+:10C500009401B24010008401D2D36100E2D326002E
+:10C51000E2D34100E2D22600E2D24100D2D32A0087
+:10C52000D2D32900F2F0FDFF2A00E2D32C00F2F072
+:10C53000FDFF2B00E2D32D00F2F0FEFF2900F240B8
+:10C5400081FF6100F2400C006400F2426200F2F0F0
+:10C55000FEFF6100B24070C3EA0230410B120A12C2
+:10C56000091232D232C203431942E4028243E40286
+:10C570000993032032D0D800F53F32D23A40E60288
+:10C580001B430F4B0FF904242F4A0F9301248F12E2
+:10C590000B5B2A533A90EC02F423E43F0F4232C281
+:10C5A00003437FF230410D427DF232C20343F2F089
+:10C5B000FEFF29003E4064003F404C011F83FE23E4
+:10C5C000034303433E53F823D2D329003E40F401F2
+:10C5D0003F404C011F83FE23034303433E53F82394
+:10C5E000F2F0FEFF0300F2F0FDFF0300F2F0FDFFAA
+:10C5F0002B00D2D301004F4D02DF30411F42D80241
+:10C600001F53824FD202C243D0028293D602032428
+:10C61000C243670030411F4290013F50B80B824F28
+:10C620009401B24010008401C243670030414F4F73
+:10C6300002DF30410F120E120E4232C2034392D378
+:10C64000E4024F4E7FF24F4F02DFF2F0F7FF23007C
+:10C65000F2D22500B1C0D00004003E413F4100139A
+:10C660000F120E125E4266008293D6023324F2F05D
+:10C67000FEFF2900D2D32900C293D4020A204E9390
+:10C680000620B1C0D00004003E413F410013C24E1D
+:10C69000D4021F42D602CF4E00001F53824FD60253
+:10C6A0005F42D4027F53C24FD402EB238243D602AF
+:10C6B0008293D2021F240E4232C20343A2D2E4026A
+:10C6C0004F4E7FF24F4F02DFB1C0D00004003E4119
+:10C6D0003F41001392420002D6028293D202C72346
+:10C6E0001F4290013F50B80B824F9401B24010009E
+:10C6F0008401BD3F82438401DE3F0F120E1292522D
+:10C70000EC0292010E4232C20343A2D3E4024F4E26
+:10C710007FF24F4F02DFB1C0D00004003E413F41E5
+:10C7200000130F120E120D120C125F422B002FF38A
+:10C7300017241F42D2020F9310245E42D0024E9360
+:10C7400002206E4F5E537E53C24ED00211246E4FB4
+:10C750001F53824FD202C24E6700F2F0FDFF2B0042
+:10C76000B1C0D00008003C413D413E413F41001373
+:10C770008243D202C243EF02B01200C48293D602B7
+:10C78000EC2382438401E93F0F120E120D120C12AA
+:10C790001F421E012F93072082438401B012E6C07E
+:10C7A000B1C0D00008003C413D413E413F41001333
+:10C7B0000B120A120912081207120D9371240F9E10
+:10C7C0006F240F9E342C0C4E0CDF1CF31B240C4EDC
+:10C7D0000CEF1CF307202D9307280B4E1BF32C4363
+:10C7E0000C8B033C0C4D013C1C430D8C0A4C094E38
+:10C7F0000B4FFB4900001B533A53FB230A4F0A5CC3
+:10C800000E5C013C0A4F0B4D12C30B100B24094B5D
+:10C81000084E0C4ABC4800002C533953FB230B5BD9
+:10C820000E5B0A5B1DF33C24EA4E0000393C0E5DB2
+:10C830000C4F0C5D0B4C0BDE1BF31B240B4C0BEE57
+:10C840001BF306203D90030003280B4E1BF3013C15
+:10C850000B4D0D8B094E0A4C084B088C3A5339533B
+:10C86000EA490000074A0758F9233BE31B530C5BD6
+:10C870000E5B0B4D12C30B100E240A4B084E094CD5
+:10C8800028832983A94800003A53FA230A8B0B4ACC
+:10C890000B5B0E5B0C5B1DF30324DC4EFFFFFFFF05
+:0EC8A0003741384139413A413B4130410013A4
+:10C8AE00F2C1E0C1E0C1E0C122C236C2E0C15CC249
+:10C8BE007AC27EC3B8C37EC3ACC37EC37EC3A0C3DD
+:10C8CE0096C37EC37EC38AC30001AB1ECC874701CD
+:10C8DE00000000A4C02016A372EF5BF07B80CE0C8C
+:06C8EE0032940D00110060
+:02C8F40004033B
+:02C8F600000040
+:10FFE00050C050C034C622C750C050C050C060C6B8
+:10FFF00050C050C050C050C088C7FAC650C000C0E2
+:040000030000C00039
+:00000001FF
diff --git a/DUREX/Output/DUREX-Prog.map b/DUREX/Output/DUREX-Prog.map
new file mode 100644
index 0000000..2e86d79
--- /dev/null
+++ b/DUREX/Output/DUREX-Prog.map
@@ -0,0 +1,821 @@
+Archive member included because of file (symbol)
+
+/Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a(strcmp.o)
+ Output/DUREX-Prog.obj (strcmp)
+/Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a(memcpy.o)
+ Output/DUREX-Prog.obj (memcpy)
+/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/DUREX.obj
+Em_App_xmitSize 0x1 Output/DUREX.obj
+Em_App_valp 0x2 Output/DUREX.obj
+Em_App_ind_u 0xc Output/DUREX.obj
+Em_App_recvSize 0x1 Output/DUREX.obj
+Em_App_msg_u 0xd1 Output/DUREX.obj
+Em_App_pdHdlr 0x2 Output/DUREX.obj
+Em_App_bufp 0x2 Output/DUREX.obj
+Em_App_xmitIdx 0x1 Output/DUREX.obj
+Em_App_desc 0x2 Output/DUREX.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/DUREX-Prog.obj
+ .data 0x0000000000000000 0x0 Output/DUREX-Prog.obj
+ .bss 0x0000000000000000 0x0 Output/DUREX-Prog.obj
+ .rodata.processMessage
+ 0x0000000000000000 0x6 Output/DUREX-Prog.obj
+ .text.processMessage
+ 0x0000000000000000 0x40 Output/DUREX-Prog.obj
+ .text.DUREX_messageAvailable_store
+ 0x0000000000000000 0x38 Output/DUREX-Prog.obj
+ .data.lastMessageAck
+ 0x0000000000000000 0x1 Output/DUREX-Prog.obj
+ .text 0x0000000000000000 0x0 Output/DUREX.obj
+ .data 0x0000000000000000 0x0 Output/DUREX.obj
+ .bss 0x0000000000000000 0x0 Output/DUREX.obj
+ .text.Em_App_marshallToBuf
+ 0x0000000000000000 0xd4 Output/DUREX.obj
+ .text.Em_App_marshallToVal
+ 0x0000000000000000 0x11a Output/DUREX.obj
+ .text.DUREX_setDeviceName
+ 0x0000000000000000 0x6 Output/DUREX.obj
+ .text.DUREX_pairingOn
+ 0x0000000000000000 0x24 Output/DUREX.obj
+ .text.DUREX_pairingOff
+ 0x0000000000000000 0xa Output/DUREX.obj
+ .text.DUREX_disconnect
+ 0x0000000000000000 0x26 Output/DUREX.obj
+ .text.DUREX_broadcastOff
+ 0x0000000000000000 0x1c Output/DUREX.obj
+ .text.DUREX_activateParameters
+ 0x0000000000000000 0x1e Output/DUREX.obj
+ .text.DUREX_accept
+ 0x0000000000000000 0x20 Output/DUREX.obj
+ .text.DUREX_messageAvailable_indicate
+ 0x0000000000000000 0x1c Output/DUREX.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 0x1e /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a(strcmp.o)
+ .data 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a(strcmp.o)
+ .bss 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a(strcmp.o)
+ .data 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a(memcpy.o)
+ .bss 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a(memcpy.o)
+ .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/DUREX-Prog.obj
+LOAD Output/DUREX.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 0x8ae
+ 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/DUREX-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.DUREX_connectHandler
+ 0x000000000000c054 0x6 Output/DUREX-Prog.obj
+ 0x000000000000c054 DUREX_connectHandler
+ .text.DUREX_disconnectHandler
+ 0x000000000000c05a 0x6 Output/DUREX-Prog.obj
+ 0x000000000000c05a DUREX_disconnectHandler
+ .text.DUREX_numBytes_fetch
+ 0x000000000000c060 0x8 Output/DUREX-Prog.obj
+ 0x000000000000c060 DUREX_numBytes_fetch
+ .text.DUREX_numBytes_store
+ 0x000000000000c068 0x6 Output/DUREX-Prog.obj
+ 0x000000000000c068 DUREX_numBytes_store
+ .text.DUREX_data_fetch
+ 0x000000000000c06e 0xe Output/DUREX-Prog.obj
+ 0x000000000000c06e DUREX_data_fetch
+ .text.DUREX_data_store
+ 0x000000000000c07c 0x10 Output/DUREX-Prog.obj
+ 0x000000000000c07c DUREX_data_store
+ .text.DUREX_numPackets_fetch
+ 0x000000000000c08c 0x8 Output/DUREX-Prog.obj
+ 0x000000000000c08c DUREX_numPackets_fetch
+ .text.DUREX_numPackets_store
+ 0x000000000000c094 0x6 Output/DUREX-Prog.obj
+ 0x000000000000c094 DUREX_numPackets_store
+ .text.DUREX_messageAvailable_fetch
+ 0x000000000000c09a 0x8 Output/DUREX-Prog.obj
+ 0x000000000000c09a DUREX_messageAvailable_fetch
+ .text.DUREX_reset
+ 0x000000000000c0a2 0x3a Output/DUREX.obj
+ 0x000000000000c0a2 DUREX_reset
+ .text.DUREX_start
+ 0x000000000000c0dc 0xa Output/DUREX.obj
+ 0x000000000000c0dc DUREX_start
+ .text.Em_Message_restart
+ 0x000000000000c0e6 0x6 Output/DUREX.obj
+ 0x000000000000c0e6 Em_Message_restart
+ .text.Em_App_startIndSend
+ 0x000000000000c0ec 0x1a Output/DUREX.obj
+ 0x000000000000c0ec Em_App_startIndSend
+ .text.Em_App_startResSend
+ 0x000000000000c106 0x1a Output/DUREX.obj
+ 0x000000000000c106 Em_App_startResSend
+ .text.Em_App_xmitReady
+ 0x000000000000c120 0x72 Output/DUREX.obj
+ 0x000000000000c120 Em_App_xmitReady
+ .text.Em_App_sendResponse
+ 0x000000000000c192 0x26 Output/DUREX.obj
+ 0x000000000000c192 Em_App_sendResponse
+ .text.Em_App_sysStoreDispatch
+ 0x000000000000c1b8 0x1a Output/DUREX.obj
+ 0x000000000000c1b8 Em_App_sysStoreDispatch
+ .text.Em_App_sysFetchDispatch
+ 0x000000000000c1d2 0xdc Output/DUREX.obj
+ 0x000000000000c1d2 Em_App_sysFetchDispatch
+ .text.Em_App_fetchDispatch
+ 0x000000000000c2ae 0x70 Output/DUREX.obj
+ 0x000000000000c2ae Em_App_fetchDispatch
+ .text.Em_App_storeDispatch
+ 0x000000000000c31e 0x52 Output/DUREX.obj
+ 0x000000000000c31e Em_App_storeDispatch
+ .text.Em_Message_dispatch
+ 0x000000000000c370 0x60 Output/DUREX.obj
+ 0x000000000000c370 Em_Message_dispatch
+ .text.Em_App_sendIndicator
+ 0x000000000000c3d0 0x30 Output/DUREX.obj
+ 0x000000000000c3d0 Em_App_sendIndicator
+ .text.Em_Message_nextXmit
+ 0x000000000000c400 0x7e Output/DUREX.obj
+ 0x000000000000c400 Em_Message_nextXmit
+ .text.Hal_connected
+ 0x000000000000c47e 0x6 Output/Hal.obj
+ 0x000000000000c47e Hal_connected
+ .text.Hal_disconnected
+ 0x000000000000c484 0x8 Output/Hal.obj
+ 0x000000000000c484 Hal_disconnected
+ .text.Hal_init
+ 0x000000000000c48c 0xd0 Output/Hal.obj
+ 0x000000000000c48c Hal_init
+ .text.Hal_idleLoop
+ 0x000000000000c55c 0x40 Output/Hal.obj
+ 0x000000000000c55c Hal_idleLoop
+ .text.Em_Hal_lock
+ 0x000000000000c59c 0xa Output/Hal.obj
+ 0x000000000000c59c Em_Hal_lock
+ .text.Em_Hal_reset
+ 0x000000000000c5a6 0x56 Output/Hal.obj
+ 0x000000000000c5a6 Em_Hal_reset
+ .text.Em_Hal_startSend
+ 0x000000000000c5fc 0x32 Output/Hal.obj
+ 0x000000000000c5fc Em_Hal_startSend
+ .text.Em_Hal_unlock
+ 0x000000000000c62e 0x6 Output/Hal.obj
+ 0x000000000000c62e Em_Hal_unlock
+ .text.buttonIsr
+ 0x000000000000c634 0x2c Output/Hal.obj
+ 0x000000000000c634 __isr_2
+ 0x000000000000c634 buttonIsr
+ .text.rxIsr 0x000000000000c660 0x9a Output/Hal.obj
+ 0x000000000000c660 rxIsr
+ 0x000000000000c660 __isr_7
+ .text.timerIsr
+ 0x000000000000c6fa 0x28 Output/Hal.obj
+ 0x000000000000c6fa timerIsr
+ 0x000000000000c6fa __isr_13
+ .text.txAckIsr
+ 0x000000000000c722 0x66 Output/Hal.obj
+ 0x000000000000c722 txAckIsr
+ 0x000000000000c722 __isr_3
+ .text.uartWatchdogIsr
+ 0x000000000000c788 0x28 Output/Hal.obj
+ 0x000000000000c788 uartWatchdogIsr
+ 0x000000000000c788 __isr_12
+ .text 0x000000000000c7b0 0xfc /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a(memcpy.o)
+ 0x000000000000c7b0 memcpy
+ .text.crt0 0x000000000000c8ac 0x2 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_unexpected_.o)
+ 0x000000000000c8ac _unexpected_
+ 0x000000000000c8ae . = ALIGN (0x2)
+
+.rodata 0x000000000000c8ae 0x46
+ 0x000000000000c8ae . = ALIGN (0x2)
+ *(.rodata .rodata.* .gnu.linkonce.r.*)
+ .rodata.Em_App_sysFetchDispatch
+ 0x000000000000c8ae 0x12 Output/DUREX.obj
+ .rodata.Em_Message_dispatch
+ 0x000000000000c8c0 0x16 Output/DUREX.obj
+ .rodata.Em_App_endian
+ 0x000000000000c8d6 0x2 Output/DUREX.obj
+ 0x000000000000c8d6 Em_App_endian
+ .rodata.Em_App_build
+ 0x000000000000c8d8 0x8 Output/DUREX.obj
+ 0x000000000000c8d8 Em_App_build
+ .rodata.Em_App_hash
+ 0x000000000000c8e0 0x13 Output/DUREX.obj
+ 0x000000000000c8e0 Em_App_hash
+ 0x000000000000c8f4 . = ALIGN (0x2)
+ *fill* 0x000000000000c8f3 0x1 00
+ 0x000000000000c8f4 _etext = .
+
+.data 0x0000000000000200 0x2 load address 0x000000000000c8f4
+ 0x0000000000000200 . = ALIGN (0x2)
+ 0x0000000000000200 PROVIDE (__data_start, .)
+ *(.data .data.* .gnu.linkonce.d.*)
+ .data.Em_App_inBuf
+ 0x0000000000000200 0x2 Output/DUREX.obj
+ 0x0000000000000200 Em_App_inBuf
+ 0x0000000000000202 . = ALIGN (0x2)
+ 0x0000000000000202 _edata = .
+ 0x000000000000c8f4 PROVIDE (__data_load_start, LOADADDR (.data))
+ 0x0000000000000002 PROVIDE (__data_size, SIZEOF (.data))
+
+.bss 0x0000000000000202 0x1d8 load address 0x000000000000c8f6
+ 0x0000000000000202 PROVIDE (__bss_start, .)
+ *(.bss .bss.*)
+ .bss.messageAvailable
+ 0x0000000000000202 0x1 Output/DUREX-Prog.obj
+ 0x0000000000000202 messageAvailable
+ .bss.numPackets
+ 0x0000000000000203 0x1 Output/DUREX-Prog.obj
+ 0x0000000000000203 numPackets
+ .bss.data 0x0000000000000204 0xc9 Output/DUREX-Prog.obj
+ 0x0000000000000204 data
+ .bss.numBytes 0x00000000000002cd 0x1 Output/DUREX-Prog.obj
+ 0x00000000000002cd numBytes
+ .bss.Em_App_devName
+ 0x00000000000002ce 0x2 Output/DUREX.obj
+ 0x00000000000002ce Em_App_devName
+ .bss._Em_Message_txCnt
+ 0x00000000000002d0 0x1 Output/DUREX.obj
+ 0x00000000000002d0 _Em_Message_txCnt
+ *fill* 0x00000000000002d1 0x1 00
+ .bss._Em_Message_txBuf
+ 0x00000000000002d2 0x2 Output/DUREX.obj
+ 0x00000000000002d2 _Em_Message_txBuf
+ .bss._Em_Message_rxCnt
+ 0x00000000000002d4 0x1 Output/DUREX.obj
+ 0x00000000000002d4 _Em_Message_rxCnt
+ *fill* 0x00000000000002d5 0x1 00
+ .bss._Em_Message_rxBuf
+ 0x00000000000002d6 0x2 Output/DUREX.obj
+ 0x00000000000002d6 _Em_Message_rxBuf
+ .bss.Em_App_outBuf
+ 0x00000000000002d8 0x2 Output/DUREX.obj
+ 0x00000000000002d8 Em_App_outBuf
+ .bss.Em_App_xmitMask
+ 0x00000000000002da 0x4 Output/DUREX.obj
+ 0x00000000000002da Em_App_xmitMask
+ .bss.Em_App_fileIndex
+ 0x00000000000002de 0x4 Output/DUREX.obj
+ 0x00000000000002de Em_App_fileIndex
+ .bss.Em_App_state
+ 0x00000000000002e2 0x1 Output/DUREX.obj
+ 0x00000000000002e2 Em_App_state
+ *fill* 0x00000000000002e3 0x1 00
+ .bss.handlerEvents
+ 0x00000000000002e4 0x2 Output/Hal.obj
+ .bss.handlerTab
+ 0x00000000000002e6 0x6 Output/Hal.obj
+ .bss.clockTick
+ 0x00000000000002ec 0x2 Output/Hal.obj
+ *(COMMON)
+ COMMON 0x00000000000002ee 0xec Output/DUREX.obj
+ 0x00000000000002ee Em_App_recvIdx
+ 0x00000000000002ef Em_App_xmitSize
+ 0x00000000000002f0 Em_App_valp
+ 0x00000000000002f2 Em_App_ind_u
+ 0x00000000000002fe Em_App_recvSize
+ 0x0000000000000300 Em_App_msg_u
+ 0x00000000000003d2 Em_App_pdHdlr
+ 0x00000000000003d4 Em_App_bufp
+ 0x00000000000003d6 Em_App_xmitIdx
+ 0x00000000000003d8 Em_App_desc
+ 0x00000000000003da . = ALIGN (0x2)
+ 0x00000000000003da PROVIDE (__bss_end, .)
+ 0x00000000000001d8 PROVIDE (__bss_size, SIZEOF (.bss))
+
+.noinit 0x00000000000003da 0x2 load address 0x000000000000c8f6
+ 0x00000000000003da PROVIDE (__noinit_start, .)
+ *(.noinit .noinit.*)
+ .noinit.crt0 0x00000000000003da 0x2 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o)
+ 0x00000000000003da __wdt_clear_value
+ 0x00000000000003dc . = ALIGN (0x2)
+ 0x00000000000003dc PROVIDE (__noinit_end, .)
+ 0x00000000000003dc . = ALIGN (0x2)
+ 0x00000000000003dc _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 0x1c8
+ *(.debug_aranges)
+ .debug_aranges
+ 0x0000000000000000 0x40 Output/DUREX-Prog.obj
+ .debug_aranges
+ 0x0000000000000040 0x70 Output/DUREX.obj
+ .debug_aranges
+ 0x00000000000000b0 0x78 Output/Hal.obj
+ .debug_aranges
+ 0x0000000000000128 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a(strcmp.o)
+ .debug_aranges
+ 0x000000000000013c 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a(memcpy.o)
+ .debug_aranges
+ 0x0000000000000150 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o)
+ .debug_aranges
+ 0x0000000000000164 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__init_stack.o)
+ .debug_aranges
+ 0x0000000000000178 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_copy_data.o)
+ .debug_aranges
+ 0x000000000000018c 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_clear_bss.o)
+ .debug_aranges
+ 0x00000000000001a0 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_endless_loop__.o)
+ .debug_aranges
+ 0x00000000000001b4 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 0x1eee
+ *(.debug_info)
+ .debug_info 0x0000000000000000 0x44a Output/DUREX-Prog.obj
+ .debug_info 0x000000000000044a 0x91b Output/DUREX.obj
+ .debug_info 0x0000000000000d65 0xc78 Output/Hal.obj
+ .debug_info 0x00000000000019dd 0xa4 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a(strcmp.o)
+ .debug_info 0x0000000000001a81 0x113 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a(memcpy.o)
+ .debug_info 0x0000000000001b94 0x8f /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o)
+ .debug_info 0x0000000000001c23 0x8f /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__init_stack.o)
+ .debug_info 0x0000000000001cb2 0x8f /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_copy_data.o)
+ .debug_info 0x0000000000001d41 0x8f /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_clear_bss.o)
+ .debug_info 0x0000000000001dd0 0x8f /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_endless_loop__.o)
+ .debug_info 0x0000000000001e5f 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 0x85b
+ *(.debug_abbrev)
+ .debug_abbrev 0x0000000000000000 0x152 Output/DUREX-Prog.obj
+ .debug_abbrev 0x0000000000000152 0x240 Output/DUREX.obj
+ .debug_abbrev 0x0000000000000392 0x35a Output/Hal.obj
+ .debug_abbrev 0x00000000000006ec 0x60 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a(strcmp.o)
+ .debug_abbrev 0x000000000000074c 0x97 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a(memcpy.o)
+ .debug_abbrev 0x00000000000007e3 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o)
+ .debug_abbrev 0x00000000000007f7 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__init_stack.o)
+ .debug_abbrev 0x000000000000080b 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_copy_data.o)
+ .debug_abbrev 0x000000000000081f 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_clear_bss.o)
+ .debug_abbrev 0x0000000000000833 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_endless_loop__.o)
+ .debug_abbrev 0x0000000000000847 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_unexpected_.o)
+
+.debug_line 0x0000000000000000 0xd16
+ *(.debug_line)
+ .debug_line 0x0000000000000000 0x1a8 Output/DUREX-Prog.obj
+ .debug_line 0x00000000000001a8 0x3bf Output/DUREX.obj
+ .debug_line 0x0000000000000567 0x3a9 Output/Hal.obj
+ .debug_line 0x0000000000000910 0x49 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a(strcmp.o)
+ .debug_line 0x0000000000000959 0x10e /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a(memcpy.o)
+ .debug_line 0x0000000000000a67 0x72 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o)
+ .debug_line 0x0000000000000ad9 0x70 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__init_stack.o)
+ .debug_line 0x0000000000000b49 0x76 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_copy_data.o)
+ .debug_line 0x0000000000000bbf 0x76 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_clear_bss.o)
+ .debug_line 0x0000000000000c35 0x71 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_endless_loop__.o)
+ .debug_line 0x0000000000000ca6 0x70 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_unexpected_.o)
+
+.debug_frame 0x0000000000000000 0x412
+ *(.debug_frame)
+ .debug_frame 0x0000000000000000 0xa2 Output/DUREX-Prog.obj
+ .debug_frame 0x00000000000000a2 0x17a Output/DUREX.obj
+ .debug_frame 0x000000000000021c 0x1a0 Output/Hal.obj
+ .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)
+ .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)
+ 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)
+ 0x100 (size before relaxing)
+
+.debug_loc 0x0000000000000000 0x868
+ *(.debug_loc)
+ .debug_loc 0x0000000000000000 0x28 Output/DUREX-Prog.obj
+ .debug_loc 0x0000000000000028 0x447 Output/DUREX.obj
+ .debug_loc 0x000000000000046f 0x1e5 Output/Hal.obj
+ .debug_loc 0x0000000000000654 0x24 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a(strcmp.o)
+ .debug_loc 0x0000000000000678 0x1f0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a(memcpy.o)
+
+.debug_macinfo
+ *(.debug_macinfo)
+
+.debug_pubtypes
+ *(.debug_pubtypes)
+
+.debug_ranges 0x0000000000000000 0x1a4
+ *(.debug_ranges)
+ .debug_ranges 0x0000000000000000 0x34 Output/DUREX-Prog.obj
+ .debug_ranges 0x0000000000000034 0x64 Output/DUREX.obj
+ .debug_ranges 0x0000000000000098 0x10c Output/Hal.obj
+ 0x0000000000000400 PROVIDE (__stack, (ORIGIN (ram) + 0x200))
+ 0x000000000000c8f4 PROVIDE (__data_start_rom, _etext)
+ 0x000000000000c8f6 PROVIDE (__data_end_rom, (_etext + SIZEOF (.data)))
+OUTPUT(Output/DUREX-Prog.out elf32-msp430)
diff --git a/DUREX/Output/DUREX-Prog.obj b/DUREX/Output/DUREX-Prog.obj
new file mode 100644
index 0000000..dead87e
--- /dev/null
+++ b/DUREX/Output/DUREX-Prog.obj
diff --git a/DUREX/Output/DUREX-Prog.out b/DUREX/Output/DUREX-Prog.out
new file mode 100755
index 0000000..e534196
--- /dev/null
+++ b/DUREX/Output/DUREX-Prog.out
diff --git a/DUREX/Output/DUREX.obj b/DUREX/Output/DUREX.obj
new file mode 100644
index 0000000..8fe1a66
--- /dev/null
+++ b/DUREX/Output/DUREX.obj
diff --git a/DUREX/Output/Hal.obj b/DUREX/Output/Hal.obj
new file mode 100644
index 0000000..d4b4edd
--- /dev/null
+++ b/DUREX/Output/Hal.obj
diff --git a/DUREX/Schema-Imports/system@emmoco.com/System.ems b/DUREX/Schema-Imports/system@emmoco.com/System.ems
new file mode 100644
index 0000000..9601635
--- /dev/null
+++ b/DUREX/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/DUREX/bundle.properties b/DUREX/bundle.properties
new file mode 100644
index 0000000..99baa05
--- /dev/null
+++ b/DUREX/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/DUREX/DUREX.ems
+com.emmoco.framework.Properties.toolVersion = 13.4.1.201311121909
diff --git a/DUREX/makefile b/DUREX/makefile
new file mode 100644
index 0000000..6af0b62
--- /dev/null
+++ b/DUREX/makefile
@@ -0,0 +1,4 @@
+APPNAME = DUREX
+PLATFORM = ../Platform-MSP-EXP430G2
+
+include $(PLATFORM)/rules.mk