Simple program to determine Ethernet Rx bandwidth
main.cpp@0:35df02818f6d, 2011-02-25 (annotated)
- Committer:
- simon
- Date:
- Fri Feb 25 16:03:40 2011 +0000
- Revision:
- 0:35df02818f6d
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
simon | 0:35df02818f6d | 1 | #include "mbed.h" |
simon | 0:35df02818f6d | 2 | #include "Ethernet.h" |
simon | 0:35df02818f6d | 3 | |
simon | 0:35df02818f6d | 4 | Ethernet eth; |
simon | 0:35df02818f6d | 5 | |
simon | 0:35df02818f6d | 6 | #define NPACKETS 100000 |
simon | 0:35df02818f6d | 7 | |
simon | 0:35df02818f6d | 8 | int main() { |
simon | 0:35df02818f6d | 9 | printf("Hello Ethernet Rx Benchmark!\n"); |
simon | 0:35df02818f6d | 10 | |
simon | 0:35df02818f6d | 11 | char buffer[0x600]; |
simon | 0:35df02818f6d | 12 | int size = 0; |
simon | 0:35df02818f6d | 13 | |
simon | 0:35df02818f6d | 14 | char buf[6] = {0}; |
simon | 0:35df02818f6d | 15 | eth.address(buf); |
simon | 0:35df02818f6d | 16 | printf("mbed MAC: %02hx:%02hx:%02hx:%02hx:%02hx:%02hx\n", |
simon | 0:35df02818f6d | 17 | buf[0], buf[1], buf[2], buf[3], buf[4], buf[5]); |
simon | 0:35df02818f6d | 18 | |
simon | 0:35df02818f6d | 19 | while(!eth.link()); |
simon | 0:35df02818f6d | 20 | |
simon | 0:35df02818f6d | 21 | printf("Waiting for %d packets...\n", NPACKETS); |
simon | 0:35df02818f6d | 22 | |
simon | 0:35df02818f6d | 23 | Timer t; |
simon | 0:35df02818f6d | 24 | int n = 0; |
simon | 0:35df02818f6d | 25 | for(int i=0; i<NPACKETS; i++) { |
simon | 0:35df02818f6d | 26 | do { |
simon | 0:35df02818f6d | 27 | size = eth.receive(); |
simon | 0:35df02818f6d | 28 | } while(size <= 0); |
simon | 0:35df02818f6d | 29 | eth.read(buffer, size); |
simon | 0:35df02818f6d | 30 | n += size; |
simon | 0:35df02818f6d | 31 | } |
simon | 0:35df02818f6d | 32 | t.stop(); |
simon | 0:35df02818f6d | 33 | printf("Time = %.2f seconds\n", t.read()); |
simon | 0:35df02818f6d | 34 | |
simon | 0:35df02818f6d | 35 | float bw = n * 8 / t.read(); |
simon | 0:35df02818f6d | 36 | printf("bandwidth = %.2f kbps\n", bw / 1024.0); |
simon | 0:35df02818f6d | 37 | |
simon | 0:35df02818f6d | 38 | } |