/** @file nvic_regs.h
 * Module defining the Nested Vector Interrupt Controller (NVIC) registers.
 *
 * Mainly made to be used by the nvic module. It is recommanded to go through
 * the functions provided by that module instead of directly using the registers
 * defined here.
 */

#ifndef _NVIC_REGS_H_
#define _NVIC_REGS_H_

//--includes--------------------------------------------------------------------

#include "stdint.h"


//--type definitions------------------------------------------------------------

#define NVIC1_BASE_ADDRESS 0xE000E100
#define NVIC2_BASE_ADDRESS 0xE000EF00

struct NVIC1 {
	uint32_t ISERX[3];
	uint32_t ICERX[3];
	uint32_t ISPRX[3];
	uint32_t ICPRX[3];
	uint32_t IABRX[3];
	uint32_t IPRX[20];
};

struct NVIC2 {
	uint32_t INTID;
};


//--functions-------------------------------------------------------------------

#endif //_NVIC_REGS_H_

