/* led.c */ extern void led_init(void); extern void led1_set(int v); extern void led2_set(int v); extern void led3_set(int v); extern void led_clear(void); extern void led_set(void); extern void led_blink(unsigned ms); extern void led_tick(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 rx2_ring; extern volatile ring_t tx2_ring; extern volatile ring_t rx1_ring; extern volatile ring_t tx1_ring; extern void usart2_isr(void); extern void usart2_queue(uint8_t d); extern void usart2_drain(void); extern int usart2_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 exti1_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 int pll_ready; extern void pll_meh(void); extern uint64_t make_happy(uint64_t abs, int64_t shift); 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 void rcc_clock_setup_hse_3v3_no_pll(const clock_scale_t *clock); 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 utc_to_str(char *dst, UTC u); extern void time_print_utc(const char *p, UTC u, const char *t); extern void time_print_epoch(const char *p, EPOCH e, const char *t); /* ntp.c */ extern void ntp_init(void); /* dcf77.c */ extern uint64_t dcf77_last_happy; extern void exti2_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 exti9_5_isr(void); extern void gps_dispatch(void); extern int gps_init(void); extern int gps_almanac(void); extern void gps_dump_almanac(void); extern int gps_bs(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); /* max7219.c */ extern void max7219_write(int d, int h, int m, int s); extern void max7219_dispatch(void); extern void max7219_init(int on); /* report.c */ extern void report_time(const char *src, EPOCH e, uint64_t abs, const char *info);