diff --git a/BTVendor_device/DUREX-Prog.c b/BTVendor_device/DUREX-Prog.c new file mode 100644 index 0000000..793c162 --- /dev/null +++ b/BTVendor_device/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/BTVendor_device/DUREX.ems b/BTVendor_device/DUREX.ems new file mode 100644 index 0000000..2afb32e --- /dev/null +++ b/BTVendor_device/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/BTVendor_device/Em/DUREX-STUBS.c b/BTVendor_device/Em/DUREX-STUBS.c new file mode 100644 index 0000000..85cb9b3 --- /dev/null +++ b/BTVendor_device/Em/DUREX-STUBS.c @@ -0,0 +1,46 @@ +/**** DO NOT EDIT -- this file has been automatically generated from @emmoco.com.DUREX on 2014-08-07T19:28:56T ****/ +/**** 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/BTVendor_device/Em/DUREX.c b/BTVendor_device/Em/DUREX.c new file mode 100644 index 0000000..709fece --- /dev/null +++ b/BTVendor_device/Em/DUREX.c @@ -0,0 +1,540 @@ +/**** DO NOT EDIT -- this file has been automatically generated from @emmoco.com.DUREX on 2014-08-07T19:28:56T ****/ +/**** 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[] = {131, 51, 132, 177, 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/BTVendor_device/Em/DUREX.h b/BTVendor_device/Em/DUREX.h new file mode 100644 index 0000000..de4911b --- /dev/null +++ b/BTVendor_device/Em/DUREX.h @@ -0,0 +1,68 @@ +/**** DO NOT EDIT -- this file has been automatically generated from @emmoco.com.DUREX on 2014-08-07T19:28:56T ****/ +/**** 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/BTVendor_device/Em/Em_Message.h b/BTVendor_device/Em/Em_Message.h new file mode 100644 index 0000000..3bd0d58 --- /dev/null +++ b/BTVendor_device/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/BTVendor_device/Em/Em_Types.h b/BTVendor_device/Em/Em_Types.h new file mode 100644 index 0000000..d002306 --- /dev/null +++ b/BTVendor_device/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/BTVendor_device/Em/durex.json b/BTVendor_device/Em/durex.json new file mode 100644 index 0000000..c22e61d --- /dev/null +++ b/BTVendor_device/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": [ + 131, + 51, + 132, + 177, + 71, + 1, + 0, + 0 + ], + "date": "2014-08-07T19:28:56T", + "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/BTVendor_device/Output/DUREX-Prog.hex b/BTVendor_device/Output/DUREX-Prog.hex new file mode 100644 index 0000000..3fe4b60 --- /dev/null +++ b/BTVendor_device/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/BTVendor_device/Output/DUREX-Prog.map b/BTVendor_device/Output/DUREX-Prog.map new file mode 100644 index 0000000..a1e47f6 --- /dev/null +++ b/BTVendor_device/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 0xa89 + *(.debug_str) + .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 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 + *(.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/BTVendor_device/Output/DUREX-Prog.obj b/BTVendor_device/Output/DUREX-Prog.obj new file mode 100644 index 0000000..3caf4a3 --- /dev/null +++ b/BTVendor_device/Output/DUREX-Prog.obj diff --git a/BTVendor_device/Output/DUREX-Prog.out b/BTVendor_device/Output/DUREX-Prog.out new file mode 100755 index 0000000..d299a5e --- /dev/null +++ b/BTVendor_device/Output/DUREX-Prog.out diff --git a/BTVendor_device/Output/DUREX.obj b/BTVendor_device/Output/DUREX.obj new file mode 100644 index 0000000..062fef2 --- /dev/null +++ b/BTVendor_device/Output/DUREX.obj diff --git a/BTVendor_device/Output/Hal.obj b/BTVendor_device/Output/Hal.obj new file mode 100644 index 0000000..89bd839 --- /dev/null +++ b/BTVendor_device/Output/Hal.obj diff --git a/BTVendor_device/Schema-Imports/system@emmoco.com/System.ems b/BTVendor_device/Schema-Imports/system@emmoco.com/System.ems new file mode 100644 index 0000000..9601635 --- /dev/null +++ b/BTVendor_device/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/BTVendor_device/bundle.properties b/BTVendor_device/bundle.properties new file mode 100644 index 0000000..eba6f98 --- /dev/null +++ b/BTVendor_device/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/durex/DUREX/DUREX.ems +com.emmoco.framework.Properties.toolVersion = 13.4.1.201311121909 diff --git a/BTVendor_device/makefile b/BTVendor_device/makefile new file mode 100644 index 0000000..6af0b62 --- /dev/null +++ b/BTVendor_device/makefile @@ -0,0 +1,4 @@ +APPNAME = DUREX +PLATFORM = ../Platform-MSP-EXP430G2 + +include $(PLATFORM)/rules.mk