From 0b06ceab2202700dc7892f7408e283766481e2b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9C=E8=8B=8F=E9=A3=9E=E6=BA=90=E2=80=9D?= Date: Fri, 14 Jul 2023 14:11:55 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E8=A7=A3=E5=86=B3=E5=81=B6=E5=8F=91?= =?UTF-8?q?=E8=A7=A6=E6=91=B8=E5=8D=A1=E9=97=AE=E9=A2=98=EF=BC=9A=E5=B0=86?= =?UTF-8?q?ST=E8=A7=A6=E6=91=B8=E8=8A=AF=E7=89=87=E7=9A=84=E8=BD=AF?= =?UTF-8?q?=E4=BB=B6=E5=A4=8D=E4=BD=8D=E5=85=A8=E9=83=A8=E6=94=B9=E6=88=90?= =?UTF-8?q?=E7=A1=AC=E4=BB=B6=E5=A4=8D=E4=BD=8D=E3=80=82=202=E3=80=81?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=89=88=E6=9C=AC=E5=8F=B7=E6=89=93=E5=8D=B0?= =?UTF-8?q?=E5=92=8CBIN=E6=96=87=E4=BB=B6=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- project/ISP_368/ISP_368.uvprojx | 7 +- project/ISP_368/Listings/ap_demo.txt | 857 +++++++++--------- project/ISP_368/Listings/app_tp_st_touch.txt | 59 +- project/ISP_368/Listings/app_tp_transfer.txt | 4 +- project/ISP_368/Listings/board.txt | 4 +- project/ISP_368/Listings/main.txt | 4 +- .../Objects/ISP368_N10Lite_CSOT667.bin | Bin 59144 -> 0 bytes src/app/demo/ap_demo.c | 6 +- src/app/demo/app_tp_st_touch.c | 9 +- 9 files changed, 474 insertions(+), 476 deletions(-) delete mode 100644 project/ISP_368/Objects/ISP368_N10Lite_CSOT667.bin diff --git a/project/ISP_368/ISP_368.uvprojx b/project/ISP_368/ISP_368.uvprojx index a3716f2..e6ecd14 100644 --- a/project/ISP_368/ISP_368.uvprojx +++ b/project/ISP_368/ISP_368.uvprojx @@ -50,7 +50,7 @@ 1 .\Objects\ - ISP368_N10Lite_CSOT667 + ISP368_N10Lite_CSOT667_V100_20230714 1 0 1 @@ -459,6 +459,11 @@ 1 ..\..\src\app\demo\app_tp_st_touch.c + + ap_demo_version.txt + 5 + ..\..\src\app\demo\ap_demo_version.txt + diff --git a/project/ISP_368/Listings/ap_demo.txt b/project/ISP_368/Listings/ap_demo.txt index 482a17c..6d1c395 100644 --- a/project/ISP_368/Listings/ap_demo.txt +++ b/project/ISP_368/Listings/ap_demo.txt @@ -1,5 +1,5 @@ ; 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\ap_demo.o --asm_dir=.\Listings\ --list_dir=.\Listings\ --depend=.\objects\ap_demo.d --cpu=Cortex-M0 --apcs=interwork --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..\..\src\app\module_demo -I..\..\src\app\touch -I..\..\src\app\S8 -I..\..\src\app\S9 -I..\CVWL368 -I.\RTE\_ISP_368 -IC:\Users\ASUS\AppData\Local\Arm\Packs\ARM\CMSIS\5.5.1\CMSIS\Core\Include -IC:\Users\ASUS\AppData\Local\Arm\Packs\ARM\CMSIS\5.5.1\Device\ARM\ARMCM0\Include -D__MICROLIB -D__UVISION_VERSION=528 -D_RTE_ -DARMCM0 -DISP_368 --omf_browse=.\objects\ap_demo.crf ..\..\src\app\demo\ap_demo.c] +; commandline ArmCC [--c99 --list --split_sections --debug -c --asm --interleave --gnu -o.\objects\ap_demo.o --asm_dir=.\Listings\ --list_dir=.\Listings\ --depend=.\objects\ap_demo.d --cpu=Cortex-M0 --apcs=interwork --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..\..\src\app\module_demo -I..\..\src\app\touch -I..\..\src\app\S8 -I..\..\src\app\S9 -I..\CVWL368 -I.\RTE\_ISP_368 -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_368 --omf_browse=.\objects\ap_demo.crf ..\..\src\app\demo\ap_demo.c] THUMB AREA ||i.Gpio_swire_output||, CODE, READONLY, ALIGN=1 @@ -417,458 +417,448 @@ AREA ||i.ap_demo||, CODE, READONLY, ALIGN=2 ap_demo PROC -;;;2447 -;;;2448 void ap_demo(void) +;;;2448 +;;;2449 void ap_demo(void) 000000 b51c PUSH {r2-r4,lr} -;;;2449 { -;;;2450 hal_gpio_init_output(IO_PAD_TD_TPRSTN, IO_LVL_HIGH); +;;;2450 { +;;;2451 hal_gpio_init_output(IO_PAD_TD_TPRSTN, IO_LVL_HIGH); 000002 2101 MOVS r1,#1 000004 2008 MOVS r0,#8 000006 f7fffffe BL hal_gpio_init_output -;;;2451 hal_gpio_init_output(IO_PAD_AP_SWIRE, IO_LVL_LOW); +;;;2452 hal_gpio_init_output(IO_PAD_AP_SWIRE, IO_LVL_LOW); 00000a 2100 MOVS r1,#0 00000c 2004 MOVS r0,#4 00000e f7fffffe BL hal_gpio_init_output -;;;2452 hal_gpio_init_output(IO_PAD_PWMEN, IO_LVL_LOW); //AP_SWIRE +;;;2453 hal_gpio_init_output(IO_PAD_PWMEN, IO_LVL_LOW); //AP_SWIRE 000012 2100 MOVS r1,#0 000014 2013 MOVS r0,#0x13 000016 f7fffffe BL hal_gpio_init_output -;;;2453 hal_gpio_init_output(IO_PAD_ADCIN, IO_LVL_LOW); //SWIRE +;;;2454 hal_gpio_init_output(IO_PAD_ADCIN, IO_LVL_LOW); //SWIRE 00001a 2100 MOVS r1,#0 00001c 2014 MOVS r0,#0x14 00001e f7fffffe BL hal_gpio_init_output -;;;2454 -;;;2455 TAU_LOGD("N10Lite CSOT667 [%s %s]", __DATE__, __TIME__); -000022 a070 ADR r0,|L3.484| -000024 9000 STR r0,[sp,#0] -000026 a372 ADR r3,|L3.496| -000028 4a74 LDR r2,|L3.508| -00002a a175 ADR r1,|L3.512| -00002c a078 ADR r0,|L3.528| -00002e f7fffffe BL LOG_printf -;;;2456 /* mipi rx初始化 */ -;;;2457 open_mipi_rx(); -000032 f7fffffe BL open_mipi_rx -;;;2458 delayMs(20); -000036 2014 MOVS r0,#0x14 -000038 f7fffffe BL delayMs -;;;2459 -;;;2460 // hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_HIGH); //LED_ON +;;;2455 +;;;2456 // TAU_LOGD("N10Lite CSOT667 [%s %s]", __DATE__, __TIME__); +;;;2457 TAU_LOGD("N10Lite V100 20230714"); +000022 4a6e LDR r2,|L3.476| +000024 a16e ADR r1,|L3.480| +000026 a072 ADR r0,|L3.496| +000028 f7fffffe BL LOG_printf +;;;2458 /* mipi rx初始化 */ +;;;2459 open_mipi_rx(); +00002c f7fffffe BL open_mipi_rx +;;;2460 delayMs(20); +000030 2014 MOVS r0,#0x14 +000032 f7fffffe BL delayMs ;;;2461 -;;;2462 app_tp_I2C_init(); -00003c f7fffffe BL app_tp_I2C_init -;;;2463 // soft_te_timer_init(); -;;;2464 -;;;2465 /* mipi tx 初始化*/ -;;;2466 init_mipi_tx(); -000040 f7fffffe BL init_mipi_tx -;;;2467 -;;;2468 app_tp_init(); -000044 f7fffffe BL app_tp_init -;;;2469 #ifdef ADD_TIMER3_FUNCTION -;;;2470 tp_sleep_count=0; -000048 487a LDR r0,|L3.564| -00004a 2400 MOVS r4,#0 -00004c 7004 STRB r4,[r0,#0] -;;;2471 tp_sleep_clk_count = 0; -00004e 487a LDR r0,|L3.568| -;;;2472 phone_DisplayOFF_count=1; -000050 4e7a LDR r6,|L3.572| -000052 7004 STRB r4,[r0,#0] ;2471 -000054 2501 MOVS r5,#1 -000056 81f5 STRH r5,[r6,#0xe] -;;;2473 hal_timer_init(TIMER_NUM3); -000058 2003 MOVS r0,#3 -00005a f7fffffe BL hal_timer_init -;;;2474 hal_timer_start(TIMER_NUM3, 10, soft_timer3_cb, NULL); -00005e 2300 MOVS r3,#0 -000060 4a77 LDR r2,|L3.576| -000062 210a MOVS r1,#0xa -000064 2003 MOVS r0,#3 -000066 f7fffffe BL hal_timer_start -;;;2475 #endif -;;;2476 -;;;2477 while (1) -;;;2478 { -;;;2479 if (start_display_on == true ) -;;;2480 { -;;;2481 tx_display_on(); -;;;2482 start_display_on = false; -;;;2483 -;;;2484 #ifndef DISABLE_TDDI_I2C_FUNCTION -;;;2485 /* 与屏的TP 模块通讯并初始化 */ -;;;2486 app_tp_transfer_screen_start(); -;;;2487 #endif -;;;2488 #if ENABLE_TP_WAKE_UP -;;;2489 hal_gpio_set_ap_reset_int(ENABLE, ap_reset_cb, DETECT_RISING_EDGE); -;;;2490 #endif -;;;2491 } -;;;2492 -;;;2493 #if 1//电话熄屏 -;;;2494 if (phone_off_flag==0) -;;;2495 { -;;;2496 if(Flag_blacklight_EN) -00006a 4f76 LDR r7,|L3.580| - |L3.108| -00006c 7830 LDRB r0,[r6,#0] ;2479 ; start_display_on -00006e 2800 CMP r0,#0 ;2479 -000070 d01f BEQ |L3.178| -000072 f7fffffe BL init_panel -000076 4a61 LDR r2,|L3.508| -000078 4973 LDR r1,|L3.584| -00007a 3a4f SUBS r2,r2,#0x4f ;2479 -00007c a073 ADR r0,|L3.588| -00007e f7fffffe BL LOG_printf -000082 70b5 STRB r5,[r6,#2] ;2479 -000084 69f0 LDR r0,[r6,#0x1c] ;2479 ; g_tx_ctrl_handle -000086 f7fffffe BL hal_dsi_tx_ctrl_start -00008a 2014 MOVS r0,#0x14 ;2479 -00008c f7fffffe BL delayMs -000090 2329 MOVS r3,#0x29 ;2479 -000092 2201 MOVS r2,#1 ;2479 -000094 2100 MOVS r1,#0 ;2479 -000096 2005 MOVS r0,#5 ;2479 -000098 f7fffffe BL hal_dsi_tx_ctrl_write_cmd -00009c 200a MOVS r0,#0xa ;2479 -00009e f7fffffe BL delayMs -0000a2 7034 STRB r4,[r6,#0] ;2482 -0000a4 f7fffffe BL app_tp_transfer_screen_start -0000a8 2202 MOVS r2,#2 ;2489 -0000aa 496e LDR r1,|L3.612| -0000ac 2001 MOVS r0,#1 ;2489 -0000ae f7fffffe BL hal_gpio_set_ap_reset_int - |L3.178| -0000b2 79f0 LDRB r0,[r6,#7] ;2494 ; phone_off_flag -0000b4 2800 CMP r0,#0 ;2494 -;;;2497 { -;;;2498 phone_off_flag =1; -;;;2499 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x28, 0x00); -;;;2500 TAU_LOGD("Phone off 28"); -;;;2501 } -;;;2502 } -;;;2503 else -;;;2504 { -;;;2505 if(Flag_blacklight_EN ==0) -0000b6 7838 LDRB r0,[r7,#0] ; Flag_blacklight_EN -0000b8 d002 BEQ |L3.192| -0000ba 2800 CMP r0,#0 -0000bc d00f BEQ |L3.222| -0000be e01c B |L3.250| - |L3.192| -0000c0 2800 CMP r0,#0 ;2496 -0000c2 d01a BEQ |L3.250| -0000c4 71f5 STRB r5,[r6,#7] ;2498 -0000c6 2328 MOVS r3,#0x28 ;2499 -0000c8 2202 MOVS r2,#2 ;2499 -0000ca 2100 MOVS r1,#0 ;2499 -0000cc 2039 MOVS r0,#0x39 ;2499 -0000ce 9400 STR r4,[sp,#0] ;2499 -0000d0 f7fffffe BL hal_dsi_tx_ctrl_write_cmd -0000d4 4a49 LDR r2,|L3.508| -0000d6 a14a ADR r1,|L3.512| -0000d8 322d ADDS r2,r2,#0x2d ;2500 -0000da a063 ADR r0,|L3.616| -0000dc e00b B |L3.246| - |L3.222| -;;;2506 { -;;;2507 phone_off_flag =0; -0000de 71f4 STRB r4,[r6,#7] -;;;2508 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x29, 0x00); -0000e0 2329 MOVS r3,#0x29 -0000e2 2202 MOVS r2,#2 -0000e4 2100 MOVS r1,#0 -0000e6 2039 MOVS r0,#0x39 -0000e8 9400 STR r4,[sp,#0] -0000ea f7fffffe BL hal_dsi_tx_ctrl_write_cmd -;;;2509 TAU_LOGD("Phone off 29"); -0000ee 4a43 LDR r2,|L3.508| -0000f0 a143 ADR r1,|L3.512| -0000f2 3236 ADDS r2,r2,#0x36 -0000f4 a063 ADR r0,|L3.644| - |L3.246| -0000f6 f7fffffe BL LOG_printf - |L3.250| -;;;2510 } -;;;2511 } -;;;2512 #endif -;;;2513 if(phone_DisplayOFF_flag==1) -0000fa 7a70 LDRB r0,[r6,#9] ; phone_DisplayOFF_flag -0000fc 2801 CMP r0,#1 -;;;2514 { -;;;2515 if(phone_DisplayOFF_count>2200) -;;;2516 { -;;;2517 phone_DisplayOFF_count=0; -;;;2518 phone_start_flag=1; -;;;2519 } -;;;2520 } -;;;2521 else -;;;2522 { -;;;2523 if(phone_DisplayOFF_count>30) -0000fe 89f0 LDRH r0,[r6,#0xe] ; phone_DisplayOFF_count -000100 d019 BEQ |L3.310| -000102 281e CMP r0,#0x1e -000104 d905 BLS |L3.274| -;;;2524 { -;;;2525 phone_DisplayOFF_count=0; -000106 81f4 STRH r4,[r6,#0xe] -;;;2526 phone_start_flag=1; -000108 7235 STRB r5,[r6,#8] -;;;2527 hal_gpio_set_output_data(IO_PAD_AP_INT, IO_LVL_LOW);//必须拉低,否则待机或者双击唤醒2~3s无触摸.jason_su -00010a 2100 MOVS r1,#0 -00010c 2002 MOVS r0,#2 -00010e f7fffffe BL hal_gpio_set_output_data - |L3.274| -;;;2528 } -;;;2529 } -;;;2530 -;;;2531 -;;;2532 if (BL_ADJ_flag) -000112 79b0 LDRB r0,[r6,#6] ; BL_ADJ_flag +;;;2462 // hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_HIGH); //LED_ON +;;;2463 +;;;2464 app_tp_I2C_init(); +000036 f7fffffe BL app_tp_I2C_init +;;;2465 // soft_te_timer_init(); +;;;2466 +;;;2467 /* mipi tx 初始化*/ +;;;2468 init_mipi_tx(); +00003a f7fffffe BL init_mipi_tx +;;;2469 +;;;2470 app_tp_init(); +00003e f7fffffe BL app_tp_init +;;;2471 #ifdef ADD_TIMER3_FUNCTION +;;;2472 tp_sleep_count=0; +000042 4874 LDR r0,|L3.532| +000044 2400 MOVS r4,#0 +000046 7004 STRB r4,[r0,#0] +;;;2473 tp_sleep_clk_count = 0; +000048 4873 LDR r0,|L3.536| +;;;2474 phone_DisplayOFF_count=1; +00004a 4e74 LDR r6,|L3.540| +00004c 7004 STRB r4,[r0,#0] ;2473 +00004e 2501 MOVS r5,#1 +000050 81f5 STRH r5,[r6,#0xe] +;;;2475 hal_timer_init(TIMER_NUM3); +000052 2003 MOVS r0,#3 +000054 f7fffffe BL hal_timer_init +;;;2476 hal_timer_start(TIMER_NUM3, 10, soft_timer3_cb, NULL); +000058 2300 MOVS r3,#0 +00005a 4a71 LDR r2,|L3.544| +00005c 210a MOVS r1,#0xa +00005e 2003 MOVS r0,#3 +000060 f7fffffe BL hal_timer_start +;;;2477 #endif +;;;2478 +;;;2479 while (1) +;;;2480 { +;;;2481 if (start_display_on == true ) +;;;2482 { +;;;2483 tx_display_on(); +;;;2484 start_display_on = false; +;;;2485 +;;;2486 #ifndef DISABLE_TDDI_I2C_FUNCTION +;;;2487 /* 与屏的TP 模块通讯并初始化 */ +;;;2488 app_tp_transfer_screen_start(); +;;;2489 #endif +;;;2490 #if ENABLE_TP_WAKE_UP +;;;2491 hal_gpio_set_ap_reset_int(ENABLE, ap_reset_cb, DETECT_RISING_EDGE); +;;;2492 #endif +;;;2493 } +;;;2494 +;;;2495 #if 1//电话熄屏 +;;;2496 if (phone_off_flag==0) +;;;2497 { +;;;2498 if(Flag_blacklight_EN) +000064 4f6f LDR r7,|L3.548| + |L3.102| +000066 7830 LDRB r0,[r6,#0] ;2481 ; start_display_on +000068 2800 CMP r0,#0 ;2481 +00006a d01f BEQ |L3.172| +00006c f7fffffe BL init_panel +000070 4a5a LDR r2,|L3.476| +000072 496d LDR r1,|L3.552| +000074 3a51 SUBS r2,r2,#0x51 ;2481 +000076 a06d ADR r0,|L3.556| +000078 f7fffffe BL LOG_printf +00007c 70b5 STRB r5,[r6,#2] ;2481 +00007e 69f0 LDR r0,[r6,#0x1c] ;2481 ; g_tx_ctrl_handle +000080 f7fffffe BL hal_dsi_tx_ctrl_start +000084 2014 MOVS r0,#0x14 ;2481 +000086 f7fffffe BL delayMs +00008a 2329 MOVS r3,#0x29 ;2481 +00008c 2201 MOVS r2,#1 ;2481 +00008e 2100 MOVS r1,#0 ;2481 +000090 2005 MOVS r0,#5 ;2481 +000092 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +000096 200a MOVS r0,#0xa ;2481 +000098 f7fffffe BL delayMs +00009c 7034 STRB r4,[r6,#0] ;2484 +00009e f7fffffe BL app_tp_transfer_screen_start +0000a2 2202 MOVS r2,#2 ;2491 +0000a4 4967 LDR r1,|L3.580| +0000a6 2001 MOVS r0,#1 ;2491 +0000a8 f7fffffe BL hal_gpio_set_ap_reset_int + |L3.172| +0000ac 79f0 LDRB r0,[r6,#7] ;2496 ; phone_off_flag +0000ae 2800 CMP r0,#0 ;2496 +;;;2499 { +;;;2500 phone_off_flag =1; +;;;2501 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x28, 0x00); +;;;2502 TAU_LOGD("Phone off 28"); +;;;2503 } +;;;2504 } +;;;2505 else +;;;2506 { +;;;2507 if(Flag_blacklight_EN ==0) +0000b0 7838 LDRB r0,[r7,#0] ; Flag_blacklight_EN +0000b2 d002 BEQ |L3.186| +0000b4 2800 CMP r0,#0 +0000b6 d00f BEQ |L3.216| +0000b8 e01c B |L3.244| + |L3.186| +0000ba 2800 CMP r0,#0 ;2498 +0000bc d01a BEQ |L3.244| +0000be 71f5 STRB r5,[r6,#7] ;2500 +0000c0 2328 MOVS r3,#0x28 ;2501 +0000c2 2202 MOVS r2,#2 ;2501 +0000c4 2100 MOVS r1,#0 ;2501 +0000c6 2039 MOVS r0,#0x39 ;2501 +0000c8 9400 STR r4,[sp,#0] ;2501 +0000ca f7fffffe BL hal_dsi_tx_ctrl_write_cmd +0000ce 4a43 LDR r2,|L3.476| +0000d0 a143 ADR r1,|L3.480| +0000d2 322d ADDS r2,r2,#0x2d ;2502 +0000d4 a05c ADR r0,|L3.584| +0000d6 e00b B |L3.240| + |L3.216| +;;;2508 { +;;;2509 phone_off_flag =0; +0000d8 71f4 STRB r4,[r6,#7] +;;;2510 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x29, 0x00); +0000da 2329 MOVS r3,#0x29 +0000dc 2202 MOVS r2,#2 +0000de 2100 MOVS r1,#0 +0000e0 2039 MOVS r0,#0x39 +0000e2 9400 STR r4,[sp,#0] +0000e4 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;2511 TAU_LOGD("Phone off 29"); +0000e8 4a3c LDR r2,|L3.476| +0000ea a13d ADR r1,|L3.480| +0000ec 3236 ADDS r2,r2,#0x36 +0000ee a05d ADR r0,|L3.612| + |L3.240| +0000f0 f7fffffe BL LOG_printf + |L3.244| +;;;2512 } +;;;2513 } +;;;2514 #endif +;;;2515 if(phone_DisplayOFF_flag==1) +0000f4 7a70 LDRB r0,[r6,#9] ; phone_DisplayOFF_flag +0000f6 2801 CMP r0,#1 +;;;2516 { +;;;2517 if(phone_DisplayOFF_count>2200) +;;;2518 { +;;;2519 phone_DisplayOFF_count=0; +;;;2520 phone_start_flag=1; +;;;2521 } +;;;2522 } +;;;2523 else +;;;2524 { +;;;2525 if(phone_DisplayOFF_count>30) +0000f8 89f0 LDRH r0,[r6,#0xe] ; phone_DisplayOFF_count +0000fa d019 BEQ |L3.304| +0000fc 281e CMP r0,#0x1e +0000fe d905 BLS |L3.268| +;;;2526 { +;;;2527 phone_DisplayOFF_count=0; +000100 81f4 STRH r4,[r6,#0xe] +;;;2528 phone_start_flag=1; +000102 7235 STRB r5,[r6,#8] +;;;2529 hal_gpio_set_output_data(IO_PAD_AP_INT, IO_LVL_LOW);//必须拉低,否则待机或者双击唤醒2~3s无触摸.jason_su +000104 2100 MOVS r1,#0 +000106 2002 MOVS r0,#2 +000108 f7fffffe BL hal_gpio_set_output_data + |L3.268| +;;;2530 } +;;;2531 } +;;;2532 +;;;2533 +;;;2534 if (BL_ADJ_flag) +00010c 79b0 LDRB r0,[r6,#6] ; BL_ADJ_flag +00010e 2800 CMP r0,#0 +000110 d02e BEQ |L3.368| +;;;2535 { +;;;2536 if(hbm_mode) //高亮延时 +000112 7ab0 LDRB r0,[r6,#0xa] ; hbm_mode 000114 2800 CMP r0,#0 -000116 d02f BEQ |L3.376| -;;;2533 { -;;;2534 if(hbm_mode) //高亮延时 -000118 7ab0 LDRB r0,[r6,#0xa] ; hbm_mode -00011a 2800 CMP r0,#0 -00011c d015 BEQ |L3.330| -;;;2535 { -;;;2536 if (enter_hbm_mode_cnt <41) -00011e 7930 LDRB r0,[r6,#4] ; enter_hbm_mode_cnt -000120 2829 CMP r0,#0x29 -000122 d229 BCS |L3.376| -000124 1c40 ADDS r0,r0,#1 -;;;2537 { -;;;2538 enter_hbm_mode_cnt++; -000126 7130 STRB r0,[r6,#4] -;;;2539 delayMs(1); -000128 2001 MOVS r0,#1 -00012a f7fffffe BL delayMs -;;;2540 if (enter_hbm_mode_cnt ==40) -00012e 7930 LDRB r0,[r6,#4] ; enter_hbm_mode_cnt -000130 2828 CMP r0,#0x28 -000132 d007 BEQ |L3.324| -000134 e020 B |L3.376| - |L3.310| -000136 4931 LDR r1,|L3.508| -000138 39ff SUBS r1,r1,#0xff ;2515 -00013a 4288 CMP r0,r1 ;2515 -00013c d9e9 BLS |L3.274| -00013e 81f4 STRH r4,[r6,#0xe] ;2517 -000140 7235 STRB r5,[r6,#8] ;2518 -000142 e7e6 B |L3.274| - |L3.324| -;;;2541 { -;;;2542 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x51, 0x07, 0xFF); -000144 21ff MOVS r1,#0xff -000146 2007 MOVS r0,#7 -;;;2543 BL_ADJ_flag=false; -000148 e00d B |L3.358| - |L3.330| -;;;2544 } -;;;2545 } -;;;2546 } -;;;2547 else -;;;2548 { -;;;2549 if (exit_hbm_mode_cnt < 3) //7 -00014a 7970 LDRB r0,[r6,#5] ; exit_hbm_mode_cnt -00014c 2803 CMP r0,#3 -00014e d213 BCS |L3.376| -000150 1c40 ADDS r0,r0,#1 -;;;2550 { -;;;2551 exit_hbm_mode_cnt++; -000152 7170 STRB r0,[r6,#5] -;;;2552 delayMs(1); -000154 2001 MOVS r0,#1 -000156 f7fffffe BL delayMs -;;;2553 if (exit_hbm_mode_cnt==2) -00015a 7970 LDRB r0,[r6,#5] ; exit_hbm_mode_cnt -00015c 2802 CMP r0,#2 -00015e d10b BNE |L3.376| -;;;2554 { -;;;2555 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x51, rd_51_val2>>8, rd_51_val2&0xFF); -000160 8a30 LDRH r0,[r6,#0x10] ; rd_51_val2 -000162 b2c1 UXTB r1,r0 -000164 0a00 LSRS r0,r0,#8 - |L3.358| -000166 9101 STR r1,[sp,#4] -000168 9000 STR r0,[sp,#0] -00016a 2351 MOVS r3,#0x51 -00016c 2203 MOVS r2,#3 -00016e 2100 MOVS r1,#0 -000170 2039 MOVS r0,#0x39 -000172 f7fffffe BL hal_dsi_tx_ctrl_write_cmd -;;;2556 BL_ADJ_flag=false; -000176 71b4 STRB r4,[r6,#6] - |L3.376| -;;;2557 } -;;;2558 } -;;;2559 } -;;;2560 } -;;;2561 -;;;2562 -;;;2563 -;;;2564 #ifndef DISABLE_TDDI_I2C_FUNCTION -;;;2565 /* 等待屏 TP 中断上报做TP 协议转换 */ -;;;2566 app_tp_transfer_screen_int(); -000178 f7fffffe BL app_tp_transfer_screen_int -;;;2567 #endif -;;;2568 tp_heartbeat_exec(); -00017c f7fffffe BL tp_heartbeat_exec -;;;2569 app_tp_calibration_exec(); -000180 f7fffffe BL app_tp_calibration_exec -;;;2570 ap_tp_st_touch_scan_point_record_event_exec(); -000184 f7fffffe BL ap_tp_st_touch_scan_point_record_event_exec - |L3.392| -;;;2571 -;;;2572 while (hal_dsi_rx_ctrl_dsc_async_handler(g_rx_ctrl_handle)); -000188 69b0 LDR r0,[r6,#0x18] ; g_rx_ctrl_handle -00018a f7fffffe BL hal_dsi_rx_ctrl_dsc_async_handler -00018e 2800 CMP r0,#0 -000190 d1fa BNE |L3.392| -;;;2573 -;;;2574 #if ENABLE_TP_WAKE_UP -;;;2575 if (g_need_enter_sleep_mode) -000192 7af0 LDRB r0,[r6,#0xb] ; g_need_enter_sleep_mode -000194 2800 CMP r0,#0 -000196 d100 BNE |L3.410| -000198 e768 B |L3.108| - |L3.410| -;;;2576 { -;;;2577 tp_sleep_in=1; -00019a 4841 LDR r0,|L3.672| -00019c 7005 STRB r5,[r0,#0] -;;;2578 // hal_gpio_set_output_data(IO_PAD_TD_LEDPWM, IO_LVL_HIGH); -;;;2579 -;;;2580 /* FIXME stop more model */ -;;;2581 hal_dsi_tx_ctrl_stop(g_tx_ctrl_handle); -00019e 69f0 LDR r0,[r6,#0x1c] ; g_tx_ctrl_handle -0001a0 f7fffffe BL hal_dsi_tx_ctrl_stop -;;;2582 hal_dsi_tx_ctrl_deinit(g_tx_ctrl_handle); -0001a4 69f0 LDR r0,[r6,#0x1c] ; g_tx_ctrl_handle -0001a6 f7fffffe BL hal_dsi_tx_ctrl_deinit -;;;2583 hal_dsi_rx_ctrl_stop(g_rx_ctrl_handle); -0001aa 69b0 LDR r0,[r6,#0x18] ; g_rx_ctrl_handle -0001ac f7fffffe BL hal_dsi_rx_ctrl_stop -;;;2584 hal_dsi_rx_ctrl_deinit(g_rx_ctrl_handle); -0001b0 69b0 LDR r0,[r6,#0x18] ; g_rx_ctrl_handle -0001b2 f7fffffe BL hal_dsi_rx_ctrl_deinit -;;;2585 -;;;2586 hal_swire_open(DISABLE); -0001b6 2000 MOVS r0,#0 -0001b8 f7fffffe BL hal_swire_open -;;;2587 hal_swire_deinit(); -0001bc f7fffffe BL hal_swire_deinit -;;;2588 hal_timer_stop(SWIRE_TIMER); -0001c0 2001 MOVS r0,#1 -0001c2 f7fffffe BL hal_timer_stop -;;;2589 hal_timer_deinit(SWIRE_TIMER); -0001c6 2001 MOVS r0,#1 -0001c8 f7fffffe BL hal_timer_deinit -;;;2590 -;;;2591 hal_system_set_vcc(false); -0001cc 2000 MOVS r0,#0 -0001ce f7fffffe BL hal_system_set_vcc -;;;2592 TAU_LOGD("disable video path\n"); -0001d2 2251 MOVS r2,#0x51 -0001d4 0152 LSLS r2,r2,#5 -0001d6 a10a ADR r1,|L3.512| -0001d8 a032 ADR r0,|L3.676| -0001da f7fffffe BL LOG_printf -;;;2593 g_need_enter_sleep_mode = false; -0001de 72f4 STRB r4,[r6,#0xb] -0001e0 e744 B |L3.108| -;;;2594 } -;;;2595 #endif -;;;2596 } -;;;2597 } -;;;2598 +000116 d014 BEQ |L3.322| +;;;2537 { +;;;2538 if (enter_hbm_mode_cnt <41) +000118 7930 LDRB r0,[r6,#4] ; enter_hbm_mode_cnt +00011a 2829 CMP r0,#0x29 +00011c d228 BCS |L3.368| +00011e 1c40 ADDS r0,r0,#1 +;;;2539 { +;;;2540 enter_hbm_mode_cnt++; +000120 7130 STRB r0,[r6,#4] +;;;2541 delayMs(1); +000122 2001 MOVS r0,#1 +000124 f7fffffe BL delayMs +;;;2542 if (enter_hbm_mode_cnt ==40) +000128 7930 LDRB r0,[r6,#4] ; enter_hbm_mode_cnt +00012a 2828 CMP r0,#0x28 +00012c d006 BEQ |L3.316| +00012e e01f B |L3.368| + |L3.304| +000130 4953 LDR r1,|L3.640| +000132 4288 CMP r0,r1 ;2517 +000134 d9ea BLS |L3.268| +000136 81f4 STRH r4,[r6,#0xe] ;2519 +000138 7235 STRB r5,[r6,#8] ;2520 +00013a e7e7 B |L3.268| + |L3.316| +;;;2543 { +;;;2544 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x51, 0x07, 0xFF); +00013c 21ff MOVS r1,#0xff +00013e 2007 MOVS r0,#7 +;;;2545 BL_ADJ_flag=false; +000140 e00d B |L3.350| + |L3.322| +;;;2546 } +;;;2547 } +;;;2548 } +;;;2549 else +;;;2550 { +;;;2551 if (exit_hbm_mode_cnt < 3) //7 +000142 7970 LDRB r0,[r6,#5] ; exit_hbm_mode_cnt +000144 2803 CMP r0,#3 +000146 d213 BCS |L3.368| +000148 1c40 ADDS r0,r0,#1 +;;;2552 { +;;;2553 exit_hbm_mode_cnt++; +00014a 7170 STRB r0,[r6,#5] +;;;2554 delayMs(1); +00014c 2001 MOVS r0,#1 +00014e f7fffffe BL delayMs +;;;2555 if (exit_hbm_mode_cnt==2) +000152 7970 LDRB r0,[r6,#5] ; exit_hbm_mode_cnt +000154 2802 CMP r0,#2 +000156 d10b BNE |L3.368| +;;;2556 { +;;;2557 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x51, rd_51_val2>>8, rd_51_val2&0xFF); +000158 8a30 LDRH r0,[r6,#0x10] ; rd_51_val2 +00015a b2c1 UXTB r1,r0 +00015c 0a00 LSRS r0,r0,#8 + |L3.350| +00015e 9101 STR r1,[sp,#4] +000160 9000 STR r0,[sp,#0] +000162 2351 MOVS r3,#0x51 +000164 2203 MOVS r2,#3 +000166 2100 MOVS r1,#0 +000168 2039 MOVS r0,#0x39 +00016a f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;2558 BL_ADJ_flag=false; +00016e 71b4 STRB r4,[r6,#6] + |L3.368| +;;;2559 } +;;;2560 } +;;;2561 } +;;;2562 } +;;;2563 +;;;2564 +;;;2565 +;;;2566 #ifndef DISABLE_TDDI_I2C_FUNCTION +;;;2567 /* 等待屏 TP 中断上报做TP 协议转换 */ +;;;2568 app_tp_transfer_screen_int(); +000170 f7fffffe BL app_tp_transfer_screen_int +;;;2569 #endif +;;;2570 tp_heartbeat_exec(); +000174 f7fffffe BL tp_heartbeat_exec +;;;2571 app_tp_calibration_exec(); +000178 f7fffffe BL app_tp_calibration_exec +;;;2572 ap_tp_st_touch_scan_point_record_event_exec(); +00017c f7fffffe BL ap_tp_st_touch_scan_point_record_event_exec + |L3.384| +;;;2573 +;;;2574 while (hal_dsi_rx_ctrl_dsc_async_handler(g_rx_ctrl_handle)); +000180 69b0 LDR r0,[r6,#0x18] ; g_rx_ctrl_handle +000182 f7fffffe BL hal_dsi_rx_ctrl_dsc_async_handler +000186 2800 CMP r0,#0 +000188 d1fa BNE |L3.384| +;;;2575 +;;;2576 #if ENABLE_TP_WAKE_UP +;;;2577 if (g_need_enter_sleep_mode) +00018a 7af0 LDRB r0,[r6,#0xb] ; g_need_enter_sleep_mode +00018c 2800 CMP r0,#0 +00018e d100 BNE |L3.402| +000190 e769 B |L3.102| + |L3.402| +;;;2578 { +;;;2579 tp_sleep_in=1; +000192 483c LDR r0,|L3.644| +000194 7005 STRB r5,[r0,#0] +;;;2580 // hal_gpio_set_output_data(IO_PAD_TD_LEDPWM, IO_LVL_HIGH); +;;;2581 +;;;2582 /* FIXME stop more model */ +;;;2583 hal_dsi_tx_ctrl_stop(g_tx_ctrl_handle); +000196 69f0 LDR r0,[r6,#0x1c] ; g_tx_ctrl_handle +000198 f7fffffe BL hal_dsi_tx_ctrl_stop +;;;2584 hal_dsi_tx_ctrl_deinit(g_tx_ctrl_handle); +00019c 69f0 LDR r0,[r6,#0x1c] ; g_tx_ctrl_handle +00019e f7fffffe BL hal_dsi_tx_ctrl_deinit +;;;2585 hal_dsi_rx_ctrl_stop(g_rx_ctrl_handle); +0001a2 69b0 LDR r0,[r6,#0x18] ; g_rx_ctrl_handle +0001a4 f7fffffe BL hal_dsi_rx_ctrl_stop +;;;2586 hal_dsi_rx_ctrl_deinit(g_rx_ctrl_handle); +0001a8 69b0 LDR r0,[r6,#0x18] ; g_rx_ctrl_handle +0001aa f7fffffe BL hal_dsi_rx_ctrl_deinit +;;;2587 +;;;2588 hal_swire_open(DISABLE); +0001ae 2000 MOVS r0,#0 +0001b0 f7fffffe BL hal_swire_open +;;;2589 hal_swire_deinit(); +0001b4 f7fffffe BL hal_swire_deinit +;;;2590 hal_timer_stop(SWIRE_TIMER); +0001b8 2001 MOVS r0,#1 +0001ba f7fffffe BL hal_timer_stop +;;;2591 hal_timer_deinit(SWIRE_TIMER); +0001be 2001 MOVS r0,#1 +0001c0 f7fffffe BL hal_timer_deinit +;;;2592 +;;;2593 hal_system_set_vcc(false); +0001c4 2000 MOVS r0,#0 +0001c6 f7fffffe BL hal_system_set_vcc +;;;2594 TAU_LOGD("disable video path\n"); +0001ca 4a04 LDR r2,|L3.476| +0001cc a104 ADR r1,|L3.480| +0001ce 3289 ADDS r2,r2,#0x89 +0001d0 a02d ADR r0,|L3.648| +0001d2 f7fffffe BL LOG_printf +;;;2595 g_need_enter_sleep_mode = false; +0001d6 72f4 STRB r4,[r6,#0xb] +0001d8 e745 B |L3.102| +;;;2596 } +;;;2597 #endif +;;;2598 } +;;;2599 } +;;;2600 ENDP -0001e2 0000 DCW 0x0000 - |L3.484| -0001e4 31313a33 DCB "11:39:01",0 -0001e8 393a3031 -0001ec 00 -0001ed 00 DCB 0 -0001ee 00 DCB 0 -0001ef 00 DCB 0 +0001da 0000 DCW 0x0000 + |L3.476| + DCD 0x00000999 + |L3.480| +0001e0 4e31304c DCB "N10Lite_NT37701",0 +0001e4 6974655f +0001e8 4e543337 +0001ec 37303100 |L3.496| -0001f0 4a756c20 DCB "Jul 6 2023",0 -0001f4 20362032 -0001f8 30323300 - |L3.508| - DCD 0x00000997 - |L3.512| -000200 4e31304c DCB "N10Lite_NT37701",0 -000204 6974655f -000208 4e543337 -00020c 37303100 - |L3.528| -000210 5b25735d DCB "[%s] (%04d) N10Lite CSOT667 [%s %s]",0 -000214 20282530 -000218 34642920 -00021c 4e31304c -000220 69746520 -000224 43534f54 -000228 36363720 -00022c 5b257320 -000230 25735d00 - |L3.564| +0001f0 5b25735d DCB "[%s] (%04d) N10Lite V100 20230714",0 +0001f4 20282530 +0001f8 34642920 +0001fc 4e31304c +000200 69746520 +000204 56313030 +000208 20323032 +00020c 33303731 +000210 3400 +000212 00 DCB 0 +000213 00 DCB 0 + |L3.532| DCD tp_sleep_count - |L3.568| + |L3.536| DCD tp_sleep_clk_count - |L3.572| + |L3.540| DCD ||.data|| - |L3.576| + |L3.544| DCD soft_timer3_cb - |L3.580| + |L3.548| DCD Flag_blacklight_EN - |L3.584| + |L3.552| DCD ||i.init_panel||+0xc8 - |L3.588| -00024c 5b25735d DCB "[%s] (%04d) init code",0 -000250 20282530 -000254 34642920 -000258 696e6974 -00025c 20636f64 -000260 6500 + |L3.556| +00022c 5b25735d DCB "[%s] (%04d) init code",0 +000230 20282530 +000234 34642920 +000238 696e6974 +00023c 20636f64 +000240 6500 +000242 00 DCB 0 +000243 00 DCB 0 + |L3.580| + DCD ap_reset_cb + |L3.584| +000248 5b25735d DCB "[%s] (%04d) Phone off 28",0 +00024c 20282530 +000250 34642920 +000254 50686f6e +000258 65206f66 +00025c 66203238 +000260 00 +000261 00 DCB 0 000262 00 DCB 0 000263 00 DCB 0 |L3.612| - DCD ap_reset_cb - |L3.616| -000268 5b25735d DCB "[%s] (%04d) Phone off 28",0 -00026c 20282530 -000270 34642920 -000274 50686f6e -000278 65206f66 -00027c 66203238 -000280 00 -000281 00 DCB 0 -000282 00 DCB 0 -000283 00 DCB 0 +000264 5b25735d DCB "[%s] (%04d) Phone off 29",0 +000268 20282530 +00026c 34642920 +000270 50686f6e +000274 65206f66 +000278 66203239 +00027c 00 +00027d 00 DCB 0 +00027e 00 DCB 0 +00027f 00 DCB 0 + |L3.640| + DCD 0x00000898 |L3.644| -000284 5b25735d DCB "[%s] (%04d) Phone off 29",0 -000288 20282530 -00028c 34642920 -000290 50686f6e -000294 65206f66 -000298 66203239 -00029c 00 -00029d 00 DCB 0 -00029e 00 DCB 0 -00029f 00 DCB 0 - |L3.672| DCD tp_sleep_in - |L3.676| -0002a4 5b25735d DCB "[%s] (%04d) disable video path\n",0 -0002a8 20282530 -0002ac 34642920 -0002b0 64697361 -0002b4 626c6520 -0002b8 76696465 -0002bc 6f207061 -0002c0 74680a00 + |L3.648| +000288 5b25735d DCB "[%s] (%04d) disable video path\n",0 +00028c 20282530 +000290 34642920 +000294 64697361 +000298 626c6520 +00029c 76696465 +0002a0 6f207061 +0002a4 74680a00 AREA ||i.ap_get_reg_53||, CODE, READONLY, ALIGN=2 @@ -2301,11 +2291,12 @@ ;;;2438 { ;;;2439 TAU_LOGD("hb..."); ;;;2440 s_heartbeat = 0; -;;;2441 ap_tp_st_touch_software_reset(); -;;;2442 } -;;;2443 } -;;;2444 } -;;;2445 } +;;;2441 // ap_tp_st_touch_software_reset(); +;;;2442 ap_tp_st_touch_hardware_reset(); +;;;2443 } +;;;2444 } +;;;2445 } +;;;2446 } 00001a bd70 POP {r4-r6,pc} |L19.28| 00001c 4909 LDR r1,|L19.68| @@ -2320,10 +2311,10 @@ 00002c a107 ADR r1,|L19.76| 00002e a00b ADR r0,|L19.92| 000030 f7fffffe BL LOG_printf -000034 6265 STR r5,[r4,#0x24] ;2441 ; s_heartbeat -000036 f7fffffe BL ap_tp_st_touch_software_reset +000034 6265 STR r5,[r4,#0x24] ;2442 ; s_heartbeat +000036 f7fffffe BL ap_tp_st_touch_hardware_reset 00003a bd70 POP {r4-r6,pc} -;;;2446 +;;;2447 ENDP |L19.60| @@ -4790,7 +4781,7 @@ AREA ||.rev16_text||, CODE THUMB EXPORT |__asm___9_ap_demo_c_c64640cd____REV16| -#line 467 "C:\\Users\\ASUS\\AppData\\Local\\Arm\\Packs\\ARM\\CMSIS\\5.5.1\\CMSIS\\Core\\Include\\cmsis_armcc.h" +#line 467 "C:\\Keil_v5\\ARM\\PACK\\ARM\\CMSIS\\5.5.1\\CMSIS\\Core\\Include\\cmsis_armcc.h" |__asm___9_ap_demo_c_c64640cd____REV16| PROC #line 468 diff --git a/project/ISP_368/Listings/app_tp_st_touch.txt b/project/ISP_368/Listings/app_tp_st_touch.txt index 9cb5b94..3cb7a30 100644 --- a/project/ISP_368/Listings/app_tp_st_touch.txt +++ b/project/ISP_368/Listings/app_tp_st_touch.txt @@ -1,5 +1,5 @@ ; 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_st_touch.o --asm_dir=.\Listings\ --list_dir=.\Listings\ --depend=.\objects\app_tp_st_touch.d --cpu=Cortex-M0 --apcs=interwork --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..\..\src\app\module_demo -I..\..\src\app\touch -I..\..\src\app\S8 -I..\..\src\app\S9 -I..\CVWL368 -I.\RTE\_ISP_368 -IC:\Users\ASUS\AppData\Local\Arm\Packs\ARM\CMSIS\5.5.1\CMSIS\Core\Include -IC:\Users\ASUS\AppData\Local\Arm\Packs\ARM\CMSIS\5.5.1\Device\ARM\ARMCM0\Include -D__MICROLIB -D__UVISION_VERSION=528 -D_RTE_ -DARMCM0 -DISP_368 --omf_browse=.\objects\app_tp_st_touch.crf ..\..\src\app\demo\app_tp_st_touch.c] +; commandline ArmCC [--c99 --list --split_sections --debug -c --asm --interleave --gnu -o.\objects\app_tp_st_touch.o --asm_dir=.\Listings\ --list_dir=.\Listings\ --depend=.\objects\app_tp_st_touch.d --cpu=Cortex-M0 --apcs=interwork --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..\..\src\app\module_demo -I..\..\src\app\touch -I..\..\src\app\S8 -I..\..\src\app\S9 -I..\CVWL368 -I.\RTE\_ISP_368 -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_368 --omf_browse=.\objects\app_tp_st_touch.crf ..\..\src\app\demo\app_tp_st_touch.c] THUMB AREA ||i.CRC16_2||, CODE, READONLY, ALIGN=2 @@ -405,36 +405,32 @@ 000000 b510 PUSH {r4,lr} ;;;543 { ;;;544 // 收到 TP 异常回复 0xF3 0x02 0x00 0x00 0x00 0x00 0x00 0x00 -;;;545 if(screendata[0] == 0xF3 && screendata[1] == 0x02 && screendata[2] == 0x00) -000002 7801 LDRB r1,[r0,#0] -000004 29f3 CMP r1,#0xf3 -000006 d107 BNE |L5.24| -000008 7841 LDRB r1,[r0,#1] -00000a 2902 CMP r1,#2 -00000c d104 BNE |L5.24| -00000e 7880 LDRB r0,[r0,#2] -000010 2800 CMP r0,#0 -000012 d101 BNE |L5.24| -;;;546 { -;;;547 ap_tp_st_touch_software_reset(); -000014 f7fffffe BL ap_tp_st_touch_software_reset - |L5.24| -;;;548 } -;;;549 } -000018 bd10 POP {r4,pc} -;;;550 +;;;545 // if(screendata[0] == 0xF3 && screendata[1] == 0x02 && screendata[2] == 0x00) +;;;546 if(screendata[0] == 0xF3) +000002 7800 LDRB r0,[r0,#0] +000004 28f3 CMP r0,#0xf3 +000006 d101 BNE |L5.12| +;;;547 { +;;;548 // ap_tp_st_touch_software_reset(); +;;;549 ap_tp_st_touch_hardware_reset(); +000008 f7fffffe BL ap_tp_st_touch_hardware_reset + |L5.12| +;;;550 } +;;;551 } +00000c bd10 POP {r4,pc} +;;;552 ENDP AREA ||i.ap_tp_st_touch_error_handler_FF||, CODE, READONLY, ALIGN=1 ap_tp_st_touch_error_handler_FF PROC -;;;558 -;;;559 void ap_tp_st_touch_error_handler_FF(uint8_t* screendata) +;;;560 +;;;561 void ap_tp_st_touch_error_handler_FF(uint8_t* screendata) 000000 b510 PUSH {r4,lr} -;;;560 { -;;;561 // 收到 TP 异常回复 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF -;;;562 if(screendata[1] == 0xFF && screendata[2] == 0xFF&& screendata[3] == 0xFF&&screendata[4] == 0xFF) +;;;562 { +;;;563 // 收到 TP 异常回复 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF +;;;564 if(screendata[1] == 0xFF && screendata[2] == 0xFF&& screendata[3] == 0xFF&&screendata[4] == 0xFF) 000002 7841 LDRB r1,[r0,#1] 000004 29ff CMP r1,#0xff 000006 d10a BNE |L6.30| @@ -447,14 +443,15 @@ 000014 7900 LDRB r0,[r0,#4] 000016 28ff CMP r0,#0xff 000018 d101 BNE |L6.30| -;;;563 { -;;;564 ap_tp_st_touch_software_reset(); -00001a f7fffffe BL ap_tp_st_touch_software_reset +;;;565 { +;;;566 // ap_tp_st_touch_software_reset(); +;;;567 ap_tp_st_touch_hardware_reset(); +00001a f7fffffe BL ap_tp_st_touch_hardware_reset |L6.30| -;;;565 } -;;;566 } +;;;568 } +;;;569 } 00001e bd10 POP {r4,pc} -;;;567 +;;;570 ENDP @@ -1259,7 +1256,7 @@ AREA ||.rev16_text||, CODE THUMB EXPORT |__asm___17_app_tp_st_touch_c_0c52f749____REV16| -#line 467 "C:\\Users\\ASUS\\AppData\\Local\\Arm\\Packs\\ARM\\CMSIS\\5.5.1\\CMSIS\\Core\\Include\\cmsis_armcc.h" +#line 467 "C:\\Keil_v5\\ARM\\PACK\\ARM\\CMSIS\\5.5.1\\CMSIS\\Core\\Include\\cmsis_armcc.h" |__asm___17_app_tp_st_touch_c_0c52f749____REV16| PROC #line 468 diff --git a/project/ISP_368/Listings/app_tp_transfer.txt b/project/ISP_368/Listings/app_tp_transfer.txt index e90fe17..8c4c7d6 100644 --- a/project/ISP_368/Listings/app_tp_transfer.txt +++ b/project/ISP_368/Listings/app_tp_transfer.txt @@ -1,5 +1,5 @@ ; 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 --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..\..\src\app\module_demo -I..\..\src\app\touch -I..\..\src\app\S8 -I..\..\src\app\S9 -I..\CVWL368 -I.\RTE\_ISP_368 -IC:\Users\ASUS\AppData\Local\Arm\Packs\ARM\CMSIS\5.5.1\CMSIS\Core\Include -IC:\Users\ASUS\AppData\Local\Arm\Packs\ARM\CMSIS\5.5.1\Device\ARM\ARMCM0\Include -D__MICROLIB -D__UVISION_VERSION=528 -D_RTE_ -DARMCM0 -DISP_368 --omf_browse=.\objects\app_tp_transfer.crf ..\..\src\app\demo\app_tp_transfer.c] +; 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 --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..\..\src\app\module_demo -I..\..\src\app\touch -I..\..\src\app\S8 -I..\..\src\app\S9 -I..\CVWL368 -I.\RTE\_ISP_368 -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_368 --omf_browse=.\objects\app_tp_transfer.crf ..\..\src\app\demo\app_tp_transfer.c] THUMB AREA ||i.S20_Start_init||, CODE, READONLY, ALIGN=2 @@ -1276,7 +1276,7 @@ AREA ||.rev16_text||, CODE THUMB EXPORT |__asm___17_app_tp_transfer_c_e672c05a____REV16| -#line 467 "C:\\Users\\ASUS\\AppData\\Local\\Arm\\Packs\\ARM\\CMSIS\\5.5.1\\CMSIS\\Core\\Include\\cmsis_armcc.h" +#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 diff --git a/project/ISP_368/Listings/board.txt b/project/ISP_368/Listings/board.txt index 70b4711..d775036 100644 --- a/project/ISP_368/Listings/board.txt +++ b/project/ISP_368/Listings/board.txt @@ -1,5 +1,5 @@ ; 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\board.o --asm_dir=.\Listings\ --list_dir=.\Listings\ --depend=.\objects\board.d --cpu=Cortex-M0 --apcs=interwork --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..\..\src\app\module_demo -I..\..\src\app\touch -I..\..\src\app\S8 -I..\..\src\app\S9 -I..\CVWL368 -I.\RTE\_ISP_368 -IC:\Users\ASUS\AppData\Local\Arm\Packs\ARM\CMSIS\5.5.1\CMSIS\Core\Include -IC:\Users\ASUS\AppData\Local\Arm\Packs\ARM\CMSIS\5.5.1\Device\ARM\ARMCM0\Include -D__MICROLIB -D__UVISION_VERSION=528 -D_RTE_ -DARMCM0 -DISP_368 --omf_browse=.\objects\board.crf ..\..\src\board\board.c] +; commandline ArmCC [--c99 --list --split_sections --debug -c --asm --interleave --gnu -o.\objects\board.o --asm_dir=.\Listings\ --list_dir=.\Listings\ --depend=.\objects\board.d --cpu=Cortex-M0 --apcs=interwork --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..\..\src\app\module_demo -I..\..\src\app\touch -I..\..\src\app\S8 -I..\..\src\app\S9 -I..\CVWL368 -I.\RTE\_ISP_368 -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_368 --omf_browse=.\objects\board.crf ..\..\src\board\board.c] THUMB AREA ||i.board_Init||, CODE, READONLY, ALIGN=2 @@ -42,7 +42,7 @@ AREA ||.rev16_text||, CODE THUMB EXPORT |__asm___7_board_c_bcd01269____REV16| -#line 467 "C:\\Users\\ASUS\\AppData\\Local\\Arm\\Packs\\ARM\\CMSIS\\5.5.1\\CMSIS\\Core\\Include\\cmsis_armcc.h" +#line 467 "C:\\Keil_v5\\ARM\\PACK\\ARM\\CMSIS\\5.5.1\\CMSIS\\Core\\Include\\cmsis_armcc.h" |__asm___7_board_c_bcd01269____REV16| PROC #line 468 diff --git a/project/ISP_368/Listings/main.txt b/project/ISP_368/Listings/main.txt index de2f410..013d351 100644 --- a/project/ISP_368/Listings/main.txt +++ b/project/ISP_368/Listings/main.txt @@ -1,5 +1,5 @@ ; 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\main.o --asm_dir=.\Listings\ --list_dir=.\Listings\ --depend=.\objects\main.d --cpu=Cortex-M0 --apcs=interwork --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..\..\src\app\module_demo -I..\..\src\app\touch -I..\..\src\app\S8 -I..\..\src\app\S9 -I..\CVWL368 -I.\RTE\_ISP_368 -IC:\Users\ASUS\AppData\Local\Arm\Packs\ARM\CMSIS\5.5.1\CMSIS\Core\Include -IC:\Users\ASUS\AppData\Local\Arm\Packs\ARM\CMSIS\5.5.1\Device\ARM\ARMCM0\Include -D__MICROLIB -D__UVISION_VERSION=528 -D_RTE_ -DARMCM0 -DISP_368 --omf_browse=.\objects\main.crf ..\..\src\app\main.c] +; commandline ArmCC [--c99 --list --split_sections --debug -c --asm --interleave --gnu -o.\objects\main.o --asm_dir=.\Listings\ --list_dir=.\Listings\ --depend=.\objects\main.d --cpu=Cortex-M0 --apcs=interwork --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..\..\src\app\module_demo -I..\..\src\app\touch -I..\..\src\app\S8 -I..\..\src\app\S9 -I..\CVWL368 -I.\RTE\_ISP_368 -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_368 --omf_browse=.\objects\main.crf ..\..\src\app\main.c] THUMB AREA ||i.main||, CODE, READONLY, ALIGN=1 @@ -32,7 +32,7 @@ AREA ||.rev16_text||, CODE THUMB EXPORT |__asm___6_main_c_main____REV16| -#line 467 "C:\\Users\\ASUS\\AppData\\Local\\Arm\\Packs\\ARM\\CMSIS\\5.5.1\\CMSIS\\Core\\Include\\cmsis_armcc.h" +#line 467 "C:\\Keil_v5\\ARM\\PACK\\ARM\\CMSIS\\5.5.1\\CMSIS\\Core\\Include\\cmsis_armcc.h" |__asm___6_main_c_main____REV16| PROC #line 468 diff --git a/project/ISP_368/Objects/ISP368_N10Lite_CSOT667.bin b/project/ISP_368/Objects/ISP368_N10Lite_CSOT667.bin deleted file mode 100644 index a78563a1dba0b0c4aa0ab78a84f30a3eca7b8b29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59144 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

mgiwaD9a9S6nf`or5c|J7q!;QVt$_I6r9* zR)A=t?6%hR(af2tE!5eT-EyY!>rcHPuX8}iL-($nX+mMH08mw zS{9C5*bO_$R2ys-MZHKSaPBEO=^dJ zZ|IfMwj(K(DckyiyL>j71&L2ce<8#}Ub(QFWu(KJ2Dz7ZuW&*a39E~on@;L32L9^K zcJ<3X%M8cqU_c&vC4;@ZZlNrsG9# z#G3NL>N(Tt%*N`4k+lD`gJT`Kw>_v2!wH%s>i{o-Z-=^)apo|ULzliY+)%aNc}e;q zb{Qu(mwGr4gQb2hy>z~qAuK9ev})1*Mcgg1sAs%8=91dNyQjolas*f6)RnN`&!@lW zG+&_cs3a;M5QATOTiqWi_@Qz-x0Q@)a2&te{uhWhdl2VOOCd|!84Evytk*Rl~i z$F%hLD}IICb!G@}-fiGx`?Y%96zi0beoZKxJ{)IBnHp%^ zA%2v;@!!s9o;dMx?aCTV=BG2rW7lJT$OddHSGKskvDUhR*JmpA%*+NtCpX{jPlBX2 zGatJ^^HcnZ`N{C>1HWGWUilaKGxEy-EAbcSFYxE&&%+2sRsi>7H&|vqYx%9|cvJnw zO#4skTTKOS)^ohyEMv-b*d3AbFuNphN$j-oeSO^hh4JN38m| zb$R7&+v7T4EaI)k_oYm;17U*LhZ4o)?{ z7<6rC+q`Ssv5uNl%#x0Y{aFC#yl6_`Ku^4>?j!cnv@J&L{~VcEZ8xq3I+_vv%N zKiUAUnmv2&)QCuG%Ay%FFfTO1U=I1mu*MOqkpm$i$Re3l&D@(87{X4>AO9G>rfTXe z97^oP$*fVlWXt+baYxYJgy7SrF3_mInY(BqLgEM6&mVC|!uJqE!8L?G-CXt==V+cg zmB0@<+qv+AmYz=-l#$@>BxynDr^dOjG1d)g{F+mp%yOU~Q4sXA%*)5K++M~UZ)Q7Z zRUMGTh%EL{(@d{cn79l(^jj`pc6%vK{#oe7T()E(ms!Lj;jjNg_`8=<_#;axyl(-8 zhmGw_mN(Z=Zf;pAEZ}dlbIV=JvCr6UbN{ZV!=m3XtUseog&NS`(b)-1>(Cp(KXmB- z1CF&r_jL-ezc$o8aC|!E#Uz*J!66gm4kOe(#(jC`58#PA^wpjJX}us|_cF;9XNL9a zl<^4#uJapVCk`HYkRYwI8Uz4g-S zWZDzvWC7sIiEVLuD`2q^S{+D@Gsqi!V|tLJGhKR`p>M&#vN+E4$@!`UI!mC1+85E% zwtE|R#5(YVzw1wSYrJS3HNGy-axBArVdaI}T;(S)w{mP1 znpN3s-h(� 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 Bl2rfz diff --git a/src/app/demo/ap_demo.c b/src/app/demo/ap_demo.c index e51d513..e6b1ddf 100644 --- a/src/app/demo/ap_demo.c +++ b/src/app/demo/ap_demo.c @@ -2438,7 +2438,8 @@ void tp_heartbeat_exec(void) { TAU_LOGD("hb..."); s_heartbeat = 0; - ap_tp_st_touch_software_reset(); + // ap_tp_st_touch_software_reset(); + ap_tp_st_touch_hardware_reset(); } } } @@ -2452,7 +2453,8 @@ void ap_demo(void) hal_gpio_init_output(IO_PAD_PWMEN, IO_LVL_LOW); //AP_SWIRE hal_gpio_init_output(IO_PAD_ADCIN, IO_LVL_LOW); //SWIRE - TAU_LOGD("N10Lite CSOT667 [%s %s]", __DATE__, __TIME__); +// TAU_LOGD("N10Lite CSOT667 [%s %s]", __DATE__, __TIME__); + TAU_LOGD("N10Lite V100 20230714"); /* mipi rx初始化 */ open_mipi_rx(); delayMs(20); diff --git a/src/app/demo/app_tp_st_touch.c b/src/app/demo/app_tp_st_touch.c index c050bcd..c3b10ee 100644 --- a/src/app/demo/app_tp_st_touch.c +++ b/src/app/demo/app_tp_st_touch.c @@ -542,9 +542,11 @@ void ap_tp_st_touch_scan_point_record_event_exec(void) void ap_tp_st_touch_error_handler_F3(uint8_t* screendata) { // 收到 TP 异常回复 0xF3 0x02 0x00 0x00 0x00 0x00 0x00 0x00 - if(screendata[0] == 0xF3 && screendata[1] == 0x02 && screendata[2] == 0x00) +// if(screendata[0] == 0xF3 && screendata[1] == 0x02 && screendata[2] == 0x00) + if(screendata[0] == 0xF3) { - ap_tp_st_touch_software_reset(); +// ap_tp_st_touch_software_reset(); + ap_tp_st_touch_hardware_reset(); } } @@ -561,7 +563,8 @@ void ap_tp_st_touch_error_handler_FF(uint8_t* screendata) // 收到 TP 异常回复 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF if(screendata[1] == 0xFF && screendata[2] == 0xFF&& screendata[3] == 0xFF&&screendata[4] == 0xFF) { - ap_tp_st_touch_software_reset(); +// ap_tp_st_touch_software_reset(); + ap_tp_st_touch_hardware_reset(); } }