Commit bb456ea9e73ed0591c596c6bb4a9b4fdc4a6a309

Authored by Imanol-Mikel Barba Sabariego
1 parent 77d4b7bf

FINAL CODE REVIEW

BTVendor_device/DUREX-Prog.c 0 โ†’ 100644
  1 +#include "DUREX.h"
  2 +#include "Hal.h"
  3 +
  4 +DUREX_numBytes_t numBytes = 0;
  5 +DUREX_data_t data = "";
  6 +DUREX_numPackets_t numPackets = 0;
  7 +DUREX_messageAvailable_t messageAvailable = 0;
  8 +uint8_t lastMessageAck = 1;
  9 +
  10 +void main() {
  11 + Hal_init();
  12 + DUREX_start();
  13 + Hal_idleLoop();
  14 +}
  15 +
  16 +/* -------- SCHEMA CALLBACKS -------- */
  17 +
  18 +void processMessage()
  19 +{
  20 + if(!strcmp(data,"Hello"))
  21 + {
  22 + memcpy(data,"Hello",6);
  23 + numBytes = 6;
  24 + numPackets = 1;
  25 + }
  26 +}
  27 +
  28 +void DUREX_connectHandler(void)
  29 +{
  30 + Hal_connected();
  31 +}
  32 +
  33 +void DUREX_disconnectHandler(void)
  34 +{
  35 + Hal_disconnected();
  36 +}
  37 +
  38 +void DUREX_numBytes_fetch(DUREX_numBytes_t* const output)
  39 +{
  40 + *output = numBytes;
  41 +}
  42 +
  43 +void DUREX_numBytes_store(DUREX_numBytes_t* const input)
  44 +{
  45 + numBytes = *input;
  46 +}
  47 +
  48 +void DUREX_data_fetch(DUREX_data_t output)
  49 +{
  50 + memcpy(output,data,numBytes);
  51 +}
  52 +
  53 +void DUREX_data_store(DUREX_data_t input)
  54 +{
  55 + memcpy(data,input,numBytes);
  56 +}
  57 +
  58 +void DUREX_numPackets_fetch(DUREX_numPackets_t* const output)
  59 +{
  60 + *output = numPackets;
  61 +}
  62 +
  63 +void DUREX_numPackets_store(DUREX_numPackets_t* const input)
  64 +{
  65 + numPackets = *input;
  66 +}
  67 +
  68 +void DUREX_messageAvailable_fetch(DUREX_messageAvailable_t* const output)
  69 +{
  70 + *output = messageAvailable;
  71 +}
  72 +
  73 +void DUREX_messageAvailable_store(DUREX_messageAvailable_t* const input)
  74 +{
  75 + messageAvailable = *input;
  76 + if(messageAvailable == DUREX_TRUE)
  77 + {
  78 + led1_on();
  79 + lastMessageAck = 0;
  80 + messageAvailable = DUREX_FALSE;
  81 + DUREX_messageAvailable_indicate();
  82 + processMessage();
  83 + messageAvailable = DUREX_TRUE;
  84 + DUREX_messageAvailable_indicate();
  85 + }
  86 + else if(messageAvailable == DUREX_FALSE)
  87 + {
  88 + led1_off();
  89 + lastMessageAck = 1;
  90 + }
  91 +}
  92 +
BTVendor_device/DUREX.ems 0 โ†’ 100644
  1 +version = "1.0.0"
  2 +description = ""
  3 +
  4 +schema DUREX
  5 +{
  6 + enum BOOLEAN{ TRUE, FALSE };
  7 + typedef string<200> String; //MAXIMUM SIZE AVAILABLE
  8 +
  9 + uint8 numBytes;
  10 + String data;
  11 + uint8 numPackets;
  12 + BOOLEAN messageAvailable
  13 + {
  14 + indicator
  15 + }
  16 +}
BTVendor_device/Em/DUREX-STUBS.c 0 โ†’ 100644
  1 +/**** DO NOT EDIT -- this file has been automatically generated from @emmoco.com.DUREX on 2014-08-07T19:28:56T ****/
  2 +/**** protocolLevel = 13, toolsVersion = 13.4.1.201311121909 ****/
  3 +
  4 +#include "DUREX.h"
  5 +
  6 +#ifdef DUREX_STUBS_ /* enables optional inclusion of application stubs */
  7 +
  8 +/* Copy the function skeletons below into your own application source file */
  9 +
  10 +void DUREX_connectHandler(void) {
  11 + /* TODO: application is now connected */
  12 +}
  13 +
  14 +void DUREX_disconnectHandler(void) {
  15 + /* TODO: application is now disconnected */
  16 +}
  17 +
  18 +void DUREX_numBytes_fetch(DUREX_numBytes_t* output) {
  19 + /* TODO: read resource 'numBytes' into 'output' */
  20 +}
  21 +
  22 +void DUREX_numBytes_store(DUREX_numBytes_t* input) {
  23 + /* TODO: write resource 'numBytes' from 'input' */
  24 +}
  25 +
  26 +void DUREX_data_fetch(DUREX_data_t output) {
  27 + /* TODO: read resource 'data' into 'output' */
  28 +}
  29 +
  30 +void DUREX_data_store(DUREX_data_t input) {
  31 + /* TODO: write resource 'data' from 'input' */
  32 +}
  33 +
  34 +void DUREX_numPackets_fetch(DUREX_numPackets_t* output) {
  35 + /* TODO: read resource 'numPackets' into 'output' */
  36 +}
  37 +
  38 +void DUREX_numPackets_store(DUREX_numPackets_t* input) {
  39 + /* TODO: write resource 'numPackets' from 'input' */
  40 +}
  41 +
  42 +void DUREX_messageAvailable_fetch(DUREX_messageAvailable_t* output) {
  43 + /* TODO: read resource 'messageAvailable' into 'output' */
  44 +}
  45 +
  46 +#endif /* application stubs */
BTVendor_device/Em/DUREX.c 0 โ†’ 100644
  1 +/**** DO NOT EDIT -- this file has been automatically generated from @emmoco.com.DUREX on 2014-08-07T19:28:56T ****/
  2 +/**** protocolLevel = 13, toolsVersion = 13.4.1.201311121909 ****/
  3 +
  4 +#include "Em_Message.h"
  5 +#include "DUREX.h"
  6 +
  7 +#ifdef __cplusplus
  8 +extern "C" {
  9 +#endif
  10 +
  11 +#define Em_Message_protocolLevel 13
  12 +
  13 +typedef struct Em_App_Message {
  14 + uint8_t dummy[3];
  15 + uint8_t sot;
  16 + Em_Message_Header hdr;
  17 + uint8_t data[201];
  18 +} Em_App_Message;
  19 +
  20 +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))};
  21 +
  22 +const uint8_t Em_App_build[] = {131, 51, 132, 177, 71, 1, 0, 0};
  23 +
  24 +#define Em_App_APP_RESOURCE_COUNT 4
  25 +#define Em_App_SYS_RESOURCE_COUNT 9
  26 +
  27 +#define Em_App_ACCEPT DUREX_accept
  28 +#define Em_App_ACTIVATEPARAMETERS DUREX_activateParameters
  29 +#define Em_App_BROADCASTOFF DUREX_broadcastOff
  30 +#define Em_App_DISCONNECT DUREX_disconnect
  31 +#define Em_App_PAIRINGON DUREX_pairingOn
  32 +#define Em_App_PAIRINGOFF DUREX_pairingOff
  33 +#define Em_App_RESET DUREX_reset
  34 +#define Em_App_SETDEVICENAME DUREX_setDeviceName
  35 +#define Em_App_START DUREX_start
  36 +
  37 +#define Em_App_CONNECTHANDLER DUREX_connectHandler
  38 +#define Em_App_DISCONNECTHANDLER DUREX_disconnectHandler
  39 +
  40 +#define Em_App_MAX_INDICATOR 2
  41 +
  42 +/* BEGIN common code */
  43 +
  44 +enum {Em_App_IDLE, Em_App_STARTING, Em_App_DISCONNECTED, Em_App_CONNECTED};
  45 +
  46 +typedef struct Em_App_Indicator {
  47 + uint8_t dummy[3];
  48 + uint8_t sot;
  49 + Em_Message_Header hdr;
  50 + uint8_t data[Em_Message_INDSIZE];
  51 +} Em_App_Indicator;
  52 +
  53 +union { uint32_t align; Em_App_Message msg; } Em_App_msg_u;
  54 +union { uint32_t align; Em_App_Indicator ind; } Em_App_ind_u;
  55 +#define Em_App_msg Em_App_msg_u.msg
  56 +#define Em_App_ind Em_App_ind_u.ind
  57 +
  58 +void (*Em_App_pdHdlr)(void);
  59 +
  60 +const uint16_t Em_App_endian = 0x0100;
  61 +
  62 +Em_Message_Size Em_App_recvIdx;
  63 +Em_Message_Size Em_App_recvSize;
  64 +Em_Message_Size Em_App_xmitIdx;
  65 +Em_Message_Size Em_App_xmitSize;
  66 +
  67 +uint8_t Em_App_state = Em_App_IDLE;
  68 +int32_t Em_App_fileIndex = 0;
  69 +uint32_t Em_App_xmitMask = 0;
  70 +
  71 +uint8_t* Em_App_valp;
  72 +uint8_t* Em_App_bufp;
  73 +const char* Em_App_desc;
  74 +
  75 +uint8_t* Em_App_inBuf = (uint8_t*)&Em_App_msg.hdr;
  76 +uint8_t* Em_App_outBuf = 0;
  77 +
  78 +uint8_t* _Em_Message_rxBuf = 0;
  79 +uint8_t _Em_Message_rxCnt = 0;
  80 +
  81 +uint8_t* _Em_Message_txBuf = 0;
  82 +uint8_t _Em_Message_txCnt = 0;
  83 +
  84 +#define Em_App_DEVNAME_LEN 9
  85 +const char* Em_App_devName = 0;
  86 +
  87 +void Em_App_fetchDispatch(void);
  88 +void Em_Message_marshallToBuf(uint8_t* valp, uint8_t* bufp, const char* desc);
  89 +void Em_Message_marshallToVal(uint8_t* valp, uint8_t* bufp, const char* desc);
  90 +void Em_App_storeDispatch(void);
  91 +void Em_App_sendIndicator(Em_Message_ResId indId);
  92 +void Em_App_sendResponse(Em_Message_Kind kind, Em_Message_Size size);
  93 +void Em_App_startIndSend(void);
  94 +void Em_App_startResSend(void);
  95 +void Em_App_sysFetchDispatch(void);
  96 +void Em_App_sysStoreDispatch(void);
  97 +bool Em_App_xmitReady(Em_Message_ResId indId);
  98 +
  99 +void Em_Message_nextXmit(void) {
  100 + uint8_t key = Em_Hal_lock();
  101 + if (Em_App_xmitMask != 0) {
  102 + uint8_t i;
  103 + uint32_t m;
  104 + for (i = 0, m = 0x1; i < Em_App_MAX_INDICATOR; i++, m <<= 1) {
  105 + if (Em_App_xmitMask & m) {
  106 + Em_App_xmitMask &= ~m;
  107 + if (i == 0) {
  108 + Em_App_startResSend();
  109 + }
  110 + else {
  111 + Em_App_sendIndicator(i - 1);
  112 + }
  113 + break;
  114 + }
  115 + }
  116 + }
  117 + Em_Hal_unlock(key);
  118 +}
  119 +
  120 +void Em_Message_restart(void) {
  121 + Em_App_START();
  122 +}
  123 +
  124 +void Em_App_ACCEPT(bool enable) {
  125 + if (Em_App_state == Em_App_CONNECTED) {
  126 + return;
  127 + }
  128 + Em_App_ind.sot = 0;
  129 + Em_App_ind.hdr.kind = Em_Message_ACCEPT;
  130 + Em_App_ind.hdr.size = sizeof (Em_Message_Header);
  131 + Em_App_ind.hdr.resId = enable;
  132 + Em_App_startIndSend();
  133 +}
  134 +
  135 +void Em_App_ACTIVATEPARAMETERS(uint8_t group) {
  136 + if (Em_App_state == Em_App_IDLE || Em_App_state == Em_App_STARTING) {
  137 + return;
  138 + }
  139 + Em_App_ind.sot = 0;
  140 + Em_App_ind.hdr.kind = Em_Message_ACTIVE_PARAMS;
  141 + Em_App_ind.hdr.size = sizeof (Em_Message_Header);
  142 + Em_App_ind.hdr.resId = group;
  143 + Em_App_startIndSend();
  144 +}
  145 +
  146 +void Em_App_BROADCASTOFF(void) {
  147 + Em_App_ind.sot = 0;
  148 + Em_App_ind.hdr.kind = Em_Message_INDICATOR;
  149 + Em_App_ind.hdr.size = sizeof (Em_Message_Header);
  150 + Em_App_ind.hdr.resId = 0;
  151 + Em_App_startIndSend();
  152 +}
  153 +
  154 +void Em_App_DISCONNECT(void) {
  155 + if (Em_App_state != Em_App_CONNECTED) {
  156 + return;
  157 + }
  158 + Em_App_state = Em_App_DISCONNECTED;
  159 + Em_App_ind.sot = 0;
  160 + Em_App_ind.hdr.kind = Em_Message_DISCONNECT;
  161 + Em_App_ind.hdr.size = sizeof (Em_Message_Header);
  162 + Em_App_ind.hdr.resId = 0;
  163 + Em_App_startIndSend();
  164 +}
  165 +
  166 +void Em_Message_dispatch(void) {
  167 + if (Em_App_state == Em_App_IDLE) {
  168 + return;
  169 + }
  170 + switch (Em_App_msg.hdr.kind) {
  171 + case Em_Message_CONNECT:
  172 + Em_App_state = Em_App_CONNECTED;
  173 + Em_App_CONNECTHANDLER();
  174 + break;
  175 + case Em_Message_DISCONNECT:
  176 + Em_App_state = Em_App_DISCONNECTED;
  177 + Em_App_DISCONNECTHANDLER();
  178 + break;
  179 + case Em_Message_PAIRING_DONE:
  180 + if (Em_App_pdHdlr) {
  181 + (*Em_App_pdHdlr)();
  182 + }
  183 + break;
  184 + case Em_Message_FETCH:
  185 + if (Em_App_msg.hdr.resId < 0x80) {
  186 + Em_App_fetchDispatch();
  187 + }
  188 + else {
  189 + Em_App_sysFetchDispatch();
  190 + }
  191 + break;
  192 + case Em_Message_STORE:
  193 + if (Em_App_msg.hdr.resId < 0x80) {
  194 + Em_App_storeDispatch();
  195 + }
  196 + else {
  197 + Em_App_sysStoreDispatch();
  198 + }
  199 + break;
  200 + }
  201 +}
  202 +
  203 +void Em_App_marshallToBuf() {
  204 + char ch;
  205 + while ((ch = *Em_App_desc++)) {
  206 + switch (ch) {
  207 + case '0' : {
  208 + *Em_App_bufp++ = 0;
  209 + break;
  210 + }
  211 + case '1' : {
  212 + *Em_App_bufp++ = *Em_App_valp & 0xFF;
  213 + break;
  214 + }
  215 + case '2' : {
  216 + uint16_t v16 = *(uint16_t*)Em_App_valp;
  217 + *Em_App_bufp++ = v16 & 0xFF;
  218 + *Em_App_bufp++ = (v16 >> 8) & 0xFF;
  219 + break;
  220 + }
  221 + case '4' : {
  222 + if (((uint32_t)Em_App_valp & 0x1)) Em_App_valp++;
  223 + uint32_t v32 = *(uint32_t*)Em_App_valp++;
  224 + *Em_App_bufp++ = v32 & 0xFF;
  225 + *Em_App_bufp++ = (v32 >> 8) & 0xFF;
  226 + *Em_App_bufp++ = (v32 >> 16) & 0xFF;
  227 + *Em_App_bufp++ = (v32 >> 24) & 0xFF;
  228 + break;
  229 + }
  230 + }
  231 + Em_App_valp += 1;
  232 + }
  233 +}
  234 +
  235 +void Em_App_marshallToVal() {
  236 + char ch;
  237 + while ((ch = *Em_App_desc++)) {
  238 + switch (ch) {
  239 + case '0' : {
  240 + *Em_App_valp = 0;
  241 + Em_App_bufp += 1;
  242 + break;
  243 + }
  244 + case '1' : {
  245 + *Em_App_valp = *Em_App_bufp++ & 0xFF;
  246 + break;
  247 + }
  248 + case '2' : {
  249 + uint16_t v16 = *Em_App_bufp++ & 0xFF;
  250 + v16 |= (*Em_App_bufp++ << 8);
  251 + *(uint16_t*)Em_App_valp = v16;
  252 + break;
  253 + }
  254 + case '4' : {
  255 + if (((uint32_t)Em_App_valp & 0x1)) Em_App_valp++;
  256 + uint32_t v32 = (uint32_t)*Em_App_bufp++ & 0xFF;
  257 + v32 |= ((uint32_t)*Em_App_bufp++ << 8);
  258 + v32 |= ((uint32_t)*Em_App_bufp++ << 16);
  259 + v32 |= ((uint32_t)*Em_App_bufp++ << 24);
  260 + *(uint32_t*)Em_App_valp++ = v32;
  261 + break;
  262 + }
  263 + }
  264 + Em_App_valp += 1;
  265 + }
  266 +}
  267 +
  268 +void Em_App_PAIRINGOFF(void(*handler)(void)) {
  269 + Em_App_PAIRINGON(0, handler);
  270 +}
  271 +
  272 +void Em_App_PAIRINGON(uint8_t secs, void(*handler)(void)) {
  273 + if (Em_App_state != Em_App_DISCONNECTED) {
  274 + return;
  275 + }
  276 + Em_App_pdHdlr = handler;
  277 + Em_App_ind.sot = 0;
  278 + Em_App_ind.hdr.kind = Em_Message_PAIRING;
  279 + Em_App_ind.hdr.size = sizeof (Em_Message_Header);
  280 + Em_App_ind.hdr.resId = secs;
  281 + Em_App_startIndSend();
  282 +}
  283 +
  284 +void Em_App_RESET(void) {
  285 + Em_Hal_reset();
  286 + _Em_Message_rxBuf = _Em_Message_txBuf = 0;
  287 + _Em_Message_rxCnt = _Em_Message_txCnt = 0;
  288 + Em_App_recvIdx = Em_App_recvSize = Em_App_xmitIdx = Em_App_xmitSize = 0;
  289 + Em_App_state = Em_App_IDLE;
  290 + Em_App_fileIndex = 0;
  291 + Em_App_xmitMask = 0;
  292 +}
  293 +
  294 +void Em_App_SETDEVICENAME(const char* name) {
  295 + Em_App_devName = name;
  296 +}
  297 +
  298 +void Em_App_START(void) {
  299 + Em_App_RESET();
  300 + Em_App_state = Em_App_STARTING;
  301 +}
  302 +
  303 +void Em_App_sendResponse(Em_Message_Kind kind, Em_Message_Size size) {
  304 + if (Em_App_state != Em_App_IDLE) {
  305 + Em_App_msg.sot = 0;
  306 + Em_App_msg.hdr.kind = kind;
  307 + Em_App_msg.hdr.size = size + sizeof (Em_Message_Header);
  308 + if (Em_App_xmitReady(0)) {
  309 + Em_App_startResSend();
  310 + }
  311 + }
  312 +}
  313 +
  314 +void Em_App_startIndSend(void) {
  315 + Em_App_outBuf = (uint8_t*)&Em_App_ind.sot;
  316 + Em_App_xmitSize = Em_App_ind.hdr.size + 1;
  317 + Em_App_xmitIdx = 0;
  318 + Em_Hal_startSend();
  319 +}
  320 +
  321 +void Em_App_startResSend(void) {
  322 + Em_App_outBuf = (uint8_t*)&Em_App_msg.sot;
  323 + Em_App_xmitSize = Em_App_msg.hdr.size + 1;
  324 + Em_App_xmitIdx = 0;
  325 + Em_Hal_startSend();
  326 +}
  327 +
  328 +void Em_App_sysFetchDispatch(void) {
  329 + uint8_t size = 0;
  330 + int i, j;
  331 + switch (Em_App_msg.hdr.resId) {
  332 + case Em_Message_SYS_SCHEMA_HASH:
  333 + for (i = 0; i < sizeof (Em_App_hash); i++) {
  334 + Em_App_msg.data[i] = Em_App_hash[i];
  335 + }
  336 + Em_App_msg.data[sizeof (Em_App_hash)] = *((uint8_t*)&Em_App_endian);
  337 + size = sizeof (Em_App_hash) + 1;
  338 + break;
  339 + case Em_Message_SYS_MCM_NAME:
  340 + if (Em_App_devName) {
  341 + for (i = 0; i < Em_App_DEVNAME_LEN; i++) {
  342 + if ((Em_App_msg.data[i] = Em_App_devName[i]) == 0) {
  343 + break;
  344 + }
  345 + }
  346 + for (j = i; j < Em_App_DEVNAME_LEN; j++) {
  347 + Em_App_msg.data[j] = 0;
  348 + }
  349 + size = Em_App_DEVNAME_LEN;
  350 + }
  351 + break;
  352 + case Em_Message_SYS_EAP_PROTOCOL_LEVEL:
  353 + *((Em_Message_protocolLevel_t*)Em_App_msg.data) = Em_Message_protocolLevel;
  354 + size = sizeof (Em_Message_protocolLevel_t);
  355 + break;
  356 + case Em_Message_SYS_EAP_BUILD_DATE:
  357 + for (i = 0; i < sizeof (Em_App_build); i++) {
  358 + Em_App_msg.data[i] = Em_App_build[i];
  359 + }
  360 + size = sizeof (Em_App_build);
  361 + break;
  362 + case Em_Message_SYS_RESOURCE_COUNT:
  363 + Em_App_msg.data[0] = Em_App_APP_RESOURCE_COUNT;
  364 + Em_App_msg.data[1] = Em_App_SYS_RESOURCE_COUNT;
  365 + size = 2;
  366 + break;
  367 + }
  368 + Em_App_sendResponse(Em_Message_FETCH_DONE, size);
  369 +}
  370 +
  371 +void Em_App_sysStoreDispatch(void) {
  372 + switch (Em_App_msg.hdr.resId) {
  373 + case Em_Message_SYS_FILE_INDEX_RESET:
  374 + Em_App_fileIndex = 0;
  375 + break;
  376 + }
  377 + Em_App_sendResponse(Em_Message_STORE_DONE, 0);
  378 +}
  379 +
  380 +bool Em_App_xmitReady(Em_Message_ResId indId) {
  381 + uint8_t key = Em_Hal_lock();
  382 + bool res = _Em_Message_txBuf == 0 && Em_App_xmitMask == 0;
  383 + if (!res) {
  384 + Em_App_xmitMask |= (1 << indId);
  385 + }
  386 + Em_Hal_unlock(key);
  387 + return res;
  388 +}
  389 +
  390 +/* END common code */
  391 +
  392 +void Em_App_fetchDispatch(void) {
  393 + uint8_t size = 0;
  394 + switch (Em_App_msg.hdr.resId) {
  395 + case 0: {
  396 + break;
  397 + }
  398 + case 1: {
  399 +#ifdef Em_16BIT
  400 + DUREX_numBytes_t val;
  401 + Em_App_valp = (uint8_t*)&val;
  402 + Em_App_bufp = Em_App_msg.data;
  403 + Em_App_desc = "1";
  404 + DUREX_numBytes_fetch(&val);
  405 + Em_App_marshallToBuf();
  406 +#else
  407 + DUREX_numBytes_fetch((void*)Em_App_msg.data);
  408 +#endif
  409 + size = 1;
  410 + break;
  411 + }
  412 + case 2: {
  413 +#ifdef Em_16BIT
  414 + DUREX_data_t val;
  415 + Em_App_valp = (uint8_t*)&val;
  416 + Em_App_bufp = Em_App_msg.data;
  417 + Em_App_desc = "*\xc9[1]";
  418 + DUREX_data_fetch(&val);
  419 + Em_App_marshallToBuf();
  420 +#else
  421 + DUREX_data_fetch((void*)Em_App_msg.data);
  422 +#endif
  423 + size = 201;
  424 + break;
  425 + }
  426 + case 3: {
  427 +#ifdef Em_16BIT
  428 + DUREX_numPackets_t val;
  429 + Em_App_valp = (uint8_t*)&val;
  430 + Em_App_bufp = Em_App_msg.data;
  431 + Em_App_desc = "1";
  432 + DUREX_numPackets_fetch(&val);
  433 + Em_App_marshallToBuf();
  434 +#else
  435 + DUREX_numPackets_fetch((void*)Em_App_msg.data);
  436 +#endif
  437 + size = 1;
  438 + break;
  439 + }
  440 + case 4: {
  441 +#ifdef Em_16BIT
  442 + DUREX_messageAvailable_t val;
  443 + Em_App_valp = (uint8_t*)&val;
  444 + Em_App_bufp = Em_App_msg.data;
  445 + Em_App_desc = "1";
  446 + DUREX_messageAvailable_fetch(&val);
  447 + Em_App_marshallToBuf();
  448 +#else
  449 + DUREX_messageAvailable_fetch((void*)Em_App_msg.data);
  450 +#endif
  451 + size = 1;
  452 + break;
  453 + }
  454 + }
  455 + Em_App_sendResponse(Em_Message_FETCH_DONE, size);
  456 +}
  457 +
  458 +void Em_App_storeDispatch(void) {
  459 + switch (Em_App_msg.hdr.resId) {
  460 + case 0: {
  461 + break;
  462 + }
  463 + case 1: {
  464 +#ifdef Em_16BIT
  465 + DUREX_numBytes_t val;
  466 + Em_App_valp = (uint8_t*)&val;
  467 + Em_App_bufp = Em_App_msg.data;
  468 + Em_App_desc = "1";
  469 + Em_App_marshallToVal();
  470 + DUREX_numBytes_store(&val);
  471 +#else
  472 + DUREX_numBytes_store((void*)Em_App_msg.data);
  473 +#endif
  474 + break;
  475 + }
  476 + case 2: {
  477 +#ifdef Em_16BIT
  478 + DUREX_data_t val;
  479 + Em_App_valp = (uint8_t*)&val;
  480 + Em_App_bufp = Em_App_msg.data;
  481 + Em_App_desc = "*\xc9[1]";
  482 + Em_App_marshallToVal();
  483 + DUREX_data_store(&val);
  484 +#else
  485 + DUREX_data_store((void*)Em_App_msg.data);
  486 +#endif
  487 + break;
  488 + }
  489 + case 3: {
  490 +#ifdef Em_16BIT
  491 + DUREX_numPackets_t val;
  492 + Em_App_valp = (uint8_t*)&val;
  493 + Em_App_bufp = Em_App_msg.data;
  494 + Em_App_desc = "1";
  495 + Em_App_marshallToVal();
  496 + DUREX_numPackets_store(&val);
  497 +#else
  498 + DUREX_numPackets_store((void*)Em_App_msg.data);
  499 +#endif
  500 + break;
  501 + }
  502 + }
  503 + Em_App_sendResponse(Em_Message_STORE_DONE, 0);
  504 +}
  505 +
  506 +void Em_App_sendIndicator(Em_Message_ResId indId) {
  507 + Em_Message_Size resId = 0;
  508 + Em_Message_Size size = 0;
  509 + switch (indId) {
  510 + case 1: {
  511 +#ifdef Em_16BIT
  512 + DUREX_messageAvailable_t val;
  513 + Em_App_valp = (uint8_t*)&val;
  514 + Em_App_bufp = Em_App_ind.data;
  515 + Em_App_desc = "1";
  516 + DUREX_messageAvailable_fetch(&val);
  517 + Em_App_marshallToBuf();
  518 +#else
  519 + DUREX_messageAvailable_fetch((DUREX_messageAvailable_t*)&Em_App_ind.data);
  520 +#endif
  521 + resId = 4;
  522 + size = 1;
  523 + break;
  524 + }
  525 + }
  526 + Em_App_ind.sot = 0;
  527 + Em_App_ind.hdr.kind = Em_Message_INDICATOR;
  528 + Em_App_ind.hdr.size = sizeof (Em_Message_Header) + size;
  529 + Em_App_ind.hdr.resId = resId;
  530 + Em_App_startIndSend();
  531 +}
  532 +
  533 +void DUREX_messageAvailable_indicate(void) {
  534 + if (Em_App_state == Em_App_CONNECTED && Em_App_xmitReady(1 + 1)) Em_App_sendIndicator(1);
  535 +}
  536 +
  537 +#ifdef __cplusplus
  538 +}
  539 +#endif
  540 +
BTVendor_device/Em/DUREX.h 0 โ†’ 100644
  1 +/**** DO NOT EDIT -- this file has been automatically generated from @emmoco.com.DUREX on 2014-08-07T19:28:56T ****/
  2 +/**** protocolLevel = 13, toolsVersion = 13.4.1.201311121909 ****/
  3 +
  4 +#ifndef DUREX__H
  5 +#define DUREX__H
  6 +
  7 +#include "Em_Types.h"
  8 +#include "Em_Message.h"
  9 +
  10 +#ifdef __cplusplus
  11 +extern "C" {
  12 +#endif
  13 +
  14 +/* -------- connection callback functions implemented by the application -------- */
  15 +
  16 +void DUREX_connectHandler(void);
  17 +void DUREX_disconnectHandler(void);
  18 +
  19 +/* -------- resource types defined in the schema -------- */
  20 +
  21 +/* typedef String */
  22 +typedef char DUREX_String[201];
  23 +#define DUREX_String_length 201
  24 +
  25 +/* enum BOOLEAN */
  26 +typedef uint8_t DUREX_BOOLEAN;
  27 +#define DUREX_TRUE 0
  28 +#define DUREX_FALSE 1
  29 +
  30 +/* -------- resource callback functions implemented by the application -------- */
  31 +
  32 +/* resource numBytes */
  33 +typedef uint8_t DUREX_numBytes_t;
  34 +extern void DUREX_numBytes_fetch(DUREX_numBytes_t* output);
  35 +extern void DUREX_numBytes_store(DUREX_numBytes_t* input);
  36 +
  37 +/* resource data */
  38 +typedef DUREX_String DUREX_data_t;
  39 +extern void DUREX_data_fetch(DUREX_data_t output);
  40 +extern void DUREX_data_store(DUREX_data_t input);
  41 +
  42 +/* resource numPackets */
  43 +typedef uint8_t DUREX_numPackets_t;
  44 +extern void DUREX_numPackets_fetch(DUREX_numPackets_t* output);
  45 +extern void DUREX_numPackets_store(DUREX_numPackets_t* input);
  46 +
  47 +/* resource messageAvailable */
  48 +typedef DUREX_BOOLEAN DUREX_messageAvailable_t;
  49 +extern void DUREX_messageAvailable_fetch(DUREX_messageAvailable_t* output);
  50 +extern void DUREX_messageAvailable_indicate(void); /* called by the application */
  51 +
  52 +/* -------- application functions implemented in DUREX.c -------- */
  53 +
  54 +void DUREX_accept(bool enable);
  55 +void DUREX_activateParameters(uint8_t group);
  56 +void DUREX_broadcastOff(void);
  57 +void DUREX_disconnect(void);
  58 +void DUREX_pairingOn(uint8_t secs, void(*handler)(void));
  59 +void DUREX_pairingOff(void(*handler)(void));
  60 +void DUREX_reset(void);
  61 +void DUREX_setDeviceName(const char* name);
  62 +void DUREX_start(void);
  63 +
  64 +#ifdef __cplusplus
  65 +}
  66 +#endif
  67 +
  68 +#endif /* DUREX__H */
BTVendor_device/Em/Em_Message.h 0 โ†’ 100644
  1 +#ifndef Em_Message_H_
  2 +#define Em_Message_H_
  3 +
  4 +#include "Em_Types.h"
  5 +
  6 +#ifdef __cplusplus
  7 +extern "C" {
  8 +#endif
  9 +
  10 +/* -------- SRT FUNCTIONS CALLED BY HAL -------- */
  11 +
  12 +static inline bool Em_Message_addByte(uint8_t b);
  13 +extern void Em_Message_dispatch(void);
  14 +static inline bool Em_Message_getByte(uint8_t* bp);
  15 +extern void Em_Message_restart(void);
  16 +static inline bool Em_Message_startRx(void);
  17 +static inline uint8_t Em_Message_startTx(void);
  18 +
  19 +
  20 +/* -------- HAL FUNCTIONS CALLED BY SRT -------- */
  21 +
  22 +extern uint8_t Em_Hal_lock(void);
  23 +extern void Em_Hal_reset(void);
  24 +extern void Em_Hal_startSend(void);
  25 +extern void Em_Hal_unlock(uint8_t key);
  26 +extern void Em_Hal_watchOff(void);
  27 +extern void Em_Hal_watchOn(void);
  28 +
  29 +
  30 +/* -------- MESSAGE FORMAT -------- */
  31 +
  32 +/* protocolLevel #4 */
  33 +#define Em_Message_INDSIZE 4
  34 +
  35 +typedef uint8_t Em_Message_Size;
  36 +typedef uint8_t Em_Message_Kind;
  37 +/* protocolLevel #12 -- split 16-bit resId into <resId, chan> */
  38 +typedef uint8_t Em_Message_ResId;
  39 +typedef uint8_t Em_Message_Chan;
  40 +
  41 +#define Em_Message_NOP 0
  42 +#define Em_Message_FETCH 1
  43 +#define Em_Message_FETCH_DONE 2
  44 +#define Em_Message_STORE 3
  45 +#define Em_Message_STORE_DONE 4
  46 +#define Em_Message_INDICATOR 5
  47 +#define Em_Message_CONNECT 6
  48 +#define Em_Message_DISCONNECT 7
  49 +#define Em_Message_ECHO 8
  50 +/* protocolLevel #3 */
  51 +/* protocolLevel #6 -- rename from BROADCAST to PAIRING */
  52 +#define Em_Message_PAIRING 9
  53 +#define Em_Message_PAIRING_DONE 10
  54 +/* protocolLevel #7 */
  55 +#define Em_Message_OFFLINE 11
  56 +/* protocolLevel #8 */
  57 +#define Em_Message_ACCEPT 12
  58 +/* protocolLevel #13 */
  59 +#define Em_Message_START 13
  60 +#define Em_Message_ACTIVE_PARAMS 14
  61 +
  62 +typedef struct Em_Message_Header {
  63 + Em_Message_Size size;
  64 + Em_Message_Kind kind;
  65 + Em_Message_ResId resId;
  66 + Em_Message_Chan chan;
  67 +} Em_Message_Header;
  68 +
  69 +typedef uint16_t Em_Message_protocolLevel_t;
  70 +
  71 +/* protocolLevel #1 */
  72 +
  73 +/* protocolLevel #10 */
  74 +/* #define Em_Message_SYS_SCHEMA_UUID 0xFF */
  75 +
  76 +#define Em_Message_SYS_MCM_PROTOCOL_LEVEL 0xFE
  77 +#define Em_Message_SYS_EAP_PROTOCOL_LEVEL 0xFD
  78 +#define Em_Message_SYS_EAP_BUILD_DATE 0xFC
  79 +
  80 +/* protocolLevel #2 */
  81 +#define Em_Message_SYS_FILE_INDEX_RESET 0xFB
  82 +
  83 +/* protocolLevel #5 */
  84 +#define Em_Message_SYS_SCHEMA_HASH 0xFA
  85 +
  86 +/* protocolLevel #7 */
  87 +#define Em_Message_SYS_RESOURCE_COUNT 0xF9
  88 +
  89 +/* protocolLevel #9 */
  90 +#define Em_Message_SYS_MOBILE_RSSI 0xF8
  91 +
  92 +/* protocolLevel #11 */
  93 +#define Em_Message_SYS_MCM_DISCONNECT 0xF7
  94 +
  95 +/* protocolLevel #13a */
  96 +#define Em_Message_SYS_MCM_NAME 0xF5
  97 +
  98 +
  99 +/* -------- PRIVATE -------- */
  100 +
  101 +extern void Em_Message_nextXmit(void);
  102 +
  103 +extern uint8_t* Em_App_inBuf;
  104 +extern uint8_t* Em_App_outBuf;
  105 +extern Em_Message_Size Em_App_xmitSize;
  106 +
  107 +extern uint8_t* _Em_Message_rxBuf;
  108 +extern uint8_t _Em_Message_rxCnt;
  109 +
  110 +extern uint8_t* _Em_Message_txBuf;
  111 +extern uint8_t _Em_Message_txCnt;
  112 +
  113 +static inline bool Em_Message_addByte(uint8_t b) {
  114 + if (_Em_Message_rxCnt == 0) {
  115 + if (b == 0) {
  116 + return false;
  117 + }
  118 + _Em_Message_rxCnt = b;
  119 + }
  120 + *_Em_Message_rxBuf++ = b;
  121 + if (--_Em_Message_rxCnt == 0) {
  122 + _Em_Message_rxBuf = 0;
  123 + if (_Em_Message_txBuf == 0) {
  124 + Em_Hal_watchOff();
  125 + }
  126 + return true;
  127 + }
  128 + else {
  129 + return false;
  130 + }
  131 +}
  132 +
  133 +static inline bool Em_Message_getByte(uint8_t* bp) {
  134 + if (_Em_Message_txBuf == 0) {
  135 + return false;
  136 + }
  137 + if (_Em_Message_txCnt == 0) {
  138 + _Em_Message_txCnt = *_Em_Message_txBuf + 1;
  139 + }
  140 + if (--_Em_Message_txCnt > 0) {
  141 + *bp = *_Em_Message_txBuf++;
  142 + return true;
  143 + }
  144 + else {
  145 + _Em_Message_txBuf = 0;
  146 + Em_App_xmitSize = 0;
  147 + Em_Message_nextXmit();
  148 + if (_Em_Message_rxBuf == 0) {
  149 + Em_Hal_watchOff();
  150 + }
  151 + return false;
  152 + }
  153 +}
  154 +
  155 +static inline bool Em_Message_startRx(void) {
  156 + if (_Em_Message_rxBuf == 0) {
  157 + _Em_Message_rxBuf = Em_App_inBuf;
  158 + if (_Em_Message_txBuf == 0) {
  159 + Em_Hal_watchOn();
  160 + }
  161 + return true;
  162 + }
  163 + else {
  164 + return false;
  165 + }
  166 +}
  167 +
  168 +static inline uint8_t Em_Message_startTx(void) {
  169 + _Em_Message_txBuf = Em_App_outBuf + 1;
  170 + _Em_Message_txCnt = 0;
  171 + if (_Em_Message_rxBuf == 0) {
  172 + Em_Hal_watchOn();
  173 + }
  174 + return 0;
  175 +}
  176 +
  177 +
  178 +#ifdef __cplusplus
  179 +}
  180 +#endif
  181 +
  182 +#endif /*Em_Message_H_*/
BTVendor_device/Em/Em_Types.h 0 โ†’ 100644
  1 +#ifndef Em_Types_H_
  2 +#define Em_Types_H_
  3 +
  4 +#ifndef Em_NOSTDBOOL
  5 +#include <stdbool.h>
  6 +#endif
  7 +
  8 +#ifndef Em_NOSTDINT
  9 +#include <stdint.h>
  10 +#endif
  11 +
  12 +#ifdef Em_16BIT
  13 +typedef signed char int8_t;
  14 +typedef unsigned char uint8_t;
  15 +#endif
  16 +
  17 +#endif /*Em_Types_H_*/
BTVendor_device/Em/durex.json 0 โ†’ 100644
  1 +{
  2 + "resources": {
  3 + "$eapProtocolLevel": {
  4 + "id": -3,
  5 + "align": 2,
  6 + "attributes": {"readonly": true},
  7 + "type": "u2",
  8 + "access": "r",
  9 + "size": 2
  10 + },
  11 + "numBytes": {
  12 + "id": 1,
  13 + "align": 1,
  14 + "attributes": {},
  15 + "type": "u1",
  16 + "access": "rw",
  17 + "size": 1
  18 + },
  19 + "data": {
  20 + "id": 2,
  21 + "align": 1,
  22 + "attributes": {},
  23 + "type": "C:201",
  24 + "access": "rw",
  25 + "size": 201
  26 + },
  27 + "$activeGroup": {
  28 + "id": -10,
  29 + "align": 1,
  30 + "pack": 1,
  31 + "attributes": {"readwrite": true},
  32 + "type": "E:system@emmoco.com.System/ParameterGroup",
  33 + "access": "rw",
  34 + "size": 1
  35 + },
  36 + "$mcmDisconnect": {
  37 + "id": -9,
  38 + "align": 1,
  39 + "attributes": {"writeonly": true},
  40 + "type": "u1",
  41 + "access": "w",
  42 + "size": 1
  43 + },
  44 + "$eapBuildDate": {
  45 + "dim": 8,
  46 + "id": -4,
  47 + "align": 1,
  48 + "attributes": {"readonly": true},
  49 + "type": "A8:u1",
  50 + "access": "r",
  51 + "size": 8
  52 + },
  53 + "numPackets": {
  54 + "id": 3,
  55 + "align": 1,
  56 + "attributes": {},
  57 + "type": "u1",
  58 + "access": "rw",
  59 + "size": 1
  60 + },
  61 + "$resourceCount": {
  62 + "id": -7,
  63 + "align": 1,
  64 + "attributes": {"readonly": true},
  65 + "type": "S:system@emmoco.com.System/ResourceCount",
  66 + "access": "r",
  67 + "size": 2
  68 + },
  69 + "$schemaHash": {
  70 + "dim": 20,
  71 + "id": -6,
  72 + "align": 1,
  73 + "attributes": {"readonly": true},
  74 + "type": "A20:u1",
  75 + "access": "r",
  76 + "size": 20
  77 + },
  78 + "messageAvailable": {
  79 + "id": 4,
  80 + "align": 1,
  81 + "pack": 1,
  82 + "attributes": {"indicator": true},
  83 + "type": "E:@emmoco.com.DUREX/BOOLEAN",
  84 + "access": "ir",
  85 + "size": 1
  86 + },
  87 + "$mcmProtocolLevel": {
  88 + "id": -2,
  89 + "align": 2,
  90 + "attributes": {"readonly": true},
  91 + "type": "u2",
  92 + "access": "r",
  93 + "size": 2
  94 + },
  95 + "$mobileRssi": {
  96 + "id": -8,
  97 + "align": 1,
  98 + "attributes": {"readonly": true},
  99 + "type": "i1",
  100 + "access": "r",
  101 + "size": 1
  102 + },
  103 + "$fileIndexReset": {
  104 + "id": -5,
  105 + "align": 2,
  106 + "attributes": {"writeonly": true},
  107 + "type": "i2",
  108 + "access": "w",
  109 + "size": 2
  110 + }
  111 + },
  112 + "resourceNamesSys": [
  113 + "$activeGroup",
  114 + "$eapBuildDate",
  115 + "$eapProtocolLevel",
  116 + "$fileIndexReset",
  117 + "$mcmDisconnect",
  118 + "$mcmProtocolLevel",
  119 + "$mobileRssi",
  120 + "$resourceCount",
  121 + "$schemaHash"
  122 + ],
  123 + "manifest": {
  124 + "protocolLevel": 13,
  125 + "hash": [
  126 + 0,
  127 + 164,
  128 + 192,
  129 + 32,
  130 + 22,
  131 + 163,
  132 + 114,
  133 + 239,
  134 + 91,
  135 + 240,
  136 + 123,
  137 + 128,
  138 + 206,
  139 + 12,
  140 + 50,
  141 + 148
  142 + ],
  143 + "toolVersion": "13.4.1.201311121909",
  144 + "name": "DUREX",
  145 + "$$md5": "00a4c02016a372ef5bf07b80ce0c3294",
  146 + "build": [
  147 + 131,
  148 + 51,
  149 + 132,
  150 + 177,
  151 + 71,
  152 + 1,
  153 + 0,
  154 + 0
  155 + ],
  156 + "date": "2014-08-07T19:28:56T",
  157 + "maxAlign": 2,
  158 + "maxSize": 201,
  159 + "version": "1.0.0"
  160 + },
  161 + "resourceNames": [
  162 + "numBytes",
  163 + "data",
  164 + "numPackets",
  165 + "messageAvailable",
  166 + "$mcmProtocolLevel",
  167 + "$eapProtocolLevel",
  168 + "$eapBuildDate",
  169 + "$fileIndexReset",
  170 + "$schemaHash",
  171 + "$resourceCount",
  172 + "$mobileRssi",
  173 + "$mcmDisconnect",
  174 + "$activeGroup"
  175 + ],
  176 + "attributes": {
  177 + "description": "",
  178 + "version": "1.0.0"
  179 + },
  180 + "resourceNamesApp": [
  181 + "numBytes",
  182 + "data",
  183 + "numPackets",
  184 + "messageAvailable"
  185 + ],
  186 + "types": {
  187 + "system@emmoco.com.System/ResourceCount": {
  188 + "packed": false,
  189 + "align": 1,
  190 + "type": "S:system@emmoco.com.System/ResourceCount",
  191 + "size": 2,
  192 + "fields": [
  193 + {
  194 + "pad": 0,
  195 + "align": 1,
  196 + "name": "app",
  197 + "type": "u1",
  198 + "size": 1
  199 + },
  200 + {
  201 + "pad": 0,
  202 + "align": 1,
  203 + "name": "sys",
  204 + "type": "u1",
  205 + "size": 1
  206 + }
  207 + ]
  208 + },
  209 + "std:i2": {
  210 + "align": 2,
  211 + "size": 2
  212 + },
  213 + "std:i1": {
  214 + "align": 1,
  215 + "size": 1
  216 + },
  217 + "std:u1": {
  218 + "align": 1,
  219 + "size": 1
  220 + },
  221 + "@emmoco.com.DUREX/BOOLEAN": {
  222 + "values": [
  223 + "TRUE",
  224 + "FALSE"
  225 + ],
  226 + "align": 1,
  227 + "pack": 1,
  228 + "type": "E:@emmoco.com.DUREX/BOOLEAN",
  229 + "size": 1
  230 + },
  231 + "system@emmoco.com.System/ParameterGroup": {
  232 + "values": [
  233 + "GROUP_A",
  234 + "GROUP_B"
  235 + ],
  236 + "align": 1,
  237 + "pack": 1,
  238 + "type": "E:system@emmoco.com.System/ParameterGroup",
  239 + "size": 1
  240 + },
  241 + "std:u2": {
  242 + "align": 2,
  243 + "size": 2
  244 + }
  245 + },
  246 + "imports": {"@emmoco.com.DUREX": true}
  247 +}
0 \ No newline at end of file 248 \ No newline at end of file
BTVendor_device/Output/DUREX-Prog.hex 0 โ†’ 100644
  1 +:10C000005542200135D0085A8245DA0331400004F8
  2 +:10C010003F4002000F9308249242DA0320012F834D
  3 +:10C020009F4FF4C80002F8233F40D8010F93072424
  4 +:10C030009242DA0320011F83CF430202F923B01298
  5 +:10C040008CC4B012DCC0B0125CC532D0F000FD3F31
  6 +:10C050003040ACC8B0127EC43041B01284C430410C
  7 +:10C06000DF42CD0200003041E24FCD0230415D425F
  8 +:10C07000CD023E400402B012B0C730415D42CD0255
  9 +:10C080000E4F3F400402B012B0C73041DF420302FE
  10 +:10C0900000003041E24F03023041DF420202000063
  11 +:10C0A0003041B012A6C58243D2028243D602C243B7
  12 +:10C0B000D002C243D402C243EF02C243D603C243FA
  13 +:10C0C000FE02C243EE02C243E2028243DE02824328
  14 +:10C0D000E0028243DA028243DC023041B012A2C0A5
  15 +:10C0E000D243E2023041B012DCC03041B240F5022E
  16 +:10C0F000D8025F42F6025F53C24FEF02C243D6033B
  17 +:10C10000B012FCC53041B2400303D8025F420403C1
  18 +:10C110005F53C24FEF02C243D603B012FCC5304199
  19 +:10C120000B120A1209120812484FB0129CC5494F4F
  20 +:10C130001A42DA021B42DC028293D20224241E43FA
  21 +:10C140004F487FF00F0018200C4E8E108E118E106D
  22 +:10C150008E110D4E0E4A0F4B0EDC0FDD824EDA02B1
  23 +:10C16000824FDC024A434F49B0122EC64F4A384133
  24 +:10C1700039413A413B4130410E5E7F53E5270E5E27
  25 +:10C180007F53FA23E13F0A93DA230B93D8235A43D0
  26 +:10C19000EA3FC293E20201203041C2430303C24F8F
  27 +:10C1A00005036E52C24E04034F43B01220C14F9399
  28 +:10C1B000F327B01206C13041F290FBFF06030420C2
  29 +:10C1C0008243DE028243E0024E436F42B01292C1CC
  30 +:10C1D00030415F4206037F500B007F900900052825
  31 +:10C1E0004E436F43B01292C130414F4F0F5F104F1B
  32 +:10C1F000AEC81C42CE020C93F3273F4008030E4307
  33 +:10C200000D4C0D5E6D4DCF4D00004D9340241E53DF
  34 +:10C210001F533E900900F4234E4E6F43B01292C15B
  35 +:10C220003041E2420803F240090009036E436F43C4
  36 +:10C23000B01292C130413F40E0C83E400803FE4F7B
  37 +:10C2400000001E533F90F3C8FA23D242D6C81B0306
  38 +:10C250007E4014006F43B01292C130413F40D8C8B5
  39 +:10C260003E400803FE4F00001E533F90E0C8FA23F3
  40 +:10C270007E426F43B01292C13041F2400D0008037C
  41 +:10C28000C24309036E436F43B01292C130410F4E57
  42 +:10C290003F523F500003CF4300001F533F90110314
  43 +:10C2A000FA237E4009006F43B01292C130415F42D1
  44 +:10C2B00006036F9321247F9003000A287F900300D8
  45 +:10C2C00025246F9210244E436F43B01292C1304127
  46 +:10C2D0005F93F9233F400803B01260C05E436F4391
  47 +:10C2E000B01292C130413F400803B0129AC05E4381
  48 +:10C2F0006F43B01292C130413F400803B0126EC08C
  49 +:10C300007E40C9FF6F43B01292C130413F400803E5
  50 +:10C31000B0128CC05E436F43B01292C130415F4295
  51 +:10C3200006036F931C247F90030010245F93052461
  52 +:10C330004E436F42B01292C130413F400803B012E9
  53 +:10C3400068C04E436F42B01292C130413F40080373
  54 +:10C35000B01294C04E436F42B01292C130413F4080
  55 +:10C360000803B0127CC04E436F42B01292C13041FC
  56 +:10C37000C293E2020424F2900B000503012830412D
  57 +:10C380005F4205030F5F104FC0C81F42D2030F93D7
  58 +:10C39000F6278F123041E243E202B0125AC0304118
  59 +:10C3A000F2400300E202B01254C03041C2930603CF
  60 +:10C3B0000938B0121EC33041C29306030638B012CA
  61 +:10C3C000AEC23041B012B8C13041B012D2C130411A
  62 +:10C3D0005F930E246E424F43C243F502F2400500C4
  63 +:10C3E000F702C24EF602C24FF802B012ECC0304162
  64 +:10C3F0003F40FA02B0129AC07E4005006F42EC3F07
  65 +:10C400000B12B0129CC54B4F1E42DA021F42DC02D7
  66 +:10C410000E9307200F9305204F4BB0122EC63B41C1
  67 +:10C4200030410C4E0D4F1CF30DF30C930C240C4EAD
  68 +:10C430000D4F3CF0FEFF3DF3824CDA02824DDC02F0
  69 +:10C44000B01206C1E93F0D93F2230C4E0D4F2CF3B1
  70 +:10C450000DF30C930D240C4E0D4F3CF0FDFF3DF3FE
  71 +:10C46000824CDA02824DDC024F43B012D0C3D43F7B
  72 +:10C470000D93F1234F4BB0122EC63B413041D2D326
  73 +:10C4800021003041F2F0FEFF21003041B240805ADD
  74 +:10C490002001C24358005F42FF107F930824C2432B
  75 +:10C4A0005600D242FF105700D242FE105600F2D082
  76 +:10C4B00080FF5700F24024005300F2D040002200D9
  77 +:10C4C000F2F0BFFF2100D2D32200F2F0FEFF2100E4
  78 +:10C4D000F2D22A00F2F0F7FF2900F2D010002A0071
  79 +:10C4E000F2F0EFFF2900F2D22900F2F0F7FF290065
  80 +:10C4F000B240200180011F4290013F50B80B824F93
  81 +:10C500009401B24010008401D2D36100E2D326002E
  82 +:10C51000E2D34100E2D22600E2D24100D2D32A0087
  83 +:10C52000D2D32900F2F0FDFF2A00E2D32C00F2F072
  84 +:10C53000FDFF2B00E2D32D00F2F0FEFF2900F240B8
  85 +:10C5400081FF6100F2400C006400F2426200F2F0F0
  86 +:10C55000FEFF6100B24070C3EA0230410B120A12C2
  87 +:10C56000091232D232C203431942E4028243E40286
  88 +:10C570000993032032D0D800F53F32D23A40E60288
  89 +:10C580001B430F4B0FF904242F4A0F9301248F12E2
  90 +:10C590000B5B2A533A90EC02F423E43F0F4232C281
  91 +:10C5A00003437FF230410D427DF232C20343F2F089
  92 +:10C5B000FEFF29003E4064003F404C011F83FE23E4
  93 +:10C5C000034303433E53F823D2D329003E40F401F2
  94 +:10C5D0003F404C011F83FE23034303433E53F82394
  95 +:10C5E000F2F0FEFF0300F2F0FDFF0300F2F0FDFFAA
  96 +:10C5F0002B00D2D301004F4D02DF30411F42D80241
  97 +:10C600001F53824FD202C243D0028293D602032428
  98 +:10C61000C243670030411F4290013F50B80B824F28
  99 +:10C620009401B24010008401C243670030414F4F73
  100 +:10C6300002DF30410F120E120E4232C2034392D378
  101 +:10C64000E4024F4E7FF24F4F02DFF2F0F7FF23007C
  102 +:10C65000F2D22500B1C0D00004003E413F4100139A
  103 +:10C660000F120E125E4266008293D6023324F2F05D
  104 +:10C67000FEFF2900D2D32900C293D4020A204E9390
  105 +:10C680000620B1C0D00004003E413F410013C24E1D
  106 +:10C69000D4021F42D602CF4E00001F53824FD60253
  107 +:10C6A0005F42D4027F53C24FD402EB238243D602AF
  108 +:10C6B0008293D2021F240E4232C20343A2D2E4026A
  109 +:10C6C0004F4E7FF24F4F02DFB1C0D00004003E4119
  110 +:10C6D0003F41001392420002D6028293D202C72346
  111 +:10C6E0001F4290013F50B80B824F9401B24010009E
  112 +:10C6F0008401BD3F82438401DE3F0F120E1292522D
  113 +:10C70000EC0292010E4232C20343A2D3E4024F4E26
  114 +:10C710007FF24F4F02DFB1C0D00004003E413F41E5
  115 +:10C7200000130F120E120D120C125F422B002FF38A
  116 +:10C7300017241F42D2020F9310245E42D0024E9360
  117 +:10C7400002206E4F5E537E53C24ED00211246E4FB4
  118 +:10C750001F53824FD202C24E6700F2F0FDFF2B0042
  119 +:10C76000B1C0D00008003C413D413E413F41001373
  120 +:10C770008243D202C243EF02B01200C48293D602B7
  121 +:10C78000EC2382438401E93F0F120E120D120C12AA
  122 +:10C790001F421E012F93072082438401B012E6C07E
  123 +:10C7A000B1C0D00008003C413D413E413F41001333
  124 +:10C7B0000B120A120912081207120D9371240F9E10
  125 +:10C7C0006F240F9E342C0C4E0CDF1CF31B240C4EDC
  126 +:10C7D0000CEF1CF307202D9307280B4E1BF32C4363
  127 +:10C7E0000C8B033C0C4D013C1C430D8C0A4C094E38
  128 +:10C7F0000B4FFB4900001B533A53FB230A4F0A5CC3
  129 +:10C800000E5C013C0A4F0B4D12C30B100B24094B5D
  130 +:10C81000084E0C4ABC4800002C533953FB230B5BD9
  131 +:10C820000E5B0A5B1DF33C24EA4E0000393C0E5DB2
  132 +:10C830000C4F0C5D0B4C0BDE1BF31B240B4C0BEE57
  133 +:10C840001BF306203D90030003280B4E1BF3013C15
  134 +:10C850000B4D0D8B094E0A4C084B088C3A5339533B
  135 +:10C86000EA490000074A0758F9233BE31B530C5BD6
  136 +:10C870000E5B0B4D12C30B100E240A4B084E094CD5
  137 +:10C8800028832983A94800003A53FA230A8B0B4ACC
  138 +:10C890000B5B0E5B0C5B1DF30324DC4EFFFFFFFF05
  139 +:0EC8A0003741384139413A413B4130410013A4
  140 +:10C8AE00F2C1E0C1E0C1E0C122C236C2E0C15CC249
  141 +:10C8BE007AC27EC3B8C37EC3ACC37EC37EC3A0C3DD
  142 +:10C8CE0096C37EC37EC38AC30001AB1ECC874701CD
  143 +:10C8DE00000000A4C02016A372EF5BF07B80CE0C8C
  144 +:06C8EE0032940D00110060
  145 +:02C8F40004033B
  146 +:02C8F600000040
  147 +:10FFE00050C050C034C622C750C050C050C060C6B8
  148 +:10FFF00050C050C050C050C088C7FAC650C000C0E2
  149 +:040000030000C00039
  150 +:00000001FF
BTVendor_device/Output/DUREX-Prog.map 0 โ†’ 100644
  1 +Archive member included because of file (symbol)
  2 +
  3 +/Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a(strcmp.o)
  4 + Output/DUREX-Prog.obj (strcmp)
  5 +/Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a(memcpy.o)
  6 + Output/DUREX-Prog.obj (memcpy)
  7 +/Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o)
  8 + /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/crt0ivtbl16.o (_reset_vector__)
  9 +/Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o)
  10 + /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o) (__watchdog_support)
  11 +/Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__init_stack.o)
  12 + /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o) (__init_stack)
  13 +/Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__low_level_init.o)
  14 + /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o) (__low_level_init)
  15 +/Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_copy_data.o)
  16 + /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o) (__do_copy_data)
  17 +/Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_clear_bss.o)
  18 + /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o) (__do_clear_bss)
  19 +/Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__stop_progExec__.o)
  20 + /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o) (__stop_progExec__)
  21 +/Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_endless_loop__.o)
  22 + /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o) (_endless_loop__)
  23 +/Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_unexpected_.o)
  24 + /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/crt0ivtbl16.o (_unexpected_)
  25 +
  26 +Allocating common symbols
  27 +Common symbol size file
  28 +
  29 +Em_App_recvIdx 0x1 Output/DUREX.obj
  30 +Em_App_xmitSize 0x1 Output/DUREX.obj
  31 +Em_App_valp 0x2 Output/DUREX.obj
  32 +Em_App_ind_u 0xc Output/DUREX.obj
  33 +Em_App_recvSize 0x1 Output/DUREX.obj
  34 +Em_App_msg_u 0xd1 Output/DUREX.obj
  35 +Em_App_pdHdlr 0x2 Output/DUREX.obj
  36 +Em_App_bufp 0x2 Output/DUREX.obj
  37 +Em_App_xmitIdx 0x1 Output/DUREX.obj
  38 +Em_App_desc 0x2 Output/DUREX.obj
  39 +
  40 +Discarded input sections
  41 +
  42 + .data 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/crt0ivtbl16.o
  43 + .bss 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/crt0ivtbl16.o
  44 + .text.crt0 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/crt0ivtbl16.o
  45 + .text 0x0000000000000000 0x0 Output/DUREX-Prog.obj
  46 + .data 0x0000000000000000 0x0 Output/DUREX-Prog.obj
  47 + .bss 0x0000000000000000 0x0 Output/DUREX-Prog.obj
  48 + .rodata.processMessage
  49 + 0x0000000000000000 0x6 Output/DUREX-Prog.obj
  50 + .text.processMessage
  51 + 0x0000000000000000 0x40 Output/DUREX-Prog.obj
  52 + .text.DUREX_messageAvailable_store
  53 + 0x0000000000000000 0x38 Output/DUREX-Prog.obj
  54 + .data.lastMessageAck
  55 + 0x0000000000000000 0x1 Output/DUREX-Prog.obj
  56 + .text 0x0000000000000000 0x0 Output/DUREX.obj
  57 + .data 0x0000000000000000 0x0 Output/DUREX.obj
  58 + .bss 0x0000000000000000 0x0 Output/DUREX.obj
  59 + .text.Em_App_marshallToBuf
  60 + 0x0000000000000000 0xd4 Output/DUREX.obj
  61 + .text.Em_App_marshallToVal
  62 + 0x0000000000000000 0x11a Output/DUREX.obj
  63 + .text.DUREX_setDeviceName
  64 + 0x0000000000000000 0x6 Output/DUREX.obj
  65 + .text.DUREX_pairingOn
  66 + 0x0000000000000000 0x24 Output/DUREX.obj
  67 + .text.DUREX_pairingOff
  68 + 0x0000000000000000 0xa Output/DUREX.obj
  69 + .text.DUREX_disconnect
  70 + 0x0000000000000000 0x26 Output/DUREX.obj
  71 + .text.DUREX_broadcastOff
  72 + 0x0000000000000000 0x1c Output/DUREX.obj
  73 + .text.DUREX_activateParameters
  74 + 0x0000000000000000 0x1e Output/DUREX.obj
  75 + .text.DUREX_accept
  76 + 0x0000000000000000 0x20 Output/DUREX.obj
  77 + .text.DUREX_messageAvailable_indicate
  78 + 0x0000000000000000 0x1c Output/DUREX.obj
  79 + .text 0x0000000000000000 0x0 Output/Hal.obj
  80 + .data 0x0000000000000000 0x0 Output/Hal.obj
  81 + .bss 0x0000000000000000 0x0 Output/Hal.obj
  82 + .text.buttonHandler
  83 + 0x0000000000000000 0x28 Output/Hal.obj
  84 + .text.Hal_buttonEnable
  85 + 0x0000000000000000 0x3c Output/Hal.obj
  86 + .text.Hal_debugOn
  87 + 0x0000000000000000 0x18 Output/Hal.obj
  88 + .text.Hal_debugOff
  89 + 0x0000000000000000 0x1a Output/Hal.obj
  90 + .text.Hal_debugPulse
  91 + 0x0000000000000000 0x24 Output/Hal.obj
  92 + .text.Hal_delay
  93 + 0x0000000000000000 0x16 Output/Hal.obj
  94 + .text.Hal_ledOn
  95 + 0x0000000000000000 0x8 Output/Hal.obj
  96 + .text.Hal_ledOff
  97 + 0x0000000000000000 0x8 Output/Hal.obj
  98 + .text.Hal_ledRead
  99 + 0x0000000000000000 0x12 Output/Hal.obj
  100 + .text.Hal_ledToggle
  101 + 0x0000000000000000 0x8 Output/Hal.obj
  102 + .text.Hal_tickStart
  103 + 0x0000000000000000 0x24 Output/Hal.obj
  104 + .text.Em_Hal_watchOff
  105 + 0x0000000000000000 0x6 Output/Hal.obj
  106 + .text.Em_Hal_watchOn
  107 + 0x0000000000000000 0x14 Output/Hal.obj
  108 + .bss.appButtonHandler
  109 + 0x0000000000000000 0x2 Output/Hal.obj
  110 + .text 0x0000000000000000 0x1e /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a(strcmp.o)
  111 + .data 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a(strcmp.o)
  112 + .bss 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a(strcmp.o)
  113 + .data 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a(memcpy.o)
  114 + .bss 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a(memcpy.o)
  115 + .text 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o)
  116 + .data 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o)
  117 + .bss 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o)
  118 + .text 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o)
  119 + .data 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o)
  120 + .bss 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o)
  121 + .text 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__init_stack.o)
  122 + .data 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__init_stack.o)
  123 + .bss 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__init_stack.o)
  124 + .text 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__low_level_init.o)
  125 + .data 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__low_level_init.o)
  126 + .bss 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__low_level_init.o)
  127 + .text 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_copy_data.o)
  128 + .data 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_copy_data.o)
  129 + .bss 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_copy_data.o)
  130 + .text 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_clear_bss.o)
  131 + .data 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_clear_bss.o)
  132 + .bss 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_clear_bss.o)
  133 + .text 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__stop_progExec__.o)
  134 + .data 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__stop_progExec__.o)
  135 + .bss 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__stop_progExec__.o)
  136 + .text 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_endless_loop__.o)
  137 + .data 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_endless_loop__.o)
  138 + .bss 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_endless_loop__.o)
  139 + .text 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_unexpected_.o)
  140 + .data 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_unexpected_.o)
  141 + .bss 0x0000000000000000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_unexpected_.o)
  142 +
  143 +Memory Configuration
  144 +
  145 +Name Origin Length Attributes
  146 +sfr 0x0000000000000000 0x0000000000000010
  147 +peripheral_8bit 0x0000000000000010 0x00000000000000f0
  148 +peripheral_16bit 0x0000000000000100 0x0000000000000100
  149 +ram 0x0000000000000200 0x0000000000000200 xw
  150 +infomem 0x0000000000001000 0x0000000000000100
  151 +infod 0x0000000000001000 0x0000000000000040
  152 +infoc 0x0000000000001040 0x0000000000000040
  153 +infob 0x0000000000001080 0x0000000000000040
  154 +infoa 0x00000000000010c0 0x0000000000000040
  155 +rom 0x000000000000c000 0x0000000000003fe0 xr
  156 +vectors 0x000000000000ffe0 0x0000000000000020
  157 +bsl 0x0000000000000000 0x0000000000000000
  158 +far_rom 0x0000000000000000 0x0000000000000000
  159 +*default* 0x0000000000000000 0xffffffffffffffff
  160 +
  161 +Linker script and memory map
  162 +
  163 +LOAD /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/crt0ivtbl16.o
  164 +LOAD Output/DUREX-Prog.obj
  165 +LOAD Output/DUREX.obj
  166 +LOAD Output/Hal.obj
  167 +LOAD /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libgcc.a
  168 +LOAD /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a
  169 +LOAD /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libgcc.a
  170 +LOAD /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a
  171 + 0x0000000000000040 PROVIDE (__info_segment_size, 0x40)
  172 + 0x0000000000001000 PROVIDE (__infod, 0x1000)
  173 + 0x0000000000001040 PROVIDE (__infoc, 0x1040)
  174 + 0x0000000000001080 PROVIDE (__infob, 0x1080)
  175 + 0x00000000000010c0 PROVIDE (__infoa, 0x10c0)
  176 + 0x0000000000000000 __IE1 = 0x0
  177 + 0x0000000000000002 __IFG1 = 0x2
  178 + 0x0000000000000001 __IE2 = 0x1
  179 + 0x0000000000000003 __IFG2 = 0x3
  180 + 0x0000000000000048 __ADC10DTC0 = 0x48
  181 + 0x0000000000000049 __ADC10DTC1 = 0x49
  182 + 0x000000000000004a __ADC10AE0 = 0x4a
  183 + 0x00000000000001b0 __ADC10CTL0 = 0x1b0
  184 + 0x00000000000001b2 __ADC10CTL1 = 0x1b2
  185 + 0x00000000000001b4 __ADC10MEM = 0x1b4
  186 + 0x00000000000001bc __ADC10SA = 0x1bc
  187 + 0x0000000000000056 __DCOCTL = 0x56
  188 + 0x0000000000000057 __BCSCTL1 = 0x57
  189 + 0x0000000000000058 __BCSCTL2 = 0x58
  190 + 0x0000000000000053 __BCSCTL3 = 0x53
  191 + 0x0000000000000059 __CACTL1 = 0x59
  192 + 0x000000000000005a __CACTL2 = 0x5a
  193 + 0x000000000000005b __CAPD = 0x5b
  194 + 0x0000000000000128 __FCTL1 = 0x128
  195 + 0x000000000000012a __FCTL2 = 0x12a
  196 + 0x000000000000012c __FCTL3 = 0x12c
  197 + 0x0000000000000020 __P1IN = 0x20
  198 + 0x0000000000000021 __P1OUT = 0x21
  199 + 0x0000000000000022 __P1DIR = 0x22
  200 + 0x0000000000000023 __P1IFG = 0x23
  201 + 0x0000000000000024 __P1IES = 0x24
  202 + 0x0000000000000025 __P1IE = 0x25
  203 + 0x0000000000000026 __P1SEL = 0x26
  204 + 0x0000000000000041 __P1SEL2 = 0x41
  205 + 0x0000000000000027 __P1REN = 0x27
  206 + 0x0000000000000028 __P2IN = 0x28
  207 + 0x0000000000000029 __P2OUT = 0x29
  208 + 0x000000000000002a __P2DIR = 0x2a
  209 + 0x000000000000002b __P2IFG = 0x2b
  210 + 0x000000000000002c __P2IES = 0x2c
  211 + 0x000000000000002d __P2IE = 0x2d
  212 + 0x000000000000002e __P2SEL = 0x2e
  213 + 0x0000000000000042 __P2SEL2 = 0x42
  214 + 0x000000000000002f __P2REN = 0x2f
  215 + 0x0000000000000018 __P3IN = 0x18
  216 + 0x0000000000000019 __P3OUT = 0x19
  217 + 0x000000000000001a __P3DIR = 0x1a
  218 + 0x000000000000001b __P3SEL = 0x1b
  219 + 0x0000000000000043 __P3SEL2 = 0x43
  220 + 0x0000000000000010 __P3REN = 0x10
  221 + 0x000000000000012e __TA0IV = 0x12e
  222 + 0x0000000000000160 __TA0CTL = 0x160
  223 + 0x0000000000000162 __TA0CCTL0 = 0x162
  224 + 0x0000000000000164 __TA0CCTL1 = 0x164
  225 + 0x0000000000000166 __TA0CCTL2 = 0x166
  226 + 0x0000000000000170 __TA0R = 0x170
  227 + 0x0000000000000172 __TA0CCR0 = 0x172
  228 + 0x0000000000000174 __TA0CCR1 = 0x174
  229 + 0x0000000000000176 __TA0CCR2 = 0x176
  230 + 0x000000000000011e __TA1IV = 0x11e
  231 + 0x0000000000000180 __TA1CTL = 0x180
  232 + 0x0000000000000182 __TA1CCTL0 = 0x182
  233 + 0x0000000000000184 __TA1CCTL1 = 0x184
  234 + 0x0000000000000186 __TA1CCTL2 = 0x186
  235 + 0x0000000000000190 __TA1R = 0x190
  236 + 0x0000000000000192 __TA1CCR0 = 0x192
  237 + 0x0000000000000194 __TA1CCR1 = 0x194
  238 + 0x0000000000000196 __TA1CCR2 = 0x196
  239 + 0x0000000000000060 __UCA0CTL0 = 0x60
  240 + 0x0000000000000061 __UCA0CTL1 = 0x61
  241 + 0x0000000000000062 __UCA0BR0 = 0x62
  242 + 0x0000000000000063 __UCA0BR1 = 0x63
  243 + 0x0000000000000064 __UCA0MCTL = 0x64
  244 + 0x0000000000000065 __UCA0STAT = 0x65
  245 + 0x0000000000000066 __UCA0RXBUF = 0x66
  246 + 0x0000000000000067 __UCA0TXBUF = 0x67
  247 + 0x000000000000005d __UCA0ABCTL = 0x5d
  248 + 0x000000000000005e __UCA0IRTCTL = 0x5e
  249 + 0x000000000000005f __UCA0IRRCTL = 0x5f
  250 + 0x0000000000000068 __UCB0CTL0 = 0x68
  251 + 0x0000000000000069 __UCB0CTL1 = 0x69
  252 + 0x000000000000006a __UCB0BR0 = 0x6a
  253 + 0x000000000000006b __UCB0BR1 = 0x6b
  254 + 0x000000000000006c __UCB0I2CIE = 0x6c
  255 + 0x000000000000006d __UCB0STAT = 0x6d
  256 + 0x000000000000006e __UCB0RXBUF = 0x6e
  257 + 0x000000000000006f __UCB0TXBUF = 0x6f
  258 + 0x0000000000000118 __UCB0I2COA = 0x118
  259 + 0x000000000000011a __UCB0I2CSA = 0x11a
  260 + 0x0000000000000120 __WDTCTL = 0x120
  261 + 0x00000000000010f8 __CALDCO_16MHZ = 0x10f8
  262 + 0x00000000000010f9 __CALBC1_16MHZ = 0x10f9
  263 + 0x00000000000010fa __CALDCO_12MHZ = 0x10fa
  264 + 0x00000000000010fb __CALBC1_12MHZ = 0x10fb
  265 + 0x00000000000010fc __CALDCO_8MHZ = 0x10fc
  266 + 0x00000000000010fd __CALBC1_8MHZ = 0x10fd
  267 + 0x00000000000010fe __CALDCO_1MHZ = 0x10fe
  268 + 0x00000000000010ff __CALBC1_1MHZ = 0x10ff
  269 +
  270 +.hash
  271 + *(.hash)
  272 +
  273 +.dynsym
  274 + *(.dynsym)
  275 +
  276 +.dynstr
  277 + *(.dynstr)
  278 +
  279 +.gnu.version
  280 + *(.gnu.version)
  281 +
  282 +.gnu.version_d
  283 + *(.gnu.version_d)
  284 +
  285 +.gnu.version_r
  286 + *(.gnu.version_r)
  287 +
  288 +.rel.init
  289 + *(.rel.init)
  290 +
  291 +.rela.init
  292 + *(.rela.init)
  293 +
  294 +.rel.fini
  295 + *(.rel.fini)
  296 +
  297 +.rela.fini
  298 + *(.rela.fini)
  299 +
  300 +.rel.text
  301 + *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
  302 +
  303 +.rela.text
  304 + *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
  305 +
  306 +.rel.rodata
  307 + *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
  308 +
  309 +.rela.rodata
  310 + *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
  311 +
  312 +.rel.data
  313 + *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
  314 +
  315 +.rela.data
  316 + *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
  317 +
  318 +.rel.bss
  319 + *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
  320 +
  321 +.rela.bss
  322 + *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
  323 +
  324 +.rel.ctors
  325 + *(.rel.ctors)
  326 +
  327 +.rela.ctors
  328 + *(.rela.ctors)
  329 +
  330 +.rel.dtors
  331 + *(.rel.dtors)
  332 +
  333 +.rela.dtors
  334 + *(.rela.dtors)
  335 +
  336 +.rel.got
  337 + *(.rel.got)
  338 +
  339 +.rela.got
  340 + *(.rela.got)
  341 +
  342 +.rel.plt
  343 + *(.rel.plt)
  344 +
  345 +.rela.plt
  346 + *(.rela.plt)
  347 +
  348 +.text 0x000000000000c000 0x8ae
  349 + 0x000000000000c000 . = ALIGN (0x2)
  350 + *(.init .init.*)
  351 + *(.init0)
  352 + .init0 0x000000000000c000 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_reset_vector__.o)
  353 + 0x000000000000c000 _reset_vector__
  354 + *(.init1)
  355 + .init1 0x000000000000c000 0xc /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o)
  356 + 0x000000000000c000 __watchdog_support
  357 + *(.init2)
  358 + .init2 0x000000000000c00c 0x4 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__init_stack.o)
  359 + 0x000000000000c00c __init_stack
  360 + *(.init3)
  361 + .init3 0x000000000000c010 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__low_level_init.o)
  362 + 0x000000000000c010 __low_level_init
  363 + *(.init4)
  364 + .init4 0x000000000000c010 0x18 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_copy_data.o)
  365 + 0x000000000000c010 __do_copy_data
  366 + .init4 0x000000000000c028 0x16 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_clear_bss.o)
  367 + 0x000000000000c028 __do_clear_bss
  368 + *(.init5)
  369 + *(.init6)
  370 + *(.init7)
  371 + *(.init8)
  372 + *(.init9)
  373 + .init9 0x000000000000c03e 0xc Output/DUREX-Prog.obj
  374 + 0x000000000000c03e main
  375 + *(.fini9)
  376 + .fini9 0x000000000000c04a 0x0 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__stop_progExec__.o)
  377 + 0x000000000000c04a __stop_progExec__
  378 + *(.fini8)
  379 + *(.fini7)
  380 + *(.fini6)
  381 + *(.fini5)
  382 + *(.fini4)
  383 + *(.fini3)
  384 + *(.fini2)
  385 + *(.fini1)
  386 + *(.fini0)
  387 + .fini0 0x000000000000c04a 0x6 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_endless_loop__.o)
  388 + 0x000000000000c04a _endless_loop__
  389 + *(.fini .fini.*)
  390 + 0x000000000000c050 . = ALIGN (0x2)
  391 + 0x000000000000c050 __ctors_start = .
  392 + *(.ctors)
  393 + 0x000000000000c050 __ctors_end = .
  394 + 0x000000000000c050 __dtors_start = .
  395 + *(.dtors)
  396 + 0x000000000000c050 __dtors_end = .
  397 + 0x000000000000c050 . = ALIGN (0x2)
  398 + *(.text .text.* .gnu.linkonce.t.*)
  399 + .text 0x000000000000c050 0x4 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/crt0ivtbl16.o
  400 + 0x000000000000c050 __isr_1
  401 + 0x000000000000c050 __isr_4
  402 + 0x000000000000c050 __isr_11
  403 + 0x000000000000c050 __isr_5
  404 + 0x000000000000c050 __isr_10
  405 + 0x000000000000c050 __isr_0
  406 + 0x000000000000c050 __isr_8
  407 + 0x000000000000c050 __isr_9
  408 + 0x000000000000c050 __isr_6
  409 + 0x000000000000c050 __isr_14
  410 + .text.DUREX_connectHandler
  411 + 0x000000000000c054 0x6 Output/DUREX-Prog.obj
  412 + 0x000000000000c054 DUREX_connectHandler
  413 + .text.DUREX_disconnectHandler
  414 + 0x000000000000c05a 0x6 Output/DUREX-Prog.obj
  415 + 0x000000000000c05a DUREX_disconnectHandler
  416 + .text.DUREX_numBytes_fetch
  417 + 0x000000000000c060 0x8 Output/DUREX-Prog.obj
  418 + 0x000000000000c060 DUREX_numBytes_fetch
  419 + .text.DUREX_numBytes_store
  420 + 0x000000000000c068 0x6 Output/DUREX-Prog.obj
  421 + 0x000000000000c068 DUREX_numBytes_store
  422 + .text.DUREX_data_fetch
  423 + 0x000000000000c06e 0xe Output/DUREX-Prog.obj
  424 + 0x000000000000c06e DUREX_data_fetch
  425 + .text.DUREX_data_store
  426 + 0x000000000000c07c 0x10 Output/DUREX-Prog.obj
  427 + 0x000000000000c07c DUREX_data_store
  428 + .text.DUREX_numPackets_fetch
  429 + 0x000000000000c08c 0x8 Output/DUREX-Prog.obj
  430 + 0x000000000000c08c DUREX_numPackets_fetch
  431 + .text.DUREX_numPackets_store
  432 + 0x000000000000c094 0x6 Output/DUREX-Prog.obj
  433 + 0x000000000000c094 DUREX_numPackets_store
  434 + .text.DUREX_messageAvailable_fetch
  435 + 0x000000000000c09a 0x8 Output/DUREX-Prog.obj
  436 + 0x000000000000c09a DUREX_messageAvailable_fetch
  437 + .text.DUREX_reset
  438 + 0x000000000000c0a2 0x3a Output/DUREX.obj
  439 + 0x000000000000c0a2 DUREX_reset
  440 + .text.DUREX_start
  441 + 0x000000000000c0dc 0xa Output/DUREX.obj
  442 + 0x000000000000c0dc DUREX_start
  443 + .text.Em_Message_restart
  444 + 0x000000000000c0e6 0x6 Output/DUREX.obj
  445 + 0x000000000000c0e6 Em_Message_restart
  446 + .text.Em_App_startIndSend
  447 + 0x000000000000c0ec 0x1a Output/DUREX.obj
  448 + 0x000000000000c0ec Em_App_startIndSend
  449 + .text.Em_App_startResSend
  450 + 0x000000000000c106 0x1a Output/DUREX.obj
  451 + 0x000000000000c106 Em_App_startResSend
  452 + .text.Em_App_xmitReady
  453 + 0x000000000000c120 0x72 Output/DUREX.obj
  454 + 0x000000000000c120 Em_App_xmitReady
  455 + .text.Em_App_sendResponse
  456 + 0x000000000000c192 0x26 Output/DUREX.obj
  457 + 0x000000000000c192 Em_App_sendResponse
  458 + .text.Em_App_sysStoreDispatch
  459 + 0x000000000000c1b8 0x1a Output/DUREX.obj
  460 + 0x000000000000c1b8 Em_App_sysStoreDispatch
  461 + .text.Em_App_sysFetchDispatch
  462 + 0x000000000000c1d2 0xdc Output/DUREX.obj
  463 + 0x000000000000c1d2 Em_App_sysFetchDispatch
  464 + .text.Em_App_fetchDispatch
  465 + 0x000000000000c2ae 0x70 Output/DUREX.obj
  466 + 0x000000000000c2ae Em_App_fetchDispatch
  467 + .text.Em_App_storeDispatch
  468 + 0x000000000000c31e 0x52 Output/DUREX.obj
  469 + 0x000000000000c31e Em_App_storeDispatch
  470 + .text.Em_Message_dispatch
  471 + 0x000000000000c370 0x60 Output/DUREX.obj
  472 + 0x000000000000c370 Em_Message_dispatch
  473 + .text.Em_App_sendIndicator
  474 + 0x000000000000c3d0 0x30 Output/DUREX.obj
  475 + 0x000000000000c3d0 Em_App_sendIndicator
  476 + .text.Em_Message_nextXmit
  477 + 0x000000000000c400 0x7e Output/DUREX.obj
  478 + 0x000000000000c400 Em_Message_nextXmit
  479 + .text.Hal_connected
  480 + 0x000000000000c47e 0x6 Output/Hal.obj
  481 + 0x000000000000c47e Hal_connected
  482 + .text.Hal_disconnected
  483 + 0x000000000000c484 0x8 Output/Hal.obj
  484 + 0x000000000000c484 Hal_disconnected
  485 + .text.Hal_init
  486 + 0x000000000000c48c 0xd0 Output/Hal.obj
  487 + 0x000000000000c48c Hal_init
  488 + .text.Hal_idleLoop
  489 + 0x000000000000c55c 0x40 Output/Hal.obj
  490 + 0x000000000000c55c Hal_idleLoop
  491 + .text.Em_Hal_lock
  492 + 0x000000000000c59c 0xa Output/Hal.obj
  493 + 0x000000000000c59c Em_Hal_lock
  494 + .text.Em_Hal_reset
  495 + 0x000000000000c5a6 0x56 Output/Hal.obj
  496 + 0x000000000000c5a6 Em_Hal_reset
  497 + .text.Em_Hal_startSend
  498 + 0x000000000000c5fc 0x32 Output/Hal.obj
  499 + 0x000000000000c5fc Em_Hal_startSend
  500 + .text.Em_Hal_unlock
  501 + 0x000000000000c62e 0x6 Output/Hal.obj
  502 + 0x000000000000c62e Em_Hal_unlock
  503 + .text.buttonIsr
  504 + 0x000000000000c634 0x2c Output/Hal.obj
  505 + 0x000000000000c634 __isr_2
  506 + 0x000000000000c634 buttonIsr
  507 + .text.rxIsr 0x000000000000c660 0x9a Output/Hal.obj
  508 + 0x000000000000c660 rxIsr
  509 + 0x000000000000c660 __isr_7
  510 + .text.timerIsr
  511 + 0x000000000000c6fa 0x28 Output/Hal.obj
  512 + 0x000000000000c6fa timerIsr
  513 + 0x000000000000c6fa __isr_13
  514 + .text.txAckIsr
  515 + 0x000000000000c722 0x66 Output/Hal.obj
  516 + 0x000000000000c722 txAckIsr
  517 + 0x000000000000c722 __isr_3
  518 + .text.uartWatchdogIsr
  519 + 0x000000000000c788 0x28 Output/Hal.obj
  520 + 0x000000000000c788 uartWatchdogIsr
  521 + 0x000000000000c788 __isr_12
  522 + .text 0x000000000000c7b0 0xfc /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a(memcpy.o)
  523 + 0x000000000000c7b0 memcpy
  524 + .text.crt0 0x000000000000c8ac 0x2 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_unexpected_.o)
  525 + 0x000000000000c8ac _unexpected_
  526 + 0x000000000000c8ae . = ALIGN (0x2)
  527 +
  528 +.rodata 0x000000000000c8ae 0x46
  529 + 0x000000000000c8ae . = ALIGN (0x2)
  530 + *(.rodata .rodata.* .gnu.linkonce.r.*)
  531 + .rodata.Em_App_sysFetchDispatch
  532 + 0x000000000000c8ae 0x12 Output/DUREX.obj
  533 + .rodata.Em_Message_dispatch
  534 + 0x000000000000c8c0 0x16 Output/DUREX.obj
  535 + .rodata.Em_App_endian
  536 + 0x000000000000c8d6 0x2 Output/DUREX.obj
  537 + 0x000000000000c8d6 Em_App_endian
  538 + .rodata.Em_App_build
  539 + 0x000000000000c8d8 0x8 Output/DUREX.obj
  540 + 0x000000000000c8d8 Em_App_build
  541 + .rodata.Em_App_hash
  542 + 0x000000000000c8e0 0x13 Output/DUREX.obj
  543 + 0x000000000000c8e0 Em_App_hash
  544 + 0x000000000000c8f4 . = ALIGN (0x2)
  545 + *fill* 0x000000000000c8f3 0x1 00
  546 + 0x000000000000c8f4 _etext = .
  547 +
  548 +.data 0x0000000000000200 0x2 load address 0x000000000000c8f4
  549 + 0x0000000000000200 . = ALIGN (0x2)
  550 + 0x0000000000000200 PROVIDE (__data_start, .)
  551 + *(.data .data.* .gnu.linkonce.d.*)
  552 + .data.Em_App_inBuf
  553 + 0x0000000000000200 0x2 Output/DUREX.obj
  554 + 0x0000000000000200 Em_App_inBuf
  555 + 0x0000000000000202 . = ALIGN (0x2)
  556 + 0x0000000000000202 _edata = .
  557 + 0x000000000000c8f4 PROVIDE (__data_load_start, LOADADDR (.data))
  558 + 0x0000000000000002 PROVIDE (__data_size, SIZEOF (.data))
  559 +
  560 +.bss 0x0000000000000202 0x1d8 load address 0x000000000000c8f6
  561 + 0x0000000000000202 PROVIDE (__bss_start, .)
  562 + *(.bss .bss.*)
  563 + .bss.messageAvailable
  564 + 0x0000000000000202 0x1 Output/DUREX-Prog.obj
  565 + 0x0000000000000202 messageAvailable
  566 + .bss.numPackets
  567 + 0x0000000000000203 0x1 Output/DUREX-Prog.obj
  568 + 0x0000000000000203 numPackets
  569 + .bss.data 0x0000000000000204 0xc9 Output/DUREX-Prog.obj
  570 + 0x0000000000000204 data
  571 + .bss.numBytes 0x00000000000002cd 0x1 Output/DUREX-Prog.obj
  572 + 0x00000000000002cd numBytes
  573 + .bss.Em_App_devName
  574 + 0x00000000000002ce 0x2 Output/DUREX.obj
  575 + 0x00000000000002ce Em_App_devName
  576 + .bss._Em_Message_txCnt
  577 + 0x00000000000002d0 0x1 Output/DUREX.obj
  578 + 0x00000000000002d0 _Em_Message_txCnt
  579 + *fill* 0x00000000000002d1 0x1 00
  580 + .bss._Em_Message_txBuf
  581 + 0x00000000000002d2 0x2 Output/DUREX.obj
  582 + 0x00000000000002d2 _Em_Message_txBuf
  583 + .bss._Em_Message_rxCnt
  584 + 0x00000000000002d4 0x1 Output/DUREX.obj
  585 + 0x00000000000002d4 _Em_Message_rxCnt
  586 + *fill* 0x00000000000002d5 0x1 00
  587 + .bss._Em_Message_rxBuf
  588 + 0x00000000000002d6 0x2 Output/DUREX.obj
  589 + 0x00000000000002d6 _Em_Message_rxBuf
  590 + .bss.Em_App_outBuf
  591 + 0x00000000000002d8 0x2 Output/DUREX.obj
  592 + 0x00000000000002d8 Em_App_outBuf
  593 + .bss.Em_App_xmitMask
  594 + 0x00000000000002da 0x4 Output/DUREX.obj
  595 + 0x00000000000002da Em_App_xmitMask
  596 + .bss.Em_App_fileIndex
  597 + 0x00000000000002de 0x4 Output/DUREX.obj
  598 + 0x00000000000002de Em_App_fileIndex
  599 + .bss.Em_App_state
  600 + 0x00000000000002e2 0x1 Output/DUREX.obj
  601 + 0x00000000000002e2 Em_App_state
  602 + *fill* 0x00000000000002e3 0x1 00
  603 + .bss.handlerEvents
  604 + 0x00000000000002e4 0x2 Output/Hal.obj
  605 + .bss.handlerTab
  606 + 0x00000000000002e6 0x6 Output/Hal.obj
  607 + .bss.clockTick
  608 + 0x00000000000002ec 0x2 Output/Hal.obj
  609 + *(COMMON)
  610 + COMMON 0x00000000000002ee 0xec Output/DUREX.obj
  611 + 0x00000000000002ee Em_App_recvIdx
  612 + 0x00000000000002ef Em_App_xmitSize
  613 + 0x00000000000002f0 Em_App_valp
  614 + 0x00000000000002f2 Em_App_ind_u
  615 + 0x00000000000002fe Em_App_recvSize
  616 + 0x0000000000000300 Em_App_msg_u
  617 + 0x00000000000003d2 Em_App_pdHdlr
  618 + 0x00000000000003d4 Em_App_bufp
  619 + 0x00000000000003d6 Em_App_xmitIdx
  620 + 0x00000000000003d8 Em_App_desc
  621 + 0x00000000000003da . = ALIGN (0x2)
  622 + 0x00000000000003da PROVIDE (__bss_end, .)
  623 + 0x00000000000001d8 PROVIDE (__bss_size, SIZEOF (.bss))
  624 +
  625 +.noinit 0x00000000000003da 0x2 load address 0x000000000000c8f6
  626 + 0x00000000000003da PROVIDE (__noinit_start, .)
  627 + *(.noinit .noinit.*)
  628 + .noinit.crt0 0x00000000000003da 0x2 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o)
  629 + 0x00000000000003da __wdt_clear_value
  630 + 0x00000000000003dc . = ALIGN (0x2)
  631 + 0x00000000000003dc PROVIDE (__noinit_end, .)
  632 + 0x00000000000003dc . = ALIGN (0x2)
  633 + 0x00000000000003dc _end = .
  634 +
  635 +.infomem 0x0000000000001000 0x0
  636 + *(.infomem)
  637 + 0x0000000000001000 . = ALIGN (0x2)
  638 + *(.infomem.*)
  639 +
  640 +.infomemnobits 0x0000000000001000 0x0
  641 + *(.infomemnobits)
  642 + 0x0000000000001000 . = ALIGN (0x2)
  643 + *(.infomemnobits.*)
  644 +
  645 +.infoa
  646 + *(.infoa .infoa.*)
  647 +
  648 +.infob
  649 + *(.infob .infob.*)
  650 +
  651 +.infoc
  652 + *(.infoc .infoc.*)
  653 +
  654 +.infod
  655 + *(.infod .infod.*)
  656 +
  657 +.vectors 0x000000000000ffe0 0x20
  658 + 0x000000000000ffe0 PROVIDE (__vectors_start, .)
  659 + *(.vectors*)
  660 + .vectors 0x000000000000ffe0 0x20 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/crt0ivtbl16.o
  661 + 0x000000000000ffe0 __ivtbl_16
  662 + 0x0000000000010000 _vectors_end = .
  663 +
  664 +.fartext 0x0000000000000000 0x0
  665 + 0x0000000000000000 . = ALIGN (0x2)
  666 + *(.fartext)
  667 + 0x0000000000000000 . = ALIGN (0x2)
  668 + *(.fartext.*)
  669 + 0x0000000000000000 _efartext = .
  670 +
  671 +.profiler
  672 + *(.profiler)
  673 +
  674 +.stab
  675 + *(.stab)
  676 +
  677 +.stabstr
  678 + *(.stabstr)
  679 +
  680 +.stab.excl
  681 + *(.stab.excl)
  682 +
  683 +.stab.exclstr
  684 + *(.stab.exclstr)
  685 +
  686 +.stab.index
  687 + *(.stab.index)
  688 +
  689 +.stab.indexstr
  690 + *(.stab.indexstr)
  691 +
  692 +.comment
  693 + *(.comment)
  694 +
  695 +.debug
  696 + *(.debug)
  697 +
  698 +.line
  699 + *(.line)
  700 +
  701 +.debug_srcinfo
  702 + *(.debug_srcinfo)
  703 +
  704 +.debug_sfnames
  705 + *(.debug_sfnames)
  706 +
  707 +.debug_aranges 0x0000000000000000 0x1c8
  708 + *(.debug_aranges)
  709 + .debug_aranges
  710 + 0x0000000000000000 0x40 Output/DUREX-Prog.obj
  711 + .debug_aranges
  712 + 0x0000000000000040 0x70 Output/DUREX.obj
  713 + .debug_aranges
  714 + 0x00000000000000b0 0x78 Output/Hal.obj
  715 + .debug_aranges
  716 + 0x0000000000000128 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a(strcmp.o)
  717 + .debug_aranges
  718 + 0x000000000000013c 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/../../../../msp430/lib/libc.a(memcpy.o)
  719 + .debug_aranges
  720 + 0x0000000000000150 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o)
  721 + .debug_aranges
  722 + 0x0000000000000164 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__init_stack.o)
  723 + .debug_aranges
  724 + 0x0000000000000178 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_copy_data.o)
  725 + .debug_aranges
  726 + 0x000000000000018c 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_clear_bss.o)
  727 + .debug_aranges
  728 + 0x00000000000001a0 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_endless_loop__.o)
  729 + .debug_aranges
  730 + 0x00000000000001b4 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_unexpected_.o)
  731 +
  732 +.debug_pubnames
  733 + *(.debug_pubnames)
  734 +
  735 +.debug_info 0x0000000000000000 0x1eee
  736 + *(.debug_info)
  737 + .debug_info 0x0000000000000000 0x44a Output/DUREX-Prog.obj
  738 + .debug_info 0x000000000000044a 0x91b Output/DUREX.obj
  739 + .debug_info 0x0000000000000d65 0xc78 Output/Hal.obj
  740 + .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)
  741 + .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)
  742 + .debug_info 0x0000000000001b94 0x8f /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o)
  743 + .debug_info 0x0000000000001c23 0x8f /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__init_stack.o)
  744 + .debug_info 0x0000000000001cb2 0x8f /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_copy_data.o)
  745 + .debug_info 0x0000000000001d41 0x8f /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_clear_bss.o)
  746 + .debug_info 0x0000000000001dd0 0x8f /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_endless_loop__.o)
  747 + .debug_info 0x0000000000001e5f 0x8f /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_unexpected_.o)
  748 + *(.gnu.linkonce.wi.*)
  749 +
  750 +.debug_abbrev 0x0000000000000000 0x85b
  751 + *(.debug_abbrev)
  752 + .debug_abbrev 0x0000000000000000 0x152 Output/DUREX-Prog.obj
  753 + .debug_abbrev 0x0000000000000152 0x240 Output/DUREX.obj
  754 + .debug_abbrev 0x0000000000000392 0x35a Output/Hal.obj
  755 + .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)
  756 + .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)
  757 + .debug_abbrev 0x00000000000007e3 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o)
  758 + .debug_abbrev 0x00000000000007f7 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__init_stack.o)
  759 + .debug_abbrev 0x000000000000080b 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_copy_data.o)
  760 + .debug_abbrev 0x000000000000081f 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_clear_bss.o)
  761 + .debug_abbrev 0x0000000000000833 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_endless_loop__.o)
  762 + .debug_abbrev 0x0000000000000847 0x14 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_unexpected_.o)
  763 +
  764 +.debug_line 0x0000000000000000 0xd16
  765 + *(.debug_line)
  766 + .debug_line 0x0000000000000000 0x1a8 Output/DUREX-Prog.obj
  767 + .debug_line 0x00000000000001a8 0x3bf Output/DUREX.obj
  768 + .debug_line 0x0000000000000567 0x3a9 Output/Hal.obj
  769 + .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)
  770 + .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)
  771 + .debug_line 0x0000000000000a67 0x72 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__watchdog_support.o)
  772 + .debug_line 0x0000000000000ad9 0x70 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(__init_stack.o)
  773 + .debug_line 0x0000000000000b49 0x76 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_copy_data.o)
  774 + .debug_line 0x0000000000000bbf 0x76 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_clear_bss.o)
  775 + .debug_line 0x0000000000000c35 0x71 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_endless_loop__.o)
  776 + .debug_line 0x0000000000000ca6 0x70 /Applications/Development/Em-Builder-IDE/eclipse/emmoco/msptools/bin/../lib/gcc/msp430/4.6.1/libcrt0.a(_unexpected_.o)
  777 +
  778 +.debug_frame 0x0000000000000000 0x412
  779 + *(.debug_frame)
  780 + .debug_frame 0x0000000000000000 0xa2 Output/DUREX-Prog.obj
  781 + .debug_frame 0x00000000000000a2 0x17a Output/DUREX.obj
  782 + .debug_frame 0x000000000000021c 0x1a0 Output/Hal.obj
  783 + .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)
  784 + .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)
  785 +
  786 +.debug_str 0x0000000000000000 0xa89
  787 + *(.debug_str)
  788 + .debug_str 0x0000000000000000 0x2b6 Output/DUREX-Prog.obj
  789 + 0x2ef (size before relaxing)
  790 + .debug_str 0x00000000000002b6 0x3d9 Output/DUREX.obj
  791 + 0x535 (size before relaxing)
  792 + .debug_str 0x000000000000068f 0x367 Output/Hal.obj
  793 + 0x593 (size before relaxing)
  794 + .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)
  795 + 0xde (size before relaxing)
  796 + .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)
  797 + 0x100 (size before relaxing)
  798 +
  799 +.debug_loc 0x0000000000000000 0x868
  800 + *(.debug_loc)
  801 + .debug_loc 0x0000000000000000 0x28 Output/DUREX-Prog.obj
  802 + .debug_loc 0x0000000000000028 0x447 Output/DUREX.obj
  803 + .debug_loc 0x000000000000046f 0x1e5 Output/Hal.obj
  804 + .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)
  805 + .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)
  806 +
  807 +.debug_macinfo
  808 + *(.debug_macinfo)
  809 +
  810 +.debug_pubtypes
  811 + *(.debug_pubtypes)
  812 +
  813 +.debug_ranges 0x0000000000000000 0x1a4
  814 + *(.debug_ranges)
  815 + .debug_ranges 0x0000000000000000 0x34 Output/DUREX-Prog.obj
  816 + .debug_ranges 0x0000000000000034 0x64 Output/DUREX.obj
  817 + .debug_ranges 0x0000000000000098 0x10c Output/Hal.obj
  818 + 0x0000000000000400 PROVIDE (__stack, (ORIGIN (ram) + 0x200))
  819 + 0x000000000000c8f4 PROVIDE (__data_start_rom, _etext)
  820 + 0x000000000000c8f6 PROVIDE (__data_end_rom, (_etext + SIZEOF (.data)))
  821 +OUTPUT(Output/DUREX-Prog.out elf32-msp430)
BTVendor_device/Output/DUREX-Prog.obj 0 โ†’ 100644
No preview for this file type
BTVendor_device/Output/DUREX-Prog.out 0 โ†’ 100755
No preview for this file type
BTVendor_device/Output/DUREX.obj 0 โ†’ 100644
No preview for this file type
BTVendor_device/Output/Hal.obj 0 โ†’ 100644
No preview for this file type
BTVendor_device/Schema-Imports/system@emmoco.com/System.ems 0 โ†’ 100644
  1 +owner = "system@emmoco.com"
  2 +
  3 +schema System {
  4 +
  5 + // protocolLevel #13
  6 +
  7 + enum ParameterGroup {
  8 + GROUP_A, GROUP_B
  9 + }
  10 +
  11 + // protocolLevel #1
  12 +
  13 + uint8 $schemaUuid[16] { // protocolLevel #10 -- invisible to applications
  14 + readonly
  15 + }
  16 +
  17 + uint16 $mcmProtocolLevel {
  18 + readonly
  19 + }
  20 +
  21 + uint16 $eapProtocolLevel {
  22 + readonly
  23 + }
  24 +
  25 + uint8 $eapBuildDate[8] { // protocolLevel #5 -- rename from $eapBuildNumber
  26 + readonly
  27 + }
  28 +
  29 + // protocolLevel #2
  30 +
  31 + int16 $fileIndexReset {
  32 + writeonly
  33 + }
  34 +
  35 + // protocolLevel #5
  36 +
  37 + // protocolLevel #12 -- increase size to 20
  38 +
  39 + uint8 $schemaHash[20] {
  40 + readonly
  41 + }
  42 +
  43 + // protocolLevel #7
  44 +
  45 + struct ResourceCount {
  46 + uint8 app
  47 + uint8 sys
  48 + }
  49 +
  50 + ResourceCount $resourceCount {
  51 + readonly
  52 + }
  53 +
  54 + // protocolLevel #9
  55 +
  56 + int8 $mobileRssi {
  57 + readonly
  58 + }
  59 +
  60 + // protocolLevel #11
  61 +
  62 + uint8 $mcmDisconnect {
  63 + writeonly
  64 + }
  65 +
  66 + // protocolLevel #13
  67 +
  68 + ParameterGroup $activeGroup {
  69 + readwrite
  70 + }
  71 +
  72 +}
BTVendor_device/bundle.properties 0 โ†’ 100644
  1 +# generated file - do not edit
  2 +
  3 +bundle.requires = com.emmoco.schema.translator
  4 +com.emmoco.framework.Properties.applicationDirectory = Em
  5 +com.emmoco.framework.Properties.schemaDestinationDirectory = Em
  6 +com.emmoco.framework.Properties.serverAPIToken =
  7 +com.emmoco.framework.Properties.align16 = 2
  8 +com.emmoco.framework.Properties.align32 = 4
  9 +com.emmoco.framework.Properties.schemaFile = /Users/imanol/devel/durex/DUREX/DUREX.ems
  10 +com.emmoco.framework.Properties.toolVersion = 13.4.1.201311121909
BTVendor_device/makefile 0 โ†’ 100644
  1 +APPNAME = DUREX
  2 +PLATFORM = ../Platform-MSP-EXP430G2
  3 +
  4 +include $(PLATFORM)/rules.mk