Test of UART RX overrun handling (lockup test)
Type in characters fast into serial terminal too see if lockup occurs from UART RX overrun.
main.cpp@0:76154cf1151b, 2015-11-20 (annotated)
- Committer:
- dudmuck
- Date:
- Fri Nov 20 00:12:58 2015 +0000
- Revision:
- 0:76154cf1151b
test of UART RX overrun handling
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dudmuck | 0:76154cf1151b | 1 | #include "mbed.h" |
dudmuck | 0:76154cf1151b | 2 | |
dudmuck | 0:76154cf1151b | 3 | //------------------------------------ |
dudmuck | 0:76154cf1151b | 4 | // Hyperterminal configuration |
dudmuck | 0:76154cf1151b | 5 | // 9600 bauds, 8-bit data, no parity |
dudmuck | 0:76154cf1151b | 6 | // UART RX overrun: Type in characters quickly to see if program freezes |
dudmuck | 0:76154cf1151b | 7 | //------------------------------------ |
dudmuck | 0:76154cf1151b | 8 | |
dudmuck | 0:76154cf1151b | 9 | Serial pc(USBTX, USBRX); |
dudmuck | 0:76154cf1151b | 10 | |
dudmuck | 0:76154cf1151b | 11 | DigitalOut myled(LED1); |
dudmuck | 0:76154cf1151b | 12 | |
dudmuck | 0:76154cf1151b | 13 | void rx_cb() |
dudmuck | 0:76154cf1151b | 14 | { |
dudmuck | 0:76154cf1151b | 15 | int i; |
dudmuck | 0:76154cf1151b | 16 | |
dudmuck | 0:76154cf1151b | 17 | pc.putc(pc.getc()); // echo |
dudmuck | 0:76154cf1151b | 18 | myled = 1; |
dudmuck | 0:76154cf1151b | 19 | |
dudmuck | 0:76154cf1151b | 20 | /* delay is very bad action here, |
dudmuck | 0:76154cf1151b | 21 | * but purpose is to create a UART RX overrun */ |
dudmuck | 0:76154cf1151b | 22 | for (i = 0; i < 0x20000; i++) |
dudmuck | 0:76154cf1151b | 23 | __nop(); |
dudmuck | 0:76154cf1151b | 24 | |
dudmuck | 0:76154cf1151b | 25 | myled = 0; |
dudmuck | 0:76154cf1151b | 26 | } |
dudmuck | 0:76154cf1151b | 27 | |
dudmuck | 0:76154cf1151b | 28 | int main() |
dudmuck | 0:76154cf1151b | 29 | { |
dudmuck | 0:76154cf1151b | 30 | pc.printf("\r\nstart\r\n"); |
dudmuck | 0:76154cf1151b | 31 | pc.attach(&rx_cb); |
dudmuck | 0:76154cf1151b | 32 | |
dudmuck | 0:76154cf1151b | 33 | while(1) { |
dudmuck | 0:76154cf1151b | 34 | __nop(); |
dudmuck | 0:76154cf1151b | 35 | } |
dudmuck | 0:76154cf1151b | 36 | } |