From a294935b69a9245c298864fe35e2552b03055701 Mon Sep 17 00:00:00 2001 From: Grzegorz Daniluk <g.daniluk@elproma.com.pl> Date: Tue, 12 Apr 2011 22:40:36 +0200 Subject: [PATCH] new main --- wrc_main.c | 148 +++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 116 insertions(+), 32 deletions(-) diff --git a/wrc_main.c b/wrc_main.c index 3ad8c59ac..b865adc3c 100644 --- a/wrc_main.c +++ b/wrc_main.c @@ -6,6 +6,44 @@ #include "endpoint.h" #include "minic.h" #include "pps_gen.h" +#include "ptpd-noposix/PTPWRd/ptpd.h" +//#include "ptpd-noposix/PTPWRd/datatypes.h" + + + +RunTimeOpts rtOpts = { + .announceInterval = DEFAULT_ANNOUNCE_INTERVAL, + .syncInterval = DEFAULT_SYNC_INTERVAL, + .clockQuality.clockAccuracy = DEFAULT_CLOCK_ACCURACY, + .clockQuality.clockClass = DEFAULT_CLOCK_CLASS, + .clockQuality.offsetScaledLogVariance = DEFAULT_CLOCK_VARIANCE, + .priority1 = DEFAULT_PRIORITY1, + .priority2 = DEFAULT_PRIORITY2, + .domainNumber = DEFAULT_DOMAIN_NUMBER, + .slaveOnly = SLAVE_ONLY, + .currentUtcOffset = DEFAULT_UTC_OFFSET, + .noResetClock = DEFAULT_NO_RESET_CLOCK, + .noAdjust = NO_ADJUST, + .inboundLatency.nanoseconds = DEFAULT_INBOUND_LATENCY, + .outboundLatency.nanoseconds = DEFAULT_OUTBOUND_LATENCY, + .s = DEFAULT_DELAY_S, + .ap = DEFAULT_AP, + .ai = DEFAULT_AI, + .max_foreign_records = DEFAULT_MAX_FOREIGN_RECORDS, + + /**************** White Rabbit *************************/ + .portNumber = NUMBER_PORTS, + .wrNodeMode = NON_WR, + .calibrationPeriod = WR_DEFAULT_CAL_PERIOD, + .calibrationPattern = WR_DEFAULT_CAL_PATTERN, + .calibrationPatternLen = WR_DEFAULT_CAL_PATTERN_LEN, + .E2E_mode = TRUE, + /********************************************************/ +}; +static PtpClock *ptpclock; + + const uint8_t mac_addr[] = {0x00, 0x50, 0xde, 0xad, 0xba, 0xbe}; + const uint8_t dst_mac_addr[] = {0x00, 0x00, 0x12, 0x24, 0x46, 0x11}; volatile int count = 0; @@ -13,29 +51,55 @@ volatile int count = 0; uint32_t tag_prev; uint32_t tics_last; -void _irq_entry() + +void silly_minic_test() { - volatile uint32_t dummy_tag; - dummy_tag= *(volatile uint32_t*) 0x40004; -// mprintf("tag %d\n", dummy_tag-tag_prev); - count++; - - if(timer_get_tics() - tics_last > 1000) + uint8_t hdr[14]; + + uint8_t buf_hdr[18], buf[256]; + for(;;) { - tics_last = timer_get_tics(); - mprintf("cnt: %d delta %d\n", count, tag_prev-dummy_tag); - count = 0; + memcpy(buf_hdr, dst_mac_addr, 6); + memset(buf_hdr+6, 0, 6); + buf_hdr[12] = 0xc0; + buf_hdr[13] = 0xef; + + minic_tx_frame(buf_hdr, buf, 64, buf); + mprintf("Send\n"); + timer_delay(1000); + + } +} + + +void test_transition() +{ + + int phase = 0; + + softpll_enable(); + while(!softpll_check_lock()) timer_delay(1000); + + for(;;) + { struct hw_timestamp hwts; + uint8_t buf_hdr[18], buf[128]; + + if(minic_rx_frame(buf_hdr, buf, 128, &hwts) > 0) + { + printf("phase %d ahead %d\n", phase, hwts.ahead); + phase+=100; + softpll_set_phase(phase); + timer_delay(10); + } } - tag_prev=dummy_tag; - + + } int main(void) { int rx, tx; - const uint8_t mac_addr[] = {0x00, 0x00, 0xde, 0xad, 0xba, 0xbe}; - const uint8_t dst_mac_addr[] = {0x00, 0x00, 0x12, 0x24, 0x46, 0x11}; - uint8_t hdr[14]; + int16_t ret; uart_init(); @@ -44,39 +108,59 @@ int main(void) gpio_dir(GPIO_PIN_LED, 1); ep_init(mac_addr); - ep_enable(1, 1); + ep_enable(1, 0); + mprintf("is link up ?\n"); while(!ep_link_up()); + mprintf("yes it is\n"); ep_get_deltas(&tx, &rx); mprintf("delta: tx = %d, rx=%d\n", tx, rx); minic_init(); + //minic_disable(); pps_gen_init(); + +// test_transition(); -//(unsigned int *)(0x40000) = 0x1; + netStartup(); + + ptpclock = ptpdStartup(0, NULL, &ret, &rtOpts); + + toState(PTP_INITIALIZING, &rtOpts, ptpclock); + for(;;) + { + //mprintf("\n\n\n"); + protocol_nonblock(&rtOpts, ptpclock); + + update_rx_queues(); + timer_delay(10); + } + + //(unsigned int *)(0x40000) = 0x1; // *(unsigned int *)(0x40024) = 0x1; - for(;;) - { - struct hw_timestamp hwts; - uint32_t utc, nsec; - uint8_t buf[1024]; + //for(;;) + // { + // struct hw_timestamp hwts; + // uint32_t utc, nsec; + // uint8_t buf[1024]; - memcpy(hdr, dst_mac_addr, 6); - hdr[12] = 0x88; - hdr[13] = 0xf7; - - minic_tx_frame(hdr, buf, 500, &hwts); + // memcpy(hdr, dst_mac_addr, 6); + // hdr[12] = 0x88; + // hdr[13] = 0xf7; + // + // minic_tx_frame(hdr, buf, 500, &hwts); - mprintf("TxTs: utc %d nsec %d\n", hwts.utc, hwts.nsec); - - delay(1000000); + // mprintf("TxTs: utc %d nsec %d\n", hwts.utc, hwts.nsec); + // + // delay(1000000); - mprintf("cnt:%d\n", count); - } + // mprintf("cnt:%d\n", count); + // } } + -- GitLab