; generated by Component: ARM Compiler 5.06 update 6 (build 750) Tool: ArmCC [4d3637]
; commandline ArmCC [--c99 --list --split_sections --debug -c --asm --interleave --gnu -o.\objects\app_tp_transfer.o --asm_dir=.\Listings\ --list_dir=.\Listings\ --depend=.\objects\app_tp_transfer.d --cpu=Cortex-M0 --apcs=interwork -O3 --diag_suppress=9931 -I..\..\src -I..\..\src\board -I..\..\src\common -I..\..\src\sdk\include -I..\..\src\app\demo -I..\..\src\sdk\include\M0 -I..\..\src\app -I..\CVWL568 -I.\RTE\_ISP_568 -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\5.5.1\CMSIS\Core\Include -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\5.5.1\Device\ARM\ARMCM0\Include -D__MICROLIB -D__UVISION_VERSION=528 -D_RTE_ -DARMCM0 -DISP_568 --omf_browse=.\objects\app_tp_transfer.crf ..\..\src\app\demo\app_tp_transfer.c]
                          THUMB

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

                  S20_Start_init PROC
;;;402    
;;;403    void S20_Start_init(void)
000000  b570              PUSH     {r4-r6,lr}
;;;404    {
;;;405    	uint8_t len=0;
;;;406    	uint8_t temp=0;
;;;407    	uint8_t temp_start_flag=0;	
;;;408    	//    if(phone_start_flag==1)
;;;409    	{
;;;410    		app_tp_m_read(screen_reg_int_data[0].buffer, 1, s_screen_read_buffer, 8);
000002  4d4a              LDR      r5,|L1.300|
000004  2308              MOVS     r3,#8
000006  4a4a              LDR      r2,|L1.304|
000008  2101              MOVS     r1,#1
00000a  6828              LDR      r0,[r5,#0]  ; screen_reg_int_data
00000c  f7fffffe          BL       app_tp_m_read
                  |L1.16|
;;;411    		while(!hal_i2c_m_transfer_complate());		
000010  f7fffffe          BL       hal_i2c_m_transfer_complate
000014  2800              CMP      r0,#0
000016  d0fb              BEQ      |L1.16|
;;;412    		delayMs(2);			
000018  2002              MOVS     r0,#2
00001a  f7fffffe          BL       delayMs
;;;413    		while(!hal_gpio_get_input_data(g_screen_input_int_pad))
00001e  4c45              LDR      r4,|L1.308|
000020  e00c              B        |L1.60|
                  |L1.34|
;;;414    		{
;;;415    			app_tp_m_read(screen_reg_int_data[0].buffer, 1, s_screen_read_buffer, 8);
000022  2308              MOVS     r3,#8
000024  4a42              LDR      r2,|L1.304|
000026  2101              MOVS     r1,#1
000028  6828              LDR      r0,[r5,#0]  ; screen_reg_int_data
00002a  f7fffffe          BL       app_tp_m_read
                  |L1.46|
;;;416    			while(!hal_i2c_m_transfer_complate());		
00002e  f7fffffe          BL       hal_i2c_m_transfer_complate
000032  2800              CMP      r0,#0
000034  d0fb              BEQ      |L1.46|
;;;417    			delayMs(2);
000036  2002              MOVS     r0,#2
000038  f7fffffe          BL       delayMs
                  |L1.60|
00003c  7820              LDRB     r0,[r4,#0]            ;413  ; g_screen_input_int_pad
00003e  f7fffffe          BL       hal_gpio_get_input_data
000042  2800              CMP      r0,#0                 ;413
000044  d0ed              BEQ      |L1.34|
;;;418    		}
;;;419    		temp=s_screen_read_buffer[0]&0xf0;
000046  4e3a              LDR      r6,|L1.304|
000048  7830              LDRB     r0,[r6,#0]  ; s_screen_read_buffer
00004a  0900              LSRS     r0,r0,#4
00004c  0100              LSLS     r0,r0,#4
;;;420    		if((temp==0x10)||(temp==0x20)||(temp==0x30))
00004e  2810              CMP      r0,#0x10
000050  d04a              BEQ      |L1.232|
000052  2820              CMP      r0,#0x20
000054  d048              BEQ      |L1.232|
000056  2830              CMP      r0,#0x30
000058  d046              BEQ      |L1.232|
;;;421    		{
;;;422    			temp_start_flag=1;
;;;423    		}
;;;424    		if(temp_start_flag==0)
;;;425    		{
;;;426    			app_tp_m_write(MI10_PRO_screen_init_data1, sizeof(MI10_PRO_screen_init_data1));//0xA0,0x00,0x01
00005a  2103              MOVS     r1,#3
00005c  4836              LDR      r0,|L1.312|
00005e  f7fffffe          BL       app_tp_m_write
                  |L1.98|
;;;427    			while(!hal_i2c_m_transfer_complate());
000062  f7fffffe          BL       hal_i2c_m_transfer_complate
000066  2800              CMP      r0,#0
000068  d0fb              BEQ      |L1.98|
;;;428    			delayMs(1);
00006a  2001              MOVS     r0,#1
00006c  f7fffffe          BL       delayMs
;;;429    			app_tp_m_write(MI10_PRO_screen_init_data2, sizeof(MI10_PRO_screen_init_data2));//0xA2,0x03,0x00,0x00,0x00,0x03
000070  4831              LDR      r0,|L1.312|
000072  2106              MOVS     r1,#6
000074  3009              ADDS     r0,r0,#9
000076  f7fffffe          BL       app_tp_m_write
                  |L1.122|
;;;430    			while(!hal_i2c_m_transfer_complate());
00007a  f7fffffe          BL       hal_i2c_m_transfer_complate
00007e  2800              CMP      r0,#0
000080  d0fb              BEQ      |L1.122|
;;;431    			delayMs(1);		
000082  2001              MOVS     r0,#1
000084  f7fffffe          BL       delayMs
;;;432    			app_tp_m_write(MI10_PRO_screen_init_data3, sizeof(MI10_PRO_screen_init_data3));//0xA2,0x02,0x00
000088  482b              LDR      r0,|L1.312|
00008a  2103              MOVS     r1,#3
00008c  1cc0              ADDS     r0,r0,#3
00008e  f7fffffe          BL       app_tp_m_write
                  |L1.146|
;;;433    			while(!hal_i2c_m_transfer_complate());
000092  f7fffffe          BL       hal_i2c_m_transfer_complate
000096  2800              CMP      r0,#0
000098  d0fb              BEQ      |L1.146|
;;;434    			delayMs(1);	
00009a  2001              MOVS     r0,#1
00009c  f7fffffe          BL       delayMs
;;;435    			app_tp_m_write(MI10_PRO_screen_init_data4, sizeof(MI10_PRO_screen_init_data4));//0xC0,0x07,0x01
0000a0  4825              LDR      r0,|L1.312|
0000a2  2103              MOVS     r1,#3
0000a4  1d80              ADDS     r0,r0,#6
0000a6  f7fffffe          BL       app_tp_m_write
                  |L1.170|
;;;436    			while(!hal_i2c_m_transfer_complate());
0000aa  f7fffffe          BL       hal_i2c_m_transfer_complate
0000ae  2800              CMP      r0,#0
0000b0  d0fb              BEQ      |L1.170|
;;;437    			delayMs(1);		
0000b2  2001              MOVS     r0,#1
0000b4  f7fffffe          BL       delayMs
;;;438    			app_tp_m_read(screen_reg_int_data[0].buffer, 1, s_screen_read_buffer, 8);
0000b8  2308              MOVS     r3,#8
0000ba  4a1d              LDR      r2,|L1.304|
0000bc  2101              MOVS     r1,#1
0000be  6828              LDR      r0,[r5,#0]  ; screen_reg_int_data
0000c0  f7fffffe          BL       app_tp_m_read
                  |L1.196|
;;;439    			while(!hal_i2c_m_transfer_complate());
0000c4  f7fffffe          BL       hal_i2c_m_transfer_complate
0000c8  2800              CMP      r0,#0
0000ca  d0fb              BEQ      |L1.196|
;;;440    			if(s_screen_read_buffer[7]>0)
0000cc  79f0              LDRB     r0,[r6,#7]  ; s_screen_read_buffer
0000ce  2800              CMP      r0,#0
0000d0  d00a              BEQ      |L1.232|
;;;441    			{
;;;442    				len=s_screen_read_buffer[7]*8;
0000d2  06c0              LSLS     r0,r0,#27
0000d4  0e03              LSRS     r3,r0,#24
;;;443    				app_tp_m_read(screen_reg_int_data[0].buffer, 1, s_screen_read_buffer, len);
0000d6  4a16              LDR      r2,|L1.304|
0000d8  2101              MOVS     r1,#1
0000da  6828              LDR      r0,[r5,#0]  ; screen_reg_int_data
0000dc  f7fffffe          BL       app_tp_m_read
                  |L1.224|
;;;444    				while(!hal_i2c_m_transfer_complate());		
0000e0  f7fffffe          BL       hal_i2c_m_transfer_complate
0000e4  2800              CMP      r0,#0
0000e6  d0fb              BEQ      |L1.224|
                  |L1.232|
;;;445    			}
;;;446    		}
;;;447    #endif
;;;448    		if(hal_gpio_get_input_data(g_screen_input_int_pad))
0000e8  7820              LDRB     r0,[r4,#0]  ; g_screen_input_int_pad
0000ea  f7fffffe          BL       hal_gpio_get_input_data
0000ee  2800              CMP      r0,#0
0000f0  d01b              BEQ      |L1.298|
;;;449    		{
;;;450    			s_screen_init_complate = true;
0000f2  4911              LDR      r1,|L1.312|
0000f4  2001              MOVS     r0,#1
0000f6  3908              SUBS     r1,r1,#8
0000f8  7108              STRB     r0,[r1,#4]
0000fa  4601              MOV      r1,r0
0000fc  2200              MOVS     r2,#0
0000fe  7820              LDRB     r0,[r4,#0]  ; g_screen_input_int_pad
000100  f7fffffe          BL       hal_gpio_set_pull_state
000104  2100              MOVS     r1,#0
000106  7820              LDRB     r0,[r4,#0]  ; g_screen_input_int_pad
000108  f7fffffe          BL       hal_gpio_ctrl_eint
00010c  2103              MOVS     r1,#3
00010e  7820              LDRB     r0,[r4,#0]  ; g_screen_input_int_pad
000110  f7fffffe          BL       hal_gpio_init_eint
000114  4909              LDR      r1,|L1.316|
000116  7820              LDRB     r0,[r4,#0]  ; g_screen_input_int_pad
000118  f7fffffe          BL       hal_gpio_reg_eint_cb
00011c  2101              MOVS     r1,#1
00011e  7820              LDRB     r0,[r4,#0]  ; g_screen_input_int_pad
000120  f7fffffe          BL       hal_gpio_ctrl_eint
;;;451    			app_tp_screen_int_init();
;;;452    			phone_start_flag=0;
000124  4906              LDR      r1,|L1.320|
000126  2000              MOVS     r0,#0
000128  7008              STRB     r0,[r1,#0]
                  |L1.298|
;;;453    		}
;;;454    	}
;;;455    }
00012a  bd70              POP      {r4-r6,pc}
;;;456    
                          ENDP

                  |L1.300|
                          DCD      screen_reg_int_data
                  |L1.304|
                          DCD      ||.bss||
                  |L1.308|
                          DCD      g_screen_input_int_pad
                  |L1.312|
                          DCD      ||.data||+0x8
                  |L1.316|
                          DCD      app_tp_screen_int_callback
                  |L1.320|
                          DCD      phone_start_flag

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

                  app_tp_I2C_init PROC
;;;160    
;;;161    void app_tp_I2C_init(void)
000000  b510              PUSH     {r4,lr}
;;;162    {
;;;163        hal_i2c_s_init(CHIP_I2C_ADDRESS, CHIP_I2C_ADDR_BITS);
000002  2107              MOVS     r1,#7
000004  2048              MOVS     r0,#0x48
000006  f7fffffe          BL       hal_i2c_s_init
;;;164        hal_i2c_s_set_transfer(app_tp_i2cs_callback);
00000a  4804              LDR      r0,|L2.28|
00000c  f7fffffe          BL       hal_i2c_s_set_transfer
;;;165        hal_i2c_s_nonblocking_read(s_phone_read_buffer, BUFFER_SIZE_MAX); //先配置接收 buffer
000010  21c8              MOVS     r1,#0xc8
000012  4803              LDR      r0,|L2.32|
000014  f7fffffe          BL       hal_i2c_s_nonblocking_read
;;;166    }
000018  bd10              POP      {r4,pc}
;;;167    
                          ENDP

00001a  0000              DCW      0x0000
                  |L2.28|
                          DCD      app_tp_i2cs_callback
                  |L2.32|
                          DCD      ||.bss||+0xc8

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

                  app_tp_i2cs_callback PROC
;;;354    //recieve_num为接收到的指令个数
;;;355    static void app_tp_i2cs_callback(e_i2c_s_int_status int_status, size_t recieve_num)
000000  b51c              PUSH     {r2-r4,lr}
000002  2000              MOVS     r0,#0
000004  9001              STR      r0,[sp,#4]
000006  2900              CMP      r1,#0
;;;356    {
000008  d004              BEQ      |L3.20|
00000a  ab01              ADD      r3,sp,#4
00000c  466a              MOV      r2,sp
00000e  4807              LDR      r0,|L3.44|
000010  f7fffffe          BL       app_tp_phone_analysis_data
                  |L3.20|
000014  21c8              MOVS     r1,#0xc8
000016  4805              LDR      r0,|L3.44|
000018  f7fffffe          BL       app_tp_s_read
00001c  9901              LDR      r1,[sp,#4]
00001e  2900              CMP      r1,#0
000020  d002              BEQ      |L3.40|
000022  9800              LDR      r0,[sp,#0]
000024  f7fffffe          BL       app_tp_s_write
                  |L3.40|
;;;357    #if 0 // 1: test
;;;358    	if (int_status >2)
;;;359    	{
;;;360    		s_phone_read_buffer[2]=int_status;
;;;361    		s_phone_read_buffer[3]=recieve_num;
;;;362    		app_tp_m_write(s_phone_read_buffer, 4);
;;;363    	}
;;;364    #endif
;;;365        app_tp_transfer_phone(recieve_num);
;;;366    }
000028  bd1c              POP      {r2-r4,pc}
;;;367    #endif
                          ENDP

00002a  0000              DCW      0x0000
                  |L3.44|
                          DCD      ||.bss||+0xc8

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

                  app_tp_init PROC
;;;177    **************************************************************************/
;;;178    void app_tp_init(void)
000000  b510              PUSH     {r4,lr}
;;;179    {
;;;180    #ifdef DISABLE_TDDI_I2C_FUNCTION
;;;181        hal_gpio_init_output(g_phone_output_int_pad, IO_LVL_HIGH);    //配置phone报点输出中断IO口
;;;182        hal_gpio_init_output(g_screen_input_rst_pad, IO_LVL_HIGH);	 //配置模组TP RESET
;;;183        
;;;184    	hal_gpio_set_mode(IO_PAD_TD_SPIM_CLK,IO_MODE_I2C1_SCL);
;;;185    	hal_gpio_set_mode(IO_PAD_TD_SPIM_CSN,IO_MODE_I2C1_SDA);
;;;186    
;;;187    	return;
;;;188    #else	
;;;189    	hal_gpio_set_pull_state(IO_PAD_TD_SPIM_CLK, ENABLE, DISABLE);
000002  2200              MOVS     r2,#0
000004  2101              MOVS     r1,#1
000006  2018              MOVS     r0,#0x18
000008  f7fffffe          BL       hal_gpio_set_pull_state
;;;190    	hal_gpio_set_pull_state(IO_PAD_TD_SPIM_CSN, ENABLE, DISABLE);	
00000c  2200              MOVS     r2,#0
00000e  2101              MOVS     r1,#1
000010  2019              MOVS     r0,#0x19
000012  f7fffffe          BL       hal_gpio_set_pull_state
;;;191    #endif
;;;192    
;;;193        app_tp_screen_init();                                        //初始化手机复位的IO口
000016  f7fffffe          BL       app_tp_screen_init
;;;194    //app_tp_screen_int_init();                                         //配置screen中断输入引脚
;;;195    #ifdef G_PHONE_INT_DEFAULT_LOW
;;;196    	hal_gpio_init_output(g_phone_output_int_pad, IO_LVL_LOW);	  //配置phone报点输出中断IO口
00001a  4807              LDR      r0,|L4.56|
00001c  2100              MOVS     r1,#0
00001e  7800              LDRB     r0,[r0,#0]  ; g_phone_output_int_pad
000020  f7fffffe          BL       hal_gpio_init_output
;;;197    #else
;;;198        hal_gpio_init_output(g_phone_output_int_pad, IO_LVL_HIGH);    //配置phone报点输出中断IO口
;;;199    #endif 
;;;200        hal_gpio_init_input(g_screen_input_int_pad);
000024  4805              LDR      r0,|L4.60|
000026  7800              LDRB     r0,[r0,#0]  ; g_screen_input_int_pad
000028  f7fffffe          BL       hal_gpio_init_input
;;;201    //    hal_gpio_init_output(g_screen_input_rst_pad, IO_LVL_HIGH);	 //配置模组TP RESET
;;;202    
;;;203    #if SCREEN_MASTER_TRANSFER_I2C
;;;204        hal_i2c_m_dma_init(SCREEN_I2C_ADDRESS, SCREEN_I2C_ADDR_BITS, I2C_MASTER_SPEED);
00002c  4a04              LDR      r2,|L4.64|
00002e  2107              MOVS     r1,#7
000030  2049              MOVS     r0,#0x49
000032  f7fffffe          BL       hal_i2c_m_dma_init
;;;205    #elif SCREEN_MASTER_TRANSFER_SPI
;;;206        hal_spi_m_dma_init(SPI_MASTER_SPEED, SCREEN_SPI_CPHA, SCREEN_SPI_CPOL);
;;;207    #endif
;;;208    
;;;209    #if PHONE_SLAVE_TRANSFER_I2C
;;;210    //    hal_i2c_s_init(CHIP_I2C_ADDRESS, CHIP_I2C_ADDR_BITS);
;;;211    //    hal_i2c_s_set_transfer(app_tp_i2cs_callback);
;;;212    //    hal_i2c_s_nonblocking_read(s_phone_read_buffer, BUFFER_SIZE_MAX); //先配置接收 buffer
;;;213    #elif PHONE_SLAVE_TRANSFER_SPI
;;;214        hal_spi_slave_init(PHONE_SPI_CPHA, PHONE_SPI_CPOL, true);                                   // 初始化spi以及dma
;;;215        hal_spi_slave_register_callback(app_tp_spis_callback);            // 注册回调
;;;216        hal_spi_slave_auto_transfer_abort();                              // 停止传输
;;;217        hal_spi_slave_flush_fifo();                                       // Flush FIFO
;;;218    
;;;219        /* 每个packet自动接收, circle       mode 为false, 即收到buffer     max size数据后buffer不再更新, packet完成后调用回调    */
;;;220        hal_spi_slave_set_auto_rx_buffer(s_phone_read_buffer, BUFFER_SIZE_MAX, false); // 设置auto   rx buffer
;;;221        hal_spi_slave_set_auto_tx_buffer(phone_reg_const_data[0].write_back, phone_reg_const_data[0].write_back_size, false);   // 配置TX BUFFER
;;;222    
;;;223        hal_spi_slave_enable();                                           // 启动spis
;;;224        hal_spi_slave_auto_transfer_start();                              // 启动rx自动接收
;;;225    #endif
;;;226    }
000036  bd10              POP      {r4,pc}
;;;227    
                          ENDP

                  |L4.56|
                          DCD      g_phone_output_int_pad
                  |L4.60|
                          DCD      g_screen_input_int_pad
                  |L4.64|
                          DCD      0x000c3500

                          AREA ||i.app_tp_m_read||, CODE, READONLY, ALIGN=1

                  app_tp_m_read PROC
;;;292    **************************************************************************/
;;;293    void app_tp_m_read(const uint8_t *cmd, size_t cmd_size, uint8_t *data_buffer, size_t data_size)
000000  b5f8              PUSH     {r3-r7,lr}
;;;294    {
000002  4605              MOV      r5,r0
;;;295    #if SCREEN_MASTER_TRANSFER_I2C
;;;296        uint8_t i = 0;
000004  2400              MOVS     r4,#0
;;;297        uint32_t address = 0;
000006  4620              MOV      r0,r4
000008  e005              B        |L5.22|
                  |L5.10|
;;;298    
;;;299        for (i = 0; i < cmd_size; i++)                          //先将要发送的数据整合到 address
;;;300        {
;;;301            address |= (uint32_t)cmd[i] << i * 8;
00000a  5d2e              LDRB     r6,[r5,r4]
00000c  00e7              LSLS     r7,r4,#3
00000e  40be              LSLS     r6,r6,r7
000010  4330              ORRS     r0,r0,r6
000012  1c64              ADDS     r4,r4,#1
000014  b2e4              UXTB     r4,r4                 ;299
                  |L5.22|
000016  428c              CMP      r4,r1                 ;299
000018  d3f7              BCC      |L5.10|
;;;302        }
;;;303        hal_i2c_m_dma_read(address, cmd_size, data_buffer, data_size);
00001a  f7fffffe          BL       hal_i2c_m_dma_read
;;;304    #elif SCREEN_MASTER_TRANSFER_SPI
;;;305        hal_spi_m_dma_read(cmd, cmd_size, data_buffer, data_size);
;;;306    #endif
;;;307    }
00001e  bdf8              POP      {r3-r7,pc}
;;;308    
                          ENDP


                          AREA ||i.app_tp_m_transfer_complate||, CODE, READONLY, ALIGN=1

                  app_tp_m_transfer_complate PROC
;;;235    **************************************************************************/
;;;236    bool app_tp_m_transfer_complate(void)
000000  b510              PUSH     {r4,lr}
;;;237    {
;;;238    #if SCREEN_MASTER_TRANSFER_I2C
;;;239        return hal_i2c_m_transfer_complate();
000002  f7fffffe          BL       hal_i2c_m_transfer_complate
;;;240    #elif SCREEN_MASTER_TRANSFER_SPI
;;;241        return hal_spi_m_get_transfer_complate();
;;;242    #else
;;;243        return true;
;;;244    #endif
;;;245    }
000006  bd10              POP      {r4,pc}
;;;246    
                          ENDP


                          AREA ||i.app_tp_m_write||, CODE, READONLY, ALIGN=1

                  app_tp_m_write PROC
;;;272    **************************************************************************/
;;;273    void app_tp_m_write(const uint8_t *txbuffer, size_t buffer_size)
000000  b510              PUSH     {r4,lr}
;;;274    {
;;;275    #if SCREEN_MASTER_TRANSFER_I2C
;;;276        hal_i2c_m_dma_write(txbuffer, buffer_size);
000002  f7fffffe          BL       hal_i2c_m_dma_write
;;;277    #elif SCREEN_MASTER_TRANSFER_SPI
;;;278        hal_spi_m_dma_write(txbuffer, buffer_size);
;;;279        s_spim_write = true;
;;;280    #endif
;;;281    }
000006  bd10              POP      {r4,pc}
;;;282    
                          ENDP


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

                  app_tp_phone_clear_reset_on PROC
;;;710    **************************************************************************/
;;;711    void app_tp_phone_clear_reset_on(void)
000000  4901              LDR      r1,|L8.8|
;;;712    {
;;;713        s_phone_reset_flag = false;
000002  2000              MOVS     r0,#0
000004  7088              STRB     r0,[r1,#2]
;;;714    }
000006  4770              BX       lr
;;;715    
                          ENDP

                  |L8.8|
                          DCD      ||.data||

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

                  app_tp_phone_reset_on PROC
;;;698    **************************************************************************/
;;;699    bool app_tp_phone_reset_on(void)
000000  4801              LDR      r0,|L9.8|
;;;700    {
;;;701        return s_phone_reset_flag;
000002  7880              LDRB     r0,[r0,#2]  ; s_phone_reset_flag
;;;702    }
000004  4770              BX       lr
;;;703    
                          ENDP

000006  0000              DCW      0x0000
                  |L9.8|
                          DCD      ||.data||

                          AREA ||i.app_tp_s_read||, CODE, READONLY, ALIGN=1

                  app_tp_s_read PROC
;;;337    **************************************************************************/
;;;338    void app_tp_s_read(void *rxBuffer, size_t data_size)
000000  b510              PUSH     {r4,lr}
;;;339    {
;;;340    #if PHONE_SLAVE_TRANSFER_I2C
;;;341        hal_i2c_s_nonblocking_read(rxBuffer, data_size);
000002  f7fffffe          BL       hal_i2c_s_nonblocking_read
;;;342    #endif
;;;343    }
000006  bd10              POP      {r4,pc}
;;;344    
                          ENDP


                          AREA ||i.app_tp_s_transfer_complate||, CODE, READONLY, ALIGN=1

                  app_tp_s_transfer_complate PROC
;;;253    **************************************************************************/
;;;254    bool app_tp_s_transfer_complate(void)
000000  b510              PUSH     {r4,lr}
;;;255    {
;;;256    #if SCREEN_MASTER_TRANSFER_I2C
;;;257        return hal_i2c_s_write_complate() && hal_i2c_s_read_complate();
000002  f7fffffe          BL       hal_i2c_s_write_complate
000006  2800              CMP      r0,#0
000008  d005              BEQ      |L11.22|
00000a  f7fffffe          BL       hal_i2c_s_read_complate
00000e  2800              CMP      r0,#0
000010  d001              BEQ      |L11.22|
000012  2001              MOVS     r0,#1
;;;258    #elif SCREEN_MASTER_TRANSFER_SPI
;;;259        return !hal_spi_slave_busy();
;;;260    #else
;;;261        return true;
;;;262    #endif
;;;263    }
000014  bd10              POP      {r4,pc}
                  |L11.22|
000016  2000              MOVS     r0,#0                 ;257
000018  bd10              POP      {r4,pc}
;;;264    
                          ENDP


                          AREA ||i.app_tp_s_write||, CODE, READONLY, ALIGN=1

                  app_tp_s_write PROC
;;;316    **************************************************************************/
;;;317    void app_tp_s_write(const uint8_t *txbuffer, size_t buffer_size)
000000  b510              PUSH     {r4,lr}
;;;318    {
;;;319    #if PHONE_SLAVE_TRANSFER_I2C
;;;320        hal_i2c_s_dma_write(txbuffer, buffer_size);
000002  f7fffffe          BL       hal_i2c_s_dma_write
;;;321    #elif PHONE_SLAVE_TRANSFER_SPI
;;;322        //while (hal_spi_slave_busy());
;;;323        hal_spi_slave_auto_transfer_abort();
;;;324        hal_spi_slave_flush_fifo();
;;;325        hal_spi_slave_set_auto_tx_buffer(txbuffer, buffer_size, true);
;;;326        hal_spi_slave_auto_transfer_start();
;;;327    #endif
;;;328    }
000006  bd10              POP      {r4,pc}
;;;329    
                          ENDP


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

                  app_tp_screen_init PROC
;;;151    **************************************************************************/
;;;152    void app_tp_screen_init(void)
000000  b510              PUSH     {r4,lr}
;;;153    {
;;;154        hal_gpio_init_output(g_screen_input_rst_pad, IO_LVL_HIGH);
000002  4c0a              LDR      r4,|L13.44|
000004  2101              MOVS     r1,#1
000006  7820              LDRB     r0,[r4,#0]  ; g_screen_input_rst_pad
000008  f7fffffe          BL       hal_gpio_init_output
;;;155        delayUs(200);
00000c  20c8              MOVS     r0,#0xc8
00000e  f7fffffe          BL       delayUs
;;;156        hal_gpio_set_output_data(g_screen_input_rst_pad, IO_LVL_LOW);
000012  2100              MOVS     r1,#0
000014  7820              LDRB     r0,[r4,#0]  ; g_screen_input_rst_pad
000016  f7fffffe          BL       hal_gpio_set_output_data
;;;157        delayUs(200);
00001a  20c8              MOVS     r0,#0xc8
00001c  f7fffffe          BL       delayUs
;;;158        hal_gpio_set_output_data(g_screen_input_rst_pad, IO_LVL_HIGH);
000020  2101              MOVS     r1,#1
000022  7820              LDRB     r0,[r4,#0]  ; g_screen_input_rst_pad
000024  f7fffffe          BL       hal_gpio_set_output_data
;;;159    }
000028  bd10              POP      {r4,pc}
;;;160    
                          ENDP

00002a  0000              DCW      0x0000
                  |L13.44|
                          DCD      g_screen_input_rst_pad

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

                  app_tp_screen_int_callback PROC
;;;69     **************************************************************************/
;;;70     static void app_tp_screen_int_callback(void *data)
000000  4901              LDR      r1,|L14.8|
;;;71     {
;;;72         s_screen_int_flag = true;
000002  2001              MOVS     r0,#1
000004  7048              STRB     r0,[r1,#1]
;;;73     }
000006  4770              BX       lr
;;;74     
                          ENDP

                  |L14.8|
                          DCD      ||.data||

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

                  app_tp_transfer_screen_const PROC
;;;467    **************************************************************************/
;;;468    static void app_tp_transfer_screen_const(void)
000000  b510              PUSH     {r4,lr}
000002  f7fffffe          BL       hal_i2c_m_transfer_complate
;;;469    {
;;;470    //    static bool    screen_const_transfer_buffer_ready = true;            //发送 buffer 是否已准备好
;;;471    	uint8_t ii;
;;;472    //	uint8_t len=0;
;;;473        /**** 1. 判断当前状态通信已结束, 状态通信已结束，并且开机初始化流程还未走完****/
;;;474    #if 0 // test
;;;475    	uint8_t test_master_read_buffer[10] = {0x08, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19};
;;;476    	uint8_t write_buffer[10] = {0x04, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19};
;;;477    
;;;478    //	for (ii =0x20; ii<0x7F; ii++)
;;;479    	{
;;;480    		//hal_i2c_m_dma_init(ii, SCREEN_I2C_ADDR_BITS);
;;;481    		//delayMs(100);
;;;482    		if (hal_i2c_m_dma_write(write_buffer, 1))
;;;483    		{
;;;484    			//break;
;;;485    		}
;;;486    		while(!hal_i2c_m_transfer_complate());
;;;487    		hal_i2c_m_dma_read(test_master_read_buffer, 1, test_master_read_buffer, 2);
;;;488    	}
;;;489    #endif
;;;490    
;;;491    
;;;492        if (app_tp_m_transfer_complate() && (s_screen_const_transfer_count < screen_reg_start_data_size))
000006  2800              CMP      r0,#0
000008  d012              BEQ      |L15.48|
00000a  4c0a              LDR      r4,|L15.52|
00000c  490a              LDR      r1,|L15.56|
00000e  7960              LDRB     r0,[r4,#5]  ; s_screen_const_transfer_count
000010  7809              LDRB     r1,[r1,#0]  ; screen_reg_start_data_size
000012  4288              CMP      r0,r1
000014  d20c              BCS      |L15.48|
;;;493        {
;;;494            if (s_spim_write)                                                //SPI 写数据后需要把接收FIFO的数据读出，不然会影响下一次读取
000016  7820              LDRB     r0,[r4,#0]  ; s_spim_write
000018  2800              CMP      r0,#0
00001a  d003              BEQ      |L15.36|
;;;495            {
;;;496                hal_spi_m_clear_rxfifo();
00001c  f7fffffe          BL       hal_spi_m_clear_rxfifo
;;;497                s_spim_write = false;
000020  2000              MOVS     r0,#0
000022  7020              STRB     r0,[r4,#0]
                  |L15.36|
;;;498            }
;;;499    
;;;500    	#if 1
;;;501    		
;;;502    //		#ifndef USE_FOR_SUMSUNG_S20
;;;503    //		for (ii =0; ii<screen_reg_start_data_size; ii++)
;;;504    //		{
;;;505    //            if (!screen_reg_start_data[ii].read_flag)     //当前通信不需要读回，直接写
;;;506    //            {
;;;507    //                app_tp_m_write(screen_reg_start_data[ii].buffer, screen_reg_start_data[ii].txbuffer_size);
;;;508    //            }
;;;509    //            else                                             //当前通信需要读回，先写再读
;;;510    //            {
;;;511    //                app_tp_m_read(screen_reg_start_data[ii].buffer, screen_reg_start_data[ii].txbuffer_size, \
;;;512    //                              s_screen_read_bak, screen_reg_start_data[ii].rxbuffer_size);
;;;513    //            }
;;;514    //			while(!hal_i2c_m_transfer_complate());
;;;515    //		}
;;;516    //		#endif
;;;517    		#ifdef USE_FOR_SUMSUNG_S21U
;;;518    		
;;;519    	#if 1	
;;;520    	
;;;521    		if(phone_start_flag==1)
000024  4805              LDR      r0,|L15.60|
000026  7800              LDRB     r0,[r0,#0]  ; phone_start_flag
000028  2801              CMP      r0,#1
00002a  d101              BNE      |L15.48|
;;;522    		{
;;;523    			S20_Start_init();
00002c  f7fffffe          BL       S20_Start_init
                  |L15.48|
;;;524    		}
;;;525    	#endif					
;;;526    	
;;;527    	#if 0//
;;;528    		delayMs(100);
;;;529    		app_tp_m_read(screen_reg_int_data[0].buffer, screen_reg_int_data[0].txbuffer_size, s_screen_number, screen_reg_int_data[0].rxbuffer_size);
;;;530    		while(!hal_i2c_m_transfer_complate());
;;;531    	#endif
;;;532    	#ifdef USE_FOR_SUMSUNG_S20
;;;533    		s_screen_init_complate = true;
;;;534    	#endif
;;;535    		
;;;536    	#else
;;;537            /**** 2. 发送或读取从机数据 ****/
;;;538            if (screen_const_transfer_buffer_ready)
;;;539            {
;;;540                screen_const_transfer_buffer_ready = false;
;;;541                if (!screen_reg_start_data[s_screen_const_transfer_count].read_flag)     //当前通信不需要读回，直接写
;;;542                {
;;;543                    app_tp_m_write(screen_reg_start_data[s_screen_const_transfer_count].buffer, screen_reg_start_data[s_screen_const_transfer_count].txbuffer_size);
;;;544                }
;;;545                else                                                             //当前通信需要读回，先写再读
;;;546                {
;;;547                    app_tp_m_read(screen_reg_start_data[s_screen_const_transfer_count].buffer, screen_reg_start_data[s_screen_const_transfer_count].txbuffer_size, \
;;;548                                  s_screen_number, screen_reg_start_data[s_screen_const_transfer_count].rxbuffer_size);
;;;549                }
;;;550    			s_screen_init_complate = true;
;;;551            }
;;;552            /**** 3. 解析本次通信数据，并准备下一次通信的buffer ****/
;;;553            else
;;;554            {
;;;555                screen_const_transfer_buffer_ready = true;
;;;556                s_screen_const_transfer_count = app_tp_screen_analysis_const(s_screen_const_transfer_count, s_screen_number, \
;;;557                                                screen_reg_start_data[s_screen_const_transfer_count].rxbuffer_size);
;;;558    
;;;559                if (s_screen_const_transfer_count >= screen_reg_start_data_size)
;;;560                {
;;;561                    s_screen_init_complate = true;
;;;562                }
;;;563            }
;;;564    	#endif	
;;;565        }
;;;566    }
000030  bd10              POP      {r4,pc}
;;;567    
                          ENDP

000032  0000              DCW      0x0000
                  |L15.52|
                          DCD      ||.data||
                  |L15.56|
                          DCD      screen_reg_start_data_size
                  |L15.60|
                          DCD      phone_start_flag

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

                  app_tp_transfer_screen_int PROC
;;;595    **************************************************************************/
;;;596    void app_tp_transfer_screen_int(void)
000000  b5f8              PUSH     {r3-r7,lr}
;;;597    {
;;;598    	uint8_t len=0;
;;;599    	uint8_t temp_len=0;
;;;600    	bool screen_gpio_int = false;
;;;601    	static uint8_t screen_int_transfer_count = 0;            //记录当前通信到哪一步
;;;602    	static bool    screen_int_transfer_buffer_ready = true;  //发送 buffer 是否已准备好
;;;603    	//    static uint8_t test_flag = 0;
;;;604    	//	  s_screen_init_complate=false;//为了在线烧录，特意将码片设置为不下发数据，而是FT8719与敦泰的工具通讯
;;;605        if (!s_screen_init_complate)                             //TP 初始化还未完成，则先进行初始化操作
000002  4d43              LDR      r5,|L16.272|
000004  2400              MOVS     r4,#0                 ;598
000006  7928              LDRB     r0,[r5,#4]  ; s_screen_init_complate
000008  4626              MOV      r6,r4                 ;599
00000a  2800              CMP      r0,#0
00000c  d003              BEQ      |L16.22|
;;;606        {
;;;607    
;;;608            app_tp_transfer_screen_const();
;;;609    			
;;;610            return;
;;;611        }
;;;612    
;;;613    
;;;614        /**** 1. 判断 screen 是否发出中断信号 ****/
;;;615        // s_screen_int_flag:           中断信号标志位
;;;616        // app_tp_screen_int_lvl_low :  SPI 长时间通信时，偶尔会出现cs拉高导致通信异常卡死，该标志位用于解决卡死的问题
;;;617        screen_gpio_int = s_screen_int_flag || app_tp_screen_int_lvl_low();
00000e  7868              LDRB     r0,[r5,#1]  ; s_screen_int_flag
000010  2800              CMP      r0,#0
000012  d109              BNE      |L16.40|
000014  e002              B        |L16.28|
                  |L16.22|
000016  f7fffffe          BL       app_tp_transfer_screen_const
                  |L16.26|
;;;618        if (screen_gpio_int)
;;;619        {
;;;620    		s_screen_int_flag = false;
;;;621    
;;;622    		app_tp_m_read(screen_reg_int_data[0].buffer, 1, s_screen_read_buffer, 8);
;;;623    		while(!hal_i2c_m_transfer_complate());
;;;624    		if(s_screen_read_buffer[7]>0)
;;;625    		{
;;;626    			len=s_screen_read_buffer[7]*8;
;;;627    			app_tp_m_read(screen_reg_int_data[0].buffer, 1, &s_screen_read_buffer[8], len);
;;;628    			while(!hal_i2c_m_transfer_complate());
;;;629    			temp_len=len+7;
;;;630    		}
;;;631    		if(s_screen_read_buffer[temp_len]>0)
;;;632    		{
;;;633    			len=s_screen_read_buffer[7]*8;
;;;634    			app_tp_m_read(screen_reg_int_data[0].buffer, 1, &s_screen_read_buffer[temp_len+1], len);
;;;635    			while(!hal_i2c_m_transfer_complate());		
;;;636    		}			
;;;637    		delayUs(100);
;;;638    		
;;;639    		while(!hal_gpio_get_input_data(g_screen_input_int_pad))
;;;640    		{
;;;641    			app_tp_m_read(screen_reg_int_data[0].buffer, 1, s_screen_read_buffer, 8);
;;;642    			while(!hal_i2c_m_transfer_complate());		
;;;643    			delayUs(100);
;;;644    			if(s_screen_read_buffer[7]>0)
;;;645    			{
;;;646    				len=s_screen_read_buffer[7]*8;
;;;647    				app_tp_m_read(screen_reg_int_data[0].buffer, 1, &s_screen_read_buffer[8], len);
;;;648    				while(!hal_i2c_m_transfer_complate());
;;;649    				delayUs(100);			
;;;650    			}				
;;;651    		}		
;;;652            ap_tp_st_touch_error_handler_F3(s_screen_read_buffer);
;;;653            ap_tp_st_touch_error_handler_FF(s_screen_read_buffer);
;;;654            ap_tp_st_touch_scan_point_record_event(s_screen_read_buffer, len + 8);  
;;;655    		screen_int_transfer_buffer_ready = true;
;;;656    		screen_int_transfer_count = app_tp_screen_analysis_int(screen_int_transfer_count, s_screen_read_buffer,screen_reg_int_data[2].rxbuffer_size);
;;;657    		screen_int_transfer_count = 0;
;;;658    		s_screen_int_transfer_status = false;
;;;659        }
;;;660    }
00001a  bdf8              POP      {r3-r7,pc}
                  |L16.28|
00001c  483d              LDR      r0,|L16.276|
00001e  7800              LDRB     r0,[r0,#0]  ; g_screen_input_int_pad
000020  f7fffffe          BL       hal_gpio_get_input_data
000024  2800              CMP      r0,#0
000026  d1f8              BNE      |L16.26|
                  |L16.40|
000028  4939              LDR      r1,|L16.272|
00002a  2000              MOVS     r0,#0                 ;620
00002c  7048              STRB     r0,[r1,#1]            ;620
00002e  4d3a              LDR      r5,|L16.280|
000030  2308              MOVS     r3,#8                 ;622
000032  4a3a              LDR      r2,|L16.284|
000034  2101              MOVS     r1,#1                 ;622
000036  6828              LDR      r0,[r5,#0]            ;622  ; screen_reg_int_data
000038  f7fffffe          BL       app_tp_m_read
                  |L16.60|
00003c  f7fffffe          BL       hal_i2c_m_transfer_complate
000040  2800              CMP      r0,#0                 ;623
000042  d0fb              BEQ      |L16.60|
000044  4f35              LDR      r7,|L16.284|
000046  4638              MOV      r0,r7                 ;622
000048  79f9              LDRB     r1,[r7,#7]            ;624  ; s_screen_read_buffer
00004a  3008              ADDS     r0,r0,#8              ;622
00004c  9000              STR      r0,[sp,#0]            ;624
00004e  2900              CMP      r1,#0                 ;624
000050  d00d              BEQ      |L16.110|
000052  06c8              LSLS     r0,r1,#27             ;624
000054  0e04              LSRS     r4,r0,#24             ;626
000056  4623              MOV      r3,r4                 ;627
000058  6828              LDR      r0,[r5,#0]            ;627  ; screen_reg_int_data
00005a  2101              MOVS     r1,#1                 ;627
00005c  9a00              LDR      r2,[sp,#0]            ;627
00005e  f7fffffe          BL       app_tp_m_read
                  |L16.98|
000062  f7fffffe          BL       hal_i2c_m_transfer_complate
000066  2800              CMP      r0,#0                 ;628
000068  d0fb              BEQ      |L16.98|
00006a  1de0              ADDS     r0,r4,#7              ;629
00006c  b2c6              UXTB     r6,r0                 ;629
                  |L16.110|
00006e  5db8              LDRB     r0,[r7,r6]            ;631
000070  2800              CMP      r0,#0                 ;631
000072  d00d              BEQ      |L16.144|
000074  79f8              LDRB     r0,[r7,#7]            ;633  ; s_screen_read_buffer
000076  19ba              ADDS     r2,r7,r6              ;634
000078  06c0              LSLS     r0,r0,#27             ;633
00007a  0e04              LSRS     r4,r0,#24             ;633
00007c  4623              MOV      r3,r4                 ;634
00007e  2101              MOVS     r1,#1                 ;634
000080  1c52              ADDS     r2,r2,#1              ;634
000082  6828              LDR      r0,[r5,#0]            ;634  ; screen_reg_int_data
000084  f7fffffe          BL       app_tp_m_read
                  |L16.136|
000088  f7fffffe          BL       hal_i2c_m_transfer_complate
00008c  2800              CMP      r0,#0                 ;635
00008e  d0fb              BEQ      |L16.136|
                  |L16.144|
000090  2064              MOVS     r0,#0x64              ;637
000092  f7fffffe          BL       delayUs
000096  4e1f              LDR      r6,|L16.276|
000098  e01e              B        |L16.216|
                  |L16.154|
00009a  2308              MOVS     r3,#8                 ;641
00009c  4a1f              LDR      r2,|L16.284|
00009e  2101              MOVS     r1,#1                 ;641
0000a0  6828              LDR      r0,[r5,#0]            ;641  ; screen_reg_int_data
0000a2  f7fffffe          BL       app_tp_m_read
                  |L16.166|
0000a6  f7fffffe          BL       hal_i2c_m_transfer_complate
0000aa  2800              CMP      r0,#0                 ;642
0000ac  d0fb              BEQ      |L16.166|
0000ae  2064              MOVS     r0,#0x64              ;643
0000b0  f7fffffe          BL       delayUs
0000b4  79f8              LDRB     r0,[r7,#7]            ;644  ; s_screen_read_buffer
0000b6  2800              CMP      r0,#0                 ;644
0000b8  d00e              BEQ      |L16.216|
0000ba  06c0              LSLS     r0,r0,#27             ;646
0000bc  0e04              LSRS     r4,r0,#24             ;646
0000be  4623              MOV      r3,r4                 ;647
0000c0  6828              LDR      r0,[r5,#0]            ;647  ; screen_reg_int_data
0000c2  2101              MOVS     r1,#1                 ;647
0000c4  9a00              LDR      r2,[sp,#0]            ;647
0000c6  f7fffffe          BL       app_tp_m_read
                  |L16.202|
0000ca  f7fffffe          BL       hal_i2c_m_transfer_complate
0000ce  2800              CMP      r0,#0                 ;648
0000d0  d0fb              BEQ      |L16.202|
0000d2  2064              MOVS     r0,#0x64              ;649
0000d4  f7fffffe          BL       delayUs
                  |L16.216|
0000d8  7830              LDRB     r0,[r6,#0]            ;639  ; g_screen_input_int_pad
0000da  f7fffffe          BL       hal_gpio_get_input_data
0000de  2800              CMP      r0,#0                 ;639
0000e0  d0db              BEQ      |L16.154|
0000e2  480e              LDR      r0,|L16.284|
0000e4  f7fffffe          BL       ap_tp_st_touch_error_handler_F3
0000e8  480c              LDR      r0,|L16.284|
0000ea  f7fffffe          BL       ap_tp_st_touch_error_handler_FF
0000ee  3408              ADDS     r4,r4,#8              ;653
0000f0  b2e1              UXTB     r1,r4                 ;654
0000f2  480a              LDR      r0,|L16.284|
0000f4  f7fffffe          BL       ap_tp_st_touch_scan_point_record_event
0000f8  4c05              LDR      r4,|L16.272|
0000fa  2001              MOVS     r0,#1                 ;655
0000fc  71e0              STRB     r0,[r4,#7]            ;655
0000fe  4907              LDR      r1,|L16.284|
000100  79a0              LDRB     r0,[r4,#6]            ;656  ; screen_int_transfer_count
000102  6aaa              LDR      r2,[r5,#0x28]         ;656  ; screen_reg_int_data
000104  f7fffffe          BL       app_tp_screen_analysis_int
000108  2000              MOVS     r0,#0                 ;657
00010a  71a0              STRB     r0,[r4,#6]            ;657
00010c  70e0              STRB     r0,[r4,#3]            ;658
00010e  bdf8              POP      {r3-r7,pc}
;;;661    
                          ENDP

                  |L16.272|
                          DCD      ||.data||
                  |L16.276|
                          DCD      g_screen_input_int_pad
                  |L16.280|
                          DCD      screen_reg_int_data
                  |L16.284|
                          DCD      ||.bss||

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

                  app_tp_transfer_screen_start PROC
;;;575    **************************************************************************/
;;;576    void app_tp_transfer_screen_start(void)
000000  b570              PUSH     {r4-r6,lr}
;;;577    {
;;;578    //    s_screen_init_complate = false;
;;;579        s_screen_const_transfer_count = 0;
000002  4c03              LDR      r4,|L17.16|
000004  2500              MOVS     r5,#0
000006  7165              STRB     r5,[r4,#5]
;;;580        //app_tp_screen_init();
;;;581    #ifndef DISABLE_I2C_INIT_CODE    
;;;582        app_tp_transfer_screen_const();
000008  f7fffffe          BL       app_tp_transfer_screen_const
;;;583    #endif
;;;584    	s_screen_int_flag = false;
00000c  7065              STRB     r5,[r4,#1]
;;;585    }
00000e  bd70              POP      {r4-r6,pc}
;;;586    
                          ENDP

                  |L17.16|
                          DCD      ||.data||

                          AREA ||.bss||, DATA, NOINIT, ALIGN=0

                  s_screen_read_buffer
                          %        200
                  s_phone_read_buffer
                          %        200

                          AREA ||.data||, DATA, ALIGN=0

                  s_spim_write
000000  00                DCB      0x00
                  s_screen_int_flag
000001  00                DCB      0x00
                  s_phone_reset_flag
000002  00                DCB      0x00
                  s_screen_int_transfer_status
000003  00                DCB      0x00
                  s_screen_init_complate
000004  00                DCB      0x00
                  s_screen_const_transfer_count
000005  ff                DCB      0xff
                  screen_int_transfer_count
000006  00                DCB      0x00
                  screen_int_transfer_buffer_ready
000007  01                DCB      0x01
                  MI10_PRO_screen_init_data1
000008  a00001            DCB      0xa0,0x00,0x01
                  MI10_PRO_screen_init_data3
00000b  a2                DCB      0xa2
00000c  0200              DCB      0x02,0x00
                  MI10_PRO_screen_init_data4
00000e  c007              DCB      0xc0,0x07
000010  01                DCB      0x01
                  MI10_PRO_screen_init_data2
000011  a20300            DCB      0xa2,0x03,0x00
000014  000003            DCB      0x00,0x00,0x03

                          AREA ||area_number.22||, DATA, ALIGN=0

                          EXPORTAS ||area_number.22||, ||.data||
                  read_point
000000  00                DCB      0x00

                          AREA ||area_number.23||, DATA, ALIGN=0

                          EXPORTAS ||area_number.23||, ||.data||
                  s_screen_number
000000  0000              DCB      0x00,0x00

                          AREA ||area_number.24||, DATA, ALIGN=0

                          EXPORTAS ||area_number.24||, ||.data||
                  s_screen_temp
000000  0000              DCB      0x00,0x00

;*** Start embedded assembler ***

#line 1 "..\\..\\src\\app\\demo\\app_tp_transfer.c"
	AREA ||.rev16_text||, CODE
	THUMB
	EXPORT |__asm___17_app_tp_transfer_c_e672c05a____REV16|
#line 467 "C:\\Keil_v5\\ARM\\PACK\\ARM\\CMSIS\\5.5.1\\CMSIS\\Core\\Include\\cmsis_armcc.h"
|__asm___17_app_tp_transfer_c_e672c05a____REV16| PROC
#line 468

 rev16 r0, r0
 bx lr
	ENDP
	AREA ||.revsh_text||, CODE
	THUMB
	EXPORT |__asm___17_app_tp_transfer_c_e672c05a____REVSH|
#line 482
|__asm___17_app_tp_transfer_c_e672c05a____REVSH| PROC
#line 483

 revsh r0, r0
 bx lr
	ENDP

;*** End   embedded assembler ***
