aboutsummaryrefslogtreecommitdiffstats
path: root/demos
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2009-09-29 19:29:59 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2009-09-29 19:29:59 +0000
commitea9916ae798da3689d64689b88343d26508d137e (patch)
treea9b5a44a6bd7be5b15b3ab421803b74f41a5a7cd /demos
parentc9bfcaa15ec3d03ee088ecfa5cf6cf82e718cb38 (diff)
downloadChibiOS-ea9916ae798da3689d64689b88343d26508d137e.tar.gz
ChibiOS-ea9916ae798da3689d64689b88343d26508d137e.tar.bz2
ChibiOS-ea9916ae798da3689d64689b88343d26508d137e.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@1193 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'demos')
-rw-r--r--demos/ARM7-AT91SAM7X-WEB-GCC/Makefile2
-rw-r--r--demos/ARM7-AT91SAM7X-WEB-GCC/web/webthread.c36
2 files changed, 17 insertions, 21 deletions
diff --git a/demos/ARM7-AT91SAM7X-WEB-GCC/Makefile b/demos/ARM7-AT91SAM7X-WEB-GCC/Makefile
index bb4c21c1a..345cb3d13 100644
--- a/demos/ARM7-AT91SAM7X-WEB-GCC/Makefile
+++ b/demos/ARM7-AT91SAM7X-WEB-GCC/Makefile
@@ -5,7 +5,7 @@
# Compiler options here.
ifeq ($(USE_OPT),)
- USE_OPT = -O2 -ggdb -fomit-frame-pointer -mabi=apcs-gnu
+ USE_OPT = -O0 -ggdb -fomit-frame-pointer -mabi=apcs-gnu
endif
# C++ specific options here (added to USE_OPT).
diff --git a/demos/ARM7-AT91SAM7X-WEB-GCC/web/webthread.c b/demos/ARM7-AT91SAM7X-WEB-GCC/web/webthread.c
index 521a40b04..986d7fb03 100644
--- a/demos/ARM7-AT91SAM7X-WEB-GCC/web/webthread.c
+++ b/demos/ARM7-AT91SAM7X-WEB-GCC/web/webthread.c
@@ -47,21 +47,18 @@ static const struct uip_eth_addr macaddr = {
*/
static void network_device_send(void) {
int i;
- MACTransmitDescriptor *tdp;
+ MACTransmitDescriptor td;
for (i = 0; i < SEND_RETRY_MAX; i++) {
- if ((tdp = macWaitTransmitDescriptor(&MAC1, uip_len, TIME_IMMEDIATE)) != NULL) {
- uint8_t *bp = macGetTransmitBuffer(tdp);
-
+ if (macWaitTransmitDescriptor(&ETH1, &td, TIME_IMMEDIATE) == RDY_OK) {
if(uip_len <= UIP_LLH_LEN + UIP_TCPIP_HLEN)
- memcpy(bp, &uip_buf[0], uip_len);
+ macWriteTransmitDescriptor(&td, uip_buf, uip_len);
else {
- memcpy(bp, &uip_buf[0], UIP_LLH_LEN + UIP_TCPIP_HLEN);
- memcpy(bp + UIP_LLH_LEN + UIP_TCPIP_HLEN,
- uip_appdata,
- uip_len - (UIP_LLH_LEN + UIP_TCPIP_HLEN));
+ macWriteTransmitDescriptor(&td, uip_buf, UIP_LLH_LEN + UIP_TCPIP_HLEN);
+ macWriteTransmitDescriptor(&td, uip_appdata,
+ uip_len - (UIP_LLH_LEN + UIP_TCPIP_HLEN));
}
- macReleaseTransmitDescriptor(&MAC1, tdp);
+ macReleaseTransmitDescriptor(&td);
return;
}
chThdSleep(SEND_RETRY_INTERVAL);
@@ -73,15 +70,14 @@ static void network_device_send(void) {
* uIP receive function wrapping the EMAC function.
*/
static size_t network_device_read(void) {
- MACReceiveDescriptor *rdp;
+ MACReceiveDescriptor rd;
size_t size;
- uint8_t *bp;
- if ((rdp = macWaitReceiveDescriptor(&MAC1, &size, TIME_IMMEDIATE)) == NULL)
+ if (macWaitReceiveDescriptor(&ETH1, &rd, TIME_IMMEDIATE) != RDY_OK)
return 0;
- bp = macGetReceiveBuffer(rdp);
- memcpy(&uip_buf[0], bp, size);
- macReleaseReceiveDescriptor(&MAC1, rdp);
+ size = rd.rd_size;
+ macReadReceiveDescriptor(&rd, uip_buf, size);
+ macReleaseReceiveDescriptor(&rd);
return size;
}
@@ -113,7 +109,7 @@ static void PeriodicTimerHandler(eventid_t id) {
static void ARPTimerHandler(eventid_t id) {
uip_arp_timer();
- (void)macPollLinkStatus(&MAC1);
+ (void)macPollLinkStatus(&ETH1);
}
/*
@@ -156,7 +152,7 @@ msg_t WebThread(void *p) {
/*
* Event sources setup.
*/
- chEvtRegister(macGetReceiveEventSource(&MAC1), &el0, FRAME_RECEIVED_ID);
+ chEvtRegister(macGetReceiveEventSource(&ETH1), &el0, FRAME_RECEIVED_ID);
chEvtPend(EVENT_MASK(FRAME_RECEIVED_ID)); /* In case some frames are already buffered */
evtInit(&evt1, MS2ST(500));
@@ -170,8 +166,8 @@ msg_t WebThread(void *p) {
/*
* EMAC settings.
*/
- macSetAddress(&MAC1, &macaddr.addr[0]);
- (void)macPollLinkStatus(&MAC1);
+ macSetAddress(&ETH1, &macaddr.addr[0]);
+ (void)macPollLinkStatus(&ETH1);
/*
* uIP initialization.