From 92be179228a45c87b20e89e408994d9cc23321ce 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: Mon, 29 May 2023 09:58:32 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E9=A6=96=E6=AC=A1=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=EF=BC=8C=E5=B7=B2=E9=87=8F=E4=BA=A7=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 85 + project/ISP_368/ISP_368.uvprojx | 471 ++ .../Listings/ISP368_Mi8SE_20230523.map | 5217 ++++++++++++++++ project/ISP_368/Listings/ap_demo.txt | 5299 +++++++++++++++++ .../Listings/app_tp_for_custom_mi8se.txt | 3284 ++++++++++ project/ISP_368/Listings/app_tp_transfer.txt | 1198 ++++ project/ISP_368/Listings/board.txt | 63 + project/ISP_368/Listings/main.txt | 102 + .../ISP_368/Objects/ISP368_Mi8SE_20230523.bin | Bin 0 -> 49452 bytes project/ISP_368/RTE/_ISP_368/RTE_Components.h | 21 + project/请先读我(已更新20221018).txt | 9 + src/app/ap_demo/ap_demo.c | 1630 +++++ src/app/ap_demo/ap_demo.h | 23 + src/app/ap_demo/app_tp_for_custom_mi8se.c | 1151 ++++ src/app/ap_demo/app_tp_for_custom_mi8se.h | 128 + .../app_tp_phone_transfer_data_mi8se.h | 225 + .../app_tp_screen_transfer_data_mi8se.h | 23 + src/app/ap_demo/app_tp_transfer.c | 830 +++ src/app/ap_demo/app_tp_transfer.h | 110 + src/app/ap_demo/demo_version.txt | 38 + src/app/main.c | 63 + src/app/test_cfg_global.h | 100 + src/board/board.c | 26 + src/board/board.h | 16 + src/board/startup/startup_ARMCM0.s | 226 + src/common/tau_common.h | 216 + src/common/tau_delay.h | 34 + src/common/tau_device_datatype.h | 167 + src/common/tau_dsi_datatype.h | 374 ++ src/common/tau_log.h | 83 + src/common/tau_operations.h | 229 + src/sdk/CVWL308/lib/CVWL308.lib | Bin 0 -> 643866 bytes src/sdk/CVWL368/lib/CVWL368.lib | Bin 0 -> 659364 bytes src/sdk/CVWL518/lib/CVWL518.lib | Bin 0 -> 643274 bytes src/sdk/CVWL518T/lib/CVWL518T.lib | Bin 0 -> 643342 bytes src/sdk/CVWL568/lib/CVWL568.lib | Bin 0 -> 659092 bytes src/sdk/CVWL568T/lib/CVWL568T.lib | Bin 0 -> 659180 bytes src/sdk/include/M0/ArmCM0.h | 211 + src/sdk/include/hal_dsi_rx_ctrl.h | 557 ++ src/sdk/include/hal_dsi_tx_ctrl.h | 284 + src/sdk/include/hal_gpio.h | 537 ++ src/sdk/include/hal_i2c_master.h | 80 + src/sdk/include/hal_i2c_slave.h | 179 + src/sdk/include/hal_pwm.h | 219 + src/sdk/include/hal_spi_master.h | 89 + src/sdk/include/hal_spi_slave.h | 181 + src/sdk/include/hal_swire.h | 75 + src/sdk/include/hal_system.h | 167 + src/sdk/include/hal_timer.h | 92 + src/sdk/include/hal_uart.h | 131 + src/sdk/include/hal_wdg.h | 94 + src/sdk/sdk_version.h | 1 + 52 files changed, 24338 insertions(+) create mode 100644 .gitignore create mode 100644 project/ISP_368/ISP_368.uvprojx create mode 100644 project/ISP_368/Listings/ISP368_Mi8SE_20230523.map create mode 100644 project/ISP_368/Listings/ap_demo.txt create mode 100644 project/ISP_368/Listings/app_tp_for_custom_mi8se.txt create mode 100644 project/ISP_368/Listings/app_tp_transfer.txt create mode 100644 project/ISP_368/Listings/board.txt create mode 100644 project/ISP_368/Listings/main.txt create mode 100644 project/ISP_368/Objects/ISP368_Mi8SE_20230523.bin create mode 100644 project/ISP_368/RTE/_ISP_368/RTE_Components.h create mode 100644 project/请先读我(已更新20221018).txt create mode 100644 src/app/ap_demo/ap_demo.c create mode 100644 src/app/ap_demo/ap_demo.h create mode 100644 src/app/ap_demo/app_tp_for_custom_mi8se.c create mode 100644 src/app/ap_demo/app_tp_for_custom_mi8se.h create mode 100644 src/app/ap_demo/app_tp_phone_transfer_data_mi8se.h create mode 100644 src/app/ap_demo/app_tp_screen_transfer_data_mi8se.h create mode 100644 src/app/ap_demo/app_tp_transfer.c create mode 100644 src/app/ap_demo/app_tp_transfer.h create mode 100644 src/app/ap_demo/demo_version.txt create mode 100644 src/app/main.c create mode 100644 src/app/test_cfg_global.h create mode 100644 src/board/board.c create mode 100644 src/board/board.h create mode 100644 src/board/startup/startup_ARMCM0.s create mode 100644 src/common/tau_common.h create mode 100644 src/common/tau_delay.h create mode 100644 src/common/tau_device_datatype.h create mode 100644 src/common/tau_dsi_datatype.h create mode 100644 src/common/tau_log.h create mode 100644 src/common/tau_operations.h create mode 100644 src/sdk/CVWL308/lib/CVWL308.lib create mode 100644 src/sdk/CVWL368/lib/CVWL368.lib create mode 100644 src/sdk/CVWL518/lib/CVWL518.lib create mode 100644 src/sdk/CVWL518T/lib/CVWL518T.lib create mode 100644 src/sdk/CVWL568/lib/CVWL568.lib create mode 100644 src/sdk/CVWL568T/lib/CVWL568T.lib create mode 100644 src/sdk/include/M0/ArmCM0.h create mode 100644 src/sdk/include/hal_dsi_rx_ctrl.h create mode 100644 src/sdk/include/hal_dsi_tx_ctrl.h create mode 100644 src/sdk/include/hal_gpio.h create mode 100644 src/sdk/include/hal_i2c_master.h create mode 100644 src/sdk/include/hal_i2c_slave.h create mode 100644 src/sdk/include/hal_pwm.h create mode 100644 src/sdk/include/hal_spi_master.h create mode 100644 src/sdk/include/hal_spi_slave.h create mode 100644 src/sdk/include/hal_swire.h create mode 100644 src/sdk/include/hal_system.h create mode 100644 src/sdk/include/hal_timer.h create mode 100644 src/sdk/include/hal_uart.h create mode 100644 src/sdk/include/hal_wdg.h create mode 100644 src/sdk/sdk_version.h diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..243d6b9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,85 @@ +# A .gitignore for Keil projects. +# Taken mostly from http://www.keil.com/support/man/docs/uv4/uv4_b_filetypes.htm + +# User-specific uVision files +*.opt +*.uvopt +*.uvoptx +*.uvgui +*.uvgui.* +*.uvguix.* + +# Listing files +#*.cod +#*.map +#*.m51 +#*.m66 +*._ip +*.i +*.lst +*/Listings/*.txt + +# define exception below if needed +*.scr + +# Object and HEX files +*.axf +*.b[0-3][0-9] +*.hex +*.d +*.crf +*.elf +*.hex +*.h86 +*.obj +*.o +*.sbr +*.htm + +# Build files +# define exception below if needed +*.bat +*._ia +*.__i +*._ii + +# Generated output files +/Listings/* +/Objects/* + +# Debugger files +# define exception below if needed +*.ini + +# Other files +*.build_log.htm +*.cdb +*.dep +*.ic +*.lin +*.lnp +*.orc +# define exception below if needed +*.pack +# define exception below if needed +*.pdsc +*.plg +# define exception below if needed +*.sct +*.sfd +*.sfr + +# Miscellaneous +*.tra +*.fed +*.l1p +*.l2p +*.iex + + +/si/ +!*.bin +!*.map + +# To explicitly override the above, define any exceptions here; e.g.: +# !my_customized_scatter_file.sct diff --git a/project/ISP_368/ISP_368.uvprojx b/project/ISP_368/ISP_368.uvprojx new file mode 100644 index 0000000..1989a00 --- /dev/null +++ b/project/ISP_368/ISP_368.uvprojx @@ -0,0 +1,471 @@ + + + + 2.1 + +
### uVision Project, (C) Keil Software
+ + + + ISP_368 + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::ARMCC + 5060750::V5.06 update 6 (build 750)::ARMCC + 0 + + + ARMCM0 + ARM + ARM.CMSIS.5.5.1 + http://www.keil.com/pack/ + IRAM(0x20000000,0x00020000) IROM(0x00000000,0x00040000) CPUTYPE("Cortex-M0") CLOCK(12000000) ESEL ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000) + 0 + $$Device:ARMCM0$Device\ARM\ARMCM0\Include\ARMCM0.h + + + + + + + + + + + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + ISP368_Mi8SE_20230523 + 1 + 0 + 1 + 1 + 1 + .\Listings\ + 1 + 0 + 1 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 1 + 0 + fromelf --bin -o .\Objects\@L.bin .\Objects\@L.axf + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + + DARMCM1.DLL + -pCM0 + SARMCM3.DLL + + TARMCM1.DLL + -pCM0 + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + "" () + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + "Cortex-M0" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 16 + 1 + 1 + 0 + 0 + 4 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 1 + 0x0 + 0x40000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x2000 + + + 1 + 0x10000 + 0x10000 + + + 0 + 0x70000 + 0xf0 + + + 0 + 0x70100 + 0xd0 + + + 0 + 0x701d0 + 0x7e30 + + + 0 + 0x20000000 + 0x20000 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + + + ISP_368 + + ..\..\src;..\..\src\board;..\..\src\common;..\..\src\sdk\include;..\..\src\app\demo;..\..\src\sdk\include\M0;..\..\src\app;..\..\src\app\module_demo;..\..\src\app\touch;..\..\src\app\S8;..\..\src\app\S9;..\CVWL368;..\..\src\app\ap_demo + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + + + + + + + + + + + + + app + + + main.c + 1 + ..\..\src\app\main.c + + + ap_demo.c + 1 + ..\..\src\app\ap_demo\ap_demo.c + + + app_tp_for_custom_mi8se.c + 1 + ..\..\src\app\ap_demo\app_tp_for_custom_mi8se.c + + + app_tp_transfer.c + 1 + ..\..\src\app\ap_demo\app_tp_transfer.c + + + + + driver + + + CVWL368.lib + 4 + ..\..\src\sdk\CVWL368\lib\CVWL368.lib + + + + + board + + + board.c + 1 + ..\..\src\board\board.c + + + + + startup + + + startup_ARMCM0.s + 2 + ..\..\src\board\startup\startup_ARMCM0.s + + + + + ::CMSIS + + + + + + + + + + + + + + + + + + RTE\Device\ARMCM0\startup_ARMCM0.s + + + + + + RTE\Device\ARMCM0\system_ARMCM0.c + + + + + + + +
diff --git a/project/ISP_368/Listings/ISP368_Mi8SE_20230523.map b/project/ISP_368/Listings/ISP368_Mi8SE_20230523.map new file mode 100644 index 0000000..0581a6f --- /dev/null +++ b/project/ISP_368/Listings/ISP368_Mi8SE_20230523.map @@ -0,0 +1,5217 @@ +Component: ARM Compiler 5.06 update 6 (build 750) Tool: armlink [4d35ed] + +============================================================================== + +Section Cross References + + main.o(i.main) refers to board.o(i.board_Init) for board_Init + main.o(i.main) refers to ap_demo.o(i.ap_demo) for ap_demo + ap_demo.o(i.AP_SWIRE_init) refers to hal_gpio.o(i.hal_gpio_set_output_data) for hal_gpio_set_output_data + ap_demo.o(i.AP_SWIRE_init) refers to tau_delay.o(i.delayMs) for delayMs + ap_demo.o(i.AP_SWIRE_init) refers to tau_delay.o(i.delayUs) for delayUs + ap_demo.o(i.PWM_Task) refers to hal_pwm.o(i.hal_pwm_out_sync_thr) for hal_pwm_out_sync_thr + ap_demo.o(i.PWM_Task) refers to ap_demo.o(.data) for read_bl_data + ap_demo.o(i.PWM_init) refers to hal_pwm.o(i.hal_pwm_out_init) for hal_pwm_out_init + ap_demo.o(i.PWM_init) refers to hal_pwm.o(i.hal_pwm_out_config_all) for hal_pwm_out_config_all + ap_demo.o(i.ap_dcs_read) refers to tau_log.o(i.LOG_printf) for LOG_printf + ap_demo.o(i.ap_demo) refers to hal_gpio.o(i.hal_gpio_init_output) for hal_gpio_init_output + ap_demo.o(i.ap_demo) refers to hal_pwm.o(i.hal_pwm_out_sel_io) for hal_pwm_out_sel_io + ap_demo.o(i.ap_demo) refers to ap_demo.o(i.open_mipi_rx) for open_mipi_rx + ap_demo.o(i.ap_demo) refers to ap_demo.o(i.PWM_init) for PWM_init + ap_demo.o(i.ap_demo) refers to ap_demo.o(i.AP_SWIRE_init) for AP_SWIRE_init + ap_demo.o(i.ap_demo) refers to hal_system.o(i.hal_system_share_flash_mode) for hal_system_share_flash_mode + ap_demo.o(i.ap_demo) refers to hal_gpio.o(i.hal_gpio_get_input_data) for hal_gpio_get_input_data + ap_demo.o(i.ap_demo) refers to tau_log.o(i.LOG_printf) for LOG_printf + ap_demo.o(i.ap_demo) refers to ap_demo.o(i.init_mipi_tx) for init_mipi_tx + ap_demo.o(i.ap_demo) refers to app_tp_transfer.o(i.app_tp_init) for app_tp_init + ap_demo.o(i.ap_demo) refers to ap_demo.o(i.tx_display_on) for tx_display_on + ap_demo.o(i.ap_demo) refers to app_tp_transfer.o(i.app_tp_phone_clear_reset_on) for app_tp_phone_clear_reset_on + ap_demo.o(i.ap_demo) refers to app_tp_transfer.o(i.app_tp_transfer_screen_start) for app_tp_transfer_screen_start + ap_demo.o(i.ap_demo) refers to ap_demo.o(i.PWM_Task) for PWM_Task + ap_demo.o(i.ap_demo) refers to app_tp_transfer.o(i.app_tp_transfer_screen_int) for app_tp_transfer_screen_int + ap_demo.o(i.ap_demo) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_dsc_async_handler) for hal_dsi_rx_ctrl_dsc_async_handler + ap_demo.o(i.ap_demo) refers to ap_demo.o(.data) for start_display_on + ap_demo.o(i.ap_set_backlight) refers to uidiv.o(.text) for __aeabi_uidivmod + ap_demo.o(i.ap_set_backlight) refers to ap_demo.o(.data) for read_bl_data + ap_demo.o(i.ap_set_display_off) refers to tau_log.o(i.LOG_printf) for LOG_printf + ap_demo.o(i.ap_set_display_on) refers to tau_log.o(i.LOG_printf) for LOG_printf + ap_demo.o(i.ap_set_enter_sleep_mode) refers to tau_log.o(i.LOG_printf) for LOG_printf + ap_demo.o(i.ap_set_enter_sleep_mode) refers to hal_gpio.o(i.hal_gpio_set_output_data) for hal_gpio_set_output_data + ap_demo.o(i.ap_set_enter_sleep_mode) refers to hal_pwm.o(i.hal_pwm_out_sync_thr) for hal_pwm_out_sync_thr + ap_demo.o(i.ap_set_exit_sleep_mode) refers to tau_log.o(i.LOG_printf) for LOG_printf + ap_demo.o(i.init_mipi_tx) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_create_handle) for hal_dsi_tx_ctrl_create_handle + ap_demo.o(i.init_mipi_tx) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_init) for hal_dsi_tx_ctrl_init + ap_demo.o(i.init_mipi_tx) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_overwrite_rgb) for hal_dsi_tx_ctrl_set_overwrite_rgb + ap_demo.o(i.init_mipi_tx) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_crop_pic) for hal_dsi_tx_crop_pic + ap_demo.o(i.init_mipi_tx) refers to ap_demo.o(.data) for g_tx_ctrl_handle + ap_demo.o(i.init_panel) refers to ap_demo.o(i.tx_panel_reset) for tx_panel_reset + ap_demo.o(i.init_panel) refers to hal_gpio.o(i.hal_gpio_init_output) for hal_gpio_init_output + ap_demo.o(i.init_panel) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_enter_init_panel_mode) for hal_dsi_tx_ctrl_enter_init_panel_mode + ap_demo.o(i.init_panel) refers to tau_log.o(i.LOG_printf) for LOG_printf + ap_demo.o(i.init_panel) refers to tau_delay.o(i.delayUs) for delayUs + ap_demo.o(i.init_panel) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_write_cmd) for hal_dsi_tx_ctrl_write_cmd + ap_demo.o(i.init_panel) refers to tau_delay.o(i.delayMs) for delayMs + ap_demo.o(i.init_panel) refers to hal_gpio.o(i.hal_gpio_set_output_data) for hal_gpio_set_output_data + ap_demo.o(i.init_panel) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_exit_init_panel_mode) for hal_dsi_tx_ctrl_exit_init_panel_mode + ap_demo.o(i.open_mipi_rx) refers to hal_gpio.o(i.hal_gpio_set_mode) for hal_gpio_set_mode + ap_demo.o(i.open_mipi_rx) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_create_handle) for hal_dsi_rx_ctrl_create_handle + ap_demo.o(i.open_mipi_rx) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init) for hal_dsi_rx_ctrl_init + ap_demo.o(i.open_mipi_rx) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_cus_sync_line) for hal_dsi_rx_ctrl_set_cus_sync_line + ap_demo.o(i.open_mipi_rx) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_cus_scld_filter) for hal_dsi_rx_ctrl_set_cus_scld_filter + ap_demo.o(i.open_mipi_rx) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_start) for hal_dsi_rx_ctrl_start + ap_demo.o(i.open_mipi_rx) refers to ap_demo.o(.data) for g_rx_ctrl_handle + ap_demo.o(i.open_mipi_rx) refers to ap_demo.o(.constdata) for g_cus_rx_dcs_execute_table + ap_demo.o(i.open_mipi_rx) refers to ap_demo.o(i.ap_dcs_read) for ap_dcs_read + ap_demo.o(i.open_mipi_rx) refers to ap_demo.o(i.pps_update_handle) for pps_update_handle + ap_demo.o(i.pps_update_handle) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_toggle_resolution) for hal_dsi_rx_ctrl_toggle_resolution + ap_demo.o(i.pps_update_handle) refers to ap_demo.o(.data) for g_rx_ctrl_handle + ap_demo.o(i.soft_te_timer_cb) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_gen_a_tear_signal) for hal_dsi_rx_ctrl_gen_a_tear_signal + ap_demo.o(i.soft_te_timer_cb) refers to hal_timer.o(i.hal_timer_start) for hal_timer_start + ap_demo.o(i.soft_te_timer_cb) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_hw_tear_mode) for hal_dsi_rx_ctrl_set_hw_tear_mode + ap_demo.o(i.soft_te_timer_cb) refers to ap_demo.o(.data) for panel_display_done + ap_demo.o(i.soft_te_timer_init) refers to tau_log.o(i.LOG_printf) for LOG_printf + ap_demo.o(i.soft_te_timer_init) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_sw_tear_mode) for hal_dsi_rx_ctrl_set_sw_tear_mode + ap_demo.o(i.soft_te_timer_init) refers to hal_timer.o(i.hal_timer_init) for hal_timer_init + ap_demo.o(i.soft_te_timer_init) refers to hal_timer.o(i.hal_timer_start) for hal_timer_start + ap_demo.o(i.soft_te_timer_init) refers to ap_demo.o(.data) for g_rx_ctrl_handle + ap_demo.o(i.soft_te_timer_init) refers to ap_demo.o(i.soft_te_timer_cb) for soft_te_timer_cb + ap_demo.o(i.swire_callback) refers to hal_timer.o(i.hal_timer_start) for hal_timer_start + ap_demo.o(i.swire_callback) refers to ap_demo.o(i.swire_timer_callback) for swire_timer_callback + ap_demo.o(i.swire_init) refers to hal_swire.o(i.hal_swire_open) for hal_swire_open + ap_demo.o(i.swire_init) refers to hal_swire.o(i.hal_swire_init) for hal_swire_init + ap_demo.o(i.swire_init) refers to hal_swire.o(i.hal_swire_register_callback) for hal_swire_register_callback + ap_demo.o(i.swire_init) refers to hal_swire.o(i.hal_swire_start) for hal_swire_start + ap_demo.o(i.swire_init) refers to hal_timer.o(i.hal_timer_init) for hal_timer_init + ap_demo.o(i.swire_init) refers to hal_timer.o(i.hal_timer_start) for hal_timer_start + ap_demo.o(i.swire_init) refers to ap_demo.o(i.swire_callback) for swire_callback + ap_demo.o(i.swire_init) refers to ap_demo.o(i.swire_timer_callback) for swire_timer_callback + ap_demo.o(i.swire_timer_callback) refers to hal_swire.o(i.hal_swire_start) for hal_swire_start + ap_demo.o(i.swire_timer_callback) refers to ap_demo.o(.data) for swire_num + ap_demo.o(i.tx_display_on) refers to ap_demo.o(i.init_panel) for init_panel + ap_demo.o(i.tx_display_on) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_start) for hal_dsi_tx_ctrl_start + ap_demo.o(i.tx_display_on) refers to tau_delay.o(i.delayMs) for delayMs + ap_demo.o(i.tx_display_on) refers to tau_delay.o(i.delayUs) for delayUs + ap_demo.o(i.tx_display_on) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_write_cmd) for hal_dsi_tx_ctrl_write_cmd + ap_demo.o(i.tx_display_on) refers to tau_log.o(i.LOG_printf) for LOG_printf + ap_demo.o(i.tx_display_on) refers to ap_demo.o(.data) for g_tx_ctrl_handle + ap_demo.o(i.tx_panel_reset) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_panel_reset_pin) for hal_dsi_tx_ctrl_panel_reset_pin + ap_demo.o(i.tx_panel_reset) refers to tau_delay.o(i.delayMs) for delayMs + ap_demo.o(.constdata) refers to ap_demo.o(i.ap_set_display_on) for ap_set_display_on + ap_demo.o(.constdata) refers to ap_demo.o(i.ap_set_display_off) for ap_set_display_off + ap_demo.o(.constdata) refers to ap_demo.o(i.ap_set_backlight) for ap_set_backlight + ap_demo.o(.constdata) refers to ap_demo.o(i.ap_set_enter_sleep_mode) for ap_set_enter_sleep_mode + ap_demo.o(.constdata) refers to ap_demo.o(i.ap_set_exit_sleep_mode) for ap_set_exit_sleep_mode + app_tp_for_custom_mi8se.o(i.app_tp_phone_analysis_data) refers to printfa.o(i.__0printf) for __2printf + app_tp_for_custom_mi8se.o(i.app_tp_phone_analysis_data) refers to app_tp_for_custom_mi8se.o(.data) for phone_A6_flag + app_tp_for_custom_mi8se.o(i.app_tp_phone_analysis_data) refers to app_tp_for_custom_mi8se.o(.constdata) for phone_data_A6_0 + app_tp_for_custom_mi8se.o(i.app_tp_phone_analysis_data) refers to app_tp_for_custom_mi8se.o(.bss) for phone_reg_coord_back + app_tp_for_custom_mi8se.o(i.app_tp_phone_analysis_data) refers to hal_gpio.o(i.hal_gpio_set_output_data) for hal_gpio_set_output_data + app_tp_for_custom_mi8se.o(i.app_tp_phone_analysis_data_custom) refers to printfa.o(i.__0printf) for __2printf + app_tp_for_custom_mi8se.o(i.app_tp_phone_analysis_data_custom) refers to hal_gpio.o(i.hal_gpio_set_output_data) for hal_gpio_set_output_data + app_tp_for_custom_mi8se.o(i.app_tp_phone_analysis_data_custom) refers to app_tp_for_custom_mi8se.o(.data) for phone_A6_flag + app_tp_for_custom_mi8se.o(i.app_tp_phone_analysis_data_custom) refers to app_tp_for_custom_mi8se.o(.constdata) for phone_data_A6_0 + app_tp_for_custom_mi8se.o(i.app_tp_phone_analysis_data_custom) refers to app_tp_for_custom_mi8se.o(.bss) for phone_reg_coord_back + app_tp_for_custom_mi8se.o(i.app_tp_phone_analysis_data_custom) refers to app_tp_transfer.o(.data) for s_slave_txbuffer + app_tp_for_custom_mi8se.o(i.app_tp_screen_analysis_const) refers to app_tp_transfer.o(i.app_tp_screen_init) for app_tp_screen_init + app_tp_for_custom_mi8se.o(i.app_tp_screen_analysis_const) refers to tau_log.o(i.LOG_printf) for LOG_printf + app_tp_for_custom_mi8se.o(i.app_tp_screen_analysis_const) refers to app_tp_for_custom_mi8se.o(.data) for app_tp_count + app_tp_for_custom_mi8se.o(i.app_tp_screen_analysis_int) refers to uidiv.o(.text) for __aeabi_uidivmod + app_tp_for_custom_mi8se.o(i.app_tp_screen_analysis_int) refers to hal_gpio.o(i.hal_gpio_set_output_data) for hal_gpio_set_output_data + app_tp_for_custom_mi8se.o(i.app_tp_screen_analysis_int) refers to app_tp_for_custom_mi8se.o(i.tp_int_high_timer_init) for tp_int_high_timer_init + app_tp_for_custom_mi8se.o(i.app_tp_screen_analysis_int) refers to app_tp_for_custom_mi8se.o(.bss) for phone_reg_coord_back + app_tp_for_custom_mi8se.o(i.app_tp_screen_analysis_int) refers to app_tp_for_custom_mi8se.o(.data) for s8_host_id + app_tp_for_custom_mi8se.o(i.tp_int_high_timer_callback) refers to hal_gpio.o(i.hal_gpio_set_output_data) for hal_gpio_set_output_data + app_tp_for_custom_mi8se.o(i.tp_int_high_timer_callback) refers to app_tp_for_custom_mi8se.o(.data) for touch_recv_flag + app_tp_for_custom_mi8se.o(i.tp_int_high_timer_callback) refers to app_tp_for_custom_mi8se.o(.bss) for phone_reg_coord_back + app_tp_for_custom_mi8se.o(i.tp_int_high_timer_init) refers to hal_timer.o(i.hal_timer_init) for hal_timer_init + app_tp_for_custom_mi8se.o(i.tp_int_high_timer_init) refers to hal_timer.o(i.hal_timer_start) for hal_timer_start + app_tp_for_custom_mi8se.o(i.tp_int_high_timer_init) refers to app_tp_for_custom_mi8se.o(i.tp_int_high_timer_callback) for tp_int_high_timer_callback + app_tp_for_custom_mi8se.o(.data) refers to app_tp_for_custom_mi8se.o(.bss) for phone_reg_coord_back + app_tp_transfer.o(i.ap_tp_scan_point_init) refers to app_tp_transfer.o(.bss) for tp_scan_data + app_tp_transfer.o(i.ap_tp_scan_point_record_event_exec) refers to printfa.o(i.__0printf) for __2printf + app_tp_transfer.o(i.ap_tp_scan_point_record_event_exec) refers to app_tp_transfer.o(i.ap_tp_scan_point_init) for ap_tp_scan_point_init + app_tp_transfer.o(i.ap_tp_scan_point_record_event_exec) refers to app_tp_transfer.o(.bss) for tp_scan_data + app_tp_transfer.o(i.app_tp_i2cs_callback) refers to app_tp_transfer.o(i.app_tp_transfer_phone) for app_tp_transfer_phone + app_tp_transfer.o(i.app_tp_i2cs_callback) refers to app_tp_transfer.o(i.app_tp_s_write) for app_tp_s_write + app_tp_transfer.o(i.app_tp_i2cs_callback) refers to app_tp_transfer.o(.data) for i2cs_transfer + app_tp_transfer.o(i.app_tp_init) refers to hal_gpio.o(i.hal_gpio_set_pull_state) for hal_gpio_set_pull_state + app_tp_transfer.o(i.app_tp_init) refers to app_tp_transfer.o(i.app_tp_screen_int_init) for app_tp_screen_int_init + app_tp_transfer.o(i.app_tp_init) refers to hal_gpio.o(i.hal_gpio_init_output) for hal_gpio_init_output + app_tp_transfer.o(i.app_tp_init) refers to hal_i2c_master.o(i.hal_i2c_m_dma_init) for hal_i2c_m_dma_init + app_tp_transfer.o(i.app_tp_init) refers to hal_i2c_slave.o(i.hal_i2c_s_init) for hal_i2c_s_init + app_tp_transfer.o(i.app_tp_init) refers to hal_i2c_slave.o(i.hal_i2c_s_set_transfer) for hal_i2c_s_set_transfer + app_tp_transfer.o(i.app_tp_init) refers to hal_i2c_slave.o(i.hal_i2c_s_nonblocking_read) for hal_i2c_s_nonblocking_read + app_tp_transfer.o(i.app_tp_init) refers to app_tp_for_custom_mi8se.o(.data) for g_phone_output_int_pad + app_tp_transfer.o(i.app_tp_init) refers to app_tp_transfer.o(i.app_tp_i2cs_callback) for app_tp_i2cs_callback + app_tp_transfer.o(i.app_tp_init) refers to app_tp_transfer.o(.bss) for s_phone_read_buffer + app_tp_transfer.o(i.app_tp_m_read) refers to hal_i2c_master.o(i.hal_i2c_m_dma_read) for hal_i2c_m_dma_read + app_tp_transfer.o(i.app_tp_m_transfer_complate) refers to hal_i2c_master.o(i.hal_i2c_m_transfer_complate) for hal_i2c_m_transfer_complate + app_tp_transfer.o(i.app_tp_m_write) refers to hal_i2c_master.o(i.hal_i2c_m_dma_write) for hal_i2c_m_dma_write + app_tp_transfer.o(i.app_tp_phone_clear_reset_on) refers to app_tp_transfer.o(.data) for s_phone_reset_flag + app_tp_transfer.o(i.app_tp_phone_reset_on) refers to app_tp_transfer.o(.data) for s_phone_reset_flag + app_tp_transfer.o(i.app_tp_s_read) refers to hal_i2c_slave.o(i.hal_i2c_s_nonblocking_read) for hal_i2c_s_nonblocking_read + app_tp_transfer.o(i.app_tp_s_transfer_complate) refers to hal_i2c_slave.o(i.hal_i2c_s_write_complate) for hal_i2c_s_write_complate + app_tp_transfer.o(i.app_tp_s_transfer_complate) refers to hal_i2c_slave.o(i.hal_i2c_s_read_complate) for hal_i2c_s_read_complate + app_tp_transfer.o(i.app_tp_s_write) refers to hal_i2c_slave.o(i.hal_i2c_s_dma_write) for hal_i2c_s_dma_write + app_tp_transfer.o(i.app_tp_screen_init) refers to hal_gpio.o(i.hal_gpio_init_output) for hal_gpio_init_output + app_tp_transfer.o(i.app_tp_screen_init) refers to tau_delay.o(i.delayUs) for delayUs + app_tp_transfer.o(i.app_tp_screen_init) refers to hal_gpio.o(i.hal_gpio_set_output_data) for hal_gpio_set_output_data + app_tp_transfer.o(i.app_tp_screen_init) refers to app_tp_for_custom_mi8se.o(.data) for g_screen_input_rst_pad + app_tp_transfer.o(i.app_tp_screen_int_callback) refers to app_tp_transfer.o(.data) for s_screen_int_flag + app_tp_transfer.o(i.app_tp_screen_int_init) refers to hal_gpio.o(i.hal_gpio_set_pull_state) for hal_gpio_set_pull_state + app_tp_transfer.o(i.app_tp_screen_int_init) refers to hal_gpio.o(i.hal_gpio_ctrl_eint) for hal_gpio_ctrl_eint + app_tp_transfer.o(i.app_tp_screen_int_init) refers to hal_gpio.o(i.hal_gpio_init_eint) for hal_gpio_init_eint + app_tp_transfer.o(i.app_tp_screen_int_init) refers to hal_gpio.o(i.hal_gpio_reg_eint_cb) for hal_gpio_reg_eint_cb + app_tp_transfer.o(i.app_tp_screen_int_init) refers to app_tp_for_custom_mi8se.o(.data) for g_screen_input_int_pad + app_tp_transfer.o(i.app_tp_screen_int_init) refers to app_tp_transfer.o(i.app_tp_screen_int_callback) for app_tp_screen_int_callback + app_tp_transfer.o(i.app_tp_transfer_phone) refers to app_tp_for_custom_mi8se.o(i.app_tp_phone_analysis_data_custom) for app_tp_phone_analysis_data_custom + app_tp_transfer.o(i.app_tp_transfer_phone) refers to app_tp_transfer.o(i.app_tp_s_read) for app_tp_s_read + app_tp_transfer.o(i.app_tp_transfer_phone) refers to app_tp_transfer.o(.data) for s_slave_txbuffer_size + app_tp_transfer.o(i.app_tp_transfer_phone) refers to app_tp_transfer.o(.bss) for s_phone_read_buffer + app_tp_transfer.o(i.app_tp_transfer_screen_const) refers to app_tp_transfer.o(i.app_tp_m_transfer_complate) for app_tp_m_transfer_complate + app_tp_transfer.o(i.app_tp_transfer_screen_const) refers to hal_spi_master.o(i.hal_spi_m_clear_rxfifo) for hal_spi_m_clear_rxfifo + app_tp_transfer.o(i.app_tp_transfer_screen_const) refers to printfa.o(i.__0printf) for __2printf + app_tp_transfer.o(i.app_tp_transfer_screen_const) refers to app_tp_transfer.o(.data) for s_screen_const_transfer_count + app_tp_transfer.o(i.app_tp_transfer_screen_const) refers to app_tp_for_custom_mi8se.o(.constdata) for screen_reg_start_data_size + app_tp_transfer.o(i.app_tp_transfer_screen_int) refers to app_tp_transfer.o(i.app_tp_transfer_screen_const) for app_tp_transfer_screen_const + app_tp_transfer.o(i.app_tp_transfer_screen_int) refers to app_tp_transfer.o(i.app_tp_screen_int_lvl_low) for app_tp_screen_int_lvl_low + app_tp_transfer.o(i.app_tp_transfer_screen_int) refers to app_tp_transfer.o(i.app_tp_m_transfer_complate) for app_tp_m_transfer_complate + app_tp_transfer.o(i.app_tp_transfer_screen_int) refers to hal_spi_master.o(i.hal_spi_m_clear_rxfifo) for hal_spi_m_clear_rxfifo + app_tp_transfer.o(i.app_tp_transfer_screen_int) refers to app_tp_transfer.o(i.app_tp_m_read) for app_tp_m_read + app_tp_transfer.o(i.app_tp_transfer_screen_int) refers to hal_i2c_master.o(i.hal_i2c_m_transfer_complate) for hal_i2c_m_transfer_complate + app_tp_transfer.o(i.app_tp_transfer_screen_int) refers to app_tp_for_custom_mi8se.o(i.app_tp_screen_analysis_int) for app_tp_screen_analysis_int + app_tp_transfer.o(i.app_tp_transfer_screen_int) refers to app_tp_transfer.o(.data) for s_screen_init_complate + app_tp_transfer.o(i.app_tp_transfer_screen_int) refers to app_tp_for_custom_mi8se.o(.data) for screen_reg_int_data + app_tp_transfer.o(i.app_tp_transfer_screen_int) refers to app_tp_transfer.o(.bss) for s_screen_read_buffer + app_tp_transfer.o(i.app_tp_transfer_screen_start) refers to app_tp_transfer.o(i.app_tp_transfer_screen_const) for app_tp_transfer_screen_const + app_tp_transfer.o(i.app_tp_transfer_screen_start) refers to app_tp_transfer.o(.data) for s_screen_init_complate + board.o(i.board_Init) refers to hal_system.o(i.hal_system_init) for hal_system_init + board.o(i.board_Init) refers to hal_system.o(i.hal_system_enable_systick) for hal_system_enable_systick + board.o(i.board_Init) refers to hal_system.o(i.hal_system_init_console) for hal_system_init_console + board.o(i.board_Init) refers to hal_system.o(i.hal_system_set_phy_calibration) for hal_system_set_phy_calibration + startup_armcm0.o(RESET) refers to startup_armcm0.o(STACK) for __initial_sp + startup_armcm0.o(RESET) refers to startup_armcm0.o(.text) for Reset_Handler + startup_armcm0.o(RESET) refers to irq_redirect .o(i.HardFault_Handler) for HardFault_Handler + startup_armcm0.o(RESET) refers to irq_redirect .o(i.SysTick_Handler) for SysTick_Handler + startup_armcm0.o(RESET) refers to irq_redirect .o(i.VIDC_IRQn_Handler) for VIDC_IRQn_Handler + startup_armcm0.o(RESET) refers to irq_redirect .o(i.LCDC_IRQn_Handler) for LCDC_IRQn_Handler + startup_armcm0.o(RESET) refers to irq_redirect .o(i.MIPI_RX_IRQn_Handler) for MIPI_RX_IRQn_Handler + startup_armcm0.o(RESET) refers to irq_redirect .o(i.MIPI_TX_IRQn_Handler) for MIPI_TX_IRQn_Handler + startup_armcm0.o(RESET) refers to irq_redirect .o(i.MEMC_IRQn_Handler) for MEMC_IRQn_Handler + startup_armcm0.o(RESET) refers to irq_redirect .o(i.VPRE_IRQn_Handler) for VPRE_IRQn_Handler + startup_armcm0.o(RESET) refers to irq_redirect .o(i.FLSCTRL_IRQn_Handler) for FLSCTRL_IRQn_Handler + startup_armcm0.o(RESET) refers to irq_redirect .o(i.DMA_IRQn_Handler) for DMA_IRQn_Handler + startup_armcm0.o(RESET) refers to irq_redirect .o(i.TIMER0_IRQn_Handler) for TIMER0_IRQn_Handler + startup_armcm0.o(RESET) refers to irq_redirect .o(i.TIMER1_IRQn_Handler) for TIMER1_IRQn_Handler + startup_armcm0.o(RESET) refers to irq_redirect .o(i.TIMER2_IRQn_Handler) for TIMER2_IRQn_Handler + startup_armcm0.o(RESET) refers to irq_redirect .o(i.TIMER3_IRQn_Handler) for TIMER3_IRQn_Handler + startup_armcm0.o(RESET) refers to irq_redirect .o(i.WDG_IRQn_Handler) for WDG_IRQn_Handler + startup_armcm0.o(RESET) refers to irq_redirect .o(i.UART_IRQn_Handler) for UART_IRQn_Handler + startup_armcm0.o(RESET) refers to irq_redirect .o(i.I2C0_IRQn_Handler) for I2C0_IRQn_Handler + startup_armcm0.o(RESET) refers to irq_redirect .o(i.I2C1_IRQn_Handler) for I2C1_IRQn_Handler + startup_armcm0.o(RESET) refers to irq_redirect .o(i.SPIS_IRQn_Handler) for SPIS_IRQn_Handler + startup_armcm0.o(RESET) refers to irq_redirect .o(i.SPIM_IRQn_Handler) for SPIM_IRQn_Handler + startup_armcm0.o(RESET) refers to irq_redirect .o(i.ADC_IRQn_Handler) for ADC_IRQn_Handler + startup_armcm0.o(RESET) refers to irq_redirect .o(i.PWMDET_IRQn_Handler) for PWMDET_IRQn_Handler + startup_armcm0.o(RESET) refers to irq_redirect .o(i.SWIRE_IRQn_Handler) for SWIRE_IRQn_Handler + startup_armcm0.o(RESET) refers to irq_redirect .o(i.AP_NRESET_IRQn_Handler) for AP_NRESET_IRQn_Handler + startup_armcm0.o(RESET) refers to irq_redirect .o(i.EXTI_INT0_IRQn_Handler) for EXTI_INT0_IRQn_Handler + startup_armcm0.o(RESET) refers to irq_redirect .o(i.EXTI_INT1_IRQn_Handler) for EXTI_INT1_IRQn_Handler + startup_armcm0.o(RESET) refers to irq_redirect .o(i.EXTI_INT2_IRQn_Handler) for EXTI_INT2_IRQn_Handler + startup_armcm0.o(RESET) refers to irq_redirect .o(i.EXTI_INT3_IRQn_Handler) for EXTI_INT3_IRQn_Handler + startup_armcm0.o(RESET) refers to irq_redirect .o(i.EXTI_INT4_IRQn_Handler) for EXTI_INT4_IRQn_Handler + startup_armcm0.o(RESET) refers to irq_redirect .o(i.EXTI_INT5_IRQn_Handler) for EXTI_INT5_IRQn_Handler + startup_armcm0.o(RESET) refers to irq_redirect .o(i.EXTI_INT6_IRQn_Handler) for EXTI_INT6_IRQn_Handler + startup_armcm0.o(RESET) refers to irq_redirect .o(i.EXTI_INT7_IRQn_Handler) for EXTI_INT7_IRQn_Handler + startup_armcm0.o(.text) refers to entry.o(.ARM.Collect$$$$00000000) for __main + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_create_handle) refers to memseta.o(.text) for __aeabi_memclr4 + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_create_handle) refers to hal_dsi_rx_ctrl.o(.bss) for .bss + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_crop_video) refers to hal_internal_vsync.o(i.hal_internal_sync_get_fb_setting) for hal_internal_sync_get_fb_setting + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_crop_video) refers to uidiv.o(.text) for __aeabi_uidivmod + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_crop_video) refers to dfltui.o(.text) for __aeabi_ui2d + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_crop_video) refers to dadd.o(.text) for __aeabi_dadd + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_crop_video) refers to dfixui.o(.text) for __aeabi_d2uiz + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_crop_video) refers to drv_vidc.o(i.drv_vidc_set_scld_step) for drv_vidc_set_scld_step + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_crop_video) refers to drv_vidc.o(i.drv_vidc_set_module_enable) for drv_vidc_set_module_enable + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_deinit) refers to hal_internal_vsync.o(i.hal_internal_vsync_get_rx_state) for hal_internal_vsync_get_rx_state + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_deinit) refers to drv_dsc_dec.o(i.drv_dsc_dec_disable) for drv_dsc_dec_disable + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_deinit) refers to drv_dsi_rx.o(i.drv_dsi_rx_enable_irq) for drv_dsi_rx_enable_irq + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_deinit) refers to drv_rxbr.o(i.drv_rxbr_enable_irq) for drv_rxbr_enable_irq + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_deinit) refers to drv_vidc.o(i.drv_vidc_enable_irq) for drv_vidc_enable_irq + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_deinit) refers to drv_memc.o(i.drv_memc_enable_irq) for drv_memc_enable_irq + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_deinit) refers to drv_crgu.o(i.drv_crgu_set_clock) for drv_crgu_set_clock + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_deinit) refers to hal_internal_vsync.o(i.hal_internal_vsync_get_tx_state) for hal_internal_vsync_get_tx_state + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_deinit) refers to drv_crgu.o(i.drv_crgu_config_reset_modules) for drv_crgu_config_reset_modules + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_deinit) refers to hal_internal_vsync.o(i.hal_internal_vsync_set_rx_state) for hal_internal_vsync_set_rx_state + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_deinit) refers to hal_dsi_rx_ctrl.o(.bss) for .bss + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_draw_mode_init) refers to hal_internal_vsync.o(i.hal_internal_sync_get_fb_setting) for hal_internal_sync_get_fb_setting + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_dsc_async_handler) refers to dcs_packet_fifo.o(i.dcs_packet_get_fifo_header) for dcs_packet_get_fifo_header + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_dsc_async_handler) refers to dcs_packet_fifo.o(i.dcs_packet_free_fifo_header) for dcs_packet_free_fifo_header + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_dsc_async_handler) refers to drv_rxbr.o(i.drv_rxbr_set_inten) for drv_rxbr_set_inten + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_dsc_async_handler) refers to hal_dsi_rx_ctrl.o(.bss) for .bss + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_enable_test_pattern) refers to drv_dsi_rx.o(i.drv_dsi_rx_set_ddi_pg_cfg) for drv_dsi_rx_set_ddi_pg_cfg + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_enable_test_pattern) refers to drv_crgu.o(i.drv_crgu_set_rxbr_src) for drv_crgu_set_rxbr_src + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_enable_test_pattern) refers to drv_crgu.o(i.drv_crgu_set_rxbr_div) for drv_crgu_set_rxbr_div + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_enable_test_pattern) refers to drv_rxbr.o(i.drv_rxbr_get_clk) for drv_rxbr_get_clk + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_enable_test_pattern) refers to uidiv.o(.text) for __aeabi_uidivmod + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_enable_test_pattern) refers to tau_log.o(i.LOG_printf) for LOG_printf + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_enable_test_pattern) refers to drv_dsi_rx.o(i.drv_dsi_rx_set_ipi_pg_cfg) for drv_dsi_rx_set_ipi_pg_cfg + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_enable_test_pattern) refers to hal_dsi_rx_ctrl.o(.bss) for .bss + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_gen_a_tear_signal) refers to drv_memc.o(i.drv_memc_gen_a_tear_signal) for drv_memc_gen_a_tear_signal + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_gen_a_tear_signal) refers to hal_dsi_rx_ctrl.o(.bss) for .bss + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_get_compressen_en) refers to drv_dsi_rx.o(i.drv_dsi_rx_get_compression_en) for drv_dsi_rx_get_compression_en + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_get_max_ret_size) refers to drv_dsi_rx.o(i.drv_dsi_rx_get_max_ret_size) for drv_dsi_rx_get_max_ret_size + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_get_max_ret_size) refers to hal_dsi_rx_ctrl.o(.bss) for .bss + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_hight_performan_mode) refers to tau_log.o(i.LOG_printf) for LOG_printf + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_clk) for hal_dsi_rx_ctrl_init_clk + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init) refers to hal_internal_vsync.o(i.hal_internal_vsync_init_rx) for hal_internal_vsync_init_rx + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_dsi_rx) for hal_dsi_rx_ctrl_init_dsi_rx + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_rxbr) for hal_dsi_rx_ctrl_init_rxbr + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init) refers to drv_dsc_dec.o(i.drv_dsc_dec_disable) for drv_dsc_dec_disable + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_vidc) for hal_dsi_rx_ctrl_init_vidc + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_memc) for hal_dsi_rx_ctrl_init_memc + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init) refers to hal_internal_vsync.o(i.hal_internal_vsync_set_rx_state) for hal_internal_vsync_set_rx_state + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init) refers to drv_chip_info.o(i.drv_chip_rx_init_done) for drv_chip_rx_init_done + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init) refers to hal_dsi_rx_ctrl.o(.bss) for .bss + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_clk) refers to drv_efuse.o(i.drv_efuse_read) for drv_efuse_read + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_clk) refers to drv_crgu.o(i.drv_crgu_set_vidc_src) for drv_crgu_set_vidc_src + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_clk) refers to tau_log.o(i.LOG_printf) for LOG_printf + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_clk) refers to drv_crgu.o(i.drv_crgu_set_fb_src) for drv_crgu_set_fb_src + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_clk) refers to drv_crgu.o(i.drv_crgu_set_fb_div) for drv_crgu_set_fb_div + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_clk) refers to drv_crgu.o(i.drv_crgu_set_clock) for drv_crgu_set_clock + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_clk) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_rxbr_clk) for hal_dsi_rx_ctrl_set_rxbr_clk + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_dsi_rx) refers to drv_rxbr.o(i.drv_rxbr_get_clk) for drv_rxbr_get_clk + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_dsi_rx) refers to uidiv.o(.text) for __aeabi_uidivmod + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_dsi_rx) refers to drv_dsi_rx.o(i.drv_dsi_rx_set_ctrl_cfg) for drv_dsi_rx_set_ctrl_cfg + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_dsi_rx) refers to drv_dsi_rx.o(i.drv_dsi_rx_set_ddi_cfg) for drv_dsi_rx_set_ddi_cfg + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_dsi_rx) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_ipi_cfg) for hal_dsi_rx_ctrl_set_ipi_cfg + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_dsi_rx) refers to drv_dsi_rx.o(i.drv_dsi_rx_set_up_phy) for drv_dsi_rx_set_up_phy + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_dsi_rx) refers to drv_dsi_rx.o(i.drv_dsi_rx_set_lane_swap) for drv_dsi_rx_set_lane_swap + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_dsi_rx) refers to drv_dsi_rx.o(i.drv_dsi_rx_set_inten) for drv_dsi_rx_set_inten + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_dsi_rx) refers to drv_dsi_rx.o(i.drv_dsi_rx_set_resp_cnt) for drv_dsi_rx_set_resp_cnt + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_dsi_rx) refers to drv_dsi_rx.o(i.drv_dsi_rx_enable_irq) for drv_dsi_rx_enable_irq + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_dsi_rx) refers to hal_dsi_rx_ctrl.o(.bss) for .bss + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_dsi_rx) refers to hal_dsi_rx_ctrl.o(.data) for .data + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_memc) refers to drv_memc.o(i.drv_memc_set_data_mode) for drv_memc_set_data_mode + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_memc) refers to hal_internal_vsync.o(i.hal_internal_sync_get_fb_setting) for hal_internal_sync_get_fb_setting + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_memc) refers to drv_memc.o(i.drv_memc_set_ltpo_mode) for drv_memc_set_ltpo_mode + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_memc) refers to drv_memc.o(i.drv_memc_set_tear_waveform) for drv_memc_set_tear_waveform + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_memc) refers to hal_internal_vsync.o(i.hal_internal_vsync_get_tear_mode) for hal_internal_vsync_get_tear_mode + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_memc) refers to hal_dsi_rx_ctrl.o(i.__ARM_common_switch8) for __ARM_common_switch8 + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_memc) refers to drv_memc.o(i.drv_memc_rate_transfer_sel) for drv_memc_rate_transfer_sel + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_memc) refers to drv_memc.o(i.drv_memc_set_fs_en_conditions) for drv_memc_set_fs_en_conditions + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_memc) refers to drv_memc.o(i.drv_memc_set_lcdc_st_conditions) for drv_memc_set_lcdc_st_conditions + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_memc) refers to drv_memc.o(i.drv_memc_sel_vsync) for drv_memc_sel_vsync + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_memc) refers to drv_memc.o(i.drv_memc_set_vidc_sync_cnt) for drv_memc_set_vidc_sync_cnt + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_memc) refers to drv_memc.o(i.drv_memc_set_tear_mode) for drv_memc_set_tear_mode + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_memc) refers to drv_memc.o(i.drv_memc_set_double_buffer) for drv_memc_set_double_buffer + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_memc) refers to drv_memc.o(i.drv_memc_set_active_height) for drv_memc_set_active_height + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_memc) refers to drv_memc.o(i.drv_memc_set_inten) for drv_memc_set_inten + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_memc) refers to drv_memc.o(i.drv_memc_enable_irq) for drv_memc_enable_irq + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_memc) refers to hal_dsi_rx_ctrl.o(.bss) for .bss + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_rxbr) refers to drv_rxbr.o(i.drv_rxbr_set_color_format) for drv_rxbr_set_color_format + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_rxbr) refers to drv_rxbr.o(i.drv_rxbr_frame_drop_cfg) for drv_rxbr_frame_drop_cfg + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_rxbr) refers to drv_rxbr.o(i.drv_rxbr_set_ltpo_drop_th) for drv_rxbr_set_ltpo_drop_th + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_rxbr) refers to drv_rxbr.o(i.drv_rxbr_set_usr_cfg) for drv_rxbr_set_usr_cfg + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_rxbr) refers to drv_rxbr.o(i.drv_rxbr_set_usr_col) for drv_rxbr_set_usr_col + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_rxbr) refers to drv_rxbr.o(i.drv_rxbr_set_usr_row) for drv_rxbr_set_usr_row + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_rxbr) refers to drv_rxbr.o(i.drv_rxbr_hline_rcv_cfg) for drv_rxbr_hline_rcv_cfg + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_rxbr) refers to drv_rxbr.o(i.drv_rxbr_set_inten) for drv_rxbr_set_inten + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_rxbr) refers to drv_rxbr.o(i.drv_rxbr_enable_irq) for drv_rxbr_enable_irq + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_rxbr) refers to hal_internal_vsync.o(i.hal_internal_vsync_set_auto_hw_filter) for hal_internal_vsync_set_auto_hw_filter + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_rxbr) refers to hal_dsi_rx_ctrl.o(.bss) for .bss + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_rxbr) refers to hal_dsi_rx_ctrl.o(.data) for .data + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_vidc) refers to hal_internal_vsync.o(i.hal_internal_sync_get_fb_setting) for hal_internal_sync_get_fb_setting + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_vidc) refers to drv_vidc.o(i.drv_vidc_set_src_parameter) for drv_vidc_set_src_parameter + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_vidc) refers to drv_vidc.o(i.drv_vidc_set_pentile_swap) for drv_vidc_set_pentile_swap + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_vidc) refers to memcpya.o(.text) for __aeabi_memcpy4 + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_vidc) refers to drv_vidc.o(i.drv_vidc_set_dst_parameter) for drv_vidc_set_dst_parameter + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_vidc) refers to drv_vidc.o(i.drv_vidc_init_module_enable) for drv_vidc_init_module_enable + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_vidc) refers to drv_vidc.o(i.drv_vidc_set_rotation) for drv_vidc_set_rotation + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_vidc) refers to uidiv.o(.text) for __aeabi_uidivmod + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_vidc) refers to dfltui.o(.text) for __aeabi_ui2d + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_vidc) refers to dadd.o(.text) for __aeabi_dadd + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_vidc) refers to dfixui.o(.text) for __aeabi_d2uiz + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_vidc) refers to drv_vidc.o(i.drv_vidc_set_scld_step) for drv_vidc_set_scld_step + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_vidc) refers to drv_param_init.o(i.drv_param_init_get_scld_filter_h) for drv_param_init_get_scld_filter_h + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_vidc) refers to drv_param_init.o(i.drv_param_init_get_scld_filter_v) for drv_param_init_get_scld_filter_v + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_vidc) refers to drv_vidc.o(i.drv_vidc_set_scld_hcoef0) for drv_vidc_set_scld_hcoef0 + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_vidc) refers to drv_vidc.o(i.drv_vidc_set_scld_hcoef1) for drv_vidc_set_scld_hcoef1 + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_vidc) refers to drv_vidc.o(i.drv_vidc_set_scld_vcoef0) for drv_vidc_set_scld_vcoef0 + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_vidc) refers to drv_vidc.o(i.drv_vidc_set_scld_vcoef1) for drv_vidc_set_scld_vcoef1 + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_vidc) refers to drv_vidc.o(i.drv_vidc_set_p2r_hinitr) for drv_vidc_set_p2r_hinitr + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_vidc) refers to drv_vidc.o(i.drv_vidc_set_p2r_hinitb) for drv_vidc_set_p2r_hinitb + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_vidc) refers to drv_param_init.o(i.drv_param_p2r_filter_init) for drv_param_p2r_filter_init + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_vidc) refers to drv_vidc.o(i.drv_vidc_set_p2r_hcoef0) for drv_vidc_set_p2r_hcoef0 + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_vidc) refers to drv_vidc.o(i.drv_vidc_set_mirror) for drv_vidc_set_mirror + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_vidc) refers to drv_vidc.o(i.drv_vidc_set_pu_ctrl) for drv_vidc_set_pu_ctrl + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_vidc) refers to drv_vidc.o(i.drv_vidc_set_irqen) for drv_vidc_set_irqen + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_vidc) refers to drv_vidc.o(i.drv_vidc_enable_irq) for drv_vidc_enable_irq + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_vidc) refers to hal_dsi_rx_ctrl.o(.bss) for .bss + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_pre_init_pps) refers to hal_dsi_rx_ctrl.o(.bss) for .bss + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_release_handle) refers to hal_dsi_rx_ctrl.o(.bss) for .bss + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_restart) refers to drv_dsi_rx.o(i.drv_dsi_rx_shut_down) for drv_dsi_rx_shut_down + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_restart) refers to drv_crgu.o(i.drv_crgu_set_reset) for drv_crgu_set_reset + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_restart) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init) for hal_dsi_rx_ctrl_init + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_restart) refers to hal_internal_vsync.o(i.hal_internal_vsync_get_tx_state) for hal_internal_vsync_get_tx_state + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_restart) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_start) for hal_dsi_rx_ctrl_start + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_restart) refers to hal_dsi_rx_ctrl.o(.bss) for .bss + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_send_ack_cmd) refers to tau_log.o(i.LOG_printf) for LOG_printf + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_send_ack_cmd) refers to drv_rxbr.o(i.drv_rxbr_set_ack_pkt_header) for drv_rxbr_set_ack_pkt_header + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_send_ack_cmd) refers to hal_dsi_rx_ctrl.o(.conststring) for .conststring + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_auto_hw_filter) refers to hal_internal_vsync.o(i.hal_internal_vsync_set_auto_hw_filter) for hal_internal_vsync_set_auto_hw_filter + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_auto_hw_filter) refers to hal_dsi_rx_ctrl.o(.data) for .data + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_cus_esc_clk) refers to drv_rxbr.o(i.drv_rxbr_get_clk) for drv_rxbr_get_clk + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_cus_esc_clk) refers to uidiv.o(.text) for __aeabi_uidivmod + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_cus_esc_clk) refers to drv_dsi_rx.o(i.drv_dsi_rx_set_ddi_cfg) for drv_dsi_rx_set_ddi_cfg + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_cus_esc_clk) refers to hal_dsi_rx_ctrl.o(.data) for .data + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_cus_scld_filter) refers to drv_vidc.o(i.drv_vidc_set_scld_hcoef0) for drv_vidc_set_scld_hcoef0 + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_cus_scld_filter) refers to drv_vidc.o(i.drv_vidc_set_scld_hcoef1) for drv_vidc_set_scld_hcoef1 + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_cus_scld_filter) refers to drv_vidc.o(i.drv_vidc_set_scld_vcoef0) for drv_vidc_set_scld_vcoef0 + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_cus_scld_filter) refers to drv_vidc.o(i.drv_vidc_set_scld_vcoef1) for drv_vidc_set_scld_vcoef1 + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_cus_scld_filter) refers to hal_internal_vsync.o(i.hal_internal_sync_get_fb_setting) for hal_internal_sync_get_fb_setting + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_cus_scld_filter) refers to drv_param_init.o(i.drv_param_init_set_scld_filter) for drv_param_init_set_scld_filter + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_cus_scld_filter) refers to hal_dsi_rx_ctrl.o(.bss) for .bss + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_cus_sync_line) refers to hal_internal_vsync.o(i.hal_internal_vsync_set_sync_line) for hal_internal_vsync_set_sync_line + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_cus_sync_line) refers to drv_rxbr.o(i.drv_rxbr_hline_rcv0_cfg) for drv_rxbr_hline_rcv0_cfg + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_cus_sync_line) refers to hal_dsi_rx_ctrl.o(.bss) for .bss + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_dcs_direct_mode) refers to hal_internal_vsync.o(i.hal_internal_vsync_set_dcs_direct_mode) for hal_internal_vsync_set_dcs_direct_mode + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_hw_cmd_filter) refers to drv_rxbr.o(i.drv_rxbr_set_cmd_filter) for drv_rxbr_set_cmd_filter + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_hw_cmd_filter) refers to hal_dsi_rx_ctrl.o(.bss) for .bss + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_hw_tear_mode) refers to drv_memc.o(i.drv_memc_set_tear_mode) for drv_memc_set_tear_mode + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_hw_tear_mode) refers to hal_internal_vsync.o(i.hal_internal_vsync_set_tear_mode) for hal_internal_vsync_set_tear_mode + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_hw_tear_mode) refers to hal_dsi_rx_ctrl.o(.bss) for .bss + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_ipi_cfg) refers to drv_dsi_rx.o(i.drv_dsi_rx_calc_ipi_tx_delay) for drv_dsi_rx_calc_ipi_tx_delay + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_ipi_cfg) refers to drv_dsi_rx.o(i.drv_dsi_rx_set_ipi_cfg) for drv_dsi_rx_set_ipi_cfg + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_pentile_format) refers to drv_vidc.o(i.drv_vidc_update_src_format) for drv_vidc_update_src_format + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_pentile_format) refers to drv_vidc.o(i.drv_vidc_set_pentile_swap) for drv_vidc_set_pentile_swap + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_pentile_format) refers to hal_dsi_rx_ctrl.o(.bss) for .bss + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_pixel_data) refers to hal_internal_vsync.o(i.hal_internal_sync_get_fb_setting) for hal_internal_sync_get_fb_setting + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_pixel_data) refers to dfltui.o(.text) for __aeabi_ui2d + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_pixel_data) refers to dflti.o(.text) for __aeabi_i2d + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_pixel_data) refers to dmul.o(.text) for __aeabi_dmul + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_pixel_data) refers to ddiv.o(.text) for __aeabi_ddiv + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_pixel_data) refers to dfixi.o(.text) for __aeabi_d2iz + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_rect_pixel_data) refers to hal_internal_vsync.o(i.hal_internal_sync_get_fb_setting) for hal_internal_sync_get_fb_setting + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_rect_pixel_data) refers to dfltui.o(.text) for __aeabi_ui2d + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_rect_pixel_data) refers to dflti.o(.text) for __aeabi_i2d + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_rect_pixel_data) refers to dmul.o(.text) for __aeabi_dmul + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_rect_pixel_data) refers to ddiv.o(.text) for __aeabi_ddiv + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_rect_pixel_data) refers to dfixi.o(.text) for __aeabi_d2iz + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_rx_clk) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_rxbr_clk) for hal_dsi_rx_ctrl_set_rxbr_clk + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_rx_clk) refers to drv_rxbr.o(i.drv_rxbr_get_clk) for drv_rxbr_get_clk + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_rx_clk) refers to uidiv.o(.text) for __aeabi_uidivmod + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_rx_clk) refers to drv_dsi_rx.o(i.drv_dsi_rx_set_ddi_cfg) for drv_dsi_rx_set_ddi_cfg + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_rx_clk) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_ipi_cfg) for hal_dsi_rx_ctrl_set_ipi_cfg + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_rx_clk) refers to hal_dsi_rx_ctrl.o(.data) for .data + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_rxbr_clk) refers to drv_crgu.o(i.drv_crgu_set_rxbr_src) for drv_crgu_set_rxbr_src + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_rxbr_clk) refers to drv_crgu.o(i.drv_crgu_set_rxbr_div) for drv_crgu_set_rxbr_div + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_rxbr_clk) refers to drv_crgu.o(i.drv_crgu_set_dsco_src) for drv_crgu_set_dsco_src + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_rxbr_clk) refers to drv_crgu.o(i.drv_crgu_set_dsco_src_div) for drv_crgu_set_dsco_src_div + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_rxbr_clk) refers to drv_crgu.o(i.drv_crgu_set_dsc_core_div) for drv_crgu_set_dsc_core_div + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_rxbr_clk) refers to drv_crgu.o(i.drv_crgu_set_clock) for drv_crgu_set_clock + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_sw_tear_mode) refers to drv_memc.o(i.drv_memc_set_tear_mode) for drv_memc_set_tear_mode + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_sw_tear_mode) refers to hal_internal_vsync.o(i.hal_internal_vsync_set_tear_mode) for hal_internal_vsync_set_tear_mode + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_sw_tear_mode) refers to hal_dsi_rx_ctrl.o(.bss) for .bss + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_te_waveform) refers to drv_memc.o(i.drv_memc_set_tear_waveform) for drv_memc_set_tear_waveform + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_te_waveform) refers to hal_dsi_rx_ctrl.o(.bss) for .bss + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_tear_mode_ex) refers to hal_internal_vsync.o(i.hal_internal_vsync_set_tear_mode) for hal_internal_vsync_set_tear_mode + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_start) refers to drv_vidc.o(i.drv_vidc_enable) for drv_vidc_enable + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_start) refers to drv_dsi_rx.o(i.drv_dsi_rx_power_up) for drv_dsi_rx_power_up + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_start) refers to hal_internal_vsync.o(i.hal_internal_vsync_set_rx_state) for hal_internal_vsync_set_rx_state + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_start) refers to hal_dsi_rx_ctrl.o(.bss) for .bss + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_stop) refers to drv_vidc.o(i.drv_vidc_enable) for drv_vidc_enable + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_stop) refers to drv_dsi_rx.o(i.drv_dsi_rx_shut_down) for drv_dsi_rx_shut_down + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_stop) refers to hal_internal_vsync.o(i.hal_internal_vsync_set_rx_state) for hal_internal_vsync_set_rx_state + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_stop) refers to hal_dsi_rx_ctrl.o(.bss) for .bss + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_toggle_input_frame_rate) refers to hal_dsi_rx_ctrl.o(i.__ARM_common_switch8) for __ARM_common_switch8 + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_toggle_input_frame_rate) refers to drv_memc.o(i.drv_memc_rate_transfer_sel) for drv_memc_rate_transfer_sel + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_toggle_input_frame_rate) refers to drv_memc.o(i.drv_memc_sel_vsync) for drv_memc_sel_vsync + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_toggle_input_frame_rate) refers to drv_memc.o(i.drv_memc_set_fs_en_conditions) for drv_memc_set_fs_en_conditions + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_toggle_input_frame_rate) refers to drv_memc.o(i.drv_memc_set_lcdc_st_conditions) for drv_memc_set_lcdc_st_conditions + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_toggle_input_frame_rate) refers to drv_memc.o(i.drv_memc_set_vidc_sync_cnt) for drv_memc_set_vidc_sync_cnt + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_toggle_input_frame_rate) refers to drv_rxbr.o(i.drv_rxbr_hline_rcv0_cfg) for drv_rxbr_hline_rcv0_cfg + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_toggle_input_frame_rate) refers to drv_rxbr.o(i.drv_rxbr_frame_drop_cfg) for drv_rxbr_frame_drop_cfg + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_toggle_resolution) refers to hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change) for hal_internal_sync_input_resolution_change + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_toggle_resolution) refers to hal_dsi_rx_ctrl.o(.bss) for .bss + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_toggle_resolution_ex) refers to hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change_ex) for hal_internal_sync_input_resolution_change_ex + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_toggle_resolution_ex) refers to hal_dsi_rx_ctrl.o(.bss) for .bss + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_calc_video_chunks) refers to ffltui.o(.text) for __aeabi_ui2f + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_calc_video_chunks) refers to fscalb.o(.text) for __ARM_scalbnf + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_calc_video_chunks) refers to fdiv.o(.text) for __aeabi_fdiv + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_calc_video_chunks) refers to fmul.o(.text) for __aeabi_fmul + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_calc_video_chunks) refers to idiv.o(.text) for __aeabi_idivmod + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_calc_video_chunks) refers to fflti.o(.text) for __aeabi_i2f + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_calc_video_chunks) refers to ffixi.o(.text) for __aeabi_f2iz + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_calc_video_chunks) refers to f2d.o(.text) for __aeabi_f2d + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_calc_video_chunks) refers to ceil.o(i.ceil) for ceil + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_calc_video_chunks) refers to dfixi.o(.text) for __aeabi_d2iz + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_calc_video_chunks) refers to fadd.o(.text) for __aeabi_fadd + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_calc_video_chunks) refers to memseta.o(.text) for __aeabi_memclr4 + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_calc_video_chunks) refers to drv_dsi_tx.o(i.drv_dsi_tx_set_video_chunk) for drv_dsi_tx_set_video_chunk + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_calc_video_chunks) refers to memcpya.o(.text) for __aeabi_memcpy4 + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_calc_video_chunks) refers to drv_dsi_tx.o(i.drv_dsi_tx_set_video_timing) for drv_dsi_tx_set_video_timing + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_config_params_for_lane_rate) refers to fadd.o(.text) for __aeabi_fadd + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_config_params_for_lane_rate) refers to hal_dsi_tx_ctrl.o(.bss) for .bss + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_count_lane_rate) refers to ffltui.o(.text) for __aeabi_ui2f + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_count_lane_rate) refers to fmul.o(.text) for __aeabi_fmul + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_count_lane_rate) refers to fdiv.o(.text) for __aeabi_fdiv + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_count_lane_rate) refers to f2d.o(.text) for __aeabi_f2d + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_count_lane_rate) refers to ceil.o(i.ceil) for ceil + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_count_lane_rate) refers to dfixui.o(.text) for __aeabi_d2uiz + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_count_lane_rate) refers to drv_phy_common.o(i.drv_phy_get_rate_para) for drv_phy_get_rate_para + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_count_lane_rate) refers to tau_log.o(i.LOG_printf) for LOG_printf + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_count_lane_rate) refers to idiv.o(.text) for __aeabi_idivmod + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_count_lane_rate) refers to uidiv.o(.text) for __aeabi_uidivmod + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_count_lane_rate) refers to fadd.o(.text) for __aeabi_fadd + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_count_lane_rate) refers to ffixui.o(.text) for __aeabi_f2uiz + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_count_lane_rate) refers to hal_internal_vsync.o(i.hal_internal_sync_get_hight_performan_mode) for hal_internal_sync_get_hight_performan_mode + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_count_lane_rate) refers to hal_dsi_tx_ctrl.o(.conststring) for .conststring + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_crop_pic) refers to hal_internal_vsync.o(i.hal_internal_sync_get_fb_setting) for hal_internal_sync_get_fb_setting + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_crop_pic) refers to uidiv.o(.text) for __aeabi_uidivmod + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_crop_pic) refers to hal_dsi_tx_ctrl.o(i.hal_lcdc_config_upscaler) for hal_lcdc_config_upscaler + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_crop_pic) refers to drv_lcdc.o(i.drv_lcdc_config_src_parameter) for drv_lcdc_config_src_parameter + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_crop_pic) refers to hal_internal_vsync.o(i.hal_internal_vsync_update_lcdc_addr) for hal_internal_vsync_update_lcdc_addr + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_cmd_mode_rcv_te) refers to hal_internal_vsync.o(i.hal_internal_sync_cmd_mode_rcv_te) for hal_internal_sync_cmd_mode_rcv_te + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_create_handle) refers to memseta.o(.text) for __aeabi_memclr4 + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_create_handle) refers to hal_dsi_tx_ctrl.o(.bss) for .bss + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_deinit) refers to drv_crgu.o(i.drv_crgu_set_clock) for drv_crgu_set_clock + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_deinit) refers to drv_crgu.o(i.drv_crgu_config_reset_modules) for drv_crgu_config_reset_modules + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_deinit) refers to memcpya.o(.text) for __aeabi_memcpy4 + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_deinit) refers to drv_param_init.o(i.drv_param_init_set_ccm) for drv_param_init_set_ccm + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_deinit) refers to hal_internal_vsync.o(i.hal_internal_vsync_set_tx_state) for hal_internal_vsync_set_tx_state + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_deinit) refers to hal_dsi_tx_ctrl.o(.bss) for .bss + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_deinit) refers to hal_dsi_tx_ctrl.o(.data) for .data + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_deinit) refers to hal_dsi_tx_ctrl.o(.constdata) for .constdata + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_draw_chessboard) refers to uidiv.o(.text) for __aeabi_uidivmod + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_draw_chessboard) refers to drv_crgu.o(i.drv_crgu_set_clock) for drv_crgu_set_clock + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_draw_chessboard) refers to drv_memc.o(i.drv_memc_set_data_mode) for drv_memc_set_data_mode + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_draw_chessboard) refers to hal_internal_vsync.o(i.hal_internal_sync_get_fb_setting) for hal_internal_sync_get_fb_setting + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_draw_chessboard) refers to hal_dsi_tx_ctrl.o(i.hal_lcdc_config_upscaler) for hal_lcdc_config_upscaler + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_draw_chessboard) refers to hal_dsi_tx_ctrl.o(i.hal_lcdc_config_remains) for hal_lcdc_config_remains + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_draw_chessboard) refers to drv_lcdc.o(i.drv_lcdc_config_bypass) for drv_lcdc_config_bypass + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_draw_chessboard) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_draw_mode_init) for hal_dsi_tx_ctrl_draw_mode_init + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_draw_chessboard) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_rect_pixel_data) for hal_dsi_tx_ctrl_set_rect_pixel_data + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_draw_chessboard) refers to hal_dsi_tx_ctrl.o(.bss) for .bss + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_draw_flicker) refers to drv_crgu.o(i.drv_crgu_set_clock) for drv_crgu_set_clock + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_draw_flicker) refers to drv_memc.o(i.drv_memc_set_data_mode) for drv_memc_set_data_mode + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_draw_flicker) refers to hal_internal_vsync.o(i.hal_internal_sync_get_fb_setting) for hal_internal_sync_get_fb_setting + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_draw_flicker) refers to hal_dsi_tx_ctrl.o(i.hal_lcdc_config_upscaler) for hal_lcdc_config_upscaler + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_draw_flicker) refers to hal_dsi_tx_ctrl.o(i.hal_lcdc_config_remains) for hal_lcdc_config_remains + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_draw_flicker) refers to drv_lcdc.o(i.drv_lcdc_config_bypass) for drv_lcdc_config_bypass + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_draw_flicker) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_draw_mode_init) for hal_dsi_tx_ctrl_draw_mode_init + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_draw_flicker) refers to hal_dsi_tx_ctrl.o(.bss) for .bss + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_enter_init_panel_mode) refers to drv_dsi_tx.o(i.drv_dsi_tx_command_mode_cfg) for drv_dsi_tx_command_mode_cfg + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_enter_init_panel_mode) refers to drv_dsi_tx.o(i.drv_dsi_tx_mode) for drv_dsi_tx_mode + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_enter_init_panel_mode) refers to hal_dsi_tx_ctrl.o(.bss) for .bss + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_enter_ulps_mode) refers to drv_dsi_tx.o(i.drv_dsi_tx_phy_ulps_enter) for drv_dsi_tx_phy_ulps_enter + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_exit_init_panel_mode) refers to drv_dsi_tx.o(i.drv_dsi_tx_command_mode_cfg) for drv_dsi_tx_command_mode_cfg + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_exit_init_panel_mode) refers to drv_dsi_tx.o(i.drv_dsi_tx_mode) for drv_dsi_tx_mode + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_exit_init_panel_mode) refers to hal_dsi_tx_ctrl.o(.data) for .data + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_exit_ulps_mode) refers to drv_dsi_tx.o(i.drv_dsi_tx_phy_ulps_exit) for drv_dsi_tx_phy_ulps_exit + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_init) refers to memseta.o(.text) for __aeabi_memclr4 + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_init) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_init_clk) for hal_dsi_tx_ctrl_init_clk + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_init) refers to hal_internal_vsync.o(i.hal_internal_vsync_init_tx) for hal_internal_vsync_init_tx + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_init) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_config_params_for_lane_rate) for hal_dsi_tx_config_params_for_lane_rate + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_init) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_count_lane_rate) for hal_dsi_tx_count_lane_rate + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_init) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_phy_cfg) for hal_dsi_tx_init_phy_cfg + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_init) refers to drv_dsi_tx.o(i.drv_dsi_tx_phy_test_setup) for drv_dsi_tx_phy_test_setup + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_init) refers to hal_dsi_tx_ctrl.o(i.hal_lcdc_init_clk) for hal_lcdc_init_clk + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_init) refers to hal_dsi_tx_ctrl.o(i.hal_lcdc_init_cfg) for hal_lcdc_init_cfg + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_init) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_dpi_cfg) for hal_dsi_tx_init_dpi_cfg + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_init) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_data_mode) for hal_dsi_tx_init_data_mode + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_init) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_remains) for hal_dsi_tx_init_remains + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_init) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_interrupt) for hal_dsi_tx_init_interrupt + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_init) refers to drv_dsi_tx.o(i.drv_dsi_tx_phy_status_ready) for drv_dsi_tx_phy_status_ready + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_init) refers to drv_dsi_tx.o(i.drv_dsi_tx_powerup) for drv_dsi_tx_powerup + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_init) refers to hal_internal_vsync.o(i.hal_internal_vsync_set_tx_state) for hal_internal_vsync_set_tx_state + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_init) refers to hal_dsi_tx_ctrl.o(.bss) for .bss + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_init_clk) refers to drv_crgu.o(i.drv_crgu_set_clock) for drv_crgu_set_clock + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_panel_reset_pin) refers to hal_gpio.o(i.hal_gpio_set_output_data) for hal_gpio_set_output_data + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_read_cmd) refers to memseta.o(.text) for __aeabi_memclr4 + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_read_cmd) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_send_cmd) for hal_dsi_tx_send_cmd + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_read_cmd) refers to drv_dsi_tx.o(i.drv_dsi_tx_get_cmd_status) for drv_dsi_tx_get_cmd_status + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_read_cmd) refers to drv_dsi_tx.o(i.drv_dsi_tx_command_get_payload) for drv_dsi_tx_command_get_payload + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_read_cmd) refers to memcpya.o(.text) for __aeabi_memcpy + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_release_handle) refers to hal_dsi_tx_ctrl.o(.bss) for .bss + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_ccm) refers to drv_param_init.o(i.drv_param_init_set_ccm) for drv_param_init_set_ccm + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_ccm) refers to drv_lcdc.o(i.drv_lcdc_config_int_single) for drv_lcdc_config_int_single + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_cus_pq_filter) refers to drv_lcdc.o(i.drv_lcdc_config_scale_up_coef) for drv_lcdc_config_scale_up_coef + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_cus_pq_filter) refers to drv_param_init.o(i.drv_param_init_set_sclu_filter) for drv_param_init_set_sclu_filter + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_endianness) refers to drv_lcdc.o(i.drv_lcdc_config_endianness) for drv_lcdc_config_endianness + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_escape_clock_div) refers to drv_dsi_tx.o(i.drv_dsi_tx_set_esc_div) for drv_dsi_tx_set_esc_div + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_lp_cmd) refers to drv_dsi_tx.o(i.drv_dsi_tx_video_mode_set_lp_cmd) for drv_dsi_tx_video_mode_set_lp_cmd + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_overwrite) refers to drv_lcdc.o(i.drv_lcdc_config_overwrite) for drv_lcdc_config_overwrite + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_overwrite_rgb) refers to drv_lcdc.o(i.drv_lcdc_config_overwrite_rgb) for drv_lcdc_config_overwrite_rgb + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_partial_disp) refers to drv_lcdc.o(i.drv_lcdc_config_partial_display_enable) for drv_lcdc_config_partial_display_enable + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_partial_disp_area) refers to drv_lcdc.o(i.drv_lcdc_config_partial_display_area) for drv_lcdc_config_partial_display_area + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_rect_pixel_data) refers to dfltui.o(.text) for __aeabi_ui2d + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_rect_pixel_data) refers to dflti.o(.text) for __aeabi_i2d + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_rect_pixel_data) refers to dmul.o(.text) for __aeabi_dmul + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_rect_pixel_data) refers to ddiv.o(.text) for __aeabi_ddiv + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_rect_pixel_data) refers to dfixi.o(.text) for __aeabi_d2iz + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_rect_pixel_data) refers to hal_dsi_tx_ctrl.o(.bss) for .bss + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_vpg) refers to drv_dsi_tx.o(i.drv_dsi_tx_set_vpg) for drv_dsi_tx_set_vpg + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_vpg) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_draw_flicker) for hal_dsi_tx_ctrl_draw_flicker + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_vpg) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_draw_chessboard) for hal_dsi_tx_ctrl_draw_chessboard + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_vpg) refers to hal_dsi_tx_ctrl.o(.data) for .data + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_vpg) refers to hal_dsi_tx_ctrl.o(.bss) for .bss + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_start) refers to drv_dsi_tx.o(i.drv_dsi_tx_config_eotp) for drv_dsi_tx_config_eotp + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_start) refers to drv_dsi_tx.o(i.drv_dsi_tx_phy_clock_lane_req_hs) for drv_dsi_tx_phy_clock_lane_req_hs + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_start) refers to hal_internal_vsync.o(i.hal_internal_vsync_set_tx_state) for hal_internal_vsync_set_tx_state + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_start) refers to drv_lcdc.o(i.drv_lcdc_enable_shadow_reg) for drv_lcdc_enable_shadow_reg + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_start) refers to drv_lcdc.o(i.drv_lcdc_set_video_hw_mode) for drv_lcdc_set_video_hw_mode + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_start) refers to drv_lcdc.o(i.drv_lcdc_config_overwrite) for drv_lcdc_config_overwrite + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_start) refers to drv_lcdc.o(i.drv_lcdc_start) for drv_lcdc_start + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_start) refers to hal_dsi_tx_ctrl.o(.bss) for .bss + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_start) refers to hal_dsi_tx_ctrl.o(.data) for .data + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_stop) refers to drv_lcdc.o(i.drv_lcdc_set_int) for drv_lcdc_set_int + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_stop) refers to drv_dsi_tx.o(i.drv_dsi_tx_set_int) for drv_dsi_tx_set_int + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_stop) refers to drv_dsi_tx.o(i.drv_dsi_tx_shutdown) for drv_dsi_tx_shutdown + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_stop) refers to hal_internal_vsync.o(i.hal_internal_vsync_set_tx_state) for hal_internal_vsync_set_tx_state + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_stop) refers to hal_dsi_tx_ctrl.o(.bss) for .bss + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_stop) refers to hal_dsi_tx_ctrl.o(.data) for .data + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_write_array_cmd) refers to drv_dsi_tx.o(i.drv_dsi_tx_get_cmd_status) for drv_dsi_tx_get_cmd_status + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_write_array_cmd) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_send_cmd) for hal_dsi_tx_send_cmd + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_write_array_cmd) refers to drv_dsi_tx.o(i.drv_dsi_tx_command_put_payload) for drv_dsi_tx_command_put_payload + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_write_cmd) refers to drv_dsi_tx.o(i.drv_dsi_tx_get_cmd_status) for drv_dsi_tx_get_cmd_status + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_write_cmd) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_send_cmd) for hal_dsi_tx_send_cmd + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_write_cmd) refers to drv_dsi_tx.o(i.drv_dsi_tx_command_put_payload) for drv_dsi_tx_command_put_payload + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_data_mode) refers to drv_dsi_tx.o(i.drv_dsi_tx_mode) for drv_dsi_tx_mode + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_data_mode) refers to drv_dsi_tx.o(i.drv_dsi_tx_edpi_cmd_size) for drv_dsi_tx_edpi_cmd_size + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_data_mode) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_video_mode) for hal_dsi_tx_init_video_mode + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_data_mode) refers to hal_dsi_tx_ctrl.o(.data) for .data + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_dpi_cfg) refers to drv_dsi_tx.o(i.drv_dsi_tx_dpi_mode) for drv_dsi_tx_dpi_mode + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_dpi_cfg) refers to drv_dsi_tx.o(i.drv_dsi_tx_dpi_polarity) for drv_dsi_tx_dpi_polarity + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_dpi_cfg) refers to drv_dsi_tx.o(i.drv_dsi_tx_dpi_lpcmd_time) for drv_dsi_tx_dpi_lpcmd_time + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_interrupt) refers to drv_dsi_tx.o(i.drv_dsi_tx_set_int) for drv_dsi_tx_set_int + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_interrupt) refers to drv_dsi_tx.o(i.drv_dsi_tx_config_int) for drv_dsi_tx_config_int + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_phy_cfg) refers to drv_dsi_tx.o(i.drv_dsi_tx_phy_lane_mode) for drv_dsi_tx_phy_lane_mode + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_phy_cfg) refers to drv_dsi_tx.o(i.drv_dsi_tx_phy_time_cfg) for drv_dsi_tx_phy_time_cfg + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_remains) refers to drv_dsi_tx.o(i.drv_dsi_tx_response_mode) for drv_dsi_tx_response_mode + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_remains) refers to drv_dsi_tx.o(i.drv_dsi_tx_set_esc_div) for drv_dsi_tx_set_esc_div + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_remains) refers to drv_dsi_tx.o(i.drv_dsi_tx_set_time_out_div) for drv_dsi_tx_set_time_out_div + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_remains) refers to drv_dsi_tx.o(i.drv_dsi_tx_timeout_cfg) for drv_dsi_tx_timeout_cfg + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_remains) refers to drv_dsi_tx.o(i.drv_dsi_tx_config_eotp) for drv_dsi_tx_config_eotp + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_remains) refers to drv_dsi_tx.o(i.drv_dsi_tx_phy_clock_lane_req_hs) for drv_dsi_tx_phy_clock_lane_req_hs + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_remains) refers to drv_dsi_tx.o(i.drv_dsi_tx_phy_clock_lane_auto_lp) for drv_dsi_tx_phy_clock_lane_auto_lp + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_video_mode) refers to drv_dsi_tx.o(i.drv_dsi_tx_video_mode_cfg) for drv_dsi_tx_video_mode_cfg + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_video_mode) refers to drv_dsi_tx.o(i.drv_dsi_tx_set_bta_ack) for drv_dsi_tx_set_bta_ack + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_video_mode) refers to drv_dsi_tx.o(i.drv_dsi_tx_video_mode_set_lp_cmd) for drv_dsi_tx_video_mode_set_lp_cmd + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_video_mode) refers to drv_dsi_tx.o(i.drv_dsi_tx_video_mode_disable_hact_cmd) for drv_dsi_tx_video_mode_disable_hact_cmd + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_video_mode) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_calc_video_chunks) for hal_dsi_tx_calc_video_chunks + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_send_cmd) refers to drv_dsi_tx.o(i.drv_dsi_tx_get_cmd_status) for drv_dsi_tx_get_cmd_status + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_send_cmd) refers to drv_dsi_tx.o(i.drv_dsi_tx_command_header) for drv_dsi_tx_command_header + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_send_cmd) refers to drv_dsi_tx.o(i.drv_dsi_tx_phy_status_stopstate) for drv_dsi_tx_phy_status_stopstate + hal_dsi_tx_ctrl.o(i.hal_dsi_tx_send_cmd) refers to hal_dsi_tx_ctrl.o(.bss) for .bss + hal_dsi_tx_ctrl.o(i.hal_lcdc_config_ccm) refers to drv_param_init.o(i.drv_param_init_get_ccm) for drv_param_init_get_ccm + hal_dsi_tx_ctrl.o(i.hal_lcdc_config_ccm) refers to drv_lcdc.o(i.drv_lcdc_config_ccm) for drv_lcdc_config_ccm + hal_dsi_tx_ctrl.o(i.hal_lcdc_config_ccm) refers to drv_lcdc.o(i.drv_lcdc_config_bypass) for drv_lcdc_config_bypass + hal_dsi_tx_ctrl.o(i.hal_lcdc_config_remains) refers to drv_lcdc.o(i.drv_lcdc_config_disp_mode) for drv_lcdc_config_disp_mode + hal_dsi_tx_ctrl.o(i.hal_lcdc_config_remains) refers to drv_lcdc.o(i.drv_lcdc_config_edpi_mode) for drv_lcdc_config_edpi_mode + hal_dsi_tx_ctrl.o(i.hal_lcdc_config_remains) refers to drv_lcdc.o(i.drv_lcdc_config_endianness) for drv_lcdc_config_endianness + hal_dsi_tx_ctrl.o(i.hal_lcdc_config_remains) refers to drv_lcdc.o(i.drv_lcdc_config_thresh) for drv_lcdc_config_thresh + hal_dsi_tx_ctrl.o(i.hal_lcdc_config_remains) refers to drv_lcdc.o(i.drv_lcdc_config_dpi_polarity) for drv_lcdc_config_dpi_polarity + hal_dsi_tx_ctrl.o(i.hal_lcdc_config_remains) refers to drv_lcdc.o(i.drv_lcdc_config_src_parameter) for drv_lcdc_config_src_parameter + hal_dsi_tx_ctrl.o(i.hal_lcdc_config_rgb_to_pentile) refers to drv_lcdc.o(i.drv_lcdc_config_bypass) for drv_lcdc_config_bypass + hal_dsi_tx_ctrl.o(i.hal_lcdc_config_upscaler) refers to uidiv.o(.text) for __aeabi_uidivmod + hal_dsi_tx_ctrl.o(i.hal_lcdc_config_upscaler) refers to dfltui.o(.text) for __aeabi_ui2d + hal_dsi_tx_ctrl.o(i.hal_lcdc_config_upscaler) refers to dadd.o(.text) for __aeabi_dadd + hal_dsi_tx_ctrl.o(i.hal_lcdc_config_upscaler) refers to dfixui.o(.text) for __aeabi_d2uiz + hal_dsi_tx_ctrl.o(i.hal_lcdc_config_upscaler) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_partial_disp_area) for hal_dsi_tx_ctrl_set_partial_disp_area + hal_dsi_tx_ctrl.o(i.hal_lcdc_config_upscaler) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_partial_disp) for hal_dsi_tx_ctrl_set_partial_disp + hal_dsi_tx_ctrl.o(i.hal_lcdc_config_upscaler) refers to drv_lcdc.o(i.drv_lcdc_config_scale_up_step) for drv_lcdc_config_scale_up_step + hal_dsi_tx_ctrl.o(i.hal_lcdc_config_upscaler) refers to drv_param_init.o(i.drv_param_init_get_sclu_filter) for drv_param_init_get_sclu_filter + hal_dsi_tx_ctrl.o(i.hal_lcdc_config_upscaler) refers to drv_lcdc.o(i.drv_lcdc_config_scale_up_coef) for drv_lcdc_config_scale_up_coef + hal_dsi_tx_ctrl.o(i.hal_lcdc_config_upscaler) refers to drv_lcdc.o(i.drv_lcdc_config_bypass) for drv_lcdc_config_bypass + hal_dsi_tx_ctrl.o(i.hal_lcdc_init_cfg) refers to hal_internal_vsync.o(i.hal_internal_sync_get_fb_setting) for hal_internal_sync_get_fb_setting + hal_dsi_tx_ctrl.o(i.hal_lcdc_init_cfg) refers to hal_dsi_tx_ctrl.o(i.hal_lcdc_config_upscaler) for hal_lcdc_config_upscaler + hal_dsi_tx_ctrl.o(i.hal_lcdc_init_cfg) refers to hal_dsi_tx_ctrl.o(i.hal_lcdc_config_ccm) for hal_lcdc_config_ccm + hal_dsi_tx_ctrl.o(i.hal_lcdc_init_cfg) refers to hal_dsi_tx_ctrl.o(i.hal_lcdc_config_rgb_to_pentile) for hal_lcdc_config_rgb_to_pentile + hal_dsi_tx_ctrl.o(i.hal_lcdc_init_cfg) refers to drv_lcdc.o(i.drv_lcdc_config_bypass) for drv_lcdc_config_bypass + hal_dsi_tx_ctrl.o(i.hal_lcdc_init_cfg) refers to hal_dsi_tx_ctrl.o(i.hal_lcdc_config_remains) for hal_lcdc_config_remains + hal_dsi_tx_ctrl.o(i.hal_lcdc_init_cfg) refers to hal_dsi_tx_ctrl.o(i.hal_lcdc_init_interrupt) for hal_lcdc_init_interrupt + hal_dsi_tx_ctrl.o(i.hal_lcdc_init_cfg) refers to drv_lcdc.o(i.drv_lcdc_set_prefetch) for drv_lcdc_set_prefetch + hal_dsi_tx_ctrl.o(i.hal_lcdc_init_clk) refers to memseta.o(.text) for __aeabi_memclr4 + hal_dsi_tx_ctrl.o(i.hal_lcdc_init_clk) refers to ffltui.o(.text) for __aeabi_ui2f + hal_dsi_tx_ctrl.o(i.hal_lcdc_init_clk) refers to drv_crgu.o(i.drv_crgu_set_dpi_pre_div) for drv_crgu_set_dpi_pre_div + hal_dsi_tx_ctrl.o(i.hal_lcdc_init_clk) refers to drv_crgu.o(i.drv_crgu_set_dpi_pre_src) for drv_crgu_set_dpi_pre_src + hal_dsi_tx_ctrl.o(i.hal_lcdc_init_clk) refers to drv_crgu.o(i.drv_crgu_set_dpi_mux_src) for drv_crgu_set_dpi_mux_src + hal_dsi_tx_ctrl.o(i.hal_lcdc_init_clk) refers to fmul.o(.text) for __aeabi_fmul + hal_dsi_tx_ctrl.o(i.hal_lcdc_init_clk) refers to fdiv.o(.text) for __aeabi_fdiv + hal_dsi_tx_ctrl.o(i.hal_lcdc_init_clk) refers to f2d.o(.text) for __aeabi_f2d + hal_dsi_tx_ctrl.o(i.hal_lcdc_init_clk) refers to ceil.o(i.ceil) for ceil + hal_dsi_tx_ctrl.o(i.hal_lcdc_init_clk) refers to dfixui.o(.text) for __aeabi_d2uiz + hal_dsi_tx_ctrl.o(i.hal_lcdc_init_clk) refers to memcpya.o(.text) for __aeabi_memcpy4 + hal_dsi_tx_ctrl.o(i.hal_lcdc_init_clk) refers to drv_lcdc.o(i.drv_lcdc_config_dpi_timing) for drv_lcdc_config_dpi_timing + hal_dsi_tx_ctrl.o(i.hal_lcdc_init_clk) refers to hal_internal_vsync.o(i.hal_internal_sync_get_fb_setting) for hal_internal_sync_get_fb_setting + hal_dsi_tx_ctrl.o(i.hal_lcdc_init_clk) refers to cfrcmple.o(.text) for __aeabi_cfrcmple + hal_dsi_tx_ctrl.o(i.hal_lcdc_init_clk) refers to ffixi.o(.text) for __aeabi_f2iz + hal_dsi_tx_ctrl.o(i.hal_lcdc_init_clk) refers to idiv.o(.text) for __aeabi_idivmod + hal_dsi_tx_ctrl.o(i.hal_lcdc_init_clk) refers to drv_crgu.o(i.drv_crgu_set_lcdc_div) for drv_crgu_set_lcdc_div + hal_dsi_tx_ctrl.o(i.hal_lcdc_init_clk) refers to drv_crgu.o(i.drv_crgu_set_lcdc_src) for drv_crgu_set_lcdc_src + hal_dsi_tx_ctrl.o(i.hal_lcdc_init_interrupt) refers to hal_internal_vsync.o(i.hal_internal_vsync_get_sync_line) for hal_internal_vsync_get_sync_line + hal_dsi_tx_ctrl.o(i.hal_lcdc_init_interrupt) refers to drv_lcdc.o(i.drv_lcdc_set_int) for drv_lcdc_set_int + hal_dsi_tx_ctrl.o(i.hal_lcdc_init_interrupt) refers to drv_lcdc.o(i.drv_lcdc_ctrl_flow) for drv_lcdc_ctrl_flow + hal_dsi_tx_ctrl.o(i.hal_lcdc_init_interrupt) refers to drv_lcdc.o(i.drv_lcdc_config_int) for drv_lcdc_config_int + hal_gpio.o(i.hal_gpio_ctrl_eint) refers to drv_gpio.o(i.drv_gpio_set_int) for drv_gpio_set_int + hal_gpio.o(i.hal_gpio_ctrl_eint) refers to hal_gpio.o(.constdata) for .constdata + hal_gpio.o(i.hal_gpio_get_input_data) refers to drv_gpio.o(i.drv_gpio_get_input_data) for drv_gpio_get_input_data + hal_gpio.o(i.hal_gpio_get_int_type) refers to hal_gpio.o(.constdata) for .constdata + hal_gpio.o(i.hal_gpio_get_pull_state) refers to drv_gpio.o(i.drv_gpio_get_pull_state) for drv_gpio_get_pull_state + hal_gpio.o(i.hal_gpio_get_pull_state) refers to hal_gpio.o(.constdata) for .constdata + hal_gpio.o(i.hal_gpio_init_eint) refers to drv_gpio.o(i.drv_gpio_set_ioe) for drv_gpio_set_ioe + hal_gpio.o(i.hal_gpio_init_eint) refers to hal_gpio.o(i.hal_gpio_set_mode) for hal_gpio_set_mode + hal_gpio.o(i.hal_gpio_init_eint) refers to drv_sys_cfg.o(i.drv_sys_cfg_sel_gpio_group) for drv_sys_cfg_sel_gpio_group + hal_gpio.o(i.hal_gpio_init_eint) refers to drv_sys_cfg.o(i.drv_sys_cfg_sel_int_trig) for drv_sys_cfg_sel_int_trig + hal_gpio.o(i.hal_gpio_init_eint) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + hal_gpio.o(i.hal_gpio_init_eint) refers to hal_gpio.o(.constdata) for .constdata + hal_gpio.o(i.hal_gpio_init_input) refers to drv_gpio.o(i.drv_gpio_set_ioe) for drv_gpio_set_ioe + hal_gpio.o(i.hal_gpio_init_input) refers to hal_gpio.o(i.hal_gpio_set_mode) for hal_gpio_set_mode + hal_gpio.o(i.hal_gpio_init_input) refers to hal_gpio.o(.constdata) for .constdata + hal_gpio.o(i.hal_gpio_init_output) refers to hal_gpio.o(i.drv_gpio_set_output_data) for drv_gpio_set_output_data + hal_gpio.o(i.hal_gpio_init_output) refers to drv_gpio.o(i.drv_gpio_set_ioe) for drv_gpio_set_ioe + hal_gpio.o(i.hal_gpio_init_output) refers to hal_gpio.o(i.hal_gpio_set_mode) for hal_gpio_set_mode + hal_gpio.o(i.hal_gpio_init_output) refers to hal_gpio.o(.constdata) for .constdata + hal_gpio.o(i.hal_gpio_reg_eint_cb) refers to drv_gpio.o(i.drv_gpio_register_callback) for drv_gpio_register_callback + hal_gpio.o(i.hal_gpio_reg_eint_cb) refers to hal_gpio.o(.constdata) for .constdata + hal_gpio.o(i.hal_gpio_set_ap_reset_int) refers to drv_gpio.o(i.drv_gpio_register_ap_reset_callback) for drv_gpio_register_ap_reset_callback + hal_gpio.o(i.hal_gpio_set_ap_reset_int) refers to drv_sys_cfg.o(i.drv_sys_cfg_sel_ap_rst_trig) for drv_sys_cfg_sel_ap_rst_trig + hal_gpio.o(i.hal_gpio_set_ap_reset_int) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + hal_gpio.o(i.hal_gpio_set_ap_reset_int) refers to drv_sys_cfg.o(i.drv_sys_cfg_set_int) for drv_sys_cfg_set_int + hal_gpio.o(i.hal_gpio_set_driving_strength) refers to drv_gpio.o(i.drv_gpio_set_driving_strength) for drv_gpio_set_driving_strength + hal_gpio.o(i.hal_gpio_set_driving_strength) refers to hal_gpio.o(.constdata) for .constdata + hal_gpio.o(i.hal_gpio_set_mode) refers to drv_gpio.o(i.drv_gpio_set_mode3) for drv_gpio_set_mode3 + hal_gpio.o(i.hal_gpio_set_mode) refers to drv_gpio.o(i.drv_gpio_set_mode2) for drv_gpio_set_mode2 + hal_gpio.o(i.hal_gpio_set_mode) refers to drv_gpio.o(i.drv_gpio_set_mode1) for drv_gpio_set_mode1 + hal_gpio.o(i.hal_gpio_set_mode) refers to drv_gpio.o(i.drv_gpio_set_mode0) for drv_gpio_set_mode0 + hal_gpio.o(i.hal_gpio_set_mode) refers to hal_gpio.o(.constdata) for .constdata + hal_gpio.o(i.hal_gpio_set_output_data) refers to hal_gpio.o(i.drv_gpio_set_output_data) for drv_gpio_set_output_data + hal_gpio.o(i.hal_gpio_set_pull_state) refers to drv_gpio.o(i.drv_gpio_set_pull_state) for drv_gpio_set_pull_state + hal_gpio.o(i.hal_gpio_set_pull_state) refers to hal_gpio.o(.constdata) for .constdata + hal_gpio.o(i.hal_gpio_set_schmitt_trigger) refers to drv_gpio.o(i.drv_gpio_set_schmitt_trigger) for drv_gpio_set_schmitt_trigger + hal_gpio.o(i.hal_gpio_set_schmitt_trigger) refers to hal_gpio.o(.constdata) for .constdata + hal_gpio.o(i.hal_gpio_set_slew_rate) refers to drv_gpio.o(i.drv_gpio_set_slew_rate) for drv_gpio_set_slew_rate + hal_gpio.o(i.hal_gpio_set_slew_rate) refers to hal_gpio.o(.constdata) for .constdata + hal_i2c_master.o(i.hal_i2c_m_deinit) refers to drv_i2c_master.o(i.drv_i2c_m_deinit) for drv_i2c_m_deinit + hal_i2c_master.o(i.hal_i2c_m_dma_init) refers to hal_gpio.o(i.hal_gpio_set_mode) for hal_gpio_set_mode + hal_i2c_master.o(i.hal_i2c_m_dma_init) refers to drv_i2c_master.o(i.drv_i2c_master_init) for drv_i2c_master_init + hal_i2c_master.o(i.hal_i2c_m_dma_init) refers to drv_i2c_master.o(i.drv_i2c1_set_callback) for drv_i2c1_set_callback + hal_i2c_master.o(i.hal_i2c_m_dma_init) refers to drv_i2c_master.o(i.drv_i2c_m_enable_intr) for drv_i2c_m_enable_intr + hal_i2c_master.o(i.hal_i2c_m_dma_init) refers to drv_i2c_dma.o(i.drv_i2c_dma_init) for drv_i2c_dma_init + hal_i2c_master.o(i.hal_i2c_m_dma_init) refers to drv_i2c_dma.o(i.drv_i2c_enable_rx_dma) for drv_i2c_enable_rx_dma + hal_i2c_master.o(i.hal_i2c_m_dma_init) refers to drv_i2c_dma.o(i.drv_i2c_enable_tx_dma) for drv_i2c_enable_tx_dma + hal_i2c_master.o(i.hal_i2c_m_dma_init) refers to hal_i2c_master.o(i.hal_i2c_master_irq_callback) for hal_i2c_master_irq_callback + hal_i2c_master.o(i.hal_i2c_m_dma_read) refers to drv_i2c_dma.o(i.drv_i2c_master_read_dma) for drv_i2c_master_read_dma + hal_i2c_master.o(i.hal_i2c_m_dma_read) refers to hal_i2c_master.o(.data) for .data + hal_i2c_master.o(i.hal_i2c_m_dma_write) refers to drv_i2c_dma.o(i.drv_i2c_master_write_dma) for drv_i2c_master_write_dma + hal_i2c_master.o(i.hal_i2c_m_dma_write) refers to hal_i2c_master.o(.data) for .data + hal_i2c_master.o(i.hal_i2c_m_set_high_impedance) refers to drv_i2c_master.o(i.drv_i2c_m_enable) for drv_i2c_m_enable + hal_i2c_master.o(i.hal_i2c_m_set_high_impedance) refers to hal_gpio.o(i.hal_gpio_set_mode) for hal_gpio_set_mode + hal_i2c_master.o(i.hal_i2c_m_set_high_impedance) refers to hal_gpio.o(i.hal_gpio_set_pull_state) for hal_gpio_set_pull_state + hal_i2c_master.o(i.hal_i2c_m_transfer_complate) refers to hal_i2c_master.o(.data) for .data + hal_i2c_master.o(i.hal_i2c_master_irq_callback) refers to drv_i2c_master.o(i.drv_i2c_m_clear_it_pending_bit) for drv_i2c_m_clear_it_pending_bit + hal_i2c_master.o(i.hal_i2c_master_irq_callback) refers to hal_i2c_master.o(.data) for .data + hal_i2c_slave.o(i.hal_i2c_s_deinit) refers to drv_i2c_slave.o(i.drv_i2c_s_set_intr) for drv_i2c_s_set_intr + hal_i2c_slave.o(i.hal_i2c_s_deinit) refers to drv_i2c_slave.o(i.drv_i2c_s_enable) for drv_i2c_s_enable + hal_i2c_slave.o(i.hal_i2c_s_deinit) refers to drv_crgu.o(i.drv_crgu_set_reset) for drv_crgu_set_reset + hal_i2c_slave.o(i.hal_i2c_s_deinit) refers to drv_crgu.o(i.drv_crgu_set_clock) for drv_crgu_set_clock + hal_i2c_slave.o(i.hal_i2c_s_deinit) refers to hal_i2c_slave.o(.data) for .data + hal_i2c_slave.o(i.hal_i2c_s_deinit) refers to hal_i2c_slave.o(.constdata) for .constdata + hal_i2c_slave.o(i.hal_i2c_s_dma_user_callback) refers to hal_i2c_slave.o(.data) for .data + hal_i2c_slave.o(i.hal_i2c_s_dma_write) refers to drv_dma.o(i.drv_dma_disenable_channel) for drv_dma_disenable_channel + hal_i2c_slave.o(i.hal_i2c_s_dma_write) refers to drv_i2c_dma.o(i.drv_i2c_slave_write_dma) for drv_i2c_slave_write_dma + hal_i2c_slave.o(i.hal_i2c_s_dma_write) refers to hal_i2c_slave.o(.data) for .data + hal_i2c_slave.o(i.hal_i2c_s_dma_write) refers to hal_i2c_slave.o(.constdata) for .constdata + hal_i2c_slave.o(i.hal_i2c_s_get_tx_byte_num) refers to hal_i2c_slave.o(.data) for .data + hal_i2c_slave.o(i.hal_i2c_s_init) refers to drv_crgu.o(i.drv_crgu_set_clock) for drv_crgu_set_clock + hal_i2c_slave.o(i.hal_i2c_s_init) refers to hal_gpio.o(i.hal_gpio_set_mode) for hal_gpio_set_mode + hal_i2c_slave.o(i.hal_i2c_s_init) refers to drv_i2c_slave.o(i.drv_i2c_slave_init) for drv_i2c_slave_init + hal_i2c_slave.o(i.hal_i2c_s_init) refers to drv_i2c_master.o(i.drv_i2c1_set_callback) for drv_i2c1_set_callback + hal_i2c_slave.o(i.hal_i2c_s_init) refers to drv_i2c_slave.o(i.drv_i2c_s_config_intr) for drv_i2c_s_config_intr + hal_i2c_slave.o(i.hal_i2c_s_init) refers to drv_i2c_slave.o(i.drv_i2c_s_set_intr) for drv_i2c_s_set_intr + hal_i2c_slave.o(i.hal_i2c_s_init) refers to drv_i2c_dma.o(i.drv_i2c_dma_init) for drv_i2c_dma_init + hal_i2c_slave.o(i.hal_i2c_s_init) refers to drv_i2c_dma.o(i.drv_i2c_set_dma_irq_callback) for drv_i2c_set_dma_irq_callback + hal_i2c_slave.o(i.hal_i2c_s_init) refers to drv_sys_cfg.o(i.drv_sys_cfg_set_dma_tx_req) for drv_sys_cfg_set_dma_tx_req + hal_i2c_slave.o(i.hal_i2c_s_init) refers to drv_i2c_dma.o(i.drv_i2c_enable_tx_dma) for drv_i2c_enable_tx_dma + hal_i2c_slave.o(i.hal_i2c_s_init) refers to drv_dma.o(i.drv_dma_enable_channel_interrupts) for drv_dma_enable_channel_interrupts + hal_i2c_slave.o(i.hal_i2c_s_init) refers to drv_i2c_slave.o(i.drv_i2c0_set_callback) for drv_i2c0_set_callback + hal_i2c_slave.o(i.hal_i2c_s_init) refers to hal_i2c_slave.o(.data) for .data + hal_i2c_slave.o(i.hal_i2c_s_init) refers to hal_i2c_slave.o(.constdata) for .constdata + hal_i2c_slave.o(i.hal_i2c_s_init) refers to hal_i2c_slave.o(i.hal_i2c_slave_irq_callback) for hal_i2c_slave_irq_callback + hal_i2c_slave.o(i.hal_i2c_s_init) refers to hal_i2c_slave.o(i.hal_i2c_s_dma_user_callback) for hal_i2c_s_dma_user_callback + hal_i2c_slave.o(i.hal_i2c_s_nonblocking_read) refers to hal_i2c_slave.o(.data) for .data + hal_i2c_slave.o(i.hal_i2c_s_read_complate) refers to hal_i2c_slave.o(.data) for .data + hal_i2c_slave.o(i.hal_i2c_s_read_complate_clear) refers to hal_i2c_slave.o(.data) for .data + hal_i2c_slave.o(i.hal_i2c_s_read_data) refers to drv_i2c_slave.o(i.drv_i2c_s_read_data) for drv_i2c_s_read_data + hal_i2c_slave.o(i.hal_i2c_s_read_data) refers to hal_i2c_slave.o(.data) for .data + hal_i2c_slave.o(i.hal_i2c_s_read_data) refers to hal_i2c_slave.o(.constdata) for .constdata + hal_i2c_slave.o(i.hal_i2c_s_rxfifo_notempty) refers to drv_i2c_slave.o(i.drv_i2c_s_get_fifo_status) for drv_i2c_s_get_fifo_status + hal_i2c_slave.o(i.hal_i2c_s_rxfifo_notempty) refers to hal_i2c_slave.o(.data) for .data + hal_i2c_slave.o(i.hal_i2c_s_rxfifo_notempty) refers to hal_i2c_slave.o(.constdata) for .constdata + hal_i2c_slave.o(i.hal_i2c_s_sel) refers to hal_i2c_slave.o(.data) for .data + hal_i2c_slave.o(i.hal_i2c_s_set_dma_tx_cycle) refers to drv_dma.o(i.drv_dma_enable_cycle) for drv_dma_enable_cycle + hal_i2c_slave.o(i.hal_i2c_s_set_dma_tx_cycle) refers to hal_i2c_slave.o(.data) for .data + hal_i2c_slave.o(i.hal_i2c_s_set_dma_tx_cycle) refers to hal_i2c_slave.o(.constdata) for .constdata + hal_i2c_slave.o(i.hal_i2c_s_set_high_impedance) refers to drv_i2c_slave.o(i.drv_i2c_s_enable) for drv_i2c_s_enable + hal_i2c_slave.o(i.hal_i2c_s_set_high_impedance) refers to hal_gpio.o(i.hal_gpio_set_mode) for hal_gpio_set_mode + hal_i2c_slave.o(i.hal_i2c_s_set_high_impedance) refers to hal_gpio.o(i.hal_gpio_set_pull_state) for hal_gpio_set_pull_state + hal_i2c_slave.o(i.hal_i2c_s_set_high_impedance) refers to hal_i2c_slave.o(.data) for .data + hal_i2c_slave.o(i.hal_i2c_s_set_high_impedance) refers to hal_i2c_slave.o(.constdata) for .constdata + hal_i2c_slave.o(i.hal_i2c_s_set_transfer) refers to hal_i2c_slave.o(.data) for .data + hal_i2c_slave.o(i.hal_i2c_s_write_complate) refers to hal_i2c_slave.o(.data) for .data + hal_i2c_slave.o(i.hal_i2c_s_write_data) refers to drv_i2c_slave.o(i.drv_i2c_s_write_data) for drv_i2c_s_write_data + hal_i2c_slave.o(i.hal_i2c_s_write_data) refers to hal_i2c_slave.o(.data) for .data + hal_i2c_slave.o(i.hal_i2c_s_write_data) refers to hal_i2c_slave.o(.constdata) for .constdata + hal_i2c_slave.o(i.hal_i2c_slave_irq_callback) refers to drv_i2c_slave.o(i.drv_i2c_s_get_fifo_status) for drv_i2c_s_get_fifo_status + hal_i2c_slave.o(i.hal_i2c_slave_irq_callback) refers to drv_i2c_slave.o(i.drv_i2c_s_clear_it_pending_bit) for drv_i2c_s_clear_it_pending_bit + hal_i2c_slave.o(i.hal_i2c_slave_irq_callback) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + hal_i2c_slave.o(i.hal_i2c_slave_irq_callback) refers to drv_dma.o(i.drv_dma_disenable_channel) for drv_dma_disenable_channel + hal_i2c_slave.o(i.hal_i2c_slave_irq_callback) refers to drv_dma.o(i.drv_dma_enable_channel) for drv_dma_enable_channel + hal_i2c_slave.o(i.hal_i2c_slave_irq_callback) refers to drv_i2c_slave.o(i.drv_i2c_s_write_data) for drv_i2c_s_write_data + hal_i2c_slave.o(i.hal_i2c_slave_irq_callback) refers to hal_i2c_slave.o(.data) for .data + hal_i2c_slave.o(i.hal_i2c_slave_irq_callback) refers to hal_i2c_slave.o(.constdata) for .constdata + hal_pwm.o(i.hal_pwm_in_clear_int) refers to drv_pwm.o(i.drv_pwm_in_clear_pwm_int_all) for drv_pwm_in_clear_pwm_int_all + hal_pwm.o(i.hal_pwm_in_config_int) refers to drv_pwm.o(i.drv_pwm_in_set_pwm_int) for drv_pwm_in_set_pwm_int + hal_pwm.o(i.hal_pwm_in_ctrl_int) refers to drv_pwm.o(i.drv_pwm_in_set_sys_int) for drv_pwm_in_set_sys_int + hal_pwm.o(i.hal_pwm_in_deinit) refers to drv_pwm.o(i.drv_pwm_in_enable) for drv_pwm_in_enable + hal_pwm.o(i.hal_pwm_in_deinit) refers to drv_crgu.o(i.drv_crgu_set_clock) for drv_crgu_set_clock + hal_pwm.o(i.hal_pwm_in_get_current_count) refers to drv_pwm.o(i.drv_pwm_in_get_current_count) for drv_pwm_in_get_current_count + hal_pwm.o(i.hal_pwm_in_get_high_period) refers to drv_pwm.o(i.drv_pwm_in_get_high_period) for drv_pwm_in_get_high_period + hal_pwm.o(i.hal_pwm_in_get_high_period) refers to uidiv.o(.text) for __aeabi_uidivmod + hal_pwm.o(i.hal_pwm_in_get_high_period) refers to drv_common.o(.data) for g_system_clock + hal_pwm.o(i.hal_pwm_in_get_low_period) refers to drv_pwm.o(i.drv_pwm_in_get_low_period) for drv_pwm_in_get_low_period + hal_pwm.o(i.hal_pwm_in_get_low_period) refers to uidiv.o(.text) for __aeabi_uidivmod + hal_pwm.o(i.hal_pwm_in_get_low_period) refers to drv_common.o(.data) for g_system_clock + hal_pwm.o(i.hal_pwm_in_get_total_period) refers to drv_pwm.o(i.drv_pwm_in_get_counter_period) for drv_pwm_in_get_counter_period + hal_pwm.o(i.hal_pwm_in_get_total_period) refers to uidiv.o(.text) for __aeabi_uidivmod + hal_pwm.o(i.hal_pwm_in_get_total_period) refers to drv_common.o(.data) for g_system_clock + hal_pwm.o(i.hal_pwm_in_init) refers to drv_crgu.o(i.drv_crgu_set_clock) for drv_crgu_set_clock + hal_pwm.o(i.hal_pwm_in_init) refers to hal_gpio.o(i.hal_gpio_set_mode) for hal_gpio_set_mode + hal_pwm.o(i.hal_pwm_in_init) refers to drv_pwm.o(i.drv_pwm_in_enable) for drv_pwm_in_enable + hal_pwm.o(i.hal_pwm_in_register_callback) refers to drv_pwm.o(i.drv_pwm_in_register_callback) for drv_pwm_in_register_callback + hal_pwm.o(i.hal_pwm_in_set_int) refers to drv_pwm.o(i.drv_pwm_in_set_pwm_int) for drv_pwm_in_set_pwm_int + hal_pwm.o(i.hal_pwm_out_common_config) refers to drv_pwm.o(i.drv_pwm_out_set_control) for drv_pwm_out_set_control + hal_pwm.o(i.hal_pwm_out_common_config) refers to drv_pwm.o(i.drv_pwm_out_set_threshold) for drv_pwm_out_set_threshold + hal_pwm.o(i.hal_pwm_out_common_config) refers to drv_pwm.o(i.drv_pwm_out_set_period) for drv_pwm_out_set_period + hal_pwm.o(i.hal_pwm_out_config_all) refers to hal_pwm.o(i.hal_pwm_out_convert_time) for hal_pwm_out_convert_time + hal_pwm.o(i.hal_pwm_out_config_duty_ratio) refers to uidiv.o(.text) for __aeabi_uidivmod + hal_pwm.o(i.hal_pwm_out_config_duty_ratio) refers to hal_pwm.o(i.hal_pwm_out_convert_time) for hal_pwm_out_convert_time + hal_pwm.o(i.hal_pwm_out_config_duty_ratio) refers to drv_common.o(.data) for g_system_clock + hal_pwm.o(i.hal_pwm_out_convert_time) refers to uidiv.o(.text) for __aeabi_uidivmod + hal_pwm.o(i.hal_pwm_out_convert_time) refers to drv_pwm.o(i.drv_pwm_out_set_sync_mode) for drv_pwm_out_set_sync_mode + hal_pwm.o(i.hal_pwm_out_convert_time) refers to hal_pwm.o(i.hal_pwm_out_common_config) for hal_pwm_out_common_config + hal_pwm.o(i.hal_pwm_out_convert_time) refers to tau_delay.o(i.delayUs) for delayUs + hal_pwm.o(i.hal_pwm_out_convert_time) refers to drv_pwm.o(i.drv_pwm_out_get_sync_flag) for drv_pwm_out_get_sync_flag + hal_pwm.o(i.hal_pwm_out_convert_time) refers to drv_pwm.o(i.drv_pwm_out_enable) for drv_pwm_out_enable + hal_pwm.o(i.hal_pwm_out_convert_time) refers to drv_common.o(.data) for g_system_clock + hal_pwm.o(i.hal_pwm_out_convert_time) refers to hal_pwm.o(.data) for .data + hal_pwm.o(i.hal_pwm_out_deinit) refers to drv_pwm.o(i.drv_pwm_out_enable) for drv_pwm_out_enable + hal_pwm.o(i.hal_pwm_out_deinit) refers to drv_crgu.o(i.drv_crgu_set_reset) for drv_crgu_set_reset + hal_pwm.o(i.hal_pwm_out_deinit) refers to drv_crgu.o(i.drv_crgu_set_clock) for drv_crgu_set_clock + hal_pwm.o(i.hal_pwm_out_deinit) refers to hal_pwm.o(.data) for .data + hal_pwm.o(i.hal_pwm_out_init) refers to drv_crgu.o(i.drv_crgu_set_clock) for drv_crgu_set_clock + hal_pwm.o(i.hal_pwm_out_pause) refers to drv_pwm.o(i.drv_pwm_out_pause) for drv_pwm_out_pause + hal_pwm.o(i.hal_pwm_out_sel_io) refers to hal_gpio.o(i.hal_gpio_set_mode) for hal_gpio_set_mode + hal_pwm.o(i.hal_pwm_out_sync_all) refers to hal_pwm.o(i.hal_pwm_out_convert_time) for hal_pwm_out_convert_time + hal_pwm.o(i.hal_pwm_out_sync_ctl) refers to drv_pwm.o(i.drv_pwm_out_set_sync_mode) for drv_pwm_out_set_sync_mode + hal_pwm.o(i.hal_pwm_out_sync_ctl) refers to drv_pwm.o(i.drv_pwm_out_set_control) for drv_pwm_out_set_control + hal_pwm.o(i.hal_pwm_out_sync_pause) refers to drv_pwm.o(i.drv_pwm_out_set_sync_mode) for drv_pwm_out_set_sync_mode + hal_pwm.o(i.hal_pwm_out_sync_pause) refers to drv_pwm.o(i.drv_pwm_out_pause) for drv_pwm_out_pause + hal_pwm.o(i.hal_pwm_out_sync_period) refers to drv_pwm.o(i.drv_pwm_out_set_sync_mode) for drv_pwm_out_set_sync_mode + hal_pwm.o(i.hal_pwm_out_sync_period) refers to uidiv.o(.text) for __aeabi_uidivmod + hal_pwm.o(i.hal_pwm_out_sync_period) refers to drv_pwm.o(i.drv_pwm_out_set_period) for drv_pwm_out_set_period + hal_pwm.o(i.hal_pwm_out_sync_period) refers to drv_common.o(.data) for g_system_clock + hal_pwm.o(i.hal_pwm_out_sync_thr) refers to drv_pwm.o(i.drv_pwm_out_set_sync_mode) for drv_pwm_out_set_sync_mode + hal_pwm.o(i.hal_pwm_out_sync_thr) refers to uidiv.o(.text) for __aeabi_uidivmod + hal_pwm.o(i.hal_pwm_out_sync_thr) refers to drv_pwm.o(i.drv_pwm_out_set_threshold) for drv_pwm_out_set_threshold + hal_pwm.o(i.hal_pwm_out_sync_thr) refers to drv_common.o(.data) for g_system_clock + hal_spi_master.o(i.hal_spi_m_callback) refers to drv_spi_dma.o(i.drv_spi_abort_dma) for drv_spi_abort_dma + hal_spi_master.o(i.hal_spi_m_callback) refers to hal_spi_master.o(.data) for .data + hal_spi_master.o(i.hal_spi_m_clear_rxfifo) refers to drv_spi_master.o(i.drv_spi_m_read_data) for drv_spi_m_read_data + hal_spi_master.o(i.hal_spi_m_deinit) refers to drv_spi_master.o(i.drv_spi_m_deinit) for drv_spi_m_deinit + hal_spi_master.o(i.hal_spi_m_dma_init) refers to hal_spi_master.o(i.hal_spi_m_gpio_init) for hal_spi_m_gpio_init + hal_spi_master.o(i.hal_spi_m_dma_init) refers to drv_spi_master.o(i.drv_spi_master_init) for drv_spi_master_init + hal_spi_master.o(i.hal_spi_m_dma_init) refers to drv_spi_dma.o(i.drv_spi_dma_init) for drv_spi_dma_init + hal_spi_master.o(i.hal_spi_m_dma_init) refers to drv_spi_dma.o(i.drv_spi_dma_ch6_init) for drv_spi_dma_ch6_init + hal_spi_master.o(i.hal_spi_m_dma_init) refers to drv_spi_dma.o(i.drv_spi_set_dma_irq_callback) for drv_spi_set_dma_irq_callback + hal_spi_master.o(i.hal_spi_m_dma_init) refers to drv_spi_dma.o(i.drv_spi_set_dma_ch6_irq_callback) for drv_spi_set_dma_ch6_irq_callback + hal_spi_master.o(i.hal_spi_m_dma_init) refers to drv_sys_cfg.o(i.drv_sys_cfg_set_dma_rx_req) for drv_sys_cfg_set_dma_rx_req + hal_spi_master.o(i.hal_spi_m_dma_init) refers to drv_sys_cfg.o(i.drv_sys_cfg_set_dma_tx_req) for drv_sys_cfg_set_dma_tx_req + hal_spi_master.o(i.hal_spi_m_dma_init) refers to drv_spi_master.o(i.drv_spi_m_enable_rx_dma) for drv_spi_m_enable_rx_dma + hal_spi_master.o(i.hal_spi_m_dma_init) refers to drv_spi_master.o(i.drv_spi_m_enable_tx_dma) for drv_spi_m_enable_tx_dma + hal_spi_master.o(i.hal_spi_m_dma_init) refers to hal_spi_master.o(i.hal_spi_m_callback) for hal_spi_m_callback + hal_spi_master.o(i.hal_spi_m_dma_read) refers to drv_spi_dma.o(i.drv_spim_dma_read) for drv_spim_dma_read + hal_spi_master.o(i.hal_spi_m_dma_read) refers to hal_spi_master.o(.data) for .data + hal_spi_master.o(i.hal_spi_m_dma_write) refers to drv_spi_dma.o(i.drv_spim_dma_write) for drv_spim_dma_write + hal_spi_master.o(i.hal_spi_m_dma_write) refers to hal_spi_master.o(.data) for .data + hal_spi_master.o(i.hal_spi_m_get_transfer_complate) refers to hal_spi_master.o(.data) for .data + hal_spi_master.o(i.hal_spi_m_gpio_init) refers to drv_spi_master.o(i.drv_spi_m_gpio_init) for drv_spi_m_gpio_init + hal_spi_master.o(i.hal_spi_m_read_rxfifo) refers to drv_spi_master.o(i.drv_spi_m_read_data) for drv_spi_m_read_data + hal_spi_master.o(i.hal_spi_m_set_high_impedance) refers to hal_gpio.o(i.hal_gpio_set_mode) for hal_gpio_set_mode + hal_spi_master.o(i.hal_spi_m_set_high_impedance) refers to hal_gpio.o(i.hal_gpio_init_input) for hal_gpio_init_input + hal_spi_master.o(i.hal_spi_m_set_high_impedance) refers to hal_gpio.o(i.hal_gpio_set_pull_state) for hal_gpio_set_pull_state + hal_swire.o(i.hal_swire_deinit) refers to drv_swire.o(i.drv_swire_enable) for drv_swire_enable + hal_swire.o(i.hal_swire_deinit) refers to drv_crgu.o(i.drv_crgu_set_clock) for drv_crgu_set_clock + hal_swire.o(i.hal_swire_init) refers to drv_crgu.o(i.drv_crgu_set_swire_div) for drv_crgu_set_swire_div + hal_swire.o(i.hal_swire_init) refers to drv_crgu.o(i.drv_crgu_set_clock) for drv_crgu_set_clock + hal_swire.o(i.hal_swire_init) refers to hal_gpio.o(i.hal_gpio_set_mode) for hal_gpio_set_mode + hal_swire.o(i.hal_swire_init) refers to drv_swire.o(i.drv_swire_enable) for drv_swire_enable + hal_swire.o(i.hal_swire_open) refers to drv_swire.o(i.drv_swire_set_power_down) for drv_swire_set_power_down + hal_swire.o(i.hal_swire_register_callback) refers to drv_swire.o(i.drv_swire_register_callback) for drv_swire_register_callback + hal_swire.o(i.hal_swire_start) refers to drv_swire.o(i.drv_swire_set_int) for drv_swire_set_int + hal_swire.o(i.hal_swire_start) refers to uidiv.o(.text) for __aeabi_uidivmod + hal_swire.o(i.hal_swire_start) refers to drv_swire.o(i.drv_swire_set_bit_time) for drv_swire_set_bit_time + hal_swire.o(i.hal_swire_start) refers to drv_swire.o(i.drv_swire_set_pulse_count) for drv_swire_set_pulse_count + hal_swire.o(i.hal_swire_start) refers to drv_common.o(.data) for g_system_clock + hal_system.o(i.hal_system_deep_sleep_mode) refers to drv_pwr.o(i.drv_pwr_enter_deep_sleep_mode) for drv_pwr_enter_deep_sleep_mode + hal_system.o(i.hal_system_disable_systick) refers to drv_common.o(i.drv_common_disable_systick) for drv_common_disable_systick + hal_system.o(i.hal_system_enable_systick) refers to drv_common.o(i.drv_common_enable_systick) for drv_common_enable_systick + hal_system.o(i.hal_system_flash_read) refers to norflash.o(i.norflash_init) for norflash_init + hal_system.o(i.hal_system_flash_read) refers to norflash.o(i.norflash_write_disable) for norflash_write_disable + hal_system.o(i.hal_system_flash_read) refers to drv_crgu.o(i.drv_crgu_set_clock) for drv_crgu_set_clock + hal_system.o(i.hal_system_flash_read) refers to norflash.o(i.norflash_dual_read) for norflash_dual_read + hal_system.o(i.hal_system_flash_write) refers to norflash.o(i.norflash_init) for norflash_init + hal_system.o(i.hal_system_flash_write) refers to norflash.o(i.norflash_erase_block) for norflash_erase_block + hal_system.o(i.hal_system_flash_write) refers to drv_crgu.o(i.drv_crgu_set_clock) for drv_crgu_set_clock + hal_system.o(i.hal_system_flash_write) refers to norflash.o(i.norflash_write) for norflash_write + hal_system.o(i.hal_system_get_tick) refers to drv_common.o(i.drv_common_get_tick) for drv_common_get_tick + hal_system.o(i.hal_system_idle_mode) refers to drv_common.o(i.drv_common_idle_mode) for drv_common_idle_mode + hal_system.o(i.hal_system_init) refers to drv_pwr.o(i.drv_pwr_set_system_clk_src) for drv_pwr_set_system_clk_src + hal_system.o(i.hal_system_init) refers to drv_crgu.o(i.drv_crgu_set_ahb_src) for drv_crgu_set_ahb_src + hal_system.o(i.hal_system_init) refers to drv_crgu.o(i.drv_crgu_set_ahb_pre_div) for drv_crgu_set_ahb_pre_div + hal_system.o(i.hal_system_init) refers to irq_redirect .o(i.handle_init) for handle_init + hal_system.o(i.hal_system_init) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_all_int) for drv_sys_cfg_clear_all_int + hal_system.o(i.hal_system_init) refers to drv_common.o(i.drv_common_system_init) for drv_common_system_init + hal_system.o(i.hal_system_init) refers to drv_crgu.o(i.drv_crgu_set_clock) for drv_crgu_set_clock + hal_system.o(i.hal_system_init) refers to drv_pwr.o(i.drv_pwr_set_pvd_mode) for drv_pwr_set_pvd_mode + hal_system.o(i.hal_system_init) refers to drv_common.o(.data) for g_system_clock + hal_system.o(i.hal_system_init_console) refers to hal_uart.o(i.hal_uart_init) for hal_uart_init + hal_system.o(i.hal_system_register_systick_cb) refers to drv_common.o(i.drv_common_systick_register_cb) for drv_common_systick_register_cb + hal_system.o(i.hal_system_set_phy_calibration) refers to drv_phy_common.o(i.drv_phy_enable_calibration) for drv_phy_enable_calibration + hal_system.o(i.hal_system_set_pvd) refers to drv_pwr.o(i.drv_pwr_set_pvd_mode) for drv_pwr_set_pvd_mode + hal_system.o(i.hal_system_set_vcc) refers to drv_pwr.o(i.drv_pwr_set_cp_mode) for drv_pwr_set_cp_mode + hal_system.o(i.hal_system_share_flash_mode) refers to drv_fls.o(i.drv_fls_gpio_connect) for drv_fls_gpio_connect + hal_system.o(i.hal_system_share_flash_mode) refers to drv_fls.o(i.drv_fls_gpio_disconnect) for drv_fls_gpio_disconnect + hal_system.o(i.hal_system_sleep_mode) refers to drv_crgu.o(i.drv_crgu_config_clocks) for drv_crgu_config_clocks + hal_timer.o(i.hal_timer_deinit) refers to drv_timer.o(i.drv_timer_set_int) for drv_timer_set_int + hal_timer.o(i.hal_timer_deinit) refers to drv_timer.o(i.drv_timer_set_repeat) for drv_timer_set_repeat + hal_timer.o(i.hal_timer_deinit) refers to drv_timer.o(i.drv_timer_enable) for drv_timer_enable + hal_timer.o(i.hal_timer_deinit) refers to drv_crgu.o(i.drv_crgu_set_reset) for drv_crgu_set_reset + hal_timer.o(i.hal_timer_deinit) refers to drv_crgu.o(i.drv_crgu_set_clock) for drv_crgu_set_clock + hal_timer.o(i.hal_timer_get_status) refers to drv_timer.o(i.drv_timer_get_status) for drv_timer_get_status + hal_timer.o(i.hal_timer_init) refers to drv_crgu.o(i.drv_crgu_set_clock) for drv_crgu_set_clock + hal_timer.o(i.hal_timer_init) refers to drv_timer.o(i.drv_timer_set_prescaler) for drv_timer_set_prescaler + hal_timer.o(i.hal_timer_set_repeat) refers to drv_timer.o(i.drv_timer_set_repeat) for drv_timer_set_repeat + hal_timer.o(i.hal_timer_start) refers to drv_timer.o(i.drv_timer_register_callback) for drv_timer_register_callback + hal_timer.o(i.hal_timer_start) refers to drv_timer.o(i.drv_timer_get_prescaler) for drv_timer_get_prescaler + hal_timer.o(i.hal_timer_start) refers to uidiv.o(.text) for __aeabi_uidivmod + hal_timer.o(i.hal_timer_start) refers to drv_timer.o(i.drv_timer_set_compare_val) for drv_timer_set_compare_val + hal_timer.o(i.hal_timer_start) refers to drv_timer.o(i.drv_timer_set_int) for drv_timer_set_int + hal_timer.o(i.hal_timer_start) refers to drv_timer.o(i.drv_timer_enable) for drv_timer_enable + hal_timer.o(i.hal_timer_start) refers to drv_common.o(.data) for g_system_clock + hal_timer.o(i.hal_timer_start_ex) refers to drv_timer.o(i.drv_timer_register_callback) for drv_timer_register_callback + hal_timer.o(i.hal_timer_start_ex) refers to drv_timer.o(i.drv_timer_get_prescaler) for drv_timer_get_prescaler + hal_timer.o(i.hal_timer_start_ex) refers to uidiv.o(.text) for __aeabi_uidivmod + hal_timer.o(i.hal_timer_start_ex) refers to drv_timer.o(i.drv_timer_set_compare_val) for drv_timer_set_compare_val + hal_timer.o(i.hal_timer_start_ex) refers to drv_timer.o(i.drv_timer_set_int) for drv_timer_set_int + hal_timer.o(i.hal_timer_start_ex) refers to drv_timer.o(i.drv_timer_enable) for drv_timer_enable + hal_timer.o(i.hal_timer_start_ex) refers to drv_common.o(.data) for g_system_clock + hal_timer.o(i.hal_timer_stop) refers to drv_timer.o(i.drv_timer_enable) for drv_timer_enable + hal_timer.o(i.hal_timer_stop) refers to drv_timer.o(i.drv_timer_set_int) for drv_timer_set_int + hal_timer.o(i.hal_timer_stop) refers to drv_timer.o(i.drv_timer_register_callback) for drv_timer_register_callback + hal_timer.o(i.hal_timer_stop) refers to drv_timer.o(i.drv_timer_set_compare_val) for drv_timer_set_compare_val + tau_delay.o(i.delayMs) refers to tau_delay.o(i.delayUs) for delayUs + tau_log.o(i.LOG_printf) refers to printfa.o(i.__0vsprintf) for vsprintf + tau_log.o(i.LOG_printf) refers to printfa.o(i.__0printf) for __2printf + tau_log.o(i.LOG_printf) refers to tau_log.o(.bss) for .bss + tau_log.o(i.fgetc) refers to hal_uart.o(i.hal_uart_receive_blocking) for hal_uart_receive_blocking + tau_log.o(i.fputc) refers to hal_uart.o(i.hal_uart_transmit_blocking) for hal_uart_transmit_blocking + hal_uart.o(i.hal_uart_deinit) refers to drv_dma.o(i.drv_dma_deinit) for drv_dma_deinit + hal_uart.o(i.hal_uart_deinit) refers to drv_uart.o(i.UART_Deinit) for UART_Deinit + hal_uart.o(i.hal_uart_dmacallback) refers to hal_uart.o(.bss) for .bss + hal_uart.o(i.hal_uart_init) refers to hal_gpio.o(i.hal_gpio_set_mode) for hal_gpio_set_mode + hal_uart.o(i.hal_uart_init) refers to memseta.o(.text) for __aeabi_memclr4 + hal_uart.o(i.hal_uart_init) refers to drv_uart.o(i.UART_init) for UART_init + hal_uart.o(i.hal_uart_init) refers to drv_common.o(.data) for g_system_clock + hal_uart.o(i.hal_uart_init) refers to hal_uart.o(.bss) for .bss + hal_uart.o(i.hal_uart_receive_blocking) refers to drv_uart.o(i.UART_ReadBlocking) for UART_ReadBlocking + hal_uart.o(i.hal_uart_receive_dma) refers to drv_dma.o(i.drv_dma_create_handle) for drv_dma_create_handle + hal_uart.o(i.hal_uart_receive_dma) refers to drv_uart_dma.o(i.UART_TransferCreateHandleDMA) for UART_TransferCreateHandleDMA + hal_uart.o(i.hal_uart_receive_dma) refers to drv_uart_dma.o(i.UART_TransferReceiveDMA) for UART_TransferReceiveDMA + hal_uart.o(i.hal_uart_receive_dma) refers to hal_uart.o(.bss) for .bss + hal_uart.o(i.hal_uart_receive_dma) refers to hal_uart.o(i.hal_uart_dmacallback) for hal_uart_dmacallback + hal_uart.o(i.hal_uart_transmit_blocking) refers to drv_uart.o(i.UART_WriteBlocking) for UART_WriteBlocking + hal_uart.o(i.hal_uart_transmit_dma) refers to drv_dma.o(i.drv_dma_create_handle) for drv_dma_create_handle + hal_uart.o(i.hal_uart_transmit_dma) refers to drv_uart_dma.o(i.UART_TransferCreateHandleDMA) for UART_TransferCreateHandleDMA + hal_uart.o(i.hal_uart_transmit_dma) refers to drv_uart_dma.o(i.UART_TransferSendDMA) for UART_TransferSendDMA + hal_uart.o(i.hal_uart_transmit_dma) refers to hal_uart.o(.bss) for .bss + hal_uart.o(i.hal_uart_transmit_dma) refers to hal_uart.o(i.hal_uart_dmacallback) for hal_uart_dmacallback + norflash.o(i.app_fls_ctrl_Handler) refers to drv_fls.o(i.fls_clr_interrupt_flag) for fls_clr_interrupt_flag + norflash.o(i.app_fls_ctrl_Handler) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + norflash.o(i.app_fls_ctrl_Handler) refers to norflash.o(.data) for .data + norflash.o(i.norflash_best_cfg_init) refers to drv_fls.o(i.fls_spi_init) for fls_spi_init + norflash.o(i.norflash_best_cfg_init) refers to norflash.o(.bss) for .bss + norflash.o(i.norflash_check_id) refers to norflash.o(i.norflash_read_id) for norflash_read_id + norflash.o(i.norflash_check_id) refers to tau_delay.o(i.delayUs) for delayUs + norflash.o(i.norflash_check_id) refers to norflash.o(.data) for .data + norflash.o(i.norflash_dma_callback) refers to norflash.o(.data) for .data + norflash.o(i.norflash_dma_read) refers to drv_dma.o(i.drv_dma_create_handle) for drv_dma_create_handle + norflash.o(i.norflash_dma_read) refers to drv_fls_dma.o(i.fls_transfer_create_handle_dma) for fls_transfer_create_handle_dma + norflash.o(i.norflash_dma_read) refers to drv_fls_dma.o(i.fls_dma_read_prepare) for fls_dma_read_prepare + norflash.o(i.norflash_dma_read) refers to drv_fls_dma.o(i.fls_transfer_dma) for fls_transfer_dma + norflash.o(i.norflash_dma_read) refers to drv_fls_dma.o(i.fls_dma_disable) for fls_dma_disable + norflash.o(i.norflash_dma_read) refers to norflash.o(.data) for .data + norflash.o(i.norflash_dma_read) refers to norflash.o(.bss) for .bss + norflash.o(i.norflash_dma_read) refers to norflash.o(i.norflash_dma_callback) for norflash_dma_callback + norflash.o(i.norflash_dma_write) refers to drv_dma.o(i.drv_dma_create_handle) for drv_dma_create_handle + norflash.o(i.norflash_dma_write) refers to drv_fls_dma.o(i.fls_transfer_create_handle_dma) for fls_transfer_create_handle_dma + norflash.o(i.norflash_dma_write) refers to norflash.o(i.norflash_write_enable) for norflash_write_enable + norflash.o(i.norflash_dma_write) refers to norflash.o(i.norflash_switch_fls_spi) for norflash_switch_fls_spi + norflash.o(i.norflash_dma_write) refers to drv_fls_dma.o(i.fls_dma_write_prepare) for fls_dma_write_prepare + norflash.o(i.norflash_dma_write) refers to drv_fls_dma.o(i.fls_transfer_dma) for fls_transfer_dma + norflash.o(i.norflash_dma_write) refers to drv_fls_dma.o(i.fls_dma_disable) for fls_dma_disable + norflash.o(i.norflash_dma_write) refers to drv_fls.o(i.fls_single_mode) for fls_single_mode + norflash.o(i.norflash_dma_write) refers to norflash.o(i.norflash_get_status) for norflash_get_status + norflash.o(i.norflash_dma_write) refers to norflash.o(i.norflash_write_disable) for norflash_write_disable + norflash.o(i.norflash_dma_write) refers to norflash.o(.bss) for .bss + norflash.o(i.norflash_dma_write) refers to norflash.o(i.norflash_dma_callback) for norflash_dma_callback + norflash.o(i.norflash_dma_write) refers to norflash.o(.data) for .data + norflash.o(i.norflash_dual_read) refers to drv_fls.o(i.fls_ddat_enable) for fls_ddat_enable + norflash.o(i.norflash_dual_read) refers to drv_fls.o(i.fls_set_addr_dummy) for fls_set_addr_dummy + norflash.o(i.norflash_dual_read) refers to drv_fls.o(i.fls_read_byte_data) for fls_read_byte_data + norflash.o(i.norflash_dual_write) refers to norflash.o(i.norflash_write_enable) for norflash_write_enable + norflash.o(i.norflash_dual_write) refers to norflash.o(i.norflash_switch_fls_spi) for norflash_switch_fls_spi + norflash.o(i.norflash_dual_write) refers to drv_fls.o(i.fls_write_byte_data) for fls_write_byte_data + norflash.o(i.norflash_dual_write) refers to drv_fls.o(i.fls_ddat_enable) for fls_ddat_enable + norflash.o(i.norflash_dual_write) refers to norflash.o(i.norflash_get_status) for norflash_get_status + norflash.o(i.norflash_dual_write) refers to norflash.o(i.norflash_write_disable) for norflash_write_disable + norflash.o(i.norflash_en4b) refers to norflash.o(i.norflash_write_enable) for norflash_write_enable + norflash.o(i.norflash_en4b) refers to drv_fls.o(i.fls_write_cmd) for fls_write_cmd + norflash.o(i.norflash_en4b) refers to norflash.o(i.norflash_get_status) for norflash_get_status + norflash.o(i.norflash_en4b) refers to norflash.o(i.norflash_read_config_reg) for norflash_read_config_reg + norflash.o(i.norflash_en4b) refers to norflash.o(i.norflash_write_disable) for norflash_write_disable + norflash.o(i.norflash_en_quad) refers to norflash.o(i.norflash_en_quad_check) for norflash_en_quad_check + norflash.o(i.norflash_en_quad) refers to norflash.o(i.norflash_write_enable) for norflash_write_enable + norflash.o(i.norflash_en_quad) refers to drv_fls.o(i.fls_write_byte_data) for fls_write_byte_data + norflash.o(i.norflash_en_quad) refers to drv_fls.o(i.fls_busy_pending) for fls_busy_pending + norflash.o(i.norflash_en_quad) refers to norflash.o(.bss) for .bss + norflash.o(i.norflash_en_quad_check) refers to norflash.o(i.norflash_get_dual_hstatus) for norflash_get_dual_hstatus + norflash.o(i.norflash_en_quad_check) refers to norflash.o(i.norflash_get_hstatus) for norflash_get_hstatus + norflash.o(i.norflash_en_quad_check) refers to norflash.o(i.norflash_get_status) for norflash_get_status + norflash.o(i.norflash_en_quad_check) refers to norflash.o(.bss) for .bss + norflash.o(i.norflash_erase_block) refers to norflash.o(i.norflash_write_enable) for norflash_write_enable + norflash.o(i.norflash_erase_block) refers to drv_fls.o(i.fls_write_byte_data) for fls_write_byte_data + norflash.o(i.norflash_erase_block) refers to norflash.o(i.norflash_get_status) for norflash_get_status + norflash.o(i.norflash_erase_block) refers to norflash.o(i.norflash_write_disable) for norflash_write_disable + norflash.o(i.norflash_erase_chip) refers to norflash.o(i.norflash_write_enable) for norflash_write_enable + norflash.o(i.norflash_erase_chip) refers to drv_fls.o(i.fls_write_cmd) for fls_write_cmd + norflash.o(i.norflash_erase_chip) refers to norflash.o(i.norflash_get_status) for norflash_get_status + norflash.o(i.norflash_erase_sector) refers to norflash.o(i.norflash_write_enable) for norflash_write_enable + norflash.o(i.norflash_erase_sector) refers to drv_fls.o(i.fls_write_byte_data) for fls_write_byte_data + norflash.o(i.norflash_erase_sector) refers to norflash.o(i.norflash_get_status) for norflash_get_status + norflash.o(i.norflash_erase_sector) refers to norflash.o(i.norflash_write_disable) for norflash_write_disable + norflash.o(i.norflash_ex4b) refers to norflash.o(i.norflash_write_enable) for norflash_write_enable + norflash.o(i.norflash_ex4b) refers to drv_fls.o(i.fls_write_cmd) for fls_write_cmd + norflash.o(i.norflash_ex4b) refers to norflash.o(i.norflash_get_status) for norflash_get_status + norflash.o(i.norflash_ex4b) refers to norflash.o(i.norflash_read_config_reg) for norflash_read_config_reg + norflash.o(i.norflash_ex4b) refers to norflash.o(i.norflash_write_disable) for norflash_write_disable + norflash.o(i.norflash_exit_quad) refers to norflash.o(i.norflash_write_enable) for norflash_write_enable + norflash.o(i.norflash_exit_quad) refers to drv_fls.o(i.fls_write_byte_data) for fls_write_byte_data + norflash.o(i.norflash_exit_quad) refers to norflash.o(i.norflash_en_quad_check) for norflash_en_quad_check + norflash.o(i.norflash_exit_quad) refers to drv_fls.o(i.fls_busy_pending) for fls_busy_pending + norflash.o(i.norflash_exit_quad) refers to norflash.o(.bss) for .bss + norflash.o(i.norflash_get_dual_hstatus) refers to drv_fls.o(i.fls_single_mode) for fls_single_mode + norflash.o(i.norflash_get_dual_hstatus) refers to drv_fls.o(i.fls_set_addr_dummy) for fls_set_addr_dummy + norflash.o(i.norflash_get_dual_hstatus) refers to drv_fls.o(i.fls_read_byte_data) for fls_read_byte_data + norflash.o(i.norflash_get_hstatus) refers to drv_fls.o(i.fls_single_mode) for fls_single_mode + norflash.o(i.norflash_get_hstatus) refers to drv_fls.o(i.fls_set_addr_dummy) for fls_set_addr_dummy + norflash.o(i.norflash_get_hstatus) refers to drv_fls.o(i.fls_read_byte_data) for fls_read_byte_data + norflash.o(i.norflash_get_status) refers to drv_fls.o(i.fls_single_mode) for fls_single_mode + norflash.o(i.norflash_get_status) refers to drv_fls.o(i.fls_set_addr_dummy) for fls_set_addr_dummy + norflash.o(i.norflash_get_status) refers to drv_fls.o(i.fls_read_byte_data) for fls_read_byte_data + norflash.o(i.norflash_init) refers to drv_fls.o(i.fls_get_default_spi_config) for fls_get_default_spi_config + norflash.o(i.norflash_init) refers to drv_fls.o(i.fls_get_default_fls_config) for fls_get_default_fls_config + norflash.o(i.norflash_init) refers to drv_fls.o(i.fls_get_default_tuning) for fls_get_default_tuning + norflash.o(i.norflash_init) refers to drv_fls.o(i.fls_init) for fls_init + norflash.o(i.norflash_init) refers to norflash.o(.bss) for .bss + norflash.o(i.norflash_init) refers to drv_fls.o(.data) for g_fls_tuning + norflash.o(i.norflash_quad_read) refers to drv_fls.o(i.fls_qdat_enable) for fls_qdat_enable + norflash.o(i.norflash_quad_read) refers to drv_fls.o(i.fls_qadr_enable) for fls_qadr_enable + norflash.o(i.norflash_quad_read) refers to drv_fls.o(i.fls_qcmd_enable) for fls_qcmd_enable + norflash.o(i.norflash_quad_read) refers to drv_fls.o(i.fls_set_addr_dummy) for fls_set_addr_dummy + norflash.o(i.norflash_quad_read) refers to drv_fls.o(i.fls_read_byte_data) for fls_read_byte_data + norflash.o(i.norflash_quad_write) refers to norflash.o(i.norflash_write_enable) for norflash_write_enable + norflash.o(i.norflash_quad_write) refers to norflash.o(i.norflash_switch_fls_spi) for norflash_switch_fls_spi + norflash.o(i.norflash_quad_write) refers to drv_fls.o(i.fls_write_byte_data) for fls_write_byte_data + norflash.o(i.norflash_quad_write) refers to drv_fls.o(i.fls_single_mode) for fls_single_mode + norflash.o(i.norflash_quad_write) refers to norflash.o(i.norflash_get_status) for norflash_get_status + norflash.o(i.norflash_quad_write) refers to norflash.o(i.norflash_write_disable) for norflash_write_disable + norflash.o(i.norflash_read) refers to drv_fls.o(i.fls_read_byte_data) for fls_read_byte_data + norflash.o(i.norflash_read_config_reg) refers to drv_fls.o(i.fls_read_byte_data) for fls_read_byte_data + norflash.o(i.norflash_read_id) refers to drv_fls.o(i.fls_read_cmd) for fls_read_cmd + norflash.o(i.norflash_set_best_cfg) refers to memseta.o(.text) for __aeabi_memclr4 + norflash.o(i.norflash_set_best_read_cfg) refers to norflash.o(i.norflash_en_quad) for norflash_en_quad + norflash.o(i.norflash_set_best_read_cfg) refers to norflash.o(.data) for .data + norflash.o(i.norflash_set_best_read_cfg) refers to norflash.o(.bss) for .bss + norflash.o(i.norflash_set_best_write_cfg) refers to norflash.o(i.norflash_en_quad) for norflash_en_quad + norflash.o(i.norflash_set_best_write_cfg) refers to norflash.o(.data) for .data + norflash.o(i.norflash_set_best_write_cfg) refers to norflash.o(.bss) for .bss + norflash.o(i.norflash_switch_fls_spi) refers to drv_fls.o(i.fls_single_mode) for fls_single_mode + norflash.o(i.norflash_switch_fls_spi) refers to drv_fls.o(i.fls_set_addr_dummy) for fls_set_addr_dummy + norflash.o(i.norflash_switch_fls_spi) refers to drv_fls.o(i.fls_ddat_enable) for fls_ddat_enable + norflash.o(i.norflash_switch_fls_spi) refers to drv_fls.o(i.fls_qdat_enable) for fls_qdat_enable + norflash.o(i.norflash_switch_fls_spi) refers to drv_fls.o(i.fls_qadr_enable) for fls_qadr_enable + norflash.o(i.norflash_write) refers to norflash.o(i.norflash_write_enable) for norflash_write_enable + norflash.o(i.norflash_write) refers to drv_fls.o(i.fls_write_byte_data) for fls_write_byte_data + norflash.o(i.norflash_write) refers to norflash.o(i.norflash_get_status) for norflash_get_status + norflash.o(i.norflash_write) refers to norflash.o(i.norflash_write_disable) for norflash_write_disable + norflash.o(i.norflash_write_disable) refers to drv_fls.o(i.fls_write_cmd) for fls_write_cmd + norflash.o(i.norflash_write_disable) refers to norflash.o(i.norflash_get_status) for norflash_get_status + norflash.o(i.norflash_write_disable) refers to norflash.o(.data) for .data + norflash.o(i.norflash_write_disable) refers to norflash.o(.bss) for .bss + norflash.o(i.norflash_write_enable) refers to drv_fls.o(i.fls_write_cmd) for fls_write_cmd + norflash.o(i.norflash_write_enable) refers to norflash.o(i.norflash_get_status) for norflash_get_status + norflash.o(i.norflash_write_enable) refers to norflash.o(.bss) for .bss + norflash.o(i.norflash_write_enable) refers to norflash.o(.data) for .data + norflash.o(i.norflash_write_endian_scr) refers to norflash.o(i.norflash_write_enable) for norflash_write_enable + norflash.o(i.norflash_write_endian_scr) refers to norflash.o(i.norflash_big_end_enable) for norflash_big_end_enable + norflash.o(i.norflash_write_endian_scr) refers to drv_fls.o(i.fls_en_scr) for fls_en_scr + norflash.o(i.norflash_write_endian_scr) refers to drv_fls.o(i.fls_write_byte_data) for fls_write_byte_data + norflash.o(i.norflash_write_endian_scr) refers to norflash.o(i.norflash_big_end_clear) for norflash_big_end_clear + norflash.o(i.norflash_write_endian_scr) refers to drv_fls.o(i.fls_scr_clear) for fls_scr_clear + norflash.o(i.norflash_write_endian_scr) refers to norflash.o(i.norflash_get_status) for norflash_get_status + norflash.o(i.norflash_write_endian_scr) refers to norflash.o(i.norflash_write_disable) for norflash_write_disable + drv_common.o(i.app_HardFault_Handler) refers to tau_log.o(i.LOG_printf) for LOG_printf + drv_common.o(i.app_SysTick_Handler) refers to drv_common.o(.data) for .data + drv_common.o(i.drv_common_enable_systick) refers to uidiv.o(.text) for __aeabi_uidivmod + drv_common.o(i.drv_common_enable_systick) refers to drv_common.o(.data) for .data + drv_common.o(i.drv_common_get_tick) refers to drv_common.o(.data) for .data + drv_common.o(i.drv_common_system_init) refers to drv_chip_info.o(i.drv_chip_info_init) for drv_chip_info_init + drv_common.o(i.drv_common_systick_register_cb) refers to drv_common.o(.data) for .data + drv_dma.o(i.app_dma_irq_handler) refers to drv_dma.o(i.drv_dma_irq_handler) for drv_dma_irq_handler + drv_dma.o(i.drv_dma_abort_transfer) refers to drv_dma.o(i.drv_dma_disenable_channel) for drv_dma_disenable_channel + drv_dma.o(i.drv_dma_abort_transfer) refers to drv_dma.o(i.drv_dma_disenable_channel_interrupts) for drv_dma_disenable_channel_interrupts + drv_dma.o(i.drv_dma_ahb_init) refers to drv_dma.o(i.drv_dma_disenable_channel) for drv_dma_disenable_channel + drv_dma.o(i.drv_dma_ahb_init) refers to drv_dma.o(i.drv_dma_disenable_channel_interrupts) for drv_dma_disenable_channel_interrupts + drv_dma.o(i.drv_dma_ahb_init) refers to drv_dma.o(i.drv_dma_clear_flag) for drv_dma_clear_flag + drv_dma.o(i.drv_dma_ahb_init) refers to drv_dma.o(i.drv_dma_set_ccr) for drv_dma_set_ccr + drv_dma.o(i.drv_dma_ahb_init) refers to drv_dma.o(i.drv_dma_prepar_transfer) for drv_dma_prepar_transfer + drv_dma.o(i.drv_dma_clear_flag) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_dma.o(i.drv_dma_create_handle) refers to drv_dma.o(.bss) for .bss + drv_dma.o(i.drv_dma_deinit) refers to drv_crgu.o(i.drv_crgu_set_clock) for drv_crgu_set_clock + drv_dma.o(i.drv_dma_disenable_channel_interrupts) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_dma.o(i.drv_dma_enable_channel_interrupts) refers to drv_sys_cfg.o(i.drv_sys_cfg_set_int) for drv_sys_cfg_set_int + drv_dma.o(i.drv_dma_enable_cycle) refers to drv_dma.o(i.drv_dma_disenable_channel) for drv_dma_disenable_channel + drv_dma.o(i.drv_dma_get_remaining_bytes) refers to drv_dma.o(i.drv_dma_channel_is_active) for drv_dma_channel_is_active + drv_dma.o(i.drv_dma_init) refers to drv_crgu.o(i.drv_crgu_set_clock) for drv_crgu_set_clock + drv_dma.o(i.drv_dma_init) refers to drv_dma.o(i.drv_dma_ahb_init) for drv_dma_ahb_init + drv_dma.o(i.drv_dma_irq_handler) refers to drv_dma.o(i.drv_dma_get_channel_flag) for drv_dma_get_channel_flag + drv_dma.o(i.drv_dma_irq_handler) refers to drv_dma.o(i.drv_dma_clear_flag) for drv_dma_clear_flag + drv_dma.o(i.drv_dma_irq_handler) refers to drv_dma.o(.bss) for .bss + drv_dma.o(i.drv_dma_m2m_init) refers to memseta.o(.text) for __aeabi_memclr4 + drv_dma.o(i.drv_dma_m2m_init) refers to drv_dma.o(i.drv_dma_init) for drv_dma_init + drv_dma.o(i.drv_dma_reset) refers to drv_crgu.o(i.drv_crgu_set_reset) for drv_crgu_set_reset + drv_dma.o(i.drv_dma_set_burst) refers to drv_dma.o(i.drv_dma_disenable_channel) for drv_dma_disenable_channel + drv_dma.o(i.drv_dma_set_transfer) refers to drv_dma.o(i.drv_dma_set_burst) for drv_dma_set_burst + drv_dma.o(i.drv_dma_start_transfer) refers to drv_dma.o(i.drv_dma_enable_channel_interrupts) for drv_dma_enable_channel_interrupts + drv_dma.o(i.drv_dma_start_transfer) refers to drv_dma.o(i.drv_dma_enable_channel) for drv_dma_enable_channel + drv_fls.o(i.drv_fls_gpio_connect) refers to drv_fls.o(i.drv_fls_gpio_disconnect) for drv_fls_gpio_disconnect + drv_fls.o(i.drv_fls_gpio_disconnect) refers to drv_crgu.o(i.drv_crgu_set_clock) for drv_crgu_set_clock + drv_fls.o(i.fls_EnableClk) refers to drv_crgu.o(i.drv_crgu_set_clock) for drv_crgu_set_clock + drv_fls.o(i.fls_busy_pending) refers to norflash.o(i.norflash_get_status) for norflash_get_status + drv_fls.o(i.fls_de_init) refers to drv_fls_dma.o(i.fls_dma_disable) for fls_dma_disable + drv_fls.o(i.fls_de_init) refers to drv_dma.o(i.drv_dma_clear_flag) for drv_dma_clear_flag + drv_fls.o(i.fls_de_init) refers to drv_crgu.o(i.drv_crgu_set_clock) for drv_crgu_set_clock + drv_fls.o(i.fls_disable_it) refers to drv_fls.o(i.__NVIC_DisableIRQ) for __NVIC_DisableIRQ + drv_fls.o(i.fls_disable_it) refers to drv_fls.o(i.fls_set_mc_irq_mask) for fls_set_mc_irq_mask + drv_fls.o(i.fls_enable_it) refers to drv_fls.o(i.__NVIC_DisableIRQ) for __NVIC_DisableIRQ + drv_fls.o(i.fls_enable_it) refers to drv_fls.o(i.fls_set_mc_irq_mask) for fls_set_mc_irq_mask + drv_fls.o(i.fls_init) refers to drv_crgu.o(i.drv_crgu_set_clock) for drv_crgu_set_clock + drv_fls.o(i.fls_init) refers to drv_crgu.o(i.drv_crgu_set_reset) for drv_crgu_set_reset + drv_fls.o(i.fls_init) refers to drv_fls.o(i.fls_swrst) for fls_swrst + drv_fls.o(i.fls_init) refers to drv_fls.o(i.fls_spi_init) for fls_spi_init + drv_fls.o(i.fls_init) refers to drv_fls.o(i.fls_ctrl_cfg_init) for fls_ctrl_cfg_init + drv_fls.o(i.fls_init) refers to drv_fls.o(i.fls_set_tuning) for fls_set_tuning + drv_fls.o(i.fls_init) refers to drv_fls_dma.o(i.fls_dma_disable) for fls_dma_disable + drv_fls.o(i.fls_read_byte_data) refers to drv_fls.o(i.fls_swrst) for fls_swrst + drv_fls.o(i.fls_read_byte_data) refers to drv_fls.o(i.fls_clear_irq_status) for fls_clear_irq_status + drv_fls.o(i.fls_read_byte_data) refers to drv_fls.o(i.fls_set_read) for fls_set_read + drv_fls.o(i.fls_read_byte_data) refers to drv_fls.o(i.fls_spi_start) for fls_spi_start + drv_fls.o(i.fls_read_cmd) refers to drv_fls.o(i.fls_swrst) for fls_swrst + drv_fls.o(i.fls_read_cmd) refers to drv_fls.o(i.fls_clear_irq_status) for fls_clear_irq_status + drv_fls.o(i.fls_read_cmd) refers to drv_fls.o(i.fls_set_read) for fls_set_read + drv_fls.o(i.fls_read_cmd) refers to drv_fls.o(i.fls_spi_start) for fls_spi_start + drv_fls.o(i.fls_read_cmd_it) refers to drv_fls.o(i.fls_swrst) for fls_swrst + drv_fls.o(i.fls_read_cmd_it) refers to drv_fls.o(i.fls_clear_irq_status) for fls_clear_irq_status + drv_fls.o(i.fls_read_cmd_it) refers to drv_fls.o(i.fls_set_read) for fls_set_read + drv_fls.o(i.fls_read_cmd_it) refers to drv_fls.o(i.fls_enable_it) for fls_enable_it + drv_fls.o(i.fls_read_cmd_it) refers to drv_fls.o(i.fls_spi_start) for fls_spi_start + drv_fls.o(i.fls_set_mc_irq_mask) refers to drv_sys_cfg.o(i.drv_sys_cfg_set_int) for drv_sys_cfg_set_int + drv_fls.o(i.fls_set_mc_irq_mask) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_fls.o(i.fls_write_byte_data) refers to drv_fls.o(i.fls_swrst) for fls_swrst + drv_fls.o(i.fls_write_byte_data) refers to drv_fls.o(i.fls_clear_irq_status) for fls_clear_irq_status + drv_fls.o(i.fls_write_byte_data) refers to drv_fls.o(i.fls_set_write) for fls_set_write + drv_fls.o(i.fls_write_byte_data) refers to drv_fls.o(i.fls_spi_start) for fls_spi_start + drv_fls.o(i.fls_write_cmd) refers to drv_fls.o(i.fls_swrst) for fls_swrst + drv_fls.o(i.fls_write_cmd) refers to drv_fls.o(i.fls_clear_irq_status) for fls_clear_irq_status + drv_fls.o(i.fls_write_cmd) refers to drv_fls.o(i.fls_set_write) for fls_set_write + drv_fls.o(i.fls_write_cmd) refers to drv_fls.o(i.fls_spi_start) for fls_spi_start + drv_gpio.o(i.app_AP_NRESET_IRQn_Handler) refers to drv_sys_cfg.o(i.drv_ap_rst_trig_edge_detect) for drv_ap_rst_trig_edge_detect + drv_gpio.o(i.app_AP_NRESET_IRQn_Handler) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_gpio.o(i.app_AP_NRESET_IRQn_Handler) refers to drv_gpio.o(.data) for .data + drv_gpio.o(i.app_EXTI_INT0_IRQn_Handler) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_gpio.o(i.app_EXTI_INT0_IRQn_Handler) refers to drv_gpio.o(.bss) for .bss + drv_gpio.o(i.app_EXTI_INT1_IRQn_Handler) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_gpio.o(i.app_EXTI_INT1_IRQn_Handler) refers to drv_gpio.o(.bss) for .bss + drv_gpio.o(i.app_EXTI_INT2_IRQn_Handler) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_gpio.o(i.app_EXTI_INT2_IRQn_Handler) refers to drv_gpio.o(.bss) for .bss + drv_gpio.o(i.app_EXTI_INT3_IRQn_Handler) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_gpio.o(i.app_EXTI_INT3_IRQn_Handler) refers to drv_gpio.o(.bss) for .bss + drv_gpio.o(i.app_EXTI_INT4_IRQn_Handler) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_gpio.o(i.app_EXTI_INT4_IRQn_Handler) refers to drv_gpio.o(.bss) for .bss + drv_gpio.o(i.app_EXTI_INT5_IRQn_Handler) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_gpio.o(i.app_EXTI_INT5_IRQn_Handler) refers to drv_gpio.o(.bss) for .bss + drv_gpio.o(i.app_EXTI_INT6_IRQn_Handler) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_gpio.o(i.app_EXTI_INT6_IRQn_Handler) refers to drv_gpio.o(.bss) for .bss + drv_gpio.o(i.app_EXTI_INT7_IRQn_Handler) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_gpio.o(i.app_EXTI_INT7_IRQn_Handler) refers to drv_gpio.o(.bss) for .bss + drv_gpio.o(i.drv_gpio_get_pull_state) refers to hal_dsi_rx_ctrl.o(i.__ARM_common_switch8) for __ARM_common_switch8 + drv_gpio.o(i.drv_gpio_register_ap_reset_callback) refers to drv_gpio.o(.data) for .data + drv_gpio.o(i.drv_gpio_register_callback) refers to drv_gpio.o(.bss) for .bss + drv_gpio.o(i.drv_gpio_set_driving_strength) refers to hal_dsi_rx_ctrl.o(i.__ARM_common_switch8) for __ARM_common_switch8 + drv_gpio.o(i.drv_gpio_set_int) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_gpio.o(i.drv_gpio_set_int) refers to drv_sys_cfg.o(i.drv_sys_cfg_set_int) for drv_sys_cfg_set_int + drv_gpio.o(i.drv_gpio_set_pull_state) refers to hal_dsi_rx_ctrl.o(i.__ARM_common_switch8) for __ARM_common_switch8 + drv_gpio.o(i.drv_gpio_set_schmitt_trigger) refers to hal_dsi_rx_ctrl.o(i.__ARM_common_switch8) for __ARM_common_switch8 + drv_gpio.o(i.drv_gpio_set_slew_rate) refers to hal_dsi_rx_ctrl.o(i.__ARM_common_switch8) for __ARM_common_switch8 + drv_i2c_dma.o(i.drv_i2c_dma_callback) refers to drv_i2c_dma.o(.data) for .data + drv_i2c_dma.o(i.drv_i2c_master_read_dma) refers to drv_i2c_master.o(i.drv_i2c_m_enable) for drv_i2c_m_enable + drv_i2c_dma.o(i.drv_i2c_master_read_dma) refers to drv_sys_cfg.o(i.drv_sys_cfg_set_dma_rx_req) for drv_sys_cfg_set_dma_rx_req + drv_i2c_dma.o(i.drv_i2c_master_read_dma) refers to drv_dma.o(i.drv_dma_set_transfer) for drv_dma_set_transfer + drv_i2c_dma.o(i.drv_i2c_master_read_dma) refers to drv_dma.o(i.drv_dma_prepar_transfer) for drv_dma_prepar_transfer + drv_i2c_dma.o(i.drv_i2c_master_read_dma) refers to drv_dma.o(i.drv_dma_enable_channel) for drv_dma_enable_channel + drv_i2c_dma.o(i.drv_i2c_master_read_dma) refers to drv_i2c_dma.o(i.drv_i2c_master_write_read_cmd) for drv_i2c_master_write_read_cmd + drv_i2c_dma.o(i.drv_i2c_master_write_dma) refers to drv_sys_cfg.o(i.drv_sys_cfg_set_dma_tx_req) for drv_sys_cfg_set_dma_tx_req + drv_i2c_dma.o(i.drv_i2c_master_write_dma) refers to drv_dma.o(i.drv_dma_set_transfer) for drv_dma_set_transfer + drv_i2c_dma.o(i.drv_i2c_master_write_dma) refers to drv_dma.o(i.drv_dma_prepar_transfer) for drv_dma_prepar_transfer + drv_i2c_dma.o(i.drv_i2c_master_write_dma) refers to drv_dma.o(i.drv_dma_enable_channel) for drv_dma_enable_channel + drv_i2c_dma.o(i.drv_i2c_set_dma_irq_callback) refers to drv_dma.o(i.drv_dma_create_handle) for drv_dma_create_handle + drv_i2c_dma.o(i.drv_i2c_set_dma_irq_callback) refers to drv_dma.o(i.drv_dma_set_callback) for drv_dma_set_callback + drv_i2c_dma.o(i.drv_i2c_set_dma_irq_callback) refers to drv_i2c_dma.o(.data) for .data + drv_i2c_dma.o(i.drv_i2c_set_dma_irq_callback) refers to drv_i2c_dma.o(.bss) for .bss + drv_i2c_dma.o(i.drv_i2c_set_dma_irq_callback) refers to drv_i2c_dma.o(i.drv_i2c_dma_callback) for drv_i2c_dma_callback + drv_i2c_dma.o(i.drv_i2c_slave_write_dma) refers to drv_dma.o(i.drv_dma_prepar_transfer) for drv_dma_prepar_transfer + drv_i2c_master.o(i.app_I2C1_IRQn_Handler) refers to drv_i2c_master.o(.data) for .data + drv_i2c_master.o(i.drv_i2c1_set_callback) refers to drv_i2c_master.o(.data) for .data + drv_i2c_master.o(i.drv_i2c_m_clear_it_pending_bit) refers to hal_dsi_rx_ctrl.o(i.__ARM_common_switch8) for __ARM_common_switch8 + drv_i2c_master.o(i.drv_i2c_m_clear_it_pending_bit) refers to drv_i2c_master.o(i.__NVIC_ClearPendingIRQ) for __NVIC_ClearPendingIRQ + drv_i2c_master.o(i.drv_i2c_m_deinit) refers to drv_i2c_master.o(i.drv_i2c_m_disable_intr) for drv_i2c_m_disable_intr + drv_i2c_master.o(i.drv_i2c_m_deinit) refers to drv_crgu.o(i.drv_crgu_set_reset) for drv_crgu_set_reset + drv_i2c_master.o(i.drv_i2c_m_deinit) refers to drv_crgu.o(i.drv_crgu_set_clock) for drv_crgu_set_clock + drv_i2c_master.o(i.drv_i2c_m_enable_intr) refers to drv_i2c_master.o(i.__NVIC_ClearPendingIRQ) for __NVIC_ClearPendingIRQ + drv_i2c_master.o(i.drv_i2c_m_read_data) refers to drv_i2c_master.o(i.drv_i2c_m_get_fifo_status) for drv_i2c_m_get_fifo_status + drv_i2c_master.o(i.drv_i2c_m_set_sys_mask) refers to drv_i2c_master.o(i.__NVIC_ClearPendingIRQ) for __NVIC_ClearPendingIRQ + drv_i2c_master.o(i.drv_i2c_m_write_data) refers to drv_i2c_master.o(i.drv_i2c_m_get_fifo_status) for drv_i2c_m_get_fifo_status + drv_i2c_master.o(i.drv_i2c_master_init) refers to uidiv.o(.text) for __aeabi_uidivmod + drv_i2c_master.o(i.drv_i2c_master_init) refers to drv_common.o(.data) for g_system_clock + drv_i2c_slave.o(i.app_I2C0_IRQn_Handler) refers to drv_i2c_slave.o(.data) for .data + drv_i2c_slave.o(i.drv_i2c0_set_callback) refers to drv_i2c_slave.o(.data) for .data + drv_i2c_slave.o(i.drv_i2c_s_clear_it_pending_bit) refers to hal_dsi_rx_ctrl.o(i.__ARM_common_switch8) for __ARM_common_switch8 + drv_i2c_slave.o(i.drv_i2c_s_read_data) refers to drv_i2c_slave.o(i.drv_i2c_s_get_fifo_status) for drv_i2c_s_get_fifo_status + drv_i2c_slave.o(i.drv_i2c_s_set_intr) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_i2c_slave.o(i.drv_i2c_s_set_intr) refers to drv_sys_cfg.o(i.drv_sys_cfg_set_int) for drv_sys_cfg_set_int + drv_i2c_slave.o(i.drv_i2c_s_write_data) refers to drv_i2c_slave.o(i.drv_i2c_s_get_fifo_status) for drv_i2c_s_get_fifo_status + drv_i2c_slave.o(i.drv_i2c_slave_init) refers to drv_i2c_slave.o(i.drv_i2c_s_enable) for drv_i2c_s_enable + drv_param_init.o(i.drv_param_init_get_ccm) refers to drv_param_init.o(.data) for .data + drv_param_init.o(i.drv_param_init_get_scld_filter_h) refers to drv_param_init.o(.data) for .data + drv_param_init.o(i.drv_param_init_get_scld_filter_v) refers to drv_param_init.o(.data) for .data + drv_param_init.o(i.drv_param_init_get_sclu_filter) refers to drv_param_init.o(.data) for .data + drv_param_init.o(i.drv_param_init_set_ccm) refers to memcpya.o(.text) for __aeabi_memcpy4 + drv_param_init.o(i.drv_param_init_set_ccm) refers to drv_param_init.o(.data) for .data + drv_param_init.o(i.drv_param_init_set_scld_filter) refers to drv_param_init.o(.data) for .data + drv_param_init.o(i.drv_param_init_set_sclu_filter) refers to drv_param_init.o(.data) for .data + drv_param_init.o(i.drv_param_p2r_filter_init) refers to drv_param_init.o(.constdata) for .constdata + drv_pwm.o(i.app_PWMDET_IRQn_Handler) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_pwm.o(i.app_PWMDET_IRQn_Handler) refers to drv_pwm.o(.data) for .data + drv_pwm.o(i.drv_pwm_in_register_callback) refers to drv_pwm.o(.data) for .data + drv_pwm.o(i.drv_pwm_in_set_sys_int) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_pwm.o(i.drv_pwm_in_set_sys_int) refers to drv_sys_cfg.o(i.drv_sys_cfg_set_int) for drv_sys_cfg_set_int + drv_spi_dma.o(i.drv_spi_abort_dma) refers to drv_dma.o(i.drv_dma_disenable_channel) for drv_dma_disenable_channel + drv_spi_dma.o(i.drv_spi_abort_dma) refers to drv_dma.o(i.drv_dma_disenable_channel_interrupts) for drv_dma_disenable_channel_interrupts + drv_spi_dma.o(i.drv_spi_abort_dma) refers to drv_spi_master.o(i.drv_spi_m_enable_tx_dma) for drv_spi_m_enable_tx_dma + drv_spi_dma.o(i.drv_spi_abort_dma) refers to drv_spi_master.o(i.drv_spi_m_enable_rx_dma) for drv_spi_m_enable_rx_dma + drv_spi_dma.o(i.drv_spi_abort_dma) refers to drv_spi_slave.o(i.drv_spi_s_enable_tx_dma) for drv_spi_s_enable_tx_dma + drv_spi_dma.o(i.drv_spi_abort_dma) refers to drv_spi_slave.o(i.drv_spi_s_enable_rx_dma) for drv_spi_s_enable_rx_dma + drv_spi_dma.o(i.drv_spi_abort_dma) refers to drv_spi_dma.o(.data) for .data + drv_spi_dma.o(i.drv_spi_abort_dma) refers to drv_spi_dma.o(.bss) for .bss + drv_spi_dma.o(i.drv_spi_dma_callback) refers to drv_spi_dma.o(.data) for .data + drv_spi_dma.o(i.drv_spi_dma_ch6_init) refers to drv_spi_dma.o(i.__NVIC_ClearPendingIRQ) for __NVIC_ClearPendingIRQ + drv_spi_dma.o(i.drv_spi_dma_ch6_init) refers to drv_spi_dma.o(.data) for .data + drv_spi_dma.o(i.drv_spi_dma_init) refers to drv_spi_dma.o(i.__NVIC_ClearPendingIRQ) for __NVIC_ClearPendingIRQ + drv_spi_dma.o(i.drv_spi_dma_init) refers to drv_spi_dma.o(.data) for .data + drv_spi_dma.o(i.drv_spi_set_dma_ch6_irq_callback) refers to drv_dma.o(i.drv_dma_create_handle) for drv_dma_create_handle + drv_spi_dma.o(i.drv_spi_set_dma_ch6_irq_callback) refers to drv_dma.o(i.drv_dma_set_callback) for drv_dma_set_callback + drv_spi_dma.o(i.drv_spi_set_dma_ch6_irq_callback) refers to drv_spi_dma.o(.data) for .data + drv_spi_dma.o(i.drv_spi_set_dma_ch6_irq_callback) refers to drv_spi_dma.o(.bss) for .bss + drv_spi_dma.o(i.drv_spi_set_dma_ch6_irq_callback) refers to drv_spi_dma.o(i.drv_spi_dma_callback) for drv_spi_dma_callback + drv_spi_dma.o(i.drv_spi_set_dma_irq_callback) refers to drv_dma.o(i.drv_dma_create_handle) for drv_dma_create_handle + drv_spi_dma.o(i.drv_spi_set_dma_irq_callback) refers to drv_dma.o(i.drv_dma_set_callback) for drv_dma_set_callback + drv_spi_dma.o(i.drv_spi_set_dma_irq_callback) refers to drv_spi_dma.o(.data) for .data + drv_spi_dma.o(i.drv_spi_set_dma_irq_callback) refers to drv_spi_dma.o(.bss) for .bss + drv_spi_dma.o(i.drv_spi_set_dma_irq_callback) refers to drv_spi_dma.o(i.drv_spi_dma_callback) for drv_spi_dma_callback + drv_spi_dma.o(i.drv_spim_dma_read) refers to drv_spi_master.o(i.drv_spi_m_enable_rx_dma) for drv_spi_m_enable_rx_dma + drv_spi_dma.o(i.drv_spim_dma_read) refers to drv_spi_master.o(i.drv_spi_m_enable_tx_dma) for drv_spi_m_enable_tx_dma + drv_spi_dma.o(i.drv_spim_dma_read) refers to drv_dma.o(i.drv_dma_prepar_transfer) for drv_dma_prepar_transfer + drv_spi_dma.o(i.drv_spim_dma_read) refers to drv_dma.o(i.drv_dma_enable_channel_interrupts) for drv_dma_enable_channel_interrupts + drv_spi_dma.o(i.drv_spim_dma_read) refers to drv_dma.o(i.drv_dma_enable_channel) for drv_dma_enable_channel + drv_spi_dma.o(i.drv_spim_dma_read) refers to drv_spi_dma.o(.data) for .data + drv_spi_dma.o(i.drv_spim_dma_write) refers to drv_spi_master.o(i.drv_spi_m_enable_tx_dma) for drv_spi_m_enable_tx_dma + drv_spi_dma.o(i.drv_spim_dma_write) refers to drv_dma.o(i.drv_dma_prepar_transfer) for drv_dma_prepar_transfer + drv_spi_dma.o(i.drv_spim_dma_write) refers to drv_dma.o(i.drv_dma_enable_channel_interrupts) for drv_dma_enable_channel_interrupts + drv_spi_dma.o(i.drv_spim_dma_write) refers to drv_dma.o(i.drv_dma_enable_channel) for drv_dma_enable_channel + drv_spi_dma.o(i.drv_spim_dma_write) refers to drv_spi_dma.o(.data) for .data + drv_spi_dma.o(i.drv_spis_dma_write) refers to drv_spi_slave.o(i.drv_spi_s_enable_tx_dma) for drv_spi_s_enable_tx_dma + drv_spi_dma.o(i.drv_spis_dma_write) refers to drv_dma.o(i.drv_dma_prepar_transfer) for drv_dma_prepar_transfer + drv_spi_dma.o(i.drv_spis_dma_write) refers to drv_dma.o(i.drv_dma_enable_channel) for drv_dma_enable_channel + drv_spi_dma.o(i.drv_spis_dma_write) refers to drv_spi_dma.o(.bss) for .bss + drv_spi_master.o(i.app_SPIM_IRQn_Handler) refers to drv_spi_master.o(i.__NVIC_ClearPendingIRQ) for __NVIC_ClearPendingIRQ + drv_spi_master.o(i.app_SPIM_IRQn_Handler) refers to drv_spi_master.o(.data) for .data + drv_spi_master.o(i.drv_spi_m_deinit) refers to drv_spi_master.o(i.drv_spi_m_switch_sclk) for drv_spi_m_switch_sclk + drv_spi_master.o(i.drv_spi_m_disable_int) refers to drv_spi_master.o(i.__NVIC_ClearPendingIRQ) for __NVIC_ClearPendingIRQ + drv_spi_master.o(i.drv_spi_m_set_intr_callback) refers to drv_spi_master.o(.data) for .data + drv_spi_master.o(i.drv_spi_master_init) refers to uidiv.o(.text) for __aeabi_uidivmod + drv_spi_master.o(i.drv_spi_master_init) refers to drv_common.o(.data) for g_system_clock + drv_swire.o(i.app_SWIRE_IRQn_Handler) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_swire.o(i.app_SWIRE_IRQn_Handler) refers to drv_swire.o(i.drv_swire_set_int) for drv_swire_set_int + drv_swire.o(i.app_SWIRE_IRQn_Handler) refers to drv_swire.o(.data) for .data + drv_swire.o(i.drv_swire_register_callback) refers to drv_swire.o(.data) for .data + drv_swire.o(i.drv_swire_set_int) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_swire.o(i.drv_swire_set_int) refers to drv_sys_cfg.o(i.drv_sys_cfg_set_int) for drv_sys_cfg_set_int + drv_sys_cfg.o(i.drv_ap_rst_trig_edge_detect) refers to drv_sys_cfg.o(i.drv_sys_cfg_sel_ap_rst_lvl_trig) for drv_sys_cfg_sel_ap_rst_lvl_trig + drv_sys_cfg.o(i.drv_ap_rst_trig_edge_detect) refers to drv_sys_cfg.o(.data) for .data + drv_sys_cfg.o(i.drv_sys_cfg_sel_ap_rst_trig) refers to drv_sys_cfg.o(i.drv_sys_cfg_sel_ap_rst_lvl_trig) for drv_sys_cfg_sel_ap_rst_lvl_trig + drv_sys_cfg.o(i.drv_sys_cfg_sel_ap_rst_trig) refers to drv_sys_cfg.o(.data) for .data + drv_timer.o(i.app_TIMER0_IRQn_Handler) refers to drv_timer.o(i.drv_timer_handle_interrupt) for drv_timer_handle_interrupt + drv_timer.o(i.app_TIMER1_IRQn_Handler) refers to drv_timer.o(i.drv_timer_handle_interrupt) for drv_timer_handle_interrupt + drv_timer.o(i.app_TIMER2_IRQn_Handler) refers to drv_timer.o(i.drv_timer_handle_interrupt) for drv_timer_handle_interrupt + drv_timer.o(i.app_TIMER3_IRQn_Handler) refers to drv_timer.o(i.drv_timer_handle_interrupt) for drv_timer_handle_interrupt + drv_timer.o(i.drv_timer_clear_status_flags) refers to drv_timer.o(i.drv_timer_get_instance) for drv_timer_get_instance + drv_timer.o(i.drv_timer_clear_status_flags) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_timer.o(i.drv_timer_enable) refers to drv_timer.o(i.drv_timer_get_instance) for drv_timer_get_instance + drv_timer.o(i.drv_timer_get_instance) refers to drv_timer.o(.data) for .data + drv_timer.o(i.drv_timer_get_prescaler) refers to drv_timer.o(.data) for .data + drv_timer.o(i.drv_timer_get_status) refers to drv_timer.o(i.drv_timer_get_instance) for drv_timer_get_instance + drv_timer.o(i.drv_timer_handle_interrupt) refers to drv_timer.o(i.drv_timer_clear_status_flags) for drv_timer_clear_status_flags + drv_timer.o(i.drv_timer_handle_interrupt) refers to drv_timer.o(i.drv_timer_enable) for drv_timer_enable + drv_timer.o(i.drv_timer_handle_interrupt) refers to drv_timer.o(i.drv_timer_set_int) for drv_timer_set_int + drv_timer.o(i.drv_timer_handle_interrupt) refers to drv_timer.o(i.drv_timer_set_compare_val) for drv_timer_set_compare_val + drv_timer.o(i.drv_timer_handle_interrupt) refers to drv_timer.o(.data) for .data + drv_timer.o(i.drv_timer_register_callback) refers to drv_timer.o(.data) for .data + drv_timer.o(i.drv_timer_set_compare_val) refers to drv_timer.o(i.drv_timer_get_instance) for drv_timer_get_instance + drv_timer.o(i.drv_timer_set_int) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_timer.o(i.drv_timer_set_int) refers to drv_sys_cfg.o(i.drv_sys_cfg_set_int) for drv_sys_cfg_set_int + drv_timer.o(i.drv_timer_set_prescaler) refers to drv_timer.o(i.drv_timer_get_instance) for drv_timer_get_instance + drv_timer.o(i.drv_timer_set_prescaler) refers to drv_timer.o(.data) for .data + drv_timer.o(i.drv_timer_set_repeat) refers to drv_timer.o(.data) for .data + hal_internal_vsync.o(i.app_LCDC_IRQn_Handler) refers to drv_rxbr.o(i.drv_rxbr_clear_status0) for drv_rxbr_clear_status0 + hal_internal_vsync.o(i.app_LCDC_IRQn_Handler) refers to drv_rxbr.o(i.drv_rxbr_set_inten) for drv_rxbr_set_inten + hal_internal_vsync.o(i.app_LCDC_IRQn_Handler) refers to drv_param_init.o(i.drv_param_init_get_ccm) for drv_param_init_get_ccm + hal_internal_vsync.o(i.app_LCDC_IRQn_Handler) refers to drv_lcdc.o(i.drv_lcdc_config_ccm) for drv_lcdc_config_ccm + hal_internal_vsync.o(i.app_LCDC_IRQn_Handler) refers to drv_lcdc.o(i.drv_lcdc_config_int_single) for drv_lcdc_config_int_single + hal_internal_vsync.o(i.app_LCDC_IRQn_Handler) refers to tau_log.o(i.LOG_printf) for LOG_printf + hal_internal_vsync.o(i.app_LCDC_IRQn_Handler) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + hal_internal_vsync.o(i.app_LCDC_IRQn_Handler) refers to hal_internal_vsync.o(.data) for .data + hal_internal_vsync.o(i.app_LCDC_IRQn_Handler) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.calc_framebuffer_setting) refers to tau_log.o(i.LOG_printf) for LOG_printf + hal_internal_vsync.o(i.calc_framebuffer_setting) refers to hal_internal_vsync.o(i.hal_internal_sync_get_hight_performan_mode) for hal_internal_sync_get_hight_performan_mode + hal_internal_vsync.o(i.calc_framebuffer_setting) refers to uidiv.o(.text) for __aeabi_uidivmod + hal_internal_vsync.o(i.calc_framebuffer_setting) refers to dfltui.o(.text) for __aeabi_ui2d + hal_internal_vsync.o(i.calc_framebuffer_setting) refers to ddiv.o(.text) for __aeabi_ddiv + hal_internal_vsync.o(i.calc_framebuffer_setting) refers to sqrt.o(i.sqrt) for sqrt + hal_internal_vsync.o(i.calc_framebuffer_setting) refers to dmul.o(.text) for __aeabi_dmul + hal_internal_vsync.o(i.calc_framebuffer_setting) refers to dfixui.o(.text) for __aeabi_d2uiz + hal_internal_vsync.o(i.calc_framebuffer_setting) refers to cdcmple.o(.text) for __aeabi_cdcmple + hal_internal_vsync.o(i.calc_framebuffer_setting) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.check_pkt_buf_rev) refers to hal_internal_vsync.o(i.drv_rxbr_get_status0) for drv_rxbr_get_status0 + hal_internal_vsync.o(i.check_pkt_buf_rev) refers to tau_log.o(i.LOG_printf) for LOG_printf + hal_internal_vsync.o(i.check_pkt_buf_rev) refers to drv_rxbr.o(i.drv_rxbr_clear_pkt_buffer) for drv_rxbr_clear_pkt_buffer + hal_internal_vsync.o(i.check_pkt_buf_rev) refers to drv_rxbr.o(i.drv_rxbr_clear_status0) for drv_rxbr_clear_status0 + hal_internal_vsync.o(i.dcs_sw_filter) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.hal_internal_init_memc) refers to drv_memc.o(i.drv_memc_set_data_mode) for drv_memc_set_data_mode + hal_internal_vsync.o(i.hal_internal_init_memc) refers to drv_memc.o(i.drv_memc_set_tear_waveform) for drv_memc_set_tear_waveform + hal_internal_vsync.o(i.hal_internal_init_memc) refers to hal_internal_vsync.o(i.hal_internal_vsync_get_tear_mode) for hal_internal_vsync_get_tear_mode + hal_internal_vsync.o(i.hal_internal_init_memc) refers to tau_log.o(i.LOG_printf) for LOG_printf + hal_internal_vsync.o(i.hal_internal_init_memc) refers to drv_memc.o(i.drv_memc_set_tear_mode) for drv_memc_set_tear_mode + hal_internal_vsync.o(i.hal_internal_init_memc) refers to drv_memc.o(i.drv_memc_set_ltpo_mode) for drv_memc_set_ltpo_mode + hal_internal_vsync.o(i.hal_internal_init_memc) refers to drv_memc.o(i.drv_memc_set_double_buffer) for drv_memc_set_double_buffer + hal_internal_vsync.o(i.hal_internal_init_memc) refers to drv_memc.o(i.drv_memc_set_active_height) for drv_memc_set_active_height + hal_internal_vsync.o(i.hal_internal_init_memc) refers to drv_memc.o(i.drv_memc_set_inten) for drv_memc_set_inten + hal_internal_vsync.o(i.hal_internal_init_memc) refers to drv_memc.o(i.drv_memc_enable_irq) for drv_memc_enable_irq + hal_internal_vsync.o(i.hal_internal_init_memc) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.hal_internal_sync_cmd_mode_rcv_te) refers to tau_log.o(i.LOG_printf) for LOG_printf + hal_internal_vsync.o(i.hal_internal_sync_cmd_mode_rcv_te) refers to drv_lcdc.o(i.drv_lcdc_config_overwrite) for drv_lcdc_config_overwrite + hal_internal_vsync.o(i.hal_internal_sync_cmd_mode_rcv_te) refers to drv_lcdc.o(i.drv_lcdc_start) for drv_lcdc_start + hal_internal_vsync.o(i.hal_internal_sync_cmd_mode_rcv_te) refers to hal_internal_vsync.o(.data) for .data + hal_internal_vsync.o(i.hal_internal_sync_cmd_mode_rcv_te) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.hal_internal_sync_get_fb_setting) refers to memcpya.o(.text) for __aeabi_memcpy4 + hal_internal_vsync.o(i.hal_internal_sync_get_fb_setting) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.hal_internal_sync_get_hight_performan_mode) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change) refers to hal_internal_vsync.o(i.calc_framebuffer_setting) for calc_framebuffer_setting + hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change) refers to drv_vidc.o(i.drv_vidc_enable) for drv_vidc_enable + hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change) refers to drv_vidc.o(i.drv_vidc_reset) for drv_vidc_reset + hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init) for hal_dsi_rx_ctrl_init + hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change) refers to drv_memc.o(i.drv_memc_set_tear_mode) for drv_memc_set_tear_mode + hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_init) for hal_dsi_tx_ctrl_init + hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_start) for hal_dsi_rx_ctrl_start + hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change) refers to drv_rxbr.o(i.drv_rxbr_clear_status0) for drv_rxbr_clear_status0 + hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_gen_a_tear_signal) for hal_dsi_rx_ctrl_gen_a_tear_signal + hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change) refers to tau_delay.o(i.delayUs) for delayUs + hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change) refers to tau_log.o(i.LOG_printf) for LOG_printf + hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change) refers to drv_dsi_tx.o(i.drv_dsi_tx_shutdown) for drv_dsi_tx_shutdown + hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change) refers to drv_crgu.o(i.drv_crgu_config_reset_modules) for drv_crgu_config_reset_modules + hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change) refers to hal_internal_vsync.o(i.hal_internal_init_memc) for hal_internal_init_memc + hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_start) for hal_dsi_tx_ctrl_start + hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change) refers to hal_internal_vsync.o(.conststring) for .conststring + hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change) refers to hal_internal_vsync.o(.data) for .data + hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change_ex) refers to hal_internal_vsync.o(i.calc_framebuffer_setting) for calc_framebuffer_setting + hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change_ex) refers to drv_vidc.o(i.drv_vidc_enable) for drv_vidc_enable + hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change_ex) refers to drv_vidc.o(i.drv_vidc_reset) for drv_vidc_reset + hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change_ex) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init) for hal_dsi_rx_ctrl_init + hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change_ex) refers to drv_memc.o(i.drv_memc_set_tear_mode) for drv_memc_set_tear_mode + hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change_ex) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_start) for hal_dsi_rx_ctrl_start + hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change_ex) refers to drv_lcdc.o(i.drv_lcdc_enable_shadow_reg) for drv_lcdc_enable_shadow_reg + hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change_ex) refers to tau_delay.o(i.delayMs) for delayMs + hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change_ex) refers to drv_rxbr.o(i.drv_rxbr_clear_status0) for drv_rxbr_clear_status0 + hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change_ex) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_gen_a_tear_signal) for hal_dsi_rx_ctrl_gen_a_tear_signal + hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change_ex) refers to tau_log.o(i.LOG_printf) for LOG_printf + hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change_ex) refers to tau_delay.o(i.delayUs) for delayUs + hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change_ex) refers to hal_internal_vsync.o(i.hal_vsync_reset_lcdc_scaler) for hal_vsync_reset_lcdc_scaler + hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change_ex) refers to hal_internal_vsync.o(i.vsync_set_te_mode) for vsync_set_te_mode + hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change_ex) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.hal_internal_sync_set_fb_setting_manual) refers to uidiv.o(.text) for __aeabi_uidivmod + hal_internal_vsync.o(i.hal_internal_sync_set_fb_setting_manual) refers to tau_log.o(i.LOG_printf) for LOG_printf + hal_internal_vsync.o(i.hal_internal_sync_set_fb_setting_manual) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.hal_internal_sync_set_fb_setting_manual) refers to hal_internal_vsync.o(.conststring) for .conststring + hal_internal_vsync.o(i.hal_internal_vsync_deinit) refers to memseta.o(.text) for __aeabi_memclr4 + hal_internal_vsync.o(i.hal_internal_vsync_deinit) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.hal_internal_vsync_deinit) refers to hal_internal_vsync.o(.data) for .data + hal_internal_vsync.o(i.hal_internal_vsync_get_rx_state) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.hal_internal_vsync_get_sync_line) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.hal_internal_vsync_get_tear_mode) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.hal_internal_vsync_get_tx_state) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.hal_internal_vsync_init_rx) refers to drv_chip_info.o(i.drv_chip_rx_info_check) for drv_chip_rx_info_check + hal_internal_vsync.o(i.hal_internal_vsync_init_rx) refers to memcpya.o(.text) for __aeabi_memcpy4 + hal_internal_vsync.o(i.hal_internal_vsync_init_rx) refers to hal_internal_vsync.o(i.check_mipi_rx_tx_video_info) for check_mipi_rx_tx_video_info + hal_internal_vsync.o(i.hal_internal_vsync_init_rx) refers to hal_internal_vsync.o(i.calc_framebuffer_setting) for calc_framebuffer_setting + hal_internal_vsync.o(i.hal_internal_vsync_init_rx) refers to drv_rxbr.o(i.drv_rxbr_register_irq0_callback) for drv_rxbr_register_irq0_callback + hal_internal_vsync.o(i.hal_internal_vsync_init_rx) refers to drv_rxbr.o(i.drv_rxbr_register_irq1_callback) for drv_rxbr_register_irq1_callback + hal_internal_vsync.o(i.hal_internal_vsync_init_rx) refers to drv_vidc.o(i.drv_vidc_register_callback) for drv_vidc_register_callback + hal_internal_vsync.o(i.hal_internal_vsync_init_rx) refers to dcs_packet_fifo.o(i.dcs_packet_fifo_init) for dcs_packet_fifo_init + hal_internal_vsync.o(i.hal_internal_vsync_init_rx) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.hal_internal_vsync_init_rx) refers to hal_internal_vsync.o(.data) for .data + hal_internal_vsync.o(i.hal_internal_vsync_init_rx) refers to hal_internal_vsync.o(i.soft_gen_te) for soft_gen_te + hal_internal_vsync.o(i.hal_internal_vsync_init_rx) refers to hal_internal_vsync.o(i.soft_gen_te_double_buffer) for soft_gen_te_double_buffer + hal_internal_vsync.o(i.hal_internal_vsync_init_rx) refers to hal_internal_vsync.o(i.rxbr_irq0_callback) for rxbr_irq0_callback + hal_internal_vsync.o(i.hal_internal_vsync_init_rx) refers to hal_internal_vsync.o(i.rxbr_irq1_callback) for rxbr_irq1_callback + hal_internal_vsync.o(i.hal_internal_vsync_init_rx) refers to hal_internal_vsync.o(i.vidc_callback) for vidc_callback + hal_internal_vsync.o(i.hal_internal_vsync_init_tx) refers to memcpya.o(.text) for __aeabi_memcpy4 + hal_internal_vsync.o(i.hal_internal_vsync_init_tx) refers to hal_internal_vsync.o(i.check_mipi_rx_tx_video_info) for check_mipi_rx_tx_video_info + hal_internal_vsync.o(i.hal_internal_vsync_init_tx) refers to hal_internal_vsync.o(i.calc_framebuffer_setting) for calc_framebuffer_setting + hal_internal_vsync.o(i.hal_internal_vsync_init_tx) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.hal_internal_vsync_set_auto_hw_filter) refers to tau_log.o(i.LOG_printf) for LOG_printf + hal_internal_vsync.o(i.hal_internal_vsync_set_auto_hw_filter) refers to drv_rxbr.o(i.drv_rxbr_set_cmd_filter) for drv_rxbr_set_cmd_filter + hal_internal_vsync.o(i.hal_internal_vsync_set_auto_hw_filter) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.hal_internal_vsync_set_dcs_direct_mode) refers to hal_internal_vsync.o(i.hal_internal_vsync_set_auto_hw_filter) for hal_internal_vsync_set_auto_hw_filter + hal_internal_vsync.o(i.hal_internal_vsync_set_dcs_direct_mode) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.hal_internal_vsync_set_rx_state) refers to hal_internal_vsync.o(i.hal_internal_vsync_deinit) for hal_internal_vsync_deinit + hal_internal_vsync.o(i.hal_internal_vsync_set_rx_state) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.hal_internal_vsync_set_sync_line) refers to uidiv.o(.text) for __aeabi_uidivmod + hal_internal_vsync.o(i.hal_internal_vsync_set_sync_line) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.hal_internal_vsync_set_tear_mode) refers to uidiv.o(.text) for __aeabi_uidivmod + hal_internal_vsync.o(i.hal_internal_vsync_set_tear_mode) refers to hal_internal_vsync.o(i.vsync_set_te_mode) for vsync_set_te_mode + hal_internal_vsync.o(i.hal_internal_vsync_set_tear_mode) refers to drv_vidc.o(i.drv_vidc_enable) for drv_vidc_enable + hal_internal_vsync.o(i.hal_internal_vsync_set_tear_mode) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.hal_internal_vsync_set_tx_state) refers to hal_internal_vsync.o(i.hal_internal_vsync_deinit) for hal_internal_vsync_deinit + hal_internal_vsync.o(i.hal_internal_vsync_set_tx_state) refers to drv_lcdc.o(i.drv_lcdc_config_overwrite) for drv_lcdc_config_overwrite + hal_internal_vsync.o(i.hal_internal_vsync_set_tx_state) refers to drv_lcdc.o(i.drv_lcdc_config_int_single) for drv_lcdc_config_int_single + hal_internal_vsync.o(i.hal_internal_vsync_set_tx_state) refers to hal_internal_vsync.o(i.vsync_set_te_mode) for vsync_set_te_mode + hal_internal_vsync.o(i.hal_internal_vsync_set_tx_state) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.hal_internal_vsync_update_lcdc_addr) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.hal_vsync_reset_lcdc_scaler) refers to uidiv.o(.text) for __aeabi_uidivmod + hal_internal_vsync.o(i.hal_vsync_reset_lcdc_scaler) refers to dfltui.o(.text) for __aeabi_ui2d + hal_internal_vsync.o(i.hal_vsync_reset_lcdc_scaler) refers to dadd.o(.text) for __aeabi_dadd + hal_internal_vsync.o(i.hal_vsync_reset_lcdc_scaler) refers to dfixui.o(.text) for __aeabi_d2uiz + hal_internal_vsync.o(i.hal_vsync_reset_lcdc_scaler) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_partial_disp_area) for hal_dsi_tx_ctrl_set_partial_disp_area + hal_internal_vsync.o(i.hal_vsync_reset_lcdc_scaler) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_partial_disp) for hal_dsi_tx_ctrl_set_partial_disp + hal_internal_vsync.o(i.hal_vsync_reset_lcdc_scaler) refers to drv_param_init.o(i.drv_param_init_get_sclu_filter) for drv_param_init_get_sclu_filter + hal_internal_vsync.o(i.hal_vsync_reset_lcdc_scaler) refers to drv_lcdc.o(i.drv_lcdc_config_scale_up_coef) for drv_lcdc_config_scale_up_coef + hal_internal_vsync.o(i.hal_vsync_reset_lcdc_scaler) refers to drv_crgu.o(i.drv_crgu_config_reset_modules) for drv_crgu_config_reset_modules + hal_internal_vsync.o(i.hal_vsync_reset_lcdc_scaler) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_init) for hal_dsi_tx_ctrl_init + hal_internal_vsync.o(i.hal_vsync_reset_lcdc_scaler) refers to hal_internal_vsync.o(i.hal_internal_init_memc) for hal_internal_init_memc + hal_internal_vsync.o(i.hal_vsync_reset_lcdc_scaler) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_start) for hal_dsi_tx_ctrl_start + hal_internal_vsync.o(i.hal_vsync_reset_lcdc_scaler) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.rx_get_dcs_packet_data) refers to hal_internal_vsync.o(i.dcs_sw_filter) for dcs_sw_filter + hal_internal_vsync.o(i.rx_get_dcs_packet_data) refers to dcs_packet_fifo.o(i.dcs_packet_fifo_alloc) for dcs_packet_fifo_alloc + hal_internal_vsync.o(i.rx_get_dcs_packet_data) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_dsc_async_handler) for hal_dsi_rx_ctrl_dsc_async_handler + hal_internal_vsync.o(i.rx_get_dcs_packet_data) refers to tau_log.o(i.LOG_printf) for LOG_printf + hal_internal_vsync.o(i.rx_get_dcs_packet_data) refers to hal_internal_vsync.o(i.check_pkt_buf_rev) for check_pkt_buf_rev + hal_internal_vsync.o(i.rx_get_dcs_packet_data) refers to drv_dsi_tx.o(i.drv_dsi_tx_command_put_payload) for drv_dsi_tx_command_put_payload + hal_internal_vsync.o(i.rx_get_dcs_packet_data) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.rx_partial_update) refers to drv_rxbr.o(i.drv_rxbr_get_col_addr) for drv_rxbr_get_col_addr + hal_internal_vsync.o(i.rx_partial_update) refers to drv_rxbr.o(i.drv_rxbr_get_page_addr) for drv_rxbr_get_page_addr + hal_internal_vsync.o(i.rx_partial_update) refers to uidiv.o(.text) for __aeabi_uidivmod + hal_internal_vsync.o(i.rx_partial_update) refers to drv_dsc_dec.o(i.drv_dsc_dec_get_nslc) for drv_dsc_dec_get_nslc + hal_internal_vsync.o(i.rx_partial_update) refers to drv_crgu.o(i.drv_crgu_set_dsco_src) for drv_crgu_set_dsco_src + hal_internal_vsync.o(i.rx_partial_update) refers to drv_crgu.o(i.drv_crgu_set_dsco_src_div) for drv_crgu_set_dsco_src_div + hal_internal_vsync.o(i.rx_partial_update) refers to drv_crgu.o(i.drv_crgu_set_dsc_core_div) for drv_crgu_set_dsc_core_div + hal_internal_vsync.o(i.rx_partial_update) refers to drv_rxbr.o(i.drv_rxbr_clear_status0) for drv_rxbr_clear_status0 + hal_internal_vsync.o(i.rx_partial_update) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.rx_receive_packet) refers to hal_internal_vsync.o(i.rx_get_dcs_packet_data) for rx_get_dcs_packet_data + hal_internal_vsync.o(i.rx_receive_packet) refers to hal_internal_vsync.o(i.rx_receive_pps) for rx_receive_pps + hal_internal_vsync.o(i.rx_receive_packet) refers to drv_rxbr.o(i.drv_rxbr_clear_pkt_buffer) for drv_rxbr_clear_pkt_buffer + hal_internal_vsync.o(i.rx_receive_packet) refers to drv_rxbr.o(i.drv_rxbr_clear_status0) for drv_rxbr_clear_status0 + hal_internal_vsync.o(i.rx_receive_packet) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.rx_receive_pps) refers to memseta.o(.text) for __aeabi_memclr4 + hal_internal_vsync.o(i.rx_receive_pps) refers to tau_log.o(i.LOG_printf) for LOG_printf + hal_internal_vsync.o(i.rx_receive_pps) refers to drv_rxbr.o(i.drv_rxbr_clear_pkt_buffer) for drv_rxbr_clear_pkt_buffer + hal_internal_vsync.o(i.rx_receive_pps) refers to hal_internal_vsync.o(i.check_pkt_buf_rev) for check_pkt_buf_rev + hal_internal_vsync.o(i.rx_receive_pps) refers to drv_dsc_dec.o(i.drv_dsc_dec_convert_pps_rc_parameter) for drv_dsc_dec_convert_pps_rc_parameter + hal_internal_vsync.o(i.rx_receive_pps) refers to uidiv.o(.text) for __aeabi_uidivmod + hal_internal_vsync.o(i.rx_receive_pps) refers to drv_dsi_rx.o(i.drv_dsi_rx_get_compression_en) for drv_dsi_rx_get_compression_en + hal_internal_vsync.o(i.rx_receive_pps) refers to drv_dsc_dec.o(i.drv_dsc_dec_enable) for drv_dsc_dec_enable + hal_internal_vsync.o(i.rx_receive_pps) refers to drv_dsc_dec.o(i.drv_dsc_dec_set_u8_pps) for drv_dsc_dec_set_u8_pps + hal_internal_vsync.o(i.rx_receive_pps) refers to hal_internal_vsync.o(.conststring) for .conststring + hal_internal_vsync.o(i.rx_receive_pps) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.rxbr_irq0_callback) refers to hal_internal_vsync.o(i.drv_rxbr_get_status0) for drv_rxbr_get_status0 + hal_internal_vsync.o(i.rxbr_irq0_callback) refers to hal_internal_vsync.o(i.rx_receive_packet) for rx_receive_packet + hal_internal_vsync.o(i.rxbr_irq0_callback) refers to drv_rxbr.o(i.drv_rxbr_clear_status0) for drv_rxbr_clear_status0 + hal_internal_vsync.o(i.rxbr_irq0_callback) refers to drv_rxbr.o(i.drv_rxbr_set_inten) for drv_rxbr_set_inten + hal_internal_vsync.o(i.rxbr_irq0_callback) refers to hal_internal_vsync.o(i.drv_rxbr_get_int_source) for drv_rxbr_get_int_source + hal_internal_vsync.o(i.rxbr_irq0_callback) refers to hal_internal_vsync.o(i.rx_partial_update) for rx_partial_update + hal_internal_vsync.o(i.rxbr_irq1_callback) refers to hal_internal_vsync.o(i.drv_rxbr_get_int_source) for drv_rxbr_get_int_source + hal_internal_vsync.o(i.rxbr_irq1_callback) refers to drv_rxbr.o(i.drv_rxbr_clear_status0) for drv_rxbr_clear_status0 + hal_internal_vsync.o(i.rxbr_irq1_callback) refers to tau_log.o(i.LOG_printf) for LOG_printf + hal_internal_vsync.o(i.rxbr_irq1_callback) refers to hal_internal_vsync.o(i.vpre_err_reset) for vpre_err_reset + hal_internal_vsync.o(i.rxbr_irq1_callback) refers to drv_memc.o(i.drv_memc_set_double_buffer_reverse) for drv_memc_set_double_buffer_reverse + hal_internal_vsync.o(i.rxbr_irq1_callback) refers to drv_rxbr.o(i.drv_rxbr_clear_pkt_buffer) for drv_rxbr_clear_pkt_buffer + hal_internal_vsync.o(i.rxbr_irq1_callback) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.rxbr_irq1_callback) refers to hal_internal_vsync.o(.conststring) for .conststring + hal_internal_vsync.o(i.soft_gen_te) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.soft_gen_te) refers to hal_internal_vsync.o(.data) for .data + hal_internal_vsync.o(i.soft_gen_te_double_buffer) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.soft_gen_te_double_buffer) refers to hal_internal_vsync.o(.data) for .data + hal_internal_vsync.o(i.vidc_callback) refers to drv_vidc.o(i.drv_vidc_get_irq_status) for drv_vidc_get_irq_status + hal_internal_vsync.o(i.vidc_callback) refers to drv_lcdc.o(i.drv_lcdc_config_overwrite) for drv_lcdc_config_overwrite + hal_internal_vsync.o(i.vidc_callback) refers to drv_lcdc.o(i.drv_lcdc_config_int_single) for drv_lcdc_config_int_single + hal_internal_vsync.o(i.vidc_callback) refers to drv_vidc.o(i.drv_vidc_clear_irq) for drv_vidc_clear_irq + hal_internal_vsync.o(i.vidc_callback) refers to drv_vidc.o(i.drv_vidc_set_irqen) for drv_vidc_set_irqen + hal_internal_vsync.o(i.vidc_callback) refers to tau_log.o(i.LOG_printf) for LOG_printf + hal_internal_vsync.o(i.vidc_callback) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.vidc_callback) refers to hal_internal_vsync.o(.conststring) for .conststring + hal_internal_vsync.o(i.vpre_err_reset) refers to drv_crgu.o(i.drv_crgu_set_reset) for drv_crgu_set_reset + hal_internal_vsync.o(i.vpre_err_reset) refers to drv_vidc.o(i.drv_vidc_reset) for drv_vidc_reset + hal_internal_vsync.o(i.vpre_err_reset) refers to drv_dsc_dec.o(i.drv_dsc_dec_set_u8_pps) for drv_dsc_dec_set_u8_pps + hal_internal_vsync.o(i.vpre_err_reset) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.vsync_set_te_mode) refers to drv_memc.o(i.drv_memc_set_tear_mode) for drv_memc_set_tear_mode + hal_internal_vsync.o(i.vsync_set_te_mode) refers to drv_lcdc.o(i.drv_lcdc_config_int_single) for drv_lcdc_config_int_single + hal_internal_vsync.o(i.vsync_set_te_mode) refers to drv_lcdc.o(i.drv_lcdc_ctrl_flow) for drv_lcdc_ctrl_flow + hal_internal_vsync.o(i.vsync_set_te_mode) refers to uidiv.o(.text) for __aeabi_uidivmod + hal_internal_vsync.o(i.vsync_set_te_mode) refers to tau_log.o(i.LOG_printf) for LOG_printf + hal_internal_vsync.o(i.vsync_set_te_mode) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.vsync_set_te_mode) refers to hal_internal_vsync.o(.data) for .data + hal_internal_vsync.o(.data) refers to hal_internal_vsync.o(.bss) for sg_te_info + dcs_packet_fifo.o(i.dcs_packet_fifo_alloc) refers to dcs_packet_fifo.o(.bss) for .bss + dcs_packet_fifo.o(i.dcs_packet_fifo_init) refers to dcs_packet_fifo.o(.bss) for .bss + dcs_packet_fifo.o(i.dcs_packet_free_fifo_header) refers to dcs_packet_fifo.o(.bss) for .bss + dcs_packet_fifo.o(i.dcs_packet_get_fifo_header) refers to dcs_packet_fifo.o(.bss) for .bss + dcs_packet_fifo.o(i.dcs_packet_get_fifo_size) refers to dcs_packet_fifo.o(.bss) for .bss + drv_dsi_rx.o(i.app_MIPI_RX_IRQn_Handler) refers to tau_log.o(i.LOG_printf) for LOG_printf + drv_dsi_rx.o(i.app_MIPI_RX_IRQn_Handler) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_dsi_rx.o(i.drv_dsi_rx_calc_ipi_tx_delay) refers to ffltui.o(.text) for __aeabi_ui2f + drv_dsi_rx.o(i.drv_dsi_rx_calc_ipi_tx_delay) refers to fdiv.o(.text) for __aeabi_fdiv + drv_dsi_rx.o(i.drv_dsi_rx_calc_ipi_tx_delay) refers to fmul.o(.text) for __aeabi_fmul + drv_dsi_rx.o(i.drv_dsi_rx_calc_ipi_tx_delay) refers to drv_dsi_rx.o(i.drv_dsi_rx_get_color_bpp) for drv_dsi_rx_get_color_bpp + drv_dsi_rx.o(i.drv_dsi_rx_calc_ipi_tx_delay) refers to drv_dsi_rx.o(i.drv_dsi_rx_get_color_pcc) for drv_dsi_rx_get_color_pcc + drv_dsi_rx.o(i.drv_dsi_rx_calc_ipi_tx_delay) refers to fadd.o(.text) for __aeabi_fadd + drv_dsi_rx.o(i.drv_dsi_rx_calc_ipi_tx_delay) refers to cfrcmple.o(.text) for __aeabi_cfrcmple + drv_dsi_rx.o(i.drv_dsi_rx_calc_ipi_tx_delay) refers to f2d.o(.text) for __aeabi_f2d + drv_dsi_rx.o(i.drv_dsi_rx_calc_ipi_tx_delay) refers to dadd.o(.text) for __aeabi_dadd + drv_dsi_rx.o(i.drv_dsi_rx_calc_ipi_tx_delay) refers to dfixui.o(.text) for __aeabi_d2uiz + drv_dsi_rx.o(i.drv_dsi_rx_enable_irq) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_dsi_rx.o(i.drv_dsi_rx_enable_irq) refers to drv_sys_cfg.o(i.drv_sys_cfg_set_int) for drv_sys_cfg_set_int + drv_dsi_rx.o(i.drv_dsi_rx_get_color_bpp) refers to hal_dsi_rx_ctrl.o(i.__ARM_common_switch8) for __ARM_common_switch8 + drv_dsi_rx.o(i.drv_dsi_rx_get_phy_stopstate) refers to hal_dsi_rx_ctrl.o(i.__ARM_common_switch8) for __ARM_common_switch8 + drv_dsi_rx.o(i.drv_dsi_rx_phy_resistor_calibration) refers to drv_crgu.o(i.drv_crgu_set_clock) for drv_crgu_set_clock + drv_dsi_rx.o(i.drv_dsi_rx_phy_resistor_calibration) refers to drv_dsi_rx.o(i.drv_rx_phy_test_write_1_byte) for drv_rx_phy_test_write_1_byte + drv_dsi_rx.o(i.drv_dsi_rx_phy_resistor_calibration) refers to drv_dsi_rx.o(i.drv_rx_phy_test_read) for drv_rx_phy_test_read + drv_dsi_rx.o(i.drv_dsi_rx_phy_resistor_calibration) refers to tau_log.o(i.LOG_printf) for LOG_printf + drv_dsi_rx.o(i.drv_dsi_rx_set_lane_swap) refers to drv_chip_info.o(i.drv_chip_info_get_info) for drv_chip_info_get_info + drv_dsi_rx.o(i.drv_dsi_rx_set_up_phy) refers to uidiv.o(.text) for __aeabi_uidivmod + drv_dsi_rx.o(i.drv_dsi_rx_set_up_phy) refers to drv_phy_common.o(i.drv_phy_get_rate_para) for drv_phy_get_rate_para + drv_dsi_rx.o(i.drv_dsi_rx_set_up_phy) refers to drv_phy_common.o(i.drv_phy_get_calibration) for drv_phy_get_calibration + drv_dsi_rx.o(i.drv_dsi_rx_set_up_phy) refers to drv_dsi_rx.o(i.drv_rx_phy_test_clear) for drv_rx_phy_test_clear + drv_dsi_rx.o(i.drv_dsi_rx_set_up_phy) refers to drv_dsi_rx.o(i.drv_rx_phy_test_write_1_byte) for drv_rx_phy_test_write_1_byte + drv_dsi_rx.o(i.drv_dsi_rx_set_up_phy) refers to drv_dsi_rx.o(i.drv_rx_phy_test_write_2_byte) for drv_rx_phy_test_write_2_byte + drv_dsi_rx.o(i.drv_dsi_rx_set_up_phy) refers to drv_chip_info.o(i.drv_chip_info_get_info) for drv_chip_info_get_info + drv_dsi_rx.o(i.drv_dsi_rx_set_up_phy) refers to drv_dsi_rx.o(i.drv_rx_phy_test_lock) for drv_rx_phy_test_lock + drv_dsi_rx.o(i.drv_rx_phy_test_clear) refers to drv_phy_common.o(i.drv_phy_test_clear) for drv_phy_test_clear + drv_dsi_rx.o(i.drv_rx_phy_test_lock) refers to drv_phy_common.o(i.drv_phy_test_lock) for drv_phy_test_lock + drv_dsi_rx.o(i.drv_rx_phy_test_read) refers to drv_phy_common.o(i.drv_phy_test_read) for drv_phy_test_read + drv_dsi_rx.o(i.drv_rx_phy_test_write_1_byte) refers to drv_phy_common.o(i.drv_phy_test_write_1_byte) for drv_phy_test_write_1_byte + drv_dsi_rx.o(i.drv_rx_phy_test_write_2_byte) refers to drv_phy_common.o(i.drv_phy_test_write_2_byte) for drv_phy_test_write_2_byte + drv_dsi_tx.o(i.app_MIPI_TX_IRQn_Handler) refers to tau_log.o(i.LOG_printf) for LOG_printf + drv_dsi_tx.o(i.app_MIPI_TX_IRQn_Handler) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_dsi_tx.o(i.drv_dsi_tx_phy_resistor_calibration) refers to drv_crgu.o(i.drv_crgu_set_clock) for drv_crgu_set_clock + drv_dsi_tx.o(i.drv_dsi_tx_phy_resistor_calibration) refers to drv_dsi_tx.o(i.drv_tx_phy_test_write_1_byte) for drv_tx_phy_test_write_1_byte + drv_dsi_tx.o(i.drv_dsi_tx_phy_resistor_calibration) refers to drv_dsi_tx.o(i.drv_tx_phy_test_read) for drv_tx_phy_test_read + drv_dsi_tx.o(i.drv_dsi_tx_phy_resistor_calibration) refers to tau_log.o(i.LOG_printf) for LOG_printf + drv_dsi_tx.o(i.drv_dsi_tx_phy_status_stopstate) refers to hal_dsi_rx_ctrl.o(i.__ARM_common_switch8) for __ARM_common_switch8 + drv_dsi_tx.o(i.drv_dsi_tx_phy_status_ulpsactivenot) refers to hal_dsi_rx_ctrl.o(i.__ARM_common_switch8) for __ARM_common_switch8 + drv_dsi_tx.o(i.drv_dsi_tx_phy_test_setup) refers to uidiv.o(.text) for __aeabi_uidivmod + drv_dsi_tx.o(i.drv_dsi_tx_phy_test_setup) refers to drv_phy_common.o(i.drv_phy_get_rate_para) for drv_phy_get_rate_para + drv_dsi_tx.o(i.drv_dsi_tx_phy_test_setup) refers to drv_phy_common.o(i.drv_phy_get_pll_para) for drv_phy_get_pll_para + drv_dsi_tx.o(i.drv_dsi_tx_phy_test_setup) refers to drv_phy_common.o(i.drv_phy_get_calibration) for drv_phy_get_calibration + drv_dsi_tx.o(i.drv_dsi_tx_phy_test_setup) refers to drv_dsi_tx.o(i.drv_tx_phy_test_enter) for drv_tx_phy_test_enter + drv_dsi_tx.o(i.drv_dsi_tx_phy_test_setup) refers to drv_crgu.o(i.drv_crgu_set_mipi_ref_src) for drv_crgu_set_mipi_ref_src + drv_dsi_tx.o(i.drv_dsi_tx_phy_test_setup) refers to drv_crgu.o(i.drv_crgu_set_mipi_cfg_src) for drv_crgu_set_mipi_cfg_src + drv_dsi_tx.o(i.drv_dsi_tx_phy_test_setup) refers to drv_dsi_tx.o(i.drv_tx_phy_test_clear) for drv_tx_phy_test_clear + drv_dsi_tx.o(i.drv_dsi_tx_phy_test_setup) refers to drv_dsi_tx.o(i.drv_tx_phy_test_write_1_byte) for drv_tx_phy_test_write_1_byte + drv_dsi_tx.o(i.drv_dsi_tx_phy_test_setup) refers to drv_dsi_tx.o(i.drv_tx_phy_test_write_2_byte) for drv_tx_phy_test_write_2_byte + drv_dsi_tx.o(i.drv_dsi_tx_phy_test_setup) refers to drv_dsi_tx.o(i.drv_tx_phy_test_write_code) for drv_tx_phy_test_write_code + drv_dsi_tx.o(i.drv_dsi_tx_phy_test_setup) refers to drv_dsi_tx.o(i.drv_tx_phy_test_exit) for drv_tx_phy_test_exit + drv_dsi_tx.o(i.drv_dsi_tx_phy_trigger) refers to drv_dsi_tx.o(i.drv_dsi_tx_phy_status_stopstate) for drv_dsi_tx_phy_status_stopstate + drv_dsi_tx.o(i.drv_dsi_tx_phy_ulps_enter) refers to drv_dsi_tx.o(i.drv_dsi_tx_phy_status_stopstate) for drv_dsi_tx_phy_status_stopstate + drv_dsi_tx.o(i.drv_dsi_tx_phy_ulps_enter) refers to drv_dsi_tx.o(i.drv_dsi_tx_phy_status_pll_lock) for drv_dsi_tx_phy_status_pll_lock + drv_dsi_tx.o(i.drv_dsi_tx_phy_ulps_enter) refers to drv_dsi_tx.o(i.drv_dsi_tx_phy_status_ulpsactivenot) for drv_dsi_tx_phy_status_ulpsactivenot + drv_dsi_tx.o(i.drv_dsi_tx_phy_ulps_enter) refers to tau_log.o(i.LOG_printf) for LOG_printf + drv_dsi_tx.o(i.drv_dsi_tx_phy_ulps_exit) refers to tau_log.o(i.LOG_printf) for LOG_printf + drv_dsi_tx.o(i.drv_dsi_tx_phy_ulps_exit) refers to drv_dsi_tx.o(i.drv_dsi_tx_phy_status_ulpsactivenot) for drv_dsi_tx_phy_status_ulpsactivenot + drv_dsi_tx.o(i.drv_dsi_tx_phy_ulps_exit) refers to drv_dsi_tx.o(i.drv_tx_phy_test_write_1_byte) for drv_tx_phy_test_write_1_byte + drv_dsi_tx.o(i.drv_dsi_tx_phy_ulps_exit) refers to drv_dsi_tx.o(i.drv_dsi_tx_phy_status_pll_lock) for drv_dsi_tx_phy_status_pll_lock + drv_dsi_tx.o(i.drv_dsi_tx_phy_ulps_exit) refers to drv_dsi_tx.o(i.drv_dsi_tx_version) for drv_dsi_tx_version + drv_dsi_tx.o(i.drv_dsi_tx_set_int) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_dsi_tx.o(i.drv_dsi_tx_set_int) refers to drv_sys_cfg.o(i.drv_sys_cfg_set_int) for drv_sys_cfg_set_int + drv_dsi_tx.o(i.drv_tx_phy_test_clear) refers to drv_phy_common.o(i.drv_phy_test_clear) for drv_phy_test_clear + drv_dsi_tx.o(i.drv_tx_phy_test_read) refers to drv_phy_common.o(i.drv_phy_test_read) for drv_phy_test_read + drv_dsi_tx.o(i.drv_tx_phy_test_write_1_byte) refers to drv_phy_common.o(i.drv_phy_test_write_1_byte) for drv_phy_test_write_1_byte + drv_dsi_tx.o(i.drv_tx_phy_test_write_2_byte) refers to drv_phy_common.o(i.drv_phy_test_write_2_byte) for drv_phy_test_write_2_byte + drv_dsi_tx.o(i.drv_tx_phy_test_write_code) refers to drv_phy_common.o(i.drv_phy_test_write_code) for drv_phy_test_write_code + drv_lcdc.o(i.drv_lcdc_config_src_parameter) refers to drv_lcdc.o(i.drv_lcdc_config_input_size) for drv_lcdc_config_input_size + drv_lcdc.o(i.drv_lcdc_set_int) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_lcdc.o(i.drv_lcdc_set_int) refers to drv_sys_cfg.o(i.drv_sys_cfg_set_int) for drv_sys_cfg_set_int + drv_memc.o(i.app_MEMC_IRQn_Handler) refers to drv_memc.o(i.drv_memc_get_status) for drv_memc_get_status + drv_memc.o(i.app_MEMC_IRQn_Handler) refers to drv_memc.o(i.drv_memc_clear_status) for drv_memc_clear_status + drv_memc.o(i.app_MEMC_IRQn_Handler) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_memc.o(i.drv_memc_enable_irq) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_memc.o(i.drv_memc_enable_irq) refers to drv_sys_cfg.o(i.drv_sys_cfg_set_int) for drv_sys_cfg_set_int + drv_rxbr.o(i.app_ADC_IRQn_Handler) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_rxbr.o(i.app_ADC_IRQn_Handler) refers to drv_rxbr.o(.data) for .data + drv_rxbr.o(i.app_VPRE_IRQn_Handler) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_rxbr.o(i.app_VPRE_IRQn_Handler) refers to drv_rxbr.o(.data) for .data + drv_rxbr.o(i.drv_rxbr_enable_irq) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_rxbr.o(i.drv_rxbr_enable_irq) refers to drv_sys_cfg.o(i.drv_sys_cfg_set_int) for drv_sys_cfg_set_int + drv_rxbr.o(i.drv_rxbr_enable_irq) refers to drv_rxbr.o(i.__NVIC_EnableIRQ) for __NVIC_EnableIRQ + drv_rxbr.o(i.drv_rxbr_enable_irq) refers to drv_rxbr.o(i.__NVIC_DisableIRQ) for __NVIC_DisableIRQ + drv_rxbr.o(i.drv_rxbr_register_irq0_callback) refers to drv_rxbr.o(.data) for .data + drv_rxbr.o(i.drv_rxbr_register_irq1_callback) refers to drv_rxbr.o(.data) for .data + drv_rxbr.o(i.drv_rxbr_set_cmd_filter) refers to hal_dsi_rx_ctrl.o(i.__ARM_common_switch8) for __ARM_common_switch8 + drv_rxbr.o(i.drv_rxbr_soft_reset) refers to drv_crgu.o(i.drv_crgu_set_reset) for drv_crgu_set_reset + drv_vidc.o(i.app_VIDC_IRQn_Handler) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_vidc.o(i.app_VIDC_IRQn_Handler) refers to drv_vidc.o(.data) for .data + drv_vidc.o(i.drv_vidc_enable_irq) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_vidc.o(i.drv_vidc_enable_irq) refers to drv_sys_cfg.o(i.drv_sys_cfg_set_int) for drv_sys_cfg_set_int + drv_vidc.o(i.drv_vidc_register_callback) refers to drv_vidc.o(.data) for .data + irq_redirect .o(i.ADC_IRQn_Handler) refers to irq_redirect .o(.ARM.__AT_0x00070100) for .ARM.__AT_0x00070100 + irq_redirect .o(i.AP_NRESET_IRQn_Handler) refers to irq_redirect .o(.ARM.__AT_0x00070100) for .ARM.__AT_0x00070100 + irq_redirect .o(i.DMA_IRQn_Handler) refers to irq_redirect .o(.ARM.__AT_0x00070100) for .ARM.__AT_0x00070100 + irq_redirect .o(i.EXTI_INT0_IRQn_Handler) refers to irq_redirect .o(.ARM.__AT_0x00070100) for .ARM.__AT_0x00070100 + irq_redirect .o(i.EXTI_INT1_IRQn_Handler) refers to irq_redirect .o(.ARM.__AT_0x00070100) for .ARM.__AT_0x00070100 + irq_redirect .o(i.EXTI_INT2_IRQn_Handler) refers to irq_redirect .o(.ARM.__AT_0x00070100) for .ARM.__AT_0x00070100 + irq_redirect .o(i.EXTI_INT3_IRQn_Handler) refers to irq_redirect .o(.ARM.__AT_0x00070100) for .ARM.__AT_0x00070100 + irq_redirect .o(i.EXTI_INT4_IRQn_Handler) refers to irq_redirect .o(.ARM.__AT_0x00070100) for .ARM.__AT_0x00070100 + irq_redirect .o(i.EXTI_INT5_IRQn_Handler) refers to irq_redirect .o(.ARM.__AT_0x00070100) for .ARM.__AT_0x00070100 + irq_redirect .o(i.EXTI_INT6_IRQn_Handler) refers to irq_redirect .o(.ARM.__AT_0x00070100) for .ARM.__AT_0x00070100 + irq_redirect .o(i.EXTI_INT7_IRQn_Handler) refers to irq_redirect .o(.ARM.__AT_0x00070100) for .ARM.__AT_0x00070100 + irq_redirect .o(i.FLSCTRL_IRQn_Handler) refers to irq_redirect .o(.ARM.__AT_0x00070100) for .ARM.__AT_0x00070100 + irq_redirect .o(i.HardFault_Handler) refers to irq_redirect .o(.ARM.__AT_0x00070100) for .ARM.__AT_0x00070100 + irq_redirect .o(i.I2C0_IRQn_Handler) refers to irq_redirect .o(.ARM.__AT_0x00070100) for .ARM.__AT_0x00070100 + irq_redirect .o(i.I2C1_IRQn_Handler) refers to irq_redirect .o(.ARM.__AT_0x00070100) for .ARM.__AT_0x00070100 + irq_redirect .o(i.LCDC_IRQn_Handler) refers to irq_redirect .o(.ARM.__AT_0x00070100) for .ARM.__AT_0x00070100 + irq_redirect .o(i.MEMC_IRQn_Handler) refers to irq_redirect .o(.ARM.__AT_0x00070100) for .ARM.__AT_0x00070100 + irq_redirect .o(i.MIPI_RX_IRQn_Handler) refers to irq_redirect .o(.ARM.__AT_0x00070100) for .ARM.__AT_0x00070100 + irq_redirect .o(i.MIPI_TX_IRQn_Handler) refers to irq_redirect .o(.ARM.__AT_0x00070100) for .ARM.__AT_0x00070100 + irq_redirect .o(i.PWMDET_IRQn_Handler) refers to irq_redirect .o(.ARM.__AT_0x00070100) for .ARM.__AT_0x00070100 + irq_redirect .o(i.SPIM_IRQn_Handler) refers to irq_redirect .o(.ARM.__AT_0x00070100) for .ARM.__AT_0x00070100 + irq_redirect .o(i.SPIS_IRQn_Handler) refers to irq_redirect .o(.ARM.__AT_0x00070100) for .ARM.__AT_0x00070100 + irq_redirect .o(i.SWIRE_IRQn_Handler) refers to irq_redirect .o(.ARM.__AT_0x00070100) for .ARM.__AT_0x00070100 + irq_redirect .o(i.SysTick_Handler) refers to irq_redirect .o(.ARM.__AT_0x00070100) for .ARM.__AT_0x00070100 + irq_redirect .o(i.TIMER0_IRQn_Handler) refers to irq_redirect .o(.ARM.__AT_0x00070100) for .ARM.__AT_0x00070100 + irq_redirect .o(i.TIMER1_IRQn_Handler) refers to irq_redirect .o(.ARM.__AT_0x00070100) for .ARM.__AT_0x00070100 + irq_redirect .o(i.TIMER2_IRQn_Handler) refers to irq_redirect .o(.ARM.__AT_0x00070100) for .ARM.__AT_0x00070100 + irq_redirect .o(i.TIMER3_IRQn_Handler) refers to irq_redirect .o(.ARM.__AT_0x00070100) for .ARM.__AT_0x00070100 + irq_redirect .o(i.UART_IRQn_Handler) refers to irq_redirect .o(.ARM.__AT_0x00070100) for .ARM.__AT_0x00070100 + irq_redirect .o(i.VIDC_IRQn_Handler) refers to irq_redirect .o(.ARM.__AT_0x00070100) for .ARM.__AT_0x00070100 + irq_redirect .o(i.VPRE_IRQn_Handler) refers to irq_redirect .o(.ARM.__AT_0x00070100) for .ARM.__AT_0x00070100 + irq_redirect .o(i.WDG_IRQn_Handler) refers to irq_redirect .o(.ARM.__AT_0x00070100) for .ARM.__AT_0x00070100 + irq_redirect .o(i.handle_init) refers to irq_redirect .o(.ARM.__AT_0x00070100) for .ARM.__AT_0x00070100 + irq_redirect .o(i.handle_init) refers to drv_common.o(i.app_SysTick_Handler) for app_SysTick_Handler + irq_redirect .o(i.handle_init) refers to hal_internal_vsync.o(i.app_LCDC_IRQn_Handler) for app_LCDC_IRQn_Handler + irq_redirect .o(i.handle_init) refers to drv_dsi_rx.o(i.app_MIPI_RX_IRQn_Handler) for app_MIPI_RX_IRQn_Handler + irq_redirect .o(i.handle_init) refers to drv_dsi_tx.o(i.app_MIPI_TX_IRQn_Handler) for app_MIPI_TX_IRQn_Handler + irq_redirect .o(i.handle_init) refers to drv_dma.o(i.app_dma_irq_handler) for app_dma_irq_handler + irq_redirect .o(i.handle_init) refers to norflash.o(i.app_fls_ctrl_Handler) for app_fls_ctrl_Handler + irq_redirect .o(i.handle_init) refers to drv_i2c_slave.o(i.app_I2C0_IRQn_Handler) for app_I2C0_IRQn_Handler + irq_redirect .o(i.handle_init) refers to drv_i2c_master.o(i.app_I2C1_IRQn_Handler) for app_I2C1_IRQn_Handler + irq_redirect .o(i.handle_init) refers to hal_spi_slave.o(i.app_SPIS_IRQn_Handler) for app_SPIS_IRQn_Handler + irq_redirect .o(i.handle_init) refers to drv_spi_master.o(i.app_SPIM_IRQn_Handler) for app_SPIM_IRQn_Handler + irq_redirect .o(i.handle_init) refers to drv_rxbr.o(i.app_VPRE_IRQn_Handler) for app_VPRE_IRQn_Handler + irq_redirect .o(i.handle_init) refers to drv_rxbr.o(i.app_ADC_IRQn_Handler) for app_ADC_IRQn_Handler + irq_redirect .o(i.handle_init) refers to drv_vidc.o(i.app_VIDC_IRQn_Handler) for app_VIDC_IRQn_Handler + irq_redirect .o(i.handle_init) refers to drv_memc.o(i.app_MEMC_IRQn_Handler) for app_MEMC_IRQn_Handler + irq_redirect .o(i.handle_init) refers to drv_timer.o(i.app_TIMER0_IRQn_Handler) for app_TIMER0_IRQn_Handler + irq_redirect .o(i.handle_init) refers to drv_timer.o(i.app_TIMER1_IRQn_Handler) for app_TIMER1_IRQn_Handler + irq_redirect .o(i.handle_init) refers to drv_timer.o(i.app_TIMER2_IRQn_Handler) for app_TIMER2_IRQn_Handler + irq_redirect .o(i.handle_init) refers to drv_timer.o(i.app_TIMER3_IRQn_Handler) for app_TIMER3_IRQn_Handler + irq_redirect .o(i.handle_init) refers to drv_wdg.o(i.app_WDG_IRQn_Handler) for app_WDG_IRQn_Handler + irq_redirect .o(i.handle_init) refers to drv_uart.o(i.app_UART_IRQn_Handler) for app_UART_IRQn_Handler + irq_redirect .o(i.handle_init) refers to drv_pwm.o(i.app_PWMDET_IRQn_Handler) for app_PWMDET_IRQn_Handler + irq_redirect .o(i.handle_init) refers to drv_swire.o(i.app_SWIRE_IRQn_Handler) for app_SWIRE_IRQn_Handler + irq_redirect .o(i.handle_init) refers to drv_gpio.o(i.app_AP_NRESET_IRQn_Handler) for app_AP_NRESET_IRQn_Handler + irq_redirect .o(i.handle_init) refers to drv_gpio.o(i.app_EXTI_INT0_IRQn_Handler) for app_EXTI_INT0_IRQn_Handler + irq_redirect .o(i.handle_init) refers to drv_gpio.o(i.app_EXTI_INT1_IRQn_Handler) for app_EXTI_INT1_IRQn_Handler + irq_redirect .o(i.handle_init) refers to drv_gpio.o(i.app_EXTI_INT2_IRQn_Handler) for app_EXTI_INT2_IRQn_Handler + irq_redirect .o(i.handle_init) refers to drv_gpio.o(i.app_EXTI_INT3_IRQn_Handler) for app_EXTI_INT3_IRQn_Handler + irq_redirect .o(i.handle_init) refers to drv_gpio.o(i.app_EXTI_INT4_IRQn_Handler) for app_EXTI_INT4_IRQn_Handler + irq_redirect .o(i.handle_init) refers to drv_gpio.o(i.app_EXTI_INT5_IRQn_Handler) for app_EXTI_INT5_IRQn_Handler + irq_redirect .o(i.handle_init) refers to drv_gpio.o(i.app_EXTI_INT6_IRQn_Handler) for app_EXTI_INT6_IRQn_Handler + irq_redirect .o(i.handle_init) refers to drv_gpio.o(i.app_EXTI_INT7_IRQn_Handler) for app_EXTI_INT7_IRQn_Handler + irq_redirect .o(i.handle_init) refers to drv_common.o(i.app_HardFault_Handler) for app_HardFault_Handler + drv_efuse.o(i.drv_efuse_enter_inactive) refers to drv_efuse.o(i.drv_efuse_int_enable) for drv_efuse_int_enable + drv_efuse.o(i.drv_efuse_read) refers to drv_efuse.o(i.drv_efuse_read_req) for drv_efuse_read_req + drv_efuse.o(i.drv_efuse_write) refers to drv_efuse.o(i.drv_efuse_write_req) for drv_efuse_write_req + drv_phy_common.o(i.drv_phy_enable_calibration) refers to drv_phy_common.o(.data) for .data + drv_phy_common.o(i.drv_phy_get_calibration) refers to drv_chip_info.o(i.drv_chip_info_get_info) for drv_chip_info_get_info + drv_phy_common.o(i.drv_phy_get_calibration) refers to drv_efuse.o(i.drv_efuse_read) for drv_efuse_read + drv_phy_common.o(i.drv_phy_get_calibration) refers to drv_phy_common.o(.data) for .data + drv_phy_common.o(i.drv_phy_get_pll_para) refers to drv_phy_common.o(.constdata) for .constdata + drv_phy_common.o(i.drv_phy_get_rate_para) refers to uidiv.o(.text) for __aeabi_uidivmod + drv_phy_common.o(i.drv_phy_get_rate_para) refers to drv_phy_common.o(.constdata) for .constdata + drv_phy_common.o(i.drv_phy_test_write_1_byte) refers to drv_phy_common.o(i.drv_phy_test_write_code) for drv_phy_test_write_code + drv_phy_common.o(i.drv_phy_test_write_1_byte) refers to drv_phy_common.o(i.drv_phy_test_write_data) for drv_phy_test_write_data + drv_phy_common.o(i.drv_phy_test_write_2_byte) refers to drv_phy_common.o(i.drv_phy_test_write_code) for drv_phy_test_write_code + drv_phy_common.o(i.drv_phy_test_write_2_byte) refers to drv_phy_common.o(i.drv_phy_test_write_data) for drv_phy_test_write_data + drv_chip_info.o(i.drv_chip_info_get_info) refers to drv_chip_info.o(.data) for .data + drv_chip_info.o(i.drv_chip_info_init) refers to drv_efuse.o(i.drv_efuse_enter_inactive) for drv_efuse_enter_inactive + drv_chip_info.o(i.drv_chip_info_init) refers to drv_efuse.o(i.drv_efuse_read) for drv_efuse_read + drv_chip_info.o(i.drv_chip_info_init) refers to drv_chip_info.o(.data) for .data + drv_chip_info.o(i.drv_chip_rx_info_check) refers to printfa.o(i.__0printf) for __2printf + drv_chip_info.o(i.drv_chip_rx_info_check) refers to tau_log.o(i.LOG_printf) for LOG_printf + drv_chip_info.o(i.drv_chip_rx_info_check) refers to drv_chip_info.o(.data) for .data + drv_dsc_dec.o(i.drv_dsc_dec_enable) refers to drv_efuse.o(i.drv_efuse_enter_inactive) for drv_efuse_enter_inactive + drv_dsc_dec.o(i.drv_dsc_dec_enable) refers to drv_efuse.o(i.drv_efuse_read) for drv_efuse_read + drv_dsc_dec.o(i.drv_dsc_dec_enable) refers to printfa.o(i.__0printf) for __2printf + hal_spi_slave.o(i.app_SPIS_IRQn_Handler) refers to hal_dsi_rx_ctrl.o(i.__ARM_common_switch8) for __ARM_common_switch8 + hal_spi_slave.o(i.app_SPIS_IRQn_Handler) refers to hal_spi_slave.o(i.__NVIC_SetPriority) for __NVIC_SetPriority + hal_spi_slave.o(i.app_SPIS_IRQn_Handler) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + hal_spi_slave.o(i.app_SPIS_IRQn_Handler) refers to hal_spi_slave.o(.bss) for .bss + hal_spi_slave.o(i.hal_spi_s_set_high_impedance) refers to hal_gpio.o(i.hal_gpio_set_mode) for hal_gpio_set_mode + hal_spi_slave.o(i.hal_spi_s_set_high_impedance) refers to hal_gpio.o(i.hal_gpio_init_input) for hal_gpio_init_input + hal_spi_slave.o(i.hal_spi_s_set_high_impedance) refers to hal_gpio.o(i.hal_gpio_set_pull_state) for hal_gpio_set_pull_state + hal_spi_slave.o(i.hal_spi_slave_auto_transfer_abort) refers to drv_spi_dma.o(i.drv_spi_abort_dma) for drv_spi_abort_dma + hal_spi_slave.o(i.hal_spi_slave_auto_transfer_start) refers to drv_dma.o(i.drv_dma_enable_cycle) for drv_dma_enable_cycle + hal_spi_slave.o(i.hal_spi_slave_auto_transfer_start) refers to drv_spi_dma.o(i.drv_spis_dma_write) for drv_spis_dma_write + hal_spi_slave.o(i.hal_spi_slave_auto_transfer_start) refers to hal_spi_slave.o(.bss) for .bss + hal_spi_slave.o(i.hal_spi_slave_deinit) refers to drv_spi_slave.o(i.drv_spi_s_deinit) for drv_spi_s_deinit + hal_spi_slave.o(i.hal_spi_slave_enable) refers to drv_spi_slave.o(i.drv_spi_s_enable_int) for drv_spi_s_enable_int + hal_spi_slave.o(i.hal_spi_slave_enable) refers to tau_log.o(i.LOG_printf) for LOG_printf + hal_spi_slave.o(i.hal_spi_slave_enable) refers to hal_spi_slave.o(.bss) for .bss + hal_spi_slave.o(i.hal_spi_slave_gpio_init) refers to drv_spi_slave.o(i.drv_spi_s_gpio_init) for drv_spi_s_gpio_init + hal_spi_slave.o(i.hal_spi_slave_init) refers to hal_spi_slave.o(i.hal_spi_slave_gpio_init) for hal_spi_slave_gpio_init + hal_spi_slave.o(i.hal_spi_slave_init) refers to drv_spi_slave.o(i.drv_spi_slave_init) for drv_spi_slave_init + hal_spi_slave.o(i.hal_spi_slave_init) refers to drv_spi_dma.o(i.drv_spi_dma_init) for drv_spi_dma_init + hal_spi_slave.o(i.hal_spi_slave_init) refers to drv_spi_dma.o(i.drv_spi_set_dma_irq_callback) for drv_spi_set_dma_irq_callback + hal_spi_slave.o(i.hal_spi_slave_init) refers to drv_spi_slave.o(i.drv_spi_s_enable_tx_dma) for drv_spi_s_enable_tx_dma + hal_spi_slave.o(i.hal_spi_slave_init) refers to drv_sys_cfg.o(i.drv_sys_cfg_set_dma_tx_req) for drv_sys_cfg_set_dma_tx_req + hal_spi_slave.o(i.hal_spi_slave_init) refers to hal_spi_slave.o(.bss) for .bss + hal_spi_slave.o(i.hal_spi_slave_read_data) refers to drv_spi_slave.o(i.drv_spi_s_read_data) for drv_spi_s_read_data + hal_spi_slave.o(i.hal_spi_slave_register_callback) refers to hal_spi_slave.o(.bss) for .bss + hal_spi_slave.o(i.hal_spi_slave_reset_tx) refers to hal_spi_slave.o(.bss) for .bss + hal_spi_slave.o(i.hal_spi_slave_set_auto_rx_buffer) refers to hal_spi_slave.o(.bss) for .bss + hal_spi_slave.o(i.hal_spi_slave_set_auto_tx_buffer) refers to hal_spi_slave.o(.bss) for .bss + hal_spi_slave.o(i.hal_spi_slave_write_data) refers to drv_spi_slave.o(i.drv_spi_s_write_data) for drv_spi_s_write_data + drv_fls_dma.o(i.fls_abort_dma) refers to drv_dma.o(i.drv_dma_abort_transfer) for drv_dma_abort_transfer + drv_fls_dma.o(i.fls_abort_dma) refers to drv_fls_dma.o(i.fls_dma_disable) for fls_dma_disable + drv_fls_dma.o(i.fls_dma_read_prepare) refers to drv_fls.o(i.fls_clear_irq_status) for fls_clear_irq_status + drv_fls_dma.o(i.fls_dma_read_prepare) refers to drv_fls.o(i.fls_swrst) for fls_swrst + drv_fls_dma.o(i.fls_dma_read_prepare) refers to drv_fls.o(i.fls_set_read) for fls_set_read + drv_fls_dma.o(i.fls_dma_read_prepare) refers to drv_fls_dma.o(i.fls_dma_enable) for fls_dma_enable + drv_fls_dma.o(i.fls_dma_read_prepare) refers to drv_fls.o(i.fls_spi_start) for fls_spi_start + drv_fls_dma.o(i.fls_dma_write_prepare) refers to drv_fls.o(i.fls_clear_irq_status) for fls_clear_irq_status + drv_fls_dma.o(i.fls_dma_write_prepare) refers to drv_fls.o(i.fls_swrst) for fls_swrst + drv_fls_dma.o(i.fls_dma_write_prepare) refers to drv_fls.o(i.fls_set_write) for fls_set_write + drv_fls_dma.o(i.fls_dma_write_prepare) refers to drv_fls_dma.o(i.fls_dma_enable) for fls_dma_enable + drv_fls_dma.o(i.fls_dma_write_prepare) refers to drv_fls.o(i.fls_spi_start) for fls_spi_start + drv_fls_dma.o(i.fls_read_dmacallback) refers to drv_dma.o(i.drv_dma_abort_transfer) for drv_dma_abort_transfer + drv_fls_dma.o(i.fls_transfer_create_handle_dma) refers to memseta.o(.text) for __aeabi_memclr4 + drv_fls_dma.o(i.fls_transfer_create_handle_dma) refers to drv_dma.o(i.drv_dma_init) for drv_dma_init + drv_fls_dma.o(i.fls_transfer_create_handle_dma) refers to drv_dma.o(i.drv_dma_set_callback) for drv_dma_set_callback + drv_fls_dma.o(i.fls_transfer_create_handle_dma) refers to drv_fls_dma.o(.data) for .data + drv_fls_dma.o(i.fls_transfer_create_handle_dma) refers to drv_fls_dma.o(i.fls_read_dmacallback) for fls_read_dmacallback + drv_fls_dma.o(i.fls_transfer_create_handle_dma) refers to drv_fls_dma.o(i.fls_write_dmacallback) for fls_write_dmacallback + drv_fls_dma.o(i.fls_transfer_dma) refers to drv_dma.o(i.drv_dma_prepar_transfer) for drv_dma_prepar_transfer + drv_fls_dma.o(i.fls_transfer_dma) refers to drv_dma.o(i.drv_dma_start_transfer) for drv_dma_start_transfer + drv_fls_dma.o(i.fls_transfer_get_receive_count_dma) refers to drv_dma.o(i.drv_dma_get_remaining_bytes) for drv_dma_get_remaining_bytes + drv_fls_dma.o(i.fls_write_dmacallback) refers to drv_dma.o(i.drv_dma_abort_transfer) for drv_dma_abort_transfer + drv_spi_slave.o(i.drv_spi_s_deinit) refers to drv_spi_slave.o(i.drv_spi_s_switch_sclk) for drv_spi_s_switch_sclk + drv_uart.o(i.UART0_IRQ_Handle) refers to drv_uart.o(i.UART_TransferHandleIRQ) for UART_TransferHandleIRQ + drv_uart.o(i.UART0_IRQ_Handle) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_uart.o(i.UART0_IRQ_Handle) refers to drv_uart.o(.data) for .data + drv_uart.o(i.UART_AbortReceive) refers to drv_uart.o(i.UART_Disable_IT) for UART_Disable_IT + drv_uart.o(i.UART_AbortReceive) refers to drv_uart.o(i.UART_ResetRxFIFO) for UART_ResetRxFIFO + drv_uart.o(i.UART_AbortSend) refers to drv_uart.o(i.UART_Disable_IT) for UART_Disable_IT + drv_uart.o(i.UART_AbortSend) refers to drv_uart.o(i.UART_ResetTxFIFO) for UART_ResetTxFIFO + drv_uart.o(i.UART_Deinit) refers to drv_uart.o(i.UART_SwitchSCLK) for UART_SwitchSCLK + drv_uart.o(i.UART_Disable_IT) refers to drv_uart.o(i.UART_GetInstance) for UART_GetInstance + drv_uart.o(i.UART_Disable_IT) refers to drv_sys_cfg.o(i.drv_sys_cfg_set_int) for drv_sys_cfg_set_int + drv_uart.o(i.UART_Disable_IT) refers to drv_uart.o(.constdata) for .constdata + drv_uart.o(i.UART_EnableDma) refers to drv_sys_cfg.o(i.drv_sys_cfg_set_dma_rx_req) for drv_sys_cfg_set_dma_rx_req + drv_uart.o(i.UART_EnableDma) refers to drv_sys_cfg.o(i.drv_sys_cfg_set_dma_tx_req) for drv_sys_cfg_set_dma_tx_req + drv_uart.o(i.UART_Enable_IT) refers to drv_uart.o(i.UART_GetInstance) for UART_GetInstance + drv_uart.o(i.UART_Enable_IT) refers to drv_sys_cfg.o(i.drv_sys_cfg_set_int) for drv_sys_cfg_set_int + drv_uart.o(i.UART_GetDefaultConfig) refers to memseta.o(.text) for __aeabi_memclr4 + drv_uart.o(i.UART_GetDefaultConfig) refers to drv_common.o(.data) for g_system_clock + drv_uart.o(i.UART_GetFIFO_Ctrl) refers to drv_uart.o(i.UART_GetInstance) for UART_GetInstance + drv_uart.o(i.UART_GetFIFO_Ctrl) refers to drv_uart.o(.data) for .data + drv_uart.o(i.UART_ResetRxFIFO) refers to drv_uart.o(i.UART_GetInstance) for UART_GetInstance + drv_uart.o(i.UART_ResetRxFIFO) refers to drv_uart.o(.data) for .data + drv_uart.o(i.UART_ResetTxFIFO) refers to drv_uart.o(i.UART_GetInstance) for UART_GetInstance + drv_uart.o(i.UART_ResetTxFIFO) refers to drv_uart.o(.data) for .data + drv_uart.o(i.UART_SetBaudRate) refers to uidiv.o(.text) for __aeabi_uidivmod + drv_uart.o(i.UART_SwitchSCLK) refers to drv_crgu.o(i.drv_crgu_set_clock) for drv_crgu_set_clock + drv_uart.o(i.UART_TransferCreateHandle) refers to drv_uart.o(i.UART_GetInstance) for UART_GetInstance + drv_uart.o(i.UART_TransferCreateHandle) refers to memseta.o(.text) for __aeabi_memclr4 + drv_uart.o(i.UART_TransferCreateHandle) refers to drv_uart.o(i.UART_Enable_IT) for UART_Enable_IT + drv_uart.o(i.UART_TransferCreateHandle) refers to drv_uart.o(.data) for .data + drv_uart.o(i.UART_TransferHandleIRQ) refers to drv_uart.o(i.UART_ResetRxFIFO) for UART_ResetRxFIFO + drv_uart.o(i.UART_init) refers to drv_uart.o(i.UART_DisableDma) for UART_DisableDma + drv_uart.o(i.UART_init) refers to drv_uart.o(i.UART_SwitchSCLK) for UART_SwitchSCLK + drv_uart.o(i.UART_init) refers to drv_uart.o(i.UART_GetInstance) for UART_GetInstance + drv_uart.o(i.UART_init) refers to drv_uart.o(i.UART_SetBaudRate) for UART_SetBaudRate + drv_uart.o(i.UART_init) refers to drv_sys_cfg.o(i.drv_sys_cfg_set_int) for drv_sys_cfg_set_int + drv_uart.o(i.UART_init) refers to drv_uart.o(.data) for .data + drv_uart.o(i.app_UART_IRQn_Handler) refers to drv_uart.o(i.UART0_IRQ_Handle) for UART0_IRQ_Handle + drv_uart_dma.o(i.UART_DMAInit) refers to memseta.o(.text) for __aeabi_memclr4 + drv_uart_dma.o(i.UART_DMAInit) refers to drv_dma.o(i.drv_dma_init) for drv_dma_init + drv_uart_dma.o(i.UART_TransferAbortReceiveDMA) refers to drv_dma.o(i.drv_dma_abort_transfer) for drv_dma_abort_transfer + drv_uart_dma.o(i.UART_TransferAbortSendDMA) refers to drv_dma.o(i.drv_dma_abort_transfer) for drv_dma_abort_transfer + drv_uart_dma.o(i.UART_TransferCreateHandleDMA) refers to drv_uart.o(i.UART_GetInstance) for UART_GetInstance + drv_uart_dma.o(i.UART_TransferCreateHandleDMA) refers to memseta.o(.text) for __aeabi_memclr4 + drv_uart_dma.o(i.UART_TransferCreateHandleDMA) refers to drv_uart.o(i.UART_EnableDma) for UART_EnableDma + drv_uart_dma.o(i.UART_TransferCreateHandleDMA) refers to drv_uart_dma.o(i.UART_DMAInit) for UART_DMAInit + drv_uart_dma.o(i.UART_TransferCreateHandleDMA) refers to drv_dma.o(i.drv_dma_set_callback) for drv_dma_set_callback + drv_uart_dma.o(i.UART_TransferCreateHandleDMA) refers to drv_uart_dma.o(.data) for .data + drv_uart_dma.o(i.UART_TransferCreateHandleDMA) refers to drv_uart_dma.o(i.UART_TransferReceiveDMACallback) for UART_TransferReceiveDMACallback + drv_uart_dma.o(i.UART_TransferCreateHandleDMA) refers to drv_uart_dma.o(i.UART_TransferSendDMACallback) for UART_TransferSendDMACallback + drv_uart_dma.o(i.UART_TransferGetReceiveCountDMA) refers to drv_dma.o(i.drv_dma_get_remaining_bytes) for drv_dma_get_remaining_bytes + drv_uart_dma.o(i.UART_TransferReceiveDMA) refers to drv_dma.o(i.drv_dma_prepar_transfer) for drv_dma_prepar_transfer + drv_uart_dma.o(i.UART_TransferReceiveDMA) refers to drv_uart.o(i.UART_EnableDma) for UART_EnableDma + drv_uart_dma.o(i.UART_TransferReceiveDMA) refers to drv_dma.o(i.drv_dma_start_transfer) for drv_dma_start_transfer + drv_uart_dma.o(i.UART_TransferSendDMA) refers to drv_dma.o(i.drv_dma_prepar_transfer) for drv_dma_prepar_transfer + drv_uart_dma.o(i.UART_TransferSendDMA) refers to drv_uart.o(i.UART_EnableDma) for UART_EnableDma + drv_uart_dma.o(i.UART_TransferSendDMA) refers to drv_dma.o(i.drv_dma_start_transfer) for drv_dma_start_transfer + drv_wdg.o(i.app_WDG_IRQn_Handler) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_wdg.o(i.app_WDG_IRQn_Handler) refers to drv_wdg.o(i.drv_wdg_set_int) for drv_wdg_set_int + drv_wdg.o(i.app_WDG_IRQn_Handler) refers to drv_wdg.o(i.drv_wdg_clear_counter) for drv_wdg_clear_counter + drv_wdg.o(i.app_WDG_IRQn_Handler) refers to drv_wdg.o(i.drv_wdg_read_edge_flag) for drv_wdg_read_edge_flag + drv_wdg.o(i.app_WDG_IRQn_Handler) refers to drv_wdg.o(i.drv_wdg_clear_edge_flag) for drv_wdg_clear_edge_flag + drv_wdg.o(i.app_WDG_IRQn_Handler) refers to drv_wdg.o(.data) for .data + drv_wdg.o(i.drv_wdg_register_callback) refers to drv_wdg.o(.data) for .data + drv_wdg.o(i.drv_wdg_set_int) refers to drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) for drv_sys_cfg_clear_pending + drv_wdg.o(i.drv_wdg_set_int) refers to drv_sys_cfg.o(i.drv_sys_cfg_set_int) for drv_sys_cfg_set_int + drv_wdg.o(i.drv_wdg_set_repeat) refers to drv_wdg.o(.data) for .data + ceil.o(i.__softfp_ceil) refers (Special) to iusefp.o(.text) for __I$use$fp + ceil.o(i.__softfp_ceil) refers to ceil.o(i.ceil) for ceil + ceil.o(i.ceil) refers (Special) to iusefp.o(.text) for __I$use$fp + ceil.o(i.ceil) refers to dadd.o(.text) for __aeabi_dadd + ceil.o(i.ceil) refers to cdrcmple.o(.text) for __aeabi_cdrcmple + sqrt.o(i.__softfp_sqrt) refers (Special) to iusefp.o(.text) for __I$use$fp + sqrt.o(i.__softfp_sqrt) refers to dsqrt.o(.text) for _dsqrt + sqrt.o(i.__softfp_sqrt) refers to errno.o(i.__set_errno) for __set_errno + sqrt.o(i.sqrt) refers (Special) to iusefp.o(.text) for __I$use$fp + sqrt.o(i.sqrt) refers to dsqrt.o(.text) for _dsqrt + sqrt.o(i.sqrt) refers to errno.o(i.__set_errno) for __set_errno + sqrt_x.o(i.____softfp_sqrt$lsc) refers (Special) to iusefp.o(.text) for __I$use$fp + sqrt_x.o(i.____softfp_sqrt$lsc) refers to cdcmple.o(.text) for __aeabi_cdcmple + sqrt_x.o(i.____softfp_sqrt$lsc) refers to errno.o(i.__set_errno) for __set_errno + sqrt_x.o(i.____softfp_sqrt$lsc) refers to dsqrt.o(.text) for _dsqrt + sqrt_x.o(i.__sqrt$lsc) refers (Special) to iusefp.o(.text) for __I$use$fp + sqrt_x.o(i.__sqrt$lsc) refers to cdcmple.o(.text) for __aeabi_cdcmple + sqrt_x.o(i.__sqrt$lsc) refers to errno.o(i.__set_errno) for __set_errno + sqrt_x.o(i.__sqrt$lsc) refers to dsqrt.o(.text) for _dsqrt + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry10a.o(.ARM.Collect$$$$0000000D) for __rt_final_cpp + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry11a.o(.ARM.Collect$$$$0000000F) for __rt_final_exit + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry7b.o(.ARM.Collect$$$$00000008) for _main_clock + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry8b.o(.ARM.Collect$$$$0000000A) for _main_cpp_init + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry9a.o(.ARM.Collect$$$$0000000B) for _main_init + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry5.o(.ARM.Collect$$$$00000004) for _main_scatterload + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry2.o(.ARM.Collect$$$$00000001) for _main_stk + idiv.o(.text) refers to uidiv.o(.text) for __aeabi_uidivmod + printfb.o(i.__0fprintf$bare) refers to printfb.o(i._printf_core) for _printf_core + printfb.o(i.__0fprintf$bare) refers to tau_log.o(i.fputc) for fputc + printfb.o(i.__0printf$bare) refers to printfb.o(i._printf_core) for _printf_core + printfb.o(i.__0printf$bare) refers to tau_log.o(i.fputc) for fputc + printfb.o(i.__0printf$bare) refers to stdout.o(.data) for __stdout + printfb.o(i.__0snprintf$bare) refers to printfb.o(i._printf_core) for _printf_core + printfb.o(i.__0snprintf$bare) refers to printfb.o(i._snputc) for _snputc + printfb.o(i.__0sprintf$bare) refers to printfb.o(i._printf_core) for _printf_core + printfb.o(i.__0sprintf$bare) refers to printfb.o(i._sputc) for _sputc + printfb.o(i.__0vfprintf$bare) refers to printfb.o(i._printf_core) for _printf_core + printfb.o(i.__0vfprintf$bare) refers to tau_log.o(i.fputc) for fputc + printfb.o(i.__0vprintf$bare) refers to printfb.o(i._printf_core) for _printf_core + printfb.o(i.__0vprintf$bare) refers to tau_log.o(i.fputc) for fputc + printfb.o(i.__0vprintf$bare) refers to stdout.o(.data) for __stdout + printfb.o(i.__0vsnprintf$bare) refers to printfb.o(i._printf_core) for _printf_core + printfb.o(i.__0vsnprintf$bare) refers to printfb.o(i._snputc) for _snputc + printfb.o(i.__0vsprintf$bare) refers to printfb.o(i._printf_core) for _printf_core + printfb.o(i.__0vsprintf$bare) refers to printfb.o(i._sputc) for _sputc + printf0.o(i.__0fprintf$0) refers to printf0.o(i._printf_core) for _printf_core + printf0.o(i.__0fprintf$0) refers to tau_log.o(i.fputc) for fputc + printf0.o(i.__0printf$0) refers to printf0.o(i._printf_core) for _printf_core + printf0.o(i.__0printf$0) refers to tau_log.o(i.fputc) for fputc + printf0.o(i.__0printf$0) refers to stdout.o(.data) for __stdout + printf0.o(i.__0snprintf$0) refers to printf0.o(i._printf_core) for _printf_core + printf0.o(i.__0snprintf$0) refers to printf0.o(i._snputc) for _snputc + printf0.o(i.__0sprintf$0) refers to printf0.o(i._printf_core) for _printf_core + printf0.o(i.__0sprintf$0) refers to printf0.o(i._sputc) for _sputc + printf0.o(i.__0vfprintf$0) refers to printf0.o(i._printf_core) for _printf_core + printf0.o(i.__0vfprintf$0) refers to tau_log.o(i.fputc) for fputc + printf0.o(i.__0vprintf$0) refers to printf0.o(i._printf_core) for _printf_core + printf0.o(i.__0vprintf$0) refers to tau_log.o(i.fputc) for fputc + printf0.o(i.__0vprintf$0) refers to stdout.o(.data) for __stdout + printf0.o(i.__0vsnprintf$0) refers to printf0.o(i._printf_core) for _printf_core + printf0.o(i.__0vsnprintf$0) refers to printf0.o(i._snputc) for _snputc + printf0.o(i.__0vsprintf$0) refers to printf0.o(i._printf_core) for _printf_core + printf0.o(i.__0vsprintf$0) refers to printf0.o(i._sputc) for _sputc + printf1.o(i.__0fprintf$1) refers to printf1.o(i._printf_core) for _printf_core + printf1.o(i.__0fprintf$1) refers to tau_log.o(i.fputc) for fputc + printf1.o(i.__0printf$1) refers to printf1.o(i._printf_core) for _printf_core + printf1.o(i.__0printf$1) refers to tau_log.o(i.fputc) for fputc + printf1.o(i.__0printf$1) refers to stdout.o(.data) for __stdout + printf1.o(i.__0snprintf$1) refers to printf1.o(i._printf_core) for _printf_core + printf1.o(i.__0snprintf$1) refers to printf1.o(i._snputc) for _snputc + printf1.o(i.__0sprintf$1) refers to printf1.o(i._printf_core) for _printf_core + printf1.o(i.__0sprintf$1) refers to printf1.o(i._sputc) for _sputc + printf1.o(i.__0vfprintf$1) refers to printf1.o(i._printf_core) for _printf_core + printf1.o(i.__0vfprintf$1) refers to tau_log.o(i.fputc) for fputc + printf1.o(i.__0vprintf$1) refers to printf1.o(i._printf_core) for _printf_core + printf1.o(i.__0vprintf$1) refers to tau_log.o(i.fputc) for fputc + printf1.o(i.__0vprintf$1) refers to stdout.o(.data) for __stdout + printf1.o(i.__0vsnprintf$1) refers to printf1.o(i._printf_core) for _printf_core + printf1.o(i.__0vsnprintf$1) refers to printf1.o(i._snputc) for _snputc + printf1.o(i.__0vsprintf$1) refers to printf1.o(i._printf_core) for _printf_core + printf1.o(i.__0vsprintf$1) refers to printf1.o(i._sputc) for _sputc + printf1.o(i._printf_core) refers to uidiv.o(.text) for __aeabi_uidivmod + printf2.o(i.__0fprintf$2) refers to printf2.o(i._printf_core) for _printf_core + printf2.o(i.__0fprintf$2) refers to tau_log.o(i.fputc) for fputc + printf2.o(i.__0printf$2) refers to printf2.o(i._printf_core) for _printf_core + printf2.o(i.__0printf$2) refers to tau_log.o(i.fputc) for fputc + printf2.o(i.__0printf$2) refers to stdout.o(.data) for __stdout + printf2.o(i.__0snprintf$2) refers to printf2.o(i._printf_core) for _printf_core + printf2.o(i.__0snprintf$2) refers to printf2.o(i._snputc) for _snputc + printf2.o(i.__0sprintf$2) refers to printf2.o(i._printf_core) for _printf_core + printf2.o(i.__0sprintf$2) refers to printf2.o(i._sputc) for _sputc + printf2.o(i.__0vfprintf$2) refers to printf2.o(i._printf_core) for _printf_core + printf2.o(i.__0vfprintf$2) refers to tau_log.o(i.fputc) for fputc + printf2.o(i.__0vprintf$2) refers to printf2.o(i._printf_core) for _printf_core + printf2.o(i.__0vprintf$2) refers to tau_log.o(i.fputc) for fputc + printf2.o(i.__0vprintf$2) refers to stdout.o(.data) for __stdout + printf2.o(i.__0vsnprintf$2) refers to printf2.o(i._printf_core) for _printf_core + printf2.o(i.__0vsnprintf$2) refers to printf2.o(i._snputc) for _snputc + printf2.o(i.__0vsprintf$2) refers to printf2.o(i._printf_core) for _printf_core + printf2.o(i.__0vsprintf$2) refers to printf2.o(i._sputc) for _sputc + printf3.o(i.__0fprintf$3) refers to printf3.o(i._printf_core) for _printf_core + printf3.o(i.__0fprintf$3) refers to tau_log.o(i.fputc) for fputc + printf3.o(i.__0printf$3) refers to printf3.o(i._printf_core) for _printf_core + printf3.o(i.__0printf$3) refers to tau_log.o(i.fputc) for fputc + printf3.o(i.__0printf$3) refers to stdout.o(.data) for __stdout + printf3.o(i.__0snprintf$3) refers to printf3.o(i._printf_core) for _printf_core + printf3.o(i.__0snprintf$3) refers to printf3.o(i._snputc) for _snputc + printf3.o(i.__0sprintf$3) refers to printf3.o(i._printf_core) for _printf_core + printf3.o(i.__0sprintf$3) refers to printf3.o(i._sputc) for _sputc + printf3.o(i.__0vfprintf$3) refers to printf3.o(i._printf_core) for _printf_core + printf3.o(i.__0vfprintf$3) refers to tau_log.o(i.fputc) for fputc + printf3.o(i.__0vprintf$3) refers to printf3.o(i._printf_core) for _printf_core + printf3.o(i.__0vprintf$3) refers to tau_log.o(i.fputc) for fputc + printf3.o(i.__0vprintf$3) refers to stdout.o(.data) for __stdout + printf3.o(i.__0vsnprintf$3) refers to printf3.o(i._printf_core) for _printf_core + printf3.o(i.__0vsnprintf$3) refers to printf3.o(i._snputc) for _snputc + printf3.o(i.__0vsprintf$3) refers to printf3.o(i._printf_core) for _printf_core + printf3.o(i.__0vsprintf$3) refers to printf3.o(i._sputc) for _sputc + printf3.o(i._printf_core) refers to uidiv.o(.text) for __aeabi_uidivmod + printf4.o(i.__0fprintf$4) refers to printf4.o(i._printf_core) for _printf_core + printf4.o(i.__0fprintf$4) refers to tau_log.o(i.fputc) for fputc + printf4.o(i.__0printf$4) refers to printf4.o(i._printf_core) for _printf_core + printf4.o(i.__0printf$4) refers to tau_log.o(i.fputc) for fputc + printf4.o(i.__0printf$4) refers to stdout.o(.data) for __stdout + printf4.o(i.__0snprintf$4) refers to printf4.o(i._printf_core) for _printf_core + printf4.o(i.__0snprintf$4) refers to printf4.o(i._snputc) for _snputc + printf4.o(i.__0sprintf$4) refers to printf4.o(i._printf_core) for _printf_core + printf4.o(i.__0sprintf$4) refers to printf4.o(i._sputc) for _sputc + printf4.o(i.__0vfprintf$4) refers to printf4.o(i._printf_core) for _printf_core + printf4.o(i.__0vfprintf$4) refers to tau_log.o(i.fputc) for fputc + printf4.o(i.__0vprintf$4) refers to printf4.o(i._printf_core) for _printf_core + printf4.o(i.__0vprintf$4) refers to tau_log.o(i.fputc) for fputc + printf4.o(i.__0vprintf$4) refers to stdout.o(.data) for __stdout + printf4.o(i.__0vsnprintf$4) refers to printf4.o(i._printf_core) for _printf_core + printf4.o(i.__0vsnprintf$4) refers to printf4.o(i._snputc) for _snputc + printf4.o(i.__0vsprintf$4) refers to printf4.o(i._printf_core) for _printf_core + printf4.o(i.__0vsprintf$4) refers to printf4.o(i._sputc) for _sputc + printf4.o(i._printf_core) refers to uldiv.o(.text) for __aeabi_uldivmod + printf5.o(i.__0fprintf$5) refers to printf5.o(i._printf_core) for _printf_core + printf5.o(i.__0fprintf$5) refers to tau_log.o(i.fputc) for fputc + printf5.o(i.__0printf$5) refers to printf5.o(i._printf_core) for _printf_core + printf5.o(i.__0printf$5) refers to tau_log.o(i.fputc) for fputc + printf5.o(i.__0printf$5) refers to stdout.o(.data) for __stdout + printf5.o(i.__0snprintf$5) refers to printf5.o(i._printf_core) for _printf_core + printf5.o(i.__0snprintf$5) refers to printf5.o(i._snputc) for _snputc + printf5.o(i.__0sprintf$5) refers to printf5.o(i._printf_core) for _printf_core + printf5.o(i.__0sprintf$5) refers to printf5.o(i._sputc) for _sputc + printf5.o(i.__0vfprintf$5) refers to printf5.o(i._printf_core) for _printf_core + printf5.o(i.__0vfprintf$5) refers to tau_log.o(i.fputc) for fputc + printf5.o(i.__0vprintf$5) refers to printf5.o(i._printf_core) for _printf_core + printf5.o(i.__0vprintf$5) refers to tau_log.o(i.fputc) for fputc + printf5.o(i.__0vprintf$5) refers to stdout.o(.data) for __stdout + printf5.o(i.__0vsnprintf$5) refers to printf5.o(i._printf_core) for _printf_core + printf5.o(i.__0vsnprintf$5) refers to printf5.o(i._snputc) for _snputc + printf5.o(i.__0vsprintf$5) refers to printf5.o(i._printf_core) for _printf_core + printf5.o(i.__0vsprintf$5) refers to printf5.o(i._sputc) for _sputc + printf5.o(i._printf_core) refers to uldiv.o(.text) for __aeabi_uldivmod + printf6.o(i.__0fprintf$6) refers to printf6.o(i._printf_core) for _printf_core + printf6.o(i.__0fprintf$6) refers to tau_log.o(i.fputc) for fputc + printf6.o(i.__0printf$6) refers to printf6.o(i._printf_core) for _printf_core + printf6.o(i.__0printf$6) refers to tau_log.o(i.fputc) for fputc + printf6.o(i.__0printf$6) refers to stdout.o(.data) for __stdout + printf6.o(i.__0snprintf$6) refers to printf6.o(i._printf_core) for _printf_core + printf6.o(i.__0snprintf$6) refers to printf6.o(i._snputc) for _snputc + printf6.o(i.__0sprintf$6) refers to printf6.o(i._printf_core) for _printf_core + printf6.o(i.__0sprintf$6) refers to printf6.o(i._sputc) for _sputc + printf6.o(i.__0vfprintf$6) refers to printf6.o(i._printf_core) for _printf_core + printf6.o(i.__0vfprintf$6) refers to tau_log.o(i.fputc) for fputc + printf6.o(i.__0vprintf$6) refers to printf6.o(i._printf_core) for _printf_core + printf6.o(i.__0vprintf$6) refers to tau_log.o(i.fputc) for fputc + printf6.o(i.__0vprintf$6) refers to stdout.o(.data) for __stdout + printf6.o(i.__0vsnprintf$6) refers to printf6.o(i._printf_core) for _printf_core + printf6.o(i.__0vsnprintf$6) refers to printf6.o(i._snputc) for _snputc + printf6.o(i.__0vsprintf$6) refers to printf6.o(i._printf_core) for _printf_core + printf6.o(i.__0vsprintf$6) refers to printf6.o(i._sputc) for _sputc + printf6.o(i._printf_core) refers to printf6.o(i._printf_pre_padding) for _printf_pre_padding + printf6.o(i._printf_core) refers to printf6.o(i._printf_post_padding) for _printf_post_padding + printf6.o(i._printf_core) refers to uidiv.o(.text) for __aeabi_uidivmod + printf7.o(i.__0fprintf$7) refers to printf7.o(i._printf_core) for _printf_core + printf7.o(i.__0fprintf$7) refers to tau_log.o(i.fputc) for fputc + printf7.o(i.__0printf$7) refers to printf7.o(i._printf_core) for _printf_core + printf7.o(i.__0printf$7) refers to tau_log.o(i.fputc) for fputc + printf7.o(i.__0printf$7) refers to stdout.o(.data) for __stdout + printf7.o(i.__0snprintf$7) refers to printf7.o(i._printf_core) for _printf_core + printf7.o(i.__0snprintf$7) refers to printf7.o(i._snputc) for _snputc + printf7.o(i.__0sprintf$7) refers to printf7.o(i._printf_core) for _printf_core + printf7.o(i.__0sprintf$7) refers to printf7.o(i._sputc) for _sputc + printf7.o(i.__0vfprintf$7) refers to printf7.o(i._printf_core) for _printf_core + printf7.o(i.__0vfprintf$7) refers to tau_log.o(i.fputc) for fputc + printf7.o(i.__0vprintf$7) refers to printf7.o(i._printf_core) for _printf_core + printf7.o(i.__0vprintf$7) refers to tau_log.o(i.fputc) for fputc + printf7.o(i.__0vprintf$7) refers to stdout.o(.data) for __stdout + printf7.o(i.__0vsnprintf$7) refers to printf7.o(i._printf_core) for _printf_core + printf7.o(i.__0vsnprintf$7) refers to printf7.o(i._snputc) for _snputc + printf7.o(i.__0vsprintf$7) refers to printf7.o(i._printf_core) for _printf_core + printf7.o(i.__0vsprintf$7) refers to printf7.o(i._sputc) for _sputc + printf7.o(i._printf_core) refers to printf7.o(i._printf_pre_padding) for _printf_pre_padding + printf7.o(i._printf_core) refers to printf7.o(i._printf_post_padding) for _printf_post_padding + printf7.o(i._printf_core) refers to uldiv.o(.text) for __aeabi_uldivmod + printf8.o(i.__0fprintf$8) refers to printf8.o(i._printf_core) for _printf_core + printf8.o(i.__0fprintf$8) refers to tau_log.o(i.fputc) for fputc + printf8.o(i.__0printf$8) refers to printf8.o(i._printf_core) for _printf_core + printf8.o(i.__0printf$8) refers to tau_log.o(i.fputc) for fputc + printf8.o(i.__0printf$8) refers to stdout.o(.data) for __stdout + printf8.o(i.__0snprintf$8) refers to printf8.o(i._printf_core) for _printf_core + printf8.o(i.__0snprintf$8) refers to printf8.o(i._snputc) for _snputc + printf8.o(i.__0sprintf$8) refers to printf8.o(i._printf_core) for _printf_core + printf8.o(i.__0sprintf$8) refers to printf8.o(i._sputc) for _sputc + printf8.o(i.__0vfprintf$8) refers to printf8.o(i._printf_core) for _printf_core + printf8.o(i.__0vfprintf$8) refers to tau_log.o(i.fputc) for fputc + printf8.o(i.__0vprintf$8) refers to printf8.o(i._printf_core) for _printf_core + printf8.o(i.__0vprintf$8) refers to tau_log.o(i.fputc) for fputc + printf8.o(i.__0vprintf$8) refers to stdout.o(.data) for __stdout + printf8.o(i.__0vsnprintf$8) refers to printf8.o(i._printf_core) for _printf_core + printf8.o(i.__0vsnprintf$8) refers to printf8.o(i._snputc) for _snputc + printf8.o(i.__0vsprintf$8) refers to printf8.o(i._printf_core) for _printf_core + printf8.o(i.__0vsprintf$8) refers to printf8.o(i._sputc) for _sputc + printf8.o(i._printf_core) refers to printf8.o(i._printf_pre_padding) for _printf_pre_padding + printf8.o(i._printf_core) refers to printf8.o(i._printf_post_padding) for _printf_post_padding + printf8.o(i._printf_core) refers to uldiv.o(.text) for __aeabi_uldivmod + printfa.o(i.__0fprintf) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i.__0fprintf) refers to printfa.o(i._printf_core) for _printf_core + printfa.o(i.__0fprintf) refers to tau_log.o(i.fputc) for fputc + printfa.o(i.__0printf) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i.__0printf) refers to printfa.o(i._printf_core) for _printf_core + printfa.o(i.__0printf) refers to tau_log.o(i.fputc) for fputc + printfa.o(i.__0printf) refers to stdout.o(.data) for __stdout + printfa.o(i.__0snprintf) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i.__0snprintf) refers to printfa.o(i._printf_core) for _printf_core + printfa.o(i.__0snprintf) refers to printfa.o(i._snputc) for _snputc + printfa.o(i.__0sprintf) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i.__0sprintf) refers to printfa.o(i._printf_core) for _printf_core + printfa.o(i.__0sprintf) refers to printfa.o(i._sputc) for _sputc + printfa.o(i.__0vfprintf) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i.__0vfprintf) refers to printfa.o(i._printf_core) for _printf_core + printfa.o(i.__0vfprintf) refers to tau_log.o(i.fputc) for fputc + printfa.o(i.__0vprintf) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i.__0vprintf) refers to printfa.o(i._printf_core) for _printf_core + printfa.o(i.__0vprintf) refers to tau_log.o(i.fputc) for fputc + printfa.o(i.__0vprintf) refers to stdout.o(.data) for __stdout + printfa.o(i.__0vsnprintf) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i.__0vsnprintf) refers to printfa.o(i._printf_core) for _printf_core + printfa.o(i.__0vsnprintf) refers to printfa.o(i._snputc) for _snputc + printfa.o(i.__0vsprintf) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i.__0vsprintf) refers to printfa.o(i._printf_core) for _printf_core + printfa.o(i.__0vsprintf) refers to printfa.o(i._sputc) for _sputc + printfa.o(i._fp_digits) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i._fp_digits) refers to dmul.o(.text) for __aeabi_dmul + printfa.o(i._fp_digits) refers to ddiv.o(.text) for __aeabi_ddiv + printfa.o(i._fp_digits) refers to cdrcmple.o(.text) for __aeabi_cdrcmple + printfa.o(i._fp_digits) refers to dadd.o(.text) for __aeabi_dadd + printfa.o(i._fp_digits) refers to dfixul.o(.text) for __aeabi_d2ulz + printfa.o(i._fp_digits) refers to uldiv.o(.text) for __aeabi_uldivmod + printfa.o(i._printf_core) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i._printf_core) refers to printfa.o(i._printf_pre_padding) for _printf_pre_padding + printfa.o(i._printf_core) refers to uldiv.o(.text) for __aeabi_uldivmod + printfa.o(i._printf_core) refers to printfa.o(i._printf_post_padding) for _printf_post_padding + printfa.o(i._printf_core) refers to printfa.o(i._fp_digits) for _fp_digits + printfa.o(i._printf_core) refers to uidiv.o(.text) for __aeabi_uidivmod + printfa.o(i._printf_post_padding) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i._printf_pre_padding) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i._snputc) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i._sputc) refers (Special) to iusefp.o(.text) for __I$use$fp + fadd.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + fadd.o(.text) refers to fepilogue.o(.text) for _float_epilogue + fmul.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + fdiv.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + fdiv.o(.text) refers to fepilogue.o(.text) for _float_round + fscalb.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + dadd.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + dadd.o(.text) refers to llshl.o(.text) for __aeabi_llsl + dadd.o(.text) refers to llsshr.o(.text) for __aeabi_lasr + dadd.o(.text) refers to depilogue.o(.text) for _double_epilogue + dmul.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + dmul.o(.text) refers to depilogue.o(.text) for _double_epilogue + ddiv.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + ddiv.o(.text) refers to depilogue.o(.text) for _double_round + fflti.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + fflti.o(.text) refers to fepilogue.o(.text) for _float_epilogue + ffltui.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + ffltui.o(.text) refers to fepilogue.o(.text) for _float_epilogue + dflti.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + dflti.o(.text) refers to depilogue.o(.text) for _double_epilogue + dfltui.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + dfltui.o(.text) refers to depilogue.o(.text) for _double_epilogue + ffixi.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + ffixui.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + dfixi.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + dfixi.o(.text) refers to llushr.o(.text) for __aeabi_llsr + dfixui.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + dfixui.o(.text) refers to llushr.o(.text) for __aeabi_llsr + f2d.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + cdcmple.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + cfrcmple.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + entry2.o(.ARM.Collect$$$$00000001) refers to entry2.o(.ARM.Collect$$$$00002712) for __lit__00000000 + entry2.o(.ARM.Collect$$$$00002712) refers to startup_armcm0.o(STACK) for __initial_sp + entry2.o(__vectab_stack_and_reset_area) refers to startup_armcm0.o(STACK) for __initial_sp + entry2.o(__vectab_stack_and_reset_area) refers to entry.o(.ARM.Collect$$$$00000000) for __main + entry5.o(.ARM.Collect$$$$00000004) refers to init.o(.text) for __scatterload + entry9a.o(.ARM.Collect$$$$0000000B) refers to main.o(i.main) for main + entry9b.o(.ARM.Collect$$$$0000000C) refers to main.o(i.main) for main + uldiv.o(.text) refers to llushr.o(.text) for __aeabi_llsr + uldiv.o(.text) refers to llshl.o(.text) for __aeabi_llsl + errno.o(i.__aeabi_errno_addr) refers to errno.o(.data) for .data + errno.o(i.__read_errno) refers to errno.o(.data) for .data + errno.o(i.__set_errno) refers to errno.o(.data) for .data + depilogue.o(.text) refers to depilogue.o(i.__ARM_clz) for __ARM_clz + depilogue.o(.text) refers to llshl.o(.text) for __aeabi_llsl + depilogue.o(.text) refers to llushr.o(.text) for __aeabi_llsr + dsqrt.o(.text) refers to llushr.o(.text) for __aeabi_llsr + dsqrt.o(.text) refers to depilogue.o(.text) for _double_round + dfixul.o(.text) refers to llushr.o(.text) for __aeabi_llsr + dfixul.o(.text) refers to llshl.o(.text) for __aeabi_llsl + init.o(.text) refers to entry5.o(.ARM.Collect$$$$00000004) for __main_after_scatterload + + +============================================================================== + +Removing Unused input sections from the image. + + Removing main.o(.rev16_text), (4 bytes). + Removing main.o(.revsh_text), (4 bytes). + Removing ap_demo.o(.rev16_text), (4 bytes). + Removing ap_demo.o(.revsh_text), (4 bytes). + Removing ap_demo.o(i.soft_te_timer_cb), (56 bytes). + Removing ap_demo.o(i.soft_te_timer_init), (96 bytes). + Removing ap_demo.o(i.swire_callback), (24 bytes). + Removing ap_demo.o(i.swire_init), (68 bytes). + Removing ap_demo.o(i.swire_timer_callback), (28 bytes). + Removing app_tp_for_custom_mi8se.o(.rev16_text), (4 bytes). + Removing app_tp_for_custom_mi8se.o(.revsh_text), (4 bytes). + Removing app_tp_for_custom_mi8se.o(i.app_tp_phone_analysis_data), (1364 bytes). + Removing app_tp_for_custom_mi8se.o(i.app_tp_screen_analysis_const), (176 bytes). + Removing app_tp_transfer.o(.rev16_text), (4 bytes). + Removing app_tp_transfer.o(.revsh_text), (4 bytes). + Removing app_tp_transfer.o(i.ap_tp_scan_point_init), (36 bytes). + Removing app_tp_transfer.o(i.ap_tp_scan_point_record_event_exec), (92 bytes). + Removing app_tp_transfer.o(i.app_tp_m_write), (16 bytes). + Removing app_tp_transfer.o(i.app_tp_phone_reset_on), (12 bytes). + Removing app_tp_transfer.o(i.app_tp_s_transfer_complate), (26 bytes). + Removing app_tp_transfer.o(i.app_tp_screen_init), (52 bytes). + Removing board.o(.rev16_text), (4 bytes). + Removing board.o(.revsh_text), (4 bytes). + Removing startup_armcm0.o(HEAP), (3072 bytes). + Removing hal_dsi_rx_ctrl.o(.rev16_text), (4 bytes). + Removing hal_dsi_rx_ctrl.o(.revsh_text), (4 bytes). + Removing hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_ack_long_cmd), (88 bytes). + Removing hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_ack_short_cmd), (28 bytes). + Removing hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_crop_video), (228 bytes). + Removing hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_deinit), (156 bytes). + Removing hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_draw_mode_init), (48 bytes). + Removing hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_enable_test_pattern), (216 bytes). + Removing hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_get_compressen_en), (16 bytes). + Removing hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_get_max_ret_size), (40 bytes). + Removing hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_hight_performan_mode), (100 bytes). + Removing hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_pre_init_pps), (28 bytes). + Removing hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_release_handle), (40 bytes). + Removing hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_restart), (80 bytes). + Removing hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_send_ack_cmd), (240 bytes). + Removing hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_auto_hw_filter), (28 bytes). + Removing hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_cus_esc_clk), (44 bytes). + Removing hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_dcs_direct_mode), (8 bytes). + Removing hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_hw_cmd_filter), (40 bytes). + Removing hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_hw_tear_mode), (52 bytes). + Removing hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_pentile_format), (56 bytes). + Removing hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_pixel_data), (148 bytes). + Removing hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_rect_pixel_data), (268 bytes). + Removing hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_rx_clk), (68 bytes). + Removing hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_sw_tear_mode), (52 bytes). + Removing hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_te_waveform), (52 bytes). + Removing hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_tear_mode_ex), (14 bytes). + Removing hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_stop), (60 bytes). + Removing hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_toggle_input_frame_rate), (188 bytes). + Removing hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_toggle_resolution_ex), (32 bytes). + Removing hal_dsi_rx_ctrl.o(.conststring), (72 bytes). + Removing hal_dsi_tx_ctrl.o(.rev16_text), (4 bytes). + Removing hal_dsi_tx_ctrl.o(.revsh_text), (4 bytes). + Removing hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_cmd_mode_rcv_te), (10 bytes). + Removing hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_deinit), (132 bytes). + Removing hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_draw_chessboard), (280 bytes). + Removing hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_draw_flicker), (172 bytes). + Removing hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_draw_mode_init), (30 bytes). + Removing hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_enter_ulps_mode), (16 bytes). + Removing hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_exit_ulps_mode), (16 bytes). + Removing hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_read_cmd), (140 bytes). + Removing hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_release_handle), (28 bytes). + Removing hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_ccm), (32 bytes). + Removing hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_cus_pq_filter), (28 bytes). + Removing hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_endianness), (16 bytes). + Removing hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_escape_clock_div), (16 bytes). + Removing hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_lp_cmd), (16 bytes). + Removing hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_overwrite), (16 bytes). + Removing hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_rect_pixel_data), (272 bytes). + Removing hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_vpg), (80 bytes). + Removing hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_stop), (68 bytes). + Removing hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_write_array_cmd), (216 bytes). + Removing hal_dsi_tx_ctrl.o(.constdata), (36 bytes). + Removing hal_gpio.o(.rev16_text), (4 bytes). + Removing hal_gpio.o(.revsh_text), (4 bytes). + Removing hal_gpio.o(i.hal_gpio_get_int_type), (20 bytes). + Removing hal_gpio.o(i.hal_gpio_get_pull_state), (32 bytes). + Removing hal_gpio.o(i.hal_gpio_init_input), (32 bytes). + Removing hal_gpio.o(i.hal_gpio_set_ap_reset_int), (80 bytes). + Removing hal_gpio.o(i.hal_gpio_set_driving_strength), (32 bytes). + Removing hal_gpio.o(i.hal_gpio_set_output_data_ex), (36 bytes). + Removing hal_gpio.o(i.hal_gpio_set_schmitt_trigger), (32 bytes). + Removing hal_gpio.o(i.hal_gpio_set_slew_rate), (32 bytes). + Removing hal_i2c_master.o(.rev16_text), (4 bytes). + Removing hal_i2c_master.o(.revsh_text), (4 bytes). + Removing hal_i2c_master.o(i.hal_i2c_m_deinit), (8 bytes). + Removing hal_i2c_master.o(i.hal_i2c_m_dma_write), (28 bytes). + Removing hal_i2c_master.o(i.hal_i2c_m_set_high_impedance), (46 bytes). + Removing hal_i2c_slave.o(.rev16_text), (4 bytes). + Removing hal_i2c_slave.o(.revsh_text), (4 bytes). + Removing hal_i2c_slave.o(i.hal_i2c_s_deinit), (88 bytes). + Removing hal_i2c_slave.o(i.hal_i2c_s_get_tx_byte_num), (12 bytes). + Removing hal_i2c_slave.o(i.hal_i2c_s_read_complate), (12 bytes). + Removing hal_i2c_slave.o(i.hal_i2c_s_read_complate_clear), (12 bytes). + Removing hal_i2c_slave.o(i.hal_i2c_s_read_data), (32 bytes). + Removing hal_i2c_slave.o(i.hal_i2c_s_rxfifo_notempty), (40 bytes). + Removing hal_i2c_slave.o(i.hal_i2c_s_sel), (12 bytes). + Removing hal_i2c_slave.o(i.hal_i2c_s_set_dma_tx_cycle), (36 bytes). + Removing hal_i2c_slave.o(i.hal_i2c_s_set_high_impedance), (88 bytes). + Removing hal_i2c_slave.o(i.hal_i2c_s_write_complate), (12 bytes). + Removing hal_i2c_slave.o(i.hal_i2c_s_write_data), (32 bytes). + Removing hal_pwm.o(.rev16_text), (4 bytes). + Removing hal_pwm.o(.revsh_text), (4 bytes). + Removing hal_pwm.o(i.hal_pwm_in_clear_int), (8 bytes). + Removing hal_pwm.o(i.hal_pwm_in_config_int), (60 bytes). + Removing hal_pwm.o(i.hal_pwm_in_ctrl_int), (8 bytes). + Removing hal_pwm.o(i.hal_pwm_in_deinit), (18 bytes). + Removing hal_pwm.o(i.hal_pwm_in_get_current_count), (8 bytes). + Removing hal_pwm.o(i.hal_pwm_in_get_high_period), (36 bytes). + Removing hal_pwm.o(i.hal_pwm_in_get_low_period), (36 bytes). + Removing hal_pwm.o(i.hal_pwm_in_get_total_period), (36 bytes). + Removing hal_pwm.o(i.hal_pwm_in_init), (26 bytes). + Removing hal_pwm.o(i.hal_pwm_in_register_callback), (10 bytes). + Removing hal_pwm.o(i.hal_pwm_in_set_int), (8 bytes). + Removing hal_pwm.o(i.hal_pwm_out_config_duty_ratio), (76 bytes). + Removing hal_pwm.o(i.hal_pwm_out_deinit), (32 bytes). + Removing hal_pwm.o(i.hal_pwm_out_pause), (8 bytes). + Removing hal_pwm.o(i.hal_pwm_out_sync_all), (16 bytes). + Removing hal_pwm.o(i.hal_pwm_out_sync_ctl), (30 bytes). + Removing hal_pwm.o(i.hal_pwm_out_sync_pause), (28 bytes). + Removing hal_pwm.o(i.hal_pwm_out_sync_period), (48 bytes). + Removing hal_spi_master.o(.rev16_text), (4 bytes). + Removing hal_spi_master.o(.revsh_text), (4 bytes). + Removing hal_spi_master.o(i.hal_spi_m_callback), (24 bytes). + Removing hal_spi_master.o(i.hal_spi_m_deinit), (10 bytes). + Removing hal_spi_master.o(i.hal_spi_m_dma_init), (104 bytes). + Removing hal_spi_master.o(i.hal_spi_m_dma_read), (36 bytes). + Removing hal_spi_master.o(i.hal_spi_m_dma_write), (40 bytes). + Removing hal_spi_master.o(i.hal_spi_m_get_transfer_complate), (36 bytes). + Removing hal_spi_master.o(i.hal_spi_m_gpio_init), (8 bytes). + Removing hal_spi_master.o(i.hal_spi_m_read_rxfifo), (28 bytes). + Removing hal_spi_master.o(i.hal_spi_m_set_high_impedance), (100 bytes). + Removing hal_spi_master.o(.data), (1 bytes). + Removing hal_swire.o(.rev16_text), (4 bytes). + Removing hal_swire.o(.revsh_text), (4 bytes). + Removing hal_swire.o(i.hal_swire_deinit), (18 bytes). + Removing hal_swire.o(i.hal_swire_init), (32 bytes). + Removing hal_swire.o(i.hal_swire_open), (22 bytes). + Removing hal_swire.o(i.hal_swire_register_callback), (10 bytes). + Removing hal_swire.o(i.hal_swire_start), (112 bytes). + Removing hal_system.o(.rev16_text), (4 bytes). + Removing hal_system.o(.revsh_text), (4 bytes). + Removing hal_system.o(i.hal_system_clear_debug_state), (10 bytes). + Removing hal_system.o(i.hal_system_deep_sleep_mode), (8 bytes). + Removing hal_system.o(i.hal_system_disable_systick), (8 bytes). + Removing hal_system.o(i.hal_system_flash_read), (52 bytes). + Removing hal_system.o(i.hal_system_flash_write), (60 bytes). + Removing hal_system.o(i.hal_system_get_debug_state), (8 bytes). + Removing hal_system.o(i.hal_system_get_tick), (8 bytes). + Removing hal_system.o(i.hal_system_idle_mode), (8 bytes). + Removing hal_system.o(i.hal_system_register_systick_cb), (8 bytes). + Removing hal_system.o(i.hal_system_reset_chip), (32 bytes). + Removing hal_system.o(i.hal_system_set_pvd), (8 bytes). + Removing hal_system.o(i.hal_system_set_vcc), (8 bytes). + Removing hal_system.o(i.hal_system_sleep_mode), (48 bytes). + Removing hal_timer.o(.rev16_text), (4 bytes). + Removing hal_timer.o(.revsh_text), (4 bytes). + Removing hal_timer.o(i.hal_timer_deinit), (46 bytes). + Removing hal_timer.o(i.hal_timer_get_status), (8 bytes). + Removing hal_timer.o(i.hal_timer_set_repeat), (8 bytes). + Removing hal_timer.o(i.hal_timer_start_ex), (72 bytes). + Removing hal_timer.o(i.hal_timer_stop), (40 bytes). + Removing tau_delay.o(.rev16_text), (4 bytes). + Removing tau_delay.o(.revsh_text), (4 bytes). + Removing tau_log.o(.rev16_text), (4 bytes). + Removing tau_log.o(.revsh_text), (4 bytes). + Removing tau_log.o(i.fgetc), (22 bytes). + Removing hal_uart.o(.rev16_text), (4 bytes). + Removing hal_uart.o(.revsh_text), (4 bytes). + Removing hal_uart.o(i.hal_uart_deinit), (28 bytes). + Removing hal_uart.o(i.hal_uart_dmacallback), (36 bytes). + Removing hal_uart.o(i.hal_uart_receive_blocking), (16 bytes). + Removing hal_uart.o(i.hal_uart_receive_dma), (76 bytes). + Removing hal_uart.o(i.hal_uart_transmit_dma), (76 bytes). + Removing norflash.o(.rev16_text), (4 bytes). + Removing norflash.o(.revsh_text), (4 bytes). + Removing norflash.o(i.norflash_best_cfg_init), (44 bytes). + Removing norflash.o(i.norflash_big_end_clear), (14 bytes). + Removing norflash.o(i.norflash_big_end_enable), (20 bytes). + Removing norflash.o(i.norflash_check_crc32), (14 bytes). + Removing norflash.o(i.norflash_check_id), (72 bytes). + Removing norflash.o(i.norflash_dma_callback), (24 bytes). + Removing norflash.o(i.norflash_dma_read), (156 bytes). + Removing norflash.o(i.norflash_dma_write), (252 bytes). + Removing norflash.o(i.norflash_dual_read), (60 bytes). + Removing norflash.o(i.norflash_dual_write), (112 bytes). + Removing norflash.o(i.norflash_en4b), (40 bytes). + Removing norflash.o(i.norflash_en_quad), (116 bytes). + Removing norflash.o(i.norflash_en_quad_check), (64 bytes). + Removing norflash.o(i.norflash_erase_block), (44 bytes). + Removing norflash.o(i.norflash_erase_chip), (28 bytes). + Removing norflash.o(i.norflash_erase_sector), (44 bytes). + Removing norflash.o(i.norflash_ex4b), (40 bytes). + Removing norflash.o(i.norflash_exit_quad), (76 bytes). + Removing norflash.o(i.norflash_get_dual_hstatus), (52 bytes). + Removing norflash.o(i.norflash_get_hstatus), (52 bytes). + Removing norflash.o(i.norflash_get_status), (52 bytes). + Removing norflash.o(i.norflash_init), (48 bytes). + Removing norflash.o(i.norflash_quad_read), (76 bytes). + Removing norflash.o(i.norflash_quad_write), (108 bytes). + Removing norflash.o(i.norflash_read), (28 bytes). + Removing norflash.o(i.norflash_read_config_reg), (36 bytes). + Removing norflash.o(i.norflash_read_id), (20 bytes). + Removing norflash.o(i.norflash_reset), (2 bytes). + Removing norflash.o(i.norflash_reset_crc32), (32 bytes). + Removing norflash.o(i.norflash_set_best_cfg), (50 bytes). + Removing norflash.o(i.norflash_set_best_read_cfg), (84 bytes). + Removing norflash.o(i.norflash_set_best_write_cfg), (84 bytes). + Removing norflash.o(i.norflash_switch_fls_spi), (112 bytes). + Removing norflash.o(i.norflash_write), (96 bytes). + Removing norflash.o(i.norflash_write_disable), (64 bytes). + Removing norflash.o(i.norflash_write_enable), (56 bytes). + Removing norflash.o(i.norflash_write_endian_scr), (132 bytes). + Removing norflash.o(.bss), (412 bytes). + Removing norflash.o(.bss), (32 bytes). + Removing norflash.o(.data), (2 bytes). + Removing drv_common.o(.rev16_text), (4 bytes). + Removing drv_common.o(.revsh_text), (4 bytes). + Removing drv_common.o(i.drv_common_disable_systick), (20 bytes). + Removing drv_common.o(i.drv_common_get_tick), (12 bytes). + Removing drv_common.o(i.drv_common_idle_mode), (40 bytes). + Removing drv_common.o(i.drv_common_systick_register_cb), (12 bytes). + Removing drv_crgu.o(.rev16_text), (4 bytes). + Removing drv_crgu.o(.revsh_text), (4 bytes). + Removing drv_crgu.o(i.drv_crgu_clear_all_reset_flags), (12 bytes). + Removing drv_crgu.o(i.drv_crgu_clear_reset_flag), (20 bytes). + Removing drv_crgu.o(i.drv_crgu_config_clocks), (16 bytes). + Removing drv_crgu.o(i.drv_crgu_config_clocks_div), (16 bytes). + Removing drv_crgu.o(i.drv_crgu_config_clocks_src), (16 bytes). + Removing drv_crgu.o(i.drv_crgu_get_ana_clk_status), (24 bytes). + Removing drv_crgu.o(i.drv_crgu_get_clocks), (12 bytes). + Removing drv_crgu.o(i.drv_crgu_get_fpga_id), (12 bytes). + Removing drv_crgu.o(i.drv_crgu_get_mipi_ref_src), (16 bytes). + Removing drv_crgu.o(i.drv_crgu_get_reset_flag), (24 bytes). + Removing drv_crgu.o(i.drv_crgu_get_system_clk), (28 bytes). + Removing drv_crgu.o(i.drv_crgu_reset_chip), (12 bytes). + Removing drv_crgu.o(i.drv_crgu_set_200m_scan_src), (20 bytes). + Removing drv_crgu.o(i.drv_crgu_set_300m_scan_src), (20 bytes). + Removing drv_crgu.o(i.drv_crgu_set_abp0_div), (20 bytes). + Removing drv_crgu.o(i.drv_crgu_set_adc_div), (20 bytes). + Removing drv_crgu.o(i.drv_crgu_set_adc_src), (24 bytes). + Removing drv_crgu.o(i.drv_crgu_set_apb1_div), (20 bytes). + Removing drv_crgu.o(i.drv_crgu_set_apb2_div), (20 bytes). + Removing drv_crgu.o(i.drv_crgu_set_fls_div), (20 bytes). + Removing drv_crgu.o(i.drv_crgu_set_fls_src), (20 bytes). + Removing drv_crgu.o(i.drv_crgu_set_monitor_div), (20 bytes). + Removing drv_crgu.o(i.drv_crgu_set_monitor_src), (20 bytes). + Removing drv_crgu.o(i.drv_crgu_set_swire_div), (20 bytes). + Removing drv_dma.o(.rev16_text), (4 bytes). + Removing drv_dma.o(.revsh_text), (4 bytes). + Removing drv_dma.o(i.drv_dma_abort_transfer), (32 bytes). + Removing drv_dma.o(i.drv_dma_ahb_init), (74 bytes). + Removing drv_dma.o(i.drv_dma_channel_is_active), (20 bytes). + Removing drv_dma.o(i.drv_dma_deinit), (32 bytes). + Removing drv_dma.o(i.drv_dma_disenable_channel_interrupts), (24 bytes). + Removing drv_dma.o(i.drv_dma_enable_cycle), (44 bytes). + Removing drv_dma.o(i.drv_dma_get_remaining_bytes), (32 bytes). + Removing drv_dma.o(i.drv_dma_init), (24 bytes). + Removing drv_dma.o(i.drv_dma_m2m_init), (72 bytes). + Removing drv_dma.o(i.drv_dma_reset), (10 bytes). + Removing drv_dma.o(i.drv_dma_set_ccr), (114 bytes). + Removing drv_dma.o(i.drv_dma_start_transfer), (32 bytes). + Removing drv_fls.o(.rev16_text), (4 bytes). + Removing drv_fls.o(.revsh_text), (4 bytes). + Removing drv_fls.o(i.__NVIC_DisableIRQ), (32 bytes). + Removing drv_fls.o(i.fls_EnableClk), (12 bytes). + Removing drv_fls.o(i.fls_busy_pending), (12 bytes). + Removing drv_fls.o(i.fls_clear_irq_status), (6 bytes). + Removing drv_fls.o(i.fls_ctrl_cfg_init), (72 bytes). + Removing drv_fls.o(i.fls_ddat_enable), (24 bytes). + Removing drv_fls.o(i.fls_de_init), (52 bytes). + Removing drv_fls.o(i.fls_descr), (10 bytes). + Removing drv_fls.o(i.fls_disable_it), (36 bytes). + Removing drv_fls.o(i.fls_en_scr), (10 bytes). + Removing drv_fls.o(i.fls_enable_it), (48 bytes). + Removing drv_fls.o(i.fls_get_crcout), (4 bytes). + Removing drv_fls.o(i.fls_get_default_fls_config), (20 bytes). + Removing drv_fls.o(i.fls_get_default_spi_config), (44 bytes). + Removing drv_fls.o(i.fls_get_default_tuning), (12 bytes). + Removing drv_fls.o(i.fls_get_tuning), (18 bytes). + Removing drv_fls.o(i.fls_init), (62 bytes). + Removing drv_fls.o(i.fls_qadr_enable), (22 bytes). + Removing drv_fls.o(i.fls_qcmd_enable), (22 bytes). + Removing drv_fls.o(i.fls_qdat_enable), (22 bytes). + Removing drv_fls.o(i.fls_read_byte_data), (130 bytes). + Removing drv_fls.o(i.fls_read_cmd), (104 bytes). + Removing drv_fls.o(i.fls_read_cmd_it), (110 bytes). + Removing drv_fls.o(i.fls_reset_crc), (18 bytes). + Removing drv_fls.o(i.fls_scr_clear), (10 bytes). + Removing drv_fls.o(i.fls_set_addr_dummy), (32 bytes). + Removing drv_fls.o(i.fls_set_addr_len), (32 bytes). + Removing drv_fls.o(i.fls_set_mc_irq_mask), (26 bytes). + Removing drv_fls.o(i.fls_set_read), (10 bytes). + Removing drv_fls.o(i.fls_set_tuning), (24 bytes). + Removing drv_fls.o(i.fls_set_write), (10 bytes). + Removing drv_fls.o(i.fls_single_mode), (16 bytes). + Removing drv_fls.o(i.fls_spi_init), (180 bytes). + Removing drv_fls.o(i.fls_spi_start), (10 bytes). + Removing drv_fls.o(i.fls_swrst), (18 bytes). + Removing drv_fls.o(i.fls_write_byte_data), (164 bytes). + Removing drv_fls.o(i.fls_write_cmd), (58 bytes). + Removing drv_fls.o(.data), (4 bytes). + Removing drv_gpio.o(.rev16_text), (4 bytes). + Removing drv_gpio.o(.revsh_text), (4 bytes). + Removing drv_gpio.o(i.drv_gpio_get_pull_state), (224 bytes). + Removing drv_gpio.o(i.drv_gpio_register_ap_reset_callback), (12 bytes). + Removing drv_gpio.o(i.drv_gpio_set_driving_strength), (312 bytes). + Removing drv_gpio.o(i.drv_gpio_set_schmitt_trigger), (168 bytes). + Removing drv_gpio.o(i.drv_gpio_set_slew_rate), (168 bytes). + Removing drv_i2c_dma.o(.rev16_text), (4 bytes). + Removing drv_i2c_dma.o(.revsh_text), (4 bytes). + Removing drv_i2c_dma.o(i.drv_i2c_master_write_dma), (60 bytes). + Removing drv_i2c_master.o(.rev16_text), (4 bytes). + Removing drv_i2c_master.o(.revsh_text), (4 bytes). + Removing drv_i2c_master.o(i.drv_i2c_m_bus_init), (36 bytes). + Removing drv_i2c_master.o(i.drv_i2c_m_deinit), (44 bytes). + Removing drv_i2c_master.o(i.drv_i2c_m_disable_intr), (16 bytes). + Removing drv_i2c_master.o(i.drv_i2c_m_get_fifo_status), (28 bytes). + Removing drv_i2c_master.o(i.drv_i2c_m_read_data), (32 bytes). + Removing drv_i2c_master.o(i.drv_i2c_m_set_fifo_threshold), (24 bytes). + Removing drv_i2c_master.o(i.drv_i2c_m_set_sys_mask), (48 bytes). + Removing drv_i2c_master.o(i.drv_i2c_m_write_data), (32 bytes). + Removing drv_i2c_slave.o(.rev16_text), (4 bytes). + Removing drv_i2c_slave.o(.revsh_text), (4 bytes). + Removing drv_i2c_slave.o(i.drv_i2c_s_read_data), (30 bytes). + Removing drv_i2c_slave.o(i.drv_i2c_s_set_fifo_threshold), (16 bytes). + Removing drv_param_init.o(.rev16_text), (4 bytes). + Removing drv_param_init.o(.revsh_text), (4 bytes). + Removing drv_param_init.o(i.drv_param_init_set_ccm), (20 bytes). + Removing drv_param_init.o(i.drv_param_init_set_sclu_filter), (28 bytes). + Removing drv_pwm.o(.rev16_text), (4 bytes). + Removing drv_pwm.o(.revsh_text), (4 bytes). + Removing drv_pwm.o(i.drv_pwm_in_clear_pwm_int_all), (12 bytes). + Removing drv_pwm.o(i.drv_pwm_in_enable), (32 bytes). + Removing drv_pwm.o(i.drv_pwm_in_get_counter_period), (12 bytes). + Removing drv_pwm.o(i.drv_pwm_in_get_current_count), (12 bytes). + Removing drv_pwm.o(i.drv_pwm_in_get_high_period), (12 bytes). + Removing drv_pwm.o(i.drv_pwm_in_get_low_period), (12 bytes). + Removing drv_pwm.o(i.drv_pwm_in_register_callback), (24 bytes). + Removing drv_pwm.o(i.drv_pwm_in_set_pwm_int), (32 bytes). + Removing drv_pwm.o(i.drv_pwm_in_set_sys_int), (64 bytes). + Removing drv_pwm.o(i.drv_pwm_out_pause), (28 bytes). + Removing drv_pwr.o(.rev16_text), (4 bytes). + Removing drv_pwr.o(.revsh_text), (4 bytes). + Removing drv_pwr.o(i.drv_pwr_enter_deep_sleep_mode), (44 bytes). + Removing drv_pwr.o(i.drv_pwr_set_cp_mode), (32 bytes). + Removing drv_pwr.o(i.drv_pwr_set_frame_buff_pd), (28 bytes). + Removing drv_spi_dma.o(.rev16_text), (4 bytes). + Removing drv_spi_dma.o(.revsh_text), (4 bytes). + Removing drv_spi_dma.o(i.__NVIC_ClearPendingIRQ), (24 bytes). + Removing drv_spi_dma.o(i.drv_spi_abort_dma), (108 bytes). + Removing drv_spi_dma.o(i.drv_spi_dma_callback), (60 bytes). + Removing drv_spi_dma.o(i.drv_spi_dma_ch6_init), (208 bytes). + Removing drv_spi_dma.o(i.drv_spi_dma_init), (220 bytes). + Removing drv_spi_dma.o(i.drv_spi_set_dma_ch6_irq_callback), (48 bytes). + Removing drv_spi_dma.o(i.drv_spi_set_dma_irq_callback), (88 bytes). + Removing drv_spi_dma.o(i.drv_spim_dma_read), (96 bytes). + Removing drv_spi_dma.o(i.drv_spim_dma_write), (60 bytes). + Removing drv_spi_dma.o(i.drv_spis_dma_write), (72 bytes). + Removing drv_spi_dma.o(.bss), (480 bytes). + Removing drv_spi_dma.o(.data), (16 bytes). + Removing drv_spi_master.o(.rev16_text), (4 bytes). + Removing drv_spi_master.o(.revsh_text), (4 bytes). + Removing drv_spi_master.o(i.drv_spi_m_deinit), (40 bytes). + Removing drv_spi_master.o(i.drv_spi_m_disable_int), (68 bytes). + Removing drv_spi_master.o(i.drv_spi_m_enable_int), (72 bytes). + Removing drv_spi_master.o(i.drv_spi_m_enable_rx_dma), (32 bytes). + Removing drv_spi_master.o(i.drv_spi_m_enable_tx_dma), (28 bytes). + Removing drv_spi_master.o(i.drv_spi_m_get_dma_address), (8 bytes). + Removing drv_spi_master.o(i.drv_spi_m_gpio_init), (32 bytes). + Removing drv_spi_master.o(i.drv_spi_m_set_intr_callback), (12 bytes). + Removing drv_spi_master.o(i.drv_spi_m_switch_sclk), (28 bytes). + Removing drv_spi_master.o(i.drv_spi_m_write_data), (44 bytes). + Removing drv_spi_master.o(i.drv_spi_master_init), (164 bytes). + Removing drv_swire.o(.rev16_text), (4 bytes). + Removing drv_swire.o(.revsh_text), (4 bytes). + Removing drv_swire.o(i.drv_swire_enable), (28 bytes). + Removing drv_swire.o(i.drv_swire_register_callback), (12 bytes). + Removing drv_swire.o(i.drv_swire_set_bit_time), (24 bytes). + Removing drv_swire.o(i.drv_swire_set_power_down), (28 bytes). + Removing drv_swire.o(i.drv_swire_set_pulse_count), (12 bytes). + Removing drv_sys_cfg.o(.rev16_text), (4 bytes). + Removing drv_sys_cfg.o(.revsh_text), (4 bytes). + Removing drv_sys_cfg.o(i.drv_sys_cfg_dma_req_mask), (32 bytes). + Removing drv_sys_cfg.o(i.drv_sys_cfg_read_version0_id), (12 bytes). + Removing drv_sys_cfg.o(i.drv_sys_cfg_sel_ap_rst_trig), (28 bytes). + Removing drv_sys_cfg.o(i.drv_sys_cfg_set_ap_reset), (28 bytes). + Removing drv_timer.o(.rev16_text), (4 bytes). + Removing drv_timer.o(.revsh_text), (4 bytes). + Removing drv_timer.o(i.drv_timer_get_status), (38 bytes). + Removing drv_timer.o(i.drv_timer_set_repeat), (16 bytes). + Removing hal_internal_vsync.o(.rev16_text), (4 bytes). + Removing hal_internal_vsync.o(.revsh_text), (4 bytes). + Removing hal_internal_vsync.o(i.hal_internal_sync_cmd_mode_rcv_te), (168 bytes). + Removing hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change_ex), (468 bytes). + Removing hal_internal_vsync.o(i.hal_internal_sync_set_fb_setting_manual), (528 bytes). + Removing hal_internal_vsync.o(i.hal_internal_vsync_get_rx_state), (12 bytes). + Removing hal_internal_vsync.o(i.hal_internal_vsync_get_tx_state), (12 bytes). + Removing hal_internal_vsync.o(i.hal_internal_vsync_set_dcs_direct_mode), (48 bytes). + Removing hal_internal_vsync.o(i.hal_internal_vsync_set_tear_mode), (80 bytes). + Removing hal_internal_vsync.o(i.hal_vsync_reset_lcdc_scaler), (476 bytes). + Removing dcs_packet_fifo.o(i.dcs_packet_get_fifo_size), (16 bytes). + Removing drv_dsi_rx.o(.rev16_text), (4 bytes). + Removing drv_dsi_rx.o(.revsh_text), (4 bytes). + Removing drv_dsi_rx.o(i.drv_dsi_rx_get_max_ret_size), (6 bytes). + Removing drv_dsi_rx.o(i.drv_dsi_rx_get_phy_stopstate), (66 bytes). + Removing drv_dsi_rx.o(i.drv_dsi_rx_get_version), (4 bytes). + Removing drv_dsi_rx.o(i.drv_dsi_rx_phy_resistor_calibration), (236 bytes). + Removing drv_dsi_rx.o(i.drv_dsi_rx_set_ddi_pg_cfg), (32 bytes). + Removing drv_dsi_rx.o(i.drv_dsi_rx_set_ipi_pg_cfg), (48 bytes). + Removing drv_dsi_rx.o(i.drv_dsi_rx_shut_down), (14 bytes). + Removing drv_dsi_rx.o(i.drv_rx_phy_test_read), (12 bytes). + Removing drv_dsi_tx.o(.rev16_text), (4 bytes). + Removing drv_dsi_tx.o(.revsh_text), (4 bytes). + Removing drv_dsi_tx.o(i.drv_dsi_tx_command_get_payload), (4 bytes). + Removing drv_dsi_tx.o(i.drv_dsi_tx_force_interrupt), (8 bytes). + Removing drv_dsi_tx.o(i.drv_dsi_tx_get_phy_status), (6 bytes). + Removing drv_dsi_tx.o(i.drv_dsi_tx_phy_forcepll), (12 bytes). + Removing drv_dsi_tx.o(i.drv_dsi_tx_phy_resistor_calibration), (232 bytes). + Removing drv_dsi_tx.o(i.drv_dsi_tx_phy_start), (18 bytes). + Removing drv_dsi_tx.o(i.drv_dsi_tx_phy_status_pll_lock), (10 bytes). + Removing drv_dsi_tx.o(i.drv_dsi_tx_phy_status_ulpsactivenot), (62 bytes). + Removing drv_dsi_tx.o(i.drv_dsi_tx_phy_trigger), (92 bytes). + Removing drv_dsi_tx.o(i.drv_dsi_tx_phy_ulps_enter), (344 bytes). + Removing drv_dsi_tx.o(i.drv_dsi_tx_phy_ulps_exit), (276 bytes). + Removing drv_dsi_tx.o(i.drv_dsi_tx_sdf_3d), (28 bytes). + Removing drv_dsi_tx.o(i.drv_dsi_tx_set_bta), (22 bytes). + Removing drv_dsi_tx.o(i.drv_dsi_tx_set_vpg), (70 bytes). + Removing drv_dsi_tx.o(i.drv_dsi_tx_version), (4 bytes). + Removing drv_dsi_tx.o(i.drv_dsi_tx_vid_shadow), (16 bytes). + Removing drv_dsi_tx.o(i.drv_tx_phy_test_read), (10 bytes). + Removing drv_lcdc.o(.rev16_text), (4 bytes). + Removing drv_lcdc.o(.revsh_text), (4 bytes). + Removing drv_lcdc.o(i.drv_lcdc_config_rgb_to_pentile), (6 bytes). + Removing drv_lcdc.o(i.drv_lcdc_enable), (42 bytes). + Removing drv_lcdc.o(i.drv_lcdc_update_shadow_reg), (12 bytes). + Removing drv_memc.o(.rev16_text), (4 bytes). + Removing drv_memc.o(.revsh_text), (4 bytes). + Removing drv_memc.o(i.drv_memc_set_db_frm_time), (14 bytes). + Removing drv_memc.o(i.drv_memc_set_db_int_frame), (28 bytes). + Removing drv_memc.o(i.drv_memc_set_fb_remaining_line_trigger), (12 bytes). + Removing drv_memc.o(i.drv_memc_set_read_trigger_line), (16 bytes). + Removing drv_memc.o(i.drv_memc_set_te_ind), (16 bytes). + Removing drv_memc.o(i.drv_memc_set_tear_hwclr), (16 bytes). + Removing drv_memc.o(i.drv_memc_set_vidc_fb_arb), (14 bytes). + Removing drv_memc.o(i.drv_memc_set_write_trigger_line), (16 bytes). + Removing drv_rxbr.o(.rev16_text), (4 bytes). + Removing drv_rxbr.o(.revsh_text), (4 bytes). + Removing drv_rxbr.o(i.drv_rxbr_dsc_flush), (16 bytes). + Removing drv_rxbr.o(i.drv_rxbr_get_cur_hline_rcv_cnt), (8 bytes). + Removing drv_rxbr.o(i.drv_rxbr_get_ipi_vsync_interval), (8 bytes). + Removing drv_rxbr.o(i.drv_rxbr_get_pix_fmt), (8 bytes). + Removing drv_rxbr.o(i.drv_rxbr_set_ack_pkt_header), (20 bytes). + Removing drv_rxbr.o(i.drv_rxbr_set_col_addr), (4 bytes). + Removing drv_rxbr.o(i.drv_rxbr_set_compress), (24 bytes). + Removing drv_rxbr.o(i.drv_rxbr_set_page_addr), (4 bytes). + Removing drv_rxbr.o(i.drv_rxbr_soft_reset), (98 bytes). + Removing drv_vidc.o(.rev16_text), (4 bytes). + Removing drv_vidc.o(.revsh_text), (4 bytes). + Removing drv_vidc.o(i.drv_vidc_clear_status0), (14 bytes). + Removing drv_vidc.o(i.drv_vidc_debug_cap_pixel), (24 bytes). + Removing drv_vidc.o(i.drv_vidc_debug_signal_frame), (30 bytes). + Removing drv_vidc.o(i.drv_vidc_get_int_source), (38 bytes). + Removing drv_vidc.o(i.drv_vidc_get_status0), (20 bytes). + Removing drv_vidc.o(i.drv_vidc_get_status1), (20 bytes). + Removing drv_vidc.o(i.drv_vidc_get_status2), (6 bytes). + Removing drv_vidc.o(i.drv_vidc_set_dsc_thresh), (4 bytes). + Removing drv_vidc.o(i.drv_vidc_set_frmst_latency), (12 bytes). + Removing drv_vidc.o(i.drv_vidc_set_inff_thresh), (4 bytes). + Removing drv_vidc.o(i.drv_vidc_set_irq_line), (20 bytes). + Removing drv_vidc.o(i.drv_vidc_set_module_enable), (20 bytes). + Removing drv_vidc.o(i.drv_vidc_set_outff_thresh), (4 bytes). + Removing drv_vidc.o(i.drv_vidc_update_src_format), (14 bytes). + Removing irq_redirect .o(.rev16_text), (4 bytes). + Removing irq_redirect .o(.revsh_text), (4 bytes). + Removing drv_efuse.o(.rev16_text), (4 bytes). + Removing drv_efuse.o(.revsh_text), (4 bytes). + Removing drv_efuse.o(i.drv_efuse_crc_cal), (128 bytes). + Removing drv_efuse.o(i.drv_efuse_get_default_config), (26 bytes). + Removing drv_efuse.o(i.drv_efuse_int_disable), (12 bytes). + Removing drv_efuse.o(i.drv_efuse_write), (46 bytes). + Removing drv_efuse.o(i.drv_efuse_write_req), (22 bytes). + Removing drv_phy_common.o(.rev16_text), (4 bytes). + Removing drv_phy_common.o(.revsh_text), (4 bytes). + Removing drv_phy_common.o(i.drv_phy_test_read), (8 bytes). + Removing drv_chip_info.o(.rev16_text), (4 bytes). + Removing drv_chip_info.o(.revsh_text), (4 bytes). + Removing drv_dsc_dec.o(.rev16_text), (4 bytes). + Removing drv_dsc_dec.o(.revsh_text), (4 bytes). + Removing drv_dsc_dec.o(i.drv_dsc_dec_set_u32_pps), (120 bytes). + Removing hal_spi_slave.o(.rev16_text), (4 bytes). + Removing hal_spi_slave.o(.revsh_text), (4 bytes). + Removing hal_spi_slave.o(i.hal_spi_s_set_high_impedance), (100 bytes). + Removing hal_spi_slave.o(i.hal_spi_slave_auto_transfer_abort), (16 bytes). + Removing hal_spi_slave.o(i.hal_spi_slave_auto_transfer_start), (56 bytes). + Removing hal_spi_slave.o(i.hal_spi_slave_busy), (16 bytes). + Removing hal_spi_slave.o(i.hal_spi_slave_deinit), (10 bytes). + Removing hal_spi_slave.o(i.hal_spi_slave_disable), (16 bytes). + Removing hal_spi_slave.o(i.hal_spi_slave_enable), (96 bytes). + Removing hal_spi_slave.o(i.hal_spi_slave_flush_fifo), (20 bytes). + Removing hal_spi_slave.o(i.hal_spi_slave_get_rxfifo_notempty), (16 bytes). + Removing hal_spi_slave.o(i.hal_spi_slave_gpio_init), (8 bytes). + Removing hal_spi_slave.o(i.hal_spi_slave_init), (76 bytes). + Removing hal_spi_slave.o(i.hal_spi_slave_read_data), (10 bytes). + Removing hal_spi_slave.o(i.hal_spi_slave_register_callback), (12 bytes). + Removing hal_spi_slave.o(i.hal_spi_slave_reset_tx), (68 bytes). + Removing hal_spi_slave.o(i.hal_spi_slave_set_auto_rx_buffer), (16 bytes). + Removing hal_spi_slave.o(i.hal_spi_slave_set_auto_tx_buffer), (16 bytes). + Removing hal_spi_slave.o(i.hal_spi_slave_write_data), (14 bytes). + Removing drv_fls_dma.o(.rev16_text), (4 bytes). + Removing drv_fls_dma.o(.revsh_text), (4 bytes). + Removing drv_fls_dma.o(i.fls_abort_dma), (42 bytes). + Removing drv_fls_dma.o(i.fls_dma_disable), (10 bytes). + Removing drv_fls_dma.o(i.fls_dma_enable), (10 bytes). + Removing drv_fls_dma.o(i.fls_dma_read_prepare), (86 bytes). + Removing drv_fls_dma.o(i.fls_dma_write_prepare), (82 bytes). + Removing drv_fls_dma.o(i.fls_read_dmacallback), (32 bytes). + Removing drv_fls_dma.o(i.fls_transfer_create_handle_dma), (208 bytes). + Removing drv_fls_dma.o(i.fls_transfer_dma), (112 bytes). + Removing drv_fls_dma.o(i.fls_transfer_get_receive_count_dma), (44 bytes). + Removing drv_fls_dma.o(i.fls_write_dmacallback), (32 bytes). + Removing drv_fls_dma.o(.data), (8 bytes). + Removing drv_spi_slave.o(.rev16_text), (4 bytes). + Removing drv_spi_slave.o(.revsh_text), (4 bytes). + Removing drv_spi_slave.o(i.drv_spi_s_deinit), (40 bytes). + Removing drv_spi_slave.o(i.drv_spi_s_disable_int), (68 bytes). + Removing drv_spi_slave.o(i.drv_spi_s_enable_int), (72 bytes). + Removing drv_spi_slave.o(i.drv_spi_s_enable_rx_dma), (32 bytes). + Removing drv_spi_slave.o(i.drv_spi_s_enable_tx_dma), (28 bytes). + Removing drv_spi_slave.o(i.drv_spi_s_get_dma_address), (8 bytes). + Removing drv_spi_slave.o(i.drv_spi_s_gpio_init), (24 bytes). + Removing drv_spi_slave.o(i.drv_spi_s_read_data), (32 bytes). + Removing drv_spi_slave.o(i.drv_spi_s_switch_sclk), (28 bytes). + Removing drv_spi_slave.o(i.drv_spi_s_write_data), (44 bytes). + Removing drv_spi_slave.o(i.drv_spi_slave_init), (76 bytes). + Removing drv_uart.o(.rev16_text), (4 bytes). + Removing drv_uart.o(.revsh_text), (4 bytes). + Removing drv_uart.o(i.UART_AbortReceive), (30 bytes). + Removing drv_uart.o(i.UART_AbortSend), (30 bytes). + Removing drv_uart.o(i.UART_Deinit), (28 bytes). + Removing drv_uart.o(i.UART_Disable_IT), (68 bytes). + Removing drv_uart.o(i.UART_EnableDma), (32 bytes). + Removing drv_uart.o(i.UART_Enable_IT), (44 bytes). + Removing drv_uart.o(i.UART_GetDefaultConfig), (72 bytes). + Removing drv_uart.o(i.UART_GetFIFO_Ctrl), (20 bytes). + Removing drv_uart.o(i.UART_GetReceiveCount), (22 bytes). + Removing drv_uart.o(i.UART_GetReceiveStatus), (20 bytes). + Removing drv_uart.o(i.UART_GetRxRingBufferLength), (28 bytes). + Removing drv_uart.o(i.UART_GetSendCount), (22 bytes). + Removing drv_uart.o(i.UART_GetSendStatus), (20 bytes). + Removing drv_uart.o(i.UART_ReadBlocking), (32 bytes). + Removing drv_uart.o(i.UART_ReceiveNonBlocking), (50 bytes). + Removing drv_uart.o(i.UART_ResetTxFIFO), (36 bytes). + Removing drv_uart.o(i.UART_SendNonBlocking), (38 bytes). + Removing drv_uart.o(i.UART_TransferCreateHandle), (96 bytes). + Removing drv_uart.o(i.UART_TransferStartRingBuffer), (30 bytes). + Removing drv_uart.o(.constdata), (1 bytes). + Removing drv_uart_dma.o(.rev16_text), (4 bytes). + Removing drv_uart_dma.o(.revsh_text), (4 bytes). + Removing drv_uart_dma.o(i.UART_DMAInit), (76 bytes). + Removing drv_uart_dma.o(i.UART_TransferAbortReceiveDMA), (16 bytes). + Removing drv_uart_dma.o(i.UART_TransferAbortSendDMA), (16 bytes). + Removing drv_uart_dma.o(i.UART_TransferCreateHandleDMA), (176 bytes). + Removing drv_uart_dma.o(i.UART_TransferGetReceiveCountDMA), (44 bytes). + Removing drv_uart_dma.o(i.UART_TransferReceiveDMA), (68 bytes). + Removing drv_uart_dma.o(i.UART_TransferReceiveDMACallback), (34 bytes). + Removing drv_uart_dma.o(i.UART_TransferSendDMA), (68 bytes). + Removing drv_uart_dma.o(i.UART_TransferSendDMACallback), (34 bytes). + Removing drv_uart_dma.o(.data), (8 bytes). + Removing drv_wdg.o(.rev16_text), (4 bytes). + Removing drv_wdg.o(.revsh_text), (4 bytes). + Removing drv_wdg.o(i.drv_wdg_enable), (32 bytes). + Removing drv_wdg.o(i.drv_wdg_load_match), (12 bytes). + Removing drv_wdg.o(i.drv_wdg_register_callback), (12 bytes). + Removing drv_wdg.o(i.drv_wdg_sel_mode), (28 bytes). + Removing drv_wdg.o(i.drv_wdg_set_repeat), (12 bytes). + Removing dflti.o(.text), (40 bytes). + +581 unused section(s) (total 28966 bytes) removed from the image. + +============================================================================== + +Image Symbol Table + + Local Symbols + + Symbol Name Value Ov Type Size Object(Section) + + ../clib/../cmprslib/zerorunl2.c 0x00000000 Number 0 __dczerorl2.o ABSOLUTE + ../clib/microlib/division.c 0x00000000 Number 0 idiv.o ABSOLUTE + ../clib/microlib/division.c 0x00000000 Number 0 uldiv.o ABSOLUTE + ../clib/microlib/division.c 0x00000000 Number 0 uidiv.o ABSOLUTE + ../clib/microlib/errno.c 0x00000000 Number 0 errno.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE + ../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE + ../clib/microlib/longlong.c 0x00000000 Number 0 llushr.o ABSOLUTE + ../clib/microlib/longlong.c 0x00000000 Number 0 llsshr.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf4.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf5.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf6.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf8.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf7.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printfb.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf0.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf1.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf2.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printfa.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf3.o ABSOLUTE + ../clib/microlib/printf/stubs.s 0x00000000 Number 0 stubs.o ABSOLUTE + ../clib/microlib/stdio/streams.c 0x00000000 Number 0 stdout.o ABSOLUTE + ../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpyb.o ABSOLUTE + ../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpya.o ABSOLUTE + ../clib/microlib/string/memset.c 0x00000000 Number 0 memseta.o ABSOLUTE + ../clib/microlib/stubs.s 0x00000000 Number 0 iusefp.o ABSOLUTE + ../fplib/microlib/f2d.c 0x00000000 Number 0 f2d.o ABSOLUTE + ../fplib/microlib/fpadd.c 0x00000000 Number 0 dadd.o ABSOLUTE + ../fplib/microlib/fpadd.c 0x00000000 Number 0 fadd.o ABSOLUTE + ../fplib/microlib/fpdiv.c 0x00000000 Number 0 ddiv.o ABSOLUTE + ../fplib/microlib/fpdiv.c 0x00000000 Number 0 fdiv.o ABSOLUTE + ../fplib/microlib/fpepilogue.c 0x00000000 Number 0 depilogue.o ABSOLUTE + ../fplib/microlib/fpepilogue.c 0x00000000 Number 0 fepilogue.o ABSOLUTE + ../fplib/microlib/fpfix.c 0x00000000 Number 0 dfixul.o ABSOLUTE + ../fplib/microlib/fpfix.c 0x00000000 Number 0 ffixi.o ABSOLUTE + ../fplib/microlib/fpfix.c 0x00000000 Number 0 dfixui.o ABSOLUTE + ../fplib/microlib/fpfix.c 0x00000000 Number 0 dfixi.o ABSOLUTE + ../fplib/microlib/fpfix.c 0x00000000 Number 0 ffixui.o ABSOLUTE + ../fplib/microlib/fpflt.c 0x00000000 Number 0 dflti.o ABSOLUTE + ../fplib/microlib/fpflt.c 0x00000000 Number 0 dfltui.o ABSOLUTE + ../fplib/microlib/fpflt.c 0x00000000 Number 0 ffltui.o ABSOLUTE + ../fplib/microlib/fpflt.c 0x00000000 Number 0 fflti.o ABSOLUTE + ../fplib/microlib/fpmul.c 0x00000000 Number 0 dmul.o ABSOLUTE + ../fplib/microlib/fpmul.c 0x00000000 Number 0 fmul.o ABSOLUTE + ../fplib/microlib/fpscalb.c 0x00000000 Number 0 fscalb.o ABSOLUTE + ../fplib/microlib/fpsqrt.c 0x00000000 Number 0 dsqrt.o ABSOLUTE + ../mathlib/ceil.c 0x00000000 Number 0 ceil.o ABSOLUTE + ../mathlib/sqrt.c 0x00000000 Number 0 sqrt_x.o ABSOLUTE + ../mathlib/sqrt.c 0x00000000 Number 0 sqrt.o ABSOLUTE + ..\..\..\src\common\tau_delay.c 0x00000000 Number 0 tau_delay.o ABSOLUTE + ..\..\..\src\common\tau_log.c 0x00000000 Number 0 tau_log.o ABSOLUTE + ..\..\..\src\driver\robin\src\drv_chip_info.c 0x00000000 Number 0 drv_chip_info.o ABSOLUTE + ..\..\..\src\driver\robin\src\drv_dsc_dec.c 0x00000000 Number 0 drv_dsc_dec.o ABSOLUTE + ..\..\..\src\driver\source\robin\drv\drv_dsi_rx.c 0x00000000 Number 0 drv_dsi_rx.o ABSOLUTE + ..\..\..\src\driver\source\robin\drv\drv_dsi_tx.c 0x00000000 Number 0 drv_dsi_tx.o ABSOLUTE + ..\..\..\src\driver\source\robin\drv\drv_efuse.c 0x00000000 Number 0 drv_efuse.o ABSOLUTE + ..\..\..\src\driver\source\robin\drv\drv_lcdc.c 0x00000000 Number 0 drv_lcdc.o ABSOLUTE + ..\..\..\src\driver\source\robin\drv\drv_memc.c 0x00000000 Number 0 drv_memc.o ABSOLUTE + ..\..\..\src\driver\source\robin\drv\drv_phy_common.c 0x00000000 Number 0 drv_phy_common.o ABSOLUTE + ..\..\..\src\driver\source\robin\drv\drv_rxbr.c 0x00000000 Number 0 drv_rxbr.o ABSOLUTE + ..\..\..\src\driver\source\robin\drv\drv_vidc.c 0x00000000 Number 0 drv_vidc.o ABSOLUTE + ..\..\..\src\driver\source\robin\drv\irq_redirect .c 0x00000000 Number 0 irq_redirect .o ABSOLUTE + ..\..\..\src\driver\source\robin\hal\internal\dcs_packet_fifo.c 0x00000000 Number 0 dcs_packet_fifo.o ABSOLUTE + ..\..\..\src\driver\source\robin\hal\internal\hal_internal_vsync.c 0x00000000 Number 0 hal_internal_vsync.o ABSOLUTE + ..\..\..\src\sdk\robin\src\drv\drv_common.c 0x00000000 Number 0 drv_common.o ABSOLUTE + ..\..\..\src\sdk\robin\src\drv\drv_crgu.c 0x00000000 Number 0 drv_crgu.o ABSOLUTE + ..\..\..\src\sdk\robin\src\drv\drv_dma.c 0x00000000 Number 0 drv_dma.o ABSOLUTE + ..\..\..\src\sdk\robin\src\drv\drv_fls.c 0x00000000 Number 0 drv_fls.o ABSOLUTE + ..\..\..\src\sdk\robin\src\drv\drv_fls_dma.c 0x00000000 Number 0 drv_fls_dma.o ABSOLUTE + ..\..\..\src\sdk\robin\src\drv\drv_gpio.c 0x00000000 Number 0 drv_gpio.o ABSOLUTE + ..\..\..\src\sdk\robin\src\drv\drv_i2c_dma.c 0x00000000 Number 0 drv_i2c_dma.o ABSOLUTE + ..\..\..\src\sdk\robin\src\drv\drv_i2c_master.c 0x00000000 Number 0 drv_i2c_master.o ABSOLUTE + ..\..\..\src\sdk\robin\src\drv\drv_i2c_slave.c 0x00000000 Number 0 drv_i2c_slave.o ABSOLUTE + ..\..\..\src\sdk\robin\src\drv\drv_param_init.c 0x00000000 Number 0 drv_param_init.o ABSOLUTE + ..\..\..\src\sdk\robin\src\drv\drv_pwm.c 0x00000000 Number 0 drv_pwm.o ABSOLUTE + ..\..\..\src\sdk\robin\src\drv\drv_pwr.c 0x00000000 Number 0 drv_pwr.o ABSOLUTE + ..\..\..\src\sdk\robin\src\drv\drv_spi_dma.c 0x00000000 Number 0 drv_spi_dma.o ABSOLUTE + ..\..\..\src\sdk\robin\src\drv\drv_spi_master.c 0x00000000 Number 0 drv_spi_master.o ABSOLUTE + ..\..\..\src\sdk\robin\src\drv\drv_spi_slave.c 0x00000000 Number 0 drv_spi_slave.o ABSOLUTE + ..\..\..\src\sdk\robin\src\drv\drv_swire.c 0x00000000 Number 0 drv_swire.o ABSOLUTE + ..\..\..\src\sdk\robin\src\drv\drv_sys_cfg.c 0x00000000 Number 0 drv_sys_cfg.o ABSOLUTE + ..\..\..\src\sdk\robin\src\drv\drv_timer.c 0x00000000 Number 0 drv_timer.o ABSOLUTE + ..\..\..\src\sdk\robin\src\drv\drv_uart.c 0x00000000 Number 0 drv_uart.o ABSOLUTE + ..\..\..\src\sdk\robin\src\drv\drv_uart_dma.c 0x00000000 Number 0 drv_uart_dma.o ABSOLUTE + ..\..\..\src\sdk\robin\src\drv\drv_wdg.c 0x00000000 Number 0 drv_wdg.o ABSOLUTE + ..\..\..\src\sdk\robin\src\hal\hal_dsi_rx_ctrl.c 0x00000000 Number 0 hal_dsi_rx_ctrl.o ABSOLUTE + ..\..\..\src\sdk\robin\src\hal\hal_dsi_tx_ctrl.c 0x00000000 Number 0 hal_dsi_tx_ctrl.o ABSOLUTE + ..\..\..\src\sdk\robin\src\hal\hal_gpio.c 0x00000000 Number 0 hal_gpio.o ABSOLUTE + ..\..\..\src\sdk\robin\src\hal\hal_i2c_master.c 0x00000000 Number 0 hal_i2c_master.o ABSOLUTE + ..\..\..\src\sdk\robin\src\hal\hal_i2c_slave.c 0x00000000 Number 0 hal_i2c_slave.o ABSOLUTE + ..\..\..\src\sdk\robin\src\hal\hal_pwm.c 0x00000000 Number 0 hal_pwm.o ABSOLUTE + ..\..\..\src\sdk\robin\src\hal\hal_spi_master.c 0x00000000 Number 0 hal_spi_master.o ABSOLUTE + ..\..\..\src\sdk\robin\src\hal\hal_spi_slave.c 0x00000000 Number 0 hal_spi_slave.o ABSOLUTE + ..\..\..\src\sdk\robin\src\hal\hal_swire.c 0x00000000 Number 0 hal_swire.o ABSOLUTE + ..\..\..\src\sdk\robin\src\hal\hal_system.c 0x00000000 Number 0 hal_system.o ABSOLUTE + ..\..\..\src\sdk\robin\src\hal\hal_timer.c 0x00000000 Number 0 hal_timer.o ABSOLUTE + ..\..\..\src\sdk\robin\src\hal\hal_uart.c 0x00000000 Number 0 hal_uart.o ABSOLUTE + ..\..\..\src\sdk\robin\src\hal\internal\norflash.c 0x00000000 Number 0 norflash.o ABSOLUTE + ..\..\src\app\ap_demo\ap_demo.c 0x00000000 Number 0 ap_demo.o ABSOLUTE + ..\..\src\app\ap_demo\app_tp_for_custom_mi8se.c 0x00000000 Number 0 app_tp_for_custom_mi8se.o ABSOLUTE + ..\..\src\app\ap_demo\app_tp_transfer.c 0x00000000 Number 0 app_tp_transfer.o ABSOLUTE + ..\..\src\app\main.c 0x00000000 Number 0 main.o ABSOLUTE + ..\..\src\board\board.c 0x00000000 Number 0 board.o ABSOLUTE + ..\..\src\board\startup\startup_ARMCM0.s 0x00000000 Number 0 startup_armcm0.o ABSOLUTE + ..\\..\\..\\src\\common\\tau_delay.c 0x00000000 Number 0 tau_delay.o ABSOLUTE + ..\\..\\..\\src\\common\\tau_log.c 0x00000000 Number 0 tau_log.o ABSOLUTE + ..\\..\\..\\src\\driver\\robin\\src\\drv_chip_info.c 0x00000000 Number 0 drv_chip_info.o ABSOLUTE + ..\\..\\..\\src\\driver\\robin\\src\\drv_dsc_dec.c 0x00000000 Number 0 drv_dsc_dec.o ABSOLUTE + ..\\..\\..\\src\\driver\\source\\robin\\drv\\drv_dsi_rx.c 0x00000000 Number 0 drv_dsi_rx.o ABSOLUTE + ..\\..\\..\\src\\driver\\source\\robin\\drv\\drv_dsi_tx.c 0x00000000 Number 0 drv_dsi_tx.o ABSOLUTE + ..\\..\\..\\src\\driver\\source\\robin\\drv\\drv_efuse.c 0x00000000 Number 0 drv_efuse.o ABSOLUTE + ..\\..\\..\\src\\driver\\source\\robin\\drv\\drv_lcdc.c 0x00000000 Number 0 drv_lcdc.o ABSOLUTE + ..\\..\\..\\src\\driver\\source\\robin\\drv\\drv_memc.c 0x00000000 Number 0 drv_memc.o ABSOLUTE + ..\\..\\..\\src\\driver\\source\\robin\\drv\\drv_phy_common.c 0x00000000 Number 0 drv_phy_common.o ABSOLUTE + ..\\..\\..\\src\\driver\\source\\robin\\drv\\drv_rxbr.c 0x00000000 Number 0 drv_rxbr.o ABSOLUTE + ..\\..\\..\\src\\driver\\source\\robin\\drv\\drv_vidc.c 0x00000000 Number 0 drv_vidc.o ABSOLUTE + ..\\..\\..\\src\\driver\\source\\robin\\drv\\irq_redirect .c 0x00000000 Number 0 irq_redirect .o ABSOLUTE + ..\\..\\..\\src\\driver\\source\\robin\\hal\\internal\\hal_internal_vsync.c 0x00000000 Number 0 hal_internal_vsync.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\drv\\drv_common.c 0x00000000 Number 0 drv_common.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\drv\\drv_crgu.c 0x00000000 Number 0 drv_crgu.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\drv\\drv_dma.c 0x00000000 Number 0 drv_dma.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\drv\\drv_fls.c 0x00000000 Number 0 drv_fls.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\drv\\drv_fls_dma.c 0x00000000 Number 0 drv_fls_dma.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\drv\\drv_gpio.c 0x00000000 Number 0 drv_gpio.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\drv\\drv_i2c_dma.c 0x00000000 Number 0 drv_i2c_dma.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\drv\\drv_i2c_master.c 0x00000000 Number 0 drv_i2c_master.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\drv\\drv_i2c_slave.c 0x00000000 Number 0 drv_i2c_slave.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\drv\\drv_param_init.c 0x00000000 Number 0 drv_param_init.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\drv\\drv_pwm.c 0x00000000 Number 0 drv_pwm.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\drv\\drv_pwr.c 0x00000000 Number 0 drv_pwr.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\drv\\drv_spi_dma.c 0x00000000 Number 0 drv_spi_dma.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\drv\\drv_spi_master.c 0x00000000 Number 0 drv_spi_master.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\drv\\drv_spi_slave.c 0x00000000 Number 0 drv_spi_slave.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\drv\\drv_swire.c 0x00000000 Number 0 drv_swire.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\drv\\drv_sys_cfg.c 0x00000000 Number 0 drv_sys_cfg.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\drv\\drv_timer.c 0x00000000 Number 0 drv_timer.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\drv\\drv_uart.c 0x00000000 Number 0 drv_uart.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\drv\\drv_uart_dma.c 0x00000000 Number 0 drv_uart_dma.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\drv\\drv_wdg.c 0x00000000 Number 0 drv_wdg.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\hal\\hal_dsi_rx_ctrl.c 0x00000000 Number 0 hal_dsi_rx_ctrl.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\hal\\hal_dsi_tx_ctrl.c 0x00000000 Number 0 hal_dsi_tx_ctrl.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\hal\\hal_gpio.c 0x00000000 Number 0 hal_gpio.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\hal\\hal_i2c_master.c 0x00000000 Number 0 hal_i2c_master.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\hal\\hal_i2c_slave.c 0x00000000 Number 0 hal_i2c_slave.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\hal\\hal_pwm.c 0x00000000 Number 0 hal_pwm.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\hal\\hal_spi_master.c 0x00000000 Number 0 hal_spi_master.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\hal\\hal_spi_slave.c 0x00000000 Number 0 hal_spi_slave.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\hal\\hal_swire.c 0x00000000 Number 0 hal_swire.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\hal\\hal_system.c 0x00000000 Number 0 hal_system.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\hal\\hal_timer.c 0x00000000 Number 0 hal_timer.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\hal\\hal_uart.c 0x00000000 Number 0 hal_uart.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\hal\\internal\\norflash.c 0x00000000 Number 0 norflash.o ABSOLUTE + ..\\..\\src\\app\\ap_demo\\ap_demo.c 0x00000000 Number 0 ap_demo.o ABSOLUTE + ..\\..\\src\\app\\ap_demo\\app_tp_for_custom_mi8se.c 0x00000000 Number 0 app_tp_for_custom_mi8se.o ABSOLUTE + ..\\..\\src\\app\\ap_demo\\app_tp_transfer.c 0x00000000 Number 0 app_tp_transfer.o ABSOLUTE + ..\\..\\src\\app\\main.c 0x00000000 Number 0 main.o ABSOLUTE + ..\\..\\src\\board\\board.c 0x00000000 Number 0 board.o ABSOLUTE + cdcmple.s 0x00000000 Number 0 cdcmple.o ABSOLUTE + cdrcmple.s 0x00000000 Number 0 cdrcmple.o ABSOLUTE + cfrcmple.s 0x00000000 Number 0 cfrcmple.o ABSOLUTE + dc.s 0x00000000 Number 0 dc.o ABSOLUTE + handlers.s 0x00000000 Number 0 handlers.o ABSOLUTE + init.s 0x00000000 Number 0 init.o ABSOLUTE + RESET 0x00010000 Section 192 startup_armcm0.o(RESET) + .ARM.Collect$$$$00000000 0x000100c0 Section 0 entry.o(.ARM.Collect$$$$00000000) + .ARM.Collect$$$$00000001 0x000100c0 Section 4 entry2.o(.ARM.Collect$$$$00000001) + .ARM.Collect$$$$00000004 0x000100c4 Section 4 entry5.o(.ARM.Collect$$$$00000004) + .ARM.Collect$$$$00000008 0x000100c8 Section 0 entry7b.o(.ARM.Collect$$$$00000008) + .ARM.Collect$$$$0000000A 0x000100c8 Section 0 entry8b.o(.ARM.Collect$$$$0000000A) + .ARM.Collect$$$$0000000B 0x000100c8 Section 8 entry9a.o(.ARM.Collect$$$$0000000B) + .ARM.Collect$$$$0000000D 0x000100d0 Section 0 entry10a.o(.ARM.Collect$$$$0000000D) + .ARM.Collect$$$$0000000F 0x000100d0 Section 0 entry11a.o(.ARM.Collect$$$$0000000F) + .ARM.Collect$$$$00002712 0x000100d0 Section 4 entry2.o(.ARM.Collect$$$$00002712) + __lit__00000000 0x000100d0 Data 4 entry2.o(.ARM.Collect$$$$00002712) + .text 0x000100d4 Section 120 startup_armcm0.o(.text) + .text 0x0001014c Section 0 uidiv.o(.text) + .text 0x00010178 Section 0 idiv.o(.text) + .text 0x000101a0 Section 0 memcpya.o(.text) + .text 0x000101c4 Section 0 memseta.o(.text) + .text 0x000101e8 Section 0 fadd.o(.text) + .text 0x0001029a Section 0 fmul.o(.text) + .text 0x00010314 Section 0 fdiv.o(.text) + .text 0x00010390 Section 0 fscalb.o(.text) + .text 0x000103a8 Section 0 dadd.o(.text) + .text 0x0001050c Section 0 dmul.o(.text) + .text 0x000105dc Section 0 ddiv.o(.text) + .text 0x000106cc Section 0 fflti.o(.text) + .text 0x000106e2 Section 0 ffltui.o(.text) + .text 0x000106f0 Section 0 dfltui.o(.text) + .text 0x0001070c Section 0 ffixi.o(.text) + .text 0x0001073e Section 0 ffixui.o(.text) + .text 0x00010768 Section 0 dfixi.o(.text) + .text 0x000107b0 Section 0 dfixui.o(.text) + .text 0x000107ec Section 0 f2d.o(.text) + .text 0x00010814 Section 40 cdcmple.o(.text) + .text 0x0001083c Section 20 cfrcmple.o(.text) + .text 0x00010850 Section 0 uldiv.o(.text) + .text 0x000108b0 Section 0 llshl.o(.text) + .text 0x000108d0 Section 0 llushr.o(.text) + .text 0x000108f2 Section 0 llsshr.o(.text) + .text 0x00010918 Section 0 iusefp.o(.text) + .text 0x00010918 Section 0 fepilogue.o(.text) + .text 0x0001099a Section 0 depilogue.o(.text) + .text 0x00010a58 Section 0 dsqrt.o(.text) + .text 0x00010afc Section 0 dfixul.o(.text) + .text 0x00010b3c Section 40 cdrcmple.o(.text) + .text 0x00010b64 Section 36 init.o(.text) + .text 0x00010b88 Section 0 __dczerorl2.o(.text) + i.ADC_IRQn_Handler 0x00010be0 Section 0 irq_redirect .o(i.ADC_IRQn_Handler) + i.AP_NRESET_IRQn_Handler 0x00010bf8 Section 0 irq_redirect .o(i.AP_NRESET_IRQn_Handler) + i.AP_SWIRE_init 0x00010c10 Section 0 ap_demo.o(i.AP_SWIRE_init) + AP_SWIRE_init 0x00010c11 Thumb Code 58 ap_demo.o(i.AP_SWIRE_init) + i.DMA_IRQn_Handler 0x00010c4c Section 0 irq_redirect .o(i.DMA_IRQn_Handler) + i.EXTI_INT0_IRQn_Handler 0x00010c60 Section 0 irq_redirect .o(i.EXTI_INT0_IRQn_Handler) + i.EXTI_INT1_IRQn_Handler 0x00010c7c Section 0 irq_redirect .o(i.EXTI_INT1_IRQn_Handler) + i.EXTI_INT2_IRQn_Handler 0x00010c98 Section 0 irq_redirect .o(i.EXTI_INT2_IRQn_Handler) + i.EXTI_INT3_IRQn_Handler 0x00010cb4 Section 0 irq_redirect .o(i.EXTI_INT3_IRQn_Handler) + i.EXTI_INT4_IRQn_Handler 0x00010cd0 Section 0 irq_redirect .o(i.EXTI_INT4_IRQn_Handler) + i.EXTI_INT5_IRQn_Handler 0x00010cec Section 0 irq_redirect .o(i.EXTI_INT5_IRQn_Handler) + i.EXTI_INT6_IRQn_Handler 0x00010d08 Section 0 irq_redirect .o(i.EXTI_INT6_IRQn_Handler) + i.EXTI_INT7_IRQn_Handler 0x00010d24 Section 0 irq_redirect .o(i.EXTI_INT7_IRQn_Handler) + i.FLSCTRL_IRQn_Handler 0x00010d40 Section 0 irq_redirect .o(i.FLSCTRL_IRQn_Handler) + i.HardFault_Handler 0x00010d54 Section 0 irq_redirect .o(i.HardFault_Handler) + i.I2C0_IRQn_Handler 0x00010d68 Section 0 irq_redirect .o(i.I2C0_IRQn_Handler) + i.I2C1_IRQn_Handler 0x00010d80 Section 0 irq_redirect .o(i.I2C1_IRQn_Handler) + i.LCDC_IRQn_Handler 0x00010d98 Section 0 irq_redirect .o(i.LCDC_IRQn_Handler) + i.LOG_printf 0x00010db0 Section 0 tau_log.o(i.LOG_printf) + i.MEMC_IRQn_Handler 0x00010dd8 Section 0 irq_redirect .o(i.MEMC_IRQn_Handler) + i.MIPI_RX_IRQn_Handler 0x00010df0 Section 0 irq_redirect .o(i.MIPI_RX_IRQn_Handler) + i.MIPI_TX_IRQn_Handler 0x00010e08 Section 0 irq_redirect .o(i.MIPI_TX_IRQn_Handler) + i.PWMDET_IRQn_Handler 0x00010e20 Section 0 irq_redirect .o(i.PWMDET_IRQn_Handler) + i.PWM_Task 0x00010e3c Section 0 ap_demo.o(i.PWM_Task) + i.PWM_init 0x00010e70 Section 0 ap_demo.o(i.PWM_init) + PWM_init 0x00010e71 Thumb Code 26 ap_demo.o(i.PWM_init) + i.SPIM_IRQn_Handler 0x00010e8c Section 0 irq_redirect .o(i.SPIM_IRQn_Handler) + i.SPIS_IRQn_Handler 0x00010ea8 Section 0 irq_redirect .o(i.SPIS_IRQn_Handler) + i.SWIRE_IRQn_Handler 0x00010ec4 Section 0 irq_redirect .o(i.SWIRE_IRQn_Handler) + i.SysTick_Handler 0x00010ee0 Section 0 irq_redirect .o(i.SysTick_Handler) + i.TIMER0_IRQn_Handler 0x00010ef8 Section 0 irq_redirect .o(i.TIMER0_IRQn_Handler) + i.TIMER1_IRQn_Handler 0x00010f10 Section 0 irq_redirect .o(i.TIMER1_IRQn_Handler) + i.TIMER2_IRQn_Handler 0x00010f28 Section 0 irq_redirect .o(i.TIMER2_IRQn_Handler) + i.TIMER3_IRQn_Handler 0x00010f40 Section 0 irq_redirect .o(i.TIMER3_IRQn_Handler) + i.UART0_IRQ_Handle 0x00010f58 Section 0 drv_uart.o(i.UART0_IRQ_Handle) + i.UART_DisableDma 0x00010f74 Section 0 drv_uart.o(i.UART_DisableDma) + i.UART_GetInstance 0x00010f76 Section 0 drv_uart.o(i.UART_GetInstance) + i.UART_IRQn_Handler 0x00010f7c Section 0 irq_redirect .o(i.UART_IRQn_Handler) + i.UART_ResetRxFIFO 0x00010f94 Section 0 drv_uart.o(i.UART_ResetRxFIFO) + i.UART_SetBaudRate 0x00010fb8 Section 0 drv_uart.o(i.UART_SetBaudRate) + .ARM.__at_0x11000 0x00011000 Section 20 drv_common.o(.ARM.__at_0x11000) + i.__scatterload_null 0x00011014 Section 2 handlers.o(i.__scatterload_null) + .ARM.__at_0x11018 0x00011018 Section 4 drv_common.o(.ARM.__at_0x11018) + i.UART_SwitchSCLK 0x0001101c Section 0 drv_uart.o(i.UART_SwitchSCLK) + i.UART_TransferHandleIRQ 0x00011036 Section 0 drv_uart.o(i.UART_TransferHandleIRQ) + i.UART_WriteBlocking 0x0001116a Section 0 drv_uart.o(i.UART_WriteBlocking) + i.UART_init 0x00011184 Section 0 drv_uart.o(i.UART_init) + i.VIDC_IRQn_Handler 0x00011240 Section 0 irq_redirect .o(i.VIDC_IRQn_Handler) + i.VPRE_IRQn_Handler 0x00011258 Section 0 irq_redirect .o(i.VPRE_IRQn_Handler) + i.WDG_IRQn_Handler 0x00011270 Section 0 irq_redirect .o(i.WDG_IRQn_Handler) + i.__0printf 0x00011288 Section 0 printfa.o(i.__0printf) + i.__0vsprintf 0x000112a8 Section 0 printfa.o(i.__0vsprintf) + i.__ARM_clz 0x000112cc Section 0 depilogue.o(i.__ARM_clz) + i.__ARM_common_switch8 0x000112fa Section 0 hal_dsi_rx_ctrl.o(i.__ARM_common_switch8) + i.__NVIC_ClearPendingIRQ 0x00011314 Section 0 drv_i2c_master.o(i.__NVIC_ClearPendingIRQ) + __NVIC_ClearPendingIRQ 0x00011315 Thumb Code 18 drv_i2c_master.o(i.__NVIC_ClearPendingIRQ) + i.__NVIC_ClearPendingIRQ 0x0001132c Section 0 drv_spi_master.o(i.__NVIC_ClearPendingIRQ) + __NVIC_ClearPendingIRQ 0x0001132d Thumb Code 18 drv_spi_master.o(i.__NVIC_ClearPendingIRQ) + i.__NVIC_DisableIRQ 0x00011344 Section 0 drv_rxbr.o(i.__NVIC_DisableIRQ) + __NVIC_DisableIRQ 0x00011345 Thumb Code 26 drv_rxbr.o(i.__NVIC_DisableIRQ) + i.__NVIC_EnableIRQ 0x00011364 Section 0 drv_rxbr.o(i.__NVIC_EnableIRQ) + __NVIC_EnableIRQ 0x00011365 Thumb Code 18 drv_rxbr.o(i.__NVIC_EnableIRQ) + i.__NVIC_SetPriority 0x0001137c Section 0 hal_spi_slave.o(i.__NVIC_SetPriority) + __NVIC_SetPriority 0x0001137d Thumb Code 60 hal_spi_slave.o(i.__NVIC_SetPriority) + i.__scatterload_copy 0x000113c0 Section 14 handlers.o(i.__scatterload_copy) + i.__scatterload_zeroinit 0x000113ce Section 14 handlers.o(i.__scatterload_zeroinit) + i.__set_errno 0x000113dc Section 0 errno.o(i.__set_errno) + i._fp_digits 0x000113e8 Section 0 printfa.o(i._fp_digits) + _fp_digits 0x000113e9 Thumb Code 344 printfa.o(i._fp_digits) + i._printf_core 0x0001155c Section 0 printfa.o(i._printf_core) + _printf_core 0x0001155d Thumb Code 1754 printfa.o(i._printf_core) + i._printf_post_padding 0x00011c48 Section 0 printfa.o(i._printf_post_padding) + _printf_post_padding 0x00011c49 Thumb Code 32 printfa.o(i._printf_post_padding) + i._printf_pre_padding 0x00011c68 Section 0 printfa.o(i._printf_pre_padding) + _printf_pre_padding 0x00011c69 Thumb Code 44 printfa.o(i._printf_pre_padding) + i._sputc 0x00011c94 Section 0 printfa.o(i._sputc) + _sputc 0x00011c95 Thumb Code 10 printfa.o(i._sputc) + i.ap_dcs_read 0x00011ca0 Section 0 ap_demo.o(i.ap_dcs_read) + ap_dcs_read 0x00011ca1 Thumb Code 28 ap_demo.o(i.ap_dcs_read) + i.ap_demo 0x00011cd8 Section 0 ap_demo.o(i.ap_demo) + i.ap_set_backlight 0x00011dc4 Section 0 ap_demo.o(i.ap_set_backlight) + ap_set_backlight 0x00011dc5 Thumb Code 74 ap_demo.o(i.ap_set_backlight) + i.ap_set_display_off 0x00011e18 Section 0 ap_demo.o(i.ap_set_display_off) + ap_set_display_off 0x00011e19 Thumb Code 26 ap_demo.o(i.ap_set_display_off) + i.ap_set_display_on 0x00011e54 Section 0 ap_demo.o(i.ap_set_display_on) + ap_set_display_on 0x00011e55 Thumb Code 26 ap_demo.o(i.ap_set_display_on) + i.ap_set_enter_sleep_mode 0x00011e90 Section 0 ap_demo.o(i.ap_set_enter_sleep_mode) + ap_set_enter_sleep_mode 0x00011e91 Thumb Code 60 ap_demo.o(i.ap_set_enter_sleep_mode) + i.ap_set_exit_sleep_mode 0x00011ef4 Section 0 ap_demo.o(i.ap_set_exit_sleep_mode) + ap_set_exit_sleep_mode 0x00011ef5 Thumb Code 26 ap_demo.o(i.ap_set_exit_sleep_mode) + i.app_ADC_IRQn_Handler 0x00011f38 Section 0 drv_rxbr.o(i.app_ADC_IRQn_Handler) + i.app_AP_NRESET_IRQn_Handler 0x00011f54 Section 0 drv_gpio.o(i.app_AP_NRESET_IRQn_Handler) + i.app_EXTI_INT0_IRQn_Handler 0x00011f78 Section 0 drv_gpio.o(i.app_EXTI_INT0_IRQn_Handler) + i.app_EXTI_INT1_IRQn_Handler 0x00011f94 Section 0 drv_gpio.o(i.app_EXTI_INT1_IRQn_Handler) + i.app_EXTI_INT2_IRQn_Handler 0x00011fb0 Section 0 drv_gpio.o(i.app_EXTI_INT2_IRQn_Handler) + i.app_EXTI_INT3_IRQn_Handler 0x00011fcc Section 0 drv_gpio.o(i.app_EXTI_INT3_IRQn_Handler) + i.app_EXTI_INT4_IRQn_Handler 0x00011fe8 Section 0 drv_gpio.o(i.app_EXTI_INT4_IRQn_Handler) + i.app_EXTI_INT5_IRQn_Handler 0x00012004 Section 0 drv_gpio.o(i.app_EXTI_INT5_IRQn_Handler) + i.app_EXTI_INT6_IRQn_Handler 0x00012020 Section 0 drv_gpio.o(i.app_EXTI_INT6_IRQn_Handler) + i.app_EXTI_INT7_IRQn_Handler 0x0001203c Section 0 drv_gpio.o(i.app_EXTI_INT7_IRQn_Handler) + i.app_HardFault_Handler 0x00012058 Section 0 drv_common.o(i.app_HardFault_Handler) + i.app_I2C0_IRQn_Handler 0x000120a0 Section 0 drv_i2c_slave.o(i.app_I2C0_IRQn_Handler) + i.app_I2C1_IRQn_Handler 0x000120b8 Section 0 drv_i2c_master.o(i.app_I2C1_IRQn_Handler) + i.app_LCDC_IRQn_Handler 0x000120c8 Section 0 hal_internal_vsync.o(i.app_LCDC_IRQn_Handler) + i.app_MEMC_IRQn_Handler 0x000121f8 Section 0 drv_memc.o(i.app_MEMC_IRQn_Handler) + i.app_MIPI_RX_IRQn_Handler 0x00012280 Section 0 drv_dsi_rx.o(i.app_MIPI_RX_IRQn_Handler) + i.app_MIPI_TX_IRQn_Handler 0x00012518 Section 0 drv_dsi_tx.o(i.app_MIPI_TX_IRQn_Handler) + i.app_PWMDET_IRQn_Handler 0x000125b8 Section 0 drv_pwm.o(i.app_PWMDET_IRQn_Handler) + i.app_SPIM_IRQn_Handler 0x00012600 Section 0 drv_spi_master.o(i.app_SPIM_IRQn_Handler) + i.app_SPIS_IRQn_Handler 0x00012630 Section 0 hal_spi_slave.o(i.app_SPIS_IRQn_Handler) + i.app_SWIRE_IRQn_Handler 0x00012830 Section 0 drv_swire.o(i.app_SWIRE_IRQn_Handler) + i.app_SysTick_Handler 0x00012850 Section 0 drv_common.o(i.app_SysTick_Handler) + i.app_TIMER0_IRQn_Handler 0x00012868 Section 0 drv_timer.o(i.app_TIMER0_IRQn_Handler) + i.app_TIMER1_IRQn_Handler 0x00012872 Section 0 drv_timer.o(i.app_TIMER1_IRQn_Handler) + i.app_TIMER2_IRQn_Handler 0x0001287c Section 0 drv_timer.o(i.app_TIMER2_IRQn_Handler) + i.app_TIMER3_IRQn_Handler 0x00012886 Section 0 drv_timer.o(i.app_TIMER3_IRQn_Handler) + i.app_UART_IRQn_Handler 0x00012890 Section 0 drv_uart.o(i.app_UART_IRQn_Handler) + i.app_VIDC_IRQn_Handler 0x00012898 Section 0 drv_vidc.o(i.app_VIDC_IRQn_Handler) + i.app_VPRE_IRQn_Handler 0x000128b4 Section 0 drv_rxbr.o(i.app_VPRE_IRQn_Handler) + i.app_WDG_IRQn_Handler 0x000128d0 Section 0 drv_wdg.o(i.app_WDG_IRQn_Handler) + i.app_dma_irq_handler 0x00012908 Section 0 drv_dma.o(i.app_dma_irq_handler) + i.app_fls_ctrl_Handler 0x00012918 Section 0 norflash.o(i.app_fls_ctrl_Handler) + i.app_tp_i2cs_callback 0x00012948 Section 0 app_tp_transfer.o(i.app_tp_i2cs_callback) + app_tp_i2cs_callback 0x00012949 Thumb Code 56 app_tp_transfer.o(i.app_tp_i2cs_callback) + i.app_tp_init 0x0001298c Section 0 app_tp_transfer.o(i.app_tp_init) + i.app_tp_m_read 0x000129f0 Section 0 app_tp_transfer.o(i.app_tp_m_read) + app_tp_m_read 0x000129f1 Thumb Code 48 app_tp_transfer.o(i.app_tp_m_read) + i.app_tp_m_transfer_complate 0x00012a20 Section 0 app_tp_transfer.o(i.app_tp_m_transfer_complate) + i.app_tp_phone_analysis_data_custom 0x00012a28 Section 0 app_tp_for_custom_mi8se.o(i.app_tp_phone_analysis_data_custom) + i.app_tp_phone_clear_reset_on 0x00012e9c Section 0 app_tp_transfer.o(i.app_tp_phone_clear_reset_on) + i.app_tp_s_read 0x00012ea8 Section 0 app_tp_transfer.o(i.app_tp_s_read) + i.app_tp_s_write 0x00012eb8 Section 0 app_tp_transfer.o(i.app_tp_s_write) + i.app_tp_screen_analysis_int 0x00012ec8 Section 0 app_tp_for_custom_mi8se.o(i.app_tp_screen_analysis_int) + i.app_tp_screen_int_callback 0x00013178 Section 0 app_tp_transfer.o(i.app_tp_screen_int_callback) + app_tp_screen_int_callback 0x00013179 Thumb Code 8 app_tp_transfer.o(i.app_tp_screen_int_callback) + i.app_tp_screen_int_init 0x00013184 Section 0 app_tp_transfer.o(i.app_tp_screen_int_init) + app_tp_screen_int_init 0x00013185 Thumb Code 56 app_tp_transfer.o(i.app_tp_screen_int_init) + i.app_tp_screen_int_lvl_low 0x000131c4 Section 0 app_tp_transfer.o(i.app_tp_screen_int_lvl_low) + app_tp_screen_int_lvl_low 0x000131c5 Thumb Code 4 app_tp_transfer.o(i.app_tp_screen_int_lvl_low) + i.app_tp_transfer_phone 0x000131c8 Section 0 app_tp_transfer.o(i.app_tp_transfer_phone) + app_tp_transfer_phone 0x000131c9 Thumb Code 32 app_tp_transfer.o(i.app_tp_transfer_phone) + i.app_tp_transfer_screen_const 0x000131f4 Section 0 app_tp_transfer.o(i.app_tp_transfer_screen_const) + app_tp_transfer_screen_const 0x000131f5 Thumb Code 54 app_tp_transfer.o(i.app_tp_transfer_screen_const) + i.app_tp_transfer_screen_int 0x00013248 Section 0 app_tp_transfer.o(i.app_tp_transfer_screen_int) + i.app_tp_transfer_screen_start 0x0001331c Section 0 app_tp_transfer.o(i.app_tp_transfer_screen_start) + i.board_Init 0x00013340 Section 0 board.o(i.board_Init) + i.calc_framebuffer_setting 0x00013364 Section 0 hal_internal_vsync.o(i.calc_framebuffer_setting) + i.ceil 0x000137d8 Section 0 ceil.o(i.ceil) + i.check_mipi_rx_tx_video_info 0x000138a0 Section 0 hal_internal_vsync.o(i.check_mipi_rx_tx_video_info) + check_mipi_rx_tx_video_info 0x000138a1 Thumb Code 44 hal_internal_vsync.o(i.check_mipi_rx_tx_video_info) + i.check_pkt_buf_rev 0x000138cc Section 0 hal_internal_vsync.o(i.check_pkt_buf_rev) + check_pkt_buf_rev 0x000138cd Thumb Code 90 hal_internal_vsync.o(i.check_pkt_buf_rev) + i.dcs_packet_fifo_alloc 0x00013960 Section 0 dcs_packet_fifo.o(i.dcs_packet_fifo_alloc) + i.dcs_packet_fifo_init 0x000139b8 Section 0 dcs_packet_fifo.o(i.dcs_packet_fifo_init) + i.dcs_packet_free_fifo_header 0x000139d0 Section 0 dcs_packet_fifo.o(i.dcs_packet_free_fifo_header) + i.dcs_packet_get_fifo_header 0x00013a14 Section 0 dcs_packet_fifo.o(i.dcs_packet_get_fifo_header) + i.dcs_sw_filter 0x00013a38 Section 0 hal_internal_vsync.o(i.dcs_sw_filter) + dcs_sw_filter 0x00013a39 Thumb Code 24 hal_internal_vsync.o(i.dcs_sw_filter) + i.delayMs 0x00013a54 Section 0 tau_delay.o(i.delayMs) + i.delayUs 0x00013a6c Section 0 tau_delay.o(i.delayUs) + i.drv_ap_rst_trig_edge_detect 0x00013a90 Section 0 drv_sys_cfg.o(i.drv_ap_rst_trig_edge_detect) + i.drv_chip_info_get_info 0x00013ac8 Section 0 drv_chip_info.o(i.drv_chip_info_get_info) + i.drv_chip_info_init 0x00013ad4 Section 0 drv_chip_info.o(i.drv_chip_info_init) + i.drv_chip_rx_info_check 0x00013b14 Section 0 drv_chip_info.o(i.drv_chip_rx_info_check) + i.drv_chip_rx_init_done 0x00013bdc Section 0 drv_chip_info.o(i.drv_chip_rx_init_done) + i.drv_common_enable_systick 0x00013bf0 Section 0 drv_common.o(i.drv_common_enable_systick) + i.drv_common_system_init 0x00013c48 Section 0 drv_common.o(i.drv_common_system_init) + i.drv_crgu_config_reset_modules 0x00013c50 Section 0 drv_crgu.o(i.drv_crgu_config_reset_modules) + i.drv_crgu_set_ahb_pre_div 0x00013c60 Section 0 drv_crgu.o(i.drv_crgu_set_ahb_pre_div) + i.drv_crgu_set_ahb_src 0x00013c74 Section 0 drv_crgu.o(i.drv_crgu_set_ahb_src) + i.drv_crgu_set_clock 0x00013c88 Section 0 drv_crgu.o(i.drv_crgu_set_clock) + i.drv_crgu_set_dpi_mux_src 0x00013ca8 Section 0 drv_crgu.o(i.drv_crgu_set_dpi_mux_src) + i.drv_crgu_set_dpi_pre_div 0x00013cbc Section 0 drv_crgu.o(i.drv_crgu_set_dpi_pre_div) + i.drv_crgu_set_dpi_pre_src 0x00013cd4 Section 0 drv_crgu.o(i.drv_crgu_set_dpi_pre_src) + i.drv_crgu_set_dsc_core_div 0x00013ce8 Section 0 drv_crgu.o(i.drv_crgu_set_dsc_core_div) + i.drv_crgu_set_dsco_src 0x00013cfc Section 0 drv_crgu.o(i.drv_crgu_set_dsco_src) + i.drv_crgu_set_dsco_src_div 0x00013d10 Section 0 drv_crgu.o(i.drv_crgu_set_dsco_src_div) + i.drv_crgu_set_fb_div 0x00013d24 Section 0 drv_crgu.o(i.drv_crgu_set_fb_div) + i.drv_crgu_set_fb_src 0x00013d38 Section 0 drv_crgu.o(i.drv_crgu_set_fb_src) + i.drv_crgu_set_lcdc_div 0x00013d4c Section 0 drv_crgu.o(i.drv_crgu_set_lcdc_div) + i.drv_crgu_set_lcdc_src 0x00013d60 Section 0 drv_crgu.o(i.drv_crgu_set_lcdc_src) + i.drv_crgu_set_mipi_cfg_src 0x00013d74 Section 0 drv_crgu.o(i.drv_crgu_set_mipi_cfg_src) + i.drv_crgu_set_mipi_ref_src 0x00013d88 Section 0 drv_crgu.o(i.drv_crgu_set_mipi_ref_src) + i.drv_crgu_set_reset 0x00013da0 Section 0 drv_crgu.o(i.drv_crgu_set_reset) + i.drv_crgu_set_rxbr_div 0x00013db8 Section 0 drv_crgu.o(i.drv_crgu_set_rxbr_div) + i.drv_crgu_set_rxbr_src 0x00013dcc Section 0 drv_crgu.o(i.drv_crgu_set_rxbr_src) + i.drv_crgu_set_vidc_src 0x00013de0 Section 0 drv_crgu.o(i.drv_crgu_set_vidc_src) + i.drv_dma_clear_flag 0x00013df4 Section 0 drv_dma.o(i.drv_dma_clear_flag) + i.drv_dma_create_handle 0x00013e0c Section 0 drv_dma.o(i.drv_dma_create_handle) + i.drv_dma_disenable_channel 0x00013e28 Section 0 drv_dma.o(i.drv_dma_disenable_channel) + i.drv_dma_enable_channel 0x00013e38 Section 0 drv_dma.o(i.drv_dma_enable_channel) + i.drv_dma_enable_channel_interrupts 0x00013e48 Section 0 drv_dma.o(i.drv_dma_enable_channel_interrupts) + i.drv_dma_get_channel_flag 0x00013e6c Section 0 drv_dma.o(i.drv_dma_get_channel_flag) + i.drv_dma_irq_handler 0x00013e78 Section 0 drv_dma.o(i.drv_dma_irq_handler) + i.drv_dma_prepar_transfer 0x00013f08 Section 0 drv_dma.o(i.drv_dma_prepar_transfer) + i.drv_dma_set_burst 0x00013f1a Section 0 drv_dma.o(i.drv_dma_set_burst) + i.drv_dma_set_callback 0x00013f34 Section 0 drv_dma.o(i.drv_dma_set_callback) + i.drv_dma_set_transfer 0x00013f3c Section 0 drv_dma.o(i.drv_dma_set_transfer) + i.drv_dsc_dec_convert_pps_rc_parameter 0x00013f80 Section 0 drv_dsc_dec.o(i.drv_dsc_dec_convert_pps_rc_parameter) + i.drv_dsc_dec_disable 0x00013fb6 Section 0 drv_dsc_dec.o(i.drv_dsc_dec_disable) + i.drv_dsc_dec_enable 0x00013fc4 Section 0 drv_dsc_dec.o(i.drv_dsc_dec_enable) + i.drv_dsc_dec_get_nslc 0x00014038 Section 0 drv_dsc_dec.o(i.drv_dsc_dec_get_nslc) + i.drv_dsc_dec_set_u8_pps 0x00014042 Section 0 drv_dsc_dec.o(i.drv_dsc_dec_set_u8_pps) + i.drv_dsi_rx_calc_ipi_tx_delay 0x0001406c Section 0 drv_dsi_rx.o(i.drv_dsi_rx_calc_ipi_tx_delay) + i.drv_dsi_rx_enable_irq 0x00014170 Section 0 drv_dsi_rx.o(i.drv_dsi_rx_enable_irq) + i.drv_dsi_rx_get_color_bpp 0x000141b0 Section 0 drv_dsi_rx.o(i.drv_dsi_rx_get_color_bpp) + drv_dsi_rx_get_color_bpp 0x000141b1 Thumb Code 62 drv_dsi_rx.o(i.drv_dsi_rx_get_color_bpp) + i.drv_dsi_rx_get_color_pcc 0x00014200 Section 0 drv_dsi_rx.o(i.drv_dsi_rx_get_color_pcc) + drv_dsi_rx_get_color_pcc 0x00014201 Thumb Code 24 drv_dsi_rx.o(i.drv_dsi_rx_get_color_pcc) + i.drv_dsi_rx_get_compression_en 0x0001421c Section 0 drv_dsi_rx.o(i.drv_dsi_rx_get_compression_en) + i.drv_dsi_rx_power_up 0x00014224 Section 0 drv_dsi_rx.o(i.drv_dsi_rx_power_up) + i.drv_dsi_rx_set_ctrl_cfg 0x00014232 Section 0 drv_dsi_rx.o(i.drv_dsi_rx_set_ctrl_cfg) + i.drv_dsi_rx_set_ddi_cfg 0x00014252 Section 0 drv_dsi_rx.o(i.drv_dsi_rx_set_ddi_cfg) + i.drv_dsi_rx_set_inten 0x00014262 Section 0 drv_dsi_rx.o(i.drv_dsi_rx_set_inten) + i.drv_dsi_rx_set_ipi_cfg 0x00014266 Section 0 drv_dsi_rx.o(i.drv_dsi_rx_set_ipi_cfg) + i.drv_dsi_rx_set_lane_swap 0x00014276 Section 0 drv_dsi_rx.o(i.drv_dsi_rx_set_lane_swap) + i.drv_dsi_rx_set_resp_cnt 0x000142bc Section 0 drv_dsi_rx.o(i.drv_dsi_rx_set_resp_cnt) + i.drv_dsi_rx_set_up_phy 0x000142e4 Section 0 drv_dsi_rx.o(i.drv_dsi_rx_set_up_phy) + i.drv_dsi_tx_command_header 0x000143e8 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_command_header) + i.drv_dsi_tx_command_mode_cfg 0x000143fc Section 0 drv_dsi_tx.o(i.drv_dsi_tx_command_mode_cfg) + i.drv_dsi_tx_command_put_payload 0x00014468 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_command_put_payload) + i.drv_dsi_tx_config_eotp 0x0001446c Section 0 drv_dsi_tx.o(i.drv_dsi_tx_config_eotp) + i.drv_dsi_tx_config_int 0x00014484 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_config_int) + i.drv_dsi_tx_dpi_lpcmd_time 0x0001448c Section 0 drv_dsi_tx.o(i.drv_dsi_tx_dpi_lpcmd_time) + i.drv_dsi_tx_dpi_mode 0x00014494 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_dpi_mode) + i.drv_dsi_tx_dpi_polarity 0x0001449e Section 0 drv_dsi_tx.o(i.drv_dsi_tx_dpi_polarity) + i.drv_dsi_tx_edpi_cmd_size 0x000144c2 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_edpi_cmd_size) + i.drv_dsi_tx_get_cmd_status 0x000144c6 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_get_cmd_status) + i.drv_dsi_tx_mode 0x000144ca Section 0 drv_dsi_tx.o(i.drv_dsi_tx_mode) + i.drv_dsi_tx_phy_clock_lane_auto_lp 0x000144ce Section 0 drv_dsi_tx.o(i.drv_dsi_tx_phy_clock_lane_auto_lp) + i.drv_dsi_tx_phy_clock_lane_req_hs 0x000144e6 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_phy_clock_lane_req_hs) + i.drv_dsi_tx_phy_lane_mode 0x00014500 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_phy_lane_mode) + i.drv_dsi_tx_phy_status_ready 0x0001450c Section 0 drv_dsi_tx.o(i.drv_dsi_tx_phy_status_ready) + i.drv_dsi_tx_phy_status_stopstate 0x00014570 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_phy_status_stopstate) + i.drv_dsi_tx_phy_test_setup 0x000145ae Section 0 drv_dsi_tx.o(i.drv_dsi_tx_phy_test_setup) + i.drv_dsi_tx_phy_time_cfg 0x000146e2 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_phy_time_cfg) + i.drv_dsi_tx_powerup 0x00014700 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_powerup) + i.drv_dsi_tx_response_mode 0x00014708 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_response_mode) + i.drv_dsi_tx_set_bta_ack 0x00014724 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_set_bta_ack) + i.drv_dsi_tx_set_esc_div 0x0001473c Section 0 drv_dsi_tx.o(i.drv_dsi_tx_set_esc_div) + i.drv_dsi_tx_set_int 0x00014748 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_set_int) + i.drv_dsi_tx_set_time_out_div 0x00014788 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_set_time_out_div) + i.drv_dsi_tx_set_video_chunk 0x00014798 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_set_video_chunk) + i.drv_dsi_tx_set_video_timing 0x000147a0 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_set_video_timing) + i.drv_dsi_tx_shutdown 0x000147c2 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_shutdown) + i.drv_dsi_tx_timeout_cfg 0x000147ca Section 0 drv_dsi_tx.o(i.drv_dsi_tx_timeout_cfg) + i.drv_dsi_tx_video_mode_cfg 0x000147f0 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_video_mode_cfg) + i.drv_dsi_tx_video_mode_disable_hact_cmd 0x0001489a Section 0 drv_dsi_tx.o(i.drv_dsi_tx_video_mode_disable_hact_cmd) + i.drv_dsi_tx_video_mode_set_lp_cmd 0x000148b0 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_video_mode_set_lp_cmd) + i.drv_efuse_enter_inactive 0x000148c8 Section 0 drv_efuse.o(i.drv_efuse_enter_inactive) + i.drv_efuse_int_enable 0x000148e8 Section 0 drv_efuse.o(i.drv_efuse_int_enable) + i.drv_efuse_read 0x000148f4 Section 0 drv_efuse.o(i.drv_efuse_read) + i.drv_efuse_read_req 0x00014926 Section 0 drv_efuse.o(i.drv_efuse_read_req) + i.drv_fls_gpio_connect 0x00014940 Section 0 drv_fls.o(i.drv_fls_gpio_connect) + i.drv_fls_gpio_disconnect 0x0001495c Section 0 drv_fls.o(i.drv_fls_gpio_disconnect) + i.drv_gpio_get_input_data 0x0001497c Section 0 drv_gpio.o(i.drv_gpio_get_input_data) + i.drv_gpio_register_callback 0x00014994 Section 0 drv_gpio.o(i.drv_gpio_register_callback) + i.drv_gpio_set_int 0x000149a8 Section 0 drv_gpio.o(i.drv_gpio_set_int) + i.drv_gpio_set_ioe 0x000149f8 Section 0 drv_gpio.o(i.drv_gpio_set_ioe) + i.drv_gpio_set_mode0 0x00014a18 Section 0 drv_gpio.o(i.drv_gpio_set_mode0) + i.drv_gpio_set_mode1 0x00014a28 Section 0 drv_gpio.o(i.drv_gpio_set_mode1) + i.drv_gpio_set_mode2 0x00014a38 Section 0 drv_gpio.o(i.drv_gpio_set_mode2) + i.drv_gpio_set_mode3 0x00014a48 Section 0 drv_gpio.o(i.drv_gpio_set_mode3) + i.drv_gpio_set_output_data 0x00014a58 Section 0 hal_gpio.o(i.drv_gpio_set_output_data) + drv_gpio_set_output_data 0x00014a59 Thumb Code 26 hal_gpio.o(i.drv_gpio_set_output_data) + i.drv_gpio_set_pull_state 0x00014a78 Section 0 drv_gpio.o(i.drv_gpio_set_pull_state) + i.drv_i2c0_set_callback 0x00014ba8 Section 0 drv_i2c_slave.o(i.drv_i2c0_set_callback) + i.drv_i2c1_set_callback 0x00014bb4 Section 0 drv_i2c_master.o(i.drv_i2c1_set_callback) + i.drv_i2c_dma_callback 0x00014bc0 Section 0 drv_i2c_dma.o(i.drv_i2c_dma_callback) + drv_i2c_dma_callback 0x00014bc1 Thumb Code 40 drv_i2c_dma.o(i.drv_i2c_dma_callback) + i.drv_i2c_dma_init 0x00014bf4 Section 0 drv_i2c_dma.o(i.drv_i2c_dma_init) + i.drv_i2c_enable_rx_dma 0x00014ca0 Section 0 drv_i2c_dma.o(i.drv_i2c_enable_rx_dma) + i.drv_i2c_enable_tx_dma 0x00014cba Section 0 drv_i2c_dma.o(i.drv_i2c_enable_tx_dma) + i.drv_i2c_m_clear_it_pending_bit 0x00014cd4 Section 0 drv_i2c_master.o(i.drv_i2c_m_clear_it_pending_bit) + i.drv_i2c_m_enable 0x00014d34 Section 0 drv_i2c_master.o(i.drv_i2c_m_enable) + i.drv_i2c_m_enable_intr 0x00014d44 Section 0 drv_i2c_master.o(i.drv_i2c_m_enable_intr) + i.drv_i2c_master_init 0x00014d7c Section 0 drv_i2c_master.o(i.drv_i2c_master_init) + i.drv_i2c_master_read_dma 0x00014e08 Section 0 drv_i2c_dma.o(i.drv_i2c_master_read_dma) + i.drv_i2c_master_write_read_cmd 0x00014e64 Section 0 drv_i2c_dma.o(i.drv_i2c_master_write_read_cmd) + drv_i2c_master_write_read_cmd 0x00014e65 Thumb Code 46 drv_i2c_dma.o(i.drv_i2c_master_write_read_cmd) + i.drv_i2c_s_clear_it_pending_bit 0x00014e92 Section 0 drv_i2c_slave.o(i.drv_i2c_s_clear_it_pending_bit) + i.drv_i2c_s_config_intr 0x00014ed4 Section 0 drv_i2c_slave.o(i.drv_i2c_s_config_intr) + i.drv_i2c_s_enable 0x00014ed8 Section 0 drv_i2c_slave.o(i.drv_i2c_s_enable) + i.drv_i2c_s_get_fifo_status 0x00014ee0 Section 0 drv_i2c_slave.o(i.drv_i2c_s_get_fifo_status) + i.drv_i2c_s_set_intr 0x00014ef4 Section 0 drv_i2c_slave.o(i.drv_i2c_s_set_intr) + i.drv_i2c_s_write_data 0x00014f44 Section 0 drv_i2c_slave.o(i.drv_i2c_s_write_data) + i.drv_i2c_set_dma_irq_callback 0x00014f60 Section 0 drv_i2c_dma.o(i.drv_i2c_set_dma_irq_callback) + i.drv_i2c_slave_init 0x00014fb8 Section 0 drv_i2c_slave.o(i.drv_i2c_slave_init) + i.drv_i2c_slave_write_dma 0x00014fec Section 0 drv_i2c_dma.o(i.drv_i2c_slave_write_dma) + i.drv_lcdc_config_bypass 0x00015004 Section 0 drv_lcdc.o(i.drv_lcdc_config_bypass) + i.drv_lcdc_config_ccm 0x0001501c Section 0 drv_lcdc.o(i.drv_lcdc_config_ccm) + i.drv_lcdc_config_disp_mode 0x0001504c Section 0 drv_lcdc.o(i.drv_lcdc_config_disp_mode) + i.drv_lcdc_config_dpi_polarity 0x00015062 Section 0 drv_lcdc.o(i.drv_lcdc_config_dpi_polarity) + i.drv_lcdc_config_dpi_timing 0x00015086 Section 0 drv_lcdc.o(i.drv_lcdc_config_dpi_timing) + i.drv_lcdc_config_edpi_mode 0x000150ac Section 0 drv_lcdc.o(i.drv_lcdc_config_edpi_mode) + i.drv_lcdc_config_endianness 0x000150c2 Section 0 drv_lcdc.o(i.drv_lcdc_config_endianness) + i.drv_lcdc_config_input_size 0x000150d8 Section 0 drv_lcdc.o(i.drv_lcdc_config_input_size) + i.drv_lcdc_config_int 0x000150e4 Section 0 drv_lcdc.o(i.drv_lcdc_config_int) + i.drv_lcdc_config_int_single 0x00015102 Section 0 drv_lcdc.o(i.drv_lcdc_config_int_single) + i.drv_lcdc_config_overwrite 0x00015124 Section 0 drv_lcdc.o(i.drv_lcdc_config_overwrite) + i.drv_lcdc_config_overwrite_rgb 0x00015146 Section 0 drv_lcdc.o(i.drv_lcdc_config_overwrite_rgb) + i.drv_lcdc_config_partial_display_area 0x00015152 Section 0 drv_lcdc.o(i.drv_lcdc_config_partial_display_area) + i.drv_lcdc_config_partial_display_enable 0x0001516c Section 0 drv_lcdc.o(i.drv_lcdc_config_partial_display_enable) + i.drv_lcdc_config_scale_up_coef 0x0001518e Section 0 drv_lcdc.o(i.drv_lcdc_config_scale_up_coef) + i.drv_lcdc_config_scale_up_step 0x000151a8 Section 0 drv_lcdc.o(i.drv_lcdc_config_scale_up_step) + i.drv_lcdc_config_src_parameter 0x000151b4 Section 0 drv_lcdc.o(i.drv_lcdc_config_src_parameter) + i.drv_lcdc_config_thresh 0x00015200 Section 0 drv_lcdc.o(i.drv_lcdc_config_thresh) + i.drv_lcdc_ctrl_flow 0x00015206 Section 0 drv_lcdc.o(i.drv_lcdc_ctrl_flow) + i.drv_lcdc_enable_shadow_reg 0x00015218 Section 0 drv_lcdc.o(i.drv_lcdc_enable_shadow_reg) + i.drv_lcdc_set_int 0x00015238 Section 0 drv_lcdc.o(i.drv_lcdc_set_int) + i.drv_lcdc_set_prefetch 0x00015278 Section 0 drv_lcdc.o(i.drv_lcdc_set_prefetch) + i.drv_lcdc_set_video_hw_mode 0x00015290 Section 0 drv_lcdc.o(i.drv_lcdc_set_video_hw_mode) + i.drv_lcdc_start 0x000152a4 Section 0 drv_lcdc.o(i.drv_lcdc_start) + i.drv_memc_clear_status 0x000152c4 Section 0 drv_memc.o(i.drv_memc_clear_status) + i.drv_memc_enable_irq 0x000152d0 Section 0 drv_memc.o(i.drv_memc_enable_irq) + i.drv_memc_gen_a_tear_signal 0x00015310 Section 0 drv_memc.o(i.drv_memc_gen_a_tear_signal) + i.drv_memc_get_status 0x0001531c Section 0 drv_memc.o(i.drv_memc_get_status) + i.drv_memc_rate_transfer_sel 0x0001532e Section 0 drv_memc.o(i.drv_memc_rate_transfer_sel) + i.drv_memc_sel_vsync 0x0001533e Section 0 drv_memc.o(i.drv_memc_sel_vsync) + i.drv_memc_set_active_height 0x0001534c Section 0 drv_memc.o(i.drv_memc_set_active_height) + i.drv_memc_set_data_mode 0x00015360 Section 0 drv_memc.o(i.drv_memc_set_data_mode) + i.drv_memc_set_double_buffer 0x0001536c Section 0 drv_memc.o(i.drv_memc_set_double_buffer) + i.drv_memc_set_double_buffer_reverse 0x0001537c Section 0 drv_memc.o(i.drv_memc_set_double_buffer_reverse) + i.drv_memc_set_fs_en_conditions 0x0001538e Section 0 drv_memc.o(i.drv_memc_set_fs_en_conditions) + i.drv_memc_set_inten 0x0001539e Section 0 drv_memc.o(i.drv_memc_set_inten) + i.drv_memc_set_lcdc_st_conditions 0x000153b4 Section 0 drv_memc.o(i.drv_memc_set_lcdc_st_conditions) + i.drv_memc_set_ltpo_mode 0x000153cc Section 0 drv_memc.o(i.drv_memc_set_ltpo_mode) + i.drv_memc_set_tear_mode 0x000153e6 Section 0 drv_memc.o(i.drv_memc_set_tear_mode) + i.drv_memc_set_tear_waveform 0x000153f4 Section 0 drv_memc.o(i.drv_memc_set_tear_waveform) + i.drv_memc_set_vidc_sync_cnt 0x0001541c Section 0 drv_memc.o(i.drv_memc_set_vidc_sync_cnt) + i.drv_param_init_get_ccm 0x0001542c Section 0 drv_param_init.o(i.drv_param_init_get_ccm) + i.drv_param_init_get_scld_filter_h 0x00015434 Section 0 drv_param_init.o(i.drv_param_init_get_scld_filter_h) + i.drv_param_init_get_scld_filter_v 0x00015448 Section 0 drv_param_init.o(i.drv_param_init_get_scld_filter_v) + i.drv_param_init_get_sclu_filter 0x0001545c Section 0 drv_param_init.o(i.drv_param_init_get_sclu_filter) + i.drv_param_init_set_scld_filter 0x00015464 Section 0 drv_param_init.o(i.drv_param_init_set_scld_filter) + i.drv_param_p2r_filter_init 0x000154c8 Section 0 drv_param_init.o(i.drv_param_p2r_filter_init) + i.drv_phy_enable_calibration 0x000154ec Section 0 drv_phy_common.o(i.drv_phy_enable_calibration) + i.drv_phy_get_calibration 0x000154fc Section 0 drv_phy_common.o(i.drv_phy_get_calibration) + i.drv_phy_get_pll_para 0x00015538 Section 0 drv_phy_common.o(i.drv_phy_get_pll_para) + i.drv_phy_get_rate_para 0x00015598 Section 0 drv_phy_common.o(i.drv_phy_get_rate_para) + i.drv_phy_test_clear 0x000155ec Section 0 drv_phy_common.o(i.drv_phy_test_clear) + i.drv_phy_test_lock 0x000155fc Section 0 drv_phy_common.o(i.drv_phy_test_lock) + i.drv_phy_test_write_1_byte 0x00015614 Section 0 drv_phy_common.o(i.drv_phy_test_write_1_byte) + i.drv_phy_test_write_2_byte 0x00015634 Section 0 drv_phy_common.o(i.drv_phy_test_write_2_byte) + i.drv_phy_test_write_code 0x0001565a Section 0 drv_phy_common.o(i.drv_phy_test_write_code) + i.drv_phy_test_write_data 0x00015678 Section 0 drv_phy_common.o(i.drv_phy_test_write_data) + drv_phy_test_write_data 0x00015679 Thumb Code 32 drv_phy_common.o(i.drv_phy_test_write_data) + i.drv_pwm_out_enable 0x00015698 Section 0 drv_pwm.o(i.drv_pwm_out_enable) + i.drv_pwm_out_get_sync_flag 0x000156b8 Section 0 drv_pwm.o(i.drv_pwm_out_get_sync_flag) + i.drv_pwm_out_set_control 0x000156c8 Section 0 drv_pwm.o(i.drv_pwm_out_set_control) + i.drv_pwm_out_set_period 0x000156d4 Section 0 drv_pwm.o(i.drv_pwm_out_set_period) + i.drv_pwm_out_set_sync_mode 0x000156e0 Section 0 drv_pwm.o(i.drv_pwm_out_set_sync_mode) + i.drv_pwm_out_set_threshold 0x00015700 Section 0 drv_pwm.o(i.drv_pwm_out_set_threshold) + i.drv_pwr_set_pvd_mode 0x0001570c Section 0 drv_pwr.o(i.drv_pwr_set_pvd_mode) + i.drv_pwr_set_system_clk_src 0x00015724 Section 0 drv_pwr.o(i.drv_pwr_set_system_clk_src) + i.drv_rx_phy_test_clear 0x0001575c Section 0 drv_dsi_rx.o(i.drv_rx_phy_test_clear) + drv_rx_phy_test_clear 0x0001575d Thumb Code 12 drv_dsi_rx.o(i.drv_rx_phy_test_clear) + i.drv_rx_phy_test_lock 0x00015768 Section 0 drv_dsi_rx.o(i.drv_rx_phy_test_lock) + drv_rx_phy_test_lock 0x00015769 Thumb Code 16 drv_dsi_rx.o(i.drv_rx_phy_test_lock) + i.drv_rx_phy_test_write_1_byte 0x00015778 Section 0 drv_dsi_rx.o(i.drv_rx_phy_test_write_1_byte) + drv_rx_phy_test_write_1_byte 0x00015779 Thumb Code 20 drv_dsi_rx.o(i.drv_rx_phy_test_write_1_byte) + i.drv_rx_phy_test_write_2_byte 0x0001578c Section 0 drv_dsi_rx.o(i.drv_rx_phy_test_write_2_byte) + drv_rx_phy_test_write_2_byte 0x0001578d Thumb Code 22 drv_dsi_rx.o(i.drv_rx_phy_test_write_2_byte) + i.drv_rxbr_clear_pkt_buffer 0x000157a2 Section 0 drv_rxbr.o(i.drv_rxbr_clear_pkt_buffer) + i.drv_rxbr_clear_status0 0x000157ac Section 0 drv_rxbr.o(i.drv_rxbr_clear_status0) + i.drv_rxbr_enable_irq 0x000157b0 Section 0 drv_rxbr.o(i.drv_rxbr_enable_irq) + i.drv_rxbr_frame_drop_cfg 0x0001580c Section 0 drv_rxbr.o(i.drv_rxbr_frame_drop_cfg) + i.drv_rxbr_get_clk 0x00015820 Section 0 drv_rxbr.o(i.drv_rxbr_get_clk) + i.drv_rxbr_get_col_addr 0x00015884 Section 0 drv_rxbr.o(i.drv_rxbr_get_col_addr) + i.drv_rxbr_get_int_source 0x00015888 Section 0 hal_internal_vsync.o(i.drv_rxbr_get_int_source) + drv_rxbr_get_int_source 0x00015889 Thumb Code 18 hal_internal_vsync.o(i.drv_rxbr_get_int_source) + i.drv_rxbr_get_page_addr 0x0001589a Section 0 drv_rxbr.o(i.drv_rxbr_get_page_addr) + i.drv_rxbr_get_status0 0x0001589e Section 0 hal_internal_vsync.o(i.drv_rxbr_get_status0) + drv_rxbr_get_status0 0x0001589f Thumb Code 18 hal_internal_vsync.o(i.drv_rxbr_get_status0) + i.drv_rxbr_hline_rcv0_cfg 0x000158b0 Section 0 drv_rxbr.o(i.drv_rxbr_hline_rcv0_cfg) + i.drv_rxbr_hline_rcv_cfg 0x000158bc Section 0 drv_rxbr.o(i.drv_rxbr_hline_rcv_cfg) + i.drv_rxbr_register_irq0_callback 0x000158c4 Section 0 drv_rxbr.o(i.drv_rxbr_register_irq0_callback) + i.drv_rxbr_register_irq1_callback 0x000158d0 Section 0 drv_rxbr.o(i.drv_rxbr_register_irq1_callback) + i.drv_rxbr_set_cmd_filter 0x000158dc Section 0 drv_rxbr.o(i.drv_rxbr_set_cmd_filter) + i.drv_rxbr_set_color_format 0x000159a8 Section 0 drv_rxbr.o(i.drv_rxbr_set_color_format) + i.drv_rxbr_set_inten 0x000159bc Section 0 drv_rxbr.o(i.drv_rxbr_set_inten) + i.drv_rxbr_set_ltpo_drop_th 0x000159d0 Section 0 drv_rxbr.o(i.drv_rxbr_set_ltpo_drop_th) + i.drv_rxbr_set_usr_cfg 0x000159e0 Section 0 drv_rxbr.o(i.drv_rxbr_set_usr_cfg) + i.drv_rxbr_set_usr_col 0x00015a06 Section 0 drv_rxbr.o(i.drv_rxbr_set_usr_col) + i.drv_rxbr_set_usr_row 0x00015a0e Section 0 drv_rxbr.o(i.drv_rxbr_set_usr_row) + i.drv_spi_m_read_data 0x00015a18 Section 0 drv_spi_master.o(i.drv_spi_m_read_data) + i.drv_swire_set_int 0x00015a38 Section 0 drv_swire.o(i.drv_swire_set_int) + i.drv_sys_cfg_clear_all_int 0x00015a8c Section 0 drv_sys_cfg.o(i.drv_sys_cfg_clear_all_int) + i.drv_sys_cfg_clear_pending 0x00015a98 Section 0 drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) + i.drv_sys_cfg_sel_ap_rst_lvl_trig 0x00015ac0 Section 0 drv_sys_cfg.o(i.drv_sys_cfg_sel_ap_rst_lvl_trig) + i.drv_sys_cfg_sel_gpio_group 0x00015ad8 Section 0 drv_sys_cfg.o(i.drv_sys_cfg_sel_gpio_group) + i.drv_sys_cfg_sel_int_trig 0x00015afc Section 0 drv_sys_cfg.o(i.drv_sys_cfg_sel_int_trig) + i.drv_sys_cfg_set_dma_rx_req 0x00015b20 Section 0 drv_sys_cfg.o(i.drv_sys_cfg_set_dma_rx_req) + i.drv_sys_cfg_set_dma_tx_req 0x00015b30 Section 0 drv_sys_cfg.o(i.drv_sys_cfg_set_dma_tx_req) + i.drv_sys_cfg_set_int 0x00015b40 Section 0 drv_sys_cfg.o(i.drv_sys_cfg_set_int) + i.drv_timer_clear_status_flags 0x00015b64 Section 0 drv_timer.o(i.drv_timer_clear_status_flags) + drv_timer_clear_status_flags 0x00015b65 Thumb Code 26 drv_timer.o(i.drv_timer_clear_status_flags) + i.drv_timer_enable 0x00015b7e Section 0 drv_timer.o(i.drv_timer_enable) + i.drv_timer_get_instance 0x00015ba0 Section 0 drv_timer.o(i.drv_timer_get_instance) + i.drv_timer_get_prescaler 0x00015bb0 Section 0 drv_timer.o(i.drv_timer_get_prescaler) + i.drv_timer_handle_interrupt 0x00015bc0 Section 0 drv_timer.o(i.drv_timer_handle_interrupt) + drv_timer_handle_interrupt 0x00015bc1 Thumb Code 62 drv_timer.o(i.drv_timer_handle_interrupt) + i.drv_timer_register_callback 0x00015c04 Section 0 drv_timer.o(i.drv_timer_register_callback) + i.drv_timer_set_compare_val 0x00015c18 Section 0 drv_timer.o(i.drv_timer_set_compare_val) + i.drv_timer_set_int 0x00015c28 Section 0 drv_timer.o(i.drv_timer_set_int) + i.drv_timer_set_prescaler 0x00015c7c Section 0 drv_timer.o(i.drv_timer_set_prescaler) + i.drv_tx_phy_test_clear 0x00015ca4 Section 0 drv_dsi_tx.o(i.drv_tx_phy_test_clear) + drv_tx_phy_test_clear 0x00015ca5 Thumb Code 10 drv_dsi_tx.o(i.drv_tx_phy_test_clear) + i.drv_tx_phy_test_enter 0x00015cae Section 0 drv_dsi_tx.o(i.drv_tx_phy_test_enter) + i.drv_tx_phy_test_exit 0x00015cca Section 0 drv_dsi_tx.o(i.drv_tx_phy_test_exit) + i.drv_tx_phy_test_write_1_byte 0x00015ce6 Section 0 drv_dsi_tx.o(i.drv_tx_phy_test_write_1_byte) + drv_tx_phy_test_write_1_byte 0x00015ce7 Thumb Code 18 drv_dsi_tx.o(i.drv_tx_phy_test_write_1_byte) + i.drv_tx_phy_test_write_2_byte 0x00015cf8 Section 0 drv_dsi_tx.o(i.drv_tx_phy_test_write_2_byte) + drv_tx_phy_test_write_2_byte 0x00015cf9 Thumb Code 20 drv_dsi_tx.o(i.drv_tx_phy_test_write_2_byte) + i.drv_tx_phy_test_write_code 0x00015d0c Section 0 drv_dsi_tx.o(i.drv_tx_phy_test_write_code) + drv_tx_phy_test_write_code 0x00015d0d Thumb Code 16 drv_dsi_tx.o(i.drv_tx_phy_test_write_code) + i.drv_vidc_clear_irq 0x00015d1c Section 0 drv_vidc.o(i.drv_vidc_clear_irq) + i.drv_vidc_enable 0x00015d24 Section 0 drv_vidc.o(i.drv_vidc_enable) + i.drv_vidc_enable_irq 0x00015d3c Section 0 drv_vidc.o(i.drv_vidc_enable_irq) + i.drv_vidc_get_irq_status 0x00015d7c Section 0 drv_vidc.o(i.drv_vidc_get_irq_status) + i.drv_vidc_init_module_enable 0x00015d90 Section 0 drv_vidc.o(i.drv_vidc_init_module_enable) + i.drv_vidc_register_callback 0x00015db8 Section 0 drv_vidc.o(i.drv_vidc_register_callback) + i.drv_vidc_reset 0x00015dc4 Section 0 drv_vidc.o(i.drv_vidc_reset) + i.drv_vidc_set_dst_parameter 0x00015dca Section 0 drv_vidc.o(i.drv_vidc_set_dst_parameter) + i.drv_vidc_set_irqen 0x00015e06 Section 0 drv_vidc.o(i.drv_vidc_set_irqen) + i.drv_vidc_set_mirror 0x00015e1a Section 0 drv_vidc.o(i.drv_vidc_set_mirror) + i.drv_vidc_set_p2r_hcoef0 0x00015e2a Section 0 drv_vidc.o(i.drv_vidc_set_p2r_hcoef0) + i.drv_vidc_set_p2r_hinitb 0x00015e32 Section 0 drv_vidc.o(i.drv_vidc_set_p2r_hinitb) + i.drv_vidc_set_p2r_hinitr 0x00015e58 Section 0 drv_vidc.o(i.drv_vidc_set_p2r_hinitr) + i.drv_vidc_set_pentile_swap 0x00015e80 Section 0 drv_vidc.o(i.drv_vidc_set_pentile_swap) + i.drv_vidc_set_pu_ctrl 0x00015e98 Section 0 drv_vidc.o(i.drv_vidc_set_pu_ctrl) + i.drv_vidc_set_rotation 0x00015ea2 Section 0 drv_vidc.o(i.drv_vidc_set_rotation) + i.drv_vidc_set_scld_hcoef0 0x00015eb2 Section 0 drv_vidc.o(i.drv_vidc_set_scld_hcoef0) + i.drv_vidc_set_scld_hcoef1 0x00015ebc Section 0 drv_vidc.o(i.drv_vidc_set_scld_hcoef1) + i.drv_vidc_set_scld_step 0x00015ec6 Section 0 drv_vidc.o(i.drv_vidc_set_scld_step) + i.drv_vidc_set_scld_vcoef0 0x00015ed8 Section 0 drv_vidc.o(i.drv_vidc_set_scld_vcoef0) + i.drv_vidc_set_scld_vcoef1 0x00015ee2 Section 0 drv_vidc.o(i.drv_vidc_set_scld_vcoef1) + i.drv_vidc_set_src_parameter 0x00015eec Section 0 drv_vidc.o(i.drv_vidc_set_src_parameter) + i.drv_wdg_clear_counter 0x00015f04 Section 0 drv_wdg.o(i.drv_wdg_clear_counter) + i.drv_wdg_clear_edge_flag 0x00015f14 Section 0 drv_wdg.o(i.drv_wdg_clear_edge_flag) + drv_wdg_clear_edge_flag 0x00015f15 Thumb Code 12 drv_wdg.o(i.drv_wdg_clear_edge_flag) + i.drv_wdg_read_edge_flag 0x00015f24 Section 0 drv_wdg.o(i.drv_wdg_read_edge_flag) + drv_wdg_read_edge_flag 0x00015f25 Thumb Code 10 drv_wdg.o(i.drv_wdg_read_edge_flag) + i.drv_wdg_set_int 0x00015f34 Section 0 drv_wdg.o(i.drv_wdg_set_int) + i.fls_clr_interrupt_flag 0x00015f74 Section 0 drv_fls.o(i.fls_clr_interrupt_flag) + i.fputc 0x00015f7e Section 0 tau_log.o(i.fputc) + i.hal_dsi_rx_ctrl_create_handle 0x00015f94 Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_create_handle) + i.hal_dsi_rx_ctrl_dsc_async_handler 0x00015fc8 Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_dsc_async_handler) + i.hal_dsi_rx_ctrl_gen_a_tear_signal 0x0001604c Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_gen_a_tear_signal) + i.hal_dsi_rx_ctrl_init 0x00016074 Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init) + i.hal_dsi_rx_ctrl_init_clk 0x000160d4 Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_clk) + hal_dsi_rx_ctrl_init_clk 0x000160d5 Thumb Code 332 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_clk) + i.hal_dsi_rx_ctrl_init_dsi_rx 0x00016278 Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_dsi_rx) + hal_dsi_rx_ctrl_init_dsi_rx 0x00016279 Thumb Code 184 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_dsi_rx) + i.hal_dsi_rx_ctrl_init_memc 0x00016350 Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_memc) + hal_dsi_rx_ctrl_init_memc 0x00016351 Thumb Code 334 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_memc) + i.hal_dsi_rx_ctrl_init_rxbr 0x000164a8 Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_rxbr) + hal_dsi_rx_ctrl_init_rxbr 0x000164a9 Thumb Code 294 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_rxbr) + i.hal_dsi_rx_ctrl_init_vidc 0x000165e0 Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_vidc) + hal_dsi_rx_ctrl_init_vidc 0x000165e1 Thumb Code 546 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_vidc) + i.hal_dsi_rx_ctrl_set_cus_scld_filter 0x00016810 Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_cus_scld_filter) + i.hal_dsi_rx_ctrl_set_cus_sync_line 0x0001687c Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_cus_sync_line) + i.hal_dsi_rx_ctrl_set_ipi_cfg 0x000168b0 Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_ipi_cfg) + hal_dsi_rx_ctrl_set_ipi_cfg 0x000168b1 Thumb Code 50 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_ipi_cfg) + i.hal_dsi_rx_ctrl_set_rxbr_clk 0x000168e8 Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_rxbr_clk) + hal_dsi_rx_ctrl_set_rxbr_clk 0x000168e9 Thumb Code 114 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_rxbr_clk) + i.hal_dsi_rx_ctrl_start 0x0001695c Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_start) + i.hal_dsi_rx_ctrl_toggle_resolution 0x00016998 Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_toggle_resolution) + i.hal_dsi_tx_calc_video_chunks 0x000169b8 Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_calc_video_chunks) + hal_dsi_tx_calc_video_chunks 0x000169b9 Thumb Code 384 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_calc_video_chunks) + i.hal_dsi_tx_config_params_for_lane_rate 0x00016b48 Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_config_params_for_lane_rate) + hal_dsi_tx_config_params_for_lane_rate 0x00016b49 Thumb Code 42 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_config_params_for_lane_rate) + i.hal_dsi_tx_count_lane_rate 0x00016b7c Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_count_lane_rate) + hal_dsi_tx_count_lane_rate 0x00016b7d Thumb Code 1022 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_count_lane_rate) + i.hal_dsi_tx_crop_pic 0x00016fcc Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_crop_pic) + i.hal_dsi_tx_ctrl_create_handle 0x00017060 Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_create_handle) + i.hal_dsi_tx_ctrl_enter_init_panel_mode 0x0001708c Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_enter_init_panel_mode) + i.hal_dsi_tx_ctrl_exit_init_panel_mode 0x000170d8 Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_exit_init_panel_mode) + i.hal_dsi_tx_ctrl_init 0x00017100 Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_init) + i.hal_dsi_tx_ctrl_init_clk 0x000171a4 Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_init_clk) + hal_dsi_tx_ctrl_init_clk 0x000171a5 Thumb Code 36 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_init_clk) + i.hal_dsi_tx_ctrl_panel_reset_pin 0x000171c8 Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_panel_reset_pin) + i.hal_dsi_tx_ctrl_set_overwrite_rgb 0x000171d4 Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_overwrite_rgb) + i.hal_dsi_tx_ctrl_set_partial_disp 0x000171e8 Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_partial_disp) + i.hal_dsi_tx_ctrl_set_partial_disp_area 0x000171f8 Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_partial_disp_area) + i.hal_dsi_tx_ctrl_start 0x0001721c Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_start) + i.hal_dsi_tx_ctrl_write_cmd 0x000172b8 Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_write_cmd) + i.hal_dsi_tx_init_data_mode 0x00017368 Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_data_mode) + hal_dsi_tx_init_data_mode 0x00017369 Thumb Code 58 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_data_mode) + i.hal_dsi_tx_init_dpi_cfg 0x000173ac Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_dpi_cfg) + hal_dsi_tx_init_dpi_cfg 0x000173ad Thumb Code 42 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_dpi_cfg) + i.hal_dsi_tx_init_interrupt 0x000173dc Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_interrupt) + hal_dsi_tx_init_interrupt 0x000173dd Thumb Code 28 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_interrupt) + i.hal_dsi_tx_init_phy_cfg 0x000173fc Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_phy_cfg) + hal_dsi_tx_init_phy_cfg 0x000173fd Thumb Code 28 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_phy_cfg) + i.hal_dsi_tx_init_remains 0x0001741c Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_remains) + hal_dsi_tx_init_remains 0x0001741d Thumb Code 142 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_remains) + i.hal_dsi_tx_init_video_mode 0x000174b0 Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_video_mode) + hal_dsi_tx_init_video_mode 0x000174b1 Thumb Code 82 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_video_mode) + i.hal_dsi_tx_send_cmd 0x00017508 Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_send_cmd) + hal_dsi_tx_send_cmd 0x00017509 Thumb Code 60 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_send_cmd) + i.hal_gpio_ctrl_eint 0x0001754c Section 0 hal_gpio.o(i.hal_gpio_ctrl_eint) + i.hal_gpio_get_input_data 0x00017564 Section 0 hal_gpio.o(i.hal_gpio_get_input_data) + i.hal_gpio_init_eint 0x00017578 Section 0 hal_gpio.o(i.hal_gpio_init_eint) + i.hal_gpio_init_output 0x000175b8 Section 0 hal_gpio.o(i.hal_gpio_init_output) + i.hal_gpio_reg_eint_cb 0x000175e0 Section 0 hal_gpio.o(i.hal_gpio_reg_eint_cb) + i.hal_gpio_set_mode 0x000175f8 Section 0 hal_gpio.o(i.hal_gpio_set_mode) + i.hal_gpio_set_output_data 0x00017658 Section 0 hal_gpio.o(i.hal_gpio_set_output_data) + i.hal_gpio_set_pull_state 0x00017660 Section 0 hal_gpio.o(i.hal_gpio_set_pull_state) + i.hal_i2c_m_dma_init 0x00017680 Section 0 hal_i2c_master.o(i.hal_i2c_m_dma_init) + i.hal_i2c_m_dma_read 0x000176ec Section 0 hal_i2c_master.o(i.hal_i2c_m_dma_read) + i.hal_i2c_m_transfer_complate 0x0001770c Section 0 hal_i2c_master.o(i.hal_i2c_m_transfer_complate) + i.hal_i2c_master_irq_callback 0x00017718 Section 0 hal_i2c_master.o(i.hal_i2c_master_irq_callback) + hal_i2c_master_irq_callback 0x00017719 Thumb Code 24 hal_i2c_master.o(i.hal_i2c_master_irq_callback) + i.hal_i2c_s_dma_user_callback 0x00017738 Section 0 hal_i2c_slave.o(i.hal_i2c_s_dma_user_callback) + hal_i2c_s_dma_user_callback 0x00017739 Thumb Code 12 hal_i2c_slave.o(i.hal_i2c_s_dma_user_callback) + i.hal_i2c_s_dma_write 0x00017748 Section 0 hal_i2c_slave.o(i.hal_i2c_s_dma_write) + i.hal_i2c_s_init 0x00017794 Section 0 hal_i2c_slave.o(i.hal_i2c_s_init) + i.hal_i2c_s_nonblocking_read 0x0001785c Section 0 hal_i2c_slave.o(i.hal_i2c_s_nonblocking_read) + i.hal_i2c_s_set_transfer 0x00017870 Section 0 hal_i2c_slave.o(i.hal_i2c_s_set_transfer) + i.hal_i2c_slave_irq_callback 0x0001787c Section 0 hal_i2c_slave.o(i.hal_i2c_slave_irq_callback) + hal_i2c_slave_irq_callback 0x0001787d Thumb Code 354 hal_i2c_slave.o(i.hal_i2c_slave_irq_callback) + i.hal_internal_init_memc 0x000179f0 Section 0 hal_internal_vsync.o(i.hal_internal_init_memc) + i.hal_internal_sync_get_fb_setting 0x00017aec Section 0 hal_internal_vsync.o(i.hal_internal_sync_get_fb_setting) + i.hal_internal_sync_get_hight_performan_mode 0x00017afc Section 0 hal_internal_vsync.o(i.hal_internal_sync_get_hight_performan_mode) + i.hal_internal_sync_input_resolution_change 0x00017b0c Section 0 hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change) + i.hal_internal_vsync_deinit 0x00017d38 Section 0 hal_internal_vsync.o(i.hal_internal_vsync_deinit) + i.hal_internal_vsync_get_sync_line 0x00017d60 Section 0 hal_internal_vsync.o(i.hal_internal_vsync_get_sync_line) + i.hal_internal_vsync_get_tear_mode 0x00017d78 Section 0 hal_internal_vsync.o(i.hal_internal_vsync_get_tear_mode) + i.hal_internal_vsync_init_rx 0x00017d84 Section 0 hal_internal_vsync.o(i.hal_internal_vsync_init_rx) + i.hal_internal_vsync_init_tx 0x00017e9c Section 0 hal_internal_vsync.o(i.hal_internal_vsync_init_tx) + i.hal_internal_vsync_set_auto_hw_filter 0x00017f4c Section 0 hal_internal_vsync.o(i.hal_internal_vsync_set_auto_hw_filter) + i.hal_internal_vsync_set_rx_state 0x00018068 Section 0 hal_internal_vsync.o(i.hal_internal_vsync_set_rx_state) + i.hal_internal_vsync_set_sync_line 0x0001807c Section 0 hal_internal_vsync.o(i.hal_internal_vsync_set_sync_line) + i.hal_internal_vsync_set_tx_state 0x000180a0 Section 0 hal_internal_vsync.o(i.hal_internal_vsync_set_tx_state) + i.hal_internal_vsync_update_lcdc_addr 0x00018120 Section 0 hal_internal_vsync.o(i.hal_internal_vsync_update_lcdc_addr) + i.hal_lcdc_config_ccm 0x00018150 Section 0 hal_dsi_tx_ctrl.o(i.hal_lcdc_config_ccm) + hal_lcdc_config_ccm 0x00018151 Thumb Code 30 hal_dsi_tx_ctrl.o(i.hal_lcdc_config_ccm) + i.hal_lcdc_config_remains 0x00018174 Section 0 hal_dsi_tx_ctrl.o(i.hal_lcdc_config_remains) + hal_lcdc_config_remains 0x00018175 Thumb Code 84 hal_dsi_tx_ctrl.o(i.hal_lcdc_config_remains) + i.hal_lcdc_config_rgb_to_pentile 0x000181cc Section 0 hal_dsi_tx_ctrl.o(i.hal_lcdc_config_rgb_to_pentile) + hal_lcdc_config_rgb_to_pentile 0x000181cd Thumb Code 14 hal_dsi_tx_ctrl.o(i.hal_lcdc_config_rgb_to_pentile) + i.hal_lcdc_config_upscaler 0x000181e0 Section 0 hal_dsi_tx_ctrl.o(i.hal_lcdc_config_upscaler) + hal_lcdc_config_upscaler 0x000181e1 Thumb Code 348 hal_dsi_tx_ctrl.o(i.hal_lcdc_config_upscaler) + i.hal_lcdc_init_cfg 0x00018344 Section 0 hal_dsi_tx_ctrl.o(i.hal_lcdc_init_cfg) + hal_lcdc_init_cfg 0x00018345 Thumb Code 78 hal_dsi_tx_ctrl.o(i.hal_lcdc_init_cfg) + i.hal_lcdc_init_clk 0x00018398 Section 0 hal_dsi_tx_ctrl.o(i.hal_lcdc_init_clk) + hal_lcdc_init_clk 0x00018399 Thumb Code 392 hal_dsi_tx_ctrl.o(i.hal_lcdc_init_clk) + i.hal_lcdc_init_interrupt 0x00018528 Section 0 hal_dsi_tx_ctrl.o(i.hal_lcdc_init_interrupt) + hal_lcdc_init_interrupt 0x00018529 Thumb Code 58 hal_dsi_tx_ctrl.o(i.hal_lcdc_init_interrupt) + i.hal_pwm_out_common_config 0x00018568 Section 0 hal_pwm.o(i.hal_pwm_out_common_config) + hal_pwm_out_common_config 0x00018569 Thumb Code 32 hal_pwm.o(i.hal_pwm_out_common_config) + i.hal_pwm_out_config_all 0x00018588 Section 0 hal_pwm.o(i.hal_pwm_out_config_all) + i.hal_pwm_out_convert_time 0x00018598 Section 0 hal_pwm.o(i.hal_pwm_out_convert_time) + hal_pwm_out_convert_time 0x00018599 Thumb Code 150 hal_pwm.o(i.hal_pwm_out_convert_time) + i.hal_pwm_out_init 0x0001863c Section 0 hal_pwm.o(i.hal_pwm_out_init) + i.hal_pwm_out_sel_io 0x00018648 Section 0 hal_pwm.o(i.hal_pwm_out_sel_io) + i.hal_pwm_out_sync_thr 0x00018670 Section 0 hal_pwm.o(i.hal_pwm_out_sync_thr) + i.hal_spi_m_clear_rxfifo 0x000186a4 Section 0 hal_spi_master.o(i.hal_spi_m_clear_rxfifo) + i.hal_system_enable_systick 0x000186b2 Section 0 hal_system.o(i.hal_system_enable_systick) + i.hal_system_init 0x000186bc Section 0 hal_system.o(i.hal_system_init) + i.hal_system_init_console 0x00018744 Section 0 hal_system.o(i.hal_system_init_console) + i.hal_system_set_phy_calibration 0x00018760 Section 0 hal_system.o(i.hal_system_set_phy_calibration) + i.hal_system_share_flash_mode 0x00018768 Section 0 hal_system.o(i.hal_system_share_flash_mode) + i.hal_timer_init 0x0001877c Section 0 hal_timer.o(i.hal_timer_init) + i.hal_timer_start 0x00018798 Section 0 hal_timer.o(i.hal_timer_start) + i.hal_uart_init 0x000187e0 Section 0 hal_uart.o(i.hal_uart_init) + i.hal_uart_transmit_blocking 0x0001886c Section 0 hal_uart.o(i.hal_uart_transmit_blocking) + i.handle_init 0x0001887c Section 0 irq_redirect .o(i.handle_init) + i.init_mipi_tx 0x0001898c Section 0 ap_demo.o(i.init_mipi_tx) + init_mipi_tx 0x0001898d Thumb Code 216 ap_demo.o(i.init_mipi_tx) + i.init_panel 0x00018a70 Section 0 ap_demo.o(i.init_panel) + init_panel 0x00018a71 Thumb Code 6222 ap_demo.o(i.init_panel) + i.main 0x0001a2be Section 0 main.o(i.main) + i.open_mipi_rx 0x0001a2d0 Section 0 ap_demo.o(i.open_mipi_rx) + open_mipi_rx 0x0001a2d1 Thumb Code 210 ap_demo.o(i.open_mipi_rx) + i.pps_update_handle 0x0001a3c4 Section 0 ap_demo.o(i.pps_update_handle) + pps_update_handle 0x0001a3c5 Thumb Code 76 ap_demo.o(i.pps_update_handle) + i.rx_get_dcs_packet_data 0x0001a418 Section 0 hal_internal_vsync.o(i.rx_get_dcs_packet_data) + rx_get_dcs_packet_data 0x0001a419 Thumb Code 654 hal_internal_vsync.o(i.rx_get_dcs_packet_data) + i.rx_partial_update 0x0001a80c Section 0 hal_internal_vsync.o(i.rx_partial_update) + rx_partial_update 0x0001a80d Thumb Code 358 hal_internal_vsync.o(i.rx_partial_update) + i.rx_receive_packet 0x0001a984 Section 0 hal_internal_vsync.o(i.rx_receive_packet) + rx_receive_packet 0x0001a985 Thumb Code 128 hal_internal_vsync.o(i.rx_receive_packet) + i.rx_receive_pps 0x0001aa10 Section 0 hal_internal_vsync.o(i.rx_receive_pps) + rx_receive_pps 0x0001aa11 Thumb Code 268 hal_internal_vsync.o(i.rx_receive_pps) + i.rxbr_irq0_callback 0x0001ab90 Section 0 hal_internal_vsync.o(i.rxbr_irq0_callback) + rxbr_irq0_callback 0x0001ab91 Thumb Code 158 hal_internal_vsync.o(i.rxbr_irq0_callback) + i.rxbr_irq1_callback 0x0001ac34 Section 0 hal_internal_vsync.o(i.rxbr_irq1_callback) + rxbr_irq1_callback 0x0001ac35 Thumb Code 282 hal_internal_vsync.o(i.rxbr_irq1_callback) + i.soft_gen_te 0x0001ade8 Section 0 hal_internal_vsync.o(i.soft_gen_te) + soft_gen_te 0x0001ade9 Thumb Code 166 hal_internal_vsync.o(i.soft_gen_te) + i.soft_gen_te_double_buffer 0x0001aeac Section 0 hal_internal_vsync.o(i.soft_gen_te_double_buffer) + soft_gen_te_double_buffer 0x0001aead Thumb Code 166 hal_internal_vsync.o(i.soft_gen_te_double_buffer) + i.sqrt 0x0001af6c Section 0 sqrt.o(i.sqrt) + i.tp_int_high_timer_callback 0x0001afb4 Section 0 app_tp_for_custom_mi8se.o(i.tp_int_high_timer_callback) + tp_int_high_timer_callback 0x0001afb5 Thumb Code 120 app_tp_for_custom_mi8se.o(i.tp_int_high_timer_callback) + i.tp_int_high_timer_init 0x0001b03c Section 0 app_tp_for_custom_mi8se.o(i.tp_int_high_timer_init) + i.tx_display_on 0x0001b058 Section 0 ap_demo.o(i.tx_display_on) + tx_display_on 0x0001b059 Thumb Code 60 ap_demo.o(i.tx_display_on) + i.tx_panel_reset 0x0001b0c0 Section 0 ap_demo.o(i.tx_panel_reset) + tx_panel_reset 0x0001b0c1 Thumb Code 40 ap_demo.o(i.tx_panel_reset) + i.vidc_callback 0x0001b0e8 Section 0 hal_internal_vsync.o(i.vidc_callback) + vidc_callback 0x0001b0e9 Thumb Code 232 hal_internal_vsync.o(i.vidc_callback) + i.vpre_err_reset 0x0001b1f0 Section 0 hal_internal_vsync.o(i.vpre_err_reset) + vpre_err_reset 0x0001b1f1 Thumb Code 184 hal_internal_vsync.o(i.vpre_err_reset) + i.vsync_set_te_mode 0x0001b2c0 Section 0 hal_internal_vsync.o(i.vsync_set_te_mode) + vsync_set_te_mode 0x0001b2c1 Thumb Code 300 hal_internal_vsync.o(i.vsync_set_te_mode) + .constdata 0x0001b48c Section 72 ap_demo.o(.constdata) + g_cus_rx_dcs_execute_table 0x0001b48c Data 72 ap_demo.o(.constdata) + .constdata 0x0001b4d4 Section 698 app_tp_for_custom_mi8se.o(.constdata) + .constdata 0x0001b78e Section 210 hal_gpio.o(.constdata) + s_gpio_map 0x0001b78e Data 120 hal_gpio.o(.constdata) + s_gpio_perf 0x0001b806 Data 90 hal_gpio.o(.constdata) + .constdata 0x0001b860 Section 32 hal_i2c_slave.o(.constdata) + sg_i2c_s_config 0x0001b860 Data 32 hal_i2c_slave.o(.constdata) + .constdata 0x0001b880 Section 8 drv_param_init.o(.constdata) + .constdata 0x0001b888 Section 390 drv_phy_common.o(.constdata) + phy_para_mapping_h 0x0001b888 Data 184 drv_phy_common.o(.constdata) + phy_para_mapping_l 0x0001b940 Data 128 drv_phy_common.o(.constdata) + phy_data_high_map 0x0001b9c0 Data 48 drv_phy_common.o(.constdata) + phy_data_lp_map 0x0001b9f0 Data 30 drv_phy_common.o(.constdata) + .conststring 0x0001ba10 Section 67 hal_dsi_tx_ctrl.o(.conststring) + .conststring 0x0001ba54 Section 308 hal_internal_vsync.o(.conststring) + .ARM.__AT_0x00070100 0x00070100 Section 192 irq_redirect .o(.ARM.__AT_0x00070100) + .data 0x000701d0 Section 532 ap_demo.o(.data) + g_rx_ctrl_handle 0x000701d0 Data 4 ap_demo.o(.data) + g_tx_ctrl_handle 0x000701d4 Data 4 ap_demo.o(.data) + start_display_on 0x000701d8 Data 1 ap_demo.o(.data) + panel_display_done 0x000701d9 Data 1 ap_demo.o(.data) + g_resolution_change 0x000701da Data 1 ap_demo.o(.data) + swire_num 0x000701db Data 1 ap_demo.o(.data) + loop_count 0x000701e0 Data 4 ap_demo.o(.data) + .data 0x000703e4 Section 231 app_tp_for_custom_mi8se.o(.data) + app_tp_count 0x000704be Data 1 app_tp_for_custom_mi8se.o(.data) + point_counter 0x000704c0 Data 2 app_tp_for_custom_mi8se.o(.data) + phone_A6_flag 0x000704c2 Data 1 app_tp_for_custom_mi8se.o(.data) + phone_FA_flag 0x000704c3 Data 1 app_tp_for_custom_mi8se.o(.data) + phone_86_flag 0x000704c4 Data 1 app_tp_for_custom_mi8se.o(.data) + phone_A6_flag 0x000704c5 Data 1 app_tp_for_custom_mi8se.o(.data) + phone_FA_flag 0x000704c6 Data 1 app_tp_for_custom_mi8se.o(.data) + phone_86_flag 0x000704c8 Data 2 app_tp_for_custom_mi8se.o(.data) + phone_poweron_flag 0x000704ca Data 1 app_tp_for_custom_mi8se.o(.data) + .data 0x000704cc Section 27 app_tp_transfer.o(.data) + s_slave_txbuffer_size 0x000704d8 Data 4 app_tp_transfer.o(.data) + s_spim_write 0x000704dc Data 1 app_tp_transfer.o(.data) + s_screen_int_flag 0x000704dd Data 1 app_tp_transfer.o(.data) + s_phone_reset_flag 0x000704de Data 1 app_tp_transfer.o(.data) + s_screen_int_transfer_status 0x000704df Data 1 app_tp_transfer.o(.data) + s_screen_const_transfer_count 0x000704e1 Data 1 app_tp_transfer.o(.data) + i2cs_transfer 0x000704e4 Data 1 app_tp_transfer.o(.data) + screen_int_transfer_count 0x000704e5 Data 1 app_tp_transfer.o(.data) + screen_int_transfer_buffer_ready 0x000704e6 Data 1 app_tp_transfer.o(.data) + .data 0x000704e8 Section 8 hal_dsi_rx_ctrl.o(.data) + g_hw_auto_filter 0x000704e8 Data 1 hal_dsi_rx_ctrl.o(.data) + g_esc_clk 0x000704ec Data 4 hal_dsi_rx_ctrl.o(.data) + .data 0x000704f0 Section 3 hal_dsi_tx_ctrl.o(.data) + g_tx_vcom_en 0x000704f0 Data 1 hal_dsi_tx_ctrl.o(.data) + g_tx_vpg_en 0x000704f1 Data 1 hal_dsi_tx_ctrl.o(.data) + g_tx_mode 0x000704f2 Data 1 hal_dsi_tx_ctrl.o(.data) + .data 0x000704f3 Section 1 hal_i2c_master.o(.data) + s_i2c_m_transfer_end 0x000704f3 Data 1 hal_i2c_master.o(.data) + .data 0x000704f4 Section 32 hal_i2c_slave.o(.data) + s_txbuffer_complate 0x000704f4 Data 1 hal_i2c_slave.o(.data) + s_i2c_s_dma_end 0x000704f5 Data 1 hal_i2c_slave.o(.data) + s_i2c_s_receive_cnt 0x000704f6 Data 1 hal_i2c_slave.o(.data) + sg_i2c_s_index 0x000704f7 Data 1 hal_i2c_slave.o(.data) + s_hal_slave_rxbuffer 0x000704f8 Data 4 hal_i2c_slave.o(.data) + s_hal_slave_rxbuffer_size 0x000704fc Data 4 hal_i2c_slave.o(.data) + hal_i2c_s_callback 0x00070500 Data 4 hal_i2c_slave.o(.data) + sg_tx_byte_num 0x00070504 Data 4 hal_i2c_slave.o(.data) + s_receive_count 0x00070508 Data 4 hal_i2c_slave.o(.data) + s_tx_buffer_t 0x0007050c Data 4 hal_i2c_slave.o(.data) + tx_sum 0x00070510 Data 4 hal_i2c_slave.o(.data) + .data 0x00070514 Section 1 hal_pwm.o(.data) + sg_pwm_run 0x00070514 Data 1 hal_pwm.o(.data) + .data 0x00070518 Section 18 norflash.o(.data) + tmprg 0x00070520 Data 4 norflash.o(.data) + .data 0x0007052c Section 12 drv_common.o(.data) + s_my_tick 0x0007052c Data 4 drv_common.o(.data) + .data 0x00070538 Section 4 drv_gpio.o(.data) + g_ap_reset_cb 0x00070538 Data 4 drv_gpio.o(.data) + .data 0x0007053c Section 8 drv_i2c_dma.o(.data) + i2c0_dma_callback 0x0007053c Data 4 drv_i2c_dma.o(.data) + i2c1_dma_callback 0x00070540 Data 4 drv_i2c_dma.o(.data) + .data 0x00070544 Section 4 drv_i2c_master.o(.data) + i2c1_intr_callback 0x00070544 Data 4 drv_i2c_master.o(.data) + .data 0x00070548 Section 4 drv_i2c_slave.o(.data) + i2c0_intr_callback 0x00070548 Data 4 drv_i2c_slave.o(.data) + .data 0x0007054c Section 1188 drv_param_init.o(.data) + .data 0x000709f0 Section 12 drv_pwm.o(.data) + s_pwm_type 0x000709f0 Data 1 drv_pwm.o(.data) + s_pwm_cb 0x000709f4 Data 8 drv_pwm.o(.data) + .data 0x000709fc Section 4 drv_spi_master.o(.data) + SPIM_intr_callback 0x000709fc Data 4 drv_spi_master.o(.data) + .data 0x00070a00 Section 8 drv_swire.o(.data) + s_swire_cb 0x00070a00 Data 8 drv_swire.o(.data) + .data 0x00070a08 Section 1 drv_sys_cfg.o(.data) + sg_ap_rstn_trigger_type 0x00070a08 Data 1 drv_sys_cfg.o(.data) + .data 0x00070a0c Section 80 drv_timer.o(.data) + sg_timer_info 0x00070a0c Data 80 drv_timer.o(.data) + .data 0x00070a5c Section 12 hal_internal_vsync.o(.data) + sg_cmd_mode_tx_start 0x00070a5c Data 1 hal_internal_vsync.o(.data) + sg_cur_te_info 0x00070a60 Data 4 hal_internal_vsync.o(.data) + .data 0x00070a68 Section 8 drv_rxbr.o(.data) + .data 0x00070a70 Section 4 drv_vidc.o(.data) + .data 0x00070a74 Section 1 drv_phy_common.o(.data) + g_phy_calibration 0x00070a74 Data 1 drv_phy_common.o(.data) + .data 0x00070a78 Section 12 drv_chip_info.o(.data) + sg_chip_info 0x00070a78 Data 4 drv_chip_info.o(.data) + sg_chip_function 0x00070a7c Data 4 drv_chip_info.o(.data) + sg_chip_encrypt 0x00070a80 Data 4 drv_chip_info.o(.data) + .data 0x00070a84 Section 8 drv_uart.o(.data) + s_UartFcrReg 0x00070a84 Data 4 drv_uart.o(.data) + uart_userData 0x00070a88 Data 4 drv_uart.o(.data) + .data 0x00070a8c Section 12 drv_wdg.o(.data) + sg_wdg_repeat 0x00070a8c Data 1 drv_wdg.o(.data) + sg_wdg_cb 0x00070a90 Data 8 drv_wdg.o(.data) + .data 0x00070a98 Section 4 stdout.o(.data) + .data 0x00070a9c Section 4 errno.o(.data) + _errno 0x00070a9c Data 4 errno.o(.data) + .bss 0x00070aa0 Section 80 app_tp_for_custom_mi8se.o(.bss) + .bss 0x00070af0 Section 492 app_tp_transfer.o(.bss) + s_screen_read_buffer 0x00070b40 Data 200 app_tp_transfer.o(.bss) + s_phone_read_buffer 0x00070c08 Data 200 app_tp_transfer.o(.bss) + .bss 0x00070cdc Section 196 hal_dsi_rx_ctrl.o(.bss) + g_rx_ctrl_handle 0x00070cdc Data 196 hal_dsi_rx_ctrl.o(.bss) + .bss 0x00070da0 Section 76 hal_dsi_tx_ctrl.o(.bss) + g_tx_ctrl_handle 0x00070da0 Data 76 hal_dsi_tx_ctrl.o(.bss) + .bss 0x00070dec Section 256 tau_log.o(.bss) + .bss 0x00070eec Section 208 hal_uart.o(.bss) + .bss 0x00070fbc Section 28 drv_dma.o(.bss) + s_dma_handle 0x00070fbc Data 28 drv_dma.o(.bss) + .bss 0x00070fd8 Section 64 drv_gpio.o(.bss) + s_gpio_cb 0x00070fd8 Data 64 drv_gpio.o(.bss) + .bss 0x00071018 Section 320 drv_i2c_dma.o(.bss) + i2c0_dma_slave_handle 0x00071018 Data 160 drv_i2c_dma.o(.bss) + i2c1_dma_master_handle 0x000710b8 Data 160 drv_i2c_dma.o(.bss) + .bss 0x00071158 Section 2416 hal_internal_vsync.o(.bss) + g_imm_buffer 0x000719a8 Data 255 hal_internal_vsync.o(.bss) + sg_te_info 0x00071aa8 Data 12 hal_internal_vsync.o(.bss) + g_imm_packet 0x00071ab4 Data 20 hal_internal_vsync.o(.bss) + .bss 0x00071ac8 Section 4144 dcs_packet_fifo.o(.bss) + .bss 0x00072af8 Section 32 hal_spi_slave.o(.bss) + STACK 0x00072b18 Section 4096 startup_armcm0.o(STACK) + + Global Symbols + + Symbol Name Value Ov Type Size Object(Section) + + BuildAttributes$$THM_ISAv3M$S$PE$A:L22$X:L11$S22$IEEE1$IW$USESV6$~STKCKD$USESV7$~SHL$OTIME$ROPI$IEEEJ$EBA8$MICROLIB$REQ8$PRES8$EABIv2 0x00000000 Number 0 anon$$obj.o ABSOLUTE + __ARM_use_no_argv 0x00000000 Number 0 main.o ABSOLUTE + _printf_a 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_c 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_charcount 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_d 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_e 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_f 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_flags 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_fp_dec 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_fp_hex 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_g 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_i 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_int_dec 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_l 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_lc 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_ll 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_lld 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_lli 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_llo 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_llu 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_llx 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_longlong_dec 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_longlong_hex 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_longlong_oct 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_ls 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_mbtowc 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_n 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_o 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_p 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_percent 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_pre_padding 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_return_value 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_s 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_sizespec 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_str 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_truncate_signed 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_truncate_unsigned 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_u 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_wc 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_wctomb 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_widthprec 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_x 0x00000000 Number 0 stubs.o ABSOLUTE + __cpp_initialize__aeabi_ - Undefined Weak Reference + __cxa_finalize - Undefined Weak Reference + _clock_init - Undefined Weak Reference + _microlib_exit - Undefined Weak Reference + __Vectors_Size 0x000000c0 Number 0 startup_armcm0.o ABSOLUTE + __Vectors 0x00010000 Data 4 startup_armcm0.o(RESET) + __Vectors_End 0x000100c0 Data 0 startup_armcm0.o(RESET) + __main 0x000100c1 Thumb Code 0 entry.o(.ARM.Collect$$$$00000000) + _main_stk 0x000100c1 Thumb Code 0 entry2.o(.ARM.Collect$$$$00000001) + _main_scatterload 0x000100c5 Thumb Code 0 entry5.o(.ARM.Collect$$$$00000004) + __main_after_scatterload 0x000100c9 Thumb Code 0 entry5.o(.ARM.Collect$$$$00000004) + _main_clock 0x000100c9 Thumb Code 0 entry7b.o(.ARM.Collect$$$$00000008) + _main_cpp_init 0x000100c9 Thumb Code 0 entry8b.o(.ARM.Collect$$$$0000000A) + _main_init 0x000100c9 Thumb Code 0 entry9a.o(.ARM.Collect$$$$0000000B) + __rt_final_cpp 0x000100d1 Thumb Code 0 entry10a.o(.ARM.Collect$$$$0000000D) + __rt_final_exit 0x000100d1 Thumb Code 0 entry11a.o(.ARM.Collect$$$$0000000F) + Reset_Handler 0x000100d5 Thumb Code 28 startup_armcm0.o(.text) + NMI_Handler 0x000100f1 Thumb Code 2 startup_armcm0.o(.text) + SVC_Handler 0x000100f5 Thumb Code 2 startup_armcm0.o(.text) + PendSV_Handler 0x000100f7 Thumb Code 2 startup_armcm0.o(.text) + OTP_IRQn_Handler 0x00010123 Thumb Code 2 startup_armcm0.o(.text) + PVD_IRQn_Handler 0x00010127 Thumb Code 2 startup_armcm0.o(.text) + __aeabi_uidiv 0x0001014d Thumb Code 0 uidiv.o(.text) + __aeabi_uidivmod 0x0001014d Thumb Code 44 uidiv.o(.text) + __aeabi_idiv 0x00010179 Thumb Code 0 idiv.o(.text) + __aeabi_idivmod 0x00010179 Thumb Code 40 idiv.o(.text) + __aeabi_memcpy 0x000101a1 Thumb Code 36 memcpya.o(.text) + __aeabi_memcpy4 0x000101a1 Thumb Code 0 memcpya.o(.text) + __aeabi_memcpy8 0x000101a1 Thumb Code 0 memcpya.o(.text) + __aeabi_memset 0x000101c5 Thumb Code 14 memseta.o(.text) + __aeabi_memset4 0x000101c5 Thumb Code 0 memseta.o(.text) + __aeabi_memset8 0x000101c5 Thumb Code 0 memseta.o(.text) + __aeabi_memclr 0x000101d3 Thumb Code 4 memseta.o(.text) + __aeabi_memclr4 0x000101d3 Thumb Code 0 memseta.o(.text) + __aeabi_memclr8 0x000101d3 Thumb Code 0 memseta.o(.text) + _memset$wrapper 0x000101d7 Thumb Code 18 memseta.o(.text) + __aeabi_fadd 0x000101e9 Thumb Code 162 fadd.o(.text) + __aeabi_fsub 0x0001028b Thumb Code 8 fadd.o(.text) + __aeabi_frsub 0x00010293 Thumb Code 8 fadd.o(.text) + __aeabi_fmul 0x0001029b Thumb Code 122 fmul.o(.text) + __aeabi_fdiv 0x00010315 Thumb Code 124 fdiv.o(.text) + __ARM_scalbnf 0x00010391 Thumb Code 24 fscalb.o(.text) + scalbnf 0x00010391 Thumb Code 0 fscalb.o(.text) + __aeabi_dadd 0x000103a9 Thumb Code 328 dadd.o(.text) + __aeabi_dsub 0x000104f1 Thumb Code 12 dadd.o(.text) + __aeabi_drsub 0x000104fd Thumb Code 12 dadd.o(.text) + __aeabi_dmul 0x0001050d Thumb Code 202 dmul.o(.text) + __aeabi_ddiv 0x000105dd Thumb Code 234 ddiv.o(.text) + __aeabi_i2f 0x000106cd Thumb Code 22 fflti.o(.text) + __aeabi_ui2f 0x000106e3 Thumb Code 14 ffltui.o(.text) + __aeabi_ui2d 0x000106f1 Thumb Code 24 dfltui.o(.text) + __aeabi_f2iz 0x0001070d Thumb Code 50 ffixi.o(.text) + __aeabi_f2uiz 0x0001073f Thumb Code 40 ffixui.o(.text) + __aeabi_d2iz 0x00010769 Thumb Code 62 dfixi.o(.text) + __aeabi_d2uiz 0x000107b1 Thumb Code 50 dfixui.o(.text) + __aeabi_f2d 0x000107ed Thumb Code 40 f2d.o(.text) + __aeabi_cdcmpeq 0x00010815 Thumb Code 0 cdcmple.o(.text) + __aeabi_cdcmple 0x00010815 Thumb Code 38 cdcmple.o(.text) + __aeabi_cfrcmple 0x0001083d Thumb Code 20 cfrcmple.o(.text) + __aeabi_uldivmod 0x00010851 Thumb Code 96 uldiv.o(.text) + __aeabi_llsl 0x000108b1 Thumb Code 32 llshl.o(.text) + _ll_shift_l 0x000108b1 Thumb Code 0 llshl.o(.text) + __aeabi_llsr 0x000108d1 Thumb Code 34 llushr.o(.text) + _ll_ushift_r 0x000108d1 Thumb Code 0 llushr.o(.text) + __aeabi_lasr 0x000108f3 Thumb Code 38 llsshr.o(.text) + _ll_sshift_r 0x000108f3 Thumb Code 0 llsshr.o(.text) + __I$use$fp 0x00010919 Thumb Code 0 iusefp.o(.text) + _float_round 0x00010919 Thumb Code 16 fepilogue.o(.text) + _float_epilogue 0x00010929 Thumb Code 114 fepilogue.o(.text) + _double_round 0x0001099b Thumb Code 26 depilogue.o(.text) + _double_epilogue 0x000109b5 Thumb Code 164 depilogue.o(.text) + _dsqrt 0x00010a59 Thumb Code 162 dsqrt.o(.text) + __aeabi_d2ulz 0x00010afd Thumb Code 54 dfixul.o(.text) + __aeabi_cdrcmple 0x00010b3d Thumb Code 38 cdrcmple.o(.text) + __scatterload 0x00010b65 Thumb Code 28 init.o(.text) + __scatterload_rt2 0x00010b65 Thumb Code 0 init.o(.text) + __decompress 0x00010b89 Thumb Code 0 __dczerorl2.o(.text) + __decompress1 0x00010b89 Thumb Code 86 __dczerorl2.o(.text) + ADC_IRQn_Handler 0x00010be1 Thumb Code 18 irq_redirect .o(i.ADC_IRQn_Handler) + AP_NRESET_IRQn_Handler 0x00010bf9 Thumb Code 18 irq_redirect .o(i.AP_NRESET_IRQn_Handler) + DMA_IRQn_Handler 0x00010c4d Thumb Code 14 irq_redirect .o(i.DMA_IRQn_Handler) + EXTI_INT0_IRQn_Handler 0x00010c61 Thumb Code 22 irq_redirect .o(i.EXTI_INT0_IRQn_Handler) + EXTI_INT1_IRQn_Handler 0x00010c7d Thumb Code 22 irq_redirect .o(i.EXTI_INT1_IRQn_Handler) + EXTI_INT2_IRQn_Handler 0x00010c99 Thumb Code 22 irq_redirect .o(i.EXTI_INT2_IRQn_Handler) + EXTI_INT3_IRQn_Handler 0x00010cb5 Thumb Code 22 irq_redirect .o(i.EXTI_INT3_IRQn_Handler) + EXTI_INT4_IRQn_Handler 0x00010cd1 Thumb Code 22 irq_redirect .o(i.EXTI_INT4_IRQn_Handler) + EXTI_INT5_IRQn_Handler 0x00010ced Thumb Code 22 irq_redirect .o(i.EXTI_INT5_IRQn_Handler) + EXTI_INT6_IRQn_Handler 0x00010d09 Thumb Code 22 irq_redirect .o(i.EXTI_INT6_IRQn_Handler) + EXTI_INT7_IRQn_Handler 0x00010d25 Thumb Code 22 irq_redirect .o(i.EXTI_INT7_IRQn_Handler) + FLSCTRL_IRQn_Handler 0x00010d41 Thumb Code 14 irq_redirect .o(i.FLSCTRL_IRQn_Handler) + HardFault_Handler 0x00010d55 Thumb Code 14 irq_redirect .o(i.HardFault_Handler) + I2C0_IRQn_Handler 0x00010d69 Thumb Code 18 irq_redirect .o(i.I2C0_IRQn_Handler) + I2C1_IRQn_Handler 0x00010d81 Thumb Code 18 irq_redirect .o(i.I2C1_IRQn_Handler) + LCDC_IRQn_Handler 0x00010d99 Thumb Code 18 irq_redirect .o(i.LCDC_IRQn_Handler) + LOG_printf 0x00010db1 Thumb Code 30 tau_log.o(i.LOG_printf) + MEMC_IRQn_Handler 0x00010dd9 Thumb Code 18 irq_redirect .o(i.MEMC_IRQn_Handler) + MIPI_RX_IRQn_Handler 0x00010df1 Thumb Code 18 irq_redirect .o(i.MIPI_RX_IRQn_Handler) + MIPI_TX_IRQn_Handler 0x00010e09 Thumb Code 18 irq_redirect .o(i.MIPI_TX_IRQn_Handler) + PWMDET_IRQn_Handler 0x00010e21 Thumb Code 22 irq_redirect .o(i.PWMDET_IRQn_Handler) + PWM_Task 0x00010e3d Thumb Code 42 ap_demo.o(i.PWM_Task) + SPIM_IRQn_Handler 0x00010e8d Thumb Code 22 irq_redirect .o(i.SPIM_IRQn_Handler) + SPIS_IRQn_Handler 0x00010ea9 Thumb Code 22 irq_redirect .o(i.SPIS_IRQn_Handler) + SWIRE_IRQn_Handler 0x00010ec5 Thumb Code 22 irq_redirect .o(i.SWIRE_IRQn_Handler) + SysTick_Handler 0x00010ee1 Thumb Code 18 irq_redirect .o(i.SysTick_Handler) + TIMER0_IRQn_Handler 0x00010ef9 Thumb Code 18 irq_redirect .o(i.TIMER0_IRQn_Handler) + TIMER1_IRQn_Handler 0x00010f11 Thumb Code 18 irq_redirect .o(i.TIMER1_IRQn_Handler) + TIMER2_IRQn_Handler 0x00010f29 Thumb Code 18 irq_redirect .o(i.TIMER2_IRQn_Handler) + TIMER3_IRQn_Handler 0x00010f41 Thumb Code 18 irq_redirect .o(i.TIMER3_IRQn_Handler) + UART0_IRQ_Handle 0x00010f59 Thumb Code 20 drv_uart.o(i.UART0_IRQ_Handle) + UART_DisableDma 0x00010f75 Thumb Code 2 drv_uart.o(i.UART_DisableDma) + UART_GetInstance 0x00010f77 Thumb Code 4 drv_uart.o(i.UART_GetInstance) + UART_IRQn_Handler 0x00010f7d Thumb Code 18 irq_redirect .o(i.UART_IRQn_Handler) + UART_ResetRxFIFO 0x00010f95 Thumb Code 32 drv_uart.o(i.UART_ResetRxFIFO) + UART_SetBaudRate 0x00010fb9 Thumb Code 72 drv_uart.o(i.UART_SetBaudRate) + s_RAM_CK 0x00011000 Data 20 drv_common.o(.ARM.__at_0x11000) + __scatterload_null 0x00011015 Thumb Code 2 handlers.o(i.__scatterload_null) + s_debug_state 0x00011018 Data 4 drv_common.o(.ARM.__at_0x11018) + UART_SwitchSCLK 0x0001101d Thumb Code 26 drv_uart.o(i.UART_SwitchSCLK) + UART_TransferHandleIRQ 0x00011037 Thumb Code 308 drv_uart.o(i.UART_TransferHandleIRQ) + UART_WriteBlocking 0x0001116b Thumb Code 26 drv_uart.o(i.UART_WriteBlocking) + UART_init 0x00011185 Thumb Code 182 drv_uart.o(i.UART_init) + VIDC_IRQn_Handler 0x00011241 Thumb Code 18 irq_redirect .o(i.VIDC_IRQn_Handler) + VPRE_IRQn_Handler 0x00011259 Thumb Code 18 irq_redirect .o(i.VPRE_IRQn_Handler) + WDG_IRQn_Handler 0x00011271 Thumb Code 18 irq_redirect .o(i.WDG_IRQn_Handler) + __0printf 0x00011289 Thumb Code 24 printfa.o(i.__0printf) + __1printf 0x00011289 Thumb Code 0 printfa.o(i.__0printf) + __2printf 0x00011289 Thumb Code 0 printfa.o(i.__0printf) + __c89printf 0x00011289 Thumb Code 0 printfa.o(i.__0printf) + printf 0x00011289 Thumb Code 0 printfa.o(i.__0printf) + __0vsprintf 0x000112a9 Thumb Code 30 printfa.o(i.__0vsprintf) + __1vsprintf 0x000112a9 Thumb Code 0 printfa.o(i.__0vsprintf) + __2vsprintf 0x000112a9 Thumb Code 0 printfa.o(i.__0vsprintf) + __c89vsprintf 0x000112a9 Thumb Code 0 printfa.o(i.__0vsprintf) + vsprintf 0x000112a9 Thumb Code 0 printfa.o(i.__0vsprintf) + __ARM_clz 0x000112cd Thumb Code 46 depilogue.o(i.__ARM_clz) + __ARM_common_switch8 0x000112fb Thumb Code 26 hal_dsi_rx_ctrl.o(i.__ARM_common_switch8) + __scatterload_copy 0x000113c1 Thumb Code 14 handlers.o(i.__scatterload_copy) + __scatterload_zeroinit 0x000113cf Thumb Code 14 handlers.o(i.__scatterload_zeroinit) + __set_errno 0x000113dd Thumb Code 6 errno.o(i.__set_errno) + ap_demo 0x00011cd9 Thumb Code 174 ap_demo.o(i.ap_demo) + app_ADC_IRQn_Handler 0x00011f39 Thumb Code 22 drv_rxbr.o(i.app_ADC_IRQn_Handler) + app_AP_NRESET_IRQn_Handler 0x00011f55 Thumb Code 32 drv_gpio.o(i.app_AP_NRESET_IRQn_Handler) + app_EXTI_INT0_IRQn_Handler 0x00011f79 Thumb Code 22 drv_gpio.o(i.app_EXTI_INT0_IRQn_Handler) + app_EXTI_INT1_IRQn_Handler 0x00011f95 Thumb Code 22 drv_gpio.o(i.app_EXTI_INT1_IRQn_Handler) + app_EXTI_INT2_IRQn_Handler 0x00011fb1 Thumb Code 22 drv_gpio.o(i.app_EXTI_INT2_IRQn_Handler) + app_EXTI_INT3_IRQn_Handler 0x00011fcd Thumb Code 22 drv_gpio.o(i.app_EXTI_INT3_IRQn_Handler) + app_EXTI_INT4_IRQn_Handler 0x00011fe9 Thumb Code 22 drv_gpio.o(i.app_EXTI_INT4_IRQn_Handler) + app_EXTI_INT5_IRQn_Handler 0x00012005 Thumb Code 22 drv_gpio.o(i.app_EXTI_INT5_IRQn_Handler) + app_EXTI_INT6_IRQn_Handler 0x00012021 Thumb Code 22 drv_gpio.o(i.app_EXTI_INT6_IRQn_Handler) + app_EXTI_INT7_IRQn_Handler 0x0001203d Thumb Code 22 drv_gpio.o(i.app_EXTI_INT7_IRQn_Handler) + app_HardFault_Handler 0x00012059 Thumb Code 12 drv_common.o(i.app_HardFault_Handler) + app_I2C0_IRQn_Handler 0x000120a1 Thumb Code 14 drv_i2c_slave.o(i.app_I2C0_IRQn_Handler) + app_I2C1_IRQn_Handler 0x000120b9 Thumb Code 8 drv_i2c_master.o(i.app_I2C1_IRQn_Handler) + app_LCDC_IRQn_Handler 0x000120c9 Thumb Code 146 hal_internal_vsync.o(i.app_LCDC_IRQn_Handler) + app_MEMC_IRQn_Handler 0x000121f9 Thumb Code 132 drv_memc.o(i.app_MEMC_IRQn_Handler) + app_MIPI_RX_IRQn_Handler 0x00012281 Thumb Code 232 drv_dsi_rx.o(i.app_MIPI_RX_IRQn_Handler) + app_MIPI_TX_IRQn_Handler 0x00012519 Thumb Code 56 drv_dsi_tx.o(i.app_MIPI_TX_IRQn_Handler) + app_PWMDET_IRQn_Handler 0x000125b9 Thumb Code 62 drv_pwm.o(i.app_PWMDET_IRQn_Handler) + app_SPIM_IRQn_Handler 0x00012601 Thumb Code 34 drv_spi_master.o(i.app_SPIM_IRQn_Handler) + app_SPIS_IRQn_Handler 0x00012631 Thumb Code 500 hal_spi_slave.o(i.app_SPIS_IRQn_Handler) + app_SWIRE_IRQn_Handler 0x00012831 Thumb Code 28 drv_swire.o(i.app_SWIRE_IRQn_Handler) + app_SysTick_Handler 0x00012851 Thumb Code 20 drv_common.o(i.app_SysTick_Handler) + app_TIMER0_IRQn_Handler 0x00012869 Thumb Code 10 drv_timer.o(i.app_TIMER0_IRQn_Handler) + app_TIMER1_IRQn_Handler 0x00012873 Thumb Code 10 drv_timer.o(i.app_TIMER1_IRQn_Handler) + app_TIMER2_IRQn_Handler 0x0001287d Thumb Code 10 drv_timer.o(i.app_TIMER2_IRQn_Handler) + app_TIMER3_IRQn_Handler 0x00012887 Thumb Code 10 drv_timer.o(i.app_TIMER3_IRQn_Handler) + app_UART_IRQn_Handler 0x00012891 Thumb Code 8 drv_uart.o(i.app_UART_IRQn_Handler) + app_VIDC_IRQn_Handler 0x00012899 Thumb Code 22 drv_vidc.o(i.app_VIDC_IRQn_Handler) + app_VPRE_IRQn_Handler 0x000128b5 Thumb Code 22 drv_rxbr.o(i.app_VPRE_IRQn_Handler) + app_WDG_IRQn_Handler 0x000128d1 Thumb Code 52 drv_wdg.o(i.app_WDG_IRQn_Handler) + app_dma_irq_handler 0x00012909 Thumb Code 10 drv_dma.o(i.app_dma_irq_handler) + app_fls_ctrl_Handler 0x00012919 Thumb Code 38 norflash.o(i.app_fls_ctrl_Handler) + app_tp_init 0x0001298d Thumb Code 80 app_tp_transfer.o(i.app_tp_init) + app_tp_m_transfer_complate 0x00012a21 Thumb Code 8 app_tp_transfer.o(i.app_tp_m_transfer_complate) + app_tp_phone_analysis_data_custom 0x00012a29 Thumb Code 948 app_tp_for_custom_mi8se.o(i.app_tp_phone_analysis_data_custom) + app_tp_phone_clear_reset_on 0x00012e9d Thumb Code 8 app_tp_transfer.o(i.app_tp_phone_clear_reset_on) + app_tp_s_read 0x00012ea9 Thumb Code 16 app_tp_transfer.o(i.app_tp_s_read) + app_tp_s_write 0x00012eb9 Thumb Code 16 app_tp_transfer.o(i.app_tp_s_write) + app_tp_screen_analysis_int 0x00012ec9 Thumb Code 646 app_tp_for_custom_mi8se.o(i.app_tp_screen_analysis_int) + app_tp_transfer_screen_int 0x00013249 Thumb Code 174 app_tp_transfer.o(i.app_tp_transfer_screen_int) + app_tp_transfer_screen_start 0x0001331d Thumb Code 24 app_tp_transfer.o(i.app_tp_transfer_screen_start) + board_Init 0x00013341 Thumb Code 30 board.o(i.board_Init) + calc_framebuffer_setting 0x00013365 Thumb Code 1138 hal_internal_vsync.o(i.calc_framebuffer_setting) + ceil 0x000137d9 Thumb Code 180 ceil.o(i.ceil) + dcs_packet_fifo_alloc 0x00013961 Thumb Code 80 dcs_packet_fifo.o(i.dcs_packet_fifo_alloc) + dcs_packet_fifo_init 0x000139b9 Thumb Code 18 dcs_packet_fifo.o(i.dcs_packet_fifo_init) + dcs_packet_free_fifo_header 0x000139d1 Thumb Code 60 dcs_packet_fifo.o(i.dcs_packet_free_fifo_header) + dcs_packet_get_fifo_header 0x00013a15 Thumb Code 26 dcs_packet_fifo.o(i.dcs_packet_get_fifo_header) + delayMs 0x00013a55 Thumb Code 24 tau_delay.o(i.delayMs) + delayUs 0x00013a6d Thumb Code 34 tau_delay.o(i.delayUs) + drv_ap_rst_trig_edge_detect 0x00013a91 Thumb Code 46 drv_sys_cfg.o(i.drv_ap_rst_trig_edge_detect) + drv_chip_info_get_info 0x00013ac9 Thumb Code 6 drv_chip_info.o(i.drv_chip_info_get_info) + drv_chip_info_init 0x00013ad5 Thumb Code 56 drv_chip_info.o(i.drv_chip_info_init) + drv_chip_rx_info_check 0x00013b15 Thumb Code 122 drv_chip_info.o(i.drv_chip_rx_info_check) + drv_chip_rx_init_done 0x00013bdd Thumb Code 16 drv_chip_info.o(i.drv_chip_rx_init_done) + drv_common_enable_systick 0x00013bf1 Thumb Code 70 drv_common.o(i.drv_common_enable_systick) + drv_common_system_init 0x00013c49 Thumb Code 8 drv_common.o(i.drv_common_system_init) + drv_crgu_config_reset_modules 0x00013c51 Thumb Code 10 drv_crgu.o(i.drv_crgu_config_reset_modules) + drv_crgu_set_ahb_pre_div 0x00013c61 Thumb Code 14 drv_crgu.o(i.drv_crgu_set_ahb_pre_div) + drv_crgu_set_ahb_src 0x00013c75 Thumb Code 16 drv_crgu.o(i.drv_crgu_set_ahb_src) + drv_crgu_set_clock 0x00013c89 Thumb Code 26 drv_crgu.o(i.drv_crgu_set_clock) + drv_crgu_set_dpi_mux_src 0x00013ca9 Thumb Code 16 drv_crgu.o(i.drv_crgu_set_dpi_mux_src) + drv_crgu_set_dpi_pre_div 0x00013cbd Thumb Code 18 drv_crgu.o(i.drv_crgu_set_dpi_pre_div) + drv_crgu_set_dpi_pre_src 0x00013cd5 Thumb Code 16 drv_crgu.o(i.drv_crgu_set_dpi_pre_src) + drv_crgu_set_dsc_core_div 0x00013ce9 Thumb Code 16 drv_crgu.o(i.drv_crgu_set_dsc_core_div) + drv_crgu_set_dsco_src 0x00013cfd Thumb Code 16 drv_crgu.o(i.drv_crgu_set_dsco_src) + drv_crgu_set_dsco_src_div 0x00013d11 Thumb Code 16 drv_crgu.o(i.drv_crgu_set_dsco_src_div) + drv_crgu_set_fb_div 0x00013d25 Thumb Code 16 drv_crgu.o(i.drv_crgu_set_fb_div) + drv_crgu_set_fb_src 0x00013d39 Thumb Code 16 drv_crgu.o(i.drv_crgu_set_fb_src) + drv_crgu_set_lcdc_div 0x00013d4d Thumb Code 16 drv_crgu.o(i.drv_crgu_set_lcdc_div) + drv_crgu_set_lcdc_src 0x00013d61 Thumb Code 16 drv_crgu.o(i.drv_crgu_set_lcdc_src) + drv_crgu_set_mipi_cfg_src 0x00013d75 Thumb Code 16 drv_crgu.o(i.drv_crgu_set_mipi_cfg_src) + drv_crgu_set_mipi_ref_src 0x00013d89 Thumb Code 18 drv_crgu.o(i.drv_crgu_set_mipi_ref_src) + drv_crgu_set_reset 0x00013da1 Thumb Code 20 drv_crgu.o(i.drv_crgu_set_reset) + drv_crgu_set_rxbr_div 0x00013db9 Thumb Code 16 drv_crgu.o(i.drv_crgu_set_rxbr_div) + drv_crgu_set_rxbr_src 0x00013dcd Thumb Code 16 drv_crgu.o(i.drv_crgu_set_rxbr_src) + drv_crgu_set_vidc_src 0x00013de1 Thumb Code 16 drv_crgu.o(i.drv_crgu_set_vidc_src) + drv_dma_clear_flag 0x00013df5 Thumb Code 24 drv_dma.o(i.drv_dma_clear_flag) + drv_dma_create_handle 0x00013e0d Thumb Code 22 drv_dma.o(i.drv_dma_create_handle) + drv_dma_disenable_channel 0x00013e29 Thumb Code 16 drv_dma.o(i.drv_dma_disenable_channel) + drv_dma_enable_channel 0x00013e39 Thumb Code 16 drv_dma.o(i.drv_dma_enable_channel) + drv_dma_enable_channel_interrupts 0x00013e49 Thumb Code 32 drv_dma.o(i.drv_dma_enable_channel_interrupts) + drv_dma_get_channel_flag 0x00013e6d Thumb Code 12 drv_dma.o(i.drv_dma_get_channel_flag) + drv_dma_irq_handler 0x00013e79 Thumb Code 138 drv_dma.o(i.drv_dma_irq_handler) + drv_dma_prepar_transfer 0x00013f09 Thumb Code 18 drv_dma.o(i.drv_dma_prepar_transfer) + drv_dma_set_burst 0x00013f1b Thumb Code 26 drv_dma.o(i.drv_dma_set_burst) + drv_dma_set_callback 0x00013f35 Thumb Code 6 drv_dma.o(i.drv_dma_set_callback) + drv_dma_set_transfer 0x00013f3d Thumb Code 62 drv_dma.o(i.drv_dma_set_transfer) + drv_dsc_dec_convert_pps_rc_parameter 0x00013f81 Thumb Code 54 drv_dsc_dec.o(i.drv_dsc_dec_convert_pps_rc_parameter) + drv_dsc_dec_disable 0x00013fb7 Thumb Code 12 drv_dsc_dec.o(i.drv_dsc_dec_disable) + drv_dsc_dec_enable 0x00013fc5 Thumb Code 88 drv_dsc_dec.o(i.drv_dsc_dec_enable) + drv_dsc_dec_get_nslc 0x00014039 Thumb Code 10 drv_dsc_dec.o(i.drv_dsc_dec_get_nslc) + drv_dsc_dec_set_u8_pps 0x00014043 Thumb Code 40 drv_dsc_dec.o(i.drv_dsc_dec_set_u8_pps) + drv_dsi_rx_calc_ipi_tx_delay 0x0001406d Thumb Code 244 drv_dsi_rx.o(i.drv_dsi_rx_calc_ipi_tx_delay) + drv_dsi_rx_enable_irq 0x00014171 Thumb Code 58 drv_dsi_rx.o(i.drv_dsi_rx_enable_irq) + drv_dsi_rx_get_compression_en 0x0001421d Thumb Code 8 drv_dsi_rx.o(i.drv_dsi_rx_get_compression_en) + drv_dsi_rx_power_up 0x00014225 Thumb Code 14 drv_dsi_rx.o(i.drv_dsi_rx_power_up) + drv_dsi_rx_set_ctrl_cfg 0x00014233 Thumb Code 32 drv_dsi_rx.o(i.drv_dsi_rx_set_ctrl_cfg) + drv_dsi_rx_set_ddi_cfg 0x00014253 Thumb Code 16 drv_dsi_rx.o(i.drv_dsi_rx_set_ddi_cfg) + drv_dsi_rx_set_inten 0x00014263 Thumb Code 4 drv_dsi_rx.o(i.drv_dsi_rx_set_inten) + drv_dsi_rx_set_ipi_cfg 0x00014267 Thumb Code 16 drv_dsi_rx.o(i.drv_dsi_rx_set_ipi_cfg) + drv_dsi_rx_set_lane_swap 0x00014277 Thumb Code 70 drv_dsi_rx.o(i.drv_dsi_rx_set_lane_swap) + drv_dsi_rx_set_resp_cnt 0x000142bd Thumb Code 38 drv_dsi_rx.o(i.drv_dsi_rx_set_resp_cnt) + drv_dsi_rx_set_up_phy 0x000142e5 Thumb Code 256 drv_dsi_rx.o(i.drv_dsi_rx_set_up_phy) + drv_dsi_tx_command_header 0x000143e9 Thumb Code 20 drv_dsi_tx.o(i.drv_dsi_tx_command_header) + drv_dsi_tx_command_mode_cfg 0x000143fd Thumb Code 108 drv_dsi_tx.o(i.drv_dsi_tx_command_mode_cfg) + drv_dsi_tx_command_put_payload 0x00014469 Thumb Code 4 drv_dsi_tx.o(i.drv_dsi_tx_command_put_payload) + drv_dsi_tx_config_eotp 0x0001446d Thumb Code 24 drv_dsi_tx.o(i.drv_dsi_tx_config_eotp) + drv_dsi_tx_config_int 0x00014485 Thumb Code 8 drv_dsi_tx.o(i.drv_dsi_tx_config_int) + drv_dsi_tx_dpi_lpcmd_time 0x0001448d Thumb Code 8 drv_dsi_tx.o(i.drv_dsi_tx_dpi_lpcmd_time) + drv_dsi_tx_dpi_mode 0x00014495 Thumb Code 10 drv_dsi_tx.o(i.drv_dsi_tx_dpi_mode) + drv_dsi_tx_dpi_polarity 0x0001449f Thumb Code 36 drv_dsi_tx.o(i.drv_dsi_tx_dpi_polarity) + drv_dsi_tx_edpi_cmd_size 0x000144c3 Thumb Code 4 drv_dsi_tx.o(i.drv_dsi_tx_edpi_cmd_size) + drv_dsi_tx_get_cmd_status 0x000144c7 Thumb Code 4 drv_dsi_tx.o(i.drv_dsi_tx_get_cmd_status) + drv_dsi_tx_mode 0x000144cb Thumb Code 4 drv_dsi_tx.o(i.drv_dsi_tx_mode) + drv_dsi_tx_phy_clock_lane_auto_lp 0x000144cf Thumb Code 24 drv_dsi_tx.o(i.drv_dsi_tx_phy_clock_lane_auto_lp) + drv_dsi_tx_phy_clock_lane_req_hs 0x000144e7 Thumb Code 26 drv_dsi_tx.o(i.drv_dsi_tx_phy_clock_lane_req_hs) + drv_dsi_tx_phy_lane_mode 0x00014501 Thumb Code 12 drv_dsi_tx.o(i.drv_dsi_tx_phy_lane_mode) + drv_dsi_tx_phy_status_ready 0x0001450d Thumb Code 100 drv_dsi_tx.o(i.drv_dsi_tx_phy_status_ready) + drv_dsi_tx_phy_status_stopstate 0x00014571 Thumb Code 62 drv_dsi_tx.o(i.drv_dsi_tx_phy_status_stopstate) + drv_dsi_tx_phy_test_setup 0x000145af Thumb Code 308 drv_dsi_tx.o(i.drv_dsi_tx_phy_test_setup) + drv_dsi_tx_phy_time_cfg 0x000146e3 Thumb Code 30 drv_dsi_tx.o(i.drv_dsi_tx_phy_time_cfg) + drv_dsi_tx_powerup 0x00014701 Thumb Code 8 drv_dsi_tx.o(i.drv_dsi_tx_powerup) + drv_dsi_tx_response_mode 0x00014709 Thumb Code 28 drv_dsi_tx.o(i.drv_dsi_tx_response_mode) + drv_dsi_tx_set_bta_ack 0x00014725 Thumb Code 24 drv_dsi_tx.o(i.drv_dsi_tx_set_bta_ack) + drv_dsi_tx_set_esc_div 0x0001473d Thumb Code 12 drv_dsi_tx.o(i.drv_dsi_tx_set_esc_div) + drv_dsi_tx_set_int 0x00014749 Thumb Code 58 drv_dsi_tx.o(i.drv_dsi_tx_set_int) + drv_dsi_tx_set_time_out_div 0x00014789 Thumb Code 16 drv_dsi_tx.o(i.drv_dsi_tx_set_time_out_div) + drv_dsi_tx_set_video_chunk 0x00014799 Thumb Code 8 drv_dsi_tx.o(i.drv_dsi_tx_set_video_chunk) + drv_dsi_tx_set_video_timing 0x000147a1 Thumb Code 34 drv_dsi_tx.o(i.drv_dsi_tx_set_video_timing) + drv_dsi_tx_shutdown 0x000147c3 Thumb Code 8 drv_dsi_tx.o(i.drv_dsi_tx_shutdown) + drv_dsi_tx_timeout_cfg 0x000147cb Thumb Code 38 drv_dsi_tx.o(i.drv_dsi_tx_timeout_cfg) + drv_dsi_tx_video_mode_cfg 0x000147f1 Thumb Code 170 drv_dsi_tx.o(i.drv_dsi_tx_video_mode_cfg) + drv_dsi_tx_video_mode_disable_hact_cmd 0x0001489b Thumb Code 22 drv_dsi_tx.o(i.drv_dsi_tx_video_mode_disable_hact_cmd) + drv_dsi_tx_video_mode_set_lp_cmd 0x000148b1 Thumb Code 24 drv_dsi_tx.o(i.drv_dsi_tx_video_mode_set_lp_cmd) + drv_efuse_enter_inactive 0x000148c9 Thumb Code 32 drv_efuse.o(i.drv_efuse_enter_inactive) + drv_efuse_int_enable 0x000148e9 Thumb Code 12 drv_efuse.o(i.drv_efuse_int_enable) + drv_efuse_read 0x000148f5 Thumb Code 50 drv_efuse.o(i.drv_efuse_read) + drv_efuse_read_req 0x00014927 Thumb Code 24 drv_efuse.o(i.drv_efuse_read_req) + drv_fls_gpio_connect 0x00014941 Thumb Code 18 drv_fls.o(i.drv_fls_gpio_connect) + drv_fls_gpio_disconnect 0x0001495d Thumb Code 22 drv_fls.o(i.drv_fls_gpio_disconnect) + drv_gpio_get_input_data 0x0001497d Thumb Code 20 drv_gpio.o(i.drv_gpio_get_input_data) + drv_gpio_register_callback 0x00014995 Thumb Code 14 drv_gpio.o(i.drv_gpio_register_callback) + drv_gpio_set_int 0x000149a9 Thumb Code 74 drv_gpio.o(i.drv_gpio_set_int) + drv_gpio_set_ioe 0x000149f9 Thumb Code 26 drv_gpio.o(i.drv_gpio_set_ioe) + drv_gpio_set_mode0 0x00014a19 Thumb Code 12 drv_gpio.o(i.drv_gpio_set_mode0) + drv_gpio_set_mode1 0x00014a29 Thumb Code 12 drv_gpio.o(i.drv_gpio_set_mode1) + drv_gpio_set_mode2 0x00014a39 Thumb Code 12 drv_gpio.o(i.drv_gpio_set_mode2) + drv_gpio_set_mode3 0x00014a49 Thumb Code 12 drv_gpio.o(i.drv_gpio_set_mode3) + drv_gpio_set_pull_state 0x00014a79 Thumb Code 298 drv_gpio.o(i.drv_gpio_set_pull_state) + drv_i2c0_set_callback 0x00014ba9 Thumb Code 6 drv_i2c_slave.o(i.drv_i2c0_set_callback) + drv_i2c1_set_callback 0x00014bb5 Thumb Code 6 drv_i2c_master.o(i.drv_i2c1_set_callback) + drv_i2c_dma_init 0x00014bf5 Thumb Code 146 drv_i2c_dma.o(i.drv_i2c_dma_init) + drv_i2c_enable_rx_dma 0x00014ca1 Thumb Code 26 drv_i2c_dma.o(i.drv_i2c_enable_rx_dma) + drv_i2c_enable_tx_dma 0x00014cbb Thumb Code 24 drv_i2c_dma.o(i.drv_i2c_enable_tx_dma) + drv_i2c_m_clear_it_pending_bit 0x00014cd5 Thumb Code 86 drv_i2c_master.o(i.drv_i2c_m_clear_it_pending_bit) + drv_i2c_m_enable 0x00014d35 Thumb Code 10 drv_i2c_master.o(i.drv_i2c_m_enable) + drv_i2c_m_enable_intr 0x00014d45 Thumb Code 42 drv_i2c_master.o(i.drv_i2c_m_enable_intr) + drv_i2c_master_init 0x00014d7d Thumb Code 118 drv_i2c_master.o(i.drv_i2c_master_init) + drv_i2c_master_read_dma 0x00014e09 Thumb Code 82 drv_i2c_dma.o(i.drv_i2c_master_read_dma) + drv_i2c_s_clear_it_pending_bit 0x00014e93 Thumb Code 66 drv_i2c_slave.o(i.drv_i2c_s_clear_it_pending_bit) + drv_i2c_s_config_intr 0x00014ed5 Thumb Code 4 drv_i2c_slave.o(i.drv_i2c_s_config_intr) + drv_i2c_s_enable 0x00014ed9 Thumb Code 8 drv_i2c_slave.o(i.drv_i2c_s_enable) + drv_i2c_s_get_fifo_status 0x00014ee1 Thumb Code 20 drv_i2c_slave.o(i.drv_i2c_s_get_fifo_status) + drv_i2c_s_set_intr 0x00014ef5 Thumb Code 74 drv_i2c_slave.o(i.drv_i2c_s_set_intr) + drv_i2c_s_write_data 0x00014f45 Thumb Code 28 drv_i2c_slave.o(i.drv_i2c_s_write_data) + drv_i2c_set_dma_irq_callback 0x00014f61 Thumb Code 68 drv_i2c_dma.o(i.drv_i2c_set_dma_irq_callback) + drv_i2c_slave_init 0x00014fb9 Thumb Code 50 drv_i2c_slave.o(i.drv_i2c_slave_init) + drv_i2c_slave_write_dma 0x00014fed Thumb Code 20 drv_i2c_dma.o(i.drv_i2c_slave_write_dma) + drv_lcdc_config_bypass 0x00015005 Thumb Code 24 drv_lcdc.o(i.drv_lcdc_config_bypass) + drv_lcdc_config_ccm 0x0001501d Thumb Code 48 drv_lcdc.o(i.drv_lcdc_config_ccm) + drv_lcdc_config_disp_mode 0x0001504d Thumb Code 22 drv_lcdc.o(i.drv_lcdc_config_disp_mode) + drv_lcdc_config_dpi_polarity 0x00015063 Thumb Code 36 drv_lcdc.o(i.drv_lcdc_config_dpi_polarity) + drv_lcdc_config_dpi_timing 0x00015087 Thumb Code 38 drv_lcdc.o(i.drv_lcdc_config_dpi_timing) + drv_lcdc_config_edpi_mode 0x000150ad Thumb Code 22 drv_lcdc.o(i.drv_lcdc_config_edpi_mode) + drv_lcdc_config_endianness 0x000150c3 Thumb Code 22 drv_lcdc.o(i.drv_lcdc_config_endianness) + drv_lcdc_config_input_size 0x000150d9 Thumb Code 12 drv_lcdc.o(i.drv_lcdc_config_input_size) + drv_lcdc_config_int 0x000150e5 Thumb Code 30 drv_lcdc.o(i.drv_lcdc_config_int) + drv_lcdc_config_int_single 0x00015103 Thumb Code 34 drv_lcdc.o(i.drv_lcdc_config_int_single) + drv_lcdc_config_overwrite 0x00015125 Thumb Code 34 drv_lcdc.o(i.drv_lcdc_config_overwrite) + drv_lcdc_config_overwrite_rgb 0x00015147 Thumb Code 12 drv_lcdc.o(i.drv_lcdc_config_overwrite_rgb) + drv_lcdc_config_partial_display_area 0x00015153 Thumb Code 26 drv_lcdc.o(i.drv_lcdc_config_partial_display_area) + drv_lcdc_config_partial_display_enable 0x0001516d Thumb Code 34 drv_lcdc.o(i.drv_lcdc_config_partial_display_enable) + drv_lcdc_config_scale_up_coef 0x0001518f Thumb Code 26 drv_lcdc.o(i.drv_lcdc_config_scale_up_coef) + drv_lcdc_config_scale_up_step 0x000151a9 Thumb Code 12 drv_lcdc.o(i.drv_lcdc_config_scale_up_step) + drv_lcdc_config_src_parameter 0x000151b5 Thumb Code 76 drv_lcdc.o(i.drv_lcdc_config_src_parameter) + drv_lcdc_config_thresh 0x00015201 Thumb Code 6 drv_lcdc.o(i.drv_lcdc_config_thresh) + drv_lcdc_ctrl_flow 0x00015207 Thumb Code 18 drv_lcdc.o(i.drv_lcdc_ctrl_flow) + drv_lcdc_enable_shadow_reg 0x00015219 Thumb Code 32 drv_lcdc.o(i.drv_lcdc_enable_shadow_reg) + drv_lcdc_set_int 0x00015239 Thumb Code 58 drv_lcdc.o(i.drv_lcdc_set_int) + drv_lcdc_set_prefetch 0x00015279 Thumb Code 24 drv_lcdc.o(i.drv_lcdc_set_prefetch) + drv_lcdc_set_video_hw_mode 0x00015291 Thumb Code 20 drv_lcdc.o(i.drv_lcdc_set_video_hw_mode) + drv_lcdc_start 0x000152a5 Thumb Code 32 drv_lcdc.o(i.drv_lcdc_start) + drv_memc_clear_status 0x000152c5 Thumb Code 12 drv_memc.o(i.drv_memc_clear_status) + drv_memc_enable_irq 0x000152d1 Thumb Code 58 drv_memc.o(i.drv_memc_enable_irq) + drv_memc_gen_a_tear_signal 0x00015311 Thumb Code 12 drv_memc.o(i.drv_memc_gen_a_tear_signal) + drv_memc_get_status 0x0001531d Thumb Code 18 drv_memc.o(i.drv_memc_get_status) + drv_memc_rate_transfer_sel 0x0001532f Thumb Code 16 drv_memc.o(i.drv_memc_rate_transfer_sel) + drv_memc_sel_vsync 0x0001533f Thumb Code 14 drv_memc.o(i.drv_memc_sel_vsync) + drv_memc_set_active_height 0x0001534d Thumb Code 14 drv_memc.o(i.drv_memc_set_active_height) + drv_memc_set_data_mode 0x00015361 Thumb Code 12 drv_memc.o(i.drv_memc_set_data_mode) + drv_memc_set_double_buffer 0x0001536d Thumb Code 16 drv_memc.o(i.drv_memc_set_double_buffer) + drv_memc_set_double_buffer_reverse 0x0001537d Thumb Code 18 drv_memc.o(i.drv_memc_set_double_buffer_reverse) + drv_memc_set_fs_en_conditions 0x0001538f Thumb Code 16 drv_memc.o(i.drv_memc_set_fs_en_conditions) + drv_memc_set_inten 0x0001539f Thumb Code 20 drv_memc.o(i.drv_memc_set_inten) + drv_memc_set_lcdc_st_conditions 0x000153b5 Thumb Code 18 drv_memc.o(i.drv_memc_set_lcdc_st_conditions) + drv_memc_set_ltpo_mode 0x000153cd Thumb Code 26 drv_memc.o(i.drv_memc_set_ltpo_mode) + drv_memc_set_tear_mode 0x000153e7 Thumb Code 14 drv_memc.o(i.drv_memc_set_tear_mode) + drv_memc_set_tear_waveform 0x000153f5 Thumb Code 34 drv_memc.o(i.drv_memc_set_tear_waveform) + drv_memc_set_vidc_sync_cnt 0x0001541d Thumb Code 14 drv_memc.o(i.drv_memc_set_vidc_sync_cnt) + drv_param_init_get_ccm 0x0001542d Thumb Code 4 drv_param_init.o(i.drv_param_init_get_ccm) + drv_param_init_get_scld_filter_h 0x00015435 Thumb Code 12 drv_param_init.o(i.drv_param_init_get_scld_filter_h) + drv_param_init_get_scld_filter_v 0x00015449 Thumb Code 12 drv_param_init.o(i.drv_param_init_get_scld_filter_v) + drv_param_init_get_sclu_filter 0x0001545d Thumb Code 4 drv_param_init.o(i.drv_param_init_get_sclu_filter) + drv_param_init_set_scld_filter 0x00015465 Thumb Code 92 drv_param_init.o(i.drv_param_init_set_scld_filter) + drv_param_p2r_filter_init 0x000154c9 Thumb Code 30 drv_param_init.o(i.drv_param_p2r_filter_init) + drv_phy_enable_calibration 0x000154ed Thumb Code 12 drv_phy_common.o(i.drv_phy_enable_calibration) + drv_phy_get_calibration 0x000154fd Thumb Code 50 drv_phy_common.o(i.drv_phy_get_calibration) + drv_phy_get_pll_para 0x00015539 Thumb Code 88 drv_phy_common.o(i.drv_phy_get_pll_para) + drv_phy_get_rate_para 0x00015599 Thumb Code 76 drv_phy_common.o(i.drv_phy_get_rate_para) + drv_phy_test_clear 0x000155ed Thumb Code 16 drv_phy_common.o(i.drv_phy_test_clear) + drv_phy_test_lock 0x000155fd Thumb Code 24 drv_phy_common.o(i.drv_phy_test_lock) + drv_phy_test_write_1_byte 0x00015615 Thumb Code 32 drv_phy_common.o(i.drv_phy_test_write_1_byte) + drv_phy_test_write_2_byte 0x00015635 Thumb Code 38 drv_phy_common.o(i.drv_phy_test_write_2_byte) + drv_phy_test_write_code 0x0001565b Thumb Code 30 drv_phy_common.o(i.drv_phy_test_write_code) + drv_pwm_out_enable 0x00015699 Thumb Code 26 drv_pwm.o(i.drv_pwm_out_enable) + drv_pwm_out_get_sync_flag 0x000156b9 Thumb Code 10 drv_pwm.o(i.drv_pwm_out_get_sync_flag) + drv_pwm_out_set_control 0x000156c9 Thumb Code 6 drv_pwm.o(i.drv_pwm_out_set_control) + drv_pwm_out_set_period 0x000156d5 Thumb Code 6 drv_pwm.o(i.drv_pwm_out_set_period) + drv_pwm_out_set_sync_mode 0x000156e1 Thumb Code 26 drv_pwm.o(i.drv_pwm_out_set_sync_mode) + drv_pwm_out_set_threshold 0x00015701 Thumb Code 8 drv_pwm.o(i.drv_pwm_out_set_threshold) + drv_pwr_set_pvd_mode 0x0001570d Thumb Code 18 drv_pwr.o(i.drv_pwr_set_pvd_mode) + drv_pwr_set_system_clk_src 0x00015725 Thumb Code 44 drv_pwr.o(i.drv_pwr_set_system_clk_src) + drv_rxbr_clear_pkt_buffer 0x000157a3 Thumb Code 10 drv_rxbr.o(i.drv_rxbr_clear_pkt_buffer) + drv_rxbr_clear_status0 0x000157ad Thumb Code 4 drv_rxbr.o(i.drv_rxbr_clear_status0) + drv_rxbr_enable_irq 0x000157b1 Thumb Code 90 drv_rxbr.o(i.drv_rxbr_enable_irq) + drv_rxbr_frame_drop_cfg 0x0001580d Thumb Code 16 drv_rxbr.o(i.drv_rxbr_frame_drop_cfg) + drv_rxbr_get_clk 0x00015821 Thumb Code 66 drv_rxbr.o(i.drv_rxbr_get_clk) + drv_rxbr_get_col_addr 0x00015885 Thumb Code 4 drv_rxbr.o(i.drv_rxbr_get_col_addr) + drv_rxbr_get_page_addr 0x0001589b Thumb Code 4 drv_rxbr.o(i.drv_rxbr_get_page_addr) + drv_rxbr_hline_rcv0_cfg 0x000158b1 Thumb Code 12 drv_rxbr.o(i.drv_rxbr_hline_rcv0_cfg) + drv_rxbr_hline_rcv_cfg 0x000158bd Thumb Code 8 drv_rxbr.o(i.drv_rxbr_hline_rcv_cfg) + drv_rxbr_register_irq0_callback 0x000158c5 Thumb Code 6 drv_rxbr.o(i.drv_rxbr_register_irq0_callback) + drv_rxbr_register_irq1_callback 0x000158d1 Thumb Code 6 drv_rxbr.o(i.drv_rxbr_register_irq1_callback) + drv_rxbr_set_cmd_filter 0x000158dd Thumb Code 204 drv_rxbr.o(i.drv_rxbr_set_cmd_filter) + drv_rxbr_set_color_format 0x000159a9 Thumb Code 20 drv_rxbr.o(i.drv_rxbr_set_color_format) + drv_rxbr_set_inten 0x000159bd Thumb Code 20 drv_rxbr.o(i.drv_rxbr_set_inten) + drv_rxbr_set_ltpo_drop_th 0x000159d1 Thumb Code 16 drv_rxbr.o(i.drv_rxbr_set_ltpo_drop_th) + drv_rxbr_set_usr_cfg 0x000159e1 Thumb Code 38 drv_rxbr.o(i.drv_rxbr_set_usr_cfg) + drv_rxbr_set_usr_col 0x00015a07 Thumb Code 8 drv_rxbr.o(i.drv_rxbr_set_usr_col) + drv_rxbr_set_usr_row 0x00015a0f Thumb Code 8 drv_rxbr.o(i.drv_rxbr_set_usr_row) + drv_spi_m_read_data 0x00015a19 Thumb Code 28 drv_spi_master.o(i.drv_spi_m_read_data) + drv_swire_set_int 0x00015a39 Thumb Code 76 drv_swire.o(i.drv_swire_set_int) + drv_sys_cfg_clear_all_int 0x00015a8d Thumb Code 8 drv_sys_cfg.o(i.drv_sys_cfg_clear_all_int) + drv_sys_cfg_clear_pending 0x00015a99 Thumb Code 32 drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) + drv_sys_cfg_sel_ap_rst_lvl_trig 0x00015ac1 Thumb Code 18 drv_sys_cfg.o(i.drv_sys_cfg_sel_ap_rst_lvl_trig) + drv_sys_cfg_sel_gpio_group 0x00015ad9 Thumb Code 30 drv_sys_cfg.o(i.drv_sys_cfg_sel_gpio_group) + drv_sys_cfg_sel_int_trig 0x00015afd Thumb Code 30 drv_sys_cfg.o(i.drv_sys_cfg_sel_int_trig) + drv_sys_cfg_set_dma_rx_req 0x00015b21 Thumb Code 10 drv_sys_cfg.o(i.drv_sys_cfg_set_dma_rx_req) + drv_sys_cfg_set_dma_tx_req 0x00015b31 Thumb Code 10 drv_sys_cfg.o(i.drv_sys_cfg_set_dma_tx_req) + drv_sys_cfg_set_int 0x00015b41 Thumb Code 30 drv_sys_cfg.o(i.drv_sys_cfg_set_int) + drv_timer_enable 0x00015b7f Thumb Code 32 drv_timer.o(i.drv_timer_enable) + drv_timer_get_instance 0x00015ba1 Thumb Code 10 drv_timer.o(i.drv_timer_get_instance) + drv_timer_get_prescaler 0x00015bb1 Thumb Code 12 drv_timer.o(i.drv_timer_get_prescaler) + drv_timer_register_callback 0x00015c05 Thumb Code 14 drv_timer.o(i.drv_timer_register_callback) + drv_timer_set_compare_val 0x00015c19 Thumb Code 16 drv_timer.o(i.drv_timer_set_compare_val) + drv_timer_set_int 0x00015c29 Thumb Code 80 drv_timer.o(i.drv_timer_set_int) + drv_timer_set_prescaler 0x00015c7d Thumb Code 36 drv_timer.o(i.drv_timer_set_prescaler) + drv_tx_phy_test_enter 0x00015caf Thumb Code 28 drv_dsi_tx.o(i.drv_tx_phy_test_enter) + drv_tx_phy_test_exit 0x00015ccb Thumb Code 28 drv_dsi_tx.o(i.drv_tx_phy_test_exit) + drv_vidc_clear_irq 0x00015d1d Thumb Code 8 drv_vidc.o(i.drv_vidc_clear_irq) + drv_vidc_enable 0x00015d25 Thumb Code 24 drv_vidc.o(i.drv_vidc_enable) + drv_vidc_enable_irq 0x00015d3d Thumb Code 58 drv_vidc.o(i.drv_vidc_enable_irq) + drv_vidc_get_irq_status 0x00015d7d Thumb Code 18 drv_vidc.o(i.drv_vidc_get_irq_status) + drv_vidc_init_module_enable 0x00015d91 Thumb Code 36 drv_vidc.o(i.drv_vidc_init_module_enable) + drv_vidc_register_callback 0x00015db9 Thumb Code 6 drv_vidc.o(i.drv_vidc_register_callback) + drv_vidc_reset 0x00015dc5 Thumb Code 6 drv_vidc.o(i.drv_vidc_reset) + drv_vidc_set_dst_parameter 0x00015dcb Thumb Code 60 drv_vidc.o(i.drv_vidc_set_dst_parameter) + drv_vidc_set_irqen 0x00015e07 Thumb Code 20 drv_vidc.o(i.drv_vidc_set_irqen) + drv_vidc_set_mirror 0x00015e1b Thumb Code 16 drv_vidc.o(i.drv_vidc_set_mirror) + drv_vidc_set_p2r_hcoef0 0x00015e2b Thumb Code 8 drv_vidc.o(i.drv_vidc_set_p2r_hcoef0) + drv_vidc_set_p2r_hinitb 0x00015e33 Thumb Code 38 drv_vidc.o(i.drv_vidc_set_p2r_hinitb) + drv_vidc_set_p2r_hinitr 0x00015e59 Thumb Code 38 drv_vidc.o(i.drv_vidc_set_p2r_hinitr) + drv_vidc_set_pentile_swap 0x00015e81 Thumb Code 18 drv_vidc.o(i.drv_vidc_set_pentile_swap) + drv_vidc_set_pu_ctrl 0x00015e99 Thumb Code 10 drv_vidc.o(i.drv_vidc_set_pu_ctrl) + drv_vidc_set_rotation 0x00015ea3 Thumb Code 16 drv_vidc.o(i.drv_vidc_set_rotation) + drv_vidc_set_scld_hcoef0 0x00015eb3 Thumb Code 10 drv_vidc.o(i.drv_vidc_set_scld_hcoef0) + drv_vidc_set_scld_hcoef1 0x00015ebd Thumb Code 10 drv_vidc.o(i.drv_vidc_set_scld_hcoef1) + drv_vidc_set_scld_step 0x00015ec7 Thumb Code 18 drv_vidc.o(i.drv_vidc_set_scld_step) + drv_vidc_set_scld_vcoef0 0x00015ed9 Thumb Code 10 drv_vidc.o(i.drv_vidc_set_scld_vcoef0) + drv_vidc_set_scld_vcoef1 0x00015ee3 Thumb Code 10 drv_vidc.o(i.drv_vidc_set_scld_vcoef1) + drv_vidc_set_src_parameter 0x00015eed Thumb Code 22 drv_vidc.o(i.drv_vidc_set_src_parameter) + drv_wdg_clear_counter 0x00015f05 Thumb Code 12 drv_wdg.o(i.drv_wdg_clear_counter) + drv_wdg_set_int 0x00015f35 Thumb Code 60 drv_wdg.o(i.drv_wdg_set_int) + fls_clr_interrupt_flag 0x00015f75 Thumb Code 10 drv_fls.o(i.fls_clr_interrupt_flag) + fputc 0x00015f7f Thumb Code 20 tau_log.o(i.fputc) + hal_dsi_rx_ctrl_create_handle 0x00015f95 Thumb Code 48 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_create_handle) + hal_dsi_rx_ctrl_dsc_async_handler 0x00015fc9 Thumb Code 120 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_dsc_async_handler) + hal_dsi_rx_ctrl_gen_a_tear_signal 0x0001604d Thumb Code 32 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_gen_a_tear_signal) + hal_dsi_rx_ctrl_init 0x00016075 Thumb Code 88 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init) + hal_dsi_rx_ctrl_set_cus_scld_filter 0x00016811 Thumb Code 98 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_cus_scld_filter) + hal_dsi_rx_ctrl_set_cus_sync_line 0x0001687d Thumb Code 44 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_cus_sync_line) + hal_dsi_rx_ctrl_start 0x0001695d Thumb Code 46 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_start) + hal_dsi_rx_ctrl_toggle_resolution 0x00016999 Thumb Code 28 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_toggle_resolution) + hal_dsi_tx_crop_pic 0x00016fcd Thumb Code 144 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_crop_pic) + hal_dsi_tx_ctrl_create_handle 0x00017061 Thumb Code 34 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_create_handle) + hal_dsi_tx_ctrl_enter_init_panel_mode 0x0001708d Thumb Code 68 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_enter_init_panel_mode) + hal_dsi_tx_ctrl_exit_init_panel_mode 0x000170d9 Thumb Code 32 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_exit_init_panel_mode) + hal_dsi_tx_ctrl_init 0x00017101 Thumb Code 154 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_init) + hal_dsi_tx_ctrl_panel_reset_pin 0x000171c9 Thumb Code 12 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_panel_reset_pin) + hal_dsi_tx_ctrl_set_overwrite_rgb 0x000171d5 Thumb Code 16 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_overwrite_rgb) + hal_dsi_tx_ctrl_set_partial_disp 0x000171e9 Thumb Code 12 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_partial_disp) + hal_dsi_tx_ctrl_set_partial_disp_area 0x000171f9 Thumb Code 30 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_partial_disp_area) + hal_dsi_tx_ctrl_start 0x0001721d Thumb Code 140 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_start) + hal_dsi_tx_ctrl_write_cmd 0x000172b9 Thumb Code 172 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_write_cmd) + hal_gpio_ctrl_eint 0x0001754d Thumb Code 18 hal_gpio.o(i.hal_gpio_ctrl_eint) + hal_gpio_get_input_data 0x00017565 Thumb Code 18 hal_gpio.o(i.hal_gpio_get_input_data) + hal_gpio_init_eint 0x00017579 Thumb Code 58 hal_gpio.o(i.hal_gpio_init_eint) + hal_gpio_init_output 0x000175b9 Thumb Code 34 hal_gpio.o(i.hal_gpio_init_output) + hal_gpio_reg_eint_cb 0x000175e1 Thumb Code 20 hal_gpio.o(i.hal_gpio_reg_eint_cb) + hal_gpio_set_mode 0x000175f9 Thumb Code 90 hal_gpio.o(i.hal_gpio_set_mode) + hal_gpio_set_output_data 0x00017659 Thumb Code 8 hal_gpio.o(i.hal_gpio_set_output_data) + hal_gpio_set_pull_state 0x00017661 Thumb Code 26 hal_gpio.o(i.hal_gpio_set_pull_state) + hal_i2c_m_dma_init 0x00017681 Thumb Code 92 hal_i2c_master.o(i.hal_i2c_m_dma_init) + hal_i2c_m_dma_read 0x000176ed Thumb Code 26 hal_i2c_master.o(i.hal_i2c_m_dma_read) + hal_i2c_m_transfer_complate 0x0001770d Thumb Code 6 hal_i2c_master.o(i.hal_i2c_m_transfer_complate) + hal_i2c_s_dma_write 0x00017749 Thumb Code 62 hal_i2c_slave.o(i.hal_i2c_s_dma_write) + hal_i2c_s_init 0x00017795 Thumb Code 176 hal_i2c_slave.o(i.hal_i2c_s_init) + hal_i2c_s_nonblocking_read 0x0001785d Thumb Code 14 hal_i2c_slave.o(i.hal_i2c_s_nonblocking_read) + hal_i2c_s_set_transfer 0x00017871 Thumb Code 6 hal_i2c_slave.o(i.hal_i2c_s_set_transfer) + hal_internal_init_memc 0x000179f1 Thumb Code 170 hal_internal_vsync.o(i.hal_internal_init_memc) + hal_internal_sync_get_fb_setting 0x00017aed Thumb Code 12 hal_internal_vsync.o(i.hal_internal_sync_get_fb_setting) + hal_internal_sync_get_hight_performan_mode 0x00017afd Thumb Code 10 hal_internal_vsync.o(i.hal_internal_sync_get_hight_performan_mode) + hal_internal_sync_input_resolution_change 0x00017b0d Thumb Code 438 hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change) + hal_internal_vsync_deinit 0x00017d39 Thumb Code 30 hal_internal_vsync.o(i.hal_internal_vsync_deinit) + hal_internal_vsync_get_sync_line 0x00017d61 Thumb Code 18 hal_internal_vsync.o(i.hal_internal_vsync_get_sync_line) + hal_internal_vsync_get_tear_mode 0x00017d79 Thumb Code 6 hal_internal_vsync.o(i.hal_internal_vsync_get_tear_mode) + hal_internal_vsync_init_rx 0x00017d85 Thumb Code 236 hal_internal_vsync.o(i.hal_internal_vsync_init_rx) + hal_internal_vsync_init_tx 0x00017e9d Thumb Code 172 hal_internal_vsync.o(i.hal_internal_vsync_init_tx) + hal_internal_vsync_set_auto_hw_filter 0x00017f4d Thumb Code 222 hal_internal_vsync.o(i.hal_internal_vsync_set_auto_hw_filter) + hal_internal_vsync_set_rx_state 0x00018069 Thumb Code 16 hal_internal_vsync.o(i.hal_internal_vsync_set_rx_state) + hal_internal_vsync_set_sync_line 0x0001807d Thumb Code 30 hal_internal_vsync.o(i.hal_internal_vsync_set_sync_line) + hal_internal_vsync_set_tx_state 0x000180a1 Thumb Code 118 hal_internal_vsync.o(i.hal_internal_vsync_set_tx_state) + hal_internal_vsync_update_lcdc_addr 0x00018121 Thumb Code 42 hal_internal_vsync.o(i.hal_internal_vsync_update_lcdc_addr) + hal_pwm_out_config_all 0x00018589 Thumb Code 16 hal_pwm.o(i.hal_pwm_out_config_all) + hal_pwm_out_init 0x0001863d Thumb Code 12 hal_pwm.o(i.hal_pwm_out_init) + hal_pwm_out_sel_io 0x00018649 Thumb Code 38 hal_pwm.o(i.hal_pwm_out_sel_io) + hal_pwm_out_sync_thr 0x00018671 Thumb Code 44 hal_pwm.o(i.hal_pwm_out_sync_thr) + hal_spi_m_clear_rxfifo 0x000186a5 Thumb Code 14 hal_spi_master.o(i.hal_spi_m_clear_rxfifo) + hal_system_enable_systick 0x000186b3 Thumb Code 8 hal_system.o(i.hal_system_enable_systick) + hal_system_init 0x000186bd Thumb Code 104 hal_system.o(i.hal_system_init) + hal_system_init_console 0x00018745 Thumb Code 28 hal_system.o(i.hal_system_init_console) + hal_system_set_phy_calibration 0x00018761 Thumb Code 8 hal_system.o(i.hal_system_set_phy_calibration) + hal_system_share_flash_mode 0x00018769 Thumb Code 20 hal_system.o(i.hal_system_share_flash_mode) + hal_timer_init 0x0001877d Thumb Code 26 hal_timer.o(i.hal_timer_init) + hal_timer_start 0x00018799 Thumb Code 66 hal_timer.o(i.hal_timer_start) + hal_uart_init 0x000187e1 Thumb Code 126 hal_uart.o(i.hal_uart_init) + hal_uart_transmit_blocking 0x0001886d Thumb Code 12 hal_uart.o(i.hal_uart_transmit_blocking) + handle_init 0x0001887d Thumb Code 140 irq_redirect .o(i.handle_init) + main 0x0001a2bf Thumb Code 16 main.o(i.main) + sqrt 0x0001af6d Thumb Code 66 sqrt.o(i.sqrt) + tp_int_high_timer_init 0x0001b03d Thumb Code 22 app_tp_for_custom_mi8se.o(i.tp_int_high_timer_init) + phone_data_86_0 0x0001b4d4 Data 8 app_tp_for_custom_mi8se.o(.constdata) + phone_data_86_1 0x0001b4dc Data 8 app_tp_for_custom_mi8se.o(.constdata) + phone_data_86_2 0x0001b4e4 Data 8 app_tp_for_custom_mi8se.o(.constdata) + phone_data_86_3 0x0001b4ec Data 8 app_tp_for_custom_mi8se.o(.constdata) + phone_data_86_4 0x0001b4f4 Data 8 app_tp_for_custom_mi8se.o(.constdata) + phone_data_86_5 0x0001b4fc Data 8 app_tp_for_custom_mi8se.o(.constdata) + phone_data_86_6 0x0001b504 Data 8 app_tp_for_custom_mi8se.o(.constdata) + phone_data_86_7 0x0001b50c Data 8 app_tp_for_custom_mi8se.o(.constdata) + phone_data_86_8 0x0001b514 Data 8 app_tp_for_custom_mi8se.o(.constdata) + phone_data_86_9 0x0001b51c Data 8 app_tp_for_custom_mi8se.o(.constdata) + phone_data_86_10 0x0001b524 Data 8 app_tp_for_custom_mi8se.o(.constdata) + phone_data_86_11 0x0001b52c Data 8 app_tp_for_custom_mi8se.o(.constdata) + phone_data_86_12 0x0001b534 Data 8 app_tp_for_custom_mi8se.o(.constdata) + phone_data_86_13 0x0001b53c Data 8 app_tp_for_custom_mi8se.o(.constdata) + phone_data_86_14 0x0001b544 Data 8 app_tp_for_custom_mi8se.o(.constdata) + phone_data_86_15 0x0001b54c Data 8 app_tp_for_custom_mi8se.o(.constdata) + phone_data_86_16 0x0001b554 Data 8 app_tp_for_custom_mi8se.o(.constdata) + phone_data_86_17 0x0001b55c Data 8 app_tp_for_custom_mi8se.o(.constdata) + phone_data_86_18 0x0001b564 Data 8 app_tp_for_custom_mi8se.o(.constdata) + phone_data_86_19 0x0001b56c Data 8 app_tp_for_custom_mi8se.o(.constdata) + phone_data_86_20 0x0001b574 Data 8 app_tp_for_custom_mi8se.o(.constdata) + phone_data_86_21 0x0001b57c Data 8 app_tp_for_custom_mi8se.o(.constdata) + phone_data_86_1800 0x0001b584 Data 8 app_tp_for_custom_mi8se.o(.constdata) + phone_data_86_4000 0x0001b58c Data 8 app_tp_for_custom_mi8se.o(.constdata) + phone_data_A6_0 0x0001b594 Data 208 app_tp_for_custom_mi8se.o(.constdata) + phone_data_A6_1 0x0001b664 Data 4 app_tp_for_custom_mi8se.o(.constdata) + phone_data_A6_2 0x0001b668 Data 28 app_tp_for_custom_mi8se.o(.constdata) + phone_data_A6_3 0x0001b684 Data 4 app_tp_for_custom_mi8se.o(.constdata) + phone_data_A6_4 0x0001b688 Data 28 app_tp_for_custom_mi8se.o(.constdata) + phone_data_A6_5 0x0001b6a4 Data 4 app_tp_for_custom_mi8se.o(.constdata) + phone_data_A6_6 0x0001b6a8 Data 208 app_tp_for_custom_mi8se.o(.constdata) + phone_data_FA_0 0x0001b778 Data 1 app_tp_for_custom_mi8se.o(.constdata) + phone_data_FA_1 0x0001b779 Data 2 app_tp_for_custom_mi8se.o(.constdata) + phone_data_FA_2 0x0001b77b Data 2 app_tp_for_custom_mi8se.o(.constdata) + phone_data_43 0x0001b77d Data 8 app_tp_for_custom_mi8se.o(.constdata) + screen_87_data 0x0001b785 Data 1 app_tp_for_custom_mi8se.o(.constdata) + screen_a0_00_ff_data 0x0001b786 Data 3 app_tp_for_custom_mi8se.o(.constdata) + screen_a4_06_c1_data 0x0001b789 Data 3 app_tp_for_custom_mi8se.o(.constdata) + screen_reg_int_data_size 0x0001b78c Data 1 app_tp_for_custom_mi8se.o(.constdata) + screen_reg_start_data_size 0x0001b78d Data 1 app_tp_for_custom_mi8se.o(.constdata) + Region$$Table$$Base 0x0001bb88 Number 0 anon$$obj.o(Region$$Table) + Region$$Table$$Limit 0x0001bbb8 Number 0 anon$$obj.o(Region$$Table) + g_fun_handle 0x00070100 Data 192 irq_redirect .o(.ARM.__AT_0x00070100) + read_bl_data 0x000701dc Data 2 ap_demo.o(.data) + read_bl_data_bak 0x000701de Data 2 ap_demo.o(.data) + rx_filter_1080_h_4_70 0x000701e4 Data 256 ap_demo.o(.data) + rx_filter_2240_v_4_70 0x000702e4 Data 256 ap_demo.o(.data) + phone_data_B1 0x000703e4 Data 2 app_tp_for_custom_mi8se.o(.data) + tp_flag 0x000703e6 Data 1 app_tp_for_custom_mi8se.o(.data) + s8_host_num 0x000703e7 Data 11 app_tp_for_custom_mi8se.o(.data) + s8_host_id 0x000703f2 Data 10 app_tp_for_custom_mi8se.o(.data) + g_screen_input_rst_pad 0x000703fc Data 1 app_tp_for_custom_mi8se.o(.data) + g_screen_input_int_pad 0x000703fd Data 1 app_tp_for_custom_mi8se.o(.data) + g_phone_input_rst_pad 0x000703fe Data 1 app_tp_for_custom_mi8se.o(.data) + g_phone_output_int_pad 0x000703ff Data 1 app_tp_for_custom_mi8se.o(.data) + Flag_EA_EN 0x00070400 Data 1 app_tp_for_custom_mi8se.o(.data) + Flag_touch_count 0x00070401 Data 1 app_tp_for_custom_mi8se.o(.data) + touch_send_flag 0x00070402 Data 1 app_tp_for_custom_mi8se.o(.data) + touch_recv_flag 0x00070403 Data 1 app_tp_for_custom_mi8se.o(.data) + touchnum_bak 0x00070404 Data 1 app_tp_for_custom_mi8se.o(.data) + Flag_blacklight_EN 0x00070405 Data 1 app_tp_for_custom_mi8se.o(.data) + first_touch 0x00070406 Data 2 app_tp_for_custom_mi8se.o(.data) + first_send 0x00070408 Data 2 app_tp_for_custom_mi8se.o(.data) + flnger_state_flg 0x0007040a Data 2 app_tp_for_custom_mi8se.o(.data) + screen_data_write_1 0x0007040c Data 1 app_tp_for_custom_mi8se.o(.data) + screen_data_write_2 0x0007040d Data 1 app_tp_for_custom_mi8se.o(.data) + screen_data_write_3 0x0007040e Data 1 app_tp_for_custom_mi8se.o(.data) + screen_data_write_4 0x0007040f Data 2 app_tp_for_custom_mi8se.o(.data) + screen_data_write_5 0x00070411 Data 2 app_tp_for_custom_mi8se.o(.data) + screen_data_write_6 0x00070413 Data 2 app_tp_for_custom_mi8se.o(.data) + screen_data_write_7 0x00070415 Data 2 app_tp_for_custom_mi8se.o(.data) + screen_data_write_8 0x00070417 Data 2 app_tp_for_custom_mi8se.o(.data) + screen_data_write_9 0x00070419 Data 2 app_tp_for_custom_mi8se.o(.data) + screen_data_write_10 0x0007041b Data 2 app_tp_for_custom_mi8se.o(.data) + screen_data_write_11 0x0007041d Data 1 app_tp_for_custom_mi8se.o(.data) + screen_data_write_12 0x0007041e Data 1 app_tp_for_custom_mi8se.o(.data) + screen_reg_int_data 0x00070420 Data 48 app_tp_for_custom_mi8se.o(.data) + screen_reg_start_data 0x00070450 Data 64 app_tp_for_custom_mi8se.o(.data) + phone_reg_point_data 0x00070490 Data 3 app_tp_for_custom_mi8se.o(.data) + phone_reg_point_back 0x00070493 Data 2 app_tp_for_custom_mi8se.o(.data) + phone_reg_coord_data 0x00070495 Data 1 app_tp_for_custom_mi8se.o(.data) + phone_reg_int_data 0x00070498 Data 32 app_tp_for_custom_mi8se.o(.data) + phone_reg_int_size 0x000704b8 Data 1 app_tp_for_custom_mi8se.o(.data) + phone_reg_const_data 0x000704bc Data 0 app_tp_for_custom_mi8se.o(.data) + phone_reg_const_data_size 0x000704bd Data 1 app_tp_for_custom_mi8se.o(.data) + read_point 0x000704cc Data 1 app_tp_transfer.o(.data) + s_screen_number 0x000704cd Data 2 app_tp_transfer.o(.data) + s_screen_temp 0x000704cf Data 2 app_tp_transfer.o(.data) + s_slave_txbuffer 0x000704d4 Data 4 app_tp_transfer.o(.data) + s_screen_init_complate 0x000704e0 Data 1 app_tp_transfer.o(.data) + u16TouchID 0x000704e2 Data 2 app_tp_transfer.o(.data) + g_fls_w_cmd 0x00070518 Data 1 norflash.o(.data) + g_fls_r_cmd 0x00070519 Data 1 norflash.o(.data) + g_fls_write_en_status 0x0007051a Data 1 norflash.o(.data) + isFlsTransferEnd 0x0007051b Data 1 norflash.o(.data) + isFlsFifoReq 0x0007051c Data 1 norflash.o(.data) + isNandWriteCompleted 0x0007051d Data 1 norflash.o(.data) + isNandReadCompleted 0x0007051e Data 1 norflash.o(.data) + g_fls_error_info 0x00070524 Data 6 norflash.o(.data) + g_systick_cb_func 0x00070530 Data 4 drv_common.o(.data) + g_system_clock 0x00070534 Data 4 drv_common.o(.data) + g_scld_fhd_filter_h 0x0007054c Data 256 drv_param_init.o(.data) + g_scld_fhd_filter_v 0x0007064c Data 256 drv_param_init.o(.data) + g_scld_hd_filter_h 0x0007074c Data 256 drv_param_init.o(.data) + g_scld_hd_filter_v 0x0007084c Data 256 drv_param_init.o(.data) + g_sclu_lanczos_filter 0x0007094c Data 128 drv_param_init.o(.data) + g_ccm_setting 0x000709cc Data 36 drv_param_init.o(.data) + g_sof_gen_te_func 0x00070a64 Data 4 hal_internal_vsync.o(.data) + g_int_rxbr_irq0_cb_func 0x00070a68 Data 4 drv_rxbr.o(.data) + g_int_rxbr_irq1_cb_func 0x00070a6c Data 4 drv_rxbr.o(.data) + g_int_vidc_cb_func 0x00070a70 Data 4 drv_vidc.o(.data) + __stdout 0x00070a98 Data 4 stdout.o(.data) + phone_reg_coord_back 0x00070aa0 Data 80 app_tp_for_custom_mi8se.o(.bss) + s_screen_read_bak 0x00070af0 Data 80 app_tp_transfer.o(.bss) + tp_scan_data 0x00070cd0 Data 12 app_tp_transfer.o(.bss) + string 0x00070dec Data 256 tau_log.o(.bss) + hal_dmahandle 0x00070eec Data 160 hal_uart.o(.bss) + hal_uarthandle_dma 0x00070f8c Data 32 hal_uart.o(.bss) + hal_uart_handle_global 0x00070fac Data 16 hal_uart.o(.bss) + g_vsync_hande 0x00071158 Data 80 hal_internal_vsync.o(.bss) + g_dcs_execute_table 0x000711a8 Data 2048 hal_internal_vsync.o(.bss) + g_packet_fifo 0x00071ac8 Data 4144 dcs_packet_fifo.o(.bss) + g_spis_ctrl_handle 0x00072af8 Data 32 hal_spi_slave.o(.bss) + __stack_limit 0x00072b18 Data 0 startup_armcm0.o(STACK) + __initial_sp 0x00073b18 Data 0 startup_armcm0.o(STACK) + + + +============================================================================== + +Memory Map of the image + + Image Entry point : 0x000100c1 + + Load Region LR_IROM2 (Base: 0x00010000, Size: 0x0000c488, Max: 0x00010000, ABSOLUTE, COMPRESSED[0x0000c12c]) + + Execution Region ER_IROM2 (Exec base: 0x00010000, Load base: 0x00010000, Size: 0x0000bbb8, Max: 0x00010000, ABSOLUTE) + + Exec Addr Load Addr Size Type Attr Idx E Section Name Object + + 0x00010000 0x00010000 0x000000c0 Data RO 494 RESET startup_armcm0.o + 0x000100c0 0x000100c0 0x00000000 Code RO 2574 * .ARM.Collect$$$$00000000 mc_p.l(entry.o) + 0x000100c0 0x000100c0 0x00000004 Code RO 2884 .ARM.Collect$$$$00000001 mc_p.l(entry2.o) + 0x000100c4 0x000100c4 0x00000004 Code RO 2887 .ARM.Collect$$$$00000004 mc_p.l(entry5.o) + 0x000100c8 0x000100c8 0x00000000 Code RO 2889 .ARM.Collect$$$$00000008 mc_p.l(entry7b.o) + 0x000100c8 0x000100c8 0x00000000 Code RO 2891 .ARM.Collect$$$$0000000A mc_p.l(entry8b.o) + 0x000100c8 0x000100c8 0x00000008 Code RO 2892 .ARM.Collect$$$$0000000B mc_p.l(entry9a.o) + 0x000100d0 0x000100d0 0x00000000 Code RO 2894 .ARM.Collect$$$$0000000D mc_p.l(entry10a.o) + 0x000100d0 0x000100d0 0x00000000 Code RO 2896 .ARM.Collect$$$$0000000F mc_p.l(entry11a.o) + 0x000100d0 0x000100d0 0x00000004 Code RO 2885 .ARM.Collect$$$$00002712 mc_p.l(entry2.o) + 0x000100d4 0x000100d4 0x00000078 Code RO 495 .text startup_armcm0.o + 0x0001014c 0x0001014c 0x0000002c Code RO 2577 .text mc_p.l(uidiv.o) + 0x00010178 0x00010178 0x00000028 Code RO 2579 .text mc_p.l(idiv.o) + 0x000101a0 0x000101a0 0x00000024 Code RO 2581 .text mc_p.l(memcpya.o) + 0x000101c4 0x000101c4 0x00000024 Code RO 2583 .text mc_p.l(memseta.o) + 0x000101e8 0x000101e8 0x000000b2 Code RO 2848 .text mf_p.l(fadd.o) + 0x0001029a 0x0001029a 0x0000007a Code RO 2850 .text mf_p.l(fmul.o) + 0x00010314 0x00010314 0x0000007c Code RO 2852 .text mf_p.l(fdiv.o) + 0x00010390 0x00010390 0x00000018 Code RO 2854 .text mf_p.l(fscalb.o) + 0x000103a8 0x000103a8 0x00000164 Code RO 2856 .text mf_p.l(dadd.o) + 0x0001050c 0x0001050c 0x000000d0 Code RO 2858 .text mf_p.l(dmul.o) + 0x000105dc 0x000105dc 0x000000f0 Code RO 2860 .text mf_p.l(ddiv.o) + 0x000106cc 0x000106cc 0x00000016 Code RO 2862 .text mf_p.l(fflti.o) + 0x000106e2 0x000106e2 0x0000000e Code RO 2864 .text mf_p.l(ffltui.o) + 0x000106f0 0x000106f0 0x0000001c Code RO 2868 .text mf_p.l(dfltui.o) + 0x0001070c 0x0001070c 0x00000032 Code RO 2870 .text mf_p.l(ffixi.o) + 0x0001073e 0x0001073e 0x00000028 Code RO 2872 .text mf_p.l(ffixui.o) + 0x00010766 0x00010766 0x00000002 PAD + 0x00010768 0x00010768 0x00000048 Code RO 2874 .text mf_p.l(dfixi.o) + 0x000107b0 0x000107b0 0x0000003c Code RO 2876 .text mf_p.l(dfixui.o) + 0x000107ec 0x000107ec 0x00000028 Code RO 2878 .text mf_p.l(f2d.o) + 0x00010814 0x00010814 0x00000028 Code RO 2880 .text mf_p.l(cdcmple.o) + 0x0001083c 0x0001083c 0x00000014 Code RO 2882 .text mf_p.l(cfrcmple.o) + 0x00010850 0x00010850 0x00000060 Code RO 2899 .text mc_p.l(uldiv.o) + 0x000108b0 0x000108b0 0x00000020 Code RO 2901 .text mc_p.l(llshl.o) + 0x000108d0 0x000108d0 0x00000022 Code RO 2903 .text mc_p.l(llushr.o) + 0x000108f2 0x000108f2 0x00000026 Code RO 2905 .text mc_p.l(llsshr.o) + 0x00010918 0x00010918 0x00000000 Code RO 2914 .text mc_p.l(iusefp.o) + 0x00010918 0x00010918 0x00000082 Code RO 2915 .text mf_p.l(fepilogue.o) + 0x0001099a 0x0001099a 0x000000be Code RO 2917 .text mf_p.l(depilogue.o) + 0x00010a58 0x00010a58 0x000000a2 Code RO 2921 .text mf_p.l(dsqrt.o) + 0x00010afa 0x00010afa 0x00000002 PAD + 0x00010afc 0x00010afc 0x00000040 Code RO 2923 .text mf_p.l(dfixul.o) + 0x00010b3c 0x00010b3c 0x00000028 Code RO 2925 .text mf_p.l(cdrcmple.o) + 0x00010b64 0x00010b64 0x00000024 Code RO 2927 .text mc_p.l(init.o) + 0x00010b88 0x00010b88 0x00000056 Code RO 2937 .text mc_p.l(__dczerorl2.o) + 0x00010bde 0x00010bde 0x00000002 PAD + 0x00010be0 0x00010be0 0x00000018 Code RO 2208 i.ADC_IRQn_Handler CVWL368.lib(irq_redirect .o) + 0x00010bf8 0x00010bf8 0x00000018 Code RO 2209 i.AP_NRESET_IRQn_Handler CVWL368.lib(irq_redirect .o) + 0x00010c10 0x00010c10 0x0000003a Code RO 97 i.AP_SWIRE_init ap_demo.o + 0x00010c4a 0x00010c4a 0x00000002 PAD + 0x00010c4c 0x00010c4c 0x00000014 Code RO 2210 i.DMA_IRQn_Handler CVWL368.lib(irq_redirect .o) + 0x00010c60 0x00010c60 0x0000001c Code RO 2211 i.EXTI_INT0_IRQn_Handler CVWL368.lib(irq_redirect .o) + 0x00010c7c 0x00010c7c 0x0000001c Code RO 2212 i.EXTI_INT1_IRQn_Handler CVWL368.lib(irq_redirect .o) + 0x00010c98 0x00010c98 0x0000001c Code RO 2213 i.EXTI_INT2_IRQn_Handler CVWL368.lib(irq_redirect .o) + 0x00010cb4 0x00010cb4 0x0000001c Code RO 2214 i.EXTI_INT3_IRQn_Handler CVWL368.lib(irq_redirect .o) + 0x00010cd0 0x00010cd0 0x0000001c Code RO 2215 i.EXTI_INT4_IRQn_Handler CVWL368.lib(irq_redirect .o) + 0x00010cec 0x00010cec 0x0000001c Code RO 2216 i.EXTI_INT5_IRQn_Handler CVWL368.lib(irq_redirect .o) + 0x00010d08 0x00010d08 0x0000001c Code RO 2217 i.EXTI_INT6_IRQn_Handler CVWL368.lib(irq_redirect .o) + 0x00010d24 0x00010d24 0x0000001c Code RO 2218 i.EXTI_INT7_IRQn_Handler CVWL368.lib(irq_redirect .o) + 0x00010d40 0x00010d40 0x00000014 Code RO 2219 i.FLSCTRL_IRQn_Handler CVWL368.lib(irq_redirect .o) + 0x00010d54 0x00010d54 0x00000014 Code RO 2220 i.HardFault_Handler CVWL368.lib(irq_redirect .o) + 0x00010d68 0x00010d68 0x00000018 Code RO 2221 i.I2C0_IRQn_Handler CVWL368.lib(irq_redirect .o) + 0x00010d80 0x00010d80 0x00000018 Code RO 2222 i.I2C1_IRQn_Handler CVWL368.lib(irq_redirect .o) + 0x00010d98 0x00010d98 0x00000018 Code RO 2223 i.LCDC_IRQn_Handler CVWL368.lib(irq_redirect .o) + 0x00010db0 0x00010db0 0x00000028 Code RO 956 i.LOG_printf CVWL368.lib(tau_log.o) + 0x00010dd8 0x00010dd8 0x00000018 Code RO 2224 i.MEMC_IRQn_Handler CVWL368.lib(irq_redirect .o) + 0x00010df0 0x00010df0 0x00000018 Code RO 2225 i.MIPI_RX_IRQn_Handler CVWL368.lib(irq_redirect .o) + 0x00010e08 0x00010e08 0x00000018 Code RO 2226 i.MIPI_TX_IRQn_Handler CVWL368.lib(irq_redirect .o) + 0x00010e20 0x00010e20 0x0000001c Code RO 2227 i.PWMDET_IRQn_Handler CVWL368.lib(irq_redirect .o) + 0x00010e3c 0x00010e3c 0x00000034 Code RO 98 i.PWM_Task ap_demo.o + 0x00010e70 0x00010e70 0x0000001a Code RO 99 i.PWM_init ap_demo.o + 0x00010e8a 0x00010e8a 0x00000002 PAD + 0x00010e8c 0x00010e8c 0x0000001c Code RO 2228 i.SPIM_IRQn_Handler CVWL368.lib(irq_redirect .o) + 0x00010ea8 0x00010ea8 0x0000001c Code RO 2229 i.SPIS_IRQn_Handler CVWL368.lib(irq_redirect .o) + 0x00010ec4 0x00010ec4 0x0000001c Code RO 2230 i.SWIRE_IRQn_Handler CVWL368.lib(irq_redirect .o) + 0x00010ee0 0x00010ee0 0x00000018 Code RO 2231 i.SysTick_Handler CVWL368.lib(irq_redirect .o) + 0x00010ef8 0x00010ef8 0x00000018 Code RO 2232 i.TIMER0_IRQn_Handler CVWL368.lib(irq_redirect .o) + 0x00010f10 0x00010f10 0x00000018 Code RO 2233 i.TIMER1_IRQn_Handler CVWL368.lib(irq_redirect .o) + 0x00010f28 0x00010f28 0x00000018 Code RO 2234 i.TIMER2_IRQn_Handler CVWL368.lib(irq_redirect .o) + 0x00010f40 0x00010f40 0x00000018 Code RO 2235 i.TIMER3_IRQn_Handler CVWL368.lib(irq_redirect .o) + 0x00010f58 0x00010f58 0x0000001c Code RO 2452 i.UART0_IRQ_Handle CVWL368.lib(drv_uart.o) + 0x00010f74 0x00010f74 0x00000002 Code RO 2456 i.UART_DisableDma CVWL368.lib(drv_uart.o) + 0x00010f76 0x00010f76 0x00000004 Code RO 2462 i.UART_GetInstance CVWL368.lib(drv_uart.o) + 0x00010f7a 0x00010f7a 0x00000002 PAD + 0x00010f7c 0x00010f7c 0x00000018 Code RO 2236 i.UART_IRQn_Handler CVWL368.lib(irq_redirect .o) + 0x00010f94 0x00010f94 0x00000024 Code RO 2470 i.UART_ResetRxFIFO CVWL368.lib(drv_uart.o) + 0x00010fb8 0x00010fb8 0x00000048 Code RO 2473 i.UART_SetBaudRate CVWL368.lib(drv_uart.o) + 0x00011000 0x00011000 0x00000014 Data RO 1078 .ARM.__at_0x11000 CVWL368.lib(drv_common.o) + 0x00011014 0x00011014 0x00000002 Code RO 2932 i.__scatterload_null mc_p.l(handlers.o) + 0x00011016 0x00011016 0x00000002 PAD + 0x00011018 0x00011018 0x00000004 Data RO 1079 .ARM.__at_0x11018 CVWL368.lib(drv_common.o) + 0x0001101c 0x0001101c 0x0000001a Code RO 2474 i.UART_SwitchSCLK CVWL368.lib(drv_uart.o) + 0x00011036 0x00011036 0x00000134 Code RO 2476 i.UART_TransferHandleIRQ CVWL368.lib(drv_uart.o) + 0x0001116a 0x0001116a 0x0000001a Code RO 2478 i.UART_WriteBlocking CVWL368.lib(drv_uart.o) + 0x00011184 0x00011184 0x000000bc Code RO 2479 i.UART_init CVWL368.lib(drv_uart.o) + 0x00011240 0x00011240 0x00000018 Code RO 2237 i.VIDC_IRQn_Handler CVWL368.lib(irq_redirect .o) + 0x00011258 0x00011258 0x00000018 Code RO 2238 i.VPRE_IRQn_Handler CVWL368.lib(irq_redirect .o) + 0x00011270 0x00011270 0x00000018 Code RO 2239 i.WDG_IRQn_Handler CVWL368.lib(irq_redirect .o) + 0x00011288 0x00011288 0x00000020 Code RO 2820 i.__0printf mc_p.l(printfa.o) + 0x000112a8 0x000112a8 0x00000024 Code RO 2826 i.__0vsprintf mc_p.l(printfa.o) + 0x000112cc 0x000112cc 0x0000002e Code RO 2919 i.__ARM_clz mf_p.l(depilogue.o) + 0x000112fa 0x000112fa 0x0000001a Code RO 592 i.__ARM_common_switch8 CVWL368.lib(hal_dsi_rx_ctrl.o) + 0x00011314 0x00011314 0x00000018 Code RO 1399 i.__NVIC_ClearPendingIRQ CVWL368.lib(drv_i2c_master.o) + 0x0001132c 0x0001132c 0x00000018 Code RO 1562 i.__NVIC_ClearPendingIRQ CVWL368.lib(drv_spi_master.o) + 0x00011344 0x00011344 0x00000020 Code RO 2062 i.__NVIC_DisableIRQ CVWL368.lib(drv_rxbr.o) + 0x00011364 0x00011364 0x00000018 Code RO 2063 i.__NVIC_EnableIRQ CVWL368.lib(drv_rxbr.o) + 0x0001137c 0x0001137c 0x00000044 Code RO 2358 i.__NVIC_SetPriority CVWL368.lib(hal_spi_slave.o) + 0x000113c0 0x000113c0 0x0000000e Code RO 2931 i.__scatterload_copy mc_p.l(handlers.o) + 0x000113ce 0x000113ce 0x0000000e Code RO 2933 i.__scatterload_zeroinit mc_p.l(handlers.o) + 0x000113dc 0x000113dc 0x0000000c Code RO 2909 i.__set_errno mc_p.l(errno.o) + 0x000113e8 0x000113e8 0x00000174 Code RO 2827 i._fp_digits mc_p.l(printfa.o) + 0x0001155c 0x0001155c 0x000006ec Code RO 2828 i._printf_core mc_p.l(printfa.o) + 0x00011c48 0x00011c48 0x00000020 Code RO 2829 i._printf_post_padding mc_p.l(printfa.o) + 0x00011c68 0x00011c68 0x0000002c Code RO 2830 i._printf_pre_padding mc_p.l(printfa.o) + 0x00011c94 0x00011c94 0x0000000a Code RO 2832 i._sputc mc_p.l(printfa.o) + 0x00011c9e 0x00011c9e 0x00000002 PAD + 0x00011ca0 0x00011ca0 0x00000038 Code RO 100 i.ap_dcs_read ap_demo.o + 0x00011cd8 0x00011cd8 0x000000ec Code RO 101 i.ap_demo ap_demo.o + 0x00011dc4 0x00011dc4 0x00000054 Code RO 102 i.ap_set_backlight ap_demo.o + 0x00011e18 0x00011e18 0x0000003c Code RO 103 i.ap_set_display_off ap_demo.o + 0x00011e54 0x00011e54 0x0000003c Code RO 104 i.ap_set_display_on ap_demo.o + 0x00011e90 0x00011e90 0x00000064 Code RO 105 i.ap_set_enter_sleep_mode ap_demo.o + 0x00011ef4 0x00011ef4 0x00000044 Code RO 106 i.ap_set_exit_sleep_mode ap_demo.o + 0x00011f38 0x00011f38 0x0000001c Code RO 2064 i.app_ADC_IRQn_Handler CVWL368.lib(drv_rxbr.o) + 0x00011f54 0x00011f54 0x00000024 Code RO 1323 i.app_AP_NRESET_IRQn_Handler CVWL368.lib(drv_gpio.o) + 0x00011f78 0x00011f78 0x0000001c Code RO 1324 i.app_EXTI_INT0_IRQn_Handler CVWL368.lib(drv_gpio.o) + 0x00011f94 0x00011f94 0x0000001c Code RO 1325 i.app_EXTI_INT1_IRQn_Handler CVWL368.lib(drv_gpio.o) + 0x00011fb0 0x00011fb0 0x0000001c Code RO 1326 i.app_EXTI_INT2_IRQn_Handler CVWL368.lib(drv_gpio.o) + 0x00011fcc 0x00011fcc 0x0000001c Code RO 1327 i.app_EXTI_INT3_IRQn_Handler CVWL368.lib(drv_gpio.o) + 0x00011fe8 0x00011fe8 0x0000001c Code RO 1328 i.app_EXTI_INT4_IRQn_Handler CVWL368.lib(drv_gpio.o) + 0x00012004 0x00012004 0x0000001c Code RO 1329 i.app_EXTI_INT5_IRQn_Handler CVWL368.lib(drv_gpio.o) + 0x00012020 0x00012020 0x0000001c Code RO 1330 i.app_EXTI_INT6_IRQn_Handler CVWL368.lib(drv_gpio.o) + 0x0001203c 0x0001203c 0x0000001c Code RO 1331 i.app_EXTI_INT7_IRQn_Handler CVWL368.lib(drv_gpio.o) + 0x00012058 0x00012058 0x00000048 Code RO 1070 i.app_HardFault_Handler CVWL368.lib(drv_common.o) + 0x000120a0 0x000120a0 0x00000018 Code RO 1434 i.app_I2C0_IRQn_Handler CVWL368.lib(drv_i2c_slave.o) + 0x000120b8 0x000120b8 0x00000010 Code RO 1400 i.app_I2C1_IRQn_Handler CVWL368.lib(drv_i2c_master.o) + 0x000120c8 0x000120c8 0x00000130 Code RO 1680 i.app_LCDC_IRQn_Handler CVWL368.lib(hal_internal_vsync.o) + 0x000121f8 0x000121f8 0x00000088 Code RO 2006 i.app_MEMC_IRQn_Handler CVWL368.lib(drv_memc.o) + 0x00012280 0x00012280 0x00000298 Code RO 1778 i.app_MIPI_RX_IRQn_Handler CVWL368.lib(drv_dsi_rx.o) + 0x00012518 0x00012518 0x000000a0 Code RO 1834 i.app_MIPI_TX_IRQn_Handler CVWL368.lib(drv_dsi_tx.o) + 0x000125b8 0x000125b8 0x00000048 Code RO 1483 i.app_PWMDET_IRQn_Handler CVWL368.lib(drv_pwm.o) + 0x00012600 0x00012600 0x00000030 Code RO 1563 i.app_SPIM_IRQn_Handler CVWL368.lib(drv_spi_master.o) + 0x00012630 0x00012630 0x00000200 Code RO 2359 i.app_SPIS_IRQn_Handler CVWL368.lib(hal_spi_slave.o) + 0x00012830 0x00012830 0x00000020 Code RO 1595 i.app_SWIRE_IRQn_Handler CVWL368.lib(drv_swire.o) + 0x00012850 0x00012850 0x00000018 Code RO 1071 i.app_SysTick_Handler CVWL368.lib(drv_common.o) + 0x00012868 0x00012868 0x0000000a Code RO 1645 i.app_TIMER0_IRQn_Handler CVWL368.lib(drv_timer.o) + 0x00012872 0x00012872 0x0000000a Code RO 1646 i.app_TIMER1_IRQn_Handler CVWL368.lib(drv_timer.o) + 0x0001287c 0x0001287c 0x0000000a Code RO 1647 i.app_TIMER2_IRQn_Handler CVWL368.lib(drv_timer.o) + 0x00012886 0x00012886 0x0000000a Code RO 1648 i.app_TIMER3_IRQn_Handler CVWL368.lib(drv_timer.o) + 0x00012890 0x00012890 0x00000008 Code RO 2480 i.app_UART_IRQn_Handler CVWL368.lib(drv_uart.o) + 0x00012898 0x00012898 0x0000001c Code RO 2129 i.app_VIDC_IRQn_Handler CVWL368.lib(drv_vidc.o) + 0x000128b4 0x000128b4 0x0000001c Code RO 2065 i.app_VPRE_IRQn_Handler CVWL368.lib(drv_rxbr.o) + 0x000128d0 0x000128d0 0x00000038 Code RO 2539 i.app_WDG_IRQn_Handler CVWL368.lib(drv_wdg.o) + 0x00012908 0x00012908 0x00000010 Code RO 1185 i.app_dma_irq_handler CVWL368.lib(drv_dma.o) + 0x00012918 0x00012918 0x00000030 Code RO 986 i.app_fls_ctrl_Handler CVWL368.lib(norflash.o) + 0x00012948 0x00012948 0x00000044 Code RO 327 i.app_tp_i2cs_callback app_tp_transfer.o + 0x0001298c 0x0001298c 0x00000064 Code RO 328 i.app_tp_init app_tp_transfer.o + 0x000129f0 0x000129f0 0x00000030 Code RO 329 i.app_tp_m_read app_tp_transfer.o + 0x00012a20 0x00012a20 0x00000008 Code RO 330 i.app_tp_m_transfer_complate app_tp_transfer.o + 0x00012a28 0x00012a28 0x00000474 Code RO 262 i.app_tp_phone_analysis_data_custom app_tp_for_custom_mi8se.o + 0x00012e9c 0x00012e9c 0x0000000c Code RO 332 i.app_tp_phone_clear_reset_on app_tp_transfer.o + 0x00012ea8 0x00012ea8 0x00000010 Code RO 334 i.app_tp_s_read app_tp_transfer.o + 0x00012eb8 0x00012eb8 0x00000010 Code RO 336 i.app_tp_s_write app_tp_transfer.o + 0x00012ec8 0x00012ec8 0x000002b0 Code RO 264 i.app_tp_screen_analysis_int app_tp_for_custom_mi8se.o + 0x00013178 0x00013178 0x0000000c Code RO 338 i.app_tp_screen_int_callback app_tp_transfer.o + 0x00013184 0x00013184 0x00000040 Code RO 339 i.app_tp_screen_int_init app_tp_transfer.o + 0x000131c4 0x000131c4 0x00000004 Code RO 340 i.app_tp_screen_int_lvl_low app_tp_transfer.o + 0x000131c8 0x000131c8 0x0000002c Code RO 341 i.app_tp_transfer_phone app_tp_transfer.o + 0x000131f4 0x000131f4 0x00000054 Code RO 342 i.app_tp_transfer_screen_const app_tp_transfer.o + 0x00013248 0x00013248 0x000000d4 Code RO 343 i.app_tp_transfer_screen_int app_tp_transfer.o + 0x0001331c 0x0001331c 0x00000024 Code RO 344 i.app_tp_transfer_screen_start app_tp_transfer.o + 0x00013340 0x00013340 0x00000024 Code RO 474 i.board_Init board.o + 0x00013364 0x00013364 0x00000472 Code RO 1681 i.calc_framebuffer_setting CVWL368.lib(hal_internal_vsync.o) + 0x000137d6 0x000137d6 0x00000002 PAD + 0x000137d8 0x000137d8 0x000000c8 Code RO 2563 i.ceil m_ps.l(ceil.o) + 0x000138a0 0x000138a0 0x0000002c Code RO 1682 i.check_mipi_rx_tx_video_info CVWL368.lib(hal_internal_vsync.o) + 0x000138cc 0x000138cc 0x00000094 Code RO 1683 i.check_pkt_buf_rev CVWL368.lib(hal_internal_vsync.o) + 0x00013960 0x00013960 0x00000058 Code RO 1765 i.dcs_packet_fifo_alloc CVWL368.lib(dcs_packet_fifo.o) + 0x000139b8 0x000139b8 0x00000018 Code RO 1766 i.dcs_packet_fifo_init CVWL368.lib(dcs_packet_fifo.o) + 0x000139d0 0x000139d0 0x00000044 Code RO 1767 i.dcs_packet_free_fifo_header CVWL368.lib(dcs_packet_fifo.o) + 0x00013a14 0x00013a14 0x00000024 Code RO 1768 i.dcs_packet_get_fifo_header CVWL368.lib(dcs_packet_fifo.o) + 0x00013a38 0x00013a38 0x0000001c Code RO 1684 i.dcs_sw_filter CVWL368.lib(hal_internal_vsync.o) + 0x00013a54 0x00013a54 0x00000018 Code RO 948 i.delayMs CVWL368.lib(tau_delay.o) + 0x00013a6c 0x00013a6c 0x00000022 Code RO 949 i.delayUs CVWL368.lib(tau_delay.o) + 0x00013a8e 0x00013a8e 0x00000002 PAD + 0x00013a90 0x00013a90 0x00000038 Code RO 1614 i.drv_ap_rst_trig_edge_detect CVWL368.lib(drv_sys_cfg.o) + 0x00013ac8 0x00013ac8 0x0000000c Code RO 2329 i.drv_chip_info_get_info CVWL368.lib(drv_chip_info.o) + 0x00013ad4 0x00013ad4 0x00000040 Code RO 2330 i.drv_chip_info_init CVWL368.lib(drv_chip_info.o) + 0x00013b14 0x00013b14 0x000000c8 Code RO 2331 i.drv_chip_rx_info_check CVWL368.lib(drv_chip_info.o) + 0x00013bdc 0x00013bdc 0x00000014 Code RO 2332 i.drv_chip_rx_init_done CVWL368.lib(drv_chip_info.o) + 0x00013bf0 0x00013bf0 0x00000058 Code RO 1073 i.drv_common_enable_systick CVWL368.lib(drv_common.o) + 0x00013c48 0x00013c48 0x00000008 Code RO 1076 i.drv_common_system_init CVWL368.lib(drv_common.o) + 0x00013c50 0x00013c50 0x00000010 Code RO 1098 i.drv_crgu_config_reset_modules CVWL368.lib(drv_crgu.o) + 0x00013c60 0x00013c60 0x00000014 Code RO 1111 i.drv_crgu_set_ahb_pre_div CVWL368.lib(drv_crgu.o) + 0x00013c74 0x00013c74 0x00000014 Code RO 1112 i.drv_crgu_set_ahb_src CVWL368.lib(drv_crgu.o) + 0x00013c88 0x00013c88 0x00000020 Code RO 1115 i.drv_crgu_set_clock CVWL368.lib(drv_crgu.o) + 0x00013ca8 0x00013ca8 0x00000014 Code RO 1116 i.drv_crgu_set_dpi_mux_src CVWL368.lib(drv_crgu.o) + 0x00013cbc 0x00013cbc 0x00000018 Code RO 1117 i.drv_crgu_set_dpi_pre_div CVWL368.lib(drv_crgu.o) + 0x00013cd4 0x00013cd4 0x00000014 Code RO 1118 i.drv_crgu_set_dpi_pre_src CVWL368.lib(drv_crgu.o) + 0x00013ce8 0x00013ce8 0x00000014 Code RO 1119 i.drv_crgu_set_dsc_core_div CVWL368.lib(drv_crgu.o) + 0x00013cfc 0x00013cfc 0x00000014 Code RO 1120 i.drv_crgu_set_dsco_src CVWL368.lib(drv_crgu.o) + 0x00013d10 0x00013d10 0x00000014 Code RO 1121 i.drv_crgu_set_dsco_src_div CVWL368.lib(drv_crgu.o) + 0x00013d24 0x00013d24 0x00000014 Code RO 1122 i.drv_crgu_set_fb_div CVWL368.lib(drv_crgu.o) + 0x00013d38 0x00013d38 0x00000014 Code RO 1123 i.drv_crgu_set_fb_src CVWL368.lib(drv_crgu.o) + 0x00013d4c 0x00013d4c 0x00000014 Code RO 1126 i.drv_crgu_set_lcdc_div CVWL368.lib(drv_crgu.o) + 0x00013d60 0x00013d60 0x00000014 Code RO 1127 i.drv_crgu_set_lcdc_src CVWL368.lib(drv_crgu.o) + 0x00013d74 0x00013d74 0x00000014 Code RO 1128 i.drv_crgu_set_mipi_cfg_src CVWL368.lib(drv_crgu.o) + 0x00013d88 0x00013d88 0x00000018 Code RO 1129 i.drv_crgu_set_mipi_ref_src CVWL368.lib(drv_crgu.o) + 0x00013da0 0x00013da0 0x00000018 Code RO 1132 i.drv_crgu_set_reset CVWL368.lib(drv_crgu.o) + 0x00013db8 0x00013db8 0x00000014 Code RO 1133 i.drv_crgu_set_rxbr_div CVWL368.lib(drv_crgu.o) + 0x00013dcc 0x00013dcc 0x00000014 Code RO 1134 i.drv_crgu_set_rxbr_src CVWL368.lib(drv_crgu.o) + 0x00013de0 0x00013de0 0x00000014 Code RO 1136 i.drv_crgu_set_vidc_src CVWL368.lib(drv_crgu.o) + 0x00013df4 0x00013df4 0x00000018 Code RO 1189 i.drv_dma_clear_flag CVWL368.lib(drv_dma.o) + 0x00013e0c 0x00013e0c 0x0000001c Code RO 1190 i.drv_dma_create_handle CVWL368.lib(drv_dma.o) + 0x00013e28 0x00013e28 0x00000010 Code RO 1192 i.drv_dma_disenable_channel CVWL368.lib(drv_dma.o) + 0x00013e38 0x00013e38 0x00000010 Code RO 1194 i.drv_dma_enable_channel CVWL368.lib(drv_dma.o) + 0x00013e48 0x00013e48 0x00000024 Code RO 1195 i.drv_dma_enable_channel_interrupts CVWL368.lib(drv_dma.o) + 0x00013e6c 0x00013e6c 0x0000000c Code RO 1197 i.drv_dma_get_channel_flag CVWL368.lib(drv_dma.o) + 0x00013e78 0x00013e78 0x00000090 Code RO 1200 i.drv_dma_irq_handler CVWL368.lib(drv_dma.o) + 0x00013f08 0x00013f08 0x00000012 Code RO 1202 i.drv_dma_prepar_transfer CVWL368.lib(drv_dma.o) + 0x00013f1a 0x00013f1a 0x0000001a Code RO 1204 i.drv_dma_set_burst CVWL368.lib(drv_dma.o) + 0x00013f34 0x00013f34 0x00000006 Code RO 1205 i.drv_dma_set_callback CVWL368.lib(drv_dma.o) + 0x00013f3a 0x00013f3a 0x00000002 PAD + 0x00013f3c 0x00013f3c 0x00000044 Code RO 1207 i.drv_dma_set_transfer CVWL368.lib(drv_dma.o) + 0x00013f80 0x00013f80 0x00000036 Code RO 2342 i.drv_dsc_dec_convert_pps_rc_parameter CVWL368.lib(drv_dsc_dec.o) + 0x00013fb6 0x00013fb6 0x0000000c Code RO 2343 i.drv_dsc_dec_disable CVWL368.lib(drv_dsc_dec.o) + 0x00013fc2 0x00013fc2 0x00000002 PAD + 0x00013fc4 0x00013fc4 0x00000074 Code RO 2344 i.drv_dsc_dec_enable CVWL368.lib(drv_dsc_dec.o) + 0x00014038 0x00014038 0x0000000a Code RO 2345 i.drv_dsc_dec_get_nslc CVWL368.lib(drv_dsc_dec.o) + 0x00014042 0x00014042 0x00000028 Code RO 2347 i.drv_dsc_dec_set_u8_pps CVWL368.lib(drv_dsc_dec.o) + 0x0001406a 0x0001406a 0x00000002 PAD + 0x0001406c 0x0001406c 0x00000104 Code RO 1779 i.drv_dsi_rx_calc_ipi_tx_delay CVWL368.lib(drv_dsi_rx.o) + 0x00014170 0x00014170 0x00000040 Code RO 1780 i.drv_dsi_rx_enable_irq CVWL368.lib(drv_dsi_rx.o) + 0x000141b0 0x000141b0 0x00000050 Code RO 1781 i.drv_dsi_rx_get_color_bpp CVWL368.lib(drv_dsi_rx.o) + 0x00014200 0x00014200 0x0000001c Code RO 1782 i.drv_dsi_rx_get_color_pcc CVWL368.lib(drv_dsi_rx.o) + 0x0001421c 0x0001421c 0x00000008 Code RO 1783 i.drv_dsi_rx_get_compression_en CVWL368.lib(drv_dsi_rx.o) + 0x00014224 0x00014224 0x0000000e Code RO 1788 i.drv_dsi_rx_power_up CVWL368.lib(drv_dsi_rx.o) + 0x00014232 0x00014232 0x00000020 Code RO 1789 i.drv_dsi_rx_set_ctrl_cfg CVWL368.lib(drv_dsi_rx.o) + 0x00014252 0x00014252 0x00000010 Code RO 1790 i.drv_dsi_rx_set_ddi_cfg CVWL368.lib(drv_dsi_rx.o) + 0x00014262 0x00014262 0x00000004 Code RO 1792 i.drv_dsi_rx_set_inten CVWL368.lib(drv_dsi_rx.o) + 0x00014266 0x00014266 0x00000010 Code RO 1793 i.drv_dsi_rx_set_ipi_cfg CVWL368.lib(drv_dsi_rx.o) + 0x00014276 0x00014276 0x00000046 Code RO 1795 i.drv_dsi_rx_set_lane_swap CVWL368.lib(drv_dsi_rx.o) + 0x000142bc 0x000142bc 0x00000026 Code RO 1796 i.drv_dsi_rx_set_resp_cnt CVWL368.lib(drv_dsi_rx.o) + 0x000142e2 0x000142e2 0x00000002 PAD + 0x000142e4 0x000142e4 0x00000104 Code RO 1797 i.drv_dsi_rx_set_up_phy CVWL368.lib(drv_dsi_rx.o) + 0x000143e8 0x000143e8 0x00000014 Code RO 1836 i.drv_dsi_tx_command_header CVWL368.lib(drv_dsi_tx.o) + 0x000143fc 0x000143fc 0x0000006c Code RO 1837 i.drv_dsi_tx_command_mode_cfg CVWL368.lib(drv_dsi_tx.o) + 0x00014468 0x00014468 0x00000004 Code RO 1838 i.drv_dsi_tx_command_put_payload CVWL368.lib(drv_dsi_tx.o) + 0x0001446c 0x0001446c 0x00000018 Code RO 1839 i.drv_dsi_tx_config_eotp CVWL368.lib(drv_dsi_tx.o) + 0x00014484 0x00014484 0x00000008 Code RO 1840 i.drv_dsi_tx_config_int CVWL368.lib(drv_dsi_tx.o) + 0x0001448c 0x0001448c 0x00000008 Code RO 1841 i.drv_dsi_tx_dpi_lpcmd_time CVWL368.lib(drv_dsi_tx.o) + 0x00014494 0x00014494 0x0000000a Code RO 1842 i.drv_dsi_tx_dpi_mode CVWL368.lib(drv_dsi_tx.o) + 0x0001449e 0x0001449e 0x00000024 Code RO 1843 i.drv_dsi_tx_dpi_polarity CVWL368.lib(drv_dsi_tx.o) + 0x000144c2 0x000144c2 0x00000004 Code RO 1844 i.drv_dsi_tx_edpi_cmd_size CVWL368.lib(drv_dsi_tx.o) + 0x000144c6 0x000144c6 0x00000004 Code RO 1846 i.drv_dsi_tx_get_cmd_status CVWL368.lib(drv_dsi_tx.o) + 0x000144ca 0x000144ca 0x00000004 Code RO 1848 i.drv_dsi_tx_mode CVWL368.lib(drv_dsi_tx.o) + 0x000144ce 0x000144ce 0x00000018 Code RO 1849 i.drv_dsi_tx_phy_clock_lane_auto_lp CVWL368.lib(drv_dsi_tx.o) + 0x000144e6 0x000144e6 0x0000001a Code RO 1850 i.drv_dsi_tx_phy_clock_lane_req_hs CVWL368.lib(drv_dsi_tx.o) + 0x00014500 0x00014500 0x0000000c Code RO 1852 i.drv_dsi_tx_phy_lane_mode CVWL368.lib(drv_dsi_tx.o) + 0x0001450c 0x0001450c 0x00000064 Code RO 1856 i.drv_dsi_tx_phy_status_ready CVWL368.lib(drv_dsi_tx.o) + 0x00014570 0x00014570 0x0000003e Code RO 1857 i.drv_dsi_tx_phy_status_stopstate CVWL368.lib(drv_dsi_tx.o) + 0x000145ae 0x000145ae 0x00000134 Code RO 1859 i.drv_dsi_tx_phy_test_setup CVWL368.lib(drv_dsi_tx.o) + 0x000146e2 0x000146e2 0x0000001e Code RO 1860 i.drv_dsi_tx_phy_time_cfg CVWL368.lib(drv_dsi_tx.o) + 0x00014700 0x00014700 0x00000008 Code RO 1864 i.drv_dsi_tx_powerup CVWL368.lib(drv_dsi_tx.o) + 0x00014708 0x00014708 0x0000001c Code RO 1865 i.drv_dsi_tx_response_mode CVWL368.lib(drv_dsi_tx.o) + 0x00014724 0x00014724 0x00000018 Code RO 1868 i.drv_dsi_tx_set_bta_ack CVWL368.lib(drv_dsi_tx.o) + 0x0001473c 0x0001473c 0x0000000c Code RO 1869 i.drv_dsi_tx_set_esc_div CVWL368.lib(drv_dsi_tx.o) + 0x00014748 0x00014748 0x00000040 Code RO 1870 i.drv_dsi_tx_set_int CVWL368.lib(drv_dsi_tx.o) + 0x00014788 0x00014788 0x00000010 Code RO 1871 i.drv_dsi_tx_set_time_out_div CVWL368.lib(drv_dsi_tx.o) + 0x00014798 0x00014798 0x00000008 Code RO 1872 i.drv_dsi_tx_set_video_chunk CVWL368.lib(drv_dsi_tx.o) + 0x000147a0 0x000147a0 0x00000022 Code RO 1873 i.drv_dsi_tx_set_video_timing CVWL368.lib(drv_dsi_tx.o) + 0x000147c2 0x000147c2 0x00000008 Code RO 1875 i.drv_dsi_tx_shutdown CVWL368.lib(drv_dsi_tx.o) + 0x000147ca 0x000147ca 0x00000026 Code RO 1876 i.drv_dsi_tx_timeout_cfg CVWL368.lib(drv_dsi_tx.o) + 0x000147f0 0x000147f0 0x000000aa Code RO 1879 i.drv_dsi_tx_video_mode_cfg CVWL368.lib(drv_dsi_tx.o) + 0x0001489a 0x0001489a 0x00000016 Code RO 1880 i.drv_dsi_tx_video_mode_disable_hact_cmd CVWL368.lib(drv_dsi_tx.o) + 0x000148b0 0x000148b0 0x00000018 Code RO 1881 i.drv_dsi_tx_video_mode_set_lp_cmd CVWL368.lib(drv_dsi_tx.o) + 0x000148c8 0x000148c8 0x00000020 Code RO 2280 i.drv_efuse_enter_inactive CVWL368.lib(drv_efuse.o) + 0x000148e8 0x000148e8 0x0000000c Code RO 2283 i.drv_efuse_int_enable CVWL368.lib(drv_efuse.o) + 0x000148f4 0x000148f4 0x00000032 Code RO 2284 i.drv_efuse_read CVWL368.lib(drv_efuse.o) + 0x00014926 0x00014926 0x00000018 Code RO 2285 i.drv_efuse_read_req CVWL368.lib(drv_efuse.o) + 0x0001493e 0x0001493e 0x00000002 PAD + 0x00014940 0x00014940 0x0000001c Code RO 1239 i.drv_fls_gpio_connect CVWL368.lib(drv_fls.o) + 0x0001495c 0x0001495c 0x00000020 Code RO 1240 i.drv_fls_gpio_disconnect CVWL368.lib(drv_fls.o) + 0x0001497c 0x0001497c 0x00000018 Code RO 1332 i.drv_gpio_get_input_data CVWL368.lib(drv_gpio.o) + 0x00014994 0x00014994 0x00000014 Code RO 1335 i.drv_gpio_register_callback CVWL368.lib(drv_gpio.o) + 0x000149a8 0x000149a8 0x00000050 Code RO 1337 i.drv_gpio_set_int CVWL368.lib(drv_gpio.o) + 0x000149f8 0x000149f8 0x00000020 Code RO 1338 i.drv_gpio_set_ioe CVWL368.lib(drv_gpio.o) + 0x00014a18 0x00014a18 0x00000010 Code RO 1339 i.drv_gpio_set_mode0 CVWL368.lib(drv_gpio.o) + 0x00014a28 0x00014a28 0x00000010 Code RO 1340 i.drv_gpio_set_mode1 CVWL368.lib(drv_gpio.o) + 0x00014a38 0x00014a38 0x00000010 Code RO 1341 i.drv_gpio_set_mode2 CVWL368.lib(drv_gpio.o) + 0x00014a48 0x00014a48 0x00000010 Code RO 1342 i.drv_gpio_set_mode3 CVWL368.lib(drv_gpio.o) + 0x00014a58 0x00014a58 0x00000020 Code RO 700 i.drv_gpio_set_output_data CVWL368.lib(hal_gpio.o) + 0x00014a78 0x00014a78 0x00000130 Code RO 1343 i.drv_gpio_set_pull_state CVWL368.lib(drv_gpio.o) + 0x00014ba8 0x00014ba8 0x0000000c Code RO 1435 i.drv_i2c0_set_callback CVWL368.lib(drv_i2c_slave.o) + 0x00014bb4 0x00014bb4 0x0000000c Code RO 1401 i.drv_i2c1_set_callback CVWL368.lib(drv_i2c_master.o) + 0x00014bc0 0x00014bc0 0x00000034 Code RO 1375 i.drv_i2c_dma_callback CVWL368.lib(drv_i2c_dma.o) + 0x00014bf4 0x00014bf4 0x000000ac Code RO 1376 i.drv_i2c_dma_init CVWL368.lib(drv_i2c_dma.o) + 0x00014ca0 0x00014ca0 0x0000001a Code RO 1377 i.drv_i2c_enable_rx_dma CVWL368.lib(drv_i2c_dma.o) + 0x00014cba 0x00014cba 0x00000018 Code RO 1378 i.drv_i2c_enable_tx_dma CVWL368.lib(drv_i2c_dma.o) + 0x00014cd2 0x00014cd2 0x00000002 PAD + 0x00014cd4 0x00014cd4 0x00000060 Code RO 1403 i.drv_i2c_m_clear_it_pending_bit CVWL368.lib(drv_i2c_master.o) + 0x00014d34 0x00014d34 0x00000010 Code RO 1406 i.drv_i2c_m_enable CVWL368.lib(drv_i2c_master.o) + 0x00014d44 0x00014d44 0x00000038 Code RO 1407 i.drv_i2c_m_enable_intr CVWL368.lib(drv_i2c_master.o) + 0x00014d7c 0x00014d7c 0x0000008c Code RO 1413 i.drv_i2c_master_init CVWL368.lib(drv_i2c_master.o) + 0x00014e08 0x00014e08 0x0000005c Code RO 1379 i.drv_i2c_master_read_dma CVWL368.lib(drv_i2c_dma.o) + 0x00014e64 0x00014e64 0x0000002e Code RO 1381 i.drv_i2c_master_write_read_cmd CVWL368.lib(drv_i2c_dma.o) + 0x00014e92 0x00014e92 0x00000042 Code RO 1436 i.drv_i2c_s_clear_it_pending_bit CVWL368.lib(drv_i2c_slave.o) + 0x00014ed4 0x00014ed4 0x00000004 Code RO 1437 i.drv_i2c_s_config_intr CVWL368.lib(drv_i2c_slave.o) + 0x00014ed8 0x00014ed8 0x00000008 Code RO 1438 i.drv_i2c_s_enable CVWL368.lib(drv_i2c_slave.o) + 0x00014ee0 0x00014ee0 0x00000014 Code RO 1439 i.drv_i2c_s_get_fifo_status CVWL368.lib(drv_i2c_slave.o) + 0x00014ef4 0x00014ef4 0x00000050 Code RO 1442 i.drv_i2c_s_set_intr CVWL368.lib(drv_i2c_slave.o) + 0x00014f44 0x00014f44 0x0000001c Code RO 1443 i.drv_i2c_s_write_data CVWL368.lib(drv_i2c_slave.o) + 0x00014f60 0x00014f60 0x00000058 Code RO 1382 i.drv_i2c_set_dma_irq_callback CVWL368.lib(drv_i2c_dma.o) + 0x00014fb8 0x00014fb8 0x00000032 Code RO 1444 i.drv_i2c_slave_init CVWL368.lib(drv_i2c_slave.o) + 0x00014fea 0x00014fea 0x00000002 PAD + 0x00014fec 0x00014fec 0x00000018 Code RO 1383 i.drv_i2c_slave_write_dma CVWL368.lib(drv_i2c_dma.o) + 0x00015004 0x00015004 0x00000018 Code RO 1948 i.drv_lcdc_config_bypass CVWL368.lib(drv_lcdc.o) + 0x0001501c 0x0001501c 0x00000030 Code RO 1949 i.drv_lcdc_config_ccm CVWL368.lib(drv_lcdc.o) + 0x0001504c 0x0001504c 0x00000016 Code RO 1950 i.drv_lcdc_config_disp_mode CVWL368.lib(drv_lcdc.o) + 0x00015062 0x00015062 0x00000024 Code RO 1951 i.drv_lcdc_config_dpi_polarity CVWL368.lib(drv_lcdc.o) + 0x00015086 0x00015086 0x00000026 Code RO 1952 i.drv_lcdc_config_dpi_timing CVWL368.lib(drv_lcdc.o) + 0x000150ac 0x000150ac 0x00000016 Code RO 1953 i.drv_lcdc_config_edpi_mode CVWL368.lib(drv_lcdc.o) + 0x000150c2 0x000150c2 0x00000016 Code RO 1954 i.drv_lcdc_config_endianness CVWL368.lib(drv_lcdc.o) + 0x000150d8 0x000150d8 0x0000000c Code RO 1955 i.drv_lcdc_config_input_size CVWL368.lib(drv_lcdc.o) + 0x000150e4 0x000150e4 0x0000001e Code RO 1956 i.drv_lcdc_config_int CVWL368.lib(drv_lcdc.o) + 0x00015102 0x00015102 0x00000022 Code RO 1957 i.drv_lcdc_config_int_single CVWL368.lib(drv_lcdc.o) + 0x00015124 0x00015124 0x00000022 Code RO 1958 i.drv_lcdc_config_overwrite CVWL368.lib(drv_lcdc.o) + 0x00015146 0x00015146 0x0000000c Code RO 1959 i.drv_lcdc_config_overwrite_rgb CVWL368.lib(drv_lcdc.o) + 0x00015152 0x00015152 0x0000001a Code RO 1960 i.drv_lcdc_config_partial_display_area CVWL368.lib(drv_lcdc.o) + 0x0001516c 0x0001516c 0x00000022 Code RO 1961 i.drv_lcdc_config_partial_display_enable CVWL368.lib(drv_lcdc.o) + 0x0001518e 0x0001518e 0x0000001a Code RO 1963 i.drv_lcdc_config_scale_up_coef CVWL368.lib(drv_lcdc.o) + 0x000151a8 0x000151a8 0x0000000c Code RO 1964 i.drv_lcdc_config_scale_up_step CVWL368.lib(drv_lcdc.o) + 0x000151b4 0x000151b4 0x0000004c Code RO 1965 i.drv_lcdc_config_src_parameter CVWL368.lib(drv_lcdc.o) + 0x00015200 0x00015200 0x00000006 Code RO 1966 i.drv_lcdc_config_thresh CVWL368.lib(drv_lcdc.o) + 0x00015206 0x00015206 0x00000012 Code RO 1967 i.drv_lcdc_ctrl_flow CVWL368.lib(drv_lcdc.o) + 0x00015218 0x00015218 0x00000020 Code RO 1969 i.drv_lcdc_enable_shadow_reg CVWL368.lib(drv_lcdc.o) + 0x00015238 0x00015238 0x00000040 Code RO 1970 i.drv_lcdc_set_int CVWL368.lib(drv_lcdc.o) + 0x00015278 0x00015278 0x00000018 Code RO 1971 i.drv_lcdc_set_prefetch CVWL368.lib(drv_lcdc.o) + 0x00015290 0x00015290 0x00000014 Code RO 1972 i.drv_lcdc_set_video_hw_mode CVWL368.lib(drv_lcdc.o) + 0x000152a4 0x000152a4 0x00000020 Code RO 1973 i.drv_lcdc_start CVWL368.lib(drv_lcdc.o) + 0x000152c4 0x000152c4 0x0000000c Code RO 2007 i.drv_memc_clear_status CVWL368.lib(drv_memc.o) + 0x000152d0 0x000152d0 0x00000040 Code RO 2008 i.drv_memc_enable_irq CVWL368.lib(drv_memc.o) + 0x00015310 0x00015310 0x0000000c Code RO 2009 i.drv_memc_gen_a_tear_signal CVWL368.lib(drv_memc.o) + 0x0001531c 0x0001531c 0x00000012 Code RO 2010 i.drv_memc_get_status CVWL368.lib(drv_memc.o) + 0x0001532e 0x0001532e 0x00000010 Code RO 2011 i.drv_memc_rate_transfer_sel CVWL368.lib(drv_memc.o) + 0x0001533e 0x0001533e 0x0000000e Code RO 2012 i.drv_memc_sel_vsync CVWL368.lib(drv_memc.o) + 0x0001534c 0x0001534c 0x00000014 Code RO 2013 i.drv_memc_set_active_height CVWL368.lib(drv_memc.o) + 0x00015360 0x00015360 0x0000000c Code RO 2014 i.drv_memc_set_data_mode CVWL368.lib(drv_memc.o) + 0x0001536c 0x0001536c 0x00000010 Code RO 2017 i.drv_memc_set_double_buffer CVWL368.lib(drv_memc.o) + 0x0001537c 0x0001537c 0x00000012 Code RO 2018 i.drv_memc_set_double_buffer_reverse CVWL368.lib(drv_memc.o) + 0x0001538e 0x0001538e 0x00000010 Code RO 2020 i.drv_memc_set_fs_en_conditions CVWL368.lib(drv_memc.o) + 0x0001539e 0x0001539e 0x00000014 Code RO 2021 i.drv_memc_set_inten CVWL368.lib(drv_memc.o) + 0x000153b2 0x000153b2 0x00000002 PAD + 0x000153b4 0x000153b4 0x00000018 Code RO 2022 i.drv_memc_set_lcdc_st_conditions CVWL368.lib(drv_memc.o) + 0x000153cc 0x000153cc 0x0000001a Code RO 2023 i.drv_memc_set_ltpo_mode CVWL368.lib(drv_memc.o) + 0x000153e6 0x000153e6 0x0000000e Code RO 2027 i.drv_memc_set_tear_mode CVWL368.lib(drv_memc.o) + 0x000153f4 0x000153f4 0x00000028 Code RO 2028 i.drv_memc_set_tear_waveform CVWL368.lib(drv_memc.o) + 0x0001541c 0x0001541c 0x0000000e Code RO 2030 i.drv_memc_set_vidc_sync_cnt CVWL368.lib(drv_memc.o) + 0x0001542a 0x0001542a 0x00000002 PAD + 0x0001542c 0x0001542c 0x00000008 Code RO 1461 i.drv_param_init_get_ccm CVWL368.lib(drv_param_init.o) + 0x00015434 0x00015434 0x00000014 Code RO 1462 i.drv_param_init_get_scld_filter_h CVWL368.lib(drv_param_init.o) + 0x00015448 0x00015448 0x00000014 Code RO 1463 i.drv_param_init_get_scld_filter_v CVWL368.lib(drv_param_init.o) + 0x0001545c 0x0001545c 0x00000008 Code RO 1464 i.drv_param_init_get_sclu_filter CVWL368.lib(drv_param_init.o) + 0x00015464 0x00015464 0x00000064 Code RO 1466 i.drv_param_init_set_scld_filter CVWL368.lib(drv_param_init.o) + 0x000154c8 0x000154c8 0x00000024 Code RO 1468 i.drv_param_p2r_filter_init CVWL368.lib(drv_param_init.o) + 0x000154ec 0x000154ec 0x00000010 Code RO 2301 i.drv_phy_enable_calibration CVWL368.lib(drv_phy_common.o) + 0x000154fc 0x000154fc 0x0000003c Code RO 2302 i.drv_phy_get_calibration CVWL368.lib(drv_phy_common.o) + 0x00015538 0x00015538 0x00000060 Code RO 2303 i.drv_phy_get_pll_para CVWL368.lib(drv_phy_common.o) + 0x00015598 0x00015598 0x00000054 Code RO 2304 i.drv_phy_get_rate_para CVWL368.lib(drv_phy_common.o) + 0x000155ec 0x000155ec 0x00000010 Code RO 2305 i.drv_phy_test_clear CVWL368.lib(drv_phy_common.o) + 0x000155fc 0x000155fc 0x00000018 Code RO 2306 i.drv_phy_test_lock CVWL368.lib(drv_phy_common.o) + 0x00015614 0x00015614 0x00000020 Code RO 2308 i.drv_phy_test_write_1_byte CVWL368.lib(drv_phy_common.o) + 0x00015634 0x00015634 0x00000026 Code RO 2309 i.drv_phy_test_write_2_byte CVWL368.lib(drv_phy_common.o) + 0x0001565a 0x0001565a 0x0000001e Code RO 2310 i.drv_phy_test_write_code CVWL368.lib(drv_phy_common.o) + 0x00015678 0x00015678 0x00000020 Code RO 2311 i.drv_phy_test_write_data CVWL368.lib(drv_phy_common.o) + 0x00015698 0x00015698 0x00000020 Code RO 1493 i.drv_pwm_out_enable CVWL368.lib(drv_pwm.o) + 0x000156b8 0x000156b8 0x00000010 Code RO 1494 i.drv_pwm_out_get_sync_flag CVWL368.lib(drv_pwm.o) + 0x000156c8 0x000156c8 0x0000000c Code RO 1496 i.drv_pwm_out_set_control CVWL368.lib(drv_pwm.o) + 0x000156d4 0x000156d4 0x0000000c Code RO 1497 i.drv_pwm_out_set_period CVWL368.lib(drv_pwm.o) + 0x000156e0 0x000156e0 0x00000020 Code RO 1498 i.drv_pwm_out_set_sync_mode CVWL368.lib(drv_pwm.o) + 0x00015700 0x00015700 0x0000000c Code RO 1499 i.drv_pwm_out_set_threshold CVWL368.lib(drv_pwm.o) + 0x0001570c 0x0001570c 0x00000018 Code RO 1525 i.drv_pwr_set_pvd_mode CVWL368.lib(drv_pwr.o) + 0x00015724 0x00015724 0x00000038 Code RO 1526 i.drv_pwr_set_system_clk_src CVWL368.lib(drv_pwr.o) + 0x0001575c 0x0001575c 0x0000000c Code RO 1799 i.drv_rx_phy_test_clear CVWL368.lib(drv_dsi_rx.o) + 0x00015768 0x00015768 0x00000010 Code RO 1800 i.drv_rx_phy_test_lock CVWL368.lib(drv_dsi_rx.o) + 0x00015778 0x00015778 0x00000014 Code RO 1802 i.drv_rx_phy_test_write_1_byte CVWL368.lib(drv_dsi_rx.o) + 0x0001578c 0x0001578c 0x00000016 Code RO 1803 i.drv_rx_phy_test_write_2_byte CVWL368.lib(drv_dsi_rx.o) + 0x000157a2 0x000157a2 0x0000000a Code RO 2066 i.drv_rxbr_clear_pkt_buffer CVWL368.lib(drv_rxbr.o) + 0x000157ac 0x000157ac 0x00000004 Code RO 2067 i.drv_rxbr_clear_status0 CVWL368.lib(drv_rxbr.o) + 0x000157b0 0x000157b0 0x0000005a Code RO 2069 i.drv_rxbr_enable_irq CVWL368.lib(drv_rxbr.o) + 0x0001580a 0x0001580a 0x00000002 PAD + 0x0001580c 0x0001580c 0x00000014 Code RO 2070 i.drv_rxbr_frame_drop_cfg CVWL368.lib(drv_rxbr.o) + 0x00015820 0x00015820 0x00000064 Code RO 2071 i.drv_rxbr_get_clk CVWL368.lib(drv_rxbr.o) + 0x00015884 0x00015884 0x00000004 Code RO 2072 i.drv_rxbr_get_col_addr CVWL368.lib(drv_rxbr.o) + 0x00015888 0x00015888 0x00000012 Code RO 1685 i.drv_rxbr_get_int_source CVWL368.lib(hal_internal_vsync.o) + 0x0001589a 0x0001589a 0x00000004 Code RO 2075 i.drv_rxbr_get_page_addr CVWL368.lib(drv_rxbr.o) + 0x0001589e 0x0001589e 0x00000012 Code RO 1686 i.drv_rxbr_get_status0 CVWL368.lib(hal_internal_vsync.o) + 0x000158b0 0x000158b0 0x0000000c Code RO 2077 i.drv_rxbr_hline_rcv0_cfg CVWL368.lib(drv_rxbr.o) + 0x000158bc 0x000158bc 0x00000008 Code RO 2078 i.drv_rxbr_hline_rcv_cfg CVWL368.lib(drv_rxbr.o) + 0x000158c4 0x000158c4 0x0000000c Code RO 2079 i.drv_rxbr_register_irq0_callback CVWL368.lib(drv_rxbr.o) + 0x000158d0 0x000158d0 0x0000000c Code RO 2080 i.drv_rxbr_register_irq1_callback CVWL368.lib(drv_rxbr.o) + 0x000158dc 0x000158dc 0x000000cc Code RO 2082 i.drv_rxbr_set_cmd_filter CVWL368.lib(drv_rxbr.o) + 0x000159a8 0x000159a8 0x00000014 Code RO 2084 i.drv_rxbr_set_color_format CVWL368.lib(drv_rxbr.o) + 0x000159bc 0x000159bc 0x00000014 Code RO 2086 i.drv_rxbr_set_inten CVWL368.lib(drv_rxbr.o) + 0x000159d0 0x000159d0 0x00000010 Code RO 2087 i.drv_rxbr_set_ltpo_drop_th CVWL368.lib(drv_rxbr.o) + 0x000159e0 0x000159e0 0x00000026 Code RO 2089 i.drv_rxbr_set_usr_cfg CVWL368.lib(drv_rxbr.o) + 0x00015a06 0x00015a06 0x00000008 Code RO 2090 i.drv_rxbr_set_usr_col CVWL368.lib(drv_rxbr.o) + 0x00015a0e 0x00015a0e 0x00000008 Code RO 2091 i.drv_rxbr_set_usr_row CVWL368.lib(drv_rxbr.o) + 0x00015a16 0x00015a16 0x00000002 PAD + 0x00015a18 0x00015a18 0x00000020 Code RO 1571 i.drv_spi_m_read_data CVWL368.lib(drv_spi_master.o) + 0x00015a38 0x00015a38 0x00000054 Code RO 1599 i.drv_swire_set_int CVWL368.lib(drv_swire.o) + 0x00015a8c 0x00015a8c 0x0000000c Code RO 1615 i.drv_sys_cfg_clear_all_int CVWL368.lib(drv_sys_cfg.o) + 0x00015a98 0x00015a98 0x00000028 Code RO 1616 i.drv_sys_cfg_clear_pending CVWL368.lib(drv_sys_cfg.o) + 0x00015ac0 0x00015ac0 0x00000018 Code RO 1619 i.drv_sys_cfg_sel_ap_rst_lvl_trig CVWL368.lib(drv_sys_cfg.o) + 0x00015ad8 0x00015ad8 0x00000024 Code RO 1621 i.drv_sys_cfg_sel_gpio_group CVWL368.lib(drv_sys_cfg.o) + 0x00015afc 0x00015afc 0x00000024 Code RO 1622 i.drv_sys_cfg_sel_int_trig CVWL368.lib(drv_sys_cfg.o) + 0x00015b20 0x00015b20 0x00000010 Code RO 1624 i.drv_sys_cfg_set_dma_rx_req CVWL368.lib(drv_sys_cfg.o) + 0x00015b30 0x00015b30 0x00000010 Code RO 1625 i.drv_sys_cfg_set_dma_tx_req CVWL368.lib(drv_sys_cfg.o) + 0x00015b40 0x00015b40 0x00000024 Code RO 1626 i.drv_sys_cfg_set_int CVWL368.lib(drv_sys_cfg.o) + 0x00015b64 0x00015b64 0x0000001a Code RO 1649 i.drv_timer_clear_status_flags CVWL368.lib(drv_timer.o) + 0x00015b7e 0x00015b7e 0x00000020 Code RO 1650 i.drv_timer_enable CVWL368.lib(drv_timer.o) + 0x00015b9e 0x00015b9e 0x00000002 PAD + 0x00015ba0 0x00015ba0 0x00000010 Code RO 1651 i.drv_timer_get_instance CVWL368.lib(drv_timer.o) + 0x00015bb0 0x00015bb0 0x00000010 Code RO 1652 i.drv_timer_get_prescaler CVWL368.lib(drv_timer.o) + 0x00015bc0 0x00015bc0 0x00000044 Code RO 1654 i.drv_timer_handle_interrupt CVWL368.lib(drv_timer.o) + 0x00015c04 0x00015c04 0x00000014 Code RO 1655 i.drv_timer_register_callback CVWL368.lib(drv_timer.o) + 0x00015c18 0x00015c18 0x00000010 Code RO 1656 i.drv_timer_set_compare_val CVWL368.lib(drv_timer.o) + 0x00015c28 0x00015c28 0x00000054 Code RO 1657 i.drv_timer_set_int CVWL368.lib(drv_timer.o) + 0x00015c7c 0x00015c7c 0x00000028 Code RO 1658 i.drv_timer_set_prescaler CVWL368.lib(drv_timer.o) + 0x00015ca4 0x00015ca4 0x0000000a Code RO 1882 i.drv_tx_phy_test_clear CVWL368.lib(drv_dsi_tx.o) + 0x00015cae 0x00015cae 0x0000001c Code RO 1883 i.drv_tx_phy_test_enter CVWL368.lib(drv_dsi_tx.o) + 0x00015cca 0x00015cca 0x0000001c Code RO 1884 i.drv_tx_phy_test_exit CVWL368.lib(drv_dsi_tx.o) + 0x00015ce6 0x00015ce6 0x00000012 Code RO 1886 i.drv_tx_phy_test_write_1_byte CVWL368.lib(drv_dsi_tx.o) + 0x00015cf8 0x00015cf8 0x00000014 Code RO 1887 i.drv_tx_phy_test_write_2_byte CVWL368.lib(drv_dsi_tx.o) + 0x00015d0c 0x00015d0c 0x00000010 Code RO 1888 i.drv_tx_phy_test_write_code CVWL368.lib(drv_dsi_tx.o) + 0x00015d1c 0x00015d1c 0x00000008 Code RO 2130 i.drv_vidc_clear_irq CVWL368.lib(drv_vidc.o) + 0x00015d24 0x00015d24 0x00000018 Code RO 2134 i.drv_vidc_enable CVWL368.lib(drv_vidc.o) + 0x00015d3c 0x00015d3c 0x00000040 Code RO 2135 i.drv_vidc_enable_irq CVWL368.lib(drv_vidc.o) + 0x00015d7c 0x00015d7c 0x00000012 Code RO 2137 i.drv_vidc_get_irq_status CVWL368.lib(drv_vidc.o) + 0x00015d8e 0x00015d8e 0x00000002 PAD + 0x00015d90 0x00015d90 0x00000028 Code RO 2141 i.drv_vidc_init_module_enable CVWL368.lib(drv_vidc.o) + 0x00015db8 0x00015db8 0x0000000c Code RO 2142 i.drv_vidc_register_callback CVWL368.lib(drv_vidc.o) + 0x00015dc4 0x00015dc4 0x00000006 Code RO 2143 i.drv_vidc_reset CVWL368.lib(drv_vidc.o) + 0x00015dca 0x00015dca 0x0000003c Code RO 2145 i.drv_vidc_set_dst_parameter CVWL368.lib(drv_vidc.o) + 0x00015e06 0x00015e06 0x00000014 Code RO 2149 i.drv_vidc_set_irqen CVWL368.lib(drv_vidc.o) + 0x00015e1a 0x00015e1a 0x00000010 Code RO 2150 i.drv_vidc_set_mirror CVWL368.lib(drv_vidc.o) + 0x00015e2a 0x00015e2a 0x00000008 Code RO 2153 i.drv_vidc_set_p2r_hcoef0 CVWL368.lib(drv_vidc.o) + 0x00015e32 0x00015e32 0x00000026 Code RO 2154 i.drv_vidc_set_p2r_hinitb CVWL368.lib(drv_vidc.o) + 0x00015e58 0x00015e58 0x00000026 Code RO 2155 i.drv_vidc_set_p2r_hinitr CVWL368.lib(drv_vidc.o) + 0x00015e7e 0x00015e7e 0x00000002 PAD + 0x00015e80 0x00015e80 0x00000018 Code RO 2156 i.drv_vidc_set_pentile_swap CVWL368.lib(drv_vidc.o) + 0x00015e98 0x00015e98 0x0000000a Code RO 2157 i.drv_vidc_set_pu_ctrl CVWL368.lib(drv_vidc.o) + 0x00015ea2 0x00015ea2 0x00000010 Code RO 2158 i.drv_vidc_set_rotation CVWL368.lib(drv_vidc.o) + 0x00015eb2 0x00015eb2 0x0000000a Code RO 2159 i.drv_vidc_set_scld_hcoef0 CVWL368.lib(drv_vidc.o) + 0x00015ebc 0x00015ebc 0x0000000a Code RO 2160 i.drv_vidc_set_scld_hcoef1 CVWL368.lib(drv_vidc.o) + 0x00015ec6 0x00015ec6 0x00000012 Code RO 2161 i.drv_vidc_set_scld_step CVWL368.lib(drv_vidc.o) + 0x00015ed8 0x00015ed8 0x0000000a Code RO 2162 i.drv_vidc_set_scld_vcoef0 CVWL368.lib(drv_vidc.o) + 0x00015ee2 0x00015ee2 0x0000000a Code RO 2163 i.drv_vidc_set_scld_vcoef1 CVWL368.lib(drv_vidc.o) + 0x00015eec 0x00015eec 0x00000016 Code RO 2164 i.drv_vidc_set_src_parameter CVWL368.lib(drv_vidc.o) + 0x00015f02 0x00015f02 0x00000002 PAD + 0x00015f04 0x00015f04 0x00000010 Code RO 2540 i.drv_wdg_clear_counter CVWL368.lib(drv_wdg.o) + 0x00015f14 0x00015f14 0x00000010 Code RO 2541 i.drv_wdg_clear_edge_flag CVWL368.lib(drv_wdg.o) + 0x00015f24 0x00015f24 0x00000010 Code RO 2544 i.drv_wdg_read_edge_flag CVWL368.lib(drv_wdg.o) + 0x00015f34 0x00015f34 0x00000040 Code RO 2547 i.drv_wdg_set_int CVWL368.lib(drv_wdg.o) + 0x00015f74 0x00015f74 0x0000000a Code RO 1244 i.fls_clr_interrupt_flag CVWL368.lib(drv_fls.o) + 0x00015f7e 0x00015f7e 0x00000014 Code RO 958 i.fputc CVWL368.lib(tau_log.o) + 0x00015f92 0x00015f92 0x00000002 PAD + 0x00015f94 0x00015f94 0x00000034 Code RO 503 i.hal_dsi_rx_ctrl_create_handle CVWL368.lib(hal_dsi_rx_ctrl.o) + 0x00015fc8 0x00015fc8 0x00000084 Code RO 507 i.hal_dsi_rx_ctrl_dsc_async_handler CVWL368.lib(hal_dsi_rx_ctrl.o) + 0x0001604c 0x0001604c 0x00000028 Code RO 509 i.hal_dsi_rx_ctrl_gen_a_tear_signal CVWL368.lib(hal_dsi_rx_ctrl.o) + 0x00016074 0x00016074 0x00000060 Code RO 513 i.hal_dsi_rx_ctrl_init CVWL368.lib(hal_dsi_rx_ctrl.o) + 0x000160d4 0x000160d4 0x000001a4 Code RO 514 i.hal_dsi_rx_ctrl_init_clk CVWL368.lib(hal_dsi_rx_ctrl.o) + 0x00016278 0x00016278 0x000000d8 Code RO 515 i.hal_dsi_rx_ctrl_init_dsi_rx CVWL368.lib(hal_dsi_rx_ctrl.o) + 0x00016350 0x00016350 0x00000158 Code RO 516 i.hal_dsi_rx_ctrl_init_memc CVWL368.lib(hal_dsi_rx_ctrl.o) + 0x000164a8 0x000164a8 0x00000138 Code RO 517 i.hal_dsi_rx_ctrl_init_rxbr CVWL368.lib(hal_dsi_rx_ctrl.o) + 0x000165e0 0x000165e0 0x00000230 Code RO 518 i.hal_dsi_rx_ctrl_init_vidc CVWL368.lib(hal_dsi_rx_ctrl.o) + 0x00016810 0x00016810 0x0000006c Code RO 525 i.hal_dsi_rx_ctrl_set_cus_scld_filter CVWL368.lib(hal_dsi_rx_ctrl.o) + 0x0001687c 0x0001687c 0x00000034 Code RO 526 i.hal_dsi_rx_ctrl_set_cus_sync_line CVWL368.lib(hal_dsi_rx_ctrl.o) + 0x000168b0 0x000168b0 0x00000038 Code RO 530 i.hal_dsi_rx_ctrl_set_ipi_cfg CVWL368.lib(hal_dsi_rx_ctrl.o) + 0x000168e8 0x000168e8 0x00000072 Code RO 535 i.hal_dsi_rx_ctrl_set_rxbr_clk CVWL368.lib(hal_dsi_rx_ctrl.o) + 0x0001695a 0x0001695a 0x00000002 PAD + 0x0001695c 0x0001695c 0x0000003c Code RO 539 i.hal_dsi_rx_ctrl_start CVWL368.lib(hal_dsi_rx_ctrl.o) + 0x00016998 0x00016998 0x00000020 Code RO 542 i.hal_dsi_rx_ctrl_toggle_resolution CVWL368.lib(hal_dsi_rx_ctrl.o) + 0x000169b8 0x000169b8 0x00000190 Code RO 596 i.hal_dsi_tx_calc_video_chunks CVWL368.lib(hal_dsi_tx_ctrl.o) + 0x00016b48 0x00016b48 0x00000034 Code RO 597 i.hal_dsi_tx_config_params_for_lane_rate CVWL368.lib(hal_dsi_tx_ctrl.o) + 0x00016b7c 0x00016b7c 0x00000450 Code RO 598 i.hal_dsi_tx_count_lane_rate CVWL368.lib(hal_dsi_tx_ctrl.o) + 0x00016fcc 0x00016fcc 0x00000094 Code RO 599 i.hal_dsi_tx_crop_pic CVWL368.lib(hal_dsi_tx_ctrl.o) + 0x00017060 0x00017060 0x0000002c Code RO 601 i.hal_dsi_tx_ctrl_create_handle CVWL368.lib(hal_dsi_tx_ctrl.o) + 0x0001708c 0x0001708c 0x0000004c Code RO 606 i.hal_dsi_tx_ctrl_enter_init_panel_mode CVWL368.lib(hal_dsi_tx_ctrl.o) + 0x000170d8 0x000170d8 0x00000028 Code RO 608 i.hal_dsi_tx_ctrl_exit_init_panel_mode CVWL368.lib(hal_dsi_tx_ctrl.o) + 0x00017100 0x00017100 0x000000a4 Code RO 610 i.hal_dsi_tx_ctrl_init CVWL368.lib(hal_dsi_tx_ctrl.o) + 0x000171a4 0x000171a4 0x00000024 Code RO 611 i.hal_dsi_tx_ctrl_init_clk CVWL368.lib(hal_dsi_tx_ctrl.o) + 0x000171c8 0x000171c8 0x0000000c Code RO 612 i.hal_dsi_tx_ctrl_panel_reset_pin CVWL368.lib(hal_dsi_tx_ctrl.o) + 0x000171d4 0x000171d4 0x00000014 Code RO 621 i.hal_dsi_tx_ctrl_set_overwrite_rgb CVWL368.lib(hal_dsi_tx_ctrl.o) + 0x000171e8 0x000171e8 0x00000010 Code RO 622 i.hal_dsi_tx_ctrl_set_partial_disp CVWL368.lib(hal_dsi_tx_ctrl.o) + 0x000171f8 0x000171f8 0x00000024 Code RO 623 i.hal_dsi_tx_ctrl_set_partial_disp_area CVWL368.lib(hal_dsi_tx_ctrl.o) + 0x0001721c 0x0001721c 0x0000009c Code RO 626 i.hal_dsi_tx_ctrl_start CVWL368.lib(hal_dsi_tx_ctrl.o) + 0x000172b8 0x000172b8 0x000000b0 Code RO 629 i.hal_dsi_tx_ctrl_write_cmd CVWL368.lib(hal_dsi_tx_ctrl.o) + 0x00017368 0x00017368 0x00000044 Code RO 630 i.hal_dsi_tx_init_data_mode CVWL368.lib(hal_dsi_tx_ctrl.o) + 0x000173ac 0x000173ac 0x00000030 Code RO 631 i.hal_dsi_tx_init_dpi_cfg CVWL368.lib(hal_dsi_tx_ctrl.o) + 0x000173dc 0x000173dc 0x00000020 Code RO 632 i.hal_dsi_tx_init_interrupt CVWL368.lib(hal_dsi_tx_ctrl.o) + 0x000173fc 0x000173fc 0x00000020 Code RO 633 i.hal_dsi_tx_init_phy_cfg CVWL368.lib(hal_dsi_tx_ctrl.o) + 0x0001741c 0x0001741c 0x00000094 Code RO 634 i.hal_dsi_tx_init_remains CVWL368.lib(hal_dsi_tx_ctrl.o) + 0x000174b0 0x000174b0 0x00000058 Code RO 635 i.hal_dsi_tx_init_video_mode CVWL368.lib(hal_dsi_tx_ctrl.o) + 0x00017508 0x00017508 0x00000044 Code RO 636 i.hal_dsi_tx_send_cmd CVWL368.lib(hal_dsi_tx_ctrl.o) + 0x0001754c 0x0001754c 0x00000018 Code RO 701 i.hal_gpio_ctrl_eint CVWL368.lib(hal_gpio.o) + 0x00017564 0x00017564 0x00000012 Code RO 702 i.hal_gpio_get_input_data CVWL368.lib(hal_gpio.o) + 0x00017576 0x00017576 0x00000002 PAD + 0x00017578 0x00017578 0x00000040 Code RO 705 i.hal_gpio_init_eint CVWL368.lib(hal_gpio.o) + 0x000175b8 0x000175b8 0x00000028 Code RO 707 i.hal_gpio_init_output CVWL368.lib(hal_gpio.o) + 0x000175e0 0x000175e0 0x00000018 Code RO 708 i.hal_gpio_reg_eint_cb CVWL368.lib(hal_gpio.o) + 0x000175f8 0x000175f8 0x00000060 Code RO 711 i.hal_gpio_set_mode CVWL368.lib(hal_gpio.o) + 0x00017658 0x00017658 0x00000008 Code RO 712 i.hal_gpio_set_output_data CVWL368.lib(hal_gpio.o) + 0x00017660 0x00017660 0x00000020 Code RO 714 i.hal_gpio_set_pull_state CVWL368.lib(hal_gpio.o) + 0x00017680 0x00017680 0x0000006c Code RO 740 i.hal_i2c_m_dma_init CVWL368.lib(hal_i2c_master.o) + 0x000176ec 0x000176ec 0x00000020 Code RO 741 i.hal_i2c_m_dma_read CVWL368.lib(hal_i2c_master.o) + 0x0001770c 0x0001770c 0x0000000c Code RO 744 i.hal_i2c_m_transfer_complate CVWL368.lib(hal_i2c_master.o) + 0x00017718 0x00017718 0x00000020 Code RO 745 i.hal_i2c_master_irq_callback CVWL368.lib(hal_i2c_master.o) + 0x00017738 0x00017738 0x00000010 Code RO 759 i.hal_i2c_s_dma_user_callback CVWL368.lib(hal_i2c_slave.o) + 0x00017748 0x00017748 0x0000004c Code RO 760 i.hal_i2c_s_dma_write CVWL368.lib(hal_i2c_slave.o) + 0x00017794 0x00017794 0x000000c8 Code RO 762 i.hal_i2c_s_init CVWL368.lib(hal_i2c_slave.o) + 0x0001785c 0x0001785c 0x00000014 Code RO 763 i.hal_i2c_s_nonblocking_read CVWL368.lib(hal_i2c_slave.o) + 0x00017870 0x00017870 0x0000000c Code RO 771 i.hal_i2c_s_set_transfer CVWL368.lib(hal_i2c_slave.o) + 0x0001787c 0x0001787c 0x00000174 Code RO 774 i.hal_i2c_slave_irq_callback CVWL368.lib(hal_i2c_slave.o) + 0x000179f0 0x000179f0 0x000000fc Code RO 1687 i.hal_internal_init_memc CVWL368.lib(hal_internal_vsync.o) + 0x00017aec 0x00017aec 0x00000010 Code RO 1689 i.hal_internal_sync_get_fb_setting CVWL368.lib(hal_internal_vsync.o) + 0x00017afc 0x00017afc 0x00000010 Code RO 1690 i.hal_internal_sync_get_hight_performan_mode CVWL368.lib(hal_internal_vsync.o) + 0x00017b0c 0x00017b0c 0x0000022c Code RO 1691 i.hal_internal_sync_input_resolution_change CVWL368.lib(hal_internal_vsync.o) + 0x00017d38 0x00017d38 0x00000028 Code RO 1694 i.hal_internal_vsync_deinit CVWL368.lib(hal_internal_vsync.o) + 0x00017d60 0x00017d60 0x00000018 Code RO 1696 i.hal_internal_vsync_get_sync_line CVWL368.lib(hal_internal_vsync.o) + 0x00017d78 0x00017d78 0x0000000c Code RO 1697 i.hal_internal_vsync_get_tear_mode CVWL368.lib(hal_internal_vsync.o) + 0x00017d84 0x00017d84 0x00000118 Code RO 1699 i.hal_internal_vsync_init_rx CVWL368.lib(hal_internal_vsync.o) + 0x00017e9c 0x00017e9c 0x000000b0 Code RO 1700 i.hal_internal_vsync_init_tx CVWL368.lib(hal_internal_vsync.o) + 0x00017f4c 0x00017f4c 0x0000011c Code RO 1701 i.hal_internal_vsync_set_auto_hw_filter CVWL368.lib(hal_internal_vsync.o) + 0x00018068 0x00018068 0x00000014 Code RO 1703 i.hal_internal_vsync_set_rx_state CVWL368.lib(hal_internal_vsync.o) + 0x0001807c 0x0001807c 0x00000024 Code RO 1704 i.hal_internal_vsync_set_sync_line CVWL368.lib(hal_internal_vsync.o) + 0x000180a0 0x000180a0 0x00000080 Code RO 1706 i.hal_internal_vsync_set_tx_state CVWL368.lib(hal_internal_vsync.o) + 0x00018120 0x00018120 0x00000030 Code RO 1707 i.hal_internal_vsync_update_lcdc_addr CVWL368.lib(hal_internal_vsync.o) + 0x00018150 0x00018150 0x00000024 Code RO 637 i.hal_lcdc_config_ccm CVWL368.lib(hal_dsi_tx_ctrl.o) + 0x00018174 0x00018174 0x00000058 Code RO 638 i.hal_lcdc_config_remains CVWL368.lib(hal_dsi_tx_ctrl.o) + 0x000181cc 0x000181cc 0x00000014 Code RO 639 i.hal_lcdc_config_rgb_to_pentile CVWL368.lib(hal_dsi_tx_ctrl.o) + 0x000181e0 0x000181e0 0x00000164 Code RO 640 i.hal_lcdc_config_upscaler CVWL368.lib(hal_dsi_tx_ctrl.o) + 0x00018344 0x00018344 0x00000054 Code RO 641 i.hal_lcdc_init_cfg CVWL368.lib(hal_dsi_tx_ctrl.o) + 0x00018398 0x00018398 0x00000190 Code RO 642 i.hal_lcdc_init_clk CVWL368.lib(hal_dsi_tx_ctrl.o) + 0x00018528 0x00018528 0x00000040 Code RO 643 i.hal_lcdc_init_interrupt CVWL368.lib(hal_dsi_tx_ctrl.o) + 0x00018568 0x00018568 0x00000020 Code RO 809 i.hal_pwm_out_common_config CVWL368.lib(hal_pwm.o) + 0x00018588 0x00018588 0x00000010 Code RO 810 i.hal_pwm_out_config_all CVWL368.lib(hal_pwm.o) + 0x00018598 0x00018598 0x000000a4 Code RO 812 i.hal_pwm_out_convert_time CVWL368.lib(hal_pwm.o) + 0x0001863c 0x0001863c 0x0000000c Code RO 814 i.hal_pwm_out_init CVWL368.lib(hal_pwm.o) + 0x00018648 0x00018648 0x00000026 Code RO 816 i.hal_pwm_out_sel_io CVWL368.lib(hal_pwm.o) + 0x0001866e 0x0001866e 0x00000002 PAD + 0x00018670 0x00018670 0x00000034 Code RO 821 i.hal_pwm_out_sync_thr CVWL368.lib(hal_pwm.o) + 0x000186a4 0x000186a4 0x0000000e Code RO 852 i.hal_spi_m_clear_rxfifo CVWL368.lib(hal_spi_master.o) + 0x000186b2 0x000186b2 0x00000008 Code RO 893 i.hal_system_enable_systick CVWL368.lib(hal_system.o) + 0x000186ba 0x000186ba 0x00000002 PAD + 0x000186bc 0x000186bc 0x00000088 Code RO 899 i.hal_system_init CVWL368.lib(hal_system.o) + 0x00018744 0x00018744 0x0000001c Code RO 900 i.hal_system_init_console CVWL368.lib(hal_system.o) + 0x00018760 0x00018760 0x00000008 Code RO 903 i.hal_system_set_phy_calibration CVWL368.lib(hal_system.o) + 0x00018768 0x00018768 0x00000014 Code RO 906 i.hal_system_share_flash_mode CVWL368.lib(hal_system.o) + 0x0001877c 0x0001877c 0x0000001a Code RO 932 i.hal_timer_init CVWL368.lib(hal_timer.o) + 0x00018796 0x00018796 0x00000002 PAD + 0x00018798 0x00018798 0x00000048 Code RO 934 i.hal_timer_start CVWL368.lib(hal_timer.o) + 0x000187e0 0x000187e0 0x0000008c Code RO 969 i.hal_uart_init CVWL368.lib(hal_uart.o) + 0x0001886c 0x0001886c 0x00000010 Code RO 972 i.hal_uart_transmit_blocking CVWL368.lib(hal_uart.o) + 0x0001887c 0x0001887c 0x00000110 Code RO 2240 i.handle_init CVWL368.lib(irq_redirect .o) + 0x0001898c 0x0001898c 0x000000e4 Code RO 107 i.init_mipi_tx ap_demo.o + 0x00018a70 0x00018a70 0x0000184e Code RO 108 i.init_panel ap_demo.o + 0x0001a2be 0x0001a2be 0x00000010 Code RO 3 i.main main.o + 0x0001a2ce 0x0001a2ce 0x00000002 PAD + 0x0001a2d0 0x0001a2d0 0x000000f4 Code RO 109 i.open_mipi_rx ap_demo.o + 0x0001a3c4 0x0001a3c4 0x00000054 Code RO 110 i.pps_update_handle ap_demo.o + 0x0001a418 0x0001a418 0x000003f4 Code RO 1709 i.rx_get_dcs_packet_data CVWL368.lib(hal_internal_vsync.o) + 0x0001a80c 0x0001a80c 0x00000178 Code RO 1710 i.rx_partial_update CVWL368.lib(hal_internal_vsync.o) + 0x0001a984 0x0001a984 0x0000008c Code RO 1711 i.rx_receive_packet CVWL368.lib(hal_internal_vsync.o) + 0x0001aa10 0x0001aa10 0x00000180 Code RO 1712 i.rx_receive_pps CVWL368.lib(hal_internal_vsync.o) + 0x0001ab90 0x0001ab90 0x000000a4 Code RO 1713 i.rxbr_irq0_callback CVWL368.lib(hal_internal_vsync.o) + 0x0001ac34 0x0001ac34 0x000001b4 Code RO 1714 i.rxbr_irq1_callback CVWL368.lib(hal_internal_vsync.o) + 0x0001ade8 0x0001ade8 0x000000c4 Code RO 1715 i.soft_gen_te CVWL368.lib(hal_internal_vsync.o) + 0x0001aeac 0x0001aeac 0x000000c0 Code RO 1716 i.soft_gen_te_double_buffer CVWL368.lib(hal_internal_vsync.o) + 0x0001af6c 0x0001af6c 0x00000048 Code RO 2567 i.sqrt m_ps.l(sqrt.o) + 0x0001afb4 0x0001afb4 0x00000088 Code RO 265 i.tp_int_high_timer_callback app_tp_for_custom_mi8se.o + 0x0001b03c 0x0001b03c 0x0000001c Code RO 266 i.tp_int_high_timer_init app_tp_for_custom_mi8se.o + 0x0001b058 0x0001b058 0x00000068 Code RO 116 i.tx_display_on ap_demo.o + 0x0001b0c0 0x0001b0c0 0x00000028 Code RO 117 i.tx_panel_reset ap_demo.o + 0x0001b0e8 0x0001b0e8 0x00000108 Code RO 1717 i.vidc_callback CVWL368.lib(hal_internal_vsync.o) + 0x0001b1f0 0x0001b1f0 0x000000d0 Code RO 1718 i.vpre_err_reset CVWL368.lib(hal_internal_vsync.o) + 0x0001b2c0 0x0001b2c0 0x000001cc Code RO 1719 i.vsync_set_te_mode CVWL368.lib(hal_internal_vsync.o) + 0x0001b48c 0x0001b48c 0x00000048 Data RO 118 .constdata ap_demo.o + 0x0001b4d4 0x0001b4d4 0x000002ba Data RO 268 .constdata app_tp_for_custom_mi8se.o + 0x0001b78e 0x0001b78e 0x000000d2 Data RO 717 .constdata CVWL368.lib(hal_gpio.o) + 0x0001b860 0x0001b860 0x00000020 Data RO 775 .constdata CVWL368.lib(hal_i2c_slave.o) + 0x0001b880 0x0001b880 0x00000008 Data RO 1469 .constdata CVWL368.lib(drv_param_init.o) + 0x0001b888 0x0001b888 0x00000186 Data RO 2312 .constdata CVWL368.lib(drv_phy_common.o) + 0x0001ba0e 0x0001ba0e 0x00000002 PAD + 0x0001ba10 0x0001ba10 0x00000043 Data RO 646 .conststring CVWL368.lib(hal_dsi_tx_ctrl.o) + 0x0001ba53 0x0001ba53 0x00000001 PAD + 0x0001ba54 0x0001ba54 0x00000134 Data RO 1721 .conststring CVWL368.lib(hal_internal_vsync.o) + 0x0001bb88 0x0001bb88 0x00000030 Data RO 2929 Region$$Table anon$$obj.o + + + Execution Region RW_RAM1 (Exec base: 0x00070000, Load base: 0x0001bbb8, Size: 0x00000000, Max: 0x000000f0, ABSOLUTE) + + **** No section assigned to this execution region **** + + + Execution Region RW_RAM2 (Exec base: 0x00070100, Load base: 0x0001bbb8, Size: 0x000000c0, Max: 0x000000d0, ABSOLUTE) + + Exec Addr Load Addr Size Type Attr Idx E Section Name Object + + 0x00070100 - 0x000000c0 Zero RW 2241 .ARM.__AT_0x00070100 CVWL368.lib(irq_redirect .o) + + + Execution Region RW_RAM3 (Exec base: 0x000701d0, Load base: 0x0001bbb8, Size: 0x00003948, Max: 0x00007e30, ABSOLUTE, COMPRESSED[0x00000574]) + + Exec Addr Load Addr Size Type Attr Idx E Section Name Object + + 0x000701d0 COMPRESSED 0x00000214 Data RW 119 .data ap_demo.o + 0x000703e4 COMPRESSED 0x000000e7 Data RW 269 .data app_tp_for_custom_mi8se.o + 0x000704cb COMPRESSED 0x00000001 PAD + 0x000704cc COMPRESSED 0x0000001b Data RW 346 .data app_tp_transfer.o + 0x000704e7 COMPRESSED 0x00000001 PAD + 0x000704e8 COMPRESSED 0x00000008 Data RW 546 .data CVWL368.lib(hal_dsi_rx_ctrl.o) + 0x000704f0 COMPRESSED 0x00000003 Data RW 647 .data CVWL368.lib(hal_dsi_tx_ctrl.o) + 0x000704f3 COMPRESSED 0x00000001 Data RW 746 .data CVWL368.lib(hal_i2c_master.o) + 0x000704f4 COMPRESSED 0x00000020 Data RW 776 .data CVWL368.lib(hal_i2c_slave.o) + 0x00070514 COMPRESSED 0x00000001 Data RW 822 .data CVWL368.lib(hal_pwm.o) + 0x00070515 COMPRESSED 0x00000003 PAD + 0x00070518 COMPRESSED 0x00000012 Data RW 1026 .data CVWL368.lib(norflash.o) + 0x0007052a COMPRESSED 0x00000002 PAD + 0x0007052c COMPRESSED 0x0000000c Data RW 1080 .data CVWL368.lib(drv_common.o) + 0x00070538 COMPRESSED 0x00000004 Data RW 1347 .data CVWL368.lib(drv_gpio.o) + 0x0007053c COMPRESSED 0x00000008 Data RW 1385 .data CVWL368.lib(drv_i2c_dma.o) + 0x00070544 COMPRESSED 0x00000004 Data RW 1414 .data CVWL368.lib(drv_i2c_master.o) + 0x00070548 COMPRESSED 0x00000004 Data RW 1445 .data CVWL368.lib(drv_i2c_slave.o) + 0x0007054c COMPRESSED 0x000004a4 Data RW 1470 .data CVWL368.lib(drv_param_init.o) + 0x000709f0 COMPRESSED 0x0000000c Data RW 1500 .data CVWL368.lib(drv_pwm.o) + 0x000709fc COMPRESSED 0x00000004 Data RW 1576 .data CVWL368.lib(drv_spi_master.o) + 0x00070a00 COMPRESSED 0x00000008 Data RW 1602 .data CVWL368.lib(drv_swire.o) + 0x00070a08 COMPRESSED 0x00000001 Data RW 1627 .data CVWL368.lib(drv_sys_cfg.o) + 0x00070a09 COMPRESSED 0x00000003 PAD + 0x00070a0c COMPRESSED 0x00000050 Data RW 1660 .data CVWL368.lib(drv_timer.o) + 0x00070a5c COMPRESSED 0x0000000c Data RW 1722 .data CVWL368.lib(hal_internal_vsync.o) + 0x00070a68 COMPRESSED 0x00000008 Data RW 2093 .data CVWL368.lib(drv_rxbr.o) + 0x00070a70 COMPRESSED 0x00000004 Data RW 2166 .data CVWL368.lib(drv_vidc.o) + 0x00070a74 COMPRESSED 0x00000001 Data RW 2313 .data CVWL368.lib(drv_phy_common.o) + 0x00070a75 COMPRESSED 0x00000003 PAD + 0x00070a78 COMPRESSED 0x0000000c Data RW 2333 .data CVWL368.lib(drv_chip_info.o) + 0x00070a84 COMPRESSED 0x00000008 Data RW 2482 .data CVWL368.lib(drv_uart.o) + 0x00070a8c COMPRESSED 0x0000000c Data RW 2549 .data CVWL368.lib(drv_wdg.o) + 0x00070a98 COMPRESSED 0x00000004 Data RW 2898 .data mc_p.l(stdout.o) + 0x00070a9c COMPRESSED 0x00000004 Data RW 2910 .data mc_p.l(errno.o) + 0x00070aa0 - 0x00000050 Zero RW 267 .bss app_tp_for_custom_mi8se.o + 0x00070af0 - 0x000001ec Zero RW 345 .bss app_tp_transfer.o + 0x00070cdc - 0x000000c4 Zero RW 544 .bss CVWL368.lib(hal_dsi_rx_ctrl.o) + 0x00070da0 - 0x0000004c Zero RW 644 .bss CVWL368.lib(hal_dsi_tx_ctrl.o) + 0x00070dec - 0x00000100 Zero RW 959 .bss CVWL368.lib(tau_log.o) + 0x00070eec - 0x000000d0 Zero RW 974 .bss CVWL368.lib(hal_uart.o) + 0x00070fbc - 0x0000001c Zero RW 1209 .bss CVWL368.lib(drv_dma.o) + 0x00070fd8 - 0x00000040 Zero RW 1346 .bss CVWL368.lib(drv_gpio.o) + 0x00071018 - 0x00000140 Zero RW 1384 .bss CVWL368.lib(drv_i2c_dma.o) + 0x00071158 - 0x00000970 Zero RW 1720 .bss CVWL368.lib(hal_internal_vsync.o) + 0x00071ac8 - 0x00001030 Zero RW 1770 .bss CVWL368.lib(dcs_packet_fifo.o) + 0x00072af8 - 0x00000020 Zero RW 2377 .bss CVWL368.lib(hal_spi_slave.o) + 0x00072b18 - 0x00001000 Zero RW 492 STACK startup_armcm0.o + + +============================================================================== + +Image component sizes + + + Code (inc. data) RO Data RW Data ZI Data Debug Object Name + + 7722 388 72 532 0 23477 ap_demo.o + 1992 256 698 231 80 16113 app_tp_for_custom_mi8se.o + 724 140 0 27 492 12419 app_tp_transfer.o + 36 6 0 0 0 545 board.o + 16 0 0 0 0 9723 main.o + 120 18 192 0 4096 2108 startup_armcm0.o + + ---------------------------------------------------------------------- + 10616 808 1010 792 4668 64385 Object Totals + 0 0 48 0 0 0 (incl. Generated) + 6 0 0 2 0 0 (incl. Padding) + + ---------------------------------------------------------------------- + + Code (inc. data) RO Data RW Data ZI Data Debug Library Member Name + + 216 32 0 0 4144 252 dcs_packet_fifo.o + 296 96 0 12 0 256 drv_chip_info.o + 192 82 24 12 0 264 drv_common.o + 420 90 0 0 0 1200 drv_crgu.o + 410 28 0 0 28 796 drv_dma.o + 232 28 0 0 0 340 drv_dsc_dec.o + 1624 494 0 0 0 1216 drv_dsi_rx.o + 1528 118 0 0 0 2428 drv_dsi_tx.o + 118 0 0 0 0 256 drv_efuse.o + 70 20 0 0 0 196 drv_fls.o + 784 106 0 4 64 1176 drv_gpio.o + 524 72 0 8 320 548 drv_i2c_dma.o + 360 86 0 4 0 456 drv_i2c_master.o + 292 36 0 4 0 580 drv_i2c_slave.o + 704 6 0 0 0 1504 drv_lcdc.o + 492 28 0 0 0 1112 drv_memc.o + 192 38 8 1188 0 384 drv_param_init.o + 428 30 390 1 0 664 drv_phy_common.o + 188 44 0 12 0 436 drv_pwm.o + 80 18 0 0 0 120 drv_pwr.o + 702 84 0 8 0 1388 drv_rxbr.o + 104 24 0 4 0 188 drv_spi_master.o + 116 12 0 8 0 140 drv_swire.o + 272 58 0 1 0 560 drv_sys_cfg.o + 358 30 0 80 0 872 drv_timer.o + 698 18 0 8 0 680 drv_uart.o + 510 28 0 4 0 1452 drv_vidc.o + 168 22 0 12 0 316 drv_wdg.o + 2620 244 0 8 196 1176 hal_dsi_rx_ctrl.o + 4012 270 67 3 76 2176 hal_dsi_tx_ctrl.o + 338 40 210 0 0 612 hal_gpio.o + 184 36 0 1 0 272 hal_i2c_master.o + 696 72 32 32 0 408 hal_i2c_slave.o + 7418 1596 308 12 2416 2344 hal_internal_vsync.o + 314 22 0 1 0 436 hal_pwm.o + 14 0 0 0 0 68 hal_spi_master.o + 580 32 0 0 32 136 hal_spi_slave.o + 200 32 0 0 0 340 hal_system.o + 98 6 0 0 0 140 hal_timer.o + 156 18 0 0 208 144 hal_uart.o + 1076 324 0 0 192 1980 irq_redirect .o + 48 10 0 18 0 68 norflash.o + 58 0 0 0 0 128 tau_delay.o + 60 10 0 0 256 156 tau_log.o + 200 20 0 0 0 76 ceil.o + 72 6 0 0 0 76 sqrt.o + 86 0 0 0 0 0 __dczerorl2.o + 0 0 0 0 0 0 entry.o + 0 0 0 0 0 0 entry10a.o + 0 0 0 0 0 0 entry11a.o + 8 4 0 0 0 0 entry2.o + 4 0 0 0 0 0 entry5.o + 0 0 0 0 0 0 entry7b.o + 0 0 0 0 0 0 entry8b.o + 8 4 0 0 0 0 entry9a.o + 12 6 0 4 0 60 errno.o + 30 0 0 0 0 0 handlers.o + 40 0 0 0 0 72 idiv.o + 36 8 0 0 0 68 init.o + 0 0 0 0 0 0 iusefp.o + 32 0 0 0 0 68 llshl.o + 38 0 0 0 0 68 llsshr.o + 34 0 0 0 0 68 llushr.o + 36 0 0 0 0 60 memcpya.o + 36 0 0 0 0 100 memseta.o + 2298 104 0 0 0 544 printfa.o + 0 0 0 4 0 0 stdout.o + 44 0 0 0 0 72 uidiv.o + 96 0 0 0 0 84 uldiv.o + 40 2 0 0 0 68 cdcmple.o + 40 2 0 0 0 68 cdrcmple.o + 20 0 0 0 0 68 cfrcmple.o + 356 4 0 0 0 140 dadd.o + 240 6 0 0 0 84 ddiv.o + 236 0 0 0 0 216 depilogue.o + 72 10 0 0 0 72 dfixi.o + 60 10 0 0 0 68 dfixui.o + 64 10 0 0 0 68 dfixul.o + 28 4 0 0 0 68 dfltui.o + 208 6 0 0 0 88 dmul.o + 162 0 0 0 0 80 dsqrt.o + 40 0 0 0 0 60 f2d.o + 178 0 0 0 0 108 fadd.o + 124 0 0 0 0 72 fdiv.o + 130 0 0 0 0 144 fepilogue.o + 50 0 0 0 0 60 ffixi.o + 40 0 0 0 0 60 ffixui.o + 22 0 0 0 0 68 fflti.o + 14 0 0 0 0 68 ffltui.o + 122 0 0 0 0 72 fmul.o + 24 0 0 0 0 60 fscalb.o + + ---------------------------------------------------------------------- + 35388 4646 1042 1464 7932 33640 Library Totals + 58 0 3 11 0 0 (incl. Padding) + + ---------------------------------------------------------------------- + + Code (inc. data) RO Data RW Data ZI Data Debug Library Name + + 29950 4440 1039 1445 7932 30364 CVWL368.lib + 272 26 0 0 0 152 m_ps.l + 2838 126 0 8 0 1264 mc_p.l + 2270 54 0 0 0 1860 mf_p.l + + ---------------------------------------------------------------------- + 35388 4646 1042 1464 7932 33640 Library Totals + + ---------------------------------------------------------------------- + +============================================================================== + + + Code (inc. data) RO Data RW Data ZI Data Debug + + 46004 5454 2052 2256 12600 74861 Grand Totals + 46004 5454 2052 1396 12600 74861 ELF Image Totals (compressed) + 46004 5454 2052 1396 0 0 ROM Totals + +============================================================================== + + Total RO Size (Code + RO Data) 48056 ( 46.93kB) + Total RW Size (RW Data + ZI Data) 14856 ( 14.51kB) + Total ROM Size (Code + RO Data + RW Data) 49452 ( 48.29kB) + +============================================================================== + diff --git a/project/ISP_368/Listings/ap_demo.txt b/project/ISP_368/Listings/ap_demo.txt new file mode 100644 index 0000000..69d36cd --- /dev/null +++ b/project/ISP_368/Listings/ap_demo.txt @@ -0,0 +1,5299 @@ +; 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 -O0 --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..\..\src\app\ap_demo -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\ap_demo\ap_demo.c] + THUMB + + AREA ||i.AP_SWIRE_init||, CODE, READONLY, ALIGN=1 + + AP_SWIRE_init PROC +;;;1432 +;;;1433 static void AP_SWIRE_init() +000000 b510 PUSH {r4,lr} +;;;1434 { +;;;1435 uint8_t i; +;;;1436 +;;;1437 hal_gpio_set_output_data(IO_PAD_ADCIN, IO_LVL_HIGH); +000002 2101 MOVS r1,#1 +000004 2014 MOVS r0,#0x14 +000006 f7fffffe BL hal_gpio_set_output_data +;;;1438 delayMs(1); +00000a 2001 MOVS r0,#1 +00000c f7fffffe BL delayMs +;;;1439 +;;;1440 for(i=0; i<5; i++) +000010 2400 MOVS r4,#0 +000012 e00f B |L1.52| + |L1.20| +;;;1441 { +;;;1442 hal_gpio_set_output_data(IO_PAD_ADCIN,IO_LVL_LOW); +000014 2100 MOVS r1,#0 +000016 2014 MOVS r0,#0x14 +000018 f7fffffe BL hal_gpio_set_output_data +;;;1443 delayUs(10); +00001c 200a MOVS r0,#0xa +00001e f7fffffe BL delayUs +;;;1444 hal_gpio_set_output_data(IO_PAD_ADCIN,IO_LVL_HIGH); +000022 2101 MOVS r1,#1 +000024 2014 MOVS r0,#0x14 +000026 f7fffffe BL hal_gpio_set_output_data +;;;1445 delayUs(10); +00002a 200a MOVS r0,#0xa +00002c f7fffffe BL delayUs +000030 1c60 ADDS r0,r4,#1 ;1440 +000032 b2c4 UXTB r4,r0 ;1440 + |L1.52| +000034 2c05 CMP r4,#5 ;1440 +000036 dbed BLT |L1.20| +;;;1446 } +;;;1447 } +000038 bd10 POP {r4,pc} +;;;1448 + ENDP + + + AREA ||i.PWM_Task||, CODE, READONLY, ALIGN=2 + + PWM_Task PROC +;;;285 +;;;286 void PWM_Task(void) +000000 b510 PUSH {r4,lr} +;;;287 { +;;;288 uint16_t pwm_h; +;;;289 +;;;290 #if 0 // NOTE10ий绰Ϩ +;;;291 if(Flag_blacklight_EN) +;;;292 { +;;;293 read_bl_data_bak = 0; +;;;294 hal_pwm_out_sync_thr(PWM_PERIOD + 1, 0); +;;;295 return; +;;;296 } +;;;297 #endif +;;;298 +;;;299 #if 1// +;;;300 if(read_bl_data != read_bl_data_bak) +000002 480a LDR r0,|L2.44| +000004 8800 LDRH r0,[r0,#0] ; read_bl_data +000006 490a LDR r1,|L2.48| +000008 8809 LDRH r1,[r1,#0] ; read_bl_data_bak +00000a 4288 CMP r0,r1 +00000c d00c BEQ |L2.40| +;;;301 { +;;;302 read_bl_data_bak = read_bl_data; +00000e 4807 LDR r0,|L2.44| +000010 8800 LDRH r0,[r0,#0] ; read_bl_data +000012 4907 LDR r1,|L2.48| +000014 8008 STRH r0,[r1,#0] +;;;303 pwm_h = read_bl_data ; +000016 4805 LDR r0,|L2.44| +000018 8804 LDRH r4,[r0,#0] ; read_bl_data +;;;304 +;;;305 if(pwm_h < PWM_MIN) +00001a 2c0c CMP r4,#0xc +00001c da00 BGE |L2.32| +;;;306 pwm_h = PWM_MIN; +00001e 240c MOVS r4,#0xc + |L2.32| +;;;307 hal_pwm_out_sync_thr(0, pwm_h); +000020 4621 MOV r1,r4 +000022 2000 MOVS r0,#0 +000024 f7fffffe BL hal_pwm_out_sync_thr + |L2.40| +;;;308 } +;;;309 #endif +;;;310 +;;;311 } +000028 bd10 POP {r4,pc} +;;;312 #endif + ENDP + +00002a 0000 DCW 0x0000 + |L2.44| + DCD read_bl_data + |L2.48| + DCD read_bl_data_bak + + AREA ||i.PWM_init||, CODE, READONLY, ALIGN=1 + + PWM_init PROC +;;;277 //} +;;;278 static void PWM_init(void) +000000 b508 PUSH {r3,lr} +;;;279 { +;;;280 // 1ms ڳʼ͵ƽ1000 +;;;281 hal_pwm_out_init(); +000002 f7fffffe BL hal_pwm_out_init +;;;282 hal_pwm_out_config_all(PWMO_CTRL_HIGH, PWMO_CTRL_LOW, PWM_PERIOD, 0, PWM_PERIOD); +000006 20ff MOVS r0,#0xff +000008 3001 ADDS r0,#1 +00000a 2300 MOVS r3,#0 +00000c 4602 MOV r2,r0 +00000e 2101 MOVS r1,#1 +000010 9000 STR r0,[sp,#0] +000012 2002 MOVS r0,#2 +000014 f7fffffe BL hal_pwm_out_config_all +;;;283 // hal_pwm_out_config_all(PWMO_CTRL_HIGH, PWMO_CTRL_LOW, PWM_PERIOD/2, 0, PWM_PERIOD); +;;;284 } +000018 bd08 POP {r3,pc} +;;;285 + ENDP + + + AREA ||i.ap_dcs_read||, CODE, READONLY, ALIGN=2 + + ap_dcs_read PROC +;;;233 +;;;234 static bool ap_dcs_read(uint8_t data_type, uint8_t dcs_cmd, uint8_t param) +000000 b570 PUSH {r4-r6,lr} +;;;235 { +000002 4605 MOV r5,r0 +000004 460c MOV r4,r1 +000006 4616 MOV r6,r2 +;;;236 TAU_LOGD("cmd=%x\n", dcs_cmd); +000008 bf00 NOP +00000a 4623 MOV r3,r4 +00000c 22ec MOVS r2,#0xec +00000e a103 ADR r1,|L4.28| +000010 a004 ADR r0,|L4.36| +000012 f7fffffe BL LOG_printf +000016 bf00 NOP +;;;237 return true; +000018 2001 MOVS r0,#1 +;;;238 } +00001a bd70 POP {r4-r6,pc} +;;;239 #if 1 + ENDP + + |L4.28| +00001c 4d693853 DCB "Mi8SE",0 +000020 4500 +000022 00 DCB 0 +000023 00 DCB 0 + |L4.36| +000024 5b25735d DCB "[%s] (%04d) cmd=%x\n",0 +000028 20282530 +00002c 34642920 +000030 636d643d +000034 25780a00 + + AREA ||i.ap_demo||, CODE, READONLY, ALIGN=2 + + ap_demo PROC +;;;1543 +;;;1544 void ap_demo(void) +000000 2100 MOVS r1,#0 +;;;1545 { +;;;1546 hal_gpio_init_output(IO_PAD_PWMEN, IO_LVL_LOW); +000002 2013 MOVS r0,#0x13 +000004 f7fffffe BL hal_gpio_init_output +;;;1547 hal_gpio_init_output(IO_PAD_ADCIN, IO_LVL_LOW); +000008 2100 MOVS r1,#0 +00000a 2014 MOVS r0,#0x14 +00000c f7fffffe BL hal_gpio_init_output +;;;1548 hal_gpio_init_output(IO_PAD_AP_SWIRE, IO_LVL_LOW); +000010 2100 MOVS r1,#0 +000012 2004 MOVS r0,#4 +000014 f7fffffe BL hal_gpio_init_output +;;;1549 hal_pwm_out_sel_io(IO_PAD_AP_SWIRE); +000018 2004 MOVS r0,#4 +00001a f7fffffe BL hal_pwm_out_sel_io +;;;1550 /* mipi rxʼ */ +;;;1551 open_mipi_rx(); +00001e f7fffffe BL open_mipi_rx +;;;1552 +;;;1553 PWM_init(); +000022 f7fffffe BL PWM_init +;;;1554 AP_SWIRE_init(); +000026 f7fffffe BL AP_SWIRE_init +;;;1555 #if SHARE_FLASH_MODE +;;;1556 hal_system_share_flash_mode(true); // ʹڲFLASH +00002a 2001 MOVS r0,#1 +00002c f7fffffe BL hal_system_share_flash_mode +;;;1557 #endif +;;;1558 +;;;1559 /* swire ʼ */ +;;;1560 // swire_init(); +;;;1561 +;;;1562 /* Ӧ,1.8V AP TP1.8, PWMEN ӵ AP AVDD_SWIRE, ڼϢAC */ +;;;1563 +;;;1564 if (hal_gpio_get_input_data(IO_PAD_AP_TPRSTN)) +000030 2015 MOVS r0,#0x15 +000032 f7fffffe BL hal_gpio_get_input_data +000036 2800 CMP r0,#0 +000038 d00a BEQ |L5.80| +;;;1565 { +;;;1566 /* Ϣ */ +;;;1567 start_display_on = true; +00003a 2001 MOVS r0,#1 +00003c 491c LDR r1,|L5.176| +00003e 7008 STRB r0,[r1,#0] +;;;1568 TAU_LOGD("DC\n"); +000040 bf00 NOP +000042 2231 MOVS r2,#0x31 +000044 0152 LSLS r2,r2,#5 +000046 a11b ADR r1,|L5.180| +000048 a01c ADR r0,|L5.188| +00004a f7fffffe BL LOG_printf +00004e e006 B |L5.94| + |L5.80| +;;;1569 } +;;;1570 else +;;;1571 { +;;;1572 /* AC */ +;;;1573 TAU_LOGD("AC\n"); +000050 bf00 NOP +000052 4a1e LDR r2,|L5.204| +000054 a117 ADR r1,|L5.180| +000056 a01e ADR r0,|L5.208| +000058 f7fffffe BL LOG_printf +00005c bf00 NOP + |L5.94| +;;;1574 } +;;;1575 +;;;1576 // NVIC_SetPriority(I2C0_IRQn, 0x00); +;;;1577 // NVIC_SetPriority(I2C1_IRQn, 0x01); +;;;1578 /* TP1.8е֮ǰʹTEʾ֮лΪӲTE */ +;;;1579 // soft_te_timer_init(); +;;;1580 +;;;1581 /* mipi tx ʼ*/ +;;;1582 +;;;1583 init_mipi_tx(); +00005e f7fffffe BL init_mipi_tx +;;;1584 +;;;1585 #if 0 // TEST RGB, From Lin +;;;1586 RGB_TEST(); +;;;1587 #endif +;;;1588 +;;;1589 /* touch ģʼ */ +;;;1590 app_tp_init(); +000062 f7fffffe BL app_tp_init +;;;1591 +;;;1592 // hal_dsi_rx_ctrl_enable_test_pattern(g_rx_ctrl_handle, 0, true);//TEST +;;;1593 loop_count =1; +000066 2001 MOVS r0,#1 +000068 491d LDR r1,|L5.224| +00006a 6008 STR r0,[r1,#0] ; loop_count +;;;1594 while (1) +00006c e01e B |L5.172| + |L5.110| +;;;1595 { +;;;1596 /* ȴ AP TP ϵ*/ +;;;1597 if (start_display_on == true) +00006e 4810 LDR r0,|L5.176| +000070 7800 LDRB r0,[r0,#0] ; start_display_on +000072 2801 CMP r0,#1 +000074 d10b BNE |L5.142| +;;;1598 { +;;;1599 /* ʼ */ +;;;1600 tx_display_on(); +000076 f7fffffe BL tx_display_on +;;;1601 +;;;1602 #if SHARE_FLASH_MODE +;;;1603 //hal_system_share_flash_mode(false); // ڲFLASHر +;;;1604 #endif +;;;1605 +;;;1606 start_display_on = false; +00007a 2000 MOVS r0,#0 +00007c 490c LDR r1,|L5.176| +00007e 7008 STRB r0,[r1,#0] +;;;1607 panel_display_done = true; +000080 2001 MOVS r0,#1 +000082 4918 LDR r1,|L5.228| +000084 7008 STRB r0,[r1,#0] +;;;1608 +;;;1609 app_tp_phone_clear_reset_on(); +000086 f7fffffe BL app_tp_phone_clear_reset_on +;;;1610 +;;;1611 /* TP ģͨѶʼ */ +;;;1612 #ifndef DISABLE_TDDI_I2C_FUNCTION +;;;1613 app_tp_transfer_screen_start(); +00008a f7fffffe BL app_tp_transfer_screen_start + |L5.142| +;;;1614 #endif +;;;1615 } +;;;1616 +;;;1617 if(panel_display_done) +00008e 4815 LDR r0,|L5.228| +000090 7800 LDRB r0,[r0,#0] ; panel_display_done +000092 2800 CMP r0,#0 +000094 d001 BEQ |L5.154| +;;;1618 { +;;;1619 PWM_Task(); +000096 f7fffffe BL PWM_Task + |L5.154| +;;;1620 } +;;;1621 /* ȴ TP жϱTP Эת */ +;;;1622 #ifndef DISABLE_TDDI_I2C_FUNCTION +;;;1623 app_tp_transfer_screen_int(); +00009a f7fffffe BL app_tp_transfer_screen_int +;;;1624 #endif +;;;1625 +;;;1626 while (hal_dsi_rx_ctrl_dsc_async_handler(g_rx_ctrl_handle)); +00009e bf00 NOP + |L5.160| +0000a0 4811 LDR r0,|L5.232| +0000a2 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0000a4 f7fffffe BL hal_dsi_rx_ctrl_dsc_async_handler +0000a8 2800 CMP r0,#0 +0000aa d1f9 BNE |L5.160| + |L5.172| +0000ac e7df B |L5.110| +;;;1627 +;;;1628 } +;;;1629 } +;;;1630 + ENDP + +0000ae 0000 DCW 0x0000 + |L5.176| + DCD start_display_on + |L5.180| +0000b4 4d693853 DCB "Mi8SE",0 +0000b8 4500 +0000ba 00 DCB 0 +0000bb 00 DCB 0 + |L5.188| +0000bc 5b25735d DCB "[%s] (%04d) DC\n",0 +0000c0 20282530 +0000c4 34642920 +0000c8 44430a00 + |L5.204| + DCD 0x00000625 + |L5.208| +0000d0 5b25735d DCB "[%s] (%04d) AC\n",0 +0000d4 20282530 +0000d8 34642920 +0000dc 41430a00 + |L5.224| + DCD loop_count + |L5.228| + DCD panel_display_done + |L5.232| + DCD g_rx_ctrl_handle + + AREA ||i.ap_set_backlight||, CODE, READONLY, ALIGN=2 + + ap_set_backlight PROC +;;;387 #if 1 // +;;;388 static bool ap_set_backlight(hal_dsi_rx_ctrl_handle_t* handler, hal_dcs_packet_t* dcs_packet) +000000 b5fe PUSH {r1-r7,lr} +;;;389 { +000002 460d MOV r5,r1 +;;;390 uint32_t temp_in_max = 0x3FF; +000004 4e11 LDR r6,|L6.76| +;;;391 uint32_t temp_in_min = 0x08; +000006 2408 MOVS r4,#8 +;;;392 uint32_t temp_out_max = 255; +000008 20ff MOVS r0,#0xff +00000a 9002 STR r0,[sp,#8] +;;;393 uint32_t temp_out_min = 12; +00000c 200c MOVS r0,#0xc +00000e 9001 STR r0,[sp,#4] +;;;394 uint32_t src_bl; +;;;395 +;;;396 src_bl = (dcs_packet->packet_param[0] << 8) | dcs_packet->packet_param[1]; +000010 68e8 LDR r0,[r5,#0xc] +000012 7800 LDRB r0,[r0,#0] +000014 0200 LSLS r0,r0,#8 +000016 68e9 LDR r1,[r5,#0xc] +000018 7849 LDRB r1,[r1,#1] +00001a 4308 ORRS r0,r0,r1 +00001c 4607 MOV r7,r0 +;;;397 // TAU_LOGD("src_bl[%x]. len[%d]", src_bl ,dcs_packet->param_length); +;;;398 +;;;399 if(src_bl <= temp_in_min) +00001e 42a7 CMP r7,r4 +000020 d801 BHI |L6.38| +;;;400 src_bl = temp_in_min; +000022 4627 MOV r7,r4 +000024 e002 B |L6.44| + |L6.38| +;;;401 else if(src_bl >= temp_in_max) +000026 42b7 CMP r7,r6 +000028 d300 BCC |L6.44| +;;;402 src_bl = temp_in_max; +00002a 4637 MOV r7,r6 + |L6.44| +;;;403 +;;;404 read_bl_data = temp_out_min + (src_bl - temp_in_min) * (temp_out_max - temp_out_min) / (temp_in_max - temp_in_min); +00002c 1b38 SUBS r0,r7,r4 +00002e 9b01 LDR r3,[sp,#4] +000030 9a02 LDR r2,[sp,#8] +000032 1ad2 SUBS r2,r2,r3 +000034 4350 MULS r0,r2,r0 +000036 1b31 SUBS r1,r6,r4 +000038 9000 STR r0,[sp,#0] +00003a f7fffffe BL __aeabi_uidivmod +00003e 9901 LDR r1,[sp,#4] +000040 1840 ADDS r0,r0,r1 +000042 4903 LDR r1,|L6.80| +000044 8008 STRH r0,[r1,#0] +;;;405 // TAU_LOGD("read_bl_data[%4x]", read_bl_data); +;;;406 return true; +000046 2001 MOVS r0,#1 +;;;407 } +000048 bdfe POP {r1-r7,pc} +;;;408 #endif + ENDP + +00004a 0000 DCW 0x0000 + |L6.76| + DCD 0x000003ff + |L6.80| + DCD read_bl_data + + AREA ||i.ap_set_display_off||, CODE, READONLY, ALIGN=2 + + ap_set_display_off PROC +;;;350 +;;;351 static bool ap_set_display_off(hal_dsi_rx_ctrl_handle_t *handler, hal_dcs_packet_t *dcs_packet) +000000 b570 PUSH {r4-r6,lr} +;;;352 { +000002 4604 MOV r4,r0 +000004 460d MOV r5,r1 +;;;353 +;;;354 //delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x05, 0, 1, 0x28); +;;;355 TAU_LOGD("disp off \n"); +000006 bf00 NOP +000008 22ff MOVS r2,#0xff +00000a 3264 ADDS r2,r2,#0x64 +00000c a103 ADR r1,|L7.28| +00000e a005 ADR r0,|L7.36| +000010 f7fffffe BL LOG_printf +000014 bf00 NOP +;;;356 // hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_LOW); +;;;357 // hal_gpio_set_output_data(IO_PAD_AP_SWIRE, IO_LVL_LOW); +;;;358 // hal_gpio_set_output_data(IO_PAD_ADCIN, IO_LVL_LOW); +;;;359 // hal_swire_open(DISABLE); +;;;360 return true; +000016 2001 MOVS r0,#1 +;;;361 } +000018 bd70 POP {r4-r6,pc} +;;;362 + ENDP + +00001a 0000 DCW 0x0000 + |L7.28| +00001c 4d693853 DCB "Mi8SE",0 +000020 4500 +000022 00 DCB 0 +000023 00 DCB 0 + |L7.36| +000024 5b25735d DCB "[%s] (%04d) disp off \n",0 +000028 20282530 +00002c 34642920 +000030 64697370 +000034 206f6666 +000038 200a00 +00003b 00 DCB 0 + + AREA ||i.ap_set_display_on||, CODE, READONLY, ALIGN=2 + + ap_set_display_on PROC +;;;343 +;;;344 static bool ap_set_display_on(hal_dsi_rx_ctrl_handle_t *handler, hal_dcs_packet_t *dcs_packet) +000000 b570 PUSH {r4-r6,lr} +;;;345 { +000002 4604 MOV r4,r0 +000004 460d MOV r5,r1 +;;;346 +;;;347 TAU_LOGD("disp on \n"); +000006 bf00 NOP +000008 22ff MOVS r2,#0xff +00000a 325c ADDS r2,r2,#0x5c +00000c a103 ADR r1,|L8.28| +00000e a005 ADR r0,|L8.36| +000010 f7fffffe BL LOG_printf +000014 bf00 NOP +;;;348 return true; +000016 2001 MOVS r0,#1 +;;;349 } +000018 bd70 POP {r4-r6,pc} +;;;350 + ENDP + +00001a 0000 DCW 0x0000 + |L8.28| +00001c 4d693853 DCB "Mi8SE",0 +000020 4500 +000022 00 DCB 0 +000023 00 DCB 0 + |L8.36| +000024 5b25735d DCB "[%s] (%04d) disp on \n",0 +000028 20282530 +00002c 34642920 +000030 64697370 +000034 206f6e20 +000038 0a00 +00003a 00 DCB 0 +00003b 00 DCB 0 + + AREA ||i.ap_set_enter_sleep_mode||, CODE, READONLY, ALIGN=2 + + ap_set_enter_sleep_mode PROC +;;;362 +;;;363 static bool ap_set_enter_sleep_mode(hal_dsi_rx_ctrl_handle_t *handler, hal_dcs_packet_t *dcs_packet) +000000 b570 PUSH {r4-r6,lr} +;;;364 { +000002 4604 MOV r4,r0 +000004 460d MOV r5,r1 +;;;365 TAU_LOGD("enter sleep mode\n"); +000006 bf00 NOP +000008 22ff MOVS r2,#0xff +00000a 326e ADDS r2,r2,#0x6e +00000c a10b ADR r1,|L9.60| +00000e a00d ADR r0,|L9.68| +000010 f7fffffe BL LOG_printf +000014 bf00 NOP +;;;366 // delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x05, 0, 1, 0x10); +;;;367 +;;;368 hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_LOW); +000016 2100 MOVS r1,#0 +000018 2013 MOVS r0,#0x13 +00001a f7fffffe BL hal_gpio_set_output_data +;;;369 hal_gpio_set_output_data(IO_PAD_AP_SWIRE, IO_LVL_LOW); +00001e 2100 MOVS r1,#0 +000020 2004 MOVS r0,#4 +000022 f7fffffe BL hal_gpio_set_output_data +;;;370 hal_gpio_set_output_data(IO_PAD_ADCIN, IO_LVL_LOW); +000026 2100 MOVS r1,#0 +000028 2014 MOVS r0,#0x14 +00002a f7fffffe BL hal_gpio_set_output_data +;;;371 +;;;372 hal_pwm_out_sync_thr(PWM_PERIOD + 1, 0); +00002e 2100 MOVS r1,#0 +000030 20ff MOVS r0,#0xff +000032 3002 ADDS r0,#2 +000034 f7fffffe BL hal_pwm_out_sync_thr +;;;373 +;;;374 // hal_system_set_vcc(false); +;;;375 +;;;376 return true; +000038 2001 MOVS r0,#1 +;;;377 } +00003a bd70 POP {r4-r6,pc} +;;;378 + ENDP + + |L9.60| +00003c 4d693853 DCB "Mi8SE",0 +000040 4500 +000042 00 DCB 0 +000043 00 DCB 0 + |L9.68| +000044 5b25735d DCB "[%s] (%04d) enter sleep mode\n",0 +000048 20282530 +00004c 34642920 +000050 656e7465 +000054 7220736c +000058 65657020 +00005c 6d6f6465 +000060 0a00 +000062 00 DCB 0 +000063 00 DCB 0 + + AREA ||i.ap_set_exit_sleep_mode||, CODE, READONLY, ALIGN=2 + + ap_set_exit_sleep_mode PROC +;;;378 +;;;379 static bool ap_set_exit_sleep_mode(hal_dsi_rx_ctrl_handle_t *handler, hal_dcs_packet_t *dcs_packet) +000000 b570 PUSH {r4-r6,lr} +;;;380 { +000002 4604 MOV r4,r0 +000004 460d MOV r5,r1 +;;;381 TAU_LOGD("exit sleep mode\n"); +000006 bf00 NOP +000008 22ff MOVS r2,#0xff +00000a 327e ADDS r2,r2,#0x7e +00000c a103 ADR r1,|L10.28| +00000e a005 ADR r0,|L10.36| +000010 f7fffffe BL LOG_printf +000014 bf00 NOP +;;;382 /* AVDD ϵ, ڽϢPPS */ +;;;383 // hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_HIGH); +;;;384 return true; +000016 2001 MOVS r0,#1 +;;;385 } +000018 bd70 POP {r4-r6,pc} +;;;386 + ENDP + +00001a 0000 DCW 0x0000 + |L10.28| +00001c 4d693853 DCB "Mi8SE",0 +000020 4500 +000022 00 DCB 0 +000023 00 DCB 0 + |L10.36| +000024 5b25735d DCB "[%s] (%04d) exit sleep mode\n",0 +000028 20282530 +00002c 34642920 +000030 65786974 +000034 20736c65 +000038 6570206d +00003c 6f64650a +000040 00 +000041 00 DCB 0 +000042 00 DCB 0 +000043 00 DCB 0 + + AREA ||i.init_mipi_tx||, CODE, READONLY, ALIGN=2 + + init_mipi_tx PROC +;;;1374 +;;;1375 static void init_mipi_tx(void) +000000 b510 PUSH {r4,lr} +;;;1376 { +;;;1377 if (g_tx_ctrl_handle == NULL) +000002 4835 LDR r0,|L11.216| +000004 6800 LDR r0,[r0,#0] ; g_tx_ctrl_handle +000006 2800 CMP r0,#0 +000008 d103 BNE |L11.18| +;;;1378 { +;;;1379 g_tx_ctrl_handle = hal_dsi_tx_ctrl_create_handle(); +00000a f7fffffe BL hal_dsi_tx_ctrl_create_handle +00000e 4932 LDR r1,|L11.216| +000010 6008 STR r0,[r1,#0] ; g_tx_ctrl_handle + |L11.18| +;;;1380 } +;;;1381 g_tx_ctrl_handle->channel_id = OUTPUT_VC; +000012 2000 MOVS r0,#0 +000014 4930 LDR r1,|L11.216| +000016 6809 LDR r1,[r1,#0] ; g_tx_ctrl_handle +000018 7088 STRB r0,[r1,#2] +;;;1382 g_tx_ctrl_handle->lane_num = OUTPUT_LANE_NUMBER; +00001a 2004 MOVS r0,#4 +00001c 492e LDR r1,|L11.216| +00001e 6809 LDR r1,[r1,#0] ; g_tx_ctrl_handle +000020 7048 STRB r0,[r1,#1] +;;;1383 g_tx_ctrl_handle->vid_mode = OUTPUT_VIDEO_MODEL; +000022 2002 MOVS r0,#2 +000024 492c LDR r1,|L11.216| +000026 6809 LDR r1,[r1,#0] ; g_tx_ctrl_handle +000028 70c8 STRB r0,[r1,#3] +;;;1384 g_tx_ctrl_handle->cmd_tx_type = _CMD_TYPE; +00002a 2001 MOVS r0,#1 +00002c 492a LDR r1,|L11.216| +00002e 6809 LDR r1,[r1,#0] ; g_tx_ctrl_handle +000030 7108 STRB r0,[r1,#4] +;;;1385 g_tx_ctrl_handle->dpi_vsa = OUTPUT_VSA; +000032 2008 MOVS r0,#8 +000034 4928 LDR r1,|L11.216| +000036 6809 LDR r1,[r1,#0] ; g_tx_ctrl_handle +000038 6088 STR r0,[r1,#8] +;;;1386 g_tx_ctrl_handle->dpi_vbp = OUTPUT_VBP; +00003a 206e MOVS r0,#0x6e +00003c 4926 LDR r1,|L11.216| +00003e 6809 LDR r1,[r1,#0] ; g_tx_ctrl_handle +000040 60c8 STR r0,[r1,#0xc] +;;;1387 g_tx_ctrl_handle->dpi_vfp = OUTPUT_VFP; +000042 2082 MOVS r0,#0x82 +000044 4924 LDR r1,|L11.216| +000046 6809 LDR r1,[r1,#0] ; g_tx_ctrl_handle +000048 6108 STR r0,[r1,#0x10] +;;;1388 g_tx_ctrl_handle->dpi_hsa = OUTPUT_HSA; +00004a 2010 MOVS r0,#0x10 +00004c 4922 LDR r1,|L11.216| +00004e 6809 LDR r1,[r1,#0] ; g_tx_ctrl_handle +000050 6148 STR r0,[r1,#0x14] +;;;1389 g_tx_ctrl_handle->dpi_hbp = OUTPUT_HBP; +000052 201e MOVS r0,#0x1e +000054 4920 LDR r1,|L11.216| +000056 6809 LDR r1,[r1,#0] ; g_tx_ctrl_handle +000058 6188 STR r0,[r1,#0x18] +;;;1390 g_tx_ctrl_handle->dpi_hfp = OUTPUT_HFP; +00005a 202d MOVS r0,#0x2d +00005c 491e LDR r1,|L11.216| +00005e 6809 LDR r1,[r1,#0] ; g_tx_ctrl_handle +000060 61c8 STR r0,[r1,#0x1c] +;;;1391 // g_tx_ctrl_handle->lane_rate_coef = _LANE_RATE_COEF; +;;;1392 g_tx_ctrl_handle->base_info.src_w = INPUT_WIDTH; +000062 2087 MOVS r0,#0x87 +000064 00c0 LSLS r0,r0,#3 +000066 491c LDR r1,|L11.216| +000068 6809 LDR r1,[r1,#0] ; g_tx_ctrl_handle +00006a 6208 STR r0,[r1,#0x20] +;;;1393 g_tx_ctrl_handle->base_info.src_h = INPUT_HEIGHT; +00006c 491b LDR r1,|L11.220| +00006e 481a LDR r0,|L11.216| +000070 6800 LDR r0,[r0,#0] ; g_tx_ctrl_handle +000072 6241 STR r1,[r0,#0x24] +;;;1394 g_tx_ctrl_handle->base_info.dst_w = OUTPUT_WIDTH; +000074 212d MOVS r1,#0x2d +000076 0109 LSLS r1,r1,#4 +000078 4817 LDR r0,|L11.216| +00007a 6800 LDR r0,[r0,#0] ; g_tx_ctrl_handle +00007c 6281 STR r1,[r0,#0x28] +;;;1395 g_tx_ctrl_handle->base_info.dst_h = OUTPUT_HEIGHT; +00007e 2119 MOVS r1,#0x19 +000080 0189 LSLS r1,r1,#6 +000082 4815 LDR r0,|L11.216| +000084 6800 LDR r0,[r0,#0] ; g_tx_ctrl_handle +000086 62c1 STR r1,[r0,#0x2c] +;;;1396 g_tx_ctrl_handle->base_info.src_frate = INPUT_FRAME_RATE; +000088 2100 MOVS r1,#0 +00008a 4813 LDR r0,|L11.216| +00008c 6800 LDR r0,[r0,#0] ; g_tx_ctrl_handle +00008e 3020 ADDS r0,r0,#0x20 +000090 7401 STRB r1,[r0,#0x10] +;;;1397 g_tx_ctrl_handle->base_info.src_mode = INPUT_DATA_MODE; +000092 2101 MOVS r1,#1 +000094 4810 LDR r0,|L11.216| +000096 6800 LDR r0,[r0,#0] ; g_tx_ctrl_handle +000098 3020 ADDS r0,r0,#0x20 +00009a 7441 STRB r1,[r0,#0x11] +;;;1398 +;;;1399 g_tx_ctrl_handle->tx_frame_rate = 60; +00009c 4810 LDR r0,|L11.224| +00009e 490e LDR r1,|L11.216| +0000a0 6809 LDR r1,[r1,#0] ; g_tx_ctrl_handle +0000a2 6408 STR r0,[r1,#0x40] +;;;1400 g_tx_ctrl_handle->tx_clkawayshs = true; +0000a4 2101 MOVS r1,#1 +0000a6 480c LDR r0,|L11.216| +0000a8 6800 LDR r0,[r0,#0] ; g_tx_ctrl_handle +0000aa 3040 ADDS r0,r0,#0x40 +0000ac 7101 STRB r1,[r0,#4] +;;;1401 // g_tx_ctrl_handle->tx_line_delay = 600; +;;;1402 +;;;1403 hal_dsi_tx_ctrl_init(g_tx_ctrl_handle); +0000ae 480a LDR r0,|L11.216| +0000b0 6800 LDR r0,[r0,#0] ; g_tx_ctrl_handle +0000b2 f7fffffe BL hal_dsi_tx_ctrl_init +;;;1404 /* AP ûзʱĬϵʾɫ, Ϊ0 0 0(ɫ), ɫΪdebugʹ */ +;;;1405 hal_dsi_tx_ctrl_set_overwrite_rgb(0x00, 0x00, 0x00); +0000b6 2200 MOVS r2,#0 +0000b8 4611 MOV r1,r2 +0000ba 4610 MOV r0,r2 +0000bc f7fffffe BL hal_dsi_tx_ctrl_set_overwrite_rgb +;;;1406 +;;;1407 //#define INPUT_WIDTH 1080 +;;;1408 //#define INPUT_HEIGHT 2244 +;;;1409 +;;;1410 +;;;1411 // #define OUTPUT_WIDTH 720 +;;;1412 // #define OUTPUT_HEIGHT 1600 +;;;1413 +;;;1414 /*ȱֱͼ*/ +;;;1415 //ԭװ18.79װ209 +;;;1416 //Ҽ25(18.7:9),20(18.9:9),15(19.2:9) +;;;1417 +;;;1418 //20230419ͻƫ +;;;1419 // ٳ1618ͼ첻أպߺڱߡ +;;;1420 // ڳ1518ͼе㣬λúԭװӽ +;;;1421 hal_dsi_tx_crop_t *crop; +;;;1422 crop->crop_top=0; +0000c0 2000 MOVS r0,#0 +0000c2 8020 STRH r0,[r4,#0] +;;;1423 crop->crop_bottom=0; +0000c4 8060 STRH r0,[r4,#2] +;;;1424 crop->crop_left=15; +0000c6 200f MOVS r0,#0xf +0000c8 80a0 STRH r0,[r4,#4] +;;;1425 crop->crop_right=15; +0000ca 80e0 STRH r0,[r4,#6] +;;;1426 hal_dsi_tx_crop_pic(g_tx_ctrl_handle,crop); +0000cc 4621 MOV r1,r4 +0000ce 4802 LDR r0,|L11.216| +0000d0 6800 LDR r0,[r0,#0] ; g_tx_ctrl_handle +0000d2 f7fffffe BL hal_dsi_tx_crop_pic +;;;1427 +;;;1428 #if CUS_SCLD_FILTER +;;;1429 // hal_dsi_tx_ctrl_set_cus_pq_filter(g_tx_ctrl_handle, tx_filter_H, tx_filter_V); +;;;1430 #endif +;;;1431 } +0000d6 bd10 POP {r4,pc} +;;;1432 + ENDP + + |L11.216| + DCD g_tx_ctrl_handle + |L11.220| + DCD 0x000008c4 + |L11.224| + DCD 0x42700000 + + AREA ||i.init_panel||, CODE, READONLY, ALIGN=2 + + init_panel PROC +;;;487 +;;;488 static void init_panel(void) +000000 b500 PUSH {lr} +;;;489 { +000002 b091 SUB sp,sp,#0x44 +;;;490 /* reset panel*/ +;;;491 tx_panel_reset(); +000004 f7fffffe BL tx_panel_reset +;;;492 +;;;493 hal_gpio_init_output(IO_PAD_TD_LEDPWM, IO_LVL_HIGH); +000008 2101 MOVS r1,#1 +00000a 200a MOVS r0,#0xa +00000c f7fffffe BL hal_gpio_init_output +;;;494 +;;;495 /* enter send initial code mode*/ +;;;496 hal_dsi_tx_ctrl_enter_init_panel_mode(); +000010 f7fffffe BL hal_dsi_tx_ctrl_enter_init_panel_mode +;;;497 +;;;498 //------------- Display Initial Setting end ------------------------- +;;;499 #if LCD_FT8006S_HKC6517 +;;;500 TAU_LOGD("Mi8SE\n"); +000014 bf00 NOP +000016 22ff MOVS r2,#0xff +000018 32f5 ADDS r2,r2,#0xf5 +00001a a1fd ADR r1,|L12.1040| +00001c a0fe ADR r0,|L12.1048| +00001e f7fffffe BL LOG_printf +000022 bf00 NOP +;;;501 #ifdef FT8006S_HKC6517_4L_720x1600_gamma25 +;;;502 +;;;503 delayMs(50); +;;;504 // delayMs(1000); +;;;505 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x41,0x5A); +;;;506 //INT CANCEL +;;;507 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x4C, 0x03); +;;;508 +;;;509 //SPI Not LoadFinish +;;;510 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x24); +;;;511 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x90,0x5A); +;;;512 //VCOM +;;;513 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x03); +;;;514 // delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x80,0x1A,0x01); +;;;515 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x80, 0x3f, 0x01); +;;;516 //Blank 8 +;;;517 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x08); +;;;518 // delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,4,0x80,0x1A,0x2D,0x05); +;;;519 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,4,0x80,0x3F,0x2D,0x05); +;;;520 //Blank 9 +;;;521 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x09); +;;;522 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x5A,0x51,0xB5,0x2A,0x6C,0xE5,0x4A,0x01,0x40,0x62,0x0F,0x82,0x20,0x08,0xF0,0xB7); +;;;523 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x00,0x24,0x42,0x0A,0xE3,0x91,0xA4,0xF0,0xD6,0xC3,0x70,0x20,0x2D,0xA1,0x26,0x00); +;;;524 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xA0,0x51,0x55,0x55,0x00,0xA0,0x4D,0x06,0x11,0x0D,0x60,0x00,0xFF,0xFF,0x03,0xA5,0xE6); +;;;525 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xB0,0x08,0x3A,0x12,0x64,0x0B,0x00,0x00,0x11,0x00,0x60,0x00,0xFF,0xFF,0x03,0xFF,0x34); +;;;526 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,9,0xC0,0x0C,0xFF,0x18,0x9F,0x0F,0x00,0x08,0x00); +;;;527 //Blank 10 gamma2.2 +;;;528 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x0A); +;;;529 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0xFF,0xB6,0x6D,0x03,0x00,0x12,0x20,0x32,0x45,0x58,0x60,0x96,0x82,0xC1,0x72,0x37); +;;;530 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x74,0x44,0x41,0x32,0x23,0x16,0x0E,0x0B,0x00,0x12,0x20,0x32,0x45,0x58,0x60,0x96); +;;;531 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,14,0xA0,0x82,0xC1,0x72,0x37,0x74,0x44,0x41,0x32,0x23,0x16,0x0E,0x0B,0x00); +;;;532 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x0B); +;;;533 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x00,0x00,0x20,0x44,0x08,0x00,0x60,0x47,0x00,0x00,0x10,0x22,0x04,0x00,0xB0,0x23); +;;;534 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x90,0x15,0x00); +;;;535 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x0C); +;;;536 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0xBA,0x68,0x68,0x01,0x32,0x4B,0x58,0x07,0x00,0x60,0x15,0x00,0x50,0x15,0x56,0x51); +;;;537 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x15,0x55,0x61,0x15,0x00,0x60,0x15,0x00,0x50,0x15,0x56,0x51,0x15,0x55,0x61,0x95); +;;;538 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xA0,0xAB,0x18,0x00,0x05,0x00,0x05,0x00,0x05,0x00,0x49,0x29,0x84,0x52,0x01,0x09,0x00); +;;;539 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0xB0,0x00,0x00); +;;;540 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x0D); +;;;541 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,8,0x80,0xF0,0xB1,0x71,0xEF,0x4B,0xC0,0x80); +;;;542 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x0E); +;;;543 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,9,0x80,0xFF,0x01,0x55,0x55,0x23,0x88,0x88,0x1C); +;;;544 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x0F); +;;;545 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0xBD,0x07,0x70,0xC0,0x12,0x08,0x64,0x08,0x52,0x51,0x58,0x49,0x03,0x52,0x4C,0x4C); +;;;546 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x68,0x68,0x68,0x4C,0x4C,0x7C,0x14,0x00,0x20,0x06,0xC2,0x00,0x04,0x06,0x0C,0x00); +;;;547 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,5,0xA0,0x00,0x92,0x00,0x00); +;;;548 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x10); +;;;549 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x00,0x00,0x03,0xE7,0x1F,0x17,0x10,0x48,0x80,0xAA,0xD0,0x18,0x30,0x88,0x41,0x8A); +;;;550 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,16,0x90,0x39,0x28,0xA9,0xC5,0x9A,0x7B,0xF0,0x07,0x7E,0xE0,0x07,0x7E,0x20,0x10,0x00); +;;;551 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x11); +;;;552 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x46,0x77,0x03,0x40,0xCA,0xF3,0xFF,0x83,0x30,0x08,0xC4,0x06,0xA1,0xD8,0x24,0x18); +;;;553 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x30,0xC6,0x66,0xC1,0x80,0x31,0x15,0xCB,0xE5,0xD2,0x68,0x6C,0x36,0x1D,0x04,0xC8); +;;;554 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xA0,0xB0,0xD9,0x88,0x60,0xB0,0x81,0x40,0x1A,0x1B,0x48,0x63,0x03,0xB9,0x00,0x1C,0x80); +;;;555 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xB0,0x50,0x30,0x00,0xE0,0xE1,0x01,0x00,0x28,0x0E,0x06,0x43,0x55,0x55,0x55,0x55,0x55); +;;;556 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xC0,0x95,0x88,0x88,0x88,0x88,0x88,0xC8,0x08,0x86,0xC6,0xE3,0x81,0x00,0x20,0x00,0x21); +;;;557 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xD0,0x42,0x88,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x31,0x04,0x41,0x06,0x00,0x00,0x00); +;;;558 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xE0,0x00,0x92,0x04,0x00,0x92,0x04,0x00,0x00,0x00,0x00,0x92,0x04,0x00,0x85,0x11,0x0C); +;;;559 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,16,0xF0,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x5E,0x4A,0x01,0x78,0x00,0x08,0x00,0x00); +;;;560 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x12); +;;;561 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x00,0x00,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0x00,0x00,0x02,0x03,0x01,0x41,0x37); +;;;562 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0xF1,0xE7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2D,0x23,0x05); +;;;563 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,8,0xA0,0xFB,0x08,0x2D,0x23,0x05,0xFB,0x0C); +;;;564 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x13); +;;;565 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0xFD,0x0F,0x00,0x0C,0x00,0x00,0x00,0x00,0x01,0x08,0x01,0x1C,0x44,0x0C,0xCE,0xE7); +;;;566 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,15,0x90,0x62,0x0E,0x24,0x98,0xAC,0x21,0x01,0x00,0xD0,0x93,0x24,0x49,0x06,0x20); +;;;567 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x14); +;;;568 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x01,0x02,0x41,0x36,0xE9,0xEF,0xF7,0xFB,0xFD,0x7E,0x01,0x00,0x00,0x90,0xC5,0x8A); +;;;569 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x27,0x6D,0x20,0x4E,0x3C,0x69,0x03,0xDB,0xE0,0x49,0x1B,0xD8,0x08,0x4F,0xDA,0x00); +;;;570 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xA0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x82,0xB5,0xE2,0xF7,0x47,0x00); +;;;571 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xB0,0xD8,0x89,0xDF,0x1F,0x01,0x00,0x00,0x00,0x00,0x1C,0xB2,0x21,0x2B,0x00,0x40,0xA1); +;;;572 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xC0,0x50,0x78,0x17,0xDA,0xF4,0x80,0x51,0x1C,0x6F,0x42,0x9B,0x1E,0x30,0x8A,0xE3,0x3D); +;;;573 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xD0,0x68,0xD3,0x03,0x46,0x71,0xBC,0x05,0x6D,0x7A,0xC0,0x28,0x8E,0x77,0xA0,0x4D,0x0F); +;;;574 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xE0,0x18,0xC5,0xF1,0x06,0xB4,0xE9,0x01,0xA3,0x38,0x5E,0x80,0x36,0x3D,0x60,0x14,0xC7); +;;;575 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xF0,0x2B,0xD0,0xA6,0x07,0x8C,0xE2,0x18,0x01,0xBF,0xDF,0x08,0x00,0x00,0x00,0x00,0x00); +;;;576 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x15); +;;;577 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xD9,0xE0,0xF7); +;;;578 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0xA3,0x00,0x20,0x4B,0x07,0xAB,0xC5,0x03,0x00,0x00,0xD6,0xC1,0x6A,0xF1,0x00,0x00); +;;;579 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xA0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x90); +;;;580 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xB0,0x75,0xA1,0x6A,0xB5,0x00,0x00,0x00,0x00,0x13,0x00,0xF0,0x00,0x14,0xD3,0x34,0xCD); +;;;581 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xC0,0x90,0x02,0x4D,0x10,0x20,0x10,0x06,0x6A,0xDB,0xB6,0x6D,0xDB,0xB6,0x35,0x4D,0xD3); +;;;582 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xD0,0x34,0x21,0x13,0x04,0x01,0x02,0x61,0xA8,0xB6,0x6D,0xDB,0xB6,0x6D,0xDB,0xB6,0x35); +;;;583 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xE0,0xCD,0xD0,0x02,0x4D,0x50,0x30,0x14,0x47,0x6A,0xDB,0xB6,0x6D,0xDB,0xB6,0x6D,0x5B); +;;;584 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xF0,0xD3,0x34,0x25,0x13,0x04,0x05,0x43,0x71,0xAC,0xB6,0x6D,0xDB,0xB6,0x6D,0x5B,0x00); +;;;585 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x16); +;;;586 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x02,0x42,0x41,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); +;;;587 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,7,0x90,0x00,0x00,0x00,0x00,0xF0,0x20); +;;;588 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x18); +;;;589 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0xEF,0xBD,0xF7,0xDE,0x7B,0xEF,0xBD,0x07,0x08,0x08,0x0A,0x0C,0x0C,0x0C,0x0C,0x0C); +;;;590 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x0C,0x0C,0x0C,0x5C,0x09,0xA8,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x5A); +;;;591 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xA0,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x09,0x04,0xFF,0x00,0x80); +;;;592 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,16,0xB0,0x80,0x00,0x04,0x20,0x00,0x01,0x08,0x40,0x00,0x02,0x10,0x80,0x00,0x04,0x00); +;;;593 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x19); +;;;594 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0xC0,0xAF,0xA3,0x9B,0x92,0x8D,0x8A,0x86,0x84,0x83,0x82,0x81,0x00,0x50,0xF6,0xCF); +;;;595 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0xFC,0x2F,0xF3,0xEF,0xCF,0xBF,0x0F,0xFF,0xAF,0xB5,0x71,0x0E,0x6C,0x4A,0x69,0x08); +;;;596 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,5,0xA0,0x00,0x00,0x08,0x00); +;;;597 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x1A); +;;;598 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x00,0x04,0x08,0x0C,0x00,0x10,0x14,0x18,0x1C,0x00,0x20,0x28,0x30,0x38,0x00,0x40); +;;;599 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x48,0x50,0x58,0x00,0x60,0x68,0x70,0x78,0x00,0x80,0x88,0x90,0x98,0x00,0xA0,0xA8); +;;;600 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xA0,0xB0,0xB8,0x00,0xC0,0xC8,0xD0,0xD8,0x00,0xE0,0xE8,0xF0,0xF8,0x00,0xFC,0xFE,0xFF); +;;;601 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xB0,0x00,0x00,0x04,0x08,0x0C,0x00,0x10,0x14,0x18,0x1C,0x00,0x20,0x28,0x30,0x38,0x00); +;;;602 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xC0,0x40,0x48,0x50,0x58,0x00,0x60,0x68,0x70,0x78,0x00,0x80,0x88,0x90,0x98,0x00,0xA0); +;;;603 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xD0,0xA8,0xB0,0xB8,0x00,0xC0,0xC8,0xD0,0xD8,0x00,0xE0,0xE8,0xF0,0xF8,0x00,0xFC,0xFE); +;;;604 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xE0,0xFF,0x00,0x00,0x04,0x08,0x0C,0x00,0x10,0x14,0x18,0x1C,0x00,0x20,0x28,0x30,0x38); +;;;605 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xF0,0x00,0x40,0x48,0x50,0x58,0x00,0x60,0x68,0x70,0x78,0x00,0x80,0x88,0x90,0x98,0x00); +;;;606 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x1B); +;;;607 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0xA0,0xA8,0xB0,0xB8,0x00,0xC0,0xC8,0xD0,0xD8,0x00,0xE0,0xE8,0xF0,0xF8,0x00,0xFC); +;;;608 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,5,0x90,0xFE,0xFF,0x00,0x00); +;;;609 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x20); +;;;610 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,8,0x80,0x81,0x00,0x00,0x00,0x00,0x00,0x00); +;;;611 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x22); +;;;612 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,14,0x80,0x2D,0xD3,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x9F,0x00); +;;;613 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x23); +;;;614 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x01,0x05,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); +;;;615 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,13,0x90,0xFF,0x0F,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0xFF,0x07,0x35); +;;;616 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x24); +;;;617 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x00,0x03,0x00,0xFF,0xFF,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x30); +;;;618 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x5A,0x5A,0x5A,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); +;;;619 // BIST MODE +;;;620 // delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x02,0x5A); +;;;621 //SPI FINISH +;;;622 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x42,0x24); +;;;623 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x90,0x00); +;;;624 //Blank select 2F +;;;625 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x2F); +;;;626 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x19,0x00); +;;;627 // delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x4C,0x03); +;;;628 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,1,0x11); +;;;629 delayMs(120); +;;;630 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,1,0x29); +;;;631 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x51,0xFF,0x0F); +;;;632 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x53,0x24); +;;;633 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x55,0x00); +;;;634 delayMs(10); +;;;635 #endif +;;;636 #ifdef FT8006S_HKC6517_4L_720x1600_gamma22 +;;;637 +;;;638 delayMs(10); +;;;639 // delayMs(1000); +;;;640 #if 1 +;;;641 hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x41,0x5A); +;;;642 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x24); +;;;643 hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x90,0x5A); +;;;644 +;;;645 //VCOM +;;;646 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x03); +;;;647 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x80, 0x3f, 0x01); +;;;648 +;;;649 //----------------------LCD initial code start----------------------// +;;;650 //Blank 8 +;;;651 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x08); +;;;652 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 4, 0x80, 0x3f, 0x2d, 0x05); +;;;653 //Blank 9 +;;;654 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x09); +;;;655 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0x5A, 0x51, 0xB5, 0x2A, 0x6C, 0xC5, 0x4A, 0x01, 0x40, 0x62, 0x0F, 0x82, 0x20, 0x08, 0xF0, 0xB7); +;;;656 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x90, 0x00, 0x24, 0x42, 0x0A, 0xE3, 0x91, 0xA4, 0xF0, 0xC3, 0xE1, 0x6B, 0x20, 0x69, 0xA1, 0x26, 0x00); +;;;657 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xA0, 0x51, 0x55, 0x55, 0x0A/*0x00*/, 0xA0, 0x4C, 0x06, 0x11, 0x0D, 0x60, 0x00, 0xFF, 0xFF, 0x03, 0xA5, 0xE6); +;;;658 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xB0, 0x08, 0x3A, 0x12, 0x64, 0x0B, 0x00, 0x00, 0x11, 0x00, 0x60, 0x00, 0xFF, 0xFF, 0x03, 0xFF, 0x34); +;;;659 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xC0, 0x0C, 0xFF, 0x18, 0x9F, 0x0F, 0x00, 0x08, 0x00); +;;;660 //Blank 10 gamma2.2 +;;;661 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x0A); +;;;662 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0xFF, 0x51, 0xA3, 0x02, 0x00, 0x1E, 0x2E, 0x3F, 0x50, 0x60, 0x65, 0x94, 0x75, 0xAC, 0x8B, 0x58); +;;;663 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x90, 0x87, 0x5D, 0x58, 0x48, 0x37, 0x25, 0x16, 0x0B, 0x00, 0x1E, 0x2E, 0x3F, 0x50, 0x60, 0x65, 0x94); +;;;664 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 14, 0xA0, 0x75, 0xAC, 0x8B, 0x58, 0x87, 0x5D, 0x58, 0x48, 0x37, 0x25, 0x16, 0x0B, 0x00); +;;;665 //Blank 11 +;;;666 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x0B); +;;;667 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0x00, 0x00, 0x20, 0x44, 0x08, 0x00, 0x60, 0x47, 0x00, 0x00, 0x10, 0x22, 0x04, 0x00, 0xB0, 0x23); +;;;668 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x90, 0x15, 0x00); +;;;669 //Blank 12 +;;;670 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x0C); +;;;671 //hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0xFA, 0x68, 0x68, 0x81, 0xAF, 0x8D, 0x30, 0x07, 0x00, 0x60, 0x15, 0x00, 0x50, 0x15, 0x56, 0x51); +;;;672 // hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0xBA,0x68,0x68,0x01,0x32,0x4B,0x58,0x07,0x00,0x60,0x15,0x00,0x50,0x15,0x56,0x51); +;;;673 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0xFA, 0x68, 0x68, 0x81, 0xB8, 0x8D, 0x30, 0x07, 0x00, 0x60, 0x15, 0x00, 0x50, 0x15, 0x56, 0x51); +;;;674 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x90, 0x15, 0x55, 0x61, 0x15, 0x00, 0x60, 0x15, 0x00, 0x50, 0x15, 0x56, 0x51, 0x15, 0x55, 0x61, 0x95); +;;;675 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xA0, 0xAB, 0x18, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x80, 0x4C, 0x29, 0x84, 0x52, 0x01, 0x09, 0x00); +;;;676 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0xB0, 0x00, 0x00); +;;;677 //Blank 13 +;;;678 /*hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x0D); +;;;679 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 8, 0x80, 0xF0, 0xB1, 0x71, 0xEF, 0x4B, 0xC0, 0x80); +;;;680 //Blank 14 +;;;681 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x0E); +;;;682 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 9, 0x80, 0xFF, 0x01, 0x55, 0x55, 0x32, 0x88, 0x88, 0x1C);*/ +;;;683 //Blank 15 +;;;684 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x0F); +;;;685 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0xB5, 0x05, 0x82, 0xC0, 0x10, 0xA0, 0x63, 0x08, 0x52, 0x51, 0x58, 0x49, 0x03, 0x52, 0x4C, 0x4C); +;;;686 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x90, 0x68, 0x68, 0x68, 0x4C, 0x4C, 0x7C, 0x14, 0x00, 0x20, 0x06, 0xC2, 0x00, 0x04, 0x06, 0x0C, 0x00); +;;;687 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0xA0, 0x00, 0x92, 0x00, 0x00); +;;;688 //Blank 16 +;;;689 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x10); +;;;690 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0x00, 0x00, 0x03, 0xE7, 0x1F, 0x17, 0x00, 0x48, 0x40, 0x02, 0xCF, 0x18, 0x30, 0x88, 0x41, 0x8A); +;;;691 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 16, 0x90, 0x39, 0x28, 0xA9, 0xC5, 0x9A, 0x7B, 0xF0, 0x07, 0x7E, 0xE0, 0x07, 0x7E, 0x20, 0x10, 0x00); +;;;692 //Blank 17 +;;;693 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x11); +;;;694 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0x46, 0x77, 0x03, 0x40, 0xCA, 0xF3, 0xFF, 0x83, 0x30, 0x08, 0xC4, 0x06, 0xA1, 0xD8, 0x24, 0x18); +;;;695 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x90, 0x30, 0xC6, 0x66, 0xC1, 0x80, 0x31, 0x15, 0xCB, 0xE5, 0xD2, 0x68, 0x6C, 0x36, 0x1D, 0x04, 0xC8); +;;;696 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xA0, 0xB0, 0xD9, 0x88, 0x60, 0xB0, 0x81, 0x40, 0x1A, 0x1B, 0x48, 0x63, 0x03, 0xB9, 0x00, 0x1C, 0x80); +;;;697 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xB0, 0x50, 0x30, 0x00, 0xE0, 0xE1, 0x01, 0x00, 0x28, 0x0E, 0x06, 0x43, 0x55, 0x55, 0x55, 0x55, 0x55); +;;;698 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xC0, 0x95, 0x88, 0x88, 0x88, 0x88, 0x88, 0xC8, 0x08, 0x86, 0xC6, 0xE3, 0x81, 0x00, 0x20, 0x00, 0x21); +;;;699 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xD0, 0x42, 0x88, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x31, 0x04, 0x41, 0x06, 0x00, 0x00, 0x00); +;;;700 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xE0, 0x00, 0x92, 0x04, 0x00, 0x92, 0x04, 0x00, 0x00, 0x00, 0x00, 0x92, 0x04, 0x00, 0x85, 0x11, 0x0C); +;;;701 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 16, 0xF0, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x4A, 0x01, 0x78, 0x00, 0x08, 0x00, 0x00); +;;;702 //Blank 18 +;;;703 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x12); +;;;704 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x01, 0x41, 0x37); +;;;705 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x90, 0xF1, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x23, 0x05); +;;;706 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 8, 0xA0, 0xFB, 0x08, 0x2D, 0x23, 0x05, 0xFB, 0x0C); +;;;707 //Blank 19 +;;;708 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x13); +;;;709 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0xFD, 0x0F, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x01, 0x1C, 0x44, 0x0C, 0xCE, 0xE7); +;;;710 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 15, 0x90, 0x62, 0x0E, 0x24, 0x98, 0xAC, 0x21, 0xB1, 0x88, 0xD0, 0x93, 0x24, 0x49, 0x06, 0x20); +;;;711 //Blank 20 +;;;712 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x14); +;;;713 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0x01, 0x02, 0x41, 0x36, 0xE9, 0xEF, 0xF7, 0xFB, 0xFD, 0x7E, 0x01, 0x00, 0x00, 0x7C, 0xC5, 0x85); +;;;714 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x90, 0x26, 0x3D, 0x20, 0x26, 0x34, 0xE9, 0x01, 0xF1, 0xA0, 0x49, 0x0F, 0x88, 0x05, 0x4D, 0x7A, 0xC0); +;;;715 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xA0, 0x02, 0x68, 0xD2, 0x03, 0x96, 0x40, 0x93, 0x1E, 0x00, 0xF8, 0x82, 0xB5, 0xE2, 0xF7, 0x47, 0x00); +;;;716 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xB0, 0xD8, 0x89, 0xDF, 0x1F, 0x01, 0x00, 0x10, 0x00, 0x00, 0xBC, 0xAF, 0xFB, 0x2A, 0x00, 0x40, 0xA1); +;;;717 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xC0, 0x50, 0x78, 0x07, 0x1A, 0xFC, 0x80, 0x52, 0x1C, 0x6F, 0x40, 0x83, 0x1F, 0x50, 0x8A, 0xE3, 0x05); +;;;718 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xD0, 0x68, 0xF0, 0x03, 0x4A, 0x71, 0xBC, 0x02, 0x0D, 0x7E, 0x40, 0x29, 0x8E, 0x97, 0xA0, 0xC1, 0x0F); +;;;719 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xE0, 0x28, 0xC5, 0xF1, 0x1A, 0x34, 0xF8, 0x01, 0xA5, 0x38, 0x5E, 0x84, 0x06, 0x3F, 0xA0, 0x14, 0xC7); +;;;720 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xF0, 0xAB, 0xD0, 0xE0, 0x07, 0x94, 0xE2, 0x18, 0x01, 0xBF, 0xDF, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00); +;;;721 //Blank 21 +;;;722 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x15); +;;;723 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0xD8, 0xE0, 0xF7); +;;;724 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x90, 0xA3, 0x80, 0xFB, 0x5A, 0x84, 0xCA, 0xE3, 0x05, 0xE1, 0xF1, 0x12, 0xA1, 0xF2, 0x78, 0x41, 0x78); +;;;725 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xA0, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00); +;;;726 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x13, 0x00, 0xF0, 0x00, 0x94, 0x15, 0x5B, 0x57); +;;;727 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xC0, 0x90, 0x82, 0xD4, 0x10, 0x20, 0x10, 0x66, 0x5D, 0xDB, 0xB6, 0x6D, 0xDB, 0xB6, 0x55, 0xA5, 0x75); +;;;728 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xD0, 0x5D, 0xD7, 0x55, 0x10, 0x0C, 0x43, 0x51, 0x1C, 0xC7, 0x6A, 0xDB, 0xB6, 0x6D, 0xDB, 0x55, 0x5B); +;;;729 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xE0, 0x57, 0xD0, 0x92, 0xD4, 0x50, 0x30, 0x14, 0x67, 0x5D, 0xDB, 0xB6, 0x6D, 0xDB, 0xB6, 0x55, 0xA1); +;;;730 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xF0, 0x75, 0x5D, 0xD7, 0x15, 0x00, 0x08, 0x02, 0x41, 0x18, 0x86, 0x6A, 0xDB, 0xB6, 0x6D, 0x5B, 0xC0); +;;;731 //Blank 22 +;;;732 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x16); +;;;733 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0xC3, 0x43, 0x41, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00); +;;;734 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 7, 0x90, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x20); +;;;735 //Blank 24 +;;;736 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x18); +;;;737 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0xEF, 0xBD, 0xF7, 0xDE, 0x7B, 0xEF, 0xBD, 0x07, 0x08, 0x08, 0x0A, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C); +;;;738 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x90, 0x0C, 0x0C, 0x0C, 0x5C, 0x09, 0xA8, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x5A); +;;;739 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xA0, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x09, 0x04, 0xFF, 0x00, 0x80); +;;;740 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 16, 0xB0, 0x80, 0x00, 0x04, 0x20, 0x00, 0x01, 0x08, 0x40, 0x00, 0x02, 0x10, 0x80, 0x00, 0x04, 0x00); +;;;741 //Blank 25 +;;;742 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x19); +;;;743 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0xC0, 0xAF, 0xA3, 0x9B, 0x92, 0x8D, 0x8A, 0x86, 0x84, 0x83, 0x82, 0x81, 0x00, 0x50, 0xF6, 0xCF); +;;;744 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x90, 0xFC, 0x2F, 0xF3, 0xEF, 0xCF, 0xBF, 0x0F, 0xFF, 0xAF, 0xB5, 0x71, 0x0E, 0x6C, 0x4A, 0x69, 0x08); +;;;745 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0xA0, 0x00, 0x00, 0x08, 0x00); +;;;746 //Blank 26 +;;;747 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0x41, 0x5A, 0x1A); +;;;748 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0x00, 0x04, 0x08, 0x0C, 0x00, 0x10, 0x14, 0x18, 0x1C, 0x00, 0x20, 0x28, 0x30, 0x38, 0x00, 0x40); +;;;749 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x90, 0x48, 0x50, 0x58, 0x00, 0x60, 0x68, 0x70, 0x78, 0x00, 0x80, 0x88, 0x90, 0x98, 0x00, 0xA0, 0xA8); +;;;750 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xA0, 0xB0, 0xB8, 0x00, 0xC0, 0xC8, 0xD0, 0xD8, 0x00, 0xE0, 0xE8, 0xF0, 0xF8, 0x00, 0xFC, 0xFE, 0xFF); +;;;751 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xB0, 0x00, 0x00, 0x04, 0x08, 0x0C, 0x00, 0x10, 0x14, 0x18, 0x1C, 0x00, 0x20, 0x28, 0x30, 0x38, 0x00); +;;;752 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xC0, 0x40, 0x48, 0x50, 0x58, 0x00, 0x60, 0x68, 0x70, 0x78, 0x00, 0x80, 0x88, 0x90, 0x98, 0x00, 0xA0); +;;;753 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xD0, 0xA8, 0xB0, 0xB8, 0x00, 0xC0, 0xC8, 0xD0, 0xD8, 0x00, 0xE0, 0xE8, 0xF0, 0xF8, 0x00, 0xFC, 0xFE); +;;;754 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xE0, 0xFF, 0x00, 0x00, 0x04, 0x08, 0x0C, 0x00, 0x10, 0x14, 0x18, 0x1C, 0x00, 0x20, 0x28, 0x30, 0x38); +;;;755 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xF0, 0x00, 0x40, 0x48, 0x50, 0x58, 0x00, 0x60, 0x68, 0x70, 0x78, 0x00, 0x80, 0x88, 0x90, 0x98, 0x00); +;;;756 //Blank 27 +;;;757 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x1B); +;;;758 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0xA0, 0xA8, 0xB0, 0xB8, 0x00, 0xC0, 0xC8, 0xD0, 0xD8, 0x00, 0xE0, 0xE8, 0xF0, 0xF8, 0x00, 0xFC); +;;;759 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0x90, 0xFE, 0xFF, 0x00, 0x00); +;;;760 //Blank 32 +;;;761 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x20); +;;;762 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 8, 0x80, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00); +;;;763 //Blank 34 +;;;764 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x22); +;;;765 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 14, 0x80, 0x2D, 0xD3, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x9F, 0x00); +;;;766 //Blank 35 +;;;767 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x23); +;;;768 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0x01, 0x05, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00); +;;;769 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 13, 0x90, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xFF, 0x07, 0x35); +;;;770 //Blank 36 +;;;771 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x24); +;;;772 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0x00, 0x03, 0x00, 0xFF, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x0A); +;;;773 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x90, 0x5A, 0x5A, 0x5A, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00); +;;;774 +;;;775 // BIST MODE +;;;776 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x02,0x5A); +;;;777 +;;;778 hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x42,0x24); +;;;779 hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x90,0x00); +;;;780 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x2F); +;;;781 hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x19,0x00); +;;;782 hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x4C,0x03); +;;;783 hal_dsi_tx_ctrl_write_cmd(0x39,0,1,0x11); +;;;784 delayMs(120); +;;;785 hal_dsi_tx_ctrl_write_cmd(0x39,0,1,0x29); +;;;786 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x51,0xFF,0x0F); +;;;787 hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x53,0x24); +;;;788 hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x55,0x00); +;;;789 delayMs(10); +;;;790 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0xB7,0x59,0x02); +;;;791 // hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x00,0xff,0x00); +;;;792 #else +;;;793 hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x41,0x5A); +;;;794 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x24); +;;;795 hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x90,0x5A); +;;;796 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x03); +;;;797 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x80,0x1A,0x01); +;;;798 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x08); +;;;799 hal_dsi_tx_ctrl_write_cmd(0x39,0,4,0x80,0x1A,0x2D,0x05); +;;;800 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x09); +;;;801 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x5A,0x51,0xB5,0x2A,0x6C,0xE5,0x4A,0x01,0x40,0x62,0x0F,0x82,0x20,0x08,0xF0,0xB7); +;;;802 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x00,0x24,0x42,0x0A,0xE3,0x91,0xA4,0xF0,0xD6,0xC3,0x70,0x20,0x2D,0xA1,0x26,0x00); +;;;803 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xA0,0x51,0x55,0x55,0x00,0xA0,0x4D,0x06,0x11,0x0D,0x60,0x00,0xFF,0xFF,0x03,0xA5,0xE6); +;;;804 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xB0,0x08,0x3A,0x12,0x64,0x0B,0x00,0x00,0x11,0x00,0x60,0x00,0xFF,0xFF,0x03,0xFF,0x34); +;;;805 hal_dsi_tx_ctrl_write_cmd(0x39,0,9,0xC0,0x0C,0xFF,0x18,0x9F,0x0F,0x00,0x08,0x00); +;;;806 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x0A); +;;;807 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0xFF,0xB6,0x6D,0x03,0x00,0x10,0x1D,0x2E,0x40,0x52,0x59,0x8E,0x70,0xAE,0x86,0x4D); +;;;808 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x81,0x54,0x50,0x40,0x31,0x21,0x14,0x0B,0x00,0x10,0x1D,0x2E,0x40,0x52,0x59,0x8E); +;;;809 hal_dsi_tx_ctrl_write_cmd(0x39,0,14,0xA0,0x70,0xAE,0x86,0x4D,0x81,0x54,0x50,0x40,0x31,0x21,0x14,0x0B,0x00); +;;;810 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x0B); +;;;811 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x00,0x00,0x20,0x44,0x08,0x00,0x60,0x47,0x00,0x00,0x10,0x22,0x04,0x00,0xB0,0x23); +;;;812 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x90,0x15,0x00); +;;;813 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x0C); +;;;814 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0xBA,0x68,0x68,0x01,0x32,0x4B,0x58,0x07,0x00,0x60,0x15,0x00,0x50,0x15,0x56,0x51); +;;;815 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x15,0x55,0x61,0x15,0x00,0x60,0x15,0x00,0x50,0x15,0x56,0x51,0x15,0x55,0x61,0x95); +;;;816 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xA0,0xAB,0x18,0x00,0x05,0x00,0x05,0x00,0x05,0x00,0x49,0x29,0x84,0x52,0x01,0x09,0x00); +;;;817 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0xB0,0x00,0x00); +;;;818 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x0D); +;;;819 hal_dsi_tx_ctrl_write_cmd(0x39,0,8,0x80,0xF0,0xB1,0x71,0xEF,0x4B,0xC0,0x80); +;;;820 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x0E); +;;;821 hal_dsi_tx_ctrl_write_cmd(0x39,0,9,0x80,0xFF,0x01,0x55,0x55,0x23,0x88,0x88,0x1C); +;;;822 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x0F); +;;;823 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0xBD,0x07,0x70,0xC0,0x12,0x08,0x64,0x08,0x52,0x51,0x58,0x49,0x03,0x52,0x4C,0x4C); +;;;824 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x68,0x68,0x68,0x4C,0x4C,0x7C,0x14,0x00,0x20,0x06,0xC2,0x00,0x04,0x06,0x0C,0x00); +;;;825 hal_dsi_tx_ctrl_write_cmd(0x39,0,5,0xA0,0x00,0x92,0x00,0x00); +;;;826 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x10); +;;;827 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x00,0x00,0x03,0xE7,0x1F,0x17,0x10,0x48,0x80,0xAA,0xD0,0x18,0x30,0x88,0x41,0x8A); +;;;828 hal_dsi_tx_ctrl_write_cmd(0x39,0,16,0x90,0x39,0x28,0xA9,0xC5,0x9A,0x7B,0xF0,0x07,0x7E,0xE0,0x07,0x7E,0x20,0x10,0x00); +;;;829 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x11); +;;;830 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x46,0x77,0x03,0x40,0xCA,0xF3,0xFF,0x83,0x30,0x08,0xC4,0x06,0xA1,0xD8,0x24,0x18); +;;;831 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x30,0xC6,0x66,0xC1,0x80,0x31,0x15,0xCB,0xE5,0xD2,0x68,0x6C,0x36,0x1D,0x04,0xC8); +;;;832 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xA0,0xB0,0xD9,0x88,0x60,0xB0,0x81,0x40,0x1A,0x1B,0x48,0x63,0x03,0xB9,0x00,0x1C,0x80); +;;;833 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xB0,0x50,0x30,0x00,0xE0,0xE1,0x01,0x00,0x28,0x0E,0x06,0x43,0x55,0x55,0x55,0x55,0x55); +;;;834 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xC0,0x95,0x88,0x88,0x88,0x88,0x88,0xC8,0x08,0x86,0xC6,0xE3,0x81,0x00,0x20,0x00,0x21); +;;;835 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xD0,0x42,0x88,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x31,0x04,0x41,0x06,0x00,0x00,0x00); +;;;836 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xE0,0x00,0x92,0x04,0x00,0x92,0x04,0x00,0x00,0x00,0x00,0x92,0x04,0x00,0x85,0x11,0x0C); +;;;837 hal_dsi_tx_ctrl_write_cmd(0x39,0,16,0xF0,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x5E,0x4A,0x01,0x78,0x00,0x08,0x00,0x00); +;;;838 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x12); +;;;839 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x00,0x00,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0x00,0x00,0x02,0x03,0x01,0x41,0x37); +;;;840 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0xF1,0xE7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2D,0x23,0x05); +;;;841 hal_dsi_tx_ctrl_write_cmd(0x39,0,8,0xA0,0xFB,0x08,0x2D,0x23,0x05,0xFB,0x0C); +;;;842 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x13); +;;;843 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0xFD,0x0F,0x00,0x0C,0x00,0x00,0x00,0x00,0x01,0x08,0x01,0x1C,0x44,0x0C,0xCE,0xE7); +;;;844 hal_dsi_tx_ctrl_write_cmd(0x39,0,15,0x90,0x62,0x0E,0x24,0x98,0xAC,0x21,0x01,0x00,0xD0,0x93,0x24,0x49,0x06,0x20); +;;;845 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x14); +;;;846 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x01,0x02,0x41,0x36,0xE9,0xEF,0xF7,0xFB,0xFD,0x7E,0x01,0x00,0x00,0x90,0xC5,0x8A); +;;;847 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x27,0x6D,0x20,0x4E,0x3C,0x69,0x03,0xDB,0xE0,0x49,0x1B,0xD8,0x08,0x4F,0xDA,0x00); +;;;848 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xA0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x82,0xB5,0xE2,0xF7,0x47,0x00); +;;;849 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xB0,0xD8,0x89,0xDF,0x1F,0x01,0x00,0x00,0x00,0x00,0x1C,0xB2,0x21,0x2B,0x00,0x40,0xA1); +;;;850 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xC0,0x50,0x78,0x17,0xDA,0xF4,0x80,0x51,0x1C,0x6F,0x42,0x9B,0x1E,0x30,0x8A,0xE3,0x3D); +;;;851 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xD0,0x68,0xD3,0x03,0x46,0x71,0xBC,0x05,0x6D,0x7A,0xC0,0x28,0x8E,0x77,0xA0,0x4D,0x0F); +;;;852 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xE0,0x18,0xC5,0xF1,0x06,0xB4,0xE9,0x01,0xA3,0x38,0x5E,0x80,0x36,0x3D,0x60,0x14,0xC7); +;;;853 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xF0,0x2B,0xD0,0xA6,0x07,0x8C,0xE2,0x18,0x01,0xBF,0xDF,0x08,0x00,0x00,0x00,0x00,0x00); +;;;854 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x15); +;;;855 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xD9,0xE0,0xF7); +;;;856 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0xA3,0x00,0x20,0x4B,0x07,0xAB,0xC5,0x03,0x00,0x00,0xD6,0xC1,0x6A,0xF1,0x00,0x00); +;;;857 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xA0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x90); +;;;858 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xB0,0x75,0xA1,0x6A,0xB5,0x00,0x00,0x00,0x00,0x13,0x00,0xF0,0x00,0x14,0xD3,0x34,0xCD); +;;;859 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xC0,0x90,0x02,0x4D,0x10,0x20,0x10,0x06,0x6A,0xDB,0xB6,0x6D,0xDB,0xB6,0x35,0x4D,0xD3); +;;;860 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xD0,0x34,0x21,0x13,0x04,0x01,0x02,0x61,0xA8,0xB6,0x6D,0xDB,0xB6,0x6D,0xDB,0xB6,0x35); +;;;861 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xE0,0xCD,0xD0,0x02,0x4D,0x50,0x30,0x14,0x47,0x6A,0xDB,0xB6,0x6D,0xDB,0xB6,0x6D,0x5B); +;;;862 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xF0,0xD3,0x34,0x25,0x13,0x04,0x05,0x43,0x71,0xAC,0xB6,0x6D,0xDB,0xB6,0x6D,0x5B,0x00); +;;;863 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x16); +;;;864 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x02,0x42,0x41,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); +;;;865 hal_dsi_tx_ctrl_write_cmd(0x39,0,7,0x90,0x00,0x00,0x00,0x00,0xF0,0x20); +;;;866 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x18); +;;;867 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0xEF,0xBD,0xF7,0xDE,0x7B,0xEF,0xBD,0x07,0x08,0x08,0x0A,0x0C,0x0C,0x0C,0x0C,0x0C); +;;;868 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x0C,0x0C,0x0C,0x5C,0x09,0xA8,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x5A); +;;;869 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xA0,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x09,0x04,0xFF,0x00,0x80); +;;;870 hal_dsi_tx_ctrl_write_cmd(0x39,0,16,0xB0,0x80,0x00,0x04,0x20,0x00,0x01,0x08,0x40,0x00,0x02,0x10,0x80,0x00,0x04,0x00); +;;;871 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x19); +;;;872 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0xC0,0xAF,0xA3,0x9B,0x92,0x8D,0x8A,0x86,0x84,0x83,0x82,0x81,0x00,0x50,0xF6,0xCF); +;;;873 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0xFC,0x2F,0xF3,0xEF,0xCF,0xBF,0x0F,0xFF,0xAF,0xB5,0x71,0x0E,0x6C,0x4A,0x69,0x08); +;;;874 hal_dsi_tx_ctrl_write_cmd(0x39,0,5,0xA0,0x00,0x00,0x08,0x00); +;;;875 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x1A); +;;;876 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x00,0x04,0x08,0x0C,0x00,0x10,0x14,0x18,0x1C,0x00,0x20,0x28,0x30,0x38,0x00,0x40); +;;;877 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x48,0x50,0x58,0x00,0x60,0x68,0x70,0x78,0x00,0x80,0x88,0x90,0x98,0x00,0xA0,0xA8); +;;;878 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xA0,0xB0,0xB8,0x00,0xC0,0xC8,0xD0,0xD8,0x00,0xE0,0xE8,0xF0,0xF8,0x00,0xFC,0xFE,0xFF); +;;;879 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xB0,0x00,0x00,0x04,0x08,0x0C,0x00,0x10,0x14,0x18,0x1C,0x00,0x20,0x28,0x30,0x38,0x00); +;;;880 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xC0,0x40,0x48,0x50,0x58,0x00,0x60,0x68,0x70,0x78,0x00,0x80,0x88,0x90,0x98,0x00,0xA0); +;;;881 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xD0,0xA8,0xB0,0xB8,0x00,0xC0,0xC8,0xD0,0xD8,0x00,0xE0,0xE8,0xF0,0xF8,0x00,0xFC,0xFE); +;;;882 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xE0,0xFF,0x00,0x00,0x04,0x08,0x0C,0x00,0x10,0x14,0x18,0x1C,0x00,0x20,0x28,0x30,0x38); +;;;883 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xF0,0x00,0x40,0x48,0x50,0x58,0x00,0x60,0x68,0x70,0x78,0x00,0x80,0x88,0x90,0x98,0x00); +;;;884 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x1B); +;;;885 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0xA0,0xA8,0xB0,0xB8,0x00,0xC0,0xC8,0xD0,0xD8,0x00,0xE0,0xE8,0xF0,0xF8,0x00,0xFC); +;;;886 hal_dsi_tx_ctrl_write_cmd(0x39,0,5,0x90,0xFE,0xFF,0x00,0x00); +;;;887 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x20); +;;;888 hal_dsi_tx_ctrl_write_cmd(0x39,0,8,0x80,0x81,0x00,0x00,0x00,0x00,0x00,0x00); +;;;889 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x22); +;;;890 hal_dsi_tx_ctrl_write_cmd(0x39,0,14,0x80,0x2D,0xD3,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x9F,0x00); +;;;891 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x23); +;;;892 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x01,0x05,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); +;;;893 hal_dsi_tx_ctrl_write_cmd(0x39,0,13,0x90,0xFF,0x0F,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0xFF,0x07,0x35); +;;;894 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x24); +;;;895 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x00,0x03,0x00,0xFF,0xFF,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x30); +;;;896 hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x5A,0x5A,0x5A,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); +;;;897 +;;;898 // BIST MODE +;;;899 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x02,0x5A); +;;;900 +;;;901 hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x42,0x24); +;;;902 hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x90,0x00); +;;;903 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x2F); +;;;904 hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x19,0x00); +;;;905 hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x4C,0x03); +;;;906 hal_dsi_tx_ctrl_write_cmd(0x39,0,1,0x11); +;;;907 delayMs(120); +;;;908 // hal_dsi_tx_ctrl_write_cmd(0x39,0,1,0x29); +;;;909 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x51,0xFF,0x0F); +;;;910 hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x53,0x24); +;;;911 hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x55,0x00); +;;;912 delayMs(10); +;;;913 hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0xB7,0x59,0x02); +;;;914 // hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x00,0xff,0x00); +;;;915 #endif +;;;916 +;;;917 #endif +;;;918 // delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,1,0xB7); +;;;919 // delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,1,0x59); +;;;920 // delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,1,0x02); +;;;921 // delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x00,0xff,0x00); +;;;922 #if 1 +;;;923 #if 0 +;;;924 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x41,0x5a); +;;;925 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x24); +;;;926 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x90,0x5a); +;;;927 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x03); +;;;928 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x80,0x25,0x01); +;;;929 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x08); +;;;930 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x04,0x80,0x20,0x2d,0x05); +;;;931 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x09); +;;;932 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0x5a,0x51,0xb5,0x2a,0x6c,0xe5,0x4a,0x01,0x40,0x62,0x0f,0x82,0x20,0x08,0xf0,0xb7); +;;;933 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x90,0x00,0x24,0x42,0x0a,0xe3,0x91,0xa4,0xf0,0xc3,0xc3,0x6b,0x20,0x2d,0xa1,0x26,0x00); +;;;934 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xa0,0x51,0x55,0x55,0x00,0xa0,0x4c,0x06,0x11,0x0d,0x60,0x5a,0xff,0xff,0x03,0xa5,0xe6); +;;;935 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xb0,0x08,0xc9,0x16,0x64,0x0b,0x00,0x00,0x11,0x07,0x60,0x00,0xff,0xff,0x03,0xff,0x34); +;;;936 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x09,0xc0,0x0c,0x3f,0x1f,0x9f,0x0f,0x00,0x08,0x00); +;;;937 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x0a); +;;;938 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0xff,0xb6,0x6d,0x03,0x00,0x0f,0x1b,0x2b,0x3d,0x4e,0x55,0x89,0x68,0xa5,0x8e,0x56); +;;;939 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x90,0x85,0x58,0x53,0x43,0x33,0x23,0x16,0x0b,0x00,0x0f,0x1b,0x2b,0x3d,0x4e,0x55,0x89); +;;;940 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x0e,0xa0,0x68,0xa5,0x8e,0x56,0x85,0x58,0x53,0x43,0x33,0x23,0x16,0x0b,0x00); +;;;941 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x0b); +;;;942 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0x00,0x00,0x20,0x44,0x08,0x00,0x60,0x47,0x00,0x00,0x10,0x22,0x04,0x00,0xb0,0x23); +;;;943 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x90,0x15,0x00); +;;;944 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x0c); +;;;945 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0xfa,0x68,0x68,0x01,0xb2,0x75,0xd0,0x07,0x00,0x60,0x15,0x00,0x50,0x15,0x56,0x51); +;;;946 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x90,0x15,0x55,0x61,0x15,0x00,0x60,0x15,0x00,0x50,0x15,0x56,0x51,0x15,0x55,0x61,0x95); +;;;947 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xa0,0xab,0x18,0x00,0x05,0x00,0x05,0x00,0x05,0x80,0x4c,0x29,0x84,0x52,0x01,0x09,0x00); +;;;948 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0xb0,0x00,0x00); +;;;949 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x0d); +;;;950 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x08,0x80,0xf0,0xb1,0x71,0xef,0x4b,0xc0,0x80); +;;;951 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x0e); +;;;952 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x09,0x80,0xff,0x01,0x55,0x55,0x23,0x88,0x88,0x1c); +;;;953 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x0f); +;;;954 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0xd1,0x07,0x70,0x40,0x13,0x38,0x64,0x08,0x52,0x51,0x58,0x49,0x03,0x52,0x4c,0x4c); +;;;955 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x90,0x68,0x68,0x68,0x4c,0x4c,0x7c,0x14,0x00,0x20,0x06,0xc2,0x00,0x04,0x06,0x0c,0x00); +;;;956 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x05,0xa0,0x00,0x92,0x00,0x00); +;;;957 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x10); +;;;958 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0x00,0x00,0x03,0xe7,0x1f,0x17,0x10,0x48,0x80,0xaa,0xd0,0x18,0x30,0x88,0x41,0x8a); +;;;959 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x10,0x90,0x39,0x28,0xa9,0xc5,0x9a,0x7b,0xf0,0x07,0x7e,0xe0,0x07,0x7e,0x20,0x10,0x00); +;;;960 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x11); +;;;961 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0x49,0x77,0x03,0x40,0xca,0xf3,0xff,0xa3,0x20,0x08,0xc4,0x06,0xa1,0xd8,0x24,0x18); +;;;962 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x90,0x30,0xc6,0x66,0xc1,0x80,0x1d,0x15,0xcb,0xe5,0xe2,0x70,0x6c,0x36,0x1d,0x04,0xc8); +;;;963 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xa0,0xb0,0xd9,0x88,0x60,0xb0,0x81,0x40,0x1c,0x1b,0x88,0x63,0x03,0xb9,0x00,0x1c,0x80); +;;;964 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xb0,0x50,0x30,0x00,0xe0,0xe1,0x01,0x00,0x28,0x0e,0x06,0x43,0x55,0x55,0x55,0x55,0x55); +;;;965 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xc0,0x95,0x88,0x88,0x88,0x88,0x88,0xc8,0x08,0x84,0xc6,0xe3,0x81,0x00,0x20,0x00,0x21); +;;;966 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xd0,0x42,0x88,0x00,0x00,0x00,0x00,0x40,0x00,0x20,0x31,0x04,0x41,0x06,0x00,0x00,0x00); +;;;967 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xe0,0x00,0x92,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x92,0x04,0x00,0x85,0x11,0x0c); +;;;968 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x10,0xf0,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x5e,0x4a,0x01,0x10,0x22,0x00,0x00,0x00); +;;;969 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x12); +;;;970 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0x00,0x00,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0x00,0x00,0x02,0x03,0x01,0x41,0x37); +;;;971 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x90,0xf1,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2d,0x23,0x05); +;;;972 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x08,0xa0,0xfb,0x08,0x2d,0x23,0x05,0xfb,0x0c); +;;;973 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x13); +;;;974 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0xfd,0x0f,0x00,0x0c,0x00,0x00,0x00,0x00,0x01,0x08,0x01,0x1c,0x44,0x0c,0xce,0xe7); +;;;975 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x0f,0x90,0x62,0x0e,0x24,0x98,0xac,0x21,0x01,0x00,0xd0,0x93,0x24,0x49,0x06,0x20); +;;;976 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x14); +;;;977 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0x01,0x02,0x41,0x36,0xe9,0xef,0xf7,0xfb,0xfd,0x7e,0x00,0x00,0x00,0x90,0xc5,0x89); +;;;978 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x90,0x27,0x3d,0x20,0x46,0x3c,0xe9,0x01,0xf1,0xe1,0x49,0x0f,0x88,0x0d,0x4f,0x7a,0x00); +;;;979 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xa0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); +;;;980 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xb0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0xb2,0x21,0x2b,0x00,0x40,0xa1); +;;;981 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xc0,0x50,0x78,0x03,0xf8,0xb9,0x94,0x51,0x1c,0x2f,0x00,0x3f,0x97,0x32,0x8a,0xe3,0x15); +;;;982 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xd0,0xe0,0xe7,0x52,0x46,0x71,0xbc,0x04,0xfc,0x5c,0xca,0x28,0x8e,0x37,0x81,0x9f,0x4b); +;;;983 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xe0,0x19,0xc5,0xf1,0x1e,0xf0,0x73,0x29,0xa3,0x38,0xde,0x02,0x7e,0x2e,0x65,0x14,0xc7); +;;;984 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xf0,0x3b,0xc0,0xcf,0xa5,0x8c,0xe2,0x18,0x01,0xbf,0x5f,0x08,0x00,0x00,0x00,0x00,0x00); +;;;985 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x15); +;;;986 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xd9,0xe0,0xf7); +;;;987 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x90,0xa3,0x00,0x20,0xcb,0x85,0xaa,0xd5,0x06,0x91,0x91,0x77,0xa1,0x6a,0xb5,0x41,0x64); +;;;988 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xa0,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x90); +;;;989 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xb0,0x75,0xa1,0x6a,0xb5,0x00,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x94,0xd6,0x0c,0x4d); +;;;990 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xc0,0xc9,0x12,0x0c,0xc5,0x21,0xc1,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xc9,0xd0); +;;;991 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xd0,0xa4,0x20,0x06,0x21,0x00,0x13,0x6c,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xd6,0x0c); +;;;992 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xe0,0x4d,0x88,0x02,0x08,0x84,0x21,0xc1,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xc9); +;;;993 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xf0,0xd0,0xb4,0x24,0x47,0x31,0x04,0x13,0x6c,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0x5b,0x12); +;;;994 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x16); +;;;995 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0x03,0x03,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); +;;;996 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x07,0x90,0x00,0x00,0x00,0x00,0xf0,0x20); +;;;997 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x18); +;;;998 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0xef,0xbd,0xf7,0xde,0x7b,0xef,0xbd,0x07,0x08,0x08,0x0a,0x0c,0x0c,0x0c,0x0c,0x0c); +;;;999 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x90,0x0c,0x0c,0x0c,0x5c,0x09,0xa8,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0x5a); +;;;1000 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xa0,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x09,0x04,0xff,0x00,0x80); +;;;1001 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x10,0xb0,0x80,0x00,0xcc,0x1a,0xda,0x00,0xc8,0xb6,0xd1,0x01,0xf0,0x4c,0x3e,0x01,0x00); +;;;1002 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x19); +;;;1003 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0xc0,0xaf,0xa3,0x9b,0x92,0x8d,0x8a,0x86,0x84,0x83,0x82,0x81,0x00,0x50,0xf6,0xcf); +;;;1004 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x90,0xfc,0x2f,0xf3,0xef,0xcf,0xbf,0x0f,0xff,0xaf,0xb5,0x71,0x0e,0x6c,0x4a,0x69,0x08); +;;;1005 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x05,0xa0,0x06,0x06,0x02,0x00); +;;;1006 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x1a); +;;;1007 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0x00,0x04,0x08,0x0c,0x00,0x10,0x14,0x18,0x1c,0x00,0x20,0x28,0x30,0x38,0x00,0x40); +;;;1008 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x90,0x48,0x50,0x58,0x00,0x60,0x68,0x70,0x78,0x00,0x80,0x88,0x90,0x98,0x00,0xa0,0xa8); +;;;1009 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xa0,0xb0,0xb8,0x00,0xc0,0xc8,0xd0,0xd8,0x00,0xe0,0xe8,0xf0,0xf8,0x00,0xfc,0xfe,0xff); +;;;1010 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xb0,0x00,0x00,0x04,0x08,0x0c,0x00,0x10,0x14,0x18,0x1c,0x00,0x20,0x28,0x30,0x38,0x00); +;;;1011 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xc0,0x40,0x48,0x50,0x58,0x00,0x60,0x68,0x70,0x78,0x00,0x80,0x88,0x90,0x98,0x00,0xa0); +;;;1012 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xd0,0xa8,0xb0,0xb8,0x00,0xc0,0xc8,0xd0,0xd8,0x00,0xe0,0xe8,0xf0,0xf8,0x00,0xfc,0xfe); +;;;1013 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xe0,0xff,0x00,0x00,0x04,0x08,0x0c,0x00,0x10,0x14,0x18,0x1c,0x00,0x20,0x28,0x30,0x38); +;;;1014 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xf0,0x00,0x40,0x48,0x50,0x58,0x00,0x60,0x68,0x70,0x78,0x00,0x80,0x88,0x90,0x98,0x00); +;;;1015 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x1b); +;;;1016 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0xa0,0xa8,0xb0,0xb8,0x00,0xc0,0xc8,0xd0,0xd8,0x00,0xe0,0xe8,0xf0,0xf8,0x00,0xfc); +;;;1017 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x05,0x90,0xfe,0xff,0x00,0x00); +;;;1018 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x20); +;;;1019 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x08,0x80,0x87,0x00,0x00,0x00,0x00,0x00,0x00); +;;;1020 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x22); +;;;1021 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x0e,0x80,0x2d,0xd3,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x9f,0x00); +;;;1022 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x23); +;;;1023 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0x01,0x05,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00); +;;;1024 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x0d,0x90,0xff,0x0f,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0xef,0x07,0x35); +;;;1025 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x24); +;;;1026 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0x00,0x03,0x00,0xff,0xff,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x84); +;;;1027 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x90,0x5a,0x5a,0x5a,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); +;;;1028 // BIST MODE +;;;1029 delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x02,0x5A); +;;;1030 +;;;1031 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x42,0x24); +;;;1032 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x90,0x00); +;;;1033 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x2f); +;;;1034 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x19,0x00); +;;;1035 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x4c,0x03); +;;;1036 +;;;1037 +;;;1038 // Video Mode Enable +;;;1039 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0xB7,0x59,0x02); +;;;1040 +;;;1041 +;;;1042 +;;;1043 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x05, 0, 1, 0x11); +;;;1044 +;;;1045 hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_HIGH); +;;;1046 delayMs(10); +;;;1047 hal_gpio_set_output_data(IO_PAD_ADCIN, IO_LVL_HIGH); +;;;1048 // swire_init(); +;;;1049 delayMs(50); +;;;1050 +;;;1051 // +;;;1052 +;;;1053 hal_dsi_tx_ctrl_write_cmd(0x05, 0, 1, 0x29); +;;;1054 // delayMs(10); +;;;1055 +;;;1056 hal_dsi_tx_ctrl_write_cmd(0x29, 0, 3, 0x51, 0x0F, 0xFF); +;;;1057 delayMs(1); +;;;1058 /* 0x29 tx start ֮ */ +;;;1059 #else +;;;1060 /* +;;;1061 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x41,0x5a); +;;;1062 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x4c,0x03); +;;;1063 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x24); +;;;1064 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x90,0x5a); +;;;1065 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x03); +;;;1066 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x80,0x19,0x01); +;;;1067 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x08); +;;;1068 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x04,0x80,0x19,0x2d,0x05); +;;;1069 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x09); +;;;1070 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x5a,0x51,0xb5,0x2a,0x6c,0xe5,0x4a,0x01,0x40,0x62,0x0f,0x82,0x20,0x08,0xf0,0xb7); +;;;1071 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x00,0x24,0x42,0x0a,0xe3,0x91,0xa4,0xf0,0xc2,0xb9,0x6b,0x20,0x19,0xa1,0x26,0x00); +;;;1072 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xa0,0x51,0x55,0x55,0x00,0xa0,0x4d,0x06,0x11,0x0d,0x60,0x5a,0xff,0xff,0x03,0xa5,0xe6); +;;;1073 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xb0,0x08,0xc9,0x16,0x64,0x0b,0x00,0x00,0x11,0x07,0x60,0x00,0xff,0xff,0x03,0xff,0x34); +;;;1074 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x09,0xc0,0x0c,0x3f,0x1f,0x9f,0x0f,0x00,0x08,0x00); +;;;1075 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x0a); +;;;1076 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0xff,0xb6,0x6d,0x03,0x00,0x14,0x23,0x36,0x49,0x5c,0x63,0x98,0x83,0xbe,0x76,0x41); +;;;1077 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x7b,0x50,0x4d,0x3e,0x2e,0x1f,0x10,0x0b,0x00,0x14,0x23,0x36,0x49,0x5c,0x63,0x98); +;;;1078 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x0e,0xa0,0x83,0xbe,0x76,0x41,0x7b,0x50,0x4d,0x3e,0x2e,0x1f,0x10,0x0b,0x00); +;;;1079 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x0b); +;;;1080 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x00,0x00,0x20,0x44,0x08,0x00,0x60,0x47,0x00,0x00,0x10,0x22,0x04,0x00,0xb0,0x23); +;;;1081 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x90,0x15,0x00); +;;;1082 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x0c); +;;;1083 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0xfa,0x68,0x68,0x01,0xb2,0x75,0xb0,0x04,0x00,0x60,0x15,0x00,0x50,0x15,0x56,0x51); +;;;1084 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x15,0x55,0x61,0x15,0x00,0x60,0x15,0x00,0x50,0x15,0x56,0x51,0x15,0x55,0x61,0x95); +;;;1085 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xa0,0xab,0x18,0x00,0x05,0x00,0x05,0x00,0x05,0x80,0x4c,0x29,0x84,0x52,0x01,0x09,0x00); +;;;1086 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0xb0,0x00,0x00); +;;;1087 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x0d); +;;;1088 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x08,0x80,0xf0,0xb1,0x71,0xef,0x4b,0xc0,0x80); +;;;1089 // delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x08,0x80,0xf3,0xb1,0x71,0xef,0x4b,0xc0,0x80); +;;;1090 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x0e); +;;;1091 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x09,0x80,0xff,0x01,0x55,0x55,0x23,0x88,0x88,0x1c); +;;;1092 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x0f); +;;;1093 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x14,0x40,0x6f,0xc0,0x12,0x08,0x64,0x08,0x52,0x31,0x58,0x49,0x03,0x52,0x4c,0x4c); +;;;1094 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x68,0x68,0x68,0x4c,0x4c,0x7c,0x14,0x00,0x20,0x06,0xc2,0x00,0x04,0x06,0x0c,0x00); +;;;1095 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x05,0xa0,0x00,0x92,0x00,0x00); +;;;1096 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x10); +;;;1097 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x00,0x00,0x03,0xe7,0x1f,0x17,0x10,0x48,0x80,0xaa,0xd0,0x18,0x30,0x88,0x41,0x8a); +;;;1098 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x10,0x90,0x39,0x28,0xa9,0xc5,0x9a,0x7b,0xf0,0x07,0x7e,0xe0,0x07,0x7e,0x20,0x10,0x00); +;;;1099 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x11); +;;;1100 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x49,0x77,0x03,0x40,0xca,0xf3,0xff,0x83,0x30,0x08,0xc4,0x06,0xa1,0xd8,0x24,0x18); +;;;1101 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x30,0xc6,0x66,0xc1,0x80,0x31,0x15,0xcb,0xe5,0xd2,0x68,0x6c,0x36,0x1d,0x04,0xc8); +;;;1102 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xa0,0xb0,0xd9,0x88,0x60,0xb0,0x81,0x40,0x1a,0x1b,0x48,0x63,0x03,0xb9,0x00,0x1c,0x80); +;;;1103 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xb0,0x50,0x30,0x00,0xe0,0xe1,0x01,0x00,0x28,0x0e,0x06,0x43,0x55,0x55,0x55,0x55,0x55); +;;;1104 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xc0,0x95,0x88,0x88,0x88,0x88,0x88,0xc8,0x08,0x86,0xc6,0xe3,0x81,0x00,0x20,0x00,0x21); +;;;1105 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xd0,0x42,0x88,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x31,0x04,0x41,0x06,0x00,0x00,0x00); +;;;1106 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xe0,0x00,0x92,0x04,0x00,0x92,0x04,0x00,0x00,0x00,0x00,0x92,0x04,0x00,0x85,0x11,0x0c); +;;;1107 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x10,0xf0,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x5e,0x4a,0x01,0x78,0x00,0x08,0x00,0x00); +;;;1108 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x12); +;;;1109 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x00,0x00,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0x00,0x00,0x02,0x03,0x00,0x41,0x37); +;;;1110 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0xf1,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2d,0x23,0x05); +;;;1111 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x08,0xa0,0xfb,0x08,0x2d,0x23,0x05,0xfb,0x0c); +;;;1112 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x13); +;;;1113 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0xfd,0x0f,0x00,0x0c,0x00,0x00,0x00,0x00,0x01,0x08,0x01,0x1c,0x44,0x0c,0xce,0xe7); +;;;1114 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x0f,0x90,0x62,0x0e,0x24,0x98,0xac,0x21,0x01,0x00,0xd0,0xff,0xff,0xff,0x07,0x20); +;;;1115 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x14); +;;;1116 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x01,0x02,0x41,0x36,0xe1,0xef,0xf7,0xfb,0xfd,0x7e,0x01,0x00,0x00,0x90,0xc5,0x8a); +;;;1117 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x27,0x6d,0x20,0x4e,0x3c,0x69,0x03,0xdb,0xe0,0x49,0x1b,0xd8,0x08,0x4f,0xda,0x00); +;;;1118 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xa0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x82,0xb5,0xe2,0xf7,0x47,0x00); +;;;1119 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xb0,0xd8,0x89,0xdf,0x1f,0x01,0x00,0x00,0x00,0x00,0x1c,0xb2,0x21,0x2b,0x00,0x40,0xa1); +;;;1120 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xc0,0x50,0x78,0x17,0xda,0xf4,0x80,0x51,0x1c,0x6f,0x42,0x9b,0x1e,0x30,0x8a,0xe3,0x3d); +;;;1121 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xd0,0x68,0xd3,0x03,0x46,0x71,0xbc,0x05,0x6d,0x7a,0xc0,0x28,0x8e,0x77,0xa0,0x4d,0x0f); +;;;1122 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xe0,0x18,0xc5,0xf1,0x06,0xb4,0xe9,0x01,0xa3,0x38,0x5e,0x80,0x36,0x3d,0x60,0x14,0xc7); +;;;1123 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xf0,0x2b,0xd0,0xa6,0x07,0x8c,0xe2,0x18,0x01,0xbf,0xdf,0x08,0x00,0x00,0x00,0x00,0x00); +;;;1124 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x15); +;;;1125 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xd9,0xe0,0xf7); +;;;1126 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0xa3,0x00,0x20,0x4b,0x07,0xab,0xc5,0x03,0x00,0x00,0xd6,0xc1,0x6a,0xf1,0x00,0x00); +;;;1127 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xa0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x90); +;;;1128 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xb0,0x75,0xa1,0x6a,0xb5,0x00,0x00,0x00,0x00,0x13,0x00,0xf0,0x00,0x14,0xd3,0x34,0xcd); +;;;1129 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xc0,0x90,0x02,0x4d,0x10,0x20,0x10,0x06,0x6a,0xdb,0xb6,0x6d,0xdb,0xb6,0x35,0x4d,0xd3); +;;;1130 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xd0,0x34,0x21,0x13,0x04,0x01,0x02,0x61,0xa8,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x35); +;;;1131 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xe0,0xcd,0xd0,0x02,0x4d,0x50,0x30,0x14,0x47,0x6a,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0x5b); +;;;1132 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xf0,0xd3,0x34,0x25,0x13,0x04,0x05,0x43,0x71,0xac,0xb6,0x6d,0xdb,0xb6,0x6d,0x5b,0x00); +;;;1133 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x16); +;;;1134 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x02,0x42,0x41,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); +;;;1135 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x07,0x90,0x00,0x00,0x00,0x00,0xf0,0x20); +;;;1136 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x18); +;;;1137 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0xef,0xbd,0xf7,0xde,0x7b,0xef,0xbd,0x07,0x08,0x08,0x0a,0x0c,0x0c,0x0c,0x0c,0x0c); +;;;1138 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x0c,0x0c,0x0c,0x5c,0x09,0xa8,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0x5a); +;;;1139 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xa0,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x09,0x04,0xff,0x00,0x80); +;;;1140 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x10,0xb0,0x80,0x00,0x04,0x20,0x00,0x01,0x08,0x40,0x00,0x02,0x10,0x80,0x00,0x04,0x00); +;;;1141 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x19); +;;;1142 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0xc0,0xaf,0xa3,0x9b,0x92,0x8d,0x8a,0x86,0x84,0x83,0x82,0x81,0x00,0x50,0xf6,0xcf); +;;;1143 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0xfc,0x2f,0xf3,0xef,0xcf,0xbf,0x0f,0xff,0xaf,0xb5,0x71,0x0e,0x6c,0x4a,0x69,0x08); +;;;1144 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x05,0xa0,0x03,0x03,0x68,0x00); +;;;1145 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x1a); +;;;1146 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x00,0x04,0x08,0x0c,0x00,0x10,0x14,0x18,0x1c,0x00,0x20,0x28,0x30,0x38,0x00,0x40); +;;;1147 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x48,0x50,0x58,0x00,0x60,0x68,0x70,0x78,0x00,0x80,0x88,0x90,0x98,0x00,0xa0,0xa8); +;;;1148 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xa0,0xb0,0xb8,0x00,0xc0,0xc8,0xd0,0xd8,0x00,0xe0,0xe8,0xf0,0xf8,0x00,0xfc,0xfe,0xff); +;;;1149 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xb0,0x00,0x00,0x04,0x08,0x0c,0x00,0x10,0x14,0x18,0x1c,0x00,0x20,0x28,0x30,0x38,0x00); +;;;1150 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xc0,0x40,0x48,0x50,0x58,0x00,0x60,0x68,0x70,0x78,0x00,0x80,0x88,0x90,0x98,0x00,0xa0); +;;;1151 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xd0,0xa8,0xb0,0xb8,0x00,0xc0,0xc8,0xd0,0xd8,0x00,0xe0,0xe8,0xf0,0xf8,0x00,0xfc,0xfe); +;;;1152 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xe0,0xff,0x00,0x00,0x04,0x08,0x0c,0x00,0x10,0x14,0x18,0x1c,0x00,0x20,0x28,0x30,0x38); +;;;1153 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xf0,0x00,0x40,0x48,0x50,0x58,0x00,0x60,0x68,0x70,0x78,0x00,0x80,0x88,0x90,0x98,0x00); +;;;1154 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x1b); +;;;1155 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0xa0,0xa8,0xb0,0xb8,0x00,0xc0,0xc8,0xd0,0xd8,0x00,0xe0,0xe8,0xf0,0xf8,0x00,0xfc); +;;;1156 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x05,0x90,0xfe,0xff,0x00,0x00); +;;;1157 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x20); +;;;1158 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x08,0x80,0x81,0x00,0x00,0x00,0x00,0x00,0x00); +;;;1159 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x22); +;;;1160 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x0e,0x80,0x2d,0xd3,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x9f,0x00); +;;;1161 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x23); +;;;1162 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x01,0x05,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); +;;;1163 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x0d,0x90,0xff,0x0f,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0xff,0x07,0x25); +;;;1164 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x24); +;;;1165 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x00,0x03,0x00,0xff,0xff,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xa6); +;;;1166 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x5a,0x5a,0x5a,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); +;;;1167 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x42,0x24); +;;;1168 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x90,0x00); +;;;1169 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x2f); +;;;1170 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x19,0x00); +;;;1171 //delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x02,0x5a); +;;;1172 //delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x02,0x00); +;;;1173 */ +;;;1174 +;;;1175 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x41,0x5a); +000024 2032 MOVS r0,#0x32 +000026 f7fffffe BL delayUs +00002a 205a MOVS r0,#0x5a +00002c 2341 MOVS r3,#0x41 +00002e 2202 MOVS r2,#2 +000030 2100 MOVS r1,#0 +000032 9000 STR r0,[sp,#0] +000034 2015 MOVS r0,#0x15 +000036 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1176 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x4c,0x03); +00003a 2032 MOVS r0,#0x32 +00003c f7fffffe BL delayUs +000040 2003 MOVS r0,#3 +000042 234c MOVS r3,#0x4c +000044 2202 MOVS r2,#2 +000046 2100 MOVS r1,#0 +000048 9000 STR r0,[sp,#0] +00004a 2015 MOVS r0,#0x15 +00004c f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1177 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x24); +000050 2032 MOVS r0,#0x32 +000052 f7fffffe BL delayUs +000056 2024 MOVS r0,#0x24 +000058 215a MOVS r1,#0x5a +00005a 2341 MOVS r3,#0x41 +00005c 2203 MOVS r2,#3 +00005e 9100 STR r1,[sp,#0] +000060 9001 STR r0,[sp,#4] +000062 2100 MOVS r1,#0 +000064 2029 MOVS r0,#0x29 +000066 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1178 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x90,0x5a); +00006a 2032 MOVS r0,#0x32 +00006c f7fffffe BL delayUs +000070 205a MOVS r0,#0x5a +000072 2390 MOVS r3,#0x90 +000074 2202 MOVS r2,#2 +000076 2100 MOVS r1,#0 +000078 9000 STR r0,[sp,#0] +00007a 2015 MOVS r0,#0x15 +00007c f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1179 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x03); +000080 2032 MOVS r0,#0x32 +000082 f7fffffe BL delayUs +000086 2003 MOVS r0,#3 +000088 215a MOVS r1,#0x5a +00008a 2341 MOVS r3,#0x41 +00008c 4602 MOV r2,r0 +00008e 9100 STR r1,[sp,#0] +000090 9001 STR r0,[sp,#4] +000092 2100 MOVS r1,#0 +000094 2029 MOVS r0,#0x29 +000096 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1180 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x80,0x19,0x01); +00009a 2032 MOVS r0,#0x32 +00009c f7fffffe BL delayUs +0000a0 2001 MOVS r0,#1 +0000a2 2119 MOVS r1,#0x19 +0000a4 2380 MOVS r3,#0x80 +0000a6 2203 MOVS r2,#3 +0000a8 9100 STR r1,[sp,#0] +0000aa 9001 STR r0,[sp,#4] +0000ac 2100 MOVS r1,#0 +0000ae 2029 MOVS r0,#0x29 +0000b0 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1181 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x08); +0000b4 2032 MOVS r0,#0x32 +0000b6 f7fffffe BL delayUs +0000ba 2008 MOVS r0,#8 +0000bc 215a MOVS r1,#0x5a +0000be 2341 MOVS r3,#0x41 +0000c0 2203 MOVS r2,#3 +0000c2 9100 STR r1,[sp,#0] +0000c4 9001 STR r0,[sp,#4] +0000c6 2100 MOVS r1,#0 +0000c8 2029 MOVS r0,#0x29 +0000ca f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1182 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x04,0x80,0x19,0x2d,0x05); +0000ce 2032 MOVS r0,#0x32 +0000d0 f7fffffe BL delayUs +0000d4 2005 MOVS r0,#5 +0000d6 212d MOVS r1,#0x2d +0000d8 2219 MOVS r2,#0x19 +0000da 2380 MOVS r3,#0x80 +0000dc 9200 STR r2,[sp,#0] +0000de 9101 STR r1,[sp,#4] +0000e0 9002 STR r0,[sp,#8] +0000e2 2204 MOVS r2,#4 +0000e4 2100 MOVS r1,#0 +0000e6 2029 MOVS r0,#0x29 +0000e8 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1183 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x09); +0000ec 2032 MOVS r0,#0x32 +0000ee f7fffffe BL delayUs +0000f2 2009 MOVS r0,#9 +0000f4 215a MOVS r1,#0x5a +0000f6 2341 MOVS r3,#0x41 +0000f8 2203 MOVS r2,#3 +0000fa 9100 STR r1,[sp,#0] +0000fc 9001 STR r0,[sp,#4] +0000fe 2100 MOVS r1,#0 +000100 2029 MOVS r0,#0x29 +000102 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1184 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x5a,0x51,0xb5,0x2a,0x6c,0xe5,0x4a,0x01,0x40,0x62,0x0f,0x82,0x20,0x08,0xf0,0xb7); +000106 2032 MOVS r0,#0x32 +000108 f7fffffe BL delayUs +00010c 20b7 MOVS r0,#0xb7 +00010e 21f0 MOVS r1,#0xf0 +000110 2208 MOVS r2,#8 +000112 2320 MOVS r3,#0x20 +000114 930c STR r3,[sp,#0x30] +000116 920d STR r2,[sp,#0x34] +000118 910e STR r1,[sp,#0x38] +00011a 900f STR r0,[sp,#0x3c] +00011c 2082 MOVS r0,#0x82 +00011e 210f MOVS r1,#0xf +000120 2262 MOVS r2,#0x62 +000122 2340 MOVS r3,#0x40 +000124 9308 STR r3,[sp,#0x20] +000126 9209 STR r2,[sp,#0x24] +000128 910a STR r1,[sp,#0x28] +00012a 900b STR r0,[sp,#0x2c] +00012c 2001 MOVS r0,#1 +00012e 214a MOVS r1,#0x4a +000130 22e5 MOVS r2,#0xe5 +000132 236c MOVS r3,#0x6c +000134 9304 STR r3,[sp,#0x10] +000136 9205 STR r2,[sp,#0x14] +000138 9106 STR r1,[sp,#0x18] +00013a 9007 STR r0,[sp,#0x1c] +00013c 202a MOVS r0,#0x2a +00013e 21b5 MOVS r1,#0xb5 +000140 2251 MOVS r2,#0x51 +000142 235a MOVS r3,#0x5a +000144 9300 STR r3,[sp,#0] +000146 9201 STR r2,[sp,#4] +000148 9102 STR r1,[sp,#8] +00014a 9003 STR r0,[sp,#0xc] +00014c 2380 MOVS r3,#0x80 +00014e 2211 MOVS r2,#0x11 +000150 2100 MOVS r1,#0 +000152 2029 MOVS r0,#0x29 +000154 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1185 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x00,0x24,0x42,0x0a,0xe3,0x91,0xa4,0xf0,0xc2,0xb9,0x6b,0x20,0x19,0xa1,0x26,0x00); +000158 2032 MOVS r0,#0x32 +00015a f7fffffe BL delayUs +00015e 2000 MOVS r0,#0 +000160 2126 MOVS r1,#0x26 +000162 22a1 MOVS r2,#0xa1 +000164 2319 MOVS r3,#0x19 +000166 930c STR r3,[sp,#0x30] +000168 920d STR r2,[sp,#0x34] +00016a 910e STR r1,[sp,#0x38] +00016c 900f STR r0,[sp,#0x3c] +00016e 2020 MOVS r0,#0x20 +000170 216b MOVS r1,#0x6b +000172 22b9 MOVS r2,#0xb9 +000174 23c2 MOVS r3,#0xc2 +000176 9308 STR r3,[sp,#0x20] +000178 9209 STR r2,[sp,#0x24] +00017a 910a STR r1,[sp,#0x28] +00017c 900b STR r0,[sp,#0x2c] +00017e 20f0 MOVS r0,#0xf0 +000180 21a4 MOVS r1,#0xa4 +000182 2291 MOVS r2,#0x91 +000184 23e3 MOVS r3,#0xe3 +000186 9304 STR r3,[sp,#0x10] +000188 9205 STR r2,[sp,#0x14] +00018a 9106 STR r1,[sp,#0x18] +00018c 9007 STR r0,[sp,#0x1c] +00018e 200a MOVS r0,#0xa +000190 2142 MOVS r1,#0x42 +000192 2224 MOVS r2,#0x24 +000194 2300 MOVS r3,#0 +000196 9300 STR r3,[sp,#0] +000198 9201 STR r2,[sp,#4] +00019a 9102 STR r1,[sp,#8] +00019c 9003 STR r0,[sp,#0xc] +00019e 2390 MOVS r3,#0x90 +0001a0 2211 MOVS r2,#0x11 +0001a2 2100 MOVS r1,#0 +0001a4 2029 MOVS r0,#0x29 +0001a6 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1186 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xa0,0x51,0x55,0x55,0x00,0xa0,0x4d,0x06,0x11,0x0d,0x60,0x5a,0xff,0xff,0x03,0xa5,0xe6); +0001aa 2032 MOVS r0,#0x32 +0001ac f7fffffe BL delayUs +0001b0 20e6 MOVS r0,#0xe6 +0001b2 21a5 MOVS r1,#0xa5 +0001b4 2203 MOVS r2,#3 +0001b6 23ff MOVS r3,#0xff +0001b8 930c STR r3,[sp,#0x30] +0001ba 920d STR r2,[sp,#0x34] +0001bc 910e STR r1,[sp,#0x38] +0001be 900f STR r0,[sp,#0x3c] +0001c0 4618 MOV r0,r3 +0001c2 215a MOVS r1,#0x5a +0001c4 2260 MOVS r2,#0x60 +0001c6 230d MOVS r3,#0xd +0001c8 9308 STR r3,[sp,#0x20] +0001ca 9209 STR r2,[sp,#0x24] +0001cc 910a STR r1,[sp,#0x28] +0001ce 900b STR r0,[sp,#0x2c] +0001d0 2011 MOVS r0,#0x11 +0001d2 2106 MOVS r1,#6 +0001d4 224d MOVS r2,#0x4d +0001d6 23a0 MOVS r3,#0xa0 +0001d8 9304 STR r3,[sp,#0x10] +0001da 9205 STR r2,[sp,#0x14] +0001dc 9106 STR r1,[sp,#0x18] +0001de 9007 STR r0,[sp,#0x1c] +0001e0 2000 MOVS r0,#0 +0001e2 2155 MOVS r1,#0x55 +0001e4 2351 MOVS r3,#0x51 +0001e6 9101 STR r1,[sp,#4] +0001e8 9300 STR r3,[sp,#0] +0001ea 9102 STR r1,[sp,#8] +0001ec 9003 STR r0,[sp,#0xc] +0001ee 23a0 MOVS r3,#0xa0 +0001f0 2211 MOVS r2,#0x11 +0001f2 4601 MOV r1,r0 +0001f4 2029 MOVS r0,#0x29 +0001f6 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1187 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xb0,0x08,0xc9,0x16,0x64,0x0b,0x00,0x00,0x11,0x07,0x60,0x00,0xff,0xff,0x03,0xff,0x34); +0001fa 2032 MOVS r0,#0x32 +0001fc f7fffffe BL delayUs +000200 2034 MOVS r0,#0x34 +000202 21ff MOVS r1,#0xff +000204 2203 MOVS r2,#3 +000206 910c STR r1,[sp,#0x30] +000208 920d STR r2,[sp,#0x34] +00020a 910e STR r1,[sp,#0x38] +00020c 900f STR r0,[sp,#0x3c] +00020e 4608 MOV r0,r1 +000210 2100 MOVS r1,#0 +000212 2260 MOVS r2,#0x60 +000214 2307 MOVS r3,#7 +000216 9308 STR r3,[sp,#0x20] +000218 9209 STR r2,[sp,#0x24] +00021a 910a STR r1,[sp,#0x28] +00021c 900b STR r0,[sp,#0x2c] +00021e 2011 MOVS r0,#0x11 +000220 230b MOVS r3,#0xb +000222 9105 STR r1,[sp,#0x14] +000224 9304 STR r3,[sp,#0x10] +000226 9106 STR r1,[sp,#0x18] +000228 9007 STR r0,[sp,#0x1c] +00022a 2064 MOVS r0,#0x64 +00022c 2116 MOVS r1,#0x16 +00022e 22c9 MOVS r2,#0xc9 +000230 2308 MOVS r3,#8 +000232 9300 STR r3,[sp,#0] +000234 9201 STR r2,[sp,#4] +000236 9102 STR r1,[sp,#8] +000238 9003 STR r0,[sp,#0xc] +00023a 23b0 MOVS r3,#0xb0 +00023c 2211 MOVS r2,#0x11 +00023e 2100 MOVS r1,#0 +000240 2029 MOVS r0,#0x29 +000242 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1188 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x09,0xc0,0x0c,0x3f,0x1f,0x9f,0x0f,0x00,0x08,0x00); +000246 2032 MOVS r0,#0x32 +000248 f7fffffe BL delayUs +00024c 2000 MOVS r0,#0 +00024e 2108 MOVS r1,#8 +000250 230f MOVS r3,#0xf +000252 9005 STR r0,[sp,#0x14] +000254 9304 STR r3,[sp,#0x10] +000256 9106 STR r1,[sp,#0x18] +000258 9007 STR r0,[sp,#0x1c] +00025a 209f MOVS r0,#0x9f +00025c 211f MOVS r1,#0x1f +00025e 223f MOVS r2,#0x3f +000260 230c MOVS r3,#0xc +000262 9300 STR r3,[sp,#0] +000264 9201 STR r2,[sp,#4] +000266 9102 STR r1,[sp,#8] +000268 9003 STR r0,[sp,#0xc] +00026a 23c0 MOVS r3,#0xc0 +00026c 2209 MOVS r2,#9 +00026e 2100 MOVS r1,#0 +000270 2029 MOVS r0,#0x29 +000272 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1189 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x0a); +000276 2032 MOVS r0,#0x32 +000278 f7fffffe BL delayUs +00027c 200a MOVS r0,#0xa +00027e 215a MOVS r1,#0x5a +000280 2341 MOVS r3,#0x41 +000282 2203 MOVS r2,#3 +000284 9100 STR r1,[sp,#0] +000286 9001 STR r0,[sp,#4] +000288 2100 MOVS r1,#0 +00028a 2029 MOVS r0,#0x29 +00028c f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1190 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0xff,0xb6,0x6d,0x03,0x00,0x14,0x23,0x36,0x49,0x5c,0x63,0x98,0x83,0xbe,0x76,0x41); +000290 2032 MOVS r0,#0x32 +000292 f7fffffe BL delayUs +000296 2041 MOVS r0,#0x41 +000298 2176 MOVS r1,#0x76 +00029a 22be MOVS r2,#0xbe +00029c 2383 MOVS r3,#0x83 +00029e 930c STR r3,[sp,#0x30] +0002a0 920d STR r2,[sp,#0x34] +0002a2 910e STR r1,[sp,#0x38] +0002a4 900f STR r0,[sp,#0x3c] +0002a6 2098 MOVS r0,#0x98 +0002a8 2163 MOVS r1,#0x63 +0002aa 225c MOVS r2,#0x5c +0002ac 2349 MOVS r3,#0x49 +0002ae 9308 STR r3,[sp,#0x20] +0002b0 9209 STR r2,[sp,#0x24] +0002b2 910a STR r1,[sp,#0x28] +0002b4 900b STR r0,[sp,#0x2c] +0002b6 2036 MOVS r0,#0x36 +0002b8 2123 MOVS r1,#0x23 +0002ba 2214 MOVS r2,#0x14 +0002bc 2300 MOVS r3,#0 +0002be 9304 STR r3,[sp,#0x10] +0002c0 9205 STR r2,[sp,#0x14] +0002c2 9106 STR r1,[sp,#0x18] +0002c4 9007 STR r0,[sp,#0x1c] +0002c6 2003 MOVS r0,#3 +0002c8 216d MOVS r1,#0x6d +0002ca 22b6 MOVS r2,#0xb6 +0002cc 23ff MOVS r3,#0xff +0002ce 9300 STR r3,[sp,#0] +0002d0 9201 STR r2,[sp,#4] +0002d2 9102 STR r1,[sp,#8] +0002d4 9003 STR r0,[sp,#0xc] +0002d6 2380 MOVS r3,#0x80 +0002d8 2211 MOVS r2,#0x11 +0002da 2100 MOVS r1,#0 +0002dc 2029 MOVS r0,#0x29 +0002de f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1191 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x7b,0x50,0x4d,0x3e,0x2e,0x1f,0x10,0x0b,0x00,0x14,0x23,0x36,0x49,0x5c,0x63,0x98); +0002e2 2032 MOVS r0,#0x32 +0002e4 f7fffffe BL delayUs +0002e8 2098 MOVS r0,#0x98 +0002ea 2163 MOVS r1,#0x63 +0002ec 225c MOVS r2,#0x5c +0002ee 2349 MOVS r3,#0x49 +0002f0 930c STR r3,[sp,#0x30] +0002f2 920d STR r2,[sp,#0x34] +0002f4 910e STR r1,[sp,#0x38] +0002f6 900f STR r0,[sp,#0x3c] +0002f8 2036 MOVS r0,#0x36 +0002fa 2123 MOVS r1,#0x23 +0002fc 2214 MOVS r2,#0x14 +0002fe 2300 MOVS r3,#0 +000300 9308 STR r3,[sp,#0x20] +000302 9209 STR r2,[sp,#0x24] +000304 910a STR r1,[sp,#0x28] +000306 900b STR r0,[sp,#0x2c] +000308 200b MOVS r0,#0xb +00030a 2110 MOVS r1,#0x10 +00030c 221f MOVS r2,#0x1f +00030e 232e MOVS r3,#0x2e +000310 9304 STR r3,[sp,#0x10] +000312 9205 STR r2,[sp,#0x14] +000314 9106 STR r1,[sp,#0x18] +000316 9007 STR r0,[sp,#0x1c] +000318 203e MOVS r0,#0x3e +00031a 214d MOVS r1,#0x4d +00031c 2250 MOVS r2,#0x50 +00031e 237b MOVS r3,#0x7b +000320 9300 STR r3,[sp,#0] +000322 9201 STR r2,[sp,#4] +000324 9102 STR r1,[sp,#8] +000326 9003 STR r0,[sp,#0xc] +000328 2390 MOVS r3,#0x90 +00032a 2211 MOVS r2,#0x11 +00032c 2100 MOVS r1,#0 +00032e 2029 MOVS r0,#0x29 +000330 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1192 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x0e,0xa0,0x83,0xbe,0x76,0x41,0x7b,0x50,0x4d,0x3e,0x2e,0x1f,0x10,0x0b,0x00); +000334 2032 MOVS r0,#0x32 +000336 f7fffffe BL delayUs +00033a 2000 MOVS r0,#0 +00033c 210b MOVS r1,#0xb +00033e 2210 MOVS r2,#0x10 +000340 231f MOVS r3,#0x1f +000342 9309 STR r3,[sp,#0x24] +000344 920a STR r2,[sp,#0x28] +000346 910b STR r1,[sp,#0x2c] +000348 900c STR r0,[sp,#0x30] +00034a 202e MOVS r0,#0x2e +00034c 213e MOVS r1,#0x3e +00034e 224d MOVS r2,#0x4d +000350 2350 MOVS r3,#0x50 +000352 9305 STR r3,[sp,#0x14] +000354 9206 STR r2,[sp,#0x18] +000356 9107 STR r1,[sp,#0x1c] +000358 9008 STR r0,[sp,#0x20] +00035a 207b MOVS r0,#0x7b +00035c 2141 MOVS r1,#0x41 +00035e 2276 MOVS r2,#0x76 +000360 23be MOVS r3,#0xbe +000362 9301 STR r3,[sp,#4] +000364 9202 STR r2,[sp,#8] +000366 9103 STR r1,[sp,#0xc] +000368 9004 STR r0,[sp,#0x10] +00036a 2083 MOVS r0,#0x83 +00036c 23a0 MOVS r3,#0xa0 +00036e 220e MOVS r2,#0xe +000370 2100 MOVS r1,#0 +000372 9000 STR r0,[sp,#0] +000374 2029 MOVS r0,#0x29 +000376 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1193 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x0b); +00037a 2032 MOVS r0,#0x32 +00037c f7fffffe BL delayUs +000380 200b MOVS r0,#0xb +000382 215a MOVS r1,#0x5a +000384 2341 MOVS r3,#0x41 +000386 2203 MOVS r2,#3 +000388 9100 STR r1,[sp,#0] +00038a 9001 STR r0,[sp,#4] +00038c 2100 MOVS r1,#0 +00038e 2029 MOVS r0,#0x29 +000390 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1194 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x00,0x00,0x20,0x44,0x08,0x00,0x60,0x47,0x00,0x00,0x10,0x22,0x04,0x00,0xb0,0x23); +000394 2032 MOVS r0,#0x32 +000396 f7fffffe BL delayUs +00039a 2023 MOVS r0,#0x23 +00039c 21b0 MOVS r1,#0xb0 +00039e 2200 MOVS r2,#0 +0003a0 2304 MOVS r3,#4 +0003a2 930c STR r3,[sp,#0x30] +0003a4 920d STR r2,[sp,#0x34] +0003a6 910e STR r1,[sp,#0x38] +0003a8 900f STR r0,[sp,#0x3c] +0003aa 2022 MOVS r0,#0x22 +0003ac 2110 MOVS r1,#0x10 +0003ae 9208 STR r2,[sp,#0x20] +0003b0 9209 STR r2,[sp,#0x24] +0003b2 910a STR r1,[sp,#0x28] +0003b4 900b STR r0,[sp,#0x2c] +0003b6 2047 MOVS r0,#0x47 +0003b8 2160 MOVS r1,#0x60 +0003ba 2308 MOVS r3,#8 +0003bc 9304 STR r3,[sp,#0x10] +0003be 9205 STR r2,[sp,#0x14] +0003c0 9106 STR r1,[sp,#0x18] +0003c2 9007 STR r0,[sp,#0x1c] +0003c4 2044 MOVS r0,#0x44 +0003c6 2120 MOVS r1,#0x20 +0003c8 9200 STR r2,[sp,#0] +0003ca 2380 MOVS r3,#0x80 +0003cc 9201 STR r2,[sp,#4] +0003ce 9102 STR r1,[sp,#8] +0003d0 9003 STR r0,[sp,#0xc] +0003d2 2211 MOVS r2,#0x11 +0003d4 2100 MOVS r1,#0 +0003d6 2029 MOVS r0,#0x29 +0003d8 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1195 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x90,0x15,0x00); +0003dc 2032 MOVS r0,#0x32 +0003de f7fffffe BL delayUs +0003e2 2000 MOVS r0,#0 +0003e4 2115 MOVS r1,#0x15 +0003e6 2390 MOVS r3,#0x90 +0003e8 2203 MOVS r2,#3 +0003ea 9100 STR r1,[sp,#0] +0003ec 9001 STR r0,[sp,#4] +0003ee 4601 MOV r1,r0 +0003f0 2029 MOVS r0,#0x29 +0003f2 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1196 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x0c); +0003f6 2032 MOVS r0,#0x32 +0003f8 f7fffffe BL delayUs +0003fc 200c MOVS r0,#0xc +0003fe 215a MOVS r1,#0x5a +000400 2341 MOVS r3,#0x41 +000402 2203 MOVS r2,#3 +000404 9100 STR r1,[sp,#0] +000406 9001 STR r0,[sp,#4] +000408 2100 MOVS r1,#0 +00040a 2029 MOVS r0,#0x29 +00040c e00e B |L12.1068| +00040e 0000 DCW 0x0000 + |L12.1040| +000410 4d693853 DCB "Mi8SE",0 +000414 4500 +000416 00 DCB 0 +000417 00 DCB 0 + |L12.1048| +000418 5b25735d DCB "[%s] (%04d) Mi8SE\n",0 +00041c 20282530 +000420 34642920 +000424 4d693853 +000428 450a00 +00042b 00 DCB 0 + |L12.1068| +00042c f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1197 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0xfa,0x68,0x68,0x01,0xb2,0x75,0xb0,0x04,0x00,0x60,0x15,0x00,0x50,0x15,0x56,0x51); +000430 2032 MOVS r0,#0x32 +000432 f7fffffe BL delayUs +000436 2051 MOVS r0,#0x51 +000438 2156 MOVS r1,#0x56 +00043a 2215 MOVS r2,#0x15 +00043c 2350 MOVS r3,#0x50 +00043e 930c STR r3,[sp,#0x30] +000440 920d STR r2,[sp,#0x34] +000442 910e STR r1,[sp,#0x38] +000444 900f STR r0,[sp,#0x3c] +000446 2000 MOVS r0,#0 +000448 4611 MOV r1,r2 +00044a 2260 MOVS r2,#0x60 +00044c 9008 STR r0,[sp,#0x20] +00044e 9209 STR r2,[sp,#0x24] +000450 910a STR r1,[sp,#0x28] +000452 900b STR r0,[sp,#0x2c] +000454 2004 MOVS r0,#4 +000456 21b0 MOVS r1,#0xb0 +000458 2275 MOVS r2,#0x75 +00045a 23b2 MOVS r3,#0xb2 +00045c 9304 STR r3,[sp,#0x10] +00045e 9205 STR r2,[sp,#0x14] +000460 9106 STR r1,[sp,#0x18] +000462 9007 STR r0,[sp,#0x1c] +000464 2001 MOVS r0,#1 +000466 2168 MOVS r1,#0x68 +000468 23fa MOVS r3,#0xfa +00046a 9101 STR r1,[sp,#4] +00046c 9300 STR r3,[sp,#0] +00046e 9102 STR r1,[sp,#8] +000470 9003 STR r0,[sp,#0xc] +000472 2380 MOVS r3,#0x80 +000474 2211 MOVS r2,#0x11 +000476 2100 MOVS r1,#0 +000478 2029 MOVS r0,#0x29 +00047a f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1198 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x15,0x55,0x61,0x15,0x00,0x60,0x15,0x00,0x50,0x15,0x56,0x51,0x15,0x55,0x61,0x95); +00047e 2032 MOVS r0,#0x32 +000480 f7fffffe BL delayUs +000484 2095 MOVS r0,#0x95 +000486 2161 MOVS r1,#0x61 +000488 2255 MOVS r2,#0x55 +00048a 2315 MOVS r3,#0x15 +00048c 930c STR r3,[sp,#0x30] +00048e 920d STR r2,[sp,#0x34] +000490 910e STR r1,[sp,#0x38] +000492 900f STR r0,[sp,#0x3c] +000494 2051 MOVS r0,#0x51 +000496 2156 MOVS r1,#0x56 +000498 461a MOV r2,r3 +00049a 2350 MOVS r3,#0x50 +00049c 9308 STR r3,[sp,#0x20] +00049e 9209 STR r2,[sp,#0x24] +0004a0 910a STR r1,[sp,#0x28] +0004a2 900b STR r0,[sp,#0x2c] +0004a4 2000 MOVS r0,#0 +0004a6 2115 MOVS r1,#0x15 +0004a8 2260 MOVS r2,#0x60 +0004aa 9004 STR r0,[sp,#0x10] +0004ac 9205 STR r2,[sp,#0x14] +0004ae 9106 STR r1,[sp,#0x18] +0004b0 9007 STR r0,[sp,#0x1c] +0004b2 4608 MOV r0,r1 +0004b4 2161 MOVS r1,#0x61 +0004b6 2255 MOVS r2,#0x55 +0004b8 2315 MOVS r3,#0x15 +0004ba 9300 STR r3,[sp,#0] +0004bc 9201 STR r2,[sp,#4] +0004be 9102 STR r1,[sp,#8] +0004c0 9003 STR r0,[sp,#0xc] +0004c2 2390 MOVS r3,#0x90 +0004c4 2211 MOVS r2,#0x11 +0004c6 2100 MOVS r1,#0 +0004c8 2029 MOVS r0,#0x29 +0004ca f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1199 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xa0,0xab,0x18,0x00,0x05,0x00,0x05,0x00,0x05,0x80,0x4c,0x29,0x84,0x52,0x01,0x09,0x00); +0004ce 2032 MOVS r0,#0x32 +0004d0 f7fffffe BL delayUs +0004d4 2000 MOVS r0,#0 +0004d6 2109 MOVS r1,#9 +0004d8 2201 MOVS r2,#1 +0004da 2352 MOVS r3,#0x52 +0004dc 930c STR r3,[sp,#0x30] +0004de 920d STR r2,[sp,#0x34] +0004e0 910e STR r1,[sp,#0x38] +0004e2 900f STR r0,[sp,#0x3c] +0004e4 2084 MOVS r0,#0x84 +0004e6 2129 MOVS r1,#0x29 +0004e8 224c MOVS r2,#0x4c +0004ea 2380 MOVS r3,#0x80 +0004ec 9308 STR r3,[sp,#0x20] +0004ee 9209 STR r2,[sp,#0x24] +0004f0 910a STR r1,[sp,#0x28] +0004f2 900b STR r0,[sp,#0x2c] +0004f4 2005 MOVS r0,#5 +0004f6 2100 MOVS r1,#0 +0004f8 9104 STR r1,[sp,#0x10] +0004fa 9005 STR r0,[sp,#0x14] +0004fc 2218 MOVS r2,#0x18 +0004fe 23ab MOVS r3,#0xab +000500 9106 STR r1,[sp,#0x18] +000502 9007 STR r0,[sp,#0x1c] +000504 9300 STR r3,[sp,#0] +000506 9201 STR r2,[sp,#4] +000508 9102 STR r1,[sp,#8] +00050a 9003 STR r0,[sp,#0xc] +00050c 23a0 MOVS r3,#0xa0 +00050e 2211 MOVS r2,#0x11 +000510 2029 MOVS r0,#0x29 +000512 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1200 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0xb0,0x00,0x00); +000516 2032 MOVS r0,#0x32 +000518 f7fffffe BL delayUs +00051c 2000 MOVS r0,#0 +00051e 9000 STR r0,[sp,#0] +000520 23b0 MOVS r3,#0xb0 +000522 2203 MOVS r2,#3 +000524 4601 MOV r1,r0 +000526 9001 STR r0,[sp,#4] +000528 2029 MOVS r0,#0x29 +00052a f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1201 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x0d); +00052e 2032 MOVS r0,#0x32 +000530 f7fffffe BL delayUs +000534 200d MOVS r0,#0xd +000536 215a MOVS r1,#0x5a +000538 2341 MOVS r3,#0x41 +00053a 2203 MOVS r2,#3 +00053c 9100 STR r1,[sp,#0] +00053e 9001 STR r0,[sp,#4] +000540 2100 MOVS r1,#0 +000542 2029 MOVS r0,#0x29 +000544 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1202 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x08,0x80,0xf0,0xb1,0x71,0xef,0x4b,0xc0,0x80); +000548 2032 MOVS r0,#0x32 +00054a f7fffffe BL delayUs +00054e 2080 MOVS r0,#0x80 +000550 21c0 MOVS r1,#0xc0 +000552 224b MOVS r2,#0x4b +000554 23ef MOVS r3,#0xef +000556 9303 STR r3,[sp,#0xc] +000558 9204 STR r2,[sp,#0x10] +00055a 9105 STR r1,[sp,#0x14] +00055c 9006 STR r0,[sp,#0x18] +00055e 2071 MOVS r0,#0x71 +000560 21b1 MOVS r1,#0xb1 +000562 22f0 MOVS r2,#0xf0 +000564 2380 MOVS r3,#0x80 +000566 9200 STR r2,[sp,#0] +000568 9101 STR r1,[sp,#4] +00056a 9002 STR r0,[sp,#8] +00056c 2208 MOVS r2,#8 +00056e 2100 MOVS r1,#0 +000570 2029 MOVS r0,#0x29 +000572 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1203 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x0e); +000576 2032 MOVS r0,#0x32 +000578 f7fffffe BL delayUs +00057c 200e MOVS r0,#0xe +00057e 215a MOVS r1,#0x5a +000580 2341 MOVS r3,#0x41 +000582 2203 MOVS r2,#3 +000584 9100 STR r1,[sp,#0] +000586 9001 STR r0,[sp,#4] +000588 2100 MOVS r1,#0 +00058a 2029 MOVS r0,#0x29 +00058c f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1204 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x09,0x80,0xff,0x01,0x55,0x55,0x23,0x88,0x88,0x1c); +000590 2032 MOVS r0,#0x32 +000592 f7fffffe BL delayUs +000596 201c MOVS r0,#0x1c +000598 2188 MOVS r1,#0x88 +00059a 2323 MOVS r3,#0x23 +00059c 9105 STR r1,[sp,#0x14] +00059e 9304 STR r3,[sp,#0x10] +0005a0 9106 STR r1,[sp,#0x18] +0005a2 9007 STR r0,[sp,#0x1c] +0005a4 2055 MOVS r0,#0x55 +0005a6 2201 MOVS r2,#1 +0005a8 23ff MOVS r3,#0xff +0005aa 9002 STR r0,[sp,#8] +0005ac 9300 STR r3,[sp,#0] +0005ae 9201 STR r2,[sp,#4] +0005b0 9003 STR r0,[sp,#0xc] +0005b2 2380 MOVS r3,#0x80 +0005b4 2209 MOVS r2,#9 +0005b6 2100 MOVS r1,#0 +0005b8 2029 MOVS r0,#0x29 +0005ba f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1205 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x0f); +0005be 2032 MOVS r0,#0x32 +0005c0 f7fffffe BL delayUs +0005c4 200f MOVS r0,#0xf +0005c6 215a MOVS r1,#0x5a +0005c8 2341 MOVS r3,#0x41 +0005ca 2203 MOVS r2,#3 +0005cc 9100 STR r1,[sp,#0] +0005ce 9001 STR r0,[sp,#4] +0005d0 2100 MOVS r1,#0 +0005d2 2029 MOVS r0,#0x29 +0005d4 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1206 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x14,0x40,0x6f,0xc0,0x12,0x08,0x64,0x08,0x52,0x31,0x58,0x49,0x03,0x52,0x4c,0x4c); +0005d8 2032 MOVS r0,#0x32 +0005da f7fffffe BL delayUs +0005de 204c MOVS r0,#0x4c +0005e0 2252 MOVS r2,#0x52 +0005e2 2303 MOVS r3,#3 +0005e4 900e STR r0,[sp,#0x38] +0005e6 930c STR r3,[sp,#0x30] +0005e8 920d STR r2,[sp,#0x34] +0005ea 900f STR r0,[sp,#0x3c] +0005ec 2049 MOVS r0,#0x49 +0005ee 2158 MOVS r1,#0x58 +0005f0 2231 MOVS r2,#0x31 +0005f2 2352 MOVS r3,#0x52 +0005f4 9308 STR r3,[sp,#0x20] +0005f6 9209 STR r2,[sp,#0x24] +0005f8 910a STR r1,[sp,#0x28] +0005fa 900b STR r0,[sp,#0x2c] +0005fc 2008 MOVS r0,#8 +0005fe 2164 MOVS r1,#0x64 +000600 2312 MOVS r3,#0x12 +000602 9005 STR r0,[sp,#0x14] +000604 9304 STR r3,[sp,#0x10] +000606 9106 STR r1,[sp,#0x18] +000608 9007 STR r0,[sp,#0x1c] +00060a 20c0 MOVS r0,#0xc0 +00060c 216f MOVS r1,#0x6f +00060e 2240 MOVS r2,#0x40 +000610 2314 MOVS r3,#0x14 +000612 9300 STR r3,[sp,#0] +000614 9201 STR r2,[sp,#4] +000616 9102 STR r1,[sp,#8] +000618 9003 STR r0,[sp,#0xc] +00061a 2380 MOVS r3,#0x80 +00061c 2211 MOVS r2,#0x11 +00061e 2100 MOVS r1,#0 +000620 2029 MOVS r0,#0x29 +000622 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1207 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x68,0x68,0x68,0x4c,0x4c,0x7c,0x14,0x00,0x20,0x06,0xc2,0x00,0x04,0x06,0x0c,0x00); +000626 2032 MOVS r0,#0x32 +000628 f7fffffe BL delayUs +00062c 2000 MOVS r0,#0 +00062e 210c MOVS r1,#0xc +000630 2206 MOVS r2,#6 +000632 2304 MOVS r3,#4 +000634 930c STR r3,[sp,#0x30] +000636 920d STR r2,[sp,#0x34] +000638 910e STR r1,[sp,#0x38] +00063a 900f STR r0,[sp,#0x3c] +00063c 21c2 MOVS r1,#0xc2 +00063e 2320 MOVS r3,#0x20 +000640 9308 STR r3,[sp,#0x20] +000642 9209 STR r2,[sp,#0x24] +000644 910a STR r1,[sp,#0x28] +000646 900b STR r0,[sp,#0x2c] +000648 2114 MOVS r1,#0x14 +00064a 227c MOVS r2,#0x7c +00064c 234c MOVS r3,#0x4c +00064e 9304 STR r3,[sp,#0x10] +000650 9205 STR r2,[sp,#0x14] +000652 9106 STR r1,[sp,#0x18] +000654 9007 STR r0,[sp,#0x1c] +000656 2168 MOVS r1,#0x68 +000658 9100 STR r1,[sp,#0] +00065a 9101 STR r1,[sp,#4] +00065c 9303 STR r3,[sp,#0xc] +00065e 9102 STR r1,[sp,#8] +000660 2390 MOVS r3,#0x90 +000662 2211 MOVS r2,#0x11 +000664 2100 MOVS r1,#0 +000666 2029 MOVS r0,#0x29 +000668 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1208 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x05,0xa0,0x00,0x92,0x00,0x00); +00066c 2032 MOVS r0,#0x32 +00066e f7fffffe BL delayUs +000672 2000 MOVS r0,#0 +000674 2292 MOVS r2,#0x92 +000676 9000 STR r0,[sp,#0] +000678 9002 STR r0,[sp,#8] +00067a 23a0 MOVS r3,#0xa0 +00067c 9201 STR r2,[sp,#4] +00067e 9003 STR r0,[sp,#0xc] +000680 2205 MOVS r2,#5 +000682 4601 MOV r1,r0 +000684 2029 MOVS r0,#0x29 +000686 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1209 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x10); +00068a 2032 MOVS r0,#0x32 +00068c f7fffffe BL delayUs +000690 2010 MOVS r0,#0x10 +000692 215a MOVS r1,#0x5a +000694 2341 MOVS r3,#0x41 +000696 2203 MOVS r2,#3 +000698 9100 STR r1,[sp,#0] +00069a 9001 STR r0,[sp,#4] +00069c 2100 MOVS r1,#0 +00069e 2029 MOVS r0,#0x29 +0006a0 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1210 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x00,0x00,0x03,0xe7,0x1f,0x17,0x10,0x48,0x80,0xaa,0xd0,0x18,0x30,0x88,0x41,0x8a); +0006a4 2032 MOVS r0,#0x32 +0006a6 f7fffffe BL delayUs +0006aa 208a MOVS r0,#0x8a +0006ac 2141 MOVS r1,#0x41 +0006ae 2288 MOVS r2,#0x88 +0006b0 2330 MOVS r3,#0x30 +0006b2 930c STR r3,[sp,#0x30] +0006b4 920d STR r2,[sp,#0x34] +0006b6 910e STR r1,[sp,#0x38] +0006b8 900f STR r0,[sp,#0x3c] +0006ba 2018 MOVS r0,#0x18 +0006bc 21d0 MOVS r1,#0xd0 +0006be 22aa MOVS r2,#0xaa +0006c0 2380 MOVS r3,#0x80 +0006c2 9308 STR r3,[sp,#0x20] +0006c4 9209 STR r2,[sp,#0x24] +0006c6 910a STR r1,[sp,#0x28] +0006c8 900b STR r0,[sp,#0x2c] +0006ca 2048 MOVS r0,#0x48 +0006cc 2110 MOVS r1,#0x10 +0006ce 2217 MOVS r2,#0x17 +0006d0 231f MOVS r3,#0x1f +0006d2 9304 STR r3,[sp,#0x10] +0006d4 9205 STR r2,[sp,#0x14] +0006d6 9106 STR r1,[sp,#0x18] +0006d8 9007 STR r0,[sp,#0x1c] +0006da 20e7 MOVS r0,#0xe7 +0006dc 2103 MOVS r1,#3 +0006de 2200 MOVS r2,#0 +0006e0 9200 STR r2,[sp,#0] +0006e2 2380 MOVS r3,#0x80 +0006e4 9201 STR r2,[sp,#4] +0006e6 9102 STR r1,[sp,#8] +0006e8 9003 STR r0,[sp,#0xc] +0006ea 2211 MOVS r2,#0x11 +0006ec 2100 MOVS r1,#0 +0006ee 2029 MOVS r0,#0x29 +0006f0 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1211 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x10,0x90,0x39,0x28,0xa9,0xc5,0x9a,0x7b,0xf0,0x07,0x7e,0xe0,0x07,0x7e,0x20,0x10,0x00); +0006f4 2032 MOVS r0,#0x32 +0006f6 f7fffffe BL delayUs +0006fa 2000 MOVS r0,#0 +0006fc 2110 MOVS r1,#0x10 +0006fe 2220 MOVS r2,#0x20 +000700 237e MOVS r3,#0x7e +000702 930b STR r3,[sp,#0x2c] +000704 920c STR r2,[sp,#0x30] +000706 910d STR r1,[sp,#0x34] +000708 900e STR r0,[sp,#0x38] +00070a 2007 MOVS r0,#7 +00070c 21e0 MOVS r1,#0xe0 +00070e 9007 STR r0,[sp,#0x1c] +000710 9308 STR r3,[sp,#0x20] +000712 9109 STR r1,[sp,#0x24] +000714 900a STR r0,[sp,#0x28] +000716 20f0 MOVS r0,#0xf0 +000718 217b MOVS r1,#0x7b +00071a 229a MOVS r2,#0x9a +00071c 23c5 MOVS r3,#0xc5 +00071e 9303 STR r3,[sp,#0xc] +000720 9204 STR r2,[sp,#0x10] +000722 9105 STR r1,[sp,#0x14] +000724 9006 STR r0,[sp,#0x18] +000726 20a9 MOVS r0,#0xa9 +000728 2128 MOVS r1,#0x28 +00072a 2239 MOVS r2,#0x39 +00072c 2390 MOVS r3,#0x90 +00072e 9200 STR r2,[sp,#0] +000730 9101 STR r1,[sp,#4] +000732 9002 STR r0,[sp,#8] +000734 2210 MOVS r2,#0x10 +000736 2100 MOVS r1,#0 +000738 2029 MOVS r0,#0x29 +00073a f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1212 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x11); +00073e 2032 MOVS r0,#0x32 +000740 f7fffffe BL delayUs +000744 2011 MOVS r0,#0x11 +000746 215a MOVS r1,#0x5a +000748 2341 MOVS r3,#0x41 +00074a 2203 MOVS r2,#3 +00074c 9100 STR r1,[sp,#0] +00074e 9001 STR r0,[sp,#4] +000750 2100 MOVS r1,#0 +000752 2029 MOVS r0,#0x29 +000754 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1213 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x49,0x77,0x03,0x40,0xca,0xf3,0xff,0x83,0x30,0x08,0xc4,0x06,0xa1,0xd8,0x24,0x18); +000758 2032 MOVS r0,#0x32 +00075a f7fffffe BL delayUs +00075e 2018 MOVS r0,#0x18 +000760 2124 MOVS r1,#0x24 +000762 22d8 MOVS r2,#0xd8 +000764 23a1 MOVS r3,#0xa1 +000766 930c STR r3,[sp,#0x30] +000768 920d STR r2,[sp,#0x34] +00076a 910e STR r1,[sp,#0x38] +00076c 900f STR r0,[sp,#0x3c] +00076e 2006 MOVS r0,#6 +000770 21c4 MOVS r1,#0xc4 +000772 2208 MOVS r2,#8 +000774 2330 MOVS r3,#0x30 +000776 9308 STR r3,[sp,#0x20] +000778 9209 STR r2,[sp,#0x24] +00077a 910a STR r1,[sp,#0x28] +00077c 900b STR r0,[sp,#0x2c] +00077e 2083 MOVS r0,#0x83 +000780 21ff MOVS r1,#0xff +000782 22f3 MOVS r2,#0xf3 +000784 23ca MOVS r3,#0xca +000786 9304 STR r3,[sp,#0x10] +000788 9205 STR r2,[sp,#0x14] +00078a 9106 STR r1,[sp,#0x18] +00078c 9007 STR r0,[sp,#0x1c] +00078e 2040 MOVS r0,#0x40 +000790 2103 MOVS r1,#3 +000792 2277 MOVS r2,#0x77 +000794 2349 MOVS r3,#0x49 +000796 9300 STR r3,[sp,#0] +000798 9201 STR r2,[sp,#4] +00079a 9102 STR r1,[sp,#8] +00079c 9003 STR r0,[sp,#0xc] +00079e 2380 MOVS r3,#0x80 +0007a0 2211 MOVS r2,#0x11 +0007a2 2100 MOVS r1,#0 +0007a4 2029 MOVS r0,#0x29 +0007a6 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1214 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x30,0xc6,0x66,0xc1,0x80,0x31,0x15,0xcb,0xe5,0xd2,0x68,0x6c,0x36,0x1d,0x04,0xc8); +0007aa 2032 MOVS r0,#0x32 +0007ac f7fffffe BL delayUs +0007b0 20c8 MOVS r0,#0xc8 +0007b2 2104 MOVS r1,#4 +0007b4 221d MOVS r2,#0x1d +0007b6 2336 MOVS r3,#0x36 +0007b8 930c STR r3,[sp,#0x30] +0007ba 920d STR r2,[sp,#0x34] +0007bc 910e STR r1,[sp,#0x38] +0007be 900f STR r0,[sp,#0x3c] +0007c0 206c MOVS r0,#0x6c +0007c2 2168 MOVS r1,#0x68 +0007c4 22d2 MOVS r2,#0xd2 +0007c6 23e5 MOVS r3,#0xe5 +0007c8 9308 STR r3,[sp,#0x20] +0007ca 9209 STR r2,[sp,#0x24] +0007cc 910a STR r1,[sp,#0x28] +0007ce 900b STR r0,[sp,#0x2c] +0007d0 20cb MOVS r0,#0xcb +0007d2 2115 MOVS r1,#0x15 +0007d4 2231 MOVS r2,#0x31 +0007d6 2380 MOVS r3,#0x80 +0007d8 9304 STR r3,[sp,#0x10] +0007da 9205 STR r2,[sp,#0x14] +0007dc 9106 STR r1,[sp,#0x18] +0007de 9007 STR r0,[sp,#0x1c] +0007e0 20c1 MOVS r0,#0xc1 +0007e2 2166 MOVS r1,#0x66 +0007e4 22c6 MOVS r2,#0xc6 +0007e6 2330 MOVS r3,#0x30 +0007e8 9300 STR r3,[sp,#0] +0007ea 9201 STR r2,[sp,#4] +0007ec 9102 STR r1,[sp,#8] +0007ee 9003 STR r0,[sp,#0xc] +0007f0 2390 MOVS r3,#0x90 +0007f2 2211 MOVS r2,#0x11 +0007f4 2100 MOVS r1,#0 +0007f6 2029 MOVS r0,#0x29 +0007f8 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1215 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xa0,0xb0,0xd9,0x88,0x60,0xb0,0x81,0x40,0x1a,0x1b,0x48,0x63,0x03,0xb9,0x00,0x1c,0x80); +0007fc 2032 MOVS r0,#0x32 +0007fe f7fffffe BL delayUs +000802 2080 MOVS r0,#0x80 +000804 211c MOVS r1,#0x1c +000806 2200 MOVS r2,#0 +000808 23b9 MOVS r3,#0xb9 +00080a 930c STR r3,[sp,#0x30] +00080c 920d STR r2,[sp,#0x34] +00080e 910e STR r1,[sp,#0x38] +000810 900f STR r0,[sp,#0x3c] +000812 2003 MOVS r0,#3 +000814 2163 MOVS r1,#0x63 +000816 2248 MOVS r2,#0x48 +000818 231b MOVS r3,#0x1b +00081a 9308 STR r3,[sp,#0x20] +00081c 9209 STR r2,[sp,#0x24] +00081e 910a STR r1,[sp,#0x28] +000820 900b STR r0,[sp,#0x2c] +000822 201a MOVS r0,#0x1a +000824 2140 MOVS r1,#0x40 +000826 2281 MOVS r2,#0x81 +000828 23b0 MOVS r3,#0xb0 +00082a 9304 STR r3,[sp,#0x10] +00082c 9205 STR r2,[sp,#0x14] +00082e 9106 STR r1,[sp,#0x18] +000830 9007 STR r0,[sp,#0x1c] +000832 2060 MOVS r0,#0x60 +000834 2188 MOVS r1,#0x88 +000836 22d9 MOVS r2,#0xd9 +000838 9300 STR r3,[sp,#0] +00083a 9201 STR r2,[sp,#4] +00083c 9102 STR r1,[sp,#8] +00083e 9003 STR r0,[sp,#0xc] +000840 23a0 MOVS r3,#0xa0 +000842 2211 MOVS r2,#0x11 +000844 2100 MOVS r1,#0 +000846 2029 MOVS r0,#0x29 +000848 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1216 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xb0,0x50,0x30,0x00,0xe0,0xe1,0x01,0x00,0x28,0x0e,0x06,0x43,0x55,0x55,0x55,0x55,0x55); +00084c 2032 MOVS r0,#0x32 +00084e f7fffffe BL delayUs +000852 2055 MOVS r0,#0x55 +000854 900c STR r0,[sp,#0x30] +000856 900d STR r0,[sp,#0x34] +000858 900e STR r0,[sp,#0x38] +00085a 2143 MOVS r1,#0x43 +00085c 2206 MOVS r2,#6 +00085e 230e MOVS r3,#0xe +000860 900f STR r0,[sp,#0x3c] +000862 9308 STR r3,[sp,#0x20] +000864 9209 STR r2,[sp,#0x24] +000866 910a STR r1,[sp,#0x28] +000868 900b STR r0,[sp,#0x2c] +00086a 2028 MOVS r0,#0x28 +00086c 2100 MOVS r1,#0 +00086e 2201 MOVS r2,#1 +000870 23e1 MOVS r3,#0xe1 +000872 9304 STR r3,[sp,#0x10] +000874 9205 STR r2,[sp,#0x14] +000876 9106 STR r1,[sp,#0x18] +000878 9007 STR r0,[sp,#0x1c] +00087a 20e0 MOVS r0,#0xe0 +00087c 2230 MOVS r2,#0x30 +00087e 2350 MOVS r3,#0x50 +000880 9300 STR r3,[sp,#0] +000882 9201 STR r2,[sp,#4] +000884 9102 STR r1,[sp,#8] +000886 9003 STR r0,[sp,#0xc] +000888 23b0 MOVS r3,#0xb0 +00088a 2211 MOVS r2,#0x11 +00088c 2029 MOVS r0,#0x29 +00088e f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1217 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xc0,0x95,0x88,0x88,0x88,0x88,0x88,0xc8,0x08,0x86,0xc6,0xe3,0x81,0x00,0x20,0x00,0x21); +000892 2032 MOVS r0,#0x32 +000894 f7fffffe BL delayUs +000898 2021 MOVS r0,#0x21 +00089a 2100 MOVS r1,#0 +00089c 2220 MOVS r2,#0x20 +00089e 910c STR r1,[sp,#0x30] +0008a0 920d STR r2,[sp,#0x34] +0008a2 910e STR r1,[sp,#0x38] +0008a4 900f STR r0,[sp,#0x3c] +0008a6 2081 MOVS r0,#0x81 +0008a8 21e3 MOVS r1,#0xe3 +0008aa 22c6 MOVS r2,#0xc6 +0008ac 2386 MOVS r3,#0x86 +0008ae 9308 STR r3,[sp,#0x20] +0008b0 9209 STR r2,[sp,#0x24] +0008b2 910a STR r1,[sp,#0x28] +0008b4 900b STR r0,[sp,#0x2c] +0008b6 2008 MOVS r0,#8 +0008b8 21c8 MOVS r1,#0xc8 +0008ba 2288 MOVS r2,#0x88 +0008bc 9204 STR r2,[sp,#0x10] +0008be 2395 MOVS r3,#0x95 +0008c0 9205 STR r2,[sp,#0x14] +0008c2 9201 STR r2,[sp,#4] +0008c4 9202 STR r2,[sp,#8] +0008c6 9300 STR r3,[sp,#0] +0008c8 9203 STR r2,[sp,#0xc] +0008ca 9106 STR r1,[sp,#0x18] +0008cc 9007 STR r0,[sp,#0x1c] +0008ce 23c0 MOVS r3,#0xc0 +0008d0 2211 MOVS r2,#0x11 +0008d2 2100 MOVS r1,#0 +0008d4 2029 MOVS r0,#0x29 +0008d6 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1218 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xd0,0x42,0x88,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x31,0x04,0x41,0x06,0x00,0x00,0x00); +0008da 2032 MOVS r0,#0x32 +0008dc f7fffffe BL delayUs +0008e0 2000 MOVS r0,#0 +0008e2 2306 MOVS r3,#6 +0008e4 900d STR r0,[sp,#0x34] +0008e6 900e STR r0,[sp,#0x38] +0008e8 930c STR r3,[sp,#0x30] +0008ea 900f STR r0,[sp,#0x3c] +0008ec 2041 MOVS r0,#0x41 +0008ee 2104 MOVS r1,#4 +0008f0 2231 MOVS r2,#0x31 +0008f2 2300 MOVS r3,#0 +0008f4 9308 STR r3,[sp,#0x20] +0008f6 9209 STR r2,[sp,#0x24] +0008f8 910a STR r1,[sp,#0x28] +0008fa 900b STR r0,[sp,#0x2c] +0008fc 2140 MOVS r1,#0x40 +0008fe 9304 STR r3,[sp,#0x10] +000900 9305 STR r3,[sp,#0x14] +000902 4618 MOV r0,r3 +000904 9307 STR r3,[sp,#0x1c] +000906 9106 STR r1,[sp,#0x18] +000908 4619 MOV r1,r3 +00090a 2288 MOVS r2,#0x88 +00090c 2342 MOVS r3,#0x42 +00090e 9300 STR r3,[sp,#0] +000910 9201 STR r2,[sp,#4] +000912 9102 STR r1,[sp,#8] +000914 9003 STR r0,[sp,#0xc] +000916 23d0 MOVS r3,#0xd0 +000918 2211 MOVS r2,#0x11 +00091a 2100 MOVS r1,#0 +00091c 2029 MOVS r0,#0x29 +00091e f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1219 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xe0,0x00,0x92,0x04,0x00,0x92,0x04,0x00,0x00,0x00,0x00,0x92,0x04,0x00,0x85,0x11,0x0c); +000922 2032 MOVS r0,#0x32 +000924 f7fffffe BL delayUs +000928 200c MOVS r0,#0xc +00092a 2111 MOVS r1,#0x11 +00092c 2285 MOVS r2,#0x85 +00092e 2300 MOVS r3,#0 +000930 930c STR r3,[sp,#0x30] +000932 920d STR r2,[sp,#0x34] +000934 910e STR r1,[sp,#0x38] +000936 900f STR r0,[sp,#0x3c] +000938 2004 MOVS r0,#4 +00093a 2192 MOVS r1,#0x92 +00093c 9308 STR r3,[sp,#0x20] +00093e 9309 STR r3,[sp,#0x24] +000940 910a STR r1,[sp,#0x28] +000942 900b STR r0,[sp,#0x2c] +000944 4618 MOV r0,r3 +000946 4619 MOV r1,r3 +000948 2204 MOVS r2,#4 +00094a 2392 MOVS r3,#0x92 +00094c 9304 STR r3,[sp,#0x10] +00094e 9205 STR r2,[sp,#0x14] +000950 9106 STR r1,[sp,#0x18] +000952 9007 STR r0,[sp,#0x1c] +000954 2000 MOVS r0,#0 +000956 9000 STR r0,[sp,#0] +000958 9301 STR r3,[sp,#4] +00095a 9202 STR r2,[sp,#8] +00095c 9003 STR r0,[sp,#0xc] +00095e 23e0 MOVS r3,#0xe0 +000960 2211 MOVS r2,#0x11 +000962 4601 MOV r1,r0 +000964 2029 MOVS r0,#0x29 +000966 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1220 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x10,0xf0,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x5e,0x4a,0x01,0x78,0x00,0x08,0x00,0x00); +00096a 2032 MOVS r0,#0x32 +00096c f7fffffe BL delayUs +000970 2000 MOVS r0,#0 +000972 2208 MOVS r2,#8 +000974 900b STR r0,[sp,#0x2c] +000976 900d STR r0,[sp,#0x34] +000978 920c STR r2,[sp,#0x30] +00097a 900e STR r0,[sp,#0x38] +00097c 2078 MOVS r0,#0x78 +00097e 2101 MOVS r1,#1 +000980 224a MOVS r2,#0x4a +000982 235e MOVS r3,#0x5e +000984 9307 STR r3,[sp,#0x1c] +000986 9208 STR r2,[sp,#0x20] +000988 9109 STR r1,[sp,#0x24] +00098a 900a STR r0,[sp,#0x28] +00098c 2000 MOVS r0,#0 +00098e 9003 STR r0,[sp,#0xc] +000990 9004 STR r0,[sp,#0x10] +000992 9005 STR r0,[sp,#0x14] +000994 9006 STR r0,[sp,#0x18] +000996 2040 MOVS r0,#0x40 +000998 2100 MOVS r1,#0 +00099a 9100 STR r1,[sp,#0] +00099c 23f0 MOVS r3,#0xf0 +00099e 2210 MOVS r2,#0x10 +0009a0 9101 STR r1,[sp,#4] +0009a2 9002 STR r0,[sp,#8] +0009a4 2029 MOVS r0,#0x29 +0009a6 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1221 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x12); +0009aa 2032 MOVS r0,#0x32 +0009ac f7fffffe BL delayUs +0009b0 2012 MOVS r0,#0x12 +0009b2 215a MOVS r1,#0x5a +0009b4 2341 MOVS r3,#0x41 +0009b6 2203 MOVS r2,#3 +0009b8 9100 STR r1,[sp,#0] +0009ba 9001 STR r0,[sp,#4] +0009bc 2100 MOVS r1,#0 +0009be 2029 MOVS r0,#0x29 +0009c0 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1222 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x00,0x00,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0x00,0x00,0x02,0x03,0x00,0x41,0x37); +0009c4 2032 MOVS r0,#0x32 +0009c6 f7fffffe BL delayUs +0009ca 2037 MOVS r0,#0x37 +0009cc 2141 MOVS r1,#0x41 +0009ce 2200 MOVS r2,#0 +0009d0 2303 MOVS r3,#3 +0009d2 930c STR r3,[sp,#0x30] +0009d4 920d STR r2,[sp,#0x34] +0009d6 910e STR r1,[sp,#0x38] +0009d8 900f STR r0,[sp,#0x3c] +0009da 2002 MOVS r0,#2 +0009dc 9208 STR r2,[sp,#0x20] +0009de 9209 STR r2,[sp,#0x24] +0009e0 920a STR r2,[sp,#0x28] +0009e2 900b STR r0,[sp,#0x2c] +0009e4 4610 MOV r0,r2 +0009e6 4619 MOV r1,r3 +0009e8 2202 MOVS r2,#2 +0009ea 2300 MOVS r3,#0 +0009ec 9304 STR r3,[sp,#0x10] +0009ee 9300 STR r3,[sp,#0] +0009f0 9301 STR r3,[sp,#4] +0009f2 9302 STR r3,[sp,#8] +0009f4 9303 STR r3,[sp,#0xc] +0009f6 9205 STR r2,[sp,#0x14] +0009f8 9106 STR r1,[sp,#0x18] +0009fa 9007 STR r0,[sp,#0x1c] +0009fc 2380 MOVS r3,#0x80 +0009fe 2211 MOVS r2,#0x11 +000a00 2100 MOVS r1,#0 +000a02 2029 MOVS r0,#0x29 +000a04 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1223 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0xf1,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2d,0x23,0x05); +000a08 2032 MOVS r0,#0x32 +000a0a f7fffffe BL delayUs +000a0e 2005 MOVS r0,#5 +000a10 2123 MOVS r1,#0x23 +000a12 222d MOVS r2,#0x2d +000a14 2300 MOVS r3,#0 +000a16 930c STR r3,[sp,#0x30] +000a18 9308 STR r3,[sp,#0x20] +000a1a 9309 STR r3,[sp,#0x24] +000a1c 930a STR r3,[sp,#0x28] +000a1e 930b STR r3,[sp,#0x2c] +000a20 9304 STR r3,[sp,#0x10] +000a22 9305 STR r3,[sp,#0x14] +000a24 9306 STR r3,[sp,#0x18] +000a26 9307 STR r3,[sp,#0x1c] +000a28 920d STR r2,[sp,#0x34] +000a2a 910e STR r1,[sp,#0x38] +000a2c 900f STR r0,[sp,#0x3c] +000a2e 2000 MOVS r0,#0 +000a30 22e7 MOVS r2,#0xe7 +000a32 23f1 MOVS r3,#0xf1 +000a34 9002 STR r0,[sp,#8] +000a36 9300 STR r3,[sp,#0] +000a38 9201 STR r2,[sp,#4] +000a3a 9003 STR r0,[sp,#0xc] +000a3c 2390 MOVS r3,#0x90 +000a3e 2211 MOVS r2,#0x11 +000a40 4601 MOV r1,r0 +000a42 2029 MOVS r0,#0x29 +000a44 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1224 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x08,0xa0,0xfb,0x08,0x2d,0x23,0x05,0xfb,0x0c); +000a48 2032 MOVS r0,#0x32 +000a4a f7fffffe BL delayUs +000a4e 200c MOVS r0,#0xc +000a50 21fb MOVS r1,#0xfb +000a52 2205 MOVS r2,#5 +000a54 2323 MOVS r3,#0x23 +000a56 9303 STR r3,[sp,#0xc] +000a58 9204 STR r2,[sp,#0x10] +000a5a 9105 STR r1,[sp,#0x14] +000a5c 9006 STR r0,[sp,#0x18] +000a5e 202d MOVS r0,#0x2d +000a60 2108 MOVS r1,#8 +000a62 22fb MOVS r2,#0xfb +000a64 23a0 MOVS r3,#0xa0 +000a66 9200 STR r2,[sp,#0] +000a68 9101 STR r1,[sp,#4] +000a6a 9002 STR r0,[sp,#8] +000a6c 460a MOV r2,r1 +000a6e 2100 MOVS r1,#0 +000a70 2029 MOVS r0,#0x29 +000a72 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1225 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x13); +000a76 2032 MOVS r0,#0x32 +000a78 f7fffffe BL delayUs +000a7c 2013 MOVS r0,#0x13 +000a7e 215a MOVS r1,#0x5a +000a80 2341 MOVS r3,#0x41 +000a82 2203 MOVS r2,#3 +000a84 9100 STR r1,[sp,#0] +000a86 9001 STR r0,[sp,#4] +000a88 2100 MOVS r1,#0 +000a8a 2029 MOVS r0,#0x29 +000a8c f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1226 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0xfd,0x0f,0x00,0x0c,0x00,0x00,0x00,0x00,0x01,0x08,0x01,0x1c,0x44,0x0c,0xce,0xe7); +000a90 2032 MOVS r0,#0x32 +000a92 f7fffffe BL delayUs +000a96 20e7 MOVS r0,#0xe7 +000a98 21ce MOVS r1,#0xce +000a9a 220c MOVS r2,#0xc +000a9c 2344 MOVS r3,#0x44 +000a9e 930c STR r3,[sp,#0x30] +000aa0 920d STR r2,[sp,#0x34] +000aa2 910e STR r1,[sp,#0x38] +000aa4 900f STR r0,[sp,#0x3c] +000aa6 201c MOVS r0,#0x1c +000aa8 2101 MOVS r1,#1 +000aaa 2208 MOVS r2,#8 +000aac 9108 STR r1,[sp,#0x20] +000aae 9209 STR r2,[sp,#0x24] +000ab0 910a STR r1,[sp,#0x28] +000ab2 900b STR r0,[sp,#0x2c] +000ab4 2000 MOVS r0,#0 +000ab6 9004 STR r0,[sp,#0x10] +000ab8 9005 STR r0,[sp,#0x14] +000aba 9006 STR r0,[sp,#0x18] +000abc 9007 STR r0,[sp,#0x1c] +000abe 200c MOVS r0,#0xc +000ac0 2100 MOVS r1,#0 +000ac2 220f MOVS r2,#0xf +000ac4 23fd MOVS r3,#0xfd +000ac6 9300 STR r3,[sp,#0] +000ac8 9201 STR r2,[sp,#4] +000aca 9102 STR r1,[sp,#8] +000acc 9003 STR r0,[sp,#0xc] +000ace 2380 MOVS r3,#0x80 +000ad0 2211 MOVS r2,#0x11 +000ad2 2029 MOVS r0,#0x29 +000ad4 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1227 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x0f,0x90,0x62,0x0e,0x24,0x98,0xac,0x21,0x01,0x00,0xd0,0xff,0xff,0xff,0x07,0x20); +000ad8 2032 MOVS r0,#0x32 +000ada f7fffffe BL delayUs +000ade 2020 MOVS r0,#0x20 +000ae0 2107 MOVS r1,#7 +000ae2 22ff MOVS r2,#0xff +000ae4 920a STR r2,[sp,#0x28] +000ae6 920b STR r2,[sp,#0x2c] +000ae8 910c STR r1,[sp,#0x30] +000aea 900d STR r0,[sp,#0x34] +000aec 4610 MOV r0,r2 +000aee 21d0 MOVS r1,#0xd0 +000af0 2200 MOVS r2,#0 +000af2 2301 MOVS r3,#1 +000af4 9306 STR r3,[sp,#0x18] +000af6 9207 STR r2,[sp,#0x1c] +000af8 9108 STR r1,[sp,#0x20] +000afa 9009 STR r0,[sp,#0x24] +000afc 2021 MOVS r0,#0x21 +000afe 21ac MOVS r1,#0xac +000b00 2298 MOVS r2,#0x98 +000b02 2324 MOVS r3,#0x24 +000b04 9302 STR r3,[sp,#8] +000b06 9203 STR r2,[sp,#0xc] +000b08 9104 STR r1,[sp,#0x10] +000b0a 9005 STR r0,[sp,#0x14] +000b0c 200e MOVS r0,#0xe +000b0e 2162 MOVS r1,#0x62 +000b10 2390 MOVS r3,#0x90 +000b12 220f MOVS r2,#0xf +000b14 9100 STR r1,[sp,#0] +000b16 9001 STR r0,[sp,#4] +000b18 2100 MOVS r1,#0 +000b1a 2029 MOVS r0,#0x29 +000b1c f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1228 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x14); +000b20 2032 MOVS r0,#0x32 +000b22 f7fffffe BL delayUs +000b26 2014 MOVS r0,#0x14 +000b28 215a MOVS r1,#0x5a +000b2a 2341 MOVS r3,#0x41 +000b2c 2203 MOVS r2,#3 +000b2e 9100 STR r1,[sp,#0] +000b30 9001 STR r0,[sp,#4] +000b32 2100 MOVS r1,#0 +000b34 2029 MOVS r0,#0x29 +000b36 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1229 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x01,0x02,0x41,0x36,0xe1,0xef,0xf7,0xfb,0xfd,0x7e,0x01,0x00,0x00,0x90,0xc5,0x8a); +000b3a 2032 MOVS r0,#0x32 +000b3c f7fffffe BL delayUs +000b40 208a MOVS r0,#0x8a +000b42 21c5 MOVS r1,#0xc5 +000b44 2290 MOVS r2,#0x90 +000b46 2300 MOVS r3,#0 +000b48 930c STR r3,[sp,#0x30] +000b4a 920d STR r2,[sp,#0x34] +000b4c 910e STR r1,[sp,#0x38] +000b4e 900f STR r0,[sp,#0x3c] +000b50 4618 MOV r0,r3 +000b52 2101 MOVS r1,#1 +000b54 227e MOVS r2,#0x7e +000b56 23fd MOVS r3,#0xfd +000b58 9308 STR r3,[sp,#0x20] +000b5a 9209 STR r2,[sp,#0x24] +000b5c 910a STR r1,[sp,#0x28] +000b5e 900b STR r0,[sp,#0x2c] +000b60 20fb MOVS r0,#0xfb +000b62 21f7 MOVS r1,#0xf7 +000b64 22ef MOVS r2,#0xef +000b66 23e1 MOVS r3,#0xe1 +000b68 9304 STR r3,[sp,#0x10] +000b6a 9205 STR r2,[sp,#0x14] +000b6c 9106 STR r1,[sp,#0x18] +000b6e 9007 STR r0,[sp,#0x1c] +000b70 2036 MOVS r0,#0x36 +000b72 2141 MOVS r1,#0x41 +000b74 2202 MOVS r2,#2 +000b76 2301 MOVS r3,#1 +000b78 9300 STR r3,[sp,#0] +000b7a 9201 STR r2,[sp,#4] +000b7c 9102 STR r1,[sp,#8] +000b7e 9003 STR r0,[sp,#0xc] +000b80 2380 MOVS r3,#0x80 +000b82 2211 MOVS r2,#0x11 +000b84 2100 MOVS r1,#0 +000b86 2029 MOVS r0,#0x29 +000b88 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1230 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x27,0x6d,0x20,0x4e,0x3c,0x69,0x03,0xdb,0xe0,0x49,0x1b,0xd8,0x08,0x4f,0xda,0x00); +000b8c 2032 MOVS r0,#0x32 +000b8e f7fffffe BL delayUs +000b92 2000 MOVS r0,#0 +000b94 21da MOVS r1,#0xda +000b96 224f MOVS r2,#0x4f +000b98 2308 MOVS r3,#8 +000b9a 930c STR r3,[sp,#0x30] +000b9c 920d STR r2,[sp,#0x34] +000b9e 910e STR r1,[sp,#0x38] +000ba0 900f STR r0,[sp,#0x3c] +000ba2 20d8 MOVS r0,#0xd8 +000ba4 211b MOVS r1,#0x1b +000ba6 2249 MOVS r2,#0x49 +000ba8 23e0 MOVS r3,#0xe0 +000baa 9308 STR r3,[sp,#0x20] +000bac 9209 STR r2,[sp,#0x24] +000bae 910a STR r1,[sp,#0x28] +000bb0 900b STR r0,[sp,#0x2c] +000bb2 20db MOVS r0,#0xdb +000bb4 2103 MOVS r1,#3 +000bb6 2269 MOVS r2,#0x69 +000bb8 233c MOVS r3,#0x3c +000bba 9304 STR r3,[sp,#0x10] +000bbc 9205 STR r2,[sp,#0x14] +000bbe 9106 STR r1,[sp,#0x18] +000bc0 9007 STR r0,[sp,#0x1c] +000bc2 204e MOVS r0,#0x4e +000bc4 2120 MOVS r1,#0x20 +000bc6 226d MOVS r2,#0x6d +000bc8 2327 MOVS r3,#0x27 +000bca 9300 STR r3,[sp,#0] +000bcc 9201 STR r2,[sp,#4] +000bce 9102 STR r1,[sp,#8] +000bd0 9003 STR r0,[sp,#0xc] +000bd2 2390 MOVS r3,#0x90 +000bd4 2211 MOVS r2,#0x11 +000bd6 2100 MOVS r1,#0 +000bd8 2029 MOVS r0,#0x29 +000bda f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1231 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xa0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x82,0xb5,0xe2,0xf7,0x47,0x00); +000bde 2032 MOVS r0,#0x32 +000be0 f7fffffe BL delayUs +000be4 2000 MOVS r0,#0 +000be6 2147 MOVS r1,#0x47 +000be8 22f7 MOVS r2,#0xf7 +000bea 23e2 MOVS r3,#0xe2 +000bec 930c STR r3,[sp,#0x30] +000bee 920d STR r2,[sp,#0x34] +000bf0 910e STR r1,[sp,#0x38] +000bf2 900f STR r0,[sp,#0x3c] +000bf4 20b5 MOVS r0,#0xb5 +000bf6 2182 MOVS r1,#0x82 +000bf8 22f8 MOVS r2,#0xf8 +000bfa 2300 MOVS r3,#0 +000bfc 9308 STR r3,[sp,#0x20] +000bfe 9304 STR r3,[sp,#0x10] +000c00 9305 STR r3,[sp,#0x14] +000c02 9306 STR r3,[sp,#0x18] +000c04 9307 STR r3,[sp,#0x1c] +000c06 9300 STR r3,[sp,#0] +000c08 9301 STR r3,[sp,#4] +000c0a 9302 STR r3,[sp,#8] +000c0c 9303 STR r3,[sp,#0xc] +000c0e 9209 STR r2,[sp,#0x24] +000c10 910a STR r1,[sp,#0x28] +000c12 900b STR r0,[sp,#0x2c] +000c14 23a0 MOVS r3,#0xa0 +000c16 2211 MOVS r2,#0x11 +000c18 2100 MOVS r1,#0 +000c1a 2029 MOVS r0,#0x29 +000c1c f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1232 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xb0,0xd8,0x89,0xdf,0x1f,0x01,0x00,0x00,0x00,0x00,0x1c,0xb2,0x21,0x2b,0x00,0x40,0xa1); +000c20 2032 MOVS r0,#0x32 +000c22 f7fffffe BL delayUs +000c26 20a1 MOVS r0,#0xa1 +000c28 2140 MOVS r1,#0x40 +000c2a 2200 MOVS r2,#0 +000c2c 232b MOVS r3,#0x2b +000c2e 930c STR r3,[sp,#0x30] +000c30 920d STR r2,[sp,#0x34] +000c32 910e STR r1,[sp,#0x38] +000c34 900f STR r0,[sp,#0x3c] +000c36 2021 MOVS r0,#0x21 +000c38 21b2 MOVS r1,#0xb2 +000c3a 221c MOVS r2,#0x1c +000c3c 2300 MOVS r3,#0 +000c3e 9308 STR r3,[sp,#0x20] +000c40 9209 STR r2,[sp,#0x24] +000c42 910a STR r1,[sp,#0x28] +000c44 900b STR r0,[sp,#0x2c] +000c46 4618 MOV r0,r3 +000c48 4619 MOV r1,r3 +000c4a 461a MOV r2,r3 +000c4c 2301 MOVS r3,#1 +000c4e 9304 STR r3,[sp,#0x10] +000c50 9205 STR r2,[sp,#0x14] +000c52 9106 STR r1,[sp,#0x18] +000c54 9007 STR r0,[sp,#0x1c] +000c56 201f MOVS r0,#0x1f +000c58 21df MOVS r1,#0xdf +000c5a 2289 MOVS r2,#0x89 +000c5c 23d8 MOVS r3,#0xd8 +000c5e 9300 STR r3,[sp,#0] +000c60 9201 STR r2,[sp,#4] +000c62 9102 STR r1,[sp,#8] +000c64 9003 STR r0,[sp,#0xc] +000c66 23b0 MOVS r3,#0xb0 +000c68 2211 MOVS r2,#0x11 +000c6a 2100 MOVS r1,#0 +000c6c 2029 MOVS r0,#0x29 +000c6e f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1233 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xc0,0x50,0x78,0x17,0xda,0xf4,0x80,0x51,0x1c,0x6f,0x42,0x9b,0x1e,0x30,0x8a,0xe3,0x3d); +000c72 2032 MOVS r0,#0x32 +000c74 f7fffffe BL delayUs +000c78 203d MOVS r0,#0x3d +000c7a 21e3 MOVS r1,#0xe3 +000c7c 228a MOVS r2,#0x8a +000c7e 2330 MOVS r3,#0x30 +000c80 930c STR r3,[sp,#0x30] +000c82 920d STR r2,[sp,#0x34] +000c84 910e STR r1,[sp,#0x38] +000c86 900f STR r0,[sp,#0x3c] +000c88 201e MOVS r0,#0x1e +000c8a 219b MOVS r1,#0x9b +000c8c 2242 MOVS r2,#0x42 +000c8e 236f MOVS r3,#0x6f +000c90 9308 STR r3,[sp,#0x20] +000c92 9209 STR r2,[sp,#0x24] +000c94 910a STR r1,[sp,#0x28] +000c96 900b STR r0,[sp,#0x2c] +000c98 201c MOVS r0,#0x1c +000c9a 2151 MOVS r1,#0x51 +000c9c 2280 MOVS r2,#0x80 +000c9e 23f4 MOVS r3,#0xf4 +000ca0 9304 STR r3,[sp,#0x10] +000ca2 9205 STR r2,[sp,#0x14] +000ca4 9106 STR r1,[sp,#0x18] +000ca6 9007 STR r0,[sp,#0x1c] +000ca8 20da MOVS r0,#0xda +000caa 2117 MOVS r1,#0x17 +000cac 2278 MOVS r2,#0x78 +000cae 2350 MOVS r3,#0x50 +000cb0 9300 STR r3,[sp,#0] +000cb2 9201 STR r2,[sp,#4] +000cb4 9102 STR r1,[sp,#8] +000cb6 9003 STR r0,[sp,#0xc] +000cb8 23c0 MOVS r3,#0xc0 +000cba 2211 MOVS r2,#0x11 +000cbc 2100 MOVS r1,#0 +000cbe 2029 MOVS r0,#0x29 +000cc0 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1234 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xd0,0x68,0xd3,0x03,0x46,0x71,0xbc,0x05,0x6d,0x7a,0xc0,0x28,0x8e,0x77,0xa0,0x4d,0x0f); +000cc4 2032 MOVS r0,#0x32 +000cc6 f7fffffe BL delayUs +000cca 200f MOVS r0,#0xf +000ccc 214d MOVS r1,#0x4d +000cce 22a0 MOVS r2,#0xa0 +000cd0 2377 MOVS r3,#0x77 +000cd2 930c STR r3,[sp,#0x30] +000cd4 920d STR r2,[sp,#0x34] +000cd6 910e STR r1,[sp,#0x38] +000cd8 900f STR r0,[sp,#0x3c] +000cda 208e MOVS r0,#0x8e +000cdc 2128 MOVS r1,#0x28 +000cde 22c0 MOVS r2,#0xc0 +000ce0 237a MOVS r3,#0x7a +000ce2 9308 STR r3,[sp,#0x20] +000ce4 9209 STR r2,[sp,#0x24] +000ce6 910a STR r1,[sp,#0x28] +000ce8 900b STR r0,[sp,#0x2c] +000cea 206d MOVS r0,#0x6d +000cec 2105 MOVS r1,#5 +000cee 22bc MOVS r2,#0xbc +000cf0 2371 MOVS r3,#0x71 +000cf2 9304 STR r3,[sp,#0x10] +000cf4 9205 STR r2,[sp,#0x14] +000cf6 9106 STR r1,[sp,#0x18] +000cf8 9007 STR r0,[sp,#0x1c] +000cfa 2046 MOVS r0,#0x46 +000cfc 2103 MOVS r1,#3 +000cfe 22d3 MOVS r2,#0xd3 +000d00 2368 MOVS r3,#0x68 +000d02 9300 STR r3,[sp,#0] +000d04 9201 STR r2,[sp,#4] +000d06 9102 STR r1,[sp,#8] +000d08 9003 STR r0,[sp,#0xc] +000d0a 23d0 MOVS r3,#0xd0 +000d0c 2211 MOVS r2,#0x11 +000d0e 2100 MOVS r1,#0 +000d10 2029 MOVS r0,#0x29 +000d12 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1235 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xe0,0x18,0xc5,0xf1,0x06,0xb4,0xe9,0x01,0xa3,0x38,0x5e,0x80,0x36,0x3d,0x60,0x14,0xc7); +000d16 2032 MOVS r0,#0x32 +000d18 f7fffffe BL delayUs +000d1c 20c7 MOVS r0,#0xc7 +000d1e 2114 MOVS r1,#0x14 +000d20 2260 MOVS r2,#0x60 +000d22 233d MOVS r3,#0x3d +000d24 930c STR r3,[sp,#0x30] +000d26 920d STR r2,[sp,#0x34] +000d28 910e STR r1,[sp,#0x38] +000d2a 900f STR r0,[sp,#0x3c] +000d2c 2036 MOVS r0,#0x36 +000d2e 2180 MOVS r1,#0x80 +000d30 225e MOVS r2,#0x5e +000d32 2338 MOVS r3,#0x38 +000d34 9308 STR r3,[sp,#0x20] +000d36 9209 STR r2,[sp,#0x24] +000d38 910a STR r1,[sp,#0x28] +000d3a 900b STR r0,[sp,#0x2c] +000d3c 20a3 MOVS r0,#0xa3 +000d3e 2101 MOVS r1,#1 +000d40 22e9 MOVS r2,#0xe9 +000d42 23b4 MOVS r3,#0xb4 +000d44 9304 STR r3,[sp,#0x10] +000d46 9205 STR r2,[sp,#0x14] +000d48 9106 STR r1,[sp,#0x18] +000d4a 9007 STR r0,[sp,#0x1c] +000d4c 2006 MOVS r0,#6 +000d4e 21f1 MOVS r1,#0xf1 +000d50 22c5 MOVS r2,#0xc5 +000d52 2318 MOVS r3,#0x18 +000d54 9300 STR r3,[sp,#0] +000d56 9201 STR r2,[sp,#4] +000d58 9102 STR r1,[sp,#8] +000d5a 9003 STR r0,[sp,#0xc] +000d5c 23e0 MOVS r3,#0xe0 +000d5e 2211 MOVS r2,#0x11 +000d60 2100 MOVS r1,#0 +000d62 2029 MOVS r0,#0x29 +000d64 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1236 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xf0,0x2b,0xd0,0xa6,0x07,0x8c,0xe2,0x18,0x01,0xbf,0xdf,0x08,0x00,0x00,0x00,0x00,0x00); +000d68 2032 MOVS r0,#0x32 +000d6a f7fffffe BL delayUs +000d6e 2000 MOVS r0,#0 +000d70 900c STR r0,[sp,#0x30] +000d72 900d STR r0,[sp,#0x34] +000d74 900e STR r0,[sp,#0x38] +000d76 2108 MOVS r1,#8 +000d78 22df MOVS r2,#0xdf +000d7a 23bf MOVS r3,#0xbf +000d7c 900f STR r0,[sp,#0x3c] +000d7e 9308 STR r3,[sp,#0x20] +000d80 9209 STR r2,[sp,#0x24] +000d82 910a STR r1,[sp,#0x28] +000d84 900b STR r0,[sp,#0x2c] +000d86 2001 MOVS r0,#1 +000d88 2118 MOVS r1,#0x18 +000d8a 22e2 MOVS r2,#0xe2 +000d8c 238c MOVS r3,#0x8c +000d8e 9304 STR r3,[sp,#0x10] +000d90 9205 STR r2,[sp,#0x14] +000d92 9106 STR r1,[sp,#0x18] +000d94 9007 STR r0,[sp,#0x1c] +000d96 2007 MOVS r0,#7 +000d98 21a6 MOVS r1,#0xa6 +000d9a 22d0 MOVS r2,#0xd0 +000d9c 232b MOVS r3,#0x2b +000d9e 9300 STR r3,[sp,#0] +000da0 9201 STR r2,[sp,#4] +000da2 9102 STR r1,[sp,#8] +000da4 9003 STR r0,[sp,#0xc] +000da6 23f0 MOVS r3,#0xf0 +000da8 2211 MOVS r2,#0x11 +000daa 2100 MOVS r1,#0 +000dac 2029 MOVS r0,#0x29 +000dae f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1237 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x15); +000db2 2032 MOVS r0,#0x32 +000db4 f7fffffe BL delayUs +000db8 2015 MOVS r0,#0x15 +000dba 215a MOVS r1,#0x5a +000dbc 2341 MOVS r3,#0x41 +000dbe 2203 MOVS r2,#3 +000dc0 9100 STR r1,[sp,#0] +000dc2 9001 STR r0,[sp,#4] +000dc4 2100 MOVS r1,#0 +000dc6 2029 MOVS r0,#0x29 +000dc8 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1238 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xd9,0xe0,0xf7); +000dcc 2032 MOVS r0,#0x32 +000dce f7fffffe BL delayUs +000dd2 20f7 MOVS r0,#0xf7 +000dd4 21e0 MOVS r1,#0xe0 +000dd6 22d9 MOVS r2,#0xd9 +000dd8 2352 MOVS r3,#0x52 +000dda 930c STR r3,[sp,#0x30] +000ddc 920d STR r2,[sp,#0x34] +000dde 910e STR r1,[sp,#0x38] +000de0 900f STR r0,[sp,#0x3c] +000de2 2000 MOVS r0,#0 +000de4 9008 STR r0,[sp,#0x20] +000de6 9009 STR r0,[sp,#0x24] +000de8 900a STR r0,[sp,#0x28] +000dea 900b STR r0,[sp,#0x2c] +000dec 9004 STR r0,[sp,#0x10] +000dee 9005 STR r0,[sp,#0x14] +000df0 9006 STR r0,[sp,#0x18] +000df2 9007 STR r0,[sp,#0x1c] +000df4 9000 STR r0,[sp,#0] +000df6 9001 STR r0,[sp,#4] +000df8 9002 STR r0,[sp,#8] +000dfa 2380 MOVS r3,#0x80 +000dfc 2211 MOVS r2,#0x11 +000dfe 2100 MOVS r1,#0 +000e00 9003 STR r0,[sp,#0xc] +000e02 2029 MOVS r0,#0x29 +000e04 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1239 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0xa3,0x00,0x20,0x4b,0x07,0xab,0xc5,0x03,0x00,0x00,0xd6,0xc1,0x6a,0xf1,0x00,0x00); +000e08 2032 MOVS r0,#0x32 +000e0a f7fffffe BL delayUs +000e0e 2000 MOVS r0,#0 +000e10 22f1 MOVS r2,#0xf1 +000e12 236a MOVS r3,#0x6a +000e14 900e STR r0,[sp,#0x38] +000e16 930c STR r3,[sp,#0x30] +000e18 920d STR r2,[sp,#0x34] +000e1a 900f STR r0,[sp,#0x3c] +000e1c 20c1 MOVS r0,#0xc1 +000e1e 21d6 MOVS r1,#0xd6 +000e20 2200 MOVS r2,#0 +000e22 9208 STR r2,[sp,#0x20] +000e24 9209 STR r2,[sp,#0x24] +000e26 910a STR r1,[sp,#0x28] +000e28 900b STR r0,[sp,#0x2c] +000e2a 2003 MOVS r0,#3 +000e2c 21c5 MOVS r1,#0xc5 +000e2e 22ab MOVS r2,#0xab +000e30 2307 MOVS r3,#7 +000e32 9304 STR r3,[sp,#0x10] +000e34 9205 STR r2,[sp,#0x14] +000e36 9106 STR r1,[sp,#0x18] +000e38 9007 STR r0,[sp,#0x1c] +000e3a 204b MOVS r0,#0x4b +000e3c 2120 MOVS r1,#0x20 +000e3e 2200 MOVS r2,#0 +000e40 23a3 MOVS r3,#0xa3 +000e42 9300 STR r3,[sp,#0] +000e44 9201 STR r2,[sp,#4] +000e46 9102 STR r1,[sp,#8] +000e48 9003 STR r0,[sp,#0xc] +000e4a 2390 MOVS r3,#0x90 +000e4c 2211 MOVS r2,#0x11 +000e4e 2100 MOVS r1,#0 +000e50 2029 MOVS r0,#0x29 +000e52 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1240 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xa0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x90); +000e56 2032 MOVS r0,#0x32 +000e58 f7fffffe BL delayUs +000e5c 2090 MOVS r0,#0x90 +000e5e 2100 MOVS r1,#0 +000e60 910c STR r1,[sp,#0x30] +000e62 910d STR r1,[sp,#0x34] +000e64 910e STR r1,[sp,#0x38] +000e66 9108 STR r1,[sp,#0x20] +000e68 9109 STR r1,[sp,#0x24] +000e6a 910a STR r1,[sp,#0x28] +000e6c 910b STR r1,[sp,#0x2c] +000e6e 9104 STR r1,[sp,#0x10] +000e70 9105 STR r1,[sp,#0x14] +000e72 9106 STR r1,[sp,#0x18] +000e74 9107 STR r1,[sp,#0x1c] +000e76 900f STR r0,[sp,#0x3c] +000e78 2000 MOVS r0,#0 +000e7a 9000 STR r0,[sp,#0] +000e7c 9001 STR r0,[sp,#4] +000e7e 9002 STR r0,[sp,#8] +000e80 23a0 MOVS r3,#0xa0 +000e82 2211 MOVS r2,#0x11 +000e84 4601 MOV r1,r0 +000e86 9003 STR r0,[sp,#0xc] +000e88 2029 MOVS r0,#0x29 +000e8a f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1241 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xb0,0x75,0xa1,0x6a,0xb5,0x00,0x00,0x00,0x00,0x13,0x00,0xf0,0x00,0x14,0xd3,0x34,0xcd); +000e8e 2032 MOVS r0,#0x32 +000e90 f7fffffe BL delayUs +000e94 20cd MOVS r0,#0xcd +000e96 2134 MOVS r1,#0x34 +000e98 22d3 MOVS r2,#0xd3 +000e9a 2314 MOVS r3,#0x14 +000e9c 930c STR r3,[sp,#0x30] +000e9e 920d STR r2,[sp,#0x34] +000ea0 910e STR r1,[sp,#0x38] +000ea2 900f STR r0,[sp,#0x3c] +000ea4 2000 MOVS r0,#0 +000ea6 21f0 MOVS r1,#0xf0 +000ea8 2313 MOVS r3,#0x13 +000eaa 9009 STR r0,[sp,#0x24] +000eac 900b STR r0,[sp,#0x2c] +000eae 9004 STR r0,[sp,#0x10] +000eb0 9005 STR r0,[sp,#0x14] +000eb2 9006 STR r0,[sp,#0x18] +000eb4 9308 STR r3,[sp,#0x20] +000eb6 910a STR r1,[sp,#0x28] +000eb8 9007 STR r0,[sp,#0x1c] +000eba 20b5 MOVS r0,#0xb5 +000ebc 216a MOVS r1,#0x6a +000ebe 22a1 MOVS r2,#0xa1 +000ec0 2375 MOVS r3,#0x75 +000ec2 9300 STR r3,[sp,#0] +000ec4 9201 STR r2,[sp,#4] +000ec6 9102 STR r1,[sp,#8] +000ec8 9003 STR r0,[sp,#0xc] +000eca 23b0 MOVS r3,#0xb0 +000ecc 2211 MOVS r2,#0x11 +000ece 2100 MOVS r1,#0 +000ed0 2029 MOVS r0,#0x29 +000ed2 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1242 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xc0,0x90,0x02,0x4d,0x10,0x20,0x10,0x06,0x6a,0xdb,0xb6,0x6d,0xdb,0xb6,0x35,0x4d,0xd3); +000ed6 2032 MOVS r0,#0x32 +000ed8 f7fffffe BL delayUs +000edc 20d3 MOVS r0,#0xd3 +000ede 214d MOVS r1,#0x4d +000ee0 2235 MOVS r2,#0x35 +000ee2 23b6 MOVS r3,#0xb6 +000ee4 930c STR r3,[sp,#0x30] +000ee6 920d STR r2,[sp,#0x34] +000ee8 910e STR r1,[sp,#0x38] +000eea 900f STR r0,[sp,#0x3c] +000eec 20db MOVS r0,#0xdb +000eee 216d MOVS r1,#0x6d +000ef0 9008 STR r0,[sp,#0x20] +000ef2 9309 STR r3,[sp,#0x24] +000ef4 910a STR r1,[sp,#0x28] +000ef6 900b STR r0,[sp,#0x2c] +000ef8 206a MOVS r0,#0x6a +000efa 2106 MOVS r1,#6 +000efc 2210 MOVS r2,#0x10 +000efe 2320 MOVS r3,#0x20 +000f00 9304 STR r3,[sp,#0x10] +000f02 9205 STR r2,[sp,#0x14] +000f04 9106 STR r1,[sp,#0x18] +000f06 9007 STR r0,[sp,#0x1c] +000f08 4610 MOV r0,r2 +000f0a 214d MOVS r1,#0x4d +000f0c 2202 MOVS r2,#2 +000f0e 2390 MOVS r3,#0x90 +000f10 9300 STR r3,[sp,#0] +000f12 9201 STR r2,[sp,#4] +000f14 9102 STR r1,[sp,#8] +000f16 9003 STR r0,[sp,#0xc] +000f18 23c0 MOVS r3,#0xc0 +000f1a 2211 MOVS r2,#0x11 +000f1c 2100 MOVS r1,#0 +000f1e 2029 MOVS r0,#0x29 +000f20 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1243 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xd0,0x34,0x21,0x13,0x04,0x01,0x02,0x61,0xa8,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x35); +000f24 2032 MOVS r0,#0x32 +000f26 f7fffffe BL delayUs +000f2a 2035 MOVS r0,#0x35 +000f2c 21b6 MOVS r1,#0xb6 +000f2e 22db MOVS r2,#0xdb +000f30 236d MOVS r3,#0x6d +000f32 930c STR r3,[sp,#0x30] +000f34 920d STR r2,[sp,#0x34] +000f36 910e STR r1,[sp,#0x38] +000f38 900f STR r0,[sp,#0x3c] +000f3a 4608 MOV r0,r1 +000f3c 4611 MOV r1,r2 +000f3e 461a MOV r2,r3 +000f40 23b6 MOVS r3,#0xb6 +000f42 9308 STR r3,[sp,#0x20] +000f44 9209 STR r2,[sp,#0x24] +000f46 910a STR r1,[sp,#0x28] +000f48 900b STR r0,[sp,#0x2c] +000f4a 20a8 MOVS r0,#0xa8 +000f4c 2161 MOVS r1,#0x61 +000f4e 2202 MOVS r2,#2 +000f50 2301 MOVS r3,#1 +000f52 9304 STR r3,[sp,#0x10] +000f54 9205 STR r2,[sp,#0x14] +000f56 9106 STR r1,[sp,#0x18] +000f58 9007 STR r0,[sp,#0x1c] +000f5a 2004 MOVS r0,#4 +000f5c 2113 MOVS r1,#0x13 +000f5e 2221 MOVS r2,#0x21 +000f60 2334 MOVS r3,#0x34 +000f62 9300 STR r3,[sp,#0] +000f64 9201 STR r2,[sp,#4] +000f66 9102 STR r1,[sp,#8] +000f68 9003 STR r0,[sp,#0xc] +000f6a 23d0 MOVS r3,#0xd0 +000f6c 2211 MOVS r2,#0x11 +000f6e 2100 MOVS r1,#0 +000f70 2029 MOVS r0,#0x29 +000f72 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1244 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xe0,0xcd,0xd0,0x02,0x4d,0x50,0x30,0x14,0x47,0x6a,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0x5b); +000f76 2032 MOVS r0,#0x32 +000f78 f7fffffe BL delayUs +000f7c 205b MOVS r0,#0x5b +000f7e 216d MOVS r1,#0x6d +000f80 22b6 MOVS r2,#0xb6 +000f82 23db MOVS r3,#0xdb +000f84 930c STR r3,[sp,#0x30] +000f86 920d STR r2,[sp,#0x34] +000f88 910e STR r1,[sp,#0x38] +000f8a 900f STR r0,[sp,#0x3c] +000f8c 4608 MOV r0,r1 +000f8e 4611 MOV r1,r2 +000f90 461a MOV r2,r3 +000f92 236a MOVS r3,#0x6a +000f94 9308 STR r3,[sp,#0x20] +000f96 9209 STR r2,[sp,#0x24] +000f98 910a STR r1,[sp,#0x28] +000f9a 900b STR r0,[sp,#0x2c] +000f9c 2047 MOVS r0,#0x47 +000f9e 2114 MOVS r1,#0x14 +000fa0 2230 MOVS r2,#0x30 +000fa2 2350 MOVS r3,#0x50 +000fa4 9304 STR r3,[sp,#0x10] +000fa6 9205 STR r2,[sp,#0x14] +000fa8 9106 STR r1,[sp,#0x18] +000faa 9007 STR r0,[sp,#0x1c] +000fac 204d MOVS r0,#0x4d +000fae 2102 MOVS r1,#2 +000fb0 22d0 MOVS r2,#0xd0 +000fb2 23cd MOVS r3,#0xcd +000fb4 9300 STR r3,[sp,#0] +000fb6 9201 STR r2,[sp,#4] +000fb8 9102 STR r1,[sp,#8] +000fba 9003 STR r0,[sp,#0xc] +000fbc 23e0 MOVS r3,#0xe0 +000fbe 2211 MOVS r2,#0x11 +000fc0 2100 MOVS r1,#0 +000fc2 2029 MOVS r0,#0x29 +000fc4 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1245 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xf0,0xd3,0x34,0x25,0x13,0x04,0x05,0x43,0x71,0xac,0xb6,0x6d,0xdb,0xb6,0x6d,0x5b,0x00); +000fc8 2032 MOVS r0,#0x32 +000fca f7fffffe BL delayUs +000fce 2000 MOVS r0,#0 +000fd0 215b MOVS r1,#0x5b +000fd2 226d MOVS r2,#0x6d +000fd4 23b6 MOVS r3,#0xb6 +000fd6 930c STR r3,[sp,#0x30] +000fd8 920d STR r2,[sp,#0x34] +000fda 910e STR r1,[sp,#0x38] +000fdc 900f STR r0,[sp,#0x3c] +000fde 20db MOVS r0,#0xdb +000fe0 4611 MOV r1,r2 +000fe2 461a MOV r2,r3 +000fe4 23ac MOVS r3,#0xac +000fe6 9308 STR r3,[sp,#0x20] +000fe8 9209 STR r2,[sp,#0x24] +000fea 910a STR r1,[sp,#0x28] +000fec 900b STR r0,[sp,#0x2c] +000fee 2071 MOVS r0,#0x71 +000ff0 2143 MOVS r1,#0x43 +000ff2 2205 MOVS r2,#5 +000ff4 2304 MOVS r3,#4 +000ff6 9304 STR r3,[sp,#0x10] +000ff8 9205 STR r2,[sp,#0x14] +000ffa 9106 STR r1,[sp,#0x18] +000ffc 9007 STR r0,[sp,#0x1c] +000ffe 2013 MOVS r0,#0x13 +001000 2125 MOVS r1,#0x25 +001002 2234 MOVS r2,#0x34 +001004 23d3 MOVS r3,#0xd3 +001006 9300 STR r3,[sp,#0] +001008 9201 STR r2,[sp,#4] +00100a 9102 STR r1,[sp,#8] +00100c 9003 STR r0,[sp,#0xc] +00100e 23f0 MOVS r3,#0xf0 +001010 2211 MOVS r2,#0x11 +001012 2100 MOVS r1,#0 +001014 2029 MOVS r0,#0x29 +001016 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1246 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x16); +00101a 2032 MOVS r0,#0x32 +00101c f7fffffe BL delayUs +001020 2016 MOVS r0,#0x16 +001022 215a MOVS r1,#0x5a +001024 2341 MOVS r3,#0x41 +001026 2203 MOVS r2,#3 +001028 9100 STR r1,[sp,#0] +00102a 9001 STR r0,[sp,#4] +00102c 2100 MOVS r1,#0 +00102e 2029 MOVS r0,#0x29 +001030 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1247 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x02,0x42,0x41,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); +001034 2032 MOVS r0,#0x32 +001036 f7fffffe BL delayUs +00103a 2000 MOVS r0,#0 +00103c 900c STR r0,[sp,#0x30] +00103e 900d STR r0,[sp,#0x34] +001040 900e STR r0,[sp,#0x38] +001042 900f STR r0,[sp,#0x3c] +001044 9008 STR r0,[sp,#0x20] +001046 9009 STR r0,[sp,#0x24] +001048 900a STR r0,[sp,#0x28] +00104a 900b STR r0,[sp,#0x2c] +00104c 9004 STR r0,[sp,#0x10] +00104e 9005 STR r0,[sp,#0x14] +001050 9006 STR r0,[sp,#0x18] +001052 9007 STR r0,[sp,#0x1c] +001054 2001 MOVS r0,#1 +001056 2141 MOVS r1,#0x41 +001058 2242 MOVS r2,#0x42 +00105a 2302 MOVS r3,#2 +00105c 9300 STR r3,[sp,#0] +00105e 9201 STR r2,[sp,#4] +001060 9102 STR r1,[sp,#8] +001062 9003 STR r0,[sp,#0xc] +001064 2380 MOVS r3,#0x80 +001066 2211 MOVS r2,#0x11 +001068 2100 MOVS r1,#0 +00106a 2029 MOVS r0,#0x29 +00106c f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1248 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x07,0x90,0x00,0x00,0x00,0x00,0xf0,0x20); +001070 2032 MOVS r0,#0x32 +001072 f7fffffe BL delayUs +001076 2020 MOVS r0,#0x20 +001078 21f0 MOVS r1,#0xf0 +00107a 2200 MOVS r2,#0 +00107c 9202 STR r2,[sp,#8] +00107e 9203 STR r2,[sp,#0xc] +001080 9200 STR r2,[sp,#0] +001082 2390 MOVS r3,#0x90 +001084 9201 STR r2,[sp,#4] +001086 9104 STR r1,[sp,#0x10] +001088 9005 STR r0,[sp,#0x14] +00108a 2207 MOVS r2,#7 +00108c 2100 MOVS r1,#0 +00108e 2029 MOVS r0,#0x29 +001090 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1249 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x18); +001094 2032 MOVS r0,#0x32 +001096 f7fffffe BL delayUs +00109a 2018 MOVS r0,#0x18 +00109c 215a MOVS r1,#0x5a +00109e 2341 MOVS r3,#0x41 +0010a0 2203 MOVS r2,#3 +0010a2 9100 STR r1,[sp,#0] +0010a4 9001 STR r0,[sp,#4] +0010a6 2100 MOVS r1,#0 +0010a8 2029 MOVS r0,#0x29 +0010aa f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1250 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0xef,0xbd,0xf7,0xde,0x7b,0xef,0xbd,0x07,0x08,0x08,0x0a,0x0c,0x0c,0x0c,0x0c,0x0c); +0010ae 2032 MOVS r0,#0x32 +0010b0 f7fffffe BL delayUs +0010b4 200c MOVS r0,#0xc +0010b6 900c STR r0,[sp,#0x30] +0010b8 900d STR r0,[sp,#0x34] +0010ba 900e STR r0,[sp,#0x38] +0010bc 210a MOVS r1,#0xa +0010be 2208 MOVS r2,#8 +0010c0 9208 STR r2,[sp,#0x20] +0010c2 900f STR r0,[sp,#0x3c] +0010c4 9209 STR r2,[sp,#0x24] +0010c6 910a STR r1,[sp,#0x28] +0010c8 900b STR r0,[sp,#0x2c] +0010ca 2007 MOVS r0,#7 +0010cc 21bd MOVS r1,#0xbd +0010ce 22ef MOVS r2,#0xef +0010d0 237b MOVS r3,#0x7b +0010d2 9304 STR r3,[sp,#0x10] +0010d4 9205 STR r2,[sp,#0x14] +0010d6 9106 STR r1,[sp,#0x18] +0010d8 9007 STR r0,[sp,#0x1c] +0010da 20de MOVS r0,#0xde +0010dc 21f7 MOVS r1,#0xf7 +0010de 22bd MOVS r2,#0xbd +0010e0 23ef MOVS r3,#0xef +0010e2 9300 STR r3,[sp,#0] +0010e4 9201 STR r2,[sp,#4] +0010e6 9102 STR r1,[sp,#8] +0010e8 9003 STR r0,[sp,#0xc] +0010ea 2380 MOVS r3,#0x80 +0010ec 2211 MOVS r2,#0x11 +0010ee 2100 MOVS r1,#0 +0010f0 2029 MOVS r0,#0x29 +0010f2 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1251 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x0c,0x0c,0x0c,0x5c,0x09,0xa8,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0x5a); +0010f6 2032 MOVS r0,#0x32 +0010f8 f7fffffe BL delayUs +0010fc 205a MOVS r0,#0x5a +0010fe 21aa MOVS r1,#0xaa +001100 910c STR r1,[sp,#0x30] +001102 910d STR r1,[sp,#0x34] +001104 910e STR r1,[sp,#0x38] +001106 9108 STR r1,[sp,#0x20] +001108 9109 STR r1,[sp,#0x24] +00110a 910a STR r1,[sp,#0x28] +00110c 22a8 MOVS r2,#0xa8 +00110e 2309 MOVS r3,#9 +001110 910b STR r1,[sp,#0x2c] +001112 9106 STR r1,[sp,#0x18] +001114 9304 STR r3,[sp,#0x10] +001116 9205 STR r2,[sp,#0x14] +001118 9107 STR r1,[sp,#0x1c] +00111a 900f STR r0,[sp,#0x3c] +00111c 205c MOVS r0,#0x5c +00111e 210c MOVS r1,#0xc +001120 9100 STR r1,[sp,#0] +001122 9101 STR r1,[sp,#4] +001124 2390 MOVS r3,#0x90 +001126 2211 MOVS r2,#0x11 +001128 9102 STR r1,[sp,#8] +00112a 9003 STR r0,[sp,#0xc] +00112c 2100 MOVS r1,#0 +00112e 2029 MOVS r0,#0x29 +001130 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1252 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xa0,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x09,0x04,0xff,0x00,0x80); +001134 2032 MOVS r0,#0x32 +001136 f7fffffe BL delayUs +00113a 2080 MOVS r0,#0x80 +00113c 2100 MOVS r1,#0 +00113e 22ff MOVS r2,#0xff +001140 2304 MOVS r3,#4 +001142 930c STR r3,[sp,#0x30] +001144 920d STR r2,[sp,#0x34] +001146 910e STR r1,[sp,#0x38] +001148 900f STR r0,[sp,#0x3c] +00114a 2009 MOVS r0,#9 +00114c 2159 MOVS r1,#0x59 +00114e 9108 STR r1,[sp,#0x20] +001150 9109 STR r1,[sp,#0x24] +001152 910a STR r1,[sp,#0x28] +001154 9104 STR r1,[sp,#0x10] +001156 9105 STR r1,[sp,#0x14] +001158 9106 STR r1,[sp,#0x18] +00115a 9107 STR r1,[sp,#0x1c] +00115c 9100 STR r1,[sp,#0] +00115e 9101 STR r1,[sp,#4] +001160 9102 STR r1,[sp,#8] +001162 23a0 MOVS r3,#0xa0 +001164 2211 MOVS r2,#0x11 +001166 9103 STR r1,[sp,#0xc] +001168 900b STR r0,[sp,#0x2c] +00116a 2100 MOVS r1,#0 +00116c 2029 MOVS r0,#0x29 +00116e f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1253 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x10,0xb0,0x80,0x00,0x04,0x20,0x00,0x01,0x08,0x40,0x00,0x02,0x10,0x80,0x00,0x04,0x00); +001172 2032 MOVS r0,#0x32 +001174 f7fffffe BL delayUs +001178 2000 MOVS r0,#0 +00117a 2104 MOVS r1,#4 +00117c 2380 MOVS r3,#0x80 +00117e 900c STR r0,[sp,#0x30] +001180 930b STR r3,[sp,#0x2c] +001182 910d STR r1,[sp,#0x34] +001184 900e STR r0,[sp,#0x38] +001186 2010 MOVS r0,#0x10 +001188 2102 MOVS r1,#2 +00118a 2200 MOVS r2,#0 +00118c 2340 MOVS r3,#0x40 +00118e 9307 STR r3,[sp,#0x1c] +001190 9208 STR r2,[sp,#0x20] +001192 9109 STR r1,[sp,#0x24] +001194 900a STR r0,[sp,#0x28] +001196 2008 MOVS r0,#8 +001198 2101 MOVS r1,#1 +00119a 2320 MOVS r3,#0x20 +00119c 9303 STR r3,[sp,#0xc] +00119e 9204 STR r2,[sp,#0x10] +0011a0 9105 STR r1,[sp,#0x14] +0011a2 9006 STR r0,[sp,#0x18] +0011a4 2004 MOVS r0,#4 +0011a6 4611 MOV r1,r2 +0011a8 2280 MOVS r2,#0x80 +0011aa 23b0 MOVS r3,#0xb0 +0011ac 9200 STR r2,[sp,#0] +0011ae 9101 STR r1,[sp,#4] +0011b0 9002 STR r0,[sp,#8] +0011b2 2210 MOVS r2,#0x10 +0011b4 2100 MOVS r1,#0 +0011b6 2029 MOVS r0,#0x29 +0011b8 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1254 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x19); +0011bc 2032 MOVS r0,#0x32 +0011be f7fffffe BL delayUs +0011c2 2019 MOVS r0,#0x19 +0011c4 215a MOVS r1,#0x5a +0011c6 2341 MOVS r3,#0x41 +0011c8 2203 MOVS r2,#3 +0011ca 9100 STR r1,[sp,#0] +0011cc 9001 STR r0,[sp,#4] +0011ce 2100 MOVS r1,#0 +0011d0 2029 MOVS r0,#0x29 +0011d2 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1255 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0xc0,0xaf,0xa3,0x9b,0x92,0x8d,0x8a,0x86,0x84,0x83,0x82,0x81,0x00,0x50,0xf6,0xcf); +0011d6 2032 MOVS r0,#0x32 +0011d8 f7fffffe BL delayUs +0011dc 20cf MOVS r0,#0xcf +0011de 21f6 MOVS r1,#0xf6 +0011e0 2250 MOVS r2,#0x50 +0011e2 2300 MOVS r3,#0 +0011e4 930c STR r3,[sp,#0x30] +0011e6 920d STR r2,[sp,#0x34] +0011e8 910e STR r1,[sp,#0x38] +0011ea 900f STR r0,[sp,#0x3c] +0011ec 2081 MOVS r0,#0x81 +0011ee 2182 MOVS r1,#0x82 +0011f0 2283 MOVS r2,#0x83 +0011f2 2384 MOVS r3,#0x84 +0011f4 9308 STR r3,[sp,#0x20] +0011f6 9209 STR r2,[sp,#0x24] +0011f8 910a STR r1,[sp,#0x28] +0011fa 900b STR r0,[sp,#0x2c] +0011fc 2086 MOVS r0,#0x86 +0011fe 218a MOVS r1,#0x8a +001200 228d MOVS r2,#0x8d +001202 2392 MOVS r3,#0x92 +001204 9304 STR r3,[sp,#0x10] +001206 9205 STR r2,[sp,#0x14] +001208 9106 STR r1,[sp,#0x18] +00120a 9007 STR r0,[sp,#0x1c] +00120c 209b MOVS r0,#0x9b +00120e 21a3 MOVS r1,#0xa3 +001210 22af MOVS r2,#0xaf +001212 23c0 MOVS r3,#0xc0 +001214 9300 STR r3,[sp,#0] +001216 9201 STR r2,[sp,#4] +001218 9102 STR r1,[sp,#8] +00121a 9003 STR r0,[sp,#0xc] +00121c 2380 MOVS r3,#0x80 +00121e 2211 MOVS r2,#0x11 +001220 2100 MOVS r1,#0 +001222 2029 MOVS r0,#0x29 +001224 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1256 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0xfc,0x2f,0xf3,0xef,0xcf,0xbf,0x0f,0xff,0xaf,0xb5,0x71,0x0e,0x6c,0x4a,0x69,0x08); +001228 2032 MOVS r0,#0x32 +00122a f7fffffe BL delayUs +00122e 2008 MOVS r0,#8 +001230 2169 MOVS r1,#0x69 +001232 224a MOVS r2,#0x4a +001234 236c MOVS r3,#0x6c +001236 930c STR r3,[sp,#0x30] +001238 920d STR r2,[sp,#0x34] +00123a 910e STR r1,[sp,#0x38] +00123c 900f STR r0,[sp,#0x3c] +00123e 200e MOVS r0,#0xe +001240 2171 MOVS r1,#0x71 +001242 22b5 MOVS r2,#0xb5 +001244 23af MOVS r3,#0xaf +001246 9308 STR r3,[sp,#0x20] +001248 9209 STR r2,[sp,#0x24] +00124a 910a STR r1,[sp,#0x28] +00124c 900b STR r0,[sp,#0x2c] +00124e 20ff MOVS r0,#0xff +001250 210f MOVS r1,#0xf +001252 22bf MOVS r2,#0xbf +001254 23cf MOVS r3,#0xcf +001256 9304 STR r3,[sp,#0x10] +001258 9205 STR r2,[sp,#0x14] +00125a 9106 STR r1,[sp,#0x18] +00125c 9007 STR r0,[sp,#0x1c] +00125e 20ef MOVS r0,#0xef +001260 21f3 MOVS r1,#0xf3 +001262 222f MOVS r2,#0x2f +001264 23fc MOVS r3,#0xfc +001266 9300 STR r3,[sp,#0] +001268 9201 STR r2,[sp,#4] +00126a 9102 STR r1,[sp,#8] +00126c 9003 STR r0,[sp,#0xc] +00126e 2390 MOVS r3,#0x90 +001270 2211 MOVS r2,#0x11 +001272 2100 MOVS r1,#0 +001274 2029 MOVS r0,#0x29 +001276 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1257 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x05,0xa0,0x03,0x03,0x68,0x00); +00127a 2032 MOVS r0,#0x32 +00127c f7fffffe BL delayUs +001280 2000 MOVS r0,#0 +001282 2168 MOVS r1,#0x68 +001284 2203 MOVS r2,#3 +001286 9200 STR r2,[sp,#0] +001288 23a0 MOVS r3,#0xa0 +00128a 9201 STR r2,[sp,#4] +00128c 9102 STR r1,[sp,#8] +00128e 9003 STR r0,[sp,#0xc] +001290 2205 MOVS r2,#5 +001292 4601 MOV r1,r0 +001294 2029 MOVS r0,#0x29 +001296 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1258 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x1a); +00129a 2032 MOVS r0,#0x32 +00129c f7fffffe BL delayUs +0012a0 201a MOVS r0,#0x1a +0012a2 215a MOVS r1,#0x5a +0012a4 2341 MOVS r3,#0x41 +0012a6 2203 MOVS r2,#3 +0012a8 9100 STR r1,[sp,#0] +0012aa 9001 STR r0,[sp,#4] +0012ac 2100 MOVS r1,#0 +0012ae 2029 MOVS r0,#0x29 +0012b0 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1259 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x00,0x04,0x08,0x0c,0x00,0x10,0x14,0x18,0x1c,0x00,0x20,0x28,0x30,0x38,0x00,0x40); +0012b4 2032 MOVS r0,#0x32 +0012b6 f7fffffe BL delayUs +0012ba 2040 MOVS r0,#0x40 +0012bc 2100 MOVS r1,#0 +0012be 2238 MOVS r2,#0x38 +0012c0 2330 MOVS r3,#0x30 +0012c2 930c STR r3,[sp,#0x30] +0012c4 920d STR r2,[sp,#0x34] +0012c6 910e STR r1,[sp,#0x38] +0012c8 900f STR r0,[sp,#0x3c] +0012ca 2028 MOVS r0,#0x28 +0012cc 2120 MOVS r1,#0x20 +0012ce 2200 MOVS r2,#0 +0012d0 231c MOVS r3,#0x1c +0012d2 9308 STR r3,[sp,#0x20] +0012d4 9209 STR r2,[sp,#0x24] +0012d6 910a STR r1,[sp,#0x28] +0012d8 900b STR r0,[sp,#0x2c] +0012da 2018 MOVS r0,#0x18 +0012dc 2114 MOVS r1,#0x14 +0012de 2210 MOVS r2,#0x10 +0012e0 2300 MOVS r3,#0 +0012e2 9304 STR r3,[sp,#0x10] +0012e4 9205 STR r2,[sp,#0x14] +0012e6 9106 STR r1,[sp,#0x18] +0012e8 9007 STR r0,[sp,#0x1c] +0012ea 200c MOVS r0,#0xc +0012ec 2108 MOVS r1,#8 +0012ee 2204 MOVS r2,#4 +0012f0 9300 STR r3,[sp,#0] +0012f2 9201 STR r2,[sp,#4] +0012f4 9102 STR r1,[sp,#8] +0012f6 9003 STR r0,[sp,#0xc] +0012f8 2380 MOVS r3,#0x80 +0012fa 2211 MOVS r2,#0x11 +0012fc 2100 MOVS r1,#0 +0012fe 2029 MOVS r0,#0x29 +001300 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1260 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x48,0x50,0x58,0x00,0x60,0x68,0x70,0x78,0x00,0x80,0x88,0x90,0x98,0x00,0xa0,0xa8); +001304 2032 MOVS r0,#0x32 +001306 f7fffffe BL delayUs +00130a 20a8 MOVS r0,#0xa8 +00130c 21a0 MOVS r1,#0xa0 +00130e 2200 MOVS r2,#0 +001310 2398 MOVS r3,#0x98 +001312 930c STR r3,[sp,#0x30] +001314 920d STR r2,[sp,#0x34] +001316 910e STR r1,[sp,#0x38] +001318 900f STR r0,[sp,#0x3c] +00131a 2090 MOVS r0,#0x90 +00131c 2188 MOVS r1,#0x88 +00131e 2280 MOVS r2,#0x80 +001320 2300 MOVS r3,#0 +001322 9308 STR r3,[sp,#0x20] +001324 9209 STR r2,[sp,#0x24] +001326 910a STR r1,[sp,#0x28] +001328 900b STR r0,[sp,#0x2c] +00132a 2078 MOVS r0,#0x78 +00132c 2170 MOVS r1,#0x70 +00132e 2268 MOVS r2,#0x68 +001330 2360 MOVS r3,#0x60 +001332 9304 STR r3,[sp,#0x10] +001334 9205 STR r2,[sp,#0x14] +001336 9106 STR r1,[sp,#0x18] +001338 9007 STR r0,[sp,#0x1c] +00133a 2000 MOVS r0,#0 +00133c 2158 MOVS r1,#0x58 +00133e 2250 MOVS r2,#0x50 +001340 2348 MOVS r3,#0x48 +001342 9300 STR r3,[sp,#0] +001344 9201 STR r2,[sp,#4] +001346 9102 STR r1,[sp,#8] +001348 9003 STR r0,[sp,#0xc] +00134a 2390 MOVS r3,#0x90 +00134c 2211 MOVS r2,#0x11 +00134e 4601 MOV r1,r0 +001350 2029 MOVS r0,#0x29 +001352 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1261 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xa0,0xb0,0xb8,0x00,0xc0,0xc8,0xd0,0xd8,0x00,0xe0,0xe8,0xf0,0xf8,0x00,0xfc,0xfe,0xff); +001356 2032 MOVS r0,#0x32 +001358 f7fffffe BL delayUs +00135c 20ff MOVS r0,#0xff +00135e 21fe MOVS r1,#0xfe +001360 22fc MOVS r2,#0xfc +001362 2300 MOVS r3,#0 +001364 930c STR r3,[sp,#0x30] +001366 920d STR r2,[sp,#0x34] +001368 910e STR r1,[sp,#0x38] +00136a 900f STR r0,[sp,#0x3c] +00136c 20f8 MOVS r0,#0xf8 +00136e 21f0 MOVS r1,#0xf0 +001370 22e8 MOVS r2,#0xe8 +001372 23e0 MOVS r3,#0xe0 +001374 9308 STR r3,[sp,#0x20] +001376 9209 STR r2,[sp,#0x24] +001378 910a STR r1,[sp,#0x28] +00137a 900b STR r0,[sp,#0x2c] +00137c 2000 MOVS r0,#0 +00137e 21d8 MOVS r1,#0xd8 +001380 22d0 MOVS r2,#0xd0 +001382 23c8 MOVS r3,#0xc8 +001384 9304 STR r3,[sp,#0x10] +001386 9205 STR r2,[sp,#0x14] +001388 9106 STR r1,[sp,#0x18] +00138a 9007 STR r0,[sp,#0x1c] +00138c 20c0 MOVS r0,#0xc0 +00138e 2100 MOVS r1,#0 +001390 22b8 MOVS r2,#0xb8 +001392 23b0 MOVS r3,#0xb0 +001394 9300 STR r3,[sp,#0] +001396 9201 STR r2,[sp,#4] +001398 9102 STR r1,[sp,#8] +00139a 9003 STR r0,[sp,#0xc] +00139c 23a0 MOVS r3,#0xa0 +00139e 2211 MOVS r2,#0x11 +0013a0 2029 MOVS r0,#0x29 +0013a2 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1262 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xb0,0x00,0x00,0x04,0x08,0x0c,0x00,0x10,0x14,0x18,0x1c,0x00,0x20,0x28,0x30,0x38,0x00); +0013a6 2032 MOVS r0,#0x32 +0013a8 f7fffffe BL delayUs +0013ac 2000 MOVS r0,#0 +0013ae 2138 MOVS r1,#0x38 +0013b0 2230 MOVS r2,#0x30 +0013b2 2328 MOVS r3,#0x28 +0013b4 930c STR r3,[sp,#0x30] +0013b6 920d STR r2,[sp,#0x34] +0013b8 910e STR r1,[sp,#0x38] +0013ba 900f STR r0,[sp,#0x3c] +0013bc 2020 MOVS r0,#0x20 +0013be 2100 MOVS r1,#0 +0013c0 221c MOVS r2,#0x1c +0013c2 2318 MOVS r3,#0x18 +0013c4 9308 STR r3,[sp,#0x20] +0013c6 9209 STR r2,[sp,#0x24] +0013c8 910a STR r1,[sp,#0x28] +0013ca 900b STR r0,[sp,#0x2c] +0013cc 2014 MOVS r0,#0x14 +0013ce 2110 MOVS r1,#0x10 +0013d0 2200 MOVS r2,#0 +0013d2 230c MOVS r3,#0xc +0013d4 9304 STR r3,[sp,#0x10] +0013d6 9205 STR r2,[sp,#0x14] +0013d8 9106 STR r1,[sp,#0x18] +0013da 9007 STR r0,[sp,#0x1c] +0013dc 2008 MOVS r0,#8 +0013de 2104 MOVS r1,#4 +0013e0 9200 STR r2,[sp,#0] +0013e2 23b0 MOVS r3,#0xb0 +0013e4 9201 STR r2,[sp,#4] +0013e6 9102 STR r1,[sp,#8] +0013e8 9003 STR r0,[sp,#0xc] +0013ea 2211 MOVS r2,#0x11 +0013ec 2100 MOVS r1,#0 +0013ee 2029 MOVS r0,#0x29 +0013f0 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1263 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xc0,0x40,0x48,0x50,0x58,0x00,0x60,0x68,0x70,0x78,0x00,0x80,0x88,0x90,0x98,0x00,0xa0); +0013f4 2032 MOVS r0,#0x32 +0013f6 f7fffffe BL delayUs +0013fa 20a0 MOVS r0,#0xa0 +0013fc 2100 MOVS r1,#0 +0013fe 2298 MOVS r2,#0x98 +001400 2390 MOVS r3,#0x90 +001402 930c STR r3,[sp,#0x30] +001404 920d STR r2,[sp,#0x34] +001406 910e STR r1,[sp,#0x38] +001408 900f STR r0,[sp,#0x3c] +00140a 2088 MOVS r0,#0x88 +00140c 2180 MOVS r1,#0x80 +00140e 2200 MOVS r2,#0 +001410 2378 MOVS r3,#0x78 +001412 9308 STR r3,[sp,#0x20] +001414 9209 STR r2,[sp,#0x24] +001416 910a STR r1,[sp,#0x28] +001418 900b STR r0,[sp,#0x2c] +00141a 2070 MOVS r0,#0x70 +00141c 2168 MOVS r1,#0x68 +00141e 2260 MOVS r2,#0x60 +001420 2300 MOVS r3,#0 +001422 9304 STR r3,[sp,#0x10] +001424 9205 STR r2,[sp,#0x14] +001426 9106 STR r1,[sp,#0x18] +001428 9007 STR r0,[sp,#0x1c] +00142a 2058 MOVS r0,#0x58 +00142c 2150 MOVS r1,#0x50 +00142e 2248 MOVS r2,#0x48 +001430 2340 MOVS r3,#0x40 +001432 9300 STR r3,[sp,#0] +001434 9201 STR r2,[sp,#4] +001436 9102 STR r1,[sp,#8] +001438 9003 STR r0,[sp,#0xc] +00143a 23c0 MOVS r3,#0xc0 +00143c 2211 MOVS r2,#0x11 +00143e 2100 MOVS r1,#0 +001440 2029 MOVS r0,#0x29 +001442 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1264 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xd0,0xa8,0xb0,0xb8,0x00,0xc0,0xc8,0xd0,0xd8,0x00,0xe0,0xe8,0xf0,0xf8,0x00,0xfc,0xfe); +001446 2032 MOVS r0,#0x32 +001448 f7fffffe BL delayUs +00144c 20fe MOVS r0,#0xfe +00144e 21fc MOVS r1,#0xfc +001450 2200 MOVS r2,#0 +001452 23f8 MOVS r3,#0xf8 +001454 930c STR r3,[sp,#0x30] +001456 920d STR r2,[sp,#0x34] +001458 910e STR r1,[sp,#0x38] +00145a 900f STR r0,[sp,#0x3c] +00145c 20f0 MOVS r0,#0xf0 +00145e 21e8 MOVS r1,#0xe8 +001460 22e0 MOVS r2,#0xe0 +001462 2300 MOVS r3,#0 +001464 9308 STR r3,[sp,#0x20] +001466 9209 STR r2,[sp,#0x24] +001468 910a STR r1,[sp,#0x28] +00146a 900b STR r0,[sp,#0x2c] +00146c 20d8 MOVS r0,#0xd8 +00146e 21d0 MOVS r1,#0xd0 +001470 22c8 MOVS r2,#0xc8 +001472 23c0 MOVS r3,#0xc0 +001474 9304 STR r3,[sp,#0x10] +001476 9205 STR r2,[sp,#0x14] +001478 9106 STR r1,[sp,#0x18] +00147a 9007 STR r0,[sp,#0x1c] +00147c 2000 MOVS r0,#0 +00147e 21b8 MOVS r1,#0xb8 +001480 22b0 MOVS r2,#0xb0 +001482 23a8 MOVS r3,#0xa8 +001484 9300 STR r3,[sp,#0] +001486 9201 STR r2,[sp,#4] +001488 9102 STR r1,[sp,#8] +00148a 9003 STR r0,[sp,#0xc] +00148c 23d0 MOVS r3,#0xd0 +00148e 2211 MOVS r2,#0x11 +001490 4601 MOV r1,r0 +001492 2029 MOVS r0,#0x29 +001494 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1265 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xe0,0xff,0x00,0x00,0x04,0x08,0x0c,0x00,0x10,0x14,0x18,0x1c,0x00,0x20,0x28,0x30,0x38); +001498 2032 MOVS r0,#0x32 +00149a f7fffffe BL delayUs +00149e 2038 MOVS r0,#0x38 +0014a0 2130 MOVS r1,#0x30 +0014a2 2228 MOVS r2,#0x28 +0014a4 2320 MOVS r3,#0x20 +0014a6 930c STR r3,[sp,#0x30] +0014a8 920d STR r2,[sp,#0x34] +0014aa 910e STR r1,[sp,#0x38] +0014ac 900f STR r0,[sp,#0x3c] +0014ae 2000 MOVS r0,#0 +0014b0 211c MOVS r1,#0x1c +0014b2 2218 MOVS r2,#0x18 +0014b4 2314 MOVS r3,#0x14 +0014b6 9308 STR r3,[sp,#0x20] +0014b8 9209 STR r2,[sp,#0x24] +0014ba 910a STR r1,[sp,#0x28] +0014bc 900b STR r0,[sp,#0x2c] +0014be 2010 MOVS r0,#0x10 +0014c0 2100 MOVS r1,#0 +0014c2 220c MOVS r2,#0xc +0014c4 2308 MOVS r3,#8 +0014c6 9304 STR r3,[sp,#0x10] +0014c8 9205 STR r2,[sp,#0x14] +0014ca 9106 STR r1,[sp,#0x18] +0014cc 9007 STR r0,[sp,#0x1c] +0014ce 2004 MOVS r0,#4 +0014d0 23ff MOVS r3,#0xff +0014d2 9101 STR r1,[sp,#4] +0014d4 9300 STR r3,[sp,#0] +0014d6 9102 STR r1,[sp,#8] +0014d8 9003 STR r0,[sp,#0xc] +0014da 23e0 MOVS r3,#0xe0 +0014dc 2211 MOVS r2,#0x11 +0014de 2029 MOVS r0,#0x29 +0014e0 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1266 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xf0,0x00,0x40,0x48,0x50,0x58,0x00,0x60,0x68,0x70,0x78,0x00,0x80,0x88,0x90,0x98,0x00); +0014e4 2032 MOVS r0,#0x32 +0014e6 f7fffffe BL delayUs +0014ea 2000 MOVS r0,#0 +0014ec 2198 MOVS r1,#0x98 +0014ee 2290 MOVS r2,#0x90 +0014f0 2388 MOVS r3,#0x88 +0014f2 930c STR r3,[sp,#0x30] +0014f4 920d STR r2,[sp,#0x34] +0014f6 910e STR r1,[sp,#0x38] +0014f8 900f STR r0,[sp,#0x3c] +0014fa 2080 MOVS r0,#0x80 +0014fc 2100 MOVS r1,#0 +0014fe 2278 MOVS r2,#0x78 +001500 2370 MOVS r3,#0x70 +001502 9308 STR r3,[sp,#0x20] +001504 9209 STR r2,[sp,#0x24] +001506 910a STR r1,[sp,#0x28] +001508 900b STR r0,[sp,#0x2c] +00150a 2068 MOVS r0,#0x68 +00150c 2160 MOVS r1,#0x60 +00150e 2200 MOVS r2,#0 +001510 2358 MOVS r3,#0x58 +001512 9304 STR r3,[sp,#0x10] +001514 9205 STR r2,[sp,#0x14] +001516 9106 STR r1,[sp,#0x18] +001518 9007 STR r0,[sp,#0x1c] +00151a 2050 MOVS r0,#0x50 +00151c 2148 MOVS r1,#0x48 +00151e 2240 MOVS r2,#0x40 +001520 2300 MOVS r3,#0 +001522 9300 STR r3,[sp,#0] +001524 9201 STR r2,[sp,#4] +001526 9102 STR r1,[sp,#8] +001528 9003 STR r0,[sp,#0xc] +00152a 23f0 MOVS r3,#0xf0 +00152c 2211 MOVS r2,#0x11 +00152e 2100 MOVS r1,#0 +001530 2029 MOVS r0,#0x29 +001532 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1267 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x1b); +001536 2032 MOVS r0,#0x32 +001538 f7fffffe BL delayUs +00153c 201b MOVS r0,#0x1b +00153e 215a MOVS r1,#0x5a +001540 2341 MOVS r3,#0x41 +001542 2203 MOVS r2,#3 +001544 9100 STR r1,[sp,#0] +001546 9001 STR r0,[sp,#4] +001548 2100 MOVS r1,#0 +00154a 2029 MOVS r0,#0x29 +00154c f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1268 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0xa0,0xa8,0xb0,0xb8,0x00,0xc0,0xc8,0xd0,0xd8,0x00,0xe0,0xe8,0xf0,0xf8,0x00,0xfc); +001550 2032 MOVS r0,#0x32 +001552 f7fffffe BL delayUs +001556 20fc MOVS r0,#0xfc +001558 2100 MOVS r1,#0 +00155a 22f8 MOVS r2,#0xf8 +00155c 23f0 MOVS r3,#0xf0 +00155e 930c STR r3,[sp,#0x30] +001560 920d STR r2,[sp,#0x34] +001562 910e STR r1,[sp,#0x38] +001564 900f STR r0,[sp,#0x3c] +001566 20e8 MOVS r0,#0xe8 +001568 21e0 MOVS r1,#0xe0 +00156a 2200 MOVS r2,#0 +00156c 23d8 MOVS r3,#0xd8 +00156e 9308 STR r3,[sp,#0x20] +001570 9209 STR r2,[sp,#0x24] +001572 910a STR r1,[sp,#0x28] +001574 900b STR r0,[sp,#0x2c] +001576 20d0 MOVS r0,#0xd0 +001578 21c8 MOVS r1,#0xc8 +00157a 22c0 MOVS r2,#0xc0 +00157c 2300 MOVS r3,#0 +00157e 9304 STR r3,[sp,#0x10] +001580 9205 STR r2,[sp,#0x14] +001582 9106 STR r1,[sp,#0x18] +001584 9007 STR r0,[sp,#0x1c] +001586 20b8 MOVS r0,#0xb8 +001588 21b0 MOVS r1,#0xb0 +00158a 22a8 MOVS r2,#0xa8 +00158c 23a0 MOVS r3,#0xa0 +00158e 9300 STR r3,[sp,#0] +001590 9201 STR r2,[sp,#4] +001592 9102 STR r1,[sp,#8] +001594 9003 STR r0,[sp,#0xc] +001596 2380 MOVS r3,#0x80 +001598 2211 MOVS r2,#0x11 +00159a 2100 MOVS r1,#0 +00159c 2029 MOVS r0,#0x29 +00159e f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1269 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x05,0x90,0xfe,0xff,0x00,0x00); +0015a2 2032 MOVS r0,#0x32 +0015a4 f7fffffe BL delayUs +0015a8 2000 MOVS r0,#0 +0015aa 22ff MOVS r2,#0xff +0015ac 23fe MOVS r3,#0xfe +0015ae 9002 STR r0,[sp,#8] +0015b0 9300 STR r3,[sp,#0] +0015b2 9201 STR r2,[sp,#4] +0015b4 9003 STR r0,[sp,#0xc] +0015b6 2390 MOVS r3,#0x90 +0015b8 2205 MOVS r2,#5 +0015ba 4601 MOV r1,r0 +0015bc 2029 MOVS r0,#0x29 +0015be f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1270 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x20); +0015c2 2032 MOVS r0,#0x32 +0015c4 f7fffffe BL delayUs +0015c8 2020 MOVS r0,#0x20 +0015ca 215a MOVS r1,#0x5a +0015cc 2341 MOVS r3,#0x41 +0015ce 2203 MOVS r2,#3 +0015d0 9100 STR r1,[sp,#0] +0015d2 9001 STR r0,[sp,#4] +0015d4 2100 MOVS r1,#0 +0015d6 2029 MOVS r0,#0x29 +0015d8 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1271 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x08,0x80,0x81,0x00,0x00,0x00,0x00,0x00,0x00); +0015dc 2032 MOVS r0,#0x32 +0015de f7fffffe BL delayUs +0015e2 2000 MOVS r0,#0 +0015e4 9003 STR r0,[sp,#0xc] +0015e6 9004 STR r0,[sp,#0x10] +0015e8 9005 STR r0,[sp,#0x14] +0015ea 2281 MOVS r2,#0x81 +0015ec 9006 STR r0,[sp,#0x18] +0015ee 9001 STR r0,[sp,#4] +0015f0 2380 MOVS r3,#0x80 +0015f2 9200 STR r2,[sp,#0] +0015f4 9002 STR r0,[sp,#8] +0015f6 2208 MOVS r2,#8 +0015f8 4601 MOV r1,r0 +0015fa 2029 MOVS r0,#0x29 +0015fc f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1272 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x22); +001600 2032 MOVS r0,#0x32 +001602 f7fffffe BL delayUs +001606 2022 MOVS r0,#0x22 +001608 215a MOVS r1,#0x5a +00160a 2341 MOVS r3,#0x41 +00160c 2203 MOVS r2,#3 +00160e 9100 STR r1,[sp,#0] +001610 9001 STR r0,[sp,#4] +001612 2100 MOVS r1,#0 +001614 2029 MOVS r0,#0x29 +001616 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1273 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x0e,0x80,0x2d,0xd3,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x9f,0x00); +00161a 2032 MOVS r0,#0x32 +00161c f7fffffe BL delayUs +001620 2000 MOVS r0,#0 +001622 219f MOVS r1,#0x9f +001624 2255 MOVS r2,#0x55 +001626 9209 STR r2,[sp,#0x24] +001628 920a STR r2,[sp,#0x28] +00162a 9205 STR r2,[sp,#0x14] +00162c 9206 STR r2,[sp,#0x18] +00162e 9207 STR r2,[sp,#0x1c] +001630 9208 STR r2,[sp,#0x20] +001632 910b STR r1,[sp,#0x2c] +001634 900c STR r0,[sp,#0x30] +001636 4610 MOV r0,r2 +001638 4611 MOV r1,r2 +00163a 2200 MOVS r2,#0 +00163c 23d3 MOVS r3,#0xd3 +00163e 9301 STR r3,[sp,#4] +001640 9202 STR r2,[sp,#8] +001642 9103 STR r1,[sp,#0xc] +001644 9004 STR r0,[sp,#0x10] +001646 202d MOVS r0,#0x2d +001648 2380 MOVS r3,#0x80 +00164a 220e MOVS r2,#0xe +00164c 2100 MOVS r1,#0 +00164e 9000 STR r0,[sp,#0] +001650 2029 MOVS r0,#0x29 +001652 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1274 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x23); +001656 2032 MOVS r0,#0x32 +001658 f7fffffe BL delayUs +00165c 2023 MOVS r0,#0x23 +00165e 215a MOVS r1,#0x5a +001660 2341 MOVS r3,#0x41 +001662 2203 MOVS r2,#3 +001664 9100 STR r1,[sp,#0] +001666 9001 STR r0,[sp,#4] +001668 2100 MOVS r1,#0 +00166a 2029 MOVS r0,#0x29 +00166c f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1275 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x01,0x05,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); +001670 2032 MOVS r0,#0x32 +001672 f7fffffe BL delayUs +001676 2000 MOVS r0,#0 +001678 900c STR r0,[sp,#0x30] +00167a 900d STR r0,[sp,#0x34] +00167c 900e STR r0,[sp,#0x38] +00167e 900f STR r0,[sp,#0x3c] +001680 9008 STR r0,[sp,#0x20] +001682 9009 STR r0,[sp,#0x24] +001684 900a STR r0,[sp,#0x28] +001686 900b STR r0,[sp,#0x2c] +001688 9004 STR r0,[sp,#0x10] +00168a 9005 STR r0,[sp,#0x14] +00168c 9006 STR r0,[sp,#0x18] +00168e 9007 STR r0,[sp,#0x1c] +001690 2005 MOVS r0,#5 +001692 2100 MOVS r1,#0 +001694 2301 MOVS r3,#1 +001696 9001 STR r0,[sp,#4] +001698 9300 STR r3,[sp,#0] +00169a 9102 STR r1,[sp,#8] +00169c 9003 STR r0,[sp,#0xc] +00169e 2380 MOVS r3,#0x80 +0016a0 2211 MOVS r2,#0x11 +0016a2 2029 MOVS r0,#0x29 +0016a4 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1276 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x0d,0x90,0xff,0x0f,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0xff,0x07,0x25); +0016a8 2032 MOVS r0,#0x32 +0016aa f7fffffe BL delayUs +0016ae 2025 MOVS r0,#0x25 +0016b0 2107 MOVS r1,#7 +0016b2 22ff MOVS r2,#0xff +0016b4 2300 MOVS r3,#0 +0016b6 9308 STR r3,[sp,#0x20] +0016b8 9209 STR r2,[sp,#0x24] +0016ba 910a STR r1,[sp,#0x28] +0016bc 900b STR r0,[sp,#0x2c] +0016be 2203 MOVS r2,#3 +0016c0 9304 STR r3,[sp,#0x10] +0016c2 9306 STR r3,[sp,#0x18] +0016c4 4618 MOV r0,r3 +0016c6 4619 MOV r1,r3 +0016c8 9307 STR r3,[sp,#0x1c] +0016ca 9205 STR r2,[sp,#0x14] +0016cc 220f MOVS r2,#0xf +0016ce 23ff MOVS r3,#0xff +0016d0 9300 STR r3,[sp,#0] +0016d2 9201 STR r2,[sp,#4] +0016d4 9102 STR r1,[sp,#8] +0016d6 9003 STR r0,[sp,#0xc] +0016d8 2390 MOVS r3,#0x90 +0016da 220d MOVS r2,#0xd +0016dc 2100 MOVS r1,#0 +0016de 2029 MOVS r0,#0x29 +0016e0 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1277 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x24); +0016e4 2032 MOVS r0,#0x32 +0016e6 f7fffffe BL delayUs +0016ea 2024 MOVS r0,#0x24 +0016ec 215a MOVS r1,#0x5a +0016ee 2341 MOVS r3,#0x41 +0016f0 2203 MOVS r2,#3 +0016f2 9100 STR r1,[sp,#0] +0016f4 9001 STR r0,[sp,#4] +0016f6 2100 MOVS r1,#0 +0016f8 2029 MOVS r0,#0x29 +0016fa f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1278 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x00,0x03,0x00,0xff,0xff,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xa6); +0016fe 2032 MOVS r0,#0x32 +001700 f7fffffe BL delayUs +001704 20a6 MOVS r0,#0xa6 +001706 2152 MOVS r1,#0x52 +001708 2200 MOVS r2,#0 +00170a 920c STR r2,[sp,#0x30] +00170c 920d STR r2,[sp,#0x34] +00170e 9208 STR r2,[sp,#0x20] +001710 9209 STR r2,[sp,#0x24] +001712 920a STR r2,[sp,#0x28] +001714 920b STR r2,[sp,#0x2c] +001716 910e STR r1,[sp,#0x38] +001718 900f STR r0,[sp,#0x3c] +00171a 4610 MOV r0,r2 +00171c 4611 MOV r1,r2 +00171e 2220 MOVS r2,#0x20 +001720 23ff MOVS r3,#0xff +001722 9304 STR r3,[sp,#0x10] +001724 9205 STR r2,[sp,#0x14] +001726 9106 STR r1,[sp,#0x18] +001728 9007 STR r0,[sp,#0x1c] +00172a 2100 MOVS r1,#0 +00172c 2203 MOVS r2,#3 +00172e 9100 STR r1,[sp,#0] +001730 9303 STR r3,[sp,#0xc] +001732 9201 STR r2,[sp,#4] +001734 9102 STR r1,[sp,#8] +001736 2380 MOVS r3,#0x80 +001738 2211 MOVS r2,#0x11 +00173a 2029 MOVS r0,#0x29 +00173c f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1279 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x5a,0x5a,0x5a,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); +001740 2032 MOVS r0,#0x32 +001742 f7fffffe BL delayUs +001746 2000 MOVS r0,#0 +001748 900c STR r0,[sp,#0x30] +00174a 900d STR r0,[sp,#0x34] +00174c 900e STR r0,[sp,#0x38] +00174e 900f STR r0,[sp,#0x3c] +001750 9008 STR r0,[sp,#0x20] +001752 9009 STR r0,[sp,#0x24] +001754 900a STR r0,[sp,#0x28] +001756 900b STR r0,[sp,#0x2c] +001758 9004 STR r0,[sp,#0x10] +00175a 9005 STR r0,[sp,#0x14] +00175c 9006 STR r0,[sp,#0x18] +00175e 9007 STR r0,[sp,#0x1c] +001760 2055 MOVS r0,#0x55 +001762 215a MOVS r1,#0x5a +001764 9100 STR r1,[sp,#0] +001766 9101 STR r1,[sp,#4] +001768 2390 MOVS r3,#0x90 +00176a 2211 MOVS r2,#0x11 +00176c 9102 STR r1,[sp,#8] +00176e 9003 STR r0,[sp,#0xc] +001770 2100 MOVS r1,#0 +001772 2029 MOVS r0,#0x29 +001774 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1280 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x42,0x24); +001778 2032 MOVS r0,#0x32 +00177a f7fffffe BL delayUs +00177e 2024 MOVS r0,#0x24 +001780 2342 MOVS r3,#0x42 +001782 2202 MOVS r2,#2 +001784 2100 MOVS r1,#0 +001786 9000 STR r0,[sp,#0] +001788 2015 MOVS r0,#0x15 +00178a f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1281 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x90,0x00); +00178e 2032 MOVS r0,#0x32 +001790 f7fffffe BL delayUs +001794 2000 MOVS r0,#0 +001796 2390 MOVS r3,#0x90 +001798 2202 MOVS r2,#2 +00179a 4601 MOV r1,r0 +00179c 9000 STR r0,[sp,#0] +00179e 2015 MOVS r0,#0x15 +0017a0 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1282 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x2f); +0017a4 2032 MOVS r0,#0x32 +0017a6 f7fffffe BL delayUs +0017aa 202f MOVS r0,#0x2f +0017ac 215a MOVS r1,#0x5a +0017ae 2341 MOVS r3,#0x41 +0017b0 2203 MOVS r2,#3 +0017b2 9100 STR r1,[sp,#0] +0017b4 9001 STR r0,[sp,#4] +0017b6 2100 MOVS r1,#0 +0017b8 2029 MOVS r0,#0x29 +0017ba f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1283 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x19,0x00); +0017be 2032 MOVS r0,#0x32 +0017c0 f7fffffe BL delayUs +0017c4 2000 MOVS r0,#0 +0017c6 2319 MOVS r3,#0x19 +0017c8 2202 MOVS r2,#2 +0017ca 4601 MOV r1,r0 +0017cc 9000 STR r0,[sp,#0] +0017ce 2015 MOVS r0,#0x15 +0017d0 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1284 +;;;1285 +;;;1286 +;;;1287 +;;;1288 +;;;1289 +;;;1290 //----------------------LCD initial code End----------------------// +;;;1291 +;;;1292 // BIST MODE +;;;1293 // delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x02,0x5A); +;;;1294 //SPI FINISH +;;;1295 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x42, 0x24); +0017d4 2024 MOVS r0,#0x24 +0017d6 2342 MOVS r3,#0x42 +0017d8 2202 MOVS r2,#2 +0017da 2100 MOVS r1,#0 +0017dc 9000 STR r0,[sp,#0] +0017de 2039 MOVS r0,#0x39 +0017e0 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1296 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x90, 0x00); +0017e4 2000 MOVS r0,#0 +0017e6 2390 MOVS r3,#0x90 +0017e8 2202 MOVS r2,#2 +0017ea 4601 MOV r1,r0 +0017ec 9000 STR r0,[sp,#0] +0017ee 2039 MOVS r0,#0x39 +0017f0 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1297 //Blank select 2F +;;;1298 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x2F); +0017f4 202f MOVS r0,#0x2f +0017f6 215a MOVS r1,#0x5a +0017f8 2341 MOVS r3,#0x41 +0017fa 2203 MOVS r2,#3 +0017fc 9100 STR r1,[sp,#0] +0017fe 9001 STR r0,[sp,#4] +001800 2100 MOVS r1,#0 +001802 2039 MOVS r0,#0x39 +001804 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1299 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x19, 0x00); +001808 2000 MOVS r0,#0 +00180a 2319 MOVS r3,#0x19 +00180c 2202 MOVS r2,#2 +00180e 4601 MOV r1,r0 +001810 9000 STR r0,[sp,#0] +001812 2039 MOVS r0,#0x39 +001814 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1300 +;;;1301 // Video Mode Enable +;;;1302 // delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0xB7,0x59,0x02); +;;;1303 +;;;1304 hal_dsi_tx_ctrl_write_cmd(0x05, 0, 1, 0x11); +001818 2311 MOVS r3,#0x11 +00181a 2201 MOVS r2,#1 +00181c 2100 MOVS r1,#0 +00181e 2005 MOVS r0,#5 +001820 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1305 delayMs(5); +001824 2005 MOVS r0,#5 +001826 f7fffffe BL delayMs +;;;1306 hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_HIGH); +00182a 2101 MOVS r1,#1 +00182c 2013 MOVS r0,#0x13 +00182e f7fffffe BL hal_gpio_set_output_data +;;;1307 delayMs(5); +001832 2005 MOVS r0,#5 +001834 f7fffffe BL delayMs +;;;1308 // hal_gpio_set_output_data(IO_PAD_ADCIN, IO_LVL_HIGH); +;;;1309 hal_gpio_set_output_data(IO_PAD_AP_SWIRE, IO_LVL_HIGH); +001838 2101 MOVS r1,#1 +00183a 2004 MOVS r0,#4 +00183c f7fffffe BL hal_gpio_set_output_data +;;;1310 +;;;1311 // hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x51, 0xff, 0x0f); +;;;1312 // hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x53, 0x24); +;;;1313 // hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x55, 0x00); +;;;1314 +;;;1315 +;;;1316 +;;;1317 #endif +;;;1318 #endif +;;;1319 +;;;1320 #endif +;;;1321 +;;;1322 #if 0 +;;;1323 uint8_t data[10] = {0}; +;;;1324 hal_dsi_tx_ctrl_read_cmd(0x06, 0, 0x0A, 1, data); +;;;1325 TAU_LOGI("read[0x%02x]:%02x\n", 0x0A, data[0]); +;;;1326 #endif +;;;1327 +;;;1328 +;;;1329 /* exit send initial code mode*/ +;;;1330 hal_dsi_tx_ctrl_exit_init_panel_mode(); +001840 f7fffffe BL hal_dsi_tx_ctrl_exit_init_panel_mode +;;;1331 delayMs(10); +001844 200a MOVS r0,#0xa +001846 f7fffffe BL delayMs +;;;1332 } +00184a b011 ADD sp,sp,#0x44 +00184c bd00 POP {pc} +;;;1333 + ENDP + + + AREA ||i.open_mipi_rx||, CODE, READONLY, ALIGN=2 + + open_mipi_rx PROC +;;;1333 +;;;1334 static void open_mipi_rx(void) +000000 b510 PUSH {r4,lr} +;;;1335 { +;;;1336 /* TE */ +;;;1337 hal_gpio_set_mode(IO_PAD_AP_TE, IO_MODE_TEAR); +000002 2100 MOVS r1,#0 +000004 2003 MOVS r0,#3 +000006 f7fffffe BL hal_gpio_set_mode +;;;1338 +;;;1339 if (g_rx_ctrl_handle == NULL) +00000a 4832 LDR r0,|L13.212| +00000c 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +00000e 2800 CMP r0,#0 +000010 d103 BNE |L13.26| +;;;1340 { +;;;1341 /* rx ctrl handle */ +;;;1342 g_rx_ctrl_handle = hal_dsi_rx_ctrl_create_handle(); +000012 f7fffffe BL hal_dsi_rx_ctrl_create_handle +000016 492f LDR r1,|L13.212| +000018 6008 STR r0,[r1,#0] ; g_rx_ctrl_handle + |L13.26| +;;;1343 } +;;;1344 /* ò */ +;;;1345 g_rx_ctrl_handle->base_info.src_w = INPUT_WIDTH; +00001a 2087 MOVS r0,#0x87 +00001c 00c0 LSLS r0,r0,#3 +00001e 492d LDR r1,|L13.212| +000020 6809 LDR r1,[r1,#0] ; g_rx_ctrl_handle +000022 6008 STR r0,[r1,#0] +;;;1346 g_rx_ctrl_handle->base_info.src_h = INPUT_HEIGHT; +000024 482c LDR r0,|L13.216| +000026 492b LDR r1,|L13.212| +000028 6809 LDR r1,[r1,#0] ; g_rx_ctrl_handle +00002a 6048 STR r0,[r1,#4] +;;;1347 g_rx_ctrl_handle->base_info.dst_w = OUTPUT_WIDTH; +00002c 202d MOVS r0,#0x2d +00002e 0100 LSLS r0,r0,#4 +000030 4928 LDR r1,|L13.212| +000032 6809 LDR r1,[r1,#0] ; g_rx_ctrl_handle +000034 6088 STR r0,[r1,#8] +;;;1348 g_rx_ctrl_handle->base_info.dst_h = OUTPUT_HEIGHT; +000036 2019 MOVS r0,#0x19 +000038 0180 LSLS r0,r0,#6 +00003a 4926 LDR r1,|L13.212| +00003c 6809 LDR r1,[r1,#0] ; g_rx_ctrl_handle +00003e 60c8 STR r0,[r1,#0xc] +;;;1349 g_rx_ctrl_handle->base_info.src_frate = INPUT_FRAME_RATE; +000040 2000 MOVS r0,#0 +000042 4924 LDR r1,|L13.212| +000044 6809 LDR r1,[r1,#0] ; g_rx_ctrl_handle +000046 7408 STRB r0,[r1,#0x10] +;;;1350 g_rx_ctrl_handle->base_info.src_mode = INPUT_DATA_MODE; +000048 2001 MOVS r0,#1 +00004a 4922 LDR r1,|L13.212| +00004c 6809 LDR r1,[r1,#0] ; g_rx_ctrl_handle +00004e 7448 STRB r0,[r1,#0x11] +;;;1351 g_rx_ctrl_handle->rx_color_mode = INPUT_COLOR_MODE; +000050 2004 MOVS r0,#4 +000052 4920 LDR r1,|L13.212| +000054 6809 LDR r1,[r1,#0] ; g_rx_ctrl_handle +000056 7708 STRB r0,[r1,#0x1c] +;;;1352 g_rx_ctrl_handle->rx_lanes = INPUT_MIPI_LANE_NUM; +000058 491e LDR r1,|L13.212| +00005a 6809 LDR r1,[r1,#0] ; g_rx_ctrl_handle +00005c 7748 STRB r0,[r1,#0x1d] +;;;1353 g_rx_ctrl_handle->rx_nonburst_models = INPUT_VIDEO_MODEL; /* ɲ */ +00005e 2001 MOVS r0,#1 +000060 491c LDR r1,|L13.212| +000062 6809 LDR r1,[r1,#0] ; g_rx_ctrl_handle +000064 7788 STRB r0,[r1,#0x1e] +;;;1354 g_rx_ctrl_handle->rx_vc = INPUT_VC; +000066 2000 MOVS r0,#0 +000068 491a LDR r1,|L13.212| +00006a 6809 LDR r1,[r1,#0] ; g_rx_ctrl_handle +00006c 77c8 STRB r0,[r1,#0x1f] +;;;1355 g_rx_ctrl_handle->compress_en = INPUT_COMPRESS; +00006e 2100 MOVS r1,#0 +000070 4818 LDR r0,|L13.212| +000072 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000074 3020 ADDS r0,r0,#0x20 +000076 7001 STRB r1,[r0,#0] +;;;1356 g_rx_ctrl_handle->rx_hsclk_rate = INPUT_MIPI_LANE_RATE; +000078 4818 LDR r0,|L13.220| +00007a 4916 LDR r1,|L13.212| +00007c 6809 LDR r1,[r1,#0] ; g_rx_ctrl_handle +00007e 6248 STR r0,[r1,#0x24] +;;;1357 g_rx_ctrl_handle->cus_dcs_entry_table = g_cus_rx_dcs_execute_table; /* ע DCSб */ +000080 4917 LDR r1,|L13.224| +000082 4814 LDR r0,|L13.212| +000084 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000086 3080 ADDS r0,r0,#0x80 +000088 6281 STR r1,[r0,#0x28] +;;;1358 g_rx_ctrl_handle->rx_dcs_read_entry = ap_dcs_read; /* עdsc read ص,ѡ,˺Ϊʱcus_dcs_entry_tableִ */ +00008a 4916 LDR r1,|L13.228| +00008c 4811 LDR r0,|L13.212| +00008e 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000090 3080 ADDS r0,r0,#0x80 +000092 62c1 STR r1,[r0,#0x2c] +;;;1359 g_rx_ctrl_handle->pps_update_entry = pps_update_handle; +000094 4914 LDR r1,|L13.232| +000096 480f LDR r0,|L13.212| +000098 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +00009a 3080 ADDS r0,r0,#0x80 +00009c 6301 STR r1,[r0,#0x30] +;;;1360 g_rx_ctrl_handle->pq_marginal = true; //true:ˮơfalse +00009e 2101 MOVS r1,#1 +0000a0 480c LDR r0,|L13.212| +0000a2 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0000a4 30a0 ADDS r0,r0,#0xa0 +0000a6 7541 STRB r1,[r0,#0x15] +;;;1361 /* ǰԤPPS, AP PPS cmdҲ */ +;;;1362 +;;;1363 /* ʼrx ctrl */ +;;;1364 hal_dsi_rx_ctrl_init(g_rx_ctrl_handle); +0000a8 480a LDR r0,|L13.212| +0000aa 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0000ac f7fffffe BL hal_dsi_rx_ctrl_init +;;;1365 hal_dsi_rx_ctrl_set_cus_sync_line(g_rx_ctrl_handle, 2400);// lss add, ˺1600 +0000b0 214b MOVS r1,#0x4b +0000b2 0149 LSLS r1,r1,#5 +0000b4 4807 LDR r0,|L13.212| +0000b6 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0000b8 f7fffffe BL hal_dsi_rx_ctrl_set_cus_sync_line +;;;1366 // hal_dsi_rx_ctrl_hight_performan_mode(g_rx_ctrl_handle); +;;;1367 hal_dsi_rx_ctrl_set_cus_scld_filter(g_rx_ctrl_handle,rx_filter_1080_h_4_70,rx_filter_2240_v_4_70); +0000bc 4a0b LDR r2,|L13.236| +0000be 490c LDR r1,|L13.240| +0000c0 4804 LDR r0,|L13.212| +0000c2 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0000c4 f7fffffe BL hal_dsi_rx_ctrl_set_cus_scld_filter +;;;1368 /* rx ctrl */ +;;;1369 hal_dsi_rx_ctrl_start(g_rx_ctrl_handle); +0000c8 4802 LDR r0,|L13.212| +0000ca 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0000cc f7fffffe BL hal_dsi_rx_ctrl_start +;;;1370 //hal_dsi_rx_ctrl_set_auto_hw_filter(g_rx_ctrl_handle, true); +;;;1371 +;;;1372 // delayMs(20); +;;;1373 } +0000d0 bd10 POP {r4,pc} +;;;1374 + ENDP + +0000d2 0000 DCW 0x0000 + |L13.212| + DCD g_rx_ctrl_handle + |L13.216| + DCD 0x000008c4 + |L13.220| + DCD 0x4190ab00 + |L13.224| + DCD g_cus_rx_dcs_execute_table + |L13.228| + DCD ap_dcs_read + |L13.232| + DCD pps_update_handle + |L13.236| + DCD rx_filter_2240_v_4_70 + |L13.240| + DCD rx_filter_1080_h_4_70 + + AREA ||i.pps_update_handle||, CODE, READONLY, ALIGN=2 + + pps_update_handle PROC +;;;314 /* PPS update callback ڷֱлcase */ +;;;315 static bool pps_update_handle(uint8_t *pps, uint8_t size, uint32_t pic_width, uint32_t pic_height) +000000 b5f8 PUSH {r3-r7,lr} +;;;316 { +000002 4606 MOV r6,r0 +000004 460f MOV r7,r1 +000006 4614 MOV r4,r2 +000008 461d MOV r5,r3 +;;;317 /* AVDD ϵ, ڽϢPPS */ +;;;318 // hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_HIGH); +;;;319 // hal_dsi_rx_ctrl_set_sw_tear_mode(g_rx_ctrl_handle); +;;;320 if (pic_width != g_rx_ctrl_handle->base_info.src_w || pic_height != g_rx_ctrl_handle->base_info.src_h) +00000a 4810 LDR r0,|L14.76| +00000c 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +00000e 6800 LDR r0,[r0,#0] +000010 42a0 CMP r0,r4 +000012 d104 BNE |L14.30| +000014 480d LDR r0,|L14.76| +000016 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000018 6840 LDR r0,[r0,#4] +00001a 42a8 CMP r0,r5 +00001c d014 BEQ |L14.72| + |L14.30| +;;;321 { +;;;322 +;;;323 /* PPS Update ҷֱʷ仯 */ +;;;324 g_rx_ctrl_handle->base_info.src_w = pic_width; +00001e 480b LDR r0,|L14.76| +000020 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000022 6004 STR r4,[r0,#0] +;;;325 g_rx_ctrl_handle->base_info.src_h = pic_height; +000024 4809 LDR r0,|L14.76| +000026 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000028 6045 STR r5,[r0,#4] +;;;326 g_rx_ctrl_handle->compress_en = true; +00002a 2101 MOVS r1,#1 +00002c 4807 LDR r0,|L14.76| +00002e 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000030 3020 ADDS r0,r0,#0x20 +000032 7001 STRB r1,[r0,#0] +;;;327 /* עⲿֻPPSǰ Compression Mode Command */ +;;;328 +;;;329 g_tx_ctrl_handle->base_info.src_w = pic_width; +000034 4806 LDR r0,|L14.80| +000036 6800 LDR r0,[r0,#0] ; g_tx_ctrl_handle +000038 6204 STR r4,[r0,#0x20] +;;;330 g_tx_ctrl_handle->base_info.src_h = pic_height; +00003a 4805 LDR r0,|L14.80| +00003c 6800 LDR r0,[r0,#0] ; g_tx_ctrl_handle +00003e 6245 STR r5,[r0,#0x24] +;;;331 +;;;332 hal_dsi_rx_ctrl_toggle_resolution(g_rx_ctrl_handle); +000040 4802 LDR r0,|L14.76| +000042 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000044 f7fffffe BL hal_dsi_rx_ctrl_toggle_resolution + |L14.72| +;;;333 // hal_dsi_rx_ctrl_set_auto_hw_filter(g_rx_ctrl_handle, true); +;;;334 +;;;335 // hal_dsi_rx_ctrl_toggle_resolution(g_rx_ctrl_handle); +;;;336 // TAU_LOGD("resolution update w[%d] h[%d] compress[%d]\n", pic_width, pic_height, g_rx_ctrl_handle->compress_en); +;;;337 } +;;;338 // hal_dsi_rx_ctrl_set_hw_tear_mode(g_rx_ctrl_handle); +;;;339 // hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_HIGH); +;;;340 // TAU_LOGD("PPS Update\n"); +;;;341 return true; +000048 2001 MOVS r0,#1 +;;;342 } +00004a bdf8 POP {r3-r7,pc} +;;;343 + ENDP + + |L14.76| + DCD g_rx_ctrl_handle + |L14.80| + DCD g_tx_ctrl_handle + + AREA ||i.soft_te_timer_cb||, CODE, READONLY, ALIGN=2 + + soft_te_timer_cb PROC +;;;409 +;;;410 static void soft_te_timer_cb(void *data) +000000 b510 PUSH {r4,lr} +;;;411 { +000002 4604 MOV r4,r0 +;;;412 /* +;;;413 S8 ӵTP1.8V, AC ҪȵTP1.8 ٳʼ, TP ǰҪͨTEֻֻ +;;;414 */ +;;;415 if (panel_display_done == false) +000004 4809 LDR r0,|L15.44| +000006 7800 LDRB r0,[r0,#0] ; panel_display_done +000008 2800 CMP r0,#0 +00000a d10a BNE |L15.34| +;;;416 { +;;;417 hal_dsi_rx_ctrl_gen_a_tear_signal(g_rx_ctrl_handle); +00000c 4808 LDR r0,|L15.48| +00000e 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000010 f7fffffe BL hal_dsi_rx_ctrl_gen_a_tear_signal +;;;418 hal_timer_start(TE_TIMER, 17, soft_te_timer_cb, NULL); +000014 2300 MOVS r3,#0 +000016 4a07 LDR r2,|L15.52| +000018 2111 MOVS r1,#0x11 +00001a 2002 MOVS r0,#2 +00001c f7fffffe BL hal_timer_start +000020 e003 B |L15.42| + |L15.34| +;;;419 } +;;;420 else +;;;421 { +;;;422 hal_dsi_rx_ctrl_set_hw_tear_mode(g_rx_ctrl_handle); +000022 4803 LDR r0,|L15.48| +000024 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000026 f7fffffe BL hal_dsi_rx_ctrl_set_hw_tear_mode + |L15.42| +;;;423 } +;;;424 } +00002a bd10 POP {r4,pc} +;;;425 + ENDP + + |L15.44| + DCD panel_display_done + |L15.48| + DCD g_rx_ctrl_handle + |L15.52| + DCD soft_te_timer_cb + + AREA ||i.soft_te_timer_init||, CODE, READONLY, ALIGN=2 + + soft_te_timer_init PROC +;;;425 +;;;426 static void soft_te_timer_init() +000000 b510 PUSH {r4,lr} +;;;427 { +;;;428 TAU_LOGD("soft_te_timer_init\n"); +000002 bf00 NOP +000004 22ff MOVS r2,#0xff +000006 32ad ADDS r2,r2,#0xad +000008 a109 ADR r1,|L16.48| +00000a a00b ADR r0,|L16.56| +00000c f7fffffe BL LOG_printf +000010 bf00 NOP +;;;429 hal_dsi_rx_ctrl_set_sw_tear_mode(g_rx_ctrl_handle); +000012 4811 LDR r0,|L16.88| +000014 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000016 f7fffffe BL hal_dsi_rx_ctrl_set_sw_tear_mode +;;;430 hal_timer_init(TE_TIMER); +00001a 2002 MOVS r0,#2 +00001c f7fffffe BL hal_timer_init +;;;431 hal_timer_start(TE_TIMER, 1, soft_te_timer_cb, NULL); +000020 2300 MOVS r3,#0 +000022 4a0e LDR r2,|L16.92| +000024 2101 MOVS r1,#1 +000026 2002 MOVS r0,#2 +000028 f7fffffe BL hal_timer_start +;;;432 } +00002c bd10 POP {r4,pc} +;;;433 + ENDP + +00002e 0000 DCW 0x0000 + |L16.48| +000030 4d693853 DCB "Mi8SE",0 +000034 4500 +000036 00 DCB 0 +000037 00 DCB 0 + |L16.56| +000038 5b25735d DCB "[%s] (%04d) soft_te_timer_init\n",0 +00003c 20282530 +000040 34642920 +000044 736f6674 +000048 5f74655f +00004c 74696d65 +000050 725f696e +000054 69740a00 + |L16.88| + DCD g_rx_ctrl_handle + |L16.92| + DCD soft_te_timer_cb + + AREA ||i.swire_callback||, CODE, READONLY, ALIGN=2 + + swire_callback PROC +;;;1480 +;;;1481 static void swire_callback(void *data) +000000 b510 PUSH {r4,lr} +;;;1482 { +000002 4604 MOV r4,r0 +;;;1483 /* swire ǷҪһֱҪֻֻͬͬ */ +;;;1484 //if(start_display_on == false) +;;;1485 { +;;;1486 hal_timer_start(SWIRE_TIMER, 26, swire_timer_callback, NULL); +000004 2300 MOVS r3,#0 +000006 4a03 LDR r2,|L17.20| +000008 211a MOVS r1,#0x1a +00000a 2001 MOVS r0,#1 +00000c f7fffffe BL hal_timer_start +;;;1487 } +;;;1488 } +000010 bd10 POP {r4,pc} +;;;1489 + ENDP + +000012 0000 DCW 0x0000 + |L17.20| + DCD swire_timer_callback + + AREA ||i.swire_init||, CODE, READONLY, ALIGN=2 + + swire_init PROC +;;;1490 /* swire ʼ,ͨ hal_swire_start , ѭһֱ */ +;;;1491 static void swire_init() +000000 b508 PUSH {r3,lr} +;;;1492 { +;;;1493 hal_swire_open(DISABLE); +000002 2000 MOVS r0,#0 +000004 f7fffffe BL hal_swire_open +;;;1494 hal_swire_init(); +000008 f7fffffe BL hal_swire_init +;;;1495 /* swire ηɺص */ +;;;1496 hal_swire_register_callback(swire_callback); +00000c 480b LDR r0,|L18.60| +00000e f7fffffe BL hal_swire_register_callback +;;;1497 hal_swire_open(ENABLE); +000012 2001 MOVS r0,#1 +000014 f7fffffe BL hal_swire_open +;;;1498 //hal_swire_start(12, 12, 12, 12, 43); +;;;1499 hal_swire_start(12, 12, 12, 12, 36); //3~27,~,9.45V~7.43V +000018 2024 MOVS r0,#0x24 +00001a 230c MOVS r3,#0xc +00001c 461a MOV r2,r3 +00001e 4619 MOV r1,r3 +000020 9000 STR r0,[sp,#0] +000022 4618 MOV r0,r3 +000024 f7fffffe BL hal_swire_start +;;;1500 hal_timer_init(SWIRE_TIMER); +000028 2001 MOVS r0,#1 +00002a f7fffffe BL hal_timer_init +;;;1501 hal_timer_start(SWIRE_TIMER, 26, swire_timer_callback, NULL); +00002e 2300 MOVS r3,#0 +000030 4a03 LDR r2,|L18.64| +000032 211a MOVS r1,#0x1a +000034 2001 MOVS r0,#1 +000036 f7fffffe BL hal_timer_start +;;;1502 } +00003a bd08 POP {r3,pc} +;;;1503 + ENDP + + |L18.60| + DCD swire_callback + |L18.64| + DCD swire_timer_callback + + AREA ||i.swire_timer_callback||, CODE, READONLY, ALIGN=2 + + swire_timer_callback PROC +;;;1475 +;;;1476 static void swire_timer_callback(void *data) +000000 b538 PUSH {r3-r5,lr} +;;;1477 { +000002 4604 MOV r4,r0 +;;;1478 hal_swire_start(12, 12, 12, 12, swire_num); +000004 4804 LDR r0,|L19.24| +000006 7800 LDRB r0,[r0,#0] ; swire_num +000008 230c MOVS r3,#0xc +00000a 461a MOV r2,r3 +00000c 4619 MOV r1,r3 +00000e 9000 STR r0,[sp,#0] +000010 4618 MOV r0,r3 +000012 f7fffffe BL hal_swire_start +;;;1479 } +000016 bd38 POP {r3-r5,pc} +;;;1480 + ENDP + + |L19.24| + DCD swire_num + + AREA ||i.tx_display_on||, CODE, READONLY, ALIGN=2 + + tx_display_on PROC +;;;1449 +;;;1450 static void tx_display_on(void) +000000 b510 PUSH {r4,lr} +;;;1451 { +;;;1452 init_panel(); +000002 f7fffffe BL init_panel +;;;1453 // delayMs(150); +;;;1454 hal_dsi_tx_ctrl_start(g_tx_ctrl_handle); +000006 480d LDR r0,|L20.60| +000008 6800 LDR r0,[r0,#0] ; g_tx_ctrl_handle +00000a f7fffffe BL hal_dsi_tx_ctrl_start +;;;1455 delayMs(150); +00000e 2096 MOVS r0,#0x96 +000010 f7fffffe BL delayMs +;;;1456 delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x05, 0, 1, 0x29); +000014 2032 MOVS r0,#0x32 +000016 f7fffffe BL delayUs +00001a 2329 MOVS r3,#0x29 +00001c 2201 MOVS r2,#1 +00001e 2100 MOVS r1,#0 +000020 2005 MOVS r0,#5 +000022 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1457 +;;;1458 // delayMs(40); +;;;1459 // hal_gpio_set_output_data(IO_PAD_AP_SWIRE, IO_LVL_HIGH); +;;;1460 // delayMs(200); +;;;1461 // delayMs(50); +;;;1462 // hal_dsi_tx_ctrl_write_cmd(0x05, 0, 1, 0x29); +;;;1463 TAU_LOGD("write 29\n"); +000026 bf00 NOP +000028 4a05 LDR r2,|L20.64| +00002a a106 ADR r1,|L20.68| +00002c a007 ADR r0,|L20.76| +00002e f7fffffe BL LOG_printf +000032 bf00 NOP +;;;1464 +;;;1465 /* if(g_resolution_change) +;;;1466 { +;;;1467 hal_dsi_rx_ctrl_toggle_resolution(g_rx_ctrl_handle); +;;;1468 //hal_dsi_rx_ctrl_set_auto_hw_filter(g_rx_ctrl_handle, true); +;;;1469 TAU_LOGD("resolutio toggle\n"); +;;;1470 } +;;;1471 */ +;;;1472 panel_display_done = true; +000034 2001 MOVS r0,#1 +000036 490b LDR r1,|L20.100| +000038 7008 STRB r0,[r1,#0] +;;;1473 +;;;1474 } +00003a bd10 POP {r4,pc} +;;;1475 + ENDP + + |L20.60| + DCD g_tx_ctrl_handle + |L20.64| + DCD 0x000005b7 + |L20.68| +000044 4d693853 DCB "Mi8SE",0 +000048 4500 +00004a 00 DCB 0 +00004b 00 DCB 0 + |L20.76| +00004c 5b25735d DCB "[%s] (%04d) write 29\n",0 +000050 20282530 +000054 34642920 +000058 77726974 +00005c 65203239 +000060 0a00 +000062 00 DCB 0 +000063 00 DCB 0 + |L20.100| + DCD panel_display_done + + AREA ||i.tx_panel_reset||, CODE, READONLY, ALIGN=1 + + tx_panel_reset PROC +;;;470 +;;;471 static void tx_panel_reset(void) +000000 b510 PUSH {r4,lr} +;;;472 { +;;;473 #ifdef USE_WL518_INTERNAL_FLASH +;;;474 hal_system_share_flash_mode(true);//*******************************************ǷҪflash,򿪵ĻҪFLASHֱӽBINļ¼518,رҪFLASH +;;;475 #endif +;;;476 +;;;477 hal_dsi_tx_ctrl_panel_reset_pin(IO_LVL_HIGH); +000002 2001 MOVS r0,#1 +000004 f7fffffe BL hal_dsi_tx_ctrl_panel_reset_pin +;;;478 delayMs(10); //10ms +000008 200a MOVS r0,#0xa +00000a f7fffffe BL delayMs +;;;479 hal_dsi_tx_ctrl_panel_reset_pin(IO_LVL_LOW); +00000e 2000 MOVS r0,#0 +000010 f7fffffe BL hal_dsi_tx_ctrl_panel_reset_pin +;;;480 delayMs(10); //10ms +000014 200a MOVS r0,#0xa +000016 f7fffffe BL delayMs +;;;481 hal_dsi_tx_ctrl_panel_reset_pin(IO_LVL_HIGH); +00001a 2001 MOVS r0,#1 +00001c f7fffffe BL hal_dsi_tx_ctrl_panel_reset_pin +;;;482 delayMs(30); +000020 201e MOVS r0,#0x1e +000022 f7fffffe BL delayMs +;;;483 } +000026 bd10 POP {r4,pc} +;;;484 + ENDP + + + AREA ||.constdata||, DATA, READONLY, ALIGN=2 + + g_cus_rx_dcs_execute_table + DCD 0x00000029 + DCD ap_set_display_on +000008 01000000 DCB 0x01,0x00,0x00,0x00 + DCD 0x00000028 + DCD ap_set_display_off +000014 01000000 DCB 0x01,0x00,0x00,0x00 + DCD 0x00000051 + DCD ap_set_backlight +000020 00000000 DCB 0x00,0x00,0x00,0x00 + DCD 0x00000010 + DCD ap_set_enter_sleep_mode +00002c 01000000 DCB 0x01,0x00,0x00,0x00 + DCD 0x00000011 + DCD ap_set_exit_sleep_mode +000038 01000000 DCB 0x01,0x00,0x00,0x00 + DCD 0x00000000 + DCD 0x00000000 +000044 00000000 DCB 0x00,0x00,0x00,0x00 + + AREA ||.data||, DATA, ALIGN=2 + + g_rx_ctrl_handle + DCD 0x00000000 + g_tx_ctrl_handle + DCD 0x00000000 + start_display_on +000008 01 DCB 0x01 + panel_display_done +000009 00 DCB 0x00 + g_resolution_change +00000a 00 DCB 0x00 + swire_num +00000b 26 DCB 0x26 + read_bl_data +00000c 0000 DCW 0x0000 + read_bl_data_bak +00000e 0000 DCW 0x0000 + loop_count + DCD 0x00000000 + rx_filter_1080_h_4_70 + DCD 0xe0f9503e + DCD 0x0000000e + DCD 0xe10d5039 + DCD 0x0000000e + DCD 0xe9214e34 + DCD 0x0000000e + DCD 0xe9354e2f + DCD 0x0000000e + DCD 0xf1494c2a + DCD 0x0000000e + DCD 0xf95d4a25 + DCD 0x0000000e + DCD 0x01714820 + DCD 0x0000000f + DCD 0x1185421c + DCD 0x0000000f + DCD 0x21954017 + DCD 0x0000000f + DCD 0x29a93c13 + DCD 0x0000000f + DCD 0x39bd380e + DCD 0x0000000f + DCD 0x51cd320a + DCD 0x0000000f + DCD 0x61e12c06 + DCD 0x0000000f + DCD 0x79f12602 + DCD 0x0000000f + DCD 0x92011fff + DCD 0x0000000f + DCD 0xaa1119fb + DCD 0x0000000f + DCD 0xc22111f8 + DCD 0x0000000f + DCD 0xda3109f5 + DCD 0x0000000f + DCD 0xfa3d01f2 + DCD 0x0000000f + DCD 0x124cf9ef + DCD 0x00000000 + DCD 0x3258f1ec + DCD 0x00000000 + DCD 0x5264e7ea + DCD 0x00000000 + DCD 0x7270dfe7 + DCD 0x00000000 + DCD 0x9a78d5e5 + DCD 0x00000000 + DCD 0xba80cbe4 + DCD 0x00000000 + DCD 0xe284c3e2 + DCD 0x00000000 + DCD 0x0290b9e0 + DCD 0x00000001 + DCD 0x2a94afdf + DCD 0x00000001 + DCD 0x5298a5de + DCD 0x00000001 + DCD 0x7a9c9bdd + DCD 0x00000001 + DCD 0xa29c91dd + DCD 0x00000001 + DCD 0xcaa087dc + DCD 0x00000001 + rx_filter_2240_v_4_70 + DCD 0xe0f9503e + DCD 0x0000000e + DCD 0xe10d5039 + DCD 0x0000000e + DCD 0xe9214e34 + DCD 0x0000000e + DCD 0xe9354e2f + DCD 0x0000000e + DCD 0xf1494c2a + DCD 0x0000000e + DCD 0xf95d4a25 + DCD 0x0000000e + DCD 0x01714820 + DCD 0x0000000f + DCD 0x1185421c + DCD 0x0000000f + DCD 0x21954017 + DCD 0x0000000f + DCD 0x29a93c13 + DCD 0x0000000f + DCD 0x39bd380e + DCD 0x0000000f + DCD 0x51cd320a + DCD 0x0000000f + DCD 0x61e12c06 + DCD 0x0000000f + DCD 0x79f12602 + DCD 0x0000000f + DCD 0x92011fff + DCD 0x0000000f + DCD 0xaa1119fb + DCD 0x0000000f + DCD 0xc22111f8 + DCD 0x0000000f + DCD 0xda3109f5 + DCD 0x0000000f + DCD 0xfa3d01f2 + DCD 0x0000000f + DCD 0x124cf9ef + DCD 0x00000000 + DCD 0x3258f1ec + DCD 0x00000000 + DCD 0x5264e7ea + DCD 0x00000000 + DCD 0x7270dfe7 + DCD 0x00000000 + DCD 0x9a78d5e5 + DCD 0x00000000 + DCD 0xba80cbe4 + DCD 0x00000000 + DCD 0xe284c3e2 + DCD 0x00000000 + DCD 0x0290b9e0 + DCD 0x00000001 + DCD 0x2a94afdf + DCD 0x00000001 + DCD 0x5298a5de + DCD 0x00000001 + DCD 0x7a9c9bdd + DCD 0x00000001 + DCD 0xa29c91dd + DCD 0x00000001 + DCD 0xcaa087dc + DCD 0x00000001 + +;*** Start embedded assembler *** + +#line 1 "..\\..\\src\\app\\ap_demo\\ap_demo.c" + AREA ||.rev16_text||, CODE + THUMB + EXPORT |__asm___9_ap_demo_c_74605b7a____REV16| +#line 467 "C:\\Keil_v5\\ARM\\PACK\\ARM\\CMSIS\\5.5.1\\CMSIS\\Core\\Include\\cmsis_armcc.h" +|__asm___9_ap_demo_c_74605b7a____REV16| PROC +#line 468 + + rev16 r0, r0 + bx lr + ENDP + AREA ||.revsh_text||, CODE + THUMB + EXPORT |__asm___9_ap_demo_c_74605b7a____REVSH| +#line 482 +|__asm___9_ap_demo_c_74605b7a____REVSH| PROC +#line 483 + + revsh r0, r0 + bx lr + ENDP + +;*** End embedded assembler *** diff --git a/project/ISP_368/Listings/app_tp_for_custom_mi8se.txt b/project/ISP_368/Listings/app_tp_for_custom_mi8se.txt new file mode 100644 index 0000000..87751ca --- /dev/null +++ b/project/ISP_368/Listings/app_tp_for_custom_mi8se.txt @@ -0,0 +1,3284 @@ +; 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_for_custom_mi8se.o --asm_dir=.\Listings\ --list_dir=.\Listings\ --depend=.\objects\app_tp_for_custom_mi8se.d --cpu=Cortex-M0 --apcs=interwork -O0 --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..\..\src\app\ap_demo -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_for_custom_mi8se.crf ..\..\src\app\ap_demo\app_tp_for_custom_mi8se.c] + THUMB + + AREA ||i.app_tp_phone_analysis_data||, CODE, READONLY, ALIGN=2 + + REQUIRE _printf_percent + REQUIRE _printf_d + REQUIRE _printf_int_dec + app_tp_phone_analysis_data PROC +;;;505 **************************************************************************/ +;;;506 void app_tp_phone_analysis_data(uint8_t *rxbuffer, size_t rxbuffer_size, const uint8_t **txbuffer, size_t *txbuffer_size) +000000 b5f8 PUSH {r3-r7,lr} +;;;507 { +000002 4606 MOV r6,r0 +000004 460f MOV r7,r1 +000006 4614 MOV r4,r2 +000008 461d MOV r5,r3 +;;;508 #ifdef USE_FOR_SUMSUNG_S10 +;;;509 static uint8_t phone_A6_flag = 0; +;;;510 static uint8_t phone_FA_flag = 0; +;;;511 static uint8_t phone_86_flag = 0; +;;;512 +;;;513 if( (rxbuffer_size ==3) &&(rxbuffer[0] ==0xA6)) +00000a 2f03 CMP r7,#3 +00000c d14c BNE |L1.168| +00000e 7830 LDRB r0,[r6,#0] +000010 28a6 CMP r0,#0xa6 +000012 d149 BNE |L1.168| +;;;514 { +;;;515 printf("%d\n",phone_A6_flag); +000014 48f9 LDR r0,|L1.1020| +000016 7801 LDRB r1,[r0,#0] ; phone_A6_flag +000018 a0f9 ADR r0,|L1.1024| +00001a f7fffffe BL __2printf +;;;516 if (phone_A6_flag == 0) +00001e 48f7 LDR r0,|L1.1020| +000020 7800 LDRB r0,[r0,#0] ; phone_A6_flag +000022 2800 CMP r0,#0 +000024 d104 BNE |L1.48| +;;;517 { +;;;518 *txbuffer = phone_data_A6_0; +000026 48f7 LDR r0,|L1.1028| +000028 6020 STR r0,[r4,#0] +;;;519 *txbuffer_size = sizeof(phone_data_A6_0); +00002a 20d0 MOVS r0,#0xd0 +00002c 6028 STR r0,[r5,#0] +00002e e030 B |L1.146| + |L1.48| +;;;520 } +;;;521 else if (phone_A6_flag == 1) +000030 48f2 LDR r0,|L1.1020| +000032 7800 LDRB r0,[r0,#0] ; phone_A6_flag +000034 2801 CMP r0,#1 +000036 d104 BNE |L1.66| +;;;522 { +;;;523 *txbuffer = phone_data_A6_1; +000038 48f3 LDR r0,|L1.1032| +00003a 6020 STR r0,[r4,#0] +;;;524 *txbuffer_size = sizeof(phone_data_A6_1); +00003c 2004 MOVS r0,#4 +00003e 6028 STR r0,[r5,#0] +000040 e027 B |L1.146| + |L1.66| +;;;525 } +;;;526 else if (phone_A6_flag == 2) +000042 48ee LDR r0,|L1.1020| +000044 7800 LDRB r0,[r0,#0] ; phone_A6_flag +000046 2802 CMP r0,#2 +000048 d104 BNE |L1.84| +;;;527 { +;;;528 *txbuffer = phone_data_A6_2; +00004a 48f0 LDR r0,|L1.1036| +00004c 6020 STR r0,[r4,#0] +;;;529 *txbuffer_size = sizeof(phone_data_A6_2); +00004e 201c MOVS r0,#0x1c +000050 6028 STR r0,[r5,#0] +000052 e01e B |L1.146| + |L1.84| +;;;530 } +;;;531 else if (phone_A6_flag == 3) +000054 48e9 LDR r0,|L1.1020| +000056 7800 LDRB r0,[r0,#0] ; phone_A6_flag +000058 2803 CMP r0,#3 +00005a d104 BNE |L1.102| +;;;532 { +;;;533 *txbuffer = phone_data_A6_3; +00005c 48ec LDR r0,|L1.1040| +00005e 6020 STR r0,[r4,#0] +;;;534 *txbuffer_size = sizeof(phone_data_A6_3); +000060 2004 MOVS r0,#4 +000062 6028 STR r0,[r5,#0] +000064 e015 B |L1.146| + |L1.102| +;;;535 } +;;;536 else if (phone_A6_flag == 4) +000066 48e5 LDR r0,|L1.1020| +000068 7800 LDRB r0,[r0,#0] ; phone_A6_flag +00006a 2804 CMP r0,#4 +00006c d104 BNE |L1.120| +;;;537 { +;;;538 *txbuffer = phone_data_A6_4; +00006e 48e9 LDR r0,|L1.1044| +000070 6020 STR r0,[r4,#0] +;;;539 *txbuffer_size = sizeof(phone_data_A6_4); +000072 201c MOVS r0,#0x1c +000074 6028 STR r0,[r5,#0] +000076 e00c B |L1.146| + |L1.120| +;;;540 } +;;;541 else if (phone_A6_flag == 5) +000078 48e0 LDR r0,|L1.1020| +00007a 7800 LDRB r0,[r0,#0] ; phone_A6_flag +00007c 2805 CMP r0,#5 +00007e d104 BNE |L1.138| +;;;542 { +;;;543 *txbuffer = phone_data_A6_5; +000080 48e5 LDR r0,|L1.1048| +000082 6020 STR r0,[r4,#0] +;;;544 *txbuffer_size = sizeof(phone_data_A6_5); +000084 2004 MOVS r0,#4 +000086 6028 STR r0,[r5,#0] +000088 e003 B |L1.146| + |L1.138| +;;;545 } +;;;546 else +;;;547 { +;;;548 *txbuffer = phone_data_A6_4; +00008a 48e2 LDR r0,|L1.1044| +00008c 6020 STR r0,[r4,#0] +;;;549 *txbuffer_size = sizeof(phone_data_A6_4); +00008e 201c MOVS r0,#0x1c +000090 6028 STR r0,[r5,#0] + |L1.146| +;;;550 } +;;;551 phone_A6_flag++; +000092 48da LDR r0,|L1.1020| +000094 7800 LDRB r0,[r0,#0] ; phone_A6_flag +000096 1c40 ADDS r0,r0,#1 +000098 49d8 LDR r1,|L1.1020| +00009a 7008 STRB r0,[r1,#0] +;;;552 if (phone_A6_flag > 6) +00009c 4608 MOV r0,r1 +00009e 7800 LDRB r0,[r0,#0] ; phone_A6_flag +0000a0 2806 CMP r0,#6 +0000a2 dd01 BLE |L1.168| +;;;553 phone_A6_flag = 0; +0000a4 2000 MOVS r0,#0 +0000a6 7008 STRB r0,[r1,#0] + |L1.168| +;;;554 } +;;;555 if( (rxbuffer_size == 5) &&(rxbuffer[0] ==0xFA)) +0000a8 2f05 CMP r7,#5 +0000aa d12c BNE |L1.262| +0000ac 7830 LDRB r0,[r6,#0] +0000ae 28fa CMP r0,#0xfa +0000b0 d129 BNE |L1.262| +;;;556 { +;;;557 if (phone_FA_flag == 0) +0000b2 48da LDR r0,|L1.1052| +0000b4 7800 LDRB r0,[r0,#0] ; phone_FA_flag +0000b6 2800 CMP r0,#0 +0000b8 d104 BNE |L1.196| +;;;558 { +;;;559 *txbuffer = phone_data_FA_0; +0000ba 48d9 LDR r0,|L1.1056| +0000bc 6020 STR r0,[r4,#0] +;;;560 *txbuffer_size = sizeof(phone_data_FA_0); +0000be 2001 MOVS r0,#1 +0000c0 6028 STR r0,[r5,#0] +0000c2 e015 B |L1.240| + |L1.196| +;;;561 } +;;;562 else if (phone_FA_flag == 1) +0000c4 48d5 LDR r0,|L1.1052| +0000c6 7800 LDRB r0,[r0,#0] ; phone_FA_flag +0000c8 2801 CMP r0,#1 +0000ca d104 BNE |L1.214| +;;;563 { +;;;564 *txbuffer = phone_data_FA_1; +0000cc 48d5 LDR r0,|L1.1060| +0000ce 6020 STR r0,[r4,#0] +;;;565 *txbuffer_size = sizeof(phone_data_FA_1); +0000d0 2002 MOVS r0,#2 +0000d2 6028 STR r0,[r5,#0] +0000d4 e00c B |L1.240| + |L1.214| +;;;566 } +;;;567 else if (phone_FA_flag == 2) +0000d6 48d1 LDR r0,|L1.1052| +0000d8 7800 LDRB r0,[r0,#0] ; phone_FA_flag +0000da 2802 CMP r0,#2 +0000dc d104 BNE |L1.232| +;;;568 { +;;;569 *txbuffer = phone_data_FA_2; +0000de 48d2 LDR r0,|L1.1064| +0000e0 6020 STR r0,[r4,#0] +;;;570 *txbuffer_size = sizeof(phone_data_FA_2); +0000e2 2002 MOVS r0,#2 +0000e4 6028 STR r0,[r5,#0] +0000e6 e003 B |L1.240| + |L1.232| +;;;571 } +;;;572 else +;;;573 { +;;;574 *txbuffer = phone_data_FA_2; +0000e8 48cf LDR r0,|L1.1064| +0000ea 6020 STR r0,[r4,#0] +;;;575 *txbuffer_size = sizeof(phone_data_FA_2); +0000ec 2002 MOVS r0,#2 +0000ee 6028 STR r0,[r5,#0] + |L1.240| +;;;576 } +;;;577 +;;;578 phone_FA_flag++; +0000f0 48ca LDR r0,|L1.1052| +0000f2 7800 LDRB r0,[r0,#0] ; phone_FA_flag +0000f4 1c40 ADDS r0,r0,#1 +0000f6 49c9 LDR r1,|L1.1052| +0000f8 7008 STRB r0,[r1,#0] +;;;579 if (phone_FA_flag > 6) +0000fa 4608 MOV r0,r1 +0000fc 7800 LDRB r0,[r0,#0] ; phone_FA_flag +0000fe 2806 CMP r0,#6 +000100 dd01 BLE |L1.262| +;;;580 phone_FA_flag = 0; +000102 2000 MOVS r0,#0 +000104 7008 STRB r0,[r1,#0] + |L1.262| +;;;581 } +;;;582 +;;;583 if(rxbuffer_size ==1) +000106 2f01 CMP r7,#1 +000108 d17a BNE |L1.512| +;;;584 { +;;;585 switch(rxbuffer[0]) +00010a 7830 LDRB r0,[r6,#0] +00010c 2886 CMP r0,#0x86 +00010e d01e BEQ |L1.334| +000110 dc04 BGT |L1.284| +000112 2843 CMP r0,#0x43 +000114 d007 BEQ |L1.294| +000116 2883 CMP r0,#0x83 + |L1.280| +000118 d173 BNE |L1.514| +00011a e00e B |L1.314| + |L1.284| +00011c 2887 CMP r0,#0x87 +00011e d011 BEQ |L1.324| +000120 28c3 CMP r0,#0xc3 +000122 d1f9 BNE |L1.280| +000124 e004 B |L1.304| + |L1.294| +;;;586 { +;;;587 case 0x43: +;;;588 *txbuffer = phone_data_43; +000126 48c1 LDR r0,|L1.1068| +000128 6020 STR r0,[r4,#0] +;;;589 *txbuffer_size = sizeof(phone_data_43); +00012a 2008 MOVS r0,#8 +00012c 6028 STR r0,[r5,#0] +;;;590 break; +00012e e1ff B |L1.1328| + |L1.304| +;;;591 case 0xC3: +;;;592 *txbuffer = phone_data_43; +000130 48be LDR r0,|L1.1068| +000132 6020 STR r0,[r4,#0] +;;;593 *txbuffer_size = sizeof(phone_data_43); +000134 2008 MOVS r0,#8 +000136 6028 STR r0,[r5,#0] +;;;594 break; +000138 e1fa B |L1.1328| + |L1.314| +;;;595 case 0x83: +;;;596 *txbuffer = phone_data_43; +00013a 48bc LDR r0,|L1.1068| +00013c 6020 STR r0,[r4,#0] +;;;597 *txbuffer_size = sizeof(phone_data_43); +00013e 2008 MOVS r0,#8 +000140 6028 STR r0,[r5,#0] +;;;598 break; +000142 e1f5 B |L1.1328| + |L1.324| +;;;599 case 0x87: +;;;600 *txbuffer = phone_data_43; +000144 48b9 LDR r0,|L1.1068| +000146 6020 STR r0,[r4,#0] +;;;601 *txbuffer_size = sizeof(phone_data_43); +000148 2008 MOVS r0,#8 +00014a 6028 STR r0,[r5,#0] +;;;602 break; +00014c e1f0 B |L1.1328| + |L1.334| +;;;603 case 0x86: +;;;604 +;;;605 touch_recv_flag++; +00014e 48b8 LDR r0,|L1.1072| +000150 7800 LDRB r0,[r0,#0] ; touch_recv_flag +000152 1c40 ADDS r0,r0,#1 +000154 49b6 LDR r1,|L1.1072| +000156 7008 STRB r0,[r1,#0] +;;;606 // if((touch_recv_flag%2) == 0) +;;;607 { +;;;608 // printf("%d\n",phone_86_flag); +;;;609 // if(phone_86_flag<25) touch_recv_flag = 0; +;;;610 +;;;611 if (phone_86_flag == 0) +000158 48b6 LDR r0,|L1.1076| +00015a 7800 LDRB r0,[r0,#0] ; phone_86_flag +00015c 2800 CMP r0,#0 +00015e d109 BNE |L1.372| +;;;612 { +;;;613 *txbuffer = phone_data_86_0; +000160 48b5 LDR r0,|L1.1080| +000162 6020 STR r0,[r4,#0] +;;;614 *txbuffer_size = sizeof(phone_data_86_0); +000164 2008 MOVS r0,#8 +000166 6028 STR r0,[r5,#0] +;;;615 phone_86_flag++; +000168 48b2 LDR r0,|L1.1076| +00016a 7800 LDRB r0,[r0,#0] ; phone_86_flag +00016c 1c40 ADDS r0,r0,#1 +00016e 49b1 LDR r1,|L1.1076| +000170 7008 STRB r0,[r1,#0] +000172 e1db B |L1.1324| + |L1.372| +;;;616 } +;;;617 else if (phone_86_flag == 1) +000174 48af LDR r0,|L1.1076| +000176 7800 LDRB r0,[r0,#0] ; phone_86_flag +000178 2801 CMP r0,#1 +00017a d109 BNE |L1.400| +;;;618 { +;;;619 *txbuffer = phone_data_86_0; +00017c 48ae LDR r0,|L1.1080| +00017e 6020 STR r0,[r4,#0] +;;;620 *txbuffer_size = sizeof(phone_data_86_0); +000180 2008 MOVS r0,#8 +000182 6028 STR r0,[r5,#0] +;;;621 phone_86_flag++; +000184 48ab LDR r0,|L1.1076| +000186 7800 LDRB r0,[r0,#0] ; phone_86_flag +000188 1c40 ADDS r0,r0,#1 +00018a 49aa LDR r1,|L1.1076| +00018c 7008 STRB r0,[r1,#0] +00018e e1cd B |L1.1324| + |L1.400| +;;;622 } +;;;623 else if (phone_86_flag == 2) +000190 48a8 LDR r0,|L1.1076| +000192 7800 LDRB r0,[r0,#0] ; phone_86_flag +000194 2802 CMP r0,#2 +000196 d109 BNE |L1.428| +;;;624 { +;;;625 *txbuffer = phone_data_86_1; +000198 48a8 LDR r0,|L1.1084| +00019a 6020 STR r0,[r4,#0] +;;;626 *txbuffer_size = sizeof(phone_data_86_1); +00019c 2008 MOVS r0,#8 +00019e 6028 STR r0,[r5,#0] +;;;627 phone_86_flag++; +0001a0 48a4 LDR r0,|L1.1076| +0001a2 7800 LDRB r0,[r0,#0] ; phone_86_flag +0001a4 1c40 ADDS r0,r0,#1 +0001a6 49a3 LDR r1,|L1.1076| +0001a8 7008 STRB r0,[r1,#0] +0001aa e1bf B |L1.1324| + |L1.428| +;;;628 } +;;;629 else if (phone_86_flag == 3) +0001ac 48a1 LDR r0,|L1.1076| +0001ae 7800 LDRB r0,[r0,#0] ; phone_86_flag +0001b0 2803 CMP r0,#3 +0001b2 d109 BNE |L1.456| +;;;630 { +;;;631 *txbuffer = phone_data_86_1; +0001b4 48a1 LDR r0,|L1.1084| +0001b6 6020 STR r0,[r4,#0] +;;;632 *txbuffer_size = sizeof(phone_data_86_1); +0001b8 2008 MOVS r0,#8 +0001ba 6028 STR r0,[r5,#0] +;;;633 phone_86_flag++; +0001bc 489d LDR r0,|L1.1076| +0001be 7800 LDRB r0,[r0,#0] ; phone_86_flag +0001c0 1c40 ADDS r0,r0,#1 +0001c2 499c LDR r1,|L1.1076| +0001c4 7008 STRB r0,[r1,#0] +0001c6 e1b1 B |L1.1324| + |L1.456| +;;;634 } +;;;635 else if (phone_86_flag == 4) +0001c8 489a LDR r0,|L1.1076| +0001ca 7800 LDRB r0,[r0,#0] ; phone_86_flag +0001cc 2804 CMP r0,#4 +0001ce d109 BNE |L1.484| +;;;636 { +;;;637 *txbuffer = phone_data_86_2; +0001d0 489b LDR r0,|L1.1088| +0001d2 6020 STR r0,[r4,#0] +;;;638 *txbuffer_size = sizeof(phone_data_86_2); +0001d4 2008 MOVS r0,#8 +0001d6 6028 STR r0,[r5,#0] +;;;639 phone_86_flag++; +0001d8 4896 LDR r0,|L1.1076| +0001da 7800 LDRB r0,[r0,#0] ; phone_86_flag +0001dc 1c40 ADDS r0,r0,#1 +0001de 4995 LDR r1,|L1.1076| +0001e0 7008 STRB r0,[r1,#0] +0001e2 e1a3 B |L1.1324| + |L1.484| +;;;640 } +;;;641 else if (phone_86_flag == 5) +0001e4 4893 LDR r0,|L1.1076| +0001e6 7800 LDRB r0,[r0,#0] ; phone_86_flag +0001e8 2805 CMP r0,#5 +0001ea d10b BNE |L1.516| +;;;642 { +;;;643 *txbuffer = phone_data_86_3; +0001ec 4895 LDR r0,|L1.1092| +0001ee 6020 STR r0,[r4,#0] +;;;644 *txbuffer_size = sizeof(phone_data_86_3); +0001f0 2008 MOVS r0,#8 +0001f2 6028 STR r0,[r5,#0] +;;;645 phone_86_flag++; +0001f4 488f LDR r0,|L1.1076| +0001f6 7800 LDRB r0,[r0,#0] ; phone_86_flag +0001f8 1c40 ADDS r0,r0,#1 +0001fa 498e LDR r1,|L1.1076| +0001fc 7008 STRB r0,[r1,#0] +0001fe e195 B |L1.1324| + |L1.512| +000200 e197 B |L1.1330| + |L1.514| +000202 e194 B |L1.1326| + |L1.516| +;;;646 } +;;;647 else if (phone_86_flag == 6) +000204 488b LDR r0,|L1.1076| +000206 7800 LDRB r0,[r0,#0] ; phone_86_flag +000208 2806 CMP r0,#6 +00020a d109 BNE |L1.544| +;;;648 { +;;;649 *txbuffer = phone_data_86_4; +00020c 488e LDR r0,|L1.1096| +00020e 6020 STR r0,[r4,#0] +;;;650 *txbuffer_size = sizeof(phone_data_86_4); +000210 2008 MOVS r0,#8 +000212 6028 STR r0,[r5,#0] +;;;651 phone_86_flag++; +000214 4887 LDR r0,|L1.1076| +000216 7800 LDRB r0,[r0,#0] ; phone_86_flag +000218 1c40 ADDS r0,r0,#1 +00021a 4986 LDR r1,|L1.1076| +00021c 7008 STRB r0,[r1,#0] +00021e e185 B |L1.1324| + |L1.544| +;;;652 } +;;;653 else if (phone_86_flag == 7) +000220 4884 LDR r0,|L1.1076| +000222 7800 LDRB r0,[r0,#0] ; phone_86_flag +000224 2807 CMP r0,#7 +000226 d109 BNE |L1.572| +;;;654 { +;;;655 *txbuffer = phone_data_86_5; +000228 4888 LDR r0,|L1.1100| +00022a 6020 STR r0,[r4,#0] +;;;656 *txbuffer_size = sizeof(phone_data_86_5); +00022c 2008 MOVS r0,#8 +00022e 6028 STR r0,[r5,#0] +;;;657 phone_86_flag++; +000230 4880 LDR r0,|L1.1076| +000232 7800 LDRB r0,[r0,#0] ; phone_86_flag +000234 1c40 ADDS r0,r0,#1 +000236 497f LDR r1,|L1.1076| +000238 7008 STRB r0,[r1,#0] +00023a e177 B |L1.1324| + |L1.572| +;;;658 } +;;;659 else if (phone_86_flag == 8) +00023c 487d LDR r0,|L1.1076| +00023e 7800 LDRB r0,[r0,#0] ; phone_86_flag +000240 2808 CMP r0,#8 +000242 d109 BNE |L1.600| +;;;660 { +;;;661 *txbuffer = phone_data_86_6; +000244 4882 LDR r0,|L1.1104| +000246 6020 STR r0,[r4,#0] +;;;662 *txbuffer_size = sizeof(phone_data_86_6); +000248 2008 MOVS r0,#8 +00024a 6028 STR r0,[r5,#0] +;;;663 phone_86_flag++; +00024c 4879 LDR r0,|L1.1076| +00024e 7800 LDRB r0,[r0,#0] ; phone_86_flag +000250 1c40 ADDS r0,r0,#1 +000252 4978 LDR r1,|L1.1076| +000254 7008 STRB r0,[r1,#0] +000256 e169 B |L1.1324| + |L1.600| +;;;664 } +;;;665 else if (phone_86_flag == 9) +000258 4876 LDR r0,|L1.1076| +00025a 7800 LDRB r0,[r0,#0] ; phone_86_flag +00025c 2809 CMP r0,#9 +00025e d109 BNE |L1.628| +;;;666 { +;;;667 *txbuffer = phone_data_86_7; +000260 487c LDR r0,|L1.1108| +000262 6020 STR r0,[r4,#0] +;;;668 *txbuffer_size = sizeof(phone_data_86_7); +000264 2008 MOVS r0,#8 +000266 6028 STR r0,[r5,#0] +;;;669 phone_86_flag++; +000268 4872 LDR r0,|L1.1076| +00026a 7800 LDRB r0,[r0,#0] ; phone_86_flag +00026c 1c40 ADDS r0,r0,#1 +00026e 4971 LDR r1,|L1.1076| +000270 7008 STRB r0,[r1,#0] +000272 e15b B |L1.1324| + |L1.628| +;;;670 } +;;;671 else if (phone_86_flag == 10) +000274 486f LDR r0,|L1.1076| +000276 7800 LDRB r0,[r0,#0] ; phone_86_flag +000278 280a CMP r0,#0xa +00027a d109 BNE |L1.656| +;;;672 { +;;;673 *txbuffer = phone_data_86_8; +00027c 4876 LDR r0,|L1.1112| +00027e 6020 STR r0,[r4,#0] +;;;674 *txbuffer_size = sizeof(phone_data_86_8); +000280 2008 MOVS r0,#8 +000282 6028 STR r0,[r5,#0] +;;;675 phone_86_flag++; +000284 486b LDR r0,|L1.1076| +000286 7800 LDRB r0,[r0,#0] ; phone_86_flag +000288 1c40 ADDS r0,r0,#1 +00028a 496a LDR r1,|L1.1076| +00028c 7008 STRB r0,[r1,#0] +00028e e14d B |L1.1324| + |L1.656| +;;;676 } +;;;677 else if (phone_86_flag == 11) +000290 4868 LDR r0,|L1.1076| +000292 7800 LDRB r0,[r0,#0] ; phone_86_flag +000294 280b CMP r0,#0xb +000296 d109 BNE |L1.684| +;;;678 { +;;;679 *txbuffer = phone_data_86_9; +000298 4870 LDR r0,|L1.1116| +00029a 6020 STR r0,[r4,#0] +;;;680 *txbuffer_size = sizeof(phone_data_86_9); +00029c 2008 MOVS r0,#8 +00029e 6028 STR r0,[r5,#0] +;;;681 phone_86_flag++; +0002a0 4864 LDR r0,|L1.1076| +0002a2 7800 LDRB r0,[r0,#0] ; phone_86_flag +0002a4 1c40 ADDS r0,r0,#1 +0002a6 4963 LDR r1,|L1.1076| +0002a8 7008 STRB r0,[r1,#0] +0002aa e13f B |L1.1324| + |L1.684| +;;;682 } +;;;683 else if (phone_86_flag == 12) +0002ac 4861 LDR r0,|L1.1076| +0002ae 7800 LDRB r0,[r0,#0] ; phone_86_flag +0002b0 280c CMP r0,#0xc +0002b2 d109 BNE |L1.712| +;;;684 { +;;;685 *txbuffer = phone_data_86_10; +0002b4 486a LDR r0,|L1.1120| +0002b6 6020 STR r0,[r4,#0] +;;;686 *txbuffer_size = sizeof(phone_data_86_10); +0002b8 2008 MOVS r0,#8 +0002ba 6028 STR r0,[r5,#0] +;;;687 phone_86_flag++; +0002bc 485d LDR r0,|L1.1076| +0002be 7800 LDRB r0,[r0,#0] ; phone_86_flag +0002c0 1c40 ADDS r0,r0,#1 +0002c2 495c LDR r1,|L1.1076| +0002c4 7008 STRB r0,[r1,#0] +0002c6 e131 B |L1.1324| + |L1.712| +;;;688 } +;;;689 else if (phone_86_flag == 13) +0002c8 485a LDR r0,|L1.1076| +0002ca 7800 LDRB r0,[r0,#0] ; phone_86_flag +0002cc 280d CMP r0,#0xd +0002ce d109 BNE |L1.740| +;;;690 { +;;;691 *txbuffer = phone_data_86_11; +0002d0 4864 LDR r0,|L1.1124| +0002d2 6020 STR r0,[r4,#0] +;;;692 *txbuffer_size = sizeof(phone_data_86_11); +0002d4 2008 MOVS r0,#8 +0002d6 6028 STR r0,[r5,#0] +;;;693 phone_86_flag++; +0002d8 4856 LDR r0,|L1.1076| +0002da 7800 LDRB r0,[r0,#0] ; phone_86_flag +0002dc 1c40 ADDS r0,r0,#1 +0002de 4955 LDR r1,|L1.1076| +0002e0 7008 STRB r0,[r1,#0] +0002e2 e123 B |L1.1324| + |L1.740| +;;;694 } +;;;695 else if (phone_86_flag == 14) +0002e4 4853 LDR r0,|L1.1076| +0002e6 7800 LDRB r0,[r0,#0] ; phone_86_flag +0002e8 280e CMP r0,#0xe +0002ea d109 BNE |L1.768| +;;;696 { +;;;697 *txbuffer = phone_data_86_12; +0002ec 485e LDR r0,|L1.1128| +0002ee 6020 STR r0,[r4,#0] +;;;698 *txbuffer_size = sizeof(phone_data_86_12); +0002f0 2008 MOVS r0,#8 +0002f2 6028 STR r0,[r5,#0] +;;;699 phone_86_flag++; +0002f4 484f LDR r0,|L1.1076| +0002f6 7800 LDRB r0,[r0,#0] ; phone_86_flag +0002f8 1c40 ADDS r0,r0,#1 +0002fa 494e LDR r1,|L1.1076| +0002fc 7008 STRB r0,[r1,#0] +0002fe e115 B |L1.1324| + |L1.768| +;;;700 } +;;;701 else if (phone_86_flag == 15) +000300 484c LDR r0,|L1.1076| +000302 7800 LDRB r0,[r0,#0] ; phone_86_flag +000304 280f CMP r0,#0xf +000306 d109 BNE |L1.796| +;;;702 { +;;;703 *txbuffer = phone_reg_coord_back; +000308 4858 LDR r0,|L1.1132| +00030a 6020 STR r0,[r4,#0] +;;;704 *txbuffer_size = sizeof(phone_reg_coord_back); +00030c 2050 MOVS r0,#0x50 +00030e 6028 STR r0,[r5,#0] +;;;705 phone_86_flag++; +000310 4848 LDR r0,|L1.1076| +000312 7800 LDRB r0,[r0,#0] ; phone_86_flag +000314 1c40 ADDS r0,r0,#1 +000316 4947 LDR r1,|L1.1076| +000318 7008 STRB r0,[r1,#0] +00031a e107 B |L1.1324| + |L1.796| +;;;706 } +;;;707 else if (phone_86_flag == 16) +00031c 4845 LDR r0,|L1.1076| +00031e 7800 LDRB r0,[r0,#0] ; phone_86_flag +000320 2810 CMP r0,#0x10 +000322 d109 BNE |L1.824| +;;;708 { +;;;709 *txbuffer = phone_data_86_13; +000324 4852 LDR r0,|L1.1136| +000326 6020 STR r0,[r4,#0] +;;;710 *txbuffer_size = sizeof(phone_data_86_13); +000328 2008 MOVS r0,#8 +00032a 6028 STR r0,[r5,#0] +;;;711 phone_86_flag++; +00032c 4841 LDR r0,|L1.1076| +00032e 7800 LDRB r0,[r0,#0] ; phone_86_flag +000330 1c40 ADDS r0,r0,#1 +000332 4940 LDR r1,|L1.1076| +000334 7008 STRB r0,[r1,#0] +000336 e0f9 B |L1.1324| + |L1.824| +;;;712 } +;;;713 else if (phone_86_flag == 17) +000338 483e LDR r0,|L1.1076| +00033a 7800 LDRB r0,[r0,#0] ; phone_86_flag +00033c 2811 CMP r0,#0x11 +00033e d109 BNE |L1.852| +;;;714 { +;;;715 *txbuffer = phone_data_86_14; +000340 484c LDR r0,|L1.1140| +000342 6020 STR r0,[r4,#0] +;;;716 *txbuffer_size = sizeof(phone_data_86_14); +000344 2008 MOVS r0,#8 +000346 6028 STR r0,[r5,#0] +;;;717 phone_86_flag++; +000348 483a LDR r0,|L1.1076| +00034a 7800 LDRB r0,[r0,#0] ; phone_86_flag +00034c 1c40 ADDS r0,r0,#1 +00034e 4939 LDR r1,|L1.1076| +000350 7008 STRB r0,[r1,#0] +000352 e0eb B |L1.1324| + |L1.852| +;;;718 } +;;;719 else if (phone_86_flag == 18) +000354 4837 LDR r0,|L1.1076| +000356 7800 LDRB r0,[r0,#0] ; phone_86_flag +000358 2812 CMP r0,#0x12 +00035a d109 BNE |L1.880| +;;;720 { +;;;721 *txbuffer = phone_data_86_15; +00035c 4846 LDR r0,|L1.1144| +00035e 6020 STR r0,[r4,#0] +;;;722 *txbuffer_size = sizeof(phone_data_86_15); +000360 2008 MOVS r0,#8 +000362 6028 STR r0,[r5,#0] +;;;723 phone_86_flag++; +000364 4833 LDR r0,|L1.1076| +000366 7800 LDRB r0,[r0,#0] ; phone_86_flag +000368 1c40 ADDS r0,r0,#1 +00036a 4932 LDR r1,|L1.1076| +00036c 7008 STRB r0,[r1,#0] +00036e e0dd B |L1.1324| + |L1.880| +;;;724 } +;;;725 else if (phone_86_flag == 19) +000370 4830 LDR r0,|L1.1076| +000372 7800 LDRB r0,[r0,#0] ; phone_86_flag +000374 2813 CMP r0,#0x13 +000376 d109 BNE |L1.908| +;;;726 { +;;;727 *txbuffer = phone_data_86_16; +000378 4840 LDR r0,|L1.1148| +00037a 6020 STR r0,[r4,#0] +;;;728 *txbuffer_size = sizeof(phone_data_86_16); +00037c 2008 MOVS r0,#8 +00037e 6028 STR r0,[r5,#0] +;;;729 phone_86_flag++; +000380 482c LDR r0,|L1.1076| +000382 7800 LDRB r0,[r0,#0] ; phone_86_flag +000384 1c40 ADDS r0,r0,#1 +000386 492b LDR r1,|L1.1076| +000388 7008 STRB r0,[r1,#0] +00038a e0cf B |L1.1324| + |L1.908| +;;;730 } +;;;731 else if (phone_86_flag == 20) +00038c 4829 LDR r0,|L1.1076| +00038e 7800 LDRB r0,[r0,#0] ; phone_86_flag +000390 2814 CMP r0,#0x14 +000392 d109 BNE |L1.936| +;;;732 { +;;;733 *txbuffer = phone_data_86_17; +000394 483a LDR r0,|L1.1152| +000396 6020 STR r0,[r4,#0] +;;;734 *txbuffer_size = sizeof(phone_data_86_17); +000398 2008 MOVS r0,#8 +00039a 6028 STR r0,[r5,#0] +;;;735 phone_86_flag++; +00039c 4825 LDR r0,|L1.1076| +00039e 7800 LDRB r0,[r0,#0] ; phone_86_flag +0003a0 1c40 ADDS r0,r0,#1 +0003a2 4924 LDR r1,|L1.1076| +0003a4 7008 STRB r0,[r1,#0] +0003a6 e0c1 B |L1.1324| + |L1.936| +;;;736 } +;;;737 else if (phone_86_flag == 21) +0003a8 4822 LDR r0,|L1.1076| +0003aa 7800 LDRB r0,[r0,#0] ; phone_86_flag +0003ac 2815 CMP r0,#0x15 +0003ae d109 BNE |L1.964| +;;;738 { +;;;739 *txbuffer = phone_data_86_18; +0003b0 4834 LDR r0,|L1.1156| +0003b2 6020 STR r0,[r4,#0] +;;;740 *txbuffer_size = sizeof(phone_data_86_18); +0003b4 2008 MOVS r0,#8 +0003b6 6028 STR r0,[r5,#0] +;;;741 phone_86_flag++; +0003b8 481e LDR r0,|L1.1076| +0003ba 7800 LDRB r0,[r0,#0] ; phone_86_flag +0003bc 1c40 ADDS r0,r0,#1 +0003be 491d LDR r1,|L1.1076| +0003c0 7008 STRB r0,[r1,#0] +0003c2 e0b3 B |L1.1324| + |L1.964| +;;;742 } +;;;743 else if (phone_86_flag == 22) +0003c4 481b LDR r0,|L1.1076| +0003c6 7800 LDRB r0,[r0,#0] ; phone_86_flag +0003c8 2816 CMP r0,#0x16 +0003ca d109 BNE |L1.992| +;;;744 { +;;;745 *txbuffer = phone_data_86_19; +0003cc 482e LDR r0,|L1.1160| +0003ce 6020 STR r0,[r4,#0] +;;;746 *txbuffer_size = sizeof(phone_data_86_19); +0003d0 2008 MOVS r0,#8 +0003d2 6028 STR r0,[r5,#0] +;;;747 phone_86_flag++; +0003d4 4817 LDR r0,|L1.1076| +0003d6 7800 LDRB r0,[r0,#0] ; phone_86_flag +0003d8 1c40 ADDS r0,r0,#1 +0003da 4916 LDR r1,|L1.1076| +0003dc 7008 STRB r0,[r1,#0] +0003de e0a5 B |L1.1324| + |L1.992| +;;;748 } +;;;749 else if (phone_86_flag == 23) +0003e0 4814 LDR r0,|L1.1076| +0003e2 7800 LDRB r0,[r0,#0] ; phone_86_flag +0003e4 2817 CMP r0,#0x17 +0003e6 d153 BNE |L1.1168| +;;;750 { +;;;751 *txbuffer = phone_data_86_20; +0003e8 4828 LDR r0,|L1.1164| +0003ea 6020 STR r0,[r4,#0] +;;;752 *txbuffer_size = sizeof(phone_data_86_20); +0003ec 2008 MOVS r0,#8 +0003ee 6028 STR r0,[r5,#0] +;;;753 phone_86_flag++; +0003f0 4810 LDR r0,|L1.1076| +0003f2 7800 LDRB r0,[r0,#0] ; phone_86_flag +0003f4 1c40 ADDS r0,r0,#1 +0003f6 490f LDR r1,|L1.1076| +0003f8 7008 STRB r0,[r1,#0] +0003fa e097 B |L1.1324| + |L1.1020| + DCD phone_A6_flag + |L1.1024| +000400 25640a00 DCB "%d\n",0 + |L1.1028| + DCD phone_data_A6_0 + |L1.1032| + DCD phone_data_A6_1 + |L1.1036| + DCD phone_data_A6_2 + |L1.1040| + DCD phone_data_A6_3 + |L1.1044| + DCD phone_data_A6_4 + |L1.1048| + DCD phone_data_A6_5 + |L1.1052| + DCD phone_FA_flag + |L1.1056| + DCD phone_data_FA_0 + |L1.1060| + DCD phone_data_FA_1 + |L1.1064| + DCD phone_data_FA_2 + |L1.1068| + DCD phone_data_43 + |L1.1072| + DCD touch_recv_flag + |L1.1076| + DCD phone_86_flag + |L1.1080| + DCD phone_data_86_0 + |L1.1084| + DCD phone_data_86_1 + |L1.1088| + DCD phone_data_86_2 + |L1.1092| + DCD phone_data_86_3 + |L1.1096| + DCD phone_data_86_4 + |L1.1100| + DCD phone_data_86_5 + |L1.1104| + DCD phone_data_86_6 + |L1.1108| + DCD phone_data_86_7 + |L1.1112| + DCD phone_data_86_8 + |L1.1116| + DCD phone_data_86_9 + |L1.1120| + DCD phone_data_86_10 + |L1.1124| + DCD phone_data_86_11 + |L1.1128| + DCD phone_data_86_12 + |L1.1132| + DCD phone_reg_coord_back + |L1.1136| + DCD phone_data_86_13 + |L1.1140| + DCD phone_data_86_14 + |L1.1144| + DCD phone_data_86_15 + |L1.1148| + DCD phone_data_86_16 + |L1.1152| + DCD phone_data_86_17 + |L1.1156| + DCD phone_data_86_18 + |L1.1160| + DCD phone_data_86_19 + |L1.1164| + DCD phone_data_86_20 + |L1.1168| +;;;754 } +;;;755 else if (phone_86_flag == 24) +000490 4828 LDR r0,|L1.1332| +000492 7800 LDRB r0,[r0,#0] ; phone_86_flag +000494 2818 CMP r0,#0x18 +000496 d109 BNE |L1.1196| +;;;756 { +;;;757 *txbuffer = phone_data_86_21; +000498 4827 LDR r0,|L1.1336| +00049a 6020 STR r0,[r4,#0] +;;;758 *txbuffer_size = sizeof(phone_data_86_21); +00049c 2008 MOVS r0,#8 +00049e 6028 STR r0,[r5,#0] +;;;759 phone_86_flag++; +0004a0 4824 LDR r0,|L1.1332| +0004a2 7800 LDRB r0,[r0,#0] ; phone_86_flag +0004a4 1c40 ADDS r0,r0,#1 +0004a6 4923 LDR r1,|L1.1332| +0004a8 7008 STRB r0,[r1,#0] +0004aa e03f B |L1.1324| + |L1.1196| +;;;760 } +;;;761 else +;;;762 { +;;;763 // printf("A\n"); +;;;764 printf("%d\n",Flag_touch_count); +0004ac 4823 LDR r0,|L1.1340| +0004ae 7801 LDRB r1,[r0,#0] ; Flag_touch_count +0004b0 4823 LDR r0,|L1.1344| +0004b2 f7fffffe BL __2printf +;;;765 if(Flag_touch_count > 1) +0004b6 4821 LDR r0,|L1.1340| +0004b8 7800 LDRB r0,[r0,#0] ; Flag_touch_count +0004ba 2801 CMP r0,#1 +0004bc dd22 BLE |L1.1284| +;;;766 { +;;;767 // printf("%d\n",Flag_touch_count); +;;;768 touch_send_flag++; +0004be 4821 LDR r0,|L1.1348| +0004c0 7800 LDRB r0,[r0,#0] ; touch_send_flag +0004c2 1c40 ADDS r0,r0,#1 +0004c4 491f LDR r1,|L1.1348| +0004c6 7008 STRB r0,[r1,#0] +;;;769 if(touch_send_flag == 1) +0004c8 4608 MOV r0,r1 +0004ca 7800 LDRB r0,[r0,#0] ; touch_send_flag +0004cc 2801 CMP r0,#1 +0004ce d104 BNE |L1.1242| +;;;770 { +;;;771 *txbuffer = phone_reg_coord_back; +0004d0 481d LDR r0,|L1.1352| +0004d2 6020 STR r0,[r4,#0] +;;;772 *txbuffer_size = 8; +0004d4 2008 MOVS r0,#8 +0004d6 6028 STR r0,[r5,#0] +0004d8 e028 B |L1.1324| + |L1.1242| +;;;773 // printf("A"); +;;;774 } +;;;775 else +;;;776 { +;;;777 touch_send_flag = 0; +0004da 2000 MOVS r0,#0 +0004dc 4919 LDR r1,|L1.1348| +0004de 7008 STRB r0,[r1,#0] +;;;778 touch_recv_flag = 0; +0004e0 491a LDR r1,|L1.1356| +0004e2 7008 STRB r0,[r1,#0] +;;;779 Flag_touch_count = 0; +0004e4 4915 LDR r1,|L1.1340| +0004e6 7008 STRB r0,[r1,#0] +;;;780 +;;;781 *txbuffer = &phone_reg_coord_back[8]; +0004e8 4817 LDR r0,|L1.1352| +0004ea 3008 ADDS r0,r0,#8 +0004ec 6020 STR r0,[r4,#0] +;;;782 *txbuffer_size = 8*(Flag_touch_count-1); +0004ee 4608 MOV r0,r1 +0004f0 7800 LDRB r0,[r0,#0] ; Flag_touch_count +0004f2 1e40 SUBS r0,r0,#1 +0004f4 00c0 LSLS r0,r0,#3 +0004f6 6028 STR r0,[r5,#0] +;;;783 hal_gpio_set_output_data(g_phone_output_int_pad, IO_LVL_HIGH); +0004f8 2101 MOVS r1,#1 +0004fa 4815 LDR r0,|L1.1360| +0004fc 7800 LDRB r0,[r0,#0] ; g_phone_output_int_pad +0004fe f7fffffe BL hal_gpio_set_output_data +000502 e013 B |L1.1324| + |L1.1284| +;;;784 // printf("B\n"); +;;;785 } +;;;786 } +;;;787 else +;;;788 { +;;;789 if(Flag_touch_count == 1) // ָ Flag_touch_count = 0 +000504 480d LDR r0,|L1.1340| +000506 7800 LDRB r0,[r0,#0] ; Flag_touch_count +000508 2801 CMP r0,#1 +00050a d103 BNE |L1.1300| +;;;790 { +;;;791 *txbuffer = phone_reg_coord_back; +00050c 480e LDR r0,|L1.1352| +00050e 6020 STR r0,[r4,#0] +;;;792 *txbuffer_size = 8; +000510 2008 MOVS r0,#8 +000512 6028 STR r0,[r5,#0] + |L1.1300| +;;;793 } +;;;794 touch_send_flag = 0; +000514 2000 MOVS r0,#0 +000516 490b LDR r1,|L1.1348| +000518 7008 STRB r0,[r1,#0] +;;;795 touch_recv_flag = 0; +00051a 490c LDR r1,|L1.1356| +00051c 7008 STRB r0,[r1,#0] +;;;796 Flag_touch_count = 0; +00051e 4907 LDR r1,|L1.1340| +000520 7008 STRB r0,[r1,#0] +;;;797 hal_gpio_set_output_data(g_phone_output_int_pad, IO_LVL_HIGH); +000522 2101 MOVS r1,#1 +000524 480a LDR r0,|L1.1360| +000526 7800 LDRB r0,[r0,#0] ; g_phone_output_int_pad +000528 f7fffffe BL hal_gpio_set_output_data + |L1.1324| +;;;798 // printf("C\n"); +;;;799 } +;;;800 } +;;;801 } +;;;802 break; +00052c e000 B |L1.1328| + |L1.1326| +;;;803 default: +;;;804 +;;;805 break; +00052e bf00 NOP + |L1.1328| +000530 bf00 NOP ;590 + |L1.1330| +;;;806 +;;;807 } +;;;808 } +;;;809 +;;;810 //////////////////////////////////////////////////////////////////////////////////////////// +;;;811 +;;;812 +;;;813 #endif +;;;814 +;;;815 } +000532 bdf8 POP {r3-r7,pc} +;;;816 + ENDP + + |L1.1332| + DCD phone_86_flag + |L1.1336| + DCD phone_data_86_21 + |L1.1340| + DCD Flag_touch_count + |L1.1344| + DCD ||i.app_tp_phone_analysis_data||+0x400 + |L1.1348| + DCD touch_send_flag + |L1.1352| + DCD phone_reg_coord_back + |L1.1356| + DCD touch_recv_flag + |L1.1360| + DCD g_phone_output_int_pad + + AREA ||i.app_tp_phone_analysis_data_custom||, CODE, READONLY, ALIGN=2 + + REQUIRE _printf_percent + REQUIRE _printf_d + REQUIRE _printf_int_dec + app_tp_phone_analysis_data_custom PROC +;;;816 +;;;817 void app_tp_phone_analysis_data_custom(uint8_t *rxbuffer, size_t rxbuffer_size, uint8_t *phonetxbuffer, size_t *txbuffer_size) +000000 b5f8 PUSH {r3-r7,lr} +;;;818 +;;;819 { +000002 4606 MOV r6,r0 +000004 460f MOV r7,r1 +000006 461c MOV r4,r3 +;;;820 #ifdef USE_FOR_SUMSUNG_S10 +;;;821 static uint8_t phone_A6_flag = 0; +;;;822 static uint8_t phone_FA_flag = 0; +;;;823 static uint16_t phone_86_flag = 0; +;;;824 static uint8_t phone_poweron_flag = 0; +;;;825 +;;;826 uint8_t *txbuffer; +;;;827 +;;;828 if( (rxbuffer_size ==3) &&(rxbuffer[0] ==0xA6)) +000008 2f03 CMP r7,#3 +00000a d14d BNE |L2.168| +00000c 7830 LDRB r0,[r6,#0] +00000e 28a6 CMP r0,#0xa6 +000010 d14a BNE |L2.168| +;;;829 { +;;;830 printf("A6 %d\n",phone_A6_flag); +000012 48e8 LDR r0,|L2.948| +000014 7801 LDRB r1,[r0,#0] ; phone_A6_flag +000016 a0e8 ADR r0,|L2.952| +000018 f7fffffe BL __2printf +;;;831 if (phone_A6_flag == 0) +00001c 48e5 LDR r0,|L2.948| +00001e 7800 LDRB r0,[r0,#0] ; phone_A6_flag +000020 2800 CMP r0,#0 +000022 d103 BNE |L2.44| +;;;832 { +;;;833 txbuffer = (uint8_t*)phone_data_A6_0; +000024 4de6 LDR r5,|L2.960| +;;;834 *txbuffer_size = sizeof(phone_data_A6_0); +000026 20d0 MOVS r0,#0xd0 +000028 6020 STR r0,[r4,#0] +00002a e032 B |L2.146| + |L2.44| +;;;835 } +;;;836 else if (phone_A6_flag == 1) +00002c 48e1 LDR r0,|L2.948| +00002e 7800 LDRB r0,[r0,#0] ; phone_A6_flag +000030 2801 CMP r0,#1 +000032 d103 BNE |L2.60| +;;;837 { +;;;838 txbuffer = (uint8_t*)phone_data_A6_1; +000034 4de3 LDR r5,|L2.964| +;;;839 *txbuffer_size = sizeof(phone_data_A6_1); +000036 2004 MOVS r0,#4 +000038 6020 STR r0,[r4,#0] +00003a e02a B |L2.146| + |L2.60| +;;;840 } +;;;841 else if (phone_A6_flag == 2) +00003c 48dd LDR r0,|L2.948| +00003e 7800 LDRB r0,[r0,#0] ; phone_A6_flag +000040 2802 CMP r0,#2 +000042 d103 BNE |L2.76| +;;;842 { +;;;843 txbuffer = (uint8_t*)phone_data_A6_4; +000044 4de0 LDR r5,|L2.968| +;;;844 *txbuffer_size = sizeof(phone_data_A6_4); +000046 201c MOVS r0,#0x1c +000048 6020 STR r0,[r4,#0] +00004a e022 B |L2.146| + |L2.76| +;;;845 } +;;;846 else if (phone_A6_flag == 3) +00004c 48d9 LDR r0,|L2.948| +00004e 7800 LDRB r0,[r0,#0] ; phone_A6_flag +000050 2803 CMP r0,#3 +000052 d103 BNE |L2.92| +;;;847 { +;;;848 txbuffer = (uint8_t*)phone_data_A6_3; +000054 4ddd LDR r5,|L2.972| +;;;849 *txbuffer_size = sizeof(phone_data_A6_3); +000056 2004 MOVS r0,#4 +000058 6020 STR r0,[r4,#0] +00005a e01a B |L2.146| + |L2.92| +;;;850 } +;;;851 else if (phone_A6_flag == 4) +00005c 48d5 LDR r0,|L2.948| +00005e 7800 LDRB r0,[r0,#0] ; phone_A6_flag +000060 2804 CMP r0,#4 +000062 d103 BNE |L2.108| +;;;852 { +;;;853 txbuffer = (uint8_t*)phone_data_A6_4; +000064 4dd8 LDR r5,|L2.968| +;;;854 *txbuffer_size = sizeof(phone_data_A6_4); +000066 201c MOVS r0,#0x1c +000068 6020 STR r0,[r4,#0] +00006a e012 B |L2.146| + |L2.108| +;;;855 } +;;;856 else if (phone_A6_flag == 5) +00006c 48d1 LDR r0,|L2.948| +00006e 7800 LDRB r0,[r0,#0] ; phone_A6_flag +000070 2805 CMP r0,#5 +000072 d103 BNE |L2.124| +;;;857 { +;;;858 txbuffer = (uint8_t*)phone_data_A6_5; +000074 4dd6 LDR r5,|L2.976| +;;;859 *txbuffer_size = sizeof(phone_data_A6_5); +000076 2004 MOVS r0,#4 +000078 6020 STR r0,[r4,#0] +00007a e00a B |L2.146| + |L2.124| +;;;860 } +;;;861 else if (phone_A6_flag == 6) +00007c 48cd LDR r0,|L2.948| +00007e 7800 LDRB r0,[r0,#0] ; phone_A6_flag +000080 2806 CMP r0,#6 +000082 d103 BNE |L2.140| +;;;862 { +;;;863 txbuffer = (uint8_t*)phone_data_A6_4; +000084 4dd0 LDR r5,|L2.968| +;;;864 *txbuffer_size = sizeof(phone_data_A6_4); +000086 201c MOVS r0,#0x1c +000088 6020 STR r0,[r4,#0] +00008a e002 B |L2.146| + |L2.140| +;;;865 } +;;;866 else +;;;867 { +;;;868 txbuffer = (uint8_t*)phone_data_A6_6; +00008c 4dd1 LDR r5,|L2.980| +;;;869 *txbuffer_size = sizeof(phone_data_A6_6); +00008e 20d0 MOVS r0,#0xd0 +000090 6020 STR r0,[r4,#0] + |L2.146| +;;;870 } +;;;871 phone_A6_flag++; +000092 48c8 LDR r0,|L2.948| +000094 7800 LDRB r0,[r0,#0] ; phone_A6_flag +000096 1c40 ADDS r0,r0,#1 +000098 49c6 LDR r1,|L2.948| +00009a 7008 STRB r0,[r1,#0] +;;;872 if (phone_A6_flag > 7) +00009c 4608 MOV r0,r1 +00009e 7800 LDRB r0,[r0,#0] ; phone_A6_flag +0000a0 2807 CMP r0,#7 +0000a2 dd01 BLE |L2.168| +;;;873 phone_A6_flag = 0; +0000a4 2000 MOVS r0,#0 +0000a6 7008 STRB r0,[r1,#0] + |L2.168| +;;;874 } +;;;875 if( (rxbuffer_size == 5) &&(rxbuffer[0] ==0xFA)) +0000a8 2f05 CMP r7,#5 +0000aa d127 BNE |L2.252| +0000ac 7830 LDRB r0,[r6,#0] +0000ae 28fa CMP r0,#0xfa +0000b0 d124 BNE |L2.252| +;;;876 { +;;;877 if (phone_FA_flag == 0) +0000b2 48c9 LDR r0,|L2.984| +0000b4 7800 LDRB r0,[r0,#0] ; phone_FA_flag +0000b6 2800 CMP r0,#0 +0000b8 d103 BNE |L2.194| +;;;878 { +;;;879 txbuffer = (uint8_t*)phone_data_FA_0; +0000ba 4dc8 LDR r5,|L2.988| +;;;880 *txbuffer_size = sizeof(phone_data_FA_0); +0000bc 2001 MOVS r0,#1 +0000be 6020 STR r0,[r4,#0] +0000c0 e011 B |L2.230| + |L2.194| +;;;881 } +;;;882 else if (phone_FA_flag == 1) +0000c2 48c5 LDR r0,|L2.984| +0000c4 7800 LDRB r0,[r0,#0] ; phone_FA_flag +0000c6 2801 CMP r0,#1 +0000c8 d103 BNE |L2.210| +;;;883 { +;;;884 txbuffer = (uint8_t*)phone_data_FA_1; +0000ca 4dc5 LDR r5,|L2.992| +;;;885 *txbuffer_size = sizeof(phone_data_FA_1); +0000cc 2002 MOVS r0,#2 +0000ce 6020 STR r0,[r4,#0] +0000d0 e009 B |L2.230| + |L2.210| +;;;886 } +;;;887 else if (phone_FA_flag == 2) +0000d2 48c1 LDR r0,|L2.984| +0000d4 7800 LDRB r0,[r0,#0] ; phone_FA_flag +0000d6 2802 CMP r0,#2 +0000d8 d102 BNE |L2.224| +;;;888 { +;;;889 txbuffer = (uint8_t*)phone_data_FA_2; +0000da 4dc2 LDR r5,|L2.996| +;;;890 *txbuffer_size = sizeof(phone_data_FA_2); +0000dc 6020 STR r0,[r4,#0] +0000de e002 B |L2.230| + |L2.224| +;;;891 } +;;;892 else +;;;893 { +;;;894 txbuffer = (uint8_t*)phone_data_FA_2; +0000e0 4dc0 LDR r5,|L2.996| +;;;895 *txbuffer_size = sizeof(phone_data_FA_2); +0000e2 2002 MOVS r0,#2 +0000e4 6020 STR r0,[r4,#0] + |L2.230| +;;;896 } +;;;897 +;;;898 phone_FA_flag++; +0000e6 48bc LDR r0,|L2.984| +0000e8 7800 LDRB r0,[r0,#0] ; phone_FA_flag +0000ea 1c40 ADDS r0,r0,#1 +0000ec 49ba LDR r1,|L2.984| +0000ee 7008 STRB r0,[r1,#0] +;;;899 if (phone_FA_flag > 6) +0000f0 4608 MOV r0,r1 +0000f2 7800 LDRB r0,[r0,#0] ; phone_FA_flag +0000f4 2806 CMP r0,#6 +0000f6 dd01 BLE |L2.252| +;;;900 phone_FA_flag = 0; +0000f8 2000 MOVS r0,#0 +0000fa 7008 STRB r0,[r1,#0] + |L2.252| +;;;901 } +;;;902 +;;;903 if(rxbuffer_size ==1) +0000fc 2f01 CMP r7,#1 +0000fe d174 BNE |L2.490| +;;;904 { +;;;905 switch(rxbuffer[0]) +000100 7830 LDRB r0,[r6,#0] +000102 2886 CMP r0,#0x86 +000104 d01a BEQ |L2.316| +000106 dc04 BGT |L2.274| +000108 2843 CMP r0,#0x43 +00010a d007 BEQ |L2.284| +00010c 2883 CMP r0,#0x83 + |L2.270| +00010e d16d BNE |L2.492| +000110 e00c B |L2.300| + |L2.274| +000112 2887 CMP r0,#0x87 +000114 d00e BEQ |L2.308| +000116 28c3 CMP r0,#0xc3 +000118 d1f9 BNE |L2.270| +00011a e003 B |L2.292| + |L2.284| +;;;906 { +;;;907 case 0x43: +;;;908 txbuffer = (uint8_t*)phone_data_43; +00011c 4db2 LDR r5,|L2.1000| +;;;909 *txbuffer_size = sizeof(phone_data_43); +00011e 2008 MOVS r0,#8 +000120 6020 STR r0,[r4,#0] +;;;910 break; +000122 e143 B |L2.940| + |L2.292| +;;;911 case 0xC3: +;;;912 txbuffer = (uint8_t*)phone_data_43; +000124 4db0 LDR r5,|L2.1000| +;;;913 *txbuffer_size = sizeof(phone_data_43); +000126 2008 MOVS r0,#8 +000128 6020 STR r0,[r4,#0] +;;;914 break; +00012a e13f B |L2.940| + |L2.300| +;;;915 case 0x83: +;;;916 txbuffer = (uint8_t*)phone_data_43; +00012c 4dae LDR r5,|L2.1000| +;;;917 *txbuffer_size = sizeof(phone_data_43); +00012e 2008 MOVS r0,#8 +000130 6020 STR r0,[r4,#0] +;;;918 break; +000132 e13b B |L2.940| + |L2.308| +;;;919 case 0x87: +;;;920 txbuffer = (uint8_t*)phone_data_43; +000134 4dac LDR r5,|L2.1000| +;;;921 *txbuffer_size = sizeof(phone_data_43); +000136 2008 MOVS r0,#8 +000138 6020 STR r0,[r4,#0] +;;;922 break; +00013a e137 B |L2.940| + |L2.316| +;;;923 case 0x86: +;;;924 +;;;925 if(phone_poweron_flag == 0) // ֵ +00013c 48ab LDR r0,|L2.1004| +00013e 7800 LDRB r0,[r0,#0] ; phone_poweron_flag +000140 2800 CMP r0,#0 +000142 d173 BNE |L2.556| +;;;926 { +;;;927 printf("86 %d\n",phone_86_flag); +000144 48aa LDR r0,|L2.1008| +000146 8801 LDRH r1,[r0,#0] ; phone_86_flag +000148 a0aa ADR r0,|L2.1012| +00014a f7fffffe BL __2printf +;;;928 if(phone_86_flag < 3200) +00014e 48a8 LDR r0,|L2.1008| +000150 8800 LDRH r0,[r0,#0] ; phone_86_flag +000152 2119 MOVS r1,#0x19 +000154 01c9 LSLS r1,r1,#7 +000156 4288 CMP r0,r1 +000158 da05 BGE |L2.358| +;;;929 { +;;;930 phone_86_flag++; +00015a 48a5 LDR r0,|L2.1008| +00015c 8800 LDRH r0,[r0,#0] ; phone_86_flag +00015e 1c40 ADDS r0,r0,#1 +000160 49a3 LDR r1,|L2.1008| +000162 8008 STRH r0,[r1,#0] +000164 e002 B |L2.364| + |L2.358| +;;;931 } +;;;932 else +;;;933 { +;;;934 phone_poweron_flag = 1; +000166 2001 MOVS r0,#1 +000168 49a0 LDR r1,|L2.1004| +00016a 7008 STRB r0,[r1,#0] + |L2.364| +;;;935 } +;;;936 +;;;937 if (phone_86_flag == 0) +00016c 48a0 LDR r0,|L2.1008| +00016e 8800 LDRH r0,[r0,#0] ; phone_86_flag +000170 2800 CMP r0,#0 +000172 d103 BNE |L2.380| +;;;938 { +;;;939 txbuffer = (uint8_t*)phone_data_86_0; +000174 4da1 LDR r5,|L2.1020| +;;;940 *txbuffer_size = sizeof(phone_data_86_0); +000176 2008 MOVS r0,#8 +000178 6020 STR r0,[r4,#0] + |L2.378| +00017a e115 B |L2.936| + |L2.380| +;;;941 } +;;;942 else if (phone_86_flag == 1) +00017c 489c LDR r0,|L2.1008| +00017e 8800 LDRH r0,[r0,#0] ; phone_86_flag +000180 2801 CMP r0,#1 +000182 d103 BNE |L2.396| +;;;943 { +;;;944 txbuffer = (uint8_t*)phone_data_86_0; +000184 4d9d LDR r5,|L2.1020| +;;;945 *txbuffer_size = sizeof(phone_data_86_0); +000186 2008 MOVS r0,#8 +000188 6020 STR r0,[r4,#0] +00018a e10d B |L2.936| + |L2.396| +;;;946 } +;;;947 else if (phone_86_flag == 2) +00018c 4898 LDR r0,|L2.1008| +00018e 8800 LDRH r0,[r0,#0] ; phone_86_flag +000190 2802 CMP r0,#2 +000192 d103 BNE |L2.412| +;;;948 { +;;;949 txbuffer = (uint8_t*)phone_data_86_1; +000194 4d9a LDR r5,|L2.1024| +;;;950 *txbuffer_size = sizeof(phone_data_86_1); +000196 2008 MOVS r0,#8 +000198 6020 STR r0,[r4,#0] +00019a e105 B |L2.936| + |L2.412| +;;;951 } +;;;952 else if (phone_86_flag == 3) +00019c 4894 LDR r0,|L2.1008| +00019e 8800 LDRH r0,[r0,#0] ; phone_86_flag +0001a0 2803 CMP r0,#3 +0001a2 d103 BNE |L2.428| +;;;953 { +;;;954 txbuffer = (uint8_t*)phone_data_86_1; +0001a4 4d96 LDR r5,|L2.1024| +;;;955 *txbuffer_size = sizeof(phone_data_86_1); +0001a6 2008 MOVS r0,#8 +0001a8 6020 STR r0,[r4,#0] +0001aa e0fd B |L2.936| + |L2.428| +;;;956 } +;;;957 else if (phone_86_flag == 4) +0001ac 4890 LDR r0,|L2.1008| +0001ae 8800 LDRH r0,[r0,#0] ; phone_86_flag +0001b0 2804 CMP r0,#4 +0001b2 d103 BNE |L2.444| +;;;958 { +;;;959 txbuffer = (uint8_t*)phone_data_86_2; +0001b4 4d93 LDR r5,|L2.1028| +;;;960 *txbuffer_size = sizeof(phone_data_86_2); +0001b6 2008 MOVS r0,#8 +0001b8 6020 STR r0,[r4,#0] +0001ba e0f5 B |L2.936| + |L2.444| +;;;961 } +;;;962 else if (phone_86_flag == 5) +0001bc 488c LDR r0,|L2.1008| +0001be 8800 LDRH r0,[r0,#0] ; phone_86_flag +0001c0 2805 CMP r0,#5 +0001c2 d10a BNE |L2.474| +;;;963 { +;;;964 txbuffer = (uint8_t*)phone_data_86_3; +0001c4 4d90 LDR r5,|L2.1032| +;;;965 *txbuffer_size = sizeof(phone_data_86_3); +0001c6 2008 MOVS r0,#8 +0001c8 6020 STR r0,[r4,#0] +;;;966 if(phone_A6_flag == 0) // ʱA6ָȡʱ޴ָȡ +0001ca 487a LDR r0,|L2.948| +0001cc 7800 LDRB r0,[r0,#0] ; phone_A6_flag +0001ce 2800 CMP r0,#0 +0001d0 d1d3 BNE |L2.378| +;;;967 { +;;;968 phone_poweron_flag = 1; +0001d2 2001 MOVS r0,#1 +0001d4 4985 LDR r1,|L2.1004| +0001d6 7008 STRB r0,[r1,#0] +0001d8 e0e6 B |L2.936| + |L2.474| +;;;969 } +;;;970 } +;;;971 else if (phone_86_flag == 6) +0001da 4885 LDR r0,|L2.1008| +0001dc 8800 LDRH r0,[r0,#0] ; phone_86_flag +0001de 2806 CMP r0,#6 +0001e0 d105 BNE |L2.494| +;;;972 { +;;;973 txbuffer = (uint8_t*)phone_data_86_4; +0001e2 4d8a LDR r5,|L2.1036| +;;;974 *txbuffer_size = sizeof(phone_data_86_4); +0001e4 2008 MOVS r0,#8 +0001e6 6020 STR r0,[r4,#0] +0001e8 e0de B |L2.936| + |L2.490| +0001ea e0e0 B |L2.942| + |L2.492| +0001ec e0dd B |L2.938| + |L2.494| +;;;975 } +;;;976 else if (phone_86_flag == 7) +0001ee 4880 LDR r0,|L2.1008| +0001f0 8800 LDRH r0,[r0,#0] ; phone_86_flag +0001f2 2807 CMP r0,#7 +0001f4 d103 BNE |L2.510| +;;;977 { +;;;978 txbuffer = (uint8_t*)phone_data_86_5; +0001f6 4d86 LDR r5,|L2.1040| +;;;979 *txbuffer_size = sizeof(phone_data_86_5); +0001f8 2008 MOVS r0,#8 +0001fa 6020 STR r0,[r4,#0] +0001fc e0d4 B |L2.936| + |L2.510| +;;;980 } +;;;981 else if (phone_86_flag == 8) +0001fe 487c LDR r0,|L2.1008| +000200 8800 LDRH r0,[r0,#0] ; phone_86_flag +000202 2808 CMP r0,#8 +000204 d102 BNE |L2.524| +;;;982 { +;;;983 txbuffer = (uint8_t*)phone_data_86_6; +000206 4d83 LDR r5,|L2.1044| +;;;984 *txbuffer_size = sizeof(phone_data_86_6); +000208 6020 STR r0,[r4,#0] +00020a e0cd B |L2.936| + |L2.524| +;;;985 } +;;;986 else if (phone_86_flag == 9) +00020c 4878 LDR r0,|L2.1008| +00020e 8800 LDRH r0,[r0,#0] ; phone_86_flag +000210 2809 CMP r0,#9 +000212 d103 BNE |L2.540| +;;;987 { +;;;988 txbuffer = (uint8_t*)phone_data_86_7; +000214 4d80 LDR r5,|L2.1048| +;;;989 *txbuffer_size = sizeof(phone_data_86_7); +000216 2008 MOVS r0,#8 +000218 6020 STR r0,[r4,#0] +00021a e0c5 B |L2.936| + |L2.540| +;;;990 } +;;;991 else if (phone_86_flag == 10) +00021c 4874 LDR r0,|L2.1008| +00021e 8800 LDRH r0,[r0,#0] ; phone_86_flag +000220 280a CMP r0,#0xa +000222 d104 BNE |L2.558| +;;;992 { +;;;993 txbuffer = (uint8_t*)phone_data_86_8; +000224 4d7d LDR r5,|L2.1052| +;;;994 *txbuffer_size = sizeof(phone_data_86_8); +000226 2008 MOVS r0,#8 +000228 6020 STR r0,[r4,#0] +00022a e0bd B |L2.936| + |L2.556| +00022c e086 B |L2.828| + |L2.558| +;;;995 } +;;;996 else if (phone_86_flag == 11) +00022e 4870 LDR r0,|L2.1008| +000230 8800 LDRH r0,[r0,#0] ; phone_86_flag +000232 280b CMP r0,#0xb +000234 d103 BNE |L2.574| +;;;997 { +;;;998 txbuffer = (uint8_t*)phone_data_86_9; +000236 4d7a LDR r5,|L2.1056| +;;;999 *txbuffer_size = sizeof(phone_data_86_9); +000238 2008 MOVS r0,#8 +00023a 6020 STR r0,[r4,#0] +00023c e0b4 B |L2.936| + |L2.574| +;;;1000 } +;;;1001 else if (phone_86_flag == 12) +00023e 486c LDR r0,|L2.1008| +000240 8800 LDRH r0,[r0,#0] ; phone_86_flag +000242 280c CMP r0,#0xc +000244 d103 BNE |L2.590| +;;;1002 { +;;;1003 txbuffer = (uint8_t*)phone_data_86_10; +000246 4d77 LDR r5,|L2.1060| +;;;1004 *txbuffer_size = sizeof(phone_data_86_10); +000248 2008 MOVS r0,#8 +00024a 6020 STR r0,[r4,#0] +00024c e0ac B |L2.936| + |L2.590| +;;;1005 } +;;;1006 else if (phone_86_flag == 13) +00024e 4868 LDR r0,|L2.1008| +000250 8800 LDRH r0,[r0,#0] ; phone_86_flag +000252 280d CMP r0,#0xd +000254 d103 BNE |L2.606| +;;;1007 { +;;;1008 txbuffer = (uint8_t*)phone_data_86_11; +000256 4d74 LDR r5,|L2.1064| +;;;1009 *txbuffer_size = sizeof(phone_data_86_11); +000258 2008 MOVS r0,#8 +00025a 6020 STR r0,[r4,#0] +00025c e0a4 B |L2.936| + |L2.606| +;;;1010 } +;;;1011 else if (phone_86_flag == 14) +00025e 4864 LDR r0,|L2.1008| +000260 8800 LDRH r0,[r0,#0] ; phone_86_flag +000262 280e CMP r0,#0xe +000264 d103 BNE |L2.622| +;;;1012 { +;;;1013 txbuffer = (uint8_t*)phone_data_86_12; +000266 4d71 LDR r5,|L2.1068| +;;;1014 *txbuffer_size = sizeof(phone_data_86_12); +000268 2008 MOVS r0,#8 +00026a 6020 STR r0,[r4,#0] +00026c e09c B |L2.936| + |L2.622| +;;;1015 } +;;;1016 else if (phone_86_flag == 15) +00026e 4860 LDR r0,|L2.1008| +000270 8800 LDRH r0,[r0,#0] ; phone_86_flag +000272 280f CMP r0,#0xf +000274 d103 BNE |L2.638| +;;;1017 { +;;;1018 txbuffer = (uint8_t*)phone_reg_coord_back; +000276 4d6e LDR r5,|L2.1072| +;;;1019 *txbuffer_size = sizeof(phone_reg_coord_back); +000278 2050 MOVS r0,#0x50 +00027a 6020 STR r0,[r4,#0] +00027c e094 B |L2.936| + |L2.638| +;;;1020 } +;;;1021 else if (phone_86_flag == 16) +00027e 485c LDR r0,|L2.1008| +000280 8800 LDRH r0,[r0,#0] ; phone_86_flag +000282 2810 CMP r0,#0x10 +000284 d103 BNE |L2.654| +;;;1022 { +;;;1023 txbuffer = (uint8_t*)phone_data_86_13; +000286 4d6b LDR r5,|L2.1076| +;;;1024 *txbuffer_size = sizeof(phone_data_86_13); +000288 2008 MOVS r0,#8 +00028a 6020 STR r0,[r4,#0] +00028c e08c B |L2.936| + |L2.654| +;;;1025 } +;;;1026 else if (phone_86_flag == 17) +00028e 4858 LDR r0,|L2.1008| +000290 8800 LDRH r0,[r0,#0] ; phone_86_flag +000292 2811 CMP r0,#0x11 +000294 d103 BNE |L2.670| +;;;1027 { +;;;1028 txbuffer = (uint8_t*)phone_data_86_14; +000296 4d68 LDR r5,|L2.1080| +;;;1029 *txbuffer_size = sizeof(phone_data_86_14); +000298 2008 MOVS r0,#8 +00029a 6020 STR r0,[r4,#0] +00029c e084 B |L2.936| + |L2.670| +;;;1030 } +;;;1031 else if (phone_86_flag == 18) +00029e 4854 LDR r0,|L2.1008| +0002a0 8800 LDRH r0,[r0,#0] ; phone_86_flag +0002a2 2812 CMP r0,#0x12 +0002a4 d103 BNE |L2.686| +;;;1032 { +;;;1033 txbuffer = (uint8_t*)phone_data_86_15; +0002a6 4d65 LDR r5,|L2.1084| +;;;1034 *txbuffer_size = sizeof(phone_data_86_15); +0002a8 2008 MOVS r0,#8 +0002aa 6020 STR r0,[r4,#0] +0002ac e07c B |L2.936| + |L2.686| +;;;1035 } +;;;1036 else if (phone_86_flag == 19) +0002ae 4850 LDR r0,|L2.1008| +0002b0 8800 LDRH r0,[r0,#0] ; phone_86_flag +0002b2 2813 CMP r0,#0x13 +0002b4 d103 BNE |L2.702| +;;;1037 { +;;;1038 txbuffer = (uint8_t*)phone_data_86_16; +0002b6 4d62 LDR r5,|L2.1088| +;;;1039 *txbuffer_size = sizeof(phone_data_86_16); +0002b8 2008 MOVS r0,#8 +0002ba 6020 STR r0,[r4,#0] +0002bc e074 B |L2.936| + |L2.702| +;;;1040 } +;;;1041 else if (phone_86_flag == 20) +0002be 484c LDR r0,|L2.1008| +0002c0 8800 LDRH r0,[r0,#0] ; phone_86_flag +0002c2 2814 CMP r0,#0x14 +0002c4 d103 BNE |L2.718| +;;;1042 { +;;;1043 txbuffer = (uint8_t*)phone_data_86_17; +0002c6 4d5f LDR r5,|L2.1092| +;;;1044 *txbuffer_size = sizeof(phone_data_86_17); +0002c8 2008 MOVS r0,#8 +0002ca 6020 STR r0,[r4,#0] +0002cc e06c B |L2.936| + |L2.718| +;;;1045 } +;;;1046 else if (phone_86_flag == 21) +0002ce 4848 LDR r0,|L2.1008| +0002d0 8800 LDRH r0,[r0,#0] ; phone_86_flag +0002d2 2815 CMP r0,#0x15 +0002d4 d103 BNE |L2.734| +;;;1047 { +;;;1048 txbuffer = (uint8_t*)phone_data_86_18; +0002d6 4d5c LDR r5,|L2.1096| +;;;1049 *txbuffer_size = sizeof(phone_data_86_18); +0002d8 2008 MOVS r0,#8 +0002da 6020 STR r0,[r4,#0] +0002dc e064 B |L2.936| + |L2.734| +;;;1050 } +;;;1051 else if (phone_86_flag == 22) +0002de 4844 LDR r0,|L2.1008| +0002e0 8800 LDRH r0,[r0,#0] ; phone_86_flag +0002e2 2816 CMP r0,#0x16 +0002e4 d103 BNE |L2.750| +;;;1052 { +;;;1053 txbuffer = (uint8_t*)phone_data_86_19; +0002e6 4d59 LDR r5,|L2.1100| +;;;1054 *txbuffer_size = sizeof(phone_data_86_19); +0002e8 2008 MOVS r0,#8 +0002ea 6020 STR r0,[r4,#0] +0002ec e05c B |L2.936| + |L2.750| +;;;1055 } +;;;1056 else if (phone_86_flag == 23) +0002ee 4840 LDR r0,|L2.1008| +0002f0 8800 LDRH r0,[r0,#0] ; phone_86_flag +0002f2 2817 CMP r0,#0x17 +0002f4 d103 BNE |L2.766| +;;;1057 { +;;;1058 txbuffer = (uint8_t*)phone_data_86_20; +0002f6 4d56 LDR r5,|L2.1104| +;;;1059 *txbuffer_size = sizeof(phone_data_86_20); +0002f8 2008 MOVS r0,#8 +0002fa 6020 STR r0,[r4,#0] +0002fc e054 B |L2.936| + |L2.766| +;;;1060 } +;;;1061 else if (phone_86_flag == 24) +0002fe 483c LDR r0,|L2.1008| +000300 8800 LDRH r0,[r0,#0] ; phone_86_flag +000302 2818 CMP r0,#0x18 +000304 d103 BNE |L2.782| +;;;1062 { +;;;1063 txbuffer = (uint8_t*)phone_data_86_21; +000306 4d53 LDR r5,|L2.1108| +;;;1064 *txbuffer_size = sizeof(phone_data_86_21); +000308 2008 MOVS r0,#8 +00030a 6020 STR r0,[r4,#0] +00030c e04c B |L2.936| + |L2.782| +;;;1065 } +;;;1066 else if (phone_86_flag == 1800) +00030e 4838 LDR r0,|L2.1008| +000310 8800 LDRH r0,[r0,#0] ; phone_86_flag +000312 21e1 MOVS r1,#0xe1 +000314 00c9 LSLS r1,r1,#3 +000316 4288 CMP r0,r1 +000318 d103 BNE |L2.802| +;;;1067 { +;;;1068 txbuffer = (uint8_t*)phone_data_86_1800; +00031a 4d4f LDR r5,|L2.1112| +;;;1069 *txbuffer_size = sizeof(phone_data_86_1800); +00031c 2008 MOVS r0,#8 +00031e 6020 STR r0,[r4,#0] +000320 e042 B |L2.936| + |L2.802| +;;;1070 } +;;;1071 else if (phone_86_flag == 3000) +000322 4833 LDR r0,|L2.1008| +000324 8800 LDRH r0,[r0,#0] ; phone_86_flag +000326 494d LDR r1,|L2.1116| +000328 4288 CMP r0,r1 +00032a d103 BNE |L2.820| +;;;1072 { +;;;1073 txbuffer = (uint8_t*)phone_data_86_1800; +00032c 4d4a LDR r5,|L2.1112| +;;;1074 *txbuffer_size = sizeof(phone_data_86_1800); +00032e 2008 MOVS r0,#8 +000330 6020 STR r0,[r4,#0] +000332 e039 B |L2.936| + |L2.820| +;;;1075 } +;;;1076 /* else if (phone_86_flag == 4000) +;;;1077 { +;;;1078 txbuffer = (uint8_t*)phone_data_86_4000; +;;;1079 *txbuffer_size = sizeof(phone_data_86_4000); +;;;1080 } +;;;1081 */ +;;;1082 else +;;;1083 { +;;;1084 txbuffer = (uint8_t*)phone_reg_coord_back; +000334 4d3e LDR r5,|L2.1072| +;;;1085 *txbuffer_size = 8; +000336 2008 MOVS r0,#8 +000338 6020 STR r0,[r4,#0] +00033a e035 B |L2.936| + |L2.828| +;;;1086 } +;;;1087 +;;;1088 } +;;;1089 else +;;;1090 { +;;;1091 // printf("A\n"); +;;;1092 // printf("touch %d\n",Flag_touch_count); +;;;1093 touch_recv_flag++; +00033c 4848 LDR r0,|L2.1120| +00033e 7800 LDRB r0,[r0,#0] ; touch_recv_flag +000340 1c40 ADDS r0,r0,#1 +000342 4947 LDR r1,|L2.1120| +000344 7008 STRB r0,[r1,#0] +;;;1094 +;;;1095 if(Flag_touch_count > 1) +000346 4847 LDR r0,|L2.1124| +000348 7800 LDRB r0,[r0,#0] ; Flag_touch_count +00034a 2801 CMP r0,#1 +00034c dd1f BLE |L2.910| +;;;1096 { +;;;1097 // printf("%d\n",Flag_touch_count); +;;;1098 touch_send_flag++; +00034e 4846 LDR r0,|L2.1128| +000350 7800 LDRB r0,[r0,#0] ; touch_send_flag +000352 1c40 ADDS r0,r0,#1 +000354 4944 LDR r1,|L2.1128| +000356 7008 STRB r0,[r1,#0] +;;;1099 if(touch_send_flag == 1) +000358 4608 MOV r0,r1 +00035a 7800 LDRB r0,[r0,#0] ; touch_send_flag +00035c 2801 CMP r0,#1 +00035e d103 BNE |L2.872| +;;;1100 { +;;;1101 txbuffer = (uint8_t*)phone_reg_coord_back; +000360 4d33 LDR r5,|L2.1072| +;;;1102 *txbuffer_size = 8; +000362 2008 MOVS r0,#8 +000364 6020 STR r0,[r4,#0] +000366 e01f B |L2.936| + |L2.872| +;;;1103 // printf("A"); +;;;1104 } +;;;1105 else +;;;1106 { +;;;1107 touch_send_flag = 0; +000368 2000 MOVS r0,#0 +00036a 493f LDR r1,|L2.1128| +00036c 7008 STRB r0,[r1,#0] +;;;1108 +;;;1109 txbuffer = (uint8_t*)&phone_reg_coord_back[8]; +00036e 4d30 LDR r5,|L2.1072| +000370 3508 ADDS r5,r5,#8 +;;;1110 *txbuffer_size = (8*(Flag_touch_count-1)); +000372 483c LDR r0,|L2.1124| +000374 7800 LDRB r0,[r0,#0] ; Flag_touch_count +000376 1e40 SUBS r0,r0,#1 +000378 00c0 LSLS r0,r0,#3 +00037a 6020 STR r0,[r4,#0] +;;;1111 hal_gpio_set_output_data(g_phone_output_int_pad, IO_LVL_HIGH); +00037c 2101 MOVS r1,#1 +00037e 483b LDR r0,|L2.1132| +000380 7800 LDRB r0,[r0,#0] ; g_phone_output_int_pad +000382 f7fffffe BL hal_gpio_set_output_data +;;;1112 +;;;1113 Flag_touch_count = 0; +000386 2000 MOVS r0,#0 +000388 4936 LDR r1,|L2.1124| +00038a 7008 STRB r0,[r1,#0] +00038c e00c B |L2.936| + |L2.910| +;;;1114 // printf("B\n"); +;;;1115 } +;;;1116 } +;;;1117 else +;;;1118 { +;;;1119 // if(Flag_touch_count == 1) // ָ Flag_touch_count = 0 +;;;1120 { +;;;1121 txbuffer = (uint8_t*)phone_reg_coord_back; +00038e 4d28 LDR r5,|L2.1072| +;;;1122 *txbuffer_size = 8; +000390 2008 MOVS r0,#8 +000392 6020 STR r0,[r4,#0] +;;;1123 } +;;;1124 +;;;1125 touch_send_flag = 0; +000394 2000 MOVS r0,#0 +000396 4934 LDR r1,|L2.1128| +000398 7008 STRB r0,[r1,#0] +;;;1126 Flag_touch_count = 0; +00039a 4932 LDR r1,|L2.1124| +00039c 7008 STRB r0,[r1,#0] +;;;1127 hal_gpio_set_output_data(g_phone_output_int_pad, IO_LVL_HIGH); +00039e 2101 MOVS r1,#1 +0003a0 4832 LDR r0,|L2.1132| +0003a2 7800 LDRB r0,[r0,#0] ; g_phone_output_int_pad +0003a4 f7fffffe BL hal_gpio_set_output_data + |L2.936| +;;;1128 // printf("C\n"); +;;;1129 } +;;;1130 } +;;;1131 break; +0003a8 e000 B |L2.940| + |L2.938| +;;;1132 default: +;;;1133 +;;;1134 break; +0003aa bf00 NOP + |L2.940| +0003ac bf00 NOP ;910 + |L2.942| +;;;1135 +;;;1136 } +;;;1137 } +;;;1138 //printf("1111 %p \n",*phonetxbuffer); +;;;1139 s_slave_txbuffer = txbuffer; +0003ae 4830 LDR r0,|L2.1136| +0003b0 6005 STR r5,[r0,#0] ; s_slave_txbuffer +;;;1140 //printf("222 %p \n",*phonetxbuffer); +;;;1141 //////////////////////////////////////////////////////////////////////////////////////////// +;;;1142 +;;;1143 +;;;1144 #endif +;;;1145 +;;;1146 } +0003b2 bdf8 POP {r3-r7,pc} +;;;1147 + ENDP + + |L2.948| + DCD |symbol_number.31| + |L2.952| +0003b8 41362025 DCB "A6 %d\n",0 +0003bc 640a00 +0003bf 00 DCB 0 + |L2.960| + DCD phone_data_A6_0 + |L2.964| + DCD phone_data_A6_1 + |L2.968| + DCD phone_data_A6_4 + |L2.972| + DCD phone_data_A6_3 + |L2.976| + DCD phone_data_A6_5 + |L2.980| + DCD phone_data_A6_6 + |L2.984| + DCD |symbol_number.32| + |L2.988| + DCD phone_data_FA_0 + |L2.992| + DCD phone_data_FA_1 + |L2.996| + DCD phone_data_FA_2 + |L2.1000| + DCD phone_data_43 + |L2.1004| + DCD phone_poweron_flag + |L2.1008| + DCD |symbol_number.33| + |L2.1012| +0003f4 38362025 DCB "86 %d\n",0 +0003f8 640a00 +0003fb 00 DCB 0 + |L2.1020| + DCD phone_data_86_0 + |L2.1024| + DCD phone_data_86_1 + |L2.1028| + DCD phone_data_86_2 + |L2.1032| + DCD phone_data_86_3 + |L2.1036| + DCD phone_data_86_4 + |L2.1040| + DCD phone_data_86_5 + |L2.1044| + DCD phone_data_86_6 + |L2.1048| + DCD phone_data_86_7 + |L2.1052| + DCD phone_data_86_8 + |L2.1056| + DCD phone_data_86_9 + |L2.1060| + DCD phone_data_86_10 + |L2.1064| + DCD phone_data_86_11 + |L2.1068| + DCD phone_data_86_12 + |L2.1072| + DCD phone_reg_coord_back + |L2.1076| + DCD phone_data_86_13 + |L2.1080| + DCD phone_data_86_14 + |L2.1084| + DCD phone_data_86_15 + |L2.1088| + DCD phone_data_86_16 + |L2.1092| + DCD phone_data_86_17 + |L2.1096| + DCD phone_data_86_18 + |L2.1100| + DCD phone_data_86_19 + |L2.1104| + DCD phone_data_86_20 + |L2.1108| + DCD phone_data_86_21 + |L2.1112| + DCD phone_data_86_1800 + |L2.1116| + DCD 0x00000bb8 + |L2.1120| + DCD touch_recv_flag + |L2.1124| + DCD Flag_touch_count + |L2.1128| + DCD touch_send_flag + |L2.1132| + DCD g_phone_output_int_pad + |L2.1136| + DCD s_slave_txbuffer + + AREA ||i.app_tp_screen_analysis_const||, CODE, READONLY, ALIGN=2 + + app_tp_screen_analysis_const PROC +;;;213 **************************************************************************/ +;;;214 uint8_t app_tp_screen_analysis_const(uint8_t transfer_now, uint8_t *rxbuffer, size_t data_size) +000000 b570 PUSH {r4-r6,lr} +;;;215 { +000002 4604 MOV r4,r0 +000004 460d MOV r5,r1 +000006 4616 MOV r6,r2 +;;;216 static uint8_t app_tp_count = 0; +;;;217 +;;;218 app_tp_count++; +000008 4814 LDR r0,|L3.92| +00000a 7800 LDRB r0,[r0,#0] ; app_tp_count +00000c 1c40 ADDS r0,r0,#1 +00000e 4913 LDR r1,|L3.92| +000010 7008 STRB r0,[r1,#0] +;;;219 if (app_tp_count > 20) //ʼɹreset screen +000012 4608 MOV r0,r1 +000014 7800 LDRB r0,[r0,#0] ; app_tp_count +000016 2814 CMP r0,#0x14 +000018 dd05 BLE |L3.38| +;;;220 { +;;;221 app_tp_count = 0; +00001a 2000 MOVS r0,#0 +00001c 7008 STRB r0,[r1,#0] +;;;222 app_tp_screen_init(); +00001e f7fffffe BL app_tp_screen_init +;;;223 return 0; +000022 2000 MOVS r0,#0 + |L3.36| +;;;224 } +;;;225 +;;;226 if (transfer_now == 0) +;;;227 { +;;;228 if (rxbuffer[2] == 0x03) +;;;229 { +;;;230 TAU_LOGD("TD TP init done\n"); +;;;231 return 1; +;;;232 } +;;;233 else +;;;234 { +;;;235 TAU_LOGD("TD TP return false [%d]\n", rxbuffer[2]); +;;;236 return 0; +;;;237 } +;;;238 } +;;;239 +;;;240 return transfer_now + 1; +;;;241 } +000024 bd70 POP {r4-r6,pc} + |L3.38| +000026 2c00 CMP r4,#0 ;226 +000028 d115 BNE |L3.86| +00002a 78a8 LDRB r0,[r5,#2] ;228 +00002c 2803 CMP r0,#3 ;228 +00002e d108 BNE |L3.66| +000030 bf00 NOP ;230 +000032 22e6 MOVS r2,#0xe6 ;230 +000034 a10a ADR r1,|L3.96| +000036 a00c ADR r0,|L3.104| +000038 f7fffffe BL LOG_printf +00003c bf00 NOP ;230 +00003e 2001 MOVS r0,#1 ;231 +000040 e7f0 B |L3.36| + |L3.66| +000042 bf00 NOP ;235 +000044 78ab LDRB r3,[r5,#2] ;235 +000046 22eb MOVS r2,#0xeb ;235 +000048 a105 ADR r1,|L3.96| +00004a a00f ADR r0,|L3.136| +00004c f7fffffe BL LOG_printf +000050 bf00 NOP ;235 +000052 2000 MOVS r0,#0 ;236 +000054 e7e6 B |L3.36| + |L3.86| +000056 1c60 ADDS r0,r4,#1 ;240 +000058 b2c0 UXTB r0,r0 ;240 +00005a e7e3 B |L3.36| +;;;242 + ENDP + + |L3.92| + DCD app_tp_count + |L3.96| +000060 7461755f DCB "tau_log",0 +000064 6c6f6700 + |L3.104| +000068 5b25735d DCB "[%s] (%04d) TD TP init done\n",0 +00006c 20282530 +000070 34642920 +000074 54442054 +000078 5020696e +00007c 69742064 +000080 6f6e650a +000084 00 +000085 00 DCB 0 +000086 00 DCB 0 +000087 00 DCB 0 + |L3.136| +000088 5b25735d DCB "[%s] (%04d) TD TP return false [%d]\n",0 +00008c 20282530 +000090 34642920 +000094 54442054 +000098 50207265 +00009c 7475726e +0000a0 2066616c +0000a4 7365205b +0000a8 25645d0a +0000ac 00 +0000ad 00 DCB 0 +0000ae 00 DCB 0 +0000af 00 DCB 0 + + AREA ||i.app_tp_screen_analysis_int||, CODE, READONLY, ALIGN=2 + + app_tp_screen_analysis_int PROC +;;;251 **************************************************************************/ +;;;252 uint8_t app_tp_screen_analysis_int(uint8_t transfer_now, uint8_t *rxbuffer, size_t data_size) +000000 b5f0 PUSH {r4-r7,lr} +;;;253 { +000002 b089 SUB sp,sp,#0x24 +000004 460e MOV r6,r1 +;;;254 +;;;255 #ifdef USE_FOR_SUMSUNG_S10 +;;;256 uint8_t ii, jj,i,j,k; +;;;257 uint8_t temp_flag,temp,touchnum; +;;;258 uint8_t temp_8,touch_id; +;;;259 uint16_t temp16 = 1; +000006 2001 MOVS r0,#1 +000008 9004 STR r0,[sp,#0x10] +;;;260 uint32_t xx, yy, zz; +;;;261 uint8_t send_point = 0; // ǰҪ͵ı̧ʱҲҪ +00000a 2700 MOVS r7,#0 +;;;262 +;;;263 static uint16_t point_counter =0; +;;;264 +;;;265 send_point =0; +00000c bf00 NOP +;;;266 touchnum =0; +00000e 2000 MOVS r0,#0 +000010 9007 STR r0,[sp,#0x1c] +;;;267 touchnum = rxbuffer[2]; +000012 78b0 LDRB r0,[r6,#2] +000014 9007 STR r0,[sp,#0x1c] +;;;268 if(touchnum>0x10) +000016 9807 LDR r0,[sp,#0x1c] +000018 2810 CMP r0,#0x10 +00001a dd01 BLE |L4.32| +;;;269 touchnum = 0; +00001c 2000 MOVS r0,#0 +00001e 9007 STR r0,[sp,#0x1c] + |L4.32| +;;;270 /* +;;;271 for(ii=0;ii<64;ii++) +;;;272 { +;;;273 printf("%2x ",rxbuffer[ii]); +;;;274 } +;;;275 printf("\n"); +;;;276 */ +;;;277 #if 0 +;;;278 if(point_counter == 0) +;;;279 { +;;;280 // point_counter = 1; +;;;281 phone_reg_coord_back[0] = 0x13; +;;;282 phone_reg_coord_back[1] = 0x01; +;;;283 phone_reg_coord_back[2] = 0xE9; +;;;284 phone_reg_coord_back[3] = 0x61; +;;;285 phone_reg_coord_back[4] = 0x25; +;;;286 phone_reg_coord_back[5] = 0x00; +;;;287 phone_reg_coord_back[6] = 0x00; +;;;288 phone_reg_coord_back[7] = 0x00; +;;;289 } +;;;290 else if(point_counter == 1) +;;;291 { +;;;292 +;;;293 phone_reg_coord_back[0] = 0x23; +;;;294 phone_reg_coord_back[1] = 0x01; +;;;295 phone_reg_coord_back[2] = 0xE9; +;;;296 phone_reg_coord_back[3] = 0x61; +;;;297 phone_reg_coord_back[4] = 0x25; +;;;298 phone_reg_coord_back[5] = 0x00; +;;;299 phone_reg_coord_back[6] = 0x00; +;;;300 phone_reg_coord_back[7] = 0x00; +;;;301 } +;;;302 else if(point_counter == 10) +;;;303 { +;;;304 // point_counter++; +;;;305 phone_reg_coord_back[0] = 0x23; +;;;306 phone_reg_coord_back[1] = 0x01; +;;;307 phone_reg_coord_back[2] = 0xF5; +;;;308 phone_reg_coord_back[3] = 0xE1; +;;;309 phone_reg_coord_back[4] = 0x25; +;;;310 phone_reg_coord_back[5] = 0x00; +;;;311 phone_reg_coord_back[6] = 0x00; +;;;312 phone_reg_coord_back[7] = 0x00; +;;;313 } +;;;314 +;;;315 point_counter++; +;;;316 if(point_counter == 1000) +;;;317 { +;;;318 point_counter = 0; +;;;319 phone_reg_coord_back[0] = 0x33; +;;;320 phone_reg_coord_back[1] = 0x01; +;;;321 phone_reg_coord_back[2] = 0xF5; +;;;322 phone_reg_coord_back[3] = 0xE1; +;;;323 phone_reg_coord_back[4] = 0x25; +;;;324 phone_reg_coord_back[5] = 0x00; +;;;325 phone_reg_coord_back[6] = 0x00; +;;;326 phone_reg_coord_back[7] = 0x00; +;;;327 } +;;;328 +;;;329 send_point = 1; +;;;330 +;;;331 if(temp16 || send_point) +;;;332 { +;;;333 tp_flag =true; +;;;334 TAU_LOGD("TD TP done %d \n",point_counter); +;;;335 hal_gpio_set_output_data(g_phone_output_int_pad, IO_LVL_LOW); //TPжϽ,֪ͨAPȡTP +;;;336 } +;;;337 return screen_reg_int_data_size + 1; +;;;338 +;;;339 #else +;;;340 for(ii =0; ii<5; ii++) +000020 2400 MOVS r4,#0 +000022 e004 B |L4.46| + |L4.36| +;;;341 { +;;;342 phone_reg_coord_back[7]=0; +000024 2000 MOVS r0,#0 +000026 4998 LDR r1,|L4.648| +000028 71c8 STRB r0,[r1,#7] +00002a 1c60 ADDS r0,r4,#1 ;340 +00002c b2c4 UXTB r4,r0 ;340 + |L4.46| +00002e 2c05 CMP r4,#5 ;340 +000030 dbf8 BLT |L4.36| +;;;343 } +;;;344 +;;;345 +;;;346 // if(Flag_touch_count == 0) // +;;;347 { +;;;348 +;;;349 // TAU_LOGD("[%2x][%2x][%2x][%2x][%2x][%2x][%2x][%2x]\n",rxbuffer[0],rxbuffer[1],rxbuffer[2],rxbuffer[3],rxbuffer[4],rxbuffer[5],rxbuffer[6],rxbuffer[7]); +;;;350 send_point = rxbuffer[2]; // ȡ +000032 78b7 LDRB r7,[r6,#2] +;;;351 +;;;352 if( send_point <= 10 && (rxbuffer[3]!= 0x00) && (rxbuffer[4]!= 0x00) ) // ݲ10 б +000034 2f0a CMP r7,#0xa +000036 dc7d BGT |L4.308| +000038 78f0 LDRB r0,[r6,#3] +00003a 2800 CMP r0,#0 + |L4.60| +00003c d07a BEQ |L4.308| +00003e 7930 LDRB r0,[r6,#4] +000040 2800 CMP r0,#0 +000042 d0fb BEQ |L4.60| +;;;353 { +;;;354 +;;;355 +;;;356 for(ii =0; ii<10; ii++) +000044 2400 MOVS r4,#0 +000046 e02b B |L4.160| + |L4.72| +;;;357 { +;;;358 temp_flag = s8_host_id[ii]&0xF0; +000048 4890 LDR r0,|L4.652| +00004a 5d00 LDRB r0,[r0,r4] +00004c 21f0 MOVS r1,#0xf0 +00004e 4008 ANDS r0,r0,r1 +000050 9008 STR r0,[sp,#0x20] +;;;359 temp_8 = rxbuffer[6*ii+3]&0xf0; +000052 4620 MOV r0,r4 +000054 2106 MOVS r1,#6 +000056 4348 MULS r0,r1,r0 +000058 1cc0 ADDS r0,r0,#3 +00005a 5c30 LDRB r0,[r6,r0] +00005c 21f0 MOVS r1,#0xf0 +00005e 4008 ANDS r0,r0,r1 +000060 9006 STR r0,[sp,#0x18] +;;;360 touch_id=(rxbuffer[6*ii+5]>>4)&0x0f; +000062 4620 MOV r0,r4 +000064 2106 MOVS r1,#6 +000066 4348 MULS r0,r1,r0 +000068 1d40 ADDS r0,r0,#5 +00006a 5c30 LDRB r0,[r6,r0] +00006c 1100 ASRS r0,r0,#4 +00006e 9005 STR r0,[sp,#0x14] +;;;361 if(temp_8==0x00)//((temp16 >>ii) &0x01) // ӦIDб +000070 9806 LDR r0,[sp,#0x18] +000072 2800 CMP r0,#0 +000074 d103 BNE |L4.126| +;;;362 { +;;;363 // send_point++; +;;;364 s8_host_id[ii]=0x13; +000076 2013 MOVS r0,#0x13 +000078 4984 LDR r1,|L4.652| +00007a 5508 STRB r0,[r1,r4] +00007c e00e B |L4.156| + |L4.126| +;;;365 } +;;;366 else if(temp_8== 0x80) // +00007e 9806 LDR r0,[sp,#0x18] +000080 2880 CMP r0,#0x80 +000082 d103 BNE |L4.140| +;;;367 { +;;;368 // send_point++; +;;;369 s8_host_id[ii]=0x23; +000084 2023 MOVS r0,#0x23 +000086 4981 LDR r1,|L4.652| +000088 5508 STRB r0,[r1,r4] +00008a e007 B |L4.156| + |L4.140| +;;;370 } +;;;371 else if(temp_8== 0x40) // ̧ +00008c 9806 LDR r0,[sp,#0x18] +00008e 2840 CMP r0,#0x40 +000090 d104 BNE |L4.156| +;;;372 { +;;;373 send_point++; +000092 1c78 ADDS r0,r7,#1 +000094 b2c7 UXTB r7,r0 +;;;374 s8_host_id[ii] = 0x33; +000096 2033 MOVS r0,#0x33 +000098 497c LDR r1,|L4.652| +00009a 5508 STRB r0,[r1,r4] + |L4.156| +00009c 1c60 ADDS r0,r4,#1 ;356 +00009e b2c4 UXTB r4,r0 ;356 + |L4.160| +0000a0 2c0a CMP r4,#0xa ;356 +0000a2 dbd1 BLT |L4.72| +;;;375 } +;;;376 } +;;;377 +;;;378 //// phone_reg_point_back[1] = s8_host_num[send_point]; //ҪͱļĴ +;;;379 // printf("send_point %d ",send_point); +;;;380 +;;;381 jj =0; +0000a4 2500 MOVS r5,#0 +;;;382 for(ii =0; ii<10; ii++) +0000a6 2400 MOVS r4,#0 +0000a8 e0c9 B |L4.574| + |L4.170| +;;;383 { +;;;384 temp_8 = rxbuffer[6*ii+3]&0xf0; +0000aa 4620 MOV r0,r4 +0000ac 2106 MOVS r1,#6 +0000ae 4348 MULS r0,r1,r0 +0000b0 1cc0 ADDS r0,r0,#3 +0000b2 5c30 LDRB r0,[r6,r0] +0000b4 21f0 MOVS r1,#0xf0 +0000b6 4008 ANDS r0,r0,r1 +0000b8 9006 STR r0,[sp,#0x18] +;;;385 temp_flag = s8_host_id[ii]&0x30; +0000ba 4874 LDR r0,|L4.652| +0000bc 5d00 LDRB r0,[r0,r4] +0000be 2130 MOVS r1,#0x30 +0000c0 4008 ANDS r0,r0,r1 +0000c2 9008 STR r0,[sp,#0x20] +;;;386 touch_id = (rxbuffer[6*ii+5]>>4)&0x0f; +0000c4 4620 MOV r0,r4 +0000c6 2106 MOVS r1,#6 +0000c8 4348 MULS r0,r1,r0 +0000ca 1d40 ADDS r0,r0,#5 +0000cc 5c30 LDRB r0,[r6,r0] +0000ce 1100 ASRS r0,r0,#4 +0000d0 9005 STR r0,[sp,#0x14] +;;;387 touch_id = (touch_id<<4); +0000d2 9805 LDR r0,[sp,#0x14] +0000d4 0100 LSLS r0,r0,#4 +0000d6 9005 STR r0,[sp,#0x14] +;;;388 if(temp_flag) //2BITΪ0Ҫͱ +0000d8 9808 LDR r0,[sp,#0x20] +0000da 2800 CMP r0,#0 +0000dc d074 BEQ |L4.456| +;;;389 { +;;;390 xx = ((rxbuffer[6*ii+3]&0x0f) << 8) | (rxbuffer[6*ii+4]); +0000de 4620 MOV r0,r4 +0000e0 4348 MULS r0,r1,r0 +0000e2 1cc0 ADDS r0,r0,#3 +0000e4 5c30 LDRB r0,[r6,r0] +0000e6 0700 LSLS r0,r0,#28 +0000e8 0d01 LSRS r1,r0,#20 +0000ea 4620 MOV r0,r4 +0000ec 2206 MOVS r2,#6 +0000ee 4350 MULS r0,r2,r0 +0000f0 1d00 ADDS r0,r0,#4 +0000f2 5c30 LDRB r0,[r6,r0] +0000f4 4301 ORRS r1,r1,r0 +0000f6 9103 STR r1,[sp,#0xc] +;;;391 yy = ((rxbuffer[6*ii+5]&0x0f) << 8) | (rxbuffer[6*ii+6]); +0000f8 4620 MOV r0,r4 +0000fa 2106 MOVS r1,#6 +0000fc 4348 MULS r0,r1,r0 +0000fe 1d40 ADDS r0,r0,#5 +000100 5c30 LDRB r0,[r6,r0] +000102 0700 LSLS r0,r0,#28 +000104 0d01 LSRS r1,r0,#20 +000106 4620 MOV r0,r4 +000108 4350 MULS r0,r2,r0 +00010a 1d80 ADDS r0,r0,#6 +00010c 5c30 LDRB r0,[r6,r0] +00010e 4308 ORRS r0,r0,r1 +000110 9002 STR r0,[sp,#8] +;;;392 zz = rxbuffer[6*ii+7]; +000112 4620 MOV r0,r4 +000114 2106 MOVS r1,#6 +000116 4348 MULS r0,r1,r0 +000118 1dc0 ADDS r0,r0,#7 +00011a 5c30 LDRB r0,[r6,r0] +00011c 9001 STR r0,[sp,#4] +;;;393 +;;;394 xx = xx * INPUT_WIDTH_VALUE / OUTPUT_WIDTH_VALUE; +00011e 2287 MOVS r2,#0x87 +000120 00d2 LSLS r2,r2,#3 +000122 9903 LDR r1,[sp,#0xc] +000124 4351 MULS r1,r2,r1 +000126 4608 MOV r0,r1 +000128 212d MOVS r1,#0x2d +00012a 0109 LSLS r1,r1,#4 +00012c f7fffffe BL __aeabi_uidivmod +000130 9003 STR r0,[sp,#0xc] +;;;395 if(xx > 4095) +000132 e000 B |L4.310| + |L4.308| +000134 e0a4 B |L4.640| + |L4.310| +000136 4956 LDR r1,|L4.656| +000138 9803 LDR r0,[sp,#0xc] +00013a 4288 CMP r0,r1 +00013c d901 BLS |L4.322| +;;;396 xx = 4095; +00013e 4608 MOV r0,r1 +000140 9003 STR r0,[sp,#0xc] + |L4.322| +;;;397 yy = yy * INPUT_HEIGHT_VALUE / OUTPUT_HEIGHT_VALUE; +000142 2223 MOVS r2,#0x23 +000144 0192 LSLS r2,r2,#6 +000146 9902 LDR r1,[sp,#8] +000148 4351 MULS r1,r2,r1 +00014a 4608 MOV r0,r1 +00014c 2119 MOVS r1,#0x19 +00014e 0189 LSLS r1,r1,#6 +000150 f7fffffe BL __aeabi_uidivmod +000154 9002 STR r0,[sp,#8] +;;;398 if(yy > 4095) +000156 494e LDR r1,|L4.656| +000158 9802 LDR r0,[sp,#8] +00015a 4288 CMP r0,r1 +00015c d901 BLS |L4.354| +;;;399 yy = 4095; +00015e 4608 MOV r0,r1 +000160 9002 STR r0,[sp,#8] + |L4.354| +;;;400 +;;;401 if (temp_flag ==0x30) // ̧ +000162 9808 LDR r0,[sp,#0x20] +000164 2830 CMP r0,#0x30 +000166 d136 BNE |L4.470| +;;;402 { +;;;403 #if 1 +;;;404 phone_reg_coord_back[8*jj+0] = s8_host_id[ii]; //13 press 33 leave 23 move +000168 4848 LDR r0,|L4.652| +00016a 5d01 LDRB r1,[r0,r4] +00016c 00e8 LSLS r0,r5,#3 +00016e 4a46 LDR r2,|L4.648| +000170 5411 STRB r1,[r2,r0] +;;;405 phone_reg_coord_back[8*jj+1] = touch_id|0x01; //id +000172 2101 MOVS r1,#1 +000174 9805 LDR r0,[sp,#0x14] +000176 4308 ORRS r0,r0,r1 +000178 00e9 LSLS r1,r5,#3 +00017a 1c49 ADDS r1,r1,#1 +00017c 5450 STRB r0,[r2,r1] +;;;406 phone_reg_coord_back[8*jj+2] = (uint8_t)(xx& 0xFF); //x Ͱλ +00017e 9803 LDR r0,[sp,#0xc] +000180 b2c1 UXTB r1,r0 +000182 00e8 LSLS r0,r5,#3 +000184 1c80 ADDS r0,r0,#2 +000186 5411 STRB r1,[r2,r0] +;;;407 phone_reg_coord_back[8*jj+3] = ((yy & 0x0F) << 4) | ((xx>>8) & 0x0F); //bit0-bit3:xλ;bit4-bit7:yλ; +000188 9802 LDR r0,[sp,#8] +00018a 0700 LSLS r0,r0,#28 +00018c 0e00 LSRS r0,r0,#24 +00018e 9903 LDR r1,[sp,#0xc] +000190 0509 LSLS r1,r1,#20 +000192 0f09 LSRS r1,r1,#28 +000194 4308 ORRS r0,r0,r1 +000196 00e9 LSLS r1,r5,#3 +000198 1cc9 ADDS r1,r1,#3 +00019a 5450 STRB r0,[r2,r1] +;;;408 phone_reg_coord_back[8*jj+4] = (uint8_t)((yy>>4)& 0xFF); //y ߰λ +00019c 9802 LDR r0,[sp,#8] +00019e 0500 LSLS r0,r0,#20 +0001a0 0e01 LSRS r1,r0,#24 +0001a2 00e8 LSLS r0,r5,#3 +0001a4 1d00 ADDS r0,r0,#4 +0001a6 5411 STRB r1,[r2,r0] +;;;409 phone_reg_coord_back[8*jj+5] = 0x00; //zzλ +0001a8 2100 MOVS r1,#0 +0001aa 00e8 LSLS r0,r5,#3 +0001ac 1d40 ADDS r0,r0,#5 +0001ae 5411 STRB r1,[r2,r0] +;;;410 //touch type0:ָͨ1:2:ף3:;4:;5:;6:ʪ;7:ӽ;8:ҡ +;;;411 phone_reg_coord_back[8*jj+6] = 0x00; //bit0-bit5:zֻ6λ;bit6-bit7:touch typeĸλ +0001b0 00e8 LSLS r0,r5,#3 +0001b2 1d80 ADDS r0,r0,#6 +0001b4 5411 STRB r1,[r2,r0] +;;;412 +;;;413 if(send_point>jj) +0001b6 42af CMP r7,r5 +0001b8 dd07 BLE |L4.458| +;;;414 phone_reg_coord_back[8*jj+7] = send_point-jj-1; +0001ba 1b78 SUBS r0,r7,r5 +0001bc 1e40 SUBS r0,r0,#1 +0001be b2c1 UXTB r1,r0 +0001c0 00e8 LSLS r0,r5,#3 +0001c2 1dc0 ADDS r0,r0,#7 +0001c4 5411 STRB r1,[r2,r0] +0001c6 e033 B |L4.560| + |L4.456| +0001c8 e034 B |L4.564| + |L4.458| +;;;415 else +;;;416 phone_reg_coord_back[8*jj+7] = 0x00; +0001ca 2100 MOVS r1,#0 +0001cc 00e8 LSLS r0,r5,#3 +0001ce 1dc0 ADDS r0,r0,#7 +0001d0 4a2d LDR r2,|L4.648| +0001d2 5411 STRB r1,[r2,r0] +0001d4 e02c B |L4.560| + |L4.470| +;;;417 #else +;;;418 phone_reg_coord_back[8*jj+0] = s8_host_id[ii]; +;;;419 phone_reg_coord_back[8*jj+1] = touch_id|0x01; +;;;420 phone_reg_coord_back[8*jj+2] = s_screen_read_bak[8*ii+2]; +;;;421 phone_reg_coord_back[8*jj+3] = s_screen_read_bak[8*ii+3]; +;;;422 phone_reg_coord_back[8*jj+4] = s_screen_read_bak[8*ii+4]; +;;;423 phone_reg_coord_back[8*jj+5] = s_screen_read_bak[8*ii+5]; +;;;424 phone_reg_coord_back[8*jj+6] = s_screen_read_bak[8*ii+6]; +;;;425 // phone_reg_coord_back[8*jj+7] = 0x00; +;;;426 if(send_point>=jj) +;;;427 phone_reg_coord_back[8*jj+7] = 0x00; +;;;428 else +;;;429 phone_reg_coord_back[8*jj+7] = send_point-jj-1; +;;;430 #endif +;;;431 +;;;432 } +;;;433 else +;;;434 { +;;;435 /* xx = ((rxbuffer[6*ii+3]&0x0f) << 8) | (rxbuffer[6*ii+4]); +;;;436 yy = ((rxbuffer[6*ii+5]&0x0f) << 8) | (rxbuffer[6*ii+6]); +;;;437 zz = rxbuffer[6*ii+7]; +;;;438 +;;;439 xx = xx * INPUT_WIDTH_VALUE / OUTPUT_WIDTH_VALUE; +;;;440 if(xx > 4095) +;;;441 xx = 4095; +;;;442 yy = yy * INPUT_HEIGHT_VALUE / OUTPUT_HEIGHT_VALUE; +;;;443 if(yy > 4095) +;;;444 yy = 4095; +;;;445 */ +;;;446 +;;;447 phone_reg_coord_back[8*jj+0] = s8_host_id[ii]; //13 press 33 leave 23 move +0001d6 482d LDR r0,|L4.652| +0001d8 5d01 LDRB r1,[r0,r4] +0001da 00e8 LSLS r0,r5,#3 +0001dc 4a2a LDR r2,|L4.648| +0001de 5411 STRB r1,[r2,r0] +;;;448 phone_reg_coord_back[8*jj+1] = touch_id|0x01; //id +0001e0 2101 MOVS r1,#1 +0001e2 9805 LDR r0,[sp,#0x14] +0001e4 4308 ORRS r0,r0,r1 +0001e6 00e9 LSLS r1,r5,#3 +0001e8 1c49 ADDS r1,r1,#1 +0001ea 5450 STRB r0,[r2,r1] +;;;449 phone_reg_coord_back[8*jj+2] = (uint8_t)(xx& 0xFF); //x Ͱλ +0001ec 9803 LDR r0,[sp,#0xc] +0001ee b2c1 UXTB r1,r0 +0001f0 00e8 LSLS r0,r5,#3 +0001f2 1c80 ADDS r0,r0,#2 +0001f4 5411 STRB r1,[r2,r0] +;;;450 phone_reg_coord_back[8*jj+3] = ((yy & 0x0F) << 4) | ((xx>>8) & 0x0F); //bit0-bit3:xλ;bit4-bit7:yλ; +0001f6 9802 LDR r0,[sp,#8] +0001f8 0700 LSLS r0,r0,#28 +0001fa 0e00 LSRS r0,r0,#24 +0001fc 9903 LDR r1,[sp,#0xc] +0001fe 0509 LSLS r1,r1,#20 +000200 0f09 LSRS r1,r1,#28 +000202 4308 ORRS r0,r0,r1 +000204 00e9 LSLS r1,r5,#3 +000206 1cc9 ADDS r1,r1,#3 +000208 5450 STRB r0,[r2,r1] +;;;451 phone_reg_coord_back[8*jj+4] = (uint8_t)((yy>>4)& 0xFF); //y ߰λ +00020a 9802 LDR r0,[sp,#8] +00020c 0500 LSLS r0,r0,#20 +00020e 0e01 LSRS r1,r0,#24 +000210 00e8 LSLS r0,r5,#3 +000212 1d00 ADDS r0,r0,#4 +000214 5411 STRB r1,[r2,r0] +;;;452 phone_reg_coord_back[8*jj+5] = 0x00; //zzλ +000216 2100 MOVS r1,#0 +000218 00e8 LSLS r0,r5,#3 +00021a 1d40 ADDS r0,r0,#5 +00021c 5411 STRB r1,[r2,r0] +;;;453 //touch type0:ָͨ1:2:ף3:;4:;5:;6:ʪ;7:ӽ;8:ҡ +;;;454 phone_reg_coord_back[8*jj+6] = 0x00; //bit0-bit5:zֻ6λ;bit6-bit7:touch typeĸλ +00021e 00e8 LSLS r0,r5,#3 +000220 1d80 ADDS r0,r0,#6 +000222 5411 STRB r1,[r2,r0] +;;;455 // phone_reg_coord_back[8*jj+7] = 0x00; +;;;456 phone_reg_coord_back[8*jj+7] = send_point-jj-1; //bit0-bit5:bufferʣٸ¼;bit6-bit7touch type λ +000224 1b78 SUBS r0,r7,r5 +000226 1e40 SUBS r0,r0,#1 +000228 b2c1 UXTB r1,r0 +00022a 00e8 LSLS r0,r5,#3 +00022c 1dc0 ADDS r0,r0,#7 +00022e 5411 STRB r1,[r2,r0] + |L4.560| +;;;457 +;;;458 } +;;;459 +;;;460 #if 0// +;;;461 s_screen_read_bak[8*ii+0] =phone_reg_coord_back[8*jj+0]; +;;;462 s_screen_read_bak[8*ii+1] =phone_reg_coord_back[8*jj+1]; +;;;463 s_screen_read_bak[8*ii+2] =phone_reg_coord_back[8*jj+2]; +;;;464 s_screen_read_bak[8*ii+3] =phone_reg_coord_back[8*jj+3]; +;;;465 s_screen_read_bak[8*ii+4] =phone_reg_coord_back[8*jj+4]; +;;;466 s_screen_read_bak[8*ii+5] =phone_reg_coord_back[8*jj+5]; +;;;467 s_screen_read_bak[8*ii+6] =phone_reg_coord_back[8*jj+6]; +;;;468 s_screen_read_bak[8*ii+7] =phone_reg_coord_back[8*jj+7]; +;;;469 #endif +;;;470 jj++; +000230 1c68 ADDS r0,r5,#1 +000232 b2c5 UXTB r5,r0 + |L4.564| +;;;471 } +;;;472 +;;;473 if(jj >= send_point) break; +000234 42bd CMP r5,r7 +000236 db00 BLT |L4.570| +000238 e004 B |L4.580| + |L4.570| +00023a 1c60 ADDS r0,r4,#1 ;382 +00023c b2c4 UXTB r4,r0 ;382 + |L4.574| +00023e 2c0a CMP r4,#0xa ;382 +000240 da00 BGE |L4.580| +000242 e732 B |L4.170| + |L4.580| +000244 bf00 NOP +;;;474 } +;;;475 +;;;476 +;;;477 touchnum_bak = touchnum; +000246 4913 LDR r1,|L4.660| +000248 9807 LDR r0,[sp,#0x1c] +00024a 7008 STRB r0,[r1,#0] +;;;478 phone_data_B1[1] =0x86; +00024c 2086 MOVS r0,#0x86 +00024e 4912 LDR r1,|L4.664| +000250 7048 STRB r0,[r1,#1] +;;;479 Flag_touch_count = send_point; // ¼ +000252 4812 LDR r0,|L4.668| +000254 7007 STRB r7,[r0,#0] +;;;480 touch_send_flag = 0; +000256 2000 MOVS r0,#0 +000258 4911 LDR r1,|L4.672| +00025a 7008 STRB r0,[r1,#0] +;;;481 +;;;482 if(temp16 || send_point) +00025c 9804 LDR r0,[sp,#0x10] +00025e 2800 CMP r0,#0 +000260 d101 BNE |L4.614| +000262 2f00 CMP r7,#0 +000264 d00c BEQ |L4.640| + |L4.614| +;;;483 { +;;;484 touch_recv_flag = 0; +000266 2000 MOVS r0,#0 +000268 490e LDR r1,|L4.676| +00026a 7008 STRB r0,[r1,#0] +;;;485 tp_flag =true; +00026c 2001 MOVS r0,#1 +00026e 490e LDR r1,|L4.680| +000270 7008 STRB r0,[r1,#0] +;;;486 hal_gpio_set_output_data(g_phone_output_int_pad, IO_LVL_LOW); //TPжϽ,֪ͨAPȡTP +000272 2100 MOVS r1,#0 +000274 480d LDR r0,|L4.684| +000276 7800 LDRB r0,[r0,#0] ; g_phone_output_int_pad +000278 f7fffffe BL hal_gpio_set_output_data +;;;487 tp_int_high_timer_init(); +00027c f7fffffe BL tp_int_high_timer_init + |L4.640| +;;;488 } +;;;489 } +;;;490 } +;;;491 return screen_reg_int_data_size + 1; +000280 2004 MOVS r0,#4 +;;;492 #endif +;;;493 +;;;494 #endif +;;;495 +;;;496 } +000282 b009 ADD sp,sp,#0x24 +000284 bdf0 POP {r4-r7,pc} +;;;497 + ENDP + +000286 0000 DCW 0x0000 + |L4.648| + DCD phone_reg_coord_back + |L4.652| + DCD s8_host_id + |L4.656| + DCD 0x00000fff + |L4.660| + DCD touchnum_bak + |L4.664| + DCD phone_data_B1 + |L4.668| + DCD Flag_touch_count + |L4.672| + DCD touch_send_flag + |L4.676| + DCD touch_recv_flag + |L4.680| + DCD tp_flag + |L4.684| + DCD g_phone_output_int_pad + + AREA ||i.tp_int_high_timer_callback||, CODE, READONLY, ALIGN=2 + + tp_int_high_timer_callback PROC +;;;170 +;;;171 static void tp_int_high_timer_callback(void *data) +000000 b570 PUSH {r4-r6,lr} +;;;172 { +000002 4606 MOV r6,r0 +;;;173 uint8_t ii, jj=0; +000004 2400 MOVS r4,#0 +;;;174 +;;;175 if(touch_recv_flag == 0) // 1msûйȡݣԶ +000006 481c LDR r0,|L5.120| +000008 7800 LDRB r0,[r0,#0] ; touch_recv_flag +00000a 2800 CMP r0,#0 +00000c d105 BNE |L5.26| +;;;176 { +;;;177 hal_gpio_set_output_data(g_phone_output_int_pad, IO_LVL_HIGH); +00000e 2101 MOVS r1,#1 +000010 481a LDR r0,|L5.124| +000012 7800 LDRB r0,[r0,#0] ; g_phone_output_int_pad +000014 f7fffffe BL hal_gpio_set_output_data +000018 e02d B |L5.118| + |L5.26| +;;;178 } +;;;179 else // 25ms ޴release¼ +;;;180 { +;;;181 +;;;182 for(jj=0; jj<10; jj++) +00001a 2400 MOVS r4,#0 +00001c e022 B |L5.100| + |L5.30| +;;;183 { +;;;184 ii = jj; +00001e 4625 MOV r5,r4 +;;;185 phone_reg_coord_back[8*jj+0] = 0x33; //13 press 33 leave 23 move +000020 2133 MOVS r1,#0x33 +000022 00e0 LSLS r0,r4,#3 +000024 4a16 LDR r2,|L5.128| +000026 5411 STRB r1,[r2,r0] +;;;186 phone_reg_coord_back[8*jj+1] = (jj<<4)|0x01; //id +000028 0120 LSLS r0,r4,#4 +00002a 1c40 ADDS r0,r0,#1 +00002c b2c1 UXTB r1,r0 +00002e 00e0 LSLS r0,r4,#3 +000030 1c40 ADDS r0,r0,#1 +000032 5411 STRB r1,[r2,r0] +;;;187 phone_reg_coord_back[8*jj+2] = 0x00; //x Ͱλ +000034 2100 MOVS r1,#0 +000036 00e0 LSLS r0,r4,#3 +000038 1c80 ADDS r0,r0,#2 +00003a 5411 STRB r1,[r2,r0] +;;;188 phone_reg_coord_back[8*jj+3] = 0x00; //bit0-bit3:xλ;bit4-bit7:yλ; +00003c 00e0 LSLS r0,r4,#3 +00003e 1cc0 ADDS r0,r0,#3 +000040 5411 STRB r1,[r2,r0] +;;;189 phone_reg_coord_back[8*jj+4] = 0x00; //y ߰λ +000042 00e0 LSLS r0,r4,#3 +000044 1d00 ADDS r0,r0,#4 +000046 5411 STRB r1,[r2,r0] +;;;190 phone_reg_coord_back[8*jj+5] = 0x00; //zzλ +000048 00e0 LSLS r0,r4,#3 +00004a 1d40 ADDS r0,r0,#5 +00004c 5411 STRB r1,[r2,r0] +;;;191 //touch type0:ָͨ1:2:ף3:;4:;5:;6:ʪ;7:ӽ;8:ҡ +;;;192 phone_reg_coord_back[8*jj+6] = 0x00; //bit0-bit5:zֻ6λ;bit6-bit7:touch typeĸλ +00004e 00e0 LSLS r0,r4,#3 +000050 1d80 ADDS r0,r0,#6 +000052 5411 STRB r1,[r2,r0] +;;;193 phone_reg_coord_back[8*jj+7] = 9-jj; +000054 2009 MOVS r0,#9 +000056 1b00 SUBS r0,r0,r4 +000058 b2c1 UXTB r1,r0 +00005a 00e0 LSLS r0,r4,#3 +00005c 1dc0 ADDS r0,r0,#7 +00005e 5411 STRB r1,[r2,r0] +000060 1c60 ADDS r0,r4,#1 ;182 +000062 b2c4 UXTB r4,r0 ;182 + |L5.100| +000064 2c0a CMP r4,#0xa ;182 +000066 dbda BLT |L5.30| +;;;194 } +;;;195 +;;;196 Flag_touch_count = jj; +000068 4806 LDR r0,|L5.132| +00006a 7004 STRB r4,[r0,#0] +;;;197 +;;;198 hal_gpio_set_output_data(g_phone_output_int_pad, IO_LVL_LOW); //TPжϽ,֪ͨAPȡTP +00006c 2100 MOVS r1,#0 +00006e 4803 LDR r0,|L5.124| +000070 7800 LDRB r0,[r0,#0] ; g_phone_output_int_pad +000072 f7fffffe BL hal_gpio_set_output_data + |L5.118| +;;;199 } +;;;200 } +000076 bd70 POP {r4-r6,pc} +;;;201 void tp_int_high_timer_init(void) + ENDP + + |L5.120| + DCD touch_recv_flag + |L5.124| + DCD g_phone_output_int_pad + |L5.128| + DCD phone_reg_coord_back + |L5.132| + DCD Flag_touch_count + + AREA ||i.tp_int_high_timer_init||, CODE, READONLY, ALIGN=2 + + tp_int_high_timer_init PROC +;;;200 } +;;;201 void tp_int_high_timer_init(void) +000000 b510 PUSH {r4,lr} +;;;202 { +;;;203 hal_timer_init(TIMER_NUM3); +000002 2003 MOVS r0,#3 +000004 f7fffffe BL hal_timer_init +;;;204 hal_timer_start(TIMER_NUM3, 25, tp_int_high_timer_callback, NULL); +000008 2300 MOVS r3,#0 +00000a 4a03 LDR r2,|L6.24| +00000c 2119 MOVS r1,#0x19 +00000e 2003 MOVS r0,#3 +000010 f7fffffe BL hal_timer_start +;;;205 } +000014 bd10 POP {r4,pc} +;;;206 + ENDP + +000016 0000 DCW 0x0000 + |L6.24| + DCD tp_int_high_timer_callback + + AREA ||.bss||, DATA, NOINIT, ALIGN=0 + + phone_reg_coord_back + % 80 + + AREA ||.constdata||, DATA, READONLY, ALIGN=0 + + phone_data_86_0 +000000 ffffffff DCB 0xff,0xff,0xff,0xff +000004 ffffffff DCB 0xff,0xff,0xff,0xff + phone_data_86_1 +000008 00000000 DCB 0x00,0x00,0x00,0x00 +00000c 00000000 DCB 0x00,0x00,0x00,0x00 + phone_data_86_2 +000010 03000000 DCB 0x03,0x00,0x00,0x00 +000014 00000000 DCB 0x00,0x00,0x00,0x00 + phone_data_86_3 +000018 4301a406 DCB 0x43,0x01,0xa4,0x06 +00001c 70000000 DCB 0x70,0x00,0x00,0x00 + phone_data_86_4 +000020 321e0105 DCB 0x32,0x1e,0x01,0x05 +000024 0104000f DCB 0x01,0x04,0x00,0x0f + phone_data_86_5 +000028 96969696 DCB 0x96,0x96,0x96,0x96 +00002c 04c004ff DCB 0x04,0xc0,0x04,0xff + phone_data_86_6 +000030 ffffffff DCB 0xff,0xff,0xff,0xff +000034 ffff04ff DCB 0xff,0xff,0x04,0xff + phone_data_86_7 +000038 ffffffff DCB 0xff,0xff,0xff,0xff +00003c ffff0400 DCB 0xff,0xff,0x04,0x00 + phone_data_86_8 +000040 00000000 DCB 0x00,0x00,0x00,0x00 +000044 00000400 DCB 0x00,0x00,0x04,0x00 + phone_data_86_9 +000048 00000000 DCB 0x00,0x00,0x00,0x00 +00004c 00000403 DCB 0x00,0x00,0x04,0x03 + phone_data_86_10 +000050 00000000 DCB 0x00,0x00,0x00,0x00 +000054 000004a5 DCB 0x00,0x00,0x04,0xa5 + phone_data_86_11 +000058 01000443 DCB 0x01,0x00,0x04,0x43 +00005c 01a40670 DCB 0x01,0xa4,0x06,0x70 + phone_data_86_12 +000060 000004a5 DCB 0x00,0x00,0x04,0xa5 +000064 70020000 DCB 0x70,0x02,0x00,0x00 + phone_data_86_13 +000068 00084f70 DCB 0x00,0x08,0x4f,0x70 +00006c cb483832 DCB 0xcb,0x48,0x38,0x32 + phone_data_86_14 +000070 45325200 DCB 0x45,0x32,0x52,0x00 +000074 04ffffff DCB 0x04,0xff,0xff,0xff + phone_data_86_15 +000078 ffffffff DCB 0xff,0xff,0xff,0xff +00007c 04ffffff DCB 0x04,0xff,0xff,0xff + phone_data_86_16 +000080 ffffffff DCB 0xff,0xff,0xff,0xff +000084 04000000 DCB 0x04,0x00,0x00,0x00 + phone_data_86_17 +000088 00000000 DCB 0x00,0x00,0x00,0x00 +00008c 04000000 DCB 0x04,0x00,0x00,0x00 + phone_data_86_18 +000090 00000000 DCB 0x00,0x00,0x00,0x00 +000094 04030000 DCB 0x04,0x03,0x00,0x00 + phone_data_86_19 +000098 00000000 DCB 0x00,0x00,0x00,0x00 +00009c 04430501 DCB 0x04,0x43,0x05,0x01 + phone_data_86_20 +0000a0 00000000 DCB 0x00,0x00,0x00,0x00 +0000a4 044301a0 DCB 0x04,0x43,0x01,0xa0 + phone_data_86_21 +0000a8 01000000 DCB 0x01,0x00,0x00,0x00 +0000ac 00000000 DCB 0x00,0x00,0x00,0x00 + phone_data_86_1800 +0000b0 4301a406 DCB 0x43,0x01,0xa4,0x06 +0000b4 70000000 DCB 0x70,0x00,0x00,0x00 + phone_data_86_4000 +0000b8 03003936 DCB 0x03,0x00,0x39,0x36 +0000bc 00000000 DCB 0x00,0x00,0x00,0x00 + phone_data_A6_0 +0000c0 a5010100 DCB 0xa5,0x01,0x01,0x00 +0000c4 00000002 DCB 0x00,0x00,0x00,0x02 +0000c8 03003936 DCB 0x03,0x00,0x39,0x36 +0000cc 00000000 DCB 0x00,0x00,0x00,0x00 +0000d0 54003919 DCB 0x54,0x00,0x39,0x19 +0000d4 30000000 DCB 0x30,0x00,0x00,0x00 +0000d8 ffff0000 DCB 0xff,0xff,0x00,0x00 +0000dc 09090900 DCB 0x09,0x09,0x09,0x00 +0000e0 3937004d DCB 0x39,0x37,0x00,0x4d +0000e4 504b3758 DCB 0x50,0x4b,0x37,0x58 +0000e8 0b000000 DCB 0x0b,0x00,0x00,0x00 +0000ec 01140000 DCB 0x01,0x14,0x00,0x00 +0000f0 18710000 DCB 0x18,0x71,0x00,0x00 +0000f4 00000000 DCB 0x00,0x00,0x00,0x00 +0000f8 50354f54 DCB 0x50,0x35,0x4f,0x54 +0000fc 3b383329 DCB 0x3b,0x38,0x33,0x29 +000100 00000000 DCB 0x00,0x00,0x00,0x00 +000104 00000000 DCB 0x00,0x00,0x00,0x00 +000108 00000000 DCB 0x00,0x00,0x00,0x00 +00010c 00000000 DCB 0x00,0x00,0x00,0x00 +000110 61041b02 DCB 0x61,0x04,0x1b,0x02 +000114 070f0000 DCB 0x07,0x0f,0x00,0x00 +000118 00000000 DCB 0x00,0x00,0x00,0x00 +00011c 00000000 DCB 0x00,0x00,0x00,0x00 +000120 00000000 DCB 0x00,0x00,0x00,0x00 +000124 00000000 DCB 0x00,0x00,0x00,0x00 +000128 00000000 DCB 0x00,0x00,0x00,0x00 +00012c 00000000 DCB 0x00,0x00,0x00,0x00 +000130 00000000 DCB 0x00,0x00,0x00,0x00 +000134 00000000 DCB 0x00,0x00,0x00,0x00 +000138 00000000 DCB 0x00,0x00,0x00,0x00 +00013c 00000000 DCB 0x00,0x00,0x00,0x00 +000140 74290000 DCB 0x74,0x29,0x00,0x00 +000144 00000000 DCB 0x00,0x00,0x00,0x00 +000148 3e387f1f DCB 0x3e,0x38,0x7f,0x1f +00014c 1d222c29 DCB 0x1d,0x22,0x2c,0x29 +000150 4c37410d DCB 0x4c,0x37,0x41,0x0d +000154 7c0d4a2c DCB 0x7c,0x0d,0x4a,0x2c +000158 6137560d DCB 0x61,0x37,0x56,0x0d +00015c 110d5f2c DCB 0x11,0x0d,0x5f,0x2c +000160 00000000 DCB 0x00,0x00,0x00,0x00 +000164 00000000 DCB 0x00,0x00,0x00,0x00 +000168 00000000 DCB 0x00,0x00,0x00,0x00 +00016c 00000000 DCB 0x00,0x00,0x00,0x00 +000170 00000000 DCB 0x00,0x00,0x00,0x00 +000174 00000000 DCB 0x00,0x00,0x00,0x00 +000178 00000000 DCB 0x00,0x00,0x00,0x00 +00017c 00000000 DCB 0x00,0x00,0x00,0x00 +000180 00000000 DCB 0x00,0x00,0x00,0x00 +000184 00000000 DCB 0x00,0x00,0x00,0x00 +000188 00000000 DCB 0x00,0x00,0x00,0x00 +00018c 00000000 DCB 0x00,0x00,0x00,0x00 + phone_data_A6_1 +000190 a5010100 DCB 0xa5,0x01,0x01,0x00 + phone_data_A6_2 +000194 a5700200 DCB 0xa5,0x70,0x02,0x00 +000198 00010000 DCB 0x00,0x01,0x00,0x00 +00019c 00000000 DCB 0x00,0x00,0x00,0x00 +0001a0 00000000 DCB 0x00,0x00,0x00,0x00 +0001a4 084f70cb DCB 0x08,0x4f,0x70,0xcb +0001a8 481c1902 DCB 0x48,0x1c,0x19,0x02 +0001ac 22192900 DCB 0x22,0x19,0x29,0x00 + phone_data_A6_3 +0001b0 00000000 DCB 0x00,0x00,0x00,0x00 + phone_data_A6_4 +0001b4 a5700200 DCB 0xa5,0x70,0x02,0x00 +0001b8 00010000 DCB 0x00,0x01,0x00,0x00 +0001bc 00000000 DCB 0x00,0x00,0x00,0x00 +0001c0 00000000 DCB 0x00,0x00,0x00,0x00 +0001c4 084f70cb DCB 0x08,0x4f,0x70,0xcb +0001c8 48383205 DCB 0x48,0x38,0x32,0x05 +0001cc 45325200 DCB 0x45,0x32,0x52,0x00 + phone_data_A6_5 +0001d0 ffffffff DCB 0xff,0xff,0xff,0xff + phone_data_A6_6 +0001d4 00391930 DCB 0x00,0x39,0x19,0x30 +0001d8 000000ff DCB 0x00,0x00,0x00,0xff +0001dc ff000009 DCB 0xff,0x00,0x00,0x09 +0001e0 09090039 DCB 0x09,0x09,0x00,0x39 +0001e4 37004d50 DCB 0x37,0x00,0x4d,0x50 +0001e8 4b37580b DCB 0x4b,0x37,0x58,0x0b +0001ec 00000001 DCB 0x00,0x00,0x00,0x01 +0001f0 29000030 DCB 0x29,0x00,0x00,0x30 +0001f4 e2000000 DCB 0xe2,0x00,0x00,0x00 +0001f8 000000a1 DCB 0x00,0x00,0x00,0xa1 +0001fc 6b9fa977 DCB 0x6b,0x9f,0xa9,0x77 +000200 70665200 DCB 0x70,0x66,0x52,0x00 +000204 00000000 DCB 0x00,0x00,0x00,0x00 +000208 00000000 DCB 0x00,0x00,0x00,0x00 +00020c 00000000 DCB 0x00,0x00,0x00,0x00 +000210 000000c3 DCB 0x00,0x00,0x00,0xc3 +000214 0837040f DCB 0x08,0x37,0x04,0x0f +000218 1f000000 DCB 0x1f,0x00,0x00,0x00 +00021c 00000000 DCB 0x00,0x00,0x00,0x00 +000220 00000000 DCB 0x00,0x00,0x00,0x00 +000224 00000000 DCB 0x00,0x00,0x00,0x00 +000228 00000000 DCB 0x00,0x00,0x00,0x00 +00022c 00000000 DCB 0x00,0x00,0x00,0x00 +000230 00000000 DCB 0x00,0x00,0x00,0x00 +000234 00000000 DCB 0x00,0x00,0x00,0x00 +000238 00000000 DCB 0x00,0x00,0x00,0x00 +00023c 00000000 DCB 0x00,0x00,0x00,0x00 +000240 000000e8 DCB 0x00,0x00,0x00,0xe8 +000244 52000000 DCB 0x52,0x00,0x00,0x00 +000248 0000007c DCB 0x00,0x00,0x00,0x7c +00024c 71fe3e3a DCB 0x71,0xfe,0x3e,0x3a +000250 45585398 DCB 0x45,0x58,0x53,0x98 +000254 6e821af8 DCB 0x6e,0x82,0x1a,0xf8 +000258 1a9459c2 DCB 0x1a,0x94,0x59,0xc2 +00025c 6eac1a22 DCB 0x6e,0xac,0x1a,0x22 +000260 1bbe5900 DCB 0x1b,0xbe,0x59,0x00 +000264 00000000 DCB 0x00,0x00,0x00,0x00 +000268 00000000 DCB 0x00,0x00,0x00,0x00 +00026c 00000000 DCB 0x00,0x00,0x00,0x00 +000270 00000000 DCB 0x00,0x00,0x00,0x00 +000274 00000000 DCB 0x00,0x00,0x00,0x00 +000278 00000000 DCB 0x00,0x00,0x00,0x00 +00027c 00000000 DCB 0x00,0x00,0x00,0x00 +000280 00000000 DCB 0x00,0x00,0x00,0x00 +000284 00000000 DCB 0x00,0x00,0x00,0x00 +000288 00000000 DCB 0x00,0x00,0x00,0x00 +00028c 00000000 DCB 0x00,0x00,0x00,0x00 +000290 00000004 DCB 0x00,0x00,0x00,0x04 +000294 a5010100 DCB 0xa5,0x01,0x01,0x00 +000298 044301a4 DCB 0x04,0x43,0x01,0xa4 +00029c 06700000 DCB 0x06,0x70,0x00,0x00 +0002a0 0004a570 DCB 0x00,0x04,0xa5,0x70 + phone_data_FA_0 +0002a4 00 DCB 0x00 + phone_data_FA_1 +0002a5 a501 DCB 0xa5,0x01 + phone_data_FA_2 +0002a7 00 DCB 0x00 +0002a8 04 DCB 0x04 + phone_data_43 +0002a9 000000 DCB 0x00,0x00,0x00 +0002ac 00000000 DCB 0x00,0x00,0x00,0x00 +0002b0 00 DCB 0x00 + screen_87_data +0002b1 87 DCB 0x87 + screen_a0_00_ff_data +0002b2 a000 DCB 0xa0,0x00 +0002b4 ff DCB 0xff + screen_a4_06_c1_data +0002b5 a406c1 DCB 0xa4,0x06,0xc1 + screen_reg_int_data_size +0002b8 03 DCB 0x03 + screen_reg_start_data_size +0002b9 04 DCB 0x04 + + AREA ||.data||, DATA, ALIGN=2 + + phone_data_B1 +000000 0082 DCB 0x00,0x82 + tp_flag +000002 00 DCB 0x00 + s8_host_num +000003 02 DCB 0x02 +000004 02040608 DCB 0x02,0x04,0x06,0x08 +000008 0a0c0e10 DCB 0x0a,0x0c,0x0e,0x10 +00000c 1214 DCB 0x12,0x14 + s8_host_id +00000e 0010 DCB 0x00,0x10 +000010 20304050 DCB 0x20,0x30,0x40,0x50 +000014 60708090 DCB 0x60,0x70,0x80,0x90 + g_screen_input_rst_pad +000018 08 DCB 0x08 + g_screen_input_int_pad +000019 09 DCB 0x09 + g_phone_input_rst_pad +00001a 15 DCB 0x15 + g_phone_output_int_pad +00001b 02 DCB 0x02 + Flag_EA_EN +00001c 00 DCB 0x00 + Flag_touch_count +00001d 00 DCB 0x00 + touch_send_flag +00001e 00 DCB 0x00 + touch_recv_flag +00001f 00 DCB 0x00 + touchnum_bak +000020 00 DCB 0x00 + Flag_blacklight_EN +000021 00 DCB 0x00 + first_touch +000022 0000 DCW 0x0000 + first_send +000024 0000 DCW 0x0000 + flnger_state_flg +000026 0000 DCW 0x0000 + screen_data_write_1 +000028 04 DCB 0x04 + screen_data_write_2 +000029 08 DCB 0x08 + screen_data_write_3 +00002a 00 DCB 0x00 + screen_data_write_4 +00002b ff DCB 0xff +00002c 00 DCB 0x00 + screen_data_write_5 +00002d 1fff DCB 0x1f,0xff + screen_data_write_6 +00002f 0e DCB 0x0e +000030 24 DCB 0x24 + screen_data_write_7 +000031 2401 DCB 0x24,0x01 + screen_data_write_8 +000033 0d DCB 0x0d +000034 00 DCB 0x00 + screen_data_write_9 +000035 0e00 DCB 0x0e,0x00 + screen_data_write_10 +000037 0e DCB 0x0e +000038 07 DCB 0x07 + screen_data_write_11 +000039 0d DCB 0x0d + screen_data_write_12 +00003a 0500 DCB 0x05,0x00 + screen_reg_int_data + DCD screen_data_write_1 + DCD 0x00000001 + DCD 0x00000002 +000048 01000000 DCB 0x01,0x00,0x00,0x00 + DCD screen_data_write_2 + DCD 0x00000001 + DCD 0x00000002 +000058 01000000 DCB 0x01,0x00,0x00,0x00 + DCD screen_data_write_3 + DCD 0x00000001 + DCD 0x00000008 +000068 01000000 DCB 0x01,0x00,0x00,0x00 + screen_reg_start_data + DCD screen_data_write_4 + DCD 0x00000002 + DCD 0x00000002 +000078 00000000 DCB 0x00,0x00,0x00,0x00 + DCD screen_data_write_5 + DCD 0x00000002 + DCD 0x00000002 +000088 00000000 DCB 0x00,0x00,0x00,0x00 + DCD screen_data_write_6 + DCD 0x00000002 + DCD 0x00000008 +000098 00000000 DCB 0x00,0x00,0x00,0x00 + DCD screen_data_write_7 + DCD 0x00000002 + DCD 0x00000008 +0000a8 00000000 DCB 0x00,0x00,0x00,0x00 + phone_reg_point_data +0000ac b60023 DCB 0xb6,0x00,0x23 + phone_reg_point_back +0000af 05 DCB 0x05 +0000b0 02 DCB 0x02 + phone_reg_coord_data +0000b1 860000 DCB 0x86,0x00,0x00 + phone_reg_int_data +0000b4 03000000 DCB 0x03,0x00,0x00,0x00 + DCD 0x00000002 + DCD phone_reg_point_data + DCD phone_reg_point_back +0000c4 01000000 DCB 0x01,0x00,0x00,0x00 + DCD 0x00000050 + DCD phone_reg_coord_data + DCD phone_reg_coord_back + phone_reg_int_size +0000d4 02000000 DCB 0x02,0x00,0x00,0x00 + phone_reg_const_data +0000d8 00 DCB 0x00 + phone_reg_const_data_size +0000d9 00 DCB 0x00 + app_tp_count +0000da 0000 DCB 0x00,0x00 + point_counter +0000dc 0000 DCW 0x0000 + phone_A6_flag +0000de 00 DCB 0x00 + phone_FA_flag +0000df 00 DCB 0x00 + phone_86_flag +0000e0 00 DCB 0x00 + |symbol_number.31| +0000e1 00 DCB 0x00 + |symbol_number.32| +0000e2 0000 DCB 0x00,0x00 + |symbol_number.33| +0000e4 0000 DCW 0x0000 + phone_poweron_flag +0000e6 00 DCB 0x00 + +;*** Start embedded assembler *** + +#line 1 "..\\..\\src\\app\\ap_demo\\app_tp_for_custom_mi8se.c" + AREA ||.rev16_text||, CODE + THUMB + EXPORT |__asm___25_app_tp_for_custom_mi8se_c_9df6279d____REV16| +#line 467 "C:\\Keil_v5\\ARM\\PACK\\ARM\\CMSIS\\5.5.1\\CMSIS\\Core\\Include\\cmsis_armcc.h" +|__asm___25_app_tp_for_custom_mi8se_c_9df6279d____REV16| PROC +#line 468 + + rev16 r0, r0 + bx lr + ENDP + AREA ||.revsh_text||, CODE + THUMB + EXPORT |__asm___25_app_tp_for_custom_mi8se_c_9df6279d____REVSH| +#line 482 +|__asm___25_app_tp_for_custom_mi8se_c_9df6279d____REVSH| PROC +#line 483 + + revsh r0, r0 + bx lr + ENDP + +;*** End embedded assembler *** diff --git a/project/ISP_368/Listings/app_tp_transfer.txt b/project/ISP_368/Listings/app_tp_transfer.txt new file mode 100644 index 0000000..a52f3de --- /dev/null +++ b/project/ISP_368/Listings/app_tp_transfer.txt @@ -0,0 +1,1198 @@ +; 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 -O0 --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..\..\src\app\ap_demo -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\ap_demo\app_tp_transfer.c] + THUMB + + AREA ||i.ap_tp_scan_point_init||, CODE, READONLY, ALIGN=2 + + ap_tp_scan_point_init PROC +;;;725 +;;;726 void ap_tp_scan_point_init(void) +000000 2000 MOVS r0,#0 +;;;727 { +;;;728 uint8_t i=0; +;;;729 +;;;730 for(i=0;i0) // в +000020 4807 LDR r0,|L2.64| +000022 7980 LDRB r0,[r0,#6] ; tp_scan_data +000024 2800 CMP r0,#0 +000026 dd07 BLE |L2.56| +;;;750 { +;;;751 printf("release finger %2d\n",tp_scan_data.tp_read_point_counter); +000028 4805 LDR r0,|L2.64| +00002a 7981 LDRB r1,[r0,#6] ; tp_scan_data +00002c a006 ADR r0,|L2.72| +00002e f7fffffe BL __2printf +;;;752 tp_scan_data.tp_read_point_counter = 0; +000032 2000 MOVS r0,#0 +000034 4902 LDR r1,|L2.64| +000036 7188 STRB r0,[r1,#6] + |L2.56| +;;;753 // ap_tp_simulate_finger_release_event(); +;;;754 } +;;;755 +;;;756 ap_tp_scan_point_init(); +000038 f7fffffe BL ap_tp_scan_point_init + |L2.60| +;;;757 } +;;;758 } +;;;759 +;;;760 } +00003c bd10 POP {r4,pc} +;;;761 + ENDP + +00003e 0000 DCW 0x0000 + |L2.64| + DCD tp_scan_data + |L2.68| + DCD 0x00001999 + |L2.72| +000048 72656c65 DCB "release finger %2d\n",0 +00004c 61736520 +000050 66696e67 +000054 65722025 +000058 32640a00 + + AREA ||i.app_tp_i2cs_callback||, CODE, READONLY, ALIGN=2 + + app_tp_i2cs_callback PROC +;;;337 #if PHONE_SLAVE_TRANSFER_I2C //warning +;;;338 static void app_tp_i2cs_callback(e_i2c_s_int_status int_status, size_t recieve_num) +000000 b570 PUSH {r4-r6,lr} +;;;339 { +000002 4604 MOV r4,r0 +000004 460d MOV r5,r1 +;;;340 static bool i2cs_transfer = true; //ȷһֻͨһ +;;;341 if (i2cs_transfer) +000006 480c LDR r0,|L3.56| +000008 7800 LDRB r0,[r0,#0] ; i2cs_transfer +00000a 2800 CMP r0,#0 +00000c d005 BEQ |L3.26| +;;;342 { +;;;343 i2cs_transfer = false; +00000e 2000 MOVS r0,#0 +000010 4909 LDR r1,|L3.56| +000012 7008 STRB r0,[r1,#0] +;;;344 app_tp_transfer_phone(recieve_num); +000014 4628 MOV r0,r5 +000016 f7fffffe BL app_tp_transfer_phone + |L3.26| +;;;345 } +;;;346 if (int_status == I2C_S_INT_READ) +00001a 2c00 CMP r4,#0 +00001c d106 BNE |L3.44| +;;;347 { +;;;348 app_tp_s_write(s_slave_txbuffer, s_slave_txbuffer_size); +00001e 4807 LDR r0,|L3.60| +000020 6801 LDR r1,[r0,#0] ; s_slave_txbuffer_size +000022 4807 LDR r0,|L3.64| +000024 6800 LDR r0,[r0,#0] ; s_slave_txbuffer +000026 f7fffffe BL app_tp_s_write +00002a e004 B |L3.54| + |L3.44| +;;;349 } +;;;350 else if (int_status == I2C_S_INT_STOP) +00002c 2c02 CMP r4,#2 +00002e d102 BNE |L3.54| +;;;351 { +;;;352 i2cs_transfer = true; +000030 2001 MOVS r0,#1 +000032 4901 LDR r1,|L3.56| +000034 7008 STRB r0,[r1,#0] + |L3.54| +;;;353 } +;;;354 } +000036 bd70 POP {r4-r6,pc} +;;;355 #endif + ENDP + + |L3.56| + DCD i2cs_transfer + |L3.60| + DCD s_slave_txbuffer_size + |L3.64| + DCD s_slave_txbuffer + + AREA ||i.app_tp_init||, CODE, READONLY, ALIGN=2 + + app_tp_init PROC +;;;142 **************************************************************************/ +;;;143 void app_tp_init(void) +000000 b510 PUSH {r4,lr} +;;;144 { +;;;145 #ifdef ADD_MCU_BD826 +;;;146 hal_gpio_init_output(IO_PAD_TD_SPIM_MOSI, IO_LVL_HIGH); //ʼTP_reset, +;;;147 hal_gpio_init_input(IO_PAD_TD_SPIM_MISO); +;;;148 #endif +;;;149 +;;;150 #ifdef DISABLE_TDDI_I2C_FUNCTION +;;;151 hal_gpio_set_mode(IO_PAD_TD_SPIM_CLK,IO_MODE_I2C1_SCL); +;;;152 hal_gpio_set_mode(IO_PAD_TD_SPIM_CSN,IO_MODE_I2C1_SDA); +;;;153 +;;;154 return; +;;;155 #else +;;;156 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 +;;;157 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 +;;;158 #endif +;;;159 +;;;160 //app_tp_phone_reset_init(); //ʼֻλIO +;;;161 app_tp_screen_int_init(); //screenж +000016 f7fffffe BL app_tp_screen_int_init +;;;162 #ifdef G_PHONE_INT_DEFAULT_LOW +;;;163 hal_gpio_init_output(g_phone_output_int_pad, IO_LVL_LOW); //phoneжIO +;;;164 #else +;;;165 hal_gpio_init_output(g_phone_output_int_pad, IO_LVL_HIGH); //phoneжIO +00001a 2101 MOVS r1,#1 +00001c 480c LDR r0,|L4.80| +00001e 7800 LDRB r0,[r0,#0] ; g_phone_output_int_pad +000020 f7fffffe BL hal_gpio_init_output +;;;166 #endif +;;;167 hal_gpio_init_output(g_screen_input_rst_pad, IO_LVL_HIGH); //ģTP RESET +000024 2101 MOVS r1,#1 +000026 480b LDR r0,|L4.84| +000028 7800 LDRB r0,[r0,#0] ; g_screen_input_rst_pad +00002a f7fffffe BL hal_gpio_init_output +;;;168 +;;;169 #if SCREEN_MASTER_TRANSFER_I2C +;;;170 hal_i2c_m_dma_init(SCREEN_I2C_ADDRESS, SCREEN_I2C_ADDR_BITS, I2C_MASTER_SPEED); +00002e 4a0a LDR r2,|L4.88| +000030 2107 MOVS r1,#7 +000032 2038 MOVS r0,#0x38 +000034 f7fffffe BL hal_i2c_m_dma_init +;;;171 #elif SCREEN_MASTER_TRANSFER_SPI +;;;172 hal_spi_m_dma_init(SPI_MASTER_SPEED, SCREEN_SPI_CPHA, SCREEN_SPI_CPOL); +;;;173 #endif +;;;174 +;;;175 #if PHONE_SLAVE_TRANSFER_I2C +;;;176 hal_i2c_s_init(CHIP_I2C_ADDRESS, CHIP_I2C_ADDR_BITS); +000038 2107 MOVS r1,#7 +00003a 2049 MOVS r0,#0x49 +00003c f7fffffe BL hal_i2c_s_init +;;;177 hal_i2c_s_set_transfer(app_tp_i2cs_callback); +000040 4806 LDR r0,|L4.92| +000042 f7fffffe BL hal_i2c_s_set_transfer +;;;178 hal_i2c_s_nonblocking_read(s_phone_read_buffer, BUFFER_SIZE_MAX); //ý buffer +000046 21c8 MOVS r1,#0xc8 +000048 4805 LDR r0,|L4.96| +00004a f7fffffe BL hal_i2c_s_nonblocking_read +;;;179 #elif PHONE_SLAVE_TRANSFER_SPI +;;;180 hal_spi_slave_init(PHONE_SPI_CPHA, PHONE_SPI_CPOL, true); // ʼspiԼdma +;;;181 hal_spi_slave_register_callback(app_tp_spis_callback); // עص +;;;182 hal_spi_slave_auto_transfer_abort(); // ֹͣ +;;;183 hal_spi_slave_flush_fifo(); // Flush FIFO +;;;184 +;;;185 /* ÿpacketԶ, circle mode Ϊfalse, յbuffer max sizeݺbufferٸ, packetɺûص */ +;;;186 hal_spi_slave_set_auto_rx_buffer(s_phone_read_buffer, BUFFER_SIZE_MAX, false); // auto rx buffer +;;;187 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 +;;;188 +;;;189 hal_spi_slave_enable(); // spis +;;;190 hal_spi_slave_auto_transfer_start(); // rxԶ +;;;191 #endif +;;;192 +;;;193 } +00004e bd10 POP {r4,pc} +;;;194 + ENDP + + |L4.80| + DCD g_phone_output_int_pad + |L4.84| + DCD g_screen_input_rst_pad + |L4.88| + DCD 0x00061a80 + |L4.92| + DCD app_tp_i2cs_callback + |L4.96| + DCD s_phone_read_buffer + + AREA ||i.app_tp_m_read||, CODE, READONLY, ALIGN=1 + + app_tp_m_read PROC +;;;258 **************************************************************************/ +;;;259 static void app_tp_m_read(const uint8_t *cmd, size_t cmd_size, uint8_t *data_buffer, size_t data_size) +000000 b5ff PUSH {r0-r7,lr} +;;;260 { +000002 b081 SUB sp,sp,#4 +000004 4605 MOV r5,r0 +000006 460e MOV r6,r1 +;;;261 #if SCREEN_MASTER_TRANSFER_I2C +;;;262 uint8_t i = 0; +000008 2400 MOVS r4,#0 +;;;263 uint32_t address = 0; +00000a 2700 MOVS r7,#0 +;;;264 +;;;265 for (i = 0; i < cmd_size; i++) //ȽҪ͵ϵ address +00000c bf00 NOP +00000e e005 B |L5.28| + |L5.16| +;;;266 { +;;;267 address |= (uint32_t)cmd[i] << i * 8; +000010 5d28 LDRB r0,[r5,r4] +000012 00e1 LSLS r1,r4,#3 +000014 4088 LSLS r0,r0,r1 +000016 4307 ORRS r7,r7,r0 +000018 1c60 ADDS r0,r4,#1 ;265 +00001a b2c4 UXTB r4,r0 ;265 + |L5.28| +00001c 42b4 CMP r4,r6 ;265 +00001e d3f7 BCC |L5.16| +;;;268 } +;;;269 hal_i2c_m_dma_read(address, cmd_size, data_buffer, data_size); +000020 4631 MOV r1,r6 +000022 4638 MOV r0,r7 +000024 9b04 LDR r3,[sp,#0x10] +000026 9a03 LDR r2,[sp,#0xc] +000028 f7fffffe BL hal_i2c_m_dma_read +;;;270 #elif SCREEN_MASTER_TRANSFER_SPI +;;;271 hal_spi_m_dma_read(cmd, cmd_size, data_buffer, data_size); +;;;272 #endif +;;;273 } +00002c b005 ADD sp,sp,#0x14 +00002e bdf0 POP {r4-r7,pc} +;;;274 + ENDP + + + AREA ||i.app_tp_m_transfer_complate||, CODE, READONLY, ALIGN=1 + + app_tp_m_transfer_complate PROC +;;;201 **************************************************************************/ +;;;202 bool app_tp_m_transfer_complate(void) +000000 b510 PUSH {r4,lr} +;;;203 { +;;;204 #if SCREEN_MASTER_TRANSFER_I2C +;;;205 return hal_i2c_m_transfer_complate(); +000002 f7fffffe BL hal_i2c_m_transfer_complate +;;;206 #elif SCREEN_MASTER_TRANSFER_SPI +;;;207 return hal_spi_m_get_transfer_complate(); +;;;208 #else +;;;209 return true; +;;;210 #endif +;;;211 } +000006 bd10 POP {r4,pc} +;;;212 + ENDP + + + AREA ||i.app_tp_m_write||, CODE, READONLY, ALIGN=1 + + app_tp_m_write PROC +;;;238 **************************************************************************/ +;;;239 static void app_tp_m_write(const uint8_t *txbuffer, size_t buffer_size) +000000 b570 PUSH {r4-r6,lr} +;;;240 { +000002 4604 MOV r4,r0 +000004 460d MOV r5,r1 +;;;241 #if SCREEN_MASTER_TRANSFER_I2C +;;;242 hal_i2c_m_dma_write(txbuffer, buffer_size); +000006 4629 MOV r1,r5 +000008 4620 MOV r0,r4 +00000a f7fffffe BL hal_i2c_m_dma_write +;;;243 #elif SCREEN_MASTER_TRANSFER_SPI +;;;244 hal_spi_m_dma_write(txbuffer, buffer_size); +;;;245 s_spim_write = true; +;;;246 #endif +;;;247 } +00000e bd70 POP {r4-r6,pc} +;;;248 + ENDP + + + AREA ||i.app_tp_phone_clear_reset_on||, CODE, READONLY, ALIGN=2 + + app_tp_phone_clear_reset_on PROC +;;;781 **************************************************************************/ +;;;782 void app_tp_phone_clear_reset_on(void) +000000 2000 MOVS r0,#0 +;;;783 { +;;;784 s_phone_reset_flag = false; +000002 4901 LDR r1,|L8.8| +000004 7008 STRB r0,[r1,#0] +;;;785 } +000006 4770 BX lr +;;;786 + ENDP + + |L8.8| + DCD s_phone_reset_flag + + AREA ||i.app_tp_phone_reset_on||, CODE, READONLY, ALIGN=2 + + app_tp_phone_reset_on PROC +;;;769 **************************************************************************/ +;;;770 bool app_tp_phone_reset_on(void) +000000 4801 LDR r0,|L9.8| +;;;771 { +;;;772 return s_phone_reset_flag; +000002 7800 LDRB r0,[r0,#0] ; s_phone_reset_flag +;;;773 } +000004 4770 BX lr +;;;774 + ENDP + +000006 0000 DCW 0x0000 + |L9.8| + DCD s_phone_reset_flag + + AREA ||i.app_tp_s_read||, CODE, READONLY, ALIGN=1 + + app_tp_s_read PROC +;;;303 **************************************************************************/ +;;;304 void app_tp_s_read(void *rxBuffer, size_t data_size) +000000 b570 PUSH {r4-r6,lr} +;;;305 { +000002 4604 MOV r4,r0 +000004 460d MOV r5,r1 +;;;306 #if PHONE_SLAVE_TRANSFER_I2C +;;;307 hal_i2c_s_nonblocking_read(rxBuffer, data_size); +000006 4629 MOV r1,r5 +000008 4620 MOV r0,r4 +00000a f7fffffe BL hal_i2c_s_nonblocking_read +;;;308 #endif +;;;309 } +00000e bd70 POP {r4-r6,pc} +;;;310 + ENDP + + + AREA ||i.app_tp_s_transfer_complate||, CODE, READONLY, ALIGN=1 + + app_tp_s_transfer_complate PROC +;;;219 **************************************************************************/ +;;;220 bool app_tp_s_transfer_complate(void) +000000 b510 PUSH {r4,lr} +;;;221 { +;;;222 #if SCREEN_MASTER_TRANSFER_I2C +;;;223 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 + |L11.20| +;;;224 #elif SCREEN_MASTER_TRANSFER_SPI +;;;225 return !hal_spi_slave_busy(); +;;;226 #else +;;;227 return true; +;;;228 #endif +;;;229 } +000014 bd10 POP {r4,pc} + |L11.22| +000016 2000 MOVS r0,#0 ;223 +000018 e7fc B |L11.20| +;;;230 + ENDP + + + AREA ||i.app_tp_s_write||, CODE, READONLY, ALIGN=1 + + app_tp_s_write PROC +;;;282 **************************************************************************/ +;;;283 void app_tp_s_write(const uint8_t *txbuffer, size_t buffer_size) +000000 b570 PUSH {r4-r6,lr} +;;;284 { +000002 4604 MOV r4,r0 +000004 460d MOV r5,r1 +;;;285 #if PHONE_SLAVE_TRANSFER_I2C +;;;286 hal_i2c_s_dma_write(txbuffer, buffer_size); +000006 4629 MOV r1,r5 +000008 4620 MOV r0,r4 +00000a f7fffffe BL hal_i2c_s_dma_write +;;;287 #elif PHONE_SLAVE_TRANSFER_SPI +;;;288 //while (hal_spi_slave_busy()); +;;;289 hal_spi_slave_auto_transfer_abort(); +;;;290 hal_spi_slave_flush_fifo(); +;;;291 hal_spi_slave_set_auto_tx_buffer(txbuffer, buffer_size, true); +;;;292 hal_spi_slave_auto_transfer_start(); +;;;293 #endif +;;;294 } +00000e bd70 POP {r4-r6,pc} +;;;295 + ENDP + + + AREA ||i.app_tp_screen_init||, CODE, READONLY, ALIGN=2 + + app_tp_screen_init PROC +;;;126 **************************************************************************/ +;;;127 void app_tp_screen_init(void) +000000 b510 PUSH {r4,lr} +;;;128 { +;;;129 hal_gpio_init_output(g_screen_input_rst_pad, IO_LVL_HIGH); +000002 2101 MOVS r1,#1 +000004 480a LDR r0,|L13.48| +000006 7800 LDRB r0,[r0,#0] ; g_screen_input_rst_pad +000008 f7fffffe BL hal_gpio_init_output +;;;130 delayUs(200); +00000c 20c8 MOVS r0,#0xc8 +00000e f7fffffe BL delayUs +;;;131 hal_gpio_set_output_data(g_screen_input_rst_pad, IO_LVL_LOW); +000012 2100 MOVS r1,#0 +000014 4806 LDR r0,|L13.48| +000016 7800 LDRB r0,[r0,#0] ; g_screen_input_rst_pad +000018 f7fffffe BL hal_gpio_set_output_data +;;;132 delayUs(200); +00001c 20c8 MOVS r0,#0xc8 +00001e f7fffffe BL delayUs +;;;133 hal_gpio_set_output_data(g_screen_input_rst_pad, IO_LVL_HIGH); +000022 2101 MOVS r1,#1 +000024 4802 LDR r0,|L13.48| +000026 7800 LDRB r0,[r0,#0] ; g_screen_input_rst_pad +000028 f7fffffe BL hal_gpio_set_output_data +;;;134 } +00002c bd10 POP {r4,pc} +;;;135 + ENDP + +00002e 0000 DCW 0x0000 + |L13.48| + DCD g_screen_input_rst_pad + + AREA ||i.app_tp_screen_int_callback||, CODE, READONLY, ALIGN=2 + + app_tp_screen_int_callback PROC +;;;57 **************************************************************************/ +;;;58 static void app_tp_screen_int_callback(void *data) +000000 2101 MOVS r1,#1 +;;;59 { +;;;60 s_screen_int_flag = true; +000002 4a01 LDR r2,|L14.8| +000004 7011 STRB r1,[r2,#0] +;;;61 } +000006 4770 BX lr +;;;62 + ENDP + + |L14.8| + DCD s_screen_int_flag + + AREA ||i.app_tp_screen_int_init||, CODE, READONLY, ALIGN=2 + + app_tp_screen_int_init PROC +;;;87 **************************************************************************/ +;;;88 static void app_tp_screen_int_init(void) +000000 b510 PUSH {r4,lr} +;;;89 { +;;;90 hal_gpio_set_pull_state(g_screen_input_int_pad, ENABLE, DISABLE); // 1. +000002 2200 MOVS r2,#0 +000004 2101 MOVS r1,#1 +000006 480c LDR r0,|L15.56| +000008 7800 LDRB r0,[r0,#0] ; g_screen_input_int_pad +00000a f7fffffe BL hal_gpio_set_pull_state +;;;91 hal_gpio_ctrl_eint(g_screen_input_int_pad, DISABLE); // 2.رж +00000e 2100 MOVS r1,#0 +000010 4809 LDR r0,|L15.56| +000012 7800 LDRB r0,[r0,#0] ; g_screen_input_int_pad +000014 f7fffffe BL hal_gpio_ctrl_eint +;;;92 hal_gpio_init_eint(g_screen_input_int_pad, DETECT_FALLING_EDGE); // 3.жϳʼ,TPһ㶼½شж +000018 2103 MOVS r1,#3 +00001a 4807 LDR r0,|L15.56| +00001c 7800 LDRB r0,[r0,#0] ; g_screen_input_int_pad +00001e f7fffffe BL hal_gpio_init_eint +;;;93 hal_gpio_reg_eint_cb(g_screen_input_int_pad, app_tp_screen_int_callback); // 4.עص +000022 4906 LDR r1,|L15.60| +000024 4804 LDR r0,|L15.56| +000026 7800 LDRB r0,[r0,#0] ; g_screen_input_int_pad +000028 f7fffffe BL hal_gpio_reg_eint_cb +;;;94 hal_gpio_ctrl_eint(g_screen_input_int_pad, ENABLE); // 5.ʹж +00002c 2101 MOVS r1,#1 +00002e 4802 LDR r0,|L15.56| +000030 7800 LDRB r0,[r0,#0] ; g_screen_input_int_pad +000032 f7fffffe BL hal_gpio_ctrl_eint +;;;95 } +000036 bd10 POP {r4,pc} +;;;96 + ENDP + + |L15.56| + DCD g_screen_input_int_pad + |L15.60| + DCD app_tp_screen_int_callback + + AREA ||i.app_tp_screen_int_lvl_low||, CODE, READONLY, ALIGN=1 + + app_tp_screen_int_lvl_low PROC +;;;69 **************************************************************************/ +;;;70 static bool app_tp_screen_int_lvl_low(void) +000000 2000 MOVS r0,#0 +;;;71 { +;;;72 #if SCREEN_MASTER_TRANSFER_I2C +;;;73 return false; +;;;74 #elif SCREEN_MASTER_TRANSFER_SPI +;;;75 return !hal_gpio_get_input_data(g_screen_input_int_pad); //ӦSPIͨŹżͻȻCS ͨ쳣 +;;;76 #else +;;;77 return false; +;;;78 #endif +;;;79 } +000002 4770 BX lr +;;;80 + ENDP + + + AREA ||i.app_tp_transfer_phone||, CODE, READONLY, ALIGN=2 + + app_tp_transfer_phone PROC +;;;700 **************************************************************************/ +;;;701 static void app_tp_transfer_phone(size_t recieve_num) +000000 b510 PUSH {r4,lr} +;;;702 { +000002 4604 MOV r4,r0 +;;;703 // const uint8_t *phone_write_buffer; +;;;704 // size_t phone_write_buffer_size = 0; +;;;705 /* ݽжǷҪԼ𸴵bufferָ */ +;;;706 if (recieve_num > 0) +000004 2c00 CMP r4,#0 +000006 d006 BEQ |L17.22| +;;;707 { +;;;708 #if 0// 1: test +;;;709 s_phone_read_buffer[3]=recieve_num; +;;;710 app_tp_m_write(s_phone_read_buffer, 4); +;;;711 #endif +;;;712 // app_tp_phone_analysis_data(s_phone_read_buffer, recieve_num, &phone_write_buffer, &phone_write_buffer_size); +;;;713 // app_tp_phone_analysis_data(s_phone_read_buffer, recieve_num, &s_slave_txbuffer, &s_slave_txbuffer_size); +;;;714 app_tp_phone_analysis_data_custom(s_phone_read_buffer, recieve_num, s_slave_txbuffer, &s_slave_txbuffer_size); +000008 4b05 LDR r3,|L17.32| +00000a 4806 LDR r0,|L17.36| +00000c 4621 MOV r1,r4 +00000e 6802 LDR r2,[r0,#0] ; s_slave_txbuffer +000010 4805 LDR r0,|L17.40| +000012 f7fffffe BL app_tp_phone_analysis_data_custom + |L17.22| +;;;715 // printf("222 %p %x \n",*s_slave_txbuffer,s_slave_txbuffer_size); +;;;716 } +;;;717 +;;;718 app_tp_s_read(s_phone_read_buffer, BUFFER_SIZE_MAX); +000016 21c8 MOVS r1,#0xc8 +000018 4803 LDR r0,|L17.40| +00001a f7fffffe BL app_tp_s_read +;;;719 /* if (phone_write_buffer_size) //0ʾҪֻ÷buffer +;;;720 { +;;;721 app_tp_s_write(phone_write_buffer, phone_write_buffer_size); +;;;722 } +;;;723 */ +;;;724 } +00001e bd10 POP {r4,pc} +;;;725 + ENDP + + |L17.32| + DCD s_slave_txbuffer_size + |L17.36| + DCD s_slave_txbuffer + |L17.40| + DCD s_phone_read_buffer + + AREA ||i.app_tp_transfer_screen_const||, CODE, READONLY, ALIGN=2 + + app_tp_transfer_screen_const PROC +;;;399 **************************************************************************/ +;;;400 static void app_tp_transfer_screen_const(void) +000000 b510 PUSH {r4,lr} +;;;401 { +;;;402 // static bool screen_const_transfer_buffer_ready = true; // buffer Ƿ׼ +;;;403 uint8_t ii; +;;;404 +;;;405 /**** 1. жϵǰ״̬ͨѽ, ״̬ͨѽҿʼ̻δ****/ +;;;406 #if 0 // test +;;;407 uint8_t test_master_read_buffer[10] = {0x08, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19}; +;;;408 uint8_t write_buffer[10] = {0x04, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19}; +;;;409 +;;;410 // for (ii =0x20; ii<0x7F; ii++) +;;;411 { +;;;412 //hal_i2c_m_dma_init(ii, SCREEN_I2C_ADDR_BITS); +;;;413 //delayMs(100); +;;;414 if (hal_i2c_m_dma_write(write_buffer, 1)) +;;;415 { +;;;416 //break; +;;;417 } +;;;418 while(!hal_i2c_m_transfer_complate()); +;;;419 hal_i2c_m_dma_read(test_master_read_buffer, 1, test_master_read_buffer, 2); +;;;420 } +;;;421 #endif +;;;422 +;;;423 +;;;424 if (app_tp_m_transfer_complate() && (s_screen_const_transfer_count < screen_reg_start_data_size)) +000002 f7fffffe BL app_tp_m_transfer_complate +000006 2800 CMP r0,#0 +000008 d014 BEQ |L18.52| +00000a 480b LDR r0,|L18.56| +00000c 7800 LDRB r0,[r0,#0] ; s_screen_const_transfer_count +00000e 490b LDR r1,|L18.60| +000010 7809 LDRB r1,[r1,#0] ; screen_reg_start_data_size +000012 4288 CMP r0,r1 +000014 da0e BGE |L18.52| +;;;425 { +;;;426 if (s_spim_write) //SPI дݺҪѽFIFOݶȻӰһζȡ +000016 480a LDR r0,|L18.64| +000018 7800 LDRB r0,[r0,#0] ; s_spim_write +00001a 2800 CMP r0,#0 +00001c d004 BEQ |L18.40| +;;;427 { +;;;428 hal_spi_m_clear_rxfifo(); +00001e f7fffffe BL hal_spi_m_clear_rxfifo +;;;429 s_spim_write = false; +000022 2000 MOVS r0,#0 +000024 4906 LDR r1,|L18.64| +000026 7008 STRB r0,[r1,#0] + |L18.40| +;;;430 } +;;;431 +;;;432 #if 1 +;;;433 +;;;434 #ifndef USE_FOR_SUMSUNG_S10 +;;;435 for (ii =0; ii= screen_reg_start_data_size) +;;;481 { +;;;482 s_screen_init_complate = true; +;;;483 } +;;;484 } +;;;485 #endif +;;;486 } +;;;487 } +000034 bd10 POP {r4,pc} +;;;488 + ENDP + +000036 0000 DCW 0x0000 + |L18.56| + DCD s_screen_const_transfer_count + |L18.60| + DCD screen_reg_start_data_size + |L18.64| + DCD s_spim_write + |L18.68| + DCD s_screen_init_complate + |L18.72| +000048 74702064 DCB "tp done\n",0 +00004c 6f6e650a +000050 00 +000051 00 DCB 0 +000052 00 DCB 0 +000053 00 DCB 0 + + AREA ||i.app_tp_transfer_screen_int||, CODE, READONLY, ALIGN=2 + + app_tp_transfer_screen_int PROC +;;;515 **************************************************************************/ +;;;516 void app_tp_transfer_screen_int(void) +000000 b510 PUSH {r4,lr} +;;;517 { +;;;518 bool screen_gpio_int = false; +000002 2400 MOVS r4,#0 +;;;519 static uint8_t screen_int_transfer_count = 0; //¼ǰͨŵһ +;;;520 static bool screen_int_transfer_buffer_ready = true; // buffer Ƿ׼ +;;;521 // static uint8_t test_flag = 0; +;;;522 +;;;523 if (!s_screen_init_complate) //TP ʼδɣȽгʼ +000004 482a LDR r0,|L19.176| +000006 7800 LDRB r0,[r0,#0] ; s_screen_init_complate +000008 2800 CMP r0,#0 +00000a d102 BNE |L19.18| +;;;524 { +;;;525 app_tp_transfer_screen_const(); +00000c f7fffffe BL app_tp_transfer_screen_const + |L19.16| +;;;526 return; +;;;527 } +;;;528 +;;;529 #if 0 //test +;;;530 test_flag++; +;;;531 if (test_flag >1000000) +;;;532 { +;;;533 test_flag =0; +;;;534 //TAU_LOGD("Run ok!!\n"); +;;;535 //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); +;;;536 //while(!hal_i2c_m_transfer_complate()); +;;;537 } +;;;538 #endif +;;;539 +;;;540 /**** 1. ж screen Ƿ񷢳жź ****/ +;;;541 // s_screen_int_flag: жźű־λ +;;;542 // app_tp_screen_int_lvl_low : SPI ʱͨʱżcsߵͨ쳣ñ־λڽ +;;;543 screen_gpio_int = s_screen_int_flag || app_tp_screen_int_lvl_low(); +;;;544 if (((screen_gpio_int) || (s_screen_int_transfer_status)) && app_tp_m_transfer_complate()) //жϵǰͨ״̬׼ͨ +;;;545 { +;;;546 // TAU_LOGD("touch ok!!\n"); +;;;547 s_screen_int_flag = false; +;;;548 if (s_spim_write) //SPI дݺҪѽFIFOݶȻӰһζȡ +;;;549 { +;;;550 hal_spi_m_clear_rxfifo(); +;;;551 s_spim_write = false; +;;;552 } +;;;553 +;;;554 /**** 2. ͻȡӻ ****/ +;;;555 if (screen_int_transfer_buffer_ready) +;;;556 { +;;;557 #ifndef READ_MODULE_TP_ONE_BY_ONE +;;;558 screen_int_transfer_buffer_ready = false; +;;;559 s_screen_int_transfer_status = true; +;;;560 #ifdef USE_FOR_SUMSUNG_S10 +;;;561 app_tp_m_read(screen_reg_int_data[2].buffer, 1, s_screen_read_buffer, 64); +;;;562 // app_tp_m_read(screen_reg_int_data[2].buffer, 1, s_screen_read_buffer, 8); +;;;563 while(!hal_i2c_m_transfer_complate()); +;;;564 +;;;565 #else +;;;566 app_tp_m_read(screen_reg_int_data[0].buffer, screen_reg_int_data[0].txbuffer_size, s_screen_temp, screen_reg_int_data[0].rxbuffer_size); +;;;567 while(!hal_i2c_m_transfer_complate()); +;;;568 app_tp_m_read(screen_reg_int_data[1].buffer, screen_reg_int_data[1].txbuffer_size, s_screen_number, screen_reg_int_data[1].rxbuffer_size); +;;;569 while(!hal_i2c_m_transfer_complate()); +;;;570 //TAU_LOGD("s_screen_number[%4x], size[%4x]", ((s_screen_number[1]<<8)|s_screen_number[0]), ((s_screen_temp[1]<<8)|s_screen_temp[0])); +;;;571 +;;;572 if(s_screen_number[1]) +;;;573 { +;;;574 if (s_screen_number[1]>3) +;;;575 { +;;;576 read_point =1; +;;;577 s_screen_int_transfer_status = false; +;;;578 } +;;;579 else if (s_screen_number[1] &0x02) +;;;580 read_point =10; +;;;581 else +;;;582 read_point =9; +;;;583 } +;;;584 else +;;;585 { +;;;586 if(s_screen_number[0] &0x80) +;;;587 read_point =8; +;;;588 else if(s_screen_number[0] &0x40) +;;;589 read_point =7; +;;;590 else if(s_screen_number[0] &0x20) +;;;591 read_point =6; +;;;592 else if(s_screen_number[0] &0x10) +;;;593 read_point =5; +;;;594 else if(s_screen_number[0] &0x08) +;;;595 read_point =4; +;;;596 else if(s_screen_number[0] &0x04) +;;;597 read_point =3; +;;;598 else if(s_screen_number[0] &0x02) +;;;599 read_point =2; +;;;600 else +;;;601 read_point =1; +;;;602 } +;;;603 read_point =8*read_point; +;;;604 app_tp_m_read(screen_reg_int_data[2].buffer, screen_reg_int_data[2].txbuffer_size, s_screen_read_buffer, read_point); +;;;605 while(!hal_i2c_m_transfer_complate()); +;;;606 #endif +;;;607 #else +;;;608 if (!screen_reg_int_data[screen_int_transfer_count].read_flag) //ǰͨŲҪأֱд +;;;609 { +;;;610 app_tp_m_write(screen_reg_int_data[screen_int_transfer_count].buffer, screen_reg_int_data[screen_int_transfer_count].txbuffer_size); +;;;611 } +;;;612 else //ǰͨҪأдٶ +;;;613 { +;;;614 s_screen_int_transfer_status = true; +;;;615 if (screen_int_transfer_count==0) +;;;616 { +;;;617 app_tp_m_read(screen_reg_int_data[screen_int_transfer_count].buffer, screen_reg_int_data[screen_int_transfer_count].txbuffer_size, \ +;;;618 s_screen_temp, screen_reg_int_data[screen_int_transfer_count].rxbuffer_size); +;;;619 screen_int_transfer_count =1; +;;;620 } +;;;621 else if (screen_int_transfer_count==1) +;;;622 { +;;;623 app_tp_m_read(screen_reg_int_data[screen_int_transfer_count].buffer, screen_reg_int_data[screen_int_transfer_count].txbuffer_size, \ +;;;624 s_screen_number, screen_reg_int_data[screen_int_transfer_count].rxbuffer_size); +;;;625 screen_int_transfer_count =2; +;;;626 } +;;;627 else if (screen_int_transfer_count==2) +;;;628 { +;;;629 if(s_screen_number[1]) +;;;630 { +;;;631 TAU_LOGD("s_screen_number[%4x], size[%4x]", ((s_screen_number[1]<<8)|s_screen_number[0]), ((s_screen_temp[1]<<8)|s_screen_temp[0])); +;;;632 if (s_screen_number[1] &0x02) +;;;633 read_point =10; +;;;634 else +;;;635 read_point =9; +;;;636 } +;;;637 else +;;;638 { +;;;639 if(s_screen_number[0] &0x80) +;;;640 read_point =8; +;;;641 else if(s_screen_number[0] &0x40) +;;;642 read_point =7; +;;;643 else if(s_screen_number[0] &0x20) +;;;644 read_point =6; +;;;645 else if(s_screen_number[0] &0x10) +;;;646 read_point =5; +;;;647 else if(s_screen_number[0] &0x08) +;;;648 read_point =4; +;;;649 else if(s_screen_number[0] &0x04) +;;;650 read_point =3; +;;;651 else if(s_screen_number[0] &0x02) +;;;652 read_point =2; +;;;653 else +;;;654 read_point =1; +;;;655 } +;;;656 read_point =8*read_point; +;;;657 +;;;658 app_tp_m_read(screen_reg_int_data[screen_int_transfer_count].buffer, screen_reg_int_data[screen_int_transfer_count].txbuffer_size, \ +;;;659 s_screen_read_buffer, read_point); +;;;660 screen_int_transfer_count =0; +;;;661 screen_int_transfer_buffer_ready = false; +;;;662 } +;;;663 } +;;;664 #endif +;;;665 } +;;;666 /**** 3. ͨݣ׼һͨŵbuffer ****/ +;;;667 else +;;;668 { +;;;669 #if 1 +;;;670 #ifdef USE_FOR_SUMSUNG_S10 +;;;671 u16TouchID=0x0000; +;;;672 #endif +;;;673 screen_int_transfer_buffer_ready = true; +;;;674 screen_int_transfer_count = app_tp_screen_analysis_int(screen_int_transfer_count, s_screen_read_buffer,screen_reg_int_data[2].rxbuffer_size); +;;;675 screen_int_transfer_count = 0; +;;;676 s_screen_int_transfer_status = false; +;;;677 +;;;678 #else +;;;679 screen_int_transfer_buffer_ready = true; +;;;680 screen_int_transfer_count = app_tp_screen_analysis_int(screen_int_transfer_count, s_screen_read_buffer, \ +;;;681 screen_reg_int_data[screen_int_transfer_count].rxbuffer_size); +;;;682 +;;;683 if (screen_int_transfer_count > screen_reg_int_data_size) //ҪһͨŽһݽֹͣͨ +;;;684 { +;;;685 screen_int_transfer_count = 0; +;;;686 s_screen_int_transfer_status = false; +;;;687 return; +;;;688 } +;;;689 #endif +;;;690 } +;;;691 } +;;;692 } +000010 bd10 POP {r4,pc} + |L19.18| +000012 4828 LDR r0,|L19.180| +000014 7800 LDRB r0,[r0,#0] ;543 ; s_screen_int_flag +000016 2800 CMP r0,#0 ;543 +000018 d103 BNE |L19.34| +00001a f7fffffe BL app_tp_screen_int_lvl_low +00001e 2800 CMP r0,#0 ;543 +000020 d001 BEQ |L19.38| + |L19.34| +000022 2001 MOVS r0,#1 ;543 +000024 e000 B |L19.40| + |L19.38| +000026 2000 MOVS r0,#0 ;543 + |L19.40| +000028 4604 MOV r4,r0 ;543 +00002a 2c00 CMP r4,#0 ;544 +00002c d103 BNE |L19.54| +00002e 4822 LDR r0,|L19.184| +000030 7800 LDRB r0,[r0,#0] ;544 ; s_screen_int_transfer_status +000032 2800 CMP r0,#0 ;544 +000034 d039 BEQ |L19.170| + |L19.54| +000036 f7fffffe BL app_tp_m_transfer_complate +00003a 2800 CMP r0,#0 ;544 +00003c d035 BEQ |L19.170| +00003e 2000 MOVS r0,#0 ;547 +000040 491c LDR r1,|L19.180| +000042 7008 STRB r0,[r1,#0] ;547 +000044 481d LDR r0,|L19.188| +000046 7800 LDRB r0,[r0,#0] ;548 ; s_spim_write +000048 2800 CMP r0,#0 ;548 +00004a d004 BEQ |L19.86| +00004c f7fffffe BL hal_spi_m_clear_rxfifo +000050 2000 MOVS r0,#0 ;551 +000052 491a LDR r1,|L19.188| +000054 7008 STRB r0,[r1,#0] ;551 + |L19.86| +000056 481a LDR r0,|L19.192| +000058 7800 LDRB r0,[r0,#0] ;555 ; screen_int_transfer_buffer_ready +00005a 2800 CMP r0,#0 ;555 +00005c d012 BEQ |L19.132| +00005e 2000 MOVS r0,#0 ;558 +000060 4917 LDR r1,|L19.192| +000062 7008 STRB r0,[r1,#0] ;558 +000064 2001 MOVS r0,#1 ;559 +000066 4914 LDR r1,|L19.184| +000068 7008 STRB r0,[r1,#0] ;559 +00006a 4916 LDR r1,|L19.196| +00006c 2340 MOVS r3,#0x40 ;561 +00006e 4a16 LDR r2,|L19.200| +000070 6a08 LDR r0,[r1,#0x20] ;561 ; screen_reg_int_data +000072 2101 MOVS r1,#1 ;561 +000074 f7fffffe BL app_tp_m_read +000078 bf00 NOP ;563 + |L19.122| +00007a f7fffffe BL hal_i2c_m_transfer_complate +00007e 2800 CMP r0,#0 ;563 +000080 d0fb BEQ |L19.122| +000082 e012 B |L19.170| + |L19.132| +000084 2000 MOVS r0,#0 ;671 +000086 4911 LDR r1,|L19.204| +000088 8008 STRH r0,[r1,#0] ;671 +00008a 2001 MOVS r0,#1 ;673 +00008c 490c LDR r1,|L19.192| +00008e 7008 STRB r0,[r1,#0] ;673 +000090 480c LDR r0,|L19.196| +000092 490d LDR r1,|L19.200| +000094 6a82 LDR r2,[r0,#0x28] ;674 +000096 480e LDR r0,|L19.208| +000098 7800 LDRB r0,[r0,#0] ;674 ; screen_int_transfer_count +00009a f7fffffe BL app_tp_screen_analysis_int +00009e 490c LDR r1,|L19.208| +0000a0 7008 STRB r0,[r1,#0] ;674 +0000a2 2000 MOVS r0,#0 ;675 +0000a4 7008 STRB r0,[r1,#0] ;675 +0000a6 4904 LDR r1,|L19.184| +0000a8 7008 STRB r0,[r1,#0] ;676 + |L19.170| +0000aa bf00 NOP +0000ac e7b0 B |L19.16| +;;;693 + ENDP + +0000ae 0000 DCW 0x0000 + |L19.176| + DCD s_screen_init_complate + |L19.180| + DCD s_screen_int_flag + |L19.184| + DCD s_screen_int_transfer_status + |L19.188| + DCD s_spim_write + |L19.192| + DCD screen_int_transfer_buffer_ready + |L19.196| + DCD screen_reg_int_data + |L19.200| + DCD s_screen_read_buffer + |L19.204| + DCD u16TouchID + |L19.208| + DCD screen_int_transfer_count + + AREA ||i.app_tp_transfer_screen_start||, CODE, READONLY, ALIGN=2 + + app_tp_transfer_screen_start PROC +;;;495 **************************************************************************/ +;;;496 void app_tp_transfer_screen_start(void) +000000 b510 PUSH {r4,lr} +;;;497 { +;;;498 s_screen_init_complate = false; +000002 2000 MOVS r0,#0 +000004 4904 LDR r1,|L20.24| +000006 7008 STRB r0,[r1,#0] +;;;499 s_screen_const_transfer_count = 0; +000008 4904 LDR r1,|L20.28| +00000a 7008 STRB r0,[r1,#0] +;;;500 //app_tp_screen_init(); +;;;501 #ifndef DISABLE_I2C_INIT_CODE +;;;502 app_tp_transfer_screen_const(); +00000c f7fffffe BL app_tp_transfer_screen_const +;;;503 #endif +;;;504 s_screen_int_flag = false; +000010 2000 MOVS r0,#0 +000012 4903 LDR r1,|L20.32| +000014 7008 STRB r0,[r1,#0] +;;;505 } +000016 bd10 POP {r4,pc} +;;;506 + ENDP + + |L20.24| + DCD s_screen_init_complate + |L20.28| + DCD s_screen_const_transfer_count + |L20.32| + DCD s_screen_int_flag + + AREA ||.bss||, DATA, NOINIT, ALIGN=2 + + s_screen_read_bak + % 80 + s_screen_read_buffer + % 200 + s_phone_read_buffer + % 200 + tp_scan_data + % 12 + + AREA ||.data||, DATA, ALIGN=2 + + read_point +000000 00 DCB 0x00 + s_screen_number +000001 0000 DCB 0x00,0x00 + s_screen_temp +000003 00 DCB 0x00 +000004 00000000 DCB 0x00,0x00,0x00,0x00 + s_slave_txbuffer + DCD 0x00000000 + s_slave_txbuffer_size + DCD 0x00000000 + s_spim_write +000010 00 DCB 0x00 + s_screen_int_flag +000011 00 DCB 0x00 + s_phone_reset_flag +000012 00 DCB 0x00 + s_screen_int_transfer_status +000013 00 DCB 0x00 + s_screen_init_complate +000014 00 DCB 0x00 + s_screen_const_transfer_count +000015 ff DCB 0xff + u16TouchID +000016 0000 DCB 0x00,0x00 + i2cs_transfer +000018 01 DCB 0x01 + screen_int_transfer_count +000019 00 DCB 0x00 + screen_int_transfer_buffer_ready +00001a 01 DCB 0x01 + +;*** Start embedded assembler *** + +#line 1 "..\\..\\src\\app\\ap_demo\\app_tp_transfer.c" + AREA ||.rev16_text||, CODE + THUMB + EXPORT |__asm___17_app_tp_transfer_c_8a033719____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_8a033719____REV16| PROC +#line 468 + + rev16 r0, r0 + bx lr + ENDP + AREA ||.revsh_text||, CODE + THUMB + EXPORT |__asm___17_app_tp_transfer_c_8a033719____REVSH| +#line 482 +|__asm___17_app_tp_transfer_c_8a033719____REVSH| PROC +#line 483 + + revsh r0, r0 + bx lr + ENDP + +;*** End embedded assembler *** diff --git a/project/ISP_368/Listings/board.txt b/project/ISP_368/Listings/board.txt new file mode 100644 index 0000000..5124088 --- /dev/null +++ b/project/ISP_368/Listings/board.txt @@ -0,0 +1,63 @@ +; 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 -O0 --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..\..\src\app\ap_demo -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 + + board_Init PROC +;;;13 +;;;14 void board_Init(void) +000000 b510 PUSH {r4,lr} +;;;15 { +;;;16 hal_system_init(SYSTEM_CLOCK); +000002 4807 LDR r0,|L1.32| +000004 f7fffffe BL hal_system_init +;;;17 hal_system_enable_systick(1); +000008 2001 MOVS r0,#1 +00000a f7fffffe BL hal_system_enable_systick +;;;18 #if !EDA_MODE +;;;19 hal_system_init_console(115200); +00000e 20e1 MOVS r0,#0xe1 +000010 0240 LSLS r0,r0,#9 +000012 f7fffffe BL hal_system_init_console +;;;20 #endif +;;;21 #if defined(ISP_568) || defined(ISP_368) +;;;22 /* 从EFUSE读取DPHY校准值并设置 */ +;;;23 hal_system_set_phy_calibration(true); +000016 2001 MOVS r0,#1 +000018 f7fffffe BL hal_system_set_phy_calibration +;;;24 #endif +;;;25 } +00001c bd10 POP {r4,pc} +;;;26 + ENDP + +00001e 0000 DCW 0x0000 + |L1.32| + DCD 0x04c4b400 + +;*** Start embedded assembler *** + +#line 1 "..\\..\\src\\board\\board.c" + AREA ||.rev16_text||, CODE + THUMB + EXPORT |__asm___7_board_c_bcd01269____REV16| +#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 + + rev16 r0, r0 + bx lr + ENDP + AREA ||.revsh_text||, CODE + THUMB + EXPORT |__asm___7_board_c_bcd01269____REVSH| +#line 482 +|__asm___7_board_c_bcd01269____REVSH| PROC +#line 483 + + revsh r0, r0 + bx lr + ENDP + +;*** End embedded assembler *** diff --git a/project/ISP_368/Listings/main.txt b/project/ISP_368/Listings/main.txt new file mode 100644 index 0000000..66c2ba8 --- /dev/null +++ b/project/ISP_368/Listings/main.txt @@ -0,0 +1,102 @@ +; 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 -O0 --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..\..\src\app\ap_demo -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 + + main PROC +;;;8 +;;;9 int main() +000000 f7fffffe BL board_Init +;;;10 { +;;;11 board_Init(); +;;;12 +;;;13 while (1) +000004 e003 B |L1.14| + |L1.6| +;;;14 { +;;;15 #if _DEMO_DSI_TX_EN +;;;16 demo_dsi_tx_case(); +;;;17 #endif +;;;18 #if _DEMO_DSI_RX_EN +;;;19 demo_hal_dsi_rx_case(); +;;;20 #endif +;;;21 #if _DEMO_TIMER_EN +;;;22 demo_timer_case(); +;;;23 #endif +;;;24 #if _DEMO_WDG_EN +;;;25 demo_wdg_case(); +;;;26 #endif +;;;27 #if _DEMO_GPIO_EN +;;;28 demo_gpio_case(); +;;;29 #endif +;;;30 #if _DEMO_PWM_EN +;;;31 demo_pwm_case(); +;;;32 #endif +;;;33 #if _DEMO_SWIRE_EN +;;;34 demo_swire_case(); +;;;35 #endif +;;;36 +;;;37 #if _DEMO_I2C_EN +;;;38 demo_hal_i2c(); +;;;39 #endif +;;;40 +;;;41 #if _DEMO_SPI_EN +;;;42 demo_hal_spi(); +;;;43 #endif +;;;44 +;;;45 #if _DEMO_S8_EN +;;;46 s8_demo(); +;;;47 #endif +;;;48 +;;;49 #if _DEMO_S8P_EN +;;;50 s8p_demo(); +;;;51 #endif +;;;52 +;;;53 #if _DEMO_S9_EN +;;;54 s9_demo(); +;;;55 #endif +;;;56 +;;;57 #if _DEMO_MI8SE_EN +;;;58 ap_demo(); +000006 f7fffffe BL ap_demo +;;;59 #endif +;;;60 +;;;61 while (1); +00000a bf00 NOP + |L1.12| +00000c e7fe B |L1.12| + |L1.14| +00000e e7fa B |L1.6| +;;;62 } +;;;63 } + ENDP + + +;*** Start embedded assembler *** + +#line 1 "..\\..\\src\\app\\main.c" + AREA ||.rev16_text||, CODE + THUMB + EXPORT |__asm___6_main_c_main____REV16| +#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 + + rev16 r0, r0 + bx lr + ENDP + AREA ||.revsh_text||, CODE + THUMB + EXPORT |__asm___6_main_c_main____REVSH| +#line 482 +|__asm___6_main_c_main____REVSH| PROC +#line 483 + + revsh r0, r0 + bx lr + ENDP + +;*** End embedded assembler *** + + __ARM_use_no_argv EQU 0 diff --git a/project/ISP_368/Objects/ISP368_Mi8SE_20230523.bin b/project/ISP_368/Objects/ISP368_Mi8SE_20230523.bin new file mode 100644 index 0000000000000000000000000000000000000000..7f58506699132a9a860411a9c0ea013d6eec66f7 GIT binary patch literal 49452 zcmb@vdwf&JnLj*p&XIH^UnE}u*%szVwu5XS5#(l)v^mlt$C9}O9MVEAiv%W-4J1mS ziAkWy z0Slpw?QlJC{cuURKf;-jw+@c?KcSM;vT@=kO>cai5<9-yzul?8Qz?m5SfAx=$=sBWAe?_z${)W&Wp8f)rszj1pwAQQ@smJ9PeTHK*)i29| zsyh7271Pv~YBKMGGoFD+KdG%#iJP9HwX%=Y!>2 zPEu_HnSM@fmfyAd$YRnW-YNF_xTBmZswHYOsY$$9)J)DEEG_;{r8Mu_Qvr@%5wQH# zu)Bh_qQxgUZ>=g(e<(M2ZT3S&y*_7x%$<>-^Tac!4AIJ?)@a31)9HgGwP`dnz#z0n zCRN5kd(?i1FKU0=YEuHlqy@x7rV@pvM=NA8YA30szz-4XT2V==(!_8hDxCE~eDKa37G9mTk z6p`#o1Y^Vc>bO-V&E$_JS!@xByF5V}N)taRI#%T6s5EG3;R0yGdzEH;seSu3-9CD( z)j_lXA#*88i42e$2HRE1E3ycvJDnu;mPEIYOH$_%lR-o3QR<``Vv1%Mw96GF_0~va zz())TA1N(v@$L4}(S}_L#UEF8c@0M!)%j|* zIzuf`Idv7_Hf2e|Q^dz)1F(t$MTVGM$;D*%gQx5~b&>+JK~!i=h?70UZAj3b79Wwi zykrlJadFvcsiZw5PEvspgIcI=P)+ZURO`rK#RFcxx44MZ{MU@n$d&3N@^ocULg*z8 z^AcPyZQy&Sohda8R(5;o71tSv;{oqctKq9hP2^d+hkL$3t-(C~`iSX3YJjzNWO%y4 z)ofJ{+6OCt;H6G8a@^`A_8s05)o$PF{S~NYQ$?${O#78-lQ>Oj1@)9Gd@sEsUq`-% zUtn}RNUac663Tzb`rnSOWZuDovH?W4SbBENqtf+(OT7+YI#+^*LZBb+EVp>?-tdh z6e{0Te~$4Ah;C(%{Z6kzEmD4;w5fKbED;2!S}s2zi;59pTjlq?#-r3lYK$6st>(0e z)4&~++iWDhMWu#DN65>)z`sZ;+PoySA^Qftcbq5W(2ODLa@p1|+ut@lUqhTERhzX9 z*!qd<`I-_?-%P}c`waoE8)@AZ%og-qYE_m$KnAWBkl*ShG6(KuIc+#G&?$a@1fhj$Volu69^PPGEy4lSu#1t;%lz%_3>wVD@p3b45tZ!74|N9uJQq^XMm6#zVGLw zx!lENm>1jnr%JF57%wVeTgEoP>m}GO%6rIq6ueXx3lc*`rkd0Ah+XE)2H8@g91>;l zX0#Jy8EHa~)eEQDJdu6Rc%3SlBb;`qY#dsAFL|H#k>pMvE0=L>;wGnUmEfJHS5$VP zN7x)PVh!ARz@W;tj54b<+T&8Kss|(B$q2oMz0t}ZukDx(W9|ZMdgi*yFL~)#Tq>0? zE?*<5qD-TGsh7kgwY8eKe|d)PCGmQ7fy#J?tzT+D+f?a>Zkb57fo@rfoETIRhJ3q5cO zD=MK$wl+kXBCnBJL!lvQt0e*lUhYhk)EbIul5pZR1}l78JM#(nQS!0_tNLk~U_Gc8 z6H?ukRYmGY@;;d)sIy)H-!)cM5zFbB+;LFWk0VW|4R)-Qq&}n9_fazP<9v-6g*oCW zQY(Yn*?g%~@@=sVus&w}TS)kXh#q`wjMGReIwpBI%v7i9#;U&|C+s!!3g~ycQi58` z6L!_6R3$Kf!Qbtwp(mGa%Nf*SmGl~Vgm^C9k`ooI1(Kji>O#G*i8M6BpcE@}mFpGK zQygDskSn(u-m?%_p)zi@S6V8cu-e4$96k-7BObH5y(=qELmYE|WKFOOA> zsyxQ7nG|95nTOS?u6|K%_J;6%p~{$7I2KfEE5Gc0NS&qDR*?86FXK$txX+!&@s0<)x%7(Mzk+96JeMq!bBWXW*~POdmp(p$*|hkmJ(nIt=)zq5 z`}3p+^CYIv6XOzEXIy5`ejPUbY>rZRQ@qJ`&1=5&v0VD)k*21sy**XqfxQ)2v^3KMg~YO$=_jP@X}r-;m%@KWPWINL)Tm{yS;W zzmqojchbm)zf<4eNsIoSw84+1O?`9pqHmsp4PMgUtZ(>4^!`iRBv2v&2 zgCB!mJbw6|OUBREZ}F2ZOTgUK5HkCQL`Oy7TwIs@vAQl!BY!7NZo9ON=fCS?<2D5+_gx-e{segR z6X1g%gWLL94VZnYwoH*Eq`oq48|bo_2-?o%0g27SsW!+T8+(kfY6lPhLvHAx;NML; zR|&QI6t32(bT01++6Ep+IhlR|ynBX9=7OhRS&<-D%}8kBs8dw5;C$MM+^=U0kh59n z`x$C7Ti-t@1>FKE4hEywI9rL78KBHfq$dO#vMpG&VBxjbUwi#G|MM-ZN#GIq)A<`# zEhFarRgClLp$3E|`q|E)Z&zQ}{_x{ww?+c5OKGf0|?AwJ}I^Vya zm{RYe7Nm=pNoR0YOQ&ATJCe5cw{7G~A@R;+EeD!N{EJS}XHA5|iCwA9G$7IyZcV^YrE&i;G%BB=^^8hVk&jXG$01q zd|-N>PllV%5V_%|0O-&xy$DxfInu+xlR}N%Db@F=#fEzrymo|{=LL* z=flq`1q#nN z>8VA&5)J9KftRS8CT;N{#TYN?eLTnq4+Xu!0!VeT@4aC`bsC6tb2D+Q@bcYUtW?uX zro;mEMwMw2AX{eGPJqRk)SpW?XN-_cTWw_S?~_8D-%H$FFWXrgPvz1#WgzeO=F*KB zgO*FbI2r57Fn&i|?!~#ZGRmJI(x5_B6Xd$O#S-}3MEbrQWW`Y%G;d_C<+KI6NASR` zX|HENZ5PB>%s};{e*!2+?9ziYHoMWNDA5(cUj^Q zcWKh5p?rg&6hb#;Hc*YnZ=v!)N2iZZQi&L9?GHIvX(h3H+y#lUGppR&6Xr9-{b=GA z_g@pL`!9(mcV+S$=j_@#_qB;ucOD&Y$W(NkI5A6l0uI{!Ltp8s zPG9CU>0NObss9Vsn+s{3zLC?km-OsH%123xJyPY~rb;JP)QVn``pO9Hkt=So7ihO? zbI+A&%QR@rdI)$s>CS%zjmyP-oIFMZp- z=g^GjR35uU3)(t3b4WZw3`gwU&oTNw$kGJxcKP7YjAt+dLh5t37*APL;*@>e-e=T# zPEKg2U^CYq3(>0z$>cGPFlY?25^V#LX4gm#Owc}+w+*qpqy9mJJy zhxoB}@LKesP*0MB2f;hKou>NZB|VXPV}kVBoOExqT#21yu_jNpK-5Aig(k?0~6d}0-L4c zz0at7?<(rW-e*r)gq4s=7R3#(h?SCu#)2mPIH*&29BUVyP2*4b=-I|f@JI<9DCV_u zakE{B%auY* z>yh$Uq{m;4KCS=gjHngGi}bNCnjHI04vJKY)DOPr_X+yg_wFNF?>>c;#P1Ys-Rs?jnCrJ-E~)OBn48|DSGxz&(7o=Pk~e|g zORl1)OC+LoU_OwT_)5wCT>Aa7vK|ApWF@`R_Uv$!#_3l`_i~L&gC-s`iUNy#h2gzB zR@PhIW7tDnC40%9()hGz4ZU;^+XG?^*0wriJB>9~(&IEPXtGa6f1#GxU=| zMQ7{vpJnwo>Uzw4{rmO$OL~bDW$q!}^eawN;k$;OA3`UN@ziKHtryNt>kU+|xXS}N zd>!1G&NQ5&ptEUgZdd7T)a9#9a9A1UNTo5J$*rekA0L~CmuCR4CM6m&I8rzVV)lM%qE&N z8<@vYm&*5Cz+{?aOZYZNLC_X~JOjN5+i6T!$s0B5A6)!Cp)Z%-o*{2gXg8L&HQsg$ z>b|pX^WBoW&T~y`y|ivq>!<2EEQC1ABtvTB7}H%CQepT4{MIo6x{X)H#MJ+cyio$ZhyeXG zac7gi946!hHId7G&mzS_>Wr6uqZcp@_$T2Ka1;GSYRNLOHYahhLd;I=89E5}yKtaG zR7~nW`{;?;n2kU1kz?1Zja76n*L$>bxiY_s#3s_;$YLF{Lu!puX##RI(=)TZdIaND zgkI0NS{Ly941E*nL%DpflgqZVwQX}my8oVgBy|0Symw9Jefj^8_db^OqP+JlDA-qo zdY?qz{AeB@&5vRdJ{#4a!^by!jH!1=KZzdJ-?wG`gVN@W>(@u5P4~C1zqF3ePquI6 z-)-OejO}gVCnknlAAD%dy8Ab6y8k{x)<5{*{SQhP&)8e^5ekPMY`rJ+xs6+-HWq*I zbCE4q7GbcabZMMl)ODAB^c`7(W10Zp<^++aF7mMam8AXH8()$~B98x2tPz zU$*F$mfM#(rMlL+o7Qhyx8}k1p;oD`L;A=0Z);K3ELtA$dzY-#%UgQeVkfEv{YguR zQ$kNXlVSSdeE5zG)nPkzSU$Ww!|AXN9hMKP8D59or^E8$n=*n9Yt>=-@Pdp%huxvW z@?m#IKo41&RuKJ>>0cQ5S$Ls;;jK3;6?|ohh0T!MgZ?1Zf9Hf>aqS`3?z-UKZngMGY$J&1U>h}4~ zb^8hzEC(bwt{IKTZw$|CmiE~e+z!ZR#~}|MpVQ`UcI+!(a2FuU#`_p#LoN8deL)bA zTgHP75}wsuw$HJk9FUvFB|xs;P}N+#PttL&9uIQjanUb(__k@y=6!VwT7l;t=kTpP zuycSkCqqL)q79$}=IV*uy18x5gB_Rh_C>b^*0iizb4yFhn&tl0YgF$_?~*$`9d#Xd zTgW%KPsC;TEz4Ig z{r~bU{}2al`-eE_?v*Wprlwn3Zo7aR=`ZrXxuFo_DTKY@C&C3jAz^N|>?^>ierjy4 z&zLZ~YSg3DpmT$3#(0eLH(N6!ebWOPs zS%}qyB)Xbf9mcu8JI#0#Bn0^{X13Odlk1Sl-_>OD(>CgA5xNx`Dv_}E>gQc!zyrm~ zq>IhhZOi7PG)LmmC6VwW&1ANG6NMgOUHjRC`+dR*&Ru~$`>ezh2j{C#w~66F`y4Wn z4osN)YU=0T*mV2)ho6RQ_Fm{(V_BR11GrK~o{sxY6A3(WCYrbq6 z>Op!G={J00I_d?^AaLA&7YFSCp6KZcmH$ILwClmHHZyRaZu5r+E19(p>**(ab;q7K zxNP{tHhX|dv8KNEK~q^`20LprK4ImYHjG_joI%HuAGTQo9B}GY27POs*FJ13&>=qv z*+4_hS-HFIg?vd5G4A+PJ;dfuj~<#xhep{c{giyfBqx^ludr!= ze26+OO*0_veLXENdle$CWpFapfpsm(r`)4_su<2O%5?mE$~MaT$xN!tSNV27qnF9~ zY3j8RRtH&$Z|yhxhr&k={>(&cOwG&=?pP!MQ^~Ri_|&XXBkK6BUMC?`w&VNqGH;@)r}N}a4^Atm5^pg<4h#x2bzXCpBFX~N_Tz<+PT=oeDA<_jxIm_#X>1)Tf7MdxE5GS(PQLG_9q;!|q+Mgbne6M|E=@>MaDjFXaf-hG z^-=-x2JI~39OBwi2jVX6B;q{cXZ7?-?Kt8B;wSXHDP}%YC=tbB-beP=qERn>B;i}na--x?5c?9W<0uC>wsI^3U3vt$}x0Z5&HM$>Xr4`O2w998W^$mn&$4l6O z!OBVML*0FVu$J%B^G`eX0^+RYFY584b8*C3fA;Ee!@1`WXZ`uS9v|0W9@xeD^I1Lq zk@gJY2Dc>{)8mimtvLn?d;)d-R(k@eMzuz<5N5yrykLyb$q+_4v27FycjsZ_(o~ zYpsYEBmRIMe?bc(ZbkgQrOVN?&uModZbN*7p8kxs3h@%e!+QL2Z6)HRh_Bb<+qC6~ zmm$7Zk8jbIAYP968a=*I^CLbD@w@bRtF{R7>4>k^<9BH?;xiEcj2>U9-GsOu@!RzH z60H&ObIv0KI+okVTVp#>Vz) z9e0+7QxrfwOT}wZXNO!pNTeWj-iWY}x_yjD*CDk~bL-edx(2ZYaMZa#$5=E*ps65l zc>D&O(7gqo;=K-=21pmr^;6RNuatDbJr4IW+AK?B1HwGu5%tE+wI0sxU++4V8;QGK*Z-T!FZVB83dg}QzQy<Z_&!eX;SE5J}p~al6hvCJZavddn&k9AvX@QxJr(exLqo=*BeI~#|Pe@OS zDj%zH?V+5GQ{mhNoOp(dEemjy=^R?(abK78`{~{96ScWyC3PBL|N1);a4cWR$A=ES zPoj>Jl{mdM!IZSeY%p6{>Jg*@W}wCI6Ed@8C2_t_Wca|w@ArJBvmI4(HOoDS_|@7q z&`7iJJk&5(o2S>-@c*c`i)#uy-Z}_l>(hdkA02XP!7zEFEMS7R_DQKU;E$C0O%a?2 zf&y_)fU{3>RUy{(Vm90KU*d$xFJ|TL5mV}soFJL8S`wY^KLq{etg!C@-M)wL6kRhK z|1C>nFehy;0d1cJEWhsOSNMBJh|{c>dm_s_Av2(c-(`&fK@ZtSpyAd-M<6SWqnxet zDdq{Y*@XUet}$U)Z1g)-E^P4U(sg5pojm*y*6%49gUJB4{#?2Yy3Xdd9%qvQ=CRWrh7Zz)R0Xho^6e=YPE1$MR8|iQazJ_rHW=-}75I2~I9Bkzc|84II8nVmX-0rCW25LJ_hJuy1F5ksmvg-;nxI z7UztqgV}SE%o$Q?J;vo_$=7}&SYJ!^f8oHyGS8y~C#E^qRSU-UP4tbYE5?ZgJMc-{ zE!!*Nj)K@1cIdP=k3)ZX9;Emt&x4DlLBhv`)IX0hc_k-(BjTbH&r*Ug9NQ``a^GtSjtqi$^h>PMlK*OkM@nD^Advv&CMb z(%RKZtzjQ_rDPtLH21(l2G&gf!g>|Iy#Zh+|+~f z#qLt%`?8*IEd8|{J1ZSe^O^DV|71*RzBSjLB(4Z-BPt7ikGio9yO21YXkHIhN<@PLE zB1zIs>%;QhY@C+|!WiYv<8AsFbG;o3C>EpKKAsmM3-kz}s zW4l}2qmT4EGw!smw!b6t&eP=LQC@9_4S(Hj$|l3NeB251UNQ$GT=RW4!uZvKu22Z0 ztA(V8s+UTi3WqTgJE*%p`IJ=NGe|no=JNOuXiBs{F1}2Hxc)OVBY@bD$V*3vYzi`Z z()pIvPNjvaY#2)yj^}eQdSrC;hoC!jf2jT;+kWro4SrBK&gu(#X#H&HROx0a75%mY z`rnInz8CAf9u7U&cHg~{Q@UrZw0ZrOEiAHjtF$R}-{(RbA-BmsD=BB%A@|ENsr~jk zI{RkBpVqy)@s-`j#3SMnLxD1<^=QRW(W11sVolk6&4Uj-_!IEAOn)<(v$&<`Kkajx z3sr+!e&w7~l4l;<(l)>0yQn) zD9=&mCmhHzIGN+g>};0fEO@ygB?}clR&eI0U43QsnX6SYyZpwS@=LkVHzQ$1p5@rX zvRXD~i;%~1w*1P%#5Gc96|<_6EB3?Ys?}jo2NY%*m>FnwWOZAb7d}V2ZhG(f&*LEc z<{TDL>uV-h5Ow(qk|NG%yL=|hVNHgq&~ zZgSOW9B_waQ`9;wVfDj0G&Uz(+-%)f0{**tgyG$q<8=JxIYIZAfX_D$IAI(1-a%4- zBFSRte+l|8Cy_sZ4))@){9FA!j+^d;x|TVdXnFd}0*4>9JPHnhk~{-lkLFy{7FZWA zR|f5zTE5^=aQCCRx@p(8D@X0LHn)H-cy~*|qq`ryvl=(_lEk%pGu2ugyEni6Xp7_R z&7Ohx8z7rkGChkGqfMON&7GTvKxOQ#l%*B>haM&MwuJZ5T+OtrSL2=uaUHQU>-x91 z@Q->?ZV&p-x0weAh%^Np-pxag2CDNVOqFfa%P=P7M{~|;^Zg2s+e;|_d>yQQLtv0t z?xGDsQnt&`kV3zR?~63;2dy(%gx9u%Uy+m{lfT80PC~Qd>D`2$HAbLQrtvvej4lbo@+(J3xq;gJc*3{EqD zI7o4q1lAmKK7Vy{_2QD+?r<&Nl&r=XJSqZ(a+GrZILx?_uX?p$nkIK?&`(P3pp6aASDvvhnSu# zNdrT{NYfp65bUEYZh8_UHDFyzYUc*2%EoCdy>Eo7`@>`D7e_1sxf=8BggM|3nf<1k zLv5v8sb#6qpd1Q46DkOS*3eF-)5En_th^AVV28+LN(E9M7dVVBIgHxSfGCmqKy$c7 zY$2S|d>$4hd~-=ysOeFtQo^9Xqb}p(oj4WY6Y;Q3i31uB$8G&X-Sg+}kd}g#-m$QLj_SM4g1w%ba#`nS?St&n0++IxKoAOwW6){F1zY ztq4D>mv_DnUa#X4yr{rn$H*ml1pzQxQze{->itKZoigt~6t*abf``Jp@tg0jsNN>| zk~T3|NqA6)P4#P3Z)e#h-)QSEHI-VG@Gi1jE>o1CNusGH>=CFMoo{(~@x$OMK^p8P zw0Ze*HjY2WnRK}eyGMIxIDp%%ooK^UoVrRB7Ps|JK`c6iI$5ca2^xq>B5c;lIZz5} zJS-Dfv__gf=-+vOTmhWe4ce^00aCb%%)L5Mr$(=>-@(CR^mjST#(30JcpPyTgS?!Z z9cH%VTn$cc)lm3#ShL7D>#g4*=;_bpVEdxui+cQ-Nqn(}Oybw?pnA%V+(VAP9;ERn zeM85X%>(;BPe1=cd0iX6kqarIp9DPv9$20fsO7L%WwzKma^=p&%BqUTL!JQ|^y#$5 zFbW|}6=9F{ey&`)MJe#xoVz)b%L|M5uvdgim{&%N42BIF? z&PIZ+W#hwix<#DDq{VRn zGt(__iX?Fgjk9w1;l3DMtKaAZKV-b9b@RFloCUmS9)>WA+dMKaVE86+Qf#R=OUo1wiy4A7tg3-oi3X9;ew3_8(jqvM7 zsd}}4Ed6Pm$McYUZ^(KAW9gBMfLm?QhoqvASM#BlGBn1@u#L`MO7+reVH3{EFrf^V z;>a3s=Wr~Y8!@UP${HOpsT^d_V;Kj^d^qDo+RrodS&pm`IqMO6D?@>igY3Le&-=wu z>roaGUKmS%FT*fC(DSXzbUKef7F?MTG!_z2{;~|*C;=ZEOS`jU>4s6J5pZv~ZyB@# zUP12)8 z`O8HOr@xa3>f?uTuzDtA7v03?Xbz^-~BB7 z7&tCX2>wWu1y(AoOeRT1O^m7rWw~w8G>8$VuA!OP`Ica_PWPB8FFqcAPkaxz=?fLX zS*Sb?UU3I0QR;DOh}lu|v<#bJ4pv1WA1u{<;32qGR{JtXD%i|<3}2ep-sRG@V?)Fv zVRb!4=D}KK9(3N}PQ^BVUobMTFH9BY=Tk=X6lpT0Q%~V*s<=1ptAjaD&ck^~gOKoU zWcbF1xC|zb2PO)i#yD9G&KP`bleI|HH?t>B4>1~Y~+er z+%uB9vLGSCLWITYM(g>M*Gc+1M8XY8# z+3CkBw#}lM`vT=&`?Kt6*`$a^~ZI$mVnA%lS<< zpEF<1e5|B+=a|4Ek3W44E|^>Z)mp%$frvnWmhtI0jK z0qbim#GNK(OtTK!fsgiQS#)XJ?rTU$U~cWgbqbq_gBD#4!seWa9Pq(j96-g_cV^8Fa`b&)2{1-=9s z!rR8u0Bh^keFg<};B0#eu2TmvO1VI_MTvTR`F6DLGVQVk9NY%n|4z_)%+vY;$a*CS zq27+22EKv04TDBDFUW=%?*1@obP8S%?dqkFS3VBuk9rCqZw*cu1hLRoZYN}ej9G@c zsh7%pg3_5EHROGg_a!p$=l;hIi0X2u1sdR6J)`M=A74}*bS#IS+Tt8dzkxk8yFGI* zM`OP+{;^myn5@z38Du{+2qg7X&IqnbQ+JILDVP3t{r88X46F{etf7MZM>IufPZK$zb-OBU3+*&Rh=6k>wwBSH())7zcXBFDa8!g ziTtpm(D^zK-n}nd0DexLEc_?vY0)Z#exEg5!qFM*8J4Q^^_}4yxLL2lW+E$ZXdTz8 zU`|+HGxyN-hMvw=W6w}4EQQx|J)P@?o}u-856#ak+=F6YV114D;1-R5Hr~tk4Bd;> zqlX3!J>HvE+vBPDQAigh600_%Xyb-6x=L~+@%AhrgL$w+hfz*v~N^5(vtR^jAZ3 zH&=Z|4miFbH-QAk($|fN27B3@Pp@cwxJE< z49gEJKd}73^6OZBVEKXN2Nv@g)?r{B2G(I<9oDf91M4tS4+D$&dX4RL>H=05QoDe~e7#-3 zIt;ACz&fmB9R}86q#gzq^Yi_MlTf|ynEmTinAyET%HBcovXIFyHdEXnY6)|5Oi9vU zfcDYWB>4Y4TpIpp7`?un$TtC>+0Lf=zoc^lu!r{+^my8Q<9$ZJ*Krbf4xe=qv@e+bfzqtQI>Et80rfNn$7u}VQ9YBN^6Ovt?OHt zYHw6hYnknz_N+iyU$eG{I6|&rx*Y5wXW-QyzE-?~Ne5rZvG-b{6X1C`bI+xBWr~*F zs1`Ik**h*@&ZY0oP+(#CKzt&d$qD{Bs;v?4K;c~iQ%2uC5*zzYjAsgGgSk3-?OuD4 z_MFdn>bJxS?efGyW2n_3XvX{h)kKdQ5Pr$`rxT!sekLDzMlK#Zk>GyufD9Lf8-yd9 z5QmGxk^2B+arjXKms2hF z!y+rBLgga1gUIp=yMl+X}6ik&|=E;6*vHo7hlKLG&V+_0a0SQRk5G!VW&#A1vn`{%}?a;>H^AS zJ2u9PXt-i>eS;1PGwJCrOSnp?RB|5b@dbB>cLob~zpX_iMb6cUcNRfMDiSp|{~g{0$!q|*sWXJ|c>U4+Y) zFJ2bP_7be!99qC*7jehd3Vj#Rd(kc;>gfy?VuYfeMbNxGEjyG&LDmnQ=!Z_M~?g>GY`g z(B;a3G~r^cewO@fm9X}mRgbN0aYzm6)3$;0-?N^{nmqJQHq{wk8#d!DpIo{tC$%|u z4eBRCpny=YZBSell5pNECi>cj#6D?gxgGM%5suLZ3+;krW5+j|1utvA!J=^YUi?Ln zvjl?ssrhfF;TGGaql*2cF7JZQQ}ttcd6&IK^f0sQcQWXMW0%Ui3|6kc1;ThAb(I<~ z^u+~g;cNC9b{UQuN)#^KtDseA9klM}r7yGuX?gmZlEQrY=z$J_i}|LvOF(UBVK>SA zd6W7T7CxrmAtI@oPtdQhK4_U7RT<&kvh5=2j0^KMr}3MWgIlcklC?YV6mNT z{9?0EDMOORY=GV&M^apvaq%f^yrCr^Hz*~an~ewybI|NENGZyNX0IT?;~Uxf0&4U@ z_v=HN4>-(+T?uL_gkKhd@vCGiD3UPB0K= zZi&f6mN2>EVweb+5iphxeDMDUyq{Q8zVv@*X0JO%9$)qC<>mI)@MkNw1)o{<+VYhM z@2OZBywf4g`P1n#jnowUpD-yThpGA<{icBN2=1QZ*6IdzH+f;zI2{f!JCI1z7Mv3`_7^UZV2@CeoJjw2L?+_#c6Fmugf{nov(P;oqs3B$rPE}U z#6s*GkmY0NMAMk`baEQLFz1{%zsqMmiJPp=4L2BT7Awc@cnoJfM#-ym;oL0XIC4;| z|L_>>dYbplynMO=>6|}0GtzX%K*;ZZNU^Ud)oUp6!;aV4h8ip<7dYp8M$$hU7aIo; z7U2Bt0Nw{+vrTLk7raAQt=zH0BnlX-(^mf%lqq^_1FXzOlsUO?fo#{EpFuTw{;uz0 zgEY*!^6*C8wvIe|^dPgZBdN*^t!amTl!a?DjRP!Qh!^1nj)I6kGKFQzaObgXzyg;F zbG0>~tY7n$iUl888NL zJ2fF<2HJohX%fS-h!N81pKOB+hV#C>b`oQYIAr2Hjp|{xA0~w1UD$`%u@A8WZpS`^ z`IGsYZEIJs83bGbb+YqhRuZTGLcV*P$QHmY39;Q$j<&27{rkjbfY zJhU1s1njm9;AHn@OYyrQ3p+gc{|2AMe~>juOfOW5-#2j^kEN~FF+Yq_{D4;^KR^chRqAz13ydO-%8fz?y#AgcHD;B1yL*JOM=1`1Qxd!EGh86 z0F773t-WMzbz)PjUtEs zr$FAoxEl#`vgIOP8wHg7EeGCMTFBNyZc<;!{HgsAv;U`o{MfT_sy}yygPUc%j+-VF zkkPbpTr^m#>TnHZMKNtRTg)8evb6nQ6es-D0Bz4fN6^jm*npZjvt^+U_fFz^*Lrna zFL1r*aTzp^%ix`pxSeY|b=*!JHdQWz=5ZN(XcBj5?U0T;q{F6g88nZ};7orzC1p6F zRpr)U=3i!Y@NG2V3=wM*lSa@tdA$}}fqLN1>$b3B4Q<$kcblNISQpWy3nshh8d&&* z7z4Z7&88z(!p^z_@_chU4GI!cn3DlL^3^{cILvkHqM_;Iy&1tPOV`)W_wQ zl(Ntu^dFs=`4s$v;Y8V+JUBN^w&5f|KQ~S0c>vNl)qca#gLb^B6C*ryEbJ8ZG5z(N z$1a1j{5;M@FYM@hH7?NHzEf$=ud%FL#JP*&?6&;{9hOrcm!vV?0oX)crl8l6$BR9rETcDB!M*xv&3XRNzKaS{j$tHW)Xn5!n&H!^Z7Ds zRw>-#L3?NLkj@ubxvXV)?=ZI$V@J`F2);pFu=1ejVWV(C3zbVZMStn+ncNDpC|q3kZM+h@C|E8j3iaFVz6U%5tSz?w z*T6;lAUm=%MP2H{{M1*gwcZVSuYqP+nt&c;b63~Y={PLTxMrTOzCNFo^d*#Zf!F3? zUmg=N#~4S>$60Mm`r}xSuyYH2bcPTc(np7d*r^sf%VYcHf5y!m=BFp}XL&6A;sn-a z^ur$~KH)6yZ@3#&Z~eko4KJFO1PI$f+yQqG?)PwqbZHJFG{6z-c^weD4}}#1t(n|+ zKyvI1VaF7L=65YLziWrW0@ii$)zXeVI7Jx>;+2?fO!7AM9x*XK!geN?<0M=gt-(bg zg`M?qpk=l%q44p_xv9!pZmPA~>R|PAYK}r0$f>zX1@D4n&aj4p?DYH}VRZtF$+AbV zDP>>BWZ69ZiG_r)d(}}p#dmRRcB38U$#y`GiBp+hq%lOtwd=0OkJF+p$r+JZ< z4|O8s>HkSM1sbcO4&^67CTsgbtPS8O=p#@H@{vVMwwRiMQ*rsctijURxYzP*;?Bk5_dD3(6QW|h=9w3e>prM`zHwXYH7Nw$G)c=M6zG#vguUwN|6 zL$(v-9Zy%m%2Fgn(3&z?3M(w$c9Yat(|Gz1V^oSDZ)Cvc=fa)S^mP{}n#4sK$`S@w zA^7^bwmEDyt^t(2qn~W4K8hFX{tVqBZm+q(8*m#XGH?d=1jsm8uj^pB@^ z;x&7cdTxaM22e6h9nFoWcaO6=^zv)j9aW0^ZN;i|-GYu>-K~q~T??%qG@=da(pz8m z%{p{A7GE@+^7l3puua()CB8g9(JMm3vW zjkk$eAJ#47)e!77a`b30h*=eZzyo=X@&7nuRPHG_74I8vwfUHh#aYj=Cp zQ2Rt$$T&aGaF67^6U&MI)OXRzqI|Q7M86dZs;Ed=& z_HH;hg~m(tirK1k{lX5s9+eDX6~y_6)6fn67Gt9@AKYs32pgU1B(0Oc!77u|Hi~y# zIPCv;-1ih9>)JHfn>nul?!8%y#<{4o2H{W^Z-cpbr-bmGSvFp{d+eNv*mWbgEB0l) zHuZeP(skPwq9+V^-SFxWR~WYxs+o)?kE}f({xocoar+jpbH}pORUBaH1tZaG`tW`& zvkNIPFbFrowC~vryC0-$UQ$Eg=)0%-3;fu0sFpA~P4#~X{q_|4%{JL@g|JsBj?pV< zT@mie89DjeAZpHdZ$MtEI4^rwbgAToDW#^PxI%e-u4akSNro zDHu{2-Ula1-Jd{FMX?*zcK_P2GmQ64$5^i#lj2nZ){YXj75&1EmAk}O!kFt{7&pAK z=GNjP?5)}tMvLM!25a&!6KA7ZjGlUEbl-NCGCE4|b}X5W{j*44oq;V?O}#3kHUB+| znX+vn-8~`1@}cJ^OnA{si2pC?T-^waH%EoI$Le}wENdc|Ndlp0n&@mu7ks-D=L@%Rat;F zgpK%TM@83sUDCgKl;4kct0q7vppt7w-MA%^OMBq6_}t03d$eF_XgkYUH9B~W6I7Q= z-;OtL*xb%B8#&O=*FZ(aDVni?r^7xie~)s8Ivp$d?DH$R3wI-bLmpUNiZ8u+bU(h? zs)x3&X10%k(f0u<&_k^b2`@}AKIhMh`?(HgJ%=ZTu}O-_IFEel`)sRUKPste$tQ*1hL6O~kfz9IGp&inWn(%l!Im)Yj zScCC`z4KQ)ct{FwjY03{%%DETtJ(gA-4DgR_d3#0m7om{oLA!ie_=kjdk7N6czPvf z-+21ZS#o6=xXXAt0|^7`AapAg@V}ES#oA8mhKFIH2mjab&kZw-_wXJ9RwZaw7+w!@ zLAqjc9D31qz84G7HWR+*zp^H@Z{--X^V@v>OE2^bYp<=}h`gp`-+VKy&v7=BI)D?m z3vyJd|3%E}BK4c?_jYI<>+Ik|NAJbqkJrf_+jWn z3EtM53GPyY8Pb#}k8|!t;6&CKE8jIyiL#Aj4S{U>)lrlIOGF1C#?K6 zzm5uk{dv@Y-+5!K^xuqT)3p=DvG27@PUHS;x^vXsZi&6$RuJn88)I776w}&q>#WTj zEB9M^I(_1a0{j|Il=`3Yac72XU-TKzvUVK=zp}=PW2c4-m&}JWQM}iRdsLsAD0i8` zp$uQirf(cIzEXUI(a3eUGtdjFlD#7GCS)lu0 zf*%Cgd^jw5LZ$J;9!m^wAnIY<8H|%yNxUtbO)nWG=*=h5kE!vo^n2itzZj=8k5m}C z`5xKM^%TWqdvQ#7&Vrk0e$dvc@mG**{%8UtwE?+~Bi9k+`u;fVQ^-X6B~XAhPSF}Z z(YW=Itx>yCWBzDI)c&K6qxhdLihFH#L+sz?7M^7PBT|j}M)Mo{-h?c>C&Naf3>30V zW2q>mhJWA(&9CpY zt=$+h#P_e|q)2FgTPKcPouD@Bh+KUjH1nK+y=IE@j(42sZRf4?X*cW7`@$)=l7=Z&bdZrrH%cm#9wb)9azb)0vAb1iV{fm1dv>Np30^GzLRhmP|@;M4$T z25{)ODfU75KzKo$*IpX8*+si0X2Pq=of$kqb9D|vN-QLhiQP=I;+=`np2Mp*CsTQ)xzL_O9FiC+RVKbyak zMH?quv;!@&Ag`piJPUi>rpYm$G4}uW_T}Mi6<6PLuNGhL@|MU;lDXG*Vmnr_oy`eO zD%-J;jk7}ul!ELy;mXdUBn~(mb;6c}F0u`+1H5l-D7+4Z5>f(%w`rZQG@+%HNr40? z2ukaOt!4>VvL*TZ&B#&=rv1LZK0VLXU1sjNXJ*cvIdkTmGpv3sD1|j(KrdnKoXEeB zi)TMV$@ZdTEdkcf_5N?RbF4eI`&5C*+ZtZ8L&2a}Fb{h;^)-CGtuy_sts^w{w-Mr= zG4}m8c#rwS&uGlAc}9%91b-SSML8b!vy#5+KktZ8k+EBCjOjk#AaxfsGKwPfNB&Fi+V->~_X@8vfkDj3F@ z=LGI2_yy)32{xgR3>^$YK0~C5%RP`|_ZI@QCw*%5oktz~`j@zFKia$hFVZM^Z$G>U ziFjX$*@PX!gzg0yfDsx`o5o`)cUV zkhp}yddzcw&1dlIeJm=tJ|D9RiSb1VYit5^CH2r=_%$|)QJ3CMo7k>&j5kL3p{vSt z?9L;}cCy21leXEn?ca84o78G=-QRkuRoZUfzJL3v?QEwSsh-8DMZ{UuyY7DYTw!!( ze0kJwJYqV|c`NvF4)&ih)^pofXy;eJkyr4IU@8*sBw0_%Ad2$ zg%r$>@Z}<44eKHt`8Mm^f}N9=6U>1GNb&G99;I^}m@g#oSuZTB(R$^O3nd?WGm*bp zfbopQLcjD@HTIfeZ;y_CG#IH1)@BU19x*}fUp{Nh@N1WO5#P8^+$k2NoQ40h&45V332m`cgpQo6tU2x~?Jd<- z-4>Qv3ED6;=9&NTQRr!=NM1xSJ|(z&V)~O{vsvAg^TE-_5O?^2s?X0bdG5!)e4Es# z+xcHr|9nf_NphLw3ws0KTZ4?&SY0OB=F^0w!uJom5|*=aJ>u&_X$_uoTW@nvyC379 z?>Lh_2#?9AaZbzZwRo91O~=*mZ6mn`_%p$;78-rkCTsz{K~`z@)m0Q zgh{1G{oheu6<~u59P7~gg4$tbbqshe$Sj7Xm2CwIYt5bL#|5_cfXRBli>H?yyBo2h z1S;2qKHS)?#fF%{x$GONKaPLvRzKzE9!S1=%);T(-XV3wcEoj%4(#F75fA-7dT9sr zEdBz>E-A2Mqwt~`#;OE^GusDB!Sf{kJg7|r?!<|nAl z8E(K#jqQ`h$`jHaz$nSij}AkU{BB5V9cJ_phN%Z$LFg;O*i6P=Ks}ICD!C5N#N&00 z<%{A(6wH&*_TlG~@I3YU7@AiUcSiE$!*(-o;cD`#*=_Bx2DQn+-dq%O#ysws0nZZf zEMeTUF97e-TOV+H_DGq7xMOm0C1N$`?P)gn54Ks`6kttw-57r(KyS^Wk!9HT!5YsUQaaZo@e&WA@8v;wQ2^&<(O;vaxZTE!stfrzUY$Eg0^v3eLBI}Z(G z?eWg=xR`m1K*$P4?__3-$H4qvU8j!*wL31nA4CSjf%;(fcnnsIt!Qac{rNUQh|OGvD2~;j zItjeKW%zs>5roVGZS?w4=qlMA$vlC29n~_R!9?6zaD$-{JjcEY*{H4a{;XQoA6nTn zyeU!XyMi3lc8{>SV=0T4^Pswj7crw{)z9>wWYRoG?B^XO?<{*ea?JEBuvt(GJBFRk57k0E zGiA|o$*eXwHZHKuKuRkp^GQSLYw7fg>RfxdxnG^Ow6CF^8n2Z&E|B|yONXxy&|*Co zoY=ddyr98^bpY0v-$L&`q8I;q-dWIK^p*(yNd(a}S+0VH4^@$utYA+cXc6V6q+oEs zv7u*!cY|YN&qnV?$EKc540@x_cl^AQ!Tn(H>vZM#knsMd?k=nc4;*k{#7*+dSQc*S zM+32A^Z?!S&=ZhJVz3_tt&@9md!WC9hQo!nXEbp(PypRv_qrwL-oM71kNE_kSLEXYjPj(yt3#0PZYq z2Gjl4!2EZ7%!TpsGd68TXzuMU*XFIQ6zdD?HuEUobnCipn>TE4b#C57*QyPhZd%9I z91!zZ5o&$VgPD#u0k&wjA|got4;VeJ!9CM4le`T}KUFVt-sY@w3QiGw*OHFpQzP0G zw(k)lG88xw@x&wKtzE|YP6+;>?0>PJ6mRi7)~2c<%&&<2ee{f)fT|u=ttwQYI1^QB z6cL}PPaV}>9A^23LjUcBHfs7|b>@#>R_{08f7I9o-Bhlj>yOR%ng7`GhMDB*yY5zF zo!6RInx6%K{6SU?FveaOSZhA5ufaFIf&>_AsKV7}!Ns87N@ySKp37muf4X_Gy{hG4 z)yP0Of2VYKl6Rr~_Nt_Tsk5edW?wn4wp;CQu4~y>6&P3pm@*>C-kkIF(WabV97QY* zt#H)BEUd&2UMsG5wCLSaXH9#xVA&+^VsBAhQLhCQ@tp6oK}Uz9X#C2^of z)gS6_G2GW;yYqQdoz7iSX6ntg8}IjPxBFN`Z$x+WvYLC>&;D101g_Z+w;h2#k^c>|RL7!?FLKZV-266Jo8%lo3!7w*LB_u(dD$Fe=y)OC_{ZR-Jjt(&Xvc?RykCFv)G+PQol5Aye4S=36K2F8 zUNJB3`d7&_kcEu}{xfUU_SxOd1iJ#ka?zW*hNaxsoMASt=_l=(HICXG$(E3>R^Qib zm~!>C#PSK&D5)!{Hqm~{kpzmI6HLVaeE#1zI-)%i6zCI!k$SoCxIiBNl|YIXRus>? zoRGfE81fY2igf%^AafrR$b}=!#{KRig|!EK`)T@GxmXhMjJ>k08?5EBL zoejJ$5-2qbZTUOmZIx}YVtn=9w*IzQeS9@B>Z&E47ROWK#!}$tXIr;}7%gI9^}{>F zYKz{xqY%0C+l1-@+qyQ3SWx|N+XrnHeL;1ekyejDdxKd(%WW-HEgNh}FVGTJ_a^ZC zBfMNc;J*A!?$vb&GQn;u0xes%(N;b6Bzc=0y?)O3AFP5UGgjf%tBAMds$|%eFiTBq z&S=5Me>*wNztHNLQCHAg)Z^3QM^#&CJ)4b$$A&`z)%JYbzP9jq*NMC89pVm=j~jQh zv>p3)VD$;S^LCcDQ`{LI{r0f5o%?ngc-qY@ZI`&q$nQ3@v|aml#qc{7+!(eX$46;W zp?F5`Rj;beF%^!y_1qwKL)rGsAleADx)|Ny-|^yx?X8>Xdglh#ea8A1BH-YMJ_&13 z#MINnmNp!Zj?n@7(9#X+``E*7MYT_J_zKp(r?PdX!nK$B5VvbssxLNpa+Zns7m5{+ z#fw#lP?5I)dIj@9pGr%tm|N;SsdilL6bh1H`^3hRTv()8ON3pB*D@d?T8_Y1kz;(i zp$~lV;3Q;^SP(OC9=7tXhLSOx_!7rsh{`+0Q@}^CyCvf3BzdH|=OydHj)UQtOKDAr z)M0qu{FW47y}HTW1boq#yLp*N9%f^RUtn0uq7Zx^vTF=v`+!!@te*JXbvO3wV7lTL z_K-a(Sjo!vus8({?n@KUeu%jdyYCt`@lwnho9AJEb6)_fqC{cZnSd4;-Ob120OGE^ zH>PV5u*xff_fBH7eEzK=%=3-5r=7kkWf?Smi2Fd|AG4UeX77_b^c|#dmPe1(wT7%ltiY|P*0ftk ziLPO)2A>n3RyRzP`B(b12Yo*5b4%Pe?;x}CJ%_W~rZ$h|z6rUV$h{W1XCwDafu;zYtOiL8OPPU_0`d4;%&cS&6-F6PCuIt#qj8?IE^OCgRE! zGT@5UeM?9|>`vB}>v?Qsg7q?{iwLjz3w^M*8wqQOmcUAd?aRpi=ZwZL6_f=2Ufq}` zDa5T@Uh^@nNLb&&pl%;!YyFXSV|&MePUNIM4U+v6&T@=1hY;i9)MdtV&?0H=u)i76 z4g_Mor!F&letOvyXkkXQ?dZiL+O0foU0|r$q(f;P=|9bIrz;gp8=Mxg%`XdOQ06Ob%B+np>-Bivg_<&>jG^J8?`wgbo?yf5|Vr3attv zmH7~3qe<4Z?}ZGuCV6Rf2~U68PhMpbs87q}sr4a7uT7Mov<2oS(8DRFYd~2Gd09&W zlQCYh8k2cV6a>D)O3;Xw#qZ<*v<}eGvNkS9e51?&Y*O+FWHUj$=(rrf)exCS12BNwscElf7MYrAqm+Wp$`(v=CniT6jQ~2ErK^yLj zo-BTMJlIwZUw?0fZSwMR%mK}8-iUAP^2K^*!#|(gqet8{$X%e&5!fa`)`lMAGuG1~ zk*hvtD=|LbL+CS@t3q#7jve;GzJfd^oq^4fvG&C34)Qc~ADAx~P{W8M0<9mjG%~Xb%Bfb{9Swe1#uRH08tFtZ?8{*=s8um7vfHw@ofxxzh+dQ?y zn*9Uf#mU;vf7bSC$B0{pJ;Ur<5UYNRv_*95+$yvF!fK+ zo0LrLhqMlDd>99!66*%|u)_`-d3K@aAqCGArde?)_ET#WyS+)V@5gb99qVw-j+=0O zlVp?Y+Dk--TvvsoZk=4W59hch9Jr2Kk7qaz;&>TH+)cR0agyb4z!`_wh-)1CaGb;; zuEjl$eK=08l_9TU^cG^s$^wC$rUKckK&6r|kk~?;arENZvp7np3j}sE2ZVMQmNQvXRAuX8T6$ZDdiOu}_(Lq7l1o;Y>?}RzWuL ztIAfBJ&C=C7?X%otU{{Vf_TB0h24mVM=7vw4{0wTo(OGsv?tS^c5gdk5cBk7pyt1# zZePG0o)A|RIo5GR9Lj@dUK}X#fgtSk5W{y=xmXrNOkAJ#6F>QV868Iauj^_ z`X`$I4W9BVaJx*o{cDh3<|)0S(u8ju=PCD$8mL9iRN8Y%C*&kIyi_>`zv8KPjK)rQ zua~E^jXpyWSzMvH30;YuNgc`VeKc8aRIIsDS8Qh-=4AquFaJ_wmI!QjQNKxF5L~#>1th2DgkmTfC*aPtV zKc~~=?YNL3~qq%ZA z>M7C^I=WGQ8nqIsw@WSYYYy>XC;}nUwh;)CwvDGId73gS3UM)ADz8v>MIl~liGv(s z14HUV?ldL`)n*S^|Ib@4=PyyK)A~8mUc0?X)=*$sNW{ z56rhKN2B-&RF#LLGYIBDeNrBZaw2%fb57*sxvjyZ z32?6GDYJt)bibS%?Ri&I*!SmRtq**LahXUzs^PhFg2@x$l=GD2U_D)>=yH?XteukG zwRDY)T{NThAkii{HQHbM>1Nrgq(>?KQahz^Xy+j(B*?~b6nRpnQCR8nZlylj;woY& z3LQG|oJ+0qsgJexi-6LpAle&v5i5;hj32$rQ=bl)CY0q>o^m*F5dCStQW9-dGxf-i zj%!sr`p0DS#|Tdtq&oDUiT&bH4sS1$dSt5Hnj7Dh(3#kg4W};Byg*ywnEEImGFKQ&cZcQRYPMA3S~x-1%P--J z5r~)CV>*Wz9BHRHsHbP65Ov_Sb|pIsF^gK|y~>d&Lzns$W5c;(q8&^ zl;X}PP7*x@TF`gin``I<9-X91$4BJ;C^pYy^%E$r#_@T;J^l z9L968*23Y~fRCiaqka-PliY1okn5Bia$~x{*FkmI&%g~X=Qg^nC_U*I$~7rWf?@A3 z=kHG+N&N<`!C!=@WRA>7|9~e;6hnASv(ch69@e9oHb`#354GJTcIn3Cmk4zQVdu}< zP8&90T($60^0IZscd;5WcEyZIM1&41pG7$lqor`^2!H>L;RHG&8VVu`e40hKga>@0w@e?CyOq3L)JP|+CEQ805hG=C zRB8>vo|a+SGMqjE)4O=e4Z{cNi?VwhU6?VKz7-fnXl#UP^1sGW{XDc1d=$Qhaky4) z;1K6xM*OC{9CB8K($3OsxmNK;A-)A3;Z!Q3)V2(x|3+m-6k?=@2er8zVgevuA#2L} zQHaOrKG_GHrD*F$=ptOdJyGgU=MX;f_kssN9~gxo)1xx%TcS9z9*|`dqBu>X@5%?1 zvr(K_?+%ypqadr%lm12M(FezI^QrWHxk}j_g_uKE%I(URQHXES$#UB`e$gL=c#=ar zm}<^KashupC!3UMB7 zmv2zYqYxhgRbEh@ib6Ef&*T>sa}=UCild7|yaH>sVcsao?<&6^#~TG|mfu%?7=;u= zACWz%?+AAsibA@QLsI-16DV>qPsxCZrWgGAlJoND`Z`)YB6I3M>A%F>ATqLC$)rx@p(u`*=+4jQh8~|Ay%YVeBWcVA zDZV3Olavfz7si6o8e$7`EdIvdd&>6;or9K1kJdXPlF4bgvC$Gp;JPvHW3(A_tL@S6 zU!t*RIUKj|3@Bo*@^lo=TbL!FE;!F_#yrV{xn86+Cficg3RzzPa>i z`7LE*6q*EmP?qiKC^hs!ie)`J0#Q%XWLcRLg?Nd+oE)On_dPyqdFvYxo1+k~0R6Es zG6Hca6+soRL?K?HFDr*Q8SVEy@PhFrW;i|;g}8-QgFow|5YuSBJV!Ybg?Ne1CIg}$ zYr~T!&{-T$!EO#?w2Tq{8}ucB$5km}6l!~vdOyZYk@?hjXH@VBc_dwS?K65R1!O!hRPWeGG55lKJ-XQ9ziRFBzJJ0!61C>oYN z;V;S|O&QIcP)`eZifQyO^efC^FUc%>!S`=dZjVyKo%Epmqj7S}{q!OE38nvAYRtqT z4u&M^gv7ETO0h|Fi+oIZA_{R78k65Ee~Grizvvh8WlA6lk=10l9tJU!^lQJv>{NyR zfpoIj0ITEhd?2X3!P9>g%9>ERmw8HWh{;Ih<3^AI&X01UxR}vdSWQ}ypXb3be z5q=?o#z^OpujvJXS`mjPgnICHH#lBI&e)I9jVNtVXfCvjV_f~Mp(`*iutu@#kG7@2 zA)XC}XaEp=QHVqIyzCuUgJ&^gI|cfR;790hLa{^TN7e#7PuU%KgswvCKnsAw-yn2sDV6QF5Fya4{RFmTy~+N|LzImn+mF8@N` zC8!JVei@{K2t0OQAX;P5vob3(^B|>=pB$Kua;T04TUO{OUC|^No)$nYeNg{`1rrNm{nPhvS5C)cLq2_j22PO44eS0@_NYvI*`XTsX>>Pb&Y<#x7uGNSDa zT`AWJ@ZwejTHA1ZT|%v%Usnu^{QM4I3-mjAF{@a`MT!&h#oyWF;$lQmMaIA zS?BcAiTCCl%-_5x$KG3OJ7cbzdWgUM<(Z8+`tCcb-Z?{UlLnVzFSU7~c;kJfGpmki zje5&6d+T^<9v}H+Fr#i#@8Po5sG&zjggn#Inak+hYnQW96yxg&o>FH4;wy;oeer9b zg%Ah0`}V3K_y}M4r?J~uN8BgNjJ?Y^v^z(b&n&YSWA=dqy06=xP22~oVZ(;aYr`g; zjoa6+hbXrkXMX=8h}ZQ9IiK3$tPZR5tmuvwd!-_@|TWnC*(@md5f z+vn|DVTZxqgzQagx6xMT#&w&ww{mkhB7Ym~aQ-o5Sayp1MOdS-lz5&imH&_UKZ1o1d})Wj9GveptHfYUj>8Ua*~?N( ztn-dw|A1lbO3apyICS2vPRZu3{&*mxw!KtpMno#TyIRq+7?2E4W=EMVW>w#|>xEs} z`aEN9byoFGNA+%TH-Eaje|NT?S)OK9Kj%Q~NF#fXd&qHGCZI3a5?L87n2t@uo{Q9Z z@@QPqB#(gAbl5lY*i8~*H^G+-JKIdIt5#R3CL80Nq~QEO98IqibF;lH?%u`0mCj5S zt4Staz$;7|kkwl3V*+nGl;&MT1z=|{EZW%lZP+WpG6%cv^<#g-_XbX)K8Tg|FNVv| zv0m7Vw8K8+qW0zp74->=m$kzi`?Qj4>m(Jui|t=&$NeRM^J~lxWbk!w&Rr787k(vq zeX!di1*x7=J8>Q+t`!?|jw6=mY)((fo;Ahd8RlhqCoJ_aetKU~I!QrqF*wA%&{Lfo zoKu(AI|q00-=eP$Vh^X%7B$Isv`;6 zbJ~o!uSHp&2+fp(X39rwQ;Y0=L= zT8KsOdGF{#=0AIX-xUIN^LiO?>ss-@0&lyCeQU*v)im0l);BoW&YgrT2Ctf!7hVc< z+m20Zx#hWYle3jF-vk!(fzgBS*o{RMXNg_sls8n@p+^tA z*Rry)VS~^hdLL?8-6%9%iYgs`2R0wa7cOTJD26qCsC+4lRi-*iVTUx&4tcj_UfsOj z1)zh2KI~h={ommG9~5T%z!1jcLvHK77!d((M1%>3**2tpXDszCq{fY5d{fZDBr*6N zAZ`rZf5m)QZ^J(m;JeB@q)|3!{)?wC5={oZld+Gix-_i_m@!r9&k?5{Gez<)P@73g^#Y!c#VKCJMuvZ12H?-+^aOCGEkVQ7 zWE;GQuoqG-iMQ8Em072gF`~h1In2WosvAhHWX2%fd$>?QsDpG;xb zR{r0P|5)s?%JTN(+L80Z(YWF_-!j_uF3hGl^vNUel+=g!uJ1v+us!Wz(~p_f10y6? zSBKr8aQzEdf+BS269UrU^9tV&HnVxl_fzWAzJwmvrv(FrV>7(~ta{1s4Ryxen4XJT zSBU&xpz(ZvbvFNa#_;X7A-8OGwyvXP3m9>qLq6D`GJ9NK9AL9~egO92?D}|sJ#Y0* z#q~3Y<+=OVf~9Pq-(hVDIG@!skNf(~M(qi%y=`LQtO4d%QdVELr?l2u0T1zWii!x4 zueGbstNY+7^{UxA)npF)OT~Ka@aYK*7`znzP2yj}cLbxWA9ic>8$Ji@=_@?e+OYOI z_EBbb<-?i{oSU7&Zwqvo*|6(BfM>Jw7yMcH`gl;spIzWQOM)bFP_?V@N^{4nF?CXJ zoc*G9aV*dO1mVpLp2Nm+){ox$2EVzA^MSjM6l4Ctc$!$CKUZWYa;2llj-!6PI-}Wv z_&GhzvEjHmEr_4fVsz&&g_pK!aI31`?P!5jSBvPLW+%;pdopVGS3xuWe;LdHM}982 z-Z7&wuG`TV+uhSBb$b!}g03}od)FGe3mp1x)uHQltQEU^)+W~q-BM#*eWJaAkHqce zK13A?^IC?N-Yx(yJ@5imK+53qNg?BTs|&El zLAhf|y{!(`^?TUpL}U|cb&s!ck5F{;xy7~n)fd#;)a*>Xv%i^|rcePDEGqZ5&75o!X6^xz+8J}^WH{`xfnhC+939|#%_@Y<_Z}^6$FAfqqI~WWx=Hqtc99<0^2L^d?2^4lw|>5L znpc$w-Z#Gbu<|O&>9qhtJRqbY7Gmrku~0W4G^gA5Hm2uchtn`Ldc-y4DgY!%s#}J( zl-O+!hLvB-ViENaTfvVW6*@jT7{U67A&vVe5jHM?w?_DCI{Mjo8E2xrvTgJFR=S{s zsyiuqo~vPN0~?+;Z$y7dj)H-zUk|K{D&vj2yd8LuxypT2r3Y;18Zz>zt2 zy%N_iPGL{kP(Vn>*z*)zUmUw;X^|iHCFZ}#J;X5ns}_D?bm6LOs$dYX6Z22;)A#Gg za!1c&xiN0@pMLCh{lfy$kAcuX>=KbEEqDFVUS3vHwu(gGjzEjN9XUs!R2z6f0I4Tj zB0?f~>Bxe4Ec?R(PZ1;cSCIvoC3w!ZTaJy5B@5=0r7NzSza}2fgmgm8Ti9E0ai6>V zs>{n~vuga>uR)(J#w363(SN*Y9fPpA{0GyfD8+^K^D7f~C)O1=%>Qm;O5%;h|MBH- zNo3{W6&5Kl^6;w5$rP2$@W;M2y}Zo8>XudMf2smND0x5p-QJd;AHK!4e$_XzcwU;X zPoDP8r~m%`{1}AYTSAK$)~s3Gy=h;TFYBIbPi}fFOUeG-wg3LjZ%+a7T%sNV@CN#5l3sE8Ga-vUO&y2RyAJs$JX zu}`o#zi4V%dOkTRR8O0qVI*G)wbL%2G>J?Xm*;)Q97EQKtMiv+P9_J%>!#NN`ftS> z3zp`X$*1D_f~#_3vFOlTbj{REvP!q5`1{ie$?dwEFKeU=$kV#rm#tUg$a&qq(w5vT zlBK_E_U8N|Qm?;z_SWeO$*ua%d2I#p2cAkVg$iD(@*NCT|;#RUIm;AlDI^o|Q;Q6Um*NlVl>B2%VIbNXb4j zEj>F?AU`DXq%2bk`6)u+XC=wxQRL4~6vo;uQrqZ#gTO9cfbPG)P?m;8$j~Dno^GWGPoBTOVAjKyH!sPBY z3b^YLeE%4$9wY+6+__^xYf%|BjiyRYVhKej(t^ZxU< zzdyzMtXuS^Sl)f&o+8Qe&cofSq(y(b|AC!SamND>N|v|p>UmkRFuc!(@vZ>gz6oes z7}`DmAJMijw9kgIUc|8WReS^Kl+=Bu1X0u*rMQG7Q)+sDk_qm{D;%zNw-lQprs<{B zQ4_XzNy^I;5>t~hl424K=?VIn!X<@;h0>dert6YS*GZA z%rK=sou6wE@4QYoC(BK*>uM@nk#%pvl|6BDg#4n>?m|&s(*NEEh4F%1B<=-&PRF(> z^X6~;+o>c=Y3s#)$x^&E@q|<{eQUl{A-fhy71^7vl`1A}*dkd{)B~p_OF~ocfMkhr zJbO;E=++EekSw9q7eE@rR|;{-mal3uve3MXENHHO&91DHEFaCh`Z~#SUS79TvixK6 z4v@p&;}0B_Ebj^TzA9PXz4(jIrJBE8IFeQK*5CRU*1S1zs&j_#cWJ%&;M*}zJ}Oz>9O-{qvYh+mPeA+ZduLN? z-Z=BY!bPvYIMgUrJo9CzRPjsSb5g~B1wJfD{Yg>UP}&=}6;(@VXSWw^lWOem(Ab(9 zZ(d4G)jP# zJ++c$($Ra+57Uoyqv=u~d*Fa%F+JLI2z~XDzQbt72Om3u9^3O6no)Y-sSDCP<9$yF zqDBAH-=?7VcJ>!a^R5u597wiQi}`rV8Y;nCivs1(N|pt~OHNCcdA@qQJNwHu7bMGN zUpoBKqTR3#} z`X^(q+5LFTQupIAOCEeYhDiuzFFYAj_}61G^83%mWPbc&OzM{dG4X-F#TY`L#H59U z^pVkwbS-E}|MFsO`e&c4OaJumccg#v+QaD|zj!(w(uHZtM-Qb4A9c(XKHBqr;p3a` z5I$LbSon0&fH0Kr7Ygq^5u0KXbBw8LbSA5mdOiMQQyut^OKsAnS>yF7m@SDjNB<9* C-Cb4y literal 0 HcmV?d00001 diff --git a/project/ISP_368/RTE/_ISP_368/RTE_Components.h b/project/ISP_368/RTE/_ISP_368/RTE_Components.h new file mode 100644 index 0000000..9bd4b37 --- /dev/null +++ b/project/ISP_368/RTE/_ISP_368/RTE_Components.h @@ -0,0 +1,21 @@ + +/* + * Auto generated Run-Time-Environment Configuration File + * *** Do not modify ! *** + * + * Project: 'ISP_368' + * Target: 'ISP_368' + */ + +#ifndef RTE_COMPONENTS_H +#define RTE_COMPONENTS_H + + +/* + * Define the Device Header File: + */ +#define CMSIS_device_header "ARMCM0.h" + + + +#endif /* RTE_COMPONENTS_H */ diff --git a/project/请先读我(已更新20221018).txt b/project/请先读我(已更新20221018).txt new file mode 100644 index 0000000..ad19762 --- /dev/null +++ b/project/请先读我(已更新20221018).txt @@ -0,0 +1,9 @@ +1. 此目录下所有project文件仅为链接文件(使用宏定义和库文件区分) + +2. 强烈建议将不使用的芯片型号文件夹删除,仅保留使用的芯片型号文件夹,以免串烧导致芯片烧坏 + +3. 如若更换芯片,仅需将提供的原工程下特定型号文件夹拷贝到模板工程,删除原芯片project下文件夹,重新编译即可 + 如原来使用518芯片,后面更换为568芯片,仅需把源工程project下518文件夹删除,重新从提供的原工程下将568文件夹拷贝到工程目录project下,打开重新编译即可 + +第一代产品包括:WL518,308,518T +第二代产品包括:WL568,368,568T \ No newline at end of file diff --git a/src/app/ap_demo/ap_demo.c b/src/app/ap_demo/ap_demo.c new file mode 100644 index 0000000..1c6e97b --- /dev/null +++ b/src/app/ap_demo/ap_demo.c @@ -0,0 +1,1630 @@ +/******************************************************************************* +* +* File: s8_demo.c +* Description: ϵͳļ +* Version: V0.1 +* Date: 2020-02-22 +* Author: Tempest + *******************************************************************************/ + +#include "ap_demo.h" +#include "ArmCM0.h" +#include "tau_device_datatype.h" +#include "tau_log.h" +#include "tau_operations.h" +#include "tau_common.h" +#include "tau_delay.h" +#include "hal_dsi_rx_ctrl.h" +#include "hal_dsi_tx_ctrl.h" +#include "hal_swire.h" +#include "hal_timer.h" +#include "hal_system.h" +#include "hal_gpio.h" +#include "hal_pwm.h" +#include "app_tp_transfer.h" + + +#ifdef LOG_TAG + #undef LOG_TAG +#endif + +#define LOG_TAG "Mi8SE" + +#define LCD_FT8006S_HKC6517 1 + +#define SHARE_FLASH_MODE 1 + +//ֻMIPIϢ +/* ֱ */ +#define INPUT_WIDTH 1080 +#define INPUT_HEIGHT 2244 +/* MIPI lane rate,video modeҪȷãcmd mode */ +#define INPUT_MIPI_LANE_RATE 1100000000 //600000000 // Note10 Pro 600M-1.2G +/* ͼʽ */ +#define INPUT_COLOR_MODE DSI_RGB888 +/* ݸʽ(DSI_DATA_CMD_MODE , DSI_DATA_VIDEO_MODE) */ +#define INPUT_DATA_MODE DSI_DATA_CMD_MODE +/* mipi lane(DSI_RX_LANE_x xΪ1-4) */ +#define INPUT_MIPI_LANE_NUM DSI_LANE_4 +/* Ϊvideo mode ʱݸʽ */ +#define INPUT_VIDEO_MODEL DSI_NONBURST_EVENT +/* ͨ(0-3) */ +#define INPUT_VC DSI_VC_0 +/* ֡(60/90/120/144Hz) */ +#define INPUT_FRAME_RATE DSI_FRAME_RATE_60HZ +/* ǷDSCѹ */ +#define INPUT_COMPRESS false + +#if LCD_FT8006S_HKC6517 +#if 1 +//LCD HX8394?3?MIPIy?YD?? +/* ?3???????? */ +#define OUTPUT_WIDTH 720 +#define OUTPUT_HEIGHT 1600 +/* ?3?D?ą(0-3) */ +#define OUTPUT_VC DSI_VC_0 +/* ?3?mipi laney?(DSI_RX_LANE_x x?a1-4) */ +#define OUTPUT_LANE_NUMBER DSI_LANE_4 +/* ?3??avideo mode ?y?Y??? */ +#define OUTPUT_VIDEO_MODEL DSI_BURST_MODE // DSI_NONBURST_EVENT +/* ?3? VSA */ +#define OUTPUT_VSA 8//8 //8 //2 //4 +/* ?3? VBP */ +#define OUTPUT_VBP 110//40 //110 //4 //16 +/* ?3? VBP */ +#define OUTPUT_VFP 130 //130 //240 //46 + +#define OUTPUT_HSA 16//20 //16 //7 //10 +/* ?3? HBP */ +#define OUTPUT_HBP 30 //45 //140 //16 +/* ?3? HFP */ +#define OUTPUT_HFP 45//148 //48 //48 //46 +/* 3????꨺?????D */ +#define _CMD_TYPE DSI_CMD_TX_LP //0-HS,1-LP; + +#else + //TDDI FT8006SMIPIϢ + /* ֱ */ + #define OUTPUT_WIDTH 720 + #define OUTPUT_HEIGHT 1600 + /* ͨ(0-3) */ + #define OUTPUT_VC DSI_VC_0 + /* mipi lane(DSI_RX_LANE_x xΪ1-4) */ + #define OUTPUT_LANE_NUMBER DSI_LANE_4 + /* Ϊvideo mode ݸʽ */ + #define OUTPUT_VIDEO_MODEL DSI_BURST_MODE + /* VSA */ + #define OUTPUT_VSA 8 + /* VBP */ + #define OUTPUT_VBP 110 + /* VBP */ + #define OUTPUT_VFP 130 + /* VSA */ + #define OUTPUT_HSA 16 + /* HBP */ + #define OUTPUT_HBP 45 + /* HFP */ + #define OUTPUT_HFP 48 + /* ʼģʽ */ + #define _CMD_TYPE DSI_CMD_TX_LP //0-HS,1-LP; +#endif + +#endif + +#define SWIRE_TIMER TIMER_NUM1 +#define TE_TIMER TIMER_NUM2 + +// #define DISABLE_TDDI_I2C_FUNCTION 1 +/******************************************************/ +static hal_dsi_rx_ctrl_handle_t *g_rx_ctrl_handle = NULL; +static hal_dsi_tx_ctrl_handle_t *g_tx_ctrl_handle = NULL; + +/* Ĭfalse,ʼ־λ,ʹTP1.8V,AC ʼҪTP1.8Vе */ +#if 0//def USE_FOR_SUMSUNG_S10 +static volatile bool start_display_on = false; +#else +static volatile bool start_display_on = true; +#endif +/* ʼɱ־λ */ +static volatile bool panel_display_done = false; +static volatile bool g_resolution_change = false; + +//static bool swire_flag=false; + +static uint8_t swire_num=38; //38 // 14-->ELVSS -4.1v test BOARD +//static uint8_t swire_num_bak=38; + +#define PWM_PERIOD 256 //PWM.λUS +#define PWM_MIN 12 //Сֵɵ +#define SWIRE_MAX_NUM 22 // 14-->8.8V //S10 22 + + +/* B1ص g_cus_rx_dcs_execute_table Ϊ첽ִУCAͬ*/ + +uint16_t read_bl_data = 0; //ݲͬӳBLֵ1~255 +uint16_t read_bl_data_bak = 0; + +#if 1 // +#define BLUE_MAX 0xF0 //ֵ +#define BLUE_MIN 0x86 //Сֵ +#define BLUE_STEP 10 //ȼ-1 +#endif + +static uint32_t loop_count =0; + +//bool s_screen_init_complate; + +//void swire_init(); + +////#define NEW_ACK_CMD_FUNC //For s9+ test. change LIB +uint32_t rx_filter_1080_h_4_70[32][2] = +{ + 0xE0F9503E, 0x0000000E, + 0xE10D5039, 0x0000000E, + 0xE9214E34, 0x0000000E, + 0xE9354E2F, 0x0000000E, + 0xF1494C2A, 0x0000000E, + 0xF95D4A25, 0x0000000E, + 0x01714820, 0x0000000F, + 0x1185421C, 0x0000000F, + 0x21954017, 0x0000000F, + 0x29A93C13, 0x0000000F, + 0x39BD380E, 0x0000000F, + 0x51CD320A, 0x0000000F, + 0x61E12C06, 0x0000000F, + 0x79F12602, 0x0000000F, + 0x92011FFF, 0x0000000F, + 0xAA1119FB, 0x0000000F, + 0xC22111F8, 0x0000000F, + 0xDA3109F5, 0x0000000F, + 0xFA3D01F2, 0x0000000F, + 0x124CF9EF, 0x00000000, + 0x3258F1EC, 0x00000000, + 0x5264E7EA, 0x00000000, + 0x7270DFE7, 0x00000000, + 0x9A78D5E5, 0x00000000, + 0xBA80CBE4, 0x00000000, + 0xE284C3E2, 0x00000000, + 0x0290B9E0, 0x00000001, + 0x2A94AFDF, 0x00000001, + 0x5298A5DE, 0x00000001, + 0x7A9C9BDD, 0x00000001, + 0xA29C91DD, 0x00000001, + 0xCAA087DC, 0x00000001 +}; + + +uint32_t rx_filter_2240_v_4_70[32][2] = +{ + 0xE0F9503E, 0x0000000E, + 0xE10D5039, 0x0000000E, + 0xE9214E34, 0x0000000E, + 0xE9354E2F, 0x0000000E, + 0xF1494C2A, 0x0000000E, + 0xF95D4A25, 0x0000000E, + 0x01714820, 0x0000000F, + 0x1185421C, 0x0000000F, + 0x21954017, 0x0000000F, + 0x29A93C13, 0x0000000F, + 0x39BD380E, 0x0000000F, + 0x51CD320A, 0x0000000F, + 0x61E12C06, 0x0000000F, + 0x79F12602, 0x0000000F, + 0x92011FFF, 0x0000000F, + 0xAA1119FB, 0x0000000F, + 0xC22111F8, 0x0000000F, + 0xDA3109F5, 0x0000000F, + 0xFA3D01F2, 0x0000000F, + 0x124CF9EF, 0x00000000, + 0x3258F1EC, 0x00000000, + 0x5264E7EA, 0x00000000, + 0x7270DFE7, 0x00000000, + 0x9A78D5E5, 0x00000000, + 0xBA80CBE4, 0x00000000, + 0xE284C3E2, 0x00000000, + 0x0290B9E0, 0x00000001, + 0x2A94AFDF, 0x00000001, + 0x5298A5DE, 0x00000001, + 0x7A9C9BDD, 0x00000001, + 0xA29C91DD, 0x00000001, + 0xCAA087DC, 0x00000001 +}; + + +static bool ap_dcs_read(uint8_t data_type, uint8_t dcs_cmd, uint8_t param) +{ + TAU_LOGD("cmd=%x\n", dcs_cmd); + return true; +} +#if 1 + +/***************************************************************************** +* @brief pwmԿƱ +* @param init: ǷΪʼһαѡʼ +* @param polarity: ԣfalse:ȸߺͣtrue:ȵͺ +* @param duty_ratio: ռձ(0-100) +* @param frequency: ƵʣλHZ +* @retval null +*****************************************************************************/ +//static void test_pwm_out_adjust(bool init, bool polarity, uint8_t duty_ratio, uint32_t frequency) +//{ + +// pwm_out_ctrl_e ctl0 = PWMO_CTRL_HIGH; +// pwm_out_ctrl_e ctl1 = PWMO_CTRL_LOW; +// if(polarity) +// { +// ctl0 = PWMO_CTRL_LOW; +// ctl1 = PWMO_CTRL_HIGH; +// } +// uint32_t period = 1000000 / frequency; //λus +// uint32_t thr0 = 0; +// uint32_t thr1 = (period * duty_ratio / 100); + +// if(duty_ratio == 100) +// { +// ctl1 = ctl0; +// thr1 = period / 2; +// } +// if(init) +// { +// hal_pwm_out_init(); +// hal_pwm_out_config_all(ctl0, ctl1, thr0, thr1, period); +// } +// else +// { +// hal_pwm_out_sync_all(ctl0, ctl1, thr0, thr1, period); +// } +//} +static void PWM_init(void) +{ + // 1ms ڳʼ͵ƽ1000 + hal_pwm_out_init(); + hal_pwm_out_config_all(PWMO_CTRL_HIGH, PWMO_CTRL_LOW, PWM_PERIOD, 0, PWM_PERIOD); +// hal_pwm_out_config_all(PWMO_CTRL_HIGH, PWMO_CTRL_LOW, PWM_PERIOD/2, 0, PWM_PERIOD); +} + +void PWM_Task(void) +{ + uint16_t pwm_h; + +#if 0 // NOTE10ий绰Ϩ + if(Flag_blacklight_EN) + { + read_bl_data_bak = 0; + hal_pwm_out_sync_thr(PWM_PERIOD + 1, 0); + return; + } +#endif + +#if 1// + if(read_bl_data != read_bl_data_bak) + { + read_bl_data_bak = read_bl_data; + pwm_h = read_bl_data ; + + if(pwm_h < PWM_MIN) + pwm_h = PWM_MIN; + hal_pwm_out_sync_thr(0, pwm_h); + } +#endif + +} +#endif + +/* PPS update callback ڷֱлcase */ +static bool pps_update_handle(uint8_t *pps, uint8_t size, uint32_t pic_width, uint32_t pic_height) +{ + /* AVDD ϵ, ڽϢPPS */ + // hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_HIGH); +// hal_dsi_rx_ctrl_set_sw_tear_mode(g_rx_ctrl_handle); + if (pic_width != g_rx_ctrl_handle->base_info.src_w || pic_height != g_rx_ctrl_handle->base_info.src_h) + { + + /* PPS Update ҷֱʷ仯 */ + g_rx_ctrl_handle->base_info.src_w = pic_width; + g_rx_ctrl_handle->base_info.src_h = pic_height; + g_rx_ctrl_handle->compress_en = true; + /* עⲿֻPPSǰ Compression Mode Command */ + + g_tx_ctrl_handle->base_info.src_w = pic_width; + g_tx_ctrl_handle->base_info.src_h = pic_height; + + hal_dsi_rx_ctrl_toggle_resolution(g_rx_ctrl_handle); +// hal_dsi_rx_ctrl_set_auto_hw_filter(g_rx_ctrl_handle, true); + +// hal_dsi_rx_ctrl_toggle_resolution(g_rx_ctrl_handle); +// TAU_LOGD("resolution update w[%d] h[%d] compress[%d]\n", pic_width, pic_height, g_rx_ctrl_handle->compress_en); + } +// hal_dsi_rx_ctrl_set_hw_tear_mode(g_rx_ctrl_handle); + // hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_HIGH); +// TAU_LOGD("PPS Update\n"); + return true; +} + +static bool ap_set_display_on(hal_dsi_rx_ctrl_handle_t *handler, hal_dcs_packet_t *dcs_packet) +{ + + TAU_LOGD("disp on \n"); + return true; +} + +static bool ap_set_display_off(hal_dsi_rx_ctrl_handle_t *handler, hal_dcs_packet_t *dcs_packet) +{ + + //delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x05, 0, 1, 0x28); + TAU_LOGD("disp off \n"); +// hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_LOW); +// hal_gpio_set_output_data(IO_PAD_AP_SWIRE, IO_LVL_LOW); +// hal_gpio_set_output_data(IO_PAD_ADCIN, IO_LVL_LOW); +// hal_swire_open(DISABLE); + return true; +} + +static bool ap_set_enter_sleep_mode(hal_dsi_rx_ctrl_handle_t *handler, hal_dcs_packet_t *dcs_packet) +{ + TAU_LOGD("enter sleep mode\n"); + // delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x05, 0, 1, 0x10); + + hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_LOW); + hal_gpio_set_output_data(IO_PAD_AP_SWIRE, IO_LVL_LOW); + hal_gpio_set_output_data(IO_PAD_ADCIN, IO_LVL_LOW); + + hal_pwm_out_sync_thr(PWM_PERIOD + 1, 0); + +// hal_system_set_vcc(false); + + return true; +} + +static bool ap_set_exit_sleep_mode(hal_dsi_rx_ctrl_handle_t *handler, hal_dcs_packet_t *dcs_packet) +{ + TAU_LOGD("exit sleep mode\n"); + /* AVDD ϵ, ڽϢPPS */ + // hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_HIGH); + return true; +} + +#if 1 // +static bool ap_set_backlight(hal_dsi_rx_ctrl_handle_t* handler, hal_dcs_packet_t* dcs_packet) +{ + uint32_t temp_in_max = 0x3FF; + uint32_t temp_in_min = 0x08; + uint32_t temp_out_max = 255; + uint32_t temp_out_min = 12; + uint32_t src_bl; + + src_bl = (dcs_packet->packet_param[0] << 8) | dcs_packet->packet_param[1]; +// TAU_LOGD("src_bl[%x]. len[%d]", src_bl ,dcs_packet->param_length); + + if(src_bl <= temp_in_min) + src_bl = temp_in_min; + else if(src_bl >= temp_in_max) + src_bl = temp_in_max; + + read_bl_data = temp_out_min + (src_bl - temp_in_min) * (temp_out_max - temp_out_min) / (temp_in_max - temp_in_min); +// TAU_LOGD("read_bl_data[%4x]", read_bl_data); + return true; +} +#endif + +static void soft_te_timer_cb(void *data) +{ + /* + S8 ӵTP1.8V, AC ҪȵTP1.8 ٳʼ, TP ǰҪͨTEֻֻ + */ + if (panel_display_done == false) + { + hal_dsi_rx_ctrl_gen_a_tear_signal(g_rx_ctrl_handle); + hal_timer_start(TE_TIMER, 17, soft_te_timer_cb, NULL); + } + else + { + hal_dsi_rx_ctrl_set_hw_tear_mode(g_rx_ctrl_handle); + } +} + +static void soft_te_timer_init() +{ + TAU_LOGD("soft_te_timer_init\n"); + hal_dsi_rx_ctrl_set_sw_tear_mode(g_rx_ctrl_handle); + hal_timer_init(TE_TIMER); + hal_timer_start(TE_TIMER, 1, soft_te_timer_cb, NULL); +} + +//static bool ap_set_tear_on(hal_dsi_rx_ctrl_handle_t *handler, hal_dcs_packet_t *dcs_packet) +//{ +// if (panel_display_done == true) +// { +// hal_dsi_rx_ctrl_set_hw_tear_mode(g_rx_ctrl_handle); +// } +// else +// { +// soft_te_timer_init(); +// } +// TAU_LOGD("ap_set_tear_on\n"); +// return true; +//} + +//static bool ap_set_pps_9e(hal_dsi_rx_ctrl_handle_t *handler, hal_dcs_packet_t *dcs_packet) +//{ +// TAU_LOGD("9E \n"); +// // hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_LOW); +// // hal_swire_open(DISABLE); +// return true; +//} + +/* ƻDCS command */ +static const hal_dcs_execute_entry_t g_cus_rx_dcs_execute_table[] = +{ + {DCS_SET_DISPLAY_ON, ap_set_display_on, true}, + {DCS_SET_DISPLAY_OFF, ap_set_display_off, true}, +// {0x9E, ap_set_pps_9e, true}, + // {DCS_SET_TEAR_ON, ap_set_tear_on, true}, +// {0xDF, ap_get_reg_df, false}, // +// {0xCA, ap_get_reg_ca, false}, // ⡣ҪB1ܵ + {0x51, ap_set_backlight, false}, + {DCS_ENTER_SLEEP_MODE, ap_set_enter_sleep_mode, true}, + {DCS_EXIT_SLEEP_MODE, ap_set_exit_sleep_mode, true}, + {0, NULL, false} //{0,NULL,false} һ̶ԱΪtableβжϱ׼ +}; + +static void tx_panel_reset(void) +{ +#ifdef USE_WL518_INTERNAL_FLASH + hal_system_share_flash_mode(true);//*******************************************ǷҪflash,򿪵ĻҪFLASHֱӽBINļ¼518,رҪFLASH +#endif + + hal_dsi_tx_ctrl_panel_reset_pin(IO_LVL_HIGH); + delayMs(10); //10ms + hal_dsi_tx_ctrl_panel_reset_pin(IO_LVL_LOW); + delayMs(10); //10ms + hal_dsi_tx_ctrl_panel_reset_pin(IO_LVL_HIGH); + delayMs(30); +} + +//#define FT8006S_HKC6517_4L_720x1600_gamma22 0 +//#define FT8006S_HKC6517_4L_720x1600_gamma25 0 + +static void init_panel(void) +{ + /* reset panel*/ + tx_panel_reset(); + + hal_gpio_init_output(IO_PAD_TD_LEDPWM, IO_LVL_HIGH); + + /* enter send initial code mode*/ + hal_dsi_tx_ctrl_enter_init_panel_mode(); + + //------------- Display Initial Setting end ------------------------- +#if LCD_FT8006S_HKC6517 + TAU_LOGD("Mi8SE\n"); +#ifdef FT8006S_HKC6517_4L_720x1600_gamma25 + + delayMs(50); +// delayMs(1000); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x41,0x5A); + //INT CANCEL + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x4C, 0x03); + + //SPI Not LoadFinish + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x24); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x90,0x5A); + //VCOM + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x03); +// delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x80,0x1A,0x01); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x80, 0x3f, 0x01); + //Blank 8 + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x08); +// delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,4,0x80,0x1A,0x2D,0x05); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,4,0x80,0x3F,0x2D,0x05); + //Blank 9 + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x09); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x5A,0x51,0xB5,0x2A,0x6C,0xE5,0x4A,0x01,0x40,0x62,0x0F,0x82,0x20,0x08,0xF0,0xB7); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x00,0x24,0x42,0x0A,0xE3,0x91,0xA4,0xF0,0xD6,0xC3,0x70,0x20,0x2D,0xA1,0x26,0x00); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xA0,0x51,0x55,0x55,0x00,0xA0,0x4D,0x06,0x11,0x0D,0x60,0x00,0xFF,0xFF,0x03,0xA5,0xE6); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xB0,0x08,0x3A,0x12,0x64,0x0B,0x00,0x00,0x11,0x00,0x60,0x00,0xFF,0xFF,0x03,0xFF,0x34); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,9,0xC0,0x0C,0xFF,0x18,0x9F,0x0F,0x00,0x08,0x00); + //Blank 10 gamma2.2 + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x0A); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0xFF,0xB6,0x6D,0x03,0x00,0x12,0x20,0x32,0x45,0x58,0x60,0x96,0x82,0xC1,0x72,0x37); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x74,0x44,0x41,0x32,0x23,0x16,0x0E,0x0B,0x00,0x12,0x20,0x32,0x45,0x58,0x60,0x96); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,14,0xA0,0x82,0xC1,0x72,0x37,0x74,0x44,0x41,0x32,0x23,0x16,0x0E,0x0B,0x00); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x0B); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x00,0x00,0x20,0x44,0x08,0x00,0x60,0x47,0x00,0x00,0x10,0x22,0x04,0x00,0xB0,0x23); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x90,0x15,0x00); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x0C); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0xBA,0x68,0x68,0x01,0x32,0x4B,0x58,0x07,0x00,0x60,0x15,0x00,0x50,0x15,0x56,0x51); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x15,0x55,0x61,0x15,0x00,0x60,0x15,0x00,0x50,0x15,0x56,0x51,0x15,0x55,0x61,0x95); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xA0,0xAB,0x18,0x00,0x05,0x00,0x05,0x00,0x05,0x00,0x49,0x29,0x84,0x52,0x01,0x09,0x00); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0xB0,0x00,0x00); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x0D); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,8,0x80,0xF0,0xB1,0x71,0xEF,0x4B,0xC0,0x80); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x0E); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,9,0x80,0xFF,0x01,0x55,0x55,0x23,0x88,0x88,0x1C); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x0F); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0xBD,0x07,0x70,0xC0,0x12,0x08,0x64,0x08,0x52,0x51,0x58,0x49,0x03,0x52,0x4C,0x4C); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x68,0x68,0x68,0x4C,0x4C,0x7C,0x14,0x00,0x20,0x06,0xC2,0x00,0x04,0x06,0x0C,0x00); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,5,0xA0,0x00,0x92,0x00,0x00); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x10); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x00,0x00,0x03,0xE7,0x1F,0x17,0x10,0x48,0x80,0xAA,0xD0,0x18,0x30,0x88,0x41,0x8A); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,16,0x90,0x39,0x28,0xA9,0xC5,0x9A,0x7B,0xF0,0x07,0x7E,0xE0,0x07,0x7E,0x20,0x10,0x00); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x11); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x46,0x77,0x03,0x40,0xCA,0xF3,0xFF,0x83,0x30,0x08,0xC4,0x06,0xA1,0xD8,0x24,0x18); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x30,0xC6,0x66,0xC1,0x80,0x31,0x15,0xCB,0xE5,0xD2,0x68,0x6C,0x36,0x1D,0x04,0xC8); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xA0,0xB0,0xD9,0x88,0x60,0xB0,0x81,0x40,0x1A,0x1B,0x48,0x63,0x03,0xB9,0x00,0x1C,0x80); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xB0,0x50,0x30,0x00,0xE0,0xE1,0x01,0x00,0x28,0x0E,0x06,0x43,0x55,0x55,0x55,0x55,0x55); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xC0,0x95,0x88,0x88,0x88,0x88,0x88,0xC8,0x08,0x86,0xC6,0xE3,0x81,0x00,0x20,0x00,0x21); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xD0,0x42,0x88,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x31,0x04,0x41,0x06,0x00,0x00,0x00); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xE0,0x00,0x92,0x04,0x00,0x92,0x04,0x00,0x00,0x00,0x00,0x92,0x04,0x00,0x85,0x11,0x0C); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,16,0xF0,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x5E,0x4A,0x01,0x78,0x00,0x08,0x00,0x00); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x12); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x00,0x00,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0x00,0x00,0x02,0x03,0x01,0x41,0x37); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0xF1,0xE7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2D,0x23,0x05); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,8,0xA0,0xFB,0x08,0x2D,0x23,0x05,0xFB,0x0C); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x13); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0xFD,0x0F,0x00,0x0C,0x00,0x00,0x00,0x00,0x01,0x08,0x01,0x1C,0x44,0x0C,0xCE,0xE7); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,15,0x90,0x62,0x0E,0x24,0x98,0xAC,0x21,0x01,0x00,0xD0,0x93,0x24,0x49,0x06,0x20); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x14); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x01,0x02,0x41,0x36,0xE9,0xEF,0xF7,0xFB,0xFD,0x7E,0x01,0x00,0x00,0x90,0xC5,0x8A); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x27,0x6D,0x20,0x4E,0x3C,0x69,0x03,0xDB,0xE0,0x49,0x1B,0xD8,0x08,0x4F,0xDA,0x00); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xA0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x82,0xB5,0xE2,0xF7,0x47,0x00); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xB0,0xD8,0x89,0xDF,0x1F,0x01,0x00,0x00,0x00,0x00,0x1C,0xB2,0x21,0x2B,0x00,0x40,0xA1); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xC0,0x50,0x78,0x17,0xDA,0xF4,0x80,0x51,0x1C,0x6F,0x42,0x9B,0x1E,0x30,0x8A,0xE3,0x3D); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xD0,0x68,0xD3,0x03,0x46,0x71,0xBC,0x05,0x6D,0x7A,0xC0,0x28,0x8E,0x77,0xA0,0x4D,0x0F); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xE0,0x18,0xC5,0xF1,0x06,0xB4,0xE9,0x01,0xA3,0x38,0x5E,0x80,0x36,0x3D,0x60,0x14,0xC7); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xF0,0x2B,0xD0,0xA6,0x07,0x8C,0xE2,0x18,0x01,0xBF,0xDF,0x08,0x00,0x00,0x00,0x00,0x00); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x15); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xD9,0xE0,0xF7); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0xA3,0x00,0x20,0x4B,0x07,0xAB,0xC5,0x03,0x00,0x00,0xD6,0xC1,0x6A,0xF1,0x00,0x00); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xA0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x90); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xB0,0x75,0xA1,0x6A,0xB5,0x00,0x00,0x00,0x00,0x13,0x00,0xF0,0x00,0x14,0xD3,0x34,0xCD); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xC0,0x90,0x02,0x4D,0x10,0x20,0x10,0x06,0x6A,0xDB,0xB6,0x6D,0xDB,0xB6,0x35,0x4D,0xD3); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xD0,0x34,0x21,0x13,0x04,0x01,0x02,0x61,0xA8,0xB6,0x6D,0xDB,0xB6,0x6D,0xDB,0xB6,0x35); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xE0,0xCD,0xD0,0x02,0x4D,0x50,0x30,0x14,0x47,0x6A,0xDB,0xB6,0x6D,0xDB,0xB6,0x6D,0x5B); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xF0,0xD3,0x34,0x25,0x13,0x04,0x05,0x43,0x71,0xAC,0xB6,0x6D,0xDB,0xB6,0x6D,0x5B,0x00); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x16); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x02,0x42,0x41,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,7,0x90,0x00,0x00,0x00,0x00,0xF0,0x20); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x18); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0xEF,0xBD,0xF7,0xDE,0x7B,0xEF,0xBD,0x07,0x08,0x08,0x0A,0x0C,0x0C,0x0C,0x0C,0x0C); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x0C,0x0C,0x0C,0x5C,0x09,0xA8,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x5A); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xA0,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x09,0x04,0xFF,0x00,0x80); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,16,0xB0,0x80,0x00,0x04,0x20,0x00,0x01,0x08,0x40,0x00,0x02,0x10,0x80,0x00,0x04,0x00); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x19); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0xC0,0xAF,0xA3,0x9B,0x92,0x8D,0x8A,0x86,0x84,0x83,0x82,0x81,0x00,0x50,0xF6,0xCF); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0xFC,0x2F,0xF3,0xEF,0xCF,0xBF,0x0F,0xFF,0xAF,0xB5,0x71,0x0E,0x6C,0x4A,0x69,0x08); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,5,0xA0,0x00,0x00,0x08,0x00); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x1A); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x00,0x04,0x08,0x0C,0x00,0x10,0x14,0x18,0x1C,0x00,0x20,0x28,0x30,0x38,0x00,0x40); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x48,0x50,0x58,0x00,0x60,0x68,0x70,0x78,0x00,0x80,0x88,0x90,0x98,0x00,0xA0,0xA8); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xA0,0xB0,0xB8,0x00,0xC0,0xC8,0xD0,0xD8,0x00,0xE0,0xE8,0xF0,0xF8,0x00,0xFC,0xFE,0xFF); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xB0,0x00,0x00,0x04,0x08,0x0C,0x00,0x10,0x14,0x18,0x1C,0x00,0x20,0x28,0x30,0x38,0x00); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xC0,0x40,0x48,0x50,0x58,0x00,0x60,0x68,0x70,0x78,0x00,0x80,0x88,0x90,0x98,0x00,0xA0); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xD0,0xA8,0xB0,0xB8,0x00,0xC0,0xC8,0xD0,0xD8,0x00,0xE0,0xE8,0xF0,0xF8,0x00,0xFC,0xFE); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xE0,0xFF,0x00,0x00,0x04,0x08,0x0C,0x00,0x10,0x14,0x18,0x1C,0x00,0x20,0x28,0x30,0x38); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xF0,0x00,0x40,0x48,0x50,0x58,0x00,0x60,0x68,0x70,0x78,0x00,0x80,0x88,0x90,0x98,0x00); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x1B); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0xA0,0xA8,0xB0,0xB8,0x00,0xC0,0xC8,0xD0,0xD8,0x00,0xE0,0xE8,0xF0,0xF8,0x00,0xFC); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,5,0x90,0xFE,0xFF,0x00,0x00); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x20); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,8,0x80,0x81,0x00,0x00,0x00,0x00,0x00,0x00); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x22); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,14,0x80,0x2D,0xD3,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x9F,0x00); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x23); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x01,0x05,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,13,0x90,0xFF,0x0F,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0xFF,0x07,0x35); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x24); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x00,0x03,0x00,0xFF,0xFF,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x30); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x5A,0x5A,0x5A,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); + // BIST MODE +// delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x02,0x5A); + //SPI FINISH + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x42,0x24); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x90,0x00); + //Blank select 2F + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x2F); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x19,0x00); +// delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x4C,0x03); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,1,0x11); + delayMs(120); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,1,0x29); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x51,0xFF,0x0F); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x53,0x24); + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x55,0x00); + delayMs(10); +#endif +#ifdef FT8006S_HKC6517_4L_720x1600_gamma22 + + delayMs(10); +// delayMs(1000); +#if 1 + hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x41,0x5A); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x24); + hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x90,0x5A); + + //VCOM + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x03); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x80, 0x3f, 0x01); + + //----------------------LCD initial code start----------------------// + //Blank 8 + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x08); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 4, 0x80, 0x3f, 0x2d, 0x05); + //Blank 9 + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x09); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0x5A, 0x51, 0xB5, 0x2A, 0x6C, 0xC5, 0x4A, 0x01, 0x40, 0x62, 0x0F, 0x82, 0x20, 0x08, 0xF0, 0xB7); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x90, 0x00, 0x24, 0x42, 0x0A, 0xE3, 0x91, 0xA4, 0xF0, 0xC3, 0xE1, 0x6B, 0x20, 0x69, 0xA1, 0x26, 0x00); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xA0, 0x51, 0x55, 0x55, 0x0A/*0x00*/, 0xA0, 0x4C, 0x06, 0x11, 0x0D, 0x60, 0x00, 0xFF, 0xFF, 0x03, 0xA5, 0xE6); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xB0, 0x08, 0x3A, 0x12, 0x64, 0x0B, 0x00, 0x00, 0x11, 0x00, 0x60, 0x00, 0xFF, 0xFF, 0x03, 0xFF, 0x34); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xC0, 0x0C, 0xFF, 0x18, 0x9F, 0x0F, 0x00, 0x08, 0x00); + //Blank 10 gamma2.2 + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x0A); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0xFF, 0x51, 0xA3, 0x02, 0x00, 0x1E, 0x2E, 0x3F, 0x50, 0x60, 0x65, 0x94, 0x75, 0xAC, 0x8B, 0x58); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x90, 0x87, 0x5D, 0x58, 0x48, 0x37, 0x25, 0x16, 0x0B, 0x00, 0x1E, 0x2E, 0x3F, 0x50, 0x60, 0x65, 0x94); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 14, 0xA0, 0x75, 0xAC, 0x8B, 0x58, 0x87, 0x5D, 0x58, 0x48, 0x37, 0x25, 0x16, 0x0B, 0x00); + //Blank 11 + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x0B); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0x00, 0x00, 0x20, 0x44, 0x08, 0x00, 0x60, 0x47, 0x00, 0x00, 0x10, 0x22, 0x04, 0x00, 0xB0, 0x23); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x90, 0x15, 0x00); + //Blank 12 + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x0C); + //hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0xFA, 0x68, 0x68, 0x81, 0xAF, 0x8D, 0x30, 0x07, 0x00, 0x60, 0x15, 0x00, 0x50, 0x15, 0x56, 0x51); +// hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0xBA,0x68,0x68,0x01,0x32,0x4B,0x58,0x07,0x00,0x60,0x15,0x00,0x50,0x15,0x56,0x51); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0xFA, 0x68, 0x68, 0x81, 0xB8, 0x8D, 0x30, 0x07, 0x00, 0x60, 0x15, 0x00, 0x50, 0x15, 0x56, 0x51); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x90, 0x15, 0x55, 0x61, 0x15, 0x00, 0x60, 0x15, 0x00, 0x50, 0x15, 0x56, 0x51, 0x15, 0x55, 0x61, 0x95); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xA0, 0xAB, 0x18, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x80, 0x4C, 0x29, 0x84, 0x52, 0x01, 0x09, 0x00); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0xB0, 0x00, 0x00); + //Blank 13 + /*hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x0D); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 8, 0x80, 0xF0, 0xB1, 0x71, 0xEF, 0x4B, 0xC0, 0x80); + //Blank 14 + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x0E); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 9, 0x80, 0xFF, 0x01, 0x55, 0x55, 0x32, 0x88, 0x88, 0x1C);*/ + //Blank 15 + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x0F); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0xB5, 0x05, 0x82, 0xC0, 0x10, 0xA0, 0x63, 0x08, 0x52, 0x51, 0x58, 0x49, 0x03, 0x52, 0x4C, 0x4C); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x90, 0x68, 0x68, 0x68, 0x4C, 0x4C, 0x7C, 0x14, 0x00, 0x20, 0x06, 0xC2, 0x00, 0x04, 0x06, 0x0C, 0x00); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0xA0, 0x00, 0x92, 0x00, 0x00); + //Blank 16 + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x10); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0x00, 0x00, 0x03, 0xE7, 0x1F, 0x17, 0x00, 0x48, 0x40, 0x02, 0xCF, 0x18, 0x30, 0x88, 0x41, 0x8A); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 16, 0x90, 0x39, 0x28, 0xA9, 0xC5, 0x9A, 0x7B, 0xF0, 0x07, 0x7E, 0xE0, 0x07, 0x7E, 0x20, 0x10, 0x00); + //Blank 17 + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x11); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0x46, 0x77, 0x03, 0x40, 0xCA, 0xF3, 0xFF, 0x83, 0x30, 0x08, 0xC4, 0x06, 0xA1, 0xD8, 0x24, 0x18); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x90, 0x30, 0xC6, 0x66, 0xC1, 0x80, 0x31, 0x15, 0xCB, 0xE5, 0xD2, 0x68, 0x6C, 0x36, 0x1D, 0x04, 0xC8); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xA0, 0xB0, 0xD9, 0x88, 0x60, 0xB0, 0x81, 0x40, 0x1A, 0x1B, 0x48, 0x63, 0x03, 0xB9, 0x00, 0x1C, 0x80); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xB0, 0x50, 0x30, 0x00, 0xE0, 0xE1, 0x01, 0x00, 0x28, 0x0E, 0x06, 0x43, 0x55, 0x55, 0x55, 0x55, 0x55); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xC0, 0x95, 0x88, 0x88, 0x88, 0x88, 0x88, 0xC8, 0x08, 0x86, 0xC6, 0xE3, 0x81, 0x00, 0x20, 0x00, 0x21); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xD0, 0x42, 0x88, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x31, 0x04, 0x41, 0x06, 0x00, 0x00, 0x00); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xE0, 0x00, 0x92, 0x04, 0x00, 0x92, 0x04, 0x00, 0x00, 0x00, 0x00, 0x92, 0x04, 0x00, 0x85, 0x11, 0x0C); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 16, 0xF0, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x4A, 0x01, 0x78, 0x00, 0x08, 0x00, 0x00); + //Blank 18 + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x12); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x01, 0x41, 0x37); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x90, 0xF1, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x23, 0x05); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 8, 0xA0, 0xFB, 0x08, 0x2D, 0x23, 0x05, 0xFB, 0x0C); + //Blank 19 + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x13); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0xFD, 0x0F, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x01, 0x1C, 0x44, 0x0C, 0xCE, 0xE7); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 15, 0x90, 0x62, 0x0E, 0x24, 0x98, 0xAC, 0x21, 0xB1, 0x88, 0xD0, 0x93, 0x24, 0x49, 0x06, 0x20); + //Blank 20 + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x14); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0x01, 0x02, 0x41, 0x36, 0xE9, 0xEF, 0xF7, 0xFB, 0xFD, 0x7E, 0x01, 0x00, 0x00, 0x7C, 0xC5, 0x85); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x90, 0x26, 0x3D, 0x20, 0x26, 0x34, 0xE9, 0x01, 0xF1, 0xA0, 0x49, 0x0F, 0x88, 0x05, 0x4D, 0x7A, 0xC0); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xA0, 0x02, 0x68, 0xD2, 0x03, 0x96, 0x40, 0x93, 0x1E, 0x00, 0xF8, 0x82, 0xB5, 0xE2, 0xF7, 0x47, 0x00); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xB0, 0xD8, 0x89, 0xDF, 0x1F, 0x01, 0x00, 0x10, 0x00, 0x00, 0xBC, 0xAF, 0xFB, 0x2A, 0x00, 0x40, 0xA1); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xC0, 0x50, 0x78, 0x07, 0x1A, 0xFC, 0x80, 0x52, 0x1C, 0x6F, 0x40, 0x83, 0x1F, 0x50, 0x8A, 0xE3, 0x05); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xD0, 0x68, 0xF0, 0x03, 0x4A, 0x71, 0xBC, 0x02, 0x0D, 0x7E, 0x40, 0x29, 0x8E, 0x97, 0xA0, 0xC1, 0x0F); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xE0, 0x28, 0xC5, 0xF1, 0x1A, 0x34, 0xF8, 0x01, 0xA5, 0x38, 0x5E, 0x84, 0x06, 0x3F, 0xA0, 0x14, 0xC7); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xF0, 0xAB, 0xD0, 0xE0, 0x07, 0x94, 0xE2, 0x18, 0x01, 0xBF, 0xDF, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00); + //Blank 21 + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x15); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0xD8, 0xE0, 0xF7); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x90, 0xA3, 0x80, 0xFB, 0x5A, 0x84, 0xCA, 0xE3, 0x05, 0xE1, 0xF1, 0x12, 0xA1, 0xF2, 0x78, 0x41, 0x78); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xA0, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x13, 0x00, 0xF0, 0x00, 0x94, 0x15, 0x5B, 0x57); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xC0, 0x90, 0x82, 0xD4, 0x10, 0x20, 0x10, 0x66, 0x5D, 0xDB, 0xB6, 0x6D, 0xDB, 0xB6, 0x55, 0xA5, 0x75); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xD0, 0x5D, 0xD7, 0x55, 0x10, 0x0C, 0x43, 0x51, 0x1C, 0xC7, 0x6A, 0xDB, 0xB6, 0x6D, 0xDB, 0x55, 0x5B); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xE0, 0x57, 0xD0, 0x92, 0xD4, 0x50, 0x30, 0x14, 0x67, 0x5D, 0xDB, 0xB6, 0x6D, 0xDB, 0xB6, 0x55, 0xA1); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xF0, 0x75, 0x5D, 0xD7, 0x15, 0x00, 0x08, 0x02, 0x41, 0x18, 0x86, 0x6A, 0xDB, 0xB6, 0x6D, 0x5B, 0xC0); + //Blank 22 + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x16); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0xC3, 0x43, 0x41, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 7, 0x90, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x20); + //Blank 24 + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x18); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0xEF, 0xBD, 0xF7, 0xDE, 0x7B, 0xEF, 0xBD, 0x07, 0x08, 0x08, 0x0A, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x90, 0x0C, 0x0C, 0x0C, 0x5C, 0x09, 0xA8, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x5A); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xA0, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x09, 0x04, 0xFF, 0x00, 0x80); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 16, 0xB0, 0x80, 0x00, 0x04, 0x20, 0x00, 0x01, 0x08, 0x40, 0x00, 0x02, 0x10, 0x80, 0x00, 0x04, 0x00); + //Blank 25 + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x19); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0xC0, 0xAF, 0xA3, 0x9B, 0x92, 0x8D, 0x8A, 0x86, 0x84, 0x83, 0x82, 0x81, 0x00, 0x50, 0xF6, 0xCF); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x90, 0xFC, 0x2F, 0xF3, 0xEF, 0xCF, 0xBF, 0x0F, 0xFF, 0xAF, 0xB5, 0x71, 0x0E, 0x6C, 0x4A, 0x69, 0x08); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0xA0, 0x00, 0x00, 0x08, 0x00); + //Blank 26 + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0x41, 0x5A, 0x1A); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0x00, 0x04, 0x08, 0x0C, 0x00, 0x10, 0x14, 0x18, 0x1C, 0x00, 0x20, 0x28, 0x30, 0x38, 0x00, 0x40); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x90, 0x48, 0x50, 0x58, 0x00, 0x60, 0x68, 0x70, 0x78, 0x00, 0x80, 0x88, 0x90, 0x98, 0x00, 0xA0, 0xA8); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xA0, 0xB0, 0xB8, 0x00, 0xC0, 0xC8, 0xD0, 0xD8, 0x00, 0xE0, 0xE8, 0xF0, 0xF8, 0x00, 0xFC, 0xFE, 0xFF); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xB0, 0x00, 0x00, 0x04, 0x08, 0x0C, 0x00, 0x10, 0x14, 0x18, 0x1C, 0x00, 0x20, 0x28, 0x30, 0x38, 0x00); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xC0, 0x40, 0x48, 0x50, 0x58, 0x00, 0x60, 0x68, 0x70, 0x78, 0x00, 0x80, 0x88, 0x90, 0x98, 0x00, 0xA0); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xD0, 0xA8, 0xB0, 0xB8, 0x00, 0xC0, 0xC8, 0xD0, 0xD8, 0x00, 0xE0, 0xE8, 0xF0, 0xF8, 0x00, 0xFC, 0xFE); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xE0, 0xFF, 0x00, 0x00, 0x04, 0x08, 0x0C, 0x00, 0x10, 0x14, 0x18, 0x1C, 0x00, 0x20, 0x28, 0x30, 0x38); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0xF0, 0x00, 0x40, 0x48, 0x50, 0x58, 0x00, 0x60, 0x68, 0x70, 0x78, 0x00, 0x80, 0x88, 0x90, 0x98, 0x00); + //Blank 27 + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x1B); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0xA0, 0xA8, 0xB0, 0xB8, 0x00, 0xC0, 0xC8, 0xD0, 0xD8, 0x00, 0xE0, 0xE8, 0xF0, 0xF8, 0x00, 0xFC); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0x90, 0xFE, 0xFF, 0x00, 0x00); + //Blank 32 + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x20); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 8, 0x80, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00); + //Blank 34 + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x22); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 14, 0x80, 0x2D, 0xD3, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x9F, 0x00); + //Blank 35 + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x23); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0x01, 0x05, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 13, 0x90, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xFF, 0x07, 0x35); + //Blank 36 + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x24); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x80, 0x00, 0x03, 0x00, 0xFF, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x0A); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 17, 0x90, 0x5A, 0x5A, 0x5A, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00); + + // BIST MODE + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x02,0x5A); + + hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x42,0x24); + hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x90,0x00); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x2F); + hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x19,0x00); + hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x4C,0x03); + hal_dsi_tx_ctrl_write_cmd(0x39,0,1,0x11); + delayMs(120); + hal_dsi_tx_ctrl_write_cmd(0x39,0,1,0x29); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x51,0xFF,0x0F); + hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x53,0x24); + hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x55,0x00); + delayMs(10); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0xB7,0x59,0x02); +// hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x00,0xff,0x00); +#else + hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x41,0x5A); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x24); + hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x90,0x5A); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x03); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x80,0x1A,0x01); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x08); + hal_dsi_tx_ctrl_write_cmd(0x39,0,4,0x80,0x1A,0x2D,0x05); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x09); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x5A,0x51,0xB5,0x2A,0x6C,0xE5,0x4A,0x01,0x40,0x62,0x0F,0x82,0x20,0x08,0xF0,0xB7); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x00,0x24,0x42,0x0A,0xE3,0x91,0xA4,0xF0,0xD6,0xC3,0x70,0x20,0x2D,0xA1,0x26,0x00); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xA0,0x51,0x55,0x55,0x00,0xA0,0x4D,0x06,0x11,0x0D,0x60,0x00,0xFF,0xFF,0x03,0xA5,0xE6); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xB0,0x08,0x3A,0x12,0x64,0x0B,0x00,0x00,0x11,0x00,0x60,0x00,0xFF,0xFF,0x03,0xFF,0x34); + hal_dsi_tx_ctrl_write_cmd(0x39,0,9,0xC0,0x0C,0xFF,0x18,0x9F,0x0F,0x00,0x08,0x00); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x0A); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0xFF,0xB6,0x6D,0x03,0x00,0x10,0x1D,0x2E,0x40,0x52,0x59,0x8E,0x70,0xAE,0x86,0x4D); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x81,0x54,0x50,0x40,0x31,0x21,0x14,0x0B,0x00,0x10,0x1D,0x2E,0x40,0x52,0x59,0x8E); + hal_dsi_tx_ctrl_write_cmd(0x39,0,14,0xA0,0x70,0xAE,0x86,0x4D,0x81,0x54,0x50,0x40,0x31,0x21,0x14,0x0B,0x00); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x0B); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x00,0x00,0x20,0x44,0x08,0x00,0x60,0x47,0x00,0x00,0x10,0x22,0x04,0x00,0xB0,0x23); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x90,0x15,0x00); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x0C); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0xBA,0x68,0x68,0x01,0x32,0x4B,0x58,0x07,0x00,0x60,0x15,0x00,0x50,0x15,0x56,0x51); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x15,0x55,0x61,0x15,0x00,0x60,0x15,0x00,0x50,0x15,0x56,0x51,0x15,0x55,0x61,0x95); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xA0,0xAB,0x18,0x00,0x05,0x00,0x05,0x00,0x05,0x00,0x49,0x29,0x84,0x52,0x01,0x09,0x00); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0xB0,0x00,0x00); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x0D); + hal_dsi_tx_ctrl_write_cmd(0x39,0,8,0x80,0xF0,0xB1,0x71,0xEF,0x4B,0xC0,0x80); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x0E); + hal_dsi_tx_ctrl_write_cmd(0x39,0,9,0x80,0xFF,0x01,0x55,0x55,0x23,0x88,0x88,0x1C); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x0F); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0xBD,0x07,0x70,0xC0,0x12,0x08,0x64,0x08,0x52,0x51,0x58,0x49,0x03,0x52,0x4C,0x4C); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x68,0x68,0x68,0x4C,0x4C,0x7C,0x14,0x00,0x20,0x06,0xC2,0x00,0x04,0x06,0x0C,0x00); + hal_dsi_tx_ctrl_write_cmd(0x39,0,5,0xA0,0x00,0x92,0x00,0x00); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x10); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x00,0x00,0x03,0xE7,0x1F,0x17,0x10,0x48,0x80,0xAA,0xD0,0x18,0x30,0x88,0x41,0x8A); + hal_dsi_tx_ctrl_write_cmd(0x39,0,16,0x90,0x39,0x28,0xA9,0xC5,0x9A,0x7B,0xF0,0x07,0x7E,0xE0,0x07,0x7E,0x20,0x10,0x00); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x11); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x46,0x77,0x03,0x40,0xCA,0xF3,0xFF,0x83,0x30,0x08,0xC4,0x06,0xA1,0xD8,0x24,0x18); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x30,0xC6,0x66,0xC1,0x80,0x31,0x15,0xCB,0xE5,0xD2,0x68,0x6C,0x36,0x1D,0x04,0xC8); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xA0,0xB0,0xD9,0x88,0x60,0xB0,0x81,0x40,0x1A,0x1B,0x48,0x63,0x03,0xB9,0x00,0x1C,0x80); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xB0,0x50,0x30,0x00,0xE0,0xE1,0x01,0x00,0x28,0x0E,0x06,0x43,0x55,0x55,0x55,0x55,0x55); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xC0,0x95,0x88,0x88,0x88,0x88,0x88,0xC8,0x08,0x86,0xC6,0xE3,0x81,0x00,0x20,0x00,0x21); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xD0,0x42,0x88,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x31,0x04,0x41,0x06,0x00,0x00,0x00); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xE0,0x00,0x92,0x04,0x00,0x92,0x04,0x00,0x00,0x00,0x00,0x92,0x04,0x00,0x85,0x11,0x0C); + hal_dsi_tx_ctrl_write_cmd(0x39,0,16,0xF0,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x5E,0x4A,0x01,0x78,0x00,0x08,0x00,0x00); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x12); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x00,0x00,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0x00,0x00,0x02,0x03,0x01,0x41,0x37); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0xF1,0xE7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2D,0x23,0x05); + hal_dsi_tx_ctrl_write_cmd(0x39,0,8,0xA0,0xFB,0x08,0x2D,0x23,0x05,0xFB,0x0C); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x13); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0xFD,0x0F,0x00,0x0C,0x00,0x00,0x00,0x00,0x01,0x08,0x01,0x1C,0x44,0x0C,0xCE,0xE7); + hal_dsi_tx_ctrl_write_cmd(0x39,0,15,0x90,0x62,0x0E,0x24,0x98,0xAC,0x21,0x01,0x00,0xD0,0x93,0x24,0x49,0x06,0x20); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x14); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x01,0x02,0x41,0x36,0xE9,0xEF,0xF7,0xFB,0xFD,0x7E,0x01,0x00,0x00,0x90,0xC5,0x8A); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x27,0x6D,0x20,0x4E,0x3C,0x69,0x03,0xDB,0xE0,0x49,0x1B,0xD8,0x08,0x4F,0xDA,0x00); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xA0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x82,0xB5,0xE2,0xF7,0x47,0x00); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xB0,0xD8,0x89,0xDF,0x1F,0x01,0x00,0x00,0x00,0x00,0x1C,0xB2,0x21,0x2B,0x00,0x40,0xA1); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xC0,0x50,0x78,0x17,0xDA,0xF4,0x80,0x51,0x1C,0x6F,0x42,0x9B,0x1E,0x30,0x8A,0xE3,0x3D); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xD0,0x68,0xD3,0x03,0x46,0x71,0xBC,0x05,0x6D,0x7A,0xC0,0x28,0x8E,0x77,0xA0,0x4D,0x0F); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xE0,0x18,0xC5,0xF1,0x06,0xB4,0xE9,0x01,0xA3,0x38,0x5E,0x80,0x36,0x3D,0x60,0x14,0xC7); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xF0,0x2B,0xD0,0xA6,0x07,0x8C,0xE2,0x18,0x01,0xBF,0xDF,0x08,0x00,0x00,0x00,0x00,0x00); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x15); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xD9,0xE0,0xF7); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0xA3,0x00,0x20,0x4B,0x07,0xAB,0xC5,0x03,0x00,0x00,0xD6,0xC1,0x6A,0xF1,0x00,0x00); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xA0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x90); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xB0,0x75,0xA1,0x6A,0xB5,0x00,0x00,0x00,0x00,0x13,0x00,0xF0,0x00,0x14,0xD3,0x34,0xCD); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xC0,0x90,0x02,0x4D,0x10,0x20,0x10,0x06,0x6A,0xDB,0xB6,0x6D,0xDB,0xB6,0x35,0x4D,0xD3); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xD0,0x34,0x21,0x13,0x04,0x01,0x02,0x61,0xA8,0xB6,0x6D,0xDB,0xB6,0x6D,0xDB,0xB6,0x35); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xE0,0xCD,0xD0,0x02,0x4D,0x50,0x30,0x14,0x47,0x6A,0xDB,0xB6,0x6D,0xDB,0xB6,0x6D,0x5B); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xF0,0xD3,0x34,0x25,0x13,0x04,0x05,0x43,0x71,0xAC,0xB6,0x6D,0xDB,0xB6,0x6D,0x5B,0x00); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x16); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x02,0x42,0x41,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); + hal_dsi_tx_ctrl_write_cmd(0x39,0,7,0x90,0x00,0x00,0x00,0x00,0xF0,0x20); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x18); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0xEF,0xBD,0xF7,0xDE,0x7B,0xEF,0xBD,0x07,0x08,0x08,0x0A,0x0C,0x0C,0x0C,0x0C,0x0C); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x0C,0x0C,0x0C,0x5C,0x09,0xA8,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0x5A); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xA0,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x09,0x04,0xFF,0x00,0x80); + hal_dsi_tx_ctrl_write_cmd(0x39,0,16,0xB0,0x80,0x00,0x04,0x20,0x00,0x01,0x08,0x40,0x00,0x02,0x10,0x80,0x00,0x04,0x00); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x19); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0xC0,0xAF,0xA3,0x9B,0x92,0x8D,0x8A,0x86,0x84,0x83,0x82,0x81,0x00,0x50,0xF6,0xCF); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0xFC,0x2F,0xF3,0xEF,0xCF,0xBF,0x0F,0xFF,0xAF,0xB5,0x71,0x0E,0x6C,0x4A,0x69,0x08); + hal_dsi_tx_ctrl_write_cmd(0x39,0,5,0xA0,0x00,0x00,0x08,0x00); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x1A); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x00,0x04,0x08,0x0C,0x00,0x10,0x14,0x18,0x1C,0x00,0x20,0x28,0x30,0x38,0x00,0x40); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x48,0x50,0x58,0x00,0x60,0x68,0x70,0x78,0x00,0x80,0x88,0x90,0x98,0x00,0xA0,0xA8); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xA0,0xB0,0xB8,0x00,0xC0,0xC8,0xD0,0xD8,0x00,0xE0,0xE8,0xF0,0xF8,0x00,0xFC,0xFE,0xFF); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xB0,0x00,0x00,0x04,0x08,0x0C,0x00,0x10,0x14,0x18,0x1C,0x00,0x20,0x28,0x30,0x38,0x00); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xC0,0x40,0x48,0x50,0x58,0x00,0x60,0x68,0x70,0x78,0x00,0x80,0x88,0x90,0x98,0x00,0xA0); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xD0,0xA8,0xB0,0xB8,0x00,0xC0,0xC8,0xD0,0xD8,0x00,0xE0,0xE8,0xF0,0xF8,0x00,0xFC,0xFE); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xE0,0xFF,0x00,0x00,0x04,0x08,0x0C,0x00,0x10,0x14,0x18,0x1C,0x00,0x20,0x28,0x30,0x38); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0xF0,0x00,0x40,0x48,0x50,0x58,0x00,0x60,0x68,0x70,0x78,0x00,0x80,0x88,0x90,0x98,0x00); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x1B); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0xA0,0xA8,0xB0,0xB8,0x00,0xC0,0xC8,0xD0,0xD8,0x00,0xE0,0xE8,0xF0,0xF8,0x00,0xFC); + hal_dsi_tx_ctrl_write_cmd(0x39,0,5,0x90,0xFE,0xFF,0x00,0x00); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x20); + hal_dsi_tx_ctrl_write_cmd(0x39,0,8,0x80,0x81,0x00,0x00,0x00,0x00,0x00,0x00); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x22); + hal_dsi_tx_ctrl_write_cmd(0x39,0,14,0x80,0x2D,0xD3,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x9F,0x00); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x23); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x01,0x05,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); + hal_dsi_tx_ctrl_write_cmd(0x39,0,13,0x90,0xFF,0x0F,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0xFF,0x07,0x35); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x24); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x80,0x00,0x03,0x00,0xFF,0xFF,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x30); + hal_dsi_tx_ctrl_write_cmd(0x39,0,17,0x90,0x5A,0x5A,0x5A,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); + + // BIST MODE + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x02,0x5A); + + hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x42,0x24); + hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x90,0x00); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x41,0x5A,0x2F); + hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x19,0x00); + hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x4C,0x03); + hal_dsi_tx_ctrl_write_cmd(0x39,0,1,0x11); + delayMs(120); +// hal_dsi_tx_ctrl_write_cmd(0x39,0,1,0x29); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x51,0xFF,0x0F); + hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x53,0x24); + hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x55,0x00); + delayMs(10); + hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0xB7,0x59,0x02); +// hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x00,0xff,0x00); +#endif + +#endif +// delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,1,0xB7); +// delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,1,0x59); +// delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,1,0x02); +// delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,3,0x00,0xff,0x00); +#if 1 +#if 0 + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x41,0x5a); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x24); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x90,0x5a); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x03); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x80,0x25,0x01); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x08); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x04,0x80,0x20,0x2d,0x05); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x09); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0x5a,0x51,0xb5,0x2a,0x6c,0xe5,0x4a,0x01,0x40,0x62,0x0f,0x82,0x20,0x08,0xf0,0xb7); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x90,0x00,0x24,0x42,0x0a,0xe3,0x91,0xa4,0xf0,0xc3,0xc3,0x6b,0x20,0x2d,0xa1,0x26,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xa0,0x51,0x55,0x55,0x00,0xa0,0x4c,0x06,0x11,0x0d,0x60,0x5a,0xff,0xff,0x03,0xa5,0xe6); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xb0,0x08,0xc9,0x16,0x64,0x0b,0x00,0x00,0x11,0x07,0x60,0x00,0xff,0xff,0x03,0xff,0x34); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x09,0xc0,0x0c,0x3f,0x1f,0x9f,0x0f,0x00,0x08,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x0a); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0xff,0xb6,0x6d,0x03,0x00,0x0f,0x1b,0x2b,0x3d,0x4e,0x55,0x89,0x68,0xa5,0x8e,0x56); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x90,0x85,0x58,0x53,0x43,0x33,0x23,0x16,0x0b,0x00,0x0f,0x1b,0x2b,0x3d,0x4e,0x55,0x89); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x0e,0xa0,0x68,0xa5,0x8e,0x56,0x85,0x58,0x53,0x43,0x33,0x23,0x16,0x0b,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x0b); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0x00,0x00,0x20,0x44,0x08,0x00,0x60,0x47,0x00,0x00,0x10,0x22,0x04,0x00,0xb0,0x23); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x90,0x15,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x0c); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0xfa,0x68,0x68,0x01,0xb2,0x75,0xd0,0x07,0x00,0x60,0x15,0x00,0x50,0x15,0x56,0x51); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x90,0x15,0x55,0x61,0x15,0x00,0x60,0x15,0x00,0x50,0x15,0x56,0x51,0x15,0x55,0x61,0x95); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xa0,0xab,0x18,0x00,0x05,0x00,0x05,0x00,0x05,0x80,0x4c,0x29,0x84,0x52,0x01,0x09,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0xb0,0x00,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x0d); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x08,0x80,0xf0,0xb1,0x71,0xef,0x4b,0xc0,0x80); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x0e); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x09,0x80,0xff,0x01,0x55,0x55,0x23,0x88,0x88,0x1c); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x0f); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0xd1,0x07,0x70,0x40,0x13,0x38,0x64,0x08,0x52,0x51,0x58,0x49,0x03,0x52,0x4c,0x4c); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x90,0x68,0x68,0x68,0x4c,0x4c,0x7c,0x14,0x00,0x20,0x06,0xc2,0x00,0x04,0x06,0x0c,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x05,0xa0,0x00,0x92,0x00,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x10); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0x00,0x00,0x03,0xe7,0x1f,0x17,0x10,0x48,0x80,0xaa,0xd0,0x18,0x30,0x88,0x41,0x8a); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x10,0x90,0x39,0x28,0xa9,0xc5,0x9a,0x7b,0xf0,0x07,0x7e,0xe0,0x07,0x7e,0x20,0x10,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x11); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0x49,0x77,0x03,0x40,0xca,0xf3,0xff,0xa3,0x20,0x08,0xc4,0x06,0xa1,0xd8,0x24,0x18); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x90,0x30,0xc6,0x66,0xc1,0x80,0x1d,0x15,0xcb,0xe5,0xe2,0x70,0x6c,0x36,0x1d,0x04,0xc8); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xa0,0xb0,0xd9,0x88,0x60,0xb0,0x81,0x40,0x1c,0x1b,0x88,0x63,0x03,0xb9,0x00,0x1c,0x80); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xb0,0x50,0x30,0x00,0xe0,0xe1,0x01,0x00,0x28,0x0e,0x06,0x43,0x55,0x55,0x55,0x55,0x55); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xc0,0x95,0x88,0x88,0x88,0x88,0x88,0xc8,0x08,0x84,0xc6,0xe3,0x81,0x00,0x20,0x00,0x21); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xd0,0x42,0x88,0x00,0x00,0x00,0x00,0x40,0x00,0x20,0x31,0x04,0x41,0x06,0x00,0x00,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xe0,0x00,0x92,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x92,0x04,0x00,0x85,0x11,0x0c); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x10,0xf0,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x5e,0x4a,0x01,0x10,0x22,0x00,0x00,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x12); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0x00,0x00,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0x00,0x00,0x02,0x03,0x01,0x41,0x37); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x90,0xf1,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2d,0x23,0x05); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x08,0xa0,0xfb,0x08,0x2d,0x23,0x05,0xfb,0x0c); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x13); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0xfd,0x0f,0x00,0x0c,0x00,0x00,0x00,0x00,0x01,0x08,0x01,0x1c,0x44,0x0c,0xce,0xe7); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x0f,0x90,0x62,0x0e,0x24,0x98,0xac,0x21,0x01,0x00,0xd0,0x93,0x24,0x49,0x06,0x20); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x14); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0x01,0x02,0x41,0x36,0xe9,0xef,0xf7,0xfb,0xfd,0x7e,0x00,0x00,0x00,0x90,0xc5,0x89); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x90,0x27,0x3d,0x20,0x46,0x3c,0xe9,0x01,0xf1,0xe1,0x49,0x0f,0x88,0x0d,0x4f,0x7a,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xa0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xb0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0xb2,0x21,0x2b,0x00,0x40,0xa1); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xc0,0x50,0x78,0x03,0xf8,0xb9,0x94,0x51,0x1c,0x2f,0x00,0x3f,0x97,0x32,0x8a,0xe3,0x15); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xd0,0xe0,0xe7,0x52,0x46,0x71,0xbc,0x04,0xfc,0x5c,0xca,0x28,0x8e,0x37,0x81,0x9f,0x4b); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xe0,0x19,0xc5,0xf1,0x1e,0xf0,0x73,0x29,0xa3,0x38,0xde,0x02,0x7e,0x2e,0x65,0x14,0xc7); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xf0,0x3b,0xc0,0xcf,0xa5,0x8c,0xe2,0x18,0x01,0xbf,0x5f,0x08,0x00,0x00,0x00,0x00,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x15); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xd9,0xe0,0xf7); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x90,0xa3,0x00,0x20,0xcb,0x85,0xaa,0xd5,0x06,0x91,0x91,0x77,0xa1,0x6a,0xb5,0x41,0x64); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xa0,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x90); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xb0,0x75,0xa1,0x6a,0xb5,0x00,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x94,0xd6,0x0c,0x4d); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xc0,0xc9,0x12,0x0c,0xc5,0x21,0xc1,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xc9,0xd0); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xd0,0xa4,0x20,0x06,0x21,0x00,0x13,0x6c,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xd6,0x0c); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xe0,0x4d,0x88,0x02,0x08,0x84,0x21,0xc1,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xc9); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xf0,0xd0,0xb4,0x24,0x47,0x31,0x04,0x13,0x6c,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0x5b,0x12); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x16); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0x03,0x03,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x07,0x90,0x00,0x00,0x00,0x00,0xf0,0x20); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x18); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0xef,0xbd,0xf7,0xde,0x7b,0xef,0xbd,0x07,0x08,0x08,0x0a,0x0c,0x0c,0x0c,0x0c,0x0c); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x90,0x0c,0x0c,0x0c,0x5c,0x09,0xa8,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0x5a); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xa0,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x09,0x04,0xff,0x00,0x80); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x10,0xb0,0x80,0x00,0xcc,0x1a,0xda,0x00,0xc8,0xb6,0xd1,0x01,0xf0,0x4c,0x3e,0x01,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x19); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0xc0,0xaf,0xa3,0x9b,0x92,0x8d,0x8a,0x86,0x84,0x83,0x82,0x81,0x00,0x50,0xf6,0xcf); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x90,0xfc,0x2f,0xf3,0xef,0xcf,0xbf,0x0f,0xff,0xaf,0xb5,0x71,0x0e,0x6c,0x4a,0x69,0x08); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x05,0xa0,0x06,0x06,0x02,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x1a); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0x00,0x04,0x08,0x0c,0x00,0x10,0x14,0x18,0x1c,0x00,0x20,0x28,0x30,0x38,0x00,0x40); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x90,0x48,0x50,0x58,0x00,0x60,0x68,0x70,0x78,0x00,0x80,0x88,0x90,0x98,0x00,0xa0,0xa8); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xa0,0xb0,0xb8,0x00,0xc0,0xc8,0xd0,0xd8,0x00,0xe0,0xe8,0xf0,0xf8,0x00,0xfc,0xfe,0xff); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xb0,0x00,0x00,0x04,0x08,0x0c,0x00,0x10,0x14,0x18,0x1c,0x00,0x20,0x28,0x30,0x38,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xc0,0x40,0x48,0x50,0x58,0x00,0x60,0x68,0x70,0x78,0x00,0x80,0x88,0x90,0x98,0x00,0xa0); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xd0,0xa8,0xb0,0xb8,0x00,0xc0,0xc8,0xd0,0xd8,0x00,0xe0,0xe8,0xf0,0xf8,0x00,0xfc,0xfe); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xe0,0xff,0x00,0x00,0x04,0x08,0x0c,0x00,0x10,0x14,0x18,0x1c,0x00,0x20,0x28,0x30,0x38); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0xf0,0x00,0x40,0x48,0x50,0x58,0x00,0x60,0x68,0x70,0x78,0x00,0x80,0x88,0x90,0x98,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x1b); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0xa0,0xa8,0xb0,0xb8,0x00,0xc0,0xc8,0xd0,0xd8,0x00,0xe0,0xe8,0xf0,0xf8,0x00,0xfc); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x05,0x90,0xfe,0xff,0x00,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x20); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x08,0x80,0x87,0x00,0x00,0x00,0x00,0x00,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x22); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x0e,0x80,0x2d,0xd3,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x9f,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x23); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0x01,0x05,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x0d,0x90,0xff,0x0f,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0xef,0x07,0x35); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x24); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x80,0x00,0x03,0x00,0xff,0xff,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x84); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x11,0x90,0x5a,0x5a,0x5a,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); + // BIST MODE + delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x02,0x5A); + + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x42,0x24); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x90,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0x41,0x5a,0x2f); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x19,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x4c,0x03); + + + // Video Mode Enable + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0xB7,0x59,0x02); + + + + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x05, 0, 1, 0x11); + + hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_HIGH); + delayMs(10); + hal_gpio_set_output_data(IO_PAD_ADCIN, IO_LVL_HIGH); + // swire_init(); + delayMs(50); + + // + + hal_dsi_tx_ctrl_write_cmd(0x05, 0, 1, 0x29); + // delayMs(10); + + hal_dsi_tx_ctrl_write_cmd(0x29, 0, 3, 0x51, 0x0F, 0xFF); + delayMs(1); + /* 0x29 tx start ֮ */ +#else +/* + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x41,0x5a); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x4c,0x03); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x24); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x90,0x5a); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x03); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x80,0x19,0x01); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x08); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x04,0x80,0x19,0x2d,0x05); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x09); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x5a,0x51,0xb5,0x2a,0x6c,0xe5,0x4a,0x01,0x40,0x62,0x0f,0x82,0x20,0x08,0xf0,0xb7); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x00,0x24,0x42,0x0a,0xe3,0x91,0xa4,0xf0,0xc2,0xb9,0x6b,0x20,0x19,0xa1,0x26,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xa0,0x51,0x55,0x55,0x00,0xa0,0x4d,0x06,0x11,0x0d,0x60,0x5a,0xff,0xff,0x03,0xa5,0xe6); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xb0,0x08,0xc9,0x16,0x64,0x0b,0x00,0x00,0x11,0x07,0x60,0x00,0xff,0xff,0x03,0xff,0x34); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x09,0xc0,0x0c,0x3f,0x1f,0x9f,0x0f,0x00,0x08,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x0a); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0xff,0xb6,0x6d,0x03,0x00,0x14,0x23,0x36,0x49,0x5c,0x63,0x98,0x83,0xbe,0x76,0x41); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x7b,0x50,0x4d,0x3e,0x2e,0x1f,0x10,0x0b,0x00,0x14,0x23,0x36,0x49,0x5c,0x63,0x98); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x0e,0xa0,0x83,0xbe,0x76,0x41,0x7b,0x50,0x4d,0x3e,0x2e,0x1f,0x10,0x0b,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x0b); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x00,0x00,0x20,0x44,0x08,0x00,0x60,0x47,0x00,0x00,0x10,0x22,0x04,0x00,0xb0,0x23); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x90,0x15,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x0c); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0xfa,0x68,0x68,0x01,0xb2,0x75,0xb0,0x04,0x00,0x60,0x15,0x00,0x50,0x15,0x56,0x51); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x15,0x55,0x61,0x15,0x00,0x60,0x15,0x00,0x50,0x15,0x56,0x51,0x15,0x55,0x61,0x95); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xa0,0xab,0x18,0x00,0x05,0x00,0x05,0x00,0x05,0x80,0x4c,0x29,0x84,0x52,0x01,0x09,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0xb0,0x00,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x0d); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x08,0x80,0xf0,0xb1,0x71,0xef,0x4b,0xc0,0x80); +// delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x08,0x80,0xf3,0xb1,0x71,0xef,0x4b,0xc0,0x80); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x0e); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x09,0x80,0xff,0x01,0x55,0x55,0x23,0x88,0x88,0x1c); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x0f); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x14,0x40,0x6f,0xc0,0x12,0x08,0x64,0x08,0x52,0x31,0x58,0x49,0x03,0x52,0x4c,0x4c); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x68,0x68,0x68,0x4c,0x4c,0x7c,0x14,0x00,0x20,0x06,0xc2,0x00,0x04,0x06,0x0c,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x05,0xa0,0x00,0x92,0x00,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x10); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x00,0x00,0x03,0xe7,0x1f,0x17,0x10,0x48,0x80,0xaa,0xd0,0x18,0x30,0x88,0x41,0x8a); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x10,0x90,0x39,0x28,0xa9,0xc5,0x9a,0x7b,0xf0,0x07,0x7e,0xe0,0x07,0x7e,0x20,0x10,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x11); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x49,0x77,0x03,0x40,0xca,0xf3,0xff,0x83,0x30,0x08,0xc4,0x06,0xa1,0xd8,0x24,0x18); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x30,0xc6,0x66,0xc1,0x80,0x31,0x15,0xcb,0xe5,0xd2,0x68,0x6c,0x36,0x1d,0x04,0xc8); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xa0,0xb0,0xd9,0x88,0x60,0xb0,0x81,0x40,0x1a,0x1b,0x48,0x63,0x03,0xb9,0x00,0x1c,0x80); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xb0,0x50,0x30,0x00,0xe0,0xe1,0x01,0x00,0x28,0x0e,0x06,0x43,0x55,0x55,0x55,0x55,0x55); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xc0,0x95,0x88,0x88,0x88,0x88,0x88,0xc8,0x08,0x86,0xc6,0xe3,0x81,0x00,0x20,0x00,0x21); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xd0,0x42,0x88,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x31,0x04,0x41,0x06,0x00,0x00,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xe0,0x00,0x92,0x04,0x00,0x92,0x04,0x00,0x00,0x00,0x00,0x92,0x04,0x00,0x85,0x11,0x0c); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x10,0xf0,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x5e,0x4a,0x01,0x78,0x00,0x08,0x00,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x12); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x00,0x00,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0x00,0x00,0x02,0x03,0x00,0x41,0x37); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0xf1,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2d,0x23,0x05); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x08,0xa0,0xfb,0x08,0x2d,0x23,0x05,0xfb,0x0c); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x13); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0xfd,0x0f,0x00,0x0c,0x00,0x00,0x00,0x00,0x01,0x08,0x01,0x1c,0x44,0x0c,0xce,0xe7); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x0f,0x90,0x62,0x0e,0x24,0x98,0xac,0x21,0x01,0x00,0xd0,0xff,0xff,0xff,0x07,0x20); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x14); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x01,0x02,0x41,0x36,0xe1,0xef,0xf7,0xfb,0xfd,0x7e,0x01,0x00,0x00,0x90,0xc5,0x8a); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x27,0x6d,0x20,0x4e,0x3c,0x69,0x03,0xdb,0xe0,0x49,0x1b,0xd8,0x08,0x4f,0xda,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xa0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x82,0xb5,0xe2,0xf7,0x47,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xb0,0xd8,0x89,0xdf,0x1f,0x01,0x00,0x00,0x00,0x00,0x1c,0xb2,0x21,0x2b,0x00,0x40,0xa1); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xc0,0x50,0x78,0x17,0xda,0xf4,0x80,0x51,0x1c,0x6f,0x42,0x9b,0x1e,0x30,0x8a,0xe3,0x3d); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xd0,0x68,0xd3,0x03,0x46,0x71,0xbc,0x05,0x6d,0x7a,0xc0,0x28,0x8e,0x77,0xa0,0x4d,0x0f); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xe0,0x18,0xc5,0xf1,0x06,0xb4,0xe9,0x01,0xa3,0x38,0x5e,0x80,0x36,0x3d,0x60,0x14,0xc7); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xf0,0x2b,0xd0,0xa6,0x07,0x8c,0xe2,0x18,0x01,0xbf,0xdf,0x08,0x00,0x00,0x00,0x00,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x15); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xd9,0xe0,0xf7); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0xa3,0x00,0x20,0x4b,0x07,0xab,0xc5,0x03,0x00,0x00,0xd6,0xc1,0x6a,0xf1,0x00,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xa0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x90); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xb0,0x75,0xa1,0x6a,0xb5,0x00,0x00,0x00,0x00,0x13,0x00,0xf0,0x00,0x14,0xd3,0x34,0xcd); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xc0,0x90,0x02,0x4d,0x10,0x20,0x10,0x06,0x6a,0xdb,0xb6,0x6d,0xdb,0xb6,0x35,0x4d,0xd3); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xd0,0x34,0x21,0x13,0x04,0x01,0x02,0x61,0xa8,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x35); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xe0,0xcd,0xd0,0x02,0x4d,0x50,0x30,0x14,0x47,0x6a,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0x5b); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xf0,0xd3,0x34,0x25,0x13,0x04,0x05,0x43,0x71,0xac,0xb6,0x6d,0xdb,0xb6,0x6d,0x5b,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x16); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x02,0x42,0x41,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x07,0x90,0x00,0x00,0x00,0x00,0xf0,0x20); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x18); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0xef,0xbd,0xf7,0xde,0x7b,0xef,0xbd,0x07,0x08,0x08,0x0a,0x0c,0x0c,0x0c,0x0c,0x0c); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x0c,0x0c,0x0c,0x5c,0x09,0xa8,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0x5a); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xa0,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x09,0x04,0xff,0x00,0x80); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x10,0xb0,0x80,0x00,0x04,0x20,0x00,0x01,0x08,0x40,0x00,0x02,0x10,0x80,0x00,0x04,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x19); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0xc0,0xaf,0xa3,0x9b,0x92,0x8d,0x8a,0x86,0x84,0x83,0x82,0x81,0x00,0x50,0xf6,0xcf); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0xfc,0x2f,0xf3,0xef,0xcf,0xbf,0x0f,0xff,0xaf,0xb5,0x71,0x0e,0x6c,0x4a,0x69,0x08); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x05,0xa0,0x03,0x03,0x68,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x1a); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x00,0x04,0x08,0x0c,0x00,0x10,0x14,0x18,0x1c,0x00,0x20,0x28,0x30,0x38,0x00,0x40); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x48,0x50,0x58,0x00,0x60,0x68,0x70,0x78,0x00,0x80,0x88,0x90,0x98,0x00,0xa0,0xa8); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xa0,0xb0,0xb8,0x00,0xc0,0xc8,0xd0,0xd8,0x00,0xe0,0xe8,0xf0,0xf8,0x00,0xfc,0xfe,0xff); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xb0,0x00,0x00,0x04,0x08,0x0c,0x00,0x10,0x14,0x18,0x1c,0x00,0x20,0x28,0x30,0x38,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xc0,0x40,0x48,0x50,0x58,0x00,0x60,0x68,0x70,0x78,0x00,0x80,0x88,0x90,0x98,0x00,0xa0); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xd0,0xa8,0xb0,0xb8,0x00,0xc0,0xc8,0xd0,0xd8,0x00,0xe0,0xe8,0xf0,0xf8,0x00,0xfc,0xfe); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xe0,0xff,0x00,0x00,0x04,0x08,0x0c,0x00,0x10,0x14,0x18,0x1c,0x00,0x20,0x28,0x30,0x38); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xf0,0x00,0x40,0x48,0x50,0x58,0x00,0x60,0x68,0x70,0x78,0x00,0x80,0x88,0x90,0x98,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x1b); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0xa0,0xa8,0xb0,0xb8,0x00,0xc0,0xc8,0xd0,0xd8,0x00,0xe0,0xe8,0xf0,0xf8,0x00,0xfc); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x05,0x90,0xfe,0xff,0x00,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x20); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x08,0x80,0x81,0x00,0x00,0x00,0x00,0x00,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x22); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x0e,0x80,0x2d,0xd3,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x9f,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x23); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x01,0x05,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x0d,0x90,0xff,0x0f,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0xff,0x07,0x25); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x24); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x00,0x03,0x00,0xff,0xff,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xa6); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x5a,0x5a,0x5a,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x42,0x24); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x90,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x2f); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x19,0x00); + //delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x02,0x5a); + //delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x02,0x00); +*/ + + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x41,0x5a); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x4c,0x03); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x24); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x90,0x5a); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x03); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x80,0x19,0x01); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x08); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x04,0x80,0x19,0x2d,0x05); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x09); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x5a,0x51,0xb5,0x2a,0x6c,0xe5,0x4a,0x01,0x40,0x62,0x0f,0x82,0x20,0x08,0xf0,0xb7); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x00,0x24,0x42,0x0a,0xe3,0x91,0xa4,0xf0,0xc2,0xb9,0x6b,0x20,0x19,0xa1,0x26,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xa0,0x51,0x55,0x55,0x00,0xa0,0x4d,0x06,0x11,0x0d,0x60,0x5a,0xff,0xff,0x03,0xa5,0xe6); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xb0,0x08,0xc9,0x16,0x64,0x0b,0x00,0x00,0x11,0x07,0x60,0x00,0xff,0xff,0x03,0xff,0x34); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x09,0xc0,0x0c,0x3f,0x1f,0x9f,0x0f,0x00,0x08,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x0a); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0xff,0xb6,0x6d,0x03,0x00,0x14,0x23,0x36,0x49,0x5c,0x63,0x98,0x83,0xbe,0x76,0x41); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x7b,0x50,0x4d,0x3e,0x2e,0x1f,0x10,0x0b,0x00,0x14,0x23,0x36,0x49,0x5c,0x63,0x98); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x0e,0xa0,0x83,0xbe,0x76,0x41,0x7b,0x50,0x4d,0x3e,0x2e,0x1f,0x10,0x0b,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x0b); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x00,0x00,0x20,0x44,0x08,0x00,0x60,0x47,0x00,0x00,0x10,0x22,0x04,0x00,0xb0,0x23); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x90,0x15,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x0c); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0xfa,0x68,0x68,0x01,0xb2,0x75,0xb0,0x04,0x00,0x60,0x15,0x00,0x50,0x15,0x56,0x51); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x15,0x55,0x61,0x15,0x00,0x60,0x15,0x00,0x50,0x15,0x56,0x51,0x15,0x55,0x61,0x95); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xa0,0xab,0x18,0x00,0x05,0x00,0x05,0x00,0x05,0x80,0x4c,0x29,0x84,0x52,0x01,0x09,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0xb0,0x00,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x0d); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x08,0x80,0xf0,0xb1,0x71,0xef,0x4b,0xc0,0x80); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x0e); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x09,0x80,0xff,0x01,0x55,0x55,0x23,0x88,0x88,0x1c); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x0f); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x14,0x40,0x6f,0xc0,0x12,0x08,0x64,0x08,0x52,0x31,0x58,0x49,0x03,0x52,0x4c,0x4c); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x68,0x68,0x68,0x4c,0x4c,0x7c,0x14,0x00,0x20,0x06,0xc2,0x00,0x04,0x06,0x0c,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x05,0xa0,0x00,0x92,0x00,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x10); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x00,0x00,0x03,0xe7,0x1f,0x17,0x10,0x48,0x80,0xaa,0xd0,0x18,0x30,0x88,0x41,0x8a); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x10,0x90,0x39,0x28,0xa9,0xc5,0x9a,0x7b,0xf0,0x07,0x7e,0xe0,0x07,0x7e,0x20,0x10,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x11); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x49,0x77,0x03,0x40,0xca,0xf3,0xff,0x83,0x30,0x08,0xc4,0x06,0xa1,0xd8,0x24,0x18); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x30,0xc6,0x66,0xc1,0x80,0x31,0x15,0xcb,0xe5,0xd2,0x68,0x6c,0x36,0x1d,0x04,0xc8); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xa0,0xb0,0xd9,0x88,0x60,0xb0,0x81,0x40,0x1a,0x1b,0x48,0x63,0x03,0xb9,0x00,0x1c,0x80); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xb0,0x50,0x30,0x00,0xe0,0xe1,0x01,0x00,0x28,0x0e,0x06,0x43,0x55,0x55,0x55,0x55,0x55); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xc0,0x95,0x88,0x88,0x88,0x88,0x88,0xc8,0x08,0x86,0xc6,0xe3,0x81,0x00,0x20,0x00,0x21); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xd0,0x42,0x88,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x31,0x04,0x41,0x06,0x00,0x00,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xe0,0x00,0x92,0x04,0x00,0x92,0x04,0x00,0x00,0x00,0x00,0x92,0x04,0x00,0x85,0x11,0x0c); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x10,0xf0,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x5e,0x4a,0x01,0x78,0x00,0x08,0x00,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x12); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x00,0x00,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0x00,0x00,0x02,0x03,0x00,0x41,0x37); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0xf1,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2d,0x23,0x05); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x08,0xa0,0xfb,0x08,0x2d,0x23,0x05,0xfb,0x0c); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x13); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0xfd,0x0f,0x00,0x0c,0x00,0x00,0x00,0x00,0x01,0x08,0x01,0x1c,0x44,0x0c,0xce,0xe7); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x0f,0x90,0x62,0x0e,0x24,0x98,0xac,0x21,0x01,0x00,0xd0,0xff,0xff,0xff,0x07,0x20); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x14); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x01,0x02,0x41,0x36,0xe1,0xef,0xf7,0xfb,0xfd,0x7e,0x01,0x00,0x00,0x90,0xc5,0x8a); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x27,0x6d,0x20,0x4e,0x3c,0x69,0x03,0xdb,0xe0,0x49,0x1b,0xd8,0x08,0x4f,0xda,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xa0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x82,0xb5,0xe2,0xf7,0x47,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xb0,0xd8,0x89,0xdf,0x1f,0x01,0x00,0x00,0x00,0x00,0x1c,0xb2,0x21,0x2b,0x00,0x40,0xa1); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xc0,0x50,0x78,0x17,0xda,0xf4,0x80,0x51,0x1c,0x6f,0x42,0x9b,0x1e,0x30,0x8a,0xe3,0x3d); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xd0,0x68,0xd3,0x03,0x46,0x71,0xbc,0x05,0x6d,0x7a,0xc0,0x28,0x8e,0x77,0xa0,0x4d,0x0f); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xe0,0x18,0xc5,0xf1,0x06,0xb4,0xe9,0x01,0xa3,0x38,0x5e,0x80,0x36,0x3d,0x60,0x14,0xc7); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xf0,0x2b,0xd0,0xa6,0x07,0x8c,0xe2,0x18,0x01,0xbf,0xdf,0x08,0x00,0x00,0x00,0x00,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x15); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xd9,0xe0,0xf7); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0xa3,0x00,0x20,0x4b,0x07,0xab,0xc5,0x03,0x00,0x00,0xd6,0xc1,0x6a,0xf1,0x00,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xa0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x90); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xb0,0x75,0xa1,0x6a,0xb5,0x00,0x00,0x00,0x00,0x13,0x00,0xf0,0x00,0x14,0xd3,0x34,0xcd); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xc0,0x90,0x02,0x4d,0x10,0x20,0x10,0x06,0x6a,0xdb,0xb6,0x6d,0xdb,0xb6,0x35,0x4d,0xd3); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xd0,0x34,0x21,0x13,0x04,0x01,0x02,0x61,0xa8,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x35); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xe0,0xcd,0xd0,0x02,0x4d,0x50,0x30,0x14,0x47,0x6a,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0x5b); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xf0,0xd3,0x34,0x25,0x13,0x04,0x05,0x43,0x71,0xac,0xb6,0x6d,0xdb,0xb6,0x6d,0x5b,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x16); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x02,0x42,0x41,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x07,0x90,0x00,0x00,0x00,0x00,0xf0,0x20); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x18); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0xef,0xbd,0xf7,0xde,0x7b,0xef,0xbd,0x07,0x08,0x08,0x0a,0x0c,0x0c,0x0c,0x0c,0x0c); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x0c,0x0c,0x0c,0x5c,0x09,0xa8,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0x5a); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xa0,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x09,0x04,0xff,0x00,0x80); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x10,0xb0,0x80,0x00,0x04,0x20,0x00,0x01,0x08,0x40,0x00,0x02,0x10,0x80,0x00,0x04,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x19); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0xc0,0xaf,0xa3,0x9b,0x92,0x8d,0x8a,0x86,0x84,0x83,0x82,0x81,0x00,0x50,0xf6,0xcf); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0xfc,0x2f,0xf3,0xef,0xcf,0xbf,0x0f,0xff,0xaf,0xb5,0x71,0x0e,0x6c,0x4a,0x69,0x08); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x05,0xa0,0x03,0x03,0x68,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x1a); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x00,0x04,0x08,0x0c,0x00,0x10,0x14,0x18,0x1c,0x00,0x20,0x28,0x30,0x38,0x00,0x40); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x48,0x50,0x58,0x00,0x60,0x68,0x70,0x78,0x00,0x80,0x88,0x90,0x98,0x00,0xa0,0xa8); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xa0,0xb0,0xb8,0x00,0xc0,0xc8,0xd0,0xd8,0x00,0xe0,0xe8,0xf0,0xf8,0x00,0xfc,0xfe,0xff); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xb0,0x00,0x00,0x04,0x08,0x0c,0x00,0x10,0x14,0x18,0x1c,0x00,0x20,0x28,0x30,0x38,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xc0,0x40,0x48,0x50,0x58,0x00,0x60,0x68,0x70,0x78,0x00,0x80,0x88,0x90,0x98,0x00,0xa0); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xd0,0xa8,0xb0,0xb8,0x00,0xc0,0xc8,0xd0,0xd8,0x00,0xe0,0xe8,0xf0,0xf8,0x00,0xfc,0xfe); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xe0,0xff,0x00,0x00,0x04,0x08,0x0c,0x00,0x10,0x14,0x18,0x1c,0x00,0x20,0x28,0x30,0x38); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0xf0,0x00,0x40,0x48,0x50,0x58,0x00,0x60,0x68,0x70,0x78,0x00,0x80,0x88,0x90,0x98,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x1b); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0xa0,0xa8,0xb0,0xb8,0x00,0xc0,0xc8,0xd0,0xd8,0x00,0xe0,0xe8,0xf0,0xf8,0x00,0xfc); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x05,0x90,0xfe,0xff,0x00,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x20); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x08,0x80,0x81,0x00,0x00,0x00,0x00,0x00,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x22); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x0e,0x80,0x2d,0xd3,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x9f,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x23); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x01,0x05,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x0d,0x90,0xff,0x0f,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0xff,0x07,0x25); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x24); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x80,0x00,0x03,0x00,0xff,0xff,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xa6); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x11,0x90,0x5a,0x5a,0x5a,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x42,0x24); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x90,0x00); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x29,0x00,0x03,0x41,0x5a,0x2f); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x15,0x00,0x02,0x19,0x00); + + + + + + + //----------------------LCD initial code End----------------------// + + // BIST MODE +// delayUs(100);hal_dsi_tx_ctrl_write_cmd(0x39,0,2,0x02,0x5A); + //SPI FINISH + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x42, 0x24); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x90, 0x00); + //Blank select 2F + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x41, 0x5A, 0x2F); + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x19, 0x00); + + // Video Mode Enable +// delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x39,0x00,0x03,0xB7,0x59,0x02); + + hal_dsi_tx_ctrl_write_cmd(0x05, 0, 1, 0x11); + delayMs(5); + hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_HIGH); + delayMs(5); +// hal_gpio_set_output_data(IO_PAD_ADCIN, IO_LVL_HIGH); + hal_gpio_set_output_data(IO_PAD_AP_SWIRE, IO_LVL_HIGH); + +// hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x51, 0xff, 0x0f); +// hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x53, 0x24); +// hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x55, 0x00); + + + +#endif +#endif + +#endif + +#if 0 + uint8_t data[10] = {0}; + hal_dsi_tx_ctrl_read_cmd(0x06, 0, 0x0A, 1, data); + TAU_LOGI("read[0x%02x]:%02x\n", 0x0A, data[0]); +#endif + + + /* exit send initial code mode*/ + hal_dsi_tx_ctrl_exit_init_panel_mode(); + delayMs(10); +} + +static void open_mipi_rx(void) +{ + /* TE */ + hal_gpio_set_mode(IO_PAD_AP_TE, IO_MODE_TEAR); + + if (g_rx_ctrl_handle == NULL) + { + /* rx ctrl handle */ + g_rx_ctrl_handle = hal_dsi_rx_ctrl_create_handle(); + } + /* ò */ + g_rx_ctrl_handle->base_info.src_w = INPUT_WIDTH; + g_rx_ctrl_handle->base_info.src_h = INPUT_HEIGHT; + g_rx_ctrl_handle->base_info.dst_w = OUTPUT_WIDTH; + g_rx_ctrl_handle->base_info.dst_h = OUTPUT_HEIGHT; + g_rx_ctrl_handle->base_info.src_frate = INPUT_FRAME_RATE; + g_rx_ctrl_handle->base_info.src_mode = INPUT_DATA_MODE; + g_rx_ctrl_handle->rx_color_mode = INPUT_COLOR_MODE; + g_rx_ctrl_handle->rx_lanes = INPUT_MIPI_LANE_NUM; + g_rx_ctrl_handle->rx_nonburst_models = INPUT_VIDEO_MODEL; /* ɲ */ + g_rx_ctrl_handle->rx_vc = INPUT_VC; + g_rx_ctrl_handle->compress_en = INPUT_COMPRESS; + g_rx_ctrl_handle->rx_hsclk_rate = INPUT_MIPI_LANE_RATE; + g_rx_ctrl_handle->cus_dcs_entry_table = g_cus_rx_dcs_execute_table; /* ע DCSб */ + g_rx_ctrl_handle->rx_dcs_read_entry = ap_dcs_read; /* עdsc read ص,ѡ,˺Ϊʱcus_dcs_entry_tableִ */ + g_rx_ctrl_handle->pps_update_entry = pps_update_handle; + g_rx_ctrl_handle->pq_marginal = true; //true:ˮơfalse + /* ǰԤPPS, AP PPS cmdҲ */ + + /* ʼrx ctrl */ + hal_dsi_rx_ctrl_init(g_rx_ctrl_handle); + hal_dsi_rx_ctrl_set_cus_sync_line(g_rx_ctrl_handle, 2400);// lss add, ˺1600 + // hal_dsi_rx_ctrl_hight_performan_mode(g_rx_ctrl_handle); + hal_dsi_rx_ctrl_set_cus_scld_filter(g_rx_ctrl_handle,rx_filter_1080_h_4_70,rx_filter_2240_v_4_70); + /* rx ctrl */ + hal_dsi_rx_ctrl_start(g_rx_ctrl_handle); + //hal_dsi_rx_ctrl_set_auto_hw_filter(g_rx_ctrl_handle, true); + +// delayMs(20); +} + +static void init_mipi_tx(void) +{ + if (g_tx_ctrl_handle == NULL) + { + g_tx_ctrl_handle = hal_dsi_tx_ctrl_create_handle(); + } + g_tx_ctrl_handle->channel_id = OUTPUT_VC; + g_tx_ctrl_handle->lane_num = OUTPUT_LANE_NUMBER; + g_tx_ctrl_handle->vid_mode = OUTPUT_VIDEO_MODEL; + g_tx_ctrl_handle->cmd_tx_type = _CMD_TYPE; + g_tx_ctrl_handle->dpi_vsa = OUTPUT_VSA; + g_tx_ctrl_handle->dpi_vbp = OUTPUT_VBP; + g_tx_ctrl_handle->dpi_vfp = OUTPUT_VFP; + g_tx_ctrl_handle->dpi_hsa = OUTPUT_HSA; + g_tx_ctrl_handle->dpi_hbp = OUTPUT_HBP; + g_tx_ctrl_handle->dpi_hfp = OUTPUT_HFP; +// g_tx_ctrl_handle->lane_rate_coef = _LANE_RATE_COEF; + g_tx_ctrl_handle->base_info.src_w = INPUT_WIDTH; + g_tx_ctrl_handle->base_info.src_h = INPUT_HEIGHT; + g_tx_ctrl_handle->base_info.dst_w = OUTPUT_WIDTH; + g_tx_ctrl_handle->base_info.dst_h = OUTPUT_HEIGHT; + g_tx_ctrl_handle->base_info.src_frate = INPUT_FRAME_RATE; + g_tx_ctrl_handle->base_info.src_mode = INPUT_DATA_MODE; + + g_tx_ctrl_handle->tx_frame_rate = 60; + g_tx_ctrl_handle->tx_clkawayshs = true; +// g_tx_ctrl_handle->tx_line_delay = 600; + + hal_dsi_tx_ctrl_init(g_tx_ctrl_handle); + /* AP ûзʱĬϵʾɫ, Ϊ0 0 0(ɫ), ɫΪdebugʹ */ + hal_dsi_tx_ctrl_set_overwrite_rgb(0x00, 0x00, 0x00); + + //#define INPUT_WIDTH 1080 + //#define INPUT_HEIGHT 2244 + + +// #define OUTPUT_WIDTH 720 +// #define OUTPUT_HEIGHT 1600 + + /*ȱֱͼ*/ + //ԭװ18.79װ209 + //Ҽ25(18.7:9),20(18.9:9),15(19.2:9) + + //20230419ͻƫ + // ٳ1618ͼ첻أպߺڱߡ + // ڳ1518ͼе㣬λúԭװӽ + hal_dsi_tx_crop_t *crop; + crop->crop_top=0; + crop->crop_bottom=0; + crop->crop_left=15; + crop->crop_right=15; + hal_dsi_tx_crop_pic(g_tx_ctrl_handle,crop); + +#if CUS_SCLD_FILTER + // hal_dsi_tx_ctrl_set_cus_pq_filter(g_tx_ctrl_handle, tx_filter_H, tx_filter_V); +#endif +} + +static void AP_SWIRE_init() +{ + uint8_t i; + + hal_gpio_set_output_data(IO_PAD_ADCIN, IO_LVL_HIGH); + delayMs(1); + + for(i=0; i<5; i++) + { + hal_gpio_set_output_data(IO_PAD_ADCIN,IO_LVL_LOW); + delayUs(10); + hal_gpio_set_output_data(IO_PAD_ADCIN,IO_LVL_HIGH); + delayUs(10); + } +} + + +static void tx_display_on(void) +{ + init_panel(); +// delayMs(150); + hal_dsi_tx_ctrl_start(g_tx_ctrl_handle); + delayMs(150); + delayUs(50);hal_dsi_tx_ctrl_write_cmd(0x05, 0, 1, 0x29); + +// delayMs(40); +// hal_gpio_set_output_data(IO_PAD_AP_SWIRE, IO_LVL_HIGH); +// delayMs(200); +// delayMs(50); +// hal_dsi_tx_ctrl_write_cmd(0x05, 0, 1, 0x29); + TAU_LOGD("write 29\n"); + +/* if(g_resolution_change) + { + hal_dsi_rx_ctrl_toggle_resolution(g_rx_ctrl_handle); + //hal_dsi_rx_ctrl_set_auto_hw_filter(g_rx_ctrl_handle, true); + TAU_LOGD("resolutio toggle\n"); + } +*/ + panel_display_done = true; + +} + +static void swire_timer_callback(void *data) +{ + hal_swire_start(12, 12, 12, 12, swire_num); +} + +static void swire_callback(void *data) +{ + /* swire ǷҪһֱҪֻֻͬͬ */ + //if(start_display_on == false) + { + hal_timer_start(SWIRE_TIMER, 26, swire_timer_callback, NULL); + } +} + +/* swire ʼ,ͨ hal_swire_start , ѭһֱ */ +static void swire_init() +{ + hal_swire_open(DISABLE); + hal_swire_init(); + /* swire ηɺص */ + hal_swire_register_callback(swire_callback); + hal_swire_open(ENABLE); + //hal_swire_start(12, 12, 12, 12, 43); + hal_swire_start(12, 12, 12, 12, 36); //3~27,~,9.45V~7.43V + hal_timer_init(SWIRE_TIMER); + hal_timer_start(SWIRE_TIMER, 26, swire_timer_callback, NULL); +} + + + +#if 0 // TEST RGB, From Lin +void RGB_TEST(void) +{ + tx_display_on(); + while (1) + { + + hal_dsi_tx_ctrl_set_overwrite_rgb(0xFF, 0x00, 0x00); // RED + hal_dsi_tx_ctrl_start(g_tx_ctrl_handle); + delayMs(1000); + + + hal_dsi_tx_ctrl_set_overwrite_rgb(0x00, 0xFF, 0x00); // GREEN + hal_dsi_tx_ctrl_start(g_tx_ctrl_handle); + delayMs(1000); + + + hal_dsi_tx_ctrl_set_overwrite_rgb(0x00, 0x00, 0xFF); // BLUE + hal_dsi_tx_ctrl_start(g_tx_ctrl_handle); + delayMs(1000); + + + hal_dsi_tx_ctrl_set_overwrite_rgb(0xFF, 0xFF, 0xFF); // WHITE + hal_dsi_tx_ctrl_start(g_tx_ctrl_handle); + delayMs(1000); + + + hal_dsi_tx_ctrl_set_overwrite_rgb(0x00, 0x00, 0x00); // BLACK + hal_dsi_tx_ctrl_start(g_tx_ctrl_handle); + delayMs(1000); + + } + +} +#endif + + + +void ap_demo(void) +{ + hal_gpio_init_output(IO_PAD_PWMEN, IO_LVL_LOW); + hal_gpio_init_output(IO_PAD_ADCIN, IO_LVL_LOW); + hal_gpio_init_output(IO_PAD_AP_SWIRE, IO_LVL_LOW); + hal_pwm_out_sel_io(IO_PAD_AP_SWIRE); + /* mipi rxʼ */ + open_mipi_rx(); + + PWM_init(); + AP_SWIRE_init(); + #if SHARE_FLASH_MODE + hal_system_share_flash_mode(true); // ʹڲFLASH + #endif + + /* swire ʼ */ +// swire_init(); + + /* Ӧ,1.8V AP TP1.8, PWMEN ӵ AP AVDD_SWIRE, ڼϢAC */ + + if (hal_gpio_get_input_data(IO_PAD_AP_TPRSTN)) + { + /* Ϣ */ + start_display_on = true; + TAU_LOGD("DC\n"); + } + else + { + /* AC */ + TAU_LOGD("AC\n"); + } + +// NVIC_SetPriority(I2C0_IRQn, 0x00); +// NVIC_SetPriority(I2C1_IRQn, 0x01); + /* TP1.8е֮ǰʹTEʾ֮лΪӲTE */ +// soft_te_timer_init(); + + /* mipi tx ʼ*/ + + init_mipi_tx(); + + #if 0 // TEST RGB, From Lin + RGB_TEST(); + #endif + + /* touch ģʼ */ + app_tp_init(); + +// hal_dsi_rx_ctrl_enable_test_pattern(g_rx_ctrl_handle, 0, true);//TEST + loop_count =1; + while (1) + { + /* ȴ AP TP ϵ*/ + if (start_display_on == true) + { + /* ʼ */ + tx_display_on(); + + #if SHARE_FLASH_MODE + //hal_system_share_flash_mode(false); // ڲFLASHر + #endif + + start_display_on = false; + panel_display_done = true; + + app_tp_phone_clear_reset_on(); + + /* TP ģͨѶʼ */ + #ifndef DISABLE_TDDI_I2C_FUNCTION + app_tp_transfer_screen_start(); + #endif + } + + if(panel_display_done) + { + PWM_Task(); + } + /* ȴ TP жϱTP Эת */ + #ifndef DISABLE_TDDI_I2C_FUNCTION + app_tp_transfer_screen_int(); + #endif + + while (hal_dsi_rx_ctrl_dsc_async_handler(g_rx_ctrl_handle)); + + } +} + diff --git a/src/app/ap_demo/ap_demo.h b/src/app/ap_demo/ap_demo.h new file mode 100644 index 0000000..4398e65 --- /dev/null +++ b/src/app/ap_demo/ap_demo.h @@ -0,0 +1,23 @@ +/******************************************************************************* +* +* +* File: s8_demo.h +* Description: s8ͷļ +* Version: V0.1 +* Date: 2021-02-22 +* Author: Tempest + *******************************************************************************/ + +#ifndef __AP_DEMO_H__ +#define __AP_DEMO_H__ + +#define USE_FOR_SUMSUNG_S10 + +/** +* @brief test system +* @param none +* @retval none +*/ +void ap_demo(void); + +#endif diff --git a/src/app/ap_demo/app_tp_for_custom_mi8se.c b/src/app/ap_demo/app_tp_for_custom_mi8se.c new file mode 100644 index 0000000..ad61625 --- /dev/null +++ b/src/app/ap_demo/app_tp_for_custom_mi8se.c @@ -0,0 +1,1151 @@ +/******************************************************************************* +* +* +* File: app_tp_for_custom.c +* Description tp Э鴦ļЭתstart/sleep/awake ȹ̶ݵ +* Version V0.1 +* Date 2021-10-14 +* Author zhanghz +*******************************************************************************/ +#include "test_cfg_global.h" + +#if _DEMO_MI8SE_EN +#include "app_tp_for_custom_mi8se.h" +#include "app_tp_phone_transfer_data_mi8se.h" +#include "app_tp_screen_transfer_data_mi8se.h" +#include "tau_log.h" +#include "tau_delay.h" +#include "hal_pwm.h" + + +//static uint8_t s8_event_id = 0x00; +bool tp_flag = false; + + +uint8_t s8_host_num[11] = {0x02,0x02,0x04,0x06,0x08,0x0A,0x0C,0x0E,0x10,0x12,0x14}; // жٸӦķֵģΪ01ʱǶ1 +uint8_t s8_host_id[10] = {0x00,0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80,0x90}; // ״̬BIT3~BIT0: 3ʼ/5/4̧ + +extern uint8_t read_point; +extern uint8_t s_screen_number[2]; +extern uint8_t s_screen_read_bak[80]; + +io_pad_e g_screen_input_rst_pad = IO_PAD_TD_TPRSTN; +io_pad_e g_screen_input_int_pad = IO_PAD_TD_INT; +io_pad_e g_phone_input_rst_pad = IO_PAD_AP_TPRSTN; +io_pad_e g_phone_output_int_pad = IO_PAD_AP_INT; + +#ifdef USE_FOR_SUMSUNG_S10 +uint8_t Flag_EA_EN=0; + +uint8_t Flag_touch_count = 0; +uint8_t touch_send_flag = 0; +uint8_t touch_recv_flag = 0; + +uint8_t touchnum_bak = 0; +uint8_t Flag_blacklight_EN=0; +uint16_t first_touch=0; +uint16_t first_send=0; +uint16_t flnger_state_flg=0; +extern uint16_t u16TouchID; +#endif + +/*************************************Э master buffer ****************************************/ + +uint8_t screen_data_write_1[1] = {0x04}; /// ݶȡӦķbuffer +uint8_t screen_data_write_2[1] = {0x08}; //buffer +#ifdef USE_FOR_SUMSUNG_S10 +uint8_t screen_data_write_3[1] = {0x00}; //buffer +#else +uint8_t screen_data_write_3[1] = {0x06}; //buffer +#endif + +uint8_t screen_data_write_4[2] = {0xFF,0x00}; +uint8_t screen_data_write_5[2] = {0x1F,0xFF}; +uint8_t screen_data_write_6[2] = {0x0E,0x24}; +uint8_t screen_data_write_7[2] = {0x24,0x01}; +uint8_t screen_data_write_8[2] = {0x0D,0x00}; +uint8_t screen_data_write_9[2] = {0x0E,0x00}; +uint8_t screen_data_write_10[2] = {0x0E,0x07}; +uint8_t screen_data_write_11[1] = {0x0D}; +uint8_t screen_data_write_12[1] = {0x05}; + +st_screen_data screen_reg_int_data[] = {{screen_data_write_1, 1, 2, SCREEN_TRANSFER_READ},\ + {screen_data_write_2, 1, 2, SCREEN_TRANSFER_READ},\ + {screen_data_write_3, 1, 8, SCREEN_TRANSFER_READ} +}; +const uint8_t screen_reg_int_data_size = sizeof(screen_reg_int_data) / sizeof(st_screen_data);//ṹԪظ鰴Э鷢Ⱥ +/***********************************Э master buffer ֹ**************************************/ + +/***********************************Ļʼ master buffer ************************************/ +// 鰴Э鷢Ⱥ +#if 1 + +#if 0 +st_screen_const_data screen_reg_start_data[] = {{screen_data_write_4, 2, 2, SCREEN_TRANSFER_WRITE},\ + {screen_data_write_11, 1, 1, SCREEN_TRANSFER_READ},\ + {screen_data_write_8, 2, 2, SCREEN_TRANSFER_WRITE},\ + {screen_data_write_9, 2, 2, SCREEN_TRANSFER_WRITE},\ + {screen_data_write_12, 1, 1, SCREEN_TRANSFER_READ},\ + {screen_data_write_10, 2, 2, SCREEN_TRANSFER_WRITE},\ +}; + +#else +st_screen_const_data screen_reg_start_data[] = {{screen_data_write_4, 2, 2, SCREEN_TRANSFER_WRITE},\ + {screen_data_write_5, 2, 2, SCREEN_TRANSFER_WRITE},\ + {screen_data_write_6, 2, 8, SCREEN_TRANSFER_WRITE},\ + {screen_data_write_7, 2, 8, SCREEN_TRANSFER_WRITE},\ +}; +#endif + +#else +st_screen_const_data screen_reg_start_data[] = {{screen_data_write_1, 1, 2, SCREEN_TRANSFER_READ},\ + {screen_data_write_2, 1, 2, SCREEN_TRANSFER_READ} +}; +#endif + +const uint8_t screen_reg_start_data_size = sizeof(screen_reg_start_data) / sizeof(st_screen_const_data); +/*********************************Ļʼ master buffer ֹ**********************************/ + +#ifdef TP_ADD_ESD_CHECK // ʱTP +bool tp_get_ac = false; +bool ap_tp_int_enable = false; +static bool ap_int_first = true; +static bool ap_int_second = true; +static volatile bool g_send_ed = false; +#endif + +/*************************************Э slave buffer******************************************/ +uint8_t phone_reg_point_data[] = {0xB6, 0x00, 0x23}; +uint8_t phone_reg_point_back[] = {0x05, 0x02}; + +uint8_t phone_reg_coord_data[] = {0x86}; // ݷӦĽ + +uint8_t phone_reg_coord_back[80] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; // ݷӦbuffer + + +st_reg_data phone_reg_int_data[] = { \ + {3, 2, phone_reg_point_data, phone_reg_point_back}, \ + {1, 80, phone_reg_coord_data, phone_reg_coord_back} \ +}; +uint8_t phone_reg_int_size = sizeof(phone_reg_int_data) / sizeof(phone_reg_int_data[0]); +/***********************************Э slave buffer ֹ***************************************/ + +/****************************׶slaveҪݼӦĽտͷ********************************/ + +st_reg_const_data phone_reg_const_data[] = { \ +/* {sizeof(phone_b6_00_28_data), sizeof(phone_b6_00_28_back), phone_b6_00_28_data, phone_b6_00_28_back}, \ + {sizeof(phone_b6_00_08_data), sizeof(phone_b6_00_08_back), phone_b6_00_08_data, phone_b6_00_08_back}, \ + {sizeof(phone_b6_00_04_data), sizeof(phone_b6_00_04_back), phone_b6_00_04_data, phone_b6_00_04_back}, \ + {sizeof(phone_b8_00_08_data), sizeof(phone_b8_00_08_back), phone_b8_00_08_data, phone_b8_00_08_back}, \ + {sizeof(phone_ac_data), sizeof(phone_ac_back), phone_ac_data, phone_ac_back}, \ + {sizeof(phone_a7_data), sizeof(phone_a7_back), phone_a7_data, phone_a7_back}, \ + {sizeof(phone_84_data), sizeof(phone_84_back), phone_84_data, phone_84_back}, \ + {sizeof(phone_aa_00_data), sizeof(phone_aa_00_back), phone_aa_00_data, phone_aa_00_back}, \ + {sizeof(phone_aa_01_data), sizeof(phone_aa_01_back), phone_aa_01_data, phone_aa_01_back}, \ + {sizeof(phone_d0_00_5a_data), sizeof(phone_d0_00_5a_back), phone_d0_00_5a_data, phone_d0_00_5a_back}, \ + {sizeof(phone_d0_00_5c_data), sizeof(phone_d0_00_5c_back), phone_d0_00_5c_data, phone_d0_00_5c_back}, \ + {sizeof(phone_d0_00_64_data), sizeof(phone_d0_00_64_back), phone_d0_00_64_data, phone_d0_00_64_back}, \ + {sizeof(phone_d0_00_88_data), sizeof(phone_d0_00_88_back), phone_d0_00_88_data, phone_d0_00_88_back}, \ + {sizeof(phone_d0_00_7a_data), sizeof(phone_d0_00_7a_back), phone_d0_00_7a_data, phone_d0_00_7a_back}, \ + {sizeof(phone_d0_76_04_data), sizeof(phone_d0_76_04_back), phone_d0_76_04_data, phone_d0_76_04_back}, \ + {sizeof(phone_d0_1f_6e_data), sizeof(phone_d0_1f_6e_back), phone_d0_1f_6e_data, phone_d0_1f_6e_back}, \ + {sizeof(phone_d0_00_50_data), sizeof(phone_d0_00_50_back), phone_d0_00_50_data, phone_d0_00_50_back}, \ + {sizeof(phone_d0_1f_b3_data), sizeof(phone_d0_1f_b3_back), phone_d0_1f_b3_data, phone_d0_1f_b3_back}, \ + {sizeof(phone_d0_1f_6c_data), sizeof(phone_d0_1f_6c_back), phone_d0_1f_6c_data, phone_d0_1f_6c_back}, \ + {sizeof(phone_d0_1f_b2_data), sizeof(phone_d0_1f_b2_back), phone_d0_1f_b2_data, phone_d0_1f_b2_back}, \ + {sizeof(phone_d0_1f_72_data), sizeof(phone_d0_1f_72_back), phone_d0_1f_72_data, phone_d0_1f_72_back}, \ + {sizeof(phone_d0_00_06_data), sizeof(phone_d0_00_06_back), phone_d0_00_06_data, phone_d0_00_06_back}, \ + {sizeof(phone_d0_23_ac_data), sizeof(phone_d0_23_ac_back), phone_d0_23_ac_data, phone_d0_23_ac_back}, \ + {sizeof(phone_d0_24_2c_data), sizeof(phone_d0_24_2c_back), phone_d0_24_2c_data, phone_d0_24_2c_back}, \ + {sizeof(phone_d0_24_ac_data), sizeof(phone_d0_24_ac_back), phone_d0_24_ac_data, phone_d0_24_ac_back}, \ + {sizeof(phone_d0_25_2c_data), sizeof(phone_d0_25_2c_back), phone_d0_25_2c_data, phone_d0_25_2c_back}, \ + {sizeof(phone_d0_25_ac_data), sizeof(phone_d0_25_ac_back), phone_d0_25_ac_data, phone_d0_25_ac_back}, \ + {sizeof(phone_d0_26_2c_data), sizeof(phone_d0_26_2c_back), phone_d0_26_2c_data, phone_d0_26_2c_back}, \ + {sizeof(phone_d0_26_ac_data), sizeof(phone_d0_26_ac_back), phone_d0_26_ac_data, phone_d0_26_ac_back}, \ + {sizeof(phone_d0_27_2c_data), sizeof(phone_d0_27_2c_back), phone_d0_27_2c_data, phone_d0_27_2c_back} \ + */ +}; +uint8_t phone_reg_const_data_size = sizeof(phone_reg_const_data) / sizeof(phone_reg_const_data[0]); +/***************************׶slaveҪݼӦĽտͷֹ******************************/ + +static void tp_int_high_timer_callback(void *data) +{ + uint8_t ii, jj=0; + + if(touch_recv_flag == 0) // 1msûйȡݣԶ + { + hal_gpio_set_output_data(g_phone_output_int_pad, IO_LVL_HIGH); + } + else // 25ms ޴release¼ + { + + for(jj=0; jj<10; jj++) + { + ii = jj; + phone_reg_coord_back[8*jj+0] = 0x33; //13 press 33 leave 23 move + phone_reg_coord_back[8*jj+1] = (jj<<4)|0x01; //id + phone_reg_coord_back[8*jj+2] = 0x00; //x Ͱλ + phone_reg_coord_back[8*jj+3] = 0x00; //bit0-bit3:xλ;bit4-bit7:yλ; + phone_reg_coord_back[8*jj+4] = 0x00; //y ߰λ + phone_reg_coord_back[8*jj+5] = 0x00; //zzλ + //touch type0:ָͨ1:2:ף3:;4:;5:;6:ʪ;7:ӽ;8:ҡ + phone_reg_coord_back[8*jj+6] = 0x00; //bit0-bit5:zֻ6λ;bit6-bit7:touch typeĸλ + phone_reg_coord_back[8*jj+7] = 9-jj; + } + + Flag_touch_count = jj; + + hal_gpio_set_output_data(g_phone_output_int_pad, IO_LVL_LOW); //TPжϽ,֪ͨAPȡTP + } +} +void tp_int_high_timer_init(void) +{ + hal_timer_init(TIMER_NUM3); + hal_timer_start(TIMER_NUM3, 25, tp_int_high_timer_callback, NULL); +} + +/************************************************************************** +* @name : app_tp_screen_analysis_const +* @brief : screen start ׶ݽɿͻ +* @param[in] : +* @return : +* @retval : +**************************************************************************/ +uint8_t app_tp_screen_analysis_const(uint8_t transfer_now, uint8_t *rxbuffer, size_t data_size) +{ + static uint8_t app_tp_count = 0; + + app_tp_count++; + if (app_tp_count > 20) //ʼɹreset screen + { + app_tp_count = 0; + app_tp_screen_init(); + return 0; + } + + if (transfer_now == 0) + { + if (rxbuffer[2] == 0x03) + { + TAU_LOGD("TD TP init done\n"); + return 1; + } + else + { + TAU_LOGD("TD TP return false [%d]\n", rxbuffer[2]); + return 0; + } + } + + return transfer_now + 1; +} + +/************************************************************************** +* @name : app_tp_screen_analysis_int +* @brief : screen ݽɿͻ +* @param[in] : +* @return : +* @retval : +*޸TP3תʽ +*ģ鱨rxbuffer[]ת󱨵phone_reg_coord_back[] +**************************************************************************/ +uint8_t app_tp_screen_analysis_int(uint8_t transfer_now, uint8_t *rxbuffer, size_t data_size) +{ + +#ifdef USE_FOR_SUMSUNG_S10 +uint8_t ii, jj,i,j,k; +uint8_t temp_flag,temp,touchnum; +uint8_t temp_8,touch_id; +uint16_t temp16 = 1; +uint32_t xx, yy, zz; +uint8_t send_point = 0; // ǰҪ͵ı̧ʱҲҪ + +static uint16_t point_counter =0; + + send_point =0; + touchnum =0; + touchnum = rxbuffer[2]; + if(touchnum>0x10) + touchnum = 0; +/* + for(ii=0;ii<64;ii++) + { + printf("%2x ",rxbuffer[ii]); + } + printf("\n"); +*/ +#if 0 + if(point_counter == 0) + { + // point_counter = 1; + phone_reg_coord_back[0] = 0x13; + phone_reg_coord_back[1] = 0x01; + phone_reg_coord_back[2] = 0xE9; + phone_reg_coord_back[3] = 0x61; + phone_reg_coord_back[4] = 0x25; + phone_reg_coord_back[5] = 0x00; + phone_reg_coord_back[6] = 0x00; + phone_reg_coord_back[7] = 0x00; + } + else if(point_counter == 1) + { + + phone_reg_coord_back[0] = 0x23; + phone_reg_coord_back[1] = 0x01; + phone_reg_coord_back[2] = 0xE9; + phone_reg_coord_back[3] = 0x61; + phone_reg_coord_back[4] = 0x25; + phone_reg_coord_back[5] = 0x00; + phone_reg_coord_back[6] = 0x00; + phone_reg_coord_back[7] = 0x00; + } + else if(point_counter == 10) + { +// point_counter++; + phone_reg_coord_back[0] = 0x23; + phone_reg_coord_back[1] = 0x01; + phone_reg_coord_back[2] = 0xF5; + phone_reg_coord_back[3] = 0xE1; + phone_reg_coord_back[4] = 0x25; + phone_reg_coord_back[5] = 0x00; + phone_reg_coord_back[6] = 0x00; + phone_reg_coord_back[7] = 0x00; + } + + point_counter++; + if(point_counter == 1000) + { + point_counter = 0; + phone_reg_coord_back[0] = 0x33; + phone_reg_coord_back[1] = 0x01; + phone_reg_coord_back[2] = 0xF5; + phone_reg_coord_back[3] = 0xE1; + phone_reg_coord_back[4] = 0x25; + phone_reg_coord_back[5] = 0x00; + phone_reg_coord_back[6] = 0x00; + phone_reg_coord_back[7] = 0x00; + } + + send_point = 1; + + if(temp16 || send_point) + { + tp_flag =true; + TAU_LOGD("TD TP done %d \n",point_counter); + hal_gpio_set_output_data(g_phone_output_int_pad, IO_LVL_LOW); //TPжϽ,֪ͨAPȡTP + } + return screen_reg_int_data_size + 1; + +#else + for(ii =0; ii<5; ii++) + { + phone_reg_coord_back[7]=0; + } + + +// if(Flag_touch_count == 0) // + { + +// TAU_LOGD("[%2x][%2x][%2x][%2x][%2x][%2x][%2x][%2x]\n",rxbuffer[0],rxbuffer[1],rxbuffer[2],rxbuffer[3],rxbuffer[4],rxbuffer[5],rxbuffer[6],rxbuffer[7]); + send_point = rxbuffer[2]; // ȡ + + if( send_point <= 10 && (rxbuffer[3]!= 0x00) && (rxbuffer[4]!= 0x00) ) // ݲ10 б + { + + + for(ii =0; ii<10; ii++) + { + temp_flag = s8_host_id[ii]&0xF0; + temp_8 = rxbuffer[6*ii+3]&0xf0; + touch_id=(rxbuffer[6*ii+5]>>4)&0x0f; + if(temp_8==0x00)//((temp16 >>ii) &0x01) // ӦIDб + { + // send_point++; + s8_host_id[ii]=0x13; + } + else if(temp_8== 0x80) // + { + // send_point++; + s8_host_id[ii]=0x23; + } + else if(temp_8== 0x40) // ̧ + { + send_point++; + s8_host_id[ii] = 0x33; + } + } + + //// phone_reg_point_back[1] = s8_host_num[send_point]; //ҪͱļĴ + // printf("send_point %d ",send_point); + + jj =0; + for(ii =0; ii<10; ii++) + { + temp_8 = rxbuffer[6*ii+3]&0xf0; + temp_flag = s8_host_id[ii]&0x30; + touch_id = (rxbuffer[6*ii+5]>>4)&0x0f; + touch_id = (touch_id<<4); + if(temp_flag) //2BITΪ0Ҫͱ + { + xx = ((rxbuffer[6*ii+3]&0x0f) << 8) | (rxbuffer[6*ii+4]); + yy = ((rxbuffer[6*ii+5]&0x0f) << 8) | (rxbuffer[6*ii+6]); + zz = rxbuffer[6*ii+7]; + + xx = xx * INPUT_WIDTH_VALUE / OUTPUT_WIDTH_VALUE; + if(xx > 4095) + xx = 4095; + yy = yy * INPUT_HEIGHT_VALUE / OUTPUT_HEIGHT_VALUE; + if(yy > 4095) + yy = 4095; + + if (temp_flag ==0x30) // ̧ + { + #if 1 + phone_reg_coord_back[8*jj+0] = s8_host_id[ii]; //13 press 33 leave 23 move + phone_reg_coord_back[8*jj+1] = touch_id|0x01; //id + phone_reg_coord_back[8*jj+2] = (uint8_t)(xx& 0xFF); //x Ͱλ + phone_reg_coord_back[8*jj+3] = ((yy & 0x0F) << 4) | ((xx>>8) & 0x0F); //bit0-bit3:xλ;bit4-bit7:yλ; + phone_reg_coord_back[8*jj+4] = (uint8_t)((yy>>4)& 0xFF); //y ߰λ + phone_reg_coord_back[8*jj+5] = 0x00; //zzλ + //touch type0:ָͨ1:2:ף3:;4:;5:;6:ʪ;7:ӽ;8:ҡ + phone_reg_coord_back[8*jj+6] = 0x00; //bit0-bit5:zֻ6λ;bit6-bit7:touch typeĸλ + + if(send_point>jj) + phone_reg_coord_back[8*jj+7] = send_point-jj-1; + else + phone_reg_coord_back[8*jj+7] = 0x00; + #else + phone_reg_coord_back[8*jj+0] = s8_host_id[ii]; + phone_reg_coord_back[8*jj+1] = touch_id|0x01; + phone_reg_coord_back[8*jj+2] = s_screen_read_bak[8*ii+2]; + phone_reg_coord_back[8*jj+3] = s_screen_read_bak[8*ii+3]; + phone_reg_coord_back[8*jj+4] = s_screen_read_bak[8*ii+4]; + phone_reg_coord_back[8*jj+5] = s_screen_read_bak[8*ii+5]; + phone_reg_coord_back[8*jj+6] = s_screen_read_bak[8*ii+6]; + // phone_reg_coord_back[8*jj+7] = 0x00; + if(send_point>=jj) + phone_reg_coord_back[8*jj+7] = 0x00; + else + phone_reg_coord_back[8*jj+7] = send_point-jj-1; + #endif + + } + else + { + /* xx = ((rxbuffer[6*ii+3]&0x0f) << 8) | (rxbuffer[6*ii+4]); + yy = ((rxbuffer[6*ii+5]&0x0f) << 8) | (rxbuffer[6*ii+6]); + zz = rxbuffer[6*ii+7]; + + xx = xx * INPUT_WIDTH_VALUE / OUTPUT_WIDTH_VALUE; + if(xx > 4095) + xx = 4095; + yy = yy * INPUT_HEIGHT_VALUE / OUTPUT_HEIGHT_VALUE; + if(yy > 4095) + yy = 4095; + */ + + phone_reg_coord_back[8*jj+0] = s8_host_id[ii]; //13 press 33 leave 23 move + phone_reg_coord_back[8*jj+1] = touch_id|0x01; //id + phone_reg_coord_back[8*jj+2] = (uint8_t)(xx& 0xFF); //x Ͱλ + phone_reg_coord_back[8*jj+3] = ((yy & 0x0F) << 4) | ((xx>>8) & 0x0F); //bit0-bit3:xλ;bit4-bit7:yλ; + phone_reg_coord_back[8*jj+4] = (uint8_t)((yy>>4)& 0xFF); //y ߰λ + phone_reg_coord_back[8*jj+5] = 0x00; //zzλ + //touch type0:ָͨ1:2:ף3:;4:;5:;6:ʪ;7:ӽ;8:ҡ + phone_reg_coord_back[8*jj+6] = 0x00; //bit0-bit5:zֻ6λ;bit6-bit7:touch typeĸλ + // phone_reg_coord_back[8*jj+7] = 0x00; + phone_reg_coord_back[8*jj+7] = send_point-jj-1; //bit0-bit5:bufferʣٸ¼;bit6-bit7touch type λ + + } + + #if 0// + s_screen_read_bak[8*ii+0] =phone_reg_coord_back[8*jj+0]; + s_screen_read_bak[8*ii+1] =phone_reg_coord_back[8*jj+1]; + s_screen_read_bak[8*ii+2] =phone_reg_coord_back[8*jj+2]; + s_screen_read_bak[8*ii+3] =phone_reg_coord_back[8*jj+3]; + s_screen_read_bak[8*ii+4] =phone_reg_coord_back[8*jj+4]; + s_screen_read_bak[8*ii+5] =phone_reg_coord_back[8*jj+5]; + s_screen_read_bak[8*ii+6] =phone_reg_coord_back[8*jj+6]; + s_screen_read_bak[8*ii+7] =phone_reg_coord_back[8*jj+7]; + #endif + jj++; + } + + if(jj >= send_point) break; + } + + + touchnum_bak = touchnum; + phone_data_B1[1] =0x86; + Flag_touch_count = send_point; // ¼ + touch_send_flag = 0; + + if(temp16 || send_point) + { + touch_recv_flag = 0; + tp_flag =true; + hal_gpio_set_output_data(g_phone_output_int_pad, IO_LVL_LOW); //TPжϽ,֪ͨAPȡTP + tp_int_high_timer_init(); + } + } + } + return screen_reg_int_data_size + 1; +#endif + +#endif + +} + +/************************************************************************** +* @name : hal_tp_phone_analysis_data +* @brief : phone ݽɿͻ +* @param[in] : +* @return : +* @retval : +*޸TP4ץȡTPݲظ +**************************************************************************/ +void app_tp_phone_analysis_data(uint8_t *rxbuffer, size_t rxbuffer_size, const uint8_t **txbuffer, size_t *txbuffer_size) +{ +#ifdef USE_FOR_SUMSUNG_S10 +static uint8_t phone_A6_flag = 0; +static uint8_t phone_FA_flag = 0; +static uint8_t phone_86_flag = 0; + + if( (rxbuffer_size ==3) &&(rxbuffer[0] ==0xA6)) + { + printf("%d\n",phone_A6_flag); + if (phone_A6_flag == 0) + { + *txbuffer = phone_data_A6_0; + *txbuffer_size = sizeof(phone_data_A6_0); + } + else if (phone_A6_flag == 1) + { + *txbuffer = phone_data_A6_1; + *txbuffer_size = sizeof(phone_data_A6_1); + } + else if (phone_A6_flag == 2) + { + *txbuffer = phone_data_A6_2; + *txbuffer_size = sizeof(phone_data_A6_2); + } + else if (phone_A6_flag == 3) + { + *txbuffer = phone_data_A6_3; + *txbuffer_size = sizeof(phone_data_A6_3); + } + else if (phone_A6_flag == 4) + { + *txbuffer = phone_data_A6_4; + *txbuffer_size = sizeof(phone_data_A6_4); + } + else if (phone_A6_flag == 5) + { + *txbuffer = phone_data_A6_5; + *txbuffer_size = sizeof(phone_data_A6_5); + } + else + { + *txbuffer = phone_data_A6_4; + *txbuffer_size = sizeof(phone_data_A6_4); + } + phone_A6_flag++; + if (phone_A6_flag > 6) + phone_A6_flag = 0; + } + if( (rxbuffer_size == 5) &&(rxbuffer[0] ==0xFA)) + { + if (phone_FA_flag == 0) + { + *txbuffer = phone_data_FA_0; + *txbuffer_size = sizeof(phone_data_FA_0); + } + else if (phone_FA_flag == 1) + { + *txbuffer = phone_data_FA_1; + *txbuffer_size = sizeof(phone_data_FA_1); + } + else if (phone_FA_flag == 2) + { + *txbuffer = phone_data_FA_2; + *txbuffer_size = sizeof(phone_data_FA_2); + } + else + { + *txbuffer = phone_data_FA_2; + *txbuffer_size = sizeof(phone_data_FA_2); + } + + phone_FA_flag++; + if (phone_FA_flag > 6) + phone_FA_flag = 0; + } + + if(rxbuffer_size ==1) + { + switch(rxbuffer[0]) + { + case 0x43: + *txbuffer = phone_data_43; + *txbuffer_size = sizeof(phone_data_43); + break; + case 0xC3: + *txbuffer = phone_data_43; + *txbuffer_size = sizeof(phone_data_43); + break; + case 0x83: + *txbuffer = phone_data_43; + *txbuffer_size = sizeof(phone_data_43); + break; + case 0x87: + *txbuffer = phone_data_43; + *txbuffer_size = sizeof(phone_data_43); + break; + case 0x86: + + touch_recv_flag++; + // if((touch_recv_flag%2) == 0) + { + // printf("%d\n",phone_86_flag); + // if(phone_86_flag<25) touch_recv_flag = 0; + + if (phone_86_flag == 0) + { + *txbuffer = phone_data_86_0; + *txbuffer_size = sizeof(phone_data_86_0); + phone_86_flag++; + } + else if (phone_86_flag == 1) + { + *txbuffer = phone_data_86_0; + *txbuffer_size = sizeof(phone_data_86_0); + phone_86_flag++; + } + else if (phone_86_flag == 2) + { + *txbuffer = phone_data_86_1; + *txbuffer_size = sizeof(phone_data_86_1); + phone_86_flag++; + } + else if (phone_86_flag == 3) + { + *txbuffer = phone_data_86_1; + *txbuffer_size = sizeof(phone_data_86_1); + phone_86_flag++; + } + else if (phone_86_flag == 4) + { + *txbuffer = phone_data_86_2; + *txbuffer_size = sizeof(phone_data_86_2); + phone_86_flag++; + } + else if (phone_86_flag == 5) + { + *txbuffer = phone_data_86_3; + *txbuffer_size = sizeof(phone_data_86_3); + phone_86_flag++; + } + else if (phone_86_flag == 6) + { + *txbuffer = phone_data_86_4; + *txbuffer_size = sizeof(phone_data_86_4); + phone_86_flag++; + } + else if (phone_86_flag == 7) + { + *txbuffer = phone_data_86_5; + *txbuffer_size = sizeof(phone_data_86_5); + phone_86_flag++; + } + else if (phone_86_flag == 8) + { + *txbuffer = phone_data_86_6; + *txbuffer_size = sizeof(phone_data_86_6); + phone_86_flag++; + } + else if (phone_86_flag == 9) + { + *txbuffer = phone_data_86_7; + *txbuffer_size = sizeof(phone_data_86_7); + phone_86_flag++; + } + else if (phone_86_flag == 10) + { + *txbuffer = phone_data_86_8; + *txbuffer_size = sizeof(phone_data_86_8); + phone_86_flag++; + } + else if (phone_86_flag == 11) + { + *txbuffer = phone_data_86_9; + *txbuffer_size = sizeof(phone_data_86_9); + phone_86_flag++; + } + else if (phone_86_flag == 12) + { + *txbuffer = phone_data_86_10; + *txbuffer_size = sizeof(phone_data_86_10); + phone_86_flag++; + } + else if (phone_86_flag == 13) + { + *txbuffer = phone_data_86_11; + *txbuffer_size = sizeof(phone_data_86_11); + phone_86_flag++; + } + else if (phone_86_flag == 14) + { + *txbuffer = phone_data_86_12; + *txbuffer_size = sizeof(phone_data_86_12); + phone_86_flag++; + } + else if (phone_86_flag == 15) + { + *txbuffer = phone_reg_coord_back; + *txbuffer_size = sizeof(phone_reg_coord_back); + phone_86_flag++; + } + else if (phone_86_flag == 16) + { + *txbuffer = phone_data_86_13; + *txbuffer_size = sizeof(phone_data_86_13); + phone_86_flag++; + } + else if (phone_86_flag == 17) + { + *txbuffer = phone_data_86_14; + *txbuffer_size = sizeof(phone_data_86_14); + phone_86_flag++; + } + else if (phone_86_flag == 18) + { + *txbuffer = phone_data_86_15; + *txbuffer_size = sizeof(phone_data_86_15); + phone_86_flag++; + } + else if (phone_86_flag == 19) + { + *txbuffer = phone_data_86_16; + *txbuffer_size = sizeof(phone_data_86_16); + phone_86_flag++; + } + else if (phone_86_flag == 20) + { + *txbuffer = phone_data_86_17; + *txbuffer_size = sizeof(phone_data_86_17); + phone_86_flag++; + } + else if (phone_86_flag == 21) + { + *txbuffer = phone_data_86_18; + *txbuffer_size = sizeof(phone_data_86_18); + phone_86_flag++; + } + else if (phone_86_flag == 22) + { + *txbuffer = phone_data_86_19; + *txbuffer_size = sizeof(phone_data_86_19); + phone_86_flag++; + } + else if (phone_86_flag == 23) + { + *txbuffer = phone_data_86_20; + *txbuffer_size = sizeof(phone_data_86_20); + phone_86_flag++; + } + else if (phone_86_flag == 24) + { + *txbuffer = phone_data_86_21; + *txbuffer_size = sizeof(phone_data_86_21); + phone_86_flag++; + } + else + { + // printf("A\n"); + printf("%d\n",Flag_touch_count); + if(Flag_touch_count > 1) + { + // printf("%d\n",Flag_touch_count); + touch_send_flag++; + if(touch_send_flag == 1) + { + *txbuffer = phone_reg_coord_back; + *txbuffer_size = 8; + // printf("A"); + } + else + { + touch_send_flag = 0; + touch_recv_flag = 0; + Flag_touch_count = 0; + + *txbuffer = &phone_reg_coord_back[8]; + *txbuffer_size = 8*(Flag_touch_count-1); + hal_gpio_set_output_data(g_phone_output_int_pad, IO_LVL_HIGH); + // printf("B\n"); + } + } + else + { + if(Flag_touch_count == 1) // ָ Flag_touch_count = 0 + { + *txbuffer = phone_reg_coord_back; + *txbuffer_size = 8; + } + touch_send_flag = 0; + touch_recv_flag = 0; + Flag_touch_count = 0; + hal_gpio_set_output_data(g_phone_output_int_pad, IO_LVL_HIGH); + // printf("C\n"); + } + } + } + break; + default: + + break; + + } + } + +//////////////////////////////////////////////////////////////////////////////////////////// + + +#endif + +} + +void app_tp_phone_analysis_data_custom(uint8_t *rxbuffer, size_t rxbuffer_size, uint8_t *phonetxbuffer, size_t *txbuffer_size) + +{ +#ifdef USE_FOR_SUMSUNG_S10 +static uint8_t phone_A6_flag = 0; +static uint8_t phone_FA_flag = 0; +static uint16_t phone_86_flag = 0; +static uint8_t phone_poweron_flag = 0; + + uint8_t *txbuffer; + + if( (rxbuffer_size ==3) &&(rxbuffer[0] ==0xA6)) + { + printf("A6 %d\n",phone_A6_flag); + if (phone_A6_flag == 0) + { + txbuffer = (uint8_t*)phone_data_A6_0; + *txbuffer_size = sizeof(phone_data_A6_0); + } + else if (phone_A6_flag == 1) + { + txbuffer = (uint8_t*)phone_data_A6_1; + *txbuffer_size = sizeof(phone_data_A6_1); + } + else if (phone_A6_flag == 2) + { + txbuffer = (uint8_t*)phone_data_A6_4; + *txbuffer_size = sizeof(phone_data_A6_4); + } + else if (phone_A6_flag == 3) + { + txbuffer = (uint8_t*)phone_data_A6_3; + *txbuffer_size = sizeof(phone_data_A6_3); + } + else if (phone_A6_flag == 4) + { + txbuffer = (uint8_t*)phone_data_A6_4; + *txbuffer_size = sizeof(phone_data_A6_4); + } + else if (phone_A6_flag == 5) + { + txbuffer = (uint8_t*)phone_data_A6_5; + *txbuffer_size = sizeof(phone_data_A6_5); + } + else if (phone_A6_flag == 6) + { + txbuffer = (uint8_t*)phone_data_A6_4; + *txbuffer_size = sizeof(phone_data_A6_4); + } + else + { + txbuffer = (uint8_t*)phone_data_A6_6; + *txbuffer_size = sizeof(phone_data_A6_6); + } + phone_A6_flag++; + if (phone_A6_flag > 7) + phone_A6_flag = 0; + } + if( (rxbuffer_size == 5) &&(rxbuffer[0] ==0xFA)) + { + if (phone_FA_flag == 0) + { + txbuffer = (uint8_t*)phone_data_FA_0; + *txbuffer_size = sizeof(phone_data_FA_0); + } + else if (phone_FA_flag == 1) + { + txbuffer = (uint8_t*)phone_data_FA_1; + *txbuffer_size = sizeof(phone_data_FA_1); + } + else if (phone_FA_flag == 2) + { + txbuffer = (uint8_t*)phone_data_FA_2; + *txbuffer_size = sizeof(phone_data_FA_2); + } + else + { + txbuffer = (uint8_t*)phone_data_FA_2; + *txbuffer_size = sizeof(phone_data_FA_2); + } + + phone_FA_flag++; + if (phone_FA_flag > 6) + phone_FA_flag = 0; + } + + if(rxbuffer_size ==1) + { + switch(rxbuffer[0]) + { + case 0x43: + txbuffer = (uint8_t*)phone_data_43; + *txbuffer_size = sizeof(phone_data_43); + break; + case 0xC3: + txbuffer = (uint8_t*)phone_data_43; + *txbuffer_size = sizeof(phone_data_43); + break; + case 0x83: + txbuffer = (uint8_t*)phone_data_43; + *txbuffer_size = sizeof(phone_data_43); + break; + case 0x87: + txbuffer = (uint8_t*)phone_data_43; + *txbuffer_size = sizeof(phone_data_43); + break; + case 0x86: + + if(phone_poweron_flag == 0) // ֵ + { + printf("86 %d\n",phone_86_flag); + if(phone_86_flag < 3200) + { + phone_86_flag++; + } + else + { + phone_poweron_flag = 1; + } + + if (phone_86_flag == 0) + { + txbuffer = (uint8_t*)phone_data_86_0; + *txbuffer_size = sizeof(phone_data_86_0); + } + else if (phone_86_flag == 1) + { + txbuffer = (uint8_t*)phone_data_86_0; + *txbuffer_size = sizeof(phone_data_86_0); + } + else if (phone_86_flag == 2) + { + txbuffer = (uint8_t*)phone_data_86_1; + *txbuffer_size = sizeof(phone_data_86_1); + } + else if (phone_86_flag == 3) + { + txbuffer = (uint8_t*)phone_data_86_1; + *txbuffer_size = sizeof(phone_data_86_1); + } + else if (phone_86_flag == 4) + { + txbuffer = (uint8_t*)phone_data_86_2; + *txbuffer_size = sizeof(phone_data_86_2); + } + else if (phone_86_flag == 5) + { + txbuffer = (uint8_t*)phone_data_86_3; + *txbuffer_size = sizeof(phone_data_86_3); + if(phone_A6_flag == 0) // ʱA6ָȡʱ޴ָȡ + { + phone_poweron_flag = 1; + } + } + else if (phone_86_flag == 6) + { + txbuffer = (uint8_t*)phone_data_86_4; + *txbuffer_size = sizeof(phone_data_86_4); + } + else if (phone_86_flag == 7) + { + txbuffer = (uint8_t*)phone_data_86_5; + *txbuffer_size = sizeof(phone_data_86_5); + } + else if (phone_86_flag == 8) + { + txbuffer = (uint8_t*)phone_data_86_6; + *txbuffer_size = sizeof(phone_data_86_6); + } + else if (phone_86_flag == 9) + { + txbuffer = (uint8_t*)phone_data_86_7; + *txbuffer_size = sizeof(phone_data_86_7); + } + else if (phone_86_flag == 10) + { + txbuffer = (uint8_t*)phone_data_86_8; + *txbuffer_size = sizeof(phone_data_86_8); + } + else if (phone_86_flag == 11) + { + txbuffer = (uint8_t*)phone_data_86_9; + *txbuffer_size = sizeof(phone_data_86_9); + } + else if (phone_86_flag == 12) + { + txbuffer = (uint8_t*)phone_data_86_10; + *txbuffer_size = sizeof(phone_data_86_10); + } + else if (phone_86_flag == 13) + { + txbuffer = (uint8_t*)phone_data_86_11; + *txbuffer_size = sizeof(phone_data_86_11); + } + else if (phone_86_flag == 14) + { + txbuffer = (uint8_t*)phone_data_86_12; + *txbuffer_size = sizeof(phone_data_86_12); + } + else if (phone_86_flag == 15) + { + txbuffer = (uint8_t*)phone_reg_coord_back; + *txbuffer_size = sizeof(phone_reg_coord_back); + } + else if (phone_86_flag == 16) + { + txbuffer = (uint8_t*)phone_data_86_13; + *txbuffer_size = sizeof(phone_data_86_13); + } + else if (phone_86_flag == 17) + { + txbuffer = (uint8_t*)phone_data_86_14; + *txbuffer_size = sizeof(phone_data_86_14); + } + else if (phone_86_flag == 18) + { + txbuffer = (uint8_t*)phone_data_86_15; + *txbuffer_size = sizeof(phone_data_86_15); + } + else if (phone_86_flag == 19) + { + txbuffer = (uint8_t*)phone_data_86_16; + *txbuffer_size = sizeof(phone_data_86_16); + } + else if (phone_86_flag == 20) + { + txbuffer = (uint8_t*)phone_data_86_17; + *txbuffer_size = sizeof(phone_data_86_17); + } + else if (phone_86_flag == 21) + { + txbuffer = (uint8_t*)phone_data_86_18; + *txbuffer_size = sizeof(phone_data_86_18); + } + else if (phone_86_flag == 22) + { + txbuffer = (uint8_t*)phone_data_86_19; + *txbuffer_size = sizeof(phone_data_86_19); + } + else if (phone_86_flag == 23) + { + txbuffer = (uint8_t*)phone_data_86_20; + *txbuffer_size = sizeof(phone_data_86_20); + } + else if (phone_86_flag == 24) + { + txbuffer = (uint8_t*)phone_data_86_21; + *txbuffer_size = sizeof(phone_data_86_21); + } + else if (phone_86_flag == 1800) + { + txbuffer = (uint8_t*)phone_data_86_1800; + *txbuffer_size = sizeof(phone_data_86_1800); + } + else if (phone_86_flag == 3000) + { + txbuffer = (uint8_t*)phone_data_86_1800; + *txbuffer_size = sizeof(phone_data_86_1800); + } + /* else if (phone_86_flag == 4000) + { + txbuffer = (uint8_t*)phone_data_86_4000; + *txbuffer_size = sizeof(phone_data_86_4000); + } + */ + else + { + txbuffer = (uint8_t*)phone_reg_coord_back; + *txbuffer_size = 8; + } + + } + else + { + // printf("A\n"); + // printf("touch %d\n",Flag_touch_count); + touch_recv_flag++; + + if(Flag_touch_count > 1) + { + // printf("%d\n",Flag_touch_count); + touch_send_flag++; + if(touch_send_flag == 1) + { + txbuffer = (uint8_t*)phone_reg_coord_back; + *txbuffer_size = 8; + // printf("A"); + } + else + { + touch_send_flag = 0; + + txbuffer = (uint8_t*)&phone_reg_coord_back[8]; + *txbuffer_size = (8*(Flag_touch_count-1)); + hal_gpio_set_output_data(g_phone_output_int_pad, IO_LVL_HIGH); + + Flag_touch_count = 0; + // printf("B\n"); + } + } + else + { + // if(Flag_touch_count == 1) // ָ Flag_touch_count = 0 + { + txbuffer = (uint8_t*)phone_reg_coord_back; + *txbuffer_size = 8; + } + + touch_send_flag = 0; + Flag_touch_count = 0; + hal_gpio_set_output_data(g_phone_output_int_pad, IO_LVL_HIGH); + // printf("C\n"); + } + } + break; + default: + + break; + + } + } + //printf("1111 %p \n",*phonetxbuffer); + s_slave_txbuffer = txbuffer; + //printf("222 %p \n",*phonetxbuffer); +//////////////////////////////////////////////////////////////////////////////////////////// + + +#endif + +} + + + +#endif + diff --git a/src/app/ap_demo/app_tp_for_custom_mi8se.h b/src/app/ap_demo/app_tp_for_custom_mi8se.h new file mode 100644 index 0000000..37d62dd --- /dev/null +++ b/src/app/ap_demo/app_tp_for_custom_mi8se.h @@ -0,0 +1,128 @@ +/******************************************************************************* +* +* +* File: app_tp_for_custom.h +* Description tp Э鴦ļضõĺ +* Version V0.1 +* Date 2021-10-14 +* Author zhanghz +*******************************************************************************/ +#ifndef __APP_TP_FOR_CUSTOM_S8_H__ +#define __APP_TP_FOR_CUSTOM_S8_H__ + +#include "string.h" +#include "tau_device_datatype.h" +#include "tau_common.h" +#include "app_tp_transfer.h" +#include "hal_gpio.h" + +#define AP_TP_TRANSFER 1 + +#define PHONE_SLAVE_TRANSFER_I2C 1 //1:ʾֻоƬ֮䣬touch ݲ I2C ͨţ +#define PHONE_SLAVE_TRANSFER_SPI 0 //1:ʾֻоƬ֮䣬touch ݲ SPI ͨţ +#define SCREEN_MASTER_TRANSFER_I2C 1 //1:ʾĻоƬ֮䣬touch ݲ I2C ͨţ +#define SCREEN_MASTER_TRANSFER_SPI 0 //1:ʾĻоƬ֮䣬touch ݲ SPI ͨţ + + +#define CHIP_I2C_ADDRESS 0x49 //оƬ I2C ӻַ.I2Cַ +#define SCREEN_I2C_ADDRESS 0x38 //Ļ I2C ӻַ + + +#define CHIP_I2C_ADDR_BITS I2C_ADDR_BITS_7 //Ļ I2C ַλ 7/10ĬΪ7 +#define SCREEN_I2C_ADDR_BITS I2C_ADDR_BITS_7 //Ļ I2C ַλ 7/10ĬΪ7 +#define I2C_MASTER_SPEED 400000 // I2C ͨ + +#define SPI_MASTER_SPEED 10000000 // SPI ͨ + +#define BUFFER_SIZE_MAX 200 // bufrer ֽ + +#define INPUT_WIDTH_VALUE 1080 //ԭװ X ֵֵ +#define INPUT_HEIGHT_VALUE 2240 //ԭװ Y ֵֵ + +#define OUTPUT_WIDTH_VALUE 720 //ά X ֵֵ +#define OUTPUT_HEIGHT_VALUE 1600 //ά Y ֵֵ + + +#define SCREEN_TRANSFER_WRITE false //յscreen ioжϣ֮ö +#define SCREEN_TRANSFER_READ true //յscreen ioжϣ֮Ҫ + +typedef enum +{ + I2C_ADDR_BITS_7 = 7, + I2C_ADDR_BITS_10 = 10 +} en_I2C_ADDR_BITS_mdoe; + +typedef struct +{ + uint8_t *buffer; //յscreen ioжϺͨŵķbufferָ + size_t txbuffer_size; // buffer ݳȣҪʱĿǰֻ֧4ֽ + size_t rxbuffer_size; //֮Ҫصݳ + bool read_flag; //true յscreen ioжϣ֮Ҫ +} st_screen_data; + +typedef struct +{ + const uint8_t *buffer; //ͨŵķbufferָ + size_t txbuffer_size; // buffer ݳȣҪʱĿǰֻ֧4ֽ + size_t rxbuffer_size; //֮Ҫصݳ + bool read_flag; //true յscreen ioжϣ֮Ҫ +} st_screen_const_data; + +typedef struct +{ + uint8_t reg_size; //bufferĸ + size_t write_back_size; //Ҫ͵ݳ + const uint8_t *reg_data; //buffer + const uint8_t *write_back; //bufer +} st_reg_const_data; + +typedef struct +{ + uint8_t reg_size; //bufferĸ + size_t write_back_size; //Ҫ͵ݳ + uint8_t *reg_data; //buffer + uint8_t *write_back; //bufer +} st_reg_data; + +extern io_pad_e g_screen_input_rst_pad; +extern io_pad_e g_screen_input_int_pad; +extern io_pad_e g_phone_input_rst_pad; +extern io_pad_e g_phone_output_int_pad; + +extern const uint8_t screen_reg_int_data_size; +extern const uint8_t screen_reg_start_data_size; +extern st_screen_data screen_reg_int_data[]; +extern st_screen_const_data screen_reg_start_data[]; +extern st_reg_const_data phone_reg_const_data[]; + +/************************************************************************** +* @name : app_tp_screen_analysis_const +* @brief : screen start ׶ݽɿͻ +* @param[in] : +* @return : +* @retval : +**************************************************************************/ +uint8_t app_tp_screen_analysis_const(uint8_t transfer_now, uint8_t *rxbuffer, size_t data_size); + +/************************************************************************** +* @name : app_tp_screen_analysis_int +* @brief : screen IOжϺ ݽɿͻ +* @param[in] : +* @return : +* @retval : +**************************************************************************/ +uint8_t app_tp_screen_analysis_int(uint8_t transfer_now, uint8_t *rxbuffer, size_t data_size); + +/************************************************************************** +* @name : app_tp_phone_analysis_data +* @brief : phone ݽɿͻ +* @param[in] : +* @return : +* @retval : +**************************************************************************/ +void app_tp_phone_analysis_data(uint8_t *rxbuffer, size_t rxbuffer_size, const uint8_t **txbuffer, size_t *txbuffer_size); + +void app_tp_phone_analysis_data_custom(uint8_t *rxbuffer, size_t rxbuffer_size, uint8_t *phonetxbuffer, size_t *txbuffer_size); + +#endif + diff --git a/src/app/ap_demo/app_tp_phone_transfer_data_mi8se.h b/src/app/ap_demo/app_tp_phone_transfer_data_mi8se.h new file mode 100644 index 0000000..4be2304 --- /dev/null +++ b/src/app/ap_demo/app_tp_phone_transfer_data_mi8se.h @@ -0,0 +1,225 @@ +/******************************************************************************* +* +* +* File: app_tp_transfer_data.h +* Description ôӻҪ𸴵ĽֵӦĴֵ +* Version V0.1 +* Date 2021-10-14 +* Author zhanghz +*******************************************************************************/ +#ifndef __APP_TP_PHONE_TRANSFER_DATA_S8_H__ +#define __APP_TP_PHONE_TRANSFER_DATA_S8_H__ + +#include "tau_common.h" + +/***************send to phone***************/ +/* +const uint8_t phone_b6_00_28_data[] = {0xB6, 0x00, 0x28, 0x80}; +const uint8_t phone_b6_00_28_back[] = {0x10, 0x00, 0x00, 0x00, 0x00, 0x26, 0x0D, 0x01}; + +const uint8_t phone_b6_00_08_data[] = {0xB6, 0x00, 0x08}; +const uint8_t phone_b6_00_08_back[] = {0x00, 0x26, 0x23}; + +const uint8_t phone_b6_00_04_data[] = {0xB6, 0x00, 0x04}; +const uint8_t phone_b6_00_04_back[] = {0x00, 0x36, 0x70, 0x01, 0x00, 0x26, 0x23}; + +const uint8_t phone_b8_00_08_data[] = {0xB8, 0x00, 0x08}; +const uint8_t phone_b8_00_08_back[] = {0x13, 0x00, 0x08, 0x05, 0x07, 0x06, 0x00, 0x00}; //// becareful һ + +const uint8_t phone_ac_data[] = {0xAC}; +const uint8_t phone_ac_back[] = {0x16, 0x06, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00}; + +const uint8_t phone_a7_data[] = {0xA7}; +const uint8_t phone_a7_back[] = {0x0F, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + +const uint8_t phone_84_data[] = {0x84}; +const uint8_t phone_84_back[] = {0x00, 0x00, 0x00, 0x00}; + +const uint8_t phone_aa_00_data[] = {0xaa, 0x00}; +const uint8_t phone_aa_00_back[] = {0x19, 0x01, 0x01, 0x23, 0x26, 0x26, 0x0D, 0x00}; + +const uint8_t phone_aa_01_data[] = {0xaa, 0x01}; +const uint8_t phone_aa_01_back[] = {0x1A, 0x9D, 0x9B, 0x00, 0x00, 0x00, 0x00, 0x00}; + +const uint8_t phone_d0_00_5a_data[] = {0xD0, 0x00, 0x5A}; +const uint8_t phone_d0_00_5a_back[] = {0x00, 0x20, 0x00, 0x10}; + +const uint8_t phone_d0_00_5c_data[] = {0xD0, 0x00, 0x5C}; +const uint8_t phone_d0_00_5c_back[] = {0x00, 0x10, 0x00, 0x3D}; + +const uint8_t phone_d0_00_64_data[] = {0xD0, 0x00, 0x64}; +const uint8_t phone_d0_00_64_back[] = {0x00, 0x01, 0x00}; + +const uint8_t phone_d0_00_88_data[] = {0xD0, 0x00, 0x88}; +const uint8_t phone_d0_00_88_back[] = {0x00, 0x8F, 0x0B, 0x9F, 0x05}; + +const uint8_t phone_d0_00_7a_data[] = {0xD0, 0x00, 0x7A}; +const uint8_t phone_d0_00_7a_back[] = {0x06, 0x04, 0x76, 0x00, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x30, 0x00, 0x00, 0x20, 0x00}; + +const uint8_t phone_d0_76_04_data[] = {0xD0, 0x76, 0x04}; +const uint8_t phone_d0_76_04_back[] = {0x8F, 0x47, 0x39, 0x35, 0x35}; + +const uint8_t phone_d0_00_50_data[] = {0xD0, 0x00, 0x50}; +const uint8_t phone_d0_00_50_back[] = {0x06, 0x5C, 0x1F, 0x01, 0x06, 0x00, 0x00, 0x09}; //// becareful + +const uint8_t phone_d0_1f_6e_data[] = {0xD0, 0x1F, 0x6E}; +const uint8_t phone_d0_1f_6e_back[] = {0x00, 0x01, 0x9D, 0x90, 0x00}; + +const uint8_t phone_d0_1f_b3_data[] = {0xD0, 0x1F, 0xB3}; +const uint8_t phone_d0_1f_b3_back[] = {0x00, 0x01, 0x01, 0x01, 0x00}; + +const uint8_t phone_d0_1f_6c_data[] = {0xD0, 0x1F, 0x6C}; +const uint8_t phone_d0_1f_6c_back[] = {0x00, 0x09, 0x00}; + +const uint8_t phone_d0_1f_b2_data[] = {0xD0, 0x1F, 0xB2}; +const uint8_t phone_d0_1f_b2_back[] = {0x00, 0x02}; + +const uint8_t phone_d0_1f_72_data[] = {0xD0, 0x1F, 0x72}; +const uint8_t phone_d0_1f_72_back[] = {0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x14, 0x02, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; + +const uint8_t phone_d0_00_06_data[] = {0xD0, 0x00, 0x06}; +const uint8_t phone_d0_00_06_back[] = {0x00, 0x6C, 0x23, 0x00}; + +const uint8_t phone_d0_23_ac_data[] = {0xD0, 0x23, 0xAC}; +const uint8_t phone_d0_23_ac_back[] = {0x00, 0x42, 0x0A, 0x71, 0x0A, 0x28, 0x0A, 0xDE, 0x09, 0x05, 0x0A, 0xDE, 0x09, 0xCA, 0x09, 0x11, 0x0A, 0x50, 0x0A, 0xF5, 0x09, 0xF1, 0x09, 0x40, 0x0A, 0xF5, 0x09, 0x8E, 0x0A, 0x04, 0x0A, 0x54, 0x0A, 0x14, 0x0A, 0xBE, 0x09, 0x4E, 0x0A, 0x35, 0x0A, 0xB0, 0x0A, 0x6F, 0x0A, 0x00, 0x0B, 0xA6, 0x0A, 0x62, 0x0A, 0x62, 0x0A, 0x5E, 0x0A, 0xEA, 0x0A, 0xB5, 0x0A, 0x7B, 0x0B, 0x97, 0x0B, 0x82, 0x0B, 0xE1, 0x09, 0x5D, 0x0A, 0xF6, 0x09, 0xF3, 0x09, 0x10, 0x0A, 0x07, 0x0A, 0xBA, 0x09, 0x27, 0x0A, 0xC8, 0x09, 0x2C, 0x0A, 0xF0, 0x09, 0xAF, 0x09, 0x02, 0x0A, 0xC9, 0x09, 0xF7, 0x09, 0x7E, 0x0A, 0x94, 0x0A, 0xC7, 0x0A, 0x57, 0x0B, 0xCF, 0x0A, 0x4F, 0x0B, 0xF1, 0x0A, 0x5B, 0x0B, 0x07, 0x0B, 0x17, 0x0B, 0x9C, 0x0A, 0x57, 0x0A, 0xE7, 0x0A, 0xBE, 0x0A, 0x03, 0x0B, 0x69, 0x0B, 0x82, 0x0B}; + +const uint8_t phone_d0_24_2c_data[] = {0xD0, 0x24, 0x2C}; +const uint8_t phone_d0_24_2c_back[] = {0xEF, 0xEF, 0x09, 0xCE, 0x09, 0xD6, 0x09, 0xD4, 0x09, 0xEF, 0x09, 0xDE, 0x09, 0xD6, 0x09, 0x91, 0x09, 0x03, 0x0A, 0x88, 0x09, 0x16, 0x0A, 0xC9, 0x09, 0x1F, 0x0A, 0xD7, 0x09, 0xFB, 0x09, 0xBD, 0x09, 0x14, 0x0A, 0x38, 0x0A, 0xE2, 0x09, 0x22, 0x0A, 0x86, 0x0A, 0x2E, 0x0A, 0x64, 0x0A, 0xDF, 0x09, 0x0E, 0x0A, 0x53, 0x0A, 0x24, 0x0A, 0xBE, 0x0A, 0x94, 0x0A, 0xD7, 0x0A, 0x64, 0x0B, 0xD7, 0x0A, 0x6F, 0x0A, 0x3B, 0x0A, 0x44, 0x0A, 0x7D, 0x09, 0x9C, 0x09, 0x91, 0x09, 0x98, 0x09, 0x0A, 0x0A, 0x14, 0x0A, 0x25, 0x0A, 0xF5, 0x09, 0x7C, 0x09, 0xBC, 0x09, 0x76, 0x09, 0xA1, 0x09, 0x06, 0x0A, 0x7D, 0x09, 0xEA, 0x09, 0x9B, 0x09, 0xEA, 0x09, 0x3B, 0x0A, 0xE9, 0x09, 0x46, 0x0A, 0xD9, 0x09, 0x1D, 0x0A, 0x71, 0x0A, 0x3C, 0x0A, 0x09, 0x0A, 0xA3, 0x0A, 0xAC, 0x0A, 0xAD, 0x0B, 0x06, 0x0B}; + +const uint8_t phone_d0_24_ac_data[] = {0xD0, 0x24, 0xAC}; +const uint8_t phone_d0_24_ac_back[] = {0x28, 0x28, 0x0A, 0xE8, 0x09, 0xF1, 0x09, 0xE9, 0x09, 0x03, 0x0A, 0xEF, 0x09, 0xD5, 0x09, 0xC2, 0x09, 0xA4, 0x09, 0xF2, 0x09, 0x11, 0x0A, 0xF3, 0x09, 0x3F, 0x0A, 0xF2, 0x09, 0xF4, 0x09, 0x47, 0x0A, 0xA5, 0x09, 0x3A, 0x0A, 0xC3, 0x09, 0x04, 0x0A, 0x95, 0x09, 0x0E, 0x0A, 0x9B, 0x09, 0xED, 0x09, 0x2C, 0x0A, 0xDB, 0x09, 0x5A, 0x0A, 0x11, 0x0A, 0xAA, 0x0A, 0xA4, 0x0A, 0xA8, 0x0B, 0x65, 0x0B, 0xC6, 0x09, 0x99, 0x09, 0x9F, 0x09, 0x93, 0x09, 0xBC, 0x09, 0xB0, 0x09, 0x8C, 0x09, 0x62, 0x09, 0x70, 0x09, 0x95, 0x09, 0x12, 0x0A, 0xB7, 0x09, 0xED, 0x09, 0xEF, 0x09, 0xA9, 0x09, 0xE9, 0x09, 0x05, 0x0A, 0x00, 0x0A, 0x55, 0x0A, 0x77, 0x09, 0xD5, 0x09, 0x4C, 0x0A, 0xFC, 0x09, 0x3E, 0x0A, 0x94, 0x0A, 0xF6, 0x09, 0xA2, 0x0A, 0x71, 0x0A, 0xD5, 0x0A, 0xC0, 0x0A, 0xE4, 0x0A, 0x49, 0x0B}; + +const uint8_t phone_d0_25_2c_data[] = {0xD0, 0x25, 0x2C}; +const uint8_t phone_d0_25_2c_back[] = {0x21, 0x21, 0x0A, 0xE4, 0x09, 0xE9, 0x09, 0xE7, 0x09, 0x3F, 0x09, 0x2D, 0x09, 0xD6, 0x09, 0x91, 0x09, 0xA7, 0x09, 0xA1, 0x09, 0xB5, 0x09, 0xDC, 0x09, 0x6A, 0x09, 0xB1, 0x09, 0x34, 0x09, 0x79, 0x09, 0x0E, 0x0A, 0x11, 0x0A, 0x25, 0x0A, 0xD1, 0x09, 0xFE, 0x09, 0x9C, 0x09, 0xFE, 0x09, 0xED, 0x09, 0x05, 0x0A, 0x30, 0x0A, 0x1F, 0x0A, 0x9C, 0x0A, 0x15, 0x0A, 0xEC, 0x0A, 0xCE, 0x0A, 0x29, 0x0B, 0xCC, 0x09, 0x88, 0x09, 0x91, 0x09, 0x92, 0x09, 0xAC, 0x09, 0x9E, 0x09, 0x8F, 0x09, 0x3D, 0x09, 0x53, 0x09, 0x80, 0x09, 0xD6, 0x09, 0x3D, 0x09, 0xAC, 0x09, 0x9E, 0x09, 0x9F, 0x09, 0xE9, 0x09, 0xAA, 0x09, 0x0B, 0x0A, 0xE4, 0x09, 0x63, 0x0A, 0x94, 0x0A, 0x68, 0x0A, 0xC9, 0x09, 0x12, 0x0A, 0x0A, 0x0A, 0x98, 0x0A, 0x7F, 0x0A, 0xC5, 0x0A, 0x62, 0x0A, 0xB7, 0x0A, 0x4A, 0x0B, 0x52, 0x0B}; + +const uint8_t phone_d0_25_ac_data[] = {0xD0, 0x25, 0xAC}; +const uint8_t phone_d0_25_ac_back[] = {0xCF, 0xCF, 0x09, 0xCB, 0x09, 0xD5, 0x09, 0xDD, 0x09, 0x3F, 0x09, 0x35, 0x09, 0xEE, 0x09, 0x8E, 0x09, 0xAB, 0x09, 0xEF, 0x09, 0xC0, 0x09, 0x9B, 0x09, 0xE3, 0x09, 0xCC, 0x09, 0xBB, 0x09, 0x64, 0x09, 0xA6, 0x09, 0x0C, 0x0A, 0xB2, 0x09, 0x10, 0x0A, 0xE3, 0x09, 0x71, 0x0A, 0xD6, 0x0A, 0x1F, 0x0A, 0x02, 0x0A, 0x63, 0x0B, 0x7C, 0x0A, 0xE9, 0x09, 0x6F, 0x0A, 0xBF, 0x0A, 0x1A, 0x0B, 0x75, 0x0B, 0x6B, 0x09, 0xEA, 0x09, 0x76, 0x09, 0x91, 0x09, 0x9F, 0x09, 0x9B, 0x09, 0xCE, 0x09, 0xF5, 0x09, 0x4E, 0x09, 0x94, 0x09, 0xE7, 0x09, 0x52, 0x09, 0x94, 0x09, 0x90, 0x09, 0x86, 0x09, 0xBF, 0x09, 0x07, 0x0A, 0x99, 0x09, 0x06, 0x0A, 0x98, 0x09, 0xDD, 0x09, 0x2F, 0x0A, 0x47, 0x0B, 0x17, 0x0B, 0x24, 0x0A, 0xD3, 0x09, 0x96, 0x0A, 0x47, 0x0A, 0x8A, 0x0A, 0xAC, 0x0A, 0x95, 0x0B, 0x2B, 0x0B}; + +const uint8_t phone_d0_26_2c_data[] = {0xD0, 0x26, 0x2C}; +const uint8_t phone_d0_26_2c_back[] = {0xBC, 0xBC, 0x09, 0x74, 0x09, 0x85, 0x09, 0x92, 0x09, 0xB0, 0x09, 0xAE, 0x09, 0x4B, 0x09, 0x8E, 0x09, 0xA3, 0x09, 0x89, 0x09, 0x59, 0x09, 0xB4, 0x09, 0x5D, 0x09, 0x8A, 0x09, 0xCD, 0x09, 0x05, 0x0A, 0x0E, 0x0A, 0xA2, 0x09, 0x31, 0x0A, 0x90, 0x09, 0xD4, 0x09, 0xAE, 0x09, 0x4D, 0x0A, 0x4E, 0x0B, 0x74, 0x0A, 0xA6, 0x0A, 0x99, 0x0A, 0x46, 0x0A, 0x47, 0x0B, 0x99, 0x0A, 0x2D, 0x0B, 0x55, 0x0B, 0x50, 0x09, 0xCE, 0x09, 0x20, 0x09, 0x2D, 0x09, 0x56, 0x09, 0x4D, 0x09, 0x6D, 0x09, 0xB6, 0x09, 0x47, 0x09, 0xAC, 0x09, 0xCC, 0x09, 0x92, 0x09, 0xEB, 0x09, 0x82, 0x09, 0x9C, 0x09, 0xA2, 0x09, 0xCE, 0x09, 0x28, 0x0A, 0xCB, 0x09, 0xD1, 0x09, 0x11, 0x0A, 0x92, 0x0A, 0x2F, 0x0B, 0xF0, 0x09, 0x55, 0x0B, 0x25, 0x0A, 0x93, 0x0A, 0x50, 0x0A, 0xE7, 0x0A, 0xE5, 0x0A, 0x4B, 0x0B, 0xE9, 0x0A}; + +const uint8_t phone_d0_26_ac_data[] = {0xD0, 0x26, 0xAC}; +const uint8_t phone_d0_26_ac_back[] = {0xC5, 0xC5, 0x09, 0x88, 0x09, 0xA3, 0x09, 0xB4, 0x09, 0xDE, 0x09, 0xD7, 0x09, 0x9A, 0x09, 0x74, 0x09, 0x9E, 0x09, 0x65, 0x09, 0x7F, 0x09, 0xCF, 0x09, 0x64, 0x09, 0xB6, 0x09, 0x4E, 0x09, 0x93, 0x09, 0x45, 0x0A, 0x58, 0x0B, 0xFE, 0x0A, 0x3B, 0x0B, 0xA7, 0x0A, 0xA9, 0x0B, 0x36, 0x0B, 0xD4, 0x0A, 0xA2, 0x0A, 0x89, 0x0A, 0x2E, 0x0A, 0xA5, 0x0A, 0x65, 0x0A, 0xFB, 0x0A, 0xB4, 0x0A, 0xD2, 0x0A, 0x8C, 0x09, 0x4C, 0x09, 0x6D, 0x09, 0x83, 0x09, 0xB3, 0x09, 0xAB, 0x09, 0x58, 0x09, 0x5C, 0x09, 0x78, 0x09, 0xC1, 0x09, 0x5F, 0x09, 0xB0, 0x09, 0x46, 0x09, 0xA8, 0x09, 0xFC, 0x09, 0x93, 0x09, 0xB1, 0x0A, 0x72, 0x0A, 0x79, 0x0A, 0x5D, 0x0A, 0x2F, 0x0B, 0x82, 0x0B, 0x22, 0x0B, 0xD6, 0x0A, 0xB8, 0x0A, 0xE3, 0x0A, 0xA2, 0x0A, 0xD9, 0x0A, 0xAC, 0x0A, 0x32, 0x0B, 0xF8, 0x0A, 0xE7, 0x0A}; + +const uint8_t phone_d0_27_2c_data[] = {0xD0, 0x27, 0x2C}; +const uint8_t phone_d0_27_2c_back[] = {0x20, 0x20, 0x09, 0xC7, 0x09, 0x2E, 0x09, 0x4C, 0x09, 0x7C, 0x09, 0x6F, 0x09, 0xD7, 0x09, 0xEA, 0x09, 0x42, 0x09, 0x92, 0x09, 0xBD, 0x09, 0x8B, 0x09, 0xE8, 0x09, 0x6F, 0x09, 0xD7, 0x09, 0x05, 0x0A, 0x37, 0x0A, 0x78, 0x0A, 0x60, 0x0A, 0xA9, 0x0A, 0x2C, 0x0B, 0x27, 0x0B, 0xDF, 0x0A, 0x2C, 0x0B, 0x20, 0x0B, 0x8E, 0x0B, 0x4A, 0x0B, 0x40, 0x0B, 0x0D, 0x0B, 0xEB, 0x0A, 0x72, 0x0B, 0x57, 0x0B, 0x37, 0x09, 0x29, 0x09, 0x6C, 0x09, 0x8E, 0x09, 0xBF, 0x09, 0xBD, 0x09, 0x58, 0x09, 0x77, 0x09, 0x90, 0x09, 0xDC, 0x09, 0x48, 0x09, 0x8F, 0x09, 0xEA, 0x09, 0xB3, 0x09, 0x27, 0x0A, 0x97, 0x09, 0x0E, 0x0A, 0x25, 0x0A, 0x6E, 0x0A, 0xB3, 0x0A, 0xCA, 0x0A, 0x88, 0x0A, 0x8C, 0x0A, 0xB8, 0x0A, 0xCD, 0x0A, 0xDF, 0x0A, 0x2A, 0x0B, 0xE6, 0x0A, 0x63, 0x0B, 0x06, 0x0B, 0x83, 0x0B, 0xD5, 0x0A}; +*/ + +/*******************************************/ +#ifdef USE_FOR_SUMSUNG_S10 + +const uint8_t phone_data_86_0[]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}; +const uint8_t phone_data_86_1[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; +const uint8_t phone_data_86_2[]={0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; +const uint8_t phone_data_86_3[]={0x43,0x01,0xA4,0x06,0x70,0x00,0x00,0x00}; +const uint8_t phone_data_86_4[]={0x32,0x1E,0x01,0x05,0x01,0x04,0x00,0x0F}; +const uint8_t phone_data_86_5[]={0x96,0x96,0x96,0x96,0x04,0xC0,0x04,0xFF}; +const uint8_t phone_data_86_6[]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x04,0xFF}; +const uint8_t phone_data_86_7[]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x04,0x00}; +const uint8_t phone_data_86_8[]={0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00}; +const uint8_t phone_data_86_9[]={0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x03}; +const uint8_t phone_data_86_10[]={0x00,0x00,0x00,0x00,0x00,0x00,0x04,0xA5}; +const uint8_t phone_data_86_11[]={0x01,0x00,0x04,0x43,0x01,0xA4,0x06,0x70}; +const uint8_t phone_data_86_12[]={0x00,0x00,0x04,0xA5,0x70,0x02,0x00,0x00}; +const uint8_t phone_data_86_13[]={0x00,0x08,0x4F,0x70,0xCB,0x48,0x38,0x32}; +const uint8_t phone_data_86_14[]={0x45,0x32,0x52,0x00,0x04,0xFF,0xFF,0xFF}; +const uint8_t phone_data_86_15[]={0xFF,0xFF,0xFF,0xFF,0x04,0xFF,0xFF,0xFF}; +const uint8_t phone_data_86_16[]={0xFF,0xFF,0xFF,0xFF,0x04,0x00,0x00,0x00}; +const uint8_t phone_data_86_17[]={0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00}; +const uint8_t phone_data_86_18[]={0x00,0x00,0x00,0x00,0x04,0x03,0x00,0x00}; +const uint8_t phone_data_86_19[]={0x00,0x00,0x00,0x00,0x04,0x43,0x05,0x01}; +const uint8_t phone_data_86_20[]={0x00,0x00,0x00,0x00,0x04,0x43,0x01,0xA0}; +const uint8_t phone_data_86_21[]={0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; + +const uint8_t phone_data_86_1800[]={0x43,0x01,0xA4,0x06,0x70,0x00,0x00,0x00}; +const uint8_t phone_data_86_4000[]={0x03,0x00,0x39,0x36,0x00,0x00,0x00,0x00}; + +const uint8_t phone_data_A6_0[]={ + 0xA5,0x01,0x01,0x00,0x00,0x00,0x00,0x02, + 0x03,0x00,0x39,0x36,0x00,0x00,0x00,0x00, + 0x54,0x00,0x39,0x19,0x30,0x00,0x00,0x00, + 0xFF,0xFF,0x00,0x00,0x09,0x09,0x09,0x00, + 0x39,0x37,0x00,0x4D,0x50,0x4B,0x37,0x58, + 0x0B,0x00,0x00,0x00,0x01,0x14,0x00,0x00, + 0x18,0x71,0x00,0x00,0x00,0x00,0x00,0x00, + 0x50,0x35,0x4F,0x54,0x3B,0x38,0x33,0x29, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x61,0x04,0x1B,0x02,0x07,0x0F,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x74,0x29,0x00,0x00,0x00,0x00,0x00,0x00, + 0x3E,0x38,0x7F,0x1F,0x1D,0x22,0x2C,0x29, + 0x4C,0x37,0x41,0x0D,0x7C,0x0D,0x4A,0x2C, + 0x61,0x37,0x56,0x0D,0x11,0x0D,0x5F,0x2C, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 + +}; + +const uint8_t phone_data_A6_1[]={0xa5,0x01,0x01,0x00}; +const uint8_t phone_data_A6_2[]={ + 0xA5,0x70,0x02,0x00,0x00,0x01,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x08,0x4F,0x70,0xCB,0x48,0x1C,0x19,0x02, + 0x22,0x19,0x29,0x00 +}; +const uint8_t phone_data_A6_3[]={0x00,0x00,0x00,0x00}; +const uint8_t phone_data_A6_4[]={ + 0xA5,0x70,0x02,0x00,0x00,0x01,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x08,0x4F,0x70,0xCB,0x48,0x38,0x32,0x05, + 0x45,0x32,0x52,0x00 +}; +const uint8_t phone_data_A6_5[]={0xFF,0xFF,0xFF,0xFF}; +const uint8_t phone_data_A6_6[]={ + 0x00,0x39,0x19,0x30,0x00,0x00,0x00,0xFF, + 0xFF,0x00,0x00,0x09,0x09,0x09,0x00,0x39, + 0x37,0x00,0x4D,0x50,0x4B,0x37,0x58,0x0B, + 0x00,0x00,0x00,0x01,0x29,0x00,0x00,0x30, + 0xE2,0x00,0x00,0x00,0x00,0x00,0x00,0xA1, + 0x6B,0x9F,0xA9,0x77,0x70,0x66,0x52,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC3, + 0x08,0x37,0x04,0x0F,0x1F,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE8, + 0x52,0x00,0x00,0x00,0x00,0x00,0x00,0x7C, + 0x71,0xFE,0x3E,0x3A,0x45,0x58,0x53,0x98, + 0x6E,0x82,0x1A,0xF8,0x1A,0x94,0x59,0xC2, + 0x6E,0xAC,0x1A,0x22,0x1B,0xBE,0x59,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04, + 0xA5,0x01,0x01,0x00,0x04,0x43,0x01,0xA4, + 0x06,0x70,0x00,0x00,0x00,0x04,0xA5,0x70 +}; + + +const uint8_t phone_data_FA_0[]={0x00}; +const uint8_t phone_data_FA_1[]={0xA5,0x01}; +const uint8_t phone_data_FA_2[]={0x00,0x04}; + +const uint8_t phone_data_43[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; + + + +uint8_t phone_data_B1[]={0x00,0x082}; + +#endif + +#endif + diff --git a/src/app/ap_demo/app_tp_screen_transfer_data_mi8se.h b/src/app/ap_demo/app_tp_screen_transfer_data_mi8se.h new file mode 100644 index 0000000..c511a3e --- /dev/null +++ b/src/app/ap_demo/app_tp_screen_transfer_data_mi8se.h @@ -0,0 +1,23 @@ +/******************************************************************************* +* +* +* File: hal_tp_screen_transfer_data.h +* Description start/sleep/awake ģʽҪ͵ֵ +* Version V0.1 +* Date 2021-10-14 +* Author zhanghz +*******************************************************************************/ +#ifndef __HAL_TP_SCREEN_TRANSFER_DATA_S8_H__ +#define __HAL_TP_SCREEN_TRANSFER_DATA_S8_H__ + +#include "tau_common.h" + +/***************send to screen***************/ +const uint8_t screen_87_data[] = {0x87}; +const uint8_t screen_a0_00_ff_data[] = {0xa0, 0x00, 0xff}; +const uint8_t screen_a4_06_c1_data[] = {0xa4, 0x06, 0xc1}; + +/*******************************************/ + +#endif + diff --git a/src/app/ap_demo/app_tp_transfer.c b/src/app/ap_demo/app_tp_transfer.c new file mode 100644 index 0000000..17d3d3d --- /dev/null +++ b/src/app/ap_demo/app_tp_transfer.c @@ -0,0 +1,830 @@ +/******************************************************************************* +* +* +* File: app_tp_transfer.c +* Description touch I2C/SPI ʼԼͨ +* Version V0.1 +* Date 2021-10-14 +* Author zhanghz +*******************************************************************************/ +#include "test_cfg_global.h" +#include "app_tp_transfer.h" +#include "hal_i2c_master.h" +#include "hal_i2c_slave.h" +#include "hal_spi_master.h" +#include "hal_spi_slave.h" +#include "tau_log.h" +#include "tau_delay.h" + +#if 1//def AP_TP_TRANSFER +uint8_t read_point; //ǰҪıһ8BYTE +uint8_t s_screen_number[2]; +uint8_t s_screen_temp[2]; +uint8_t s_screen_read_bak[80]; +static uint8_t s_screen_read_buffer[BUFFER_SIZE_MAX]; +static uint8_t s_phone_read_buffer[BUFFER_SIZE_MAX]; + +const uint8_t *s_slave_txbuffer = NULL; +static size_t s_slave_txbuffer_size = 0; + +static bool s_spim_write = false; //¼SPIǷ÷ͣǵĻҪRXFIFO +static bool s_screen_int_flag = false; //¼ǷյĻıж +static bool s_phone_reset_flag = false; //¼ǷյֻĿλź +static bool s_screen_int_transfer_status = false; //¼ǷѾʼͨ +bool s_screen_init_complate = false; //ĻTPʼɱ־ +static uint8_t s_screen_const_transfer_count = 0xff; //¼ǰͨŵһ,ʼֵ screen_reg_start_data_size + +#ifdef USE_FOR_SUMSUNG_S10 +uint16_t u16TouchID; +#endif +static void app_tp_transfer_phone(size_t recieve_num); +//static void app_tp_reset_callback(void *data); +#if PHONE_SLAVE_TRANSFER_I2C //warning + static void app_tp_i2cs_callback(e_i2c_s_int_status int_status, size_t recieve_num); +#endif +#if PHONE_SLAVE_TRANSFER_SPI //warning + static void app_tp_spis_callback(hal_spis_event_e event, hal_spi_packet_info_t *packet_info); +#endif + +st_tp_scan_data tp_scan_data; + +/************************************************************************** +* @name : app_tp_screen_int_callback +* @brief : screen ж ص +* @param[in] : +* @return : +* @retval : +**************************************************************************/ +static void app_tp_screen_int_callback(void *data) +{ + s_screen_int_flag = true; +} + +/************************************************************************** +* @name : app_tp_screen_int_lvl_low +* @brief : ȡ screen ж IO ƽ +* @param[in] : +* @return : trueIO Ϊ͵ƽ +* @retval : +**************************************************************************/ +static bool app_tp_screen_int_lvl_low(void) +{ +#if SCREEN_MASTER_TRANSFER_I2C + return false; +#elif SCREEN_MASTER_TRANSFER_SPI + return !hal_gpio_get_input_data(g_screen_input_int_pad); //ӦSPIͨŹżͻȻCS ͨ쳣 +#else + return false; +#endif +} + +/************************************************************************** +* @name : app_tp_screen_int_init +* @brief : screen ж IO ʼ +* @param[in] : +* @return : +* @retval : +**************************************************************************/ +static void app_tp_screen_int_init(void) +{ + hal_gpio_set_pull_state(g_screen_input_int_pad, ENABLE, DISABLE); // 1. + hal_gpio_ctrl_eint(g_screen_input_int_pad, DISABLE); // 2.رж + hal_gpio_init_eint(g_screen_input_int_pad, DETECT_FALLING_EDGE); // 3.жϳʼ,TPһ㶼½شж + hal_gpio_reg_eint_cb(g_screen_input_int_pad, app_tp_screen_int_callback); // 4.עص + hal_gpio_ctrl_eint(g_screen_input_int_pad, ENABLE); // 5.ʹж +} + +#if 0 +/************************************************************************** +* @name : app_tp_phone_reset_init +* @brief : phone reset ж IO ʼ +* @param[in] : +* @return : +* @retval : +**************************************************************************/ +static void app_tp_phone_reset_init(void) +{ + /*0.Ϊ*/ + hal_gpio_init_input(g_phone_input_rst_pad); + /*1.رж*/ + hal_gpio_ctrl_eint(g_phone_input_rst_pad, DISABLE); + /*2.жϳʼ*/ + hal_gpio_init_eint(g_phone_input_rst_pad, DETECT_RISING_EDGE); + /*3.עص*/ + hal_gpio_reg_eint_cb(g_phone_input_rst_pad, app_tp_reset_callback); + /*4.ʹж*/ + hal_gpio_ctrl_eint(g_phone_input_rst_pad, ENABLE); +} +#endif + +/************************************************************************** +* @name : app_tp_screen_init +* @brief : screen IO 䣬ʼʼ +* @param[in] : +* @return : +* @retval : +**************************************************************************/ +void app_tp_screen_init(void) +{ + hal_gpio_init_output(g_screen_input_rst_pad, IO_LVL_HIGH); + delayUs(200); + hal_gpio_set_output_data(g_screen_input_rst_pad, IO_LVL_LOW); + delayUs(200); + hal_gpio_set_output_data(g_screen_input_rst_pad, IO_LVL_HIGH); +} + +/************************************************************************** +* @name : app_tp_init +* @brief : ʼͨ +* @param[in] : +* @return : +* @retval : +**************************************************************************/ +void app_tp_init(void) +{ +#ifdef ADD_MCU_BD826 + hal_gpio_init_output(IO_PAD_TD_SPIM_MOSI, IO_LVL_HIGH); //ʼTP_reset, + hal_gpio_init_input(IO_PAD_TD_SPIM_MISO); +#endif + +#ifdef DISABLE_TDDI_I2C_FUNCTION + hal_gpio_set_mode(IO_PAD_TD_SPIM_CLK,IO_MODE_I2C1_SCL); + hal_gpio_set_mode(IO_PAD_TD_SPIM_CSN,IO_MODE_I2C1_SDA); + + return; +#else + hal_gpio_set_pull_state(IO_PAD_TD_SPIM_CLK, ENABLE, DISABLE); + hal_gpio_set_pull_state(IO_PAD_TD_SPIM_CSN, ENABLE, DISABLE); +#endif + + //app_tp_phone_reset_init(); //ʼֻλIO + app_tp_screen_int_init(); //screenж +#ifdef G_PHONE_INT_DEFAULT_LOW + hal_gpio_init_output(g_phone_output_int_pad, IO_LVL_LOW); //phoneжIO +#else + hal_gpio_init_output(g_phone_output_int_pad, IO_LVL_HIGH); //phoneжIO +#endif + hal_gpio_init_output(g_screen_input_rst_pad, IO_LVL_HIGH); //ģTP RESET + +#if SCREEN_MASTER_TRANSFER_I2C + hal_i2c_m_dma_init(SCREEN_I2C_ADDRESS, SCREEN_I2C_ADDR_BITS, I2C_MASTER_SPEED); +#elif SCREEN_MASTER_TRANSFER_SPI + hal_spi_m_dma_init(SPI_MASTER_SPEED, SCREEN_SPI_CPHA, SCREEN_SPI_CPOL); +#endif + +#if PHONE_SLAVE_TRANSFER_I2C + hal_i2c_s_init(CHIP_I2C_ADDRESS, CHIP_I2C_ADDR_BITS); + hal_i2c_s_set_transfer(app_tp_i2cs_callback); + hal_i2c_s_nonblocking_read(s_phone_read_buffer, BUFFER_SIZE_MAX); //ý buffer +#elif PHONE_SLAVE_TRANSFER_SPI + hal_spi_slave_init(PHONE_SPI_CPHA, PHONE_SPI_CPOL, true); // ʼspiԼdma + hal_spi_slave_register_callback(app_tp_spis_callback); // עص + hal_spi_slave_auto_transfer_abort(); // ֹͣ + hal_spi_slave_flush_fifo(); // Flush FIFO + + /* ÿpacketԶ, circle mode Ϊfalse, յbuffer max sizeݺbufferٸ, packetɺûص */ + hal_spi_slave_set_auto_rx_buffer(s_phone_read_buffer, BUFFER_SIZE_MAX, false); // auto rx buffer + 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 + + hal_spi_slave_enable(); // spis + hal_spi_slave_auto_transfer_start(); // rxԶ +#endif + +} + +/************************************************************************** +* @name : app_tp_m_transfer_complate +* @brief : ȡͨ״̬ +* @param[in] : +* @return :true: ͨ +* @retval : +**************************************************************************/ +bool app_tp_m_transfer_complate(void) +{ +#if SCREEN_MASTER_TRANSFER_I2C + return hal_i2c_m_transfer_complate(); +#elif SCREEN_MASTER_TRANSFER_SPI + return hal_spi_m_get_transfer_complate(); +#else + return true; +#endif +} + +/************************************************************************** +* @name : app_tp_s_transfer_complate +* @brief : ȡӻͨ״̬ +* @param[in] : +* @return :true: ͨ +* @retval : +**************************************************************************/ +bool app_tp_s_transfer_complate(void) +{ +#if SCREEN_MASTER_TRANSFER_I2C + return hal_i2c_s_write_complate() && hal_i2c_s_read_complate(); +#elif SCREEN_MASTER_TRANSFER_SPI + return !hal_spi_slave_busy(); +#else + return true; +#endif +} + +/************************************************************************** +* @name : app_tp_m_write +* @brief : ͨŷʽ÷txbufferе +* @param[in] :txbuffer: buffer ͷַ +* @param[in] :buffer_size: buffer +* @return : +* @retval : +**************************************************************************/ +static void app_tp_m_write(const uint8_t *txbuffer, size_t buffer_size) +{ +#if SCREEN_MASTER_TRANSFER_I2C + hal_i2c_m_dma_write(txbuffer, buffer_size); +#elif SCREEN_MASTER_TRANSFER_SPI + hal_spi_m_dma_write(txbuffer, buffer_size); + s_spim_write = true; +#endif +} + +/************************************************************************** +* @name : app_tp_m_read +* @brief : ͨŷʽ÷txbufferеݺrxbuffer +* @param[in] :cmd: buffer ͷַ +* @param[in] :cmd_size: buffer +* @param[in] :data_buffer: ȡ buffer ͷַ +* @param[in] :data_size: ȡ buffer +* @return : +* @retval : +**************************************************************************/ +static void app_tp_m_read(const uint8_t *cmd, size_t cmd_size, uint8_t *data_buffer, size_t data_size) +{ +#if SCREEN_MASTER_TRANSFER_I2C + uint8_t i = 0; + uint32_t address = 0; + + for (i = 0; i < cmd_size; i++) //ȽҪ͵ϵ address + { + address |= (uint32_t)cmd[i] << i * 8; + } + hal_i2c_m_dma_read(address, cmd_size, data_buffer, data_size); +#elif SCREEN_MASTER_TRANSFER_SPI + hal_spi_m_dma_read(cmd, cmd_size, data_buffer, data_size); +#endif +} + +/************************************************************************** +* @name : app_tp_s_write +* @brief : ͨŷʽ÷txbufferе +* @param[in] :txbuffer: buffer ͷַ +* @param[in] :buffer_size: buffer +* @return : +* @retval : +**************************************************************************/ +void app_tp_s_write(const uint8_t *txbuffer, size_t buffer_size) +{ +#if PHONE_SLAVE_TRANSFER_I2C + hal_i2c_s_dma_write(txbuffer, buffer_size); +#elif PHONE_SLAVE_TRANSFER_SPI + //while (hal_spi_slave_busy()); + hal_spi_slave_auto_transfer_abort(); + hal_spi_slave_flush_fifo(); + hal_spi_slave_set_auto_tx_buffer(txbuffer, buffer_size, true); + hal_spi_slave_auto_transfer_start(); +#endif +} + +/************************************************************************** +* @name : app_tp_s_read +* @brief : ͨŷʽrxbuffer +* @param[in] :rxBuffer: ȡ buffer ͷַ +* @param[in] :data_size: ȡ buffer +* @return : +* @retval : +**************************************************************************/ +void app_tp_s_read(void *rxBuffer, size_t data_size) +{ +#if PHONE_SLAVE_TRANSFER_I2C + hal_i2c_s_nonblocking_read(rxBuffer, data_size); +#endif +} + +/************************************************************************** +* @name : app_tp_spis_callback +* @brief : SPI slave жϴ +* @param[in] : +* @return : +* @retval : +**************************************************************************/ +/* +#if PHONE_SLAVE_TRANSFER_I2C //warning +//ԡint_status=0Ϊ=2ΪSTOP=1δԵ +//recieve_numΪյָ +static void app_tp_i2cs_callback(e_i2c_s_int_status int_status, size_t recieve_num) +{ +#if 0 // 1: test + if (int_status >2) + { + s_phone_read_buffer[2]=int_status; + s_phone_read_buffer[3]=recieve_num; + app_tp_m_write(s_phone_read_buffer, 4); + } +#endif + app_tp_transfer_phone(recieve_num); +} +#endif + +*/ +#if PHONE_SLAVE_TRANSFER_I2C //warning +static void app_tp_i2cs_callback(e_i2c_s_int_status int_status, size_t recieve_num) +{ + static bool i2cs_transfer = true; //ȷһֻͨһ + if (i2cs_transfer) + { + i2cs_transfer = false; + app_tp_transfer_phone(recieve_num); + } + if (int_status == I2C_S_INT_READ) + { + app_tp_s_write(s_slave_txbuffer, s_slave_txbuffer_size); + } + else if (int_status == I2C_S_INT_STOP) + { + i2cs_transfer = true; + } +} +#endif + + +/************************************************************************** +* @name : app_tp_spis_callback +* @brief : SPI slave жϴ +* @param[in] : +* @return : +* @retval : +**************************************************************************/ +#if PHONE_SLAVE_TRANSFER_SPI //warning +static void app_tp_spis_callback(hal_spis_event_e event, hal_spi_packet_info_t *packet_info) +{ + app_tp_transfer_phone(packet_info->packet_size); +} +#endif + +#if 0 +/************************************************************************** +* @name : app_tp_reset_callback +* @brief : ֻ IO临λжϴ +* @param[in] : +* @return : +* @retval : +**************************************************************************/ +static void app_tp_reset_callback(void *data) +{ + TAU_LOGD("app_tp_reset_callback\n"); + s_phone_reset_flag = true; + app_tp_s_write(phone_reg_const_data[0].write_back, phone_reg_const_data[0].write_back_size); +#if PHONE_SLAVE_TRANSFER_SPI + hal_gpio_set_output_data(IO_PAD_AP_INT, IO_LVL_LOW); +#endif +} +#endif + +/************************************************************************** +* @name : app_tp_transfer_screen_const +* @brief : flowдscreen screen ʼ +* @param[in] : +* @return : +* @retval : +*޸TP1ģʼ +*ִscreen_reg_start_data[] +**************************************************************************/ +static void app_tp_transfer_screen_const(void) +{ +// static bool screen_const_transfer_buffer_ready = true; // buffer Ƿ׼ + uint8_t ii; + + /**** 1. жϵǰ״̬ͨѽ, ״̬ͨѽҿʼ̻δ****/ +#if 0 // test + uint8_t test_master_read_buffer[10] = {0x08, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19}; + uint8_t write_buffer[10] = {0x04, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19}; + +// for (ii =0x20; ii<0x7F; ii++) + { + //hal_i2c_m_dma_init(ii, SCREEN_I2C_ADDR_BITS); + //delayMs(100); + if (hal_i2c_m_dma_write(write_buffer, 1)) + { + //break; + } + while(!hal_i2c_m_transfer_complate()); + hal_i2c_m_dma_read(test_master_read_buffer, 1, test_master_read_buffer, 2); + } +#endif + + + if (app_tp_m_transfer_complate() && (s_screen_const_transfer_count < screen_reg_start_data_size)) + { + if (s_spim_write) //SPI дݺҪѽFIFOݶȻӰһζȡ + { + hal_spi_m_clear_rxfifo(); + s_spim_write = false; + } + + #if 1 + + #ifndef USE_FOR_SUMSUNG_S10 + for (ii =0; ii= screen_reg_start_data_size) + { + s_screen_init_complate = true; + } + } + #endif + } +} + +/************************************************************************** +* @name : app_tp_transfer_screen_start +* @brief : flowдscreenʼʼ +* @param[in] : +* @return : +* @retval : +**************************************************************************/ +void app_tp_transfer_screen_start(void) +{ + s_screen_init_complate = false; + s_screen_const_transfer_count = 0; + //app_tp_screen_init(); +#ifndef DISABLE_I2C_INIT_CODE + app_tp_transfer_screen_const(); +#endif + s_screen_int_flag = false; +} + +/************************************************************************** +* @name : app_tp_transfer_screen_int +* @brief : screenжϺ󣬰flowдscreenЭת +* @param[in] : +* @return : +* @retval : +*޸TP2ȡģ鱨㣡 +*ִscreen_reg_int_data[]ҲԼд +**************************************************************************/ +void app_tp_transfer_screen_int(void) +{ + bool screen_gpio_int = false; + static uint8_t screen_int_transfer_count = 0; //¼ǰͨŵһ + static bool screen_int_transfer_buffer_ready = true; // buffer Ƿ׼ +// static uint8_t test_flag = 0; + + if (!s_screen_init_complate) //TP ʼδɣȽгʼ + { + app_tp_transfer_screen_const(); + return; + } + +#if 0 //test + test_flag++; + if (test_flag >1000000) + { + test_flag =0; + //TAU_LOGD("Run ok!!\n"); + //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); + //while(!hal_i2c_m_transfer_complate()); + } +#endif + + /**** 1. ж screen Ƿ񷢳жź ****/ + // s_screen_int_flag: жźű־λ + // app_tp_screen_int_lvl_low : SPI ʱͨʱżcsߵͨ쳣ñ־λڽ + screen_gpio_int = s_screen_int_flag || app_tp_screen_int_lvl_low(); + if (((screen_gpio_int) || (s_screen_int_transfer_status)) && app_tp_m_transfer_complate()) //жϵǰͨ״̬׼ͨ + { + // TAU_LOGD("touch ok!!\n"); + s_screen_int_flag = false; + if (s_spim_write) //SPI дݺҪѽFIFOݶȻӰһζȡ + { + hal_spi_m_clear_rxfifo(); + s_spim_write = false; + } + + /**** 2. ͻȡӻ ****/ + if (screen_int_transfer_buffer_ready) + { + #ifndef READ_MODULE_TP_ONE_BY_ONE + screen_int_transfer_buffer_ready = false; + s_screen_int_transfer_status = true; + #ifdef USE_FOR_SUMSUNG_S10 + app_tp_m_read(screen_reg_int_data[2].buffer, 1, s_screen_read_buffer, 64); + // app_tp_m_read(screen_reg_int_data[2].buffer, 1, s_screen_read_buffer, 8); + while(!hal_i2c_m_transfer_complate()); + + #else + app_tp_m_read(screen_reg_int_data[0].buffer, screen_reg_int_data[0].txbuffer_size, s_screen_temp, screen_reg_int_data[0].rxbuffer_size); + while(!hal_i2c_m_transfer_complate()); + app_tp_m_read(screen_reg_int_data[1].buffer, screen_reg_int_data[1].txbuffer_size, s_screen_number, screen_reg_int_data[1].rxbuffer_size); + while(!hal_i2c_m_transfer_complate()); + //TAU_LOGD("s_screen_number[%4x], size[%4x]", ((s_screen_number[1]<<8)|s_screen_number[0]), ((s_screen_temp[1]<<8)|s_screen_temp[0])); + + if(s_screen_number[1]) + { + if (s_screen_number[1]>3) + { + read_point =1; + s_screen_int_transfer_status = false; + } + else if (s_screen_number[1] &0x02) + read_point =10; + else + read_point =9; + } + else + { + if(s_screen_number[0] &0x80) + read_point =8; + else if(s_screen_number[0] &0x40) + read_point =7; + else if(s_screen_number[0] &0x20) + read_point =6; + else if(s_screen_number[0] &0x10) + read_point =5; + else if(s_screen_number[0] &0x08) + read_point =4; + else if(s_screen_number[0] &0x04) + read_point =3; + else if(s_screen_number[0] &0x02) + read_point =2; + else + read_point =1; + } + read_point =8*read_point; + app_tp_m_read(screen_reg_int_data[2].buffer, screen_reg_int_data[2].txbuffer_size, s_screen_read_buffer, read_point); + while(!hal_i2c_m_transfer_complate()); + #endif + #else + if (!screen_reg_int_data[screen_int_transfer_count].read_flag) //ǰͨŲҪأֱд + { + app_tp_m_write(screen_reg_int_data[screen_int_transfer_count].buffer, screen_reg_int_data[screen_int_transfer_count].txbuffer_size); + } + else //ǰͨҪأдٶ + { + s_screen_int_transfer_status = true; + if (screen_int_transfer_count==0) + { + app_tp_m_read(screen_reg_int_data[screen_int_transfer_count].buffer, screen_reg_int_data[screen_int_transfer_count].txbuffer_size, \ + s_screen_temp, screen_reg_int_data[screen_int_transfer_count].rxbuffer_size); + screen_int_transfer_count =1; + } + else if (screen_int_transfer_count==1) + { + app_tp_m_read(screen_reg_int_data[screen_int_transfer_count].buffer, screen_reg_int_data[screen_int_transfer_count].txbuffer_size, \ + s_screen_number, screen_reg_int_data[screen_int_transfer_count].rxbuffer_size); + screen_int_transfer_count =2; + } + else if (screen_int_transfer_count==2) + { + if(s_screen_number[1]) + { + TAU_LOGD("s_screen_number[%4x], size[%4x]", ((s_screen_number[1]<<8)|s_screen_number[0]), ((s_screen_temp[1]<<8)|s_screen_temp[0])); + if (s_screen_number[1] &0x02) + read_point =10; + else + read_point =9; + } + else + { + if(s_screen_number[0] &0x80) + read_point =8; + else if(s_screen_number[0] &0x40) + read_point =7; + else if(s_screen_number[0] &0x20) + read_point =6; + else if(s_screen_number[0] &0x10) + read_point =5; + else if(s_screen_number[0] &0x08) + read_point =4; + else if(s_screen_number[0] &0x04) + read_point =3; + else if(s_screen_number[0] &0x02) + read_point =2; + else + read_point =1; + } + read_point =8*read_point; + + app_tp_m_read(screen_reg_int_data[screen_int_transfer_count].buffer, screen_reg_int_data[screen_int_transfer_count].txbuffer_size, \ + s_screen_read_buffer, read_point); + screen_int_transfer_count =0; + screen_int_transfer_buffer_ready = false; + } + } + #endif + } + /**** 3. ͨݣ׼һͨŵbuffer ****/ + else + { + #if 1 + #ifdef USE_FOR_SUMSUNG_S10 + u16TouchID=0x0000; + #endif + screen_int_transfer_buffer_ready = true; + screen_int_transfer_count = app_tp_screen_analysis_int(screen_int_transfer_count, s_screen_read_buffer,screen_reg_int_data[2].rxbuffer_size); + screen_int_transfer_count = 0; + s_screen_int_transfer_status = false; + + #else + screen_int_transfer_buffer_ready = true; + screen_int_transfer_count = app_tp_screen_analysis_int(screen_int_transfer_count, s_screen_read_buffer, \ + screen_reg_int_data[screen_int_transfer_count].rxbuffer_size); + + if (screen_int_transfer_count > screen_reg_int_data_size) //ҪһͨŽһݽֹͣͨ + { + screen_int_transfer_count = 0; + s_screen_int_transfer_status = false; + return; + } + #endif + } + } +} + +/************************************************************************** +* @name : app_tp_transfer_phone +* @brief : ݽӦĴ +* @param[in] : recieve_numݳ +* @return : +* @retval : +**************************************************************************/ +static void app_tp_transfer_phone(size_t recieve_num) +{ + // const uint8_t *phone_write_buffer; + // size_t phone_write_buffer_size = 0; + /* ݽжǷҪԼ𸴵bufferָ */ + if (recieve_num > 0) + { + #if 0// 1: test + s_phone_read_buffer[3]=recieve_num; + app_tp_m_write(s_phone_read_buffer, 4); + #endif + // app_tp_phone_analysis_data(s_phone_read_buffer, recieve_num, &phone_write_buffer, &phone_write_buffer_size); +// app_tp_phone_analysis_data(s_phone_read_buffer, recieve_num, &s_slave_txbuffer, &s_slave_txbuffer_size); + app_tp_phone_analysis_data_custom(s_phone_read_buffer, recieve_num, s_slave_txbuffer, &s_slave_txbuffer_size); + // printf("222 %p %x \n",*s_slave_txbuffer,s_slave_txbuffer_size); + } + + app_tp_s_read(s_phone_read_buffer, BUFFER_SIZE_MAX); + /* if (phone_write_buffer_size) //0ʾҪֻ÷buffer + { + app_tp_s_write(phone_write_buffer, phone_write_buffer_size); + } + */ +} + +void ap_tp_scan_point_init(void) +{ + uint8_t i=0; + + for(i=0;i0) // в + { + printf("release finger %2d\n",tp_scan_data.tp_read_point_counter); + tp_scan_data.tp_read_point_counter = 0; + // ap_tp_simulate_finger_release_event(); + } + + ap_tp_scan_point_init(); + } + } + +} + + +/************************************************************************** +* @name : app_tp_phone_reset_on +* @brief : ȡֻλźŵ״̬ +* @param[in] : +* @return : +* @retval : +**************************************************************************/ +bool app_tp_phone_reset_on(void) +{ + return s_phone_reset_flag; +} + +/************************************************************************** +* @name : app_tp_phone_clear_reset_on +* @brief : ֻλźŵ״̬ +* @param[in] : +* @return : +* @retval : +**************************************************************************/ +void app_tp_phone_clear_reset_on(void) +{ + s_phone_reset_flag = false; +} + +#else + +void app_tp_screen_init(void) +{ + +} + +void app_tp_init(void) +{ + +} + +void app_tp_transfer_screen_int(void) +{ + +} + +void app_tp_transfer_screen_start(void) +{ + +} + +bool app_tp_phone_reset_on(void) +{ + return false; +} + +void app_tp_phone_clear_reset_on(void) +{ + +} + +void app_tp_s_write(const uint8_t *txbuffer, size_t buffer_size) +{ + +} + +bool app_tp_enter_sleep_on(void) +{ + return false; +} + +#endif + diff --git a/src/app/ap_demo/app_tp_transfer.h b/src/app/ap_demo/app_tp_transfer.h new file mode 100644 index 0000000..c2abe28 --- /dev/null +++ b/src/app/ap_demo/app_tp_transfer.h @@ -0,0 +1,110 @@ +/******************************************************************************* +* +* +* File: app_tp_transfer.h +* Description touch I2C/SPI ͨغ +* Version V0.1 +* Date 2021-10-14 +* Author zhanghz +*******************************************************************************/ +#ifndef __APP_TP_TRANSFER_H__ +#define __APP_TP_TRANSFER_H__ + +#include "string.h" +#include "tau_device_datatype.h" +#include "tau_common.h" + +#define SCREEN_TRANSFER_WRITE false //յscreen ioжϣ֮ö +#define SCREEN_TRANSFER_READ true //յscreen ioжϣ֮Ҫ + +#define ST_TP_SCAN_POINT_NUMBER_MAX 6 + +typedef struct +{ + uint8_t tp_point_buffer[ST_TP_SCAN_POINT_NUMBER_MAX]; // յ TP 㣬ڼ¼Ϣ + uint8_t tp_read_point_counter; // ͳƱֵ + uint8_t tp_point_up_error_flag; // ͷ쳣־ + uint32_t tp_point_error_time_counter; // ʱ +} st_tp_scan_data; + + +extern const uint8_t *s_slave_txbuffer; + +/************************************************************************** +* @name : app_tp_screen_init +* @brief : screen IO 䣬ʼʼ +* @param[in] : +* @return : +* @retval : +**************************************************************************/ +void app_tp_screen_init(void); + +/************************************************************************** +* @name : app_tp_init +* @brief : ʼͨ +* @param[in] : +* @return : +* @retval : +**************************************************************************/ +void app_tp_init(void); + +/************************************************************************** +* @name : app_tp_transfer_screen_int +* @brief : screenжϺ󣬰flowдscreenЭת +* @param[in] : +* @return : +* @retval : +**************************************************************************/ +void app_tp_transfer_screen_int(void); + +/************************************************************************** +* @name : app_tp_transfer_screen_start +* @brief : flowдscreenʼʼ +* @param[in] : +* @return : +* @retval : +**************************************************************************/ +void app_tp_transfer_screen_start(void); + +/************************************************************************** +* @name : app_tp_phone_reset_on +* @brief : ȡֻλźŵ״̬ +* @param[in] : +* @return : +* @retval : +**************************************************************************/ +bool app_tp_phone_reset_on(void); + +/************************************************************************** +* @name : app_tp_phone_clear_reset_on +* @brief : ֻλźŵ״̬ +* @param[in] : +* @return : +* @retval : +**************************************************************************/ +void app_tp_phone_clear_reset_on(void); + +/************************************************************************** +* @name : app_tp_s_write +* @brief : ͨŷʽ÷txbufferе +* @param[in] :txbuffer: buffer ͷַ +* @param[in] :buffer_size: buffer +* @return : +* @retval : +**************************************************************************/ +void app_tp_s_write(const uint8_t *txbuffer, size_t buffer_size); + +/************************************************************************** +* @name : app_tp_enter_sleep_on +* @brief : ȡ tp ͨ״̬ +* @param[in] : +* @return : +* @retval : +**************************************************************************/ +bool app_tp_enter_sleep_on(void); + +void ap_tp_scan_point_record_event_exec(void); + + +#endif + diff --git a/src/app/ap_demo/demo_version.txt b/src/app/ap_demo/demo_version.txt new file mode 100644 index 0000000..17a8630 --- /dev/null +++ b/src/app/ap_demo/demo_version.txt @@ -0,0 +1,38 @@ +///////////////////////////////////////////////////////////////////////////////// + + ISP368_Mi8SE_20230523 + + 1ͻżǰһ޴ + + λʱСӸλ100ms³ʼΪ30ms + + 2ϻиλϰ벿֡ + + hal_dsi_tx_ctrl_start29֮ʱӴ150ms + + + +///////////////////////////////////////////////////////////////////////////////// + + ISP368_Mi8SE_20230511 + + 1ͻͼ겻Բ + + ߸õ15ص + + 2ͻ澲2ϣиʿʼ޴һд + + ʱıΣ̼ + + +///////////////////////////////////////////////////////////////////////////////// + + ISP368_Mi8SE_20230316 + + 1ͻ澲2ϣиʿʼ޴һд + + porch + + + +///////////////////////////////////////////////////////////////////////////////// diff --git a/src/app/main.c b/src/app/main.c new file mode 100644 index 0000000..c538d16 --- /dev/null +++ b/src/app/main.c @@ -0,0 +1,63 @@ +#include +#include +#include +#include "test_cfg_global.h" +#include "tau_log.h" +#include "hal_system.h" +#include "board.h" + +int main() +{ + board_Init(); + + while (1) + { +#if _DEMO_DSI_TX_EN + demo_dsi_tx_case(); +#endif +#if _DEMO_DSI_RX_EN + demo_hal_dsi_rx_case(); +#endif +#if _DEMO_TIMER_EN + demo_timer_case(); +#endif +#if _DEMO_WDG_EN + demo_wdg_case(); +#endif +#if _DEMO_GPIO_EN + demo_gpio_case(); +#endif +#if _DEMO_PWM_EN + demo_pwm_case(); +#endif +#if _DEMO_SWIRE_EN + demo_swire_case(); +#endif + +#if _DEMO_I2C_EN + demo_hal_i2c(); +#endif + +#if _DEMO_SPI_EN + demo_hal_spi(); +#endif + +#if _DEMO_S8_EN + s8_demo(); +#endif + +#if _DEMO_S8P_EN + s8p_demo(); +#endif + +#if _DEMO_S9_EN + s9_demo(); +#endif + +#if _DEMO_MI8SE_EN + ap_demo(); +#endif + + while (1); + } +} diff --git a/src/app/test_cfg_global.h b/src/app/test_cfg_global.h new file mode 100644 index 0000000..b706a19 --- /dev/null +++ b/src/app/test_cfg_global.h @@ -0,0 +1,100 @@ +/******************************************************************************* +* +* File: test_cfg_global.h +* Description: 测试用例全局配置头文件 +* Version: V0.1 +* Date: 2021-05-01 +* Author: kevin + *******************************************************************************/ + +#ifndef __TEST_GLOBAL_CONFIG_H__ +#define __TEST_GLOBAL_CONFIG_H__ +/******************************************************************************* +* 1.Included files +*******************************************************************************/ + +/******************************************************************************* +* 2.Global constant and macro definitions using #define +*******************************************************************************/ +/* 模块demo 宏定义 */ +#define _DEMO_TIMER_EN 0 +#define _DEMO_DSI_TX_EN 0 +#define _DEMO_DSI_RX_EN 0 +#define _DEMO_PWM_EN 0 +#define _DEMO_SWIRE_EN 0 +#define _DEMO_WDG_EN 0 +#define _DEMO_GPIO_EN 0 +#define _DEMO_I2C_EN 0 +#define _DEMO_SPI_EN 0 +/* ap demo 宏定义 */ +#define _DEMO_S8_EN 0 +#define _DEMO_S8P_EN 0 +#define _DEMO_S9_EN 0 +#define _DEMO_MI8SE_EN 1 + + +#if _DEMO_TIMER_EN + #include "demo_hal_timer.h" +#endif + +#if _DEMO_I2C_EN + #include "demo_hal_i2c.h" +#endif + +#if _DEMO_SPI_EN + #include "demo_hal_spi.h" +#endif + +#if _DEMO_DSI_TX_EN + #include "demo_hal_dsi_tx.h" +#endif + +#if _DEMO_DSI_RX_EN + #include "demo_hal_dsi_rx.h" +#endif + +#if _DEMO_PWM_EN + #include "demo_hal_pwm.h" +#endif + +#if _DEMO_SWIRE_EN + #include "demo_hal_swire.h" +#endif + +#if _DEMO_WDG_EN + #include "demo_hal_wdg.h" +#endif + +#if _DEMO_GPIO_EN + #include "demo_hal_gpio.h" +#endif + +#if _DEMO_I2C_TP_EN + #include "demo_hal_i2c_tp.h" +#endif + +#if _DEMO_S8_EN + #include "s8_demo.h" + #include "app_tp_for_custom_s8.h" +#endif + +#if _DEMO_S8P_EN + #include "s8p_demo.h" + #include "app_tp_for_custom_s8p.h" +#endif + +#if _DEMO_S9_EN + #include "s9_demo.h" + #include "app_tp_for_custom_s9.h" +#endif + +#if _DEMO_MI8SE_EN + #include "ap_demo.h" + #include "app_tp_for_custom_mi8se.h" +// #include "app_tp_for_custom_s9.h" +#endif + + + +#endif + diff --git a/src/board/board.c b/src/board/board.c new file mode 100644 index 0000000..aea5ad9 --- /dev/null +++ b/src/board/board.c @@ -0,0 +1,26 @@ +/******************************************************************************* +* Copyright (C) 2019-2022, ISP Systems (R),All Rights Reserved. +* +* File: board.c +* Description 板级文件 +* Version V0.1 +* Date 2020-12-07 +* Author linyw +*******************************************************************************/ +#include "board.h" +#include "hal_system.h" +#include "ArmCM0.h" + +void board_Init(void) +{ + hal_system_init(SYSTEM_CLOCK); + hal_system_enable_systick(1); +#if !EDA_MODE + hal_system_init_console(115200); +#endif +#if defined(ISP_568) || defined(ISP_368) + /* 从EFUSE读取DPHY校准值并设置 */ + hal_system_set_phy_calibration(true); +#endif +} + diff --git a/src/board/board.h b/src/board/board.h new file mode 100644 index 0000000..2d3eb38 --- /dev/null +++ b/src/board/board.h @@ -0,0 +1,16 @@ +/******************************************************************************* +* Copyright (C) 2019-2022, ISP Systems (R),All Rights Reserved. +* +* File: board.h +* Description: baord 初始化头文件 +* Version: V0.1 +* Date: 2020-01-08 +* Author: lzy + *******************************************************************************/ + +#ifndef __BOARD_H__ +#define __BOARD_H__ + +void board_Init(void); + +#endif diff --git a/src/board/startup/startup_ARMCM0.s b/src/board/startup/startup_ARMCM0.s new file mode 100644 index 0000000..4a17757 --- /dev/null +++ b/src/board/startup/startup_ARMCM0.s @@ -0,0 +1,226 @@ +;/**************************************************************************//** +; * @file startup_ARMCM0.s +; * @brief CMSIS Core Device Startup File for +; * ARMCM0 Device +; * @version V5.4.0 +; * @date 12. December 2018 +; ******************************************************************************/ +;/* +; * Copyright (c) 2009-2018 Arm Limited. All rights reserved. +; * +; * SPDX-License-Identifier: Apache-2.0 +; * +; * Licensed under the Apache License, Version 2.0 (the License); you may +; * not use this file except in compliance with the License. +; * You may obtain a copy of the License at +; * +; * www.apache.org/licenses/LICENSE-2.0 +; * +; * Unless required by applicable law or agreed to in writing, software +; * distributed under the License is distributed on an AS IS BASIS, WITHOUT +; * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +; * See the License for the specific language governing permissions and +; * limitations under the License. +; */ + +;//-------- <<< Use Configuration Wizard in Context Menu >>> ------------------ + + +; Stack Configuration +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Stack_Size EQU 0x00001000 + + AREA STACK, NOINIT, READWRITE, ALIGN=3 +__stack_limit +Stack_Mem SPACE Stack_Size +__initial_sp + + +; Heap Configuration +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Heap_Size EQU 0x00000C00 + + IF Heap_Size != 0 ; Heap is provided + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +Heap_Mem SPACE Heap_Size +__heap_limit + ENDIF + + + PRESERVE8 + THUMB + + +; Vector Table Mapped to Address 0 at Reset + + AREA RESET, DATA, READONLY + EXPORT __Vectors + EXPORT __Vectors_End + EXPORT __Vectors_Size + +__Vectors DCD __initial_sp ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NMI_Handler ; -14 NMI Handler + DCD HardFault_Handler ; -13 Hard Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; -5 SVCall Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD PendSV_Handler ; -2 PendSV Handler + DCD SysTick_Handler ; -1 SysTick Handler + + + ; Interrupts + DCD VIDC_IRQn_Handler ; 0 Interrupt 0 + DCD LCDC_IRQn_Handler ; 1 Interrupt 1 + DCD MIPI_RX_IRQn_Handler ; 2 Interrupt 2 + DCD MIPI_TX_IRQn_Handler ; 3 Interrupt 3 + DCD MEMC_IRQn_Handler ; 4 Interrupt 4 + DCD VPRE_IRQn_Handler ; 5 Interrupt 5 + DCD FLSCTRL_IRQn_Handler ; 6 Interrupt 6 + DCD DMA_IRQn_Handler ; 7 Interrupt 7 + DCD TIMER0_IRQn_Handler ; 8 Interrupt 8 + DCD TIMER1_IRQn_Handler ; 9 Interrupt 9 + DCD TIMER2_IRQn_Handler ; 10 Interrupt 10 + DCD TIMER3_IRQn_Handler ; 11 Interrupt 11 + DCD WDG_IRQn_Handler ; 12 Interrupt 12 + DCD UART_IRQn_Handler ; 13 Interrupt 13 + DCD I2C0_IRQn_Handler ; 14 Interrupt 14 + DCD I2C1_IRQn_Handler ; 15 Interrupt 15 + DCD SPIS_IRQn_Handler ; 16 Interrupt 16 + DCD SPIM_IRQn_Handler ; 17 Interrupt 17 + DCD ADC_IRQn_Handler ; 18 Interrupt 18 + DCD PWMDET_IRQn_Handler ; 19 Interrupt 19 + DCD OTP_IRQn_Handler ; 20 Interrupt 20 + DCD SWIRE_IRQn_Handler ; 21 Interrupt 21 + DCD PVD_IRQn_Handler ; 22 Interrupt 22 + DCD AP_NRESET_IRQn_Handler ; 23 Interrupt 23 + DCD EXTI_INT0_IRQn_Handler ; 24 Interrupt 24 + DCD EXTI_INT1_IRQn_Handler ; 25 Interrupt 25 + DCD EXTI_INT2_IRQn_Handler ; 26 Interrupt 26 + DCD EXTI_INT3_IRQn_Handler ; 27 Interrupt 27 + DCD EXTI_INT4_IRQn_Handler ; 28 Interrupt 28 + DCD EXTI_INT5_IRQn_Handler ; 29 Interrupt 29 + DCD EXTI_INT6_IRQn_Handler ; 30 Interrupt 30 + DCD EXTI_INT7_IRQn_Handler ; 31 Interrupt 31 + + SPACE ( 0 * 4) ; Interrupts 10 .. 31 are left out + +__Vectors_End +__Vectors_Size EQU __Vectors_End - __Vectors +_NVIC_ICER0 EQU 0xE000E180 ;清中断使能寄存器地址 +_NVIC_ICPR0 EQU 0xE000E280 ;清中断pending寄存器地址 + + AREA |.text|, CODE, READONLY + +; Reset Handler + +Reset_Handler PROC + EXPORT Reset_Handler [WEAK] + IMPORT __main + +;清中断使能和pending ——开始—— + CPSID I ; 屏蔽中断 + LDR R0, =_NVIC_ICER0 + LDR R1, =_NVIC_ICPR0 + LDR R2, =0xFFFFFFFF + MOVS R3, #1 ; 设置循环次数 M0只有1组(32个)中断,故只需要循环1次 +_irq_clear + ;CBZ R3, _irq_clear_end + CMP R3,#0 ; 循环次数等于0,跳转到_irq_clear_end + BEQ _irq_clear_end + STR R2, [R0] ;,#4 ; NVIC_ICER0 - 清 enable IRQ 寄存器 + STR R2, [R1] ;,#4 ; NVIC_ICPR0 - 清 pending IRQ 寄存器 + SUBS R3, #1 ; 循环数自减1 + B _irq_clear +_irq_clear_end +;清中断使能和pending ——结束—— + CPSIE I ; 开启中断 + LDR R0, =__main + BX R0 + ENDP + + +; Macro to define default exception/interrupt handlers. +; Default handler are weak symbols with an endless loop. +; They can be overwritten by real handlers. + MACRO + Set_Default_Handler $Handler_Name +$Handler_Name PROC + EXPORT $Handler_Name [WEAK] + B . + ENDP + MEND + + +; Default exception/interrupt handler + + Set_Default_Handler NMI_Handler + Set_Default_Handler HardFault_Handler + Set_Default_Handler SVC_Handler + Set_Default_Handler PendSV_Handler + Set_Default_Handler SysTick_Handler + + Set_Default_Handler VIDC_IRQn_Handler + Set_Default_Handler LCDC_IRQn_Handler + Set_Default_Handler MIPI_RX_IRQn_Handler + Set_Default_Handler MIPI_TX_IRQn_Handler + Set_Default_Handler MEMC_IRQn_Handler + Set_Default_Handler VPRE_IRQn_Handler + Set_Default_Handler FLSCTRL_IRQn_Handler + Set_Default_Handler DMA_IRQn_Handler + Set_Default_Handler TIMER0_IRQn_Handler + Set_Default_Handler TIMER1_IRQn_Handler + + Set_Default_Handler TIMER2_IRQn_Handler + Set_Default_Handler TIMER3_IRQn_Handler + Set_Default_Handler WDG_IRQn_Handler + Set_Default_Handler UART_IRQn_Handler + Set_Default_Handler I2C0_IRQn_Handler + Set_Default_Handler I2C1_IRQn_Handler + Set_Default_Handler SPIS_IRQn_Handler + Set_Default_Handler SPIM_IRQn_Handler + Set_Default_Handler ADC_IRQn_Handler + Set_Default_Handler PWMDET_IRQn_Handler + + Set_Default_Handler OTP_IRQn_Handler + Set_Default_Handler SWIRE_IRQn_Handler + Set_Default_Handler PVD_IRQn_Handler + Set_Default_Handler AP_NRESET_IRQn_Handler + Set_Default_Handler EXTI_INT0_IRQn_Handler + Set_Default_Handler EXTI_INT1_IRQn_Handler + Set_Default_Handler EXTI_INT2_IRQn_Handler + Set_Default_Handler EXTI_INT3_IRQn_Handler + Set_Default_Handler EXTI_INT4_IRQn_Handler + Set_Default_Handler EXTI_INT5_IRQn_Handler + + Set_Default_Handler EXTI_INT6_IRQn_Handler + Set_Default_Handler EXTI_INT7_IRQn_Handler + ALIGN + + +; User setup Stack & Heap + + IF :LNOT::DEF:__MICROLIB + IMPORT __use_two_region_memory + ENDIF + + EXPORT __stack_limit + EXPORT __initial_sp + IF Heap_Size != 0 ; Heap is provided + EXPORT __heap_base + EXPORT __heap_limit + ENDIF + + END diff --git a/src/common/tau_common.h b/src/common/tau_common.h new file mode 100644 index 0000000..2ca8cd1 --- /dev/null +++ b/src/common/tau_common.h @@ -0,0 +1,216 @@ +/******************************************************************************* +* +* +* File: tau_common.h +* Description 通用数据类型相关定义头文件 +* Version V0.1 +* Date 2020-09-07 +* Author lzy + *******************************************************************************/ + +#ifndef __TAU_COMMON_H +#define __TAU_COMMON_H + +/******************************************************************************* +* 1.Included files +*******************************************************************************/ +#include "stdint.h" +#include "math.h" + +/******************************************************************************* +* 2.Global constant and macro definitions using #define +*******************************************************************************/ +/** + * \name 通用常量定义 + * @{ + */ +//#define ENABLE 1 +//#define DISABLE 0 + +#define ON 1 +#define OFF 0 + +#define NONE 0 +#define EOS '\0' + +/* +#ifndef TRUE +#define TRUE 1 +#endif + +#ifndef FALSE +#define FALSE 0 +#endif +*/ + +#ifndef __cplusplus + #define true 1 + #define false 0 + #define bool _Bool +#endif /* ifndef __cplusplus */ + +#ifndef NULL + #define NULL ((void *)0) +#endif + +#define TAU_LITTLE_ENDIAN 1234 /**< \brief 小端模式 */ +#define TAU_BIG_ENDIAN 3412 /**< \brief 大端模式 */ + +/** @} */ + +/******************************************************************************/ + +/** + * \name 常用宏定义 + * @{ + */ + +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +#define TAU_INLINE inline +#define TAU_STATIC_INLINE static inline +#define TAU_STATIC static +#define TAU_CONST const +#define TAU_EXTERN extern + +#define MIN(x, y) (((x) < (y)) ? (x) : (y)) +#define MAX(x, y) (((x) > (y)) ? (x) : (y)) + +/** + * \brief 求结构体成员的偏移 + * \attention 不同平台上,由于成员大小和内存对齐等原因, + * 同一结构体成员的偏移可能是不一样的 + * + * \par 示例 + * \code + * struct my_struct { + * int m1; + * char m2; + * }; + * int offset_m2; + * + * offset_m2 = TAU_OFFSET(struct my_struct, m2); + * \endcode + */ +#define TAU_OFFSET(structure, member) ((uint32_t)(&(((structure *)0)->member))) + +/** @} */ + +/** + * \brief 通过结构体成员指针获取包含该结构体成员的结构体 + * + * \param ptr 指向结构体成员的指针 + * \param type 结构体类型 + * \param member 结构体中该成员的名称 + * + * \par 示例 + * \code + * struct my_struct = { + * int m1; + * char m2; + * }; + * struct my_struct my_st; + * char *p_m2 = &my_st.m2; + * struct my_struct *p_st = TAU_CONTAINER_OF(p_m2, struct my_struct, m2); + * \endcode + */ +#define TAU_CONTAINER_OF(ptr, type, member) \ + ((type *)((char *)(ptr)-TAU_OFFSET(type, member))) + +/** + * \brief 计算结构体成员的大小 + * + * \code + * struct a = { + * uint32_t m1; + * uint32_t m2; + * }; + * int size_m2; + * + * size_m2 = TAU_MEMBER_SIZE(a, m2); //size_m2 = 4 + * \endcode + */ +#define TAU_MEMBER_SIZE(structure, member) (sizeof(((structure *)0)->member)) + +/** + * \brief 计算数组元素个数 + * + * \code + * int a[] = {0, 1, 2, 3}; + * int element_a = TAU_NELEMENTS(a); // element_a = 4 + * \endcode + */ +#define TAU_NELEMENTS(array) (sizeof(array) / sizeof((array)[0])) + +/** + * \brief 向上舍入 + * + * \param x 被运算的数 + * \param align 对齐因素 + * + * \code + * int size = TAU_ROUND_UP(15, 4); // size = 16 + * \endcode + */ +#define TAU_ROUND_UP(x, align) (((int)(x)/(align))*(align) + (((int)(x)%(align)) ? (align) : 0)) + +/** + * \brief 向下舍入 + * + * \param x 被运算的数 + * \param align 对齐因素 + * + * \code + * int size = TAU_ROUND_DOWN(15, 4); // size = 12 + * \endcode + */ +#define TAU_ROUND_DOWN(x, align) (((int)(x)/(align))*(align)) + +/** \brief 倍数向上舍入 */ +#define TAU_DIV_ROUND_UP(n, d) (((n) + (d)-1) / (d)) + +/** + * \brief 测试是否对齐 + * + * \param x 被运算的数 + * \param align 对齐因素,必须为2的乘方 + * + * \code + * if (TAU_ALIGNED(x, 4) { + * ; // x对齐 + * } else { + * ; // x不对齐 + * } + * \endcode + */ +#define TAU_ALIGNED(x, align) (((int)(x) & (align - 1)) == 0) + +/** \brief 将1字节BCD数据转换为16进制数据 */ +#define TAU_BCD_TO_HEX(val) (((val)&0x0f) + ((val) >> 4) * 10) + +/** \brief 将1字节16进制数据转换为BCD数据 */ +#define TAU_HEX_TO_BCD(val) ((((val) / 10) << 4) + (val) % 10) + +/** + * \brief 向上取整 + */ +#define TAU_CEIL(val) ceil(val) + + +/*! @brief Construct the version number for drivers. */ +#define MAKE_VERSION(major, minor, bugfix) (((major) << 16) | ((minor) << 8) | (bugfix)) + + +/******************************************************************************* +* 3.Global structures, unions and enumerations using typedef +*******************************************************************************/ +/* \brief 通用回调函数指针定义 */ +typedef void (*fcb_type)(void *data); + +#endif /* __TAU_COMMON_H */ diff --git a/src/common/tau_delay.h b/src/common/tau_delay.h new file mode 100644 index 0000000..b4a64ca --- /dev/null +++ b/src/common/tau_delay.h @@ -0,0 +1,34 @@ +/** + * File Name: tau_delay.h + * + * + * + * Author: Fortsense 3D Firmware Team + * + * Date: 2020/12/04 + * + * Project: Taurus + * + * Description: + * + * HISTORY: +**/ +#ifndef _DELAY_H_ +#define _DELAY_H_ +#include "stdint.h" + +/** +* @brief delay ms 函数,误差2%以内 +* @param ms:delay时长 +* @retval none +*/ +void delayMs(uint32_t ms); + +/** +* @brief delay us 函数,误差2%以内 +* @param us:delay时长 +* @retval none +*/ +void delayUs(uint32_t us); + +#endif diff --git a/src/common/tau_device_datatype.h b/src/common/tau_device_datatype.h new file mode 100644 index 0000000..99b2397 --- /dev/null +++ b/src/common/tau_device_datatype.h @@ -0,0 +1,167 @@ +/******************************************************************************* + * + * + * File: tau_device_datatype.h + * Description device datatype + * Version V0.1 + * Date 2020-12-04 + * Author kevin + *******************************************************************************/ + +#ifndef _TAU_DEVICE_DATATYPE_H_ +#define _TAU_DEVICE_DATATYPE_H_ + + +/******************************************************************************* +* 1.Included files +*******************************************************************************/ + +#include "stdint.h" +#include "tau_common.h" + +/******************************************************************************* +* 2.Global constant and macro definitions using #define +*******************************************************************************/ + +/******************************************************************************* +* 3.Global structures, unions and enumerations using typedef +*******************************************************************************/ +/*! @brief 计算组状态码 */ +#define MAKE_STATUS(group, code) ((((group)*100) + (code))) + +/******************************************************************************* +* 3.Global structures, unions and enumerations using typedef +*******************************************************************************/ +/*! @brief 分组状态值 */ +enum _status_groups +{ + STATUS_GROUP_GENERIC = 0, + STATUS_GROUP_I2C = 1, + STATUS_GROUP_UART = 2, + STATUS_GROUP_SPI = 3, + kStatusGroup_Timer = 4, +}; + +/*! @brief 常用状态码 */ +enum _generic_status +{ + STATUS_SUCCESS = MAKE_STATUS(STATUS_GROUP_GENERIC, 0), + STATUS_FAIL = MAKE_STATUS(STATUS_GROUP_GENERIC, 1), + STATUS_READ_ONLY = MAKE_STATUS(STATUS_GROUP_GENERIC, 2), + STATUS_OUT_OF_RANGE = MAKE_STATUS(STATUS_GROUP_GENERIC, 3), + STATUS_INVALID_ARGUMENT = MAKE_STATUS(STATUS_GROUP_GENERIC, 4), + STATUS_TIME_OUT = MAKE_STATUS(STATUS_GROUP_GENERIC, 5), + STATUS_NO_TRANSFER_IN_PROGRESS = MAKE_STATUS(STATUS_GROUP_GENERIC, 6), +}; + +/*! + * @brief timer状态 + */ +typedef enum +{ + TIMER_STATUS_IDLE = MAKE_STATUS(kStatusGroup_Timer, 0), /*!< 空闲 */ + TIMER_STATUS_RUNNING = MAKE_STATUS(kStatusGroup_Timer, 1), /*!< 运行中 */ + TIMER_STATUS_TIMEOUT = MAKE_STATUS(kStatusGroup_Timer, 2), /*!< 超时 */ +} timer_status_e; + +/*! + * @brief system触发事件(中断/复位)模式 + */ +typedef enum +{ + DETECT_HIGH_LVL = 0, + DETECT_LOW_LVL, + DETECT_RISING_EDGE, + DETECT_FALLING_EDGE +} sys_cfg_trigger_e; + +/** +* @brief GPIO interrupt type +*/ +typedef enum +{ + TIMER_NUM0 = 0, + TIMER_NUM1, + TIMER_NUM2, + TIMER_NUM3, + TIMER_NUM_MAX +} timer_num_e; + +/** +* @brief GPIO interrupt type +*/ +typedef enum +{ + GPIO_INT_EXTI_INT0 = 0, + GPIO_INT_EXTI_INT1, + GPIO_INT_EXTI_INT2, + GPIO_INT_EXTI_INT3, + GPIO_INT_EXTI_INT4, + GPIO_INT_EXTI_INT5, + GPIO_INT_EXTI_INT6, + GPIO_INT_EXTI_INT7, + GPIO_INT_MAX +} gpio_int_e; + +/*! @brief PWMI中断类型 */ +typedef enum _pwm_int_type +{ + PWM_INT_HIGH_OVERFLOW = 0, + PWM_INT_LOW_OVERFLOW, + PWM_INT_TOTAL_OVERFLOW, + PWM_INT_HIGH_DONE, + PWM_INT_LOW_DONE, + PWM_INT_TOTAL_DONE, + PWM_INT_MAX +} pwm_int_type_e; + +/** +* @brief I2C chose +*/ +typedef enum +{ + I2C_SELECT_0 = 0, //常用slave + I2C_SELECT_1, //常用master +} i2c_select_e; + +/*! + * @brief 传输速度 + * @note + */ +typedef enum _i2c_rate +{ + I2C_RATE_STANDARD = 1, //100kHz + I2C_RATE_FAST, //400kHz + I2C_RATE_HIGH, //1MHz +} i2c_rate_e; + +/*! @brief DMA channel type */ +typedef enum +{ + DMA_CH0 = 0, /*!< SPIM */ + DMA_CH1 = 1, /*!< IIC0 */ + DMA_CH2 = 2, /*!< SPIS */ + DMA_CH3 = 3, /*!< IIC1 */ + DMA_CH4 = 4, /*!< SPI FLASH */ + DMA_CH5 = 5, /*!< UART */ +} dma_channel_e; + + +/*! @brief Type used for all status and error return values. */ + +typedef enum +{ + DISABLE = 0, + ENABLE = !DISABLE +} function_state_e; +/*!< @brief 用于返回状态和错误 */ +typedef int32_t status_t; + + + +/******************************************************************************* +* 4.Global variable extern declarations +*******************************************************************************/ + +#endif + diff --git a/src/common/tau_dsi_datatype.h b/src/common/tau_dsi_datatype.h new file mode 100644 index 0000000..fe706a4 --- /dev/null +++ b/src/common/tau_dsi_datatype.h @@ -0,0 +1,374 @@ +/******************************************************************************* +* +* +* File: tau_dsi_datatype.h +* Description: mipi dsi 通用头文件 +* Version: V0.1 +* Date: 2021-01-13 +* Author: lzy + *******************************************************************************/ + +#ifndef __MIPI_DSI_COMMON_H__ +#define __MIPI_DSI_COMMON_H__ + +/******************************************************************************* +* 1.Included files +*******************************************************************************/ +#include "tau_common.h" + +/******************************************************************************* +* 2.Global constant and macro definitions using #define +*******************************************************************************/ +#define DSC_PPS_SIZE 128 + +/******************************************************************************* +* 3.Global structures, unions and enumerations using typedef +*******************************************************************************/ +/** +* @brief Data Types for Peripheral-sourced Packets,From Mipi DSI Spec +*/ +typedef enum +{ + DSI_ACK_DT_ERROR = 0x02, + DSI_ACK_DT_EOTP = 0x08, + DSI_ACK_DT_GEN_SHORT_RESPONSE_1B = 0x11, + DSI_ACK_DT_GEN_SHORT_RESPONSE_2B = 0x12, + DSI_ACK_DT_GEN_LONG_RESPONSE = 0x1A, + DSI_ACK_DT_DSC_LONG_RESPONSE = 0x1C, + DSI_ACK_DT_DSC_SHORT_RESPONSE_1B = 0x21, + DSI_ACK_DT_DSC_SHORT_RESPONSE_2B = 0x22, + DSI_ACK_DT_MAX +} dsi_ack_data_type_e; + +/** +* @brief Software handle data types +*/ +typedef enum +{ + DSI_RECV_DT_PPS = 0x0A, //Picture Parameter Set + DSI_RECV_DT_GEN_WRITE_1B = 0x13, //Generic Short WRITE, 1 parameter + DSI_RECV_DT_GEN_WRITE_2B = 0x23, //Generic Short WRITE, 2 parameters + DSI_RECV_DT_GEN_READ_0B = 0x04, //Generic READ, no parameters + DSI_RECV_DT_GEN_READ_1B = 0x14, //Generic READ, 1 parameter + DSI_RECV_DT_GEN_READ_2B = 0x24, //Generic READ, 2 parameters + DSI_RECV_DT_DCS_WRITE_0B = 0x05, //DCS Short WRITE, no parameters + DSI_RECV_DT_DCS_WRITE_1B = 0x15, //DCS Short WRITE, 1 parameter + DSI_RECV_DT_DCS_READ_0B = 0x06, //DCS READ, no parameters + DSI_RECV_DT_GEN_WRITE_LONG = 0x29, //Generic Long Write + DSI_RECV_DT_DCS_WRITE_LONG = 0x39, //DCS Long Write/write_LUT Command Packet + DSI_RECV_DT_MAX +} dsi_data_type_e; + +typedef enum +{ + DCS_ENTER_IDLE_MODE = 0x39, + DCS_ENTER_INVERT_MODE = 0x21, + DCS_ENTER_NORMAL_MODE = 0x13, + DCS_ENTER_PARTIAL_MODE = 0x12, + DCS_ENTER_SLEEP_MODE = 0x10, + DCS_EXIT_IDLE_MODE = 0x38, + DCS_EXIT_INVERT_MODE = 0x20, + DCS_EXIT_SLEEP_MODE = 0x11, + DCS_GET_3D_CONTROL = 0x3F, + DCS_GET_ADDRESS_MODE = 0x0B, + DCS_GET_BLUE_CHANNEL = 0x08, + DCS_GET_COMPRESSION_MODE = 0x03, + DCS_GET_DIAGNOSTIC_RESULT = 0x0F, + DCS_GET_DISPLAY_MODE = 0x0D, + DCS_GET_GREEN_CHANNEL = 0x07, + DCS_GET_PIXEL_FORMAT = 0x0C, + DCS_GET_POWER_MODE = 0x0A, + DCS_GET_RED_CHANNEL = 0x06, + DCS_GET_SCANLINE = 0x45, + DCS_GET_SIGNAL_MODE = 0x0E, + DCS_NOP = 0x00, + DCS_READ_DDB_CONTINUE = 0xA8, + DCS_READ_DDB_START = 0xA1, + DCS_READ_MEMORY_CONTINUE = 0x3E, + DCS_READ_MEMORY_START = 0x2E, + DCS_SET_3D_CONTROL = 0x3D, + DCS_SET_ADDRESS_MODE = 0x36, + DCS_SET_COLUMN_ADDRESS = 0x2A, + DCS_SET_DISPLAY_OFF = 0x28, + DCS_SET_DISPLAY_ON = 0x29, + DCS_SET_GAMMA_CURVE = 0x26, + DCS_SET_PAGE_ADDRESS = 0x2B, + DCS_SET_PARTIAL_COLUMNS = 0x31, + DCS_SET_PARTIAL_ROWS = 0x30, + DCS_SET_PIXEL_FORMAT = 0x3A, + DCS_SET_SCROLL_AREA = 0x33, + DCS_SET_SCROLL_START = 0x37, + DCS_SET_TEAR_OFF = 0x34, + DCS_SET_TEAR_ON = 0x35, + DCS_SET_TEAR_SCANLINE = 0x44, + DCS_SET_VSYNC_TIMING = 0x40, + DCS_SOFT_RESET = 0x01, + DCS_WRITE_LUT = 0x2D, + DCS_WRITE_MEMORY_CONTINUE = 0x3C, + DCS_WRITE_MEMORY_START = 0x2C +} dsi_dcs_cmd_type_e; + +/** +* @brief video data transfer mode +*/ +typedef enum +{ + DSI_DATA_VIDEO_MODE = 0, + DSI_DATA_CMD_MODE = 1, + DSI_DATA_MODE_MAX +} dsi_video_data_mode_e; + +/** +* @brief dsi virtual channel +*/ +typedef enum +{ + DSI_VC_0 = 0, + DSI_VC_1 = 1, + DSI_VC_2 = 2, + DSI_VC_3 = 3, + DSI_VC_MAX +} dsi_virtual_channel_e; + +/** +* @brief video data mode +*/ +typedef enum +{ + DSI_FRAME_RATE_60HZ = 0, + DSI_FRAME_RATE_90HZ = 1, + DSI_FRAME_RATE_120HZ = 2, + DSI_FRAME_RATE_144HZ = 3, + DSI_FRAME_RATE_160HZ = 4, + DSI_FRAME_RATE_MAX +} dsi_video_frame_rate_e; + +/** +* @brief dsi rx color coding +*/ +typedef enum +{ + DSI_RGB565 = 1, + DSI_RGB666 = 2, /*!< 18 bbp(18bits per pixel) */ + DSI_RGB666_LOOSELY = 3, /*!< 24 bbp(24bits per pixel) */ + DSI_RGB888 = 4, /*!< 24 bbp(24bits per pixel) */ + DSI_RGB10_10_10 = 5, + DSI_RGB12_12_12 = 6, + DSI_YCbCr422_16 = 7, + DSI_PENTILE_16 = DSI_YCbCr422_16, + DSI_YCbCr422_20_LOOSELY = 8, + DSI_YCbCr422_24 = 9, + DSI_YCbCr420_12 = 10, + DSI_COLOR_CODE_MAX +} dsi_color_code_e; + +/** +* @brief dpi endianness type +*/ +typedef enum +{ + DPI_ENDIAN_RGB = 0, + DPI_ENDIAN_BGR +} dpi_endianness_type_e; + +/** +* @brief dpi polarity type +*/ +typedef enum +{ + DPI_SIG_ACTIVE_HIGH = 0, + DPI_SIG_ACTIVE_LOW = 1 +} dpi_polarity_e; + +/** +* @brief mipi lane number +*/ +typedef enum +{ + DSI_LANE_1 = 1, + DSI_LANE_2 = 2, + DSI_LANE_3 = 3, + DSI_LANE_4 = 4, + DSI_LANE_NUME_MAX +} dsi_lane_nume_e; + +/** +* @brief video mode +*/ +typedef enum +{ + DSI_NONBURST_PULSE = 0, + DSI_NONBURST_EVENT = 1, + DSI_BURST_MODE = 2, + DSI_VIDEO_MODE_MAX +} dsi_video_mode_type_e; + +/** +* @brief panel init cmd transfer type +*/ +typedef enum +{ + DSI_CMD_TX_HS = 0, + DSI_CMD_TX_LP = 1 +} dsi_tx_cmd_tx_type_e; + +/** +* @brief dpi tx vpg style +*/ +typedef enum +{ + TX_VPG_V_COLOR = 0, + TX_VPG_H_COLOR = 1, + TX_VPG_V_BER = 2, + TX_VPG_FLICKER = 3, + TX_VPG_CHESSBOARD = 4, + TX_VPG_MAX +} dsi_tx_vpg_style_e; + +#if defined(ISP_568) || defined(ISP_368) +/** +* @brief angle of rotation +*/ +typedef enum +{ + VIDOE_ROT_ANGLE_0 = 0, /* 不旋转 */ + VIDOE_ROT_ANGLE_90 = 1, /* 旋转90度 */ + VIDOE_ROT_ANGLE_180 = 2, /* 旋转180度 */ + VIDOE_ROT_ANGLE_270 = 3, /* 转转270度 */ + VIDOE_ROT_ANGLE_MAX +} video_rotate_angle_e; + +/** +* @brief mipi rx lane swap +*/ +typedef enum +{ + RX_LANE_ORDER_DEFAULT = 0x0, + RX_LANE_ORDER_3012 = RX_LANE_ORDER_DEFAULT, + RX_LANE_ORDER_3210 = 0x1, + RX_LANE_ORDER_MAX +} dsi_rx_lane_swap_e; + +/** +* @brief LTPO mode +*/ +typedef enum +{ + LTPO_MODE_NONE = 0, + LTPO_MODE_1 = 1, + LTPO_MODE_2 = 2, + LTPO_MODE_MAX +} ltpo_mode_e; + +/** +* @brief transform 基本信息 +*/ +typedef struct +{ + ltpo_mode_e ltpo; /* ltpo 模式 */ + bool mirror_en; /* 对video 做水平镜像标志位 */ + video_rotate_angle_e rot_angle; /* 对video 做旋转的角度 */ + dsi_video_data_mode_e dst_mode; /* mipi tx 输出video 数据传输模式(video/cmd mode) */ + dsi_rx_lane_swap_e rx_lane_swap; /* rx lane swap */ +} dsi_base_extra_info_t; +#endif + +/** +* @brief mipi P/N lane swap flag +* eg: pn_swap = RX_LANE_0_PN_SWAP | RX_LANE_CLK_PN_SWAP; +* 表示 lane0 与 CLK 的P跟N交换,其他lane不变 +*/ +typedef enum +{ + RX_LANE_0_PN_SWAP = 0x1, + RX_LANE_1_PN_SWAP = 0x2, + RX_LANE_2_PN_SWAP = 0x4, + RX_LANE_3_PN_SWAP = 0x8, + RX_LANE_CLK_PN_SWAP = 0x10 +} dsi_rx_lane_pn_swap_e; + +/** +* @brief error processing level +*/ +typedef enum +{ + ERR_HANDLE_NONE = 0, + ERR_HANDLE_L1 = 1, + ERR_HANDLE_L2 = 2, + ERR_HANDLE_L3 = 3, + ERR_HANDLE_MAX +} hal_err_handle_level_e; + +/** +* @brief transform 基本信息 +*/ +typedef struct +{ + uint32_t src_w; /* mipi rx 接收的 width */ + uint32_t src_h; /* mipi rx 接收的 height */ + uint32_t dst_w; /* mipi tx 发送的 width */ + uint32_t dst_h; /* mipi tx 发送的 height */ + dsi_video_frame_rate_e src_frate; /* mipi rx 接收的frame rate */ + dsi_video_data_mode_e src_mode; /* mipi rx 接收video 数据传输模式(video/cmd mode) */ + uint16_t pn_swap; /* mipi rx P/N swap标志位 */ +#if defined(ISP_568) || defined(ISP_368) + dsi_base_extra_info_t extra_info; /* ISP_568/ISP_368 新增功能配置 */ +#endif +} dsi_base_trans_info_t; + +/** +* @brief ccm系数 +*/ +typedef struct +{ + uint32_t coef_c00; + uint32_t coef_c01; + uint32_t coef_c02; + uint32_t coef_c10; + uint32_t coef_c11; + uint32_t coef_c12; + uint32_t coef_c20; + uint32_t coef_c21; + uint32_t coef_c22; +} ccm_coef_t; + +/** +* @brief video mode display timing +*/ +typedef struct +{ + uint32_t vsa; + uint32_t vbp; + uint32_t vact; + uint32_t vfp; + uint32_t hsa; + uint32_t hbp; + uint32_t hact; + uint32_t hfp; +} vid_disp_timing_t; + +/** +* @brief dpi极性配置 +*/ +typedef struct +{ + dpi_polarity_e vsync_active_level; //vsync极性 + dpi_polarity_e hsync_active_level; //hsync极性 + dpi_polarity_e dataen_active_level; //dataen极性 + dpi_polarity_e shutdown_active_level; //shutdown极性 + dpi_polarity_e colorm_active_level; //colorm极性 +} dpi_polarity_t; + +/** +* @brief hight performan mode level +*/ +typedef enum +{ + HIGHT_PERFORMAN_NONE = 0, + HIGHT_PERFORMAN_L1 = 1, + HIGHT_PERFORMAN_L2 = 2, + HIGHT_PERFORMAN_MAX +} hight_performan_mode_e; + + +#endif //__MIPI_DSI_COMMON_H__ diff --git a/src/common/tau_log.h b/src/common/tau_log.h new file mode 100644 index 0000000..dcf1f18 --- /dev/null +++ b/src/common/tau_log.h @@ -0,0 +1,83 @@ +/******************************************************************************* +* +* +* File: tau_log.h +* Description log file +* Version V0.1 +* Date 2020-12-08 +* Author linyw +*******************************************************************************/ +#ifndef _TAU_LOG_H_ +#define _TAU_LOG_H_ + + +/******************************************************************************* +* 1.Included files +*******************************************************************************/ +#include +#include +#include +#include "ArmCM0.h" + +/******************************************************************************* +* 2.Global constant and macro definitions using #define +*******************************************************************************/ + +#ifdef LOG_TAG + #undef LOG_TAG +#endif +#define LOG_TAG "tau_log" +#define LOG_CURREN_LEVEL kLOG_LEVEL_DBG /* 配置打印等级 TODO:每个模块可配置打印等级 */ + +/* + * Using the following three macros for conveniently logging. + */ +#if EDA_MODE +#define TAU_LOGD(format,...) +#define TAU_LOGI(format,...) +#define TAU_LOGE(format,...) +#else +#define TAU_LOGD(format,...) \ + do { \ + if (LOG_CURREN_LEVEL <= kLOG_LEVEL_DBG) { \ + LOG_printf("[%s] (%04d) " format, LOG_TAG, __LINE__, ##__VA_ARGS__); \ + }; \ + } while (0) + + +#define TAU_LOGI(format,...) \ + do { \ + if (LOG_CURREN_LEVEL <= kLOG_LEVEL_INF) { \ + LOG_printf("[%s] (%04d) " format, LOG_TAG, __LINE__, ##__VA_ARGS__); \ + }; \ + } while (0) + +#define TAU_LOGE(format,...) \ + do { \ + if (LOG_CURREN_LEVEL <= kLOG_LEVEL_ERR) { \ + LOG_printf("error [%s] (%04d) " format, LOG_TAG, __LINE__, ##__VA_ARGS__); \ + }; \ + } while (0) +#endif + +/******************************************************************************* +* 3.Global structures, unions and enumerations using typedef +*******************************************************************************/ +typedef enum +{ + kLOG_LEVEL_DBG = 0, + kLOG_LEVEL_INF, + kLOG_LEVEL_ERR, + kLOG_LEVEL_NONE /* 不打印任何参数 */ +} log_level_t; + +/******************************************************************************* +* 4.Global variable extern declarations +*******************************************************************************/ + +/******************************************************************************* +* 5.Global function prototypes +*******************************************************************************/ +void LOG_printf(const char *fmt, ...); + +#endif diff --git a/src/common/tau_operations.h b/src/common/tau_operations.h new file mode 100644 index 0000000..da2f90b --- /dev/null +++ b/src/common/tau_operations.h @@ -0,0 +1,229 @@ +/******************************************************************************* +* +* +* File: tau_operations.h +* Description 位操作与字节操作相关定义头文件 +* Version V0.1 +* Date 2020-09-07 +* Author lzy + *******************************************************************************/ +#ifndef __TAU_BYTEOPS_H +#define __TAU_BYTEOPS_H + +/** + * \name 通用位常数定义 + * @{ + */ + +/** \brief 长整数位数 */ +#ifndef TAU_BITS_PER_LONG + #define TAU_BITS_PER_LONG 32 +#endif + +/** \brief 字节位数 */ +#define TAU_BITS_PER_BYTE 8 + +/** @} */ + + +/******************************************************************************/ + +/** + * \name 通用位操作 + * @{ + */ + +/** \brief bit移位 + * TAU_BIT(2) is 0x4 + */ +#define TAU_BIT(bit) (1u << (bit)) + +/** \brief 值移位 + * TAU_SBF(0xFF, 8) is 0xff00 + */ +#define TAU_SBF(value, field) ((value) << (field)) + +/** \brief bit置位 + * TAU_BIT_SET(0, 8) is 0x100 + */ +#define TAU_BIT_SET(data, bit) ((data) |= TAU_BIT(bit)) + +/** \brief bit清零 + * TAU_BIT_CLR(0xFF, 2) is 0xfb + */ +#define TAU_BIT_CLR(data, bit) ((data) &= ~TAU_BIT(bit)) + +/** \brief bit置位, 根据 mask 指定的位 + * TAU_BIT_SET_MASK(0xF0F0, 0xF00) is 0xfff0 + */ +#define TAU_BIT_SET_MASK(data, mask) ((data) |= (mask)) + +/** \brief bit清零, 根据 mask 指定的位 + * TAU_BIT_CLR_MASK(0xFFFF, 0xFF00) is 0xff + */ +#define TAU_BIT_CLR_MASK(data, mask) ((data) &= ~(mask)) + +/** \brief bit翻转 + * TAU_BIT_TOGGLE(0xFFFF, 0) is 0xfffe + * TAU_BIT_TOGGLE(0x0000, 1) is 0x2 + */ +#define TAU_BIT_TOGGLE(data, bit) ((data) ^= TAU_BIT(bit)) + +/** \brief bit修改 + * TAU_BIT_MODIFY(0, 8, 1) is 0x100 + * TAU_BIT_MODIFY(0xFFFF, 1, 0) is 0xfffd + */ +#define TAU_BIT_MODIFY(data, bit, value) \ + ((value) ? TAU_BIT_SET(data, bit) : TAU_BIT_CLR(data, bit)) + +/** \brief 测试bit是否置位 + * TAU_BIT_ISSET(0xF0F1, 1) is 0 + * TAU_BIT_ISSET(0xF0F2, 1) is 2 + */ +#define TAU_BIT_ISSET(data, bit) ((data) & TAU_BIT(bit)) + +/** \brief 获取bit值 + * TAU_BIT_GET(0xF0F1, 1) is 0 + * TAU_BIT_GET(0xF0F2, 1) is 1 + */ +#define TAU_BIT_GET(data, bit) (TAU_BIT_ISSET(data, bit) ? 1 : 0) + +/** \brief 检测bit值 + * TAU_BIT_CHECK(0xF5FF, 4) is 1 + */ +#define TAU_BIT_CHECK(data, bit) \ + (((data) & TAU_BIT(bit)) ? 1 : 0) + +/** \brief 获取 n bits 掩码值 + * TAU_BITS_MASK(2) is 0x3 + */ +#define TAU_BITS_MASK(n) (~((~0u) << (n))) + +/** \brief 获取位段值 + * TAU_BITS_GET(0xF5FF, 0x0F00, 8) is 0x5 + */ +#define TAU_BITS_GET(data, mask, pos) \ + (((data) & (mask)) >> (pos)) + +/** \brief 获取位段值 + * TAU_BITS_CHECK(0xF5FF, 0x0F00) is 1 + */ +#define TAU_BITS_CHECK(data, mask) \ + (((data) & (mask)) ? 1 : 0) + +/** \brief 修改位段值 + * TAU_BITS_MODIFY(0xF5FF, 0x0FF0, 0x8A0) is 0xF8AF +*/ +#define TAU_BITS_MODIFY(data, clear_mask, set_mask) \ + (data) = (((data) & (~(clear_mask))) | (set_mask)) + +/** \brief 设置位段值 + * TAU_WRITE_REG32(0x05FF, 0xFFFA) is 0xFFFA +*/ +#define TAU_WRITE_REG32(data, value) ((data) = (value)) + +/** \brief 设置位段值 + * TAU_READ_REG32(0x05FF) is 0x05FF +*/ +#define TAU_READ_REG32(data) (data) + + +/** @} */ + +/******************************************************************************/ + +/** + * \brief 取2-byte整数的高位byte + * + * \par 示例 + * \code + * uint16_t a = 0x1234; + * uint16_t b; + * + * b = TAU_MSB(a); //b=0x12 + * \endcode + */ +#define TAU_MSB(x) (((x) >> 8) & 0xff) + +/** + * \brief 取2-byte整数的低位byte + * + * \par 示例 + * \code + * uint16_t a = 0x1234; + * uint16_t b; + * + * b = TAU_LSB(a); //b=0x34 + * \endcode + */ +#define TAU_LSB(x) ((x) & 0xff) + +/** + * \brief 取2-word整数的高位word + * + * \par 示例 + * \code + * uint32_t a = 0x12345678; + * uint32_t b; + * + * b = TAU_MSW(a); //b=0x1234 + * \endcode + */ +#define TAU_MSW(x) (((x) >> 16) & 0xffff) + +/** + * \brief 取2-word整数的低位word + * + * \par 示例 + * \code + * uint32_t a = 0x12345678; + * uint32_t b; + * + * b = TAU_LSW(a); //b=0x5678 + * \endcode + */ +#define TAU_LSW(x) ((x) & 0xffff) + +/** + * \brief 交换32-bit整数的高位word和低位word + * + * \par 示例 + * \code + * uint32_t a = 0x12345678; + * uint32_t b; + * + * b = TAU_WORDSWAP(a); //b=0x56781234 + * \endcode + */ +#define TAU_WORDSWAP(x) (TAU_MSW(x) | (TAU_LSW(x) << 16)) + +/** + * \brief 交换32-bit整数的字节顺序 + * + * \par 示例 + * \code + * uint32_t a = 0x12345678; + * uint32_t b; + * + * b = TAU_LONGSWAP(a); //b=0x78563412 + * \endcode + */ +#define TAU_LONGSWAP(x) ((TAU_LLSB(x) << 24) | \ + (TAU_LNLSB(x) << 16) | \ + (TAU_LNMSB(x) << 8) | \ + (TAU_LMSB(x))) + +#define TAU_LLSB(x) ((x) & 0xff) /**< \brief 取32bit整数第1个字节 */ +#define TAU_LNLSB(x) (((x) >> 8) & 0xff) /**< \brief 取32bit整数第2个字节 */ +#define TAU_LNMSB(x) (((x) >> 16) & 0xff) /**< \brief 取32bit整数第3个字节 */ +#define TAU_LMSB(x) (((x) >> 24) & 0xff) /**< \brief 取32bit整数第4个字节 */ +#define TAU_LNSB(x,n) (((x) >> ((n) * 8) ) & 0xff) /**< \brief 取32bit整数第n个字节 ,参数 0 - 3*/ + +/** + * @} + */ + +#endif /* __TAU_BYTEOPS_H */ + +/* end of file */ + diff --git a/src/sdk/CVWL308/lib/CVWL308.lib b/src/sdk/CVWL308/lib/CVWL308.lib new file mode 100644 index 0000000000000000000000000000000000000000..e63982ec1ce2ebfb4ec9b4ff3f7770eb6985a6ec GIT binary patch literal 643866 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

iN+oMIi(9}x2QK?^p94w< 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

D&NrM#CYF9rPR}l6X3oYP@F* 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

(ZTkNHnO_Z*wgFRX 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≪XkQDZ%Fj0c?U@4i`VDehptRmOSpjbeHF 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ˈ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Ϝ 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�jm!GoUSUeNGT_>P7zhP@iT1U{wVOQBQ4%V4F3FN2_lFNcX5u7mfL z7or}hhc`9c0LL^Of^TZL5$@OUa`=RXn;@*=6;Oeg-iuN($d_iihQ08fxP=WPpXV)w z|HAg2^wg&y-F_D zW8mu=9t-zrcpTg;uvwn*ut~!?uwGzue{$h+4d=l^4d=ro4dcK@4Hv?{;`N`Zp9%1? zz~=r;G<-#;_HPn=UE_=3OB%-ZQOj=%^lBKtIjrGn(4gVzut>u*ph&|rAx*;pIEmM9 zs{HsZ1`U_M-w3?hIKKEThEx{^k2k;(hQG@2T@2sI@HGry!f=4$bcTOLg%^R!^BTj? zF|7K&CH(`8{}jV9hSxB>gyCX_vl;%aEG)*feRS)W41|A}L?-`DhQGw{4u&@~Oyjm> zp!{h(qzr@?N`Nt8I&WnltP~$g5Nr1r?7tSG*n6)zPmkhUhH3tu%Dcrf9~sN-xQ$2K zj@x`j)6sQ7`*#<`{|0am#lHr)pW?Rw_EP*afQKl48{lDz{{`SNivJVf35xNgc#7iR z;P=HT{&#?b6#s|$EphL!aC|Z0lK{gMzYB1b;&%X!QT!&r3l#q|j;Epc7XYtN{I3A7 zQv7p(f1vo6IF5#5OvIvr_ce1IvKM_*V$s2iJ}Ge%;6*WR0=(#h@;!?2Bz>Raf5Lxw zLU>Q${e$A43g4#EGnNBCDOqDkswN1d#=@JVzvHSu2vXteVC(^;SixUmLz+ z-SYL;2f2R4Q5n^RF52qL!r}VXaBy2N7+ey>agpSb_cVM(;;X;##_j>bF>3NKQetOM z#BhpfUd;VKX(KLUN*s9+8>u5MVM-l&0aL2g<(o`r2PT=$j!80|9S%z8m#vXD@}f18 zM_jTZm0hruYIV6%y5+^1B>1Ij5F;*BN*#HbQtHTyRHRz$_{a;CwDQDd*Pu$VD^R7_ z^`}zo>QgCp?WvT-0hT4SIL4B)*jt;6Yg2gRP;b~gjZ+>@tBsRejx`R4qv6V$*wWgX zNQH%)(^16^zB4cQvy7E4vGwIxW9!SY#@3f(jjd15YFnS4)wVu8FZi>Jl~&mL^sKP; z=~-^;)3e;xr)RnCd0=}QRGZyUev^xrshv!V4raV;1u+WtR6Jk<9Ntm^|X%6E7Qi=ZTk% zyzdxkBX)7*Jttmf*&&RV$+n!`h*AW*4W$Tn6G{>67L+2`4Jbv7IG(apBMzw~M(py4 z&R)FC=3aE(z4=*r6&%s8JnyAAZJ&brP^qYG9~MWV(6A!oM+1v+z>qP9NDd-0M-kC5 zqBcGv1uVP^cHvX5EAN8zj6J${!Sm-y@TkwU?`2>)C{TIQj3x7*Tt3WnwKlpwrn?k% zMHcz3W4czBx_uRsC_lVdNjsN=M&MLMrKhsuO`#J(De7)oruU`I(OV4O*QCCox^k z?=c(Qt4#N_jc%CfUa`?V&UF7~qq~FY(r~}5_Jh7(g@4KVn}#~8dM003s*dX2N>|5p zUO)-9d)UrlhIB6UFuS|&86<3OWjGAxS%1VoAaRArEZr?-LOmD`!030W8Lk?pp9-1Hq5eZrRMPf>aeLy2Dy9((;Y?jziF3?%#RoB!R>{TR7S!RXlnjAl^FFZ>Q;;%rcqzaYOgB%_ zQC{>T-4dn?DmrXhle#HPSF7l-iA(DK2X{g(U!9`ErY5O7!F0`vj>;v=_Z-u$Rdlo+ zsrwVA+o0(1)K2Qi@2*G)4D)raP(VrYpL~neIJBH$&0k@C2=V zP?Bn2W-2-ywxH?!iY}n&aQK0y%T;t(gk(K8FSFif)mE?qNl@ z*gL^BC zLZ(;XMYdA{jHQmgs~qi$Cvfc7#y-P;S50+wO;t@rrS#kt3{a5%yQ-Gr)Kepj?!W6W zbM|{@=dSRkAY6o0XH7 z$e9l><|byeWN(|%0t?0+M{UWC75(i?+AHGgQ2C!-Q_}Ls?_c0Mo_}J}$~)R;o;X=D zrEVQe&3tg&3!6{P{%Q47p~BD$9V@qV!y}<7p_NhE+7NC{ZtK@wnJp{ZDYeH)%`49G z9c%XlPCkQsFbH+{9|!0{-BiT6hZdK3y4HE_ZODJQuIpRHS)Sbu<6ibR`&;U|b~pH6 z%zXIN?>;znDv%a5bNS$HPav1_!Eovnc)D;D)ALI8_2_@lSpU>1A376=Mi;^#q7NhPr-u4mGT_ips4uvASNd&f zpY?stdpDhfbZqQp`7YA@?7x_a-;FqcU1Jz~0nt=IX^gvBuUdK?pyECw)IygVj+Sk{8 zap1$?4@KJ#OJhTb5Ys$ckmu#=F#kn`#ZBDQTX)^Fja zL8c483aU#9@#5F;8lm`RFkLTDUE>GM`?n_sKa7qSLd`8}!|Pkt2Fn9ht{04brnlev zDHS!F5bggluL?b&V=u!#_yOvvEi{9V@o5H6?XDTp7@uzN)E=54o$(n4FWWlW()YCT zWimV-Zc})ggS}l~>JQPJ?j8-N#MB4#89gSmBqq*c-?Dn=)JwACLNc6Vr(-YtslwBo z?vR3MPIsAtX->D!r@;h`PiK5O{Et~YihX1lku7GOM^B0UmoO7 zAf~#ZAK@QiECbG12b?aD3?7_Ne}58@ek^=K!{cBLV%i1DkLDl-H0*`LND@!y49z(V z3QXq+%{iPTFr5=L=kOH9q^ENr- z8ODqKMFV3e*T87F3sQQqnB#zkC<9|A^vvi*LzjVP35=a+1D6U+hM_Z_6Op`D`?ndL zW9%l!qFZR73r>$nlGJTh=S}FuCj101ddwM!_w_>AsAI!BBZCp~sZ^s&ZfrO{81BRl zhV1|wSRL;uEnOG8aVR!0SXyfID>`u0Y(=6Ued%me$It3zi-tQYYaWOmRi!Ul$Vi{Oj4gTqgJE4R^j#PYIGM_q>a&C=WhTPZsBk7M{S?Hzfzk+ z?WzoN`Nx=`>ZHAh>w1}v+BkYAB7@BDYD`e`YesxPiZGTs+K#Gw4{@7??%Pa9wtn?_ zNapu-p_BH7F4R%`ErZm}#RS@}3^YckQ38x5$8`r?>fS@$Y8Ux6V)udSPzJm0?m(TJ z@*TCw??K#v%-h%&R*A0xk9j5p&? zwS|^uo5zDVI!2T=9iOZ4r|K3dI?_lToxiHC3U!nh{n8cPET(HzbhJI0AJ?@iI@*q% zu2a$BqOERF(T#D??NW5=J4RkUdZ#b6S?QIwBsA78y z!1Sc;ZQCIzhI=nAZfJYi|B7eoN?yv$3wb&`xV_v%?Z%dKpYb(8$z2;BTAM$;eZl{I zUDxG46T}j$RSdr-yuRS3l$El+ zU~3|~;O2U~+U@cj&00yPpxwGw^-&}XgRyC?ym?pJZNAT%Hd7)$I(Elo3+cw{SW{W^ zzrgC4+~qSr&gaDDm@EhRjEyB?y`9T+i=z}=us1rnh&}g?UQfr~D34K8X;V^*3$de; z3Len0mth~nX$+_1CwTzB(<4JV<1-k}WY`Zho;(%u;1^2&itLGR2uyuTvM0Wz;gq=1 z;8VR_6K8|!Ly7WRnpy=retdH=y;I5k;XQpuonuk{s^1)L?7IVfH2*m$=e2G=du+OIrQm@uzZUmjN_Tj01E&F5+5@$sTFgA+fLqMth`z@!^4b zXkHxHW!NF{!Og${fzhsM;9`NLow7t=X~&!;Ft=OMfWWh|TZ(HQU#Uboy3uwxn(5Ir zi^;VH&}unU8%`t!gf&tlDl04)vS0NMbVu0=o$&#q0DAt>zFsup4N^AY{%9Ee-$#04 z_&(`0ZJhQNGz;rzWmtLILf-+kk(y{ERui$XeU2ivw|xEqOug1C`rI8zaU$v2%cFbV z4VHHHQ+Zz6o>1q#WT$6J73D2EgXyx&kebTLVv_7?Y(89>QHxM$PLe&Zc2tjOvq!U| z{sxPK(xknW+FWX%Wsu8%jR~rb+T_$bOl+6M3Wu4lA2Ho`WRN=Aj+);N#0RAaW4Yb^ zxUA}`5E#YMUF*)#Ju@7K#qLQnvXGD>`+q2G8%fqNDne<>U6- z6R4wk1v1D*ZomC^+{rRLZZb$6#h9Fs=~HoI8zsP4>INf2XuIu>Y&Wd8WWQZfQHkF< zU1~FSva+_K${0H7;@hXRuNacwJ}rd2r2RJcP+F7k#3uv8Ko;0QQ|Anr_q!KygkiCF z9=w!Tk$%Eo4ByXgYMB8G{`*C5Qys>?c@e(<&f7uE@(B^IKMO?)2(XgQ@XQ>+tT1Umk5BXP|lpQ|vV|>>3Go=((*0U6S4sB=Xq>X>>2$R|( z=o=8f-DO2}_D60C(`UV`$dIw~*TYqY&|#=uw(IfpMEa+is2uBS*IFhowMrfA z8;W*uqQmMdP*KZoRSk4*kso>DxhRyyI7MQU10b9}NyUX$n@MJbPoKn_qa9b{m$PKu z;isb3_iY@!DbgQXd~F|oQEN@(s>SrFDc4_`a=H4sw?fkArYiB3G4p>g8d2 z^R~D#bj`J^DP0>1X&$Av)OjB@8)5eUxANv{q+^X<2 zK2Yz6_~A0-sR&elvcFB#us1oLkM4dYxVfhkaa;=F0aI8RksVl zu2gfL-Jo>Y8Rn5{0x6jIrbbnEvm8Za@Co`J8`{-FY zttHJETa^2>|LL>?MJtT;Aba)zz@gg?cuLZ~*40G1t|qu8{Qx}UGg8yP=6Qlr)Awd# z8r|8{=g&XHu{r!1T5S=ig{v?4H7nlu zPgb+~f?F_`T^V<$uPnIvsDU7BJY825LLZ4acF8Nm%~N``cFBi)oJ(?d&;0nFlV^0J zQL=kNC-TDc`Gx26kJj@!o%K<(>DB)4Ry#`A1JJRTVV^M`Q9 zfJxaU00E4>Xw#sFx9mA0o-1q`_^@Z#G?1icD=)s_GBEaQspsd#4s;d8a!k(@fzj4s z@HiI8;Hd+B#x{?QiJ?JbkN{3K+=ydq@%NXI%+GZos~f@uf+s4 zKWa;`DM|*ZYs3^)*NIqd|FF3;0&PdtQ5#I{u?$l8DNLZ}exD%jrkGX~K`vsmrzQjG zs4Ozr>0UyC8{I_Apjl>yv0Z*2cd7dm)T#FonP0DxH*M~HB+_U>1i2hTEY~q8tgvll zm=Qs8Hz1aENz^v%J{-UVdIFw?Kgur`f2;AQ+I!~VeS_`;WRjq|CmkJ!I{c|R@g(Y-^}wJSO*rqt1GPStgxj><#%QBTKCw@uN}_U&}L6&-EIPPbRl;i9eX2}Osu s(xi^tqYk5v=3B}jj|aC$t;bC6R1T2TQH=GTkn6vJ_wP;#FqXRi2h-8C%K!iX literal 0 HcmV?d00001 diff --git a/src/sdk/CVWL368/lib/CVWL368.lib b/src/sdk/CVWL368/lib/CVWL368.lib new file mode 100644 index 0000000000000000000000000000000000000000..a7749b1d410d7cf40d781754464cb9bcaf03f638 GIT binary patch literal 659364 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 z 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
#{~%Gj!PiQ9hX3qm$P?#nrW&T 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 literal 0 HcmV?d00001 diff --git a/src/sdk/CVWL518/lib/CVWL518.lib b/src/sdk/CVWL518/lib/CVWL518.lib new file mode 100644 index 0000000000000000000000000000000000000000..38983a0a783cedbc4df2dba0435c7b59aad2e361 GIT binary patch literal 643274 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