Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of lmic_MOTE_L152RC by
TARGET_MOTE_L152RC/debug.cpp@9:83ae7f34e88c, 2015-11-16 (annotated)
- Committer:
- dudmuck
- Date:
- Mon Nov 16 23:52:45 2015 +0000
- Revision:
- 9:83ae7f34e88c
- Parent:
- 0:f2716e543d97
- Child:
- 12:be4139e16c6f
correct join behavior after link dead (joining again)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dudmuck | 0:f2716e543d97 | 1 | //#include "oslmic.h" |
dudmuck | 0:f2716e543d97 | 2 | #include "lmic.h" |
dudmuck | 0:f2716e543d97 | 3 | #include "debug.h" |
dudmuck | 0:f2716e543d97 | 4 | #include "mbed.h" |
dudmuck | 0:f2716e543d97 | 5 | |
dudmuck | 0:f2716e543d97 | 6 | Serial pc(USBTX, USBRX); |
dudmuck | 0:f2716e543d97 | 7 | |
dudmuck | 0:f2716e543d97 | 8 | static DigitalOut red_led(PB_1); |
dudmuck | 0:f2716e543d97 | 9 | #define LED_ON 0 |
dudmuck | 0:f2716e543d97 | 10 | #define LED_OFF 1 |
dudmuck | 0:f2716e543d97 | 11 | |
dudmuck | 0:f2716e543d97 | 12 | void debug_init() |
dudmuck | 0:f2716e543d97 | 13 | { |
dudmuck | 0:f2716e543d97 | 14 | pc.baud(115200); |
dudmuck | 0:f2716e543d97 | 15 | |
dudmuck | 0:f2716e543d97 | 16 | // print banner |
dudmuck | 0:f2716e543d97 | 17 | debug_str("\r\n============== DEBUG STARTED ==============\r\n"); |
dudmuck | 0:f2716e543d97 | 18 | |
dudmuck | 0:f2716e543d97 | 19 | red_led = LED_OFF; |
dudmuck | 0:f2716e543d97 | 20 | } |
dudmuck | 0:f2716e543d97 | 21 | |
dudmuck | 0:f2716e543d97 | 22 | void debug_str (const char* str) |
dudmuck | 0:f2716e543d97 | 23 | { |
dudmuck | 0:f2716e543d97 | 24 | debug("%s", str); |
dudmuck | 0:f2716e543d97 | 25 | } |
dudmuck | 0:f2716e543d97 | 26 | |
dudmuck | 0:f2716e543d97 | 27 | void debug_event (int ev) |
dudmuck | 0:f2716e543d97 | 28 | { |
dudmuck | 0:f2716e543d97 | 29 | static const u1_t* evnames[] = { |
dudmuck | 0:f2716e543d97 | 30 | [EV_SCAN_TIMEOUT] = "SCAN_TIMEOUT", |
dudmuck | 0:f2716e543d97 | 31 | [EV_BEACON_FOUND] = "BEACON_FOUND", |
dudmuck | 0:f2716e543d97 | 32 | [EV_BEACON_MISSED] = "BEACON_MISSED", |
dudmuck | 0:f2716e543d97 | 33 | [EV_BEACON_TRACKED] = "BEACON_TRACKED", |
dudmuck | 0:f2716e543d97 | 34 | [EV_JOINING] = "JOINING", |
dudmuck | 0:f2716e543d97 | 35 | [EV_JOINED] = "JOINED", |
dudmuck | 0:f2716e543d97 | 36 | [EV_RFU1] = "RFU1", |
dudmuck | 0:f2716e543d97 | 37 | [EV_JOIN_FAILED] = "JOIN_FAILED", |
dudmuck | 0:f2716e543d97 | 38 | [EV_REJOIN_FAILED] = "REJOIN_FAILED", |
dudmuck | 0:f2716e543d97 | 39 | [EV_TXCOMPLETE] = "TXCOMPLETE", |
dudmuck | 0:f2716e543d97 | 40 | [EV_LOST_TSYNC] = "LOST_TSYNC", |
dudmuck | 0:f2716e543d97 | 41 | [EV_RESET] = "RESET", |
dudmuck | 0:f2716e543d97 | 42 | [EV_RXCOMPLETE] = "RXCOMPLETE", |
dudmuck | 0:f2716e543d97 | 43 | [EV_LINK_DEAD] = "LINK_DEAD", |
dudmuck | 0:f2716e543d97 | 44 | [EV_LINK_ALIVE] = "LINK_ALIVE", |
dudmuck | 0:f2716e543d97 | 45 | }; |
dudmuck | 0:f2716e543d97 | 46 | |
dudmuck | 0:f2716e543d97 | 47 | debug("%s\r\n", evnames[ev]); |
dudmuck | 0:f2716e543d97 | 48 | } |
dudmuck | 0:f2716e543d97 | 49 | |
dudmuck | 0:f2716e543d97 | 50 | void debug_val (const char* label, u4_t val) |
dudmuck | 0:f2716e543d97 | 51 | { |
dudmuck | 0:f2716e543d97 | 52 | debug("%s%d\r\n", label, val); |
dudmuck | 0:f2716e543d97 | 53 | } |
dudmuck | 0:f2716e543d97 | 54 | |
dudmuck | 0:f2716e543d97 | 55 | void debug_buf(const u1_t* buf, u2_t len) |
dudmuck | 0:f2716e543d97 | 56 | { |
dudmuck | 0:f2716e543d97 | 57 | while (len--) { |
dudmuck | 0:f2716e543d97 | 58 | debug("%02x ", *buf++); |
dudmuck | 0:f2716e543d97 | 59 | } |
dudmuck | 0:f2716e543d97 | 60 | debug("\r\n"); |
dudmuck | 0:f2716e543d97 | 61 | } |
dudmuck | 0:f2716e543d97 | 62 | |
dudmuck | 0:f2716e543d97 | 63 | void debug_led(unsigned char on) |
dudmuck | 0:f2716e543d97 | 64 | { |
dudmuck | 0:f2716e543d97 | 65 | if (on) |
dudmuck | 0:f2716e543d97 | 66 | red_led = LED_ON; |
dudmuck | 0:f2716e543d97 | 67 | else |
dudmuck | 0:f2716e543d97 | 68 | red_led = LED_OFF; |
dudmuck | 0:f2716e543d97 | 69 | } |
dudmuck | 0:f2716e543d97 | 70 | |
dudmuck | 0:f2716e543d97 | 71 | void debug_done() |
dudmuck | 0:f2716e543d97 | 72 | { |
dudmuck | 9:83ae7f34e88c | 73 | volatile int i; |
dudmuck | 9:83ae7f34e88c | 74 | |
dudmuck | 0:f2716e543d97 | 75 | /* block until last bit sent out debug UART */ |
dudmuck | 0:f2716e543d97 | 76 | while (!(USART2->SR & UART_FLAG_TC)) |
dudmuck | 0:f2716e543d97 | 77 | __NOP(); |
dudmuck | 9:83ae7f34e88c | 78 | |
dudmuck | 9:83ae7f34e88c | 79 | for (i = 0; i < 0x200; i++) |
dudmuck | 9:83ae7f34e88c | 80 | __nop(); |
dudmuck | 0:f2716e543d97 | 81 | } |