;-------------------------------------------------------- ; File Created by SDCC : free open source ANSI-C Compiler ; Version 3.0.0 #6037 (Oct 31 2010) (Linux) ; This file was generated Wed Apr 25 01:32:10 2012 ;-------------------------------------------------------- .module test_UM6_spi .optsdcc -mmcs51 --model-medium ;-------------------------------------------------------- ; Public variables in this module ;-------------------------------------------------------- .globl _param_report_period_ms .globl _param_bar_graph .globl _param_input_mode .globl _main .globl _sendReportIfNeeded .globl _updateLeds .globl _UM6_flash_commit .globl _read_gyro_procXY .globl _read_accel_procXY .globl _read_gyro_procZ .globl _read_accel_procZ .globl _read_euler_phi_theta .globl _read_euler_psi .globl _read_accel_rawZ .globl _write_UM6_Miscconfig .globl _Zero_Gyros .globl _write_UM6comm .globl _read_UM6config .globl _spi_UM6_init .globl _IMU_rxdata .globl _IMU_txdata .globl _report .globl _gyroprocZ .globl _gyroprocX .globl _gyroprocY .globl _euler_theta .globl _euler_phi .globl _euler_psi .globl _accelrawZ .globl _accelrawX .globl _accelrawY .globl _accelprocZ .globl _accelprocX .globl _accelprocY .globl _reportBytesSent .globl _reportLength .globl _putchar ;-------------------------------------------------------- ; special function registers ;-------------------------------------------------------- .area RSEG (ABS,DATA) .org 0x0000 Ftest_UM6_spi$P0$0$0 == 0x0080 _P0 = 0x0080 Ftest_UM6_spi$SP$0$0 == 0x0081 _SP = 0x0081 Ftest_UM6_spi$DPL0$0$0 == 0x0082 _DPL0 = 0x0082 Ftest_UM6_spi$DPH0$0$0 == 0x0083 _DPH0 = 0x0083 Ftest_UM6_spi$DPL1$0$0 == 0x0084 _DPL1 = 0x0084 Ftest_UM6_spi$DPH1$0$0 == 0x0085 _DPH1 = 0x0085 Ftest_UM6_spi$U0CSR$0$0 == 0x0086 _U0CSR = 0x0086 Ftest_UM6_spi$PCON$0$0 == 0x0087 _PCON = 0x0087 Ftest_UM6_spi$TCON$0$0 == 0x0088 _TCON = 0x0088 Ftest_UM6_spi$P0IFG$0$0 == 0x0089 _P0IFG = 0x0089 Ftest_UM6_spi$P1IFG$0$0 == 0x008a _P1IFG = 0x008a Ftest_UM6_spi$P2IFG$0$0 == 0x008b _P2IFG = 0x008b Ftest_UM6_spi$PICTL$0$0 == 0x008c _PICTL = 0x008c Ftest_UM6_spi$P1IEN$0$0 == 0x008d _P1IEN = 0x008d Ftest_UM6_spi$P0INP$0$0 == 0x008f _P0INP = 0x008f Ftest_UM6_spi$P1$0$0 == 0x0090 _P1 = 0x0090 Ftest_UM6_spi$RFIM$0$0 == 0x0091 _RFIM = 0x0091 Ftest_UM6_spi$DPS$0$0 == 0x0092 _DPS = 0x0092 Ftest_UM6_spi$MPAGE$0$0 == 0x0093 _MPAGE = 0x0093 Ftest_UM6_spi$ENDIAN$0$0 == 0x0095 _ENDIAN = 0x0095 Ftest_UM6_spi$S0CON$0$0 == 0x0098 _S0CON = 0x0098 Ftest_UM6_spi$IEN2$0$0 == 0x009a _IEN2 = 0x009a Ftest_UM6_spi$S1CON$0$0 == 0x009b _S1CON = 0x009b Ftest_UM6_spi$T2CT$0$0 == 0x009c _T2CT = 0x009c Ftest_UM6_spi$T2PR$0$0 == 0x009d _T2PR = 0x009d Ftest_UM6_spi$T2CTL$0$0 == 0x009e _T2CTL = 0x009e Ftest_UM6_spi$P2$0$0 == 0x00a0 _P2 = 0x00a0 Ftest_UM6_spi$WORIRQ$0$0 == 0x00a1 _WORIRQ = 0x00a1 Ftest_UM6_spi$WORCTRL$0$0 == 0x00a2 _WORCTRL = 0x00a2 Ftest_UM6_spi$WOREVT0$0$0 == 0x00a3 _WOREVT0 = 0x00a3 Ftest_UM6_spi$WOREVT1$0$0 == 0x00a4 _WOREVT1 = 0x00a4 Ftest_UM6_spi$WORTIME0$0$0 == 0x00a5 _WORTIME0 = 0x00a5 Ftest_UM6_spi$WORTIME1$0$0 == 0x00a6 _WORTIME1 = 0x00a6 Ftest_UM6_spi$IEN0$0$0 == 0x00a8 _IEN0 = 0x00a8 Ftest_UM6_spi$IP0$0$0 == 0x00a9 _IP0 = 0x00a9 Ftest_UM6_spi$FWT$0$0 == 0x00ab _FWT = 0x00ab Ftest_UM6_spi$FADDRL$0$0 == 0x00ac _FADDRL = 0x00ac Ftest_UM6_spi$FADDRH$0$0 == 0x00ad _FADDRH = 0x00ad Ftest_UM6_spi$FCTL$0$0 == 0x00ae _FCTL = 0x00ae Ftest_UM6_spi$FWDATA$0$0 == 0x00af _FWDATA = 0x00af Ftest_UM6_spi$ENCDI$0$0 == 0x00b1 _ENCDI = 0x00b1 Ftest_UM6_spi$ENCDO$0$0 == 0x00b2 _ENCDO = 0x00b2 Ftest_UM6_spi$ENCCS$0$0 == 0x00b3 _ENCCS = 0x00b3 Ftest_UM6_spi$ADCCON1$0$0 == 0x00b4 _ADCCON1 = 0x00b4 Ftest_UM6_spi$ADCCON2$0$0 == 0x00b5 _ADCCON2 = 0x00b5 Ftest_UM6_spi$ADCCON3$0$0 == 0x00b6 _ADCCON3 = 0x00b6 Ftest_UM6_spi$IEN1$0$0 == 0x00b8 _IEN1 = 0x00b8 Ftest_UM6_spi$IP1$0$0 == 0x00b9 _IP1 = 0x00b9 Ftest_UM6_spi$ADCL$0$0 == 0x00ba _ADCL = 0x00ba Ftest_UM6_spi$ADCH$0$0 == 0x00bb _ADCH = 0x00bb Ftest_UM6_spi$RNDL$0$0 == 0x00bc _RNDL = 0x00bc Ftest_UM6_spi$RNDH$0$0 == 0x00bd _RNDH = 0x00bd Ftest_UM6_spi$SLEEP$0$0 == 0x00be _SLEEP = 0x00be Ftest_UM6_spi$IRCON$0$0 == 0x00c0 _IRCON = 0x00c0 Ftest_UM6_spi$U0DBUF$0$0 == 0x00c1 _U0DBUF = 0x00c1 Ftest_UM6_spi$U0BAUD$0$0 == 0x00c2 _U0BAUD = 0x00c2 Ftest_UM6_spi$U0UCR$0$0 == 0x00c4 _U0UCR = 0x00c4 Ftest_UM6_spi$U0GCR$0$0 == 0x00c5 _U0GCR = 0x00c5 Ftest_UM6_spi$CLKCON$0$0 == 0x00c6 _CLKCON = 0x00c6 Ftest_UM6_spi$MEMCTR$0$0 == 0x00c7 _MEMCTR = 0x00c7 Ftest_UM6_spi$WDCTL$0$0 == 0x00c9 _WDCTL = 0x00c9 Ftest_UM6_spi$T3CNT$0$0 == 0x00ca _T3CNT = 0x00ca Ftest_UM6_spi$T3CTL$0$0 == 0x00cb _T3CTL = 0x00cb Ftest_UM6_spi$T3CCTL0$0$0 == 0x00cc _T3CCTL0 = 0x00cc Ftest_UM6_spi$T3CC0$0$0 == 0x00cd _T3CC0 = 0x00cd Ftest_UM6_spi$T3CCTL1$0$0 == 0x00ce _T3CCTL1 = 0x00ce Ftest_UM6_spi$T3CC1$0$0 == 0x00cf _T3CC1 = 0x00cf Ftest_UM6_spi$PSW$0$0 == 0x00d0 _PSW = 0x00d0 Ftest_UM6_spi$DMAIRQ$0$0 == 0x00d1 _DMAIRQ = 0x00d1 Ftest_UM6_spi$DMA1CFGL$0$0 == 0x00d2 _DMA1CFGL = 0x00d2 Ftest_UM6_spi$DMA1CFGH$0$0 == 0x00d3 _DMA1CFGH = 0x00d3 Ftest_UM6_spi$DMA0CFGL$0$0 == 0x00d4 _DMA0CFGL = 0x00d4 Ftest_UM6_spi$DMA0CFGH$0$0 == 0x00d5 _DMA0CFGH = 0x00d5 Ftest_UM6_spi$DMAARM$0$0 == 0x00d6 _DMAARM = 0x00d6 Ftest_UM6_spi$DMAREQ$0$0 == 0x00d7 _DMAREQ = 0x00d7 Ftest_UM6_spi$TIMIF$0$0 == 0x00d8 _TIMIF = 0x00d8 Ftest_UM6_spi$RFD$0$0 == 0x00d9 _RFD = 0x00d9 Ftest_UM6_spi$T1CC0L$0$0 == 0x00da _T1CC0L = 0x00da Ftest_UM6_spi$T1CC0H$0$0 == 0x00db _T1CC0H = 0x00db Ftest_UM6_spi$T1CC1L$0$0 == 0x00dc _T1CC1L = 0x00dc Ftest_UM6_spi$T1CC1H$0$0 == 0x00dd _T1CC1H = 0x00dd Ftest_UM6_spi$T1CC2L$0$0 == 0x00de _T1CC2L = 0x00de Ftest_UM6_spi$T1CC2H$0$0 == 0x00df _T1CC2H = 0x00df Ftest_UM6_spi$ACC$0$0 == 0x00e0 _ACC = 0x00e0 Ftest_UM6_spi$RFST$0$0 == 0x00e1 _RFST = 0x00e1 Ftest_UM6_spi$T1CNTL$0$0 == 0x00e2 _T1CNTL = 0x00e2 Ftest_UM6_spi$T1CNTH$0$0 == 0x00e3 _T1CNTH = 0x00e3 Ftest_UM6_spi$T1CTL$0$0 == 0x00e4 _T1CTL = 0x00e4 Ftest_UM6_spi$T1CCTL0$0$0 == 0x00e5 _T1CCTL0 = 0x00e5 Ftest_UM6_spi$T1CCTL1$0$0 == 0x00e6 _T1CCTL1 = 0x00e6 Ftest_UM6_spi$T1CCTL2$0$0 == 0x00e7 _T1CCTL2 = 0x00e7 Ftest_UM6_spi$IRCON2$0$0 == 0x00e8 _IRCON2 = 0x00e8 Ftest_UM6_spi$RFIF$0$0 == 0x00e9 _RFIF = 0x00e9 Ftest_UM6_spi$T4CNT$0$0 == 0x00ea _T4CNT = 0x00ea Ftest_UM6_spi$T4CTL$0$0 == 0x00eb _T4CTL = 0x00eb Ftest_UM6_spi$T4CCTL0$0$0 == 0x00ec _T4CCTL0 = 0x00ec Ftest_UM6_spi$T4CC0$0$0 == 0x00ed _T4CC0 = 0x00ed Ftest_UM6_spi$T4CCTL1$0$0 == 0x00ee _T4CCTL1 = 0x00ee Ftest_UM6_spi$T4CC1$0$0 == 0x00ef _T4CC1 = 0x00ef Ftest_UM6_spi$B$0$0 == 0x00f0 _B = 0x00f0 Ftest_UM6_spi$PERCFG$0$0 == 0x00f1 _PERCFG = 0x00f1 Ftest_UM6_spi$ADCCFG$0$0 == 0x00f2 _ADCCFG = 0x00f2 Ftest_UM6_spi$P0SEL$0$0 == 0x00f3 _P0SEL = 0x00f3 Ftest_UM6_spi$P1SEL$0$0 == 0x00f4 _P1SEL = 0x00f4 Ftest_UM6_spi$P2SEL$0$0 == 0x00f5 _P2SEL = 0x00f5 Ftest_UM6_spi$P1INP$0$0 == 0x00f6 _P1INP = 0x00f6 Ftest_UM6_spi$P2INP$0$0 == 0x00f7 _P2INP = 0x00f7 Ftest_UM6_spi$U1CSR$0$0 == 0x00f8 _U1CSR = 0x00f8 Ftest_UM6_spi$U1DBUF$0$0 == 0x00f9 _U1DBUF = 0x00f9 Ftest_UM6_spi$U1BAUD$0$0 == 0x00fa _U1BAUD = 0x00fa Ftest_UM6_spi$U1UCR$0$0 == 0x00fb _U1UCR = 0x00fb Ftest_UM6_spi$U1GCR$0$0 == 0x00fc _U1GCR = 0x00fc Ftest_UM6_spi$P0DIR$0$0 == 0x00fd _P0DIR = 0x00fd Ftest_UM6_spi$P1DIR$0$0 == 0x00fe _P1DIR = 0x00fe Ftest_UM6_spi$P2DIR$0$0 == 0x00ff _P2DIR = 0x00ff Ftest_UM6_spi$DMA0CFG$0$0 == 0xffffd5d4 _DMA0CFG = 0xffffd5d4 Ftest_UM6_spi$DMA1CFG$0$0 == 0xffffd3d2 _DMA1CFG = 0xffffd3d2 Ftest_UM6_spi$FADDR$0$0 == 0xffffadac _FADDR = 0xffffadac Ftest_UM6_spi$ADC$0$0 == 0xffffbbba _ADC = 0xffffbbba Ftest_UM6_spi$T1CC0$0$0 == 0xffffdbda _T1CC0 = 0xffffdbda Ftest_UM6_spi$T1CC1$0$0 == 0xffffdddc _T1CC1 = 0xffffdddc Ftest_UM6_spi$T1CC2$0$0 == 0xffffdfde _T1CC2 = 0xffffdfde ;-------------------------------------------------------- ; special function bits ;-------------------------------------------------------- .area RSEG (ABS,DATA) .org 0x0000 Ftest_UM6_spi$P0_0$0$0 == 0x0080 _P0_0 = 0x0080 Ftest_UM6_spi$P0_1$0$0 == 0x0081 _P0_1 = 0x0081 Ftest_UM6_spi$P0_2$0$0 == 0x0082 _P0_2 = 0x0082 Ftest_UM6_spi$P0_3$0$0 == 0x0083 _P0_3 = 0x0083 Ftest_UM6_spi$P0_4$0$0 == 0x0084 _P0_4 = 0x0084 Ftest_UM6_spi$P0_5$0$0 == 0x0085 _P0_5 = 0x0085 Ftest_UM6_spi$P0_6$0$0 == 0x0086 _P0_6 = 0x0086 Ftest_UM6_spi$P0_7$0$0 == 0x0087 _P0_7 = 0x0087 Ftest_UM6_spi$_TCON_0$0$0 == 0x0088 __TCON_0 = 0x0088 Ftest_UM6_spi$RFTXRXIF$0$0 == 0x0089 _RFTXRXIF = 0x0089 Ftest_UM6_spi$_TCON_2$0$0 == 0x008a __TCON_2 = 0x008a Ftest_UM6_spi$URX0IF$0$0 == 0x008b _URX0IF = 0x008b Ftest_UM6_spi$_TCON_4$0$0 == 0x008c __TCON_4 = 0x008c Ftest_UM6_spi$ADCIF$0$0 == 0x008d _ADCIF = 0x008d Ftest_UM6_spi$_TCON_6$0$0 == 0x008e __TCON_6 = 0x008e Ftest_UM6_spi$URX1IF$0$0 == 0x008f _URX1IF = 0x008f Ftest_UM6_spi$P1_0$0$0 == 0x0090 _P1_0 = 0x0090 Ftest_UM6_spi$P1_1$0$0 == 0x0091 _P1_1 = 0x0091 Ftest_UM6_spi$P1_2$0$0 == 0x0092 _P1_2 = 0x0092 Ftest_UM6_spi$P1_3$0$0 == 0x0093 _P1_3 = 0x0093 Ftest_UM6_spi$P1_4$0$0 == 0x0094 _P1_4 = 0x0094 Ftest_UM6_spi$P1_5$0$0 == 0x0095 _P1_5 = 0x0095 Ftest_UM6_spi$P1_6$0$0 == 0x0096 _P1_6 = 0x0096 Ftest_UM6_spi$P1_7$0$0 == 0x0097 _P1_7 = 0x0097 Ftest_UM6_spi$ENCIF_0$0$0 == 0x0098 _ENCIF_0 = 0x0098 Ftest_UM6_spi$ENCIF_1$0$0 == 0x0099 _ENCIF_1 = 0x0099 Ftest_UM6_spi$_SOCON2$0$0 == 0x009a __SOCON2 = 0x009a Ftest_UM6_spi$_SOCON3$0$0 == 0x009b __SOCON3 = 0x009b Ftest_UM6_spi$_SOCON4$0$0 == 0x009c __SOCON4 = 0x009c Ftest_UM6_spi$_SOCON5$0$0 == 0x009d __SOCON5 = 0x009d Ftest_UM6_spi$_SOCON6$0$0 == 0x009e __SOCON6 = 0x009e Ftest_UM6_spi$_SOCON7$0$0 == 0x009f __SOCON7 = 0x009f Ftest_UM6_spi$P2_0$0$0 == 0x00a0 _P2_0 = 0x00a0 Ftest_UM6_spi$P2_1$0$0 == 0x00a1 _P2_1 = 0x00a1 Ftest_UM6_spi$P2_2$0$0 == 0x00a2 _P2_2 = 0x00a2 Ftest_UM6_spi$P2_3$0$0 == 0x00a3 _P2_3 = 0x00a3 Ftest_UM6_spi$P2_4$0$0 == 0x00a4 _P2_4 = 0x00a4 Ftest_UM6_spi$P2_5$0$0 == 0x00a5 _P2_5 = 0x00a5 Ftest_UM6_spi$P2_6$0$0 == 0x00a6 _P2_6 = 0x00a6 Ftest_UM6_spi$P2_7$0$0 == 0x00a7 _P2_7 = 0x00a7 Ftest_UM6_spi$RFTXRXIE$0$0 == 0x00a8 _RFTXRXIE = 0x00a8 Ftest_UM6_spi$ADCIE$0$0 == 0x00a9 _ADCIE = 0x00a9 Ftest_UM6_spi$URX0IE$0$0 == 0x00aa _URX0IE = 0x00aa Ftest_UM6_spi$URX1IE$0$0 == 0x00ab _URX1IE = 0x00ab Ftest_UM6_spi$ENCIE$0$0 == 0x00ac _ENCIE = 0x00ac Ftest_UM6_spi$STIE$0$0 == 0x00ad _STIE = 0x00ad Ftest_UM6_spi$_IEN06$0$0 == 0x00ae __IEN06 = 0x00ae Ftest_UM6_spi$EA$0$0 == 0x00af _EA = 0x00af Ftest_UM6_spi$DMAIE$0$0 == 0x00b8 _DMAIE = 0x00b8 Ftest_UM6_spi$T1IE$0$0 == 0x00b9 _T1IE = 0x00b9 Ftest_UM6_spi$T2IE$0$0 == 0x00ba _T2IE = 0x00ba Ftest_UM6_spi$T3IE$0$0 == 0x00bb _T3IE = 0x00bb Ftest_UM6_spi$T4IE$0$0 == 0x00bc _T4IE = 0x00bc Ftest_UM6_spi$P0IE$0$0 == 0x00bd _P0IE = 0x00bd Ftest_UM6_spi$_IEN16$0$0 == 0x00be __IEN16 = 0x00be Ftest_UM6_spi$_IEN17$0$0 == 0x00bf __IEN17 = 0x00bf Ftest_UM6_spi$DMAIF$0$0 == 0x00c0 _DMAIF = 0x00c0 Ftest_UM6_spi$T1IF$0$0 == 0x00c1 _T1IF = 0x00c1 Ftest_UM6_spi$T2IF$0$0 == 0x00c2 _T2IF = 0x00c2 Ftest_UM6_spi$T3IF$0$0 == 0x00c3 _T3IF = 0x00c3 Ftest_UM6_spi$T4IF$0$0 == 0x00c4 _T4IF = 0x00c4 Ftest_UM6_spi$P0IF$0$0 == 0x00c5 _P0IF = 0x00c5 Ftest_UM6_spi$_IRCON6$0$0 == 0x00c6 __IRCON6 = 0x00c6 Ftest_UM6_spi$STIF$0$0 == 0x00c7 _STIF = 0x00c7 Ftest_UM6_spi$P$0$0 == 0x00d0 _P = 0x00d0 Ftest_UM6_spi$F1$0$0 == 0x00d1 _F1 = 0x00d1 Ftest_UM6_spi$OV$0$0 == 0x00d2 _OV = 0x00d2 Ftest_UM6_spi$RS0$0$0 == 0x00d3 _RS0 = 0x00d3 Ftest_UM6_spi$RS1$0$0 == 0x00d4 _RS1 = 0x00d4 Ftest_UM6_spi$F0$0$0 == 0x00d5 _F0 = 0x00d5 Ftest_UM6_spi$AC$0$0 == 0x00d6 _AC = 0x00d6 Ftest_UM6_spi$CY$0$0 == 0x00d7 _CY = 0x00d7 Ftest_UM6_spi$T3OVFIF$0$0 == 0x00d8 _T3OVFIF = 0x00d8 Ftest_UM6_spi$T3CH0IF$0$0 == 0x00d9 _T3CH0IF = 0x00d9 Ftest_UM6_spi$T3CH1IF$0$0 == 0x00da _T3CH1IF = 0x00da Ftest_UM6_spi$T4OVFIF$0$0 == 0x00db _T4OVFIF = 0x00db Ftest_UM6_spi$T4CH0IF$0$0 == 0x00dc _T4CH0IF = 0x00dc Ftest_UM6_spi$T4CH1IF$0$0 == 0x00dd _T4CH1IF = 0x00dd Ftest_UM6_spi$OVFIM$0$0 == 0x00de _OVFIM = 0x00de Ftest_UM6_spi$_TIMIF7$0$0 == 0x00df __TIMIF7 = 0x00df Ftest_UM6_spi$ACC_0$0$0 == 0x00e0 _ACC_0 = 0x00e0 Ftest_UM6_spi$ACC_1$0$0 == 0x00e1 _ACC_1 = 0x00e1 Ftest_UM6_spi$ACC_2$0$0 == 0x00e2 _ACC_2 = 0x00e2 Ftest_UM6_spi$ACC_3$0$0 == 0x00e3 _ACC_3 = 0x00e3 Ftest_UM6_spi$ACC_4$0$0 == 0x00e4 _ACC_4 = 0x00e4 Ftest_UM6_spi$ACC_5$0$0 == 0x00e5 _ACC_5 = 0x00e5 Ftest_UM6_spi$ACC_6$0$0 == 0x00e6 _ACC_6 = 0x00e6 Ftest_UM6_spi$ACC_7$0$0 == 0x00e7 _ACC_7 = 0x00e7 Ftest_UM6_spi$P2IF$0$0 == 0x00e8 _P2IF = 0x00e8 Ftest_UM6_spi$UTX0IF$0$0 == 0x00e9 _UTX0IF = 0x00e9 Ftest_UM6_spi$UTX1IF$0$0 == 0x00ea _UTX1IF = 0x00ea Ftest_UM6_spi$P1IF$0$0 == 0x00eb _P1IF = 0x00eb Ftest_UM6_spi$WDTIF$0$0 == 0x00ec _WDTIF = 0x00ec Ftest_UM6_spi$_IRCON25$0$0 == 0x00ed __IRCON25 = 0x00ed Ftest_UM6_spi$_IRCON26$0$0 == 0x00ee __IRCON26 = 0x00ee Ftest_UM6_spi$_IRCON27$0$0 == 0x00ef __IRCON27 = 0x00ef Ftest_UM6_spi$B_0$0$0 == 0x00f0 _B_0 = 0x00f0 Ftest_UM6_spi$B_1$0$0 == 0x00f1 _B_1 = 0x00f1 Ftest_UM6_spi$B_2$0$0 == 0x00f2 _B_2 = 0x00f2 Ftest_UM6_spi$B_3$0$0 == 0x00f3 _B_3 = 0x00f3 Ftest_UM6_spi$B_4$0$0 == 0x00f4 _B_4 = 0x00f4 Ftest_UM6_spi$B_5$0$0 == 0x00f5 _B_5 = 0x00f5 Ftest_UM6_spi$B_6$0$0 == 0x00f6 _B_6 = 0x00f6 Ftest_UM6_spi$B_7$0$0 == 0x00f7 _B_7 = 0x00f7 Ftest_UM6_spi$U1ACTIVE$0$0 == 0x00f8 _U1ACTIVE = 0x00f8 Ftest_UM6_spi$U1TX_BYTE$0$0 == 0x00f9 _U1TX_BYTE = 0x00f9 Ftest_UM6_spi$U1RX_BYTE$0$0 == 0x00fa _U1RX_BYTE = 0x00fa Ftest_UM6_spi$U1ERR$0$0 == 0x00fb _U1ERR = 0x00fb Ftest_UM6_spi$U1FE$0$0 == 0x00fc _U1FE = 0x00fc Ftest_UM6_spi$U1SLAVE$0$0 == 0x00fd _U1SLAVE = 0x00fd Ftest_UM6_spi$U1RE$0$0 == 0x00fe _U1RE = 0x00fe Ftest_UM6_spi$U1MODE$0$0 == 0x00ff _U1MODE = 0x00ff ;-------------------------------------------------------- ; overlayable register banks ;-------------------------------------------------------- .area REG_BANK_0 (REL,OVR,DATA) .ds 8 ;-------------------------------------------------------- ; overlayable bit register bank ;-------------------------------------------------------- .area BIT_BANK (REL,OVR,DATA) bits: .ds 1 b0 = bits[0] b1 = bits[1] b2 = bits[2] b3 = bits[3] b4 = bits[4] b5 = bits[5] b6 = bits[6] b7 = bits[7] ;-------------------------------------------------------- ; internal ram data ;-------------------------------------------------------- .area DSEG (DATA) G$reportLength$0$0==. _reportLength:: .ds 2 G$reportBytesSent$0$0==. _reportBytesSent:: .ds 2 LsendReportIfNeeded$sloc0$1$0==. _sendReportIfNeeded_sloc0_1_0: .ds 4 ;-------------------------------------------------------- ; overlayable items in internal ram ;-------------------------------------------------------- .area OSEG (OVR,DATA) ;-------------------------------------------------------- ; Stack segment in internal ram ;-------------------------------------------------------- .area SSEG (DATA) __start__stack: .ds 1 ;-------------------------------------------------------- ; indirectly addressable internal ram data ;-------------------------------------------------------- .area ISEG (DATA) ;-------------------------------------------------------- ; absolute internal ram data ;-------------------------------------------------------- .area IABS (ABS,DATA) .area IABS (ABS,DATA) ;-------------------------------------------------------- ; bit data ;-------------------------------------------------------- .area BSEG (BIT) ;-------------------------------------------------------- ; paged external ram data ;-------------------------------------------------------- .area PSEG (PAG,XDATA) G$accelprocY$0$0==. _accelprocY:: .ds 2 G$accelprocX$0$0==. _accelprocX:: .ds 2 G$accelprocZ$0$0==. _accelprocZ:: .ds 2 G$accelrawY$0$0==. _accelrawY:: .ds 2 G$accelrawX$0$0==. _accelrawX:: .ds 2 G$accelrawZ$0$0==. _accelrawZ:: .ds 2 G$euler_psi$0$0==. _euler_psi:: .ds 2 G$euler_phi$0$0==. _euler_phi:: .ds 2 G$euler_theta$0$0==. _euler_theta:: .ds 2 G$gyroprocY$0$0==. _gyroprocY:: .ds 2 G$gyroprocX$0$0==. _gyroprocX:: .ds 2 G$gyroprocZ$0$0==. _gyroprocZ:: .ds 2 LsendReportIfNeeded$lastReport$1$1==. _sendReportIfNeeded_lastReport_1_1: .ds 4 LsendReportIfNeeded$count$1$1==. _sendReportIfNeeded_count_1_1: .ds 2 ;-------------------------------------------------------- ; external ram data ;-------------------------------------------------------- .area XSEG (XDATA) Ftest_UM6_spi$SYNC1$0$0 == 0xdf00 _SYNC1 = 0xdf00 Ftest_UM6_spi$SYNC0$0$0 == 0xdf01 _SYNC0 = 0xdf01 Ftest_UM6_spi$PKTLEN$0$0 == 0xdf02 _PKTLEN = 0xdf02 Ftest_UM6_spi$PKTCTRL1$0$0 == 0xdf03 _PKTCTRL1 = 0xdf03 Ftest_UM6_spi$PKTCTRL0$0$0 == 0xdf04 _PKTCTRL0 = 0xdf04 Ftest_UM6_spi$ADDR$0$0 == 0xdf05 _ADDR = 0xdf05 Ftest_UM6_spi$CHANNR$0$0 == 0xdf06 _CHANNR = 0xdf06 Ftest_UM6_spi$FSCTRL1$0$0 == 0xdf07 _FSCTRL1 = 0xdf07 Ftest_UM6_spi$FSCTRL0$0$0 == 0xdf08 _FSCTRL0 = 0xdf08 Ftest_UM6_spi$FREQ2$0$0 == 0xdf09 _FREQ2 = 0xdf09 Ftest_UM6_spi$FREQ1$0$0 == 0xdf0a _FREQ1 = 0xdf0a Ftest_UM6_spi$FREQ0$0$0 == 0xdf0b _FREQ0 = 0xdf0b Ftest_UM6_spi$MDMCFG4$0$0 == 0xdf0c _MDMCFG4 = 0xdf0c Ftest_UM6_spi$MDMCFG3$0$0 == 0xdf0d _MDMCFG3 = 0xdf0d Ftest_UM6_spi$MDMCFG2$0$0 == 0xdf0e _MDMCFG2 = 0xdf0e Ftest_UM6_spi$MDMCFG1$0$0 == 0xdf0f _MDMCFG1 = 0xdf0f Ftest_UM6_spi$MDMCFG0$0$0 == 0xdf10 _MDMCFG0 = 0xdf10 Ftest_UM6_spi$DEVIATN$0$0 == 0xdf11 _DEVIATN = 0xdf11 Ftest_UM6_spi$MCSM2$0$0 == 0xdf12 _MCSM2 = 0xdf12 Ftest_UM6_spi$MCSM1$0$0 == 0xdf13 _MCSM1 = 0xdf13 Ftest_UM6_spi$MCSM0$0$0 == 0xdf14 _MCSM0 = 0xdf14 Ftest_UM6_spi$FOCCFG$0$0 == 0xdf15 _FOCCFG = 0xdf15 Ftest_UM6_spi$BSCFG$0$0 == 0xdf16 _BSCFG = 0xdf16 Ftest_UM6_spi$AGCCTRL2$0$0 == 0xdf17 _AGCCTRL2 = 0xdf17 Ftest_UM6_spi$AGCCTRL1$0$0 == 0xdf18 _AGCCTRL1 = 0xdf18 Ftest_UM6_spi$AGCCTRL0$0$0 == 0xdf19 _AGCCTRL0 = 0xdf19 Ftest_UM6_spi$FREND1$0$0 == 0xdf1a _FREND1 = 0xdf1a Ftest_UM6_spi$FREND0$0$0 == 0xdf1b _FREND0 = 0xdf1b Ftest_UM6_spi$FSCAL3$0$0 == 0xdf1c _FSCAL3 = 0xdf1c Ftest_UM6_spi$FSCAL2$0$0 == 0xdf1d _FSCAL2 = 0xdf1d Ftest_UM6_spi$FSCAL1$0$0 == 0xdf1e _FSCAL1 = 0xdf1e Ftest_UM6_spi$FSCAL0$0$0 == 0xdf1f _FSCAL0 = 0xdf1f Ftest_UM6_spi$TEST2$0$0 == 0xdf23 _TEST2 = 0xdf23 Ftest_UM6_spi$TEST1$0$0 == 0xdf24 _TEST1 = 0xdf24 Ftest_UM6_spi$TEST0$0$0 == 0xdf25 _TEST0 = 0xdf25 Ftest_UM6_spi$PA_TABLE0$0$0 == 0xdf2e _PA_TABLE0 = 0xdf2e Ftest_UM6_spi$IOCFG2$0$0 == 0xdf2f _IOCFG2 = 0xdf2f Ftest_UM6_spi$IOCFG1$0$0 == 0xdf30 _IOCFG1 = 0xdf30 Ftest_UM6_spi$IOCFG0$0$0 == 0xdf31 _IOCFG0 = 0xdf31 Ftest_UM6_spi$PARTNUM$0$0 == 0xdf36 _PARTNUM = 0xdf36 Ftest_UM6_spi$VERSION$0$0 == 0xdf37 _VERSION = 0xdf37 Ftest_UM6_spi$FREQEST$0$0 == 0xdf38 _FREQEST = 0xdf38 Ftest_UM6_spi$LQI$0$0 == 0xdf39 _LQI = 0xdf39 Ftest_UM6_spi$RSSI$0$0 == 0xdf3a _RSSI = 0xdf3a Ftest_UM6_spi$MARCSTATE$0$0 == 0xdf3b _MARCSTATE = 0xdf3b Ftest_UM6_spi$PKTSTATUS$0$0 == 0xdf3c _PKTSTATUS = 0xdf3c Ftest_UM6_spi$VCO_VC_DAC$0$0 == 0xdf3d _VCO_VC_DAC = 0xdf3d Ftest_UM6_spi$I2SCFG0$0$0 == 0xdf40 _I2SCFG0 = 0xdf40 Ftest_UM6_spi$I2SCFG1$0$0 == 0xdf41 _I2SCFG1 = 0xdf41 Ftest_UM6_spi$I2SDATL$0$0 == 0xdf42 _I2SDATL = 0xdf42 Ftest_UM6_spi$I2SDATH$0$0 == 0xdf43 _I2SDATH = 0xdf43 Ftest_UM6_spi$I2SWCNT$0$0 == 0xdf44 _I2SWCNT = 0xdf44 Ftest_UM6_spi$I2SSTAT$0$0 == 0xdf45 _I2SSTAT = 0xdf45 Ftest_UM6_spi$I2SCLKF0$0$0 == 0xdf46 _I2SCLKF0 = 0xdf46 Ftest_UM6_spi$I2SCLKF1$0$0 == 0xdf47 _I2SCLKF1 = 0xdf47 Ftest_UM6_spi$I2SCLKF2$0$0 == 0xdf48 _I2SCLKF2 = 0xdf48 Ftest_UM6_spi$USBADDR$0$0 == 0xde00 _USBADDR = 0xde00 Ftest_UM6_spi$USBPOW$0$0 == 0xde01 _USBPOW = 0xde01 Ftest_UM6_spi$USBIIF$0$0 == 0xde02 _USBIIF = 0xde02 Ftest_UM6_spi$USBOIF$0$0 == 0xde04 _USBOIF = 0xde04 Ftest_UM6_spi$USBCIF$0$0 == 0xde06 _USBCIF = 0xde06 Ftest_UM6_spi$USBIIE$0$0 == 0xde07 _USBIIE = 0xde07 Ftest_UM6_spi$USBOIE$0$0 == 0xde09 _USBOIE = 0xde09 Ftest_UM6_spi$USBCIE$0$0 == 0xde0b _USBCIE = 0xde0b Ftest_UM6_spi$USBFRML$0$0 == 0xde0c _USBFRML = 0xde0c Ftest_UM6_spi$USBFRMH$0$0 == 0xde0d _USBFRMH = 0xde0d Ftest_UM6_spi$USBINDEX$0$0 == 0xde0e _USBINDEX = 0xde0e Ftest_UM6_spi$USBMAXI$0$0 == 0xde10 _USBMAXI = 0xde10 Ftest_UM6_spi$USBCSIL$0$0 == 0xde11 _USBCSIL = 0xde11 Ftest_UM6_spi$USBCSIH$0$0 == 0xde12 _USBCSIH = 0xde12 Ftest_UM6_spi$USBMAXO$0$0 == 0xde13 _USBMAXO = 0xde13 Ftest_UM6_spi$USBCSOL$0$0 == 0xde14 _USBCSOL = 0xde14 Ftest_UM6_spi$USBCSOH$0$0 == 0xde15 _USBCSOH = 0xde15 Ftest_UM6_spi$USBCNTL$0$0 == 0xde16 _USBCNTL = 0xde16 Ftest_UM6_spi$USBCNTH$0$0 == 0xde17 _USBCNTH = 0xde17 Ftest_UM6_spi$USBF0$0$0 == 0xde20 _USBF0 = 0xde20 Ftest_UM6_spi$USBF1$0$0 == 0xde22 _USBF1 = 0xde22 Ftest_UM6_spi$USBF2$0$0 == 0xde24 _USBF2 = 0xde24 Ftest_UM6_spi$USBF3$0$0 == 0xde26 _USBF3 = 0xde26 Ftest_UM6_spi$USBF4$0$0 == 0xde28 _USBF4 = 0xde28 Ftest_UM6_spi$USBF5$0$0 == 0xde2a _USBF5 = 0xde2a G$report$0$0==. _report:: .ds 612 ;-------------------------------------------------------- ; absolute external ram data ;-------------------------------------------------------- .area XABS (ABS,XDATA) ;-------------------------------------------------------- ; external initialized ram data ;-------------------------------------------------------- .area XISEG (XDATA) G$IMU_txdata$0$0==. _IMU_txdata:: .ds 8 G$IMU_rxdata$0$0==. _IMU_rxdata:: .ds 8 .area HOME (CODE) .area GSINIT0 (CODE) .area GSINIT1 (CODE) .area GSINIT2 (CODE) .area GSINIT3 (CODE) .area GSINIT4 (CODE) .area GSINIT5 (CODE) .area GSINIT (CODE) .area GSFINAL (CODE) .area CSEG (CODE) ;-------------------------------------------------------- ; interrupt vector ;-------------------------------------------------------- .area HOME (CODE) __interrupt_vect: ljmp __sdcc_gsinit_startup reti .ds 7 reti .ds 7 reti .ds 7 ljmp _ISR_URX1 .ds 5 reti .ds 7 reti .ds 7 reti .ds 7 reti .ds 7 reti .ds 7 reti .ds 7 reti .ds 7 reti .ds 7 ljmp _ISR_T4 ;-------------------------------------------------------- ; global & static initialisations ;-------------------------------------------------------- .area HOME (CODE) .area GSINIT (CODE) .area GSFINAL (CODE) .area GSINIT (CODE) .globl __sdcc_gsinit_startup .globl __sdcc_program_startup .globl __start__stack .globl __mcs51_genXINIT .globl __mcs51_genXRAMCLEAR .globl __mcs51_genRAMCLEAR ;------------------------------------------------------------ ;Allocation info for local variables in function 'sendReportIfNeeded' ;------------------------------------------------------------ ;sloc0 Allocated with name '_sendReportIfNeeded_sloc0_1_0' ;------------------------------------------------------------ G$sendReportIfNeeded$0$0 ==. C$test_UM6_spi.c$76$2$1 ==. ; apps/test_UM6_spi/test_UM6_spi.c:76: static count = 0; mov r0,#_sendReportIfNeeded_count_1_1 clr a movx @r0,a inc r0 movx @r0,a G$main$0$0 ==. C$test_UM6_spi.c$45$1$1 ==. ; apps/test_UM6_spi/test_UM6_spi.c:45: uint16 DATA reportLength = 0; clr a mov _reportLength,a mov (_reportLength + 1),a G$main$0$0 ==. C$test_UM6_spi.c$49$1$1 ==. ; apps/test_UM6_spi/test_UM6_spi.c:49: uint16 DATA reportBytesSent = 0; clr a mov _reportBytesSent,a mov (_reportBytesSent + 1),a .area GSFINAL (CODE) ljmp __sdcc_program_startup ;-------------------------------------------------------- ; Home ;-------------------------------------------------------- .area HOME (CODE) .area HOME (CODE) __sdcc_program_startup: lcall _main ; return from main will lock up sjmp . ;-------------------------------------------------------- ; code ;-------------------------------------------------------- .area CSEG (CODE) ;------------------------------------------------------------ ;Allocation info for local variables in function 'spi_UM6_init' ;------------------------------------------------------------ ;------------------------------------------------------------ G$spi_UM6_init$0$0 ==. C$UM6.c$108$0$0 ==. ; apps/test_UM6_spi/../UM6.c:108: void spi_UM6_init(){ ; ----------------------------------------- ; function spi_UM6_init ; ----------------------------------------- _spi_UM6_init: ar2 = 0x02 ar3 = 0x03 ar4 = 0x04 ar5 = 0x05 ar6 = 0x06 ar7 = 0x07 ar0 = 0x00 ar1 = 0x01 C$UM6.c$109$1$1 ==. ; apps/test_UM6_spi/../UM6.c:109: spi_UM6MasterInit(); lcall _spi1MasterInit C$UM6.c$110$1$1 ==. ; apps/test_UM6_spi/../UM6.c:110: spi_UM6MasterSetFrequency(230400); mov dptr,#0x8400 mov b,#0x03 clr a lcall _spi1MasterSetFrequency C$UM6.c$111$1$1 ==. ; apps/test_UM6_spi/../UM6.c:111: spi_UM6MasterSetClockPolarity(SPI_POLARITY_IDLE_LOW); // SCK LOW when no data is being transmitted clr _spi1MasterSetClockPolarity_PARM_1 lcall _spi1MasterSetClockPolarity C$UM6.c$112$1$1 ==. ; apps/test_UM6_spi/../UM6.c:112: spi_UM6MasterSetClockPhase(SPI_PHASE_EDGE_LEADING); // data sampled when clock goes from active to idle clr _spi1MasterSetClockPhase_PARM_1 lcall _spi1MasterSetClockPhase C$UM6.c$113$1$1 ==. ; apps/test_UM6_spi/../UM6.c:113: spi_UM6MasterSetBitOrder(SPI_BIT_ORDER_MSB_FIRST); clr _spi1MasterSetBitOrder_PARM_1 C$UM6.c$114$1$1 ==. XG$spi_UM6_init$0$0 ==. ljmp _spi1MasterSetBitOrder ;------------------------------------------------------------ ;Allocation info for local variables in function 'read_UM6config' ;------------------------------------------------------------ ;------------------------------------------------------------ G$read_UM6config$0$0 ==. C$UM6.c$122$1$1 ==. ; apps/test_UM6_spi/../UM6.c:122: void read_UM6config(){ ; ----------------------------------------- ; function read_UM6config ; ----------------------------------------- _read_UM6config: C$UM6.c$127$1$1 ==. ; apps/test_UM6_spi/../UM6.c:127: IMU_txdata[0] = 0; //read command mov dptr,#_IMU_txdata C$UM6.c$128$1$1 ==. ; apps/test_UM6_spi/../UM6.c:128: IMU_txdata[1] = 0x00; // address = comm register clr a movx @dptr,a mov dptr,#(_IMU_txdata + 0x0001) movx @dptr,a C$UM6.c$129$1$1 ==. ; apps/test_UM6_spi/../UM6.c:129: IMU_CSlow; clr b[0] mov bits,b mov dpl,#0x0E lcall _setDigitalOutput C$UM6.c$130$1$1 ==. ; apps/test_UM6_spi/../UM6.c:130: spi_UM6MasterTransfer(IMU_txdata,IMU_rxdata,6); mov r0,#_spi1MasterTransfer_PARM_2 mov a,#_IMU_rxdata movx @r0,a inc r0 mov a,#(_IMU_rxdata >> 8) movx @r0,a mov r0,#_spi1MasterTransfer_PARM_3 mov a,#0x06 movx @r0,a inc r0 clr a movx @r0,a mov dptr,#_IMU_txdata lcall _spi1MasterTransfer C$UM6.c$131$1$1 ==. ; apps/test_UM6_spi/../UM6.c:131: while(spi_UM6MasterBusy()){ } 00101$: lcall _spi1MasterBusy jc 00101$ C$UM6.c$132$1$1 ==. ; apps/test_UM6_spi/../UM6.c:132: IMU_CShigh; setb b[0] mov bits,b mov dpl,#0x0E lcall _setDigitalOutput C$UM6.c$134$1$1 ==. ; apps/test_UM6_spi/../UM6.c:134: if(IMU_rxdata[2] & (1<<6)){ mov dptr,#(_IMU_rxdata + 0x0002) movx a,@dptr mov r2,a jnb acc.6,00105$ C$UM6.c$135$2$3 ==. ; apps/test_UM6_spi/../UM6.c:135: printf("Broadcast mode ENABLED \n"); mov a,#__str_0 push acc mov a,#(__str_0 >> 8) push acc mov a,#0x80 push acc lcall _printf dec sp dec sp dec sp sjmp 00106$ 00105$: C$UM6.c$136$2$4 ==. ; apps/test_UM6_spi/../UM6.c:136: }else{ printf("Broadcast mode DISABLED \n");} mov a,#__str_1 push acc mov a,#(__str_1 >> 8) push acc mov a,#0x80 push acc lcall _printf dec sp dec sp dec sp 00106$: C$UM6.c$137$1$1 ==. ; apps/test_UM6_spi/../UM6.c:137: if(IMU_rxdata[2] & (1<<5)){ mov dptr,#(_IMU_rxdata + 0x0002) movx a,@dptr mov r2,a jnb acc.5,00108$ C$UM6.c$138$2$5 ==. ; apps/test_UM6_spi/../UM6.c:138: printf("Raw Gyro data transmission ENABLED \n"); mov a,#__str_2 push acc mov a,#(__str_2 >> 8) push acc mov a,#0x80 push acc lcall _printf dec sp dec sp dec sp sjmp 00109$ 00108$: C$UM6.c$139$2$6 ==. ; apps/test_UM6_spi/../UM6.c:139: }else{ printf("Raw Gyro data transmission DISABLED \n");} mov a,#__str_3 push acc mov a,#(__str_3 >> 8) push acc mov a,#0x80 push acc lcall _printf dec sp dec sp dec sp 00109$: C$UM6.c$140$1$1 ==. ; apps/test_UM6_spi/../UM6.c:140: if(IMU_rxdata[2] & (1<<4)){ mov dptr,#(_IMU_rxdata + 0x0002) movx a,@dptr mov r2,a jnb acc.4,00111$ C$UM6.c$141$2$7 ==. ; apps/test_UM6_spi/../UM6.c:141: printf("Raw accelerometer data transmission ENABLED \n"); mov a,#__str_4 push acc mov a,#(__str_4 >> 8) push acc mov a,#0x80 push acc lcall _printf dec sp dec sp dec sp sjmp 00112$ 00111$: C$UM6.c$142$2$8 ==. ; apps/test_UM6_spi/../UM6.c:142: }else{ printf("Raw accelerometer data transmission DISABLED \n");} mov a,#__str_5 push acc mov a,#(__str_5 >> 8) push acc mov a,#0x80 push acc lcall _printf dec sp dec sp dec sp 00112$: C$UM6.c$143$1$1 ==. ; apps/test_UM6_spi/../UM6.c:143: if(IMU_rxdata[2] & (1<<3)){ mov dptr,#(_IMU_rxdata + 0x0002) movx a,@dptr mov r2,a jnb acc.3,00114$ C$UM6.c$144$2$9 ==. ; apps/test_UM6_spi/../UM6.c:144: printf("Raw magnetometer data transmission ENABLED \n"); mov a,#__str_6 push acc mov a,#(__str_6 >> 8) push acc mov a,#0x80 push acc lcall _printf dec sp dec sp dec sp sjmp 00115$ 00114$: C$UM6.c$145$2$10 ==. ; apps/test_UM6_spi/../UM6.c:145: }else{ printf("Raw magnetometer data transmission DISABLED \n");} mov a,#__str_7 push acc mov a,#(__str_7 >> 8) push acc mov a,#0x80 push acc lcall _printf dec sp dec sp dec sp 00115$: C$UM6.c$146$1$1 ==. ; apps/test_UM6_spi/../UM6.c:146: if(IMU_rxdata[2] & (1<<2)){ mov dptr,#(_IMU_rxdata + 0x0002) movx a,@dptr mov r2,a jnb acc.2,00117$ C$UM6.c$147$2$11 ==. ; apps/test_UM6_spi/../UM6.c:147: printf("Processed Gyro data transmission ENABLED \n"); mov a,#__str_8 push acc mov a,#(__str_8 >> 8) push acc mov a,#0x80 push acc lcall _printf dec sp dec sp dec sp sjmp 00118$ 00117$: C$UM6.c$148$2$12 ==. ; apps/test_UM6_spi/../UM6.c:148: }else{ printf("Processed Gyro data transmission DISABLED \n");} mov a,#__str_9 push acc mov a,#(__str_9 >> 8) push acc mov a,#0x80 push acc lcall _printf dec sp dec sp dec sp 00118$: C$UM6.c$149$1$1 ==. ; apps/test_UM6_spi/../UM6.c:149: if(IMU_rxdata[2] & (1)){ mov dptr,#(_IMU_rxdata + 0x0002) movx a,@dptr mov r2,a jnb acc.0,00120$ C$UM6.c$150$2$13 ==. ; apps/test_UM6_spi/../UM6.c:150: printf("Processed accelerometer data transmission ENABLED \n"); mov a,#__str_10 push acc mov a,#(__str_10 >> 8) push acc mov a,#0x80 push acc lcall _printf dec sp dec sp dec sp sjmp 00121$ 00120$: C$UM6.c$151$2$14 ==. ; apps/test_UM6_spi/../UM6.c:151: }else{ printf("Processed accelerometer data transmission DISABLED \n");} mov a,#__str_11 push acc mov a,#(__str_11 >> 8) push acc mov a,#0x80 push acc lcall _printf dec sp dec sp dec sp 00121$: C$UM6.c$152$1$1 ==. ; apps/test_UM6_spi/../UM6.c:152: if(IMU_rxdata[3] & (1<<7)){ mov dptr,#(_IMU_rxdata + 0x0003) movx a,@dptr mov r2,a jnb acc.7,00123$ C$UM6.c$153$2$15 ==. ; apps/test_UM6_spi/../UM6.c:153: printf("Processed magnetometer data transmission ENABLED \n"); mov a,#__str_12 push acc mov a,#(__str_12 >> 8) push acc mov a,#0x80 push acc lcall _printf dec sp dec sp dec sp sjmp 00124$ 00123$: C$UM6.c$154$2$16 ==. ; apps/test_UM6_spi/../UM6.c:154: }else{ printf("Processed magnetometer data transmission DISABLED \n");} mov a,#__str_13 push acc mov a,#(__str_13 >> 8) push acc mov a,#0x80 push acc lcall _printf dec sp dec sp dec sp 00124$: C$UM6.c$155$1$1 ==. ; apps/test_UM6_spi/../UM6.c:155: if(IMU_rxdata[3] & (1<<6)){ mov dptr,#(_IMU_rxdata + 0x0003) movx a,@dptr mov r2,a jnb acc.6,00126$ C$UM6.c$156$2$17 ==. ; apps/test_UM6_spi/../UM6.c:156: printf("Quat transmission ENABLED \n"); mov a,#__str_14 push acc mov a,#(__str_14 >> 8) push acc mov a,#0x80 push acc lcall _printf dec sp dec sp dec sp sjmp 00127$ 00126$: C$UM6.c$157$2$18 ==. ; apps/test_UM6_spi/../UM6.c:157: }else{ printf("Quat transmission DISABLED \n");} mov a,#__str_15 push acc mov a,#(__str_15 >> 8) push acc mov a,#0x80 push acc lcall _printf dec sp dec sp dec sp 00127$: C$UM6.c$158$1$1 ==. ; apps/test_UM6_spi/../UM6.c:158: if(IMU_rxdata[3] & (1<<5)){ mov dptr,#(_IMU_rxdata + 0x0003) movx a,@dptr mov r2,a jnb acc.5,00129$ C$UM6.c$159$2$19 ==. ; apps/test_UM6_spi/../UM6.c:159: printf("Euler angle transmission ENABLED \n"); mov a,#__str_16 push acc mov a,#(__str_16 >> 8) push acc mov a,#0x80 push acc lcall _printf dec sp dec sp dec sp sjmp 00130$ 00129$: C$UM6.c$160$2$20 ==. ; apps/test_UM6_spi/../UM6.c:160: }else{ printf("Euler angle transmission DISABLED \n");} mov a,#__str_17 push acc mov a,#(__str_17 >> 8) push acc mov a,#0x80 push acc lcall _printf dec sp dec sp dec sp 00130$: C$UM6.c$161$1$1 ==. ; apps/test_UM6_spi/../UM6.c:161: if(IMU_rxdata[3] & (1<<4)){ mov dptr,#(_IMU_rxdata + 0x0003) movx a,@dptr mov r2,a jnb acc.4,00132$ C$UM6.c$162$2$21 ==. ; apps/test_UM6_spi/../UM6.c:162: printf("COV mat transmission ENABLED \n"); mov a,#__str_18 push acc mov a,#(__str_18 >> 8) push acc mov a,#0x80 push acc lcall _printf dec sp dec sp dec sp sjmp 00133$ 00132$: C$UM6.c$163$2$22 ==. ; apps/test_UM6_spi/../UM6.c:163: }else{ printf("COV mat transmission DISABLED \n");} mov a,#__str_19 push acc mov a,#(__str_19 >> 8) push acc mov a,#0x80 push acc lcall _printf dec sp dec sp dec sp 00133$: C$UM6.c$165$1$1 ==. ; apps/test_UM6_spi/../UM6.c:165: IMU_txdata[0] = 0; //read command mov dptr,#_IMU_txdata clr a movx @dptr,a C$UM6.c$166$1$1 ==. ; apps/test_UM6_spi/../UM6.c:166: IMU_txdata[1] = 0x01; // address = misc_config register mov dptr,#(_IMU_txdata + 0x0001) mov a,#0x01 movx @dptr,a C$UM6.c$167$1$1 ==. ; apps/test_UM6_spi/../UM6.c:167: IMU_CSlow; clr b[0] mov bits,b mov dpl,#0x0E lcall _setDigitalOutput C$UM6.c$168$1$1 ==. ; apps/test_UM6_spi/../UM6.c:168: spi_UM6MasterTransfer(IMU_txdata,IMU_rxdata,6); mov r0,#_spi1MasterTransfer_PARM_2 mov a,#_IMU_rxdata movx @r0,a inc r0 mov a,#(_IMU_rxdata >> 8) movx @r0,a mov r0,#_spi1MasterTransfer_PARM_3 mov a,#0x06 movx @r0,a inc r0 clr a movx @r0,a mov dptr,#_IMU_txdata lcall _spi1MasterTransfer C$UM6.c$169$1$1 ==. ; apps/test_UM6_spi/../UM6.c:169: while(spi_UM6MasterBusy()){ } 00134$: lcall _spi1MasterBusy jc 00134$ C$UM6.c$170$1$1 ==. ; apps/test_UM6_spi/../UM6.c:170: IMU_CShigh; setb b[0] mov bits,b mov dpl,#0x0E lcall _setDigitalOutput C$UM6.c$171$1$1 ==. ; apps/test_UM6_spi/../UM6.c:171: if(IMU_rxdata[2] & (1<<7)){ mov dptr,#(_IMU_rxdata + 0x0002) movx a,@dptr mov r2,a jnb acc.7,00138$ C$UM6.c$172$2$24 ==. ; apps/test_UM6_spi/../UM6.c:172: printf("EKF magnetometer updates (yaw correction) ENABLED \n"); mov a,#__str_20 push acc mov a,#(__str_20 >> 8) push acc mov a,#0x80 push acc lcall _printf dec sp dec sp dec sp sjmp 00139$ 00138$: C$UM6.c$173$2$25 ==. ; apps/test_UM6_spi/../UM6.c:173: }else { printf("EKF magnetometer updates (yaw correction) DISABLED \n");} mov a,#__str_21 push acc mov a,#(__str_21 >> 8) push acc mov a,#0x80 push acc lcall _printf dec sp dec sp dec sp 00139$: C$UM6.c$174$1$1 ==. ; apps/test_UM6_spi/../UM6.c:174: if(IMU_rxdata[2] & (1<<6)){ mov dptr,#(_IMU_rxdata + 0x0002) movx a,@dptr mov r2,a jnb acc.6,00141$ C$UM6.c$175$2$26 ==. ; apps/test_UM6_spi/../UM6.c:175: printf("EKF accelerometer updates (roll & pitch correction) ENABLED \n"); mov a,#__str_22 push acc mov a,#(__str_22 >> 8) push acc mov a,#0x80 push acc lcall _printf dec sp dec sp dec sp sjmp 00142$ 00141$: C$UM6.c$176$2$27 ==. ; apps/test_UM6_spi/../UM6.c:176: }else { printf("EKF accelerometer updates (roll & pitch correction) DISABLED \n");} mov a,#__str_23 push acc mov a,#(__str_23 >> 8) push acc mov a,#0x80 push acc lcall _printf dec sp dec sp dec sp 00142$: C$UM6.c$177$1$1 ==. ; apps/test_UM6_spi/../UM6.c:177: if(IMU_rxdata[2] & (1<<5)){ mov dptr,#(_IMU_rxdata + 0x0002) movx a,@dptr mov r2,a jnb acc.5,00144$ C$UM6.c$178$2$28 ==. ; apps/test_UM6_spi/../UM6.c:178: printf("Startup Gyro Calibration ENABLED \n"); mov a,#__str_24 push acc mov a,#(__str_24 >> 8) push acc mov a,#0x80 push acc lcall _printf dec sp dec sp dec sp sjmp 00145$ 00144$: C$UM6.c$179$2$29 ==. ; apps/test_UM6_spi/../UM6.c:179: }else { printf("Startup Gyro Calibration DISABLED \n");} mov a,#__str_25 push acc mov a,#(__str_25 >> 8) push acc mov a,#0x80 push acc lcall _printf dec sp dec sp dec sp 00145$: C$UM6.c$180$1$1 ==. ; apps/test_UM6_spi/../UM6.c:180: if(IMU_rxdata[2] & (1<<4)){ mov dptr,#(_IMU_rxdata + 0x0002) movx a,@dptr mov r2,a jnb acc.4,00147$ C$UM6.c$181$2$30 ==. ; apps/test_UM6_spi/../UM6.c:181: printf("Quaternion state estimation ENABLED \n"); mov a,#__str_26 push acc mov a,#(__str_26 >> 8) push acc mov a,#0x80 push acc lcall _printf dec sp dec sp dec sp ret 00147$: C$UM6.c$182$2$31 ==. ; apps/test_UM6_spi/../UM6.c:182: }else { printf("Quaternion state estimation DISABLED \n");} mov a,#__str_27 push acc mov a,#(__str_27 >> 8) push acc mov a,#0x80 push acc lcall _printf dec sp dec sp dec sp C$UM6.c$183$1$1 ==. XG$read_UM6config$0$0 ==. ret ;------------------------------------------------------------ ;Allocation info for local variables in function 'write_UM6comm' ;------------------------------------------------------------ ;------------------------------------------------------------ G$write_UM6comm$0$0 ==. C$UM6.c$187$1$1 ==. ; apps/test_UM6_spi/../UM6.c:187: void write_UM6comm(){ ; ----------------------------------------- ; function write_UM6comm ; ----------------------------------------- _write_UM6comm: C$UM6.c$188$1$1 ==. ; apps/test_UM6_spi/../UM6.c:188: IMU_txdata[0] =0x01; // write command mov dptr,#_IMU_txdata mov a,#0x01 movx @dptr,a C$UM6.c$189$1$1 ==. ; apps/test_UM6_spi/../UM6.c:189: IMU_txdata[1]=0x00; // address of the UM6_Comm register mov dptr,#(_IMU_txdata + 0x0001) clr a movx @dptr,a C$UM6.c$190$1$1 ==. ; apps/test_UM6_spi/../UM6.c:190: IMU_txdata[2] = 0x38; //Byte4 mov dptr,#(_IMU_txdata + 0x0002) mov a,#0x38 movx @dptr,a C$UM6.c$191$1$1 ==. ; apps/test_UM6_spi/../UM6.c:191: IMU_txdata[3] = 0x40; // Byte3 mov dptr,#(_IMU_txdata + 0x0003) mov a,#0x40 movx @dptr,a C$UM6.c$192$1$1 ==. ; apps/test_UM6_spi/../UM6.c:192: IMU_txdata[4]= 0x05; //Byte2 mov dptr,#(_IMU_txdata + 0x0004) mov a,#0x05 movx @dptr,a C$UM6.c$193$1$1 ==. ; apps/test_UM6_spi/../UM6.c:193: IMU_txdata[5] = 0x00; //Byte1 mov dptr,#(_IMU_txdata + 0x0005) clr a movx @dptr,a C$UM6.c$194$1$1 ==. ; apps/test_UM6_spi/../UM6.c:194: IMU_CSlow; clr b[0] mov bits,b mov dpl,#0x0E lcall _setDigitalOutput C$UM6.c$195$1$1 ==. ; apps/test_UM6_spi/../UM6.c:195: spi_UM6MasterTransfer(IMU_txdata,IMU_rxdata,6); mov r0,#_spi1MasterTransfer_PARM_2 mov a,#_IMU_rxdata movx @r0,a inc r0 mov a,#(_IMU_rxdata >> 8) movx @r0,a mov r0,#_spi1MasterTransfer_PARM_3 mov a,#0x06 movx @r0,a inc r0 clr a movx @r0,a mov dptr,#_IMU_txdata lcall _spi1MasterTransfer C$UM6.c$196$1$1 ==. ; apps/test_UM6_spi/../UM6.c:196: while(spi_UM6MasterBusy()){ } 00101$: lcall _spi1MasterBusy jc 00101$ C$UM6.c$197$1$1 ==. ; apps/test_UM6_spi/../UM6.c:197: IMU_CShigh; setb b[0] mov bits,b mov dpl,#0x0E C$UM6.c$198$1$1 ==. XG$write_UM6comm$0$0 ==. ljmp _setDigitalOutput ;------------------------------------------------------------ ;Allocation info for local variables in function 'Zero_Gyros' ;------------------------------------------------------------ ;------------------------------------------------------------ G$Zero_Gyros$0$0 ==. C$UM6.c$203$1$1 ==. ; apps/test_UM6_spi/../UM6.c:203: void Zero_Gyros(){ ; ----------------------------------------- ; function Zero_Gyros ; ----------------------------------------- _Zero_Gyros: C$UM6.c$204$1$1 ==. ; apps/test_UM6_spi/../UM6.c:204: IMU_rxdata[0] =0x01; // write command mov dptr,#_IMU_rxdata mov a,#0x01 movx @dptr,a C$UM6.c$205$1$1 ==. ; apps/test_UM6_spi/../UM6.c:205: IMU_rxdata[1]=0xAC; // command byte to determine gyro biases mov dptr,#(_IMU_rxdata + 0x0001) mov a,#0xAC movx @dptr,a C$UM6.c$206$1$1 ==. ; apps/test_UM6_spi/../UM6.c:206: IMU_CSlow; clr b[0] mov bits,b mov dpl,#0x0E lcall _setDigitalOutput C$UM6.c$207$1$1 ==. ; apps/test_UM6_spi/../UM6.c:207: spi_UM6MasterTransfer(IMU_rxdata,IMU_rxdata,6); mov r0,#_spi1MasterTransfer_PARM_2 mov a,#_IMU_rxdata movx @r0,a inc r0 mov a,#(_IMU_rxdata >> 8) movx @r0,a mov r0,#_spi1MasterTransfer_PARM_3 mov a,#0x06 movx @r0,a inc r0 clr a movx @r0,a mov dptr,#_IMU_rxdata lcall _spi1MasterTransfer C$UM6.c$208$1$1 ==. ; apps/test_UM6_spi/../UM6.c:208: while(spi_UM6MasterBusy()){ } 00101$: lcall _spi1MasterBusy jc 00101$ C$UM6.c$209$1$1 ==. ; apps/test_UM6_spi/../UM6.c:209: IMU_CShigh; setb b[0] mov bits,b mov dpl,#0x0E C$UM6.c$210$1$1 ==. XG$Zero_Gyros$0$0 ==. ljmp _setDigitalOutput ;------------------------------------------------------------ ;Allocation info for local variables in function 'write_UM6_Miscconfig' ;------------------------------------------------------------ ;------------------------------------------------------------ G$write_UM6_Miscconfig$0$0 ==. C$UM6.c$214$1$1 ==. ; apps/test_UM6_spi/../UM6.c:214: void write_UM6_Miscconfig(){ ; ----------------------------------------- ; function write_UM6_Miscconfig ; ----------------------------------------- _write_UM6_Miscconfig: C$UM6.c$215$1$1 ==. ; apps/test_UM6_spi/../UM6.c:215: IMU_rxdata[0] =0x01; // write command mov dptr,#_IMU_rxdata mov a,#0x01 movx @dptr,a C$UM6.c$216$1$1 ==. ; apps/test_UM6_spi/../UM6.c:216: IMU_rxdata[1]=0x01; // Address of MISC_CONFIG register mov dptr,#(_IMU_rxdata + 0x0001) mov a,#0x01 movx @dptr,a C$UM6.c$217$1$1 ==. ; apps/test_UM6_spi/../UM6.c:217: IMU_rxdata[2] = 0x50; mov dptr,#(_IMU_rxdata + 0x0002) mov a,#0x50 movx @dptr,a C$UM6.c$218$1$1 ==. ; apps/test_UM6_spi/../UM6.c:218: IMU_rxdata[3] = 0x0; mov dptr,#(_IMU_rxdata + 0x0003) C$UM6.c$219$1$1 ==. ; apps/test_UM6_spi/../UM6.c:219: IMU_rxdata[4]= 0x0; C$UM6.c$220$1$1 ==. ; apps/test_UM6_spi/../UM6.c:220: IMU_rxdata[5] = 0x0; clr a movx @dptr,a mov dptr,#(_IMU_rxdata + 0x0004) movx @dptr,a mov dptr,#(_IMU_rxdata + 0x0005) movx @dptr,a C$UM6.c$221$1$1 ==. ; apps/test_UM6_spi/../UM6.c:221: IMU_CSlow; clr b[0] mov bits,b mov dpl,#0x0E lcall _setDigitalOutput C$UM6.c$222$1$1 ==. ; apps/test_UM6_spi/../UM6.c:222: spi_UM6MasterTransfer(IMU_txdata,IMU_rxdata,6); mov r0,#_spi1MasterTransfer_PARM_2 mov a,#_IMU_rxdata movx @r0,a inc r0 mov a,#(_IMU_rxdata >> 8) movx @r0,a mov r0,#_spi1MasterTransfer_PARM_3 mov a,#0x06 movx @r0,a inc r0 clr a movx @r0,a mov dptr,#_IMU_txdata lcall _spi1MasterTransfer C$UM6.c$223$1$1 ==. ; apps/test_UM6_spi/../UM6.c:223: while(spi_UM6MasterBusy()){ } 00101$: lcall _spi1MasterBusy jc 00101$ C$UM6.c$224$1$1 ==. ; apps/test_UM6_spi/../UM6.c:224: IMU_CShigh; setb b[0] mov bits,b mov dpl,#0x0E C$UM6.c$225$1$1 ==. XG$write_UM6_Miscconfig$0$0 ==. ljmp _setDigitalOutput ;------------------------------------------------------------ ;Allocation info for local variables in function 'read_accel_rawZ' ;------------------------------------------------------------ ;------------------------------------------------------------ G$read_accel_rawZ$0$0 ==. C$UM6.c$229$1$1 ==. ; apps/test_UM6_spi/../UM6.c:229: void read_accel_rawZ(){ ; ----------------------------------------- ; function read_accel_rawZ ; ----------------------------------------- _read_accel_rawZ: C$UM6.c$230$1$1 ==. ; apps/test_UM6_spi/../UM6.c:230: IMU_txdata[0] = 0; //read command mov dptr,#_IMU_txdata clr a movx @dptr,a C$UM6.c$231$1$1 ==. ; apps/test_UM6_spi/../UM6.c:231: IMU_txdata[1] = 0x5b; // address of accelrawZ mov dptr,#(_IMU_txdata + 0x0001) mov a,#0x5B movx @dptr,a C$UM6.c$232$1$1 ==. ; apps/test_UM6_spi/../UM6.c:232: IMU_CSlow; clr b[0] mov bits,b mov dpl,#0x0E lcall _setDigitalOutput C$UM6.c$233$1$1 ==. ; apps/test_UM6_spi/../UM6.c:233: spi_UM6MasterTransfer(IMU_txdata,IMU_rxdata,6); mov r0,#_spi1MasterTransfer_PARM_2 mov a,#_IMU_rxdata movx @r0,a inc r0 mov a,#(_IMU_rxdata >> 8) movx @r0,a mov r0,#_spi1MasterTransfer_PARM_3 mov a,#0x06 movx @r0,a inc r0 clr a movx @r0,a mov dptr,#_IMU_txdata lcall _spi1MasterTransfer C$UM6.c$234$1$1 ==. ; apps/test_UM6_spi/../UM6.c:234: while(spi_UM6MasterBusy()){ } 00101$: lcall _spi1MasterBusy jc 00101$ C$UM6.c$235$1$1 ==. ; apps/test_UM6_spi/../UM6.c:235: IMU_CShigh; setb b[0] mov bits,b mov dpl,#0x0E lcall _setDigitalOutput C$UM6.c$236$1$1 ==. ; apps/test_UM6_spi/../UM6.c:236: accelrawZ.temp[0] = IMU_rxdata[3]; mov dptr,#(_IMU_rxdata + 0x0003) movx a,@dptr mov r2,a mov r0,#_accelrawZ mov a,r2 movx @r0,a C$UM6.c$237$1$1 ==. ; apps/test_UM6_spi/../UM6.c:237: accelrawZ.temp[1] = IMU_rxdata[2]; mov dptr,#(_IMU_rxdata + 0x0002) movx a,@dptr mov r2,a mov r0,#(_accelrawZ + 0x0001) mov a,r2 movx @r0,a C$UM6.c$239$1$1 ==. XG$read_accel_rawZ$0$0 ==. ret ;------------------------------------------------------------ ;Allocation info for local variables in function 'read_euler_psi' ;------------------------------------------------------------ ;------------------------------------------------------------ G$read_euler_psi$0$0 ==. C$UM6.c$243$1$1 ==. ; apps/test_UM6_spi/../UM6.c:243: void read_euler_psi(){ ; ----------------------------------------- ; function read_euler_psi ; ----------------------------------------- _read_euler_psi: C$UM6.c$244$1$1 ==. ; apps/test_UM6_spi/../UM6.c:244: IMU_txdata[0] = 0; //read command mov dptr,#_IMU_txdata clr a movx @dptr,a C$UM6.c$245$1$1 ==. ; apps/test_UM6_spi/../UM6.c:245: IMU_txdata[1] = 0x63; // address = accelrawz mov dptr,#(_IMU_txdata + 0x0001) mov a,#0x63 movx @dptr,a C$UM6.c$246$1$1 ==. ; apps/test_UM6_spi/../UM6.c:246: IMU_CSlow; clr b[0] mov bits,b mov dpl,#0x0E lcall _setDigitalOutput C$UM6.c$247$1$1 ==. ; apps/test_UM6_spi/../UM6.c:247: spi_UM6MasterTransfer(IMU_txdata,IMU_rxdata,6); mov r0,#_spi1MasterTransfer_PARM_2 mov a,#_IMU_rxdata movx @r0,a inc r0 mov a,#(_IMU_rxdata >> 8) movx @r0,a mov r0,#_spi1MasterTransfer_PARM_3 mov a,#0x06 movx @r0,a inc r0 clr a movx @r0,a mov dptr,#_IMU_txdata lcall _spi1MasterTransfer C$UM6.c$248$1$1 ==. ; apps/test_UM6_spi/../UM6.c:248: while(spi_UM6MasterBusy()){ } 00101$: lcall _spi1MasterBusy jc 00101$ C$UM6.c$249$1$1 ==. ; apps/test_UM6_spi/../UM6.c:249: IMU_CShigh; setb b[0] mov bits,b mov dpl,#0x0E lcall _setDigitalOutput C$UM6.c$250$1$1 ==. ; apps/test_UM6_spi/../UM6.c:250: euler_psi.temp[0] = IMU_rxdata[3]; mov dptr,#(_IMU_rxdata + 0x0003) movx a,@dptr mov r2,a mov r0,#_euler_psi mov a,r2 movx @r0,a C$UM6.c$251$1$1 ==. ; apps/test_UM6_spi/../UM6.c:251: euler_psi.temp[1] = IMU_rxdata[2]; mov dptr,#(_IMU_rxdata + 0x0002) movx a,@dptr mov r2,a mov r0,#(_euler_psi + 0x0001) mov a,r2 movx @r0,a C$UM6.c$253$1$1 ==. XG$read_euler_psi$0$0 ==. ret ;------------------------------------------------------------ ;Allocation info for local variables in function 'read_euler_phi_theta' ;------------------------------------------------------------ ;------------------------------------------------------------ G$read_euler_phi_theta$0$0 ==. C$UM6.c$258$1$1 ==. ; apps/test_UM6_spi/../UM6.c:258: void read_euler_phi_theta(){ ; ----------------------------------------- ; function read_euler_phi_theta ; ----------------------------------------- _read_euler_phi_theta: C$UM6.c$259$1$1 ==. ; apps/test_UM6_spi/../UM6.c:259: IMU_txdata[0] = 0; //read command mov dptr,#_IMU_txdata clr a movx @dptr,a C$UM6.c$260$1$1 ==. ; apps/test_UM6_spi/../UM6.c:260: IMU_txdata[1] = 0x62; // address = accelrawz mov dptr,#(_IMU_txdata + 0x0001) mov a,#0x62 movx @dptr,a C$UM6.c$261$1$1 ==. ; apps/test_UM6_spi/../UM6.c:261: IMU_CSlow; clr b[0] mov bits,b mov dpl,#0x0E lcall _setDigitalOutput C$UM6.c$262$1$1 ==. ; apps/test_UM6_spi/../UM6.c:262: spi_UM6MasterTransfer(IMU_txdata,IMU_rxdata,6); mov r0,#_spi1MasterTransfer_PARM_2 mov a,#_IMU_rxdata movx @r0,a inc r0 mov a,#(_IMU_rxdata >> 8) movx @r0,a mov r0,#_spi1MasterTransfer_PARM_3 mov a,#0x06 movx @r0,a inc r0 clr a movx @r0,a mov dptr,#_IMU_txdata lcall _spi1MasterTransfer C$UM6.c$263$1$1 ==. ; apps/test_UM6_spi/../UM6.c:263: while(spi_UM6MasterBusy()){ } 00101$: lcall _spi1MasterBusy jc 00101$ C$UM6.c$264$1$1 ==. ; apps/test_UM6_spi/../UM6.c:264: IMU_CShigh; setb b[0] mov bits,b mov dpl,#0x0E lcall _setDigitalOutput C$UM6.c$265$1$1 ==. ; apps/test_UM6_spi/../UM6.c:265: euler_phi.temp[0] = IMU_rxdata[3]; mov dptr,#(_IMU_rxdata + 0x0003) movx a,@dptr mov r2,a mov r0,#_euler_phi mov a,r2 movx @r0,a C$UM6.c$266$1$1 ==. ; apps/test_UM6_spi/../UM6.c:266: euler_phi.temp[1] = IMU_rxdata[2]; mov dptr,#(_IMU_rxdata + 0x0002) movx a,@dptr mov r2,a mov r0,#(_euler_phi + 0x0001) mov a,r2 movx @r0,a C$UM6.c$267$1$1 ==. ; apps/test_UM6_spi/../UM6.c:267: euler_theta.temp[0] = IMU_rxdata[5]; mov dptr,#(_IMU_rxdata + 0x0005) movx a,@dptr mov r2,a mov r0,#_euler_theta mov a,r2 movx @r0,a C$UM6.c$268$1$1 ==. ; apps/test_UM6_spi/../UM6.c:268: euler_theta.temp[1] = IMU_rxdata[4]; mov dptr,#(_IMU_rxdata + 0x0004) movx a,@dptr mov r2,a mov r0,#(_euler_theta + 0x0001) mov a,r2 movx @r0,a C$UM6.c$270$1$1 ==. XG$read_euler_phi_theta$0$0 ==. ret ;------------------------------------------------------------ ;Allocation info for local variables in function 'read_accel_procZ' ;------------------------------------------------------------ ;------------------------------------------------------------ G$read_accel_procZ$0$0 ==. C$UM6.c$274$1$1 ==. ; apps/test_UM6_spi/../UM6.c:274: void read_accel_procZ(){ ; ----------------------------------------- ; function read_accel_procZ ; ----------------------------------------- _read_accel_procZ: C$UM6.c$275$1$1 ==. ; apps/test_UM6_spi/../UM6.c:275: IMU_txdata[0] = 0; //read command mov dptr,#_IMU_txdata clr a movx @dptr,a C$UM6.c$276$1$1 ==. ; apps/test_UM6_spi/../UM6.c:276: IMU_txdata[1] = 0x5f; // address of processed accelZ register mov dptr,#(_IMU_txdata + 0x0001) mov a,#0x5F movx @dptr,a C$UM6.c$277$1$1 ==. ; apps/test_UM6_spi/../UM6.c:277: IMU_CSlow; clr b[0] mov bits,b mov dpl,#0x0E lcall _setDigitalOutput C$UM6.c$278$1$1 ==. ; apps/test_UM6_spi/../UM6.c:278: spi_UM6MasterTransfer(IMU_txdata,IMU_rxdata,6); mov r0,#_spi1MasterTransfer_PARM_2 mov a,#_IMU_rxdata movx @r0,a inc r0 mov a,#(_IMU_rxdata >> 8) movx @r0,a mov r0,#_spi1MasterTransfer_PARM_3 mov a,#0x06 movx @r0,a inc r0 clr a movx @r0,a mov dptr,#_IMU_txdata lcall _spi1MasterTransfer C$UM6.c$279$1$1 ==. ; apps/test_UM6_spi/../UM6.c:279: while(spi_UM6MasterBusy()){ } 00101$: lcall _spi1MasterBusy jc 00101$ C$UM6.c$280$1$1 ==. ; apps/test_UM6_spi/../UM6.c:280: IMU_CShigh; setb b[0] mov bits,b mov dpl,#0x0E lcall _setDigitalOutput C$UM6.c$282$1$1 ==. ; apps/test_UM6_spi/../UM6.c:282: accelprocZ.temp[0] = IMU_rxdata[3]; mov dptr,#(_IMU_rxdata + 0x0003) movx a,@dptr mov r2,a mov r0,#_accelprocZ mov a,r2 movx @r0,a C$UM6.c$283$1$1 ==. ; apps/test_UM6_spi/../UM6.c:283: accelprocZ.temp[1] = IMU_rxdata[2]; mov dptr,#(_IMU_rxdata + 0x0002) movx a,@dptr mov r2,a mov r0,#(_accelprocZ + 0x0001) mov a,r2 movx @r0,a C$UM6.c$285$1$1 ==. XG$read_accel_procZ$0$0 ==. ret ;------------------------------------------------------------ ;Allocation info for local variables in function 'read_gyro_procZ' ;------------------------------------------------------------ ;------------------------------------------------------------ G$read_gyro_procZ$0$0 ==. C$UM6.c$289$1$1 ==. ; apps/test_UM6_spi/../UM6.c:289: void read_gyro_procZ(){ ; ----------------------------------------- ; function read_gyro_procZ ; ----------------------------------------- _read_gyro_procZ: C$UM6.c$290$1$1 ==. ; apps/test_UM6_spi/../UM6.c:290: IMU_txdata[0] = 0; //read command mov dptr,#_IMU_txdata clr a movx @dptr,a C$UM6.c$291$1$1 ==. ; apps/test_UM6_spi/../UM6.c:291: IMU_txdata[1] = 0x5d; // address of processed gyroZ register mov dptr,#(_IMU_txdata + 0x0001) mov a,#0x5D movx @dptr,a C$UM6.c$292$1$1 ==. ; apps/test_UM6_spi/../UM6.c:292: IMU_CSlow; clr b[0] mov bits,b mov dpl,#0x0E lcall _setDigitalOutput C$UM6.c$293$1$1 ==. ; apps/test_UM6_spi/../UM6.c:293: spi_UM6MasterTransfer(IMU_txdata,IMU_rxdata,6); mov r0,#_spi1MasterTransfer_PARM_2 mov a,#_IMU_rxdata movx @r0,a inc r0 mov a,#(_IMU_rxdata >> 8) movx @r0,a mov r0,#_spi1MasterTransfer_PARM_3 mov a,#0x06 movx @r0,a inc r0 clr a movx @r0,a mov dptr,#_IMU_txdata lcall _spi1MasterTransfer C$UM6.c$294$1$1 ==. ; apps/test_UM6_spi/../UM6.c:294: while(spi_UM6MasterBusy()){ } 00101$: lcall _spi1MasterBusy jc 00101$ C$UM6.c$295$1$1 ==. ; apps/test_UM6_spi/../UM6.c:295: IMU_CShigh; setb b[0] mov bits,b mov dpl,#0x0E lcall _setDigitalOutput C$UM6.c$297$1$1 ==. ; apps/test_UM6_spi/../UM6.c:297: gyroprocZ.temp[0] = IMU_rxdata[3]; mov dptr,#(_IMU_rxdata + 0x0003) movx a,@dptr mov r2,a mov r0,#_gyroprocZ mov a,r2 movx @r0,a C$UM6.c$298$1$1 ==. ; apps/test_UM6_spi/../UM6.c:298: gyroprocZ.temp[1] = IMU_rxdata[2]; mov dptr,#(_IMU_rxdata + 0x0002) movx a,@dptr mov r2,a mov r0,#(_gyroprocZ + 0x0001) mov a,r2 movx @r0,a C$UM6.c$300$1$1 ==. XG$read_gyro_procZ$0$0 ==. ret ;------------------------------------------------------------ ;Allocation info for local variables in function 'read_accel_procXY' ;------------------------------------------------------------ ;------------------------------------------------------------ G$read_accel_procXY$0$0 ==. C$UM6.c$304$1$1 ==. ; apps/test_UM6_spi/../UM6.c:304: void read_accel_procXY(){ ; ----------------------------------------- ; function read_accel_procXY ; ----------------------------------------- _read_accel_procXY: C$UM6.c$305$1$1 ==. ; apps/test_UM6_spi/../UM6.c:305: IMU_txdata[0] = 0; //read command mov dptr,#_IMU_txdata clr a movx @dptr,a C$UM6.c$306$1$1 ==. ; apps/test_UM6_spi/../UM6.c:306: IMU_txdata[1] = 0x5E; // address = accelprocxy mov dptr,#(_IMU_txdata + 0x0001) mov a,#0x5E movx @dptr,a C$UM6.c$307$1$1 ==. ; apps/test_UM6_spi/../UM6.c:307: IMU_CSlow; clr b[0] mov bits,b mov dpl,#0x0E lcall _setDigitalOutput C$UM6.c$308$1$1 ==. ; apps/test_UM6_spi/../UM6.c:308: spi_UM6MasterTransfer(IMU_txdata,IMU_rxdata,6); mov r0,#_spi1MasterTransfer_PARM_2 mov a,#_IMU_rxdata movx @r0,a inc r0 mov a,#(_IMU_rxdata >> 8) movx @r0,a mov r0,#_spi1MasterTransfer_PARM_3 mov a,#0x06 movx @r0,a inc r0 clr a movx @r0,a mov dptr,#_IMU_txdata lcall _spi1MasterTransfer C$UM6.c$309$1$1 ==. ; apps/test_UM6_spi/../UM6.c:309: while(spi_UM6MasterBusy()){ } 00101$: lcall _spi1MasterBusy jc 00101$ C$UM6.c$310$1$1 ==. ; apps/test_UM6_spi/../UM6.c:310: IMU_CShigh; setb b[0] mov bits,b mov dpl,#0x0E lcall _setDigitalOutput C$UM6.c$312$1$1 ==. ; apps/test_UM6_spi/../UM6.c:312: accelprocX.temp[0] = IMU_rxdata[3]; mov dptr,#(_IMU_rxdata + 0x0003) movx a,@dptr mov r2,a mov r0,#_accelprocX mov a,r2 movx @r0,a C$UM6.c$313$1$1 ==. ; apps/test_UM6_spi/../UM6.c:313: accelprocX.temp[1] = IMU_rxdata[2]; mov dptr,#(_IMU_rxdata + 0x0002) movx a,@dptr mov r2,a mov r0,#(_accelprocX + 0x0001) mov a,r2 movx @r0,a C$UM6.c$314$1$1 ==. ; apps/test_UM6_spi/../UM6.c:314: accelprocY.temp[0] = IMU_rxdata[5]; mov dptr,#(_IMU_rxdata + 0x0005) movx a,@dptr mov r2,a mov r0,#_accelprocY mov a,r2 movx @r0,a C$UM6.c$315$1$1 ==. ; apps/test_UM6_spi/../UM6.c:315: accelprocY.temp[1] = IMU_rxdata[4]; mov dptr,#(_IMU_rxdata + 0x0004) movx a,@dptr mov r2,a mov r0,#(_accelprocY + 0x0001) mov a,r2 movx @r0,a C$UM6.c$318$1$1 ==. XG$read_accel_procXY$0$0 ==. ret ;------------------------------------------------------------ ;Allocation info for local variables in function 'read_gyro_procXY' ;------------------------------------------------------------ ;------------------------------------------------------------ G$read_gyro_procXY$0$0 ==. C$UM6.c$322$1$1 ==. ; apps/test_UM6_spi/../UM6.c:322: void read_gyro_procXY(){ ; ----------------------------------------- ; function read_gyro_procXY ; ----------------------------------------- _read_gyro_procXY: C$UM6.c$323$1$1 ==. ; apps/test_UM6_spi/../UM6.c:323: IMU_txdata[0] = 0; //read command mov dptr,#_IMU_txdata clr a movx @dptr,a C$UM6.c$324$1$1 ==. ; apps/test_UM6_spi/../UM6.c:324: IMU_txdata[1] = 0x5C; // address = accelprocxy mov dptr,#(_IMU_txdata + 0x0001) mov a,#0x5C movx @dptr,a C$UM6.c$325$1$1 ==. ; apps/test_UM6_spi/../UM6.c:325: IMU_CSlow; clr b[0] mov bits,b mov dpl,#0x0E lcall _setDigitalOutput C$UM6.c$326$1$1 ==. ; apps/test_UM6_spi/../UM6.c:326: spi_UM6MasterTransfer(IMU_txdata,IMU_rxdata,6); mov r0,#_spi1MasterTransfer_PARM_2 mov a,#_IMU_rxdata movx @r0,a inc r0 mov a,#(_IMU_rxdata >> 8) movx @r0,a mov r0,#_spi1MasterTransfer_PARM_3 mov a,#0x06 movx @r0,a inc r0 clr a movx @r0,a mov dptr,#_IMU_txdata lcall _spi1MasterTransfer C$UM6.c$327$1$1 ==. ; apps/test_UM6_spi/../UM6.c:327: while(spi_UM6MasterBusy()){ } 00101$: lcall _spi1MasterBusy jc 00101$ C$UM6.c$328$1$1 ==. ; apps/test_UM6_spi/../UM6.c:328: IMU_CShigh; setb b[0] mov bits,b mov dpl,#0x0E lcall _setDigitalOutput C$UM6.c$330$1$1 ==. ; apps/test_UM6_spi/../UM6.c:330: gyroprocX.temp[0] = IMU_rxdata[3]; mov dptr,#(_IMU_rxdata + 0x0003) movx a,@dptr mov r2,a mov r0,#_gyroprocX mov a,r2 movx @r0,a C$UM6.c$331$1$1 ==. ; apps/test_UM6_spi/../UM6.c:331: gyroprocX.temp[1] = IMU_rxdata[2]; mov dptr,#(_IMU_rxdata + 0x0002) movx a,@dptr mov r2,a mov r0,#(_gyroprocX + 0x0001) mov a,r2 movx @r0,a C$UM6.c$332$1$1 ==. ; apps/test_UM6_spi/../UM6.c:332: gyroprocY.temp[0] = IMU_rxdata[5]; mov dptr,#(_IMU_rxdata + 0x0005) movx a,@dptr mov r2,a mov r0,#_gyroprocY mov a,r2 movx @r0,a C$UM6.c$333$1$1 ==. ; apps/test_UM6_spi/../UM6.c:333: gyroprocY.temp[1] = IMU_rxdata[4]; mov dptr,#(_IMU_rxdata + 0x0004) movx a,@dptr mov r2,a mov r0,#(_gyroprocY + 0x0001) mov a,r2 movx @r0,a C$UM6.c$336$1$1 ==. XG$read_gyro_procXY$0$0 ==. ret ;------------------------------------------------------------ ;Allocation info for local variables in function 'UM6_flash_commit' ;------------------------------------------------------------ ;------------------------------------------------------------ G$UM6_flash_commit$0$0 ==. C$UM6.c$341$1$1 ==. ; apps/test_UM6_spi/../UM6.c:341: void UM6_flash_commit(){ ; ----------------------------------------- ; function UM6_flash_commit ; ----------------------------------------- _UM6_flash_commit: C$UM6.c$342$1$1 ==. ; apps/test_UM6_spi/../UM6.c:342: IMU_txdata[0] = 1; //write command mov dptr,#_IMU_txdata mov a,#0x01 movx @dptr,a C$UM6.c$343$1$1 ==. ; apps/test_UM6_spi/../UM6.c:343: IMU_txdata[1] = 0xAB; // UM6_Flash_commit command (nothing is written to the register) mov dptr,#(_IMU_txdata + 0x0001) mov a,#0xAB movx @dptr,a C$UM6.c$344$1$1 ==. ; apps/test_UM6_spi/../UM6.c:344: IMU_CSlow; clr b[0] mov bits,b mov dpl,#0x0E lcall _setDigitalOutput C$UM6.c$345$1$1 ==. ; apps/test_UM6_spi/../UM6.c:345: spi_UM6MasterTransfer(IMU_txdata,IMU_rxdata,6); mov r0,#_spi1MasterTransfer_PARM_2 mov a,#_IMU_rxdata movx @r0,a inc r0 mov a,#(_IMU_rxdata >> 8) movx @r0,a mov r0,#_spi1MasterTransfer_PARM_3 mov a,#0x06 movx @r0,a inc r0 clr a movx @r0,a mov dptr,#_IMU_txdata lcall _spi1MasterTransfer C$UM6.c$346$1$1 ==. ; apps/test_UM6_spi/../UM6.c:346: while(spi_UM6MasterBusy()){ } 00101$: lcall _spi1MasterBusy jc 00101$ C$UM6.c$347$1$1 ==. ; apps/test_UM6_spi/../UM6.c:347: IMU_CShigh; setb b[0] mov bits,b mov dpl,#0x0E C$UM6.c$348$1$1 ==. XG$UM6_flash_commit$0$0 ==. ljmp _setDigitalOutput ;------------------------------------------------------------ ;Allocation info for local variables in function 'updateLeds' ;------------------------------------------------------------ ;------------------------------------------------------------ G$updateLeds$0$0 ==. C$test_UM6_spi.c$54$1$1 ==. ; apps/test_UM6_spi/test_UM6_spi.c:54: void updateLeds() ; ----------------------------------------- ; function updateLeds ; ----------------------------------------- _updateLeds: C$test_UM6_spi.c$56$1$1 ==. ; apps/test_UM6_spi/test_UM6_spi.c:56: usbShowStatusWithGreenLed(); C$test_UM6_spi.c$59$1$1 ==. XG$updateLeds$0$0 ==. ljmp _usbShowStatusWithGreenLed ;------------------------------------------------------------ ;Allocation info for local variables in function 'putchar' ;------------------------------------------------------------ ;------------------------------------------------------------ G$putchar$0$0 ==. C$test_UM6_spi.c$63$1$1 ==. ; apps/test_UM6_spi/test_UM6_spi.c:63: void putchar(char c) ; ----------------------------------------- ; function putchar ; ----------------------------------------- _putchar: mov r2,dpl C$test_UM6_spi.c$65$1$1 ==. ; apps/test_UM6_spi/test_UM6_spi.c:65: report[reportLength] = c; mov a,_reportLength add a,#_report mov dpl,a mov a,(_reportLength + 1) addc a,#(_report >> 8) mov dph,a mov a,r2 movx @dptr,a C$test_UM6_spi.c$66$1$1 ==. ; apps/test_UM6_spi/test_UM6_spi.c:66: reportLength++; inc _reportLength clr a cjne a,_reportLength,00103$ inc (_reportLength + 1) 00103$: C$test_UM6_spi.c$67$1$1 ==. XG$putchar$0$0 ==. ret ;------------------------------------------------------------ ;Allocation info for local variables in function 'sendReportIfNeeded' ;------------------------------------------------------------ ;sloc0 Allocated with name '_sendReportIfNeeded_sloc0_1_0' ;------------------------------------------------------------ G$sendReportIfNeeded$0$0 ==. C$test_UM6_spi.c$71$1$1 ==. ; apps/test_UM6_spi/test_UM6_spi.c:71: void sendReportIfNeeded() ; ----------------------------------------- ; function sendReportIfNeeded ; ----------------------------------------- _sendReportIfNeeded: C$test_UM6_spi.c$79$1$1 ==. ; apps/test_UM6_spi/test_UM6_spi.c:79: if (getMs() - lastReport >= param_report_period_ms && reportLength == 0) lcall _getMs mov r2,dpl mov r3,dph mov r4,b mov r5,a mov r0,#_sendReportIfNeeded_lastReport_1_1 setb c movx a,@r0 subb a,r2 cpl a cpl c mov _sendReportIfNeeded_sloc0_1_0,a cpl c inc r0 movx a,@r0 subb a,r3 cpl a cpl c mov (_sendReportIfNeeded_sloc0_1_0 + 1),a cpl c inc r0 movx a,@r0 subb a,r4 cpl a cpl c mov (_sendReportIfNeeded_sloc0_1_0 + 2),a cpl c inc r0 movx a,@r0 subb a,r5 cpl a mov (_sendReportIfNeeded_sloc0_1_0 + 3),a mov dptr,#_param_report_period_ms clr a movc a,@a+dptr mov r6,a mov a,#0x01 movc a,@a+dptr mov r7,a mov a,#0x02 movc a,@a+dptr mov r2,a mov a,#0x03 movc a,@a+dptr mov r3,a clr c mov a,_sendReportIfNeeded_sloc0_1_0 subb a,r6 mov a,(_sendReportIfNeeded_sloc0_1_0 + 1) subb a,r7 mov a,(_sendReportIfNeeded_sloc0_1_0 + 2) subb a,r2 mov a,(_sendReportIfNeeded_sloc0_1_0 + 3) subb a,r3 jnc 00121$ ljmp 00106$ 00121$: mov a,_reportLength orl a,(_reportLength + 1) jz 00122$ ljmp 00106$ 00122$: C$test_UM6_spi.c$81$2$2 ==. ; apps/test_UM6_spi/test_UM6_spi.c:81: lastReport = getMs(); lcall _getMs mov r2,dpl mov r3,dph mov r4,b mov r5,a mov r0,#_sendReportIfNeeded_lastReport_1_1 mov a,r2 movx @r0,a inc r0 mov a,r3 movx @r0,a inc r0 mov a,r4 movx @r0,a inc r0 mov a,r5 movx @r0,a C$test_UM6_spi.c$82$2$2 ==. ; apps/test_UM6_spi/test_UM6_spi.c:82: reportBytesSent = 0; clr a mov _reportBytesSent,a mov (_reportBytesSent + 1),a C$test_UM6_spi.c$83$2$2 ==. ; apps/test_UM6_spi/test_UM6_spi.c:83: if(count > 100){ mov r0,#_sendReportIfNeeded_count_1_1 clr c movx a,@r0 mov b,a mov a,#0x64 subb a,b inc r0 movx a,@r0 mov b,a mov a,#(0x00 ^ 0x80) xrl b,#0x80 subb a,b jnc 00102$ C$test_UM6_spi.c$86$3$3 ==. ; apps/test_UM6_spi/test_UM6_spi.c:86: count = 0; mov r0,#_sendReportIfNeeded_count_1_1 clr a movx @r0,a inc r0 movx @r0,a 00102$: C$test_UM6_spi.c$88$2$2 ==. ; apps/test_UM6_spi/test_UM6_spi.c:88: count++; mov r0,#_sendReportIfNeeded_count_1_1 movx a,@r0 add a,#0x01 movx @r0,a inc r0 movx a,@r0 addc a,#0x00 movx @r0,a C$test_UM6_spi.c$91$2$2 ==. ; apps/test_UM6_spi/test_UM6_spi.c:91: if (param_bar_graph) mov dptr,#_param_bar_graph clr a movc a,@a+dptr mov r2,a mov a,#0x01 movc a,@a+dptr mov r3,a mov a,#0x02 movc a,@a+dptr mov r4,a mov a,#0x03 movc a,@a+dptr mov r5,a mov a,r2 orl a,r3 orl a,r4 orl a,r5 jnz 00124$ ljmp 00104$ 00124$: C$test_UM6_spi.c$93$3$4 ==. ; apps/test_UM6_spi/test_UM6_spi.c:93: printf("\x1B[0;0H"); // VT100 command for "go to 0,0" mov a,#__str_28 push acc mov a,#(__str_28 >> 8) push acc mov a,#0x80 push acc lcall _printf dec sp dec sp dec sp C$test_UM6_spi.c$96$3$4 ==. ; apps/test_UM6_spi/test_UM6_spi.c:96: printf("accelrawZ is : %d \n",accelrawZ.val); mov r0,#_accelrawZ movx a,@r0 mov r2,a inc r0 movx a,@r0 mov r3,a push ar2 push ar3 mov a,#__str_29 push acc mov a,#(__str_29 >> 8) push acc mov a,#0x80 push acc lcall _printf mov a,sp add a,#0xfb mov sp,a C$test_UM6_spi.c$97$3$4 ==. ; apps/test_UM6_spi/test_UM6_spi.c:97: printf("accelZ is : %d \n",accelprocZ.val); mov r0,#_accelprocZ movx a,@r0 mov r2,a inc r0 movx a,@r0 mov r3,a push ar2 push ar3 mov a,#__str_30 push acc mov a,#(__str_30 >> 8) push acc mov a,#0x80 push acc lcall _printf mov a,sp add a,#0xfb mov sp,a C$test_UM6_spi.c$98$3$4 ==. ; apps/test_UM6_spi/test_UM6_spi.c:98: printf("accelX is : %d \n",accelprocX.val); mov r0,#_accelprocX movx a,@r0 mov r2,a inc r0 movx a,@r0 mov r3,a push ar2 push ar3 mov a,#__str_31 push acc mov a,#(__str_31 >> 8) push acc mov a,#0x80 push acc lcall _printf mov a,sp add a,#0xfb mov sp,a C$test_UM6_spi.c$99$3$4 ==. ; apps/test_UM6_spi/test_UM6_spi.c:99: printf("accelY is : %d \n",accelprocY.val); mov r0,#_accelprocY movx a,@r0 mov r2,a inc r0 movx a,@r0 mov r3,a push ar2 push ar3 mov a,#__str_32 push acc mov a,#(__str_32 >> 8) push acc mov a,#0x80 push acc lcall _printf mov a,sp add a,#0xfb mov sp,a C$test_UM6_spi.c$100$3$4 ==. ; apps/test_UM6_spi/test_UM6_spi.c:100: printf("gyroZ is : %d \n",gyroprocZ.val); mov r0,#_gyroprocZ movx a,@r0 mov r2,a inc r0 movx a,@r0 mov r3,a push ar2 push ar3 mov a,#__str_33 push acc mov a,#(__str_33 >> 8) push acc mov a,#0x80 push acc lcall _printf mov a,sp add a,#0xfb mov sp,a C$test_UM6_spi.c$101$3$4 ==. ; apps/test_UM6_spi/test_UM6_spi.c:101: printf("gyroX is : %d \n",gyroprocX.val); mov r0,#_gyroprocX movx a,@r0 mov r2,a inc r0 movx a,@r0 mov r3,a push ar2 push ar3 mov a,#__str_34 push acc mov a,#(__str_34 >> 8) push acc mov a,#0x80 push acc lcall _printf mov a,sp add a,#0xfb mov sp,a C$test_UM6_spi.c$102$3$4 ==. ; apps/test_UM6_spi/test_UM6_spi.c:102: printf("gyroY is : %d \n",gyroprocY.val); mov r0,#_gyroprocY movx a,@r0 mov r2,a inc r0 movx a,@r0 mov r3,a push ar2 push ar3 mov a,#__str_35 push acc mov a,#(__str_35 >> 8) push acc mov a,#0x80 push acc lcall _printf mov a,sp add a,#0xfb mov sp,a C$test_UM6_spi.c$103$3$4 ==. ; apps/test_UM6_spi/test_UM6_spi.c:103: printf("euler_psi is : %d \n",euler_psi.val); mov r0,#_euler_psi movx a,@r0 mov r2,a inc r0 movx a,@r0 mov r3,a push ar2 push ar3 mov a,#__str_36 push acc mov a,#(__str_36 >> 8) push acc mov a,#0x80 push acc lcall _printf mov a,sp add a,#0xfb mov sp,a C$test_UM6_spi.c$104$3$4 ==. ; apps/test_UM6_spi/test_UM6_spi.c:104: printf("euler_phi is : %d \n",euler_phi.val); mov r0,#_euler_phi movx a,@r0 mov r2,a inc r0 movx a,@r0 mov r3,a push ar2 push ar3 mov a,#__str_37 push acc mov a,#(__str_37 >> 8) push acc mov a,#0x80 push acc lcall _printf mov a,sp add a,#0xfb mov sp,a C$test_UM6_spi.c$105$3$4 ==. ; apps/test_UM6_spi/test_UM6_spi.c:105: printf("euler_theta is : %d \n",euler_theta.val); mov r0,#_euler_theta movx a,@r0 mov r2,a inc r0 movx a,@r0 mov r3,a push ar2 push ar3 mov a,#__str_38 push acc mov a,#(__str_38 >> 8) push acc mov a,#0x80 push acc lcall _printf mov a,sp add a,#0xfb mov sp,a 00104$: C$test_UM6_spi.c$111$2$2 ==. ; apps/test_UM6_spi/test_UM6_spi.c:111: read_accel_procXY(); lcall _read_accel_procXY C$test_UM6_spi.c$112$2$2 ==. ; apps/test_UM6_spi/test_UM6_spi.c:112: read_accel_procZ(); lcall _read_accel_procZ C$test_UM6_spi.c$113$2$2 ==. ; apps/test_UM6_spi/test_UM6_spi.c:113: read_gyro_procXY(); lcall _read_gyro_procXY C$test_UM6_spi.c$114$2$2 ==. ; apps/test_UM6_spi/test_UM6_spi.c:114: read_gyro_procZ(); lcall _read_gyro_procZ C$test_UM6_spi.c$115$2$2 ==. ; apps/test_UM6_spi/test_UM6_spi.c:115: read_accel_rawZ(); lcall _read_accel_rawZ C$test_UM6_spi.c$116$2$2 ==. ; apps/test_UM6_spi/test_UM6_spi.c:116: read_euler_psi(); lcall _read_euler_psi C$test_UM6_spi.c$117$2$2 ==. ; apps/test_UM6_spi/test_UM6_spi.c:117: read_euler_phi_theta(); lcall _read_euler_phi_theta 00106$: C$test_UM6_spi.c$121$1$1 ==. ; apps/test_UM6_spi/test_UM6_spi.c:121: if (reportLength > 0) mov a,_reportLength orl a,(_reportLength + 1) jz 00113$ C$test_UM6_spi.c$123$2$5 ==. ; apps/test_UM6_spi/test_UM6_spi.c:123: bytesToSend = usbComTxAvailable(); lcall _usbComTxAvailable mov r2,dpl C$test_UM6_spi.c$124$2$5 ==. ; apps/test_UM6_spi/test_UM6_spi.c:124: if (bytesToSend > reportLength - reportBytesSent) mov a,_reportLength clr c subb a,_reportBytesSent mov r3,a mov a,(_reportLength + 1) subb a,(_reportBytesSent + 1) mov r4,a mov ar5,r2 mov r6,#0x00 clr c mov a,r3 subb a,r5 mov a,r4 subb a,r6 jnc 00109$ C$test_UM6_spi.c$127$3$6 ==. ; apps/test_UM6_spi/test_UM6_spi.c:127: usbComTxSend(report+reportBytesSent, reportLength - reportBytesSent); mov a,_reportBytesSent add a,#_report mov dpl,a mov a,(_reportBytesSent + 1) addc a,#(_report >> 8) mov dph,a mov r3,_reportLength mov r4,_reportBytesSent mov a,r3 clr c subb a,r4 mov r0,#_usbComTxSend_PARM_2 movx @r0,a lcall _usbComTxSend C$test_UM6_spi.c$128$3$6 ==. ; apps/test_UM6_spi/test_UM6_spi.c:128: reportLength = 0; clr a mov _reportLength,a mov (_reportLength + 1),a ret 00109$: C$test_UM6_spi.c$132$3$7 ==. ; apps/test_UM6_spi/test_UM6_spi.c:132: usbComTxSend(report+reportBytesSent, bytesToSend); mov a,_reportBytesSent add a,#_report mov dpl,a mov a,(_reportBytesSent + 1) addc a,#(_report >> 8) mov dph,a mov r0,#_usbComTxSend_PARM_2 mov a,r2 movx @r0,a push ar2 lcall _usbComTxSend pop ar2 C$test_UM6_spi.c$133$3$7 ==. ; apps/test_UM6_spi/test_UM6_spi.c:133: reportBytesSent += bytesToSend; mov r3,#0x00 mov a,r2 add a,_reportBytesSent mov _reportBytesSent,a mov a,r3 addc a,(_reportBytesSent + 1) mov (_reportBytesSent + 1),a 00113$: C$test_UM6_spi.c$137$2$1 ==. XG$sendReportIfNeeded$0$0 ==. ret ;------------------------------------------------------------ ;Allocation info for local variables in function 'main' ;------------------------------------------------------------ ;------------------------------------------------------------ G$main$0$0 ==. C$test_UM6_spi.c$141$2$1 ==. ; apps/test_UM6_spi/test_UM6_spi.c:141: void main() ; ----------------------------------------- ; function main ; ----------------------------------------- _main: C$test_UM6_spi.c$143$1$1 ==. ; apps/test_UM6_spi/test_UM6_spi.c:143: systemInit(); lcall _systemInit C$test_UM6_spi.c$144$1$1 ==. ; apps/test_UM6_spi/test_UM6_spi.c:144: usbInit(); lcall _usbInit C$test_UM6_spi.c$146$1$1 ==. ; apps/test_UM6_spi/test_UM6_spi.c:146: spi_UM6_init(); // Initialize SPI for communicating with UM6 lcall _spi_UM6_init C$test_UM6_spi.c$147$1$1 ==. ; apps/test_UM6_spi/test_UM6_spi.c:147: Zero_Gyros(); lcall _Zero_Gyros C$test_UM6_spi.c$150$1$1 ==. ; apps/test_UM6_spi/test_UM6_spi.c:150: while(1) 00102$: C$test_UM6_spi.c$152$2$2 ==. ; apps/test_UM6_spi/test_UM6_spi.c:152: boardService(); //Checks to see if the yellow LED line (P2_2) is connected to 3V3. If they are connected, then it starts the bootloader by calling boardStartBootloader. This function is called by boardService. If you call this function regularly, then it provides a relatively easy way to get into bootloader mode if you can't do it with a USB command. Currently this function only works while the yellow LED is off. lcall _boardService C$test_UM6_spi.c$153$2$2 ==. ; apps/test_UM6_spi/test_UM6_spi.c:153: updateLeds(); lcall _updateLeds C$test_UM6_spi.c$154$2$2 ==. ; apps/test_UM6_spi/test_UM6_spi.c:154: usbComService(); lcall _usbComService C$test_UM6_spi.c$159$2$2 ==. ; apps/test_UM6_spi/test_UM6_spi.c:159: sendReportIfNeeded(); lcall _sendReportIfNeeded C$test_UM6_spi.c$161$1$1 ==. XG$main$0$0 ==. sjmp 00102$ .area CSEG (CODE) .area CONST (CODE) Ftest_UM6_spi$_str_0$0$0 == . __str_0: .ascii "Broadcast mode ENABLED " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_1$0$0 == . __str_1: .ascii "Broadcast mode DISABLED " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_2$0$0 == . __str_2: .ascii "Raw Gyro data transmission ENABLED " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_3$0$0 == . __str_3: .ascii "Raw Gyro data transmission DISABLED " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_4$0$0 == . __str_4: .ascii "Raw accelerometer data transmission ENABLED " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_5$0$0 == . __str_5: .ascii "Raw accelerometer data transmission DISABLED " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_6$0$0 == . __str_6: .ascii "Raw magnetometer data transmission ENABLED " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_7$0$0 == . __str_7: .ascii "Raw magnetometer data transmission DISABLED " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_8$0$0 == . __str_8: .ascii "Processed Gyro data transmission ENABLED " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_9$0$0 == . __str_9: .ascii "Processed Gyro data transmission DISABLED " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_10$0$0 == . __str_10: .ascii "Processed accelerometer data transmission ENABLED " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_11$0$0 == . __str_11: .ascii "Processed accelerometer data transmission DISABLED " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_12$0$0 == . __str_12: .ascii "Processed magnetometer data transmission ENABLED " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_13$0$0 == . __str_13: .ascii "Processed magnetometer data transmission DISABLED " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_14$0$0 == . __str_14: .ascii "Quat transmission ENABLED " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_15$0$0 == . __str_15: .ascii "Quat transmission DISABLED " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_16$0$0 == . __str_16: .ascii "Euler angle transmission ENABLED " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_17$0$0 == . __str_17: .ascii "Euler angle transmission DISABLED " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_18$0$0 == . __str_18: .ascii "COV mat transmission ENABLED " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_19$0$0 == . __str_19: .ascii "COV mat transmission DISABLED " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_20$0$0 == . __str_20: .ascii "EKF magnetometer updates (yaw correction) ENABLED " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_21$0$0 == . __str_21: .ascii "EKF magnetometer updates (yaw correction) DISABLED " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_22$0$0 == . __str_22: .ascii "EKF accelerometer updates (roll & pitch correction) ENABLED " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_23$0$0 == . __str_23: .ascii "EKF accelerometer updates (roll & pitch correction) DISABLED" .ascii " " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_24$0$0 == . __str_24: .ascii "Startup Gyro Calibration ENABLED " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_25$0$0 == . __str_25: .ascii "Startup Gyro Calibration DISABLED " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_26$0$0 == . __str_26: .ascii "Quaternion state estimation ENABLED " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_27$0$0 == . __str_27: .ascii "Quaternion state estimation DISABLED " .db 0x0A .db 0x00 G$param_input_mode$0$0 == . _param_input_mode: .byte #0x00,#0x00,#0x00,#0x00 ; 0 G$param_bar_graph$0$0 == . _param_bar_graph: .byte #0x01,#0x00,#0x00,#0x00 ; 1 G$param_report_period_ms$0$0 == . _param_report_period_ms: .byte #0x28,#0x00,#0x00,#0x00 ; 40 Ftest_UM6_spi$_str_28$0$0 == . __str_28: .db 0x1B .ascii "[0;0H" .db 0x00 Ftest_UM6_spi$_str_29$0$0 == . __str_29: .ascii "accelrawZ is : %d " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_30$0$0 == . __str_30: .ascii "accelZ is : %d " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_31$0$0 == . __str_31: .ascii "accelX is : %d " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_32$0$0 == . __str_32: .ascii "accelY is : %d " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_33$0$0 == . __str_33: .ascii "gyroZ is : %d " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_34$0$0 == . __str_34: .ascii "gyroX is : %d " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_35$0$0 == . __str_35: .ascii "gyroY is : %d " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_36$0$0 == . __str_36: .ascii "euler_psi is : %d " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_37$0$0 == . __str_37: .ascii "euler_phi is : %d " .db 0x0A .db 0x00 Ftest_UM6_spi$_str_38$0$0 == . __str_38: .ascii "euler_theta is : %d " .db 0x0A .db 0x00 .area XINIT (CODE) Ftest_UM6_spi$__xinit_IMU_txdata$0$0 == . __xinit__IMU_txdata: .db #0x00 ; 0 .db 0x00 .db 0x00 .db 0x00 .db 0x00 .db 0x00 .db 0x00 .db 0x00 Ftest_UM6_spi$__xinit_IMU_rxdata$0$0 == . __xinit__IMU_rxdata: .db #0x01 ; 1 .db #0x01 ; 1 .db #0x01 ; 1 .db #0x01 ; 1 .db #0x01 ; 1 .db #0x01 ; 1 .db #0x01 ; 1 .db #0x01 ; 1 .area CABS (ABS,CODE)