anyka_cpu.h

来自「启动代码」· C头文件 代码 · 共 431 行 · 第 1/2 页

H
431
字号
#define IMG_HISTD_ADDR		(IMAGE_MODULE_BASE_ADDR | 0x0064)
/** @} */

/** @{@name UART module register and bit map define
 */
#define UART0_BASE_ADDR					(UART_MODULE_BASE_ADDR + 0x00000000)
#define UART1_BASE_ADDR					(UART_MODULE_BASE_ADDR + 0x00001000)
#define UART2_BASE_ADDR					(UART_MODULE_BASE_ADDR + 0x00002000)

#define UART_RX_REG_OFFSET				0x00
#define UART_TX_REG_OFFSET				0x00
#define BAUDRATE_LOWDIV_REG_OFFSET		0x04
#define BAUDRATE_HIDIV_REG_OFFSET		0x08
#define UART_STATUS_REG_OFFSET			0x0C
#define UART_INTMODE_REG_OFFSET			0x10
#define UART_INTENA_REG_OFFSET			0x14

#define UART_TRANS_FIFO_FULL			(1 << 2)	// 1: transmit FIFO is full
#define UART_RECV_FIFO_EMPTY			(1 << 8)	// 1: receive FIFO is empty
/** @} */

/** @{@name HOST module register and bit map define
 */
#define HOST_INTERFACE_CPU			HOST_MODULE_BASE_ADDR
#define HOST_INTERFACE_TIMER		(HOST_MODULE_BASE_ADDR + 0x0200)
/** @} */

/** @{@name GPIO module register and bit map define
 */
#define GPIO_DIR1			(GPIO_MODULE_BASE_ADDR)
#define GPIO_INTE1			(GPIO_MODULE_BASE_ADDR + 0x04)
#define GPIO_INTP1			(GPIO_MODULE_BASE_ADDR + 0x08)
#define GPIO_EDGE1			(GPIO_MODULE_BASE_ADDR + 0x1008)
#define GPIO_IN1			(GPIO_MODULE_BASE_ADDR + 0xC)
#define GPIO_OUT1			(GPIO_MODULE_BASE_ADDR + 0x10)

#define GPIO_DIR2			(GPIO_MODULE_BASE_ADDR + 0x100)
#define GPIO_INTE2			(GPIO_MODULE_BASE_ADDR + 0x104)
#define GPIO_INTP2			(GPIO_MODULE_BASE_ADDR + 0x108)
#define GPIO_EDGE2			(GPIO_MODULE_BASE_ADDR + 0x1108)
#define GPIO_IN2			(GPIO_MODULE_BASE_ADDR + 0x10C)
#define GPIO_OUT2			(GPIO_MODULE_BASE_ADDR + 0x110)


#define GPIO_DIRECTION_REG1             (GPIO_MODULE_BASE_ADDR + 0x000)
#define GPIO_INT_CTRL_REG1              (GPIO_MODULE_BASE_ADDR + 0x004) 
#define GPIO_INT_POLARITY1              (GPIO_MODULE_BASE_ADDR + 0x008) 
#define GPIO_INPUT1                     (GPIO_MODULE_BASE_ADDR + 0x00C)
#define GPIO_OUTPUT1                    (GPIO_MODULE_BASE_ADDR + 0x010) 
#define GPIO_PULLUP_REG1         		(GPIO_MODULE_BASE_ADDR + 0x60)
#define GPIO_PULLUP_REG2    		    (GPIO_MODULE_BASE_ADDR + 0x64)


#define GPIO_DIRECTION_REG2             (GPIO_MODULE_BASE_ADDR + 0x100)
#define GPIO_INT_CTRL_REG2              (GPIO_MODULE_BASE_ADDR + 0x104)
#define GPIO_INT_POLARITY2              (GPIO_MODULE_BASE_ADDR + 0x108) 
#define GPIO_INPUT2                     (GPIO_MODULE_BASE_ADDR + 0x10C)
#define GPIO_OUTPUT2                    (GPIO_MODULE_BASE_ADDR + 0x110)

/** @} */

/** @{@name TIMER module register and bit map define
 */
#define TIMER1_CTRL_REG			(TIMER_MODULE_BASE_ADDR + 0x14)
#define TIMER2_CTRL_REG			(TIMER_MODULE_BASE_ADDR + 0x18)
#define TIMER3_CTRL_REG			(TIMER_MODULE_BASE_ADDR + 0x114)
#define TIMER4_CTRL_REG			(TIMER_MODULE_BASE_ADDR + 0x118)	// watchdog function

#define TIMER_CLEAR_STATUS_BIT	(1 << 30)
/** @} */



/** @{@name Nandflash Controller Define 
 *	Define the register and bit map of nandflash controller
 *	
 */
// DMA
#define FLASH_DMA_REG0		(NAND_MODULE_BASE_ADDR + 0x8000)
#define FLASH_DMA_REG1		(NAND_MODULE_BASE_ADDR + 0x8004)
#define FLASH_DMA_REG2		(NAND_MODULE_BASE_ADDR + 0x8008)
#define FLASH_DMA_REG3		(NAND_MODULE_BASE_ADDR + 0x800C)
#define FLASH_DMA_REG4		(NAND_MODULE_BASE_ADDR + 0x8010)
#define FLASH_DMA_REG5		(NAND_MODULE_BASE_ADDR + 0x8014)
	
// ECC
#define FLASH_ECC_REG0		(NAND_MODULE_BASE_ADDR + 0x8080)	// encode mudule start address
#define FLASH_ECC_REG4		(NAND_MODULE_BASE_ADDR + 0x8090)	// decode module start address
#define FLASH_ECC_REG5		(NAND_MODULE_BASE_ADDR + 0x8094)	// decode module start address
#define FLASH_ECC_REG6		(NAND_MODULE_BASE_ADDR + 0x8098)	// decode module start address
#define FLASH_ECC_REG7		(NAND_MODULE_BASE_ADDR + 0x809C)	// decode module start address
	
// NF controller
#define FLASH_CTRL_REG0		(NAND_MODULE_BASE_ADDR + 0x8100)
#define FLASH_CTRL_REG20	(NAND_MODULE_BASE_ADDR + 0x8150)
#define FLASH_CTRL_REG21	(NAND_MODULE_BASE_ADDR + 0x8154)
#define FLASH_CTRL_REG22	(NAND_MODULE_BASE_ADDR + 0x8158)
#define FLASH_CTRL_REG23	(NAND_MODULE_BASE_ADDR + 0x815C)
#define FLASH_CTRL_REG24	(NAND_MODULE_BASE_ADDR + 0x8160)
	
	
//basic save information
#define  PHY_ERR_FLAG 0
#define NFC_FIFO_SIZE		512
#define NFC_LOG_PAGE_SIZE	512
#define NFC_LOG_SPARE_SIZE	16
#define NFC_FS_INFO_OFFSET	520//must be a value %4 = 0
#define NFC_FS_INFO_SIZE	6
#define NFC_SUPPORT_CHIPNUM	4

	
// ecc check define 
#define CHECK_OVER				0x0540
#define CHECK_NO_ERROR			0x3800
#define CANT_CORRECT			0x02A0
#define ECC_RS_LEN				251
#define FS_INFO_LEN				6
#define ECC_BCH_LEN				(518-ECC_RS_LEN*2-FS_INFO_LEN)
	

#define COMMAND_CYCLES_CONF		0x64
#define ADDRESS_CYCLES_CONF		0x62
#define READ_DATA_CONF			0x118
#define WRITE_DATA_CONF			0x128
#define READ_CMD_CONF			0x58
#define READ_INFO_CONF			0x58

#define DELAY_CNT_CONF			0x400
#define BASIC_DLYCNT			0x30
	
	
#define WAIT_JUMP_CONF			0x200
	
#define LAST_CMD_FLAG			(1 << 0)

#define DEFAULT_GO				((1 << 30)|(1<<9))
	
#define SAVE_MODE_FLAG			1
	
#define ECC_ENCODE_CONFIG		0x0018
#define ECC_ENCODE_DISCFG		0x10000018

#define ECC_DECODE_CONFIG		0x0018
#define ECC_DECODE_DISCFG		0x20000018
/** @} */


/** @{@name RTC module register and bit map define
 */
#define RTC_LOAD_REG			(RTC_MODULE_BASE_ADDR + 0x00)	// power on/off
#define RTC_ALARM_MASK_REG		(RTC_MODULE_BASE_ADDR + 0x04)	// alarm mask 
#define RTC_WGPIO_MASK_REG		(RTC_MODULE_BASE_ADDR + 0x08)	// wakeup GPIO mask 
#define RTC_WAKEUP_STATUS_REG	(RTC_MODULE_BASE_ADDR + 0x0C)	// hold each wakeup GPIO or alarm status
#define RTC_CONFIG_REG			(RTC_MODULE_BASE_ADDR + 0x10)	// config the RTC module
#define RTC_COUNT_REG			(RTC_MODULE_BASE_ADDR + 0x14)	// real time clock ?
#define RTC_PD_LAST_VALUE_REG	(RTC_MODULE_BASE_ADDR + 0x18)	// wakeup signal last cycle

/** @} */

/** @{@name CRC module register and bit map define
 */
#define DMACRC_CMD_REG				(DMA_MODULE_BASE_ADDR + 0x0000)
#define DMACRC_STATUS_REG 			(DMA_MODULE_BASE_ADDR + 0x0004)
#define DMACRC_CNT_REG 				(DMA_MODULE_BASE_ADDR + 0x0008)
#define DMACRC_SRC_ADDR_REG			(DMA_MODULE_BASE_ADDR + 0x000C)
#define DMACRC_SRC_ADDR_REG			(DMA_MODULE_BASE_ADDR + 0x000C)
#define DMACRC_DEST_ADDR_REG		(DMA_MODULE_BASE_ADDR + 0x0010)
#define DMACRC_MEM_TYPE_REG			(DMA_MODULE_BASE_ADDR + 0x0014)
#define DMACRC_VALUE_REG			(DMA_MODULE_BASE_ADDR + 0x0018)
#define DMACRC_CMD_START_BIT		0x01
#define DMACRC_CMD_ENABLE_BIT		0x02
#define DMACRC_STATUS_FINISH_BIT	0x01
/** @} */

/** @{@name ANALOG module register and bit map define
 */
#define ANALOG_CONTROL1			(ADC_MODULE_BASE_ADDR + 0x20)
#define ANALOG_CONTROL2			(ADC_MODULE_BASE_ADDR + 0x30)
#define DAC_CONTROL				(ADC_MODULE_BASE_ADDR + 0x28)
#define ADC_CONTROL1			(ADC_MODULE_BASE_ADDR + 0x24)
#define ANLSOFT_CONTROL			(ADC_MODULE_BASE_ADDR + 0x34)
#define ADC_CONTROL2			(ADC_MODULE_BASE_ADDR + 0x3C)
#define USB_CONTROL				(ADC_MODULE_BASE_ADDR + 0x44)
#define X_COORDINATE_REG        (ADC_MODULE_BASE_ADDR + 0x50)
#define Y_COORDINATE_REG        (ADC_MODULE_BASE_ADDR + 0x54)
#define TS_THRESHOLD_REG        (ADC_MODULE_BASE_ADDR + 0x2C)
#define TS_INT_STATUS_REG       (ADC_MODULE_BASE_ADDR + 0x38)
/** @} */
/*@}*/

/** @{@name Register Operation Define
 *	Define the macro for read/write register and memory
 */
#ifdef OS_ANYKA
	/* ------ Macro definition for reading/writing data from/to register ------ */
	#define HAL_READ_UINT8( _register_, _value_ )        ((_value_) = *((volatile T_U8 *)(_register_)))
	#define HAL_WRITE_UINT8( _register_, _value_ )       (*((volatile T_U8 *)(_register_)) = (_value_))
	#define HAL_READ_UINT16( _register_, _value_ )      ((_value_) = *((volatile T_U16 *)(_register_)))
	#define HAL_WRITE_UINT16( _register_, _value_ )     (*((volatile T_U16 *)(_register_)) = (_value_))
	#define HAL_READ_UINT32( _register_, _value_ )      ((_value_) = *((volatile T_U32 *)(_register_)))
	#define HAL_WRITE_UINT32( _register_, _value_ )     (*((volatile T_U32 *)(_register_)) = (_value_))
#else
	/* ------ Macro definition for reading/writing data from/to register ------ */
	#define HAL_READ_UINT8( _register_, _value_ )        
	#define HAL_WRITE_UINT8( _register_, _value_ )       
	#define HAL_READ_UINT16( _register_, _value_ )      
	#define HAL_WRITE_UINT16( _register_, _value_ )     
	#define HAL_READ_UINT32( _register_, _value_ )      
	#define HAL_WRITE_UINT32( _register_, _value_ )     
#endif
/** @} */
/*@}*/

#endif	// _ANYKA_CPU_H_

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?