Changeset 778
- Timestamp:
- 08/04/08 20:51:26 (4 months ago)
- Location:
- firmware/trunk/core
- Files:
-
- 4 modified
-
lwip/contrib/port/FreeRTOS/AT91SAM7X/arch/sys_arch.h (modified) (2 diffs)
-
lwip/contrib/port/FreeRTOS/AT91SAM7X/sys_arch.c (modified) (8 diffs)
-
makingthings/SAM7_EMAC.c (modified) (3 diffs)
-
makingthings/lwipopts.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
firmware/trunk/core/lwip/contrib/port/FreeRTOS/AT91SAM7X/arch/sys_arch.h
r688 r778 40 40 #define SYS_MBOX_NULL (xQueueHandle)0 41 41 #define SYS_SEM_NULL (xSemaphoreHandle)0 42 // MakingThings - addition for lwip 1.3.043 // FIXME - more robust implementation...44 #define sys_arch_mbox_tryfetch(mbox,msg) sys_arch_mbox_fetch(mbox,msg,1)45 42 46 43 typedef xSemaphoreHandle sys_sem_t; … … 48 45 typedef xTaskHandle sys_thread_t; 49 46 47 /* Message queue constants. */ 48 #define archMESG_QUEUE_LENGTH ( 6 ) 49 #define archPOST_BLOCK_TIME_MS ( ( unsigned portLONG ) 10000 ) 50 50 51 #endif /* __SYS_RTXC_H__ */ 51 52 -
firmware/trunk/core/lwip/contrib/port/FreeRTOS/AT91SAM7X/sys_arch.c
r688 r778 39 39 #include "lwip/sys.h" 40 40 #include "lwip/mem.h" 41 42 /* Message queue constants. */ 43 #define archMESG_QUEUE_LENGTH ( 6 ) 44 #define archPOST_BLOCK_TIME_MS ( ( unsigned portLONG ) 10000 ) 41 #include "lwip/stats.h" 42 #include "lwipopts.h" 45 43 46 44 struct timeoutlist … … 51 49 52 50 /* This is the number of threads that can be started with sys_thread_new() */ 53 // #define SYS_THREAD_MAX 6 54 55 #define lwipTCP_STACK_SIZE 200 56 #define lwipBASIC_SERVER_STACK_SIZE 150 51 //#define SYS_THREAD_MAX 4 57 52 58 53 // static struct timeoutlist timeoutlist[SYS_THREAD_MAX]; … … 76 71 mbox = xQueueCreate( archMESG_QUEUE_LENGTH, sizeof( void * ) ); 77 72 73 #if SYS_STATS 74 ++lwip_stats.sys.mbox.used; 75 if (lwip_stats.sys.mbox.max < lwip_stats.sys.mbox.used) { 76 lwip_stats.sys.mbox.max = lwip_stats.sys.mbox.used; 77 } 78 #endif /* SYS_STATS */ 79 78 80 return mbox; 79 81 } … … 91 93 { 92 94 /* Line for breakpoint. Should never break here! */ 93 __asm volatile ( "NOP" ); 95 portNOP(); 96 #if SYS_STATS 97 lwip_stats.sys.mbox.err++; 98 #endif /* SYS_STATS */ 94 99 } 95 100 96 101 vQueueDelete( mbox ); 102 103 #if SYS_STATS 104 --lwip_stats.sys.mbox.used; 105 #endif /* SYS_STATS */ 97 106 } 98 107 … … 107 116 /*-----------------------------------------------------------------------------------*/ 108 117 // MakingThings - added for lwip 1.3.0 109 // Posts the "msg" to the mailbox. This function have to block until 110 // the "msg" is really posted. 118 // Posts the "msg" to the mailbox. 111 119 err_t 112 120 sys_mbox_trypost(sys_mbox_t mbox, void *msg) 113 { 114 portBASE_TYPE result = xQueueSend( mbox, &msg, ( portTickType ) ( archPOST_BLOCK_TIME_MS / portTICK_RATE_MS ) ); 115 while( result == errQUEUE_FULL) 116 { 117 vTaskDelay(1); 118 result = xQueueSend( mbox, &msg, ( portTickType ) ( archPOST_BLOCK_TIME_MS / portTICK_RATE_MS ) ); 119 } 120 return ERR_OK; 121 { 122 err_t result; 123 124 if ( xQueueSend( mbox, &msg, 0 ) == pdPASS ) 125 { 126 result = ERR_OK; 127 } 128 else { 129 // could not post, queue must be full 130 result = ERR_MEM; 131 #if SYS_STATS 132 lwip_stats.sys.mbox.err++; 133 #endif /* SYS_STATS */ 134 } 135 136 return result; 121 137 } 122 138 … … 185 201 186 202 /*-----------------------------------------------------------------------------------*/ 203 /* 204 Similar to sys_arch_mbox_fetch, but if message is not ready immediately, we'll 205 return with SYS_MBOX_EMPTY. On success, 0 is returned. 206 */ 207 u32_t sys_arch_mbox_tryfetch(sys_mbox_t mbox, void **msg) 208 { 209 void *dummyptr; 210 211 if ( msg == NULL ) 212 { 213 msg = &dummyptr; 214 } 215 216 if ( pdTRUE == xQueueReceive( mbox, &(*msg), 0 ) ) 217 { 218 return ERR_OK; 219 } 220 else 221 { 222 return SYS_MBOX_EMPTY; 223 } 224 } 225 226 /*-----------------------------------------------------------------------------------*/ 187 227 // Creates and returns a new semaphore. The "count" argument specifies 188 228 // the initial state of the semaphore. TBD finish and test … … 202 242 if( xSemaphore == NULL ) 203 243 { 244 #if SYS_STATS 245 ++lwip_stats.sys.sem.err; 246 #endif /* SYS_STATS */ 204 247 return NULL; // TBD need assert 205 248 } 206 249 else 207 250 { 251 #if SYS_STATS 252 ++lwip_stats.sys.sem.used; 253 if (lwip_stats.sys.sem.max < lwip_stats.sys.sem.used) { 254 lwip_stats.sys.sem.max = lwip_stats.sys.sem.used; 255 } 256 #endif /* SYS_STATS */ 208 257 return xSemaphore; 209 258 } … … 281 330 sys_sem_free(sys_sem_t sem) 282 331 { 332 #if SYS_STATS 333 --lwip_stats.sys.sem.used; 334 #endif /* SYS_STATS */ 283 335 vQueueDelete( sem ); 284 336 } -
firmware/trunk/core/makingthings/SAM7_EMAC.c
r769 r778 522 522 while( !( AT91C_BASE_RSTC->RSTC_RSR & AT91C_RSTC_NRSTL ) ) 523 523 { 524 __asm volatile ( "NOP" ); 525 } 526 __asm volatile ( "NOP" ); 524 portNOP(); 525 } 526 527 portNOP(); 527 528 528 529 /* Setup the pins. */ … … 783 784 while( !( AT91C_BASE_EMAC->EMAC_NSR & AT91C_EMAC_IDLE ) ) 784 785 { 785 __asm( "NOP");786 portNOP(); 786 787 } 787 788 … … 806 807 while( !( AT91C_BASE_EMAC->EMAC_NSR & AT91C_EMAC_IDLE ) ) 807 808 { 808 __asm( "NOP");809 portNOP(); 809 810 }; 810 811 -
firmware/trunk/core/makingthings/lwipopts.h
r760 r778 41 41 #define SYS_LIGHTWEIGHT_PROT 1 42 42 43 #define lwipTCP_STACK_SIZE 600 43 44 #define TCPIP_THREAD_PRIO 5 44 45 … … 96 97 /* ---------- Pbuf options ---------- */ 97 98 /* PBUF_POOL_SIZE: the number of buffers in the pbuf pool. */ 98 #define PBUF_POOL_SIZE 699 #define PBUF_POOL_SIZE 8 99 100 100 101 /* PBUF_POOL_BUFSIZE: the size of each pbuf in the pbuf pool. */
