; generated by ARM C/C++ Compiler, 4.1 [Build 894]
; commandline ArmCC [--list --split_sections --debug -c --asm --interleave -o.\obj\drvebi.o --asm_dir=.\lst\ --list_dir=.\lst\ --depend=.\obj\drvebi.d --cpu=Cortex-M0 --apcs=interwork -I..\inc -I..\drv -I..\bsp -I..\bsp\Cmsis -I..\bsp\Driver -I..\bsp\system -I..\lib -I..\lib\libtk -IC:\Keil\ARM\RV31\Inc -IC:\Keil\ARM\CMSIS\Include -D__LCDDISPLAY_BTL001_H --omf_browse=.\obj\drvebi.crf ..\bsp\Driver\DrvEBI.c]
                          THUMB

                          AREA ||i.DrvEBI_Close||, CODE, READONLY, ALIGN=2

                  DrvEBI_Close PROC
;;;71     /*---------------------------------------------------------------------------------------------------------*/
;;;72     void DrvEBI_Close(void)
000000  4805              LDR      r0,|L1.24|
;;;73     {
;;;74     	/* EBI disable */
;;;75     	EBI->EBICON_BITS.ExtEN = 0;
000002  6801              LDR      r1,[r0,#0]
000004  0849              LSRS     r1,r1,#1
000006  0049              LSLS     r1,r1,#1
000008  6001              STR      r1,[r0,#0]
;;;76     	
;;;77     	/* EBI clock disable */
;;;78         CLK->AHBCLK_BITS.EBI_EN = 0;
00000a  4804              LDR      r0,|L1.28|
00000c  6841              LDR      r1,[r0,#4]
00000e  2208              MOVS     r2,#8
000010  4391              BICS     r1,r1,r2
000012  6041              STR      r1,[r0,#4]
;;;79     	
;;;80     	/* Configure EBI pins to GPIO pins here ...... */
;;;81     }
000014  4770              BX       lr
;;;82     
                          ENDP

000016  0000              DCW      0x0000
                  |L1.24|
                          DCD      0x50010000
                  |L1.28|
                          DCD      0x50000200

                          AREA ||i.DrvEBI_GetBusTiming||, CODE, READONLY, ALIGN=2

                  DrvEBI_GetBusTiming PROC
;;;120    /*---------------------------------------------------------------------------------------------------------*/
;;;121    void DrvEBI_GetBusTiming(DRVEBI_TIMING_T *psEBITiming)
000000  490e              LDR      r1,|L2.60|
;;;122    {
;;;123    	psEBITiming->eMCLKDIV  = (E_DRVEBI_MCLKDIV)EBI->EBICON_BITS.MCLKDIV;
000002  680a              LDR      r2,[r1,#0]
000004  0552              LSLS     r2,r2,#21
000006  0f52              LSRS     r2,r2,#29
000008  7002              STRB     r2,[r0,#0]
;;;124    	psEBITiming->u8ExttALE = EBI->EBICON_BITS.ExttALE;
00000a  680a              LDR      r2,[r1,#0]
00000c  0352              LSLS     r2,r2,#13
00000e  0f52              LSRS     r2,r2,#29
000010  7042              STRB     r2,[r0,#1]
;;;125    	
;;;126    	psEBITiming->u8ExttACC = EBI->EXTIME_BITS.ExttACC;
000012  684a              LDR      r2,[r1,#4]
000014  06d2              LSLS     r2,r2,#27
000016  0ed2              LSRS     r2,r2,#27
000018  7182              STRB     r2,[r0,#6]
;;;127    	psEBITiming->u8ExttAHD = EBI->EXTIME_BITS.ExttAHD;
00001a  684a              LDR      r2,[r1,#4]
00001c  0552              LSLS     r2,r2,#21
00001e  0f52              LSRS     r2,r2,#29
000020  7142              STRB     r2,[r0,#5]
;;;128    	psEBITiming->u8ExtIW2X = EBI->EXTIME_BITS.ExtIW2X;
000022  684a              LDR      r2,[r1,#4]
000024  0412              LSLS     r2,r2,#16
000026  0f12              LSRS     r2,r2,#28
000028  7102              STRB     r2,[r0,#4]
;;;129    	psEBITiming->u8ExtIR2W = EBI->EXTIME_BITS.ExtLR2W;
00002a  684a              LDR      r2,[r1,#4]
00002c  0312              LSLS     r2,r2,#12
00002e  0f12              LSRS     r2,r2,#28
000030  70c2              STRB     r2,[r0,#3]
;;;130    	psEBITiming->u8ExtIR2R = EBI->EXTIME_BITS.ExtIR2R;
000032  6849              LDR      r1,[r1,#4]
000034  0109              LSLS     r1,r1,#4
000036  0f09              LSRS     r1,r1,#28
000038  7081              STRB     r1,[r0,#2]
;;;131    }
00003a  4770              BX       lr
;;;132    
                          ENDP

                  |L2.60|
                          DCD      0x50010000

                          AREA ||i.DrvEBI_GetVersion||, CODE, READONLY, ALIGN=2

                  DrvEBI_GetVersion PROC
;;;143    /*---------------------------------------------------------------------------------------------------------*/
;;;144    uint32_t DrvEBI_GetVersion(void)
000000  4800              LDR      r0,|L3.4|
;;;145    {
;;;146    	return DRVEBI_VERSION_NUM;
;;;147    }
000002  4770              BX       lr
;;;148    																								
                          ENDP

                  |L3.4|
                          DCD      0x00010202

                          AREA ||i.DrvEBI_Open||, CODE, READONLY, ALIGN=2

                  DrvEBI_Open PROC
;;;35     /*---------------------------------------------------------------------------------------------------------*/
;;;36     int32_t DrvEBI_Open(DRVEBI_CONFIG_T sEBIConfig)
000000  b537              PUSH     {r0-r2,r4,r5,lr}
;;;37     {
;;;38     	/* Enable EBI clock	 */
;;;39         CLK->AHBCLK_BITS.EBI_EN = 1;
000002  4811              LDR      r0,|L4.72|
000004  6841              LDR      r1,[r0,#4]
000006  2208              MOVS     r2,#8
000008  4311              ORRS     r1,r1,r2
00000a  6041              STR      r1,[r0,#4]
;;;40     
;;;41     	/* EBI function enable */
;;;42     	EBI->EBICON_BITS.ExtEN = 1;
00000c  4c0f              LDR      r4,|L4.76|
00000e  6820              LDR      r0,[r4,#0]
000010  2101              MOVS     r1,#1
000012  4308              ORRS     r0,r0,r1
000014  6020              STR      r0,[r4,#0]
;;;43     
;;;44     	if (sEBIConfig.eBusWidth == E_DRVEBI_BUS_8BIT)
000016  4668              MOV      r0,sp
000018  7800              LDRB     r0,[r0,#0]
;;;45     	{	
;;;46     		DrvGPIO_InitFunction(E_FUNC_EBI_8B);
;;;47     		EBI->EBICON_BITS.ExtBW16 = 0;
00001a  2502              MOVS     r5,#2
00001c  2800              CMP      r0,#0                 ;44
00001e  d003              BEQ      |L4.40|
;;;48     	}
;;;49     	else if (sEBIConfig.eBusWidth == E_DRVEBI_BUS_16BIT)
000020  2801              CMP      r0,#1
000022  d007              BEQ      |L4.52|
;;;50     	{
;;;51     		DrvGPIO_InitFunction(E_FUNC_EBI_16B);
;;;52     		EBI->EBICON_BITS.ExtBW16 = 1;
;;;53     	}else
;;;54     	{
;;;55             return E_DRVEBI_ERR_ARGUMENT;
000024  480a              LDR      r0,|L4.80|
;;;56     	}
;;;57         return 0;
;;;58     }
000026  bd3e              POP      {r1-r5,pc}
                  |L4.40|
000028  480a              LDR      r0,|L4.84|
00002a  f7fffffe          BL       DrvGPIO_InitFunction
00002e  6820              LDR      r0,[r4,#0]            ;47
000030  43a8              BICS     r0,r0,r5              ;47
000032  e005              B        |L4.64|
                  |L4.52|
000034  4807              LDR      r0,|L4.84|
000036  1c40              ADDS     r0,r0,#1              ;51
000038  f7fffffe          BL       DrvGPIO_InitFunction
00003c  6820              LDR      r0,[r4,#0]            ;52
00003e  4328              ORRS     r0,r0,r5              ;52
                  |L4.64|
000040  6020              STR      r0,[r4,#0]            ;52
000042  2000              MOVS     r0,#0                 ;57
000044  bd3e              POP      {r1-r5,pc}
;;;59     
                          ENDP

000046  0000              DCW      0x0000
                  |L4.72|
                          DCD      0x50000200
                  |L4.76|
                          DCD      0x50010000
                  |L4.80|
                          DCD      0xffff8601
                  |L4.84|
                          DCD      0x0f000008

                          AREA ||i.DrvEBI_SetBusTiming||, CODE, READONLY, ALIGN=2

                  DrvEBI_SetBusTiming PROC
;;;95     /*---------------------------------------------------------------------------------------------------------*/
;;;96     void DrvEBI_SetBusTiming(DRVEBI_TIMING_T sEBITiming)
000000  b503              PUSH     {r0,r1,lr}
;;;97     {	
;;;98     	EBI->EBICON_BITS.MCLKDIV = sEBITiming.eMCLKDIV;
000002  4820              LDR      r0,|L5.132|
000004  6801              LDR      r1,[r0,#0]
000006  466b              MOV      r3,sp
000008  2207              MOVS     r2,#7
00000a  781b              LDRB     r3,[r3,#0]
00000c  0212              LSLS     r2,r2,#8
00000e  075b              LSLS     r3,r3,#29
000010  4391              BICS     r1,r1,r2
000012  0d5b              LSRS     r3,r3,#21
000014  4319              ORRS     r1,r1,r3
000016  6001              STR      r1,[r0,#0]
;;;99     	EBI->EBICON_BITS.ExttALE = sEBITiming.u8ExttALE;
000018  6801              LDR      r1,[r0,#0]
00001a  0213              LSLS     r3,r2,#8
00001c  4399              BICS     r1,r1,r3
00001e  466b              MOV      r3,sp
000020  785b              LDRB     r3,[r3,#1]
000022  075b              LSLS     r3,r3,#29
000024  0b5b              LSRS     r3,r3,#13
000026  4319              ORRS     r1,r1,r3
000028  6001              STR      r1,[r0,#0]
;;;100    	
;;;101    	EBI->EXTIME_BITS.ExttACC = sEBITiming.u8ExttACC;
00002a  6841              LDR      r1,[r0,#4]
00002c  466b              MOV      r3,sp
00002e  799b              LDRB     r3,[r3,#6]
000030  0949              LSRS     r1,r1,#5
000032  0149              LSLS     r1,r1,#5
000034  06db              LSLS     r3,r3,#27
000036  0edb              LSRS     r3,r3,#27
000038  4319              ORRS     r1,r1,r3
00003a  6041              STR      r1,[r0,#4]
;;;102    	EBI->EXTIME_BITS.ExttAHD = sEBITiming.u8ExttAHD;
00003c  6841              LDR      r1,[r0,#4]
00003e  466b              MOV      r3,sp
000040  4391              BICS     r1,r1,r2
000042  795a              LDRB     r2,[r3,#5]
000044  0752              LSLS     r2,r2,#29
000046  0d52              LSRS     r2,r2,#21
000048  4311              ORRS     r1,r1,r2
00004a  6041              STR      r1,[r0,#4]
;;;103    	EBI->EXTIME_BITS.ExtIW2X = sEBITiming.u8ExtIW2X;
00004c  6841              LDR      r1,[r0,#4]
00004e  220f              MOVS     r2,#0xf
000050  0312              LSLS     r2,r2,#12
000052  4391              BICS     r1,r1,r2
000054  791a              LDRB     r2,[r3,#4]
000056  0712              LSLS     r2,r2,#28
000058  0c12              LSRS     r2,r2,#16
00005a  4311              ORRS     r1,r1,r2
00005c  6041              STR      r1,[r0,#4]
;;;104    	EBI->EXTIME_BITS.ExtLR2W = sEBITiming.u8ExtIR2W;
00005e  6841              LDR      r1,[r0,#4]
000060  220f              MOVS     r2,#0xf
000062  0412              LSLS     r2,r2,#16
000064  4391              BICS     r1,r1,r2
000066  78da              LDRB     r2,[r3,#3]
000068  0712              LSLS     r2,r2,#28
00006a  0b12              LSRS     r2,r2,#12
00006c  4311              ORRS     r1,r1,r2
00006e  6041              STR      r1,[r0,#4]
;;;105    	EBI->EXTIME_BITS.ExtIR2R = sEBITiming.u8ExtIR2R;
000070  6841              LDR      r1,[r0,#4]
000072  220f              MOVS     r2,#0xf
000074  0612              LSLS     r2,r2,#24
000076  4391              BICS     r1,r1,r2
000078  789a              LDRB     r2,[r3,#2]
00007a  0712              LSLS     r2,r2,#28
00007c  0912              LSRS     r2,r2,#4
00007e  4311              ORRS     r1,r1,r2
000080  6041              STR      r1,[r0,#4]
;;;106    }
000082  bd0c              POP      {r2,r3,pc}
;;;107    
                          ENDP

                  |L5.132|
                          DCD      0x50010000
