123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- #ifndef FW_H
- #define FW_H
- #include "compiler.h"
- #include "picorv32.h"
- #include "irq.h"
- /* Sometimes useful combination types */
- typedef union {
- uint8_t b[8];
- uint16_t h[4];
- uint32_t l[2];
- uint64_t q;
- } qword_t;
- typedef union {
- uint8_t b[4];
- uint16_t h[2];
- uint32_t l;
- } lword_t;
- typedef union {
- uint8_t b[2];
- uint16_t h;
- } hword_t;
- extern const size_t __rom_offset;
- extern const uint32_t __dram_checksum;
- extern const char __datestamp[];
- extern char __esplink_start[], __esplink_end[];
- extern char __dram_init_start[], __dram_init_end[];
- extern char __dram_bss_start[], __dram_bss_end[];
- static inline __constfunc size_t _align_down(size_t addr, size_t align)
- {
- return addr & ~(align - 1);
- }
- #define align_down(a,l) ((__typeof__(a))_align_down((size_t)(a),(l)))
- static inline __constfunc size_t _align_up(size_t addr, size_t align)
- {
- return _align_down(addr + align - 1, align);
- }
- #define align_up(a,l) ((__typeof__(a))_align_up((size_t)(a),(l)))
- struct esplink_head;
- extern struct esplink_head esplink_head;
- extern uint32_t esplink[];
- extern no_return _die(void);
- extern no_return exit(int);
- extern no_return _exit(int);
- /* Value of an absolute symbol with one more _ than here given */
- #define abssymval(x) \
- static inline size_t x (void) { \
- extern const char _ ## x []; \
- return (size_t) _ ## x; \
- }
- extern const uint8_t _end[];
- extern void *_sbrk(ptrdiff_t);
- extern uint32_t timer_irq_start;
- static inline uint32_t timer_count(void)
- {
- extern volatile uint32_t timer_irq_count;
- return timer_irq_count;
- }
- extern void init(void);
- extern void heap_init(void);
- extern void mount_abcdrives(void);
- extern void read_rtc(void);
- extern void write_rtc(void);
- extern volatile bool do_write_rtc;
- extern void rtc_abc_init(void);
- extern void rtc_abc_io_poll(void);
- extern void pun80_init(void);
- extern void romcopy_download(void *, size_t, size_t);
- extern void romcopy_bzero(void *, size_t);
- extern void rom_print_serial(void);
- extern qword_t rom_serial;
- extern void run_test_image(void);
- extern void rom_flash_from_memory(void *, size_t);
- extern void rom_flash_from_sdcard(void);
- extern void esp_init(void);
- extern void esp_ota(const void *, size_t);
- #endif /* FW_H */
|