Rewrite from scratch a TCP/IP stack for mbed. So far the following parts are usable: Drivers: - EMAC driver (from CMSIS 2.0) Protocols: - Ethernet protocol - ARP over ethernet for IPv4 - IPv4 over Ethernet - ICMPv4 over IPv4 - UDPv4 over IPv4 APIs: - Sockets for UDPv4 The structure of this stack is designed to be very modular. Each protocol can register one or more protocol to handle its payload, and in each protocol, an API can be hooked (like Sockets for example). This is an early release.
Debug.h@6:7f7f29fde21c, 2011-06-13 (annotated)
- Committer:
- Benoit
- Date:
- Mon Jun 13 15:40:56 2011 +0000
- Revision:
- 6:7f7f29fde21c
- Parent:
- 1:f4040665bc61
Corrected a bug in UDP Sockets where the destination port was wrong.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Benoit | 0:19f5f51584de | 1 | /* |
Benoit | 0:19f5f51584de | 2 | * $Id: Debug.h 24 2011-06-07 15:51:50Z benoit $ |
Benoit | 0:19f5f51584de | 3 | * $Author: benoit $ |
Benoit | 0:19f5f51584de | 4 | * $Date: 2011-06-07 17:51:50 +0200 (mar., 07 juin 2011) $ |
Benoit | 0:19f5f51584de | 5 | * $Rev: 24 $ |
Benoit | 0:19f5f51584de | 6 | * |
Benoit | 0:19f5f51584de | 7 | * |
Benoit | 0:19f5f51584de | 8 | * |
Benoit | 0:19f5f51584de | 9 | * |
Benoit | 0:19f5f51584de | 10 | * |
Benoit | 0:19f5f51584de | 11 | */ |
Benoit | 0:19f5f51584de | 12 | |
Benoit | 0:19f5f51584de | 13 | #ifndef __DEBUG_H__ |
Benoit | 0:19f5f51584de | 14 | #define __DEBUG_H__ |
Benoit | 0:19f5f51584de | 15 | |
Benoit | 0:19f5f51584de | 16 | #include "mbedNet.h" |
Benoit | 0:19f5f51584de | 17 | #include <stdio.h> |
Benoit | 0:19f5f51584de | 18 | #include <stdint.h> |
Benoit | 0:19f5f51584de | 19 | |
Benoit | 0:19f5f51584de | 20 | #define DEBUG_BUFFER_DUMP_LINE_LEN 16 |
Benoit | 0:19f5f51584de | 21 | |
Benoit | 0:19f5f51584de | 22 | |
Benoit | 0:19f5f51584de | 23 | #define DEBUG_LEVEL_INFO 0x00000001ul |
Benoit | 0:19f5f51584de | 24 | #define DEBUG_LEVEL_WARNING 0x00000002ul |
Benoit | 0:19f5f51584de | 25 | #define DEBUG_LEVEL_ERROR 0x00000004ul |
Benoit | 0:19f5f51584de | 26 | #define DEBUG_LEVEL_PANIC 0x00000008ul |
Benoit | 0:19f5f51584de | 27 | #define DEBUG_LEVEL_VERBOSE0 0x00000010ul |
Benoit | 0:19f5f51584de | 28 | #define DEBUG_LEVEL_VERBOSE1 0x00000020ul |
Benoit | 0:19f5f51584de | 29 | #define DEBUG_LEVEL_VERBOSE2 0x00000040ul |
Benoit | 0:19f5f51584de | 30 | #define DEBUG_LEVEL_ALL 0xFFFFFFFFul |
Benoit | 0:19f5f51584de | 31 | |
Benoit | 0:19f5f51584de | 32 | typedef uint32_t Debug_LevelMask_t; |
Benoit | 0:19f5f51584de | 33 | |
Benoit | 0:19f5f51584de | 34 | |
Benoit | 0:19f5f51584de | 35 | #define DEBUG_MODULE_MBEDNETIF 0x00000001ul |
Benoit | 0:19f5f51584de | 36 | #define DEBUG_MODULE_NETIF 0x00000002ul |
Benoit | 0:19f5f51584de | 37 | #define DEBUG_MODULE_ARP 0x00000004ul |
Benoit | 0:19f5f51584de | 38 | #define DEBUG_MODULE_ETHERNET 0x00000008ul |
Benoit | 0:19f5f51584de | 39 | #define DEBUG_MODULE_IPV4 0x00000010ul |
Benoit | 0:19f5f51584de | 40 | #define DEBUG_MODULE_ICMPV4 0x00000020ul |
Benoit | 0:19f5f51584de | 41 | #define DEBUG_MODULE_UDPV4 0x00000040ul |
Benoit | 0:19f5f51584de | 42 | #define DEBUG_MODULE_TCPV4 0x00000080ul |
Benoit | 0:19f5f51584de | 43 | #define DEBUG_MODULE_SOCKETS 0x00000100ul |
Benoit | 0:19f5f51584de | 44 | #define DEBUG_MODULE_QUEUE 0x00000200ul |
Benoit | 0:19f5f51584de | 45 | #define DEBUG_MODULE_ALL 0xFFFFFFFFul |
Benoit | 0:19f5f51584de | 46 | |
Benoit | 0:19f5f51584de | 47 | |
Benoit | 0:19f5f51584de | 48 | #ifndef DEBUG_ON |
Benoit | 0:19f5f51584de | 49 | |
Benoit | 0:19f5f51584de | 50 | #define DEBUG_SOURCE(level, x) |
Benoit | 0:19f5f51584de | 51 | #define DEBUG_MODULE(level, x) |
Benoit | 0:19f5f51584de | 52 | #define DEBUG(level, x) |
Benoit | 0:19f5f51584de | 53 | #define DEBUG_NOCRLF(level, x) |
Benoit | 0:19f5f51584de | 54 | #define DEBUG_CLEAR() |
Benoit | 0:19f5f51584de | 55 | #define DEBUG_RAW(x) |
Benoit | 0:19f5f51584de | 56 | #define DEBUG_RAW_NOCRLF(x) |
Benoit | 0:19f5f51584de | 57 | #define DEBUG_BLOCK(x) |
Benoit | 0:19f5f51584de | 58 | |
Benoit | 0:19f5f51584de | 59 | #else /* DEBUG_ON */ |
Benoit | 0:19f5f51584de | 60 | |
Benoit | 0:19f5f51584de | 61 | #define DEBUG_CONDITION(level) (((DEBUG_CURRENT_MODULE_ID & debug_ModuleMask) != 0) && ((level & debug_LevelMask)) != 0) |
Benoit | 0:19f5f51584de | 62 | |
Benoit | 0:19f5f51584de | 63 | #define DEBUG_SOURCE(level, x) if DEBUG_CONDITION(level) \ |
Benoit | 0:19f5f51584de | 64 | { \ |
Benoit | 0:19f5f51584de | 65 | printf("%10s: [%10s] %s:%d %s():", \ |
Benoit | 0:19f5f51584de | 66 | DEBUG_CURRENT_MODULE_NAME, \ |
Benoit | 0:19f5f51584de | 67 | Debug_GetText(level), \ |
Benoit | 0:19f5f51584de | 68 | __FILE__, __LINE__, __FUNCTION__); \ |
Benoit | 0:19f5f51584de | 69 | printf x; printf("\r\n"); \ |
Benoit | 0:19f5f51584de | 70 | } |
Benoit | 0:19f5f51584de | 71 | |
Benoit | 0:19f5f51584de | 72 | #define DEBUG_MODULE(level, x) if DEBUG_CONDITION(level) { printf("[%-10s] %10s: ", Debug_GetText(level), DEBUG_CURRENT_MODULE_NAME); printf x; printf("\r\n"); } |
Benoit | 0:19f5f51584de | 73 | #define DEBUG(level, x) if DEBUG_CONDITION(level) { printf x; printf("\r\n") } |
Benoit | 0:19f5f51584de | 74 | #define DEBUG_NOCRLF(level, x) if DEBUG_CONDITION(level) { printf x; } |
Benoit | 0:19f5f51584de | 75 | #define DEBUG_CLEAR() printf("%c", 12) |
Benoit | 0:19f5f51584de | 76 | #define DEBUG_RAW(x) printf x; printf("\r\n") |
Benoit | 0:19f5f51584de | 77 | #define DEBUG_RAW_NOCRLF(x) printf x |
Benoit | 0:19f5f51584de | 78 | |
Benoit | 0:19f5f51584de | 79 | |
Benoit | 0:19f5f51584de | 80 | #define DEBUG_BLOCK(level) if DEBUG_CONDITION(level) |
Benoit | 0:19f5f51584de | 81 | |
Benoit | 0:19f5f51584de | 82 | |
Benoit | 0:19f5f51584de | 83 | #endif /* DEBUG_ON */ |
Benoit | 0:19f5f51584de | 84 | |
Benoit | 0:19f5f51584de | 85 | |
Benoit | 0:19f5f51584de | 86 | typedef uint32_t Debug_ModuleMask_t; |
Benoit | 0:19f5f51584de | 87 | |
Benoit | 0:19f5f51584de | 88 | |
Benoit | 0:19f5f51584de | 89 | extern Debug_LevelMask_t debug_LevelMask; |
Benoit | 0:19f5f51584de | 90 | extern Debug_ModuleMask_t debug_ModuleMask; |
Benoit | 0:19f5f51584de | 91 | |
Benoit | 0:19f5f51584de | 92 | |
Benoit | 0:19f5f51584de | 93 | |
Benoit | 1:f4040665bc61 | 94 | const char *Debug_GetText(uint32_t level); |
Benoit | 1:f4040665bc61 | 95 | void Debug_DumpBufferHex(uint8_t *buffer, int32_t length); |
Benoit | 1:f4040665bc61 | 96 | void Debug_SetMasks(Debug_ModuleMask_t moduleMask, Debug_LevelMask_t levelMask); |
Benoit | 0:19f5f51584de | 97 | |
Benoit | 0:19f5f51584de | 98 | #endif /* __DEBUG_H__ */ |