/* led.c */ extern void led_init(void); extern void led_clear(void); extern void led_set(void); extern void led_slow_tick(void); /* ticker.c */ extern volatile uint32_t ticks; extern void delay_us(uint32_t d); extern void sys_tick_handler(void); extern void delay_ms(uint32_t d); extern void ticker_init(void); /* ring.c */ extern void ring_init(volatile ring_t *r, uint8_t *buf, size_t len); extern int ring_write_byte(volatile ring_t *r, uint8_t c); extern int ring_read_byte(volatile ring_t *r, uint8_t *c); extern int ring_write(volatile ring_t *r, uint8_t *buf, size_t len, int blocking); extern int ring_empty(volatile ring_t *r); /* usart.c */ extern volatile ring_t rx3_ring; extern volatile ring_t tx3_ring; extern volatile ring_t rx1_ring; extern volatile ring_t tx1_ring; extern void usart3_isr(void); extern void usart3_queue(uint8_t d); extern void usart3_drain(void); extern int usart3_write(char *ptr, int len, int blocking); extern void usart1_isr(void); extern void usart1_queue(uint8_t d); extern void usart1_drain(void); extern int usart1_write(char *ptr, int len, int blocking); extern void usart_init(void); /* stdio.c */ extern int _open(const char *name, int flags, int mode); extern int _close(int file); extern int _write(int file, char *buf, int nbytes); extern int _read(int file, char *buf, int nbytes); extern int _fstat(int file, struct stat *st); extern int _lseek(int file, int offset, int whence); extern int isatty(int file); extern void stdio_drain(void); /* lwip_glue.c */ extern struct netif if0; extern uint32_t sys_now(void); extern void dispatch_lwip(void); extern void start_lwip(void); /* steth.c */ extern void eth_isr(void); extern void steth_isr(void); extern err_t steth_lwip_init(struct netif *netif); extern void steth_init(void); extern void steth_slow_tick(void); /* msf.c */ extern uint64_t msf_last_happy; extern void exti0_isr(void); extern void msf_dispatch(void); extern void msf_init(void); /* abs.c */ extern uint64_t abs_extend(uint32_t now); extern void abs_meh(void); extern uint64_t abs_get(void); extern void abs_slow_tick(void); /* pll.c */ extern int64_t pll_freq; extern uint64_t pll_last_update; extern int pll_valid; extern void pll_meh(void); extern void pll_dispatch(uint64_t happy, uint64_t edge, const char *src); extern void pll_set_offset(EPOCH epoch, uint64_t abs); extern EPOCH _pll_decompose(uint64_t abs); extern EPOCH pll_decompose_diff(int64_t diff); extern EPOCH pll_decompose(uint64_t abs); /* main.c */ extern int time_known; extern int main(void); /* time_fn.c */ extern UTC time_epoch_to_utc(EPOCH epoch); extern EPOCH time_utc_to_epoch(UTC u); extern void time_print_utc(const char *p, UTC u); extern void time_print_epoch(const char *p, EPOCH e); /* ntp.c */ extern void ntp_init(void); /* dcf77.c */ extern uint64_t dcf77_last_happy; extern void exti15_10_isr(void); extern void dcf77_dispatch(void); extern void dcf77_init(void); /* util.c */ extern int check_parity(uint8_t *d, unsigned s, unsigned e, uint8_t p); extern unsigned bcd(uint8_t *d, unsigned s, unsigned e); extern unsigned le_bcd(uint8_t *d, unsigned s, unsigned e); /* stats.c */ /* gps.c */ extern uint64_t gps_last_happy; extern void exti2_isr(void); extern void gps_dispatch(void); extern int gps_init(void); extern int gps_almanac(void); extern void gps_reset(void); /* hexdump.c */ extern void hexdump(void *_d, int len); /* bits.c */ extern void dump_bits(char *wot, uint8_t *bits);