blob: d741273da5133dbe226fc3f81e9b84195fcfbb02 [file] [log] [blame]
#ifndef _STRIVE_H_
#define _STRIVE_H_
/* Raven include file striVe.h */
#include <stdint.h>
#include <stdbool.h>
// a pointer to this is a null pointer, but the compiler does not
// know that because "sram" is a linker symbol from sections.lds.
extern uint32_t sram;
// Pointer to firmware flash routines
extern uint32_t flashio_worker_begin;
extern uint32_t flashio_worker_end;
// Memory map definitions
#define reg_spictrl (*(volatile uint32_t*)0x02000000)
#define reg_uart_clkdiv (*(volatile uint32_t*)0x02000004)
#define reg_uart_data (*(volatile uint32_t*)0x02000008)
#define reg_gpio_data (*(volatile uint32_t*)0x03000000)
#define reg_gpio_ena (*(volatile uint32_t*)0x03000004)
#define reg_gpio_pu (*(volatile uint32_t*)0x03000008)
#define reg_gpio_pd (*(volatile uint32_t*)0x0300000c)
#define reg_adc0_ena (*(volatile uint32_t*)0x03000010)
#define reg_adc0_data (*(volatile uint32_t*)0x03000014)
#define reg_adc0_done (*(volatile uint32_t*)0x03000018)
#define reg_adc0_convert (*(volatile uint32_t*)0x0300001c)
#define reg_adc0_clk_source (*(volatile uint32_t*)0x03000020)
#define reg_adc0_input_source (*(volatile uint32_t*)0x03000024)
#define reg_adc1_ena (*(volatile uint32_t*)0x03000030)
#define reg_adc1_data (*(volatile uint32_t*)0x03000034)
#define reg_adc1_done (*(volatile uint32_t*)0x03000038)
#define reg_adc1_convert (*(volatile uint32_t*)0x0300003c)
#define reg_adc1_clk_source (*(volatile uint32_t*)0x03000040)
#define reg_adc1_input_source (*(volatile uint32_t*)0x03000044)
#define reg_dac_ena (*(volatile uint32_t*)0x03000050)
#define reg_dac_data (*(volatile uint32_t*)0x03000054)
#define reg_comp_enable (*(volatile uint32_t*)0x03000060)
#define reg_comp_n_source (*(volatile uint32_t*)0x03000064)
#define reg_comp_p_source (*(volatile uint32_t*)0x03000068)
#define reg_comp_out_dest (*(volatile uint32_t*)0x0300006c)
#define reg_rcosc_enable (*(volatile uint32_t*)0x03000070)
#define reg_rcosc_out_dest (*(volatile uint32_t*)0x03000074)
#define reg_spi_config (*(volatile uint32_t*)0x03000080)
#define reg_spi_enables (*(volatile uint32_t*)0x03000084)
#define reg_spi_pll_config (*(volatile uint32_t*)0x03000088)
#define reg_spi_mfgr_id (*(volatile uint32_t*)0x0300008c)
#define reg_spi_prod_id (*(volatile uint32_t*)0x03000090)
#define reg_spi_mask_rev (*(volatile uint32_t*)0x03000094)
#define reg_spi_pll_bypass (*(volatile uint32_t*)0x03000098)
#define reg_xtal_out_dest (*(volatile uint32_t*)0x030000a0)
#define reg_pll_out_dest (*(volatile uint32_t*)0x030000a4)
#define reg_trap_out_dest (*(volatile uint32_t*)0x030000a8)
#define reg_irq7_source (*(volatile uint32_t*)0x030000b0)
#define reg_irq8_source (*(volatile uint32_t*)0x030000b4)
#define reg_analog_out_sel (*(volatile uint32_t*)0x030000c0)
#define reg_analog_out_bias_ena (*(volatile uint32_t*)0x030000c4)
#define reg_analog_out_ena (*(volatile uint32_t*)0x030000c8)
#define reg_bandgap_ena (*(volatile uint32_t*)0x030000d0)
#define reg_overtemp_ena (*(volatile uint32_t*)0x030000e0)
#define reg_overtemp_data (*(volatile uint32_t*)0x030000e4)
#define reg_overtemp_out_dest (*(volatile uint32_t*)0x030000e8)
// --------------------------------------------------------
#endif