REG=
{
SYS_SYS_PDID=1073741824,
SYS_SYS_RSTSTS=1073741828,
SYS_SYS_IPRST0=1073741832,
SYS_SYS_IPRST1=1073741836,
SYS_SYS_IPRST2=1073741840,
SYS_SYS_BODCTL=1073741848,
SYS_SYS_IVSCTL=1073741852,
SYS_SYS_PORCTL=1073741860,
SYS_SYS_VREFCTL=1073741864,
SYS_SYS_USBPHY=1073741868,
SYS_SYS_GPA_MFPL=1073741872,
SYS_SYS_GPA_MFPH=1073741876,
SYS_SYS_GPB_MFPL=1073741880,
SYS_SYS_GPB_MFPH=1073741884,
SYS_SYS_GPC_MFPL=1073741888,
SYS_SYS_GPC_MFPH=1073741892,
SYS_SYS_GPD_MFPL=1073741896,
SYS_SYS_GPD_MFPH=1073741900,
SYS_SYS_GPE_MFPL=1073741904,
SYS_SYS_GPE_MFPH=1073741908,
SYS_SYS_GPF_MFPL=1073741912,
SYS_SYS_SRAM_INTCTL=1073742016,
SYS_SYS_SRAM_STATUS=1073742020,
SYS_SYS_SRAM_ERRADDR=1073742024,
SYS_SYS_SRAM_BISTCTL=1073742032,
SYS_SYS_SRAM_BISTSTS=1073742036,
SYS_SYS_IRCTCTL=1073742064,
SYS_SYS_IRCTIEN=1073742068,
SYS_SYS_IRCTISTS=1073742072,
SYS_SYS_REGLCTL=1073742080,
CLK_CLK_PWRCTL=1073742336,
CLK_CLK_AHBCLK=1073742340,
CLK_CLK_APBCLK0=1073742344,
CLK_CLK_APBCLK1=1073742348,
CLK_CLK_CLKSEL0=1073742352,
CLK_CLK_CLKSEL1=1073742356,
CLK_CLK_CLKSEL2=1073742360,
CLK_CLK_CLKSEL3=1073742364,
CLK_CLK_CLKDIV0=1073742368,
CLK_CLK_CLKDIV1=1073742372,
CLK_CLK_PLLCTL=1073742400,
CLK_CLK_STATUS=1073742416,
CLK_CLK_CLKOCTL=1073742432,
CLK_CLK_CLKDCTL=1073742448,
CLK_CLK_CLKDSTS=1073742452,
CLK_CLK_CDUPB=1073742456,
CLK_CLK_CDLOWB=1073742460,
GPIO_PA_MODE=1073758208,
GPIO_PA_DINOFF=1073758212,
GPIO_PA_DOUT=1073758216,
GPIO_PA_DATMSK=1073758220,
GPIO_PA_PIN=1073758224,
GPIO_PA_DBEN=1073758228,
GPIO_PA_INTTYPE=1073758232,
GPIO_PA_INTEN=1073758236,
GPIO_PA_INTSRC=1073758240,
GPIO_PA_SMTEN=1073758244,
GPIO_PA_SLEWCTL=1073758248,
GPIO_PB_MODE=1073758272,
GPIO_PB_DINOFF=1073758276,
GPIO_PB_DOUT=1073758280,
GPIO_PB_DATMSK=1073758284,
GPIO_PB_PIN=1073758288,
GPIO_PB_DBEN=1073758292,
GPIO_PB_INTTYPE=1073758296,
GPIO_PB_INTEN=1073758300,
GPIO_PB_INTSRC=1073758304,
GPIO_PB_SMTEN=1073758308,
GPIO_PB_SLEWCTL=1073758312,
GPIO_PC_MODE=1073758336,
GPIO_PC_DINOFF=1073758340,
GPIO_PC_DOUT=1073758344,
GPIO_PC_DATMSK=1073758348,
GPIO_PC_PIN=1073758352,
GPIO_PC_DBEN=1073758356,
GPIO_PC_INTTYPE=1073758360,
GPIO_PC_INTEN=1073758364,
GPIO_PC_INTSRC=1073758368,
GPIO_PC_SMTEN=1073758372,
GPIO_PC_SLEWCTL=1073758376,
GPIO_PD_MODE=1073758400,
GPIO_PD_DINOFF=1073758404,
GPIO_PD_DOUT=1073758408,
GPIO_PD_DATMSK=1073758412,
GPIO_PD_PIN=1073758416,
GPIO_PD_DBEN=1073758420,
GPIO_PD_INTTYPE=1073758424,
GPIO_PD_INTEN=1073758428,
GPIO_PD_INTSRC=1073758432,
GPIO_PD_SMTEN=1073758436,
GPIO_PD_SLEWCTL=1073758440,
GPIO_PE_MODE=1073758464,
GPIO_PE_DINOFF=1073758468,
GPIO_PE_DOUT=1073758472,
GPIO_PE_DATMSK=1073758476,
GPIO_PE_PIN=1073758480,
GPIO_PE_DBEN=1073758484,
GPIO_PE_INTTYPE=1073758488,
GPIO_PE_INTEN=1073758492,
GPIO_PE_INTSRC=1073758496,
GPIO_PE_SMTEN=1073758500,
GPIO_PE_SLEWCTL=1073758504,
GPIO_PE_DRVCTL=1073758508,
GPIO_PF_MODE=1073758528,
GPIO_PF_DINOFF=1073758532,
GPIO_PF_DOUT=1073758536,
GPIO_PF_DATMSK=1073758540,
GPIO_PF_PIN=1073758544,
GPIO_PF_DBEN=1073758548,
GPIO_PF_INTTYPE=1073758552,
GPIO_PF_INTEN=1073758556,
GPIO_PF_INTSRC=1073758560,
GPIO_PF_SMTEN=1073758564,
GPIO_PF_SLEWCTL=1073758568,
GPIO_GPIO_DBCTL=1073759296,
GPIO_PA0_PDIO=1073760256,
GPIO_PA1_PDIO=1073760260,
GPIO_PA2_PDIO=1073760264,
GPIO_PA3_PDIO=1073760268,
GPIO_PA4_PDIO=1073760272,
GPIO_PA5_PDIO=1073760276,
GPIO_PA6_PDIO=1073760280,
GPIO_PA7_PDIO=1073760284,
GPIO_PA8_PDIO=1073760288,
GPIO_PA9_PDIO=1073760292,
GPIO_PA10_PDIO=1073760296,
GPIO_PA11_PDIO=1073760300,
GPIO_PA12_PDIO=1073760304,
GPIO_PA13_PDIO=1073760308,
GPIO_PA14_PDIO=1073760312,
GPIO_PA15_PDIO=1073760316,
GPIO_PB0_PDIO=1073760320,
GPIO_PB1_PDIO=1073760324,
GPIO_PB2_PDIO=1073760328,
GPIO_PB3_PDIO=1073760332,
GPIO_PB3_PDIO=1073760332,
GPIO_PB4_PDIO=1073760336,
GPIO_PB5_PDIO=1073760340,
GPIO_PB6_PDIO=1073760344,
GPIO_PB7_PDIO=1073760348,
GPIO_PB8_PDIO=1073760352,
GPIO_PB9_PDIO=1073760356,
GPIO_PB10_PDIO=1073760360,
GPIO_PB11_PDIO=1073760364,
GPIO_PB12_PDIO=1073760368,
GPIO_PB13_PDIO=1073760372,
GPIO_PB14_PDIO=1073760376,
GPIO_PB15_PDIO=1073760380,
GPIO_PC0_PDIO=1073760384,
GPIO_PC1_PDIO=1073760388,
GPIO_PC2_PDIO=1073760392,
GPIO_PC3_PDIO=1073760396,
GPIO_PC4_PDIO=1073760400,
GPIO_PC5_PDIO=1073760404,
GPIO_PC6_PDIO=1073760408,
GPIO_PC7_PDIO=1073760412,
GPIO_PC8_PDIO=1073760416,
GPIO_PC9_PDIO=1073760420,
GPIO_PC10_PDIO=1073760424,
GPIO_PC11_PDIO=1073760428,
GPIO_PC12_PDIO=1073760432,
GPIO_PC13_PDIO=1073760436,
GPIO_PC14_PDIO=1073760440,
GPIO_PC15_PDIO=1073760444,
GPIO_PD0_PDIO=1073760448,
GPIO_PD1_PDIO=1073760452,
GPIO_PD2_PDIO=1073760456,
GPIO_PD3_PDIO=1073760460,
GPIO_PD4_PDIO=1073760464,
GPIO_PD5_PDIO=1073760468,
GPIO_PD6_PDIO=1073760472,
GPIO_PD7_PDIO=1073760476,
GPIO_PD8_PDIO=1073760480,
GPIO_PD9_PDIO=1073760484,
GPIO_PD10_PDIO=1073760488,
GPIO_PD11_PDIO=1073760492,
GPIO_PD12_PDIO=1073760496,
GPIO_PD13_PDIO=1073760500,
GPIO_PD14_PDIO=1073760504,
GPIO_PD15_PDIO=1073760508,
GPIO_PE0_PDIO=1073760512,
GPIO_PE1_PDIO=1073760516,
GPIO_PE2_PDIO=1073760520,
GPIO_PE3_PDIO=1073760524,
GPIO_PE4_PDIO=1073760528,
GPIO_PE5_PDIO=1073760532,
GPIO_PE6_PDIO=1073760536,
GPIO_PE7_PDIO=1073760540,
GPIO_PE8_PDIO=1073760544,
GPIO_PE9_PDIO=1073760548,
GPIO_PE10_PDIO=1073760552,
GPIO_PE11_PDIO=1073760556,
GPIO_PE12_PDIO=1073760560,
GPIO_PE13_PDIO=1073760564,
GPIO_PE14_PDIO=1073760568,
GPIO_PF0_PDIO=1073760576,
GPIO_PF1_PDIO=1073760580,
GPIO_PF2_PDIO=1073760584,
GPIO_PF3_PDIO=1073760588,
GPIO_PF4_PDIO=1073760592,
GPIO_PF5_PDIO=1073760596,
GPIO_PF6_PDIO=1073760600,
GPIO_PF7_PDIO=1073760604,
UART0_UART_DAT=1074200576,
UART0_UART_INTEN=1074200580,
UART0_UART_FIFO=1074200584,
UART0_UART_LINE=1074200588,
UART0_UART_MODEM=1074200592,
UART0_UART_MODEMSTS=1074200596,
UART0_UART_FIFOSTS=1074200600,
UART0_UART_INTSTS=1074200604,
UART0_UART_TOUT=1074200608,
UART0_UART_BAUD=1074200612,
UART0_UART_IRDA=1074200616,
UART0_UART_ALTCTL=1074200620,
UART0_UART_FUNCSEL=1074200624,
UART0_UART_LINCTL=1074200628,
UART0_UART_LINSTS=1074200632,
UART1_UART_DAT=1074204672,
UART1_UART_INTEN=1074204676,
UART1_UART_FIFO=1074204680,
UART1_UART_LINE=1074204684,
UART1_UART_MODEM=1074204688,
UART1_UART_MODEMSTS=1074204692,
UART1_UART_FIFOSTS=1074204696,
UART1_UART_INTSTS=1074204700,
UART1_UART_TOUT=1074204704,
UART1_UART_BAUD=1074204708,
UART1_UART_IRDA=1074204712,
UART1_UART_ALTCTL=1074204716,
UART1_UART_FUNCSEL=1074204720,
UART1_UART_LINCTL=1074204724,
UART1_UART_LINSTS=1074204728,
UART2_UART_DAT=1074208768,
UART2_UART_INTEN=1074208772,
UART2_UART_FIFO=1074208776,
UART2_UART_LINE=1074208780,
UART2_UART_MODEM=1074208784,
UART2_UART_MODEMSTS=1074208788,
UART2_UART_FIFOSTS=1074208792,
UART2_UART_INTSTS=1074208796,
UART2_UART_TOUT=1074208800,
UART2_UART_BAUD=1074208804,
UART2_UART_IRDA=1074208808,
UART2_UART_ALTCTL=1074208812,
UART2_UART_FUNCSEL=1074208816,
UART2_UART_LINCTL=1074208820,
UART2_UART_LINSTS=1074208824,
UART3_UART_DAT=1074212864,
UART3_UART_INTEN=1074212868,
UART3_UART_FIFO=1074212872,
UART3_UART_LINE=1074212876,
UART3_UART_MODEM=1074212880,
UART3_UART_MODEMSTS=1074212884,
UART3_UART_FIFOSTS=1074212888,
UART3_UART_INTSTS=1074212892,
UART3_UART_TOUT=1074212896,
UART3_UART_BAUD=1074212900,
UART3_UART_IRDA=1074212904,
UART3_UART_ALTCTL=1074212908,
UART3_UART_FUNCSEL=1074212912,
UART3_UART_LINCTL=1074212916,
UART3_UART_LINSTS=1074212920,
SPI0_SPI_CTL=1074135040,
SPI0_SPI_CLKDIV=1074135044,
SPI0_SPI_SSCTL=1074135048,
SPI0_SPI_PDMACTL=1074135052,
SPI0_SPI_FIFOCTL=1074135056,
SPI0_SPI_STATUS=1074135060,
SPI0_SPI_TX=1074135072,
SPI0_SPI_RX=1074135088,
SPI0_SPI_I2SCTL=1074135136,
SPI0_SPI_I2SCLK=1074135140,
SPI0_SPI_I2SSTS=1074135144,
SPI1_SPI_CTL=1074139136,
SPI1_SPI_CLKDIV=1074139140,
SPI1_SPI_SSCTL=1074139144,
SPI1_SPI_PDMACTL=1074139148,
SPI1_SPI_FIFOCTL=1074139152,
SPI1_SPI_STATUS=1074139156,
SPI1_SPI_TX=1074139168,
SPI1_SPI_RX=1074139184,
SPI1_SPI_I2SCTL=1074139232,
SPI1_SPI_I2SCLK=1074139236,
SPI1_SPI_I2SSTS=1074139240,
SPI2_SPI_CTL=1074143232,
SPI2_SPI_CLKDIV=1074143236,
SPI2_SPI_SSCTL=1074143240,
SPI2_SPI_PDMACTL=1074143244,
SPI2_SPI_FIFOCTL=1074143248,
SPI2_SPI_STATUS=1074143252,
SPI2_SPI_TX=1074143264,
SPI2_SPI_RX=1074143280,
SPI2_SPI_I2SCTL=1074143328,
SPI2_SPI_I2SCLK=1074143332,
SPI2_SPI_I2SSTS=1074143336,
TK_TK_CTL=1074667520,
TK_TK_REFCTL=1074667524,
TK_TK_CCBDAT0=1074667528,
TK_TK_CCBDAT1=1074667532,
TK_TK_CCBDAT2=1074667536,
TK_TK_CCBDAT3=1074667540,
TK_TK_CCBDAT4=1074667544,
TK_TK_IDLESEL=1074667548,
TK_TK_POLSEL=1074667552,
TK_TK_POLCTL=1074667556,
TK_TK_STATUS=1074667560,
TK_TK_DAT0=1074667564,
TK_TK_DAT1=1074667568,
TK_TK_DAT2=1074667572,
TK_TK_DAT3=1074667576,
TK_TK_DAT4=1074667580,
TK_TK_INTEN=1074667584,
TK_TK_TH0_1=1074667588,
TK_TK_TH2_3=1074667592,
TK_TK_TH4_5=1074667596,
TK_TK_TH6_7=1074667600,
TK_TK_TH8_9=1074667604,
TK_TK_TH10_11=1074667608,
TK_TK_TH12_13=1074667612,
TK_TK_TH14_15=1074667616,
TK_TK_TH16=1074667620,
PWM0_PWM_CTL0=1074102272,
PWM0_PWM_CTL1=1074102276,
PWM0_PWM_SYNC=1074102280,
PWM0_PWM_SWSYNC=1074102284,
PWM0_PWM_CLKSRC=1074102288,
PWM0_PWM_CLKPSC0=1074102292,
PWM0_PWM_CLKPSC2=1074102296,
PWM0_PWM_CLKPSC4=1074102300,
PWM0_PWM_CNTEN=1074102304,
PWM0_PWM_CNTCLR=1074102308,
PWM0_PWM_LOAD=1074102312,
PWM0_PWM_PERIOD0=1074102320,
PWM0_PWM_PERIOD1=1074102324,
PWM0_PWM_PERIOD2=1074102328,
PWM0_PWM_PERIOD3=1074102332,
PWM0_PWM_PERIOD4=1074102336,
PWM0_PWM_PERIOD5=1074102340,
PWM0_PWM_CMPDAT0=1074102352,
PWM0_PWM_CMPDAT1=1074102356,
PWM0_PWM_CMPDAT2=1074102360,
PWM0_PWM_CMPDAT3=1074102364,
PWM0_PWM_CMPDAT4=1074102368,
PWM0_PWM_CMPDAT5=1074102372,
PWM0_PWM_DTCTL0_1=1074102384,
PWM0_PWM_DTCTL2_3=1074102388,
PWM0_PWM_DTCTL4_5=1074102392,
PWM0_PWM_PHS0_1=1074102400,
PWM0_PWM_PHS2_3=1074102404,
PWM0_PWM_PHS4_5=1074102408,
PWM0_PWM_CNT0=1074102416,
PWM0_PWM_CNT1=1074102420,
PWM0_PWM_CNT2=1074102424,
PWM0_PWM_CNT3=1074102428,
PWM0_PWM_CNT4=1074102432,
PWM0_PWM_CNT5=1074102436,
PWM0_PWM_WGCTL0=1074102448,
PWM0_PWM_WGCTL1=1074102452,
PWM0_PWM_MSKEN=1074102456,
PWM0_PWM_MSK=1074102460,
PWM0_PWM_BNF=1074102464,
PWM0_PWM_FAILBRK=1074102468,
PWM0_PWM_BRKCTL0_1=1074102472,
PWM0_PWM_BRKCTL2_3=1074102476,
PWM0_PWM_BRKCTL4_5=1074102480,
PWM0_PWM_POLCTL=1074102484,
PWM0_PWM_POEN=1074102488,
PWM0_PWM_SWBRK=1074102492,
PWM0_PWM_INTEN0=1074102496,
PWM0_PWM_INTEN1=1074102500,
PWM0_PWM_INTSTS0=1074102504,
PWM0_PWM_INTSTS1=1074102508,
PWM0_PWM_IFA=1074102512,
PWM0_PWM_DACTRGEN=1074102516,
PWM0_PWM_EADCTS0=1074102520,
PWM0_PWM_EADCTS1=1074102524,
PWM0_PWM_FTCMPDAT0_1=1074102528,
PWM0_PWM_FTCMPDAT2_3=1074102532,
PWM0_PWM_FTCMPDAT4_5=1074102536,
PWM0_PWM_SSCTL=1074102544,
PWM0_PWM_SSTRG=1074102548,
PWM0_PWM_STATUS=1074102560,
PWM0_PWM_CAPINEN=1074102784,
PWM0_PWM_CAPCTL=1074102788,
PWM0_PWM_CAPSTS=1074102792,
PWM0_PWM_RCAPDAT0=1074102796,
PWM0_PWM_FCAPDAT0=1074102800,
PWM0_PWM_RCAPDAT1=1074102804,
PWM0_PWM_FCAPDAT1=1074102808,
PWM0_PWM_RCAPDAT2=1074102812,
PWM0_PWM_FCAPDAT2=1074102816,
PWM0_PWM_RCAPDAT3=1074102820,
PWM0_PWM_FCAPDAT3=1074102824,
PWM0_PWM_RCAPDAT4=1074102828,
PWM0_PWM_FCAPDAT4=1074102832,
PWM0_PWM_RCAPDAT5=1074102836,
PWM0_PWM_FCAPDAT5=1074102840,
PWM0_PWM_PDMACTL=1074102844,
PWM0_PWM_PDMACAP0_1=1074102848,
PWM0_PWM_PDMACAP2_3=1074102852,
PWM0_PWM_PDMACAP4_5=1074102856,
PWM0_PWM_CAPIEN=1074102864,
PWM0_PWM_CAPIF=1074102868,
PWM0_PWM_PBUF0=1074103044,
PWM0_PWM_PBUF1=1074103048,
PWM0_PWM_PBUF2=1074103052,
PWM0_PWM_PBUF3=1074103056,
PWM0_PWM_PBUF4=1074103060,
PWM0_PWM_PBUF5=1074103064,
PWM0_PWM_CMPBUF0=1074103068,
PWM0_PWM_CMPBUF1=1074103072,
PWM0_PWM_CMPBUF2=1074103076,
PWM0_PWM_CMPBUF3=1074103080,
PWM0_PWM_CMPBUF4=1074103084,
PWM0_PWM_CMPBUF5=1074103088,
PWM0_PWM_FTCBUF0_1=1074103104,
PWM0_PWM_FTCBUF2_3=1074103108,
PWM0_PWM_FTCBUF4_5=1074103112,
PWM0_PWM_FTCI=1074103116,
PWM1_PWM_CTL0=1074106368,
PWM1_PWM_CTL1=1074106372,
PWM1_PWM_SYNC=1074106376,
PWM1_PWM_SWSYNC=1074106380,
PWM1_PWM_CLKSRC=1074106384,
PWM1_PWM_CLKPSC0=1074106388,
PWM1_PWM_CLKPSC2=1074106392,
PWM1_PWM_CLKPSC4=1074106396,
PWM1_PWM_CNTEN=1074106400,
PWM1_PWM_CNTCLR=1074106404,
PWM1_PWM_LOAD=1074106408,
PWM1_PWM_PERIOD0=1074106416,
PWM1_PWM_PERIOD1=1074106420,
PWM1_PWM_PERIOD2=1074106424,
PWM1_PWM_PERIOD3=1074106428,
PWM1_PWM_PERIOD4=1074106432,
PWM1_PWM_PERIOD5=1074106436,
PWM1_PWM_CMPDAT0=1074106448,
PWM1_PWM_CMPDAT1=1074106452,
PWM1_PWM_CMPDAT2=1074106456,
PWM1_PWM_CMPDAT3=1074106460,
PWM1_PWM_CMPDAT4=1074106464,
PWM1_PWM_CMPDAT5=1074106468,
PWM1_PWM_DTCTL0_1=1074106480,
PWM1_PWM_DTCTL2_3=1074106484,
PWM1_PWM_DTCTL4_5=1074106488,
PWM1_PWM_PHS0_1=1074106496,
PWM1_PWM_PHS2_3=1074106500,
PWM1_PWM_PHS4_5=1074106504,
PWM1_PWM_CNT0=1074106512,
PWM1_PWM_CNT1=1074106516,
PWM1_PWM_CNT2=1074106520,
PWM1_PWM_CNT3=1074106524,
PWM1_PWM_CNT4=1074106528,
PWM1_PWM_CNT5=1074106532,
PWM1_PWM_WGCTL0=1074106544,
PWM1_PWM_WGCTL1=1074106548,
PWM1_PWM_MSKEN=1074106552,
PWM1_PWM_MSK=1074106556,
PWM1_PWM_BNF=1074106560,
PWM1_PWM_FAILBRK=1074106564,
PWM1_PWM_BRKCTL0_1=1074106568,
PWM1_PWM_BRKCTL2_3=1074106572,
PWM1_PWM_BRKCTL4_5=1074106576,
PWM1_PWM_POLCTL=1074106580,
PWM1_PWM_POEN=1074106584,
PWM1_PWM_SWBRK=1074106588,
PWM1_PWM_INTEN0=1074106592,
PWM1_PWM_INTEN1=1074106596,
PWM1_PWM_INTSTS0=1074106600,
PWM1_PWM_INTSTS1=1074106604,
PWM1_PWM_IFA=1074106608,
PWM1_PWM_DACTRGEN=1074106612,
PWM1_PWM_EADCTS0=1074106616,
PWM1_PWM_EADCTS1=1074106620,
PWM1_PWM_FTCMPDAT0_1=1074106624,
PWM1_PWM_FTCMPDAT2_3=1074106628,
PWM1_PWM_FTCMPDAT4_5=1074106632,
PWM1_PWM_SSCTL=1074106640,
PWM1_PWM_SSTRG=1074106644,
PWM1_PWM_STATUS=1074106656,
PWM1_PWM_CAPINEN=1074106880,
PWM1_PWM_CAPCTL=1074106884,
PWM1_PWM_CAPSTS=1074106888,
PWM1_PWM_RCAPDAT0=1074106892,
PWM1_PWM_FCAPDAT0=1074106896,
PWM1_PWM_RCAPDAT1=1074106900,
PWM1_PWM_FCAPDAT1=1074106904,
PWM1_PWM_RCAPDAT2=1074106908,
PWM1_PWM_FCAPDAT2=1074106912,
PWM1_PWM_RCAPDAT3=1074106916,
PWM1_PWM_FCAPDAT3=1074106920,
PWM1_PWM_RCAPDAT4=1074106924,
PWM1_PWM_FCAPDAT4=1074106928,
PWM1_PWM_RCAPDAT5=1074106932,
PWM1_PWM_FCAPDAT5=1074106936,
PWM1_PWM_PDMACTL=1074106940,
PWM1_PWM_PDMACAP0_1=1074106944,
PWM1_PWM_PDMACAP2_3=1074106948,
PWM1_PWM_PDMACAP4_5=1074106952,
PWM1_PWM_CAPIEN=1074106960,
PWM1_PWM_CAPIF=1074106964,
PWM1_PWM_PBUF0=1074107140,
PWM1_PWM_PBUF1=1074107144,
PWM1_PWM_PBUF2=1074107148,
PWM1_PWM_PBUF3=1074107152,
PWM1_PWM_PBUF4=1074107156,
PWM1_PWM_PBUF5=1074107160,
PWM1_PWM_CMPBUF0=1074107164,
PWM1_PWM_CMPBUF1=1074107168,
PWM1_PWM_CMPBUF2=1074107172,
PWM1_PWM_CMPBUF3=1074107176,
PWM1_PWM_CMPBUF4=1074107180,
PWM1_PWM_CMPBUF5=1074107184,
PWM1_PWM_FTCBUF0_1=1074107200,
PWM1_PWM_FTCBUF2_3=1074107204,
PWM1_PWM_FTCBUF4_5=1074107208,
PWM1_PWM_FTCI=1074107212,
I2C0_I2C_CTL=1074266112,
I2C0_I2C_ADDR0=1074266116,
I2C0_I2C_DAT=1074266120,
I2C0_I2C_STATUS=1074266124,
I2C0_I2C_CLKDIV=1074266128,
I2C0_I2C_TOCTL=1074266132,
I2C0_I2C_ADDR1=1074266136,
I2C0_I2C_ADDR2=1074266140,
I2C0_I2C_ADDR3=1074266144,
I2C0_I2C_ADDRMSK0=1074266148,
I2C0_I2C_ADDRMSK1=1074266152,
I2C0_I2C_ADDRMSK2=1074266156,
I2C0_I2C_ADDRMSK3=1074266160,
I2C0_I2C_WKCTL=1074266172,
I2C0_I2C_WKSTS=1074266176,
I2C0_I2C_BUSCTL=1074266180,
I2C0_I2C_BUSTCTL=1074266184,
I2C0_I2C_BUSSTS=1074266188,
I2C0_I2C_PKTSIZE=1074266192,
I2C0_I2C_PKTCRC=1074266196,
I2C0_I2C_BUSTOUT=1074266200,
I2C0_I2C_CLKTOUT=1074266204,
I2C1_I2C_CTL=1074270208,
I2C1_I2C_ADDR0=1074270212,
I2C1_I2C_DAT=1074270216,
I2C1_I2C_STATUS=1074270220,
I2C1_I2C_CLKDIV=1074270224,
I2C1_I2C_TOCTL=1074270228,
I2C1_I2C_ADDR1=1074270232,
I2C1_I2C_ADDR2=1074270236,
I2C1_I2C_ADDR3=1074270240,
I2C1_I2C_ADDRMSK0=1074270244,
I2C1_I2C_ADDRMSK1=1074270248,
I2C1_I2C_ADDRMSK2=1074270252,
I2C1_I2C_ADDRMSK3=1074270256,
I2C1_I2C_WKCTL=1074270268,
I2C1_I2C_WKSTS=1074270272,
I2C1_I2C_BUSCTL=1074270276,
I2C1_I2C_BUSTCTL=1074270280,
I2C1_I2C_BUSSTS=1074270284,
I2C1_I2C_PKTSIZE=1074270288,
I2C1_I2C_PKTCRC=1074270292,
I2C1_I2C_BUSTOUT=1074270296,
I2C1_I2C_CLKTOUT=1074270300,
TMR01_TIMER0_CTL=1074069504,
TMR01_TIMER0_CMP=1074069508,
TMR01_TIMER0_INTSTS=1074069512,
TMR01_TIMER0_CNT=1074069516,
TMR01_TIMER0_CAP=1074069520,
TMR01_TIMER0_EXTCTL=1074069524,
TMR01_TIMER0_EINTSTS=1074069528,
TMR01_TIMER1_CTL=1074069536,
TMR01_TIMER1_CMP=1074069540,
TMR01_TIMER1_INTSTS=1074069544,
TMR01_TIMER1_CNT=1074069548,
TMR01_TIMER1_CAP=1074069552,
TMR01_TIMER1_EXTCTL=1074069556,
TMR01_TIMER1_EINTSTS=1074069560,
TMR23_TIMER2_CTL=1074073600,
TMR23_TIMER2_CMP=1074073604,
TMR23_TIMER2_INTSTS=1074073608,
TMR23_TIMER2_CNT=1074073612,
TMR23_TIMER2_CAP=1074073616,
TMR23_TIMER2_EXTCTL=1074073620,
TMR23_TIMER2_EINTSTS=1074073624,
TMR23_TIMER3_CTL=1074073632,
TMR23_TIMER3_CMP=1074073636,
TMR23_TIMER3_INTSTS=1074073640,
TMR23_TIMER3_CNT=1074073644,
TMR23_TIMER3_CAP=1074073648,
TMR23_TIMER3_EXTCTL=1074073652,
TMR23_TIMER3_EINTSTS=1074073656,
SC0_SC_CTL=1074331652,
SC0_SC_ETUCTL=1074331668,
SC0_SC_UARTCTL=1074331700,
EBI_EBI_CTL0=1073807360,
EBI_EBI_CTL1=1073807376,
CAN0_CAN_BTIME=1074397196,
CAN0_CAN_BRPE=1074397208,
}
g_M451_regs=REG
function read_M451_Registers(e,e,e,e)
local e={}
e["SYS_SYS_GPA_MFPL"],
e["SYS_SYS_GPA_MFPH"],
e["SYS_SYS_GPB_MFPL"],
e["SYS_SYS_GPB_MFPH"],
e["SYS_SYS_GPC_MFPL"],
e["SYS_SYS_GPC_MFPH"]=ice:ReadMem32(g_M451_regs.SYS_SYS_GPA_MFPL,6)
e["SYS_SYS_GPD_MFPL"],
e["SYS_SYS_GPD_MFPH"],
e["SYS_SYS_GPE_MFPL"],
e["SYS_SYS_GPE_MFPH"],
e["SYS_SYS_GPF_MFPL"]=ice:ReadMem32(g_M451_regs.SYS_SYS_GPD_MFPL,5)
e["SYS_SYS_IRCTCTL"]=ice:ReadMem32(g_M451_regs.SYS_SYS_IRCTCTL)
e["CLK_CLK_PWRCTL"],
e["CLK_CLK_AHBCLK"],
e["CLK_CLK_APBCLK0"],
e["CLK_CLK_APBCLK1"],
e["CLK_CLK_CLKSEL0"],
e["CLK_CLK_CLKSEL1"],
e["CLK_CLK_CLKSEL2"],
e["CLK_CLK_CLKSEL3"],
e["CLK_CLK_CLKDIV0"],
e["CLK_CLK_CLKDIV1"]=ice:ReadMem32(g_M451_regs.CLK_CLK_PWRCTL,10)
e["CLK_CLK_PLLCTL"],
e["CLK_CLK_CLKOCTL"]=ice:ReadMemMulti(g_M451_regs.CLK_CLK_PLLCTL,
g_M451_regs.CLK_CLK_CLKOCTL)
e["GPIO_PA_MODE"],
e["GPIO_PA_DINOFF"],
e["GPIO_PA_DOUT"],
e["GPIO_PA_DATMSK"],
e["GPIO_PA_PIN"]=ice:ReadMem32(g_M451_regs.GPIO_PA_MODE,5)
e["GPIO_PB_MODE"],
e["GPIO_PB_DINOFF"],
e["GPIO_PB_DOUT"],
e["GPIO_PB_DATMSK"],
e["GPIO_PB_PIN"]=ice:ReadMem32(g_M451_regs.GPIO_PB_MODE,5)
e["GPIO_PC_MODE"],
e["GPIO_PC_DINOFF"],
e["GPIO_PC_DOUT"],
e["GPIO_PC_DATMSK"],
e["GPIO_PC_PIN"]=ice:ReadMem32(g_M451_regs.GPIO_PC_MODE,5)
e["GPIO_PD_MODE"],
e["GPIO_PD_DINOFF"],
e["GPIO_PD_DOUT"],
e["GPIO_PD_DATMSK"],
e["GPIO_PD_PIN"]=ice:ReadMem32(g_M451_regs.GPIO_PD_MODE,5)
e["GPIO_PE_MODE"],
e["GPIO_PE_DINOFF"],
e["GPIO_PE_DOUT"],
e["GPIO_PE_DATMSK"],
e["GPIO_PE_PIN"]=ice:ReadMem32(g_M451_regs.GPIO_PE_MODE,5)
e["GPIO_PF_MODE"],
e["GPIO_PF_DINOFF"],
e["GPIO_PF_DOUT"],
e["GPIO_PF_DATMSK"],
e["GPIO_PF_PIN"]=ice:ReadMem32(g_M451_regs.GPIO_PF_MODE,5)
e["GPIO_PA_SLEWCTL"],
e["GPIO_PB_SLEWCTL"],
e["GPIO_PC_SLEWCTL"],
e["GPIO_PD_SLEWCTL"]=ice:ReadMemMulti(g_M451_regs.GPIO_PA_SLEWCTL,
g_M451_regs.GPIO_PB_SLEWCTL,
g_M451_regs.GPIO_PC_SLEWCTL,
g_M451_regs.GPIO_PD_SLEWCTL)
e["GPIO_PE_SLEWCTL"],
e["GPIO_PF_SLEWCTL"]=ice:ReadMemMulti(g_M451_regs.GPIO_PE_SLEWCTL,
g_M451_regs.GPIO_PF_SLEWCTL)
e["UART0_UART_BAUD"],
e["UART1_UART_BAUD"],
e["UART2_UART_BAUD"],
e["UART3_UART_BAUD"]=ice:ReadMemMulti(g_M451_regs.UART0_UART_BAUD,
g_M451_regs.UART1_UART_BAUD,
g_M451_regs.UART2_UART_BAUD,
g_M451_regs.UART3_UART_BAUD)
e["SPI0_SPI_CTL"],
e["SPI1_SPI_CTL"],
e["SPI2_SPI_CTL"]=ice:ReadMemMulti(g_M451_regs.SPI0_SPI_CTL,
g_M451_regs.SPI1_SPI_CTL,
g_M451_regs.SPI2_SPI_CTL)
e["SPI0_SPI_CLKDIV"],
e["SPI1_SPI_CLKDIV"],
e["SPI2_SPI_CLKDIV"]=ice:ReadMemMulti(g_M451_regs.SPI0_SPI_CLKDIV,
g_M451_regs.SPI1_SPI_CLKDIV,
g_M451_regs.SPI2_SPI_CLKDIV)
e["SPI1_SPI_I2SCTL"],
e["SPI2_SPI_I2SCTL"],
e["SPI1_SPI_I2SCLK"],
e["SPI2_SPI_I2SCLK"]=ice:ReadMemMulti(g_M451_regs.SPI1_SPI_I2SCTL,
g_M451_regs.SPI2_SPI_I2SCTL,
g_M451_regs.SPI1_SPI_I2SCLK,
g_M451_regs.SPI2_SPI_I2SCLK)
e["PWM0_PWM_CLKSRC"],
e["PWM1_PWM_CLKSRC"]=ice:ReadMemMulti(g_M451_regs.PWM0_PWM_CLKSRC,
g_M451_regs.PWM1_PWM_CLKSRC)
e["PWM0_PWM_CLKPSC0"],
e["PWM0_PWM_CLKPSC2"],
e["PWM0_PWM_CLKPSC4"]=ice:ReadMem32(g_M451_regs.PWM0_PWM_CLKPSC0,3)
e["PWM1_PWM_CLKPSC0"],
e["PWM1_PWM_CLKPSC2"],
e["PWM1_PWM_CLKPSC4"]=ice:ReadMem32(g_M451_regs.PWM1_PWM_CLKPSC0,3)
e["PWM0_PWM_CNTEN"],
e["PWM1_PWM_CNTEN"]=ice:ReadMemMulti(g_M451_regs.PWM0_PWM_CNTEN,
g_M451_regs.PWM1_PWM_CNTEN)
e["I2C0_I2C_CTL"],
e["I2C0_I2C_CLKDIV"],
e["I2C1_I2C_CTL"],
e["I2C1_I2C_CLKDIV"]=ice:ReadMemMulti(g_M451_regs.I2C0_I2C_CTL,
g_M451_regs.I2C0_I2C_CLKDIV,
g_M451_regs.I2C1_I2C_CTL,
g_M451_regs.I2C1_I2C_CLKDIV)
e["TMR01_TIMER0_CTL"],
e["TMR01_TIMER1_CTL"],
e["TMR23_TIMER2_CTL"],
e["TMR23_TIMER3_CTL"]=ice:ReadMemMulti(g_M451_regs.TMR01_TIMER0_CTL,
g_M451_regs.TMR01_TIMER1_CTL,
g_M451_regs.TMR23_TIMER2_CTL,
g_M451_regs.TMR23_TIMER3_CTL)
e["SC0_SC_UARTCTL"],
e["SC0_SC_ETUCTL"],
e["SC0_SC_CTL"]=ice:ReadMemMulti(g_M451_regs.SC0_SC_UARTCTL,
g_M451_regs.SC0_SC_ETUCTL,
g_M451_regs.SC0_SC_CTL)
e["EBI_EBI_CTL0"],
e["EBI_EBI_CTL1"]=ice:ReadMemMulti(g_M451_regs.EBI_EBI_CTL0,
g_M451_regs.EBI_EBI_CTL1)
e["CAN0_CAN_BTIME"],
e["CAN0_CAN_BRPE"]=ice:ReadMemMulti(g_M451_regs.CAN0_CAN_BTIME,
g_M451_regs.CAN0_CAN_BRPE)
return e
end
local n={
[0]=kPinDirection_In,
[1]=kPinDirection_PushPullOut,
[2]=kPinDirection_OpenDrainOut,
[3]=kPinDirection_Bi,
}
local u={
[0]="INPUT",
[1]="OUTPUT",
[2]="Open-Drain",
[3]="Quasi-bidirectional",
}
function get_mfp_regs(a,o,t)
local e
if t>=0 and t<=7 then
e="L"
else
e="H"
end
local e={"SYS_SYS_GP"..o.."_MFP"..e}
return reg2str("Multi-Function register",g_M451_regs,a,e)
end
function get_clk_informnation(e,t)
return reg2str("Clock setting registers",g_M451_regs,e,t)
end
function get_OSC10K_clock(o,a)
local t
local e
table.insert(a,"CLK_CLK_PWRCTL")
local a=ext.band(o["CLK_CLK_PWRCTL"],8)
if a==0 then
t=0
e="invalid internal 10kHz low speed oscillator clock (see CLK_PWRCTL[3].LIRCEN)"
else
t=10000
e="internal 10kHz low speed oscillator clock"
end
return t,e
end
function get_OSC22M_clock(o,a)
local e
local t
table.insert(a,"CLK_CLK_PWRCTL")
local i=ext.band(o["CLK_CLK_PWRCTL"],4)
if i==0 then
e=0
t="invalid internal 22.1184MHz high speed oscillator clock (see CLK_PWRCTL[2].HIRCEN)"
else
table.insert(a,"SYS_SYS_IRCTCTL")
local a=ext.band(o["SYS_SYS_IRCTCTL"],3)
if a==0 then
e=22118400
t="internal 22.1184MHz high speed oscillator clock"
elseif a==1 then
e=22118400
t="internal 22.1184MHz high speed oscillator clock (auto trim)"
elseif a==2 then
e=24000000
t="internal 24MHz high speed oscillator clock (auto trim)"
else
e=0
t="invalid HIRC trim frequency selection (see SYS_IRCTCTL[1:0].FREQSEL)"
end
end
return e,t
end
function get_XTL32K_clock(a,o)
local t
local e
table.insert(o,"CLK_CLK_PWRCTL")
local a=ext.band(a["CLK_CLK_PWRCTL"],2)
if a==0 then
t=0
e="invalid external 32.768kHz low speed crystal clock (see CLK_PWRCTL[1].LXTEN)"
else
t=32768
e="external 32.768kHz low speed crystal clock"
end
return t,e
end
function get_XTL12M_clock(o,a)
local e
local t
table.insert(a,"CLK_CLK_PWRCTL")
local a=ext.band(o["CLK_CLK_PWRCTL"],1)
if a==0 then
e=0
t="invalid external 4~24M high speed crystal clock (see CLK_PWRCTL[0].HXTEN)"
else
e=12000000
t="external 4~24M high speed crystal clock, when external input clock is 12M"
end
return e,t
end
function get_PLL_clock(a,o)
local t
local e
table.insert(o,"CLK_CLK_PLLCTL")
if ext.band(a["CLK_CLK_PLLCTL"],65536)~=0 then
t=0
e="invalid PLL clock, PLL is in Power-down mode (see CLK_PLLCTL[16].PD)"
else
if ext.band(a["CLK_CLK_PLLCTL"],524288)~=0 then
t,e=get_OSC22M_clock(a,o)
else
t,e=get_XTL12M_clock(a,o)
end
if t~=0 then
if ext.band(a["CLK_CLK_PLLCTL"],131072)~=0 then
e=string.format("PLL clock (%sHz), bypassed from %s",val2str(t),e)
else
local o=ext.band(a["CLK_CLK_PLLCTL"],511)+2
local i=ext.rshift(ext.band(a["CLK_CLK_PLLCTL"],15872),9)+2
local n={1,2,2,4}
local a=n[ext.rshift(ext.band(a["CLK_CLK_PLLCTL"],49152),14)+1]
t=t*o/i/a
e=string.format("PLL clock (%sHz), from %s",val2str(t),e)
end
else
e="PLL clock from "..e
end
end
return t,e
end
function get_sys_clock(o,a,n)
table.insert(a,"CLK_CLK_CLKSEL0")
local i=ext.band(o["CLK_CLK_CLKSEL0"],7)
local t
local e
if i==0 then
t,e=get_XTL12M_clock(o,a)
elseif i==1 then
t,e=get_XTL32K_clock(o,a)
elseif i==2 then
t,e=get_PLL_clock(o,a)
elseif i==3 then
t,e=get_OSC10K_clock(o,a)
elseif i==7 then
t,e=get_OSC22M_clock(o,a)
else
t=0
e="invalid "..n.." clock (see CLK_CLKSEL0[2:0].HCLKSEL)"
return t,e
end
if t==0 then
e=""..n.." clock from "..e
else
table.insert(a,"CLK_CLK_CLKDIV0")
local a=ext.band(o["CLK_CLK_CLKDIV0"],15)
t=t/(a+1)
e=string.format("%s clock (%sHz), from %s",n,val2str(t),e)
end
return t,e
end
function get_HCLK_clock(e,t)
return get_sys_clock(e,t,"HCLK")
end
function get_PCLK_clock(t,e,a)
if a==0 then
return get_PCLK0_clock(t,e)
else
return get_PCLK1_clock(t,e)
end
end
function get_PCLK0_clock(o,a)
local e
local t
e,t=get_HCLK_clock(o,a)
if e==0 then
t="PCLK0 clock from "..t
else
table.insert(a,"CLK_CLK_CLKSEL0")
local a=ext.rshift(ext.band(o["CLK_CLK_CLKSEL0"],64),6)
if a==1 then
e=e/2
end
t=string.format("PCLK0 clock (%sHz), from %s",val2str(e),t)
end
return e,t
end
function get_PCLK1_clock(a,o)
local t
local e
t,e=get_HCLK_clock(a,o)
if t==0 then
e="PCLK1 clock from "..e
else
table.insert(o,"CLK_CLK_CLKSEL0")
local a=ext.rshift(ext.band(a["CLK_CLK_CLKSEL0"],128),7)
if a==1 then
t=t/2
end
e=string.format("PCLK1 clock (%sHz), from %s",val2str(t),e)
end
return t,e
end
function fill_M451_GPIO(o,s,a,e,l)
if l==nil then l=string.format("P%s.%d",a,e)end
local t=s["GPIO_P"..a.."_MODE"]
local m=s["GPIO_P"..a.."_DINOFF"]
local r=s["GPIO_P"..a.."_DOUT"]
local h=s["GPIO_P"..a.."_DATMSK"]
local d=s["GPIO_P"..a.."_PIN"]
local c=s["GPIO_P"..a.."_SLEWCTL"]
o["highlight_text"]=l
o["normal_color"]=kColor_Invalid
o["highlight_color"]=kColor_GPIO
o["pin_bg_color"]=kBgColor_GPIO
local i=ext.band(ext.rshift(t,e*2),3)
o["direction"]=n[i]
if n[i]==kPinDirection_In
or n[i]==kPinDirection_Bi then
if ext.band(d,ext.lshift(1,e))==0 then
o["status"]=kPinStatus_Low
else
o["status"]=kPinStatus_High
end
else
if ext.band(h,ext.lshift(1,e))~=0 then
o["status"]=kPinStatus_Unknown
elseif ext.band(r,ext.lshift(1,e))==0 then
o["status"]=kPinStatus_Low
else
o["status"]=kPinStatus_High
end
end
local t=string.format("P%s.%d is in %s mode
",
a,e,u[i])
if n[i]==kPinDirection_In
or n[i]==kPinDirection_Bi then
if ext.band(d,ext.lshift(1,e))==0 then
t=t.."Pin input low
"
else
t=t.."Pin input high
"
end
end
if n[i]==kPinDirection_PushPullOut
or n[i]==kPinDirection_OpenDrainOut
or n[i]==kPinDirection_Bi then
if ext.band(h,ext.lshift(1,e))~=0 then
t=t.."Pin output masked
"
elseif ext.band(r,ext.lshift(1,e))==0 then
t=t.."Pin output low
"
else
t=t.."Pin output high
"
end
end
if ext.band(m,ext.lshift(1,e+16))==0 then
t=t.."IO digital input path enabled
"
else
t=t.."IO digital input path disabled(digital input tied to low)
"
end
if ext.band(c,ext.lshift(1,e))==0 then
t=t.."IO output with basic slew rate
"
else
t=t.."IO output with higher slew rate
"
end
local h=""
if n[i]==kPinDirection_PushPullOut
or n[i]==kPinDirection_Bi then
if ext.band(r,ext.lshift(1,e))==0 and ext.band(d,ext.lshift(1,e))~=0 then
h=string.format("Leakage warning: GPIO%s_DOUT[%d] = 0, GPIO%s_PIN[%d] = 1
",a,e,a,e)
elseif ext.band(r,ext.lshift(1,e))~=0 and ext.band(d,ext.lshift(1,e))==0 then
h=string.format("Leakage warning: GPIO%s_DOUT[%d] = 1, GPIO%s_PIN[%d] = 0
",a,e,a,e)
end
end
if h~=""then
o["pin_no_color"]=kBgColor_Error
h=""..h..""
end
local i={
"GPIO_P"..a.."_MODE",
"GPIO_P"..a.."_DINOFF",
"GPIO_P"..a.."_DOUT",
"GPIO_P"..a.."_DATMSK",
"GPIO_P"..a.."_PIN",
"GPIO_P"..a.."_SLEWCTL"}
local i=reg2str("GPIO setting registers",g_M451_regs,s,i)
o["information"]=string.format(
"%s
%s
"..
"%s%s"..
"Information
"..
"%s",
l,
h,
get_mfp_regs(s,a,e),
i,
t)
end
function fill_invalid_GPIO(e,o,a,t)
e["highlight_text"]=string.format("P%s.%d",a,t)
e["normal_color"]=kColor_Invalid
e["highlight_color"]=kColor_Invalid
e["pin_bg_color"]=kBgColor_Invalid
e["direction"]=kPinDirection_Unknown
e["status"]=kPinStatus_Unknown
e["pin_no_color"]=kBgColor_Error
local i="Undefined setting in Multi-Function registers for this pin.
"
e["information"]=string.format(
"P%s.%d
%s
"..
"%s",
a,t,
i,
get_mfp_regs(o,a,t))
end
function fill_M451_ADC(e,o,h,r,s)
local a=""
local t=""
local i={}
e["highlight_text"]=s
e["normal_color"]=kColor_Invalid
e["highlight_color"]=kColor_ADC
e["pin_bg_color"]=kBgColor_ADC
e["direction"]=kPinDirection_In
e["status"]=kPinStatus_Unknown
table.insert(i,"CLK_CLK_APBCLK0")
if ext.band(o["CLK_CLK_APBCLK0"],268435456)~=0 then
local n
local e
n,e=get_PCLK_clock(o,i,1)
local o=ext.rshift(ext.band(o["CLK_CLK_CLKDIV0"],16711680),16)
local o=n/(o+1)
if o~=0 then
table.insert(i,"CLK_CLK_CLKDIV0")
a=string.format("EADC clock frequency: %sHz, from %s.
",val2str(o),e)
else
t="EADC clock is not available, "..e..".
"
end
else
t="EADC clock is not available (see CLK_APBCLK0[28].EADCCKEN).
"
end
if t~=""then
t=""..t..""
e["pin_no_color"]=kBgColor_Error
end
if a~=""then
a="Information
"..a
end
e["information"]=string.format(
"%s
%s
%s%s%s",
s,
t,
get_mfp_regs(o,h,r),
get_clk_informnation(o,i),
a)
end
function fill_M451_USB(e,i,a,o,t)
local n=""
local n=""
local n={}
e["highlight_text"]=t
e["normal_color"]=kColor_Invalid
e["highlight_color"]=kColor_USB
e["pin_bg_color"]=kBgColor_USB
e["direction"]=kPinDirection_Unknown
e["status"]=kPinStatus_Unknown
if a==nil or o==nil then
e["information"]=string.format(
"%s
",
t)
else
e["information"]=string.format(
"%s
"..
"%s",
t,
get_mfp_regs(i,a,o))
end
end
function fill_M451_CAN(t,e,d,r,h,a)
local n=""
local o=""
local i={}
t["highlight_text"]=h
t["normal_color"]=kColor_Invalid
t["highlight_color"]=kColor_CAN
t["pin_bg_color"]=kBgColor_CAN
t["status"]=kPinStatus_Unknown
function get_can_bitrate(n,a)
local t=string.format("CAN%d_CAN_BTIME",a)
local a=string.format("CAN%d_CAN_BRPE",a)
table.insert(i,t)
table.insert(i,a)
local i=ext.band(ext.rshift(e[t],8),15)
local o=ext.band(ext.rshift(e[t],12),7)
local e=
ext.bor(ext.band(e[t],63),
ext.lshift(ext.band(e[a],15),6))
local e=n/(e+1)/(i+o+3)
return e
end
table.insert(i,"CLK_CLK_APBCLK0")
if ext.band(e["CLK_CLK_APBCLK0"],ext.lshift(16777216,a))~=0 then
local t
local s
t,s=get_PCLK_clock(e,i,0)
if t~=0 then
local e=get_can_bitrate(t,a)
n=string.format("CAN baudrate: %s, from %s.
",val2str(e),s)
else
o=string.format("CAN%d clock is not available, %s.
",a,s)
end
else
o=string.format("CAN%d clock is not available (see CLK_APBCLK0[%d].CAN%dCKEN).
",
a,a+24,a)
end
if o~=""then
o=""..o..""
t["pin_no_color"]=kBgColor_Error
end
if n~=""then
n="Information
"..n
end
t["information"]=string.format(
"%s
%s
"..
"%s%s%s",
h,
o,
get_mfp_regs(e,d,r),
get_clk_informnation(e,i),
n)
end
function fill_M451_UART(o,e,l,u,d,i)
local n=""
local t=""
local a={}
local h=0
o["highlight_text"]=d
o["normal_color"]=kColor_Invalid
o["highlight_color"]=kColor_UART
o["pin_bg_color"]=kBgColor_UART
o["direction"]=kPinDirection_Unknown
o["status"]=kPinStatus_Unknown
function get_uart_baudate(n)
local s=string.format("UART%d",i)
local t=string.format("UART%d_UART_BAUD",i)
table.insert(a,t)
local o=ext.band(e[t],536870912)
local a=ext.band(e[t],268435456)
local h=ext.rshift(ext.band(e[t],251658240),24)
local t=ext.band(e[t],65535)
local e=0
local i=""
if o==0 and a==0 then
e=n/(16*(t+2))
elseif o~=0 and a==0 then
if h>=8 then
e=n/((h+1)*(t+2))
else
i="invalid "..s.."'s UART_BAUD value, EDIV_M1 must >= 8"
end
elseif o~=0 and a~=0 then
e=n/(t+2)
else
i="invalid "..s.."'s UART_BAUD value"
end
return e,i
end
table.insert(a,"CLK_CLK_APBCLK0")
if ext.band(e["CLK_CLK_APBCLK0"],ext.lshift(65536,i))~=0 then
table.insert(a,"CLK_CLK_CLKSEL1")
local r=ext.band(ext.rshift(e["CLK_CLK_CLKSEL1"],24),3)
local d=ext.band(ext.rshift(e["CLK_CLK_CLKDIV0"],8),15)
local s
local o
if r==0 then
s,o=get_XTL12M_clock(e,a)
elseif r==1 then
s,o=get_PLL_clock(e,a)
else
s,o=get_OSC22M_clock(e,a)
end
h=s/(d+1)
if h~=0 then
table.insert(a,"CLK_CLK_CLKDIV0")
n=string.format("UART%d clock frequency: %sHz, from %s.
",i,val2str(h),o)
else
t=string.format("UART%d clock is not available, %s.
",i,o)
end
else
t=string.format("UART%d clock is not available (see CLK_APBCLK0[%d].UART%dCKEN).
",
i,i+16,i)
end
if t==""then
local e,a=get_uart_baudate(h)
if e~=0 then
n=n..string.format("UART baudrate: %d
",e)
else
t=a..".
"
end
end
if t~=""then
t=""..t..""
o["pin_no_color"]=kBgColor_Error
end
if n~=""then
n="Information
"..n
end
o["information"]=string.format(
"%s
%s
"..
"%s%s%s",
d,
t,
get_mfp_regs(e,l,u),
get_clk_informnation(e,a),
n)
end
function fill_M451_SPI(i,a,u,l,d,e)
local t=""
local h=""
local o={}
i["highlight_text"]=d
i["normal_color"]=kColor_Invalid
i["highlight_color"]=kColor_SPI
i["pin_bg_color"]=kBgColor_SPI
i["direction"]=kPinDirection_Unknown
i["status"]=kPinStatus_Unknown
table.insert(o,"CLK_CLK_APBCLK0")
if ext.band(a["CLK_CLK_APBCLK0"],ext.lshift(4096,e))~=0 then
local n
local s
table.insert(o,"CLK_CLK_CLKSEL2")
local r=ext.band(ext.rshift(a["CLK_CLK_CLKSEL2"],2*e+2),3)
if r==0 then
n,s=get_XTL12M_clock(a,o)
elseif r==1 then
n,s=get_PLL_clock(a,o)
elseif r==2 and(e==0 or e==2)then
n,s=get_PCLK_clock(a,o,0)
elseif r==2 and e==1 then
n,s=get_PCLK_clock(a,o,1)
else
n,s=get_OSC22M_clock(a,o)
end
if n~=0 then
local h=0
if e==1 or e==2 then
local r=string.format("SPI%d_SPI_I2SCTL",e)
local s=string.format("SPI%d_SPI_I2SCLK",e)
table.insert(o,r)
h=ext.band(a[r],1)
if h~=0 then
t=string.format("I2S controller enabled.
")
local h=ext.band(a[r],256)
if h==0 then
table.insert(o,s)
local i=ext.band(ext.rshift(a[s],8),511)
local o=ext.band(a[s],63)
local i=n/(2*(i+1))
local a=n
if o~=0 then
a=n/(2*o)
end
t=t..string.format("SPI%d_I2S is in master mode.
",e)
t=t..string.format("BCLK frequency: %sHz
",val2str(i))
t=t..string.format("MCLK frequency: %sHz
",val2str(a))
else
t=t..string.format("SPI%d_I2S is in slave mode.
",e)
end
i["highlight_color"]=kColor_I2S
i["pin_bg_color"]=kBgColor_I2S
i["direction"]=kPinDirection_Unknown
end
end
if h==0 then
local i=string.format("SPI%d_SPI_CTL",e)
local h=string.format("SPI%d_SPI_CLKDIV",e)
table.insert(o,i)
local i=ext.band(a[i],262144)
if i~=0 then
t=string.format("SPI%d is in slave mode.
",e)
else
t=string.format("SPI%d is in master mode.
",e)
table.insert(o,h)
local a=ext.band(a[h],255)
local a=n/(a+1)
t=t..string.format("SPI%d clock frequency: %sHz, from %s.
",
e,val2str(a),s)
end
end
else
h=string.format("SPI%d clock is not available, %s.
",e,s)
end
else
h=string.format("SPI%d clock is not available (see CLK_APBCLK0[%d].SPI%dCKEN).
",
e,e+12,e)
end
if h~=""then
h=""..h..""
i["pin_no_color"]=kBgColor_Error
end
if t~=""then
t="Information
"..t
end
i["information"]=string.format(
"%s
%s
"..
"%s%s%s",
d,
h,
get_mfp_regs(a,u,l),
get_clk_informnation(a,o),
t)
end
function fill_M451_SPI_IO(e,o,t,a)
if t==1 or t==2 then
local t=string.format("SPI%d_SPI_I2SCTL",t)
local t=ext.band(o[t],1)
if t~=0 then
if a then
e["direction"]=kPinDirection_In
else
e["direction"]=kPinDirection_PushPullOut
end
return
end
end
local t=string.format("SPI%d_SPI_CTL",t)
local t=ext.band(o[t],262144)
if t==0 then
if a then
e["direction"]=kPinDirection_In
else
e["direction"]=kPinDirection_PushPullOut
end
else
if a then
e["direction"]=kPinDirection_PushPullOut
else
e["direction"]=kPinDirection_In
end
end
end
function fill_M451_I2C(t,o,d,l,r,e)
local i=""
local a=""
local n={}
t["highlight_text"]=r
t["normal_color"]=kColor_Invalid
t["highlight_color"]=kColor_I2C
t["pin_bg_color"]=kBgColor_I2C
t["direction"]=kPinDirection_Unknown
t["status"]=kPinStatus_Unknown
table.insert(n,"CLK_CLK_APBCLK0")
local s=ext.band(o["CLK_CLK_APBCLK0"],ext.lshift(256,e))
if s~=0 then
local t=string.format("I2C%d_I2C_CTL",e)
local h=string.format("I2C%d_I2C_CLKDIV",e)
table.insert(n,t)
local t=ext.band(o[t],64)
if t~=0 then
local t
local s
if e==0 then
t,s=get_PCLK_clock(o,n,0)
else
t,s=get_PCLK_clock(o,n,1)
end
if t~=0 then
table.insert(n,h)
local o=ext.band(o[h],255)
if o<4 then
a=string.format("Invalid I2C%d's I2C_CLKDIV value, I2C_CLKDIV must >= 4.
",e)
else
local t=t/(4*(o+1))
i=i..string.format("I2C%d clock frequency: %sHz, from %s.
",e,val2str(t),s)
end
else
a=string.format("I2C%d clock is not available, %s.
",e,s)
end
else
a=string.format("I2C%d controller disabled (see I2C%d_I2C_CTL[6].I2CEN).
",e,e)
end
else
a=string.format("I2C%d clock is not available (see CLK_APBCLK0[%d].I2C%dCKEN).
",e,8+e,e)
end
if a~=""then
a=""..a..""
t["pin_no_color"]=kBgColor_Error
end
if i~=""then
i="Information
"..i
end
t["information"]=string.format(
"%s
%s
"..
"%s%s%s",
r,
a,
get_mfp_regs(o,d,l),
get_clk_informnation(o,n),
i)
end
function fill_M451_ACMP(e,a,n,s,o,t)
local t=""
local i={}
e["highlight_text"]=o
e["normal_color"]=kColor_Invalid
e["highlight_color"]=kColor_CMP
e["pin_bg_color"]=kBgColor_CMP
e["direction"]=kPinDirection_In
e["status"]=kPinStatus_Unknown
table.insert(i,"CLK_CLK_APBCLK0")
if ext.band(a["CLK_CLK_APBCLK0"],128)==0 then
t="ACMP clock is not available (see CLK_APBCLK0[7].ACMP01CKEN).
"
t=""..t..""
e["pin_no_color"]=kBgColor_Error
end
e["information"]=string.format(
"%s
%s
"..
"%s%s",
o,
t,
get_mfp_regs(a,n,s),
get_clk_informnation(a,i))
end
function fill_M451_CLKO(a,e,d,r,h)
local i=""
local o=""
local t={}
a["highlight_text"]=h
a["normal_color"]=kColor_Invalid
a["highlight_color"]=kColor_CLK
a["pin_bg_color"]=kBgColor_CLK
a["direction"]=kPinDirection_PushPullOut
a["status"]=kPinStatus_Unknown
table.insert(t,"CLK_CLK_APBCLK0")
if ext.band(e["CLK_CLK_APBCLK0"],64)~=0 then
table.insert(t,"CLK_CLK_CLKOCTL")
local a=ext.band(ext.rshift(e["CLK_CLK_CLKOCTL"],6),1)
if a==0 then
local a=ext.band(ext.rshift(e["CLK_CLK_CLKOCTL"],4),1)
if a~=0 then
table.insert(t,"CLK_CLK_CLKSEL1")
local s=ext.rshift(ext.band(e["CLK_CLK_CLKSEL1"],805306368),28)
local a
local n
if s==0 then
a,n=get_XTL12M_clock(e,t)
elseif s==1 then
a,n=get_XTL32K_clock(e,t)
elseif s==2 then
a,n=get_HCLK_clock(e,t)
else
a,n=get_OSC22M_clock(e,t)
end
if a~=0 then
local t=a
local o=ext.band(e["CLK_CLK_CLKOCTL"],32)
if o==0 then
local e=ext.band(e["CLK_CLK_CLKOCTL"],15)
t=a/ext.lshift(1,(e+1))
end
i=string.format("CLKO clock frequency: %sHz, from %s.
",val2str(t),n)
else
o="CLKO clock is not available, "..n..".
"
end
else
o="CLKO output function disable (see CLK_CLKOCTL[4].CLKOEN).
"
end
else
i="1Hz clock from RTC"
end
else
o="CLKO clock is not available (see CLK_APBCLK0[6].CLKOCKEN).
"
end
if o~=""then
o=""..o..""
a["pin_no_color"]=kBgColor_Error
end
if i~=""then
i="Information
"..i
end
a["information"]=string.format(
"%s
%s
"..
"%s%s%s",
h,
o,
get_mfp_regs(e,d,r),
get_clk_informnation(e,t),
i)
end
function fill_M451_TM(n,t,l,d,r,e)
local i=""
local o=""
local a={}
n["highlight_text"]=r
n["normal_color"]=kColor_Invalid
n["highlight_color"]=kColor_TM
n["pin_bg_color"]=kBgColor_TM
n["direction"]=kPinDirection_Unknown
n["status"]=kPinStatus_Unknown
table.insert(a,"CLK_CLK_APBCLK0")
local s=ext.band(t["CLK_CLK_APBCLK0"],ext.lshift(4,e))
if s~=0 then
local n=string.format("TMR%d%d_TIMER%d_CTL",ext.rshift(e,1)*2,ext.rshift(e,1)*2+1,e)
table.insert(a,n)
local n=ext.band(t[n],16777216)
if n~=0 then
i=string.format("TMR%d external counting pin function enabled.
",e)
else
table.insert(a,"CLK_CLK_CLKSEL1")
local h=ext.band(ext.rshift(t["CLK_CLK_CLKSEL1"],8+e*4),7)
local n
local s
if h==0 then
n,s=get_XTL12M_clock(t,a)
elseif h==1 then
n,s=get_XTL32K_clock(t,a)
elseif h==2 then
if e==0 or e==1 then
n,s=get_PCLK_clock(t,a,0)
else
n,s=get_PCLK_clock(t,a,1)
end
elseif h==3 then
i=string.format("TMR%d clock source is from external clock T%d pin.
",e,e)
elseif h==5 then
n,s=get_OSC10K_clock(t,a)
elseif h==7 then
n,s=get_OSC22M_clock(t,a)
else
o=string.format("TMR%d clock source is undefined (see CLK_CLKSEL1[%d:%d].TMR%dSEL).
",
e,8+e*4+2,8+e*4,e)
end
if o==""and i==""then
if n~=0 then
i=string.format("TMR%d clock frequency: %sHz, from %s.
",
e,val2str(n),s)
else
o=string.format("TMR%d clock is not available, %s.
",e,s)
end
end
end
else
o=string.format("TMR%d clock is not available (see CLK_APBCLK0[%d].TMR%dCKEN).
",e,e+2,e)
end
if o~=""then
o=""..o..""
n["pin_no_color"]=kBgColor_Error
end
if i~=""then
i="Information
"..i
end
n["information"]=string.format(
"%s
%s
"..
"%s%s%s",
r,
o,
get_mfp_regs(t,l,d),
get_clk_informnation(t,a),
i)
end
function fill_M451_TK(e,a,h,s,o,t)
local n=""
local t=""
local i={}
e["highlight_text"]=o
e["normal_color"]=kColor_Invalid
e["highlight_color"]=kColor_TK
e["pin_bg_color"]=kBgColor_TK
e["direction"]=kPinDirection_In
e["status"]=kPinStatus_Unknown
table.insert(i,"CLK_CLK_APBCLK1")
if ext.band(a["CLK_CLK_APBCLK1"],33554432)==0 then
t="TAMPER clock is not available (see CLK_APBCLK1[25].TKCKEN).
"
t=""..t..""
e["pin_no_color"]=kBgColor_Error
end
e["information"]=string.format(
"%s
%s
"..
"%s%s%s",
o,
t,
get_mfp_regs(a,h,s),
get_clk_informnation(a,i),
n)
end
function fill_M451_PWM(i,t,u,c,l,e,h)
local s=""
local n=""
local o={}
i["highlight_text"]=l
i["normal_color"]=kColor_Invalid
i["highlight_color"]=kColor_PWM
i["pin_bg_color"]=kBgColor_PWM
i["direction"]=kPinDirection_Unknown
i["status"]=kPinStatus_Unknown
if h~=nil then
local a=ext.rshift(h,1)
table.insert(o,"CLK_CLK_APBCLK1")
local i=ext.band(t["CLK_CLK_APBCLK1"],ext.lshift(65536,e))
if i~=0 then
table.insert(o,"CLK_CLK_CLKSEL2")
local d=ext.band(ext.rshift(t["CLK_CLK_CLKSEL2"],e),1)
local i
local r
if d==0 then
i,r=get_PLL_clock(t,o)
else
if e==0 then
i,r=get_PCLK_clock(t,o,0)
else
i,r=get_PCLK_clock(t,o,1)
end
end
local d=string.format("PWM%d_PWM_CNTEN",e)
table.insert(o,d)
local d=ext.band(ext.rshift(t[d],h),1)
if d==0 then
n=string.format("PWM%d counter%d stops running.
",e,h)
else
local d=string.format("PWM%d_PWM_CLKSRC",e)
table.insert(o,d)
local d=ext.band(ext.rshift(t[d],8*a),7)
if d==0 then
if i==0 then
n=string.format("PWM%d clock is not available, %s.
",e,r)
else
local a=string.format("PWM%d_PWM_CLKPSC%d",e,2*a)
table.insert(o,a)
local t=ext.band(t[a],4095)
local t=i/(t+1)
s=string.format("PWM%d clock frequency: %sHz, from %s.
",
e,val2str(i),r)
s=s..string.format("PWM%d counter%d frequency: %sHz (Pre-Scaled)
",
e,h,val2str(t))
end
elseif d<=4 then
s=string.format("PWM%d_CH%d%d clock source is from TIMER%d.
",
e,2*a,2*a+1,d-1)
else
n=string.format("PWM%d_CH%d%d clock source is undefined (see PWM_CLKSRC[%d:%d].ECLKSRC%d).
",
e,2*a,2*a+1,8*a+2,8*a,2*a)
end
end
else
n=string.format("PWM%d clock is not available (see CLK_APBCLK1[%d].PWM%dCKEN).
",
e,16+e,e)
end
end
if n~=""then
n=""..n..""
i["pin_no_color"]=kBgColor_Error
end
if s~=""then
s="Information
"..s
end
i["information"]=string.format(
"%s
%s
"..
"%s%s%s",
l,
n,
get_mfp_regs(t,u,c),
get_clk_informnation(t,o),
s)
end
function fill_M451_DAC(e,o,h,s,n)
local t=""
local a=""
local i={}
e["highlight_text"]=n
e["normal_color"]=kColor_Invalid
e["highlight_color"]=kColor_DAC
e["pin_bg_color"]=kBgColor_DAC
e["direction"]=kPinDirection_PushPullOut
e["status"]=kPinStatus_Unknown
table.insert(i,"CLK_CLK_APBCLK1")
if ext.band(o["CLK_CLK_APBCLK1"],4096)~=0 then
local e
local a
e,a=get_PCLK_clock(o,i,1)
t=string.format("DAC clock frequency: %sHz, from %s.
",val2str(e),a)
else
a="DAC clock is not available (see CLK_APBCLK1[12].DACCKEN).
"
end
if a~=""then
a=""..a..""
e["pin_no_color"]=kBgColor_Error
end
if t~=""then
t="Information
"..t
end
e["information"]=string.format(
"%s
%s
"..
"%s%s%s",
n,
a,
get_mfp_regs(o,h,s),
get_clk_informnation(o,i),
t)
end
function fill_M451_SC(n,t,u,l,d,e)
local a=""
local i=""
local o={}
local h=0
n["highlight_text"]=d
n["normal_color"]=kColor_Invalid
n["highlight_color"]=kColor_SC
n["pin_bg_color"]=kBgColor_SC
n["direction"]=kPinDirection_PushPullOut
n["status"]=kPinStatus_Unknown
table.insert(o,"CLK_CLK_APBCLK1")
if ext.band(t["CLK_CLK_APBCLK1"],ext.lshift(1,e))~=0 then
local r=string.format("SC%d_SC_CTL",e)
table.insert(o,r)
if ext.band(t[r],1)~=0 then
table.insert(o,"CLK_CLK_CLKSEL3")
local r=ext.band(ext.rshift(t["CLK_CLK_CLKSEL3"],e*2),3)
local s
local n
if r==0 then
s,n=get_XTL12M_clock(t,o)
elseif r==1 then
s,n=get_PLL_clock(t,o)
elseif r==2 then
s,n=get_PCLK_clock(t,o,0)
else
s,n=get_OSC22M_clock(t,o)
end
table.insert(o,"CLK_CLK_CLKDIV1")
local t=ext.band(ext.rshift(t["CLK_CLK_CLKDIV1"],e*8),255)
h=s/(t+1)
if h~=0 then
a=a..string.format("SC%d clock frequency: %sHz, from %s.
",e,val2str(h),n)
else
i=string.format("SC%d clock is not available, ",e)..n..".
"
end
else
i=string.format("SC%d engine disabled (see %s[0].SCEN).
",e,r)
end
else
i=string.format("SC%d clock is not available (see CLK_APBCLK1[%d].SC%dCKEN).
",e,e,e)
end
if i==""then
local n=string.format("SC%d_SC_UARTCTL",e)
local s=string.format("SC%d_SC_ETUCTL",e)
table.insert(o,n)
table.insert(o,s)
local o=ext.band(t[s],4095)
local s=h/(o+1)
local t=ext.band(t[n],1)
if t~=0 then
a=string.format("SC%d is in UART mode.
",e)..a
if o>4 then
a=a..string.format("UART baudrate: %d
",s)
else
i=string.format("SC%d ETURDIV(SC_ETUCTL[11:0]) must be greater than 4.
",e)
end
else
a=string.format("SC%d is in Smart Card mode.
",e)..a
end
end
if i~=""then
i=""..i..""
n["pin_no_color"]=kBgColor_Error
end
if a~=""then
a="Information
"..a
end
n["information"]=string.format(
"%s
%s
"..
"%s%s%s",
d,
i,
get_mfp_regs(t,u,l),
get_clk_informnation(t,o),
a)
end
function fill_M451_EBI(t,a,d,r,h)
local e=""
local o=""
local i={}
t["highlight_text"]=h
t["normal_color"]=kColor_Invalid
t["highlight_color"]=kColor_EBI
t["pin_bg_color"]=kBgColor_EBI
t["direction"]=kPinDirection_PushPullOut
t["status"]=kPinStatus_Unknown
table.insert(i,"CLK_CLK_AHBCLK")
local n=ext.band(a["CLK_CLK_AHBCLK"],8)
if n~=0 then
local s
local n
s,n=get_HCLK_clock(a,i)
if s~=0 then
for o=0,1 do
local t=string.format("EBI_EBI_CTL%d",o)
table.insert(i,t)
local i=ext.band(a[t],1)
if i~=0 then
local i=ext.band(ext.rshift(a[t],8),7)
local i=ext.rshift(s,i)
local t=ext.band(ext.rshift(a[t],1),1)
e=e..string.format("EBI Bank%d MCLK frequency: %sHz, from %s.
",
o,val2str(i),n)
e=e..string.format("EBI Bank%d: address/data bus multiplex mode, and data width %d-bit
",
o,(t~=0)and 16 or 8)
else
e=e..string.format("EBI Bank%d disabled
",o)
end
end
else
o=string.format("EBI clock is not available, %s.
",n)
end
else
o="EBI clock is not available (see CLK_AHBCLK[3].EBICKEN).
"
end
if o~=""then
o=""..o..""
t["pin_no_color"]=kBgColor_Error
end
if e~=""then
e="Information
"..e
end
t["information"]=string.format(
"%s
%s
"..
"%s%s%s",
h,
o,
get_mfp_regs(a,d,r),
get_clk_informnation(a,i),
e)
end
function fill_M451_Normal(e,i,a,o,t)
e["highlight_text"]=t
e["normal_color"]=kColor_Invalid
e["highlight_color"]=kColor_Normal
e["pin_bg_color"]=kBgColor_Normal
e["direction"]=kPinDirection_Unknown
e["status"]=kPinStatus_Unknown
if a==nil or o==nil then
e["information"]=string.format(
"%s
",
t)
else
e["information"]=string.format(
"%s
"..
"%s",
t,
get_mfp_regs(i,a,o))
end
end