yc11xx.h 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524
  1. #ifndef _YC11XX_H_
  2. #define _YC11XX_H_
  3. #include "type.h"
  4. #include "btreg.h"
  5. #ifdef __cplusplus
  6. extern "C" {
  7. #endif
  8. #ifndef OS_ENTER_CRITICAL
  9. #define OS_ENTER_CRITICAL __disable_irq
  10. #define OS_EXIT_CRITICAL __enable_irq
  11. #endif
  12. /* ------------------------- Interrupt Number Definition ------------------------ */
  13. /** @addtogroup Configuration_of_CMSIS
  14. * @{
  15. */
  16. /* ================================================================================ */
  17. /* ================ Processor and Core Peripheral Section ================ */
  18. /* ================================================================================ */
  19. /** @} */ /* End of group Configuration_of_CMSIS */
  20. typedef enum
  21. {
  22. /* ------------------- Cortex-M0 Processor Exceptions Numbers ------------------- */
  23. Reset_IRQn = -15, /*!< 1 Reset Vector, invoked on Power up and warm reset */
  24. NonMaskableInt_IRQn = -14, /*!< 2 Non maskable Interrupt, cannot be stopped or preempted */
  25. HardFault_IRQn = -13, /*!< 3 Hard Fault, all classes of Fault */
  26. SVCall_IRQn = -5, /*!< 11 System Service Call via SVC instruction */
  27. DebugMonitor_IRQn = -4, /*!< 12 Debug Monitor */
  28. PendSV_IRQn = -2, /*!< 14 Pendable request for system service */
  29. SysTick_IRQn = -1, /*!< 15 System Tick Timer */
  30. /* --------------------- xx Specific Interrupt Numbers -------------------- */
  31. usb_handler_IRQn = 0,
  32. iicd_handler_IRQn = 1,
  33. qspi_handler_IRQn = 2,
  34. spid_handler_IRQn = 3,
  35. uart_handler_IRQn = 4,
  36. uartb_handler_IRQn = 5,
  37. adcd_handler_IRQn = 6,
  38. i2s_handler_IRQn = 7,
  39. bt_handler_IRQn = 8,
  40. gpio0_handler_IRQn = 9,
  41. gpio8_handler_IRQn = 17,
  42. gpio9_handler_IRQn = 18,
  43. gpio10_handler_IRQn = 19,
  44. gpio11_handler_IRQn = 20,
  45. gpio12_handler_IRQn = 21,
  46. gpio13_handler_IRQn = 22,
  47. gpio14_handler_IRQn = 23,
  48. gpio15_handler_IRQn = 24,
  49. gpio16_handler_IRQn = 25,
  50. gpio17_handler_IRQn = 26,
  51. gpio18_handler_IRQn = 27,
  52. gpio19_handler_IRQn = 28,
  53. gpio20_handler_IRQn = 29,
  54. gpio21_handler_IRQn = 30,
  55. gpio22_handler_IRQn = 31,
  56. } IRQn_Type;
  57. /* ----------------Configuration of the Cortex-M0 Processor and Core Peripherals---------------- */
  58. /** @} */ /* End of group Configuration_of_CMSIS */
  59. //******************************************************************************************
  60. //start define reg address
  61. //******************************************************************************************
  62. #define CORE_DMA_START 0x800A
  63. #define CORE_RESET 0x8010
  64. #define CORE_OTP_RDATA 0x8047
  65. #define CORE_ADCD_DELAY 0x803A
  66. #define CORE_ADCD_CTRL 0x803B
  67. #define CORE_ADCD_SADDR 0x803C
  68. #define CORE_ADCD_EADDR 0x803E
  69. #define CORE_CLKSEL 0x8042
  70. #define CORE_CONFIG 0x8043
  71. #define CORE_UART_CLKSEL 0x8043
  72. #define CORE_OTP_ADDR 0x8044
  73. #define CORE_OTP_DIN 0x8046
  74. #define CORE_OTP_CTRL 0x8047
  75. #define CORE_OTP_RXADDR 0x8048
  76. #define CORE_OTP_RXLEN 0x804a
  77. #define CORE_CLKOFF 0x8050
  78. #define CORE_UART_BAUD 0x8052
  79. #define CORE_UART_RX_SADDR 0x8054
  80. #define CORE_UART_RX_EADDR 0x8056
  81. #define CORE_UART_RX_RPTR 0x8058
  82. #define CORE_UART_TX_SADDR 0x805A
  83. #define CORE_UART_TX_EADDR 0x805C
  84. #define CORE_UART_TX_WPTR 0x805E
  85. #define CORE_UART_CTRL 0x8060
  86. #define CORE_GPIO_KEY0 0x8061
  87. #define CORE_GPIO_KEY1 0x8062
  88. #define CORE_GPIO_KEY2 0x8063
  89. #define CORE_SUM_EN 0x8063
  90. #define CORE_UARTB_CTRL 0x8071
  91. #define CORE_UARTB_BAUD 0x8072
  92. #define CORE_UARTB_RX_SADDR 0x8074
  93. #define CORE_UARTB_RX_EADDR 0x8076
  94. #define CORE_UARTB_RX_RPTR 0x8078
  95. #define CORE_UARTB_TX_SADDR 0x807A
  96. #define CORE_UARTB_TX_EADDR 0x807C
  97. #define CORE_UARTB_TX_WPTR 0x807E
  98. #define CORE_GPIO_CONF 0x8080
  99. #define CORE_QSPI_CTRL 0x80A0
  100. #define CORE_QSPI_DELAY 0x80A1
  101. #define CORE_QSPI_TXLEN 0x80A2
  102. #define CORE_QSPI_TXADDR 0x80A4
  103. #define CORE_QSPI_RXADDR 0x80A6
  104. #define CORE_QSPI_RXLEN 0x80A8
  105. #define CORE_IICD_CTRL 0x80AA
  106. #define CORE_IICD_SCL_LOW 0x80AB
  107. #define CORE_IICD_SCL_HIGH 0x80AC
  108. #define CORE_IICD_START_SETUP 0x80AD
  109. #define CORE_IICD_START_HOLD 0x80AE
  110. #define CORE_IICD_STOP_SETUP 0x80AF
  111. #define CORE_IICD_DATA_SETUP 0x80B0
  112. #define CORE_IICD_DATA_HOLD 0x80B1
  113. #define CORE_IICD_TXLEN 0x80B2
  114. #define CORE_IICD_TXADDR 0x80B4
  115. #define CORE_IICD_RXADDR 0x80B6
  116. #define CORE_IICD_RXLEN 0x80B8
  117. #define CORE_SPID_CTRL 0x80BA
  118. #define CORE_SPID_DELAY 0x80BB
  119. #define CORE_SPID_TXLEN 0x80BC
  120. #define CORE_SPID_TXADDR 0x80BE
  121. #define CORE_SPID_RXADDR 0x80C0
  122. #define CORE_SPID_RXLEN 0x80C2
  123. #define CORE_PWM0_PCNT 0x80CD
  124. #define CORE_PWM0_NCNT 0x80CF
  125. #define CORE_PWM0_CTRL 0x80D1
  126. #define CORE_PWM1_PCNT 0x80D2
  127. #define CORE_PWM1_NCNT 0x80D4
  128. #define CORE_PWM1_CTRL 0x80D6
  129. #define CORE_PWM2_PCNT 0x80D7
  130. #define CORE_PWM2_NCNT 0x80D9
  131. #define CORE_PWM2_CTRL 0x80Db
  132. #define CORE_PWM3_PCNT 0x80Dc
  133. #define CORE_PWM3_NCNT 0x80DE
  134. #define CORE_PWM3_CTRL 0x80e0
  135. #define CORE_PWM4_PCNT 0x80E1
  136. #define CORE_PWM4_NCNT 0x80E3
  137. #define CORE_PWM4_CTRL 0x80E5
  138. #define CORE_PWM5_PCNT 0x80E6
  139. #define CORE_PWM5_NCNT 0x80E8
  140. #define CORE_PWM5_CTRL 0x80Ea
  141. #define CORE_PWM6_PCNT 0x80Eb
  142. #define CORE_PWM6_NCNT 0x80Ed
  143. #define CORE_PWM6_CTRL 0x80ef
  144. #define CORE_PWM7_PCNT 0x80f0
  145. #define CORE_PWM7_NCNT 0x80f2
  146. #define CORE_PWM7_CTRL 0x80f4
  147. #define CORE_MIC_HPF 0x8114
  148. #define CORE_MIC_HPF_CTRL 0x8115
  149. #define CORE_CLKN 0x8300
  150. #define CORE_UART_STATUS 0x830C
  151. #define CORE_UART_RBAUD 0x830C
  152. #define CORE_UART_TX_ITEMS 0x830E
  153. #define CORE_UART_TX_RPTR 0x8310
  154. #define CORE_UART_RX_ITEMS 0x8312
  155. #define CORE_UART_RX_WPTR 0x8314
  156. #define CORE_ADCD_ADDR 0x8316
  157. #define CORE_GPIO_IN 0x831C
  158. #define CORE_GPIO_IN1 0x831D
  159. #define CORE_SPID_REMAIN 0x8324
  160. #define CORE_QSPI_REMAIN 0x8328
  161. #define CORE_ADC_IN 0x832C
  162. #define CORE_DMA_STATUS 0x8330
  163. #define CORE_GPIO_WAKEUP_LOW 0x8342
  164. #define CORE_GPIO_WAKEUP_HIGH 0x8346
  165. #define CORE_SUMDATA 0x8352
  166. #define CORE_UARTB_STATUS 0x8354
  167. #define CORE_UARTB_RBAUD 0x8354
  168. #define CORE_UARTB_TX_ITEMS 0x8356
  169. #define CORE_UARTB_TX_RPTR 0x8358
  170. #define CORE_UARTB_RX_ITEMS 0x835A
  171. #define CORE_UARTB_RX_WPTR 0x835C
  172. #define RFEN_ADC 0x8906
  173. #define RF_ADC_MODE 0x8971
  174. #define RF_ADC_GC 0x8972
  175. #define RF_ADC_CH 0x8973
  176. #define RFEN_CHGPUMP 0x8973
  177. #define CORE_USB_CONFIG 0x8C00
  178. #define CORE_USB_INT_MASK 0x8C01
  179. #define CORE_USB_ADDR 0x8C04
  180. #define CORE_USB_TRIG 0x8C10
  181. #define CORE_USB_STALL 0x8C11
  182. #define CORE_USB_CLEAR 0x8C12
  183. #define CORE_USB_EP 0x8C18
  184. #define CORE_USB_DFIFO0 0x8C18
  185. #define CORE_USB_DFIFO1 0x8C19
  186. #define CORE_USB_DFIFO2 0x8C1A
  187. #define CORE_USB_EP_LEN 0x8C20
  188. #define CORE_USB_STATUS 0x8C26
  189. #define CORE_USB_FIFO_EMPTY 0x8C27
  190. #define CORE_USB_FIFO_FULL 0x8C28
  191. //************************************************************************************************
  192. //end define reg address
  193. //************************************************************************************************
  194. //*****************************************************************************
  195. //config gpio selected function
  196. //*****************************************************************************
  197. #define GPCFG_INPUT 0
  198. #define GPCFG_QSPI_NCS 2
  199. #define GPCFG_QSPI_SCK 3
  200. #define GPCFG_QSPI_IO0 4
  201. #define GPCFG_QSPI_IO1 5
  202. #define GPCFG_QSPI_IO2 6
  203. #define GPCFG_QSPI_IO3 7
  204. #define GPCFG_UART_TXD 8
  205. #define GPCFG_UART_RXD 9
  206. #define GPCFG_UART_RTS 10
  207. #define GPCFG_UART_CTS 11
  208. #define GPCFG_UARTB_TXD 12
  209. #define GPCFG_UARTB_RXD 13
  210. #define GPCFG_UARTB_RTS 14
  211. #define GPCFG_UARTB_CTS 15
  212. #define GPCFG_PWM_OUT0 16
  213. #define GPCFG_PWM_OUT1 17
  214. #define GPCFG_PWM_OUT2 18
  215. #define GPCFG_PWM_OUT3 19
  216. #define GPCFG_PWM_OUT4 20
  217. #define GPCFG_PWM_OUT5 21
  218. #define GPCFG_PWM_OUT6 22
  219. #define GPCFG_PWM_OUT7 23
  220. #define GPCFG_I2S_DOUT 24
  221. #define GPCFG_I2S_LRCKOUT 25
  222. #define GPCFG_I2S_CLKOUT 26
  223. #define GPCFG_I2S_DIN 28
  224. #define GPCFG_I2S_LRCKIN 29
  225. #define GPCFG_I2S_CLKIN 30
  226. #define GPCFG_SPID_MISO 31
  227. #define GPCFG_SPID_NCS 32
  228. #define GPCFG_SPID_SCK 33
  229. #define GPCFG_SPID_MOSI 34
  230. #define GPCFG_SPID_SDIO 35
  231. #define GPCFG_QDEC_X0 38
  232. #define GPCFG_QDEC_X1 39
  233. #define GPCFG_QDEC_Y0 40
  234. #define GPCFG_QDEC_Y1 41
  235. #define GPCFG_QDEC_Z0 42
  236. #define GPCFG_QDEC_Z1 43
  237. #define GPCFG_IIC_SCL 44
  238. #define GPCFG_IIC_SDA 45
  239. #define GPCFG_JTAG_SWCLK 60
  240. #define GPCFG_JTAG_SWDAT 61
  241. #define GPCFG_OUTPUT_LOW 62
  242. #define GPCFG_OUTPUT_HIGH 63
  243. #define GPCFG_PULLUP 0x40
  244. #define GPCFG_PULLDOWN 0x80
  245. #define GPCFG_NO_IE 0xc0
  246. //*****************************************************************************
  247. //end config gpio selected function
  248. //*****************************************************************************
  249. /**
  250. *@brief GPIO number.
  251. */
  252. typedef enum
  253. {
  254. GPIO_0 = 0,
  255. GPIO_1,
  256. GPIO_2,
  257. GPIO_3,
  258. GPIO_4,
  259. GPIO_5,
  260. GPIO_6,
  261. GPIO_7,
  262. GPIO_8,
  263. GPIO_9,
  264. GPIO_10,
  265. GPIO_11,
  266. GPIO_12,
  267. GPIO_13,
  268. GPIO_14,
  269. GPIO_15,
  270. GPIO_16,
  271. GPIO_17,
  272. GPIO_18,
  273. GPIO_19,
  274. GPIO_20,
  275. GPIO_21,
  276. GPIO_22,
  277. GPIO_23,
  278. GPIO_24,
  279. GPIO_25,
  280. GPIO_26,
  281. GPIO_27,
  282. GPIO_28,
  283. GPIO_29,
  284. GPIO_30,
  285. GPIO_31,
  286. GPIO_MAX_NUM,
  287. GPIO_ACTIVE_BIT=0x80,
  288. }GPIO_NUM;
  289. //*************************************************************************************
  290. //interrupt id
  291. //*************************************************************************************
  292. #define USB_INTID 0
  293. #define IICD_INTID 1
  294. #define QSPI_INTID 2
  295. #define SPID_INTID 3
  296. #define UART_INTID 4
  297. #define UARTB_INTID 5
  298. #define ADCD_INTID 6
  299. #define I2S_INTID 7
  300. #define BT_INTID 8
  301. //*************************************************************************************
  302. //end interrupt id
  303. //*************************************************************************************
  304. #define reg_map(reg) ((int)(reg) | 0x10000000)
  305. #define reg_map_m0(reg) ((int)(reg) | 0x10010000)
  306. #define PREFETCH_LINE(addr) *(volatile int*)0x20000000 = addr
  307. #define des_ctrl *(volatile uint8_t*)0x30000002
  308. #define des_key(x) *(volatile uint8_t*)(0x30000003 + x)
  309. #define des_in(x) *(volatile uint8_t*)(0x30000018 + x)
  310. #define crypt_status *(volatile uint8_t*)0x30010000
  311. #define des_out(x) *(volatile uint8_t*)(0x30010004 + x)
  312. #define des_start *(volatile uint8_t*)0x30008000
  313. #define rsa_exp(x) *(volatile int32_t*)(0x30020000 + x*4)
  314. #define rsa_out(x) *(volatile int32_t*)(0x30020000 + x*4)
  315. #define rsa_in(x) *(volatile int32_t*)(0x30020080 + x*4)
  316. #define rsa_mod(x) *(volatile int32_t*)(0x30020100 + x*4)
  317. #define rsa_ctrl *(volatile int32_t*)0x30020180
  318. #define TRACE_FIFO *(volatile int*)0xe0002020
  319. #define NVIC_ISER *(volatile int*)0xe000e100
  320. #define NVIC_ICER *(volatile int*)0xe000e180
  321. static inline void enable_intr(int intid) { NVIC_ISER |= 1 << intid;}
  322. static inline void disable_intr(int intid) { NVIC_ICER |= 1 << intid;}
  323. #define CPU_MHZ (48*1000000)
  324. /* SysTick registers */
  325. /* SysTick control & status */
  326. #define INITCPU_SYST_CSR ((volatile unsigned int *)0xE000E010)
  327. /* SysTick Reload value */
  328. #define INITCPU_SYST_RVR ((volatile unsigned int *)0xE000E014)
  329. /* SysTick Current value */
  330. #define INITCPU_SYST_CVR ((volatile unsigned int *)0xE000E018)
  331. /* SysTick CSR register bits */
  332. #define INITCPU_SYST_CSR_COUNTFLAG (1 << 16)
  333. #define INITCPU_SYST_CSR_CLKSOURCE (1 << 2)
  334. #define INITCPU_SYST_CSR_TICKINT (1 << 1)
  335. #define INITCPU_SYST_CSR_ENABLE (1 << 0)
  336. typedef unsigned char byte;
  337. typedef unsigned short word;
  338. void _nop(void) __attribute__((optimize("O0")));
  339. #define TO_16BIT_ADDR(A) (((int)A)&0xFFFF)
  340. #define HREAD(reg) *(volatile byte*)(reg_map(reg))
  341. #define HREADW(reg) (int)HREAD(reg) | HREAD(reg + 1) << 8
  342. #define HWRITE(reg, val) HREAD(reg) = (byte)(val)
  343. #define HWRITEW(reg, val) do { HWRITE(reg, (int)(val));HWRITE(reg + 1, (int)(val) >> 8); }while(0)
  344. #define HWRITE24BIT(reg,val) do { HWRITE(reg, (int)(val));HWRITE(reg + 1, (int)(val) >> 8); HWRITE(reg + 2, (int)(val) >> 16); }while(0)
  345. //#define HWOR(reg, val) HWRITE(reg, HREAD(reg) | (val))
  346. #define HREADL(reg) (int)(HREAD(reg)) | (HREAD(reg + 1) << 8)| (HREAD(reg + 2) << 16)| (HREAD(reg + 3) << 24)
  347. #define HWOR(reg, val) HWRITE(reg, ((HREAD(reg) )| (val)))
  348. #define HWCOR(reg, val) HWRITE(reg, HREAD(reg) & ~(val))
  349. //#define SETBIT(reg, val) HWRITE(reg, HREAD(reg) | (val))
  350. //#define CLRBIT(reg, val) HWRITE(reg, HREAD(reg) & ~(val))
  351. #define BW(addr) (int)*(addr) << 24 | (int)*(addr + 1) << 16 | (int)*(addr + 2) << 8 | *(addr + 3)
  352. #define HREAD32(reg) (uint32_t)(HREAD(reg) | HREAD(reg + 1) << 8|HREAD(reg + 2) << 16| HREAD(reg + 3) << 24)
  353. #define HWRITE32(reg,val) do { HWRITE(reg, (uint32_t)(val));HWRITE(reg + 1, (uint32_t)(val) >> 8); HWRITE(reg + 2, (uint32_t)(val) >> 16); HWRITE(reg + 3, (uint32_t)(val) >> 24);}while(0)
  354. static inline void hw_delay()
  355. {
  356. __asm__ __volatile__("nop");
  357. __asm__ __volatile__("nop");
  358. __asm__ __volatile__("nop");
  359. __asm__ __volatile__("nop");
  360. __asm__ __volatile__("nop");
  361. }
  362. /***********************************CONFIG**********************************************/
  363. #define BASE_ADDR 0x10000000
  364. #define CONFIG_UART_TXD 0x08
  365. #define CONFIG_UART_RXD 0x09
  366. #define CONFIG_UART_RTS 0x0a
  367. #define CONFIG_UART_CTS 0x0b
  368. #define CONFIG_UARTB_TXD 0x0C
  369. #define CONFIG_UARTB_RXD 0x0D
  370. #define CONFIG_UARTB_RTS 0x0E
  371. #define CONFIG_UARTB_CTS 0x0F
  372. /***********************************MEM CONFIG*******************************************/
  373. /***************************UART A CONFIG BUFF***************************/
  374. #define UART_A_RX_BUFF_START 0x1800
  375. #define UART_A_TX_BUFF_START 0x1900
  376. #define UART_A_RX_BUFF_END 0x18ff
  377. #define UART_A_TX_BUFF_END 0x19ff
  378. /***************************UART B CONFIG BUFF***************************/
  379. #define UART_B_RX_BUFF_START 0x1a00
  380. #define UART_B_TX_BUFF_START 0x1b00
  381. #define UART_B_RX_BUFF_END 0x1aff
  382. #define UART_B_TX_BUFF_END 0x1bff
  383. /***************************RING CONFIG BUFF***************************/
  384. #define RING_RX_BUFF_START 0x4B00
  385. #define RING_TX_BUFF_START 0x4D00
  386. #define RING_RX_BUFF_END 0x4Cff
  387. #define RING_TX_BUFF_END 0x4Eff
  388. /***********************************REG*************************************************/
  389. #define REG_CLOCK_SELECT_RW_11BIT 0x10008042
  390. #define REG_CONFIG_RW_H5BIT 0x10008043
  391. #define REG_CLOCK_OFF_1_RW_8BIT 0x10008050
  392. #define REG_CLOCK_OFF_2_RW_8BIT 0x10008051
  393. #define REG_GPIO_CONFIG(X) (0x10008080+(X))
  394. /* ----------------UART---------------- */
  395. #define REG_UART_A_BAUD_RATE_RW_15BIT 0x10008052
  396. #define REG_UART_A_RX_START_ADDR_RW_16BIT 0x10008054
  397. #define REG_UART_A_RX_END_ADDR_RW_16BIT 0x10008056
  398. #define REG_UART_A_RX_RPTR_RW_16BIT 0x10008058
  399. #define REG_UART_A_TX_START_ADDR_RW_16BIT 0x1000805A
  400. #define REG_UART_A_TX_END_ADDR_RW_16BIT 0x1000805C
  401. #define REG_UART_A_TX_WPTR_RW_16BIT 0x1000805E
  402. #define REG_UART_A_CONTROL_RW_8BIT 0x10008060
  403. #define REG_UART_B_BAUD_RATE_RW_15BIT 0x10008072
  404. #define REG_UART_B_RX_START_ADDR_RW_16BIT 0x10008074
  405. #define REG_UART_B_RX_END_ADDR_RW_16BIT 0x10008076
  406. #define REG_UART_B_RX_RPTR_RW_16BIT 0x10008078
  407. #define REG_UART_B_TX_START_ADDR_RW_16BIT 0x1000807A
  408. #define REG_UART_B_TX_END_ADDR_RW_16BIT 0x1000807C
  409. #define REG_UART_B_TX_WPTR_RW_16BIT 0x1000807E
  410. #define REG_UART_B_CONTROL_RW_8BIT 0x10008071
  411. #define REG_UART_A_STATE_R_4BIT 0x1000810C
  412. #define REG_UART_A_DET_BAUD_R_8BIT 0x1000810D
  413. #define REG_UART_A_TX_ITEMS_R_16BIT 0x1000810E
  414. #define REG_UART_A_TX_RPTR_R_16BIT 0x10008110
  415. #define REG_UART_A_RX_ITEMS_R_16BIT 0x10008112
  416. #define REG_UART_A_RX_RPTR_R_16BIT 0x10008114
  417. #define REG_UART_B_STATE_R_4BIT 0x10008152
  418. #define REG_UART_B_DET_BAUD_R_8BIT 0x10008153
  419. #define REG_UART_B_TX_ITEMS_R_16BIT 0x10008154
  420. #define REG_UART_B_TX_RPTR_R_16BIT 0x10008156
  421. #define REG_UART_B_RX_ITEMS_R_16BIT 0x10008158
  422. #define REG_UART_B_RX_RPTR_R_16BIT 0x1000815A
  423. #define REG_M0_LOCK_FLAG_RW_16BIT 0x10004A00
  424. #define REG_BT_LOCK_FLAG_R_16BIT 0x10004A02
  425. #define REG_LOCK_VICTIM(X) (0x10004A04+(X))
  426. #define REG_RING_RX_START_ADDR_RW_16BIT 0x10004A14
  427. #define REG_RING_RX_END_ADDR_RW_16BIT 0x10004A16
  428. #define REG_RING_RX_RPTR_RW_16BIT 0x10004A18
  429. #define REG_RING_TX_START_ADDR_RW_16BIT 0x10004A1a
  430. #define REG_RING_TX_END_ADDR_RW_16BIT 0x10004A1c
  431. #define REG_RING_TX_WPTR_RW_16BIT 0x10004A1e
  432. //#define REG_RING_TX_S_ITEMS_R_16BIT 0x10004A20
  433. #define REG_RING_TX_S_RPTR_R_16BIT 0x10004A20
  434. //#define REG_RING_RX_S_ITEMS_R_16BIT 0x10004A24
  435. #define REG_RING_RX_S_RPTR_R_16BIT 0x10004A22
  436. #ifndef __RTOS__
  437. #define SystemCoreClock 24000000
  438. #endif
  439. #define M0_MEMORY_BASE 0x10010000
  440. #define _ALIGN_SIZE 4
  441. #define GPIO_CONFIG(x) *(volatile uint8_t*)((0x10000000|CORE_GPIO_CONF) + x)
  442. #ifdef __cplusplus
  443. }
  444. #endif
  445. #endif //_YC11XX_H