git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@3976 35acf78f-673a-0410-8e92-d51de3d6d3f4

This commit is contained in:
gdisirio 2012-02-25 11:35:51 +00:00
parent b136bcadfd
commit 27ab89ce98
1 changed files with 27 additions and 1 deletions

View File

@ -21,12 +21,21 @@
#include "ch.h"
#include "hal.h"
#include "evtimer.h"
#define PERIODIC_TIMER_ID 1
#define FRAME_RECEIVED_ID 2
static const MACConfig mac_config = {NULL};
static uint8_t frame[STM32_MAC_BUFFERS_SIZE];
/*
* Application entry point.
*/
int main(void) {
EvTimer evt;
EventListener el0, el1;
/*
* System initializations.
@ -43,11 +52,28 @@ int main(void) {
*/
macStart(&ETHD1, &mac_config);
/* Setup event sources.*/
evtInit(&evt, S2ST(5));
evtStart(&evt);
chEvtRegisterMask(&evt.et_es, &el0, PERIODIC_TIMER_ID);
chEvtRegisterMask(macGetReceiveEventSource(&ETHD1), &el1, FRAME_RECEIVED_ID);
chEvtAddFlags(PERIODIC_TIMER_ID | FRAME_RECEIVED_ID);
/*
* Normal main() thread activity, in this demo it enables and disables the
* button EXT channel using 5 seconds intervals.
*/
while (TRUE) {
chThdSleepMilliseconds(500);
eventmask_t mask = chEvtWaitAny(ALL_EVENTS);
if (mask & PERIODIC_TIMER_ID)
(void)macPollLinkStatus(&ETHD1);
if (mask & FRAME_RECEIVED_ID) {
MACReceiveDescriptor rd;
if (macWaitReceiveDescriptor(&ETHD1, &rd, TIME_IMMEDIATE) == RDY_OK) {
macReadReceiveDescriptor(&rd, frame, STM32_MAC_BUFFERS_SIZE);
macReleaseReceiveDescriptor(&rd);
}
}
}
}