?? anyka_cpu.h
字號:
#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 + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -