From 0679b7a66eb3480863f1d78ff5d60ffa7885286d 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: Wed, 17 May 2023 11:15:01 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A6=96=E6=AC=A1=E6=8F=90=E4=BA=A4=201?= =?UTF-8?q?=E3=80=81=E6=98=BE=E7=A4=BA=E5=B7=B2OK=EF=BC=9B=E8=A7=A6?= =?UTF-8?q?=E6=91=B8=E5=9F=BA=E6=9D=BF=E5=85=BC=E5=AE=B9=E5=B7=B2=E5=81=9A?= =?UTF-8?q?=E5=A5=BD=EF=BC=9B=E6=94=AF=E6=8C=81=E5=8F=8C=E5=87=BB=E6=81=AF?= =?UTF-8?q?=E5=B1=8F=E5=92=8C=E5=8F=8C=E5=87=BB=E5=94=A4=E9=86=92=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 85 + project/ISP_568T/ISP_568T.uvprojx | 476 + .../Listings/ISP_568T_S21P_20230511.map | 5371 ++++++++ .../Listings/app_tp_for_custom_s21p.txt | 2147 ++++ project/ISP_568T/Listings/app_tp_st_touch.txt | 1437 +++ project/ISP_568T/Listings/app_tp_transfer.txt | 1193 ++ project/ISP_568T/Listings/board.txt | 63 + project/ISP_568T/Listings/main.txt | 101 + project/ISP_568T/Listings/s21p_demo.txt | 10228 ++++++++++++++++ .../Objects/ISP_568T_S21P_20230511.bin | Bin 0 -> 64004 bytes .../ISP_568T/RTE/_ISP_568T/RTE_Components.h | 21 + project/请先读我(已更新20221018).txt | 9 + src/app/main.c | 62 + src/app/s21p/S21P_demo.c | 3876 ++++++ src/app/s21p/S21P_demo.h | 27 + src/app/s21p/app_tp_for_custom_s21p.c | 938 ++ src/app/s21p/app_tp_for_custom_s21p.h | 109 + .../s21p/app_tp_phone_transfer_data_s21p.h | 28 + .../s21p/app_tp_screen_transfer_data_s21p.h | 65 + src/app/s21p/demo_version.txt | 32 + src/app/test_cfg_global.h | 99 + src/app/touch/app_tp_st_touch.c | 573 + src/app/touch/app_tp_st_touch.h | 170 + src/app/touch/app_tp_transfer.c | 644 + src/app/touch/app_tp_transfer.h | 193 + 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 | 108 + src/common/tau_operations.h | 229 + src/sdk/CVWL308/lib/CVWL308.lib | Bin 0 -> 657712 bytes src/sdk/CVWL368/lib/CVWL368.lib | Bin 0 -> 668752 bytes src/sdk/CVWL518/lib/CVWL518.lib | Bin 0 -> 657088 bytes src/sdk/CVWL518T/lib/CVWL518T.lib | Bin 0 -> 657160 bytes src/sdk/CVWL568/lib/CVWL568.lib | Bin 0 -> 669952 bytes src/sdk/CVWL568T/lib/CVWL568T.lib | Bin 0 -> 670040 bytes src/sdk/include/M0/ArmCM0.h | 213 + src/sdk/include/hal_dsi_rx_ctrl.h | 568 + src/sdk/include/hal_dsi_tx_ctrl.h | 284 + src/sdk/include/hal_flash.h | 109 + 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 | 219 + 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 + 56 files changed, 32414 insertions(+) create mode 100644 .gitignore create mode 100644 project/ISP_568T/ISP_568T.uvprojx create mode 100644 project/ISP_568T/Listings/ISP_568T_S21P_20230511.map create mode 100644 project/ISP_568T/Listings/app_tp_for_custom_s21p.txt create mode 100644 project/ISP_568T/Listings/app_tp_st_touch.txt create mode 100644 project/ISP_568T/Listings/app_tp_transfer.txt create mode 100644 project/ISP_568T/Listings/board.txt create mode 100644 project/ISP_568T/Listings/main.txt create mode 100644 project/ISP_568T/Listings/s21p_demo.txt create mode 100644 project/ISP_568T/Objects/ISP_568T_S21P_20230511.bin create mode 100644 project/ISP_568T/RTE/_ISP_568T/RTE_Components.h create mode 100644 project/请先读我(已更新20221018).txt create mode 100644 src/app/main.c create mode 100644 src/app/s21p/S21P_demo.c create mode 100644 src/app/s21p/S21P_demo.h create mode 100644 src/app/s21p/app_tp_for_custom_s21p.c create mode 100644 src/app/s21p/app_tp_for_custom_s21p.h create mode 100644 src/app/s21p/app_tp_phone_transfer_data_s21p.h create mode 100644 src/app/s21p/app_tp_screen_transfer_data_s21p.h create mode 100644 src/app/s21p/demo_version.txt create mode 100644 src/app/test_cfg_global.h create mode 100644 src/app/touch/app_tp_st_touch.c create mode 100644 src/app/touch/app_tp_st_touch.h create mode 100644 src/app/touch/app_tp_transfer.c create mode 100644 src/app/touch/app_tp_transfer.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_flash.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_568T/ISP_568T.uvprojx b/project/ISP_568T/ISP_568T.uvprojx new file mode 100644 index 0000000..62dee19 --- /dev/null +++ b/project/ISP_568T/ISP_568T.uvprojx @@ -0,0 +1,476 @@ + + + + 2.1 + +
### uVision Project, (C) Keil Software
+ + + + ISP_568T + 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\ + ISP_568T_S21P_20230511 + 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_568 + + ..\..\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;..\CVWL568;..\..\src\app\s21p + + + + 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 + + + S21P_demo.c + 1 + ..\..\src\app\s21p\S21P_demo.c + + + app_tp_transfer.c + 1 + ..\..\src\app\touch\app_tp_transfer.c + + + app_tp_for_custom_s21p.c + 1 + ..\..\src\app\s21p\app_tp_for_custom_s21p.c + + + app_tp_st_touch.c + 1 + ..\..\src\app\touch\app_tp_st_touch.c + + + + + driver + + + CVWL568T.lib + 4 + ..\..\src\sdk\CVWL568T\lib\CVWL568T.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_568T/Listings/ISP_568T_S21P_20230511.map b/project/ISP_568T/Listings/ISP_568T_S21P_20230511.map new file mode 100644 index 0000000..e0aec0c --- /dev/null +++ b/project/ISP_568T/Listings/ISP_568T_S21P_20230511.map @@ -0,0 +1,5371 @@ +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 s21p_demo.o(i.S21P_demo) for S21P_demo + s21p_demo.o(i.S21P_demo) refers to hal_gpio.o(i.hal_gpio_init_output) for hal_gpio_init_output + s21p_demo.o(i.S21P_demo) refers to s21p_demo.o(i.open_mipi_rx) for open_mipi_rx + s21p_demo.o(i.S21P_demo) refers to tau_log.o(i.LOG_printf) for LOG_printf + s21p_demo.o(i.S21P_demo) refers to app_tp_transfer.o(i.app_tp_init) for app_tp_init + s21p_demo.o(i.S21P_demo) refers to hal_gpio.o(i.hal_gpio_get_input_data) for hal_gpio_get_input_data + s21p_demo.o(i.S21P_demo) refers to s21p_demo.o(i.init_mipi_tx) for init_mipi_tx + s21p_demo.o(i.S21P_demo) refers to app_tp_transfer.o(i.app_tp_transfer_screen_start) for app_tp_transfer_screen_start + s21p_demo.o(i.S21P_demo) refers to hal_timer.o(i.hal_timer_init) for hal_timer_init + s21p_demo.o(i.S21P_demo) refers to hal_timer.o(i.hal_timer_start) for hal_timer_start + s21p_demo.o(i.S21P_demo) refers to s21p_demo.o(i.tx_display_on) for tx_display_on + s21p_demo.o(i.S21P_demo) refers to hal_gpio.o(i.hal_gpio_set_ap_reset_int) for hal_gpio_set_ap_reset_int + s21p_demo.o(i.S21P_demo) refers to app_tp_transfer.o(i.app_tp_transfer_screen_int) for app_tp_transfer_screen_int + s21p_demo.o(i.S21P_demo) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_dsc_async_handler) for hal_dsi_rx_ctrl_dsc_async_handler + s21p_demo.o(i.S21P_demo) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_stop) for hal_dsi_tx_ctrl_stop + s21p_demo.o(i.S21P_demo) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_deinit) for hal_dsi_tx_ctrl_deinit + s21p_demo.o(i.S21P_demo) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_stop) for hal_dsi_rx_ctrl_stop + s21p_demo.o(i.S21P_demo) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_deinit) for hal_dsi_rx_ctrl_deinit + s21p_demo.o(i.S21P_demo) refers to hal_swire.o(i.hal_swire_open) for hal_swire_open + s21p_demo.o(i.S21P_demo) refers to hal_swire.o(i.hal_swire_deinit) for hal_swire_deinit + s21p_demo.o(i.S21P_demo) refers to hal_timer.o(i.hal_timer_stop) for hal_timer_stop + s21p_demo.o(i.S21P_demo) refers to hal_timer.o(i.hal_timer_deinit) for hal_timer_deinit + s21p_demo.o(i.S21P_demo) refers to s21p_demo.o(.data) for start_display_on + s21p_demo.o(i.S21P_demo) refers to app_tp_for_custom_s21p.o(.data) for g_tp_sleep_delay_count + s21p_demo.o(i.S21P_demo) refers to s21p_demo.o(i.soft_timer3_cb) for soft_timer3_cb + s21p_demo.o(i.S21P_demo) refers to s21p_demo.o(i.ap_reset_cb) for ap_reset_cb + s21p_demo.o(i.ap_MIPI_RX_CMD_bb) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_write_cmd) for hal_dsi_tx_ctrl_write_cmd + s21p_demo.o(i.ap_dcs_read) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_send_ack_cmd) for hal_dsi_rx_ctrl_send_ack_cmd + s21p_demo.o(i.ap_dcs_read) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_get_max_ret_size) for hal_dsi_rx_ctrl_get_max_ret_size + s21p_demo.o(i.ap_dcs_read) refers to s21p_demo.o(.data) for g_rx_ctrl_handle + s21p_demo.o(i.ap_dcs_read) refers to tau_log.o(i.LOG_printf) for LOG_printf + s21p_demo.o(i.ap_dcs_read) refers to app_tp_st_touch.o(i.ap_get_tp_calibration_status_01) for ap_get_tp_calibration_status_01 + s21p_demo.o(i.ap_get_reg_df) refers to memcpya.o(.text) for __aeabi_memcpy4 + s21p_demo.o(i.ap_get_reg_df) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_ccm) for hal_dsi_tx_ctrl_set_ccm + s21p_demo.o(i.ap_reset_cb) refers to tau_log.o(i.LOG_printf) for LOG_printf + s21p_demo.o(i.ap_reset_cb) refers to hal_system.o(i.hal_system_set_pvd) for hal_system_set_pvd + s21p_demo.o(i.ap_reset_cb) refers to hal_system.o(i.hal_system_set_vcc) for hal_system_set_vcc + s21p_demo.o(i.ap_set_backlight_51) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_write_cmd) for hal_dsi_tx_ctrl_write_cmd + s21p_demo.o(i.ap_set_display_off) 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 + s21p_demo.o(i.ap_set_display_off) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_write_cmd) for hal_dsi_tx_ctrl_write_cmd + s21p_demo.o(i.ap_set_display_off) refers to tau_delay.o(i.delayMs) for delayMs + s21p_demo.o(i.ap_set_display_off) refers to hal_gpio.o(i.hal_gpio_set_output_data) for hal_gpio_set_output_data + s21p_demo.o(i.ap_set_display_off) refers to tau_log.o(i.LOG_printf) for LOG_printf + s21p_demo.o(i.ap_set_display_off) refers to s21p_demo.o(.data) for g_rx_ctrl_handle + s21p_demo.o(i.ap_set_display_on) refers to tau_log.o(i.LOG_printf) for LOG_printf + s21p_demo.o(i.ap_set_enter_sleep_mode) refers to tau_log.o(i.LOG_printf) for LOG_printf + s21p_demo.o(i.ap_set_exit_sleep_mode) refers to tau_log.o(i.LOG_printf) for LOG_printf + s21p_demo.o(i.ap_set_tear_on) 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 + s21p_demo.o(i.ap_set_tear_on) refers to tau_log.o(i.LOG_printf) for LOG_printf + s21p_demo.o(i.ap_set_tear_on) 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 + s21p_demo.o(i.ap_set_tear_on) 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 + s21p_demo.o(i.ap_set_tear_on) refers to s21p_demo.o(.data) for panel_display_done + s21p_demo.o(i.ap_update_frame_rate) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_tear_mode_ex) for hal_dsi_rx_ctrl_set_tear_mode_ex + s21p_demo.o(i.ap_update_frame_rate) refers to s21p_demo.o(.data) for frame_rate + s21p_demo.o(i.frame_start_cb) refers to tau_log.o(i.LOG_printf) for LOG_printf + s21p_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 + s21p_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 + s21p_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 + s21p_demo.o(i.init_mipi_tx) refers to tau_log.o(i.LOG_printf) for LOG_printf + s21p_demo.o(i.init_mipi_tx) refers to s21p_demo.o(.data) for g_tx_ctrl_handle + s21p_demo.o(i.init_panel) refers to s21p_demo.o(i.tx_panel_reset) for tx_panel_reset + s21p_demo.o(i.init_panel) refers to hal_gpio.o(i.hal_gpio_init_output) for hal_gpio_init_output + s21p_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 + s21p_demo.o(i.init_panel) refers to s21p_demo.o(i.send_panel_init_code) for send_panel_init_code + s21p_demo.o(i.init_panel) refers to tau_log.o(i.LOG_printf) for LOG_printf + s21p_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 + s21p_demo.o(i.init_panel) refers to tau_delay.o(i.delayMs) for delayMs + s21p_demo.o(i.init_panel) refers to hal_gpio.o(i.hal_gpio_set_output_data) for hal_gpio_set_output_data + s21p_demo.o(i.init_panel) refers to s21p_demo.o(i.soft_swire_init) for soft_swire_init + s21p_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 + s21p_demo.o(i.init_panel) refers to s21p_demo.o(.constdata) for panel_init_code + s21p_demo.o(i.open_mipi_rx) refers to hal_gpio.o(i.hal_gpio_set_mode) for hal_gpio_set_mode + s21p_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 + s21p_demo.o(i.open_mipi_rx) refers to memcpya.o(.text) for __aeabi_memcpy4 + s21p_demo.o(i.open_mipi_rx) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_pre_init_pps) for hal_dsi_rx_ctrl_pre_init_pps + s21p_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 + s21p_demo.o(i.open_mipi_rx) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_cus_esc_clk) for hal_dsi_rx_ctrl_set_cus_esc_clk + s21p_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 + s21p_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 + s21p_demo.o(i.open_mipi_rx) refers to s21p_demo.o(.data) for g_rx_ctrl_handle + s21p_demo.o(i.open_mipi_rx) refers to s21p_demo.o(.constdata) for g_cus_rx_dcs_execute_table + s21p_demo.o(i.open_mipi_rx) refers to s21p_demo.o(i.ap_dcs_read) for ap_dcs_read + s21p_demo.o(i.open_mipi_rx) refers to s21p_demo.o(i.pps_update_handle) for pps_update_handle + s21p_demo.o(i.pps_update_handle) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_get_compressen_en) for hal_dsi_rx_ctrl_get_compressen_en + s21p_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 + s21p_demo.o(i.pps_update_handle) refers to tau_log.o(i.LOG_printf) for LOG_printf + s21p_demo.o(i.pps_update_handle) refers to s21p_demo.o(.data) for g_rx_ctrl_handle + s21p_demo.o(i.send_panel_init_code) refers to hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_write_array_cmd) for hal_dsi_tx_ctrl_write_array_cmd + s21p_demo.o(i.send_panel_init_code) refers to tau_delay.o(i.delayUs) for delayUs + s21p_demo.o(i.soft_swire_init) refers to hal_gpio.o(i.hal_gpio_init_output) for hal_gpio_init_output + s21p_demo.o(i.soft_swire_init) refers to tau_delay.o(i.delayMs) for delayMs + s21p_demo.o(i.soft_swire_init) refers to s21p_demo.o(i.soft_swire_start) for soft_swire_start + s21p_demo.o(i.soft_swire_init) refers to hal_timer.o(i.hal_timer_init) for hal_timer_init + s21p_demo.o(i.soft_swire_init) refers to hal_timer.o(i.hal_timer_start) for hal_timer_start + s21p_demo.o(i.soft_swire_init) refers to s21p_demo.o(.data) for s_swire_pwm_counter + s21p_demo.o(i.soft_swire_init) refers to s21p_demo.o(i.soft_swire_timer_callback) for soft_swire_timer_callback + s21p_demo.o(i.soft_swire_start) refers to hal_gpio.o(i.hal_gpio_init_output) for hal_gpio_init_output + s21p_demo.o(i.soft_swire_start) refers to tau_delay.o(i.delayUs) for delayUs + s21p_demo.o(i.soft_swire_timer_callback) refers to s21p_demo.o(i.soft_swire_start) for soft_swire_start + s21p_demo.o(i.soft_swire_timer_callback) refers to hal_timer.o(i.hal_timer_start) for hal_timer_start + s21p_demo.o(i.soft_swire_timer_callback) refers to hal_timer.o(i.hal_timer_deinit) for hal_timer_deinit + s21p_demo.o(i.soft_swire_timer_callback) refers to hal_timer.o(i.hal_timer_stop) for hal_timer_stop + s21p_demo.o(i.soft_swire_timer_callback) refers to hal_gpio.o(i.hal_gpio_init_output) for hal_gpio_init_output + s21p_demo.o(i.soft_swire_timer_callback) refers to s21p_demo.o(.data) for s_swire_pwm_counter + s21p_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 + s21p_demo.o(i.soft_te_timer_cb) refers to hal_timer.o(i.hal_timer_start) for hal_timer_start + s21p_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 + s21p_demo.o(i.soft_te_timer_cb) refers to s21p_demo.o(.data) for panel_display_done + s21p_demo.o(i.soft_te_timer_init) refers to tau_log.o(i.LOG_printf) for LOG_printf + s21p_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 + s21p_demo.o(i.soft_te_timer_init) refers to hal_timer.o(i.hal_timer_init) for hal_timer_init + s21p_demo.o(i.soft_te_timer_init) refers to hal_timer.o(i.hal_timer_start) for hal_timer_start + s21p_demo.o(i.soft_te_timer_init) refers to s21p_demo.o(.data) for g_rx_ctrl_handle + s21p_demo.o(i.soft_te_timer_init) refers to s21p_demo.o(i.soft_te_timer_cb) for soft_te_timer_cb + s21p_demo.o(i.soft_timer3_cb) refers to hal_timer.o(i.hal_timer_start) for hal_timer_start + s21p_demo.o(i.soft_timer3_cb) refers to app_tp_for_custom_s21p.o(.data) for g_tp_sleep_delay_count + s21p_demo.o(i.swire_callback) refers to hal_timer.o(i.hal_timer_start) for hal_timer_start + s21p_demo.o(i.swire_callback) refers to s21p_demo.o(i.swire_timer_callback) for swire_timer_callback + s21p_demo.o(i.swire_init) refers to hal_swire.o(i.hal_swire_open) for hal_swire_open + s21p_demo.o(i.swire_init) refers to hal_swire.o(i.hal_swire_init) for hal_swire_init + s21p_demo.o(i.swire_init) refers to hal_swire.o(i.hal_swire_register_callback) for hal_swire_register_callback + s21p_demo.o(i.swire_init) refers to hal_swire.o(i.hal_swire_start) for hal_swire_start + s21p_demo.o(i.swire_init) refers to hal_timer.o(i.hal_timer_init) for hal_timer_init + s21p_demo.o(i.swire_init) refers to hal_timer.o(i.hal_timer_start) for hal_timer_start + s21p_demo.o(i.swire_init) refers to s21p_demo.o(i.swire_callback) for swire_callback + s21p_demo.o(i.swire_init) refers to s21p_demo.o(i.swire_timer_callback) for swire_timer_callback + s21p_demo.o(i.swire_timer_callback) refers to hal_swire.o(i.hal_swire_start) for hal_swire_start + s21p_demo.o(i.tp_heartbeat_exec) refers to hal_gpio.o(i.hal_gpio_get_input_data) for hal_gpio_get_input_data + s21p_demo.o(i.tp_heartbeat_exec) refers to tau_log.o(i.LOG_printf) for LOG_printf + s21p_demo.o(i.tp_heartbeat_exec) refers to app_tp_st_touch.o(i.ap_tp_st_touch_software_reset) for ap_tp_st_touch_software_reset + s21p_demo.o(i.tp_heartbeat_exec) refers to app_tp_transfer.o(.data) for s_screen_init_complate + s21p_demo.o(i.tp_heartbeat_exec) refers to s21p_demo.o(.data) for s_heartbeat + s21p_demo.o(i.tx_display_on) refers to s21p_demo.o(i.init_panel) for init_panel + s21p_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 + s21p_demo.o(i.tx_display_on) refers to tau_delay.o(i.delayMs) for delayMs + s21p_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 + s21p_demo.o(i.tx_display_on) refers to s21p_demo.o(.data) for g_tx_ctrl_handle + s21p_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 + s21p_demo.o(i.tx_panel_reset) refers to tau_delay.o(i.delayMs) for delayMs + s21p_demo.o(.constdata) refers to s21p_demo.o(i.ap_set_display_on) for ap_set_display_on + s21p_demo.o(.constdata) refers to s21p_demo.o(i.ap_set_display_off) for ap_set_display_off + s21p_demo.o(.constdata) refers to s21p_demo.o(i.ap_set_backlight_51) for ap_set_backlight_51 + s21p_demo.o(.constdata) refers to s21p_demo.o(i.ap_get_reg_df) for ap_get_reg_df + s21p_demo.o(.constdata) refers to s21p_demo.o(i.ap_MIPI_RX_CMD_bb) for ap_MIPI_RX_CMD_bb + s21p_demo.o(.constdata) refers to app_tp_st_touch.o(i.ap_set_tp_calibration_04) for ap_set_tp_calibration_04 + s21p_demo.o(.constdata) refers to s21p_demo.o(i.ap_set_enter_sleep_mode) for ap_set_enter_sleep_mode + s21p_demo.o(.constdata) refers to s21p_demo.o(i.ap_set_exit_sleep_mode) for ap_set_exit_sleep_mode + s21p_demo.o(.constdata) refers to s21p_demo.o(i.ap_update_frame_rate) for ap_update_frame_rate + 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 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_s21p.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_init) refers to hal_gpio.o(i.hal_gpio_init_input) for hal_gpio_init_input + app_tp_transfer.o(i.app_tp_phone_reset_init) refers to hal_gpio.o(i.hal_gpio_ctrl_eint) for hal_gpio_ctrl_eint + app_tp_transfer.o(i.app_tp_phone_reset_init) refers to hal_gpio.o(i.hal_gpio_init_eint) for hal_gpio_init_eint + app_tp_transfer.o(i.app_tp_phone_reset_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_phone_reset_init) refers to app_tp_for_custom_s21p.o(.data) for g_phone_input_rst_pad + app_tp_transfer.o(i.app_tp_phone_reset_init) refers to app_tp_transfer.o(i.app_tp_reset_callback) for app_tp_reset_callback + 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_reset_callback) 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_s21p.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_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_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_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_s21p.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_screen_int_lvl_low) refers to hal_gpio.o(i.hal_gpio_get_input_data) for hal_gpio_get_input_data + app_tp_transfer.o(i.app_tp_screen_int_lvl_low) refers to app_tp_for_custom_s21p.o(.data) for g_screen_input_int_pad + app_tp_transfer.o(i.app_tp_transfer_phone) refers to app_tp_for_custom_s21p.o(i.app_tp_phone_analysis_data) for app_tp_phone_analysis_data + 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 app_tp_transfer.o(i.app_tp_m_write) for app_tp_m_write + app_tp_transfer.o(i.app_tp_transfer_screen_const) 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_const) refers to app_tp_for_custom_s21p.o(i.app_tp_screen_analysis_const) for app_tp_screen_analysis_const + app_tp_transfer.o(i.app_tp_transfer_screen_const) refers to tau_log.o(i.LOG_printf) for LOG_printf + 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_s21p.o(.constdata) for screen_reg_start_data_size + app_tp_transfer.o(i.app_tp_transfer_screen_const) refers to app_tp_for_custom_s21p.o(.data) for g_screen_tp_init_start + app_tp_transfer.o(i.app_tp_transfer_screen_const) refers to app_tp_transfer.o(.bss) for s_screen_read_buffer + 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_transfer_screen_restart) for app_tp_transfer_screen_restart + app_tp_transfer.o(i.app_tp_transfer_screen_int) refers to app_tp_for_custom_s21p.o(i.app_tp_screen_analysis_wake_up_exec) for app_tp_screen_analysis_wake_up_exec + 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_s21p.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_s21p.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_int) refers to app_tp_for_custom_s21p.o(.constdata) for screen_reg_int_data_size + app_tp_transfer.o(i.app_tp_transfer_screen_restart) refers to app_tp_st_touch.o(i.ap_tp_st_touch_hardware_reset) for ap_tp_st_touch_hardware_reset + app_tp_transfer.o(i.app_tp_transfer_screen_restart) refers to app_tp_for_custom_s21p.o(.data) for g_screen_tp_init_restart + app_tp_transfer.o(i.app_tp_transfer_screen_restart) refers to app_tp_transfer.o(.data) for s_tp_restart_count + app_tp_transfer.o(i.app_tp_transfer_screen_start) refers to app_tp_transfer.o(i.app_tp_screen_init) for app_tp_screen_init + 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 + app_tp_for_custom_s21p.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_s21p.o(i.app_tp_phone_analysis_data) refers to app_tp_for_custom_s21p.o(.data) for SAMSUNG_s21p + app_tp_for_custom_s21p.o(i.app_tp_screen_analysis_const) refers to app_tp_for_custom_s21p.o(.data) for g_tp_sleep_in + app_tp_for_custom_s21p.o(i.app_tp_screen_analysis_int) refers to ffltui.o(.text) for __aeabi_ui2f + app_tp_for_custom_s21p.o(i.app_tp_screen_analysis_int) refers to fmul.o(.text) for __aeabi_fmul + app_tp_for_custom_s21p.o(i.app_tp_screen_analysis_int) refers to fdiv.o(.text) for __aeabi_fdiv + app_tp_for_custom_s21p.o(i.app_tp_screen_analysis_int) refers to ffixui.o(.text) for __aeabi_f2uiz + app_tp_for_custom_s21p.o(i.app_tp_screen_analysis_int) refers to f2d.o(.text) for __aeabi_f2d + app_tp_for_custom_s21p.o(i.app_tp_screen_analysis_int) refers to dmul.o(.text) for __aeabi_dmul + app_tp_for_custom_s21p.o(i.app_tp_screen_analysis_int) refers to ddiv.o(.text) for __aeabi_ddiv + app_tp_for_custom_s21p.o(i.app_tp_screen_analysis_int) refers to dfixui.o(.text) for __aeabi_d2uiz + app_tp_for_custom_s21p.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_s21p.o(i.app_tp_screen_analysis_int) refers to app_tp_for_custom_s21p.o(i.app_tp_screen_analysis_wake_up) for app_tp_screen_analysis_wake_up + app_tp_for_custom_s21p.o(i.app_tp_screen_analysis_int) refers to app_tp_for_custom_s21p.o(.data) for phone_reg_coord_BUF_NUM + app_tp_for_custom_s21p.o(i.app_tp_screen_analysis_int) refers to app_tp_for_custom_s21p.o(.bss) for Touch + app_tp_for_custom_s21p.o(i.app_tp_screen_analysis_wake_up) refers to app_tp_for_custom_s21p.o(.bss) for Touch + app_tp_for_custom_s21p.o(i.app_tp_screen_analysis_wake_up) refers to app_tp_for_custom_s21p.o(.data) for g_tp_sleep_delay_count + app_tp_for_custom_s21p.o(i.app_tp_screen_analysis_wake_up_exec) refers to tau_delay.o(i.delayMs) for delayMs + app_tp_for_custom_s21p.o(i.app_tp_screen_analysis_wake_up_exec) refers to hal_gpio.o(i.hal_gpio_set_output_data) for hal_gpio_set_output_data + app_tp_for_custom_s21p.o(i.app_tp_screen_analysis_wake_up_exec) refers to app_tp_for_custom_s21p.o(.data) for g_tp_wakeup + app_tp_for_custom_s21p.o(i.app_tp_screen_analysis_wake_up_exec) refers to app_tp_for_custom_s21p.o(.bss) for Touch + app_tp_for_custom_s21p.o(.data) refers to app_tp_for_custom_s21p.o(.constdata) for screen_86_data + app_tp_st_touch.o(i.CRC16_2) refers to app_tp_st_touch.o(.constdata) for wCRCTalbeAbs + app_tp_st_touch.o(i.ap_get_tp_calibration_status_01) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_send_ack_cmd) for hal_dsi_rx_ctrl_send_ack_cmd + app_tp_st_touch.o(i.ap_get_tp_calibration_status_01) refers to app_tp_st_touch.o(.data) for s_calibration_correct_flag + app_tp_st_touch.o(i.ap_set_tp_calibration_04) refers to memseta.o(.text) for __aeabi_memclr4 + app_tp_st_touch.o(i.ap_set_tp_calibration_04) refers to printfa.o(i.__0printf) for __2printf + app_tp_st_touch.o(i.ap_set_tp_calibration_04) refers to app_tp_st_touch.o(i.CRC16_2) for CRC16_2 + app_tp_st_touch.o(i.ap_set_tp_calibration_04) refers to hal_dsi_rx_ctrl.o(i.__ARM_common_switch8) for __ARM_common_switch8 + app_tp_st_touch.o(i.ap_set_tp_calibration_04) refers to app_tp_st_touch.o(.data) for s_calibration_flag + app_tp_st_touch.o(i.ap_tp_st_touch_calibration) refers to app_tp_transfer.o(i.app_tp_m_write) for app_tp_m_write + app_tp_st_touch.o(i.ap_tp_st_touch_calibration) refers to hal_i2c_master.o(i.hal_i2c_m_transfer_complate) for hal_i2c_m_transfer_complate + app_tp_st_touch.o(i.ap_tp_st_touch_calibration) refers to tau_delay.o(i.delayMs) for delayMs + app_tp_st_touch.o(i.ap_tp_st_touch_calibration) refers to app_tp_st_touch.o(.data) for st_touch_tp_tuning_FpnlInit + app_tp_st_touch.o(i.ap_tp_st_touch_error_handler_F3) refers to app_tp_st_touch.o(i.ap_tp_st_touch_software_reset) for ap_tp_st_touch_software_reset + app_tp_st_touch.o(i.ap_tp_st_touch_error_handler_FF) refers to app_tp_st_touch.o(i.ap_tp_st_touch_software_reset) for ap_tp_st_touch_software_reset + app_tp_st_touch.o(i.ap_tp_st_touch_get_calibration_success_mark) refers to memseta.o(.text) for __aeabi_memclr4 + app_tp_st_touch.o(i.ap_tp_st_touch_get_calibration_success_mark) refers to app_tp_transfer.o(i.app_tp_m_read) for app_tp_m_read + app_tp_st_touch.o(i.ap_tp_st_touch_get_calibration_success_mark) refers to hal_i2c_master.o(i.hal_i2c_m_transfer_complate) for hal_i2c_m_transfer_complate + app_tp_st_touch.o(i.ap_tp_st_touch_get_calibration_success_mark) refers to tau_delay.o(i.delayMs) for delayMs + app_tp_st_touch.o(i.ap_tp_st_touch_get_calibration_success_mark) refers to app_tp_transfer.o(i.app_tp_m_write) for app_tp_m_write + app_tp_st_touch.o(i.ap_tp_st_touch_get_calibration_success_mark) refers to app_tp_st_touch.o(.data) for s_calibration_correct_flag + app_tp_st_touch.o(i.ap_tp_st_touch_hardware_reset) refers to tau_log.o(i.LOG_printf) for LOG_printf + app_tp_st_touch.o(i.ap_tp_st_touch_hardware_reset) refers to app_tp_st_touch.o(i.ap_tp_st_touch_simulate_finger_release_event) for ap_tp_st_touch_simulate_finger_release_event + app_tp_st_touch.o(i.ap_tp_st_touch_hardware_reset) refers to app_tp_st_touch.o(i.ap_tp_st_touch_scan_point_init) for ap_tp_st_touch_scan_point_init + app_tp_st_touch.o(i.ap_tp_st_touch_hardware_reset) refers to hal_gpio.o(i.hal_gpio_set_output_data) for hal_gpio_set_output_data + app_tp_st_touch.o(i.ap_tp_st_touch_hardware_reset) refers to tau_delay.o(i.delayMs) for delayMs + app_tp_st_touch.o(i.ap_tp_st_touch_hardware_reset) refers to app_tp_transfer.o(i.app_tp_m_write) for app_tp_m_write + app_tp_st_touch.o(i.ap_tp_st_touch_hardware_reset) refers to hal_i2c_master.o(i.hal_i2c_m_transfer_complate) for hal_i2c_m_transfer_complate + app_tp_st_touch.o(i.ap_tp_st_touch_hardware_reset) refers to app_tp_for_custom_s21p.o(.data) for g_screen_input_rst_pad + app_tp_st_touch.o(i.ap_tp_st_touch_hardware_reset) refers to app_tp_st_touch.o(.data) for st_touch_tp_tuning_clearfifo + app_tp_st_touch.o(i.ap_tp_st_touch_scan_point_init) refers to app_tp_st_touch.o(.bss) for tp_scan_data + app_tp_st_touch.o(i.ap_tp_st_touch_scan_point_record_event) refers to app_tp_st_touch.o(.bss) for tp_scan_data + app_tp_st_touch.o(i.ap_tp_st_touch_scan_point_record_event_exec) refers to printfa.o(i.__0printf) for __2printf + app_tp_st_touch.o(i.ap_tp_st_touch_scan_point_record_event_exec) refers to app_tp_st_touch.o(i.ap_tp_st_touch_simulate_finger_release_event) for ap_tp_st_touch_simulate_finger_release_event + app_tp_st_touch.o(i.ap_tp_st_touch_scan_point_record_event_exec) refers to app_tp_st_touch.o(i.ap_tp_st_touch_scan_point_init) for ap_tp_st_touch_scan_point_init + app_tp_st_touch.o(i.ap_tp_st_touch_scan_point_record_event_exec) refers to app_tp_st_touch.o(.bss) for tp_scan_data + app_tp_st_touch.o(i.ap_tp_st_touch_simulate_finger_release_event) refers to app_tp_for_custom_s21p.o(i.app_tp_screen_analysis_int) for app_tp_screen_analysis_int + app_tp_st_touch.o(i.ap_tp_st_touch_simulate_finger_release_event) refers to tau_delay.o(i.delayMs) for delayMs + app_tp_st_touch.o(i.ap_tp_st_touch_software_reset) refers to tau_log.o(i.LOG_printf) for LOG_printf + app_tp_st_touch.o(i.ap_tp_st_touch_software_reset) refers to app_tp_st_touch.o(i.ap_tp_st_touch_simulate_finger_release_event) for ap_tp_st_touch_simulate_finger_release_event + app_tp_st_touch.o(i.ap_tp_st_touch_software_reset) refers to app_tp_st_touch.o(i.ap_tp_st_touch_scan_point_init) for ap_tp_st_touch_scan_point_init + app_tp_st_touch.o(i.ap_tp_st_touch_software_reset) refers to app_tp_transfer.o(i.app_tp_m_write) for app_tp_m_write + app_tp_st_touch.o(i.ap_tp_st_touch_software_reset) refers to hal_i2c_master.o(i.hal_i2c_m_transfer_complate) for hal_i2c_m_transfer_complate + app_tp_st_touch.o(i.ap_tp_st_touch_software_reset) refers to tau_delay.o(i.delayMs) for delayMs + app_tp_st_touch.o(i.ap_tp_st_touch_software_reset) refers to app_tp_st_touch.o(.data) for st_touch_tp_tuning_clkreset + app_tp_st_touch.o(i.app_tp_calibration_exec) refers to app_tp_st_touch.o(i.ap_tp_st_touch_calibration) for ap_tp_st_touch_calibration + app_tp_st_touch.o(i.app_tp_calibration_exec) refers to tau_delay.o(i.delayMs) for delayMs + app_tp_st_touch.o(i.app_tp_calibration_exec) refers to app_tp_st_touch.o(i.ap_tp_st_touch_get_calibration_success_mark) for ap_tp_st_touch_get_calibration_success_mark + app_tp_st_touch.o(i.app_tp_calibration_exec) refers to tau_log.o(i.LOG_printf) for LOG_printf + app_tp_st_touch.o(i.app_tp_calibration_exec) refers to app_tp_st_touch.o(.data) for s_calibration_flag + 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 uidiv.o(.text) for __aeabi_uidivmod + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init) refers to drv_dsc_dec.o(i.drv_dsc_dec_enable) for drv_dsc_dec_enable + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init) refers to drv_dsc_dec.o(i.drv_dsc_dec_set_u8_pps) for drv_dsc_dec_set_u8_pps + 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 drv_dsc_dec.o(i.drv_dsc_dec_convert_pps_rc_parameter) for drv_dsc_dec_convert_pps_rc_parameter + 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_internal_vsync.o(i.hal_internal_vsync_toggle_input_frame_rate) for hal_internal_vsync_toggle_input_frame_rate + 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_rx_ctrl.o(i.hal_dsi_rx_register_write_cmd_entry) refers to hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_hw_cmd_filter) for hal_dsi_rx_ctrl_set_hw_cmd_filter + hal_dsi_rx_ctrl.o(i.hal_dsi_rx_register_write_cmd_entry) refers to hal_internal_vsync.o(i.hal_internal_vsync_register_write_cmd_entry) for hal_internal_vsync_register_write_cmd_entry + 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_update_dpi_param) for hal_internal_update_dpi_param + 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_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_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 + 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 drv_rxbr.o(i.drv_rxbr_get_clk) for drv_rxbr_get_clk + hal_internal_vsync.o(i.app_LCDC_IRQn_Handler) refers to ffltui.o(.text) for __aeabi_ui2f + hal_internal_vsync.o(i.app_LCDC_IRQn_Handler) refers to fdiv.o(.text) for __aeabi_fdiv + hal_internal_vsync.o(i.app_LCDC_IRQn_Handler) refers to f2d.o(.text) for __aeabi_f2d + 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(.data) for .data + 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_update_dpi_param) refers to hal_internal_vsync.o(.bss) for .bss + hal_internal_vsync.o(i.hal_internal_video_mode_auto_sync) refers to drv_rxbr.o(i.drv_rxbr_get_clk) for drv_rxbr_get_clk + hal_internal_vsync.o(i.hal_internal_video_mode_auto_sync) refers to ffltui.o(.text) for __aeabi_ui2f + hal_internal_vsync.o(i.hal_internal_video_mode_auto_sync) refers to fdiv.o(.text) for __aeabi_fdiv + hal_internal_vsync.o(i.hal_internal_video_mode_auto_sync) refers to fmul.o(.text) for __aeabi_fmul + hal_internal_vsync.o(i.hal_internal_video_mode_auto_sync) refers to f2d.o(.text) for __aeabi_f2d + hal_internal_vsync.o(i.hal_internal_video_mode_auto_sync) refers to dadd.o(.text) for __aeabi_dadd + hal_internal_vsync.o(i.hal_internal_video_mode_auto_sync) refers to dfixui.o(.text) for __aeabi_d2uiz + hal_internal_vsync.o(i.hal_internal_video_mode_auto_sync) refers to ceil.o(i.ceil) for ceil + hal_internal_vsync.o(i.hal_internal_video_mode_auto_sync) refers to hal_internal_vsync.o(.bss) for .bss + 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_register_write_cmd_entry) refers to hal_internal_vsync.o(.data) for .data + 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_toggle_input_frame_rate) refers to hal_dsi_rx_ctrl.o(i.__ARM_common_switch8) for __ARM_common_switch8 + hal_internal_vsync.o(i.hal_internal_vsync_toggle_input_frame_rate) refers to drv_memc.o(i.drv_memc_rate_transfer_sel) for drv_memc_rate_transfer_sel + hal_internal_vsync.o(i.hal_internal_vsync_toggle_input_frame_rate) refers to drv_memc.o(i.drv_memc_sel_vsync) for drv_memc_sel_vsync + hal_internal_vsync.o(i.hal_internal_vsync_toggle_input_frame_rate) refers to drv_rxbr.o(i.drv_rxbr_frame_drop_cfg) for drv_rxbr_frame_drop_cfg + hal_internal_vsync.o(i.hal_internal_vsync_toggle_input_frame_rate) refers to drv_rxbr.o(i.drv_rxbr_hline_rcv0_cfg) for drv_rxbr_hline_rcv0_cfg + hal_internal_vsync.o(i.hal_internal_vsync_toggle_input_frame_rate) refers to drv_rxbr.o(i.drv_rxbr_set_inten) for drv_rxbr_set_inten + hal_internal_vsync.o(i.hal_internal_vsync_toggle_input_frame_rate) refers to drv_rxbr.o(i.drv_rxbr_clear_status0) for drv_rxbr_clear_status0 + hal_internal_vsync.o(i.hal_internal_vsync_toggle_input_frame_rate) refers to tau_delay.o(i.delayMs) for delayMs + hal_internal_vsync.o(i.hal_internal_vsync_toggle_input_frame_rate) refers to hal_internal_vsync.o(i.drv_rxbr_get_status0) for drv_rxbr_get_status0 + hal_internal_vsync.o(i.hal_internal_vsync_toggle_input_frame_rate) refers to drv_rxbr.o(i.drv_rxbr_get_clk) for drv_rxbr_get_clk + hal_internal_vsync.o(i.hal_internal_vsync_toggle_input_frame_rate) refers to ffltui.o(.text) for __aeabi_ui2f + hal_internal_vsync.o(i.hal_internal_vsync_toggle_input_frame_rate) refers to fdiv.o(.text) for __aeabi_fdiv + hal_internal_vsync.o(i.hal_internal_vsync_toggle_input_frame_rate) refers to hal_internal_vsync.o(i.hal_internal_sync_get_fb_setting) for hal_internal_sync_get_fb_setting + hal_internal_vsync.o(i.hal_internal_vsync_toggle_input_frame_rate) refers to drv_memc.o(i.drv_memc_set_fs_en_conditions) for drv_memc_set_fs_en_conditions + hal_internal_vsync.o(i.hal_internal_vsync_toggle_input_frame_rate) refers to drv_memc.o(i.drv_memc_set_lcdc_st_conditions) for drv_memc_set_lcdc_st_conditions + hal_internal_vsync.o(i.hal_internal_vsync_toggle_input_frame_rate) refers to drv_memc.o(i.drv_memc_set_vidc_sync_cnt) for drv_memc_set_vidc_sync_cnt + 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 hal_internal_vsync.o(i.hal_internal_video_mode_auto_sync) for hal_internal_video_mode_auto_sync + 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 + 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_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 + 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 + 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_read_uid) refers to memseta.o(.text) for __aeabi_memclr4 + norflash.o(i.norflash_read_uid) refers to drv_fls.o(i.fls_read_cmd) for fls_read_cmd + norflash.o(i.norflash_read_uid) refers to memcpya.o(.text) for __aeabi_memcpy + 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_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_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_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 s21p_demo.o(.rev16_text), (4 bytes). + Removing s21p_demo.o(.revsh_text), (4 bytes). + Removing s21p_demo.o(i.ap_set_tear_on), (140 bytes). + Removing s21p_demo.o(i.frame_start_cb), (64 bytes). + Removing s21p_demo.o(i.soft_te_timer_cb), (56 bytes). + Removing s21p_demo.o(i.soft_te_timer_init), (100 bytes). + Removing s21p_demo.o(i.swire_callback), (24 bytes). + Removing s21p_demo.o(i.swire_init), (68 bytes). + Removing s21p_demo.o(i.swire_timer_callback), (22 bytes). + Removing s21p_demo.o(i.tp_heartbeat_exec), (124 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.app_tp_phone_clear_reset_on), (12 bytes). + Removing app_tp_transfer.o(i.app_tp_phone_reset_init), (60 bytes). + Removing app_tp_transfer.o(i.app_tp_phone_reset_on), (12 bytes). + Removing app_tp_transfer.o(i.app_tp_reset_callback), (12 bytes). + Removing app_tp_transfer.o(i.app_tp_s_transfer_complate), (26 bytes). + Removing app_tp_for_custom_s21p.o(.rev16_text), (4 bytes). + Removing app_tp_for_custom_s21p.o(.revsh_text), (4 bytes). + Removing app_tp_st_touch.o(.rev16_text), (4 bytes). + Removing app_tp_st_touch.o(.revsh_text), (4 bytes). + Removing app_tp_st_touch.o(i.ap_tp_st_touch_calibration), (200 bytes). + Removing app_tp_st_touch.o(i.ap_tp_st_touch_error_handler_F3), (28 bytes). + Removing app_tp_st_touch.o(i.ap_tp_st_touch_error_handler_FF), (34 bytes). + Removing app_tp_st_touch.o(i.ap_tp_st_touch_get_calibration_success_mark), (180 bytes). + Removing app_tp_st_touch.o(i.ap_tp_st_touch_scan_point_record_event), (196 bytes). + Removing app_tp_st_touch.o(i.ap_tp_st_touch_scan_point_record_event_exec), (96 bytes). + Removing app_tp_st_touch.o(i.ap_tp_st_touch_software_reset), (188 bytes). + Removing app_tp_st_touch.o(i.app_tp_calibration_exec), (184 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_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_hight_performan_mode), (100 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_set_auto_hw_filter), (28 bytes). + Removing hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_cus_scld_filter), (108 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_te_waveform), (52 bytes). + Removing hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_toggle_input_frame_rate), (10 bytes). + Removing hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_toggle_resolution_ex), (32 bytes). + Removing hal_dsi_rx_ctrl.o(i.hal_dsi_rx_register_write_cmd_entry), (110 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_crop_pic), (148 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_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_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_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_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_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_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_init), (32 bytes). + Removing hal_swire.o(i.hal_swire_register_callback), (10 bytes). + Removing hal_swire.o(i.hal_swire_start), (108 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_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_share_flash_mode), (20 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_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 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 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_register_write_cmd_entry), (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_toggle_input_frame_rate), (680 bytes). + Removing hal_internal_vsync.o(i.hal_internal_vsync_update_lcdc_addr), (48 bytes). + Removing hal_internal_vsync.o(i.hal_vsync_reset_lcdc_scaler), (476 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.drv_fls_gpio_connect), (28 bytes). + Removing drv_fls.o(i.drv_fls_gpio_disconnect), (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_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_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_scld_filter), (100 bytes). + Removing drv_param_init.o(i.drv_param_init_set_sclu_filter), (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_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_register_callback), (12 bytes). + Removing drv_swire.o(i.drv_swire_set_bit_time), (24 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_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 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_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_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_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 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_read_uid), (52 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_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_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_enable), (32 bytes). + Removing drv_pwm.o(i.drv_pwm_out_get_sync_flag), (16 bytes). + Removing drv_pwm.o(i.drv_pwm_out_pause), (28 bytes). + Removing drv_pwm.o(i.drv_pwm_out_set_control), (12 bytes). + Removing drv_pwm.o(i.drv_pwm_out_set_period), (12 bytes). + Removing drv_pwm.o(i.drv_pwm_out_set_sync_mode), (32 bytes). + Removing drv_pwm.o(i.drv_pwm_out_set_threshold), (12 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). + +549 unused section(s) (total 27590 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 uldiv.o ABSOLUTE + ../clib/microlib/division.c 0x00000000 Number 0 idiv.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 entry.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.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 printfa.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 printf6.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf5.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf4.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf3.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf2.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf1.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf0.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printfb.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 ffixui.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 dfixi.o ABSOLUTE + ../fplib/microlib/fpfix.c 0x00000000 Number 0 dfixui.o ABSOLUTE + ../fplib/microlib/fpflt.c 0x00000000 Number 0 dfltui.o ABSOLUTE + ../fplib/microlib/fpflt.c 0x00000000 Number 0 dflti.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.o ABSOLUTE + ../mathlib/sqrt.c 0x00000000 Number 0 sqrt_x.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\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_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\hal_internal_vsync.c 0x00000000 Number 0 hal_internal_vsync.o ABSOLUTE + ..\..\..\src\sdk\robin\src\hal\internal\norflash.c 0x00000000 Number 0 norflash.o ABSOLUTE + ..\..\src\app\main.c 0x00000000 Number 0 main.o ABSOLUTE + ..\..\src\app\s21p\S21P_demo.c 0x00000000 Number 0 s21p_demo.o ABSOLUTE + ..\..\src\app\s21p\app_tp_for_custom_s21p.c 0x00000000 Number 0 app_tp_for_custom_s21p.o ABSOLUTE + ..\..\src\app\touch\app_tp_st_touch.c 0x00000000 Number 0 app_tp_st_touch.o ABSOLUTE + ..\..\src\app\touch\app_tp_transfer.c 0x00000000 Number 0 app_tp_transfer.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\\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_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\\hal_internal_vsync.c 0x00000000 Number 0 hal_internal_vsync.o ABSOLUTE + ..\\..\\..\\src\\sdk\\robin\\src\\hal\\internal\\norflash.c 0x00000000 Number 0 norflash.o ABSOLUTE + ..\\..\\src\\app\\main.c 0x00000000 Number 0 main.o ABSOLUTE + ..\\..\\src\\app\\s21p\\S21P_demo.c 0x00000000 Number 0 s21p_demo.o ABSOLUTE + ..\\..\\src\\app\\s21p\\app_tp_for_custom_s21p.c 0x00000000 Number 0 app_tp_for_custom_s21p.o ABSOLUTE + ..\\..\\src\\app\\touch\\app_tp_st_touch.c 0x00000000 Number 0 app_tp_st_touch.o ABSOLUTE + ..\\..\\src\\app\\touch\\app_tp_transfer.c 0x00000000 Number 0 app_tp_transfer.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 fepilogue.o(.text) + .text 0x00010918 Section 0 iusefp.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.CRC16_2 0x00010c10 Section 0 app_tp_st_touch.o(i.CRC16_2) + i.DMA_IRQn_Handler 0x00010c58 Section 0 irq_redirect .o(i.DMA_IRQn_Handler) + i.EXTI_INT0_IRQn_Handler 0x00010c6c Section 0 irq_redirect .o(i.EXTI_INT0_IRQn_Handler) + i.EXTI_INT1_IRQn_Handler 0x00010c88 Section 0 irq_redirect .o(i.EXTI_INT1_IRQn_Handler) + i.EXTI_INT2_IRQn_Handler 0x00010ca4 Section 0 irq_redirect .o(i.EXTI_INT2_IRQn_Handler) + i.EXTI_INT3_IRQn_Handler 0x00010cc0 Section 0 irq_redirect .o(i.EXTI_INT3_IRQn_Handler) + i.EXTI_INT4_IRQn_Handler 0x00010cdc Section 0 irq_redirect .o(i.EXTI_INT4_IRQn_Handler) + i.EXTI_INT5_IRQn_Handler 0x00010cf8 Section 0 irq_redirect .o(i.EXTI_INT5_IRQn_Handler) + i.EXTI_INT6_IRQn_Handler 0x00010d14 Section 0 irq_redirect .o(i.EXTI_INT6_IRQn_Handler) + i.EXTI_INT7_IRQn_Handler 0x00010d30 Section 0 irq_redirect .o(i.EXTI_INT7_IRQn_Handler) + i.FLSCTRL_IRQn_Handler 0x00010d4c Section 0 irq_redirect .o(i.FLSCTRL_IRQn_Handler) + i.HardFault_Handler 0x00010d60 Section 0 irq_redirect .o(i.HardFault_Handler) + i.I2C0_IRQn_Handler 0x00010d74 Section 0 irq_redirect .o(i.I2C0_IRQn_Handler) + i.I2C1_IRQn_Handler 0x00010d8c Section 0 irq_redirect .o(i.I2C1_IRQn_Handler) + i.LCDC_IRQn_Handler 0x00010da4 Section 0 irq_redirect .o(i.LCDC_IRQn_Handler) + i.LOG_printf 0x00010dbc Section 0 tau_log.o(i.LOG_printf) + i.MEMC_IRQn_Handler 0x00010de4 Section 0 irq_redirect .o(i.MEMC_IRQn_Handler) + i.MIPI_RX_IRQn_Handler 0x00010dfc Section 0 irq_redirect .o(i.MIPI_RX_IRQn_Handler) + i.MIPI_TX_IRQn_Handler 0x00010e14 Section 0 irq_redirect .o(i.MIPI_TX_IRQn_Handler) + i.PWMDET_IRQn_Handler 0x00010e2c Section 0 irq_redirect .o(i.PWMDET_IRQn_Handler) + i.SPIM_IRQn_Handler 0x00010e48 Section 0 irq_redirect .o(i.SPIM_IRQn_Handler) + i.SPIS_IRQn_Handler 0x00010e64 Section 0 irq_redirect .o(i.SPIS_IRQn_Handler) + i.SWIRE_IRQn_Handler 0x00010e80 Section 0 irq_redirect .o(i.SWIRE_IRQn_Handler) + i.SysTick_Handler 0x00010e9c Section 0 irq_redirect .o(i.SysTick_Handler) + i.TIMER0_IRQn_Handler 0x00010eb4 Section 0 irq_redirect .o(i.TIMER0_IRQn_Handler) + i.TIMER1_IRQn_Handler 0x00010ecc Section 0 irq_redirect .o(i.TIMER1_IRQn_Handler) + i.TIMER2_IRQn_Handler 0x00010ee4 Section 0 irq_redirect .o(i.TIMER2_IRQn_Handler) + i.TIMER3_IRQn_Handler 0x00010efc Section 0 irq_redirect .o(i.TIMER3_IRQn_Handler) + i.UART0_IRQ_Handle 0x00010f14 Section 0 drv_uart.o(i.UART0_IRQ_Handle) + i.UART_DisableDma 0x00010f30 Section 0 drv_uart.o(i.UART_DisableDma) + i.UART_GetInstance 0x00010f32 Section 0 drv_uart.o(i.UART_GetInstance) + i.UART_IRQn_Handler 0x00010f38 Section 0 irq_redirect .o(i.UART_IRQn_Handler) + i.UART_ResetRxFIFO 0x00010f50 Section 0 drv_uart.o(i.UART_ResetRxFIFO) + i.UART_SetBaudRate 0x00010f74 Section 0 drv_uart.o(i.UART_SetBaudRate) + i.UART_SwitchSCLK 0x00010fbc Section 0 drv_uart.o(i.UART_SwitchSCLK) + i.UART_WriteBlocking 0x00010fd6 Section 0 drv_uart.o(i.UART_WriteBlocking) + i.__scatterload_copy 0x00010ff0 Section 14 handlers.o(i.__scatterload_copy) + i.__scatterload_null 0x00010ffe Section 2 handlers.o(i.__scatterload_null) + .ARM.__at_0x11000 0x00011000 Section 20 drv_common.o(.ARM.__at_0x11000) + i.drv_dsi_rx_set_inten 0x00011014 Section 0 drv_dsi_rx.o(i.drv_dsi_rx_set_inten) + .ARM.__at_0x11018 0x00011018 Section 4 drv_common.o(.ARM.__at_0x11018) + i.S21P_demo 0x0001101c Section 0 s21p_demo.o(i.S21P_demo) + i.UART_TransferHandleIRQ 0x00011218 Section 0 drv_uart.o(i.UART_TransferHandleIRQ) + i.UART_init 0x0001134c Section 0 drv_uart.o(i.UART_init) + i.VIDC_IRQn_Handler 0x00011408 Section 0 irq_redirect .o(i.VIDC_IRQn_Handler) + i.VPRE_IRQn_Handler 0x00011420 Section 0 irq_redirect .o(i.VPRE_IRQn_Handler) + i.WDG_IRQn_Handler 0x00011438 Section 0 irq_redirect .o(i.WDG_IRQn_Handler) + i.__0printf 0x00011450 Section 0 printfa.o(i.__0printf) + i.__0vsprintf 0x00011470 Section 0 printfa.o(i.__0vsprintf) + i.__ARM_clz 0x00011494 Section 0 depilogue.o(i.__ARM_clz) + i.__ARM_common_switch8 0x000114c2 Section 0 hal_dsi_rx_ctrl.o(i.__ARM_common_switch8) + i.__NVIC_ClearPendingIRQ 0x000114dc Section 0 drv_i2c_master.o(i.__NVIC_ClearPendingIRQ) + __NVIC_ClearPendingIRQ 0x000114dd Thumb Code 18 drv_i2c_master.o(i.__NVIC_ClearPendingIRQ) + i.__NVIC_ClearPendingIRQ 0x000114f4 Section 0 drv_spi_master.o(i.__NVIC_ClearPendingIRQ) + __NVIC_ClearPendingIRQ 0x000114f5 Thumb Code 18 drv_spi_master.o(i.__NVIC_ClearPendingIRQ) + i.__NVIC_DisableIRQ 0x0001150c Section 0 drv_rxbr.o(i.__NVIC_DisableIRQ) + __NVIC_DisableIRQ 0x0001150d Thumb Code 26 drv_rxbr.o(i.__NVIC_DisableIRQ) + i.__NVIC_EnableIRQ 0x0001152c Section 0 drv_rxbr.o(i.__NVIC_EnableIRQ) + __NVIC_EnableIRQ 0x0001152d Thumb Code 18 drv_rxbr.o(i.__NVIC_EnableIRQ) + i.__NVIC_SetPriority 0x00011544 Section 0 hal_spi_slave.o(i.__NVIC_SetPriority) + __NVIC_SetPriority 0x00011545 Thumb Code 60 hal_spi_slave.o(i.__NVIC_SetPriority) + i.__scatterload_zeroinit 0x00011588 Section 14 handlers.o(i.__scatterload_zeroinit) + i.__set_errno 0x00011598 Section 0 errno.o(i.__set_errno) + i._fp_digits 0x000115a4 Section 0 printfa.o(i._fp_digits) + _fp_digits 0x000115a5 Thumb Code 344 printfa.o(i._fp_digits) + i._printf_core 0x00011718 Section 0 printfa.o(i._printf_core) + _printf_core 0x00011719 Thumb Code 1754 printfa.o(i._printf_core) + i._printf_post_padding 0x00011e04 Section 0 printfa.o(i._printf_post_padding) + _printf_post_padding 0x00011e05 Thumb Code 32 printfa.o(i._printf_post_padding) + i._printf_pre_padding 0x00011e24 Section 0 printfa.o(i._printf_pre_padding) + _printf_pre_padding 0x00011e25 Thumb Code 44 printfa.o(i._printf_pre_padding) + i._sputc 0x00011e50 Section 0 printfa.o(i._sputc) + _sputc 0x00011e51 Thumb Code 10 printfa.o(i._sputc) + i.ap_MIPI_RX_CMD_bb 0x00011e5a Section 0 s21p_demo.o(i.ap_MIPI_RX_CMD_bb) + ap_MIPI_RX_CMD_bb 0x00011e5b Thumb Code 38 s21p_demo.o(i.ap_MIPI_RX_CMD_bb) + i.ap_dcs_read 0x00011e80 Section 0 s21p_demo.o(i.ap_dcs_read) + ap_dcs_read 0x00011e81 Thumb Code 9886 s21p_demo.o(i.ap_dcs_read) + i.ap_get_reg_df 0x000145b0 Section 0 s21p_demo.o(i.ap_get_reg_df) + ap_get_reg_df 0x000145b1 Thumb Code 128 s21p_demo.o(i.ap_get_reg_df) + i.ap_get_tp_calibration_status_01 0x00014630 Section 0 app_tp_st_touch.o(i.ap_get_tp_calibration_status_01) + i.ap_reset_cb 0x00014668 Section 0 s21p_demo.o(i.ap_reset_cb) + ap_reset_cb 0x00014669 Thumb Code 74 s21p_demo.o(i.ap_reset_cb) + i.ap_set_backlight_51 0x000146fc Section 0 s21p_demo.o(i.ap_set_backlight_51) + ap_set_backlight_51 0x000146fd Thumb Code 66 s21p_demo.o(i.ap_set_backlight_51) + i.ap_set_display_off 0x00014740 Section 0 s21p_demo.o(i.ap_set_display_off) + ap_set_display_off 0x00014741 Thumb Code 108 s21p_demo.o(i.ap_set_display_off) + i.ap_set_display_on 0x000147dc Section 0 s21p_demo.o(i.ap_set_display_on) + ap_set_display_on 0x000147dd Thumb Code 26 s21p_demo.o(i.ap_set_display_on) + i.ap_set_enter_sleep_mode 0x0001481c Section 0 s21p_demo.o(i.ap_set_enter_sleep_mode) + ap_set_enter_sleep_mode 0x0001481d Thumb Code 24 s21p_demo.o(i.ap_set_enter_sleep_mode) + i.ap_set_exit_sleep_mode 0x00014864 Section 0 s21p_demo.o(i.ap_set_exit_sleep_mode) + ap_set_exit_sleep_mode 0x00014865 Thumb Code 26 s21p_demo.o(i.ap_set_exit_sleep_mode) + i.ap_set_tp_calibration_04 0x000148b0 Section 0 app_tp_st_touch.o(i.ap_set_tp_calibration_04) + i.ap_tp_st_touch_hardware_reset 0x0001497c Section 0 app_tp_st_touch.o(i.ap_tp_st_touch_hardware_reset) + i.ap_tp_st_touch_scan_point_init 0x00014a50 Section 0 app_tp_st_touch.o(i.ap_tp_st_touch_scan_point_init) + i.ap_tp_st_touch_simulate_finger_release_event 0x00014a74 Section 0 app_tp_st_touch.o(i.ap_tp_st_touch_simulate_finger_release_event) + i.ap_update_frame_rate 0x00014ab0 Section 0 s21p_demo.o(i.ap_update_frame_rate) + ap_update_frame_rate 0x00014ab1 Thumb Code 76 s21p_demo.o(i.ap_update_frame_rate) + i.app_ADC_IRQn_Handler 0x00014b04 Section 0 drv_rxbr.o(i.app_ADC_IRQn_Handler) + i.app_AP_NRESET_IRQn_Handler 0x00014b20 Section 0 drv_gpio.o(i.app_AP_NRESET_IRQn_Handler) + i.app_EXTI_INT0_IRQn_Handler 0x00014b44 Section 0 drv_gpio.o(i.app_EXTI_INT0_IRQn_Handler) + i.app_EXTI_INT1_IRQn_Handler 0x00014b60 Section 0 drv_gpio.o(i.app_EXTI_INT1_IRQn_Handler) + i.app_EXTI_INT2_IRQn_Handler 0x00014b7c Section 0 drv_gpio.o(i.app_EXTI_INT2_IRQn_Handler) + i.app_EXTI_INT3_IRQn_Handler 0x00014b98 Section 0 drv_gpio.o(i.app_EXTI_INT3_IRQn_Handler) + i.app_EXTI_INT4_IRQn_Handler 0x00014bb4 Section 0 drv_gpio.o(i.app_EXTI_INT4_IRQn_Handler) + i.app_EXTI_INT5_IRQn_Handler 0x00014bd0 Section 0 drv_gpio.o(i.app_EXTI_INT5_IRQn_Handler) + i.app_EXTI_INT6_IRQn_Handler 0x00014bec Section 0 drv_gpio.o(i.app_EXTI_INT6_IRQn_Handler) + i.app_EXTI_INT7_IRQn_Handler 0x00014c08 Section 0 drv_gpio.o(i.app_EXTI_INT7_IRQn_Handler) + i.app_HardFault_Handler 0x00014c24 Section 0 drv_common.o(i.app_HardFault_Handler) + i.app_I2C0_IRQn_Handler 0x00014c6c Section 0 drv_i2c_slave.o(i.app_I2C0_IRQn_Handler) + i.app_I2C1_IRQn_Handler 0x00014c84 Section 0 drv_i2c_master.o(i.app_I2C1_IRQn_Handler) + i.app_LCDC_IRQn_Handler 0x00014c94 Section 0 hal_internal_vsync.o(i.app_LCDC_IRQn_Handler) + i.app_MEMC_IRQn_Handler 0x00014e38 Section 0 drv_memc.o(i.app_MEMC_IRQn_Handler) + i.app_MIPI_RX_IRQn_Handler 0x00014ec0 Section 0 drv_dsi_rx.o(i.app_MIPI_RX_IRQn_Handler) + i.app_MIPI_TX_IRQn_Handler 0x00015158 Section 0 drv_dsi_tx.o(i.app_MIPI_TX_IRQn_Handler) + i.app_PWMDET_IRQn_Handler 0x000151f8 Section 0 drv_pwm.o(i.app_PWMDET_IRQn_Handler) + i.app_SPIM_IRQn_Handler 0x00015240 Section 0 drv_spi_master.o(i.app_SPIM_IRQn_Handler) + i.app_SPIS_IRQn_Handler 0x00015270 Section 0 hal_spi_slave.o(i.app_SPIS_IRQn_Handler) + i.app_SWIRE_IRQn_Handler 0x00015470 Section 0 drv_swire.o(i.app_SWIRE_IRQn_Handler) + i.app_SysTick_Handler 0x00015490 Section 0 drv_common.o(i.app_SysTick_Handler) + i.app_TIMER0_IRQn_Handler 0x000154a8 Section 0 drv_timer.o(i.app_TIMER0_IRQn_Handler) + i.app_TIMER1_IRQn_Handler 0x000154b2 Section 0 drv_timer.o(i.app_TIMER1_IRQn_Handler) + i.app_TIMER2_IRQn_Handler 0x000154bc Section 0 drv_timer.o(i.app_TIMER2_IRQn_Handler) + i.app_TIMER3_IRQn_Handler 0x000154c6 Section 0 drv_timer.o(i.app_TIMER3_IRQn_Handler) + i.app_UART_IRQn_Handler 0x000154d0 Section 0 drv_uart.o(i.app_UART_IRQn_Handler) + i.app_VIDC_IRQn_Handler 0x000154d8 Section 0 drv_vidc.o(i.app_VIDC_IRQn_Handler) + i.app_VPRE_IRQn_Handler 0x000154f4 Section 0 drv_rxbr.o(i.app_VPRE_IRQn_Handler) + i.app_WDG_IRQn_Handler 0x00015510 Section 0 drv_wdg.o(i.app_WDG_IRQn_Handler) + i.app_dma_irq_handler 0x00015548 Section 0 drv_dma.o(i.app_dma_irq_handler) + i.app_fls_ctrl_Handler 0x00015558 Section 0 norflash.o(i.app_fls_ctrl_Handler) + i.app_tp_i2cs_callback 0x00015588 Section 0 app_tp_transfer.o(i.app_tp_i2cs_callback) + app_tp_i2cs_callback 0x00015589 Thumb Code 56 app_tp_transfer.o(i.app_tp_i2cs_callback) + i.app_tp_init 0x000155cc Section 0 app_tp_transfer.o(i.app_tp_init) + i.app_tp_m_read 0x00015610 Section 0 app_tp_transfer.o(i.app_tp_m_read) + i.app_tp_m_transfer_complate 0x00015640 Section 0 app_tp_transfer.o(i.app_tp_m_transfer_complate) + i.app_tp_m_write 0x00015648 Section 0 app_tp_transfer.o(i.app_tp_m_write) + i.app_tp_phone_analysis_data 0x00015658 Section 0 app_tp_for_custom_s21p.o(i.app_tp_phone_analysis_data) + i.app_tp_s_read 0x00015af0 Section 0 app_tp_transfer.o(i.app_tp_s_read) + i.app_tp_s_write 0x00015b00 Section 0 app_tp_transfer.o(i.app_tp_s_write) + i.app_tp_screen_analysis_const 0x00015b10 Section 0 app_tp_for_custom_s21p.o(i.app_tp_screen_analysis_const) + i.app_tp_screen_analysis_int 0x00015b24 Section 0 app_tp_for_custom_s21p.o(i.app_tp_screen_analysis_int) + i.app_tp_screen_analysis_wake_up 0x00015df0 Section 0 app_tp_for_custom_s21p.o(i.app_tp_screen_analysis_wake_up) + i.app_tp_screen_analysis_wake_up_exec 0x00015ea0 Section 0 app_tp_for_custom_s21p.o(i.app_tp_screen_analysis_wake_up_exec) + i.app_tp_screen_init 0x00015f10 Section 0 app_tp_transfer.o(i.app_tp_screen_init) + i.app_tp_screen_int_callback 0x00015f4c Section 0 app_tp_transfer.o(i.app_tp_screen_int_callback) + app_tp_screen_int_callback 0x00015f4d Thumb Code 8 app_tp_transfer.o(i.app_tp_screen_int_callback) + i.app_tp_screen_int_init 0x00015f58 Section 0 app_tp_transfer.o(i.app_tp_screen_int_init) + app_tp_screen_int_init 0x00015f59 Thumb Code 56 app_tp_transfer.o(i.app_tp_screen_int_init) + i.app_tp_screen_int_lvl_low 0x00015f98 Section 0 app_tp_transfer.o(i.app_tp_screen_int_lvl_low) + app_tp_screen_int_lvl_low 0x00015f99 Thumb Code 22 app_tp_transfer.o(i.app_tp_screen_int_lvl_low) + i.app_tp_transfer_phone 0x00015fb4 Section 0 app_tp_transfer.o(i.app_tp_transfer_phone) + app_tp_transfer_phone 0x00015fb5 Thumb Code 30 app_tp_transfer.o(i.app_tp_transfer_phone) + i.app_tp_transfer_screen_const 0x00015fe0 Section 0 app_tp_transfer.o(i.app_tp_transfer_screen_const) + app_tp_transfer_screen_const 0x00015fe1 Thumb Code 232 app_tp_transfer.o(i.app_tp_transfer_screen_const) + i.app_tp_transfer_screen_int 0x0001610c Section 0 app_tp_transfer.o(i.app_tp_transfer_screen_int) + i.app_tp_transfer_screen_restart 0x00016238 Section 0 app_tp_transfer.o(i.app_tp_transfer_screen_restart) + i.app_tp_transfer_screen_start 0x00016274 Section 0 app_tp_transfer.o(i.app_tp_transfer_screen_start) + i.board_Init 0x00016294 Section 0 board.o(i.board_Init) + i.calc_framebuffer_setting 0x000162b8 Section 0 hal_internal_vsync.o(i.calc_framebuffer_setting) + i.ceil 0x000167a8 Section 0 ceil.o(i.ceil) + i.check_mipi_rx_tx_video_info 0x00016870 Section 0 hal_internal_vsync.o(i.check_mipi_rx_tx_video_info) + check_mipi_rx_tx_video_info 0x00016871 Thumb Code 44 hal_internal_vsync.o(i.check_mipi_rx_tx_video_info) + i.check_pkt_buf_rev 0x0001689c Section 0 hal_internal_vsync.o(i.check_pkt_buf_rev) + check_pkt_buf_rev 0x0001689d Thumb Code 92 hal_internal_vsync.o(i.check_pkt_buf_rev) + i.dcs_packet_fifo_alloc 0x0001692c Section 0 dcs_packet_fifo.o(i.dcs_packet_fifo_alloc) + i.dcs_packet_fifo_init 0x00016984 Section 0 dcs_packet_fifo.o(i.dcs_packet_fifo_init) + i.dcs_packet_free_fifo_header 0x0001699c Section 0 dcs_packet_fifo.o(i.dcs_packet_free_fifo_header) + i.dcs_packet_get_fifo_header 0x000169e0 Section 0 dcs_packet_fifo.o(i.dcs_packet_get_fifo_header) + i.dcs_sw_filter 0x00016a04 Section 0 hal_internal_vsync.o(i.dcs_sw_filter) + dcs_sw_filter 0x00016a05 Thumb Code 36 hal_internal_vsync.o(i.dcs_sw_filter) + i.delayMs 0x00016a30 Section 0 tau_delay.o(i.delayMs) + i.delayUs 0x00016a48 Section 0 tau_delay.o(i.delayUs) + i.drv_ap_rst_trig_edge_detect 0x00016a6c Section 0 drv_sys_cfg.o(i.drv_ap_rst_trig_edge_detect) + i.drv_chip_info_get_info 0x00016aa4 Section 0 drv_chip_info.o(i.drv_chip_info_get_info) + i.drv_chip_info_init 0x00016ab0 Section 0 drv_chip_info.o(i.drv_chip_info_init) + i.drv_chip_rx_info_check 0x00016af0 Section 0 drv_chip_info.o(i.drv_chip_rx_info_check) + i.drv_chip_rx_init_done 0x00016ba0 Section 0 drv_chip_info.o(i.drv_chip_rx_init_done) + i.drv_common_enable_systick 0x00016bb4 Section 0 drv_common.o(i.drv_common_enable_systick) + i.drv_common_system_init 0x00016c0c Section 0 drv_common.o(i.drv_common_system_init) + i.drv_crgu_config_reset_modules 0x00016c14 Section 0 drv_crgu.o(i.drv_crgu_config_reset_modules) + i.drv_crgu_set_ahb_pre_div 0x00016c24 Section 0 drv_crgu.o(i.drv_crgu_set_ahb_pre_div) + i.drv_crgu_set_ahb_src 0x00016c38 Section 0 drv_crgu.o(i.drv_crgu_set_ahb_src) + i.drv_crgu_set_clock 0x00016c4c Section 0 drv_crgu.o(i.drv_crgu_set_clock) + i.drv_crgu_set_dpi_mux_src 0x00016c6c Section 0 drv_crgu.o(i.drv_crgu_set_dpi_mux_src) + i.drv_crgu_set_dpi_pre_div 0x00016c80 Section 0 drv_crgu.o(i.drv_crgu_set_dpi_pre_div) + i.drv_crgu_set_dpi_pre_src 0x00016c98 Section 0 drv_crgu.o(i.drv_crgu_set_dpi_pre_src) + i.drv_crgu_set_dsc_core_div 0x00016cac Section 0 drv_crgu.o(i.drv_crgu_set_dsc_core_div) + i.drv_crgu_set_dsco_src 0x00016cc0 Section 0 drv_crgu.o(i.drv_crgu_set_dsco_src) + i.drv_crgu_set_dsco_src_div 0x00016cd4 Section 0 drv_crgu.o(i.drv_crgu_set_dsco_src_div) + i.drv_crgu_set_fb_div 0x00016ce8 Section 0 drv_crgu.o(i.drv_crgu_set_fb_div) + i.drv_crgu_set_fb_src 0x00016cfc Section 0 drv_crgu.o(i.drv_crgu_set_fb_src) + i.drv_crgu_set_lcdc_div 0x00016d10 Section 0 drv_crgu.o(i.drv_crgu_set_lcdc_div) + i.drv_crgu_set_lcdc_src 0x00016d24 Section 0 drv_crgu.o(i.drv_crgu_set_lcdc_src) + i.drv_crgu_set_mipi_cfg_src 0x00016d38 Section 0 drv_crgu.o(i.drv_crgu_set_mipi_cfg_src) + i.drv_crgu_set_mipi_ref_src 0x00016d4c Section 0 drv_crgu.o(i.drv_crgu_set_mipi_ref_src) + i.drv_crgu_set_reset 0x00016d64 Section 0 drv_crgu.o(i.drv_crgu_set_reset) + i.drv_crgu_set_rxbr_div 0x00016d7c Section 0 drv_crgu.o(i.drv_crgu_set_rxbr_div) + i.drv_crgu_set_rxbr_src 0x00016d90 Section 0 drv_crgu.o(i.drv_crgu_set_rxbr_src) + i.drv_crgu_set_vidc_src 0x00016da4 Section 0 drv_crgu.o(i.drv_crgu_set_vidc_src) + i.drv_dma_clear_flag 0x00016db8 Section 0 drv_dma.o(i.drv_dma_clear_flag) + i.drv_dma_create_handle 0x00016dd0 Section 0 drv_dma.o(i.drv_dma_create_handle) + i.drv_dma_disenable_channel 0x00016dec Section 0 drv_dma.o(i.drv_dma_disenable_channel) + i.drv_dma_enable_channel 0x00016dfc Section 0 drv_dma.o(i.drv_dma_enable_channel) + i.drv_dma_enable_channel_interrupts 0x00016e0c Section 0 drv_dma.o(i.drv_dma_enable_channel_interrupts) + i.drv_dma_get_channel_flag 0x00016e30 Section 0 drv_dma.o(i.drv_dma_get_channel_flag) + i.drv_dma_irq_handler 0x00016e3c Section 0 drv_dma.o(i.drv_dma_irq_handler) + i.drv_dma_prepar_transfer 0x00016ecc Section 0 drv_dma.o(i.drv_dma_prepar_transfer) + i.drv_dma_set_burst 0x00016ede Section 0 drv_dma.o(i.drv_dma_set_burst) + i.drv_dma_set_callback 0x00016ef8 Section 0 drv_dma.o(i.drv_dma_set_callback) + i.drv_dma_set_transfer 0x00016f00 Section 0 drv_dma.o(i.drv_dma_set_transfer) + i.drv_dsc_dec_convert_pps_rc_parameter 0x00016f44 Section 0 drv_dsc_dec.o(i.drv_dsc_dec_convert_pps_rc_parameter) + i.drv_dsc_dec_disable 0x00016f7a Section 0 drv_dsc_dec.o(i.drv_dsc_dec_disable) + i.drv_dsc_dec_enable 0x00016f88 Section 0 drv_dsc_dec.o(i.drv_dsc_dec_enable) + i.drv_dsc_dec_get_nslc 0x00016ffc Section 0 drv_dsc_dec.o(i.drv_dsc_dec_get_nslc) + i.drv_dsc_dec_set_u8_pps 0x00017006 Section 0 drv_dsc_dec.o(i.drv_dsc_dec_set_u8_pps) + i.drv_dsi_rx_calc_ipi_tx_delay 0x00017030 Section 0 drv_dsi_rx.o(i.drv_dsi_rx_calc_ipi_tx_delay) + i.drv_dsi_rx_enable_irq 0x00017134 Section 0 drv_dsi_rx.o(i.drv_dsi_rx_enable_irq) + i.drv_dsi_rx_get_color_bpp 0x00017174 Section 0 drv_dsi_rx.o(i.drv_dsi_rx_get_color_bpp) + drv_dsi_rx_get_color_bpp 0x00017175 Thumb Code 62 drv_dsi_rx.o(i.drv_dsi_rx_get_color_bpp) + i.drv_dsi_rx_get_color_pcc 0x000171c4 Section 0 drv_dsi_rx.o(i.drv_dsi_rx_get_color_pcc) + drv_dsi_rx_get_color_pcc 0x000171c5 Thumb Code 24 drv_dsi_rx.o(i.drv_dsi_rx_get_color_pcc) + i.drv_dsi_rx_get_compression_en 0x000171e0 Section 0 drv_dsi_rx.o(i.drv_dsi_rx_get_compression_en) + i.drv_dsi_rx_get_max_ret_size 0x000171e8 Section 0 drv_dsi_rx.o(i.drv_dsi_rx_get_max_ret_size) + i.drv_dsi_rx_power_up 0x000171ee Section 0 drv_dsi_rx.o(i.drv_dsi_rx_power_up) + i.drv_dsi_rx_set_ctrl_cfg 0x000171fc Section 0 drv_dsi_rx.o(i.drv_dsi_rx_set_ctrl_cfg) + i.drv_dsi_rx_set_ddi_cfg 0x0001721c Section 0 drv_dsi_rx.o(i.drv_dsi_rx_set_ddi_cfg) + i.drv_dsi_rx_set_ipi_cfg 0x0001722c Section 0 drv_dsi_rx.o(i.drv_dsi_rx_set_ipi_cfg) + i.drv_dsi_rx_set_lane_swap 0x0001723c Section 0 drv_dsi_rx.o(i.drv_dsi_rx_set_lane_swap) + i.drv_dsi_rx_set_resp_cnt 0x00017282 Section 0 drv_dsi_rx.o(i.drv_dsi_rx_set_resp_cnt) + i.drv_dsi_rx_set_up_phy 0x000172a8 Section 0 drv_dsi_rx.o(i.drv_dsi_rx_set_up_phy) + i.drv_dsi_rx_shut_down 0x000173ac Section 0 drv_dsi_rx.o(i.drv_dsi_rx_shut_down) + i.drv_dsi_tx_command_header 0x000173ba Section 0 drv_dsi_tx.o(i.drv_dsi_tx_command_header) + i.drv_dsi_tx_command_mode_cfg 0x000173ce Section 0 drv_dsi_tx.o(i.drv_dsi_tx_command_mode_cfg) + i.drv_dsi_tx_command_put_payload 0x0001743a Section 0 drv_dsi_tx.o(i.drv_dsi_tx_command_put_payload) + i.drv_dsi_tx_config_eotp 0x0001743e Section 0 drv_dsi_tx.o(i.drv_dsi_tx_config_eotp) + i.drv_dsi_tx_config_int 0x00017456 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_config_int) + i.drv_dsi_tx_dpi_lpcmd_time 0x0001745e Section 0 drv_dsi_tx.o(i.drv_dsi_tx_dpi_lpcmd_time) + i.drv_dsi_tx_dpi_mode 0x00017466 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_dpi_mode) + i.drv_dsi_tx_dpi_polarity 0x00017470 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_dpi_polarity) + i.drv_dsi_tx_edpi_cmd_size 0x00017494 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_edpi_cmd_size) + i.drv_dsi_tx_get_cmd_status 0x00017498 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_get_cmd_status) + i.drv_dsi_tx_mode 0x0001749c Section 0 drv_dsi_tx.o(i.drv_dsi_tx_mode) + i.drv_dsi_tx_phy_clock_lane_auto_lp 0x000174a0 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_phy_clock_lane_auto_lp) + i.drv_dsi_tx_phy_clock_lane_req_hs 0x000174b8 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_phy_clock_lane_req_hs) + i.drv_dsi_tx_phy_lane_mode 0x000174d2 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_phy_lane_mode) + i.drv_dsi_tx_phy_status_ready 0x000174de Section 0 drv_dsi_tx.o(i.drv_dsi_tx_phy_status_ready) + i.drv_dsi_tx_phy_status_stopstate 0x00017542 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_phy_status_stopstate) + i.drv_dsi_tx_phy_test_setup 0x00017580 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_phy_test_setup) + i.drv_dsi_tx_phy_time_cfg 0x000176b4 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_phy_time_cfg) + i.drv_dsi_tx_powerup 0x000176d2 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_powerup) + i.drv_dsi_tx_response_mode 0x000176da Section 0 drv_dsi_tx.o(i.drv_dsi_tx_response_mode) + i.drv_dsi_tx_set_bta_ack 0x000176f6 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_set_bta_ack) + i.drv_dsi_tx_set_esc_div 0x0001770e Section 0 drv_dsi_tx.o(i.drv_dsi_tx_set_esc_div) + i.drv_dsi_tx_set_int 0x0001771c Section 0 drv_dsi_tx.o(i.drv_dsi_tx_set_int) + i.drv_dsi_tx_set_time_out_div 0x0001775c Section 0 drv_dsi_tx.o(i.drv_dsi_tx_set_time_out_div) + i.drv_dsi_tx_set_video_chunk 0x0001776c Section 0 drv_dsi_tx.o(i.drv_dsi_tx_set_video_chunk) + i.drv_dsi_tx_set_video_timing 0x00017774 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_set_video_timing) + i.drv_dsi_tx_shutdown 0x00017796 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_shutdown) + i.drv_dsi_tx_timeout_cfg 0x0001779e Section 0 drv_dsi_tx.o(i.drv_dsi_tx_timeout_cfg) + i.drv_dsi_tx_video_mode_cfg 0x000177c4 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_video_mode_cfg) + i.drv_dsi_tx_video_mode_disable_hact_cmd 0x0001786e Section 0 drv_dsi_tx.o(i.drv_dsi_tx_video_mode_disable_hact_cmd) + i.drv_dsi_tx_video_mode_set_lp_cmd 0x00017884 Section 0 drv_dsi_tx.o(i.drv_dsi_tx_video_mode_set_lp_cmd) + i.drv_efuse_enter_inactive 0x0001789c Section 0 drv_efuse.o(i.drv_efuse_enter_inactive) + i.drv_efuse_int_enable 0x000178ca Section 0 drv_efuse.o(i.drv_efuse_int_enable) + i.drv_efuse_read 0x000178d6 Section 0 drv_efuse.o(i.drv_efuse_read) + i.drv_efuse_read_req 0x00017908 Section 0 drv_efuse.o(i.drv_efuse_read_req) + i.drv_gpio_get_input_data 0x00017920 Section 0 drv_gpio.o(i.drv_gpio_get_input_data) + i.drv_gpio_register_ap_reset_callback 0x00017938 Section 0 drv_gpio.o(i.drv_gpio_register_ap_reset_callback) + i.drv_gpio_register_callback 0x00017944 Section 0 drv_gpio.o(i.drv_gpio_register_callback) + i.drv_gpio_set_int 0x00017958 Section 0 drv_gpio.o(i.drv_gpio_set_int) + i.drv_gpio_set_ioe 0x000179a8 Section 0 drv_gpio.o(i.drv_gpio_set_ioe) + i.drv_gpio_set_mode0 0x000179c8 Section 0 drv_gpio.o(i.drv_gpio_set_mode0) + i.drv_gpio_set_mode1 0x000179d8 Section 0 drv_gpio.o(i.drv_gpio_set_mode1) + i.drv_gpio_set_mode2 0x000179e8 Section 0 drv_gpio.o(i.drv_gpio_set_mode2) + i.drv_gpio_set_mode3 0x000179f8 Section 0 drv_gpio.o(i.drv_gpio_set_mode3) + i.drv_gpio_set_output_data 0x00017a08 Section 0 hal_gpio.o(i.drv_gpio_set_output_data) + drv_gpio_set_output_data 0x00017a09 Thumb Code 26 hal_gpio.o(i.drv_gpio_set_output_data) + i.drv_gpio_set_pull_state 0x00017a28 Section 0 drv_gpio.o(i.drv_gpio_set_pull_state) + i.drv_i2c0_set_callback 0x00017b58 Section 0 drv_i2c_slave.o(i.drv_i2c0_set_callback) + i.drv_i2c1_set_callback 0x00017b64 Section 0 drv_i2c_master.o(i.drv_i2c1_set_callback) + i.drv_i2c_dma_callback 0x00017b70 Section 0 drv_i2c_dma.o(i.drv_i2c_dma_callback) + drv_i2c_dma_callback 0x00017b71 Thumb Code 40 drv_i2c_dma.o(i.drv_i2c_dma_callback) + i.drv_i2c_dma_init 0x00017ba4 Section 0 drv_i2c_dma.o(i.drv_i2c_dma_init) + i.drv_i2c_enable_rx_dma 0x00017c50 Section 0 drv_i2c_dma.o(i.drv_i2c_enable_rx_dma) + i.drv_i2c_enable_tx_dma 0x00017c6a Section 0 drv_i2c_dma.o(i.drv_i2c_enable_tx_dma) + i.drv_i2c_m_clear_it_pending_bit 0x00017c84 Section 0 drv_i2c_master.o(i.drv_i2c_m_clear_it_pending_bit) + i.drv_i2c_m_enable 0x00017ce4 Section 0 drv_i2c_master.o(i.drv_i2c_m_enable) + i.drv_i2c_m_enable_intr 0x00017cf4 Section 0 drv_i2c_master.o(i.drv_i2c_m_enable_intr) + i.drv_i2c_master_init 0x00017d2c Section 0 drv_i2c_master.o(i.drv_i2c_master_init) + i.drv_i2c_master_read_dma 0x00017db8 Section 0 drv_i2c_dma.o(i.drv_i2c_master_read_dma) + i.drv_i2c_master_write_dma 0x00017e14 Section 0 drv_i2c_dma.o(i.drv_i2c_master_write_dma) + i.drv_i2c_master_write_read_cmd 0x00017e50 Section 0 drv_i2c_dma.o(i.drv_i2c_master_write_read_cmd) + drv_i2c_master_write_read_cmd 0x00017e51 Thumb Code 62 drv_i2c_dma.o(i.drv_i2c_master_write_read_cmd) + i.drv_i2c_s_clear_it_pending_bit 0x00017e8e Section 0 drv_i2c_slave.o(i.drv_i2c_s_clear_it_pending_bit) + i.drv_i2c_s_config_intr 0x00017ed0 Section 0 drv_i2c_slave.o(i.drv_i2c_s_config_intr) + i.drv_i2c_s_enable 0x00017ed4 Section 0 drv_i2c_slave.o(i.drv_i2c_s_enable) + i.drv_i2c_s_get_fifo_status 0x00017edc Section 0 drv_i2c_slave.o(i.drv_i2c_s_get_fifo_status) + i.drv_i2c_s_set_intr 0x00017ef0 Section 0 drv_i2c_slave.o(i.drv_i2c_s_set_intr) + i.drv_i2c_s_write_data 0x00017f40 Section 0 drv_i2c_slave.o(i.drv_i2c_s_write_data) + i.drv_i2c_set_dma_irq_callback 0x00017f5c Section 0 drv_i2c_dma.o(i.drv_i2c_set_dma_irq_callback) + i.drv_i2c_slave_init 0x00017fb4 Section 0 drv_i2c_slave.o(i.drv_i2c_slave_init) + i.drv_i2c_slave_write_dma 0x00017fe8 Section 0 drv_i2c_dma.o(i.drv_i2c_slave_write_dma) + i.drv_lcdc_config_bypass 0x00018000 Section 0 drv_lcdc.o(i.drv_lcdc_config_bypass) + i.drv_lcdc_config_ccm 0x00018018 Section 0 drv_lcdc.o(i.drv_lcdc_config_ccm) + i.drv_lcdc_config_disp_mode 0x00018048 Section 0 drv_lcdc.o(i.drv_lcdc_config_disp_mode) + i.drv_lcdc_config_dpi_polarity 0x0001805e Section 0 drv_lcdc.o(i.drv_lcdc_config_dpi_polarity) + i.drv_lcdc_config_dpi_timing 0x00018082 Section 0 drv_lcdc.o(i.drv_lcdc_config_dpi_timing) + i.drv_lcdc_config_edpi_mode 0x000180a8 Section 0 drv_lcdc.o(i.drv_lcdc_config_edpi_mode) + i.drv_lcdc_config_endianness 0x000180be Section 0 drv_lcdc.o(i.drv_lcdc_config_endianness) + i.drv_lcdc_config_input_size 0x000180d4 Section 0 drv_lcdc.o(i.drv_lcdc_config_input_size) + i.drv_lcdc_config_int 0x000180e0 Section 0 drv_lcdc.o(i.drv_lcdc_config_int) + i.drv_lcdc_config_int_single 0x000180fe Section 0 drv_lcdc.o(i.drv_lcdc_config_int_single) + i.drv_lcdc_config_overwrite 0x00018120 Section 0 drv_lcdc.o(i.drv_lcdc_config_overwrite) + i.drv_lcdc_config_overwrite_rgb 0x00018142 Section 0 drv_lcdc.o(i.drv_lcdc_config_overwrite_rgb) + i.drv_lcdc_config_partial_display_area 0x0001814e Section 0 drv_lcdc.o(i.drv_lcdc_config_partial_display_area) + i.drv_lcdc_config_partial_display_enable 0x00018168 Section 0 drv_lcdc.o(i.drv_lcdc_config_partial_display_enable) + i.drv_lcdc_config_scale_up_coef 0x0001818a Section 0 drv_lcdc.o(i.drv_lcdc_config_scale_up_coef) + i.drv_lcdc_config_scale_up_step 0x000181a4 Section 0 drv_lcdc.o(i.drv_lcdc_config_scale_up_step) + i.drv_lcdc_config_src_parameter 0x000181b0 Section 0 drv_lcdc.o(i.drv_lcdc_config_src_parameter) + i.drv_lcdc_config_thresh 0x000181fc Section 0 drv_lcdc.o(i.drv_lcdc_config_thresh) + i.drv_lcdc_ctrl_flow 0x00018202 Section 0 drv_lcdc.o(i.drv_lcdc_ctrl_flow) + i.drv_lcdc_enable_shadow_reg 0x00018214 Section 0 drv_lcdc.o(i.drv_lcdc_enable_shadow_reg) + i.drv_lcdc_set_int 0x00018234 Section 0 drv_lcdc.o(i.drv_lcdc_set_int) + i.drv_lcdc_set_prefetch 0x00018274 Section 0 drv_lcdc.o(i.drv_lcdc_set_prefetch) + i.drv_lcdc_set_video_hw_mode 0x0001828c Section 0 drv_lcdc.o(i.drv_lcdc_set_video_hw_mode) + i.drv_lcdc_start 0x000182a0 Section 0 drv_lcdc.o(i.drv_lcdc_start) + i.drv_memc_clear_status 0x000182c0 Section 0 drv_memc.o(i.drv_memc_clear_status) + i.drv_memc_enable_irq 0x000182cc Section 0 drv_memc.o(i.drv_memc_enable_irq) + i.drv_memc_gen_a_tear_signal 0x0001830c Section 0 drv_memc.o(i.drv_memc_gen_a_tear_signal) + i.drv_memc_get_status 0x00018318 Section 0 drv_memc.o(i.drv_memc_get_status) + i.drv_memc_rate_transfer_sel 0x0001832a Section 0 drv_memc.o(i.drv_memc_rate_transfer_sel) + i.drv_memc_sel_vsync 0x0001833a Section 0 drv_memc.o(i.drv_memc_sel_vsync) + i.drv_memc_set_active_height 0x00018348 Section 0 drv_memc.o(i.drv_memc_set_active_height) + i.drv_memc_set_data_mode 0x0001835c Section 0 drv_memc.o(i.drv_memc_set_data_mode) + i.drv_memc_set_double_buffer 0x00018368 Section 0 drv_memc.o(i.drv_memc_set_double_buffer) + i.drv_memc_set_double_buffer_reverse 0x00018378 Section 0 drv_memc.o(i.drv_memc_set_double_buffer_reverse) + i.drv_memc_set_fs_en_conditions 0x0001838a Section 0 drv_memc.o(i.drv_memc_set_fs_en_conditions) + i.drv_memc_set_inten 0x0001839a Section 0 drv_memc.o(i.drv_memc_set_inten) + i.drv_memc_set_lcdc_st_conditions 0x000183b0 Section 0 drv_memc.o(i.drv_memc_set_lcdc_st_conditions) + i.drv_memc_set_ltpo_mode 0x000183c8 Section 0 drv_memc.o(i.drv_memc_set_ltpo_mode) + i.drv_memc_set_tear_mode 0x000183e2 Section 0 drv_memc.o(i.drv_memc_set_tear_mode) + i.drv_memc_set_tear_waveform 0x000183f0 Section 0 drv_memc.o(i.drv_memc_set_tear_waveform) + i.drv_memc_set_vidc_sync_cnt 0x00018418 Section 0 drv_memc.o(i.drv_memc_set_vidc_sync_cnt) + i.drv_param_init_get_ccm 0x00018428 Section 0 drv_param_init.o(i.drv_param_init_get_ccm) + i.drv_param_init_get_scld_filter_h 0x00018430 Section 0 drv_param_init.o(i.drv_param_init_get_scld_filter_h) + i.drv_param_init_get_scld_filter_v 0x00018444 Section 0 drv_param_init.o(i.drv_param_init_get_scld_filter_v) + i.drv_param_init_get_sclu_filter 0x00018458 Section 0 drv_param_init.o(i.drv_param_init_get_sclu_filter) + i.drv_param_init_set_ccm 0x00018460 Section 0 drv_param_init.o(i.drv_param_init_set_ccm) + i.drv_param_p2r_filter_init 0x00018474 Section 0 drv_param_init.o(i.drv_param_p2r_filter_init) + i.drv_phy_enable_calibration 0x00018498 Section 0 drv_phy_common.o(i.drv_phy_enable_calibration) + i.drv_phy_get_calibration 0x000184a8 Section 0 drv_phy_common.o(i.drv_phy_get_calibration) + i.drv_phy_get_pll_para 0x000184e4 Section 0 drv_phy_common.o(i.drv_phy_get_pll_para) + i.drv_phy_get_rate_para 0x00018544 Section 0 drv_phy_common.o(i.drv_phy_get_rate_para) + i.drv_phy_test_clear 0x00018598 Section 0 drv_phy_common.o(i.drv_phy_test_clear) + i.drv_phy_test_lock 0x000185a8 Section 0 drv_phy_common.o(i.drv_phy_test_lock) + i.drv_phy_test_write_1_byte 0x000185c0 Section 0 drv_phy_common.o(i.drv_phy_test_write_1_byte) + i.drv_phy_test_write_2_byte 0x000185e0 Section 0 drv_phy_common.o(i.drv_phy_test_write_2_byte) + i.drv_phy_test_write_code 0x00018606 Section 0 drv_phy_common.o(i.drv_phy_test_write_code) + i.drv_phy_test_write_data 0x00018624 Section 0 drv_phy_common.o(i.drv_phy_test_write_data) + drv_phy_test_write_data 0x00018625 Thumb Code 32 drv_phy_common.o(i.drv_phy_test_write_data) + i.drv_pwr_set_cp_mode 0x00018644 Section 0 drv_pwr.o(i.drv_pwr_set_cp_mode) + i.drv_pwr_set_pvd_mode 0x00018664 Section 0 drv_pwr.o(i.drv_pwr_set_pvd_mode) + i.drv_pwr_set_system_clk_src 0x0001867c Section 0 drv_pwr.o(i.drv_pwr_set_system_clk_src) + i.drv_rx_phy_test_clear 0x000186b4 Section 0 drv_dsi_rx.o(i.drv_rx_phy_test_clear) + drv_rx_phy_test_clear 0x000186b5 Thumb Code 12 drv_dsi_rx.o(i.drv_rx_phy_test_clear) + i.drv_rx_phy_test_lock 0x000186c0 Section 0 drv_dsi_rx.o(i.drv_rx_phy_test_lock) + drv_rx_phy_test_lock 0x000186c1 Thumb Code 16 drv_dsi_rx.o(i.drv_rx_phy_test_lock) + i.drv_rx_phy_test_write_1_byte 0x000186d0 Section 0 drv_dsi_rx.o(i.drv_rx_phy_test_write_1_byte) + drv_rx_phy_test_write_1_byte 0x000186d1 Thumb Code 20 drv_dsi_rx.o(i.drv_rx_phy_test_write_1_byte) + i.drv_rx_phy_test_write_2_byte 0x000186e4 Section 0 drv_dsi_rx.o(i.drv_rx_phy_test_write_2_byte) + drv_rx_phy_test_write_2_byte 0x000186e5 Thumb Code 22 drv_dsi_rx.o(i.drv_rx_phy_test_write_2_byte) + i.drv_rxbr_clear_pkt_buffer 0x000186fa Section 0 drv_rxbr.o(i.drv_rxbr_clear_pkt_buffer) + i.drv_rxbr_clear_status0 0x00018704 Section 0 drv_rxbr.o(i.drv_rxbr_clear_status0) + i.drv_rxbr_enable_irq 0x00018708 Section 0 drv_rxbr.o(i.drv_rxbr_enable_irq) + i.drv_rxbr_frame_drop_cfg 0x00018764 Section 0 drv_rxbr.o(i.drv_rxbr_frame_drop_cfg) + i.drv_rxbr_get_clk 0x00018778 Section 0 drv_rxbr.o(i.drv_rxbr_get_clk) + i.drv_rxbr_get_col_addr 0x000187dc Section 0 drv_rxbr.o(i.drv_rxbr_get_col_addr) + i.drv_rxbr_get_int_source 0x000187e0 Section 0 hal_internal_vsync.o(i.drv_rxbr_get_int_source) + drv_rxbr_get_int_source 0x000187e1 Thumb Code 18 hal_internal_vsync.o(i.drv_rxbr_get_int_source) + i.drv_rxbr_get_page_addr 0x000187f2 Section 0 drv_rxbr.o(i.drv_rxbr_get_page_addr) + i.drv_rxbr_get_status0 0x000187f6 Section 0 hal_internal_vsync.o(i.drv_rxbr_get_status0) + drv_rxbr_get_status0 0x000187f7 Thumb Code 18 hal_internal_vsync.o(i.drv_rxbr_get_status0) + i.drv_rxbr_hline_rcv0_cfg 0x00018808 Section 0 drv_rxbr.o(i.drv_rxbr_hline_rcv0_cfg) + i.drv_rxbr_hline_rcv_cfg 0x00018814 Section 0 drv_rxbr.o(i.drv_rxbr_hline_rcv_cfg) + i.drv_rxbr_register_irq0_callback 0x0001881c Section 0 drv_rxbr.o(i.drv_rxbr_register_irq0_callback) + i.drv_rxbr_register_irq1_callback 0x00018828 Section 0 drv_rxbr.o(i.drv_rxbr_register_irq1_callback) + i.drv_rxbr_set_ack_pkt_header 0x00018834 Section 0 drv_rxbr.o(i.drv_rxbr_set_ack_pkt_header) + i.drv_rxbr_set_cmd_filter 0x00018848 Section 0 drv_rxbr.o(i.drv_rxbr_set_cmd_filter) + i.drv_rxbr_set_color_format 0x00018914 Section 0 drv_rxbr.o(i.drv_rxbr_set_color_format) + i.drv_rxbr_set_inten 0x00018928 Section 0 drv_rxbr.o(i.drv_rxbr_set_inten) + i.drv_rxbr_set_ltpo_drop_th 0x0001893c Section 0 drv_rxbr.o(i.drv_rxbr_set_ltpo_drop_th) + i.drv_rxbr_set_usr_cfg 0x0001894c Section 0 drv_rxbr.o(i.drv_rxbr_set_usr_cfg) + i.drv_rxbr_set_usr_col 0x00018972 Section 0 drv_rxbr.o(i.drv_rxbr_set_usr_col) + i.drv_rxbr_set_usr_row 0x0001897a Section 0 drv_rxbr.o(i.drv_rxbr_set_usr_row) + i.drv_spi_m_read_data 0x00018984 Section 0 drv_spi_master.o(i.drv_spi_m_read_data) + i.drv_swire_enable 0x000189a4 Section 0 drv_swire.o(i.drv_swire_enable) + i.drv_swire_set_int 0x000189c0 Section 0 drv_swire.o(i.drv_swire_set_int) + i.drv_swire_set_power_down 0x00018a14 Section 0 drv_swire.o(i.drv_swire_set_power_down) + i.drv_sys_cfg_clear_all_int 0x00018a30 Section 0 drv_sys_cfg.o(i.drv_sys_cfg_clear_all_int) + i.drv_sys_cfg_clear_pending 0x00018a3c Section 0 drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) + i.drv_sys_cfg_sel_ap_rst_lvl_trig 0x00018a64 Section 0 drv_sys_cfg.o(i.drv_sys_cfg_sel_ap_rst_lvl_trig) + i.drv_sys_cfg_sel_ap_rst_trig 0x00018a7c Section 0 drv_sys_cfg.o(i.drv_sys_cfg_sel_ap_rst_trig) + i.drv_sys_cfg_sel_gpio_group 0x00018a98 Section 0 drv_sys_cfg.o(i.drv_sys_cfg_sel_gpio_group) + i.drv_sys_cfg_sel_int_trig 0x00018abc Section 0 drv_sys_cfg.o(i.drv_sys_cfg_sel_int_trig) + i.drv_sys_cfg_set_dma_rx_req 0x00018ae0 Section 0 drv_sys_cfg.o(i.drv_sys_cfg_set_dma_rx_req) + i.drv_sys_cfg_set_dma_tx_req 0x00018af0 Section 0 drv_sys_cfg.o(i.drv_sys_cfg_set_dma_tx_req) + i.drv_sys_cfg_set_int 0x00018b00 Section 0 drv_sys_cfg.o(i.drv_sys_cfg_set_int) + i.drv_timer_clear_status_flags 0x00018b24 Section 0 drv_timer.o(i.drv_timer_clear_status_flags) + drv_timer_clear_status_flags 0x00018b25 Thumb Code 26 drv_timer.o(i.drv_timer_clear_status_flags) + i.drv_timer_enable 0x00018b3e Section 0 drv_timer.o(i.drv_timer_enable) + i.drv_timer_get_instance 0x00018b60 Section 0 drv_timer.o(i.drv_timer_get_instance) + i.drv_timer_get_prescaler 0x00018b70 Section 0 drv_timer.o(i.drv_timer_get_prescaler) + i.drv_timer_handle_interrupt 0x00018b80 Section 0 drv_timer.o(i.drv_timer_handle_interrupt) + drv_timer_handle_interrupt 0x00018b81 Thumb Code 62 drv_timer.o(i.drv_timer_handle_interrupt) + i.drv_timer_register_callback 0x00018bc4 Section 0 drv_timer.o(i.drv_timer_register_callback) + i.drv_timer_set_compare_val 0x00018bd8 Section 0 drv_timer.o(i.drv_timer_set_compare_val) + i.drv_timer_set_int 0x00018be8 Section 0 drv_timer.o(i.drv_timer_set_int) + i.drv_timer_set_prescaler 0x00018c3c Section 0 drv_timer.o(i.drv_timer_set_prescaler) + i.drv_timer_set_repeat 0x00018c64 Section 0 drv_timer.o(i.drv_timer_set_repeat) + i.drv_tx_phy_test_clear 0x00018c74 Section 0 drv_dsi_tx.o(i.drv_tx_phy_test_clear) + drv_tx_phy_test_clear 0x00018c75 Thumb Code 10 drv_dsi_tx.o(i.drv_tx_phy_test_clear) + i.drv_tx_phy_test_enter 0x00018c7e Section 0 drv_dsi_tx.o(i.drv_tx_phy_test_enter) + i.drv_tx_phy_test_exit 0x00018c9a Section 0 drv_dsi_tx.o(i.drv_tx_phy_test_exit) + i.drv_tx_phy_test_write_1_byte 0x00018cb6 Section 0 drv_dsi_tx.o(i.drv_tx_phy_test_write_1_byte) + drv_tx_phy_test_write_1_byte 0x00018cb7 Thumb Code 18 drv_dsi_tx.o(i.drv_tx_phy_test_write_1_byte) + i.drv_tx_phy_test_write_2_byte 0x00018cc8 Section 0 drv_dsi_tx.o(i.drv_tx_phy_test_write_2_byte) + drv_tx_phy_test_write_2_byte 0x00018cc9 Thumb Code 20 drv_dsi_tx.o(i.drv_tx_phy_test_write_2_byte) + i.drv_tx_phy_test_write_code 0x00018cdc Section 0 drv_dsi_tx.o(i.drv_tx_phy_test_write_code) + drv_tx_phy_test_write_code 0x00018cdd Thumb Code 16 drv_dsi_tx.o(i.drv_tx_phy_test_write_code) + i.drv_vidc_clear_irq 0x00018cec Section 0 drv_vidc.o(i.drv_vidc_clear_irq) + i.drv_vidc_enable 0x00018cf4 Section 0 drv_vidc.o(i.drv_vidc_enable) + i.drv_vidc_enable_irq 0x00018d0c Section 0 drv_vidc.o(i.drv_vidc_enable_irq) + i.drv_vidc_get_irq_status 0x00018d4c Section 0 drv_vidc.o(i.drv_vidc_get_irq_status) + i.drv_vidc_init_module_enable 0x00018d60 Section 0 drv_vidc.o(i.drv_vidc_init_module_enable) + i.drv_vidc_register_callback 0x00018d88 Section 0 drv_vidc.o(i.drv_vidc_register_callback) + i.drv_vidc_reset 0x00018d94 Section 0 drv_vidc.o(i.drv_vidc_reset) + i.drv_vidc_set_dst_parameter 0x00018d9a Section 0 drv_vidc.o(i.drv_vidc_set_dst_parameter) + i.drv_vidc_set_irqen 0x00018dd6 Section 0 drv_vidc.o(i.drv_vidc_set_irqen) + i.drv_vidc_set_mirror 0x00018dea Section 0 drv_vidc.o(i.drv_vidc_set_mirror) + i.drv_vidc_set_p2r_hcoef0 0x00018dfa Section 0 drv_vidc.o(i.drv_vidc_set_p2r_hcoef0) + i.drv_vidc_set_p2r_hinitb 0x00018e02 Section 0 drv_vidc.o(i.drv_vidc_set_p2r_hinitb) + i.drv_vidc_set_p2r_hinitr 0x00018e28 Section 0 drv_vidc.o(i.drv_vidc_set_p2r_hinitr) + i.drv_vidc_set_pentile_swap 0x00018e50 Section 0 drv_vidc.o(i.drv_vidc_set_pentile_swap) + i.drv_vidc_set_pu_ctrl 0x00018e68 Section 0 drv_vidc.o(i.drv_vidc_set_pu_ctrl) + i.drv_vidc_set_rotation 0x00018e72 Section 0 drv_vidc.o(i.drv_vidc_set_rotation) + i.drv_vidc_set_scld_hcoef0 0x00018e82 Section 0 drv_vidc.o(i.drv_vidc_set_scld_hcoef0) + i.drv_vidc_set_scld_hcoef1 0x00018e8c Section 0 drv_vidc.o(i.drv_vidc_set_scld_hcoef1) + i.drv_vidc_set_scld_step 0x00018e96 Section 0 drv_vidc.o(i.drv_vidc_set_scld_step) + i.drv_vidc_set_scld_vcoef0 0x00018ea8 Section 0 drv_vidc.o(i.drv_vidc_set_scld_vcoef0) + i.drv_vidc_set_scld_vcoef1 0x00018eb2 Section 0 drv_vidc.o(i.drv_vidc_set_scld_vcoef1) + i.drv_vidc_set_src_parameter 0x00018ebc Section 0 drv_vidc.o(i.drv_vidc_set_src_parameter) + i.drv_wdg_clear_counter 0x00018ed4 Section 0 drv_wdg.o(i.drv_wdg_clear_counter) + i.drv_wdg_clear_edge_flag 0x00018ee4 Section 0 drv_wdg.o(i.drv_wdg_clear_edge_flag) + drv_wdg_clear_edge_flag 0x00018ee5 Thumb Code 12 drv_wdg.o(i.drv_wdg_clear_edge_flag) + i.drv_wdg_read_edge_flag 0x00018ef4 Section 0 drv_wdg.o(i.drv_wdg_read_edge_flag) + drv_wdg_read_edge_flag 0x00018ef5 Thumb Code 10 drv_wdg.o(i.drv_wdg_read_edge_flag) + i.drv_wdg_set_int 0x00018f04 Section 0 drv_wdg.o(i.drv_wdg_set_int) + i.fls_clr_interrupt_flag 0x00018f44 Section 0 drv_fls.o(i.fls_clr_interrupt_flag) + i.fputc 0x00018f4e Section 0 tau_log.o(i.fputc) + i.hal_dsi_rx_ctrl_create_handle 0x00018f64 Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_create_handle) + i.hal_dsi_rx_ctrl_deinit 0x00018f98 Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_deinit) + i.hal_dsi_rx_ctrl_dsc_async_handler 0x00019034 Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_dsc_async_handler) + i.hal_dsi_rx_ctrl_gen_a_tear_signal 0x000190b8 Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_gen_a_tear_signal) + i.hal_dsi_rx_ctrl_get_compressen_en 0x000190e0 Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_get_compressen_en) + i.hal_dsi_rx_ctrl_get_max_ret_size 0x000190f0 Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_get_max_ret_size) + i.hal_dsi_rx_ctrl_init 0x00019118 Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init) + i.hal_dsi_rx_ctrl_init_clk 0x000191b0 Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_clk) + hal_dsi_rx_ctrl_init_clk 0x000191b1 Thumb Code 332 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_clk) + i.hal_dsi_rx_ctrl_init_dsi_rx 0x00019354 Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_dsi_rx) + hal_dsi_rx_ctrl_init_dsi_rx 0x00019355 Thumb Code 184 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_dsi_rx) + i.hal_dsi_rx_ctrl_init_memc 0x0001942c Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_memc) + hal_dsi_rx_ctrl_init_memc 0x0001942d Thumb Code 334 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_memc) + i.hal_dsi_rx_ctrl_init_rxbr 0x00019584 Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_rxbr) + hal_dsi_rx_ctrl_init_rxbr 0x00019585 Thumb Code 312 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_rxbr) + i.hal_dsi_rx_ctrl_init_vidc 0x000196cc Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_vidc) + hal_dsi_rx_ctrl_init_vidc 0x000196cd Thumb Code 544 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init_vidc) + i.hal_dsi_rx_ctrl_pre_init_pps 0x000198f8 Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_pre_init_pps) + i.hal_dsi_rx_ctrl_send_ack_cmd 0x00019934 Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_send_ack_cmd) + i.hal_dsi_rx_ctrl_set_cus_esc_clk 0x00019a24 Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_cus_esc_clk) + i.hal_dsi_rx_ctrl_set_cus_sync_line 0x00019a50 Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_cus_sync_line) + i.hal_dsi_rx_ctrl_set_ipi_cfg 0x00019a84 Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_ipi_cfg) + hal_dsi_rx_ctrl_set_ipi_cfg 0x00019a85 Thumb Code 50 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_ipi_cfg) + i.hal_dsi_rx_ctrl_set_rxbr_clk 0x00019abc Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_rxbr_clk) + hal_dsi_rx_ctrl_set_rxbr_clk 0x00019abd Thumb Code 114 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_rxbr_clk) + i.hal_dsi_rx_ctrl_set_sw_tear_mode 0x00019b30 Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_sw_tear_mode) + i.hal_dsi_rx_ctrl_set_tear_mode_ex 0x00019b64 Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_tear_mode_ex) + i.hal_dsi_rx_ctrl_start 0x00019b74 Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_start) + i.hal_dsi_rx_ctrl_stop 0x00019bb0 Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_stop) + i.hal_dsi_rx_ctrl_toggle_resolution 0x00019bec Section 0 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_toggle_resolution) + i.hal_dsi_tx_calc_video_chunks 0x00019c0c Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_calc_video_chunks) + hal_dsi_tx_calc_video_chunks 0x00019c0d Thumb Code 384 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_calc_video_chunks) + i.hal_dsi_tx_config_params_for_lane_rate 0x00019d9c Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_config_params_for_lane_rate) + hal_dsi_tx_config_params_for_lane_rate 0x00019d9d Thumb Code 42 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_config_params_for_lane_rate) + i.hal_dsi_tx_count_lane_rate 0x00019dd0 Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_count_lane_rate) + hal_dsi_tx_count_lane_rate 0x00019dd1 Thumb Code 1022 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_count_lane_rate) + i.hal_dsi_tx_ctrl_create_handle 0x0001a220 Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_create_handle) + i.hal_dsi_tx_ctrl_deinit 0x0001a24c Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_deinit) + i.hal_dsi_tx_ctrl_enter_init_panel_mode 0x0001a2d0 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 0x0001a31c Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_exit_init_panel_mode) + i.hal_dsi_tx_ctrl_init 0x0001a344 Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_init) + i.hal_dsi_tx_ctrl_init_clk 0x0001a3e8 Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_init_clk) + hal_dsi_tx_ctrl_init_clk 0x0001a3e9 Thumb Code 36 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_init_clk) + i.hal_dsi_tx_ctrl_panel_reset_pin 0x0001a40c Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_panel_reset_pin) + i.hal_dsi_tx_ctrl_set_ccm 0x0001a418 Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_ccm) + i.hal_dsi_tx_ctrl_set_overwrite_rgb 0x0001a438 Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_overwrite_rgb) + i.hal_dsi_tx_ctrl_set_partial_disp 0x0001a44c Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_partial_disp) + i.hal_dsi_tx_ctrl_set_partial_disp_area 0x0001a45c Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_partial_disp_area) + i.hal_dsi_tx_ctrl_start 0x0001a480 Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_start) + i.hal_dsi_tx_ctrl_stop 0x0001a51c Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_stop) + i.hal_dsi_tx_ctrl_write_array_cmd 0x0001a560 Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_write_array_cmd) + i.hal_dsi_tx_ctrl_write_cmd 0x0001a638 Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_write_cmd) + i.hal_dsi_tx_init_data_mode 0x0001a6e8 Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_data_mode) + hal_dsi_tx_init_data_mode 0x0001a6e9 Thumb Code 58 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_data_mode) + i.hal_dsi_tx_init_dpi_cfg 0x0001a72c Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_dpi_cfg) + hal_dsi_tx_init_dpi_cfg 0x0001a72d Thumb Code 42 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_dpi_cfg) + i.hal_dsi_tx_init_interrupt 0x0001a75c Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_interrupt) + hal_dsi_tx_init_interrupt 0x0001a75d Thumb Code 28 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_interrupt) + i.hal_dsi_tx_init_phy_cfg 0x0001a77c Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_phy_cfg) + hal_dsi_tx_init_phy_cfg 0x0001a77d Thumb Code 28 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_phy_cfg) + i.hal_dsi_tx_init_remains 0x0001a79c Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_remains) + hal_dsi_tx_init_remains 0x0001a79d Thumb Code 142 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_remains) + i.hal_dsi_tx_init_video_mode 0x0001a830 Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_video_mode) + hal_dsi_tx_init_video_mode 0x0001a831 Thumb Code 82 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_init_video_mode) + i.hal_dsi_tx_send_cmd 0x0001a888 Section 0 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_send_cmd) + hal_dsi_tx_send_cmd 0x0001a889 Thumb Code 60 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_send_cmd) + i.hal_gpio_ctrl_eint 0x0001a8cc Section 0 hal_gpio.o(i.hal_gpio_ctrl_eint) + i.hal_gpio_get_input_data 0x0001a8e4 Section 0 hal_gpio.o(i.hal_gpio_get_input_data) + i.hal_gpio_init_eint 0x0001a8f8 Section 0 hal_gpio.o(i.hal_gpio_init_eint) + i.hal_gpio_init_output 0x0001a938 Section 0 hal_gpio.o(i.hal_gpio_init_output) + i.hal_gpio_reg_eint_cb 0x0001a960 Section 0 hal_gpio.o(i.hal_gpio_reg_eint_cb) + i.hal_gpio_set_ap_reset_int 0x0001a978 Section 0 hal_gpio.o(i.hal_gpio_set_ap_reset_int) + i.hal_gpio_set_mode 0x0001a9c8 Section 0 hal_gpio.o(i.hal_gpio_set_mode) + i.hal_gpio_set_output_data 0x0001aa28 Section 0 hal_gpio.o(i.hal_gpio_set_output_data) + i.hal_gpio_set_pull_state 0x0001aa30 Section 0 hal_gpio.o(i.hal_gpio_set_pull_state) + i.hal_i2c_m_dma_init 0x0001aa50 Section 0 hal_i2c_master.o(i.hal_i2c_m_dma_init) + i.hal_i2c_m_dma_read 0x0001aabc Section 0 hal_i2c_master.o(i.hal_i2c_m_dma_read) + i.hal_i2c_m_dma_write 0x0001aadc Section 0 hal_i2c_master.o(i.hal_i2c_m_dma_write) + i.hal_i2c_m_transfer_complate 0x0001aaf8 Section 0 hal_i2c_master.o(i.hal_i2c_m_transfer_complate) + i.hal_i2c_master_irq_callback 0x0001ab04 Section 0 hal_i2c_master.o(i.hal_i2c_master_irq_callback) + hal_i2c_master_irq_callback 0x0001ab05 Thumb Code 24 hal_i2c_master.o(i.hal_i2c_master_irq_callback) + i.hal_i2c_s_dma_user_callback 0x0001ab24 Section 0 hal_i2c_slave.o(i.hal_i2c_s_dma_user_callback) + hal_i2c_s_dma_user_callback 0x0001ab25 Thumb Code 12 hal_i2c_slave.o(i.hal_i2c_s_dma_user_callback) + i.hal_i2c_s_dma_write 0x0001ab34 Section 0 hal_i2c_slave.o(i.hal_i2c_s_dma_write) + i.hal_i2c_s_init 0x0001ab80 Section 0 hal_i2c_slave.o(i.hal_i2c_s_init) + i.hal_i2c_s_nonblocking_read 0x0001ac48 Section 0 hal_i2c_slave.o(i.hal_i2c_s_nonblocking_read) + i.hal_i2c_s_set_transfer 0x0001ac5c Section 0 hal_i2c_slave.o(i.hal_i2c_s_set_transfer) + i.hal_i2c_slave_irq_callback 0x0001ac68 Section 0 hal_i2c_slave.o(i.hal_i2c_slave_irq_callback) + hal_i2c_slave_irq_callback 0x0001ac69 Thumb Code 356 hal_i2c_slave.o(i.hal_i2c_slave_irq_callback) + i.hal_internal_init_memc 0x0001addc Section 0 hal_internal_vsync.o(i.hal_internal_init_memc) + i.hal_internal_sync_get_fb_setting 0x0001aed8 Section 0 hal_internal_vsync.o(i.hal_internal_sync_get_fb_setting) + i.hal_internal_sync_get_hight_performan_mode 0x0001aee8 Section 0 hal_internal_vsync.o(i.hal_internal_sync_get_hight_performan_mode) + i.hal_internal_sync_input_resolution_change 0x0001aef8 Section 0 hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change) + i.hal_internal_update_dpi_param 0x0001b124 Section 0 hal_internal_vsync.o(i.hal_internal_update_dpi_param) + i.hal_internal_video_mode_auto_sync 0x0001b134 Section 0 hal_internal_vsync.o(i.hal_internal_video_mode_auto_sync) + i.hal_internal_vsync_deinit 0x0001b260 Section 0 hal_internal_vsync.o(i.hal_internal_vsync_deinit) + i.hal_internal_vsync_get_rx_state 0x0001b288 Section 0 hal_internal_vsync.o(i.hal_internal_vsync_get_rx_state) + i.hal_internal_vsync_get_sync_line 0x0001b294 Section 0 hal_internal_vsync.o(i.hal_internal_vsync_get_sync_line) + i.hal_internal_vsync_get_tear_mode 0x0001b2ac Section 0 hal_internal_vsync.o(i.hal_internal_vsync_get_tear_mode) + i.hal_internal_vsync_get_tx_state 0x0001b2b8 Section 0 hal_internal_vsync.o(i.hal_internal_vsync_get_tx_state) + i.hal_internal_vsync_init_rx 0x0001b2c4 Section 0 hal_internal_vsync.o(i.hal_internal_vsync_init_rx) + i.hal_internal_vsync_init_tx 0x0001b3dc Section 0 hal_internal_vsync.o(i.hal_internal_vsync_init_tx) + i.hal_internal_vsync_set_auto_hw_filter 0x0001b48c Section 0 hal_internal_vsync.o(i.hal_internal_vsync_set_auto_hw_filter) + i.hal_internal_vsync_set_rx_state 0x0001b5a8 Section 0 hal_internal_vsync.o(i.hal_internal_vsync_set_rx_state) + i.hal_internal_vsync_set_sync_line 0x0001b5bc Section 0 hal_internal_vsync.o(i.hal_internal_vsync_set_sync_line) + i.hal_internal_vsync_set_tear_mode 0x0001b5e0 Section 0 hal_internal_vsync.o(i.hal_internal_vsync_set_tear_mode) + i.hal_internal_vsync_set_tx_state 0x0001b630 Section 0 hal_internal_vsync.o(i.hal_internal_vsync_set_tx_state) + i.hal_lcdc_config_ccm 0x0001b6b0 Section 0 hal_dsi_tx_ctrl.o(i.hal_lcdc_config_ccm) + hal_lcdc_config_ccm 0x0001b6b1 Thumb Code 30 hal_dsi_tx_ctrl.o(i.hal_lcdc_config_ccm) + i.hal_lcdc_config_remains 0x0001b6d4 Section 0 hal_dsi_tx_ctrl.o(i.hal_lcdc_config_remains) + hal_lcdc_config_remains 0x0001b6d5 Thumb Code 84 hal_dsi_tx_ctrl.o(i.hal_lcdc_config_remains) + i.hal_lcdc_config_rgb_to_pentile 0x0001b72c Section 0 hal_dsi_tx_ctrl.o(i.hal_lcdc_config_rgb_to_pentile) + hal_lcdc_config_rgb_to_pentile 0x0001b72d Thumb Code 14 hal_dsi_tx_ctrl.o(i.hal_lcdc_config_rgb_to_pentile) + i.hal_lcdc_config_upscaler 0x0001b740 Section 0 hal_dsi_tx_ctrl.o(i.hal_lcdc_config_upscaler) + hal_lcdc_config_upscaler 0x0001b741 Thumb Code 348 hal_dsi_tx_ctrl.o(i.hal_lcdc_config_upscaler) + i.hal_lcdc_init_cfg 0x0001b8a4 Section 0 hal_dsi_tx_ctrl.o(i.hal_lcdc_init_cfg) + hal_lcdc_init_cfg 0x0001b8a5 Thumb Code 78 hal_dsi_tx_ctrl.o(i.hal_lcdc_init_cfg) + i.hal_lcdc_init_clk 0x0001b8f8 Section 0 hal_dsi_tx_ctrl.o(i.hal_lcdc_init_clk) + hal_lcdc_init_clk 0x0001b8f9 Thumb Code 422 hal_dsi_tx_ctrl.o(i.hal_lcdc_init_clk) + i.hal_lcdc_init_interrupt 0x0001baa8 Section 0 hal_dsi_tx_ctrl.o(i.hal_lcdc_init_interrupt) + hal_lcdc_init_interrupt 0x0001baa9 Thumb Code 58 hal_dsi_tx_ctrl.o(i.hal_lcdc_init_interrupt) + i.hal_spi_m_clear_rxfifo 0x0001bae8 Section 0 hal_spi_master.o(i.hal_spi_m_clear_rxfifo) + i.hal_swire_deinit 0x0001baf6 Section 0 hal_swire.o(i.hal_swire_deinit) + i.hal_swire_open 0x0001bb08 Section 0 hal_swire.o(i.hal_swire_open) + i.hal_system_enable_systick 0x0001bb1e Section 0 hal_system.o(i.hal_system_enable_systick) + i.hal_system_init 0x0001bb28 Section 0 hal_system.o(i.hal_system_init) + i.hal_system_init_console 0x0001bbb0 Section 0 hal_system.o(i.hal_system_init_console) + i.hal_system_set_phy_calibration 0x0001bbcc Section 0 hal_system.o(i.hal_system_set_phy_calibration) + i.hal_system_set_pvd 0x0001bbd4 Section 0 hal_system.o(i.hal_system_set_pvd) + i.hal_system_set_vcc 0x0001bbdc Section 0 hal_system.o(i.hal_system_set_vcc) + i.hal_timer_deinit 0x0001bbe4 Section 0 hal_timer.o(i.hal_timer_deinit) + i.hal_timer_init 0x0001bc12 Section 0 hal_timer.o(i.hal_timer_init) + i.hal_timer_start 0x0001bc2c Section 0 hal_timer.o(i.hal_timer_start) + i.hal_timer_stop 0x0001bc74 Section 0 hal_timer.o(i.hal_timer_stop) + i.hal_uart_init 0x0001bc9c Section 0 hal_uart.o(i.hal_uart_init) + i.hal_uart_transmit_blocking 0x0001bd28 Section 0 hal_uart.o(i.hal_uart_transmit_blocking) + i.handle_init 0x0001bd38 Section 0 irq_redirect .o(i.handle_init) + i.init_mipi_tx 0x0001be48 Section 0 s21p_demo.o(i.init_mipi_tx) + init_mipi_tx 0x0001be49 Thumb Code 194 s21p_demo.o(i.init_mipi_tx) + i.init_panel 0x0001bf30 Section 0 s21p_demo.o(i.init_panel) + init_panel 0x0001bf31 Thumb Code 88 s21p_demo.o(i.init_panel) + i.main 0x0001bfb8 Section 0 main.o(i.main) + i.open_mipi_rx 0x0001bfc8 Section 0 s21p_demo.o(i.open_mipi_rx) + open_mipi_rx 0x0001bfc9 Thumb Code 250 s21p_demo.o(i.open_mipi_rx) + i.pps_update_handle 0x0001c0e0 Section 0 s21p_demo.o(i.pps_update_handle) + pps_update_handle 0x0001c0e1 Thumb Code 76 s21p_demo.o(i.pps_update_handle) + i.rx_get_dcs_packet_data 0x0001c15c Section 0 hal_internal_vsync.o(i.rx_get_dcs_packet_data) + rx_get_dcs_packet_data 0x0001c15d Thumb Code 654 hal_internal_vsync.o(i.rx_get_dcs_packet_data) + i.rx_partial_update 0x0001c550 Section 0 hal_internal_vsync.o(i.rx_partial_update) + rx_partial_update 0x0001c551 Thumb Code 358 hal_internal_vsync.o(i.rx_partial_update) + i.rx_receive_packet 0x0001c6c8 Section 0 hal_internal_vsync.o(i.rx_receive_packet) + rx_receive_packet 0x0001c6c9 Thumb Code 128 hal_internal_vsync.o(i.rx_receive_packet) + i.rx_receive_pps 0x0001c754 Section 0 hal_internal_vsync.o(i.rx_receive_pps) + rx_receive_pps 0x0001c755 Thumb Code 268 hal_internal_vsync.o(i.rx_receive_pps) + i.rxbr_irq0_callback 0x0001c8d4 Section 0 hal_internal_vsync.o(i.rxbr_irq0_callback) + rxbr_irq0_callback 0x0001c8d5 Thumb Code 158 hal_internal_vsync.o(i.rxbr_irq0_callback) + i.rxbr_irq1_callback 0x0001c978 Section 0 hal_internal_vsync.o(i.rxbr_irq1_callback) + rxbr_irq1_callback 0x0001c979 Thumb Code 324 hal_internal_vsync.o(i.rxbr_irq1_callback) + i.send_panel_init_code 0x0001cb54 Section 0 s21p_demo.o(i.send_panel_init_code) + send_panel_init_code 0x0001cb55 Thumb Code 58 s21p_demo.o(i.send_panel_init_code) + i.soft_gen_te 0x0001cb90 Section 0 hal_internal_vsync.o(i.soft_gen_te) + soft_gen_te 0x0001cb91 Thumb Code 166 hal_internal_vsync.o(i.soft_gen_te) + i.soft_gen_te_double_buffer 0x0001cc54 Section 0 hal_internal_vsync.o(i.soft_gen_te_double_buffer) + soft_gen_te_double_buffer 0x0001cc55 Thumb Code 166 hal_internal_vsync.o(i.soft_gen_te_double_buffer) + i.soft_swire_init 0x0001cd14 Section 0 s21p_demo.o(i.soft_swire_init) + soft_swire_init 0x0001cd15 Thumb Code 48 s21p_demo.o(i.soft_swire_init) + i.soft_swire_start 0x0001cd4c Section 0 s21p_demo.o(i.soft_swire_start) + soft_swire_start 0x0001cd4d Thumb Code 46 s21p_demo.o(i.soft_swire_start) + i.soft_swire_timer_callback 0x0001cd7c Section 0 s21p_demo.o(i.soft_swire_timer_callback) + soft_swire_timer_callback 0x0001cd7d Thumb Code 64 s21p_demo.o(i.soft_swire_timer_callback) + i.soft_timer3_cb 0x0001cdc4 Section 0 s21p_demo.o(i.soft_timer3_cb) + soft_timer3_cb 0x0001cdc5 Thumb Code 28 s21p_demo.o(i.soft_timer3_cb) + i.sqrt 0x0001cde8 Section 0 sqrt.o(i.sqrt) + i.tx_display_on 0x0001ce30 Section 0 s21p_demo.o(i.tx_display_on) + tx_display_on 0x0001ce31 Thumb Code 40 s21p_demo.o(i.tx_display_on) + i.tx_panel_reset 0x0001ce5c Section 0 s21p_demo.o(i.tx_panel_reset) + tx_panel_reset 0x0001ce5d Thumb Code 40 s21p_demo.o(i.tx_panel_reset) + i.vidc_callback 0x0001ce84 Section 0 hal_internal_vsync.o(i.vidc_callback) + vidc_callback 0x0001ce85 Thumb Code 232 hal_internal_vsync.o(i.vidc_callback) + i.vpre_err_reset 0x0001cf8c Section 0 hal_internal_vsync.o(i.vpre_err_reset) + vpre_err_reset 0x0001cf8d Thumb Code 184 hal_internal_vsync.o(i.vpre_err_reset) + i.vsync_set_te_mode 0x0001d05c Section 0 hal_internal_vsync.o(i.vsync_set_te_mode) + vsync_set_te_mode 0x0001d05d Thumb Code 300 hal_internal_vsync.o(i.vsync_set_te_mode) + .constdata 0x0001d228 Section 7600 s21p_demo.o(.constdata) + g_cus_rx_dcs_execute_table 0x0001d228 Data 120 s21p_demo.o(.constdata) + .constdata 0x0001efd8 Section 183 app_tp_for_custom_s21p.o(.constdata) + .constdata 0x0001f090 Section 32 app_tp_st_touch.o(.constdata) + .constdata 0x0001f0b0 Section 36 hal_dsi_tx_ctrl.o(.constdata) + .constdata 0x0001f0d4 Section 210 hal_gpio.o(.constdata) + s_gpio_map 0x0001f0d4 Data 120 hal_gpio.o(.constdata) + s_gpio_perf 0x0001f14c Data 90 hal_gpio.o(.constdata) + .constdata 0x0001f1a8 Section 32 hal_i2c_slave.o(.constdata) + sg_i2c_s_config 0x0001f1a8 Data 32 hal_i2c_slave.o(.constdata) + .constdata 0x0001f1c8 Section 8 drv_param_init.o(.constdata) + .constdata 0x0001f1d0 Section 390 drv_phy_common.o(.constdata) + phy_para_mapping_h 0x0001f1d0 Data 184 drv_phy_common.o(.constdata) + phy_para_mapping_l 0x0001f288 Data 128 drv_phy_common.o(.constdata) + phy_data_high_map 0x0001f308 Data 48 drv_phy_common.o(.constdata) + phy_data_lp_map 0x0001f338 Data 30 drv_phy_common.o(.constdata) + .conststring 0x0001f358 Section 72 hal_dsi_rx_ctrl.o(.conststring) + .conststring 0x0001f3a0 Section 67 hal_dsi_tx_ctrl.o(.conststring) + .conststring 0x0001f3e4 Section 308 hal_internal_vsync.o(.conststring) + .ARM.__AT_0x00070100 0x00070100 Section 192 irq_redirect .o(.ARM.__AT_0x00070100) + .data 0x000701d0 Section 31 s21p_demo.o(.data) + g_need_enter_sleep_mode 0x000701d4 Data 1 s21p_demo.o(.data) + g_rx_ctrl_handle 0x000701d8 Data 4 s21p_demo.o(.data) + g_tx_ctrl_handle 0x000701dc Data 4 s21p_demo.o(.data) + start_display_on 0x000701e0 Data 1 s21p_demo.o(.data) + panel_display_done 0x000701e1 Data 1 s21p_demo.o(.data) + ret_C9_count 0x000701e3 Data 1 s21p_demo.o(.data) + ret_C9_count 0x000701e4 Data 1 s21p_demo.o(.data) + ret_C9_count 0x000701e5 Data 1 s21p_demo.o(.data) + ret_C7_count 0x000701e6 Data 1 s21p_demo.o(.data) + ret_C7_count 0x000701e7 Data 1 s21p_demo.o(.data) + ret_C7_count 0x000701e8 Data 1 s21p_demo.o(.data) + ret_C6_count 0x000701e9 Data 1 s21p_demo.o(.data) + ret_C6_count 0x000701ea Data 1 s21p_demo.o(.data) + ret_A1_count 0x000701eb Data 1 s21p_demo.o(.data) + ret_7F_count 0x000701ec Data 1 s21p_demo.o(.data) + ret_5A_count 0x000701ed Data 1 s21p_demo.o(.data) + frame_rate 0x000701ee Data 1 s21p_demo.o(.data) + .data 0x000701f0 Section 25 app_tp_transfer.o(.data) + s_slave_txbuffer 0x000701f0 Data 4 app_tp_transfer.o(.data) + s_slave_txbuffer_size 0x000701f4 Data 4 app_tp_transfer.o(.data) + s_spim_write 0x000701f8 Data 1 app_tp_transfer.o(.data) + s_screen_int_flag 0x000701f9 Data 1 app_tp_transfer.o(.data) + s_phone_reset_flag 0x000701fa Data 1 app_tp_transfer.o(.data) + s_screen_int_transfer_status 0x000701fb Data 1 app_tp_transfer.o(.data) + s_screen_const_transfer_count 0x000701fd Data 1 app_tp_transfer.o(.data) + i2cs_transfer 0x00070204 Data 1 app_tp_transfer.o(.data) + screen_const_transfer_buffer_ready 0x00070205 Data 1 app_tp_transfer.o(.data) + len 0x00070206 Data 1 app_tp_transfer.o(.data) + screen_int_transfer_count 0x00070207 Data 1 app_tp_transfer.o(.data) + screen_int_transfer_buffer_ready 0x00070208 Data 1 app_tp_transfer.o(.data) + .data 0x0007020c Section 805 app_tp_for_custom_s21p.o(.data) + .data 0x00070531 Section 40 app_tp_st_touch.o(.data) + s_calibration_flag 0x00070531 Data 1 app_tp_st_touch.o(.data) + s_calibration_correct_flag 0x00070532 Data 1 app_tp_st_touch.o(.data) + .data 0x0007055c Section 8 hal_dsi_rx_ctrl.o(.data) + g_hw_auto_filter 0x0007055c Data 1 hal_dsi_rx_ctrl.o(.data) + g_esc_clk 0x00070560 Data 4 hal_dsi_rx_ctrl.o(.data) + .data 0x00070564 Section 3 hal_dsi_tx_ctrl.o(.data) + g_tx_vcom_en 0x00070564 Data 1 hal_dsi_tx_ctrl.o(.data) + g_tx_vpg_en 0x00070565 Data 1 hal_dsi_tx_ctrl.o(.data) + g_tx_mode 0x00070566 Data 1 hal_dsi_tx_ctrl.o(.data) + .data 0x00070567 Section 1 hal_i2c_master.o(.data) + s_i2c_m_transfer_end 0x00070567 Data 1 hal_i2c_master.o(.data) + .data 0x00070568 Section 32 hal_i2c_slave.o(.data) + s_txbuffer_complate 0x00070568 Data 1 hal_i2c_slave.o(.data) + s_i2c_s_dma_end 0x00070569 Data 1 hal_i2c_slave.o(.data) + s_i2c_s_receive_cnt 0x0007056a Data 1 hal_i2c_slave.o(.data) + sg_i2c_s_index 0x0007056b Data 1 hal_i2c_slave.o(.data) + s_hal_slave_rxbuffer 0x0007056c Data 4 hal_i2c_slave.o(.data) + s_hal_slave_rxbuffer_size 0x00070570 Data 4 hal_i2c_slave.o(.data) + hal_i2c_s_callback 0x00070574 Data 4 hal_i2c_slave.o(.data) + sg_tx_byte_num 0x00070578 Data 4 hal_i2c_slave.o(.data) + s_receive_count 0x0007057c Data 4 hal_i2c_slave.o(.data) + s_tx_buffer_t 0x00070580 Data 4 hal_i2c_slave.o(.data) + tx_sum 0x00070584 Data 4 hal_i2c_slave.o(.data) + .data 0x00070588 Section 24 hal_internal_vsync.o(.data) + sg_cmd_mode_tx_start 0x00070588 Data 1 hal_internal_vsync.o(.data) + sg_cur_te_info 0x0007058c Data 4 hal_internal_vsync.o(.data) + g_cus_rx_write_cmd_handle 0x00070594 Data 12 hal_internal_vsync.o(.data) + .data 0x000705a0 Section 12 drv_common.o(.data) + s_my_tick 0x000705a0 Data 4 drv_common.o(.data) + .data 0x000705ac Section 4 drv_gpio.o(.data) + g_ap_reset_cb 0x000705ac Data 4 drv_gpio.o(.data) + .data 0x000705b0 Section 8 drv_i2c_dma.o(.data) + i2c0_dma_callback 0x000705b0 Data 4 drv_i2c_dma.o(.data) + i2c1_dma_callback 0x000705b4 Data 4 drv_i2c_dma.o(.data) + .data 0x000705b8 Section 4 drv_i2c_master.o(.data) + i2c1_intr_callback 0x000705b8 Data 4 drv_i2c_master.o(.data) + .data 0x000705bc Section 4 drv_i2c_slave.o(.data) + i2c0_intr_callback 0x000705bc Data 4 drv_i2c_slave.o(.data) + .data 0x000705c0 Section 1188 drv_param_init.o(.data) + .data 0x00070a64 Section 4 drv_spi_master.o(.data) + SPIM_intr_callback 0x00070a64 Data 4 drv_spi_master.o(.data) + .data 0x00070a68 Section 8 drv_swire.o(.data) + s_swire_cb 0x00070a68 Data 8 drv_swire.o(.data) + .data 0x00070a70 Section 1 drv_sys_cfg.o(.data) + sg_ap_rstn_trigger_type 0x00070a70 Data 1 drv_sys_cfg.o(.data) + .data 0x00070a74 Section 80 drv_timer.o(.data) + sg_timer_info 0x00070a74 Data 80 drv_timer.o(.data) + .data 0x00070ac4 Section 8 drv_rxbr.o(.data) + .data 0x00070acc Section 4 drv_vidc.o(.data) + .data 0x00070ad0 Section 1 drv_phy_common.o(.data) + g_phy_calibration 0x00070ad0 Data 1 drv_phy_common.o(.data) + .data 0x00070ad4 Section 12 drv_chip_info.o(.data) + sg_chip_info 0x00070ad4 Data 4 drv_chip_info.o(.data) + sg_chip_function 0x00070ad8 Data 4 drv_chip_info.o(.data) + sg_chip_encrypt 0x00070adc Data 4 drv_chip_info.o(.data) + .data 0x00070ae0 Section 18 norflash.o(.data) + tmprg 0x00070ae8 Data 4 norflash.o(.data) + .data 0x00070af4 Section 12 drv_pwm.o(.data) + s_pwm_type 0x00070af4 Data 1 drv_pwm.o(.data) + s_pwm_cb 0x00070af8 Data 8 drv_pwm.o(.data) + .data 0x00070b00 Section 8 drv_uart.o(.data) + s_UartFcrReg 0x00070b00 Data 4 drv_uart.o(.data) + uart_userData 0x00070b04 Data 4 drv_uart.o(.data) + .data 0x00070b08 Section 12 drv_wdg.o(.data) + sg_wdg_repeat 0x00070b08 Data 1 drv_wdg.o(.data) + sg_wdg_cb 0x00070b0c Data 8 drv_wdg.o(.data) + .data 0x00070b14 Section 4 stdout.o(.data) + .data 0x00070b18 Section 4 errno.o(.data) + _errno 0x00070b18 Data 4 errno.o(.data) + .bss 0x00070b1c Section 500 app_tp_transfer.o(.bss) + s_screen_read_buffer 0x00070b1c Data 250 app_tp_transfer.o(.bss) + s_phone_read_buffer 0x00070c16 Data 250 app_tp_transfer.o(.bss) + .bss 0x00070d10 Section 72 app_tp_for_custom_s21p.o(.bss) + .bss 0x00070d58 Section 12 app_tp_st_touch.o(.bss) + .bss 0x00070d64 Section 196 hal_dsi_rx_ctrl.o(.bss) + g_rx_ctrl_handle 0x00070d64 Data 196 hal_dsi_rx_ctrl.o(.bss) + .bss 0x00070e28 Section 76 hal_dsi_tx_ctrl.o(.bss) + g_tx_ctrl_handle 0x00070e28 Data 76 hal_dsi_tx_ctrl.o(.bss) + .bss 0x00070e74 Section 256 tau_log.o(.bss) + .bss 0x00070f74 Section 208 hal_uart.o(.bss) + .bss 0x00071044 Section 2436 hal_internal_vsync.o(.bss) + g_imm_buffer 0x000718a8 Data 255 hal_internal_vsync.o(.bss) + sg_te_info 0x000719a8 Data 12 hal_internal_vsync.o(.bss) + g_imm_packet 0x000719b4 Data 20 hal_internal_vsync.o(.bss) + .bss 0x000719c8 Section 28 drv_dma.o(.bss) + s_dma_handle 0x000719c8 Data 28 drv_dma.o(.bss) + .bss 0x000719e4 Section 64 drv_gpio.o(.bss) + s_gpio_cb 0x000719e4 Data 64 drv_gpio.o(.bss) + .bss 0x00071a24 Section 320 drv_i2c_dma.o(.bss) + i2c0_dma_slave_handle 0x00071a24 Data 160 drv_i2c_dma.o(.bss) + i2c1_dma_master_handle 0x00071ac4 Data 160 drv_i2c_dma.o(.bss) + .bss 0x00071b64 Section 4144 dcs_packet_fifo.o(.bss) + .bss 0x00072b94 Section 32 hal_spi_slave.o(.bss) + STACK 0x00072bb8 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) + CRC16_2 0x00010c11 Thumb Code 62 app_tp_st_touch.o(i.CRC16_2) + DMA_IRQn_Handler 0x00010c59 Thumb Code 14 irq_redirect .o(i.DMA_IRQn_Handler) + EXTI_INT0_IRQn_Handler 0x00010c6d Thumb Code 22 irq_redirect .o(i.EXTI_INT0_IRQn_Handler) + EXTI_INT1_IRQn_Handler 0x00010c89 Thumb Code 22 irq_redirect .o(i.EXTI_INT1_IRQn_Handler) + EXTI_INT2_IRQn_Handler 0x00010ca5 Thumb Code 22 irq_redirect .o(i.EXTI_INT2_IRQn_Handler) + EXTI_INT3_IRQn_Handler 0x00010cc1 Thumb Code 22 irq_redirect .o(i.EXTI_INT3_IRQn_Handler) + EXTI_INT4_IRQn_Handler 0x00010cdd Thumb Code 22 irq_redirect .o(i.EXTI_INT4_IRQn_Handler) + EXTI_INT5_IRQn_Handler 0x00010cf9 Thumb Code 22 irq_redirect .o(i.EXTI_INT5_IRQn_Handler) + EXTI_INT6_IRQn_Handler 0x00010d15 Thumb Code 22 irq_redirect .o(i.EXTI_INT6_IRQn_Handler) + EXTI_INT7_IRQn_Handler 0x00010d31 Thumb Code 22 irq_redirect .o(i.EXTI_INT7_IRQn_Handler) + FLSCTRL_IRQn_Handler 0x00010d4d Thumb Code 14 irq_redirect .o(i.FLSCTRL_IRQn_Handler) + HardFault_Handler 0x00010d61 Thumb Code 14 irq_redirect .o(i.HardFault_Handler) + I2C0_IRQn_Handler 0x00010d75 Thumb Code 18 irq_redirect .o(i.I2C0_IRQn_Handler) + I2C1_IRQn_Handler 0x00010d8d Thumb Code 18 irq_redirect .o(i.I2C1_IRQn_Handler) + LCDC_IRQn_Handler 0x00010da5 Thumb Code 18 irq_redirect .o(i.LCDC_IRQn_Handler) + LOG_printf 0x00010dbd Thumb Code 30 tau_log.o(i.LOG_printf) + MEMC_IRQn_Handler 0x00010de5 Thumb Code 18 irq_redirect .o(i.MEMC_IRQn_Handler) + MIPI_RX_IRQn_Handler 0x00010dfd Thumb Code 18 irq_redirect .o(i.MIPI_RX_IRQn_Handler) + MIPI_TX_IRQn_Handler 0x00010e15 Thumb Code 18 irq_redirect .o(i.MIPI_TX_IRQn_Handler) + PWMDET_IRQn_Handler 0x00010e2d Thumb Code 22 irq_redirect .o(i.PWMDET_IRQn_Handler) + SPIM_IRQn_Handler 0x00010e49 Thumb Code 22 irq_redirect .o(i.SPIM_IRQn_Handler) + SPIS_IRQn_Handler 0x00010e65 Thumb Code 22 irq_redirect .o(i.SPIS_IRQn_Handler) + SWIRE_IRQn_Handler 0x00010e81 Thumb Code 22 irq_redirect .o(i.SWIRE_IRQn_Handler) + SysTick_Handler 0x00010e9d Thumb Code 18 irq_redirect .o(i.SysTick_Handler) + TIMER0_IRQn_Handler 0x00010eb5 Thumb Code 18 irq_redirect .o(i.TIMER0_IRQn_Handler) + TIMER1_IRQn_Handler 0x00010ecd Thumb Code 18 irq_redirect .o(i.TIMER1_IRQn_Handler) + TIMER2_IRQn_Handler 0x00010ee5 Thumb Code 18 irq_redirect .o(i.TIMER2_IRQn_Handler) + TIMER3_IRQn_Handler 0x00010efd Thumb Code 18 irq_redirect .o(i.TIMER3_IRQn_Handler) + UART0_IRQ_Handle 0x00010f15 Thumb Code 20 drv_uart.o(i.UART0_IRQ_Handle) + UART_DisableDma 0x00010f31 Thumb Code 2 drv_uart.o(i.UART_DisableDma) + UART_GetInstance 0x00010f33 Thumb Code 4 drv_uart.o(i.UART_GetInstance) + UART_IRQn_Handler 0x00010f39 Thumb Code 18 irq_redirect .o(i.UART_IRQn_Handler) + UART_ResetRxFIFO 0x00010f51 Thumb Code 32 drv_uart.o(i.UART_ResetRxFIFO) + UART_SetBaudRate 0x00010f75 Thumb Code 72 drv_uart.o(i.UART_SetBaudRate) + UART_SwitchSCLK 0x00010fbd Thumb Code 26 drv_uart.o(i.UART_SwitchSCLK) + UART_WriteBlocking 0x00010fd7 Thumb Code 26 drv_uart.o(i.UART_WriteBlocking) + __scatterload_copy 0x00010ff1 Thumb Code 14 handlers.o(i.__scatterload_copy) + __scatterload_null 0x00010fff Thumb Code 2 handlers.o(i.__scatterload_null) + s_RAM_CK 0x00011000 Data 20 drv_common.o(.ARM.__at_0x11000) + drv_dsi_rx_set_inten 0x00011015 Thumb Code 4 drv_dsi_rx.o(i.drv_dsi_rx_set_inten) + s_debug_state 0x00011018 Data 4 drv_common.o(.ARM.__at_0x11018) + S21P_demo 0x0001101d Thumb Code 302 s21p_demo.o(i.S21P_demo) + UART_TransferHandleIRQ 0x00011219 Thumb Code 308 drv_uart.o(i.UART_TransferHandleIRQ) + UART_init 0x0001134d Thumb Code 182 drv_uart.o(i.UART_init) + VIDC_IRQn_Handler 0x00011409 Thumb Code 18 irq_redirect .o(i.VIDC_IRQn_Handler) + VPRE_IRQn_Handler 0x00011421 Thumb Code 18 irq_redirect .o(i.VPRE_IRQn_Handler) + WDG_IRQn_Handler 0x00011439 Thumb Code 18 irq_redirect .o(i.WDG_IRQn_Handler) + __0printf 0x00011451 Thumb Code 24 printfa.o(i.__0printf) + __1printf 0x00011451 Thumb Code 0 printfa.o(i.__0printf) + __2printf 0x00011451 Thumb Code 0 printfa.o(i.__0printf) + __c89printf 0x00011451 Thumb Code 0 printfa.o(i.__0printf) + printf 0x00011451 Thumb Code 0 printfa.o(i.__0printf) + __0vsprintf 0x00011471 Thumb Code 30 printfa.o(i.__0vsprintf) + __1vsprintf 0x00011471 Thumb Code 0 printfa.o(i.__0vsprintf) + __2vsprintf 0x00011471 Thumb Code 0 printfa.o(i.__0vsprintf) + __c89vsprintf 0x00011471 Thumb Code 0 printfa.o(i.__0vsprintf) + vsprintf 0x00011471 Thumb Code 0 printfa.o(i.__0vsprintf) + __ARM_clz 0x00011495 Thumb Code 46 depilogue.o(i.__ARM_clz) + __ARM_common_switch8 0x000114c3 Thumb Code 26 hal_dsi_rx_ctrl.o(i.__ARM_common_switch8) + __scatterload_zeroinit 0x00011589 Thumb Code 14 handlers.o(i.__scatterload_zeroinit) + __set_errno 0x00011599 Thumb Code 6 errno.o(i.__set_errno) + ap_get_tp_calibration_status_01 0x00014631 Thumb Code 52 app_tp_st_touch.o(i.ap_get_tp_calibration_status_01) + ap_set_tp_calibration_04 0x000148b1 Thumb Code 186 app_tp_st_touch.o(i.ap_set_tp_calibration_04) + ap_tp_st_touch_hardware_reset 0x0001497d Thumb Code 148 app_tp_st_touch.o(i.ap_tp_st_touch_hardware_reset) + ap_tp_st_touch_scan_point_init 0x00014a51 Thumb Code 32 app_tp_st_touch.o(i.ap_tp_st_touch_scan_point_init) + ap_tp_st_touch_simulate_finger_release_event 0x00014a75 Thumb Code 50 app_tp_st_touch.o(i.ap_tp_st_touch_simulate_finger_release_event) + app_ADC_IRQn_Handler 0x00014b05 Thumb Code 22 drv_rxbr.o(i.app_ADC_IRQn_Handler) + app_AP_NRESET_IRQn_Handler 0x00014b21 Thumb Code 32 drv_gpio.o(i.app_AP_NRESET_IRQn_Handler) + app_EXTI_INT0_IRQn_Handler 0x00014b45 Thumb Code 22 drv_gpio.o(i.app_EXTI_INT0_IRQn_Handler) + app_EXTI_INT1_IRQn_Handler 0x00014b61 Thumb Code 22 drv_gpio.o(i.app_EXTI_INT1_IRQn_Handler) + app_EXTI_INT2_IRQn_Handler 0x00014b7d Thumb Code 22 drv_gpio.o(i.app_EXTI_INT2_IRQn_Handler) + app_EXTI_INT3_IRQn_Handler 0x00014b99 Thumb Code 22 drv_gpio.o(i.app_EXTI_INT3_IRQn_Handler) + app_EXTI_INT4_IRQn_Handler 0x00014bb5 Thumb Code 22 drv_gpio.o(i.app_EXTI_INT4_IRQn_Handler) + app_EXTI_INT5_IRQn_Handler 0x00014bd1 Thumb Code 22 drv_gpio.o(i.app_EXTI_INT5_IRQn_Handler) + app_EXTI_INT6_IRQn_Handler 0x00014bed Thumb Code 22 drv_gpio.o(i.app_EXTI_INT6_IRQn_Handler) + app_EXTI_INT7_IRQn_Handler 0x00014c09 Thumb Code 22 drv_gpio.o(i.app_EXTI_INT7_IRQn_Handler) + app_HardFault_Handler 0x00014c25 Thumb Code 12 drv_common.o(i.app_HardFault_Handler) + app_I2C0_IRQn_Handler 0x00014c6d Thumb Code 14 drv_i2c_slave.o(i.app_I2C0_IRQn_Handler) + app_I2C1_IRQn_Handler 0x00014c85 Thumb Code 8 drv_i2c_master.o(i.app_I2C1_IRQn_Handler) + app_LCDC_IRQn_Handler 0x00014c95 Thumb Code 208 hal_internal_vsync.o(i.app_LCDC_IRQn_Handler) + app_MEMC_IRQn_Handler 0x00014e39 Thumb Code 132 drv_memc.o(i.app_MEMC_IRQn_Handler) + app_MIPI_RX_IRQn_Handler 0x00014ec1 Thumb Code 232 drv_dsi_rx.o(i.app_MIPI_RX_IRQn_Handler) + app_MIPI_TX_IRQn_Handler 0x00015159 Thumb Code 56 drv_dsi_tx.o(i.app_MIPI_TX_IRQn_Handler) + app_PWMDET_IRQn_Handler 0x000151f9 Thumb Code 62 drv_pwm.o(i.app_PWMDET_IRQn_Handler) + app_SPIM_IRQn_Handler 0x00015241 Thumb Code 34 drv_spi_master.o(i.app_SPIM_IRQn_Handler) + app_SPIS_IRQn_Handler 0x00015271 Thumb Code 500 hal_spi_slave.o(i.app_SPIS_IRQn_Handler) + app_SWIRE_IRQn_Handler 0x00015471 Thumb Code 28 drv_swire.o(i.app_SWIRE_IRQn_Handler) + app_SysTick_Handler 0x00015491 Thumb Code 20 drv_common.o(i.app_SysTick_Handler) + app_TIMER0_IRQn_Handler 0x000154a9 Thumb Code 10 drv_timer.o(i.app_TIMER0_IRQn_Handler) + app_TIMER1_IRQn_Handler 0x000154b3 Thumb Code 10 drv_timer.o(i.app_TIMER1_IRQn_Handler) + app_TIMER2_IRQn_Handler 0x000154bd Thumb Code 10 drv_timer.o(i.app_TIMER2_IRQn_Handler) + app_TIMER3_IRQn_Handler 0x000154c7 Thumb Code 10 drv_timer.o(i.app_TIMER3_IRQn_Handler) + app_UART_IRQn_Handler 0x000154d1 Thumb Code 8 drv_uart.o(i.app_UART_IRQn_Handler) + app_VIDC_IRQn_Handler 0x000154d9 Thumb Code 22 drv_vidc.o(i.app_VIDC_IRQn_Handler) + app_VPRE_IRQn_Handler 0x000154f5 Thumb Code 22 drv_rxbr.o(i.app_VPRE_IRQn_Handler) + app_WDG_IRQn_Handler 0x00015511 Thumb Code 52 drv_wdg.o(i.app_WDG_IRQn_Handler) + app_dma_irq_handler 0x00015549 Thumb Code 10 drv_dma.o(i.app_dma_irq_handler) + app_fls_ctrl_Handler 0x00015559 Thumb Code 38 norflash.o(i.app_fls_ctrl_Handler) + app_tp_init 0x000155cd Thumb Code 50 app_tp_transfer.o(i.app_tp_init) + app_tp_m_read 0x00015611 Thumb Code 48 app_tp_transfer.o(i.app_tp_m_read) + app_tp_m_transfer_complate 0x00015641 Thumb Code 8 app_tp_transfer.o(i.app_tp_m_transfer_complate) + app_tp_m_write 0x00015649 Thumb Code 16 app_tp_transfer.o(i.app_tp_m_write) + app_tp_phone_analysis_data 0x00015659 Thumb Code 1166 app_tp_for_custom_s21p.o(i.app_tp_phone_analysis_data) + app_tp_s_read 0x00015af1 Thumb Code 16 app_tp_transfer.o(i.app_tp_s_read) + app_tp_s_write 0x00015b01 Thumb Code 16 app_tp_transfer.o(i.app_tp_s_write) + app_tp_screen_analysis_const 0x00015b11 Thumb Code 16 app_tp_for_custom_s21p.o(i.app_tp_screen_analysis_const) + app_tp_screen_analysis_int 0x00015b25 Thumb Code 662 app_tp_for_custom_s21p.o(i.app_tp_screen_analysis_int) + app_tp_screen_analysis_wake_up 0x00015df1 Thumb Code 164 app_tp_for_custom_s21p.o(i.app_tp_screen_analysis_wake_up) + app_tp_screen_analysis_wake_up_exec 0x00015ea1 Thumb Code 92 app_tp_for_custom_s21p.o(i.app_tp_screen_analysis_wake_up_exec) + app_tp_screen_init 0x00015f11 Thumb Code 54 app_tp_transfer.o(i.app_tp_screen_init) + app_tp_transfer_screen_int 0x0001610d Thumb Code 258 app_tp_transfer.o(i.app_tp_transfer_screen_int) + app_tp_transfer_screen_restart 0x00016239 Thumb Code 48 app_tp_transfer.o(i.app_tp_transfer_screen_restart) + app_tp_transfer_screen_start 0x00016275 Thumb Code 22 app_tp_transfer.o(i.app_tp_transfer_screen_start) + board_Init 0x00016295 Thumb Code 30 board.o(i.board_Init) + calc_framebuffer_setting 0x000162b9 Thumb Code 1258 hal_internal_vsync.o(i.calc_framebuffer_setting) + ceil 0x000167a9 Thumb Code 180 ceil.o(i.ceil) + dcs_packet_fifo_alloc 0x0001692d Thumb Code 80 dcs_packet_fifo.o(i.dcs_packet_fifo_alloc) + dcs_packet_fifo_init 0x00016985 Thumb Code 18 dcs_packet_fifo.o(i.dcs_packet_fifo_init) + dcs_packet_free_fifo_header 0x0001699d Thumb Code 60 dcs_packet_fifo.o(i.dcs_packet_free_fifo_header) + dcs_packet_get_fifo_header 0x000169e1 Thumb Code 26 dcs_packet_fifo.o(i.dcs_packet_get_fifo_header) + delayMs 0x00016a31 Thumb Code 24 tau_delay.o(i.delayMs) + delayUs 0x00016a49 Thumb Code 34 tau_delay.o(i.delayUs) + drv_ap_rst_trig_edge_detect 0x00016a6d Thumb Code 46 drv_sys_cfg.o(i.drv_ap_rst_trig_edge_detect) + drv_chip_info_get_info 0x00016aa5 Thumb Code 6 drv_chip_info.o(i.drv_chip_info_get_info) + drv_chip_info_init 0x00016ab1 Thumb Code 56 drv_chip_info.o(i.drv_chip_info_init) + drv_chip_rx_info_check 0x00016af1 Thumb Code 98 drv_chip_info.o(i.drv_chip_rx_info_check) + drv_chip_rx_init_done 0x00016ba1 Thumb Code 16 drv_chip_info.o(i.drv_chip_rx_init_done) + drv_common_enable_systick 0x00016bb5 Thumb Code 70 drv_common.o(i.drv_common_enable_systick) + drv_common_system_init 0x00016c0d Thumb Code 8 drv_common.o(i.drv_common_system_init) + drv_crgu_config_reset_modules 0x00016c15 Thumb Code 10 drv_crgu.o(i.drv_crgu_config_reset_modules) + drv_crgu_set_ahb_pre_div 0x00016c25 Thumb Code 14 drv_crgu.o(i.drv_crgu_set_ahb_pre_div) + drv_crgu_set_ahb_src 0x00016c39 Thumb Code 16 drv_crgu.o(i.drv_crgu_set_ahb_src) + drv_crgu_set_clock 0x00016c4d Thumb Code 26 drv_crgu.o(i.drv_crgu_set_clock) + drv_crgu_set_dpi_mux_src 0x00016c6d Thumb Code 16 drv_crgu.o(i.drv_crgu_set_dpi_mux_src) + drv_crgu_set_dpi_pre_div 0x00016c81 Thumb Code 18 drv_crgu.o(i.drv_crgu_set_dpi_pre_div) + drv_crgu_set_dpi_pre_src 0x00016c99 Thumb Code 16 drv_crgu.o(i.drv_crgu_set_dpi_pre_src) + drv_crgu_set_dsc_core_div 0x00016cad Thumb Code 16 drv_crgu.o(i.drv_crgu_set_dsc_core_div) + drv_crgu_set_dsco_src 0x00016cc1 Thumb Code 16 drv_crgu.o(i.drv_crgu_set_dsco_src) + drv_crgu_set_dsco_src_div 0x00016cd5 Thumb Code 16 drv_crgu.o(i.drv_crgu_set_dsco_src_div) + drv_crgu_set_fb_div 0x00016ce9 Thumb Code 16 drv_crgu.o(i.drv_crgu_set_fb_div) + drv_crgu_set_fb_src 0x00016cfd Thumb Code 16 drv_crgu.o(i.drv_crgu_set_fb_src) + drv_crgu_set_lcdc_div 0x00016d11 Thumb Code 16 drv_crgu.o(i.drv_crgu_set_lcdc_div) + drv_crgu_set_lcdc_src 0x00016d25 Thumb Code 16 drv_crgu.o(i.drv_crgu_set_lcdc_src) + drv_crgu_set_mipi_cfg_src 0x00016d39 Thumb Code 16 drv_crgu.o(i.drv_crgu_set_mipi_cfg_src) + drv_crgu_set_mipi_ref_src 0x00016d4d Thumb Code 18 drv_crgu.o(i.drv_crgu_set_mipi_ref_src) + drv_crgu_set_reset 0x00016d65 Thumb Code 20 drv_crgu.o(i.drv_crgu_set_reset) + drv_crgu_set_rxbr_div 0x00016d7d Thumb Code 16 drv_crgu.o(i.drv_crgu_set_rxbr_div) + drv_crgu_set_rxbr_src 0x00016d91 Thumb Code 16 drv_crgu.o(i.drv_crgu_set_rxbr_src) + drv_crgu_set_vidc_src 0x00016da5 Thumb Code 16 drv_crgu.o(i.drv_crgu_set_vidc_src) + drv_dma_clear_flag 0x00016db9 Thumb Code 24 drv_dma.o(i.drv_dma_clear_flag) + drv_dma_create_handle 0x00016dd1 Thumb Code 22 drv_dma.o(i.drv_dma_create_handle) + drv_dma_disenable_channel 0x00016ded Thumb Code 16 drv_dma.o(i.drv_dma_disenable_channel) + drv_dma_enable_channel 0x00016dfd Thumb Code 16 drv_dma.o(i.drv_dma_enable_channel) + drv_dma_enable_channel_interrupts 0x00016e0d Thumb Code 32 drv_dma.o(i.drv_dma_enable_channel_interrupts) + drv_dma_get_channel_flag 0x00016e31 Thumb Code 12 drv_dma.o(i.drv_dma_get_channel_flag) + drv_dma_irq_handler 0x00016e3d Thumb Code 138 drv_dma.o(i.drv_dma_irq_handler) + drv_dma_prepar_transfer 0x00016ecd Thumb Code 18 drv_dma.o(i.drv_dma_prepar_transfer) + drv_dma_set_burst 0x00016edf Thumb Code 26 drv_dma.o(i.drv_dma_set_burst) + drv_dma_set_callback 0x00016ef9 Thumb Code 6 drv_dma.o(i.drv_dma_set_callback) + drv_dma_set_transfer 0x00016f01 Thumb Code 62 drv_dma.o(i.drv_dma_set_transfer) + drv_dsc_dec_convert_pps_rc_parameter 0x00016f45 Thumb Code 54 drv_dsc_dec.o(i.drv_dsc_dec_convert_pps_rc_parameter) + drv_dsc_dec_disable 0x00016f7b Thumb Code 12 drv_dsc_dec.o(i.drv_dsc_dec_disable) + drv_dsc_dec_enable 0x00016f89 Thumb Code 88 drv_dsc_dec.o(i.drv_dsc_dec_enable) + drv_dsc_dec_get_nslc 0x00016ffd Thumb Code 10 drv_dsc_dec.o(i.drv_dsc_dec_get_nslc) + drv_dsc_dec_set_u8_pps 0x00017007 Thumb Code 40 drv_dsc_dec.o(i.drv_dsc_dec_set_u8_pps) + drv_dsi_rx_calc_ipi_tx_delay 0x00017031 Thumb Code 244 drv_dsi_rx.o(i.drv_dsi_rx_calc_ipi_tx_delay) + drv_dsi_rx_enable_irq 0x00017135 Thumb Code 58 drv_dsi_rx.o(i.drv_dsi_rx_enable_irq) + drv_dsi_rx_get_compression_en 0x000171e1 Thumb Code 8 drv_dsi_rx.o(i.drv_dsi_rx_get_compression_en) + drv_dsi_rx_get_max_ret_size 0x000171e9 Thumb Code 6 drv_dsi_rx.o(i.drv_dsi_rx_get_max_ret_size) + drv_dsi_rx_power_up 0x000171ef Thumb Code 14 drv_dsi_rx.o(i.drv_dsi_rx_power_up) + drv_dsi_rx_set_ctrl_cfg 0x000171fd Thumb Code 32 drv_dsi_rx.o(i.drv_dsi_rx_set_ctrl_cfg) + drv_dsi_rx_set_ddi_cfg 0x0001721d Thumb Code 16 drv_dsi_rx.o(i.drv_dsi_rx_set_ddi_cfg) + drv_dsi_rx_set_ipi_cfg 0x0001722d Thumb Code 16 drv_dsi_rx.o(i.drv_dsi_rx_set_ipi_cfg) + drv_dsi_rx_set_lane_swap 0x0001723d Thumb Code 70 drv_dsi_rx.o(i.drv_dsi_rx_set_lane_swap) + drv_dsi_rx_set_resp_cnt 0x00017283 Thumb Code 38 drv_dsi_rx.o(i.drv_dsi_rx_set_resp_cnt) + drv_dsi_rx_set_up_phy 0x000172a9 Thumb Code 256 drv_dsi_rx.o(i.drv_dsi_rx_set_up_phy) + drv_dsi_rx_shut_down 0x000173ad Thumb Code 14 drv_dsi_rx.o(i.drv_dsi_rx_shut_down) + drv_dsi_tx_command_header 0x000173bb Thumb Code 20 drv_dsi_tx.o(i.drv_dsi_tx_command_header) + drv_dsi_tx_command_mode_cfg 0x000173cf Thumb Code 108 drv_dsi_tx.o(i.drv_dsi_tx_command_mode_cfg) + drv_dsi_tx_command_put_payload 0x0001743b Thumb Code 4 drv_dsi_tx.o(i.drv_dsi_tx_command_put_payload) + drv_dsi_tx_config_eotp 0x0001743f Thumb Code 24 drv_dsi_tx.o(i.drv_dsi_tx_config_eotp) + drv_dsi_tx_config_int 0x00017457 Thumb Code 8 drv_dsi_tx.o(i.drv_dsi_tx_config_int) + drv_dsi_tx_dpi_lpcmd_time 0x0001745f Thumb Code 8 drv_dsi_tx.o(i.drv_dsi_tx_dpi_lpcmd_time) + drv_dsi_tx_dpi_mode 0x00017467 Thumb Code 10 drv_dsi_tx.o(i.drv_dsi_tx_dpi_mode) + drv_dsi_tx_dpi_polarity 0x00017471 Thumb Code 36 drv_dsi_tx.o(i.drv_dsi_tx_dpi_polarity) + drv_dsi_tx_edpi_cmd_size 0x00017495 Thumb Code 4 drv_dsi_tx.o(i.drv_dsi_tx_edpi_cmd_size) + drv_dsi_tx_get_cmd_status 0x00017499 Thumb Code 4 drv_dsi_tx.o(i.drv_dsi_tx_get_cmd_status) + drv_dsi_tx_mode 0x0001749d Thumb Code 4 drv_dsi_tx.o(i.drv_dsi_tx_mode) + drv_dsi_tx_phy_clock_lane_auto_lp 0x000174a1 Thumb Code 24 drv_dsi_tx.o(i.drv_dsi_tx_phy_clock_lane_auto_lp) + drv_dsi_tx_phy_clock_lane_req_hs 0x000174b9 Thumb Code 26 drv_dsi_tx.o(i.drv_dsi_tx_phy_clock_lane_req_hs) + drv_dsi_tx_phy_lane_mode 0x000174d3 Thumb Code 12 drv_dsi_tx.o(i.drv_dsi_tx_phy_lane_mode) + drv_dsi_tx_phy_status_ready 0x000174df Thumb Code 100 drv_dsi_tx.o(i.drv_dsi_tx_phy_status_ready) + drv_dsi_tx_phy_status_stopstate 0x00017543 Thumb Code 62 drv_dsi_tx.o(i.drv_dsi_tx_phy_status_stopstate) + drv_dsi_tx_phy_test_setup 0x00017581 Thumb Code 308 drv_dsi_tx.o(i.drv_dsi_tx_phy_test_setup) + drv_dsi_tx_phy_time_cfg 0x000176b5 Thumb Code 30 drv_dsi_tx.o(i.drv_dsi_tx_phy_time_cfg) + drv_dsi_tx_powerup 0x000176d3 Thumb Code 8 drv_dsi_tx.o(i.drv_dsi_tx_powerup) + drv_dsi_tx_response_mode 0x000176db Thumb Code 28 drv_dsi_tx.o(i.drv_dsi_tx_response_mode) + drv_dsi_tx_set_bta_ack 0x000176f7 Thumb Code 24 drv_dsi_tx.o(i.drv_dsi_tx_set_bta_ack) + drv_dsi_tx_set_esc_div 0x0001770f Thumb Code 12 drv_dsi_tx.o(i.drv_dsi_tx_set_esc_div) + drv_dsi_tx_set_int 0x0001771d Thumb Code 58 drv_dsi_tx.o(i.drv_dsi_tx_set_int) + drv_dsi_tx_set_time_out_div 0x0001775d Thumb Code 16 drv_dsi_tx.o(i.drv_dsi_tx_set_time_out_div) + drv_dsi_tx_set_video_chunk 0x0001776d Thumb Code 8 drv_dsi_tx.o(i.drv_dsi_tx_set_video_chunk) + drv_dsi_tx_set_video_timing 0x00017775 Thumb Code 34 drv_dsi_tx.o(i.drv_dsi_tx_set_video_timing) + drv_dsi_tx_shutdown 0x00017797 Thumb Code 8 drv_dsi_tx.o(i.drv_dsi_tx_shutdown) + drv_dsi_tx_timeout_cfg 0x0001779f Thumb Code 38 drv_dsi_tx.o(i.drv_dsi_tx_timeout_cfg) + drv_dsi_tx_video_mode_cfg 0x000177c5 Thumb Code 170 drv_dsi_tx.o(i.drv_dsi_tx_video_mode_cfg) + drv_dsi_tx_video_mode_disable_hact_cmd 0x0001786f Thumb Code 22 drv_dsi_tx.o(i.drv_dsi_tx_video_mode_disable_hact_cmd) + drv_dsi_tx_video_mode_set_lp_cmd 0x00017885 Thumb Code 24 drv_dsi_tx.o(i.drv_dsi_tx_video_mode_set_lp_cmd) + drv_efuse_enter_inactive 0x0001789d Thumb Code 46 drv_efuse.o(i.drv_efuse_enter_inactive) + drv_efuse_int_enable 0x000178cb Thumb Code 12 drv_efuse.o(i.drv_efuse_int_enable) + drv_efuse_read 0x000178d7 Thumb Code 50 drv_efuse.o(i.drv_efuse_read) + drv_efuse_read_req 0x00017909 Thumb Code 24 drv_efuse.o(i.drv_efuse_read_req) + drv_gpio_get_input_data 0x00017921 Thumb Code 20 drv_gpio.o(i.drv_gpio_get_input_data) + drv_gpio_register_ap_reset_callback 0x00017939 Thumb Code 6 drv_gpio.o(i.drv_gpio_register_ap_reset_callback) + drv_gpio_register_callback 0x00017945 Thumb Code 14 drv_gpio.o(i.drv_gpio_register_callback) + drv_gpio_set_int 0x00017959 Thumb Code 74 drv_gpio.o(i.drv_gpio_set_int) + drv_gpio_set_ioe 0x000179a9 Thumb Code 26 drv_gpio.o(i.drv_gpio_set_ioe) + drv_gpio_set_mode0 0x000179c9 Thumb Code 12 drv_gpio.o(i.drv_gpio_set_mode0) + drv_gpio_set_mode1 0x000179d9 Thumb Code 12 drv_gpio.o(i.drv_gpio_set_mode1) + drv_gpio_set_mode2 0x000179e9 Thumb Code 12 drv_gpio.o(i.drv_gpio_set_mode2) + drv_gpio_set_mode3 0x000179f9 Thumb Code 12 drv_gpio.o(i.drv_gpio_set_mode3) + drv_gpio_set_pull_state 0x00017a29 Thumb Code 298 drv_gpio.o(i.drv_gpio_set_pull_state) + drv_i2c0_set_callback 0x00017b59 Thumb Code 6 drv_i2c_slave.o(i.drv_i2c0_set_callback) + drv_i2c1_set_callback 0x00017b65 Thumb Code 6 drv_i2c_master.o(i.drv_i2c1_set_callback) + drv_i2c_dma_init 0x00017ba5 Thumb Code 146 drv_i2c_dma.o(i.drv_i2c_dma_init) + drv_i2c_enable_rx_dma 0x00017c51 Thumb Code 26 drv_i2c_dma.o(i.drv_i2c_enable_rx_dma) + drv_i2c_enable_tx_dma 0x00017c6b Thumb Code 24 drv_i2c_dma.o(i.drv_i2c_enable_tx_dma) + drv_i2c_m_clear_it_pending_bit 0x00017c85 Thumb Code 86 drv_i2c_master.o(i.drv_i2c_m_clear_it_pending_bit) + drv_i2c_m_enable 0x00017ce5 Thumb Code 10 drv_i2c_master.o(i.drv_i2c_m_enable) + drv_i2c_m_enable_intr 0x00017cf5 Thumb Code 42 drv_i2c_master.o(i.drv_i2c_m_enable_intr) + drv_i2c_master_init 0x00017d2d Thumb Code 118 drv_i2c_master.o(i.drv_i2c_master_init) + drv_i2c_master_read_dma 0x00017db9 Thumb Code 82 drv_i2c_dma.o(i.drv_i2c_master_read_dma) + drv_i2c_master_write_dma 0x00017e15 Thumb Code 50 drv_i2c_dma.o(i.drv_i2c_master_write_dma) + drv_i2c_s_clear_it_pending_bit 0x00017e8f Thumb Code 66 drv_i2c_slave.o(i.drv_i2c_s_clear_it_pending_bit) + drv_i2c_s_config_intr 0x00017ed1 Thumb Code 4 drv_i2c_slave.o(i.drv_i2c_s_config_intr) + drv_i2c_s_enable 0x00017ed5 Thumb Code 8 drv_i2c_slave.o(i.drv_i2c_s_enable) + drv_i2c_s_get_fifo_status 0x00017edd Thumb Code 20 drv_i2c_slave.o(i.drv_i2c_s_get_fifo_status) + drv_i2c_s_set_intr 0x00017ef1 Thumb Code 74 drv_i2c_slave.o(i.drv_i2c_s_set_intr) + drv_i2c_s_write_data 0x00017f41 Thumb Code 28 drv_i2c_slave.o(i.drv_i2c_s_write_data) + drv_i2c_set_dma_irq_callback 0x00017f5d Thumb Code 68 drv_i2c_dma.o(i.drv_i2c_set_dma_irq_callback) + drv_i2c_slave_init 0x00017fb5 Thumb Code 50 drv_i2c_slave.o(i.drv_i2c_slave_init) + drv_i2c_slave_write_dma 0x00017fe9 Thumb Code 20 drv_i2c_dma.o(i.drv_i2c_slave_write_dma) + drv_lcdc_config_bypass 0x00018001 Thumb Code 24 drv_lcdc.o(i.drv_lcdc_config_bypass) + drv_lcdc_config_ccm 0x00018019 Thumb Code 48 drv_lcdc.o(i.drv_lcdc_config_ccm) + drv_lcdc_config_disp_mode 0x00018049 Thumb Code 22 drv_lcdc.o(i.drv_lcdc_config_disp_mode) + drv_lcdc_config_dpi_polarity 0x0001805f Thumb Code 36 drv_lcdc.o(i.drv_lcdc_config_dpi_polarity) + drv_lcdc_config_dpi_timing 0x00018083 Thumb Code 38 drv_lcdc.o(i.drv_lcdc_config_dpi_timing) + drv_lcdc_config_edpi_mode 0x000180a9 Thumb Code 22 drv_lcdc.o(i.drv_lcdc_config_edpi_mode) + drv_lcdc_config_endianness 0x000180bf Thumb Code 22 drv_lcdc.o(i.drv_lcdc_config_endianness) + drv_lcdc_config_input_size 0x000180d5 Thumb Code 12 drv_lcdc.o(i.drv_lcdc_config_input_size) + drv_lcdc_config_int 0x000180e1 Thumb Code 30 drv_lcdc.o(i.drv_lcdc_config_int) + drv_lcdc_config_int_single 0x000180ff Thumb Code 34 drv_lcdc.o(i.drv_lcdc_config_int_single) + drv_lcdc_config_overwrite 0x00018121 Thumb Code 34 drv_lcdc.o(i.drv_lcdc_config_overwrite) + drv_lcdc_config_overwrite_rgb 0x00018143 Thumb Code 12 drv_lcdc.o(i.drv_lcdc_config_overwrite_rgb) + drv_lcdc_config_partial_display_area 0x0001814f Thumb Code 26 drv_lcdc.o(i.drv_lcdc_config_partial_display_area) + drv_lcdc_config_partial_display_enable 0x00018169 Thumb Code 34 drv_lcdc.o(i.drv_lcdc_config_partial_display_enable) + drv_lcdc_config_scale_up_coef 0x0001818b Thumb Code 26 drv_lcdc.o(i.drv_lcdc_config_scale_up_coef) + drv_lcdc_config_scale_up_step 0x000181a5 Thumb Code 12 drv_lcdc.o(i.drv_lcdc_config_scale_up_step) + drv_lcdc_config_src_parameter 0x000181b1 Thumb Code 76 drv_lcdc.o(i.drv_lcdc_config_src_parameter) + drv_lcdc_config_thresh 0x000181fd Thumb Code 6 drv_lcdc.o(i.drv_lcdc_config_thresh) + drv_lcdc_ctrl_flow 0x00018203 Thumb Code 18 drv_lcdc.o(i.drv_lcdc_ctrl_flow) + drv_lcdc_enable_shadow_reg 0x00018215 Thumb Code 32 drv_lcdc.o(i.drv_lcdc_enable_shadow_reg) + drv_lcdc_set_int 0x00018235 Thumb Code 58 drv_lcdc.o(i.drv_lcdc_set_int) + drv_lcdc_set_prefetch 0x00018275 Thumb Code 24 drv_lcdc.o(i.drv_lcdc_set_prefetch) + drv_lcdc_set_video_hw_mode 0x0001828d Thumb Code 20 drv_lcdc.o(i.drv_lcdc_set_video_hw_mode) + drv_lcdc_start 0x000182a1 Thumb Code 32 drv_lcdc.o(i.drv_lcdc_start) + drv_memc_clear_status 0x000182c1 Thumb Code 12 drv_memc.o(i.drv_memc_clear_status) + drv_memc_enable_irq 0x000182cd Thumb Code 58 drv_memc.o(i.drv_memc_enable_irq) + drv_memc_gen_a_tear_signal 0x0001830d Thumb Code 12 drv_memc.o(i.drv_memc_gen_a_tear_signal) + drv_memc_get_status 0x00018319 Thumb Code 18 drv_memc.o(i.drv_memc_get_status) + drv_memc_rate_transfer_sel 0x0001832b Thumb Code 16 drv_memc.o(i.drv_memc_rate_transfer_sel) + drv_memc_sel_vsync 0x0001833b Thumb Code 14 drv_memc.o(i.drv_memc_sel_vsync) + drv_memc_set_active_height 0x00018349 Thumb Code 14 drv_memc.o(i.drv_memc_set_active_height) + drv_memc_set_data_mode 0x0001835d Thumb Code 12 drv_memc.o(i.drv_memc_set_data_mode) + drv_memc_set_double_buffer 0x00018369 Thumb Code 16 drv_memc.o(i.drv_memc_set_double_buffer) + drv_memc_set_double_buffer_reverse 0x00018379 Thumb Code 18 drv_memc.o(i.drv_memc_set_double_buffer_reverse) + drv_memc_set_fs_en_conditions 0x0001838b Thumb Code 16 drv_memc.o(i.drv_memc_set_fs_en_conditions) + drv_memc_set_inten 0x0001839b Thumb Code 20 drv_memc.o(i.drv_memc_set_inten) + drv_memc_set_lcdc_st_conditions 0x000183b1 Thumb Code 18 drv_memc.o(i.drv_memc_set_lcdc_st_conditions) + drv_memc_set_ltpo_mode 0x000183c9 Thumb Code 26 drv_memc.o(i.drv_memc_set_ltpo_mode) + drv_memc_set_tear_mode 0x000183e3 Thumb Code 14 drv_memc.o(i.drv_memc_set_tear_mode) + drv_memc_set_tear_waveform 0x000183f1 Thumb Code 34 drv_memc.o(i.drv_memc_set_tear_waveform) + drv_memc_set_vidc_sync_cnt 0x00018419 Thumb Code 14 drv_memc.o(i.drv_memc_set_vidc_sync_cnt) + drv_param_init_get_ccm 0x00018429 Thumb Code 4 drv_param_init.o(i.drv_param_init_get_ccm) + drv_param_init_get_scld_filter_h 0x00018431 Thumb Code 12 drv_param_init.o(i.drv_param_init_get_scld_filter_h) + drv_param_init_get_scld_filter_v 0x00018445 Thumb Code 12 drv_param_init.o(i.drv_param_init_get_scld_filter_v) + drv_param_init_get_sclu_filter 0x00018459 Thumb Code 4 drv_param_init.o(i.drv_param_init_get_sclu_filter) + drv_param_init_set_ccm 0x00018461 Thumb Code 14 drv_param_init.o(i.drv_param_init_set_ccm) + drv_param_p2r_filter_init 0x00018475 Thumb Code 30 drv_param_init.o(i.drv_param_p2r_filter_init) + drv_phy_enable_calibration 0x00018499 Thumb Code 12 drv_phy_common.o(i.drv_phy_enable_calibration) + drv_phy_get_calibration 0x000184a9 Thumb Code 50 drv_phy_common.o(i.drv_phy_get_calibration) + drv_phy_get_pll_para 0x000184e5 Thumb Code 88 drv_phy_common.o(i.drv_phy_get_pll_para) + drv_phy_get_rate_para 0x00018545 Thumb Code 76 drv_phy_common.o(i.drv_phy_get_rate_para) + drv_phy_test_clear 0x00018599 Thumb Code 16 drv_phy_common.o(i.drv_phy_test_clear) + drv_phy_test_lock 0x000185a9 Thumb Code 24 drv_phy_common.o(i.drv_phy_test_lock) + drv_phy_test_write_1_byte 0x000185c1 Thumb Code 32 drv_phy_common.o(i.drv_phy_test_write_1_byte) + drv_phy_test_write_2_byte 0x000185e1 Thumb Code 38 drv_phy_common.o(i.drv_phy_test_write_2_byte) + drv_phy_test_write_code 0x00018607 Thumb Code 30 drv_phy_common.o(i.drv_phy_test_write_code) + drv_pwr_set_cp_mode 0x00018645 Thumb Code 26 drv_pwr.o(i.drv_pwr_set_cp_mode) + drv_pwr_set_pvd_mode 0x00018665 Thumb Code 18 drv_pwr.o(i.drv_pwr_set_pvd_mode) + drv_pwr_set_system_clk_src 0x0001867d Thumb Code 44 drv_pwr.o(i.drv_pwr_set_system_clk_src) + drv_rxbr_clear_pkt_buffer 0x000186fb Thumb Code 10 drv_rxbr.o(i.drv_rxbr_clear_pkt_buffer) + drv_rxbr_clear_status0 0x00018705 Thumb Code 4 drv_rxbr.o(i.drv_rxbr_clear_status0) + drv_rxbr_enable_irq 0x00018709 Thumb Code 90 drv_rxbr.o(i.drv_rxbr_enable_irq) + drv_rxbr_frame_drop_cfg 0x00018765 Thumb Code 16 drv_rxbr.o(i.drv_rxbr_frame_drop_cfg) + drv_rxbr_get_clk 0x00018779 Thumb Code 66 drv_rxbr.o(i.drv_rxbr_get_clk) + drv_rxbr_get_col_addr 0x000187dd Thumb Code 4 drv_rxbr.o(i.drv_rxbr_get_col_addr) + drv_rxbr_get_page_addr 0x000187f3 Thumb Code 4 drv_rxbr.o(i.drv_rxbr_get_page_addr) + drv_rxbr_hline_rcv0_cfg 0x00018809 Thumb Code 12 drv_rxbr.o(i.drv_rxbr_hline_rcv0_cfg) + drv_rxbr_hline_rcv_cfg 0x00018815 Thumb Code 8 drv_rxbr.o(i.drv_rxbr_hline_rcv_cfg) + drv_rxbr_register_irq0_callback 0x0001881d Thumb Code 6 drv_rxbr.o(i.drv_rxbr_register_irq0_callback) + drv_rxbr_register_irq1_callback 0x00018829 Thumb Code 6 drv_rxbr.o(i.drv_rxbr_register_irq1_callback) + drv_rxbr_set_ack_pkt_header 0x00018835 Thumb Code 20 drv_rxbr.o(i.drv_rxbr_set_ack_pkt_header) + drv_rxbr_set_cmd_filter 0x00018849 Thumb Code 204 drv_rxbr.o(i.drv_rxbr_set_cmd_filter) + drv_rxbr_set_color_format 0x00018915 Thumb Code 20 drv_rxbr.o(i.drv_rxbr_set_color_format) + drv_rxbr_set_inten 0x00018929 Thumb Code 20 drv_rxbr.o(i.drv_rxbr_set_inten) + drv_rxbr_set_ltpo_drop_th 0x0001893d Thumb Code 16 drv_rxbr.o(i.drv_rxbr_set_ltpo_drop_th) + drv_rxbr_set_usr_cfg 0x0001894d Thumb Code 38 drv_rxbr.o(i.drv_rxbr_set_usr_cfg) + drv_rxbr_set_usr_col 0x00018973 Thumb Code 8 drv_rxbr.o(i.drv_rxbr_set_usr_col) + drv_rxbr_set_usr_row 0x0001897b Thumb Code 8 drv_rxbr.o(i.drv_rxbr_set_usr_row) + drv_spi_m_read_data 0x00018985 Thumb Code 28 drv_spi_master.o(i.drv_spi_m_read_data) + drv_swire_enable 0x000189a5 Thumb Code 24 drv_swire.o(i.drv_swire_enable) + drv_swire_set_int 0x000189c1 Thumb Code 76 drv_swire.o(i.drv_swire_set_int) + drv_swire_set_power_down 0x00018a15 Thumb Code 24 drv_swire.o(i.drv_swire_set_power_down) + drv_sys_cfg_clear_all_int 0x00018a31 Thumb Code 8 drv_sys_cfg.o(i.drv_sys_cfg_clear_all_int) + drv_sys_cfg_clear_pending 0x00018a3d Thumb Code 32 drv_sys_cfg.o(i.drv_sys_cfg_clear_pending) + drv_sys_cfg_sel_ap_rst_lvl_trig 0x00018a65 Thumb Code 18 drv_sys_cfg.o(i.drv_sys_cfg_sel_ap_rst_lvl_trig) + drv_sys_cfg_sel_ap_rst_trig 0x00018a7d Thumb Code 22 drv_sys_cfg.o(i.drv_sys_cfg_sel_ap_rst_trig) + drv_sys_cfg_sel_gpio_group 0x00018a99 Thumb Code 30 drv_sys_cfg.o(i.drv_sys_cfg_sel_gpio_group) + drv_sys_cfg_sel_int_trig 0x00018abd Thumb Code 30 drv_sys_cfg.o(i.drv_sys_cfg_sel_int_trig) + drv_sys_cfg_set_dma_rx_req 0x00018ae1 Thumb Code 10 drv_sys_cfg.o(i.drv_sys_cfg_set_dma_rx_req) + drv_sys_cfg_set_dma_tx_req 0x00018af1 Thumb Code 10 drv_sys_cfg.o(i.drv_sys_cfg_set_dma_tx_req) + drv_sys_cfg_set_int 0x00018b01 Thumb Code 30 drv_sys_cfg.o(i.drv_sys_cfg_set_int) + drv_timer_enable 0x00018b3f Thumb Code 32 drv_timer.o(i.drv_timer_enable) + drv_timer_get_instance 0x00018b61 Thumb Code 10 drv_timer.o(i.drv_timer_get_instance) + drv_timer_get_prescaler 0x00018b71 Thumb Code 12 drv_timer.o(i.drv_timer_get_prescaler) + drv_timer_register_callback 0x00018bc5 Thumb Code 14 drv_timer.o(i.drv_timer_register_callback) + drv_timer_set_compare_val 0x00018bd9 Thumb Code 16 drv_timer.o(i.drv_timer_set_compare_val) + drv_timer_set_int 0x00018be9 Thumb Code 80 drv_timer.o(i.drv_timer_set_int) + drv_timer_set_prescaler 0x00018c3d Thumb Code 36 drv_timer.o(i.drv_timer_set_prescaler) + drv_timer_set_repeat 0x00018c65 Thumb Code 12 drv_timer.o(i.drv_timer_set_repeat) + drv_tx_phy_test_enter 0x00018c7f Thumb Code 28 drv_dsi_tx.o(i.drv_tx_phy_test_enter) + drv_tx_phy_test_exit 0x00018c9b Thumb Code 28 drv_dsi_tx.o(i.drv_tx_phy_test_exit) + drv_vidc_clear_irq 0x00018ced Thumb Code 8 drv_vidc.o(i.drv_vidc_clear_irq) + drv_vidc_enable 0x00018cf5 Thumb Code 24 drv_vidc.o(i.drv_vidc_enable) + drv_vidc_enable_irq 0x00018d0d Thumb Code 58 drv_vidc.o(i.drv_vidc_enable_irq) + drv_vidc_get_irq_status 0x00018d4d Thumb Code 18 drv_vidc.o(i.drv_vidc_get_irq_status) + drv_vidc_init_module_enable 0x00018d61 Thumb Code 36 drv_vidc.o(i.drv_vidc_init_module_enable) + drv_vidc_register_callback 0x00018d89 Thumb Code 6 drv_vidc.o(i.drv_vidc_register_callback) + drv_vidc_reset 0x00018d95 Thumb Code 6 drv_vidc.o(i.drv_vidc_reset) + drv_vidc_set_dst_parameter 0x00018d9b Thumb Code 60 drv_vidc.o(i.drv_vidc_set_dst_parameter) + drv_vidc_set_irqen 0x00018dd7 Thumb Code 20 drv_vidc.o(i.drv_vidc_set_irqen) + drv_vidc_set_mirror 0x00018deb Thumb Code 16 drv_vidc.o(i.drv_vidc_set_mirror) + drv_vidc_set_p2r_hcoef0 0x00018dfb Thumb Code 8 drv_vidc.o(i.drv_vidc_set_p2r_hcoef0) + drv_vidc_set_p2r_hinitb 0x00018e03 Thumb Code 38 drv_vidc.o(i.drv_vidc_set_p2r_hinitb) + drv_vidc_set_p2r_hinitr 0x00018e29 Thumb Code 38 drv_vidc.o(i.drv_vidc_set_p2r_hinitr) + drv_vidc_set_pentile_swap 0x00018e51 Thumb Code 18 drv_vidc.o(i.drv_vidc_set_pentile_swap) + drv_vidc_set_pu_ctrl 0x00018e69 Thumb Code 10 drv_vidc.o(i.drv_vidc_set_pu_ctrl) + drv_vidc_set_rotation 0x00018e73 Thumb Code 16 drv_vidc.o(i.drv_vidc_set_rotation) + drv_vidc_set_scld_hcoef0 0x00018e83 Thumb Code 10 drv_vidc.o(i.drv_vidc_set_scld_hcoef0) + drv_vidc_set_scld_hcoef1 0x00018e8d Thumb Code 10 drv_vidc.o(i.drv_vidc_set_scld_hcoef1) + drv_vidc_set_scld_step 0x00018e97 Thumb Code 18 drv_vidc.o(i.drv_vidc_set_scld_step) + drv_vidc_set_scld_vcoef0 0x00018ea9 Thumb Code 10 drv_vidc.o(i.drv_vidc_set_scld_vcoef0) + drv_vidc_set_scld_vcoef1 0x00018eb3 Thumb Code 10 drv_vidc.o(i.drv_vidc_set_scld_vcoef1) + drv_vidc_set_src_parameter 0x00018ebd Thumb Code 22 drv_vidc.o(i.drv_vidc_set_src_parameter) + drv_wdg_clear_counter 0x00018ed5 Thumb Code 12 drv_wdg.o(i.drv_wdg_clear_counter) + drv_wdg_set_int 0x00018f05 Thumb Code 60 drv_wdg.o(i.drv_wdg_set_int) + fls_clr_interrupt_flag 0x00018f45 Thumb Code 10 drv_fls.o(i.fls_clr_interrupt_flag) + fputc 0x00018f4f Thumb Code 20 tau_log.o(i.fputc) + hal_dsi_rx_ctrl_create_handle 0x00018f65 Thumb Code 48 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_create_handle) + hal_dsi_rx_ctrl_deinit 0x00018f99 Thumb Code 148 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_deinit) + hal_dsi_rx_ctrl_dsc_async_handler 0x00019035 Thumb Code 120 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_dsc_async_handler) + hal_dsi_rx_ctrl_gen_a_tear_signal 0x000190b9 Thumb Code 32 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_gen_a_tear_signal) + hal_dsi_rx_ctrl_get_compressen_en 0x000190e1 Thumb Code 10 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_get_compressen_en) + hal_dsi_rx_ctrl_get_max_ret_size 0x000190f1 Thumb Code 30 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_get_max_ret_size) + hal_dsi_rx_ctrl_init 0x00019119 Thumb Code 144 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_init) + hal_dsi_rx_ctrl_pre_init_pps 0x000198f9 Thumb Code 56 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_pre_init_pps) + hal_dsi_rx_ctrl_send_ack_cmd 0x00019935 Thumb Code 212 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_send_ack_cmd) + hal_dsi_rx_ctrl_set_cus_esc_clk 0x00019a25 Thumb Code 34 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_cus_esc_clk) + hal_dsi_rx_ctrl_set_cus_sync_line 0x00019a51 Thumb Code 44 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_cus_sync_line) + hal_dsi_rx_ctrl_set_sw_tear_mode 0x00019b31 Thumb Code 42 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_sw_tear_mode) + hal_dsi_rx_ctrl_set_tear_mode_ex 0x00019b65 Thumb Code 14 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_set_tear_mode_ex) + hal_dsi_rx_ctrl_start 0x00019b75 Thumb Code 46 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_start) + hal_dsi_rx_ctrl_stop 0x00019bb1 Thumb Code 46 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_stop) + hal_dsi_rx_ctrl_toggle_resolution 0x00019bed Thumb Code 28 hal_dsi_rx_ctrl.o(i.hal_dsi_rx_ctrl_toggle_resolution) + hal_dsi_tx_ctrl_create_handle 0x0001a221 Thumb Code 34 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_create_handle) + hal_dsi_tx_ctrl_deinit 0x0001a24d Thumb Code 118 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_deinit) + hal_dsi_tx_ctrl_enter_init_panel_mode 0x0001a2d1 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 0x0001a31d Thumb Code 32 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_exit_init_panel_mode) + hal_dsi_tx_ctrl_init 0x0001a345 Thumb Code 154 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_init) + hal_dsi_tx_ctrl_panel_reset_pin 0x0001a40d Thumb Code 12 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_panel_reset_pin) + hal_dsi_tx_ctrl_set_ccm 0x0001a419 Thumb Code 28 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_ccm) + hal_dsi_tx_ctrl_set_overwrite_rgb 0x0001a439 Thumb Code 16 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_overwrite_rgb) + hal_dsi_tx_ctrl_set_partial_disp 0x0001a44d Thumb Code 12 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_partial_disp) + hal_dsi_tx_ctrl_set_partial_disp_area 0x0001a45d Thumb Code 30 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_set_partial_disp_area) + hal_dsi_tx_ctrl_start 0x0001a481 Thumb Code 140 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_start) + hal_dsi_tx_ctrl_stop 0x0001a51d Thumb Code 56 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_stop) + hal_dsi_tx_ctrl_write_array_cmd 0x0001a561 Thumb Code 210 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_write_array_cmd) + hal_dsi_tx_ctrl_write_cmd 0x0001a639 Thumb Code 172 hal_dsi_tx_ctrl.o(i.hal_dsi_tx_ctrl_write_cmd) + hal_gpio_ctrl_eint 0x0001a8cd Thumb Code 18 hal_gpio.o(i.hal_gpio_ctrl_eint) + hal_gpio_get_input_data 0x0001a8e5 Thumb Code 18 hal_gpio.o(i.hal_gpio_get_input_data) + hal_gpio_init_eint 0x0001a8f9 Thumb Code 58 hal_gpio.o(i.hal_gpio_init_eint) + hal_gpio_init_output 0x0001a939 Thumb Code 34 hal_gpio.o(i.hal_gpio_init_output) + hal_gpio_reg_eint_cb 0x0001a961 Thumb Code 20 hal_gpio.o(i.hal_gpio_reg_eint_cb) + hal_gpio_set_ap_reset_int 0x0001a979 Thumb Code 76 hal_gpio.o(i.hal_gpio_set_ap_reset_int) + hal_gpio_set_mode 0x0001a9c9 Thumb Code 90 hal_gpio.o(i.hal_gpio_set_mode) + hal_gpio_set_output_data 0x0001aa29 Thumb Code 8 hal_gpio.o(i.hal_gpio_set_output_data) + hal_gpio_set_pull_state 0x0001aa31 Thumb Code 26 hal_gpio.o(i.hal_gpio_set_pull_state) + hal_i2c_m_dma_init 0x0001aa51 Thumb Code 92 hal_i2c_master.o(i.hal_i2c_m_dma_init) + hal_i2c_m_dma_read 0x0001aabd Thumb Code 26 hal_i2c_master.o(i.hal_i2c_m_dma_read) + hal_i2c_m_dma_write 0x0001aadd Thumb Code 24 hal_i2c_master.o(i.hal_i2c_m_dma_write) + hal_i2c_m_transfer_complate 0x0001aaf9 Thumb Code 6 hal_i2c_master.o(i.hal_i2c_m_transfer_complate) + hal_i2c_s_dma_write 0x0001ab35 Thumb Code 62 hal_i2c_slave.o(i.hal_i2c_s_dma_write) + hal_i2c_s_init 0x0001ab81 Thumb Code 176 hal_i2c_slave.o(i.hal_i2c_s_init) + hal_i2c_s_nonblocking_read 0x0001ac49 Thumb Code 14 hal_i2c_slave.o(i.hal_i2c_s_nonblocking_read) + hal_i2c_s_set_transfer 0x0001ac5d Thumb Code 6 hal_i2c_slave.o(i.hal_i2c_s_set_transfer) + hal_internal_init_memc 0x0001addd Thumb Code 170 hal_internal_vsync.o(i.hal_internal_init_memc) + hal_internal_sync_get_fb_setting 0x0001aed9 Thumb Code 12 hal_internal_vsync.o(i.hal_internal_sync_get_fb_setting) + hal_internal_sync_get_hight_performan_mode 0x0001aee9 Thumb Code 10 hal_internal_vsync.o(i.hal_internal_sync_get_hight_performan_mode) + hal_internal_sync_input_resolution_change 0x0001aef9 Thumb Code 438 hal_internal_vsync.o(i.hal_internal_sync_input_resolution_change) + hal_internal_update_dpi_param 0x0001b125 Thumb Code 10 hal_internal_vsync.o(i.hal_internal_update_dpi_param) + hal_internal_video_mode_auto_sync 0x0001b135 Thumb Code 270 hal_internal_vsync.o(i.hal_internal_video_mode_auto_sync) + hal_internal_vsync_deinit 0x0001b261 Thumb Code 30 hal_internal_vsync.o(i.hal_internal_vsync_deinit) + hal_internal_vsync_get_rx_state 0x0001b289 Thumb Code 6 hal_internal_vsync.o(i.hal_internal_vsync_get_rx_state) + hal_internal_vsync_get_sync_line 0x0001b295 Thumb Code 18 hal_internal_vsync.o(i.hal_internal_vsync_get_sync_line) + hal_internal_vsync_get_tear_mode 0x0001b2ad Thumb Code 6 hal_internal_vsync.o(i.hal_internal_vsync_get_tear_mode) + hal_internal_vsync_get_tx_state 0x0001b2b9 Thumb Code 6 hal_internal_vsync.o(i.hal_internal_vsync_get_tx_state) + hal_internal_vsync_init_rx 0x0001b2c5 Thumb Code 236 hal_internal_vsync.o(i.hal_internal_vsync_init_rx) + hal_internal_vsync_init_tx 0x0001b3dd Thumb Code 172 hal_internal_vsync.o(i.hal_internal_vsync_init_tx) + hal_internal_vsync_set_auto_hw_filter 0x0001b48d Thumb Code 222 hal_internal_vsync.o(i.hal_internal_vsync_set_auto_hw_filter) + hal_internal_vsync_set_rx_state 0x0001b5a9 Thumb Code 16 hal_internal_vsync.o(i.hal_internal_vsync_set_rx_state) + hal_internal_vsync_set_sync_line 0x0001b5bd Thumb Code 30 hal_internal_vsync.o(i.hal_internal_vsync_set_sync_line) + hal_internal_vsync_set_tear_mode 0x0001b5e1 Thumb Code 72 hal_internal_vsync.o(i.hal_internal_vsync_set_tear_mode) + hal_internal_vsync_set_tx_state 0x0001b631 Thumb Code 118 hal_internal_vsync.o(i.hal_internal_vsync_set_tx_state) + hal_spi_m_clear_rxfifo 0x0001bae9 Thumb Code 14 hal_spi_master.o(i.hal_spi_m_clear_rxfifo) + hal_swire_deinit 0x0001baf7 Thumb Code 18 hal_swire.o(i.hal_swire_deinit) + hal_swire_open 0x0001bb09 Thumb Code 22 hal_swire.o(i.hal_swire_open) + hal_system_enable_systick 0x0001bb1f Thumb Code 8 hal_system.o(i.hal_system_enable_systick) + hal_system_init 0x0001bb29 Thumb Code 104 hal_system.o(i.hal_system_init) + hal_system_init_console 0x0001bbb1 Thumb Code 28 hal_system.o(i.hal_system_init_console) + hal_system_set_phy_calibration 0x0001bbcd Thumb Code 8 hal_system.o(i.hal_system_set_phy_calibration) + hal_system_set_pvd 0x0001bbd5 Thumb Code 8 hal_system.o(i.hal_system_set_pvd) + hal_system_set_vcc 0x0001bbdd Thumb Code 8 hal_system.o(i.hal_system_set_vcc) + hal_timer_deinit 0x0001bbe5 Thumb Code 46 hal_timer.o(i.hal_timer_deinit) + hal_timer_init 0x0001bc13 Thumb Code 26 hal_timer.o(i.hal_timer_init) + hal_timer_start 0x0001bc2d Thumb Code 66 hal_timer.o(i.hal_timer_start) + hal_timer_stop 0x0001bc75 Thumb Code 40 hal_timer.o(i.hal_timer_stop) + hal_uart_init 0x0001bc9d Thumb Code 126 hal_uart.o(i.hal_uart_init) + hal_uart_transmit_blocking 0x0001bd29 Thumb Code 12 hal_uart.o(i.hal_uart_transmit_blocking) + handle_init 0x0001bd39 Thumb Code 140 irq_redirect .o(i.handle_init) + main 0x0001bfb9 Thumb Code 16 main.o(i.main) + sqrt 0x0001cde9 Thumb Code 66 sqrt.o(i.sqrt) + panel_init_code 0x0001d2a0 Data 7350 s21p_demo.o(.constdata) + phone_60_start_back 0x0001efd8 Data 8 app_tp_for_custom_s21p.o(.constdata) + phone_22_data 0x0001efe0 Data 1 app_tp_for_custom_s21p.o(.constdata) + phone_22_back 0x0001efe1 Data 5 app_tp_for_custom_s21p.o(.constdata) + phone_21_data 0x0001efe6 Data 1 app_tp_for_custom_s21p.o(.constdata) + phone_21_back 0x0001efe7 Data 1 app_tp_for_custom_s21p.o(.constdata) + screen_86_data 0x0001efe8 Data 1 app_tp_for_custom_s21p.o(.constdata) + screen_a0_00_01_data 0x0001efe9 Data 3 app_tp_for_custom_s21p.o(.constdata) + screen_a2_03_00_data 0x0001efec Data 6 app_tp_for_custom_s21p.o(.constdata) + screen_a2_02_00_data 0x0001eff2 Data 3 app_tp_for_custom_s21p.o(.constdata) + screen_c0_07_01_data 0x0001eff5 Data 3 app_tp_for_custom_s21p.o(.constdata) + screen_fa_software_reset_data 0x0001eff8 Data 6 app_tp_for_custom_s21p.o(.constdata) + screen_a7_00_00_data 0x0001effe Data 4 app_tp_for_custom_s21p.o(.constdata) + screen_fa_20_24_data 0x0001f002 Data 6 app_tp_for_custom_s21p.o(.constdata) + screen_fa_20_32_data 0x0001f008 Data 6 app_tp_for_custom_s21p.o(.constdata) + screen_fa_20_34_data 0x0001f00e Data 6 app_tp_for_custom_s21p.o(.constdata) + screen_fa_20_3f_data 0x0001f014 Data 6 app_tp_for_custom_s21p.o(.constdata) + screen_fa_20_3d_data 0x0001f01a Data 6 app_tp_for_custom_s21p.o(.constdata) + screen_fa_20_2d_data 0x0001f020 Data 6 app_tp_for_custom_s21p.o(.constdata) + screen_fa_20_1b_data 0x0001f026 Data 6 app_tp_for_custom_s21p.o(.constdata) + screen_fa_20_68_data 0x0001f02c Data 6 app_tp_for_custom_s21p.o(.constdata) + screen_fa_20_25_data 0x0001f032 Data 6 app_tp_for_custom_s21p.o(.constdata) + screen_fa_20_6b_data 0x0001f038 Data 6 app_tp_for_custom_s21p.o(.constdata) + screen_fa_20_de_data 0x0001f03e Data 6 app_tp_for_custom_s21p.o(.constdata) + screen_fa_20_28_data 0x0001f044 Data 9 app_tp_for_custom_s21p.o(.constdata) + screen_fa_20_6a_data 0x0001f04d Data 6 app_tp_for_custom_s21p.o(.constdata) + screen_fb_20_6a_data 0x0001f053 Data 5 app_tp_for_custom_s21p.o(.constdata) + screen_fa_20_72_data1 0x0001f058 Data 12 app_tp_for_custom_s21p.o(.constdata) + screen_fa_20_72_data2 0x0001f064 Data 12 app_tp_for_custom_s21p.o(.constdata) + screen_fa_20_72_data3 0x0001f070 Data 12 app_tp_for_custom_s21p.o(.constdata) + screen_fa_20_6B_data 0x0001f07c Data 12 app_tp_for_custom_s21p.o(.constdata) + screen_fb_20_71_data 0x0001f088 Data 5 app_tp_for_custom_s21p.o(.constdata) + screen_reg_int_data_size 0x0001f08d Data 1 app_tp_for_custom_s21p.o(.constdata) + screen_reg_start_data_size 0x0001f08e Data 1 app_tp_for_custom_s21p.o(.constdata) + wCRCTalbeAbs 0x0001f090 Data 32 app_tp_st_touch.o(.constdata) + Region$$Table$$Base 0x0001f518 Number 0 anon$$obj.o(Region$$Table) + Region$$Table$$Limit 0x0001f548 Number 0 anon$$obj.o(Region$$Table) + g_fun_handle 0x00070100 Data 192 irq_redirect .o(.ARM.__AT_0x00070100) + s_heartbeat 0x000701d0 Data 4 s21p_demo.o(.data) + s_swire_pwm_counter 0x000701e2 Data 1 s21p_demo.o(.data) + s_screen_init_complate 0x000701fc Data 1 app_tp_transfer.o(.data) + s_tp_restart_count 0x00070200 Data 4 app_tp_transfer.o(.data) + g_screen_input_rst_pad 0x0007020c Data 1 app_tp_for_custom_s21p.o(.data) + g_screen_input_int_pad 0x0007020d Data 1 app_tp_for_custom_s21p.o(.data) + g_phone_input_rst_pad 0x0007020e Data 1 app_tp_for_custom_s21p.o(.data) + g_phone_output_int_pad 0x0007020f Data 1 app_tp_for_custom_s21p.o(.data) + SAMSUNG_s21p 0x00070210 Data 404 app_tp_for_custom_s21p.o(.data) + screen_data_write_1 0x000703a4 Data 1 app_tp_for_custom_s21p.o(.data) + screen_data_write_2 0x000703a5 Data 3 app_tp_for_custom_s21p.o(.data) + screen_data_write_3 0x000703a8 Data 3 app_tp_for_custom_s21p.o(.data) + screen_reg_int_data 0x000703ac Data 16 app_tp_for_custom_s21p.o(.data) + screen_reg_start_data 0x000703bc Data 100 app_tp_for_custom_s21p.o(.data) + g_screen_tp_reg_43_software_reset_flag 0x00070420 Data 1 app_tp_for_custom_s21p.o(.data) + g_screen_tp_init_start 0x00070421 Data 1 app_tp_for_custom_s21p.o(.data) + g_screen_tp_init_restart 0x00070422 Data 1 app_tp_for_custom_s21p.o(.data) + g_tp_sleep_in 0x00070423 Data 1 app_tp_for_custom_s21p.o(.data) + g_tp_wakeup 0x00070424 Data 1 app_tp_for_custom_s21p.o(.data) + g_tp_sleep_delay_count 0x00070425 Data 1 app_tp_for_custom_s21p.o(.data) + phone_reg_coord_data 0x00070426 Data 1 app_tp_for_custom_s21p.o(.data) + phone_reg_coord_back 0x00070427 Data 16 app_tp_for_custom_s21p.o(.data) + phone_reg_coord_back_X61 0x00070437 Data 80 app_tp_for_custom_s21p.o(.data) + phone_reg_coord_back_BUF 0x00070487 Data 100 app_tp_for_custom_s21p.o(.data) + phone_reg_coord_BUF_NUM 0x000704eb Data 1 app_tp_for_custom_s21p.o(.data) + phone_reg_int_data 0x000704ec Data 16 app_tp_for_custom_s21p.o(.data) + phone_reg_int_size 0x000704fc Data 1 app_tp_for_custom_s21p.o(.data) + phone_reg_const_data 0x00070500 Data 48 app_tp_for_custom_s21p.o(.data) + phone_reg_const_data_size 0x00070530 Data 1 app_tp_for_custom_s21p.o(.data) + st_touch_init_sensor_off 0x00070533 Data 3 app_tp_st_touch.o(.data) + st_touch_init_sensor_on 0x00070536 Data 3 app_tp_st_touch.o(.data) + st_touch_tp_tuning_reset 0x00070539 Data 3 app_tp_st_touch.o(.data) + st_touch_tp_tuning_FpnlInit 0x0007053c Data 3 app_tp_st_touch.o(.data) + st_touch_tp_tuning_PnlInit 0x0007053f Data 3 app_tp_st_touch.o(.data) + st_touch_tp_tuning_TuneM 0x00070542 Data 4 app_tp_st_touch.o(.data) + st_touch_tp_tuning_TuneS 0x00070546 Data 4 app_tp_st_touch.o(.data) + st_touch_tp_tuning_SvCfg 0x0007054a Data 3 app_tp_st_touch.o(.data) + st_touch_tp_tuning_SvCx 0x0007054d Data 3 app_tp_st_touch.o(.data) + st_touch_tp_tuning_SvPnl 0x00070550 Data 3 app_tp_st_touch.o(.data) + st_touch_tp_tuning_clearfifo 0x00070553 Data 3 app_tp_st_touch.o(.data) + st_touch_tp_tuning_clkreset 0x00070556 Data 3 app_tp_st_touch.o(.data) + g_sof_gen_te_func 0x00070590 Data 4 hal_internal_vsync.o(.data) + g_systick_cb_func 0x000705a4 Data 4 drv_common.o(.data) + g_system_clock 0x000705a8 Data 4 drv_common.o(.data) + g_scld_fhd_filter_h 0x000705c0 Data 256 drv_param_init.o(.data) + g_scld_fhd_filter_v 0x000706c0 Data 256 drv_param_init.o(.data) + g_scld_hd_filter_h 0x000707c0 Data 256 drv_param_init.o(.data) + g_scld_hd_filter_v 0x000708c0 Data 256 drv_param_init.o(.data) + g_sclu_lanczos_filter 0x000709c0 Data 128 drv_param_init.o(.data) + g_ccm_setting 0x00070a40 Data 36 drv_param_init.o(.data) + g_int_rxbr_irq0_cb_func 0x00070ac4 Data 4 drv_rxbr.o(.data) + g_int_rxbr_irq1_cb_func 0x00070ac8 Data 4 drv_rxbr.o(.data) + g_int_vidc_cb_func 0x00070acc Data 4 drv_vidc.o(.data) + g_fls_w_cmd 0x00070ae0 Data 1 norflash.o(.data) + g_fls_r_cmd 0x00070ae1 Data 1 norflash.o(.data) + g_fls_write_en_status 0x00070ae2 Data 1 norflash.o(.data) + isFlsTransferEnd 0x00070ae3 Data 1 norflash.o(.data) + isFlsFifoReq 0x00070ae4 Data 1 norflash.o(.data) + isNandWriteCompleted 0x00070ae5 Data 1 norflash.o(.data) + isNandReadCompleted 0x00070ae6 Data 1 norflash.o(.data) + g_fls_error_info 0x00070aec Data 6 norflash.o(.data) + __stdout 0x00070b14 Data 4 stdout.o(.data) + Touch 0x00070d10 Data 72 app_tp_for_custom_s21p.o(.bss) + tp_scan_data 0x00070d58 Data 12 app_tp_st_touch.o(.bss) + string 0x00070e74 Data 256 tau_log.o(.bss) + hal_dmahandle 0x00070f74 Data 160 hal_uart.o(.bss) + hal_uarthandle_dma 0x00071014 Data 32 hal_uart.o(.bss) + hal_uart_handle_global 0x00071034 Data 16 hal_uart.o(.bss) + g_vsync_hande 0x00071044 Data 100 hal_internal_vsync.o(.bss) + g_dcs_execute_table 0x000710a8 Data 2048 hal_internal_vsync.o(.bss) + g_packet_fifo 0x00071b64 Data 4144 dcs_packet_fifo.o(.bss) + g_spis_ctrl_handle 0x00072b94 Data 32 hal_spi_slave.o(.bss) + __stack_limit 0x00072bb8 Data 0 startup_armcm0.o(STACK) + __initial_sp 0x00073bb8 Data 0 startup_armcm0.o(STACK) + + + +============================================================================== + +Memory Map of the image + + Image Entry point : 0x000100c1 + + Load Region LR_IROM2 (Base: 0x00010000, Size: 0x0000fe94, Max: 0x00010000, ABSOLUTE, COMPRESSED[0x0000fa04]) + + Execution Region ER_IROM2 (Exec base: 0x00010000, Load base: 0x00010000, Size: 0x0000f548, Max: 0x00010000, ABSOLUTE) + + Exec Addr Load Addr Size Type Attr Idx E Section Name Object + + 0x00010000 0x00010000 0x000000c0 Data RO 664 RESET startup_armcm0.o + 0x000100c0 0x000100c0 0x00000000 Code RO 2700 * .ARM.Collect$$$$00000000 mc_p.l(entry.o) + 0x000100c0 0x000100c0 0x00000004 Code RO 3010 .ARM.Collect$$$$00000001 mc_p.l(entry2.o) + 0x000100c4 0x000100c4 0x00000004 Code RO 3013 .ARM.Collect$$$$00000004 mc_p.l(entry5.o) + 0x000100c8 0x000100c8 0x00000000 Code RO 3015 .ARM.Collect$$$$00000008 mc_p.l(entry7b.o) + 0x000100c8 0x000100c8 0x00000000 Code RO 3017 .ARM.Collect$$$$0000000A mc_p.l(entry8b.o) + 0x000100c8 0x000100c8 0x00000008 Code RO 3018 .ARM.Collect$$$$0000000B mc_p.l(entry9a.o) + 0x000100d0 0x000100d0 0x00000000 Code RO 3020 .ARM.Collect$$$$0000000D mc_p.l(entry10a.o) + 0x000100d0 0x000100d0 0x00000000 Code RO 3022 .ARM.Collect$$$$0000000F mc_p.l(entry11a.o) + 0x000100d0 0x000100d0 0x00000004 Code RO 3011 .ARM.Collect$$$$00002712 mc_p.l(entry2.o) + 0x000100d4 0x000100d4 0x00000078 Code RO 665 .text startup_armcm0.o + 0x0001014c 0x0001014c 0x0000002c Code RO 2703 .text mc_p.l(uidiv.o) + 0x00010178 0x00010178 0x00000028 Code RO 2705 .text mc_p.l(idiv.o) + 0x000101a0 0x000101a0 0x00000024 Code RO 2707 .text mc_p.l(memcpya.o) + 0x000101c4 0x000101c4 0x00000024 Code RO 2709 .text mc_p.l(memseta.o) + 0x000101e8 0x000101e8 0x000000b2 Code RO 2974 .text mf_p.l(fadd.o) + 0x0001029a 0x0001029a 0x0000007a Code RO 2976 .text mf_p.l(fmul.o) + 0x00010314 0x00010314 0x0000007c Code RO 2978 .text mf_p.l(fdiv.o) + 0x00010390 0x00010390 0x00000018 Code RO 2980 .text mf_p.l(fscalb.o) + 0x000103a8 0x000103a8 0x00000164 Code RO 2982 .text mf_p.l(dadd.o) + 0x0001050c 0x0001050c 0x000000d0 Code RO 2984 .text mf_p.l(dmul.o) + 0x000105dc 0x000105dc 0x000000f0 Code RO 2986 .text mf_p.l(ddiv.o) + 0x000106cc 0x000106cc 0x00000016 Code RO 2988 .text mf_p.l(fflti.o) + 0x000106e2 0x000106e2 0x0000000e Code RO 2990 .text mf_p.l(ffltui.o) + 0x000106f0 0x000106f0 0x0000001c Code RO 2994 .text mf_p.l(dfltui.o) + 0x0001070c 0x0001070c 0x00000032 Code RO 2996 .text mf_p.l(ffixi.o) + 0x0001073e 0x0001073e 0x00000028 Code RO 2998 .text mf_p.l(ffixui.o) + 0x00010766 0x00010766 0x00000002 PAD + 0x00010768 0x00010768 0x00000048 Code RO 3000 .text mf_p.l(dfixi.o) + 0x000107b0 0x000107b0 0x0000003c Code RO 3002 .text mf_p.l(dfixui.o) + 0x000107ec 0x000107ec 0x00000028 Code RO 3004 .text mf_p.l(f2d.o) + 0x00010814 0x00010814 0x00000028 Code RO 3006 .text mf_p.l(cdcmple.o) + 0x0001083c 0x0001083c 0x00000014 Code RO 3008 .text mf_p.l(cfrcmple.o) + 0x00010850 0x00010850 0x00000060 Code RO 3025 .text mc_p.l(uldiv.o) + 0x000108b0 0x000108b0 0x00000020 Code RO 3027 .text mc_p.l(llshl.o) + 0x000108d0 0x000108d0 0x00000022 Code RO 3029 .text mc_p.l(llushr.o) + 0x000108f2 0x000108f2 0x00000026 Code RO 3031 .text mc_p.l(llsshr.o) + 0x00010918 0x00010918 0x00000000 Code RO 3040 .text mc_p.l(iusefp.o) + 0x00010918 0x00010918 0x00000082 Code RO 3041 .text mf_p.l(fepilogue.o) + 0x0001099a 0x0001099a 0x000000be Code RO 3043 .text mf_p.l(depilogue.o) + 0x00010a58 0x00010a58 0x000000a2 Code RO 3047 .text mf_p.l(dsqrt.o) + 0x00010afa 0x00010afa 0x00000002 PAD + 0x00010afc 0x00010afc 0x00000040 Code RO 3049 .text mf_p.l(dfixul.o) + 0x00010b3c 0x00010b3c 0x00000028 Code RO 3051 .text mf_p.l(cdrcmple.o) + 0x00010b64 0x00010b64 0x00000024 Code RO 3053 .text mc_p.l(init.o) + 0x00010b88 0x00010b88 0x00000056 Code RO 3062 .text mc_p.l(__dczerorl2.o) + 0x00010bde 0x00010bde 0x00000002 PAD + 0x00010be0 0x00010be0 0x00000018 Code RO 2209 i.ADC_IRQn_Handler CVWL568T.lib(irq_redirect .o) + 0x00010bf8 0x00010bf8 0x00000018 Code RO 2210 i.AP_NRESET_IRQn_Handler CVWL568T.lib(irq_redirect .o) + 0x00010c10 0x00010c10 0x00000048 Code RO 535 i.CRC16_2 app_tp_st_touch.o + 0x00010c58 0x00010c58 0x00000014 Code RO 2211 i.DMA_IRQn_Handler CVWL568T.lib(irq_redirect .o) + 0x00010c6c 0x00010c6c 0x0000001c Code RO 2212 i.EXTI_INT0_IRQn_Handler CVWL568T.lib(irq_redirect .o) + 0x00010c88 0x00010c88 0x0000001c Code RO 2213 i.EXTI_INT1_IRQn_Handler CVWL568T.lib(irq_redirect .o) + 0x00010ca4 0x00010ca4 0x0000001c Code RO 2214 i.EXTI_INT2_IRQn_Handler CVWL568T.lib(irq_redirect .o) + 0x00010cc0 0x00010cc0 0x0000001c Code RO 2215 i.EXTI_INT3_IRQn_Handler CVWL568T.lib(irq_redirect .o) + 0x00010cdc 0x00010cdc 0x0000001c Code RO 2216 i.EXTI_INT4_IRQn_Handler CVWL568T.lib(irq_redirect .o) + 0x00010cf8 0x00010cf8 0x0000001c Code RO 2217 i.EXTI_INT5_IRQn_Handler CVWL568T.lib(irq_redirect .o) + 0x00010d14 0x00010d14 0x0000001c Code RO 2218 i.EXTI_INT6_IRQn_Handler CVWL568T.lib(irq_redirect .o) + 0x00010d30 0x00010d30 0x0000001c Code RO 2219 i.EXTI_INT7_IRQn_Handler CVWL568T.lib(irq_redirect .o) + 0x00010d4c 0x00010d4c 0x00000014 Code RO 2220 i.FLSCTRL_IRQn_Handler CVWL568T.lib(irq_redirect .o) + 0x00010d60 0x00010d60 0x00000014 Code RO 2221 i.HardFault_Handler CVWL568T.lib(irq_redirect .o) + 0x00010d74 0x00010d74 0x00000018 Code RO 2222 i.I2C0_IRQn_Handler CVWL568T.lib(irq_redirect .o) + 0x00010d8c 0x00010d8c 0x00000018 Code RO 2223 i.I2C1_IRQn_Handler CVWL568T.lib(irq_redirect .o) + 0x00010da4 0x00010da4 0x00000018 Code RO 2224 i.LCDC_IRQn_Handler CVWL568T.lib(irq_redirect .o) + 0x00010dbc 0x00010dbc 0x00000028 Code RO 1072 i.LOG_printf CVWL568T.lib(tau_log.o) + 0x00010de4 0x00010de4 0x00000018 Code RO 2225 i.MEMC_IRQn_Handler CVWL568T.lib(irq_redirect .o) + 0x00010dfc 0x00010dfc 0x00000018 Code RO 2226 i.MIPI_RX_IRQn_Handler CVWL568T.lib(irq_redirect .o) + 0x00010e14 0x00010e14 0x00000018 Code RO 2227 i.MIPI_TX_IRQn_Handler CVWL568T.lib(irq_redirect .o) + 0x00010e2c 0x00010e2c 0x0000001c Code RO 2228 i.PWMDET_IRQn_Handler CVWL568T.lib(irq_redirect .o) + 0x00010e48 0x00010e48 0x0000001c Code RO 2229 i.SPIM_IRQn_Handler CVWL568T.lib(irq_redirect .o) + 0x00010e64 0x00010e64 0x0000001c Code RO 2230 i.SPIS_IRQn_Handler CVWL568T.lib(irq_redirect .o) + 0x00010e80 0x00010e80 0x0000001c Code RO 2231 i.SWIRE_IRQn_Handler CVWL568T.lib(irq_redirect .o) + 0x00010e9c 0x00010e9c 0x00000018 Code RO 2232 i.SysTick_Handler CVWL568T.lib(irq_redirect .o) + 0x00010eb4 0x00010eb4 0x00000018 Code RO 2233 i.TIMER0_IRQn_Handler CVWL568T.lib(irq_redirect .o) + 0x00010ecc 0x00010ecc 0x00000018 Code RO 2234 i.TIMER1_IRQn_Handler CVWL568T.lib(irq_redirect .o) + 0x00010ee4 0x00010ee4 0x00000018 Code RO 2235 i.TIMER2_IRQn_Handler CVWL568T.lib(irq_redirect .o) + 0x00010efc 0x00010efc 0x00000018 Code RO 2236 i.TIMER3_IRQn_Handler CVWL568T.lib(irq_redirect .o) + 0x00010f14 0x00010f14 0x0000001c Code RO 2578 i.UART0_IRQ_Handle CVWL568T.lib(drv_uart.o) + 0x00010f30 0x00010f30 0x00000002 Code RO 2582 i.UART_DisableDma CVWL568T.lib(drv_uart.o) + 0x00010f32 0x00010f32 0x00000004 Code RO 2588 i.UART_GetInstance CVWL568T.lib(drv_uart.o) + 0x00010f36 0x00010f36 0x00000002 PAD + 0x00010f38 0x00010f38 0x00000018 Code RO 2237 i.UART_IRQn_Handler CVWL568T.lib(irq_redirect .o) + 0x00010f50 0x00010f50 0x00000024 Code RO 2596 i.UART_ResetRxFIFO CVWL568T.lib(drv_uart.o) + 0x00010f74 0x00010f74 0x00000048 Code RO 2599 i.UART_SetBaudRate CVWL568T.lib(drv_uart.o) + 0x00010fbc 0x00010fbc 0x0000001a Code RO 2600 i.UART_SwitchSCLK CVWL568T.lib(drv_uart.o) + 0x00010fd6 0x00010fd6 0x0000001a Code RO 2604 i.UART_WriteBlocking CVWL568T.lib(drv_uart.o) + 0x00010ff0 0x00010ff0 0x0000000e Code RO 3056 i.__scatterload_copy mc_p.l(handlers.o) + 0x00010ffe 0x00010ffe 0x00000002 Code RO 3057 i.__scatterload_null mc_p.l(handlers.o) + 0x00011000 0x00011000 0x00000014 Data RO 1205 .ARM.__at_0x11000 CVWL568T.lib(drv_common.o) + 0x00011014 0x00011014 0x00000004 Code RO 1793 i.drv_dsi_rx_set_inten CVWL568T.lib(drv_dsi_rx.o) + 0x00011018 0x00011018 0x00000004 Data RO 1206 .ARM.__at_0x11018 CVWL568T.lib(drv_common.o) + 0x0001101c 0x0001101c 0x000001fc Code RO 100 i.S21P_demo s21p_demo.o + 0x00011218 0x00011218 0x00000134 Code RO 2602 i.UART_TransferHandleIRQ CVWL568T.lib(drv_uart.o) + 0x0001134c 0x0001134c 0x000000bc Code RO 2605 i.UART_init CVWL568T.lib(drv_uart.o) + 0x00011408 0x00011408 0x00000018 Code RO 2238 i.VIDC_IRQn_Handler CVWL568T.lib(irq_redirect .o) + 0x00011420 0x00011420 0x00000018 Code RO 2239 i.VPRE_IRQn_Handler CVWL568T.lib(irq_redirect .o) + 0x00011438 0x00011438 0x00000018 Code RO 2240 i.WDG_IRQn_Handler CVWL568T.lib(irq_redirect .o) + 0x00011450 0x00011450 0x00000020 Code RO 2946 i.__0printf mc_p.l(printfa.o) + 0x00011470 0x00011470 0x00000024 Code RO 2952 i.__0vsprintf mc_p.l(printfa.o) + 0x00011494 0x00011494 0x0000002e Code RO 3045 i.__ARM_clz mf_p.l(depilogue.o) + 0x000114c2 0x000114c2 0x0000001a Code RO 765 i.__ARM_common_switch8 CVWL568T.lib(hal_dsi_rx_ctrl.o) + 0x000114dc 0x000114dc 0x00000018 Code RO 1526 i.__NVIC_ClearPendingIRQ CVWL568T.lib(drv_i2c_master.o) + 0x000114f4 0x000114f4 0x00000018 Code RO 1650 i.__NVIC_ClearPendingIRQ CVWL568T.lib(drv_spi_master.o) + 0x0001150c 0x0001150c 0x00000020 Code RO 2063 i.__NVIC_DisableIRQ CVWL568T.lib(drv_rxbr.o) + 0x0001152c 0x0001152c 0x00000018 Code RO 2064 i.__NVIC_EnableIRQ CVWL568T.lib(drv_rxbr.o) + 0x00011544 0x00011544 0x00000044 Code RO 2359 i.__NVIC_SetPriority CVWL568T.lib(hal_spi_slave.o) + 0x00011588 0x00011588 0x0000000e Code RO 3058 i.__scatterload_zeroinit mc_p.l(handlers.o) + 0x00011596 0x00011596 0x00000002 PAD + 0x00011598 0x00011598 0x0000000c Code RO 3035 i.__set_errno mc_p.l(errno.o) + 0x000115a4 0x000115a4 0x00000174 Code RO 2953 i._fp_digits mc_p.l(printfa.o) + 0x00011718 0x00011718 0x000006ec Code RO 2954 i._printf_core mc_p.l(printfa.o) + 0x00011e04 0x00011e04 0x00000020 Code RO 2955 i._printf_post_padding mc_p.l(printfa.o) + 0x00011e24 0x00011e24 0x0000002c Code RO 2956 i._printf_pre_padding mc_p.l(printfa.o) + 0x00011e50 0x00011e50 0x0000000a Code RO 2958 i._sputc mc_p.l(printfa.o) + 0x00011e5a 0x00011e5a 0x00000026 Code RO 101 i.ap_MIPI_RX_CMD_bb s21p_demo.o + 0x00011e80 0x00011e80 0x00002730 Code RO 102 i.ap_dcs_read s21p_demo.o + 0x000145b0 0x000145b0 0x00000080 Code RO 103 i.ap_get_reg_df s21p_demo.o + 0x00014630 0x00014630 0x00000038 Code RO 536 i.ap_get_tp_calibration_status_01 app_tp_st_touch.o + 0x00014668 0x00014668 0x00000094 Code RO 104 i.ap_reset_cb s21p_demo.o + 0x000146fc 0x000146fc 0x00000042 Code RO 105 i.ap_set_backlight_51 s21p_demo.o + 0x0001473e 0x0001473e 0x00000002 PAD + 0x00014740 0x00014740 0x0000009c Code RO 106 i.ap_set_display_off s21p_demo.o + 0x000147dc 0x000147dc 0x00000040 Code RO 107 i.ap_set_display_on s21p_demo.o + 0x0001481c 0x0001481c 0x00000048 Code RO 108 i.ap_set_enter_sleep_mode s21p_demo.o + 0x00014864 0x00014864 0x0000004c Code RO 109 i.ap_set_exit_sleep_mode s21p_demo.o + 0x000148b0 0x000148b0 0x000000cc Code RO 537 i.ap_set_tp_calibration_04 app_tp_st_touch.o + 0x0001497c 0x0001497c 0x000000d4 Code RO 542 i.ap_tp_st_touch_hardware_reset app_tp_st_touch.o + 0x00014a50 0x00014a50 0x00000024 Code RO 543 i.ap_tp_st_touch_scan_point_init app_tp_st_touch.o + 0x00014a74 0x00014a74 0x0000003c Code RO 546 i.ap_tp_st_touch_simulate_finger_release_event app_tp_st_touch.o + 0x00014ab0 0x00014ab0 0x00000054 Code RO 111 i.ap_update_frame_rate s21p_demo.o + 0x00014b04 0x00014b04 0x0000001c Code RO 2065 i.app_ADC_IRQn_Handler CVWL568T.lib(drv_rxbr.o) + 0x00014b20 0x00014b20 0x00000024 Code RO 1450 i.app_AP_NRESET_IRQn_Handler CVWL568T.lib(drv_gpio.o) + 0x00014b44 0x00014b44 0x0000001c Code RO 1451 i.app_EXTI_INT0_IRQn_Handler CVWL568T.lib(drv_gpio.o) + 0x00014b60 0x00014b60 0x0000001c Code RO 1452 i.app_EXTI_INT1_IRQn_Handler CVWL568T.lib(drv_gpio.o) + 0x00014b7c 0x00014b7c 0x0000001c Code RO 1453 i.app_EXTI_INT2_IRQn_Handler CVWL568T.lib(drv_gpio.o) + 0x00014b98 0x00014b98 0x0000001c Code RO 1454 i.app_EXTI_INT3_IRQn_Handler CVWL568T.lib(drv_gpio.o) + 0x00014bb4 0x00014bb4 0x0000001c Code RO 1455 i.app_EXTI_INT4_IRQn_Handler CVWL568T.lib(drv_gpio.o) + 0x00014bd0 0x00014bd0 0x0000001c Code RO 1456 i.app_EXTI_INT5_IRQn_Handler CVWL568T.lib(drv_gpio.o) + 0x00014bec 0x00014bec 0x0000001c Code RO 1457 i.app_EXTI_INT6_IRQn_Handler CVWL568T.lib(drv_gpio.o) + 0x00014c08 0x00014c08 0x0000001c Code RO 1458 i.app_EXTI_INT7_IRQn_Handler CVWL568T.lib(drv_gpio.o) + 0x00014c24 0x00014c24 0x00000048 Code RO 1197 i.app_HardFault_Handler CVWL568T.lib(drv_common.o) + 0x00014c6c 0x00014c6c 0x00000018 Code RO 1561 i.app_I2C0_IRQn_Handler CVWL568T.lib(drv_i2c_slave.o) + 0x00014c84 0x00014c84 0x00000010 Code RO 1527 i.app_I2C1_IRQn_Handler CVWL568T.lib(drv_i2c_master.o) + 0x00014c94 0x00014c94 0x000001a4 Code RO 1102 i.app_LCDC_IRQn_Handler CVWL568T.lib(hal_internal_vsync.o) + 0x00014e38 0x00014e38 0x00000088 Code RO 2007 i.app_MEMC_IRQn_Handler CVWL568T.lib(drv_memc.o) + 0x00014ec0 0x00014ec0 0x00000298 Code RO 1779 i.app_MIPI_RX_IRQn_Handler CVWL568T.lib(drv_dsi_rx.o) + 0x00015158 0x00015158 0x000000a0 Code RO 1835 i.app_MIPI_TX_IRQn_Handler CVWL568T.lib(drv_dsi_tx.o) + 0x000151f8 0x000151f8 0x00000048 Code RO 2513 i.app_PWMDET_IRQn_Handler CVWL568T.lib(drv_pwm.o) + 0x00015240 0x00015240 0x00000030 Code RO 1651 i.app_SPIM_IRQn_Handler CVWL568T.lib(drv_spi_master.o) + 0x00015270 0x00015270 0x00000200 Code RO 2360 i.app_SPIS_IRQn_Handler CVWL568T.lib(hal_spi_slave.o) + 0x00015470 0x00015470 0x00000020 Code RO 1683 i.app_SWIRE_IRQn_Handler CVWL568T.lib(drv_swire.o) + 0x00015490 0x00015490 0x00000018 Code RO 1198 i.app_SysTick_Handler CVWL568T.lib(drv_common.o) + 0x000154a8 0x000154a8 0x0000000a Code RO 1733 i.app_TIMER0_IRQn_Handler CVWL568T.lib(drv_timer.o) + 0x000154b2 0x000154b2 0x0000000a Code RO 1734 i.app_TIMER1_IRQn_Handler CVWL568T.lib(drv_timer.o) + 0x000154bc 0x000154bc 0x0000000a Code RO 1735 i.app_TIMER2_IRQn_Handler CVWL568T.lib(drv_timer.o) + 0x000154c6 0x000154c6 0x0000000a Code RO 1736 i.app_TIMER3_IRQn_Handler CVWL568T.lib(drv_timer.o) + 0x000154d0 0x000154d0 0x00000008 Code RO 2606 i.app_UART_IRQn_Handler CVWL568T.lib(drv_uart.o) + 0x000154d8 0x000154d8 0x0000001c Code RO 2130 i.app_VIDC_IRQn_Handler CVWL568T.lib(drv_vidc.o) + 0x000154f4 0x000154f4 0x0000001c Code RO 2066 i.app_VPRE_IRQn_Handler CVWL568T.lib(drv_rxbr.o) + 0x00015510 0x00015510 0x00000038 Code RO 2665 i.app_WDG_IRQn_Handler CVWL568T.lib(drv_wdg.o) + 0x00015548 0x00015548 0x00000010 Code RO 1312 i.app_dma_irq_handler CVWL568T.lib(drv_dma.o) + 0x00015558 0x00015558 0x00000030 Code RO 2402 i.app_fls_ctrl_Handler CVWL568T.lib(norflash.o) + 0x00015588 0x00015588 0x00000044 Code RO 317 i.app_tp_i2cs_callback app_tp_transfer.o + 0x000155cc 0x000155cc 0x00000044 Code RO 318 i.app_tp_init app_tp_transfer.o + 0x00015610 0x00015610 0x00000030 Code RO 319 i.app_tp_m_read app_tp_transfer.o + 0x00015640 0x00015640 0x00000008 Code RO 320 i.app_tp_m_transfer_complate app_tp_transfer.o + 0x00015648 0x00015648 0x00000010 Code RO 321 i.app_tp_m_write app_tp_transfer.o + 0x00015658 0x00015658 0x00000498 Code RO 476 i.app_tp_phone_analysis_data app_tp_for_custom_s21p.o + 0x00015af0 0x00015af0 0x00000010 Code RO 326 i.app_tp_s_read app_tp_transfer.o + 0x00015b00 0x00015b00 0x00000010 Code RO 328 i.app_tp_s_write app_tp_transfer.o + 0x00015b10 0x00015b10 0x00000014 Code RO 477 i.app_tp_screen_analysis_const app_tp_for_custom_s21p.o + 0x00015b24 0x00015b24 0x000002cc Code RO 478 i.app_tp_screen_analysis_int app_tp_for_custom_s21p.o + 0x00015df0 0x00015df0 0x000000b0 Code RO 479 i.app_tp_screen_analysis_wake_up app_tp_for_custom_s21p.o + 0x00015ea0 0x00015ea0 0x00000070 Code RO 480 i.app_tp_screen_analysis_wake_up_exec app_tp_for_custom_s21p.o + 0x00015f10 0x00015f10 0x0000003c Code RO 329 i.app_tp_screen_init app_tp_transfer.o + 0x00015f4c 0x00015f4c 0x0000000c Code RO 330 i.app_tp_screen_int_callback app_tp_transfer.o + 0x00015f58 0x00015f58 0x00000040 Code RO 331 i.app_tp_screen_int_init app_tp_transfer.o + 0x00015f98 0x00015f98 0x0000001c Code RO 332 i.app_tp_screen_int_lvl_low app_tp_transfer.o + 0x00015fb4 0x00015fb4 0x0000002c Code RO 333 i.app_tp_transfer_phone app_tp_transfer.o + 0x00015fe0 0x00015fe0 0x0000012c Code RO 334 i.app_tp_transfer_screen_const app_tp_transfer.o + 0x0001610c 0x0001610c 0x0000012c Code RO 335 i.app_tp_transfer_screen_int app_tp_transfer.o + 0x00016238 0x00016238 0x0000003c Code RO 336 i.app_tp_transfer_screen_restart app_tp_transfer.o + 0x00016274 0x00016274 0x00000020 Code RO 337 i.app_tp_transfer_screen_start app_tp_transfer.o + 0x00016294 0x00016294 0x00000024 Code RO 644 i.board_Init board.o + 0x000162b8 0x000162b8 0x000004f0 Code RO 1103 i.calc_framebuffer_setting CVWL568T.lib(hal_internal_vsync.o) + 0x000167a8 0x000167a8 0x000000c8 Code RO 2689 i.ceil m_ps.l(ceil.o) + 0x00016870 0x00016870 0x0000002c Code RO 1104 i.check_mipi_rx_tx_video_info CVWL568T.lib(hal_internal_vsync.o) + 0x0001689c 0x0001689c 0x00000090 Code RO 1105 i.check_pkt_buf_rev CVWL568T.lib(hal_internal_vsync.o) + 0x0001692c 0x0001692c 0x00000058 Code RO 1766 i.dcs_packet_fifo_alloc CVWL568T.lib(dcs_packet_fifo.o) + 0x00016984 0x00016984 0x00000018 Code RO 1767 i.dcs_packet_fifo_init CVWL568T.lib(dcs_packet_fifo.o) + 0x0001699c 0x0001699c 0x00000044 Code RO 1768 i.dcs_packet_free_fifo_header CVWL568T.lib(dcs_packet_fifo.o) + 0x000169e0 0x000169e0 0x00000024 Code RO 1769 i.dcs_packet_get_fifo_header CVWL568T.lib(dcs_packet_fifo.o) + 0x00016a04 0x00016a04 0x0000002c Code RO 1106 i.dcs_sw_filter CVWL568T.lib(hal_internal_vsync.o) + 0x00016a30 0x00016a30 0x00000018 Code RO 1064 i.delayMs CVWL568T.lib(tau_delay.o) + 0x00016a48 0x00016a48 0x00000022 Code RO 1065 i.delayUs CVWL568T.lib(tau_delay.o) + 0x00016a6a 0x00016a6a 0x00000002 PAD + 0x00016a6c 0x00016a6c 0x00000038 Code RO 1702 i.drv_ap_rst_trig_edge_detect CVWL568T.lib(drv_sys_cfg.o) + 0x00016aa4 0x00016aa4 0x0000000c Code RO 2330 i.drv_chip_info_get_info CVWL568T.lib(drv_chip_info.o) + 0x00016ab0 0x00016ab0 0x00000040 Code RO 2331 i.drv_chip_info_init CVWL568T.lib(drv_chip_info.o) + 0x00016af0 0x00016af0 0x000000b0 Code RO 2332 i.drv_chip_rx_info_check CVWL568T.lib(drv_chip_info.o) + 0x00016ba0 0x00016ba0 0x00000014 Code RO 2333 i.drv_chip_rx_init_done CVWL568T.lib(drv_chip_info.o) + 0x00016bb4 0x00016bb4 0x00000058 Code RO 1200 i.drv_common_enable_systick CVWL568T.lib(drv_common.o) + 0x00016c0c 0x00016c0c 0x00000008 Code RO 1203 i.drv_common_system_init CVWL568T.lib(drv_common.o) + 0x00016c14 0x00016c14 0x00000010 Code RO 1225 i.drv_crgu_config_reset_modules CVWL568T.lib(drv_crgu.o) + 0x00016c24 0x00016c24 0x00000014 Code RO 1238 i.drv_crgu_set_ahb_pre_div CVWL568T.lib(drv_crgu.o) + 0x00016c38 0x00016c38 0x00000014 Code RO 1239 i.drv_crgu_set_ahb_src CVWL568T.lib(drv_crgu.o) + 0x00016c4c 0x00016c4c 0x00000020 Code RO 1242 i.drv_crgu_set_clock CVWL568T.lib(drv_crgu.o) + 0x00016c6c 0x00016c6c 0x00000014 Code RO 1243 i.drv_crgu_set_dpi_mux_src CVWL568T.lib(drv_crgu.o) + 0x00016c80 0x00016c80 0x00000018 Code RO 1244 i.drv_crgu_set_dpi_pre_div CVWL568T.lib(drv_crgu.o) + 0x00016c98 0x00016c98 0x00000014 Code RO 1245 i.drv_crgu_set_dpi_pre_src CVWL568T.lib(drv_crgu.o) + 0x00016cac 0x00016cac 0x00000014 Code RO 1246 i.drv_crgu_set_dsc_core_div CVWL568T.lib(drv_crgu.o) + 0x00016cc0 0x00016cc0 0x00000014 Code RO 1247 i.drv_crgu_set_dsco_src CVWL568T.lib(drv_crgu.o) + 0x00016cd4 0x00016cd4 0x00000014 Code RO 1248 i.drv_crgu_set_dsco_src_div CVWL568T.lib(drv_crgu.o) + 0x00016ce8 0x00016ce8 0x00000014 Code RO 1249 i.drv_crgu_set_fb_div CVWL568T.lib(drv_crgu.o) + 0x00016cfc 0x00016cfc 0x00000014 Code RO 1250 i.drv_crgu_set_fb_src CVWL568T.lib(drv_crgu.o) + 0x00016d10 0x00016d10 0x00000014 Code RO 1253 i.drv_crgu_set_lcdc_div CVWL568T.lib(drv_crgu.o) + 0x00016d24 0x00016d24 0x00000014 Code RO 1254 i.drv_crgu_set_lcdc_src CVWL568T.lib(drv_crgu.o) + 0x00016d38 0x00016d38 0x00000014 Code RO 1255 i.drv_crgu_set_mipi_cfg_src CVWL568T.lib(drv_crgu.o) + 0x00016d4c 0x00016d4c 0x00000018 Code RO 1256 i.drv_crgu_set_mipi_ref_src CVWL568T.lib(drv_crgu.o) + 0x00016d64 0x00016d64 0x00000018 Code RO 1259 i.drv_crgu_set_reset CVWL568T.lib(drv_crgu.o) + 0x00016d7c 0x00016d7c 0x00000014 Code RO 1260 i.drv_crgu_set_rxbr_div CVWL568T.lib(drv_crgu.o) + 0x00016d90 0x00016d90 0x00000014 Code RO 1261 i.drv_crgu_set_rxbr_src CVWL568T.lib(drv_crgu.o) + 0x00016da4 0x00016da4 0x00000014 Code RO 1263 i.drv_crgu_set_vidc_src CVWL568T.lib(drv_crgu.o) + 0x00016db8 0x00016db8 0x00000018 Code RO 1316 i.drv_dma_clear_flag CVWL568T.lib(drv_dma.o) + 0x00016dd0 0x00016dd0 0x0000001c Code RO 1317 i.drv_dma_create_handle CVWL568T.lib(drv_dma.o) + 0x00016dec 0x00016dec 0x00000010 Code RO 1319 i.drv_dma_disenable_channel CVWL568T.lib(drv_dma.o) + 0x00016dfc 0x00016dfc 0x00000010 Code RO 1321 i.drv_dma_enable_channel CVWL568T.lib(drv_dma.o) + 0x00016e0c 0x00016e0c 0x00000024 Code RO 1322 i.drv_dma_enable_channel_interrupts CVWL568T.lib(drv_dma.o) + 0x00016e30 0x00016e30 0x0000000c Code RO 1324 i.drv_dma_get_channel_flag CVWL568T.lib(drv_dma.o) + 0x00016e3c 0x00016e3c 0x00000090 Code RO 1327 i.drv_dma_irq_handler CVWL568T.lib(drv_dma.o) + 0x00016ecc 0x00016ecc 0x00000012 Code RO 1329 i.drv_dma_prepar_transfer CVWL568T.lib(drv_dma.o) + 0x00016ede 0x00016ede 0x0000001a Code RO 1331 i.drv_dma_set_burst CVWL568T.lib(drv_dma.o) + 0x00016ef8 0x00016ef8 0x00000006 Code RO 1332 i.drv_dma_set_callback CVWL568T.lib(drv_dma.o) + 0x00016efe 0x00016efe 0x00000002 PAD + 0x00016f00 0x00016f00 0x00000044 Code RO 1334 i.drv_dma_set_transfer CVWL568T.lib(drv_dma.o) + 0x00016f44 0x00016f44 0x00000036 Code RO 2343 i.drv_dsc_dec_convert_pps_rc_parameter CVWL568T.lib(drv_dsc_dec.o) + 0x00016f7a 0x00016f7a 0x0000000c Code RO 2344 i.drv_dsc_dec_disable CVWL568T.lib(drv_dsc_dec.o) + 0x00016f86 0x00016f86 0x00000002 PAD + 0x00016f88 0x00016f88 0x00000074 Code RO 2345 i.drv_dsc_dec_enable CVWL568T.lib(drv_dsc_dec.o) + 0x00016ffc 0x00016ffc 0x0000000a Code RO 2346 i.drv_dsc_dec_get_nslc CVWL568T.lib(drv_dsc_dec.o) + 0x00017006 0x00017006 0x00000028 Code RO 2348 i.drv_dsc_dec_set_u8_pps CVWL568T.lib(drv_dsc_dec.o) + 0x0001702e 0x0001702e 0x00000002 PAD + 0x00017030 0x00017030 0x00000104 Code RO 1780 i.drv_dsi_rx_calc_ipi_tx_delay CVWL568T.lib(drv_dsi_rx.o) + 0x00017134 0x00017134 0x00000040 Code RO 1781 i.drv_dsi_rx_enable_irq CVWL568T.lib(drv_dsi_rx.o) + 0x00017174 0x00017174 0x00000050 Code RO 1782 i.drv_dsi_rx_get_color_bpp CVWL568T.lib(drv_dsi_rx.o) + 0x000171c4 0x000171c4 0x0000001c Code RO 1783 i.drv_dsi_rx_get_color_pcc CVWL568T.lib(drv_dsi_rx.o) + 0x000171e0 0x000171e0 0x00000008 Code RO 1784 i.drv_dsi_rx_get_compression_en CVWL568T.lib(drv_dsi_rx.o) + 0x000171e8 0x000171e8 0x00000006 Code RO 1785 i.drv_dsi_rx_get_max_ret_size CVWL568T.lib(drv_dsi_rx.o) + 0x000171ee 0x000171ee 0x0000000e Code RO 1789 i.drv_dsi_rx_power_up CVWL568T.lib(drv_dsi_rx.o) + 0x000171fc 0x000171fc 0x00000020 Code RO 1790 i.drv_dsi_rx_set_ctrl_cfg CVWL568T.lib(drv_dsi_rx.o) + 0x0001721c 0x0001721c 0x00000010 Code RO 1791 i.drv_dsi_rx_set_ddi_cfg CVWL568T.lib(drv_dsi_rx.o) + 0x0001722c 0x0001722c 0x00000010 Code RO 1794 i.drv_dsi_rx_set_ipi_cfg CVWL568T.lib(drv_dsi_rx.o) + 0x0001723c 0x0001723c 0x00000046 Code RO 1796 i.drv_dsi_rx_set_lane_swap CVWL568T.lib(drv_dsi_rx.o) + 0x00017282 0x00017282 0x00000026 Code RO 1797 i.drv_dsi_rx_set_resp_cnt CVWL568T.lib(drv_dsi_rx.o) + 0x000172a8 0x000172a8 0x00000104 Code RO 1798 i.drv_dsi_rx_set_up_phy CVWL568T.lib(drv_dsi_rx.o) + 0x000173ac 0x000173ac 0x0000000e Code RO 1799 i.drv_dsi_rx_shut_down CVWL568T.lib(drv_dsi_rx.o) + 0x000173ba 0x000173ba 0x00000014 Code RO 1837 i.drv_dsi_tx_command_header CVWL568T.lib(drv_dsi_tx.o) + 0x000173ce 0x000173ce 0x0000006c Code RO 1838 i.drv_dsi_tx_command_mode_cfg CVWL568T.lib(drv_dsi_tx.o) + 0x0001743a 0x0001743a 0x00000004 Code RO 1839 i.drv_dsi_tx_command_put_payload CVWL568T.lib(drv_dsi_tx.o) + 0x0001743e 0x0001743e 0x00000018 Code RO 1840 i.drv_dsi_tx_config_eotp CVWL568T.lib(drv_dsi_tx.o) + 0x00017456 0x00017456 0x00000008 Code RO 1841 i.drv_dsi_tx_config_int CVWL568T.lib(drv_dsi_tx.o) + 0x0001745e 0x0001745e 0x00000008 Code RO 1842 i.drv_dsi_tx_dpi_lpcmd_time CVWL568T.lib(drv_dsi_tx.o) + 0x00017466 0x00017466 0x0000000a Code RO 1843 i.drv_dsi_tx_dpi_mode CVWL568T.lib(drv_dsi_tx.o) + 0x00017470 0x00017470 0x00000024 Code RO 1844 i.drv_dsi_tx_dpi_polarity CVWL568T.lib(drv_dsi_tx.o) + 0x00017494 0x00017494 0x00000004 Code RO 1845 i.drv_dsi_tx_edpi_cmd_size CVWL568T.lib(drv_dsi_tx.o) + 0x00017498 0x00017498 0x00000004 Code RO 1847 i.drv_dsi_tx_get_cmd_status CVWL568T.lib(drv_dsi_tx.o) + 0x0001749c 0x0001749c 0x00000004 Code RO 1849 i.drv_dsi_tx_mode CVWL568T.lib(drv_dsi_tx.o) + 0x000174a0 0x000174a0 0x00000018 Code RO 1850 i.drv_dsi_tx_phy_clock_lane_auto_lp CVWL568T.lib(drv_dsi_tx.o) + 0x000174b8 0x000174b8 0x0000001a Code RO 1851 i.drv_dsi_tx_phy_clock_lane_req_hs CVWL568T.lib(drv_dsi_tx.o) + 0x000174d2 0x000174d2 0x0000000c Code RO 1853 i.drv_dsi_tx_phy_lane_mode CVWL568T.lib(drv_dsi_tx.o) + 0x000174de 0x000174de 0x00000064 Code RO 1857 i.drv_dsi_tx_phy_status_ready CVWL568T.lib(drv_dsi_tx.o) + 0x00017542 0x00017542 0x0000003e Code RO 1858 i.drv_dsi_tx_phy_status_stopstate CVWL568T.lib(drv_dsi_tx.o) + 0x00017580 0x00017580 0x00000134 Code RO 1860 i.drv_dsi_tx_phy_test_setup CVWL568T.lib(drv_dsi_tx.o) + 0x000176b4 0x000176b4 0x0000001e Code RO 1861 i.drv_dsi_tx_phy_time_cfg CVWL568T.lib(drv_dsi_tx.o) + 0x000176d2 0x000176d2 0x00000008 Code RO 1865 i.drv_dsi_tx_powerup CVWL568T.lib(drv_dsi_tx.o) + 0x000176da 0x000176da 0x0000001c Code RO 1866 i.drv_dsi_tx_response_mode CVWL568T.lib(drv_dsi_tx.o) + 0x000176f6 0x000176f6 0x00000018 Code RO 1869 i.drv_dsi_tx_set_bta_ack CVWL568T.lib(drv_dsi_tx.o) + 0x0001770e 0x0001770e 0x0000000c Code RO 1870 i.drv_dsi_tx_set_esc_div CVWL568T.lib(drv_dsi_tx.o) + 0x0001771a 0x0001771a 0x00000002 PAD + 0x0001771c 0x0001771c 0x00000040 Code RO 1871 i.drv_dsi_tx_set_int CVWL568T.lib(drv_dsi_tx.o) + 0x0001775c 0x0001775c 0x00000010 Code RO 1872 i.drv_dsi_tx_set_time_out_div CVWL568T.lib(drv_dsi_tx.o) + 0x0001776c 0x0001776c 0x00000008 Code RO 1873 i.drv_dsi_tx_set_video_chunk CVWL568T.lib(drv_dsi_tx.o) + 0x00017774 0x00017774 0x00000022 Code RO 1874 i.drv_dsi_tx_set_video_timing CVWL568T.lib(drv_dsi_tx.o) + 0x00017796 0x00017796 0x00000008 Code RO 1876 i.drv_dsi_tx_shutdown CVWL568T.lib(drv_dsi_tx.o) + 0x0001779e 0x0001779e 0x00000026 Code RO 1877 i.drv_dsi_tx_timeout_cfg CVWL568T.lib(drv_dsi_tx.o) + 0x000177c4 0x000177c4 0x000000aa Code RO 1880 i.drv_dsi_tx_video_mode_cfg CVWL568T.lib(drv_dsi_tx.o) + 0x0001786e 0x0001786e 0x00000016 Code RO 1881 i.drv_dsi_tx_video_mode_disable_hact_cmd CVWL568T.lib(drv_dsi_tx.o) + 0x00017884 0x00017884 0x00000018 Code RO 1882 i.drv_dsi_tx_video_mode_set_lp_cmd CVWL568T.lib(drv_dsi_tx.o) + 0x0001789c 0x0001789c 0x0000002e Code RO 2281 i.drv_efuse_enter_inactive CVWL568T.lib(drv_efuse.o) + 0x000178ca 0x000178ca 0x0000000c Code RO 2284 i.drv_efuse_int_enable CVWL568T.lib(drv_efuse.o) + 0x000178d6 0x000178d6 0x00000032 Code RO 2285 i.drv_efuse_read CVWL568T.lib(drv_efuse.o) + 0x00017908 0x00017908 0x00000018 Code RO 2286 i.drv_efuse_read_req CVWL568T.lib(drv_efuse.o) + 0x00017920 0x00017920 0x00000018 Code RO 1459 i.drv_gpio_get_input_data CVWL568T.lib(drv_gpio.o) + 0x00017938 0x00017938 0x0000000c Code RO 1461 i.drv_gpio_register_ap_reset_callback CVWL568T.lib(drv_gpio.o) + 0x00017944 0x00017944 0x00000014 Code RO 1462 i.drv_gpio_register_callback CVWL568T.lib(drv_gpio.o) + 0x00017958 0x00017958 0x00000050 Code RO 1464 i.drv_gpio_set_int CVWL568T.lib(drv_gpio.o) + 0x000179a8 0x000179a8 0x00000020 Code RO 1465 i.drv_gpio_set_ioe CVWL568T.lib(drv_gpio.o) + 0x000179c8 0x000179c8 0x00000010 Code RO 1466 i.drv_gpio_set_mode0 CVWL568T.lib(drv_gpio.o) + 0x000179d8 0x000179d8 0x00000010 Code RO 1467 i.drv_gpio_set_mode1 CVWL568T.lib(drv_gpio.o) + 0x000179e8 0x000179e8 0x00000010 Code RO 1468 i.drv_gpio_set_mode2 CVWL568T.lib(drv_gpio.o) + 0x000179f8 0x000179f8 0x00000010 Code RO 1469 i.drv_gpio_set_mode3 CVWL568T.lib(drv_gpio.o) + 0x00017a08 0x00017a08 0x00000020 Code RO 873 i.drv_gpio_set_output_data CVWL568T.lib(hal_gpio.o) + 0x00017a28 0x00017a28 0x00000130 Code RO 1470 i.drv_gpio_set_pull_state CVWL568T.lib(drv_gpio.o) + 0x00017b58 0x00017b58 0x0000000c Code RO 1562 i.drv_i2c0_set_callback CVWL568T.lib(drv_i2c_slave.o) + 0x00017b64 0x00017b64 0x0000000c Code RO 1528 i.drv_i2c1_set_callback CVWL568T.lib(drv_i2c_master.o) + 0x00017b70 0x00017b70 0x00000034 Code RO 1502 i.drv_i2c_dma_callback CVWL568T.lib(drv_i2c_dma.o) + 0x00017ba4 0x00017ba4 0x000000ac Code RO 1503 i.drv_i2c_dma_init CVWL568T.lib(drv_i2c_dma.o) + 0x00017c50 0x00017c50 0x0000001a Code RO 1504 i.drv_i2c_enable_rx_dma CVWL568T.lib(drv_i2c_dma.o) + 0x00017c6a 0x00017c6a 0x00000018 Code RO 1505 i.drv_i2c_enable_tx_dma CVWL568T.lib(drv_i2c_dma.o) + 0x00017c82 0x00017c82 0x00000002 PAD + 0x00017c84 0x00017c84 0x00000060 Code RO 1530 i.drv_i2c_m_clear_it_pending_bit CVWL568T.lib(drv_i2c_master.o) + 0x00017ce4 0x00017ce4 0x00000010 Code RO 1533 i.drv_i2c_m_enable CVWL568T.lib(drv_i2c_master.o) + 0x00017cf4 0x00017cf4 0x00000038 Code RO 1534 i.drv_i2c_m_enable_intr CVWL568T.lib(drv_i2c_master.o) + 0x00017d2c 0x00017d2c 0x0000008c Code RO 1540 i.drv_i2c_master_init CVWL568T.lib(drv_i2c_master.o) + 0x00017db8 0x00017db8 0x0000005c Code RO 1506 i.drv_i2c_master_read_dma CVWL568T.lib(drv_i2c_dma.o) + 0x00017e14 0x00017e14 0x0000003c Code RO 1507 i.drv_i2c_master_write_dma CVWL568T.lib(drv_i2c_dma.o) + 0x00017e50 0x00017e50 0x0000003e Code RO 1508 i.drv_i2c_master_write_read_cmd CVWL568T.lib(drv_i2c_dma.o) + 0x00017e8e 0x00017e8e 0x00000042 Code RO 1563 i.drv_i2c_s_clear_it_pending_bit CVWL568T.lib(drv_i2c_slave.o) + 0x00017ed0 0x00017ed0 0x00000004 Code RO 1564 i.drv_i2c_s_config_intr CVWL568T.lib(drv_i2c_slave.o) + 0x00017ed4 0x00017ed4 0x00000008 Code RO 1565 i.drv_i2c_s_enable CVWL568T.lib(drv_i2c_slave.o) + 0x00017edc 0x00017edc 0x00000014 Code RO 1566 i.drv_i2c_s_get_fifo_status CVWL568T.lib(drv_i2c_slave.o) + 0x00017ef0 0x00017ef0 0x00000050 Code RO 1569 i.drv_i2c_s_set_intr CVWL568T.lib(drv_i2c_slave.o) + 0x00017f40 0x00017f40 0x0000001c Code RO 1570 i.drv_i2c_s_write_data CVWL568T.lib(drv_i2c_slave.o) + 0x00017f5c 0x00017f5c 0x00000058 Code RO 1509 i.drv_i2c_set_dma_irq_callback CVWL568T.lib(drv_i2c_dma.o) + 0x00017fb4 0x00017fb4 0x00000032 Code RO 1571 i.drv_i2c_slave_init CVWL568T.lib(drv_i2c_slave.o) + 0x00017fe6 0x00017fe6 0x00000002 PAD + 0x00017fe8 0x00017fe8 0x00000018 Code RO 1510 i.drv_i2c_slave_write_dma CVWL568T.lib(drv_i2c_dma.o) + 0x00018000 0x00018000 0x00000018 Code RO 1949 i.drv_lcdc_config_bypass CVWL568T.lib(drv_lcdc.o) + 0x00018018 0x00018018 0x00000030 Code RO 1950 i.drv_lcdc_config_ccm CVWL568T.lib(drv_lcdc.o) + 0x00018048 0x00018048 0x00000016 Code RO 1951 i.drv_lcdc_config_disp_mode CVWL568T.lib(drv_lcdc.o) + 0x0001805e 0x0001805e 0x00000024 Code RO 1952 i.drv_lcdc_config_dpi_polarity CVWL568T.lib(drv_lcdc.o) + 0x00018082 0x00018082 0x00000026 Code RO 1953 i.drv_lcdc_config_dpi_timing CVWL568T.lib(drv_lcdc.o) + 0x000180a8 0x000180a8 0x00000016 Code RO 1954 i.drv_lcdc_config_edpi_mode CVWL568T.lib(drv_lcdc.o) + 0x000180be 0x000180be 0x00000016 Code RO 1955 i.drv_lcdc_config_endianness CVWL568T.lib(drv_lcdc.o) + 0x000180d4 0x000180d4 0x0000000c Code RO 1956 i.drv_lcdc_config_input_size CVWL568T.lib(drv_lcdc.o) + 0x000180e0 0x000180e0 0x0000001e Code RO 1957 i.drv_lcdc_config_int CVWL568T.lib(drv_lcdc.o) + 0x000180fe 0x000180fe 0x00000022 Code RO 1958 i.drv_lcdc_config_int_single CVWL568T.lib(drv_lcdc.o) + 0x00018120 0x00018120 0x00000022 Code RO 1959 i.drv_lcdc_config_overwrite CVWL568T.lib(drv_lcdc.o) + 0x00018142 0x00018142 0x0000000c Code RO 1960 i.drv_lcdc_config_overwrite_rgb CVWL568T.lib(drv_lcdc.o) + 0x0001814e 0x0001814e 0x0000001a Code RO 1961 i.drv_lcdc_config_partial_display_area CVWL568T.lib(drv_lcdc.o) + 0x00018168 0x00018168 0x00000022 Code RO 1962 i.drv_lcdc_config_partial_display_enable CVWL568T.lib(drv_lcdc.o) + 0x0001818a 0x0001818a 0x0000001a Code RO 1964 i.drv_lcdc_config_scale_up_coef CVWL568T.lib(drv_lcdc.o) + 0x000181a4 0x000181a4 0x0000000c Code RO 1965 i.drv_lcdc_config_scale_up_step CVWL568T.lib(drv_lcdc.o) + 0x000181b0 0x000181b0 0x0000004c Code RO 1966 i.drv_lcdc_config_src_parameter CVWL568T.lib(drv_lcdc.o) + 0x000181fc 0x000181fc 0x00000006 Code RO 1967 i.drv_lcdc_config_thresh CVWL568T.lib(drv_lcdc.o) + 0x00018202 0x00018202 0x00000012 Code RO 1968 i.drv_lcdc_ctrl_flow CVWL568T.lib(drv_lcdc.o) + 0x00018214 0x00018214 0x00000020 Code RO 1970 i.drv_lcdc_enable_shadow_reg CVWL568T.lib(drv_lcdc.o) + 0x00018234 0x00018234 0x00000040 Code RO 1971 i.drv_lcdc_set_int CVWL568T.lib(drv_lcdc.o) + 0x00018274 0x00018274 0x00000018 Code RO 1972 i.drv_lcdc_set_prefetch CVWL568T.lib(drv_lcdc.o) + 0x0001828c 0x0001828c 0x00000014 Code RO 1973 i.drv_lcdc_set_video_hw_mode CVWL568T.lib(drv_lcdc.o) + 0x000182a0 0x000182a0 0x00000020 Code RO 1974 i.drv_lcdc_start CVWL568T.lib(drv_lcdc.o) + 0x000182c0 0x000182c0 0x0000000c Code RO 2008 i.drv_memc_clear_status CVWL568T.lib(drv_memc.o) + 0x000182cc 0x000182cc 0x00000040 Code RO 2009 i.drv_memc_enable_irq CVWL568T.lib(drv_memc.o) + 0x0001830c 0x0001830c 0x0000000c Code RO 2010 i.drv_memc_gen_a_tear_signal CVWL568T.lib(drv_memc.o) + 0x00018318 0x00018318 0x00000012 Code RO 2011 i.drv_memc_get_status CVWL568T.lib(drv_memc.o) + 0x0001832a 0x0001832a 0x00000010 Code RO 2012 i.drv_memc_rate_transfer_sel CVWL568T.lib(drv_memc.o) + 0x0001833a 0x0001833a 0x0000000e Code RO 2013 i.drv_memc_sel_vsync CVWL568T.lib(drv_memc.o) + 0x00018348 0x00018348 0x00000014 Code RO 2014 i.drv_memc_set_active_height CVWL568T.lib(drv_memc.o) + 0x0001835c 0x0001835c 0x0000000c Code RO 2015 i.drv_memc_set_data_mode CVWL568T.lib(drv_memc.o) + 0x00018368 0x00018368 0x00000010 Code RO 2018 i.drv_memc_set_double_buffer CVWL568T.lib(drv_memc.o) + 0x00018378 0x00018378 0x00000012 Code RO 2019 i.drv_memc_set_double_buffer_reverse CVWL568T.lib(drv_memc.o) + 0x0001838a 0x0001838a 0x00000010 Code RO 2021 i.drv_memc_set_fs_en_conditions CVWL568T.lib(drv_memc.o) + 0x0001839a 0x0001839a 0x00000014 Code RO 2022 i.drv_memc_set_inten CVWL568T.lib(drv_memc.o) + 0x000183ae 0x000183ae 0x00000002 PAD + 0x000183b0 0x000183b0 0x00000018 Code RO 2023 i.drv_memc_set_lcdc_st_conditions CVWL568T.lib(drv_memc.o) + 0x000183c8 0x000183c8 0x0000001a Code RO 2024 i.drv_memc_set_ltpo_mode CVWL568T.lib(drv_memc.o) + 0x000183e2 0x000183e2 0x0000000e Code RO 2028 i.drv_memc_set_tear_mode CVWL568T.lib(drv_memc.o) + 0x000183f0 0x000183f0 0x00000028 Code RO 2029 i.drv_memc_set_tear_waveform CVWL568T.lib(drv_memc.o) + 0x00018418 0x00018418 0x0000000e Code RO 2031 i.drv_memc_set_vidc_sync_cnt CVWL568T.lib(drv_memc.o) + 0x00018426 0x00018426 0x00000002 PAD + 0x00018428 0x00018428 0x00000008 Code RO 1588 i.drv_param_init_get_ccm CVWL568T.lib(drv_param_init.o) + 0x00018430 0x00018430 0x00000014 Code RO 1589 i.drv_param_init_get_scld_filter_h CVWL568T.lib(drv_param_init.o) + 0x00018444 0x00018444 0x00000014 Code RO 1590 i.drv_param_init_get_scld_filter_v CVWL568T.lib(drv_param_init.o) + 0x00018458 0x00018458 0x00000008 Code RO 1591 i.drv_param_init_get_sclu_filter CVWL568T.lib(drv_param_init.o) + 0x00018460 0x00018460 0x00000014 Code RO 1592 i.drv_param_init_set_ccm CVWL568T.lib(drv_param_init.o) + 0x00018474 0x00018474 0x00000024 Code RO 1595 i.drv_param_p2r_filter_init CVWL568T.lib(drv_param_init.o) + 0x00018498 0x00018498 0x00000010 Code RO 2302 i.drv_phy_enable_calibration CVWL568T.lib(drv_phy_common.o) + 0x000184a8 0x000184a8 0x0000003c Code RO 2303 i.drv_phy_get_calibration CVWL568T.lib(drv_phy_common.o) + 0x000184e4 0x000184e4 0x00000060 Code RO 2304 i.drv_phy_get_pll_para CVWL568T.lib(drv_phy_common.o) + 0x00018544 0x00018544 0x00000054 Code RO 2305 i.drv_phy_get_rate_para CVWL568T.lib(drv_phy_common.o) + 0x00018598 0x00018598 0x00000010 Code RO 2306 i.drv_phy_test_clear CVWL568T.lib(drv_phy_common.o) + 0x000185a8 0x000185a8 0x00000018 Code RO 2307 i.drv_phy_test_lock CVWL568T.lib(drv_phy_common.o) + 0x000185c0 0x000185c0 0x00000020 Code RO 2309 i.drv_phy_test_write_1_byte CVWL568T.lib(drv_phy_common.o) + 0x000185e0 0x000185e0 0x00000026 Code RO 2310 i.drv_phy_test_write_2_byte CVWL568T.lib(drv_phy_common.o) + 0x00018606 0x00018606 0x0000001e Code RO 2311 i.drv_phy_test_write_code CVWL568T.lib(drv_phy_common.o) + 0x00018624 0x00018624 0x00000020 Code RO 2312 i.drv_phy_test_write_data CVWL568T.lib(drv_phy_common.o) + 0x00018644 0x00018644 0x00000020 Code RO 1611 i.drv_pwr_set_cp_mode CVWL568T.lib(drv_pwr.o) + 0x00018664 0x00018664 0x00000018 Code RO 1613 i.drv_pwr_set_pvd_mode CVWL568T.lib(drv_pwr.o) + 0x0001867c 0x0001867c 0x00000038 Code RO 1614 i.drv_pwr_set_system_clk_src CVWL568T.lib(drv_pwr.o) + 0x000186b4 0x000186b4 0x0000000c Code RO 1800 i.drv_rx_phy_test_clear CVWL568T.lib(drv_dsi_rx.o) + 0x000186c0 0x000186c0 0x00000010 Code RO 1801 i.drv_rx_phy_test_lock CVWL568T.lib(drv_dsi_rx.o) + 0x000186d0 0x000186d0 0x00000014 Code RO 1803 i.drv_rx_phy_test_write_1_byte CVWL568T.lib(drv_dsi_rx.o) + 0x000186e4 0x000186e4 0x00000016 Code RO 1804 i.drv_rx_phy_test_write_2_byte CVWL568T.lib(drv_dsi_rx.o) + 0x000186fa 0x000186fa 0x0000000a Code RO 2067 i.drv_rxbr_clear_pkt_buffer CVWL568T.lib(drv_rxbr.o) + 0x00018704 0x00018704 0x00000004 Code RO 2068 i.drv_rxbr_clear_status0 CVWL568T.lib(drv_rxbr.o) + 0x00018708 0x00018708 0x0000005a Code RO 2070 i.drv_rxbr_enable_irq CVWL568T.lib(drv_rxbr.o) + 0x00018762 0x00018762 0x00000002 PAD + 0x00018764 0x00018764 0x00000014 Code RO 2071 i.drv_rxbr_frame_drop_cfg CVWL568T.lib(drv_rxbr.o) + 0x00018778 0x00018778 0x00000064 Code RO 2072 i.drv_rxbr_get_clk CVWL568T.lib(drv_rxbr.o) + 0x000187dc 0x000187dc 0x00000004 Code RO 2073 i.drv_rxbr_get_col_addr CVWL568T.lib(drv_rxbr.o) + 0x000187e0 0x000187e0 0x00000012 Code RO 1107 i.drv_rxbr_get_int_source CVWL568T.lib(hal_internal_vsync.o) + 0x000187f2 0x000187f2 0x00000004 Code RO 2076 i.drv_rxbr_get_page_addr CVWL568T.lib(drv_rxbr.o) + 0x000187f6 0x000187f6 0x00000012 Code RO 1108 i.drv_rxbr_get_status0 CVWL568T.lib(hal_internal_vsync.o) + 0x00018808 0x00018808 0x0000000c Code RO 2078 i.drv_rxbr_hline_rcv0_cfg CVWL568T.lib(drv_rxbr.o) + 0x00018814 0x00018814 0x00000008 Code RO 2079 i.drv_rxbr_hline_rcv_cfg CVWL568T.lib(drv_rxbr.o) + 0x0001881c 0x0001881c 0x0000000c Code RO 2080 i.drv_rxbr_register_irq0_callback CVWL568T.lib(drv_rxbr.o) + 0x00018828 0x00018828 0x0000000c Code RO 2081 i.drv_rxbr_register_irq1_callback CVWL568T.lib(drv_rxbr.o) + 0x00018834 0x00018834 0x00000014 Code RO 2082 i.drv_rxbr_set_ack_pkt_header CVWL568T.lib(drv_rxbr.o) + 0x00018848 0x00018848 0x000000cc Code RO 2083 i.drv_rxbr_set_cmd_filter CVWL568T.lib(drv_rxbr.o) + 0x00018914 0x00018914 0x00000014 Code RO 2085 i.drv_rxbr_set_color_format CVWL568T.lib(drv_rxbr.o) + 0x00018928 0x00018928 0x00000014 Code RO 2087 i.drv_rxbr_set_inten CVWL568T.lib(drv_rxbr.o) + 0x0001893c 0x0001893c 0x00000010 Code RO 2088 i.drv_rxbr_set_ltpo_drop_th CVWL568T.lib(drv_rxbr.o) + 0x0001894c 0x0001894c 0x00000026 Code RO 2090 i.drv_rxbr_set_usr_cfg CVWL568T.lib(drv_rxbr.o) + 0x00018972 0x00018972 0x00000008 Code RO 2091 i.drv_rxbr_set_usr_col CVWL568T.lib(drv_rxbr.o) + 0x0001897a 0x0001897a 0x00000008 Code RO 2092 i.drv_rxbr_set_usr_row CVWL568T.lib(drv_rxbr.o) + 0x00018982 0x00018982 0x00000002 PAD + 0x00018984 0x00018984 0x00000020 Code RO 1659 i.drv_spi_m_read_data CVWL568T.lib(drv_spi_master.o) + 0x000189a4 0x000189a4 0x0000001c Code RO 1684 i.drv_swire_enable CVWL568T.lib(drv_swire.o) + 0x000189c0 0x000189c0 0x00000054 Code RO 1687 i.drv_swire_set_int CVWL568T.lib(drv_swire.o) + 0x00018a14 0x00018a14 0x0000001c Code RO 1688 i.drv_swire_set_power_down CVWL568T.lib(drv_swire.o) + 0x00018a30 0x00018a30 0x0000000c Code RO 1703 i.drv_sys_cfg_clear_all_int CVWL568T.lib(drv_sys_cfg.o) + 0x00018a3c 0x00018a3c 0x00000028 Code RO 1704 i.drv_sys_cfg_clear_pending CVWL568T.lib(drv_sys_cfg.o) + 0x00018a64 0x00018a64 0x00000018 Code RO 1707 i.drv_sys_cfg_sel_ap_rst_lvl_trig CVWL568T.lib(drv_sys_cfg.o) + 0x00018a7c 0x00018a7c 0x0000001c Code RO 1708 i.drv_sys_cfg_sel_ap_rst_trig CVWL568T.lib(drv_sys_cfg.o) + 0x00018a98 0x00018a98 0x00000024 Code RO 1709 i.drv_sys_cfg_sel_gpio_group CVWL568T.lib(drv_sys_cfg.o) + 0x00018abc 0x00018abc 0x00000024 Code RO 1710 i.drv_sys_cfg_sel_int_trig CVWL568T.lib(drv_sys_cfg.o) + 0x00018ae0 0x00018ae0 0x00000010 Code RO 1712 i.drv_sys_cfg_set_dma_rx_req CVWL568T.lib(drv_sys_cfg.o) + 0x00018af0 0x00018af0 0x00000010 Code RO 1713 i.drv_sys_cfg_set_dma_tx_req CVWL568T.lib(drv_sys_cfg.o) + 0x00018b00 0x00018b00 0x00000024 Code RO 1714 i.drv_sys_cfg_set_int CVWL568T.lib(drv_sys_cfg.o) + 0x00018b24 0x00018b24 0x0000001a Code RO 1737 i.drv_timer_clear_status_flags CVWL568T.lib(drv_timer.o) + 0x00018b3e 0x00018b3e 0x00000020 Code RO 1738 i.drv_timer_enable CVWL568T.lib(drv_timer.o) + 0x00018b5e 0x00018b5e 0x00000002 PAD + 0x00018b60 0x00018b60 0x00000010 Code RO 1739 i.drv_timer_get_instance CVWL568T.lib(drv_timer.o) + 0x00018b70 0x00018b70 0x00000010 Code RO 1740 i.drv_timer_get_prescaler CVWL568T.lib(drv_timer.o) + 0x00018b80 0x00018b80 0x00000044 Code RO 1742 i.drv_timer_handle_interrupt CVWL568T.lib(drv_timer.o) + 0x00018bc4 0x00018bc4 0x00000014 Code RO 1743 i.drv_timer_register_callback CVWL568T.lib(drv_timer.o) + 0x00018bd8 0x00018bd8 0x00000010 Code RO 1744 i.drv_timer_set_compare_val CVWL568T.lib(drv_timer.o) + 0x00018be8 0x00018be8 0x00000054 Code RO 1745 i.drv_timer_set_int CVWL568T.lib(drv_timer.o) + 0x00018c3c 0x00018c3c 0x00000028 Code RO 1746 i.drv_timer_set_prescaler CVWL568T.lib(drv_timer.o) + 0x00018c64 0x00018c64 0x00000010 Code RO 1747 i.drv_timer_set_repeat CVWL568T.lib(drv_timer.o) + 0x00018c74 0x00018c74 0x0000000a Code RO 1883 i.drv_tx_phy_test_clear CVWL568T.lib(drv_dsi_tx.o) + 0x00018c7e 0x00018c7e 0x0000001c Code RO 1884 i.drv_tx_phy_test_enter CVWL568T.lib(drv_dsi_tx.o) + 0x00018c9a 0x00018c9a 0x0000001c Code RO 1885 i.drv_tx_phy_test_exit CVWL568T.lib(drv_dsi_tx.o) + 0x00018cb6 0x00018cb6 0x00000012 Code RO 1887 i.drv_tx_phy_test_write_1_byte CVWL568T.lib(drv_dsi_tx.o) + 0x00018cc8 0x00018cc8 0x00000014 Code RO 1888 i.drv_tx_phy_test_write_2_byte CVWL568T.lib(drv_dsi_tx.o) + 0x00018cdc 0x00018cdc 0x00000010 Code RO 1889 i.drv_tx_phy_test_write_code CVWL568T.lib(drv_dsi_tx.o) + 0x00018cec 0x00018cec 0x00000008 Code RO 2131 i.drv_vidc_clear_irq CVWL568T.lib(drv_vidc.o) + 0x00018cf4 0x00018cf4 0x00000018 Code RO 2135 i.drv_vidc_enable CVWL568T.lib(drv_vidc.o) + 0x00018d0c 0x00018d0c 0x00000040 Code RO 2136 i.drv_vidc_enable_irq CVWL568T.lib(drv_vidc.o) + 0x00018d4c 0x00018d4c 0x00000012 Code RO 2138 i.drv_vidc_get_irq_status CVWL568T.lib(drv_vidc.o) + 0x00018d5e 0x00018d5e 0x00000002 PAD + 0x00018d60 0x00018d60 0x00000028 Code RO 2142 i.drv_vidc_init_module_enable CVWL568T.lib(drv_vidc.o) + 0x00018d88 0x00018d88 0x0000000c Code RO 2143 i.drv_vidc_register_callback CVWL568T.lib(drv_vidc.o) + 0x00018d94 0x00018d94 0x00000006 Code RO 2144 i.drv_vidc_reset CVWL568T.lib(drv_vidc.o) + 0x00018d9a 0x00018d9a 0x0000003c Code RO 2146 i.drv_vidc_set_dst_parameter CVWL568T.lib(drv_vidc.o) + 0x00018dd6 0x00018dd6 0x00000014 Code RO 2150 i.drv_vidc_set_irqen CVWL568T.lib(drv_vidc.o) + 0x00018dea 0x00018dea 0x00000010 Code RO 2151 i.drv_vidc_set_mirror CVWL568T.lib(drv_vidc.o) + 0x00018dfa 0x00018dfa 0x00000008 Code RO 2154 i.drv_vidc_set_p2r_hcoef0 CVWL568T.lib(drv_vidc.o) + 0x00018e02 0x00018e02 0x00000026 Code RO 2155 i.drv_vidc_set_p2r_hinitb CVWL568T.lib(drv_vidc.o) + 0x00018e28 0x00018e28 0x00000026 Code RO 2156 i.drv_vidc_set_p2r_hinitr CVWL568T.lib(drv_vidc.o) + 0x00018e4e 0x00018e4e 0x00000002 PAD + 0x00018e50 0x00018e50 0x00000018 Code RO 2157 i.drv_vidc_set_pentile_swap CVWL568T.lib(drv_vidc.o) + 0x00018e68 0x00018e68 0x0000000a Code RO 2158 i.drv_vidc_set_pu_ctrl CVWL568T.lib(drv_vidc.o) + 0x00018e72 0x00018e72 0x00000010 Code RO 2159 i.drv_vidc_set_rotation CVWL568T.lib(drv_vidc.o) + 0x00018e82 0x00018e82 0x0000000a Code RO 2160 i.drv_vidc_set_scld_hcoef0 CVWL568T.lib(drv_vidc.o) + 0x00018e8c 0x00018e8c 0x0000000a Code RO 2161 i.drv_vidc_set_scld_hcoef1 CVWL568T.lib(drv_vidc.o) + 0x00018e96 0x00018e96 0x00000012 Code RO 2162 i.drv_vidc_set_scld_step CVWL568T.lib(drv_vidc.o) + 0x00018ea8 0x00018ea8 0x0000000a Code RO 2163 i.drv_vidc_set_scld_vcoef0 CVWL568T.lib(drv_vidc.o) + 0x00018eb2 0x00018eb2 0x0000000a Code RO 2164 i.drv_vidc_set_scld_vcoef1 CVWL568T.lib(drv_vidc.o) + 0x00018ebc 0x00018ebc 0x00000016 Code RO 2165 i.drv_vidc_set_src_parameter CVWL568T.lib(drv_vidc.o) + 0x00018ed2 0x00018ed2 0x00000002 PAD + 0x00018ed4 0x00018ed4 0x00000010 Code RO 2666 i.drv_wdg_clear_counter CVWL568T.lib(drv_wdg.o) + 0x00018ee4 0x00018ee4 0x00000010 Code RO 2667 i.drv_wdg_clear_edge_flag CVWL568T.lib(drv_wdg.o) + 0x00018ef4 0x00018ef4 0x00000010 Code RO 2670 i.drv_wdg_read_edge_flag CVWL568T.lib(drv_wdg.o) + 0x00018f04 0x00018f04 0x00000040 Code RO 2673 i.drv_wdg_set_int CVWL568T.lib(drv_wdg.o) + 0x00018f44 0x00018f44 0x0000000a Code RO 1371 i.fls_clr_interrupt_flag CVWL568T.lib(drv_fls.o) + 0x00018f4e 0x00018f4e 0x00000014 Code RO 1074 i.fputc CVWL568T.lib(tau_log.o) + 0x00018f62 0x00018f62 0x00000002 PAD + 0x00018f64 0x00018f64 0x00000034 Code RO 673 i.hal_dsi_rx_ctrl_create_handle CVWL568T.lib(hal_dsi_rx_ctrl.o) + 0x00018f98 0x00018f98 0x0000009c Code RO 675 i.hal_dsi_rx_ctrl_deinit CVWL568T.lib(hal_dsi_rx_ctrl.o) + 0x00019034 0x00019034 0x00000084 Code RO 677 i.hal_dsi_rx_ctrl_dsc_async_handler CVWL568T.lib(hal_dsi_rx_ctrl.o) + 0x000190b8 0x000190b8 0x00000028 Code RO 679 i.hal_dsi_rx_ctrl_gen_a_tear_signal CVWL568T.lib(hal_dsi_rx_ctrl.o) + 0x000190e0 0x000190e0 0x00000010 Code RO 680 i.hal_dsi_rx_ctrl_get_compressen_en CVWL568T.lib(hal_dsi_rx_ctrl.o) + 0x000190f0 0x000190f0 0x00000028 Code RO 681 i.hal_dsi_rx_ctrl_get_max_ret_size CVWL568T.lib(hal_dsi_rx_ctrl.o) + 0x00019118 0x00019118 0x00000098 Code RO 683 i.hal_dsi_rx_ctrl_init CVWL568T.lib(hal_dsi_rx_ctrl.o) + 0x000191b0 0x000191b0 0x000001a4 Code RO 684 i.hal_dsi_rx_ctrl_init_clk CVWL568T.lib(hal_dsi_rx_ctrl.o) + 0x00019354 0x00019354 0x000000d8 Code RO 685 i.hal_dsi_rx_ctrl_init_dsi_rx CVWL568T.lib(hal_dsi_rx_ctrl.o) + 0x0001942c 0x0001942c 0x00000158 Code RO 686 i.hal_dsi_rx_ctrl_init_memc CVWL568T.lib(hal_dsi_rx_ctrl.o) + 0x00019584 0x00019584 0x00000148 Code RO 687 i.hal_dsi_rx_ctrl_init_rxbr CVWL568T.lib(hal_dsi_rx_ctrl.o) + 0x000196cc 0x000196cc 0x0000022c Code RO 688 i.hal_dsi_rx_ctrl_init_vidc CVWL568T.lib(hal_dsi_rx_ctrl.o) + 0x000198f8 0x000198f8 0x0000003c Code RO 689 i.hal_dsi_rx_ctrl_pre_init_pps CVWL568T.lib(hal_dsi_rx_ctrl.o) + 0x00019934 0x00019934 0x000000f0 Code RO 692 i.hal_dsi_rx_ctrl_send_ack_cmd CVWL568T.lib(hal_dsi_rx_ctrl.o) + 0x00019a24 0x00019a24 0x0000002c Code RO 694 i.hal_dsi_rx_ctrl_set_cus_esc_clk CVWL568T.lib(hal_dsi_rx_ctrl.o) + 0x00019a50 0x00019a50 0x00000034 Code RO 696 i.hal_dsi_rx_ctrl_set_cus_sync_line CVWL568T.lib(hal_dsi_rx_ctrl.o) + 0x00019a84 0x00019a84 0x00000038 Code RO 700 i.hal_dsi_rx_ctrl_set_ipi_cfg CVWL568T.lib(hal_dsi_rx_ctrl.o) + 0x00019abc 0x00019abc 0x00000072 Code RO 705 i.hal_dsi_rx_ctrl_set_rxbr_clk CVWL568T.lib(hal_dsi_rx_ctrl.o) + 0x00019b2e 0x00019b2e 0x00000002 PAD + 0x00019b30 0x00019b30 0x00000034 Code RO 706 i.hal_dsi_rx_ctrl_set_sw_tear_mode CVWL568T.lib(hal_dsi_rx_ctrl.o) + 0x00019b64 0x00019b64 0x0000000e Code RO 708 i.hal_dsi_rx_ctrl_set_tear_mode_ex CVWL568T.lib(hal_dsi_rx_ctrl.o) + 0x00019b72 0x00019b72 0x00000002 PAD + 0x00019b74 0x00019b74 0x0000003c Code RO 709 i.hal_dsi_rx_ctrl_start CVWL568T.lib(hal_dsi_rx_ctrl.o) + 0x00019bb0 0x00019bb0 0x0000003c Code RO 710 i.hal_dsi_rx_ctrl_stop CVWL568T.lib(hal_dsi_rx_ctrl.o) + 0x00019bec 0x00019bec 0x00000020 Code RO 712 i.hal_dsi_rx_ctrl_toggle_resolution CVWL568T.lib(hal_dsi_rx_ctrl.o) + 0x00019c0c 0x00019c0c 0x00000190 Code RO 769 i.hal_dsi_tx_calc_video_chunks CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x00019d9c 0x00019d9c 0x00000034 Code RO 770 i.hal_dsi_tx_config_params_for_lane_rate CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x00019dd0 0x00019dd0 0x00000450 Code RO 771 i.hal_dsi_tx_count_lane_rate CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x0001a220 0x0001a220 0x0000002c Code RO 774 i.hal_dsi_tx_ctrl_create_handle CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x0001a24c 0x0001a24c 0x00000084 Code RO 775 i.hal_dsi_tx_ctrl_deinit CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x0001a2d0 0x0001a2d0 0x0000004c Code RO 779 i.hal_dsi_tx_ctrl_enter_init_panel_mode CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x0001a31c 0x0001a31c 0x00000028 Code RO 781 i.hal_dsi_tx_ctrl_exit_init_panel_mode CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x0001a344 0x0001a344 0x000000a4 Code RO 783 i.hal_dsi_tx_ctrl_init CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x0001a3e8 0x0001a3e8 0x00000024 Code RO 784 i.hal_dsi_tx_ctrl_init_clk CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x0001a40c 0x0001a40c 0x0000000c Code RO 785 i.hal_dsi_tx_ctrl_panel_reset_pin CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x0001a418 0x0001a418 0x00000020 Code RO 788 i.hal_dsi_tx_ctrl_set_ccm CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x0001a438 0x0001a438 0x00000014 Code RO 794 i.hal_dsi_tx_ctrl_set_overwrite_rgb CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x0001a44c 0x0001a44c 0x00000010 Code RO 795 i.hal_dsi_tx_ctrl_set_partial_disp CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x0001a45c 0x0001a45c 0x00000024 Code RO 796 i.hal_dsi_tx_ctrl_set_partial_disp_area CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x0001a480 0x0001a480 0x0000009c Code RO 799 i.hal_dsi_tx_ctrl_start CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x0001a51c 0x0001a51c 0x00000044 Code RO 800 i.hal_dsi_tx_ctrl_stop CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x0001a560 0x0001a560 0x000000d8 Code RO 801 i.hal_dsi_tx_ctrl_write_array_cmd CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x0001a638 0x0001a638 0x000000b0 Code RO 802 i.hal_dsi_tx_ctrl_write_cmd CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x0001a6e8 0x0001a6e8 0x00000044 Code RO 803 i.hal_dsi_tx_init_data_mode CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x0001a72c 0x0001a72c 0x00000030 Code RO 804 i.hal_dsi_tx_init_dpi_cfg CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x0001a75c 0x0001a75c 0x00000020 Code RO 805 i.hal_dsi_tx_init_interrupt CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x0001a77c 0x0001a77c 0x00000020 Code RO 806 i.hal_dsi_tx_init_phy_cfg CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x0001a79c 0x0001a79c 0x00000094 Code RO 807 i.hal_dsi_tx_init_remains CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x0001a830 0x0001a830 0x00000058 Code RO 808 i.hal_dsi_tx_init_video_mode CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x0001a888 0x0001a888 0x00000044 Code RO 809 i.hal_dsi_tx_send_cmd CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x0001a8cc 0x0001a8cc 0x00000018 Code RO 874 i.hal_gpio_ctrl_eint CVWL568T.lib(hal_gpio.o) + 0x0001a8e4 0x0001a8e4 0x00000012 Code RO 875 i.hal_gpio_get_input_data CVWL568T.lib(hal_gpio.o) + 0x0001a8f6 0x0001a8f6 0x00000002 PAD + 0x0001a8f8 0x0001a8f8 0x00000040 Code RO 878 i.hal_gpio_init_eint CVWL568T.lib(hal_gpio.o) + 0x0001a938 0x0001a938 0x00000028 Code RO 880 i.hal_gpio_init_output CVWL568T.lib(hal_gpio.o) + 0x0001a960 0x0001a960 0x00000018 Code RO 881 i.hal_gpio_reg_eint_cb CVWL568T.lib(hal_gpio.o) + 0x0001a978 0x0001a978 0x00000050 Code RO 882 i.hal_gpio_set_ap_reset_int CVWL568T.lib(hal_gpio.o) + 0x0001a9c8 0x0001a9c8 0x00000060 Code RO 884 i.hal_gpio_set_mode CVWL568T.lib(hal_gpio.o) + 0x0001aa28 0x0001aa28 0x00000008 Code RO 885 i.hal_gpio_set_output_data CVWL568T.lib(hal_gpio.o) + 0x0001aa30 0x0001aa30 0x00000020 Code RO 887 i.hal_gpio_set_pull_state CVWL568T.lib(hal_gpio.o) + 0x0001aa50 0x0001aa50 0x0000006c Code RO 913 i.hal_i2c_m_dma_init CVWL568T.lib(hal_i2c_master.o) + 0x0001aabc 0x0001aabc 0x00000020 Code RO 914 i.hal_i2c_m_dma_read CVWL568T.lib(hal_i2c_master.o) + 0x0001aadc 0x0001aadc 0x0000001c Code RO 915 i.hal_i2c_m_dma_write CVWL568T.lib(hal_i2c_master.o) + 0x0001aaf8 0x0001aaf8 0x0000000c Code RO 917 i.hal_i2c_m_transfer_complate CVWL568T.lib(hal_i2c_master.o) + 0x0001ab04 0x0001ab04 0x00000020 Code RO 918 i.hal_i2c_master_irq_callback CVWL568T.lib(hal_i2c_master.o) + 0x0001ab24 0x0001ab24 0x00000010 Code RO 932 i.hal_i2c_s_dma_user_callback CVWL568T.lib(hal_i2c_slave.o) + 0x0001ab34 0x0001ab34 0x0000004c Code RO 933 i.hal_i2c_s_dma_write CVWL568T.lib(hal_i2c_slave.o) + 0x0001ab80 0x0001ab80 0x000000c8 Code RO 935 i.hal_i2c_s_init CVWL568T.lib(hal_i2c_slave.o) + 0x0001ac48 0x0001ac48 0x00000014 Code RO 936 i.hal_i2c_s_nonblocking_read CVWL568T.lib(hal_i2c_slave.o) + 0x0001ac5c 0x0001ac5c 0x0000000c Code RO 944 i.hal_i2c_s_set_transfer CVWL568T.lib(hal_i2c_slave.o) + 0x0001ac68 0x0001ac68 0x00000174 Code RO 947 i.hal_i2c_slave_irq_callback CVWL568T.lib(hal_i2c_slave.o) + 0x0001addc 0x0001addc 0x000000fc Code RO 1109 i.hal_internal_init_memc CVWL568T.lib(hal_internal_vsync.o) + 0x0001aed8 0x0001aed8 0x00000010 Code RO 1111 i.hal_internal_sync_get_fb_setting CVWL568T.lib(hal_internal_vsync.o) + 0x0001aee8 0x0001aee8 0x00000010 Code RO 1112 i.hal_internal_sync_get_hight_performan_mode CVWL568T.lib(hal_internal_vsync.o) + 0x0001aef8 0x0001aef8 0x0000022c Code RO 1113 i.hal_internal_sync_input_resolution_change CVWL568T.lib(hal_internal_vsync.o) + 0x0001b124 0x0001b124 0x00000010 Code RO 1116 i.hal_internal_update_dpi_param CVWL568T.lib(hal_internal_vsync.o) + 0x0001b134 0x0001b134 0x0000012c Code RO 1117 i.hal_internal_video_mode_auto_sync CVWL568T.lib(hal_internal_vsync.o) + 0x0001b260 0x0001b260 0x00000028 Code RO 1118 i.hal_internal_vsync_deinit CVWL568T.lib(hal_internal_vsync.o) + 0x0001b288 0x0001b288 0x0000000c Code RO 1119 i.hal_internal_vsync_get_rx_state CVWL568T.lib(hal_internal_vsync.o) + 0x0001b294 0x0001b294 0x00000018 Code RO 1120 i.hal_internal_vsync_get_sync_line CVWL568T.lib(hal_internal_vsync.o) + 0x0001b2ac 0x0001b2ac 0x0000000c Code RO 1121 i.hal_internal_vsync_get_tear_mode CVWL568T.lib(hal_internal_vsync.o) + 0x0001b2b8 0x0001b2b8 0x0000000c Code RO 1122 i.hal_internal_vsync_get_tx_state CVWL568T.lib(hal_internal_vsync.o) + 0x0001b2c4 0x0001b2c4 0x00000118 Code RO 1123 i.hal_internal_vsync_init_rx CVWL568T.lib(hal_internal_vsync.o) + 0x0001b3dc 0x0001b3dc 0x000000b0 Code RO 1124 i.hal_internal_vsync_init_tx CVWL568T.lib(hal_internal_vsync.o) + 0x0001b48c 0x0001b48c 0x0000011c Code RO 1126 i.hal_internal_vsync_set_auto_hw_filter CVWL568T.lib(hal_internal_vsync.o) + 0x0001b5a8 0x0001b5a8 0x00000014 Code RO 1128 i.hal_internal_vsync_set_rx_state CVWL568T.lib(hal_internal_vsync.o) + 0x0001b5bc 0x0001b5bc 0x00000024 Code RO 1129 i.hal_internal_vsync_set_sync_line CVWL568T.lib(hal_internal_vsync.o) + 0x0001b5e0 0x0001b5e0 0x00000050 Code RO 1130 i.hal_internal_vsync_set_tear_mode CVWL568T.lib(hal_internal_vsync.o) + 0x0001b630 0x0001b630 0x00000080 Code RO 1131 i.hal_internal_vsync_set_tx_state CVWL568T.lib(hal_internal_vsync.o) + 0x0001b6b0 0x0001b6b0 0x00000024 Code RO 810 i.hal_lcdc_config_ccm CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x0001b6d4 0x0001b6d4 0x00000058 Code RO 811 i.hal_lcdc_config_remains CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x0001b72c 0x0001b72c 0x00000014 Code RO 812 i.hal_lcdc_config_rgb_to_pentile CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x0001b740 0x0001b740 0x00000164 Code RO 813 i.hal_lcdc_config_upscaler CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x0001b8a4 0x0001b8a4 0x00000054 Code RO 814 i.hal_lcdc_init_cfg CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x0001b8f8 0x0001b8f8 0x000001b0 Code RO 815 i.hal_lcdc_init_clk CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x0001baa8 0x0001baa8 0x00000040 Code RO 816 i.hal_lcdc_init_interrupt CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x0001bae8 0x0001bae8 0x0000000e Code RO 972 i.hal_spi_m_clear_rxfifo CVWL568T.lib(hal_spi_master.o) + 0x0001baf6 0x0001baf6 0x00000012 Code RO 996 i.hal_swire_deinit CVWL568T.lib(hal_swire.o) + 0x0001bb08 0x0001bb08 0x00000016 Code RO 998 i.hal_swire_open CVWL568T.lib(hal_swire.o) + 0x0001bb1e 0x0001bb1e 0x00000008 Code RO 1013 i.hal_system_enable_systick CVWL568T.lib(hal_system.o) + 0x0001bb26 0x0001bb26 0x00000002 PAD + 0x0001bb28 0x0001bb28 0x00000088 Code RO 1017 i.hal_system_init CVWL568T.lib(hal_system.o) + 0x0001bbb0 0x0001bbb0 0x0000001c Code RO 1018 i.hal_system_init_console CVWL568T.lib(hal_system.o) + 0x0001bbcc 0x0001bbcc 0x00000008 Code RO 1021 i.hal_system_set_phy_calibration CVWL568T.lib(hal_system.o) + 0x0001bbd4 0x0001bbd4 0x00000008 Code RO 1022 i.hal_system_set_pvd CVWL568T.lib(hal_system.o) + 0x0001bbdc 0x0001bbdc 0x00000008 Code RO 1023 i.hal_system_set_vcc CVWL568T.lib(hal_system.o) + 0x0001bbe4 0x0001bbe4 0x0000002e Code RO 1046 i.hal_timer_deinit CVWL568T.lib(hal_timer.o) + 0x0001bc12 0x0001bc12 0x0000001a Code RO 1048 i.hal_timer_init CVWL568T.lib(hal_timer.o) + 0x0001bc2c 0x0001bc2c 0x00000048 Code RO 1050 i.hal_timer_start CVWL568T.lib(hal_timer.o) + 0x0001bc74 0x0001bc74 0x00000028 Code RO 1052 i.hal_timer_stop CVWL568T.lib(hal_timer.o) + 0x0001bc9c 0x0001bc9c 0x0000008c Code RO 1085 i.hal_uart_init CVWL568T.lib(hal_uart.o) + 0x0001bd28 0x0001bd28 0x00000010 Code RO 1088 i.hal_uart_transmit_blocking CVWL568T.lib(hal_uart.o) + 0x0001bd38 0x0001bd38 0x00000110 Code RO 2241 i.handle_init CVWL568T.lib(irq_redirect .o) + 0x0001be48 0x0001be48 0x000000e8 Code RO 113 i.init_mipi_tx s21p_demo.o + 0x0001bf30 0x0001bf30 0x00000088 Code RO 114 i.init_panel s21p_demo.o + 0x0001bfb8 0x0001bfb8 0x00000010 Code RO 3 i.main main.o + 0x0001bfc8 0x0001bfc8 0x00000118 Code RO 115 i.open_mipi_rx s21p_demo.o + 0x0001c0e0 0x0001c0e0 0x0000007c Code RO 116 i.pps_update_handle s21p_demo.o + 0x0001c15c 0x0001c15c 0x000003f4 Code RO 1135 i.rx_get_dcs_packet_data CVWL568T.lib(hal_internal_vsync.o) + 0x0001c550 0x0001c550 0x00000178 Code RO 1136 i.rx_partial_update CVWL568T.lib(hal_internal_vsync.o) + 0x0001c6c8 0x0001c6c8 0x0000008c Code RO 1137 i.rx_receive_packet CVWL568T.lib(hal_internal_vsync.o) + 0x0001c754 0x0001c754 0x00000180 Code RO 1138 i.rx_receive_pps CVWL568T.lib(hal_internal_vsync.o) + 0x0001c8d4 0x0001c8d4 0x000000a4 Code RO 1139 i.rxbr_irq0_callback CVWL568T.lib(hal_internal_vsync.o) + 0x0001c978 0x0001c978 0x000001dc Code RO 1140 i.rxbr_irq1_callback CVWL568T.lib(hal_internal_vsync.o) + 0x0001cb54 0x0001cb54 0x0000003a Code RO 117 i.send_panel_init_code s21p_demo.o + 0x0001cb8e 0x0001cb8e 0x00000002 PAD + 0x0001cb90 0x0001cb90 0x000000c4 Code RO 1141 i.soft_gen_te CVWL568T.lib(hal_internal_vsync.o) + 0x0001cc54 0x0001cc54 0x000000c0 Code RO 1142 i.soft_gen_te_double_buffer CVWL568T.lib(hal_internal_vsync.o) + 0x0001cd14 0x0001cd14 0x00000038 Code RO 118 i.soft_swire_init s21p_demo.o + 0x0001cd4c 0x0001cd4c 0x0000002e Code RO 119 i.soft_swire_start s21p_demo.o + 0x0001cd7a 0x0001cd7a 0x00000002 PAD + 0x0001cd7c 0x0001cd7c 0x00000048 Code RO 120 i.soft_swire_timer_callback s21p_demo.o + 0x0001cdc4 0x0001cdc4 0x00000024 Code RO 123 i.soft_timer3_cb s21p_demo.o + 0x0001cde8 0x0001cde8 0x00000048 Code RO 2693 i.sqrt m_ps.l(sqrt.o) + 0x0001ce30 0x0001ce30 0x0000002c Code RO 128 i.tx_display_on s21p_demo.o + 0x0001ce5c 0x0001ce5c 0x00000028 Code RO 129 i.tx_panel_reset s21p_demo.o + 0x0001ce84 0x0001ce84 0x00000108 Code RO 1143 i.vidc_callback CVWL568T.lib(hal_internal_vsync.o) + 0x0001cf8c 0x0001cf8c 0x000000d0 Code RO 1144 i.vpre_err_reset CVWL568T.lib(hal_internal_vsync.o) + 0x0001d05c 0x0001d05c 0x000001cc Code RO 1145 i.vsync_set_te_mode CVWL568T.lib(hal_internal_vsync.o) + 0x0001d228 0x0001d228 0x00001db0 Data RO 130 .constdata s21p_demo.o + 0x0001efd8 0x0001efd8 0x000000b7 Data RO 482 .constdata app_tp_for_custom_s21p.o + 0x0001f08f 0x0001f08f 0x00000001 PAD + 0x0001f090 0x0001f090 0x00000020 Data RO 550 .constdata app_tp_st_touch.o + 0x0001f0b0 0x0001f0b0 0x00000024 Data RO 818 .constdata CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x0001f0d4 0x0001f0d4 0x000000d2 Data RO 890 .constdata CVWL568T.lib(hal_gpio.o) + 0x0001f1a6 0x0001f1a6 0x00000002 PAD + 0x0001f1a8 0x0001f1a8 0x00000020 Data RO 948 .constdata CVWL568T.lib(hal_i2c_slave.o) + 0x0001f1c8 0x0001f1c8 0x00000008 Data RO 1596 .constdata CVWL568T.lib(drv_param_init.o) + 0x0001f1d0 0x0001f1d0 0x00000186 Data RO 2313 .constdata CVWL568T.lib(drv_phy_common.o) + 0x0001f356 0x0001f356 0x00000002 PAD + 0x0001f358 0x0001f358 0x00000048 Data RO 716 .conststring CVWL568T.lib(hal_dsi_rx_ctrl.o) + 0x0001f3a0 0x0001f3a0 0x00000043 Data RO 819 .conststring CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x0001f3e3 0x0001f3e3 0x00000001 PAD + 0x0001f3e4 0x0001f3e4 0x00000134 Data RO 1147 .conststring CVWL568T.lib(hal_internal_vsync.o) + 0x0001f518 0x0001f518 0x00000030 Data RO 3055 Region$$Table anon$$obj.o + + + Execution Region RW_RAM1 (Exec base: 0x00070000, Load base: 0x0001f548, Size: 0x00000000, Max: 0x000000f0, ABSOLUTE) + + **** No section assigned to this execution region **** + + + Execution Region RW_RAM2 (Exec base: 0x00070100, Load base: 0x0001f548, Size: 0x000000c0, Max: 0x000000d0, ABSOLUTE) + + Exec Addr Load Addr Size Type Attr Idx E Section Name Object + + 0x00070100 - 0x000000c0 Zero RW 2242 .ARM.__AT_0x00070100 CVWL568T.lib(irq_redirect .o) + + + Execution Region RW_RAM3 (Exec base: 0x000701d0, Load base: 0x0001f548, Size: 0x000039e8, Max: 0x00007e30, ABSOLUTE, COMPRESSED[0x000004bc]) + + Exec Addr Load Addr Size Type Attr Idx E Section Name Object + + 0x000701d0 COMPRESSED 0x0000001f Data RW 131 .data s21p_demo.o + 0x000701ef COMPRESSED 0x00000001 PAD + 0x000701f0 COMPRESSED 0x00000019 Data RW 339 .data app_tp_transfer.o + 0x00070209 COMPRESSED 0x00000003 PAD + 0x0007020c COMPRESSED 0x00000325 Data RW 483 .data app_tp_for_custom_s21p.o + 0x00070531 COMPRESSED 0x00000028 Data RW 551 .data app_tp_st_touch.o + 0x00070559 COMPRESSED 0x00000003 PAD + 0x0007055c COMPRESSED 0x00000008 Data RW 717 .data CVWL568T.lib(hal_dsi_rx_ctrl.o) + 0x00070564 COMPRESSED 0x00000003 Data RW 820 .data CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x00070567 COMPRESSED 0x00000001 Data RW 919 .data CVWL568T.lib(hal_i2c_master.o) + 0x00070568 COMPRESSED 0x00000020 Data RW 949 .data CVWL568T.lib(hal_i2c_slave.o) + 0x00070588 COMPRESSED 0x00000018 Data RW 1148 .data CVWL568T.lib(hal_internal_vsync.o) + 0x000705a0 COMPRESSED 0x0000000c Data RW 1207 .data CVWL568T.lib(drv_common.o) + 0x000705ac COMPRESSED 0x00000004 Data RW 1474 .data CVWL568T.lib(drv_gpio.o) + 0x000705b0 COMPRESSED 0x00000008 Data RW 1512 .data CVWL568T.lib(drv_i2c_dma.o) + 0x000705b8 COMPRESSED 0x00000004 Data RW 1541 .data CVWL568T.lib(drv_i2c_master.o) + 0x000705bc COMPRESSED 0x00000004 Data RW 1572 .data CVWL568T.lib(drv_i2c_slave.o) + 0x000705c0 COMPRESSED 0x000004a4 Data RW 1597 .data CVWL568T.lib(drv_param_init.o) + 0x00070a64 COMPRESSED 0x00000004 Data RW 1664 .data CVWL568T.lib(drv_spi_master.o) + 0x00070a68 COMPRESSED 0x00000008 Data RW 1690 .data CVWL568T.lib(drv_swire.o) + 0x00070a70 COMPRESSED 0x00000001 Data RW 1715 .data CVWL568T.lib(drv_sys_cfg.o) + 0x00070a71 COMPRESSED 0x00000003 PAD + 0x00070a74 COMPRESSED 0x00000050 Data RW 1748 .data CVWL568T.lib(drv_timer.o) + 0x00070ac4 COMPRESSED 0x00000008 Data RW 2094 .data CVWL568T.lib(drv_rxbr.o) + 0x00070acc COMPRESSED 0x00000004 Data RW 2167 .data CVWL568T.lib(drv_vidc.o) + 0x00070ad0 COMPRESSED 0x00000001 Data RW 2314 .data CVWL568T.lib(drv_phy_common.o) + 0x00070ad1 COMPRESSED 0x00000003 PAD + 0x00070ad4 COMPRESSED 0x0000000c Data RW 2334 .data CVWL568T.lib(drv_chip_info.o) + 0x00070ae0 COMPRESSED 0x00000012 Data RW 2443 .data CVWL568T.lib(norflash.o) + 0x00070af2 COMPRESSED 0x00000002 PAD + 0x00070af4 COMPRESSED 0x0000000c Data RW 2530 .data CVWL568T.lib(drv_pwm.o) + 0x00070b00 COMPRESSED 0x00000008 Data RW 2608 .data CVWL568T.lib(drv_uart.o) + 0x00070b08 COMPRESSED 0x0000000c Data RW 2675 .data CVWL568T.lib(drv_wdg.o) + 0x00070b14 COMPRESSED 0x00000004 Data RW 3024 .data mc_p.l(stdout.o) + 0x00070b18 COMPRESSED 0x00000004 Data RW 3036 .data mc_p.l(errno.o) + 0x00070b1c - 0x000001f4 Zero RW 338 .bss app_tp_transfer.o + 0x00070d10 - 0x00000048 Zero RW 481 .bss app_tp_for_custom_s21p.o + 0x00070d58 - 0x0000000c Zero RW 549 .bss app_tp_st_touch.o + 0x00070d64 - 0x000000c4 Zero RW 715 .bss CVWL568T.lib(hal_dsi_rx_ctrl.o) + 0x00070e28 - 0x0000004c Zero RW 817 .bss CVWL568T.lib(hal_dsi_tx_ctrl.o) + 0x00070e74 - 0x00000100 Zero RW 1075 .bss CVWL568T.lib(tau_log.o) + 0x00070f74 - 0x000000d0 Zero RW 1090 .bss CVWL568T.lib(hal_uart.o) + 0x00071044 - 0x00000984 Zero RW 1146 .bss CVWL568T.lib(hal_internal_vsync.o) + 0x000719c8 - 0x0000001c Zero RW 1336 .bss CVWL568T.lib(drv_dma.o) + 0x000719e4 - 0x00000040 Zero RW 1473 .bss CVWL568T.lib(drv_gpio.o) + 0x00071a24 - 0x00000140 Zero RW 1511 .bss CVWL568T.lib(drv_i2c_dma.o) + 0x00071b64 - 0x00001030 Zero RW 1771 .bss CVWL568T.lib(dcs_packet_fifo.o) + 0x00072b94 - 0x00000020 Zero RW 2378 .bss CVWL568T.lib(hal_spi_slave.o) + 0x00072bb4 COMPRESSED 0x00000004 PAD + 0x00072bb8 - 0x00001000 Zero RW 662 STACK startup_armcm0.o + + +============================================================================== + +Image component sizes + + + Code (inc. data) RO Data RW Data ZI Data Debug Object Name + + 2200 130 183 805 72 13459 app_tp_for_custom_s21p.o + 640 118 32 40 12 7053 app_tp_st_touch.o + 1140 200 0 25 500 13411 app_tp_transfer.o + 36 6 0 0 0 569 board.o + 16 0 0 0 0 9771 main.o + 12496 1128 7600 31 0 42399 s21p_demo.o + 120 18 192 0 4096 2128 startup_armcm0.o + + ---------------------------------------------------------------------- + 16654 1600 8056 908 4680 88790 Object Totals + 0 0 48 0 0 0 (incl. Generated) + 6 0 1 7 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 + 272 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 + 1644 494 0 0 0 1336 drv_dsi_rx.o + 1528 118 0 0 0 2428 drv_dsi_tx.o + 132 0 0 0 0 256 drv_efuse.o + 10 0 0 0 0 60 drv_fls.o + 796 112 0 4 64 1236 drv_gpio.o + 600 82 0 8 320 624 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 + 112 36 8 1188 0 376 drv_param_init.o + 428 30 390 1 0 664 drv_phy_common.o + 72 10 0 12 0 76 drv_pwm.o + 112 24 0 0 0 180 drv_pwr.o + 722 84 0 8 0 1456 drv_rxbr.o + 104 24 0 4 0 188 drv_spi_master.o + 172 20 0 8 0 260 drv_swire.o + 300 64 0 1 0 628 drv_sys_cfg.o + 374 34 0 80 0 932 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 + 3262 320 72 8 196 1744 hal_dsi_rx_ctrl.o + 4344 304 103 3 76 2408 hal_dsi_tx_ctrl.o + 418 44 210 0 0 684 hal_gpio.o + 212 40 0 1 0 340 hal_i2c_master.o + 696 70 32 32 0 408 hal_i2c_slave.o + 8084 1704 308 24 2436 2616 hal_internal_vsync.o + 14 0 0 0 0 68 hal_spi_master.o + 580 32 0 0 32 136 hal_spi_slave.o + 40 0 0 0 0 136 hal_swire.o + 196 32 0 0 0 408 hal_system.o + 184 6 0 0 0 276 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 + + ---------------------------------------------------------------------- + 36930 4832 1152 1472 7956 34884 Library Totals + 50 0 5 8 4 0 (incl. Padding) + + ---------------------------------------------------------------------- + + Code (inc. data) RO Data RW Data ZI Data Debug Library Name + + 31500 4626 1147 1456 7952 31608 CVWL568T.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 + + ---------------------------------------------------------------------- + 36930 4832 1152 1472 7956 34884 Library Totals + + ---------------------------------------------------------------------- + +============================================================================== + + + Code (inc. data) RO Data RW Data ZI Data Debug + + 53584 6432 9208 2380 12636 99058 Grand Totals + 53584 6432 9208 1212 12636 99058 ELF Image Totals (compressed) + 53584 6432 9208 1212 0 0 ROM Totals + +============================================================================== + + Total RO Size (Code + RO Data) 62792 ( 61.32kB) + Total RW Size (RW Data + ZI Data) 15016 ( 14.66kB) + Total ROM Size (Code + RO Data + RW Data) 64004 ( 62.50kB) + +============================================================================== + diff --git a/project/ISP_568T/Listings/app_tp_for_custom_s21p.txt b/project/ISP_568T/Listings/app_tp_for_custom_s21p.txt new file mode 100644 index 0000000..f746f1a --- /dev/null +++ b/project/ISP_568T/Listings/app_tp_for_custom_s21p.txt @@ -0,0 +1,2147 @@ +; 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_s21p.o --asm_dir=.\Listings\ --list_dir=.\Listings\ --depend=.\objects\app_tp_for_custom_s21p.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..\CVWL568 -I..\..\src\app\s21p -I.\RTE\_ISP_568T -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\5.5.1\CMSIS\Core\Include -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\5.5.1\Device\ARM\ARMCM0\Include -D__MICROLIB -D__UVISION_VERSION=528 -D_RTE_ -DARMCM0 -DISP_568 --omf_browse=.\objects\app_tp_for_custom_s21p.crf ..\..\src\app\s21p\app_tp_for_custom_s21p.c] + THUMB + + AREA ||i.app_tp_phone_analysis_data||, CODE, READONLY, ALIGN=2 + + app_tp_phone_analysis_data PROC +;;;577 **************************************************************************/ +;;;578 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} +;;;579 { +000002 4606 MOV r6,r0 +000004 460f MOV r7,r1 +000006 4615 MOV r5,r2 +000008 461c MOV r4,r3 +;;;580 +;;;581 *txbuffer_size = 0; +00000a 2000 MOVS r0,#0 +00000c 6020 STR r0,[r4,#0] +;;;582 // if ((!((rxbuffer[0] == 0x60) || (rxbuffer[0] == 0x61))) || (SAMSUNG_s21p.Phone_Init_Done == false)) +;;;583 if (!((rxbuffer[0] == 0x60) || (rxbuffer[0] == 0x61))) +00000e 7830 LDRB r0,[r6,#0] +000010 2860 CMP r0,#0x60 +000012 d005 BEQ |L1.32| +000014 7830 LDRB r0,[r6,#0] +000016 2861 CMP r0,#0x61 +000018 d002 BEQ |L1.32| +;;;584 { +;;;585 SAMSUNG_s21p.Touch_ON[0] = 0; +00001a 2100 MOVS r1,#0 +00001c 48fa LDR r0,|L1.1032| +00001e 71c1 STRB r1,[r0,#7] + |L1.32| +;;;586 } +;;;587 if(phone_reg_coord_BUF_NUM<2) // 单点触摸 +000020 48fa LDR r0,|L1.1036| +000022 7800 LDRB r0,[r0,#0] ; phone_reg_coord_BUF_NUM +000024 2802 CMP r0,#2 +000026 da04 BGE |L1.50| +;;;588 hal_gpio_set_output_data(g_phone_output_int_pad, IO_LVL_HIGH); +000028 2101 MOVS r1,#1 +00002a 48f9 LDR r0,|L1.1040| +00002c 7800 LDRB r0,[r0,#0] ; g_phone_output_int_pad +00002e f7fffffe BL hal_gpio_set_output_data + |L1.50| +;;;589 switch (rxbuffer[0]) +000032 7830 LDRB r0,[r6,#0] +000034 2890 CMP r0,#0x90 +000036 d070 BEQ |L1.282| +000038 dc1c BGT |L1.116| +00003a 2852 CMP r0,#0x52 +00003c d06e BEQ |L1.284| +00003e dc0c BGT |L1.90| +000040 2822 CMP r0,#0x22 +000042 d06c BEQ |L1.286| +000044 dc04 BGT |L1.80| +000046 2811 CMP r0,#0x11 +000048 d06a BEQ |L1.288| +00004a 2821 CMP r0,#0x21 + |L1.76| +00004c d169 BNE |L1.290| +00004e e12b B |L1.680| + |L1.80| +000050 2823 CMP r0,#0x23 +000052 d067 BEQ |L1.292| +000054 2830 CMP r0,#0x30 +000056 d1f9 BNE |L1.76| +000058 e15c B |L1.788| + |L1.90| +00005a 2861 CMP r0,#0x61 +00005c d070 BEQ |L1.320| +00005e dc04 BGT |L1.106| +000060 2855 CMP r0,#0x55 +000062 d06e BEQ |L1.322| +000064 2860 CMP r0,#0x60 +000066 d1f1 BNE |L1.76| +000068 e01d B |L1.166| + |L1.106| +00006a 2874 CMP r0,#0x74 +00006c d06a BEQ |L1.324| +00006e 2885 CMP r0,#0x85 +000070 d1ec BNE |L1.76| +000072 e15f B |L1.820| + |L1.116| +000074 28af CMP r0,#0xaf +000076 d073 BEQ |L1.352| +000078 dc0c BGT |L1.148| +00007a 28a4 CMP r0,#0xa4 +00007c d071 BEQ |L1.354| +00007e dc04 BGT |L1.138| +000080 2892 CMP r0,#0x92 +000082 d06f BEQ |L1.356| +000084 28a3 CMP r0,#0xa3 +000086 d1e1 BNE |L1.76| +000088 e12c B |L1.740| + |L1.138| +00008a 28a5 CMP r0,#0xa5 +00008c d06b BEQ |L1.358| +00008e 28ae CMP r0,#0xae +000090 d1dc BNE |L1.76| +000092 e1e7 B |L1.1124| + |L1.148| +000094 28be CMP r0,#0xbe +000096 d067 BEQ |L1.360| +000098 28e4 CMP r0,#0xe4 +00009a d070 BEQ |L1.382| +00009c 28f1 CMP r0,#0xf1 +00009e d06f BEQ |L1.384| +0000a0 28f3 CMP r0,#0xf3 +0000a2 d1d3 BNE |L1.76| +0000a4 e1d5 B |L1.1106| + |L1.166| +;;;590 { +;;;591 case 0x60: +;;;592 { +;;;593 if (SAMSUNG_s21p.Touch_ON[0] == 1) +0000a6 48d8 LDR r0,|L1.1032| +0000a8 79c0 LDRB r0,[r0,#7] ; SAMSUNG_s21p +0000aa 2801 CMP r0,#1 +0000ac d104 BNE |L1.184| +;;;594 { +;;;595 *txbuffer = phone_reg_coord_back_X61; +0000ae 48d9 LDR r0,|L1.1044| +0000b0 6028 STR r0,[r5,#0] +;;;596 *txbuffer_size = sizeof(phone_reg_coord_back); +0000b2 2010 MOVS r0,#0x10 +0000b4 6020 STR r0,[r4,#0] +0000b6 e0d8 B |L1.618| + |L1.184| +;;;597 // TAU_LOGD("TD OK\n"); +;;;598 } +;;;599 else +;;;600 { +;;;601 if (SAMSUNG_s21p.D60_count == 0) +0000b8 48d7 LDR r0,|L1.1048| +0000ba 7800 LDRB r0,[r0,#0] ; SAMSUNG_s21p +0000bc 2800 CMP r0,#0 +0000be d115 BNE |L1.236| +;;;602 { +;;;603 if(g_screen_tp_init_start == true) //开机 +0000c0 48d6 LDR r0,|L1.1052| +0000c2 7800 LDRB r0,[r0,#0] ; g_screen_tp_init_start +0000c4 2801 CMP r0,#1 +0000c6 d108 BNE |L1.218| +;;;604 { +;;;605 *txbuffer = SAMSUNG_s21p.reg_60_0; +0000c8 48d3 LDR r0,|L1.1048| +0000ca 1cc0 ADDS r0,r0,#3 +0000cc 6028 STR r0,[r5,#0] +;;;606 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_0); +0000ce 2010 MOVS r0,#0x10 +0000d0 6020 STR r0,[r4,#0] +;;;607 SAMSUNG_s21p.D60_count = 1; +0000d2 2001 MOVS r0,#1 +0000d4 49d0 LDR r1,|L1.1048| +0000d6 7008 STRB r0,[r1,#0] +0000d8 e0c7 B |L1.618| + |L1.218| +;;;608 } +;;;609 else +;;;610 { +;;;611 *txbuffer = SAMSUNG_s21p.reg_60_1_0; +0000da 48cb LDR r0,|L1.1032| +0000dc 389d SUBS r0,r0,#0x9d +0000de 6028 STR r0,[r5,#0] +;;;612 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_1_0); +0000e0 2010 MOVS r0,#0x10 +0000e2 6020 STR r0,[r4,#0] +;;;613 SAMSUNG_s21p.D60_count = 1; +0000e4 2001 MOVS r0,#1 +0000e6 49cc LDR r1,|L1.1048| +0000e8 7008 STRB r0,[r1,#0] +0000ea e0be B |L1.618| + |L1.236| +;;;614 } +;;;615 } +;;;616 else if (SAMSUNG_s21p.D60_count == 1) +0000ec 48ca LDR r0,|L1.1048| +0000ee 7800 LDRB r0,[r0,#0] ; SAMSUNG_s21p +0000f0 2801 CMP r0,#1 +0000f2 d105 BNE |L1.256| +;;;617 { +;;;618 *txbuffer = SAMSUNG_s21p.reg_60_1; +0000f4 48c8 LDR r0,|L1.1048| +0000f6 3013 ADDS r0,r0,#0x13 +0000f8 6028 STR r0,[r5,#0] +;;;619 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_1); +0000fa 2010 MOVS r0,#0x10 +0000fc 6020 STR r0,[r4,#0] +0000fe e0b4 B |L1.618| + |L1.256| +;;;620 } +;;;621 else if (SAMSUNG_s21p.D60_count == 2) +000100 48c5 LDR r0,|L1.1048| +000102 7800 LDRB r0,[r0,#0] ; SAMSUNG_s21p +000104 2802 CMP r0,#2 +000106 d10e BNE |L1.294| +;;;622 { +;;;623 *txbuffer = SAMSUNG_s21p.reg_60_2; +000108 48c3 LDR r0,|L1.1048| +00010a 3023 ADDS r0,r0,#0x23 +00010c 6028 STR r0,[r5,#0] +;;;624 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_2); +00010e 2010 MOVS r0,#0x10 +000110 6020 STR r0,[r4,#0] +;;;625 SAMSUNG_s21p.D60_count = 3; +000112 2003 MOVS r0,#3 +000114 49c0 LDR r1,|L1.1048| +000116 7008 STRB r0,[r1,#0] +000118 e0a7 B |L1.618| + |L1.282| +00011a e101 B |L1.800| + |L1.284| +00011c e0ee B |L1.764| + |L1.286| +00011e e0ba B |L1.662| + |L1.288| +000120 e104 B |L1.812| + |L1.290| +000122 e1b1 B |L1.1160| + |L1.292| +000124 e0f0 B |L1.776| + |L1.294| +;;;626 } +;;;627 else if (SAMSUNG_s21p.D60_count == 3) +000126 48bc LDR r0,|L1.1048| +000128 7800 LDRB r0,[r0,#0] ; SAMSUNG_s21p +00012a 2803 CMP r0,#3 +00012c d10b BNE |L1.326| +;;;628 { +;;;629 *txbuffer = SAMSUNG_s21p.reg_60_3; +00012e 48ba LDR r0,|L1.1048| +000130 3033 ADDS r0,r0,#0x33 +000132 6028 STR r0,[r5,#0] +;;;630 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_3); +000134 2010 MOVS r0,#0x10 +000136 6020 STR r0,[r4,#0] +;;;631 SAMSUNG_s21p.D60_count = 4; +000138 2004 MOVS r0,#4 +00013a 49b7 LDR r1,|L1.1048| +00013c 7008 STRB r0,[r1,#0] +00013e e094 B |L1.618| + |L1.320| +000140 e094 B |L1.620| + |L1.322| +000142 e0b7 B |L1.692| + |L1.324| +000144 e143 B |L1.974| + |L1.326| +;;;632 } +;;;633 else if (SAMSUNG_s21p.D60_count == 4) +000146 48b4 LDR r0,|L1.1048| +000148 7800 LDRB r0,[r0,#0] ; SAMSUNG_s21p +00014a 2804 CMP r0,#4 +00014c d10d BNE |L1.362| +;;;634 { +;;;635 *txbuffer = SAMSUNG_s21p.reg_60_4; +00014e 48b2 LDR r0,|L1.1048| +000150 3043 ADDS r0,r0,#0x43 +000152 6028 STR r0,[r5,#0] +;;;636 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_4); +000154 2010 MOVS r0,#0x10 +000156 6020 STR r0,[r4,#0] +;;;637 SAMSUNG_s21p.D60_count = 5; +000158 2005 MOVS r0,#5 +00015a 49af LDR r1,|L1.1048| +00015c 7008 STRB r0,[r1,#0] +00015e e084 B |L1.618| + |L1.352| +000160 e0ae B |L1.704| + |L1.354| +000162 e0c5 B |L1.752| + |L1.356| +000164 e106 B |L1.884| + |L1.358| +000166 e0b7 B |L1.728| + |L1.360| +000168 e188 B |L1.1148| + |L1.362| +;;;638 } +;;;639 else if (SAMSUNG_s21p.D60_count == 5) +00016a 48ab LDR r0,|L1.1048| +00016c 7800 LDRB r0,[r0,#0] ; SAMSUNG_s21p +00016e 2805 CMP r0,#5 +000170 d107 BNE |L1.386| +;;;640 { +;;;641 *txbuffer = SAMSUNG_s21p.reg_60_5; +000172 48a9 LDR r0,|L1.1048| +000174 3053 ADDS r0,r0,#0x53 +000176 6028 STR r0,[r5,#0] +;;;642 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_5); +000178 2010 MOVS r0,#0x10 +00017a 6020 STR r0,[r4,#0] +00017c e075 B |L1.618| + |L1.382| +00017e e139 B |L1.1012| + |L1.384| +000180 e0a4 B |L1.716| + |L1.386| +;;;643 } +;;;644 else if (SAMSUNG_s21p.D60_count == 6) +000182 48a5 LDR r0,|L1.1048| +000184 7800 LDRB r0,[r0,#0] ; SAMSUNG_s21p +000186 2806 CMP r0,#6 +000188 d108 BNE |L1.412| +;;;645 { +;;;646 *txbuffer = SAMSUNG_s21p.reg_60_6; +00018a 48a3 LDR r0,|L1.1048| +00018c 3063 ADDS r0,r0,#0x63 +00018e 6028 STR r0,[r5,#0] +;;;647 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_6); +000190 2010 MOVS r0,#0x10 +000192 6020 STR r0,[r4,#0] +;;;648 SAMSUNG_s21p.D60_count = 6; +000194 2006 MOVS r0,#6 +000196 49a0 LDR r1,|L1.1048| +000198 7008 STRB r0,[r1,#0] +00019a e066 B |L1.618| + |L1.412| +;;;649 } +;;;650 else if (SAMSUNG_s21p.D60_count == 7) +00019c 489e LDR r0,|L1.1048| +00019e 7800 LDRB r0,[r0,#0] ; SAMSUNG_s21p +0001a0 2807 CMP r0,#7 +0001a2 d108 BNE |L1.438| +;;;651 { +;;;652 *txbuffer = SAMSUNG_s21p.reg_60_7; +0001a4 489c LDR r0,|L1.1048| +0001a6 3073 ADDS r0,r0,#0x73 +0001a8 6028 STR r0,[r5,#0] +;;;653 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_7); +0001aa 2010 MOVS r0,#0x10 +0001ac 6020 STR r0,[r4,#0] +;;;654 SAMSUNG_s21p.D60_count = 7; +0001ae 2007 MOVS r0,#7 +0001b0 4999 LDR r1,|L1.1048| +0001b2 7008 STRB r0,[r1,#0] +0001b4 e059 B |L1.618| + |L1.438| +;;;655 } +;;;656 else if (SAMSUNG_s21p.D60_count == 8) +0001b6 4898 LDR r0,|L1.1048| +0001b8 7800 LDRB r0,[r0,#0] ; SAMSUNG_s21p +0001ba 2808 CMP r0,#8 +0001bc d108 BNE |L1.464| +;;;657 { +;;;658 *txbuffer = SAMSUNG_s21p.reg_60_8; +0001be 4896 LDR r0,|L1.1048| +0001c0 3083 ADDS r0,r0,#0x83 +0001c2 6028 STR r0,[r5,#0] +;;;659 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_8); +0001c4 2010 MOVS r0,#0x10 +0001c6 6020 STR r0,[r4,#0] +;;;660 SAMSUNG_s21p.D60_count = 8; +0001c8 2008 MOVS r0,#8 +0001ca 4993 LDR r1,|L1.1048| +0001cc 7008 STRB r0,[r1,#0] +0001ce e04c B |L1.618| + |L1.464| +;;;661 } +;;;662 else if (SAMSUNG_s21p.D60_count == 9) +0001d0 4891 LDR r0,|L1.1048| +0001d2 7800 LDRB r0,[r0,#0] ; SAMSUNG_s21p +0001d4 2809 CMP r0,#9 +0001d6 d108 BNE |L1.490| +;;;663 { +;;;664 *txbuffer = SAMSUNG_s21p.reg_60_9; +0001d8 488f LDR r0,|L1.1048| +0001da 3093 ADDS r0,r0,#0x93 +0001dc 6028 STR r0,[r5,#0] +;;;665 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_9); +0001de 2010 MOVS r0,#0x10 +0001e0 6020 STR r0,[r4,#0] +;;;666 SAMSUNG_s21p.D60_count = 10; +0001e2 200a MOVS r0,#0xa +0001e4 498c LDR r1,|L1.1048| +0001e6 7008 STRB r0,[r1,#0] +0001e8 e03f B |L1.618| + |L1.490| +;;;667 } +;;;668 else if (SAMSUNG_s21p.D60_count == 10) +0001ea 488b LDR r0,|L1.1048| +0001ec 7800 LDRB r0,[r0,#0] ; SAMSUNG_s21p +0001ee 280a CMP r0,#0xa +0001f0 d108 BNE |L1.516| +;;;669 { +;;;670 *txbuffer = SAMSUNG_s21p.reg_60_10; +0001f2 4889 LDR r0,|L1.1048| +0001f4 30a3 ADDS r0,r0,#0xa3 +0001f6 6028 STR r0,[r5,#0] +;;;671 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_10); +0001f8 2010 MOVS r0,#0x10 +0001fa 6020 STR r0,[r4,#0] +;;;672 SAMSUNG_s21p.D60_count = 11; +0001fc 200b MOVS r0,#0xb +0001fe 4986 LDR r1,|L1.1048| +000200 7008 STRB r0,[r1,#0] +000202 e032 B |L1.618| + |L1.516| +;;;673 } +;;;674 else if (SAMSUNG_s21p.D60_count == 11) +000204 4884 LDR r0,|L1.1048| +000206 7800 LDRB r0,[r0,#0] ; SAMSUNG_s21p +000208 280b CMP r0,#0xb +00020a d108 BNE |L1.542| +;;;675 { +;;;676 *txbuffer = SAMSUNG_s21p.reg_60_10; +00020c 4882 LDR r0,|L1.1048| +00020e 30a3 ADDS r0,r0,#0xa3 +000210 6028 STR r0,[r5,#0] +;;;677 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_10); +000212 2010 MOVS r0,#0x10 +000214 6020 STR r0,[r4,#0] +;;;678 SAMSUNG_s21p.D60_count = 12; +000216 200c MOVS r0,#0xc +000218 497f LDR r1,|L1.1048| +00021a 7008 STRB r0,[r1,#0] +00021c e025 B |L1.618| + |L1.542| +;;;679 } +;;;680 else if (SAMSUNG_s21p.D60_count == 12) +00021e 487e LDR r0,|L1.1048| +000220 7800 LDRB r0,[r0,#0] ; SAMSUNG_s21p +000222 280c CMP r0,#0xc +000224 d108 BNE |L1.568| +;;;681 { +;;;682 *txbuffer = SAMSUNG_s21p.reg_60_11; +000226 487c LDR r0,|L1.1048| +000228 30b3 ADDS r0,r0,#0xb3 +00022a 6028 STR r0,[r5,#0] +;;;683 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_11); +00022c 2010 MOVS r0,#0x10 +00022e 6020 STR r0,[r4,#0] +;;;684 SAMSUNG_s21p.D60_count = 12; +000230 200c MOVS r0,#0xc +000232 4979 LDR r1,|L1.1048| +000234 7008 STRB r0,[r1,#0] +000236 e018 B |L1.618| + |L1.568| +;;;685 } +;;;686 else if (SAMSUNG_s21p.D60_count == 13) +000238 4877 LDR r0,|L1.1048| +00023a 7800 LDRB r0,[r0,#0] ; SAMSUNG_s21p +00023c 280d CMP r0,#0xd +00023e d108 BNE |L1.594| +;;;687 { +;;;688 *txbuffer = SAMSUNG_s21p.reg_60_12; +000240 4871 LDR r0,|L1.1032| +000242 38bd SUBS r0,r0,#0xbd +000244 6028 STR r0,[r5,#0] +;;;689 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_12); +000246 2010 MOVS r0,#0x10 +000248 6020 STR r0,[r4,#0] +;;;690 SAMSUNG_s21p.D60_count = 14; +00024a 200e MOVS r0,#0xe +00024c 4972 LDR r1,|L1.1048| +00024e 7008 STRB r0,[r1,#0] +000250 e00b B |L1.618| + |L1.594| +;;;691 } +;;;692 else if (SAMSUNG_s21p.D60_count == 14) +000252 4871 LDR r0,|L1.1048| +000254 7800 LDRB r0,[r0,#0] ; SAMSUNG_s21p +000256 280e CMP r0,#0xe +000258 d107 BNE |L1.618| +;;;693 { +;;;694 *txbuffer = SAMSUNG_s21p.reg_60_13; +00025a 486b LDR r0,|L1.1032| +00025c 38ad SUBS r0,r0,#0xad +00025e 6028 STR r0,[r5,#0] +;;;695 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_13); +000260 2010 MOVS r0,#0x10 +000262 6020 STR r0,[r4,#0] +;;;696 SAMSUNG_s21p.D60_count = 1; +000264 2001 MOVS r0,#1 +000266 496c LDR r1,|L1.1048| +000268 7008 STRB r0,[r1,#0] + |L1.618| +;;;697 } +;;;698 } +;;;699 } +;;;700 break; +00026a e10d B |L1.1160| + |L1.620| +;;;701 case 0x61: +;;;702 { +;;;703 if (SAMSUNG_s21p.Touch_ON[0] == 1) +00026c 4866 LDR r0,|L1.1032| +00026e 79c0 LDRB r0,[r0,#7] ; SAMSUNG_s21p +000270 2801 CMP r0,#1 +000272 d10a BNE |L1.650| +;;;704 { +;;;705 hal_gpio_set_output_data(g_phone_output_int_pad, IO_LVL_HIGH); // 多点触摸 +000274 2101 MOVS r1,#1 +000276 4866 LDR r0,|L1.1040| +000278 7800 LDRB r0,[r0,#0] ; g_phone_output_int_pad +00027a f7fffffe BL hal_gpio_set_output_data +;;;706 +;;;707 *txbuffer = &phone_reg_coord_back_X61[16]; +00027e 4865 LDR r0,|L1.1044| +000280 3010 ADDS r0,r0,#0x10 +000282 6028 STR r0,[r5,#0] +;;;708 *txbuffer_size = sizeof(phone_reg_coord_back_X61) - 16; +000284 2040 MOVS r0,#0x40 +000286 6020 STR r0,[r4,#0] +000288 e004 B |L1.660| + |L1.650| +;;;709 } +;;;710 else +;;;711 { +;;;712 *txbuffer = SAMSUNG_s21p.reg_61_0; +00028a 485f LDR r0,|L1.1032| +00028c 386d SUBS r0,r0,#0x6d +00028e 6028 STR r0,[r5,#0] +;;;713 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_61_0); +000290 2010 MOVS r0,#0x10 +000292 6020 STR r0,[r4,#0] + |L1.660| +;;;714 } +;;;715 } +;;;716 break; +000294 e0f8 B |L1.1160| + |L1.662| +;;;717 case 0x22: +;;;718 { +;;;719 *txbuffer = SAMSUNG_s21p.reg_22; +000296 485c LDR r0,|L1.1032| +000298 384d SUBS r0,r0,#0x4d +00029a 6028 STR r0,[r5,#0] +;;;720 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_22); +00029c 2005 MOVS r0,#5 +00029e 6020 STR r0,[r4,#0] +;;;721 // app_tp_transfer_screen_start(); +;;;722 g_screen_tp_init_restart = true; +0002a0 2001 MOVS r0,#1 +0002a2 495f LDR r1,|L1.1056| +0002a4 7008 STRB r0,[r1,#0] +;;;723 } +;;;724 break; +0002a6 e0ef B |L1.1160| + |L1.680| +;;;725 case 0x21: +;;;726 { +;;;727 *txbuffer = SAMSUNG_s21p.reg_21; +0002a8 4857 LDR r0,|L1.1032| +0002aa 3848 SUBS r0,r0,#0x48 +0002ac 6028 STR r0,[r5,#0] +;;;728 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_21); +0002ae 2001 MOVS r0,#1 +0002b0 6020 STR r0,[r4,#0] +;;;729 } +;;;730 break; +0002b2 e0e9 B |L1.1160| + |L1.692| +;;;731 case 0x55: +;;;732 { +;;;733 *txbuffer = SAMSUNG_s21p.reg_55; +0002b4 4854 LDR r0,|L1.1032| +0002b6 3847 SUBS r0,r0,#0x47 +0002b8 6028 STR r0,[r5,#0] +;;;734 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_55); +0002ba 2001 MOVS r0,#1 +0002bc 6020 STR r0,[r4,#0] +;;;735 } +;;;736 break; +0002be e0e3 B |L1.1160| + |L1.704| +;;;737 case 0xaf: +;;;738 { +;;;739 *txbuffer = SAMSUNG_s21p.reg_af; +0002c0 4851 LDR r0,|L1.1032| +0002c2 3846 SUBS r0,r0,#0x46 +0002c4 6028 STR r0,[r5,#0] +;;;740 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_af); +0002c6 2004 MOVS r0,#4 +0002c8 6020 STR r0,[r4,#0] +;;;741 } +;;;742 break; +0002ca e0dd B |L1.1160| + |L1.716| +;;;743 case 0xf1: +;;;744 { +;;;745 *txbuffer = SAMSUNG_s21p.reg_f1; +0002cc 484e LDR r0,|L1.1032| +0002ce 3842 SUBS r0,r0,#0x42 +0002d0 6028 STR r0,[r5,#0] +;;;746 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_f1); +0002d2 2004 MOVS r0,#4 +0002d4 6020 STR r0,[r4,#0] +;;;747 } +;;;748 break; +0002d6 e0d7 B |L1.1160| + |L1.728| +;;;749 case 0xa5: +;;;750 { +;;;751 *txbuffer = SAMSUNG_s21p.reg_a5; +0002d8 484b LDR r0,|L1.1032| +0002da 3836 SUBS r0,r0,#0x36 +0002dc 6028 STR r0,[r5,#0] +;;;752 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_a5); +0002de 2004 MOVS r0,#4 +0002e0 6020 STR r0,[r4,#0] +;;;753 } +;;;754 break; +0002e2 e0d1 B |L1.1160| + |L1.740| +;;;755 case 0xa3: +;;;756 { +;;;757 *txbuffer = SAMSUNG_s21p.reg_a3; +0002e4 4848 LDR r0,|L1.1032| +0002e6 383e SUBS r0,r0,#0x3e +0002e8 6028 STR r0,[r5,#0] +;;;758 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_a3); +0002ea 2004 MOVS r0,#4 +0002ec 6020 STR r0,[r4,#0] +;;;759 } +;;;760 break; +0002ee e0cb B |L1.1160| + |L1.752| +;;;761 case 0xa4: +;;;762 { +;;;763 *txbuffer = SAMSUNG_s21p.reg_a4; +0002f0 4845 LDR r0,|L1.1032| +0002f2 383a SUBS r0,r0,#0x3a +0002f4 6028 STR r0,[r5,#0] +;;;764 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_a4); +0002f6 2004 MOVS r0,#4 +0002f8 6020 STR r0,[r4,#0] +;;;765 } +;;;766 break; +0002fa e0c5 B |L1.1160| + |L1.764| +;;;767 case 0x52: +;;;768 { +;;;769 *txbuffer = SAMSUNG_s21p.reg_52; +0002fc 4842 LDR r0,|L1.1032| +0002fe 3832 SUBS r0,r0,#0x32 +000300 6028 STR r0,[r5,#0] +;;;770 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_52); +000302 2003 MOVS r0,#3 +000304 6020 STR r0,[r4,#0] +;;;771 } +;;;772 break; +000306 e0bf B |L1.1160| + |L1.776| +;;;773 case 0x23: +;;;774 { +;;;775 *txbuffer = SAMSUNG_s21p.reg_23; +000308 483f LDR r0,|L1.1032| +00030a 382f SUBS r0,r0,#0x2f +00030c 6028 STR r0,[r5,#0] +;;;776 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_23); +00030e 200b MOVS r0,#0xb +000310 6020 STR r0,[r4,#0] +;;;777 } +;;;778 break; +000312 e0b9 B |L1.1160| + |L1.788| +;;;779 case 0x30: +;;;780 { +;;;781 *txbuffer = SAMSUNG_s21p.reg_30; +000314 483c LDR r0,|L1.1032| +000316 3824 SUBS r0,r0,#0x24 +000318 6028 STR r0,[r5,#0] +;;;782 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_30); +00031a 2002 MOVS r0,#2 +00031c 6020 STR r0,[r4,#0] +;;;783 } +;;;784 break; +00031e e0b3 B |L1.1160| + |L1.800| +;;;785 case 0x90: +;;;786 { +;;;787 *txbuffer = SAMSUNG_s21p.reg_90; +000320 4839 LDR r0,|L1.1032| +000322 3822 SUBS r0,r0,#0x22 +000324 6028 STR r0,[r5,#0] +;;;788 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_90); +000326 200a MOVS r0,#0xa +000328 6020 STR r0,[r4,#0] +;;;789 } +;;;790 break; +00032a e0ad B |L1.1160| + |L1.812| +;;;791 case 0x11: +;;;792 { +;;;793 SAMSUNG_s21p.D60_count = 2; +00032c 2002 MOVS r0,#2 +00032e 493a LDR r1,|L1.1048| +000330 7008 STRB r0,[r1,#0] +;;;794 } +;;;795 break; +000332 e0a9 B |L1.1160| + |L1.820| +;;;796 case 0x85: +;;;797 { +;;;798 if (rxbuffer_size > 1) +000334 2f01 CMP r7,#1 +000336 d909 BLS |L1.844| +;;;799 { +;;;800 if ((rxbuffer[1] == 0x00) && (rxbuffer[2] == 0x00)) +000338 7870 LDRB r0,[r6,#1] +00033a 2800 CMP r0,#0 +00033c d105 BNE |L1.842| +00033e 78b0 LDRB r0,[r6,#2] +000340 2800 CMP r0,#0 +000342 d102 BNE |L1.842| +;;;801 { +;;;802 SAMSUNG_s21p.D85_count = 1; +000344 2001 MOVS r0,#1 +000346 4934 LDR r1,|L1.1048| +000348 7048 STRB r0,[r1,#1] + |L1.842| +;;;803 } +;;;804 return; +;;;805 } +;;;806 else +;;;807 { +;;;808 if(SAMSUNG_s21p.D85_count == 0x00) +;;;809 { +;;;810 *txbuffer = SAMSUNG_s21p.reg_85_0; +;;;811 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_85_0); +;;;812 } +;;;813 else if(SAMSUNG_s21p.D85_count == 0x01) +;;;814 { +;;;815 *txbuffer = SAMSUNG_s21p.reg_85_1; +;;;816 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_85_1); +;;;817 } +;;;818 } +;;;819 } +;;;820 break; +;;;821 case 0x92: +;;;822 { +;;;823 if (rxbuffer_size == 1) +;;;824 { +;;;825 if(SAMSUNG_s21p.D92_count == 0x00) +;;;826 { +;;;827 *txbuffer = SAMSUNG_s21p.reg_92_0; +;;;828 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_92_0); +;;;829 SAMSUNG_s21p.D92_count = 1; +;;;830 } +;;;831 else if(SAMSUNG_s21p.D92_count == 0x01) +;;;832 { +;;;833 *txbuffer = SAMSUNG_s21p.reg_92_1; +;;;834 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_92_1); +;;;835 SAMSUNG_s21p.D92_count = 2; +;;;836 } +;;;837 else +;;;838 { +;;;839 *txbuffer = SAMSUNG_s21p.reg_92_2; +;;;840 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_92_2); +;;;841 // SAMSUNG_s21p.D92_count = 0; +;;;842 } +;;;843 } +;;;844 +;;;845 if (rxbuffer_size == 3) +;;;846 { +;;;847 if((rxbuffer[1] == 0xF0)&&(rxbuffer[2] == 0x00)) +;;;848 { +;;;849 SAMSUNG_s21p.D92_count = 2; +;;;850 } +;;;851 } +;;;852 } +;;;853 break; +;;;854 // case 0x72: +;;;855 // { +;;;856 // *txbuffer = SAMSUNG_s21p.reg_60_0; +;;;857 // *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_0); +;;;858 // } +;;;859 case 0x74: +;;;860 { +;;;861 if(rxbuffer_size == 2) +;;;862 { +;;;863 if(rxbuffer[1] == 0x01) +;;;864 SAMSUNG_s21p.D60_count = 5; +;;;865 else if((rxbuffer[1] == 0x02) || (rxbuffer[1] == 0x03)) +;;;866 SAMSUNG_s21p.D60_count = 6; +;;;867 } +;;;868 } +;;;869 break; +;;;870 // case 0x80: +;;;871 // { +;;;872 // *txbuffer = SAMSUNG_s21p.reg_60_0; +;;;873 // *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_0); +;;;874 // } +;;;875 // break; +;;;876 case 0xE4: +;;;877 { +;;;878 if (rxbuffer_size == 2) +;;;879 { +;;;880 if(rxbuffer[1] == 0x00) +;;;881 SAMSUNG_s21p.D60_count = 7; +;;;882 else if(rxbuffer[1] == 0x01) +;;;883 SAMSUNG_s21p.D60_count = 8; +;;;884 } +;;;885 else +;;;886 { +;;;887 if(SAMSUNG_s21p.Phone_Init_Done == false) +;;;888 { +;;;889 *txbuffer = SAMSUNG_s21p.reg_e4_0; +;;;890 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_e4_0); +;;;891 } +;;;892 else{ +;;;893 *txbuffer = SAMSUNG_s21p.reg_e4_1; +;;;894 *txbuffer_size = sizeof(SAMSUNG_s21p.reg_e4_1); +;;;895 } +;;;896 } +;;;897 } +;;;898 break; +;;;899 case 0xF3: +;;;900 { +;;;901 if (rxbuffer_size == 2) +;;;902 { +;;;903 if(rxbuffer[1] == 0x00) +;;;904 SAMSUNG_s21p.D60_count = 9; +;;;905 } +;;;906 } +;;;907 break; +;;;908 case 0xAE: +;;;909 { +;;;910 if (rxbuffer_size > 1) +;;;911 { +;;;912 if ((rxbuffer[1] == 0xA3) && (rxbuffer[2] == 0x40)) +;;;913 { +;;;914 //if(D60_count==0) +;;;915 { +;;;916 SAMSUNG_s21p.D60_count = 4; +;;;917 +;;;918 } +;;;919 +;;;920 } +;;;921 } +;;;922 } +;;;923 break; +;;;924 case 0xBE: +;;;925 { +;;;926 if (rxbuffer_size == 2) +;;;927 { +;;;928 SAMSUNG_s21p.Phone_Init_Done = true; +;;;929 } +;;;930 } +;;;931 break; +;;;932 +;;;933 } +;;;934 //hal_gpio_set_output_data(IO_PAD_AP_SPIS_MISO,0); +;;;935 +;;;936 } +00034a bdf8 POP {r3-r7,pc} + |L1.844| +00034c 4832 LDR r0,|L1.1048| +00034e 7840 LDRB r0,[r0,#1] ;808 ; SAMSUNG_s21p +000350 2800 CMP r0,#0 ;808 +000352 d105 BNE |L1.864| +000354 482c LDR r0,|L1.1032| +000356 3818 SUBS r0,r0,#0x18 ;810 +000358 6028 STR r0,[r5,#0] ;810 +00035a 201c MOVS r0,#0x1c ;811 +00035c 6020 STR r0,[r4,#0] ;811 +00035e e008 B |L1.882| + |L1.864| +000360 482d LDR r0,|L1.1048| +000362 7840 LDRB r0,[r0,#1] ;813 ; SAMSUNG_s21p +000364 2801 CMP r0,#1 ;813 +000366 d104 BNE |L1.882| +000368 4827 LDR r0,|L1.1032| +00036a 1d00 ADDS r0,r0,#4 ;815 +00036c 6028 STR r0,[r5,#0] ;815 +00036e 2001 MOVS r0,#1 ;816 +000370 6020 STR r0,[r4,#0] ;816 + |L1.882| +000372 e089 B |L1.1160| + |L1.884| +000374 2f01 CMP r7,#1 ;823 +000376 d11e BNE |L1.950| +000378 4827 LDR r0,|L1.1048| +00037a 7880 LDRB r0,[r0,#2] ;825 ; SAMSUNG_s21p +00037c 2800 CMP r0,#0 ;825 +00037e d108 BNE |L1.914| +000380 4821 LDR r0,|L1.1032| +000382 3008 ADDS r0,r0,#8 ;827 +000384 6028 STR r0,[r5,#0] ;827 +000386 2006 MOVS r0,#6 ;828 +000388 6020 STR r0,[r4,#0] ;828 +00038a 2001 MOVS r0,#1 ;829 +00038c 4922 LDR r1,|L1.1048| +00038e 7088 STRB r0,[r1,#2] ;829 +000390 e011 B |L1.950| + |L1.914| +000392 4821 LDR r0,|L1.1048| +000394 7880 LDRB r0,[r0,#2] ;831 ; SAMSUNG_s21p +000396 2801 CMP r0,#1 ;831 +000398 d108 BNE |L1.940| +00039a 481b LDR r0,|L1.1032| +00039c 300e ADDS r0,r0,#0xe ;833 +00039e 6028 STR r0,[r5,#0] ;833 +0003a0 2003 MOVS r0,#3 ;834 +0003a2 6020 STR r0,[r4,#0] ;834 +0003a4 2002 MOVS r0,#2 ;835 +0003a6 491c LDR r1,|L1.1048| +0003a8 7088 STRB r0,[r1,#2] ;835 +0003aa e004 B |L1.950| + |L1.940| +0003ac 4816 LDR r0,|L1.1032| +0003ae 3011 ADDS r0,r0,#0x11 ;839 +0003b0 6028 STR r0,[r5,#0] ;839 +0003b2 2002 MOVS r0,#2 ;840 +0003b4 6020 STR r0,[r4,#0] ;840 + |L1.950| +0003b6 2f03 CMP r7,#3 ;845 +0003b8 d108 BNE |L1.972| +0003ba 7870 LDRB r0,[r6,#1] ;847 +0003bc 28f0 CMP r0,#0xf0 ;847 +0003be d105 BNE |L1.972| +0003c0 78b0 LDRB r0,[r6,#2] ;847 +0003c2 2800 CMP r0,#0 ;847 +0003c4 d102 BNE |L1.972| +0003c6 2002 MOVS r0,#2 ;849 +0003c8 4913 LDR r1,|L1.1048| +0003ca 7088 STRB r0,[r1,#2] ;849 + |L1.972| +0003cc e05c B |L1.1160| + |L1.974| +0003ce 2f02 CMP r7,#2 ;861 +0003d0 d10f BNE |L1.1010| +0003d2 7870 LDRB r0,[r6,#1] ;863 +0003d4 2801 CMP r0,#1 ;863 +0003d6 d103 BNE |L1.992| +0003d8 2005 MOVS r0,#5 ;864 +0003da 490f LDR r1,|L1.1048| +0003dc 7008 STRB r0,[r1,#0] ;864 +0003de e008 B |L1.1010| + |L1.992| +0003e0 7870 LDRB r0,[r6,#1] ;865 +0003e2 2802 CMP r0,#2 ;865 +0003e4 d002 BEQ |L1.1004| +0003e6 7870 LDRB r0,[r6,#1] ;865 +0003e8 2803 CMP r0,#3 ;865 +0003ea d102 BNE |L1.1010| + |L1.1004| +0003ec 2006 MOVS r0,#6 ;866 +0003ee 490a LDR r1,|L1.1048| +0003f0 7008 STRB r0,[r1,#0] ;866 + |L1.1010| +0003f2 e049 B |L1.1160| + |L1.1012| +0003f4 2f02 CMP r7,#2 ;878 +0003f6 d11c BNE |L1.1074| +0003f8 7870 LDRB r0,[r6,#1] ;880 +0003fa 2800 CMP r0,#0 ;880 +0003fc d112 BNE |L1.1060| +0003fe 2007 MOVS r0,#7 ;881 +000400 4905 LDR r1,|L1.1048| +000402 7008 STRB r0,[r1,#0] ;881 +000404 e024 B |L1.1104| +000406 0000 DCW 0x0000 + |L1.1032| + DCD SAMSUNG_s21p+0x180 + |L1.1036| + DCD phone_reg_coord_BUF_NUM + |L1.1040| + DCD g_phone_output_int_pad + |L1.1044| + DCD phone_reg_coord_back_X61 + |L1.1048| + DCD SAMSUNG_s21p + |L1.1052| + DCD g_screen_tp_init_start + |L1.1056| + DCD g_screen_tp_init_restart + |L1.1060| +000424 7870 LDRB r0,[r6,#1] ;882 +000426 2801 CMP r0,#1 ;882 +000428 d112 BNE |L1.1104| +00042a 2008 MOVS r0,#8 ;883 +00042c 4918 LDR r1,|L1.1168| +00042e 7008 STRB r0,[r1,#0] ;883 +000430 e00e B |L1.1104| + |L1.1074| +000432 4818 LDR r0,|L1.1172| +000434 7cc0 LDRB r0,[r0,#0x13] ;887 ; SAMSUNG_s21p +000436 2800 CMP r0,#0 ;887 +000438 d105 BNE |L1.1094| +00043a 4816 LDR r0,|L1.1172| +00043c 1d40 ADDS r0,r0,#5 ;889 +00043e 6028 STR r0,[r5,#0] ;889 +000440 2001 MOVS r0,#1 ;890 +000442 6020 STR r0,[r4,#0] ;890 +000444 e004 B |L1.1104| + |L1.1094| +000446 4813 LDR r0,|L1.1172| +000448 1d80 ADDS r0,r0,#6 ;893 +00044a 6028 STR r0,[r5,#0] ;893 +00044c 2001 MOVS r0,#1 ;894 +00044e 6020 STR r0,[r4,#0] ;894 + |L1.1104| +000450 e01a B |L1.1160| + |L1.1106| +000452 2f02 CMP r7,#2 ;901 +000454 d105 BNE |L1.1122| +000456 7870 LDRB r0,[r6,#1] ;903 +000458 2800 CMP r0,#0 ;903 +00045a d102 BNE |L1.1122| +00045c 2009 MOVS r0,#9 ;904 +00045e 490c LDR r1,|L1.1168| +000460 7008 STRB r0,[r1,#0] ;904 + |L1.1122| +000462 e011 B |L1.1160| + |L1.1124| +000464 2f01 CMP r7,#1 ;910 +000466 d908 BLS |L1.1146| +000468 7870 LDRB r0,[r6,#1] ;912 +00046a 28a3 CMP r0,#0xa3 ;912 +00046c d105 BNE |L1.1146| +00046e 78b0 LDRB r0,[r6,#2] ;912 +000470 2840 CMP r0,#0x40 ;912 +000472 d102 BNE |L1.1146| +000474 2004 MOVS r0,#4 ;916 +000476 4906 LDR r1,|L1.1168| +000478 7008 STRB r0,[r1,#0] ;916 + |L1.1146| +00047a e005 B |L1.1160| + |L1.1148| +00047c 2f02 CMP r7,#2 ;926 +00047e d102 BNE |L1.1158| +000480 2101 MOVS r1,#1 ;928 +000482 4804 LDR r0,|L1.1172| +000484 74c1 STRB r1,[r0,#0x13] ;928 + |L1.1158| +000486 bf00 NOP ;931 + |L1.1160| +000488 bf00 NOP ;700 +00048a bf00 NOP +00048c e75d B |L1.842| +;;;937 + ENDP + +00048e 0000 DCW 0x0000 + |L1.1168| + DCD SAMSUNG_s21p + |L1.1172| + DCD SAMSUNG_s21p+0x180 + + AREA ||i.app_tp_screen_analysis_const||, CODE, READONLY, ALIGN=2 + + app_tp_screen_analysis_const PROC +;;;327 **************************************************************************/ +;;;328 uint8_t app_tp_screen_analysis_const(uint8_t transfer_now, uint8_t *rxbuffer, size_t data_size) +000000 b530 PUSH {r4,r5,lr} +;;;329 { +000002 4603 MOV r3,r0 +;;;330 uint8_t return_num = transfer_now + 1; +000004 1c5c ADDS r4,r3,#1 +000006 b2e0 UXTB r0,r4 +;;;331 +;;;332 g_tp_sleep_in = false; // 退出息屏状态 +000008 2400 MOVS r4,#0 +00000a 4d01 LDR r5,|L2.16| +00000c 702c STRB r4,[r5,#0] +;;;333 +;;;334 // static uint8_t app_tp_count = 0; +;;;335 +;;;336 // switch (transfer_now) +;;;337 // { +;;;338 // case data_num_02: //87 +;;;339 // if (rxbuffer[0] == 0x03) +;;;340 // { +;;;341 //#if S8_TP_DEBUG_LOG +;;;342 // TAU_LOGD("87 wait 03 ok\n"); +;;;343 //#endif +;;;344 // } +;;;345 // else +;;;346 // { +;;;347 //#if S8_TP_DEBUG_LOG +;;;348 // TAU_LOGD("TD TP init [%d]\n", rxbuffer[2]); +;;;349 //#endif +;;;350 // app_tp_count++; +;;;351 // return_num = transfer_now; +;;;352 // if (app_tp_count > 120) //初始化不成功,重新reset screen +;;;353 // { +;;;354 // app_tp_count = 0; +;;;355 // app_tp_screen_init(); +;;;356 // return_num = data_num_00; +;;;357 // } +;;;358 // delayMs(10); +;;;359 // } +;;;360 // break; +;;;361 // default: +;;;362 // break; +;;;363 // } +;;;364 +;;;365 return return_num; +;;;366 +;;;367 } +00000e bd30 POP {r4,r5,pc} +;;;368 + ENDP + + |L2.16| + DCD g_tp_sleep_in + + AREA ||i.app_tp_screen_analysis_int||, CODE, READONLY, ALIGN=2 + + app_tp_screen_analysis_int PROC +;;;460 +;;;461 uint8_t app_tp_screen_analysis_int(uint8_t transfer_now, uint8_t *rxbuffer, size_t data_size) +000000 b5f7 PUSH {r0-r2,r4-r7,lr} +;;;462 { +000002 b08e SUB sp,sp,#0x38 +;;;463 uint8_t touch_number = 0; +000004 2000 MOVS r0,#0 +000006 900c STR r0,[sp,#0x30] +;;;464 uint8_t ii = 0,ss = 0; +000008 2700 MOVS r7,#0 +00000a 2500 MOVS r5,#0 +;;;465 +;;;466 phone_reg_coord_BUF_NUM = data_size/8; +00000c 9810 LDR r0,[sp,#0x40] +00000e 0540 LSLS r0,r0,#21 +000010 0e00 LSRS r0,r0,#24 +000012 49a1 LDR r1,|L3.664| +000014 7008 STRB r0,[r1,#0] +;;;467 +;;;468 if (phone_reg_coord_BUF_NUM >= Touch_MAX_Point)phone_reg_coord_BUF_NUM = Touch_MAX_Point; +000016 4608 MOV r0,r1 +000018 7800 LDRB r0,[r0,#0] ; phone_reg_coord_BUF_NUM +00001a 2805 CMP r0,#5 +00001c db01 BLT |L3.34| +00001e 2005 MOVS r0,#5 +000020 7008 STRB r0,[r1,#0] + |L3.34| +;;;469 +;;;470 for (ii = 0; ii < phone_reg_coord_BUF_NUM; ii++) +000022 2700 MOVS r7,#0 +000024 e010 B |L3.72| + |L3.38| +;;;471 { +;;;472 for (ss = 0; ss < 8; ss++) +000026 2500 MOVS r5,#0 +000028 e00a B |L3.64| + |L3.42| +;;;473 phone_reg_coord_back_BUF[ii][ss] = rxbuffer[ii*8+ss]; +00002a 00f8 LSLS r0,r7,#3 +00002c 1941 ADDS r1,r0,r5 +00002e 980f LDR r0,[sp,#0x3c] +000030 5c41 LDRB r1,[r0,r1] +000032 200a MOVS r0,#0xa +000034 4378 MULS r0,r7,r0 +000036 4a99 LDR r2,|L3.668| +000038 1880 ADDS r0,r0,r2 +00003a 5541 STRB r1,[r0,r5] +00003c 1c68 ADDS r0,r5,#1 ;472 +00003e b2c5 UXTB r5,r0 ;472 + |L3.64| +000040 2d08 CMP r5,#8 ;472 +000042 dbf2 BLT |L3.42| +000044 1c78 ADDS r0,r7,#1 ;470 +000046 b2c7 UXTB r7,r0 ;470 + |L3.72| +000048 4893 LDR r0,|L3.664| +00004a 7800 LDRB r0,[r0,#0] ;470 ; phone_reg_coord_BUF_NUM +00004c 4287 CMP r7,r0 ;470 +00004e dbea BLT |L3.38| +;;;474 } +;;;475 +;;;476 //ST TP数据分析处理 +;;;477 // byte0: bit4-bit7:0x1:按下事件;0x2:移动事件;0x3:松开事件; bit2-bit3:reserved; bit0-bit1:0x3 +;;;478 // byte1: bit4-bit7:touchId; 手指数 0x0: Pointer ID 0、0x1: Pointer ID 1 ... 0xF: Pointer ID 15 +;;;479 // bit0-bit3:touchType: 0x0: Invalid、0x1: Finger touch、0x2: Glove touch、0x3: Stylus touch、0x4: Palm touch、Others: Reserved +;;;480 // byte2: X低8位 +;;;481 // byte3: 高4位:Y的bit0-bit3; 低4位:X的bit11-bit8 +;;;482 // byte4: Y的:bit11-bit4 +;;;483 // byte5: reserved +;;;484 // byte6: reserved +;;;485 // byte7: bit5-bit7:reserved; bit0-bit4:buffer中剩余的事件数 evt_left +;;;486 +;;;487 Touch.Event_Single_Flag = 1; +000050 2101 MOVS r1,#1 +000052 4893 LDR r0,|L3.672| +000054 71c1 STRB r1,[r0,#7] +;;;488 // phone_reg_coord_BUF_NUM = 0; +;;;489 +;;;490 if (g_tp_sleep_in == false) +000056 4893 LDR r0,|L3.676| +000058 7800 LDRB r0,[r0,#0] ; g_tp_sleep_in +00005a 2800 CMP r0,#0 +00005c d17e BNE |L3.348| +;;;491 { +;;;492 u8 s1 = 0; +00005e 2400 MOVS r4,#0 +;;;493 for (ss = 0; ss < phone_reg_coord_BUF_NUM; ss++) +000060 2500 MOVS r5,#0 +000062 e0ff B |L3.612| + |L3.100| +;;;494 { +;;;495 uint8_t touch_id = 0; +000064 bf00 NOP +;;;496 uint8_t touch_event_id = 0; +000066 2000 MOVS r0,#0 +000068 900a STR r0,[sp,#0x28] +;;;497 uint8_t ap_event_id = 0; +00006a 9009 STR r0,[sp,#0x24] +;;;498 +;;;499 touch_id = phone_reg_coord_back_BUF[ss][1] >> 4; +00006c 200a MOVS r0,#0xa +00006e 4368 MULS r0,r5,r0 +000070 498a LDR r1,|L3.668| +000072 1840 ADDS r0,r0,r1 +000074 7840 LDRB r0,[r0,#1] +000076 1100 ASRS r0,r0,#4 +000078 900b STR r0,[sp,#0x2c] +;;;500 if (touch_id >= Touch_MAX_Point)continue; //判断手指编号是否超出范围 +00007a 980b LDR r0,[sp,#0x2c] +00007c 2805 CMP r0,#5 +00007e db00 BLT |L3.130| +000080 e0ee B |L3.608| + |L3.130| +;;;501 +;;;502 touch_event_id = phone_reg_coord_back_BUF[ss][0] >> 4;//触摸事件 +000082 200a MOVS r0,#0xa +000084 4368 MULS r0,r5,r0 +000086 4985 LDR r1,|L3.668| +000088 5c08 LDRB r0,[r1,r0] +00008a 1100 ASRS r0,r0,#4 +00008c 900a STR r0,[sp,#0x28] +;;;503 // if((touch_event_id == 0x01)||(touch_event_id == 0x02)) // 按下事件 // 移动事件 +;;;504 // { +;;;505 // +;;;506 // } +;;;507 Touch.Touch_Single_Point[0].X_in = (((u16)phone_reg_coord_back_BUF[ss][3] & 0x0F) << 8) | (phone_reg_coord_back_BUF[ss][2]); +00008e 200a MOVS r0,#0xa +000090 4368 MULS r0,r5,r0 +000092 1840 ADDS r0,r0,r1 +000094 78c0 LDRB r0,[r0,#3] +000096 0700 LSLS r0,r0,#28 +000098 0d00 LSRS r0,r0,#20 +00009a 210a MOVS r1,#0xa +00009c 4369 MULS r1,r5,r1 +00009e 4a7f LDR r2,|L3.668| +0000a0 1889 ADDS r1,r1,r2 +0000a2 7889 LDRB r1,[r1,#2] +0000a4 4308 ORRS r0,r0,r1 +0000a6 497e LDR r1,|L3.672| +0000a8 3940 SUBS r1,r1,#0x40 +0000aa 8088 STRH r0,[r1,#4] +;;;508 Touch.Touch_Single_Point[0].Y_in = ((u16)phone_reg_coord_back_BUF[ss][4] << 4) | ((phone_reg_coord_back_BUF[ss][3] & 0xF0) >> 4); +0000ac 200a MOVS r0,#0xa +0000ae 4368 MULS r0,r5,r0 +0000b0 4611 MOV r1,r2 +0000b2 1840 ADDS r0,r0,r1 +0000b4 7900 LDRB r0,[r0,#4] +0000b6 0100 LSLS r0,r0,#4 +0000b8 210a MOVS r1,#0xa +0000ba 4369 MULS r1,r5,r1 +0000bc 1889 ADDS r1,r1,r2 +0000be 78c9 LDRB r1,[r1,#3] +0000c0 22f0 MOVS r2,#0xf0 +0000c2 4011 ANDS r1,r1,r2 +0000c4 1109 ASRS r1,r1,#4 +0000c6 4308 ORRS r0,r0,r1 +0000c8 4975 LDR r1,|L3.672| +0000ca 3940 SUBS r1,r1,#0x40 +0000cc 80c8 STRH r0,[r1,#6] +;;;509 //分辨率转换 +;;;510 Touch.Touch_Single_Point[0].X = (((float)Touch.Touch_Single_Point[0].X_in) * (float)INPUT_WIDTH_VALUE) / ((float)OUTPUT_WIDTH_VALUE); +0000ce 8888 LDRH r0,[r1,#4] ; Touch +0000d0 f7fffffe BL __aeabi_ui2f +0000d4 4974 LDR r1,|L3.680| +0000d6 9005 STR r0,[sp,#0x14] +0000d8 f7fffffe BL __aeabi_fmul +0000dc 4972 LDR r1,|L3.680| +0000de 9006 STR r0,[sp,#0x18] +0000e0 f7fffffe BL __aeabi_fdiv +0000e4 9007 STR r0,[sp,#0x1c] +0000e6 f7fffffe BL __aeabi_f2uiz +0000ea 496d LDR r1,|L3.672| +0000ec 3940 SUBS r1,r1,#0x40 +0000ee 8008 STRH r0,[r1,#0] +;;;511 Touch.Touch_Single_Point[0].Y = (((float)Touch.Touch_Single_Point[0].Y_in) * (float)INPUT_HEIGHT_VALUE) / ((float)OUTPUT_HEIGHT_VALUE); +0000f0 88c8 LDRH r0,[r1,#6] ; Touch +0000f2 f7fffffe BL __aeabi_ui2f +0000f6 496d LDR r1,|L3.684| +0000f8 9005 STR r0,[sp,#0x14] +0000fa f7fffffe BL __aeabi_fmul +0000fe 496b LDR r1,|L3.684| +000100 9006 STR r0,[sp,#0x18] +000102 f7fffffe BL __aeabi_fdiv +000106 9007 STR r0,[sp,#0x1c] +000108 f7fffffe BL __aeabi_f2uiz +00010c 4964 LDR r1,|L3.672| +00010e 3940 SUBS r1,r1,#0x40 +000110 8048 STRH r0,[r1,#2] +;;;512 +;;;513 u16 X0, Y0; +;;;514 X0 = ((float)Touch.Touch_Single_Point[0].X) * 4095.0 / ((float)INPUT_WIDTH_VALUE); +000112 8808 LDRH r0,[r1,#0] ; Touch +000114 f7fffffe BL __aeabi_ui2f +000118 9001 STR r0,[sp,#4] +00011a f7fffffe BL __aeabi_f2d +00011e 2200 MOVS r2,#0 +000120 4b63 LDR r3,|L3.688| +000122 9103 STR r1,[sp,#0xc] +000124 9002 STR r0,[sp,#8] +000126 f7fffffe BL __aeabi_dmul +00012a 2200 MOVS r2,#0 +00012c 4b61 LDR r3,|L3.692| +00012e 9105 STR r1,[sp,#0x14] +000130 9004 STR r0,[sp,#0x10] +000132 f7fffffe BL __aeabi_ddiv +000136 9107 STR r1,[sp,#0x1c] +000138 9006 STR r0,[sp,#0x18] +00013a f7fffffe BL __aeabi_d2uiz +00013e b280 UXTH r0,r0 +000140 9008 STR r0,[sp,#0x20] +;;;515 Y0 = ((float)Touch.Touch_Single_Point[0].Y) * 4095.0 / ((float)INPUT_HEIGHT_VALUE); +000142 4957 LDR r1,|L3.672| +000144 3940 SUBS r1,r1,#0x40 +000146 8848 LDRH r0,[r1,#2] ; Touch +000148 f7fffffe BL __aeabi_ui2f +00014c 9001 STR r0,[sp,#4] +00014e f7fffffe BL __aeabi_f2d +000152 2200 MOVS r2,#0 +000154 4b56 LDR r3,|L3.688| +000156 9103 STR r1,[sp,#0xc] +000158 9002 STR r0,[sp,#8] +00015a e000 B |L3.350| + |L3.348| +00015c e093 B |L3.646| + |L3.350| +00015e f7fffffe BL __aeabi_dmul +000162 2200 MOVS r2,#0 +000164 4b54 LDR r3,|L3.696| +000166 9105 STR r1,[sp,#0x14] +000168 9004 STR r0,[sp,#0x10] +00016a f7fffffe BL __aeabi_ddiv +00016e 9107 STR r1,[sp,#0x1c] +000170 9006 STR r0,[sp,#0x18] +000172 f7fffffe BL __aeabi_d2uiz +000176 b286 UXTH r6,r0 +;;;516 if (X0 > 0xfff)X0 = 0xfff; +000178 4950 LDR r1,|L3.700| +00017a 9808 LDR r0,[sp,#0x20] +00017c 4288 CMP r0,r1 +00017e dd01 BLE |L3.388| +000180 4608 MOV r0,r1 +000182 9008 STR r0,[sp,#0x20] + |L3.388| +;;;517 if (Y0 > 0xfff)Y0 = 0xfff; +000184 484d LDR r0,|L3.700| +000186 4286 CMP r6,r0 +000188 dd00 BLE |L3.396| +00018a 4606 MOV r6,r0 + |L3.396| +;;;518 +;;;519 Y0 = 0xfff - Y0; // 零点上下不一致,需要转换 +00018c 484b LDR r0,|L3.700| +00018e 1b80 SUBS r0,r0,r6 +000190 b286 UXTH r6,r0 +;;;520 +;;;521 // hal_gpio_set_output_data(IO_PAD_AP_SPIS_MISO, IO_LVL_LOW); +;;;522 //bit0-bit1:event id; 0表示触摸类事件;1表示状态事件;2表示手势事件;3表示空事件 +;;;523 //bit2-bit5:touch id; 表示第几个触摸手指 +;;;524 //bit6-bit7:touch action; 0:没有触摸事件;1:按下;2:移动;3:松开 +;;;525 +;;;526 phone_reg_coord_back_X61[((s1) * 16) + 0] = (touch_event_id << 6) | ((touch_id + 1) << 2) | ap_event_id; //44 press C4 leave 84 move +000192 980a LDR r0,[sp,#0x28] +000194 0181 LSLS r1,r0,#6 +000196 980b LDR r0,[sp,#0x2c] +000198 1c40 ADDS r0,r0,#1 +00019a 0080 LSLS r0,r0,#2 +00019c 4308 ORRS r0,r0,r1 +00019e 9909 LDR r1,[sp,#0x24] +0001a0 4308 ORRS r0,r0,r1 +0001a2 b2c1 UXTB r1,r0 +0001a4 0120 LSLS r0,r4,#4 +0001a6 4a46 LDR r2,|L3.704| +0001a8 5411 STRB r1,[r2,r0] +;;;527 phone_reg_coord_back_X61[((s1) * 16) + 1] = (uint8_t)((X0 & 0xFF0) >> 4); //x 高八位 +0001aa 21ff MOVS r1,#0xff +0001ac 0109 LSLS r1,r1,#4 +0001ae 9808 LDR r0,[sp,#0x20] +0001b0 4008 ANDS r0,r0,r1 +0001b2 1101 ASRS r1,r0,#4 +0001b4 0120 LSLS r0,r4,#4 +0001b6 1c40 ADDS r0,r0,#1 +0001b8 5411 STRB r1,[r2,r0] +;;;528 phone_reg_coord_back_X61[((s1) * 16) + 2] = (uint8_t)((Y0 & 0xFF0) >> 4); //y 高八位 +0001ba 20ff MOVS r0,#0xff +0001bc 0100 LSLS r0,r0,#4 +0001be 4030 ANDS r0,r0,r6 +0001c0 1101 ASRS r1,r0,#4 +0001c2 0120 LSLS r0,r4,#4 +0001c4 1c80 ADDS r0,r0,#2 +0001c6 5411 STRB r1,[r2,r0] +;;;529 phone_reg_coord_back_X61[((s1) * 16) + 3] = ((X0 & 0xF) << 4) | ((Y0 & 0xF)); //bit0-bit3:y低四位;bit4-bit7:x低四位; +0001c8 9808 LDR r0,[sp,#0x20] +0001ca 0700 LSLS r0,r0,#28 +0001cc 0e00 LSRS r0,r0,#24 +0001ce 0731 LSLS r1,r6,#28 +0001d0 0f09 LSRS r1,r1,#28 +0001d2 4308 ORRS r0,r0,r1 +0001d4 0121 LSLS r1,r4,#4 +0001d6 1cc9 ADDS r1,r1,#3 +0001d8 5450 STRB r0,[r2,r1] +;;;530 phone_reg_coord_back_X61[((s1) * 16) + 4] = 4; //major +0001da 2104 MOVS r1,#4 +0001dc 0120 LSLS r0,r4,#4 +0001de 1d00 ADDS r0,r0,#4 +0001e0 5411 STRB r1,[r2,r0] +;;;531 phone_reg_coord_back_X61[((s1) * 16) + 5] = 4; //minor +0001e2 0120 LSLS r0,r4,#4 +0001e4 1d40 ADDS r0,r0,#5 +0001e6 5411 STRB r1,[r2,r0] +;;;532 //touch type:0:普通手指触摸;1:盘旋;2:保护套;3:手套;4:尖笔;5:手掌;6:潮湿的;7:接近;8:轻摇 +;;;533 // phone_reg_coord_back_X61[((s1) * 8) + 6] = ((Touch.Touch_Single_Point[ss].Z & 0xFE) >> 2); //bit0-bit5:z只有6位;bit6-bit7:touch type的高两位 +;;;534 // phone_reg_coord_back_X61[((s1) * 8) + 7] = --Touch_num; //bit0-bit5:buffer里面剩余多少个事件;bit6-bit7:touch type 低两位 +;;;535 +;;;536 phone_reg_coord_back_X61[((s1) * 16) + 6] = 0x1b; +0001e8 211b MOVS r1,#0x1b +0001ea 0120 LSLS r0,r4,#4 +0001ec 1d80 ADDS r0,r0,#6 +0001ee 5411 STRB r1,[r2,r0] +;;;537 phone_reg_coord_back_X61[((s1) * 16) + 7] = 0x20+(phone_reg_coord_BUF_NUM-1-ss); +0001f0 4829 LDR r0,|L3.664| +0001f2 7800 LDRB r0,[r0,#0] ; phone_reg_coord_BUF_NUM +0001f4 1e40 SUBS r0,r0,#1 +0001f6 1b40 SUBS r0,r0,r5 +0001f8 3020 ADDS r0,r0,#0x20 +0001fa b2c1 UXTB r1,r0 +0001fc 0120 LSLS r0,r4,#4 +0001fe 1dc0 ADDS r0,r0,#7 +000200 5411 STRB r1,[r2,r0] +;;;538 +;;;539 phone_reg_coord_back_X61[((s1) * 16) + 8] = 0x04; +000202 2104 MOVS r1,#4 +000204 0120 LSLS r0,r4,#4 +000206 3008 ADDS r0,r0,#8 +000208 5411 STRB r1,[r2,r0] +;;;540 phone_reg_coord_back_X61[((s1) * 16) + 9] = 0x96; +00020a 2196 MOVS r1,#0x96 +00020c 0120 LSLS r0,r4,#4 +00020e 3009 ADDS r0,r0,#9 +000210 5411 STRB r1,[r2,r0] +;;;541 phone_reg_coord_back_X61[((s1) * 16) + 10] = 0; +000212 2100 MOVS r1,#0 +000214 0120 LSLS r0,r4,#4 +000216 300a ADDS r0,r0,#0xa +000218 5411 STRB r1,[r2,r0] +;;;542 phone_reg_coord_back_X61[((s1) * 16) + 11] = 0; +00021a 0120 LSLS r0,r4,#4 +00021c 300b ADDS r0,r0,#0xb +00021e 5411 STRB r1,[r2,r0] +;;;543 phone_reg_coord_back_X61[((s1) * 16) + 12] = 0; +000220 0120 LSLS r0,r4,#4 +000222 300c ADDS r0,r0,#0xc +000224 5411 STRB r1,[r2,r0] +;;;544 phone_reg_coord_back_X61[((s1) * 16) + 13] = 0; +000226 0120 LSLS r0,r4,#4 +000228 300d ADDS r0,r0,#0xd +00022a 5411 STRB r1,[r2,r0] +;;;545 phone_reg_coord_back_X61[((s1) * 16) + 14] = 0; +00022c 0120 LSLS r0,r4,#4 +00022e 300e ADDS r0,r0,#0xe +000230 5411 STRB r1,[r2,r0] +;;;546 phone_reg_coord_back_X61[((s1) * 16) + 15] = 0; +000232 0120 LSLS r0,r4,#4 +000234 300f ADDS r0,r0,#0xf +000236 5411 STRB r1,[r2,r0] +;;;547 +;;;548 Touch.Touch_Single_Point[ss].Eventbk = Touch.Touch_Single_Point[ss].Event; +000238 200e MOVS r0,#0xe +00023a 4368 MULS r0,r5,r0 +00023c 4918 LDR r1,|L3.672| +00023e 3940 SUBS r1,r1,#0x40 +000240 1840 ADDS r0,r0,r1 +000242 7a81 LDRB r1,[r0,#0xa] +000244 200e MOVS r0,#0xe +000246 4368 MULS r0,r5,r0 +000248 4a15 LDR r2,|L3.672| +00024a 3a40 SUBS r2,r2,#0x40 +00024c 1880 ADDS r0,r0,r2 +00024e 72c1 STRB r1,[r0,#0xb] +;;;549 +;;;550 Touch.Touch_Single_Point[ss].Event = 0; +000250 2100 MOVS r1,#0 +000252 200e MOVS r0,#0xe +000254 4368 MULS r0,r5,r0 +000256 1880 ADDS r0,r0,r2 +000258 7281 STRB r1,[r0,#0xa] +;;;551 // hal_gpio_set_output_data(IO_PAD_AP_SPIS_MISO, IO_LVL_HIGH); +;;;552 // } +;;;553 s1++; +00025a 1c60 ADDS r0,r4,#1 +00025c b2c4 UXTB r4,r0 +00025e bf00 NOP ;500 + |L3.608| +000260 1c68 ADDS r0,r5,#1 ;493 +000262 b2c5 UXTB r5,r0 ;493 + |L3.612| +000264 480c LDR r0,|L3.664| +000266 7800 LDRB r0,[r0,#0] ;493 ; phone_reg_coord_BUF_NUM +000268 4285 CMP r5,r0 ;493 +00026a da00 BGE |L3.622| +00026c e6fa B |L3.100| + |L3.622| +;;;554 } +;;;555 SAMSUNG_s21p.Touch_ON[0] = 1; +00026e 2101 MOVS r1,#1 +000270 4814 LDR r0,|L3.708| +000272 71c1 STRB r1,[r0,#7] +;;;556 +;;;557 hal_gpio_set_output_data(g_phone_output_int_pad, IO_LVL_LOW); //拉低TP中断脚,通知AP读取TP数据 +000274 2100 MOVS r1,#0 +000276 4814 LDR r0,|L3.712| +000278 7800 LDRB r0,[r0,#0] ; g_phone_output_int_pad +00027a f7fffffe BL hal_gpio_set_output_data +;;;558 Touch.Event_Single_Flag = 0; +00027e 2100 MOVS r1,#0 +000280 4807 LDR r0,|L3.672| +000282 71c1 STRB r1,[r0,#7] +;;;559 } +000284 e004 B |L3.656| + |L3.646| +;;;560 else +;;;561 { +;;;562 // 息屏触摸处理 +;;;563 app_tp_screen_analysis_wake_up(rxbuffer,phone_reg_coord_BUF_NUM); +000286 4804 LDR r0,|L3.664| +000288 7801 LDRB r1,[r0,#0] ; phone_reg_coord_BUF_NUM +00028a 980f LDR r0,[sp,#0x3c] +00028c f7fffffe BL app_tp_screen_analysis_wake_up + |L3.656| +;;;564 } +;;;565 +;;;566 return screen_reg_int_data_size + 1; +000290 2002 MOVS r0,#2 +;;;567 // TAU_LOGD("TD [%d]\n", x); +;;;568 } +000292 b011 ADD sp,sp,#0x44 +000294 bdf0 POP {r4-r7,pc} +;;;569 + ENDP + +000296 0000 DCW 0x0000 + |L3.664| + DCD phone_reg_coord_BUF_NUM + |L3.668| + DCD phone_reg_coord_back_BUF + |L3.672| + DCD Touch+0x40 + |L3.676| + DCD g_tp_sleep_in + |L3.680| + DCD 0x44870000 + |L3.684| + DCD 0x45160000 + |L3.688| + DCD 0x40affe00 + |L3.692| + DCD 0x4090e000 + |L3.696| + DCD 0x40a2c000 + |L3.700| + DCD 0x00000fff + |L3.704| + DCD phone_reg_coord_back_X61 + |L3.708| + DCD SAMSUNG_s21p+0x180 + |L3.712| + DCD g_phone_output_int_pad + + AREA ||i.app_tp_screen_analysis_wake_up||, CODE, READONLY, ALIGN=2 + + app_tp_screen_analysis_wake_up PROC +;;;375 **************************************************************************/ +;;;376 uint8_t app_tp_screen_analysis_wake_up(uint8_t *rxbuffer, uint8_t touch_number) +000000 b5f8 PUSH {r3-r7,lr} +;;;377 { +000002 4602 MOV r2,r0 +;;;378 uint16_t x = 0,y = 0; +000004 2300 MOVS r3,#0 +000006 2400 MOVS r4,#0 +;;;379 uint8_t touch_event = 0; +000008 2500 MOVS r5,#0 +;;;380 +;;;381 uint8_t result = 0; // 0表示触摸类事件;1表示状态事件;2表示手势事件;3表示空事件 +00000a 2000 MOVS r0,#0 +00000c 9000 STR r0,[sp,#0] +;;;382 +;;;383 if(touch_number == 1) // 单点触摸 +00000e 2901 CMP r1,#1 +000010 d13b BNE |L4.138| +;;;384 { +;;;385 touch_event = rxbuffer[0] >> 4;//触摸事件 +000012 7810 LDRB r0,[r2,#0] +000014 1100 ASRS r0,r0,#4 +000016 4605 MOV r5,r0 +;;;386 +;;;387 if(touch_event == 0x03) // 释放事件 单击事件 +000018 2d03 CMP r5,#3 +00001a d142 BNE |L4.162| +;;;388 { +;;;389 Touch.Touch_Single_Point[0].X_in = (((u16)rxbuffer[3] & 0x0F) << 8) | (rxbuffer[2]); +00001c 78d0 LDRB r0,[r2,#3] +00001e 0700 LSLS r0,r0,#28 +000020 0d00 LSRS r0,r0,#20 +000022 7896 LDRB r6,[r2,#2] +000024 4330 ORRS r0,r0,r6 +000026 4e1f LDR r6,|L4.164| +000028 80b0 STRH r0,[r6,#4] +;;;390 Touch.Touch_Single_Point[0].Y_in = ((u16)rxbuffer[4] << 4) | ((rxbuffer[3] & 0xF0) >> 4); +00002a 7910 LDRB r0,[r2,#4] +00002c 0100 LSLS r0,r0,#4 +00002e 78d6 LDRB r6,[r2,#3] +000030 27f0 MOVS r7,#0xf0 +000032 403e ANDS r6,r6,r7 +000034 1136 ASRS r6,r6,#4 +000036 4330 ORRS r0,r0,r6 +000038 4e1a LDR r6,|L4.164| +00003a 80f0 STRH r0,[r6,#6] +;;;391 +;;;392 if(g_tp_sleep_delay_count < 50) // 50*10 = 500ms 内双击事件 +00003c 481a LDR r0,|L4.168| +00003e 7800 LDRB r0,[r0,#0] ; g_tp_sleep_delay_count +000040 2832 CMP r0,#0x32 +000042 da19 BGE |L4.120| +;;;393 { +;;;394 x = abs(Touch.Touch_Single_Point[0].X_in-Touch.Touch_Single_Point[1].X_in); +000044 88b7 LDRH r7,[r6,#4] ; Touch +000046 8a76 LDRH r6,[r6,#0x12] +000048 1bb8 SUBS r0,r7,r6 +00004a 2800 CMP r0,#0 +00004c db01 BLT |L4.82| +00004e 4606 MOV r6,r0 +000050 e000 B |L4.84| + |L4.82| +000052 4246 RSBS r6,r0,#0 + |L4.84| +000054 b2b3 UXTH r3,r6 +;;;395 y = abs(Touch.Touch_Single_Point[0].Y_in-Touch.Touch_Single_Point[1].Y_in); +000056 4e13 LDR r6,|L4.164| +000058 88f7 LDRH r7,[r6,#6] ; Touch +00005a 8ab6 LDRH r6,[r6,#0x14] +00005c 1bb8 SUBS r0,r7,r6 +00005e 2800 CMP r0,#0 +000060 db01 BLT |L4.102| +000062 4606 MOV r6,r0 +000064 e000 B |L4.104| + |L4.102| +000066 4246 RSBS r6,r0,#0 + |L4.104| +000068 b2b4 UXTH r4,r6 +;;;396 if(x<100 && y<100) // 双击 x y的范围小于100个像素点 +00006a 2b64 CMP r3,#0x64 +00006c da04 BGE |L4.120| +00006e 2c64 CMP r4,#0x64 +000070 da02 BGE |L4.120| +;;;397 { +;;;398 g_tp_wakeup = true; +000072 2001 MOVS r0,#1 +000074 4e0d LDR r6,|L4.172| +000076 7030 STRB r0,[r6,#0] + |L4.120| +;;;399 } +;;;400 } +;;;401 +;;;402 // 保存x y数值 +;;;403 Touch.Touch_Single_Point[1].X_in = Touch.Touch_Single_Point[0].X_in; +000078 480a LDR r0,|L4.164| +00007a 8886 LDRH r6,[r0,#4] ; Touch +00007c 8246 STRH r6,[r0,#0x12] +;;;404 Touch.Touch_Single_Point[1].Y_in = Touch.Touch_Single_Point[0].Y_in; +00007e 88c6 LDRH r6,[r0,#6] ; Touch +000080 8286 STRH r6,[r0,#0x14] +;;;405 g_tp_sleep_delay_count = 0; +000082 2000 MOVS r0,#0 +000084 4e08 LDR r6,|L4.168| +000086 7030 STRB r0,[r6,#0] +000088 e00b B |L4.162| + |L4.138| +;;;406 } +;;;407 } +;;;408 else +;;;409 { +;;;410 g_tp_sleep_delay_count = 0; +00008a 2000 MOVS r0,#0 +00008c 4e06 LDR r6,|L4.168| +00008e 7030 STRB r0,[r6,#0] +;;;411 Touch.Touch_Single_Point[0].X_in = 0; +000090 4e04 LDR r6,|L4.164| +000092 80b0 STRH r0,[r6,#4] +;;;412 Touch.Touch_Single_Point[0].Y_in = 0; +000094 80f0 STRH r0,[r6,#6] +;;;413 Touch.Touch_Single_Point[1].X_in = Touch.Touch_Single_Point[0].X_in; +000096 4630 MOV r0,r6 +000098 8886 LDRH r6,[r0,#4] ; Touch +00009a 8246 STRH r6,[r0,#0x12] +;;;414 Touch.Touch_Single_Point[1].Y_in = Touch.Touch_Single_Point[0].Y_in; +00009c 88c6 LDRH r6,[r0,#6] ; Touch +00009e 300e ADDS r0,r0,#0xe +0000a0 80c6 STRH r6,[r0,#6] + |L4.162| +;;;415 } +;;;416 +;;;417 // return result; +;;;418 } +0000a2 bdf8 POP {r3-r7,pc} +;;;419 + ENDP + + |L4.164| + DCD Touch + |L4.168| + DCD g_tp_sleep_delay_count + |L4.172| + DCD g_tp_wakeup + + AREA ||i.app_tp_screen_analysis_wake_up_exec||, CODE, READONLY, ALIGN=2 + + app_tp_screen_analysis_wake_up_exec PROC +;;;419 +;;;420 void app_tp_screen_analysis_wake_up_exec(void) +000000 b510 PUSH {r4,lr} +;;;421 { +;;;422 if(g_tp_wakeup == true) +000002 4816 LDR r0,|L5.92| +000004 7800 LDRB r0,[r0,#0] ; g_tp_wakeup +000006 2801 CMP r0,#1 +000008 d127 BNE |L5.90| +;;;423 { +;;;424 g_tp_wakeup = false; +00000a 2000 MOVS r0,#0 +00000c 4913 LDR r1,|L5.92| +00000e 7008 STRB r0,[r1,#0] +;;;425 delayMs(100); +000010 2064 MOVS r0,#0x64 +000012 f7fffffe BL delayMs +;;;426 phone_reg_coord_back_X61[0] = 0x46; //44 press C4 leave 84 move +000016 2046 MOVS r0,#0x46 +000018 4911 LDR r1,|L5.96| +00001a 7008 STRB r0,[r1,#0] +;;;427 phone_reg_coord_back_X61[1] = 0x01; //x 高八位 +00001c 2001 MOVS r0,#1 +00001e 7048 STRB r0,[r1,#1] +;;;428 phone_reg_coord_back_X61[2] = 0x2D; //y 高八位 +000020 202d MOVS r0,#0x2d +000022 7088 STRB r0,[r1,#2] +;;;429 phone_reg_coord_back_X61[3] = 0x34; //bit0-bit3:y低四位;bit4-bit7:x低四位; +000024 2034 MOVS r0,#0x34 +000026 70c8 STRB r0,[r1,#3] +;;;430 phone_reg_coord_back_X61[4] = 0xD8; //major +000028 20d8 MOVS r0,#0xd8 +00002a 7108 STRB r0,[r1,#4] +;;;431 phone_reg_coord_back_X61[5] = 0; //minor +00002c 2000 MOVS r0,#0 +00002e 7148 STRB r0,[r1,#5] +;;;432 //touch type:0:普通手指触摸;1:盘旋;2:保护套;3:手套;4:尖笔;5:手掌;6:潮湿的;7:接近;8:轻摇 +;;;433 // phone_reg_coord_back_X61[((s1) * 8) + 6] = ((Touch.Touch_Single_Point[ss].Z & 0xFE) >> 2); //bit0-bit5:z只有6位;bit6-bit7:touch type的高两位 +;;;434 // phone_reg_coord_back_X61[((s1) * 8) + 7] = --Touch_num; //bit0-bit5:buffer里面剩余多少个事件;bit6-bit7:touch type 低两位 +;;;435 +;;;436 phone_reg_coord_back_X61[ 6] = 0; +000030 7188 STRB r0,[r1,#6] +;;;437 phone_reg_coord_back_X61[ 7] = 0; +000032 71c8 STRB r0,[r1,#7] +;;;438 +;;;439 phone_reg_coord_back_X61[ 8] = 0; +000034 7208 STRB r0,[r1,#8] +;;;440 phone_reg_coord_back_X61[ 9] = 0; +000036 7248 STRB r0,[r1,#9] +;;;441 phone_reg_coord_back_X61[ 10] = 0; +000038 7288 STRB r0,[r1,#0xa] +;;;442 phone_reg_coord_back_X61[ 11] = 0; +00003a 72c8 STRB r0,[r1,#0xb] +;;;443 phone_reg_coord_back_X61[ 12] = 0; +00003c 7308 STRB r0,[r1,#0xc] +;;;444 phone_reg_coord_back_X61[ 13] = 0; +00003e 7348 STRB r0,[r1,#0xd] +;;;445 phone_reg_coord_back_X61[14] = 0; +000040 7388 STRB r0,[r1,#0xe] +;;;446 phone_reg_coord_back_X61[15] = 0; +000042 73c8 STRB r0,[r1,#0xf] +;;;447 SAMSUNG_s21p.Touch_ON[0] = 1; +000044 2101 MOVS r1,#1 +000046 4807 LDR r0,|L5.100| +000048 71c1 STRB r1,[r0,#7] +;;;448 hal_gpio_set_output_data(g_phone_output_int_pad, IO_LVL_LOW); //拉低TP中断脚,通知AP读取TP数据 +00004a 2100 MOVS r1,#0 +00004c 4806 LDR r0,|L5.104| +00004e 7800 LDRB r0,[r0,#0] ; g_phone_output_int_pad +000050 f7fffffe BL hal_gpio_set_output_data +;;;449 Touch.Event_Single_Flag = 0; +000054 2100 MOVS r1,#0 +000056 4805 LDR r0,|L5.108| +000058 71c1 STRB r1,[r0,#7] + |L5.90| +;;;450 } +;;;451 } +00005a bd10 POP {r4,pc} +;;;452 + ENDP + + |L5.92| + DCD g_tp_wakeup + |L5.96| + DCD phone_reg_coord_back_X61 + |L5.100| + DCD SAMSUNG_s21p+0x180 + |L5.104| + DCD g_phone_output_int_pad + |L5.108| + DCD Touch+0x40 + + AREA ||.bss||, DATA, NOINIT, ALIGN=1 + + Touch + % 72 + + AREA ||.constdata||, DATA, READONLY, ALIGN=0 + + phone_60_start_back +000000 09001000 DCB 0x09,0x00,0x10,0x00 +000004 00000000 DCB 0x00,0x00,0x00,0x00 + phone_22_data +000008 22 DCB 0x22 + phone_22_back +000009 534537 DCB 0x53,0x45,0x37 +00000c 6100 DCB 0x61,0x00 + phone_21_data +00000e 21 DCB 0x21 + phone_21_back +00000f 80 DCB 0x80 + screen_86_data +000010 86 DCB 0x86 + screen_a0_00_01_data +000011 a00001 DCB 0xa0,0x00,0x01 + screen_a2_03_00_data +000014 a2030000 DCB 0xa2,0x03,0x00,0x00 +000018 0003 DCB 0x00,0x03 + screen_a2_02_00_data +00001a a202 DCB 0xa2,0x02 +00001c 00 DCB 0x00 + screen_c0_07_01_data +00001d c00701 DCB 0xc0,0x07,0x01 + screen_fa_software_reset_data +000020 fa200000 DCB 0xfa,0x20,0x00,0x00 +000024 2480 DCB 0x24,0x80 + screen_a7_00_00_data +000026 a700 DCB 0xa7,0x00 +000028 0000 DCB 0x00,0x00 + screen_fa_20_24_data +00002a fa20 DCB 0xfa,0x20 +00002c 00002401 DCB 0x00,0x00,0x24,0x01 + screen_fa_20_32_data +000030 fa200000 DCB 0xfa,0x20,0x00,0x00 +000034 3210 DCB 0x32,0x10 + screen_fa_20_34_data +000036 fa20 DCB 0xfa,0x20 +000038 00003402 DCB 0x00,0x00,0x34,0x02 + screen_fa_20_3f_data +00003c fa200000 DCB 0xfa,0x20,0x00,0x00 +000040 3f07 DCB 0x3f,0x07 + screen_fa_20_3d_data +000042 fa20 DCB 0xfa,0x20 +000044 00003d30 DCB 0x00,0x00,0x3d,0x30 + screen_fa_20_2d_data +000048 fa200000 DCB 0xfa,0x20,0x00,0x00 +00004c 2d02 DCB 0x2d,0x02 + screen_fa_20_1b_data +00004e fa20 DCB 0xfa,0x20 +000050 00001b66 DCB 0x00,0x00,0x1b,0x66 + screen_fa_20_68_data +000054 fa200000 DCB 0xfa,0x20,0x00,0x00 +000058 6813 DCB 0x68,0x13 + screen_fa_20_25_data +00005a fa20 DCB 0xfa,0x20 +00005c 00002520 DCB 0x00,0x00,0x25,0x20 + screen_fa_20_6b_data +000060 fa200000 DCB 0xfa,0x20,0x00,0x00 +000064 6b00 DCB 0x6b,0x00 + screen_fa_20_de_data +000066 fa20 DCB 0xfa,0x20 +000068 0000de03 DCB 0x00,0x00,0xde,0x03 + screen_fa_20_28_data +00006c fa200001 DCB 0xfa,0x20,0x00,0x01 +000070 28ffffff DCB 0x28,0xff,0xff,0xff +000074 83 DCB 0x83 + screen_fa_20_6a_data +000075 fa2000 DCB 0xfa,0x20,0x00 +000078 006aa0 DCB 0x00,0x6a,0xa0 + screen_fb_20_6a_data +00007b fb DCB 0xfb +00007c 2000006a DCB 0x20,0x00,0x00,0x6a + screen_fa_20_72_data1 +000080 fa200000 DCB 0xfa,0x20,0x00,0x00 +000084 72000000 DCB 0x72,0x00,0x00,0x00 +000088 00ff3f00 DCB 0x00,0xff,0x3f,0x00 + screen_fa_20_72_data2 +00008c fa200000 DCB 0xfa,0x20,0x00,0x00 +000090 72000000 DCB 0x72,0x00,0x00,0x00 +000094 403e2700 DCB 0x40,0x3e,0x27,0x00 + screen_fa_20_72_data3 +000098 fa200000 DCB 0xfa,0x20,0x00,0x00 +00009c 72000000 DCB 0x72,0x00,0x00,0x00 +0000a0 7c2d0300 DCB 0x7c,0x2d,0x03,0x00 + screen_fa_20_6B_data +0000a4 fa200000 DCB 0xfa,0x20,0x00,0x00 +0000a8 6b004042 DCB 0x6b,0x00,0x40,0x42 +0000ac 0f0000c0 DCB 0x0f,0x00,0x00,0xc0 + screen_fb_20_71_data +0000b0 fb200000 DCB 0xfb,0x20,0x00,0x00 +0000b4 71 DCB 0x71 + screen_reg_int_data_size +0000b5 01 DCB 0x01 + screen_reg_start_data_size +0000b6 05 DCB 0x05 + + AREA ||.data||, DATA, ALIGN=2 + + g_screen_input_rst_pad +000000 08 DCB 0x08 + g_screen_input_int_pad +000001 09 DCB 0x09 + g_phone_input_rst_pad +000002 15 DCB 0x15 + g_phone_output_int_pad +000003 02 DCB 0x02 + SAMSUNG_s21p +000004 00000009 DCB 0x00,0x00,0x00,0x09 +000008 00100000 DCB 0x00,0x10,0x00,0x00 +00000c 00000000 DCB 0x00,0x00,0x00,0x00 +000010 00000000 DCB 0x00,0x00,0x00,0x00 +000014 0000001d DCB 0x00,0x00,0x00,0x1d +000018 61020203 DCB 0x61,0x02,0x02,0x03 +00001c 00000100 DCB 0x00,0x00,0x01,0x00 +000020 00000000 DCB 0x00,0x00,0x00,0x00 +000024 0000001d DCB 0x00,0x00,0x00,0x1d +000028 20000000 DCB 0x20,0x00,0x00,0x00 +00002c 00000000 DCB 0x00,0x00,0x00,0x00 +000030 00000000 DCB 0x00,0x00,0x00,0x00 +000034 0000001d DCB 0x00,0x00,0x00,0x1d +000038 6f010000 DCB 0x6f,0x01,0x00,0x00 +00003c 00000000 DCB 0x00,0x00,0x00,0x00 +000040 00000000 DCB 0x00,0x00,0x00,0x00 +000044 0000001d DCB 0x00,0x00,0x00,0x1d +000048 61020206 DCB 0x61,0x02,0x02,0x06 +00004c 00000100 DCB 0x00,0x00,0x01,0x00 +000050 00000000 DCB 0x00,0x00,0x00,0x00 +000054 0000001d DCB 0x00,0x00,0x00,0x1d +000058 61020206 DCB 0x61,0x02,0x02,0x06 +00005c 00000000 DCB 0x00,0x00,0x00,0x00 +000060 00000000 DCB 0x00,0x00,0x00,0x00 +000064 0000001d DCB 0x00,0x00,0x00,0x1d +000068 41000000 DCB 0x41,0x00,0x00,0x00 +00006c 00000000 DCB 0x00,0x00,0x00,0x00 +000070 00000000 DCB 0x00,0x00,0x00,0x00 +000074 0000001d DCB 0x00,0x00,0x00,0x1d +000078 61020203 DCB 0x61,0x02,0x02,0x03 +00007c 00000000 DCB 0x00,0x00,0x00,0x00 +000080 00000000 DCB 0x00,0x00,0x00,0x00 +000084 0000001d DCB 0x00,0x00,0x00,0x1d +000088 6a000000 DCB 0x6a,0x00,0x00,0x00 +00008c 00000000 DCB 0x00,0x00,0x00,0x00 +000090 00000000 DCB 0x00,0x00,0x00,0x00 +000094 0000001d DCB 0x00,0x00,0x00,0x1d +000098 61020203 DCB 0x61,0x02,0x02,0x03 +00009c 00000000 DCB 0x00,0x00,0x00,0x00 +0000a0 00000000 DCB 0x00,0x00,0x00,0x00 +0000a4 00000000 DCB 0x00,0x00,0x00,0x00 +0000a8 00000000 DCB 0x00,0x00,0x00,0x00 +0000ac 00000000 DCB 0x00,0x00,0x00,0x00 +0000b0 00000000 DCB 0x00,0x00,0x00,0x00 +0000b4 0000001d DCB 0x00,0x00,0x00,0x1d +0000b8 61030002 DCB 0x61,0x03,0x00,0x02 +0000bc 02000000 DCB 0x02,0x00,0x00,0x00 +0000c0 00000000 DCB 0x00,0x00,0x00,0x00 +0000c4 0000001d DCB 0x00,0x00,0x00,0x1d +0000c8 6b010100 DCB 0x6b,0x01,0x01,0x00 +0000cc 00000000 DCB 0x00,0x00,0x00,0x00 +0000d0 00000000 DCB 0x00,0x00,0x00,0x00 +0000d4 0000001d DCB 0x00,0x00,0x00,0x1d +0000d8 6f000000 DCB 0x6f,0x00,0x00,0x00 +0000dc 00000000 DCB 0x00,0x00,0x00,0x00 +0000e0 00000000 DCB 0x00,0x00,0x00,0x00 +0000e4 0000001d DCB 0x00,0x00,0x00,0x1d +0000e8 61020205 DCB 0x61,0x02,0x02,0x05 +0000ec 00000100 DCB 0x00,0x00,0x01,0x00 +0000f0 00000000 DCB 0x00,0x00,0x00,0x00 +0000f4 0000001d DCB 0x00,0x00,0x00,0x1d +0000f8 6b010100 DCB 0x6b,0x01,0x01,0x00 +0000fc 00000000 DCB 0x00,0x00,0x00,0x00 +000100 00000000 DCB 0x00,0x00,0x00,0x00 +000104 0000001d DCB 0x00,0x00,0x00,0x1d +000108 61030002 DCB 0x61,0x03,0x00,0x02 +00010c 02000000 DCB 0x02,0x00,0x00,0x00 +000110 00000000 DCB 0x00,0x00,0x00,0x00 +000114 0000001d DCB 0x00,0x00,0x00,0x1d +000118 20000100 DCB 0x20,0x00,0x01,0x00 +00011c 00000000 DCB 0x00,0x00,0x00,0x00 +000120 00000000 DCB 0x00,0x00,0x00,0x00 +000124 0000001d DCB 0x00,0x00,0x00,0x1d +000128 61060002 DCB 0x61,0x06,0x00,0x02 +00012c 00000000 DCB 0x00,0x00,0x00,0x00 +000130 00000000 DCB 0x00,0x00,0x00,0x00 +000134 00000053 DCB 0x00,0x00,0x00,0x53 +000138 45379200 DCB 0x45,0x37,0x92,0x00 +00013c 80200003 DCB 0x80,0x20,0x00,0x03 +000140 01000505 DCB 0x01,0x00,0x05,0x05 +000144 00a22819 DCB 0x00,0xa2,0x28,0x19 +000148 01002819 DCB 0x01,0x00,0x28,0x19 +00014c 01022819 DCB 0x01,0x02,0x28,0x19 +000150 0130ac37 DCB 0x01,0x30,0xac,0x37 +000154 71100010 DCB 0x71,0x10,0x00,0x10 +000158 00043809 DCB 0x00,0x04,0x38,0x09 +00015c 60122800 DCB 0x60,0x12,0x28,0x00 +000160 61004e39 DCB 0x61,0x00,0x4e,0x39 +000164 37350004 DCB 0x37,0x35,0x00,0x04 +000168 000a1000 DCB 0x00,0x0a,0x10,0x00 +00016c 01250104 DCB 0x01,0x25,0x01,0x04 +000170 01000901 DCB 0x01,0x00,0x09,0x01 +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 00000100 DCB 0x00,0x00,0x01,0x00 +000188 ff000100 DCB 0xff,0x00,0x01,0x00 +00018c ba007c00 DCB 0xba,0x00,0x7c,0x00 +000190 ba001212 DCB 0xba,0x00,0x12,0x12 +000194 298a2500 DCB 0x29,0x8a,0x25,0x00 + screen_data_write_1 +000198 86 DCB 0x86 + screen_data_write_2 +000199 c00501 DCB 0xc0,0x05,0x01 + screen_data_write_3 +00019c c0050000 DCB 0xc0,0x05,0x00,0x00 + screen_reg_int_data + DCD screen_data_write_1 + DCD 0x00000001 + DCD 0x00000008 +0001ac 01000000 DCB 0x01,0x00,0x00,0x00 + screen_reg_start_data +0001b0 00000000 DCB 0x00,0x00,0x00,0x00 + DCD screen_86_data + DCD 0x00000001 + DCD 0x00000008 +0001c0 01000000 DCB 0x01,0x00,0x00,0x00 +0001c4 01000000 DCB 0x01,0x00,0x00,0x00 + DCD screen_a0_00_01_data + DCD 0x00000003 + DCD 0x00000000 +0001d4 00000000 DCB 0x00,0x00,0x00,0x00 +0001d8 02000000 DCB 0x02,0x00,0x00,0x00 + DCD screen_a2_03_00_data + DCD 0x00000006 + DCD 0x00000000 +0001e8 00000000 DCB 0x00,0x00,0x00,0x00 +0001ec 03000000 DCB 0x03,0x00,0x00,0x00 + DCD screen_a2_02_00_data + DCD 0x00000003 + DCD 0x00000000 +0001fc 00000000 DCB 0x00,0x00,0x00,0x00 +000200 04000000 DCB 0x04,0x00,0x00,0x00 + DCD screen_c0_07_01_data + DCD 0x00000003 + DCD 0x00000000 +000210 00000000 DCB 0x00,0x00,0x00,0x00 + g_screen_tp_reg_43_software_reset_flag +000214 00 DCB 0x00 + g_screen_tp_init_start +000215 00 DCB 0x00 + g_screen_tp_init_restart +000216 00 DCB 0x00 + g_tp_sleep_in +000217 00 DCB 0x00 + g_tp_wakeup +000218 00 DCB 0x00 + g_tp_sleep_delay_count +000219 00 DCB 0x00 + phone_reg_coord_data +00021a 60 DCB 0x60 + phone_reg_coord_back +00021b 09 DCB 0x09 +00021c 00100000 DCB 0x00,0x10,0x00,0x00 +000220 00000000 DCB 0x00,0x00,0x00,0x00 +000224 00000000 DCB 0x00,0x00,0x00,0x00 +000228 000000 DCB 0x00,0x00,0x00 + phone_reg_coord_back_X61 +00022b 09 DCB 0x09 +00022c 00100000 DCB 0x00,0x10,0x00,0x00 +000230 00000000 DCB 0x00,0x00,0x00,0x00 + % 68 +000278 000000 DCB 0x00,0x00,0x00 + phone_reg_coord_back_BUF +00027b 09 DCB 0x09 +00027c 00100000 DCB 0x00,0x10,0x00,0x00 +000280 00000000 DCB 0x00,0x00,0x00,0x00 +000284 00000000 DCB 0x00,0x00,0x00,0x00 + % 84 +0002dc 000000 DCB 0x00,0x00,0x00 + phone_reg_coord_BUF_NUM +0002df 00 DCB 0x00 + phone_reg_int_data +0002e0 01000000 DCB 0x01,0x00,0x00,0x00 + DCD 0x00000008 + DCD phone_reg_coord_data + DCD phone_reg_coord_back + phone_reg_int_size +0002f0 01000000 DCB 0x01,0x00,0x00,0x00 + phone_reg_const_data +0002f4 08000000 DCB 0x08,0x00,0x00,0x00 + DCD 0x00000008 + DCD phone_60_start_back + DCD phone_60_start_back +000304 01000000 DCB 0x01,0x00,0x00,0x00 + DCD 0x00000005 + DCD phone_22_data + DCD phone_22_back +000314 01000000 DCB 0x01,0x00,0x00,0x00 + DCD 0x00000001 + DCD phone_21_data + DCD phone_21_back + phone_reg_const_data_size +000324 03 DCB 0x03 + +;*** Start embedded assembler *** + +#line 1 "..\\..\\src\\app\\s21p\\app_tp_for_custom_s21p.c" + AREA ||.rev16_text||, CODE + THUMB + EXPORT |__asm___24_app_tp_for_custom_s21p_c_17d07c66____REV16| +#line 467 "C:\\Keil_v5\\ARM\\PACK\\ARM\\CMSIS\\5.5.1\\CMSIS\\Core\\Include\\cmsis_armcc.h" +|__asm___24_app_tp_for_custom_s21p_c_17d07c66____REV16| PROC +#line 468 + + rev16 r0, r0 + bx lr + ENDP + AREA ||.revsh_text||, CODE + THUMB + EXPORT |__asm___24_app_tp_for_custom_s21p_c_17d07c66____REVSH| +#line 482 +|__asm___24_app_tp_for_custom_s21p_c_17d07c66____REVSH| PROC +#line 483 + + revsh r0, r0 + bx lr + ENDP + +;*** End embedded assembler *** diff --git a/project/ISP_568T/Listings/app_tp_st_touch.txt b/project/ISP_568T/Listings/app_tp_st_touch.txt new file mode 100644 index 0000000..e29ae39 --- /dev/null +++ b/project/ISP_568T/Listings/app_tp_st_touch.txt @@ -0,0 +1,1437 @@ +; generated by Component: ARM Compiler 5.06 update 6 (build 750) Tool: ArmCC [4d3637] +; commandline ArmCC [--c99 --list --split_sections --debug -c --asm --interleave --gnu -o.\objects\app_tp_st_touch.o --asm_dir=.\Listings\ --list_dir=.\Listings\ --depend=.\objects\app_tp_st_touch.d --cpu=Cortex-M0 --apcs=interwork -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..\CVWL568 -I..\..\src\app\s21p -I.\RTE\_ISP_568T -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\5.5.1\CMSIS\Core\Include -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\5.5.1\Device\ARM\ARMCM0\Include -D__MICROLIB -D__UVISION_VERSION=528 -D_RTE_ -DARMCM0 -DISP_568 --omf_browse=.\objects\app_tp_st_touch.crf ..\..\src\app\touch\app_tp_st_touch.c] + THUMB + + AREA ||i.CRC16_2||, CODE, READONLY, ALIGN=2 + + CRC16_2 PROC +;;;144 +;;;145 unsigned short CRC16_2(unsigned char *pchMsg, unsigned short wDataLen) +000000 b570 PUSH {r4-r6,lr} +;;;146 { +000002 4602 MOV r2,r0 +000004 460b MOV r3,r1 +;;;147 unsigned short wCRC = 0xFFFF; +000006 480e LDR r0,|L1.64| +;;;148 unsigned short i; +;;;149 unsigned char chChar; +;;;150 +;;;151 for (i = 0; i < wDataLen; i++) +000008 2400 MOVS r4,#0 +00000a e015 B |L1.56| + |L1.12| +;;;152 { +;;;153 chChar = *pchMsg++; +00000c 7811 LDRB r1,[r2,#0] +00000e 1c52 ADDS r2,r2,#1 +;;;154 wCRC = wCRCTalbeAbs[(chChar ^ wCRC) & 15] ^ (wCRC >> 4); +000010 460d MOV r5,r1 +000012 4045 EORS r5,r5,r0 +000014 072d LSLS r5,r5,#28 +000016 0eed LSRS r5,r5,#27 +000018 4e0a LDR r6,|L1.68| +00001a 5b75 LDRH r5,[r6,r5] +00001c 1106 ASRS r6,r0,#4 +00001e 4075 EORS r5,r5,r6 +000020 4628 MOV r0,r5 +;;;155 wCRC = wCRCTalbeAbs[((chChar >> 4) ^ wCRC) & 15] ^ (wCRC >> 4); +000022 110d ASRS r5,r1,#4 +000024 4045 EORS r5,r5,r0 +000026 072d LSLS r5,r5,#28 +000028 0eed LSRS r5,r5,#27 +00002a 4e06 LDR r6,|L1.68| +00002c 5b75 LDRH r5,[r6,r5] +00002e 1106 ASRS r6,r0,#4 +000030 4075 EORS r5,r5,r6 +000032 4628 MOV r0,r5 +000034 1c65 ADDS r5,r4,#1 ;151 +000036 b2ac UXTH r4,r5 ;151 + |L1.56| +000038 429c CMP r4,r3 ;151 +00003a dbe7 BLT |L1.12| +;;;156 } +;;;157 +;;;158 return wCRC; +;;;159 } +00003c bd70 POP {r4-r6,pc} +;;;160 + ENDP + +00003e 0000 DCW 0x0000 + |L1.64| + DCD 0x0000ffff + |L1.68| + DCD wCRCTalbeAbs + + AREA ||i.ap_get_tp_calibration_status_01||, CODE, READONLY, ALIGN=2 + + ap_get_tp_calibration_status_01 PROC +;;;269 +;;;270 bool ap_get_tp_calibration_status_01(hal_dsi_rx_ctrl_handle_t *handler, uint8_t param) +000000 b538 PUSH {r3-r5,lr} +;;;271 { +000002 4604 MOV r4,r0 +000004 460d MOV r5,r1 +;;;272 // if( param == 0x5A ) +;;;273 { +;;;274 if(s_calibration_correct_flag) // У׼ɹ +000006 480b LDR r0,|L2.52| +000008 7800 LDRB r0,[r0,#0] ; s_calibration_correct_flag +00000a 2800 CMP r0,#0 +00000c d008 BEQ |L2.32| +;;;275 { +;;;276 hal_dsi_rx_ctrl_send_ack_cmd(handler, +00000e 205a MOVS r0,#0x5a +000010 2301 MOVS r3,#1 +000012 2200 MOVS r2,#0 +000014 2121 MOVS r1,#0x21 +000016 9000 STR r0,[sp,#0] +000018 4620 MOV r0,r4 +00001a f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +00001e e007 B |L2.48| + |L2.32| +;;;277 DSI_ACK_DT_DSC_SHORT_RESPONSE_1B, //xxx +;;;278 DSI_VC_0, +;;;279 1,ST_TP_CALIBRATION_SUCCESS); +;;;280 } +;;;281 else // У׼ʧ +;;;282 { +;;;283 hal_dsi_rx_ctrl_send_ack_cmd(handler, +000020 2000 MOVS r0,#0 +000022 2301 MOVS r3,#1 +000024 4602 MOV r2,r0 +000026 2121 MOVS r1,#0x21 +000028 9000 STR r0,[sp,#0] +00002a 4620 MOV r0,r4 +00002c f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd + |L2.48| +;;;284 DSI_ACK_DT_DSC_SHORT_RESPONSE_1B, //xxx +;;;285 DSI_VC_0, +;;;286 1,0x00); +;;;287 } +;;;288 } +;;;289 +;;;290 return true; +000030 2001 MOVS r0,#1 +;;;291 } +000032 bd38 POP {r3-r5,pc} +;;;292 + ENDP + + |L2.52| + DCD s_calibration_correct_flag + + AREA ||i.ap_set_tp_calibration_04||, CODE, READONLY, ALIGN=2 + + REQUIRE _printf_pre_padding + REQUIRE _printf_percent + REQUIRE _printf_flags + REQUIRE _printf_widthprec + REQUIRE _printf_x + REQUIRE _printf_longlong_hex + ap_set_tp_calibration_04 PROC +;;;168 +;;;169 bool ap_set_tp_calibration_04(hal_dsi_rx_ctrl_handle_t *handler, hal_dcs_packet_t *dcs_packet) +000000 b5f0 PUSH {r4-r7,lr} +;;;170 { +000002 b08b SUB sp,sp,#0x2c +000004 460c MOV r4,r1 +;;;171 uint8_t i,crch,crcl,command,param[30] = {0}; +000006 2120 MOVS r1,#0x20 +000008 a801 ADD r0,sp,#4 +00000a f7fffffe BL __aeabi_memclr4 +;;;172 unsigned short crc; +;;;173 +;;;174 // CRCֵ +;;;175 for(i=0;iparam_length;i++) +00000e 2500 MOVS r5,#0 +000010 e00b B |L3.42| + |L3.18| +;;;176 { +;;;177 param[i+1] = dcs_packet->packet_param[i]; +000012 68e0 LDR r0,[r4,#0xc] +000014 5d41 LDRB r1,[r0,r5] +000016 aa01 ADD r2,sp,#4 +000018 1c68 ADDS r0,r5,#1 +00001a 5411 STRB r1,[r2,r0] +;;;178 printf("%02x ",dcs_packet->packet_param[i]); +00001c 68e0 LDR r0,[r4,#0xc] +00001e 5d41 LDRB r1,[r0,r5] +000020 a026 ADR r0,|L3.188| +000022 f7fffffe BL __2printf +000026 1c68 ADDS r0,r5,#1 ;175 +000028 b2c5 UXTB r5,r0 ;175 + |L3.42| +00002a 68a0 LDR r0,[r4,#8] ;175 +00002c 42a8 CMP r0,r5 ;175 +00002e d8f0 BHI |L3.18| +;;;179 } +;;;180 +;;;181 param[0] = 0x04; +000030 2104 MOVS r1,#4 +000032 4668 MOV r0,sp +000034 7101 STRB r1,[r0,#4] +;;;182 crc = CRC16_2(param,dcs_packet->param_length-1); +000036 8920 LDRH r0,[r4,#8] +000038 1e40 SUBS r0,r0,#1 +00003a b281 UXTH r1,r0 +00003c a801 ADD r0,sp,#4 +00003e f7fffffe BL CRC16_2 +000042 4606 MOV r6,r0 +;;;183 crch = (crc>>8); +000044 1230 ASRS r0,r6,#8 +000046 900a STR r0,[sp,#0x28] +;;;184 crcl = crc; +000048 b2f0 UXTB r0,r6 +00004a 9009 STR r0,[sp,#0x24] +;;;185 +;;;186 // CRCУж +;;;187 // if(crch == dcs_packet->packet_param[dcs_packet->param_length-2] && crcl == dcs_packet->packet_param[dcs_packet->param_length-1]) +;;;188 { +;;;189 command = param[3]; +00004c 4668 MOV r0,sp +00004e 79c7 LDRB r7,[r0,#7] +;;;190 switch(command) +000050 4638 MOV r0,r7 +000052 382a SUBS r0,r0,#0x2a +000054 0003 MOVS r3,r0 +000056 f7fffffe BL __ARM_common_switch8 +00005a 0504 DCB 0x05,0x04 +00005c 16171819 DCB 0x16,0x17,0x18,0x19 +000060 1a00 DCB 0x1a,0x00 +;;;191 { +;;;192 case CMD_TP_CABLIBRATION: // TouchУ׼ +;;;193 if( (param[4] == 0x01) && (param[5] == 0x01) && (param[6] == 0x01) ) +000062 4668 MOV r0,sp +000064 7a00 LDRB r0,[r0,#8] +000066 2801 CMP r0,#1 +000068 d10c BNE |L3.132| +00006a 4668 MOV r0,sp +00006c 7a40 LDRB r0,[r0,#9] +00006e 2801 CMP r0,#1 +000070 d108 BNE |L3.132| +000072 4668 MOV r0,sp +000074 7a80 LDRB r0,[r0,#0xa] +000076 2801 CMP r0,#1 +000078 d104 BNE |L3.132| +;;;194 { +;;;195 s_calibration_flag = true; +00007a 4912 LDR r1,|L3.196| +00007c 7008 STRB r0,[r1,#0] +;;;196 s_calibration_correct_flag = false; +00007e 2000 MOVS r0,#0 +000080 4911 LDR r1,|L3.200| +000082 7008 STRB r0,[r1,#0] + |L3.132| +;;;197 +;;;198 } +;;;199 /* if( (param[4] == 0xA5) && (param[5] == 0x5A) && (param[6] == 0xA5) ) +;;;200 { +;;;201 if(s_calibration_correct_flag) // У׼ɹ +;;;202 { +;;;203 hal_dsi_rx_ctrl_send_ack_cmd(handler, +;;;204 DSI_ACK_DT_GEN_LONG_RESPONSE, //xxx +;;;205 DSI_VC_0, +;;;206 0x7, 0x04,0x02,0x07,0x2A,ST_TP_CALIBRATION_SUCCESS,0x00,0x00); +;;;207 printf("cali. send ok "); +;;;208 } +;;;209 else // У׼ʧ +;;;210 { +;;;211 hal_dsi_rx_ctrl_send_ack_cmd(handler, +;;;212 DSI_ACK_DT_GEN_LONG_RESPONSE, //xxx +;;;213 DSI_VC_0, +;;;214 0x7, 0x04,0x02,0x07,0x2A,0x00,0x00,0x00); +;;;215 } +;;;216 printf("%02x ",s_calibration_correct_flag); +;;;217 } +;;;218 */ +;;;219 break; +000084 e004 B |L3.144| +;;;220 case CMD_SET_IMAGE_RGB: // Image RGB +;;;221 break; +000086 e003 B |L3.144| +;;;222 case CMD_SEND_COMMAND: // Command Send +;;;223 break; +000088 e002 B |L3.144| +;;;224 case CMD_WRITE_GAMMA: // GammaУд +;;;225 break; +00008a e001 B |L3.144| +;;;226 case CMD_START_GAMMA: +;;;227 break; +00008c e000 B |L3.144| +;;;228 default: +;;;229 break; +00008e bf00 NOP + |L3.144| +000090 bf00 NOP ;219 +;;;230 } +;;;231 } +;;;232 +;;;233 // ݾɰ汾tp calibration +;;;234 if( (dcs_packet->packet_param[0] == 0x01) && (dcs_packet->packet_param[1] == 0x01) && (dcs_packet->packet_param[2] == 0x01) ) +000092 68e0 LDR r0,[r4,#0xc] +000094 7800 LDRB r0,[r0,#0] +000096 2801 CMP r0,#1 +000098 d10c BNE |L3.180| +00009a 68e0 LDR r0,[r4,#0xc] +00009c 7840 LDRB r0,[r0,#1] +00009e 2801 CMP r0,#1 +0000a0 d108 BNE |L3.180| +0000a2 68e0 LDR r0,[r4,#0xc] +0000a4 7880 LDRB r0,[r0,#2] +0000a6 2801 CMP r0,#1 +0000a8 d104 BNE |L3.180| +;;;235 { +;;;236 s_calibration_flag = true; +0000aa 4906 LDR r1,|L3.196| +0000ac 7008 STRB r0,[r1,#0] +;;;237 s_calibration_correct_flag = false; +0000ae 2000 MOVS r0,#0 +0000b0 4905 LDR r1,|L3.200| +0000b2 7008 STRB r0,[r1,#0] + |L3.180| +;;;238 } +;;;239 /* +;;;240 if( (dcs_packet->packet_param[0] == 0xA5) && (dcs_packet->packet_param[1] == 0x5A) && (dcs_packet->packet_param[2] == 0xA5) ) +;;;241 { +;;;242 if(s_calibration_correct_flag) // У׼ɹ +;;;243 { +;;;244 hal_dsi_rx_ctrl_send_ack_cmd(handler, +;;;245 DSI_ACK_DT_GEN_LONG_RESPONSE, //xxx +;;;246 DSI_VC_0, +;;;247 0x7, 0x04,0x02,0x07,0x2A,ST_TP_CALIBRATION_SUCCESS,0x00,0x00); +;;;248 } +;;;249 else // У׼ʧ +;;;250 { +;;;251 hal_dsi_rx_ctrl_send_ack_cmd(handler, +;;;252 DSI_ACK_DT_GEN_LONG_RESPONSE, //xxx +;;;253 DSI_VC_0, +;;;254 0x7, 0x04,0x02,0x07,0x2A,0x00,0x00,0x00); +;;;255 } +;;;256 } +;;;257 */ +;;;258 return true; +0000b4 2001 MOVS r0,#1 +;;;259 } +0000b6 b00b ADD sp,sp,#0x2c +0000b8 bdf0 POP {r4-r7,pc} +;;;260 + ENDP + +0000ba 0000 DCW 0x0000 + |L3.188| +0000bc 25303278 DCB "%02x ",0 +0000c0 2000 +0000c2 00 DCB 0 +0000c3 00 DCB 0 + |L3.196| + DCD s_calibration_flag + |L3.200| + DCD s_calibration_correct_flag + + AREA ||i.ap_tp_st_touch_calibration||, CODE, READONLY, ALIGN=2 + + ap_tp_st_touch_calibration PROC +;;;102 +;;;103 void ap_tp_st_touch_calibration(void) +000000 b510 PUSH {r4,lr} +;;;104 { +;;;105 // app_tp_m_write(st_touch_tp_tuning_reset, sizeof(st_touch_tp_tuning_reset)); // System Reset +;;;106 // while(!hal_i2c_m_transfer_complate()); +;;;107 // delayMs(10); +;;;108 app_tp_m_write(st_touch_tp_tuning_FpnlInit, sizeof(st_touch_tp_tuning_FpnlInit)); // FPnl Init +000002 2103 MOVS r1,#3 +000004 4829 LDR r0,|L4.172| +000006 f7fffffe BL app_tp_m_write +;;;109 while(!hal_i2c_m_transfer_complate()); +00000a bf00 NOP + |L4.12| +00000c f7fffffe BL hal_i2c_m_transfer_complate +000010 2800 CMP r0,#0 +000012 d0fb BEQ |L4.12| +;;;110 delayMs(1); +000014 2001 MOVS r0,#1 +000016 f7fffffe BL delayMs +;;;111 app_tp_m_write(st_touch_tp_tuning_PnlInit, sizeof(st_touch_tp_tuning_PnlInit)); // Pnl Init +00001a 2103 MOVS r1,#3 +00001c 4824 LDR r0,|L4.176| +00001e f7fffffe BL app_tp_m_write +;;;112 while(!hal_i2c_m_transfer_complate()); +000022 bf00 NOP + |L4.36| +000024 f7fffffe BL hal_i2c_m_transfer_complate +000028 2800 CMP r0,#0 +00002a d0fb BEQ |L4.36| +;;;113 delayMs(1); +00002c 2001 MOVS r0,#1 +00002e f7fffffe BL delayMs +;;;114 app_tp_m_write(st_touch_tp_tuning_TuneM, sizeof(st_touch_tp_tuning_TuneM)); // TuneM +000032 2104 MOVS r1,#4 +000034 481f LDR r0,|L4.180| +000036 f7fffffe BL app_tp_m_write +;;;115 while(!hal_i2c_m_transfer_complate()); +00003a bf00 NOP + |L4.60| +00003c f7fffffe BL hal_i2c_m_transfer_complate +000040 2800 CMP r0,#0 +000042 d0fb BEQ |L4.60| +;;;116 delayMs(1); +000044 2001 MOVS r0,#1 +000046 f7fffffe BL delayMs +;;;117 app_tp_m_write(st_touch_tp_tuning_TuneS, sizeof(st_touch_tp_tuning_TuneS)); // TuneS +00004a 2104 MOVS r1,#4 +00004c 481a LDR r0,|L4.184| +00004e f7fffffe BL app_tp_m_write +;;;118 while(!hal_i2c_m_transfer_complate()); +000052 bf00 NOP + |L4.84| +000054 f7fffffe BL hal_i2c_m_transfer_complate +000058 2800 CMP r0,#0 +00005a d0fb BEQ |L4.84| +;;;119 delayMs(1); +00005c 2001 MOVS r0,#1 +00005e f7fffffe BL delayMs +;;;120 app_tp_m_write(st_touch_tp_tuning_SvCfg, sizeof(st_touch_tp_tuning_SvCfg)); // SvCfg +000062 2103 MOVS r1,#3 +000064 4815 LDR r0,|L4.188| +000066 f7fffffe BL app_tp_m_write +;;;121 while(!hal_i2c_m_transfer_complate()); +00006a bf00 NOP + |L4.108| +00006c f7fffffe BL hal_i2c_m_transfer_complate +000070 2800 CMP r0,#0 +000072 d0fb BEQ |L4.108| +;;;122 delayMs(1); +000074 2001 MOVS r0,#1 +000076 f7fffffe BL delayMs +;;;123 app_tp_m_write(st_touch_tp_tuning_SvCx, sizeof(st_touch_tp_tuning_SvCx)); // SvCx +00007a 2103 MOVS r1,#3 +00007c 4810 LDR r0,|L4.192| +00007e f7fffffe BL app_tp_m_write +;;;124 while(!hal_i2c_m_transfer_complate()); +000082 bf00 NOP + |L4.132| +000084 f7fffffe BL hal_i2c_m_transfer_complate +000088 2800 CMP r0,#0 +00008a d0fb BEQ |L4.132| +;;;125 delayMs(1); +00008c 2001 MOVS r0,#1 +00008e f7fffffe BL delayMs +;;;126 app_tp_m_write(st_touch_tp_tuning_SvPnl, sizeof(st_touch_tp_tuning_SvPnl)); // SvPnl +000092 2103 MOVS r1,#3 +000094 480b LDR r0,|L4.196| +000096 f7fffffe BL app_tp_m_write +;;;127 while(!hal_i2c_m_transfer_complate()); +00009a bf00 NOP + |L4.156| +00009c f7fffffe BL hal_i2c_m_transfer_complate +0000a0 2800 CMP r0,#0 +0000a2 d0fb BEQ |L4.156| +;;;128 delayMs(1); +0000a4 2001 MOVS r0,#1 +0000a6 f7fffffe BL delayMs +;;;129 } +0000aa bd10 POP {r4,pc} +;;;130 + ENDP + + |L4.172| + DCD st_touch_tp_tuning_FpnlInit + |L4.176| + DCD st_touch_tp_tuning_PnlInit + |L4.180| + DCD st_touch_tp_tuning_TuneM + |L4.184| + DCD st_touch_tp_tuning_TuneS + |L4.188| + DCD st_touch_tp_tuning_SvCfg + |L4.192| + DCD st_touch_tp_tuning_SvCx + |L4.196| + DCD st_touch_tp_tuning_SvPnl + + AREA ||i.ap_tp_st_touch_error_handler_F3||, CODE, READONLY, ALIGN=1 + + ap_tp_st_touch_error_handler_F3 PROC +;;;539 +;;;540 void ap_tp_st_touch_error_handler_F3(uint8_t* screendata) +000000 b510 PUSH {r4,lr} +;;;541 { +000002 4604 MOV r4,r0 +;;;542 // յ TP 쳣ظ 0xF3 0x02 0x00 0x00 0x00 0x00 0x00 0x00 +;;;543 if(screendata[0] == 0xF3 && screendata[1] == 0x02 && screendata[2] == 0x00) +000004 7820 LDRB r0,[r4,#0] +000006 28f3 CMP r0,#0xf3 +000008 d107 BNE |L5.26| +00000a 7860 LDRB r0,[r4,#1] +00000c 2802 CMP r0,#2 +00000e d104 BNE |L5.26| +000010 78a0 LDRB r0,[r4,#2] +000012 2800 CMP r0,#0 +000014 d101 BNE |L5.26| +;;;544 { +;;;545 ap_tp_st_touch_software_reset(); +000016 f7fffffe BL ap_tp_st_touch_software_reset + |L5.26| +;;;546 } +;;;547 +;;;548 // if(screendata[0] == 0xF3 && screendata[1] == 0x91 && screendata[2] == 0x00) +;;;549 // { +;;;550 // ap_tp_st_touch_software_reset(); +;;;551 // } +;;;552 } +00001a bd10 POP {r4,pc} +;;;553 + ENDP + + + AREA ||i.ap_tp_st_touch_error_handler_FF||, CODE, READONLY, ALIGN=1 + + ap_tp_st_touch_error_handler_FF PROC +;;;561 +;;;562 void ap_tp_st_touch_error_handler_FF(uint8_t* screendata) +000000 b510 PUSH {r4,lr} +;;;563 { +000002 4604 MOV r4,r0 +;;;564 // յ TP 쳣ظ 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF +;;;565 if(screendata[1] == 0xFF && screendata[2] == 0xFF&& screendata[3] == 0xFF&&screendata[4] == 0xFF) +000004 7860 LDRB r0,[r4,#1] +000006 28ff CMP r0,#0xff +000008 d10a BNE |L6.32| +00000a 78a0 LDRB r0,[r4,#2] +00000c 28ff CMP r0,#0xff +00000e d107 BNE |L6.32| +000010 78e0 LDRB r0,[r4,#3] +000012 28ff CMP r0,#0xff +000014 d104 BNE |L6.32| +000016 7920 LDRB r0,[r4,#4] +000018 28ff CMP r0,#0xff +00001a d101 BNE |L6.32| +;;;566 { +;;;567 ap_tp_st_touch_software_reset(); +00001c f7fffffe BL ap_tp_st_touch_software_reset + |L6.32| +;;;568 } +;;;569 } +000020 bd10 POP {r4,pc} +;;;570 + ENDP + + + AREA ||i.ap_tp_st_touch_get_calibration_success_mark||, CODE, READONLY, ALIGN=2 + + ap_tp_st_touch_get_calibration_success_mark PROC +;;;56 +;;;57 void ap_tp_st_touch_get_calibration_success_mark(void) +000000 b510 PUSH {r4,lr} +;;;58 { +000002 b08e SUB sp,sp,#0x38 +;;;59 uint8_t cali_send_buff[6] = {0xFA,0x20,0x01,0x00,0x00,0x00}; +000004 a127 ADR r1,|L7.164| +000006 c903 LDM r1,{r0,r1} +000008 910d STR r1,[sp,#0x34] +00000a 900c STR r0,[sp,#0x30] +;;;60 uint8_t cali_send_buff1[3] = {0xA4,0x06,0x01}; +00000c a027 ADR r0,|L7.172| +00000e 6800 LDR r0,[r0,#0] +000010 900b STR r0,[sp,#0x2c] +;;;61 uint8_t cali_read_buff[40] = {0}; +000012 2128 MOVS r1,#0x28 +000014 a801 ADD r0,sp,#4 +000016 f7fffffe BL __aeabi_memclr4 +;;;62 uint8_t i = 0; +00001a 2400 MOVS r4,#0 +;;;63 +;;;64 app_tp_m_read(cali_send_buff, 5, cali_read_buff, 4); +00001c 2304 MOVS r3,#4 +00001e aa01 ADD r2,sp,#4 +000020 2105 MOVS r1,#5 +000022 a80c ADD r0,sp,#0x30 +000024 f7fffffe BL app_tp_m_read +;;;65 while(!hal_i2c_m_transfer_complate()); +000028 bf00 NOP + |L7.42| +00002a f7fffffe BL hal_i2c_m_transfer_complate +00002e 2800 CMP r0,#0 +000030 d0fb BEQ |L7.42| +;;;66 delayMs(1); +000032 2001 MOVS r0,#1 +000034 f7fffffe BL delayMs +;;;67 +;;;68 app_tp_m_write(cali_send_buff1, 3); +000038 2103 MOVS r1,#3 +00003a a80b ADD r0,sp,#0x2c +00003c f7fffffe BL app_tp_m_write +;;;69 while(!hal_i2c_m_transfer_complate()); +000040 bf00 NOP + |L7.66| +000042 f7fffffe BL hal_i2c_m_transfer_complate +000046 2800 CMP r0,#0 +000048 d0fb BEQ |L7.66| +;;;70 delayMs(1); +00004a 2001 MOVS r0,#1 +00004c f7fffffe BL delayMs +;;;71 +;;;72 app_tp_m_read(cali_send_buff, 5, cali_read_buff, 4); +000050 2304 MOVS r3,#4 +000052 aa01 ADD r2,sp,#4 +000054 2105 MOVS r1,#5 +000056 a80c ADD r0,sp,#0x30 +000058 f7fffffe BL app_tp_m_read +;;;73 while(!hal_i2c_m_transfer_complate()); +00005c bf00 NOP + |L7.94| +00005e f7fffffe BL hal_i2c_m_transfer_complate +000062 2800 CMP r0,#0 +000064 d0fb BEQ |L7.94| +;;;74 delayMs(1); +000066 2001 MOVS r0,#1 +000068 f7fffffe BL delayMs +;;;75 +;;;76 app_tp_m_read(cali_send_buff, 5, cali_read_buff, 32); +00006c 2320 MOVS r3,#0x20 +00006e aa01 ADD r2,sp,#4 +000070 2105 MOVS r1,#5 +000072 a80c ADD r0,sp,#0x30 +000074 f7fffffe BL app_tp_m_read +;;;77 while(!hal_i2c_m_transfer_complate()); +000078 bf00 NOP + |L7.122| +00007a f7fffffe BL hal_i2c_m_transfer_complate +00007e 2800 CMP r0,#0 +000080 d0fb BEQ |L7.122| +;;;78 +;;;79 if((cali_read_buff[20] == 0xFF) && (cali_read_buff[21] == 0xFF)) +000082 4668 MOV r0,sp +000084 7e00 LDRB r0,[r0,#0x18] +000086 28ff CMP r0,#0xff +000088 d107 BNE |L7.154| +00008a 4668 MOV r0,sp +00008c 7e40 LDRB r0,[r0,#0x19] +00008e 28ff CMP r0,#0xff +000090 d103 BNE |L7.154| +;;;80 { +;;;81 s_calibration_correct_flag = ST_TP_CALIBRATION_SUCCESS; // У׼ɹ +000092 205a MOVS r0,#0x5a +000094 4906 LDR r1,|L7.176| +000096 7008 STRB r0,[r1,#0] +000098 e002 B |L7.160| + |L7.154| +;;;82 } +;;;83 else +;;;84 { +;;;85 s_calibration_correct_flag = 0x00; // У׼ʧ +00009a 2000 MOVS r0,#0 +00009c 4904 LDR r1,|L7.176| +00009e 7008 STRB r0,[r1,#0] + |L7.160| +;;;86 } +;;;87 /* +;;;88 for(i=0;i<32;i++) +;;;89 { +;;;90 printf("%02x ",cali_read_buff[i]); +;;;91 } +;;;92 */ +;;;93 } +0000a0 b00e ADD sp,sp,#0x38 +0000a2 bd10 POP {r4,pc} +;;;94 + ENDP + + |L7.164| +0000a4 fa200100 DCB 250," ",1,0 +0000a8 00 DCB 0 +0000a9 00 DCB 0 +0000aa 00 DCB 0 +0000ab 00 DCB 0 + |L7.172| +0000ac a4060100 DCB 164,6,1,0 + |L7.176| + DCD s_calibration_correct_flag + + AREA ||i.ap_tp_st_touch_hardware_reset||, CODE, READONLY, ALIGN=2 + + ap_tp_st_touch_hardware_reset PROC +;;;411 **************************************************************************/ +;;;412 void ap_tp_st_touch_hardware_reset(void) +000000 b510 PUSH {r4,lr} +;;;413 { +;;;414 TAU_LOGD("st_touch_hardware_reset \n"); +000002 bf00 NOP +000004 22ff MOVS r2,#0xff +000006 329f ADDS r2,r2,#0x9f +000008 a122 ADR r1,|L8.148| +00000a a024 ADR r0,|L8.156| +00000c f7fffffe BL LOG_printf +000010 bf00 NOP +;;;415 ap_tp_st_touch_simulate_finger_release_event(); +000012 f7fffffe BL ap_tp_st_touch_simulate_finger_release_event +;;;416 ap_tp_st_touch_scan_point_init(); +000016 f7fffffe BL ap_tp_st_touch_scan_point_init +;;;417 hal_gpio_set_output_data(g_screen_input_rst_pad, IO_LVL_HIGH); +00001a 2101 MOVS r1,#1 +00001c 4829 LDR r0,|L8.196| +00001e 7800 LDRB r0,[r0,#0] ; g_screen_input_rst_pad +000020 f7fffffe BL hal_gpio_set_output_data +;;;418 delayMs(2); +000024 2002 MOVS r0,#2 +000026 f7fffffe BL delayMs +;;;419 hal_gpio_set_output_data(g_screen_input_rst_pad, IO_LVL_LOW); +00002a 2100 MOVS r1,#0 +00002c 4825 LDR r0,|L8.196| +00002e 7800 LDRB r0,[r0,#0] ; g_screen_input_rst_pad +000030 f7fffffe BL hal_gpio_set_output_data +;;;420 delayMs(2); +000034 2002 MOVS r0,#2 +000036 f7fffffe BL delayMs +;;;421 hal_gpio_set_output_data(g_screen_input_rst_pad, IO_LVL_HIGH); +00003a 2101 MOVS r1,#1 +00003c 4821 LDR r0,|L8.196| +00003e 7800 LDRB r0,[r0,#0] ; g_screen_input_rst_pad +000040 f7fffffe BL hal_gpio_set_output_data +;;;422 delayMs(2); +000044 2002 MOVS r0,#2 +000046 f7fffffe BL delayMs +;;;423 +;;;424 app_tp_m_write(st_touch_tp_tuning_clearfifo, sizeof(st_touch_tp_tuning_clearfifo));//0xA4,0x00,0x01} +00004a 2103 MOVS r1,#3 +00004c 481e LDR r0,|L8.200| +00004e f7fffffe BL app_tp_m_write +;;;425 while(!hal_i2c_m_transfer_complate()); +000052 bf00 NOP + |L8.84| +000054 f7fffffe BL hal_i2c_m_transfer_complate +000058 2800 CMP r0,#0 +00005a d0fb BEQ |L8.84| +;;;426 delayMs(5); +00005c 2005 MOVS r0,#5 +00005e f7fffffe BL delayMs +;;;427 app_tp_m_write(st_touch_init_sensor_off, sizeof(st_touch_init_sensor_off));//0xA0,0x00,0x00 +000062 2103 MOVS r1,#3 +000064 4819 LDR r0,|L8.204| +000066 f7fffffe BL app_tp_m_write +;;;428 while(!hal_i2c_m_transfer_complate()); +00006a bf00 NOP + |L8.108| +00006c f7fffffe BL hal_i2c_m_transfer_complate +000070 2800 CMP r0,#0 +000072 d0fb BEQ |L8.108| +;;;429 delayMs(5); +000074 2005 MOVS r0,#5 +000076 f7fffffe BL delayMs +;;;430 app_tp_m_write(st_touch_init_sensor_on, sizeof(st_touch_init_sensor_on));//0xA0,0x00,0x01 +00007a 2103 MOVS r1,#3 +00007c 4814 LDR r0,|L8.208| +00007e f7fffffe BL app_tp_m_write +;;;431 while(!hal_i2c_m_transfer_complate()); +000082 bf00 NOP + |L8.132| +000084 f7fffffe BL hal_i2c_m_transfer_complate +000088 2800 CMP r0,#0 +00008a d0fb BEQ |L8.132| +;;;432 delayMs(5); +00008c 2005 MOVS r0,#5 +00008e f7fffffe BL delayMs +;;;433 } +000092 bd10 POP {r4,pc} +;;;434 + ENDP + + |L8.148| +000094 7461755f DCB "tau_log",0 +000098 6c6f6700 + |L8.156| +00009c 5b25735d DCB "[%s] (%04d) st_touch_hardware_reset \n",0 +0000a0 20282530 +0000a4 34642920 +0000a8 73745f74 +0000ac 6f756368 +0000b0 5f686172 +0000b4 64776172 +0000b8 655f7265 +0000bc 73657420 +0000c0 0a00 +0000c2 00 DCB 0 +0000c3 00 DCB 0 + |L8.196| + DCD g_screen_input_rst_pad + |L8.200| + DCD st_touch_tp_tuning_clearfifo + |L8.204| + DCD st_touch_init_sensor_off + |L8.208| + DCD st_touch_init_sensor_on + + AREA ||i.ap_tp_st_touch_scan_point_init||, CODE, READONLY, ALIGN=2 + + ap_tp_st_touch_scan_point_init PROC +;;;335 +;;;336 void ap_tp_st_touch_scan_point_init(void) +000000 2000 MOVS r0,#0 +;;;337 { +;;;338 uint8_t i=0; +;;;339 +;;;340 for(i=0;i>4)+1; +000016 1c4e ADDS r6,r1,#1 +000018 5d96 LDRB r6,[r2,r6] +00001a 1136 ASRS r6,r6,#4 +00001c 1c74 ADDS r4,r6,#1 +;;;451 i+=7; +00001e 1dce ADDS r6,r1,#7 +000020 b2f1 UXTB r1,r6 +;;;452 +;;;453 if(eventdata == 0x13) // ¼ +000022 2b13 CMP r3,#0x13 +000024 d122 BNE |L10.108| +;;;454 { +;;;455 for(j=0;j0)) // ͷ¼ +00006c 2b33 CMP r3,#0x33 +00006e d11b BNE |L10.168| +000070 4e13 LDR r6,|L10.192| +000072 79b6 LDRB r6,[r6,#6] ; tp_scan_data +000074 2e00 CMP r6,#0 +000076 dd17 BLE |L10.168| +;;;480 { +;;;481 for(j=0;j0) // в +000020 4808 LDR r0,|L11.68| +000022 7980 LDRB r0,[r0,#6] ; tp_scan_data +000024 2800 CMP r0,#0 +000026 dd09 BLE |L11.60| +;;;522 { +;;;523 printf("release finger %2d\n",tp_scan_data.tp_read_point_counter); +000028 4806 LDR r0,|L11.68| +00002a 7981 LDRB r1,[r0,#6] ; tp_scan_data +00002c a007 ADR r0,|L11.76| +00002e f7fffffe BL __2printf +;;;524 tp_scan_data.tp_read_point_counter = 0; +000032 2000 MOVS r0,#0 +000034 4903 LDR r1,|L11.68| +000036 7188 STRB r0,[r1,#6] +;;;525 ap_tp_st_touch_simulate_finger_release_event(); +000038 f7fffffe BL ap_tp_st_touch_simulate_finger_release_event + |L11.60| +;;;526 } +;;;527 ap_tp_st_touch_scan_point_init(); +00003c f7fffffe BL ap_tp_st_touch_scan_point_init + |L11.64| +;;;528 } +;;;529 } +;;;530 } +000040 bd10 POP {r4,pc} +;;;531 + ENDP + +000042 0000 DCW 0x0000 + |L11.68| + DCD tp_scan_data + |L11.72| + DCD 0x00001999 + |L11.76| +00004c 72656c65 DCB "release finger %2d\n",0 +000050 61736520 +000054 66696e67 +000058 65722025 +00005c 32640a00 + + AREA ||i.ap_tp_st_touch_simulate_finger_release_event||, CODE, READONLY, ALIGN=2 + + ap_tp_st_touch_simulate_finger_release_event PROC +;;;355 +;;;356 void ap_tp_st_touch_simulate_finger_release_event(void) +000000 b57c PUSH {r2-r6,lr} +;;;357 { +;;;358 uint8_t i,temp=0,ap_tp_release_buf[8] = {0x33,0x01,0x00,0x00,0x00,0x00,0x00,0x00}; +000002 2500 MOVS r5,#0 +000004 a10b ADR r1,|L12.52| +000006 c903 LDM r1,{r0,r1} +000008 9101 STR r1,[sp,#4] +00000a 9000 STR r0,[sp,#0] +;;;359 +;;;360 for(i=0;i<5;i++) +00000c 2400 MOVS r4,#0 +00000e e00d B |L12.44| + |L12.16| +;;;361 { +;;;362 temp = i; +000010 4625 MOV r5,r4 +;;;363 ap_tp_release_buf[1] = (temp<<4)|0x01; +000012 0128 LSLS r0,r5,#4 +000014 1c40 ADDS r0,r0,#1 +000016 4669 MOV r1,sp +000018 7048 STRB r0,[r1,#1] +;;;364 +;;;365 app_tp_screen_analysis_int(0, ap_tp_release_buf,8); +00001a 2208 MOVS r2,#8 +00001c 2000 MOVS r0,#0 +00001e f7fffffe BL app_tp_screen_analysis_int +;;;366 +;;;367 delayMs(6); +000022 2006 MOVS r0,#6 +000024 f7fffffe BL delayMs +000028 1c60 ADDS r0,r4,#1 ;360 +00002a b2c4 UXTB r4,r0 ;360 + |L12.44| +00002c 2c05 CMP r4,#5 ;360 +00002e dbef BLT |L12.16| +;;;368 } +;;;369 } +000030 bd7c POP {r2-r6,pc} +;;;370 + ENDP + +000032 0000 DCW 0x0000 + |L12.52| +000034 330100 DCB "3",1,0 +000037 00 DCB 0 +000038 00 DCB 0 +000039 00 DCB 0 +00003a 00 DCB 0 +00003b 00 DCB 0 + + AREA ||i.ap_tp_st_touch_software_reset||, CODE, READONLY, ALIGN=2 + + ap_tp_st_touch_software_reset PROC +;;;378 +;;;379 void ap_tp_st_touch_software_reset(void) +000000 b510 PUSH {r4,lr} +;;;380 { +;;;381 TAU_LOGD("st_touch_software_reset \n"); +000002 bf00 NOP +000004 22ff MOVS r2,#0xff +000006 327e ADDS r2,r2,#0x7e +000008 a11c ADR r1,|L13.124| +00000a a01e ADR r0,|L13.132| +00000c f7fffffe BL LOG_printf +000010 bf00 NOP +;;;382 ap_tp_st_touch_simulate_finger_release_event(); +000012 f7fffffe BL ap_tp_st_touch_simulate_finger_release_event +;;;383 ap_tp_st_touch_scan_point_init(); +000016 f7fffffe BL ap_tp_st_touch_scan_point_init +;;;384 +;;;385 app_tp_m_write(st_touch_tp_tuning_clkreset, sizeof(st_touch_tp_tuning_clkreset)); // clk reset +00001a 2103 MOVS r1,#3 +00001c 4823 LDR r0,|L13.172| +00001e f7fffffe BL app_tp_m_write +;;;386 while(!hal_i2c_m_transfer_complate()); +000022 bf00 NOP + |L13.36| +000024 f7fffffe BL hal_i2c_m_transfer_complate +000028 2800 CMP r0,#0 +00002a d0fb BEQ |L13.36| +;;;387 delayMs(5); +00002c 2005 MOVS r0,#5 +00002e f7fffffe BL delayMs +;;;388 +;;;389 app_tp_m_write(st_touch_tp_tuning_reset, sizeof(st_touch_tp_tuning_reset)); // System Reset A4 00 00 +000032 2103 MOVS r1,#3 +000034 481e LDR r0,|L13.176| +000036 f7fffffe BL app_tp_m_write +;;;390 while(!hal_i2c_m_transfer_complate()); +00003a bf00 NOP + |L13.60| +00003c f7fffffe BL hal_i2c_m_transfer_complate +000040 2800 CMP r0,#0 +000042 d0fb BEQ |L13.60| +;;;391 delayMs(5); +000044 2005 MOVS r0,#5 +000046 f7fffffe BL delayMs +;;;392 +;;;393 app_tp_m_write(st_touch_tp_tuning_clearfifo, sizeof(st_touch_tp_tuning_clearfifo));//0xA4,0x00,0x01 +00004a 2103 MOVS r1,#3 +00004c 4819 LDR r0,|L13.180| +00004e f7fffffe BL app_tp_m_write +;;;394 while(!hal_i2c_m_transfer_complate()); +000052 bf00 NOP + |L13.84| +000054 f7fffffe BL hal_i2c_m_transfer_complate +000058 2800 CMP r0,#0 +00005a d0fb BEQ |L13.84| +;;;395 delayMs(5); +00005c 2005 MOVS r0,#5 +00005e f7fffffe BL delayMs +;;;396 +;;;397 app_tp_m_write(st_touch_init_sensor_on, sizeof(st_touch_init_sensor_on));//0xA0,0x00,0x01 +000062 2103 MOVS r1,#3 +000064 4814 LDR r0,|L13.184| +000066 f7fffffe BL app_tp_m_write +;;;398 while(!hal_i2c_m_transfer_complate()); +00006a bf00 NOP + |L13.108| +00006c f7fffffe BL hal_i2c_m_transfer_complate +000070 2800 CMP r0,#0 +000072 d0fb BEQ |L13.108| +;;;399 delayMs(5); +000074 2005 MOVS r0,#5 +000076 f7fffffe BL delayMs +;;;400 +;;;401 // app_tp_screen_reset(); +;;;402 } +00007a bd10 POP {r4,pc} +;;;403 + ENDP + + |L13.124| +00007c 7461755f DCB "tau_log",0 +000080 6c6f6700 + |L13.132| +000084 5b25735d DCB "[%s] (%04d) st_touch_software_reset \n",0 +000088 20282530 +00008c 34642920 +000090 73745f74 +000094 6f756368 +000098 5f736f66 +00009c 74776172 +0000a0 655f7265 +0000a4 73657420 +0000a8 0a00 +0000aa 00 DCB 0 +0000ab 00 DCB 0 + |L13.172| + DCD st_touch_tp_tuning_clkreset + |L13.176| + DCD st_touch_tp_tuning_reset + |L13.180| + DCD st_touch_tp_tuning_clearfifo + |L13.184| + DCD st_touch_init_sensor_on + + AREA ||i.app_tp_calibration_exec||, CODE, READONLY, ALIGN=2 + + app_tp_calibration_exec PROC +;;;300 +;;;301 void app_tp_calibration_exec(void) +000000 b510 PUSH {r4,lr} +;;;302 { +;;;303 uint8_t i = 0; +000002 2400 MOVS r4,#0 +;;;304 +;;;305 if(s_calibration_flag) +000004 4815 LDR r0,|L14.92| +000006 7800 LDRB r0,[r0,#0] ; s_calibration_flag +000008 2800 CMP r0,#0 +00000a d026 BEQ |L14.90| +;;;306 { +;;;307 s_calibration_flag = false; +00000c 2000 MOVS r0,#0 +00000e 4913 LDR r1,|L14.92| +000010 7008 STRB r0,[r1,#0] +;;;308 for(i=0;i<3;i++) +000012 bf00 NOP +000014 e01e B |L14.84| + |L14.22| +;;;309 { +;;;310 ap_tp_st_touch_calibration(); +000016 f7fffffe BL ap_tp_st_touch_calibration +;;;311 delayMs(4000); +00001a 207d MOVS r0,#0x7d +00001c 0140 LSLS r0,r0,#5 +00001e f7fffffe BL delayMs +;;;312 ap_tp_st_touch_get_calibration_success_mark(); +000022 f7fffffe BL ap_tp_st_touch_get_calibration_success_mark +;;;313 if(s_calibration_correct_flag == ST_TP_CALIBRATION_SUCCESS) +000026 480e LDR r0,|L14.96| +000028 7800 LDRB r0,[r0,#0] ; s_calibration_correct_flag +00002a 285a CMP r0,#0x5a +00002c d108 BNE |L14.64| +;;;314 { +;;;315 TAU_LOGD("calibration successful \n"); +00002e bf00 NOP +000030 22ff MOVS r2,#0xff +000032 323c ADDS r2,r2,#0x3c +000034 a10b ADR r1,|L14.100| +000036 a00d ADR r0,|L14.108| +000038 f7fffffe BL LOG_printf +00003c bf00 NOP +;;;316 break; +00003e e00b B |L14.88| + |L14.64| +;;;317 } +;;;318 else +;;;319 { +;;;320 TAU_LOGD("calibration failure \n"); +000040 bf00 NOP +000042 22ff MOVS r2,#0xff +000044 3241 ADDS r2,r2,#0x41 +000046 a107 ADR r1,|L14.100| +000048 a012 ADR r0,|L14.148| +00004a f7fffffe BL LOG_printf +00004e bf00 NOP +000050 1c60 ADDS r0,r4,#1 ;308 +000052 b2c4 UXTB r4,r0 ;308 + |L14.84| +000054 2c03 CMP r4,#3 ;308 +000056 dbde BLT |L14.22| + |L14.88| +000058 bf00 NOP ;316 + |L14.90| +;;;321 } +;;;322 } +;;;323 +;;;324 } +;;;325 } +00005a bd10 POP {r4,pc} +;;;326 + ENDP + + |L14.92| + DCD s_calibration_flag + |L14.96| + DCD s_calibration_correct_flag + |L14.100| +000064 7461755f DCB "tau_log",0 +000068 6c6f6700 + |L14.108| +00006c 5b25735d DCB "[%s] (%04d) calibration successful \n",0 +000070 20282530 +000074 34642920 +000078 63616c69 +00007c 62726174 +000080 696f6e20 +000084 73756363 +000088 65737366 +00008c 756c200a +000090 00 +000091 00 DCB 0 +000092 00 DCB 0 +000093 00 DCB 0 + |L14.148| +000094 5b25735d DCB "[%s] (%04d) calibration failure \n",0 +000098 20282530 +00009c 34642920 +0000a0 63616c69 +0000a4 62726174 +0000a8 696f6e20 +0000ac 6661696c +0000b0 75726520 +0000b4 0a00 +0000b6 00 DCB 0 +0000b7 00 DCB 0 + + AREA ||.bss||, DATA, NOINIT, ALIGN=2 + + tp_scan_data + % 12 + + AREA ||.constdata||, DATA, READONLY, ALIGN=1 + + wCRCTalbeAbs +000000 0000cc01 DCW 0x0000,0xcc01 +000004 d8011400 DCW 0xd801,0x1400 +000008 f0013c00 DCW 0xf001,0x3c00 +00000c 2800e401 DCW 0x2800,0xe401 +000010 a0016c00 DCW 0xa001,0x6c00 +000014 7800b401 DCW 0x7800,0xb401 +000018 50009c01 DCW 0x5000,0x9c01 +00001c 88014400 DCW 0x8801,0x4400 + + AREA ||.data||, DATA, ALIGN=0 + + s_calibration_flag +000000 00 DCB 0x00 + s_calibration_correct_flag +000001 00 DCB 0x00 + st_touch_init_sensor_off +000002 a000 DCB 0xa0,0x00 +000004 00 DCB 0x00 + st_touch_init_sensor_on +000005 a00001 DCB 0xa0,0x00,0x01 + st_touch_tp_tuning_reset +000008 a40000 DCB 0xa4,0x00,0x00 + st_touch_tp_tuning_FpnlInit +00000b a4 DCB 0xa4 +00000c 0003 DCB 0x00,0x03 + st_touch_tp_tuning_PnlInit +00000e a400 DCB 0xa4,0x00 +000010 02 DCB 0x02 + st_touch_tp_tuning_TuneM +000011 a40313 DCB 0xa4,0x03,0x13 +000014 00 DCB 0x00 + st_touch_tp_tuning_TuneS +000015 a4030c DCB 0xa4,0x03,0x0c +000018 00 DCB 0x00 + st_touch_tp_tuning_SvCfg +000019 a40501 DCB 0xa4,0x05,0x01 + st_touch_tp_tuning_SvCx +00001c a40502 DCB 0xa4,0x05,0x02 + st_touch_tp_tuning_SvPnl +00001f a4 DCB 0xa4 +000020 0504 DCB 0x05,0x04 + st_touch_tp_tuning_clearfifo +000022 a400 DCB 0xa4,0x00 +000024 01 DCB 0x01 + st_touch_tp_tuning_clkreset +000025 a40005 DCB 0xa4,0x00,0x05 + + AREA ||i.__ARM_common_switch8||, COMGROUP=__ARM_common_switch8, CODE, READONLY, ALIGN=1 + + __ARM_common_switch8 PROC +000000 b430 PUSH {r4,r5} +000002 4674 MOV r4,lr +000004 1e64 SUBS r4,r4,#1 +000006 7825 LDRB r5,[r4,#0] +000008 1c64 ADDS r4,r4,#1 +00000a 42ab CMP r3,r5 +00000c d304 BCC |L96.24| + |L96.14| +00000e 5d63 LDRB r3,[r4,r5] +000010 005b LSLS r3,r3,#1 +000012 18e3 ADDS r3,r4,r3 +000014 bc30 POP {r4,r5} +000016 4718 BX r3 + |L96.24| +000018 461d MOV r5,r3 +00001a e7f8 B |L96.14| + ENDP + + +;*** Start embedded assembler *** + +#line 1 "..\\..\\src\\app\\touch\\app_tp_st_touch.c" + AREA ||.rev16_text||, CODE + THUMB + EXPORT |__asm___17_app_tp_st_touch_c_0c52f749____REV16| +#line 467 "C:\\Keil_v5\\ARM\\PACK\\ARM\\CMSIS\\5.5.1\\CMSIS\\Core\\Include\\cmsis_armcc.h" +|__asm___17_app_tp_st_touch_c_0c52f749____REV16| PROC +#line 468 + + rev16 r0, r0 + bx lr + ENDP + AREA ||.revsh_text||, CODE + THUMB + EXPORT |__asm___17_app_tp_st_touch_c_0c52f749____REVSH| +#line 482 +|__asm___17_app_tp_st_touch_c_0c52f749____REVSH| PROC +#line 483 + + revsh r0, r0 + bx lr + ENDP + +;*** End embedded assembler *** diff --git a/project/ISP_568T/Listings/app_tp_transfer.txt b/project/ISP_568T/Listings/app_tp_transfer.txt new file mode 100644 index 0000000..c49e2f6 --- /dev/null +++ b/project/ISP_568T/Listings/app_tp_transfer.txt @@ -0,0 +1,1193 @@ +; 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..\CVWL568 -I..\..\src\app\s21p -I.\RTE\_ISP_568T -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\5.5.1\CMSIS\Core\Include -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\5.5.1\Device\ARM\ARMCM0\Include -D__MICROLIB -D__UVISION_VERSION=528 -D_RTE_ -DARMCM0 -DISP_568 --omf_browse=.\objects\app_tp_transfer.crf ..\..\src\app\touch\app_tp_transfer.c] + THUMB + + AREA ||i.app_tp_i2cs_callback||, CODE, READONLY, ALIGN=2 + + app_tp_i2cs_callback PROC +;;;299 #if PHONE_SLAVE_TRANSFER_I2C //消除warning +;;;300 static void app_tp_i2cs_callback(e_i2c_s_int_status int_status, size_t recieve_num) +000000 b570 PUSH {r4-r6,lr} +;;;301 { +000002 4604 MOV r4,r0 +000004 460d MOV r5,r1 +;;;302 static bool i2cs_transfer = true; //确保一次通信只解析一次 +;;;303 if (i2cs_transfer) +000006 480c LDR r0,|L1.56| +000008 7800 LDRB r0,[r0,#0] ; i2cs_transfer +00000a 2800 CMP r0,#0 +00000c d005 BEQ |L1.26| +;;;304 { +;;;305 i2cs_transfer = false; +00000e 2000 MOVS r0,#0 +000010 4909 LDR r1,|L1.56| +000012 7008 STRB r0,[r1,#0] +;;;306 app_tp_transfer_phone(recieve_num); +000014 4628 MOV r0,r5 +000016 f7fffffe BL app_tp_transfer_phone + |L1.26| +;;;307 } +;;;308 if (int_status == I2C_S_INT_READ) +00001a 2c00 CMP r4,#0 +00001c d106 BNE |L1.44| +;;;309 { +;;;310 app_tp_s_write(s_slave_txbuffer, s_slave_txbuffer_size); +00001e 4807 LDR r0,|L1.60| +000020 6801 LDR r1,[r0,#0] ; s_slave_txbuffer_size +000022 4807 LDR r0,|L1.64| +000024 6800 LDR r0,[r0,#0] ; s_slave_txbuffer +000026 f7fffffe BL app_tp_s_write +00002a e004 B |L1.54| + |L1.44| +;;;311 } +;;;312 else if (int_status == I2C_S_INT_STOP) +00002c 2c02 CMP r4,#2 +00002e d102 BNE |L1.54| +;;;313 { +;;;314 i2cs_transfer = true; +000030 2001 MOVS r0,#1 +000032 4901 LDR r1,|L1.56| +000034 7008 STRB r0,[r1,#0] + |L1.54| +;;;315 } +;;;316 } +000036 bd70 POP {r4-r6,pc} +;;;317 #endif + ENDP + + |L1.56| + DCD i2cs_transfer + |L1.60| + DCD s_slave_txbuffer_size + |L1.64| + DCD s_slave_txbuffer + + AREA ||i.app_tp_init||, CODE, READONLY, ALIGN=2 + + app_tp_init PROC +;;;140 **************************************************************************/ +;;;141 void app_tp_init(void) +000000 b510 PUSH {r4,lr} +;;;142 { +;;;143 // app_tp_phone_reset_init(); //初始化手机复位的IO口 +;;;144 app_tp_screen_int_init(); //配置screen中断输入引脚 +000002 f7fffffe BL app_tp_screen_int_init +;;;145 hal_gpio_init_output(g_phone_output_int_pad, IO_LVL_HIGH); //配置phone报点输出中断IO口 +000006 2101 MOVS r1,#1 +000008 480a LDR r0,|L2.52| +00000a 7800 LDRB r0,[r0,#0] ; g_phone_output_int_pad +00000c f7fffffe BL hal_gpio_init_output +;;;146 +;;;147 #if SCREEN_MASTER_TRANSFER_I2C +;;;148 hal_i2c_m_dma_init(SCREEN_I2C_ADDRESS, SCREEN_I2C_ADDR_BITS, I2C_MASTER_SPEED); +000010 4a09 LDR r2,|L2.56| +000012 2107 MOVS r1,#7 +000014 2049 MOVS r0,#0x49 +000016 f7fffffe BL hal_i2c_m_dma_init +;;;149 #elif SCREEN_MASTER_TRANSFER_SPI +;;;150 hal_spi_m_dma_init(SPI_MASTER_SPEED, SCREEN_SPI_CPHA, SCREEN_SPI_CPOL); +;;;151 #endif +;;;152 +;;;153 #if PHONE_SLAVE_TRANSFER_I2C +;;;154 hal_i2c_s_init(CHIP_I2C_ADDRESS, CHIP_I2C_ADDR_BITS); +00001a 2107 MOVS r1,#7 +00001c 2048 MOVS r0,#0x48 +00001e f7fffffe BL hal_i2c_s_init +;;;155 hal_i2c_s_set_transfer(app_tp_i2cs_callback); +000022 4806 LDR r0,|L2.60| +000024 f7fffffe BL hal_i2c_s_set_transfer +;;;156 hal_i2c_s_nonblocking_read(s_phone_read_buffer, BUFFER_SIZE_MAX); //先配置接收 buffer +000028 21fa MOVS r1,#0xfa +00002a 4805 LDR r0,|L2.64| +00002c f7fffffe BL hal_i2c_s_nonblocking_read +;;;157 #elif PHONE_SLAVE_TRANSFER_SPI +;;;158 hal_spi_slave_init(PHONE_SPI_CPHA, PHONE_SPI_CPOL, true); // 初始化spi以及dma +;;;159 hal_spi_slave_register_callback(app_tp_spis_callback); // 注册回调 +;;;160 hal_spi_slave_auto_transfer_abort(); // 停止传输 +;;;161 hal_spi_slave_flush_fifo(); // Flush FIFO +;;;162 +;;;163 /* 每个packet自动接收, circle mode 为false, 即收到buffer max size数据后buffer不再更新, packet完成后调用回调 */ +;;;164 hal_spi_slave_set_auto_rx_buffer(s_phone_read_buffer, BUFFER_SIZE_MAX, false); // 设置auto rx buffer +;;;165 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 +;;;166 +;;;167 hal_spi_slave_enable(); // 启动spis +;;;168 hal_spi_slave_auto_transfer_start(); // 启动tx自动发送 +;;;169 #endif +;;;170 } +000030 bd10 POP {r4,pc} +;;;171 + ENDP + +000032 0000 DCW 0x0000 + |L2.52| + DCD g_phone_output_int_pad + |L2.56| + DCD 0x00061a80 + |L2.60| + DCD app_tp_i2cs_callback + |L2.64| + DCD s_phone_read_buffer + + AREA ||i.app_tp_m_read||, CODE, READONLY, ALIGN=1 + + app_tp_m_read PROC +;;;235 **************************************************************************/ +;;;236 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} +;;;237 { +000002 b081 SUB sp,sp,#4 +000004 4605 MOV r5,r0 +000006 460e MOV r6,r1 +;;;238 #if SCREEN_MASTER_TRANSFER_I2C +;;;239 uint8_t i = 0; +000008 2400 MOVS r4,#0 +;;;240 uint32_t address = 0; +00000a 2700 MOVS r7,#0 +;;;241 +;;;242 for (i = 0; i < cmd_size; i++) //先将要发送的数据整合到 address +00000c bf00 NOP +00000e e005 B |L3.28| + |L3.16| +;;;243 { +;;;244 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 ;242 +00001a b2c4 UXTB r4,r0 ;242 + |L3.28| +00001c 42b4 CMP r4,r6 ;242 +00001e d3f7 BCC |L3.16| +;;;245 } +;;;246 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 +;;;247 #elif SCREEN_MASTER_TRANSFER_SPI +;;;248 hal_spi_m_dma_read(cmd, cmd_size, data_buffer, data_size); +;;;249 #endif +;;;250 } +00002c b005 ADD sp,sp,#0x14 +00002e bdf0 POP {r4-r7,pc} +;;;251 + ENDP + + + AREA ||i.app_tp_m_transfer_complate||, CODE, READONLY, ALIGN=1 + + app_tp_m_transfer_complate PROC +;;;178 **************************************************************************/ +;;;179 bool app_tp_m_transfer_complate(void) +000000 b510 PUSH {r4,lr} +;;;180 { +;;;181 #if SCREEN_MASTER_TRANSFER_I2C +;;;182 return hal_i2c_m_transfer_complate(); +000002 f7fffffe BL hal_i2c_m_transfer_complate +;;;183 #elif SCREEN_MASTER_TRANSFER_SPI +;;;184 return hal_spi_m_get_transfer_complate(); +;;;185 #else +;;;186 return true; +;;;187 #endif +;;;188 } +000006 bd10 POP {r4,pc} +;;;189 + ENDP + + + AREA ||i.app_tp_m_write||, CODE, READONLY, ALIGN=1 + + app_tp_m_write PROC +;;;215 **************************************************************************/ +;;;216 void app_tp_m_write(const uint8_t *txbuffer, size_t buffer_size) +000000 b570 PUSH {r4-r6,lr} +;;;217 { +000002 4604 MOV r4,r0 +000004 460d MOV r5,r1 +;;;218 #if SCREEN_MASTER_TRANSFER_I2C +;;;219 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 +;;;220 #elif SCREEN_MASTER_TRANSFER_SPI +;;;221 hal_spi_m_dma_write(txbuffer, buffer_size); +;;;222 s_spim_write = true; +;;;223 #endif +;;;224 } +00000e bd70 POP {r4-r6,pc} +;;;225 + ENDP + + + AREA ||i.app_tp_phone_clear_reset_on||, CODE, READONLY, ALIGN=2 + + app_tp_phone_clear_reset_on PROC +;;;600 **************************************************************************/ +;;;601 void app_tp_phone_clear_reset_on(void) +000000 2000 MOVS r0,#0 +;;;602 { +;;;603 s_phone_reset_flag = false; +000002 4901 LDR r1,|L6.8| +000004 7008 STRB r0,[r1,#0] +;;;604 } +000006 4770 BX lr +;;;605 + ENDP + + |L6.8| + DCD s_phone_reset_flag + + AREA ||i.app_tp_phone_reset_init||, CODE, READONLY, ALIGN=2 + + app_tp_phone_reset_init PROC +;;;102 **************************************************************************/ +;;;103 static void app_tp_phone_reset_init(void) +000000 b510 PUSH {r4,lr} +;;;104 { +;;;105 /*0.配置为输入*/ +;;;106 hal_gpio_init_input(g_phone_input_rst_pad); +000002 480c LDR r0,|L7.52| +000004 7800 LDRB r0,[r0,#0] ; g_phone_input_rst_pad +000006 f7fffffe BL hal_gpio_init_input +;;;107 /*1.关闭中断*/ +;;;108 hal_gpio_ctrl_eint(g_phone_input_rst_pad, DISABLE); +00000a 2100 MOVS r1,#0 +00000c 4809 LDR r0,|L7.52| +00000e 7800 LDRB r0,[r0,#0] ; g_phone_input_rst_pad +000010 f7fffffe BL hal_gpio_ctrl_eint +;;;109 /*2.中断初始化*/ +;;;110 hal_gpio_init_eint(g_phone_input_rst_pad, DETECT_RISING_EDGE); +000014 2102 MOVS r1,#2 +000016 4807 LDR r0,|L7.52| +000018 7800 LDRB r0,[r0,#0] ; g_phone_input_rst_pad +00001a f7fffffe BL hal_gpio_init_eint +;;;111 /*3.注册回调*/ +;;;112 hal_gpio_reg_eint_cb(g_phone_input_rst_pad, app_tp_reset_callback); +00001e 4906 LDR r1,|L7.56| +000020 4804 LDR r0,|L7.52| +000022 7800 LDRB r0,[r0,#0] ; g_phone_input_rst_pad +000024 f7fffffe BL hal_gpio_reg_eint_cb +;;;113 /*4.使能中断*/ +;;;114 hal_gpio_ctrl_eint(g_phone_input_rst_pad, ENABLE); +000028 2101 MOVS r1,#1 +00002a 4802 LDR r0,|L7.52| +00002c 7800 LDRB r0,[r0,#0] ; g_phone_input_rst_pad +00002e f7fffffe BL hal_gpio_ctrl_eint +;;;115 } +000032 bd10 POP {r4,pc} +;;;116 + ENDP + + |L7.52| + DCD g_phone_input_rst_pad + |L7.56| + DCD app_tp_reset_callback + + AREA ||i.app_tp_phone_reset_on||, CODE, READONLY, ALIGN=2 + + app_tp_phone_reset_on PROC +;;;588 **************************************************************************/ +;;;589 bool app_tp_phone_reset_on(void) +000000 4801 LDR r0,|L8.8| +;;;590 { +;;;591 return s_phone_reset_flag; +000002 7800 LDRB r0,[r0,#0] ; s_phone_reset_flag +;;;592 } +000004 4770 BX lr +;;;593 + ENDP + +000006 0000 DCW 0x0000 + |L8.8| + DCD s_phone_reset_flag + + AREA ||i.app_tp_reset_callback||, CODE, READONLY, ALIGN=2 + + app_tp_reset_callback PROC +;;;356 **************************************************************************/ +;;;357 static void app_tp_reset_callback(void *data) +000000 2101 MOVS r1,#1 +;;;358 { +;;;359 s_phone_reset_flag = true; +000002 4a01 LDR r2,|L9.8| +000004 7011 STRB r1,[r2,#0] +;;;360 //app_tp_s_write(phone_reg_const_data[0].write_back, phone_reg_const_data[0].write_back_size); ///////S8 s8p +;;;361 +;;;362 #if PHONE_SLAVE_TRANSFER_SPI +;;;363 hal_gpio_set_output_data(IO_PAD_AP_INT, IO_LVL_LOW); +;;;364 #endif +;;;365 //TAU_LOGD("app_tp_reset_callback\n"); +;;;366 } +000006 4770 BX lr +;;;367 + ENDP + + |L9.8| + DCD s_phone_reset_flag + + AREA ||i.app_tp_s_read||, CODE, READONLY, ALIGN=1 + + app_tp_s_read PROC +;;;284 **************************************************************************/ +;;;285 void app_tp_s_read(void *rxBuffer, size_t data_size) +000000 b570 PUSH {r4-r6,lr} +;;;286 { +000002 4604 MOV r4,r0 +000004 460d MOV r5,r1 +;;;287 #if PHONE_SLAVE_TRANSFER_I2C +;;;288 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 +;;;289 #endif +;;;290 } +00000e bd70 POP {r4-r6,pc} +;;;291 + ENDP + + + AREA ||i.app_tp_s_transfer_complate||, CODE, READONLY, ALIGN=1 + + app_tp_s_transfer_complate PROC +;;;196 **************************************************************************/ +;;;197 bool app_tp_s_transfer_complate(void) +000000 b510 PUSH {r4,lr} +;;;198 { +;;;199 #if PHONE_SLAVE_TRANSFER_I2C +;;;200 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| +;;;201 #elif PHONE_SLAVE_TRANSFER_SPI +;;;202 return !hal_spi_slave_busy(); +;;;203 #else +;;;204 return true; +;;;205 #endif +;;;206 } +000014 bd10 POP {r4,pc} + |L11.22| +000016 2000 MOVS r0,#0 ;200 +000018 e7fc B |L11.20| +;;;207 + ENDP + + + AREA ||i.app_tp_s_write||, CODE, READONLY, ALIGN=1 + + app_tp_s_write PROC +;;;259 **************************************************************************/ +;;;260 void app_tp_s_write(const uint8_t *txbuffer, size_t buffer_size) +000000 b570 PUSH {r4-r6,lr} +;;;261 { +000002 4604 MOV r4,r0 +000004 460d MOV r5,r1 +;;;262 #if PHONE_SLAVE_TRANSFER_I2C +;;;263 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 +;;;264 #elif PHONE_SLAVE_TRANSFER_SPI +;;;265 //while (hal_spi_slave_busy()); +;;;266 #if 1 +;;;267 hal_spi_slave_reset_tx(txbuffer, buffer_size, true); +;;;268 #else +;;;269 hal_spi_slave_auto_transfer_abort(); +;;;270 hal_spi_slave_flush_fifo(); +;;;271 hal_spi_slave_set_auto_tx_buffer(txbuffer, buffer_size, true); +;;;272 hal_spi_slave_auto_transfer_start(); +;;;273 #endif +;;;274 #endif +;;;275 } +00000e bd70 POP {r4-r6,pc} +;;;276 + ENDP + + + AREA ||i.app_tp_screen_init||, CODE, READONLY, ALIGN=2 + + app_tp_screen_init PROC +;;;123 **************************************************************************/ +;;;124 void app_tp_screen_init(void) +000000 b510 PUSH {r4,lr} +;;;125 { +;;;126 hal_gpio_init_output(g_screen_input_rst_pad, IO_LVL_HIGH); +000002 2101 MOVS r1,#1 +000004 480c LDR r0,|L13.56| +000006 7800 LDRB r0,[r0,#0] ; g_screen_input_rst_pad +000008 f7fffffe BL hal_gpio_init_output +;;;127 delayUs(200); +00000c 20c8 MOVS r0,#0xc8 +00000e f7fffffe BL delayUs +;;;128 hal_gpio_set_output_data(g_screen_input_rst_pad, IO_LVL_LOW); +000012 2100 MOVS r1,#0 +000014 4808 LDR r0,|L13.56| +000016 7800 LDRB r0,[r0,#0] ; g_screen_input_rst_pad +000018 f7fffffe BL hal_gpio_set_output_data +;;;129 delayUs(200); +00001c 20c8 MOVS r0,#0xc8 +00001e f7fffffe BL delayUs +;;;130 hal_gpio_set_output_data(g_screen_input_rst_pad, IO_LVL_HIGH); +000022 2101 MOVS r1,#1 +000024 4804 LDR r0,|L13.56| +000026 7800 LDRB r0,[r0,#0] ; g_screen_input_rst_pad +000028 f7fffffe BL hal_gpio_set_output_data +;;;131 delayUs(400); +00002c 20ff MOVS r0,#0xff +00002e 3091 ADDS r0,r0,#0x91 +000030 f7fffffe BL delayUs +;;;132 } +000034 bd10 POP {r4,pc} +;;;133 + ENDP + +000036 0000 DCW 0x0000 + |L13.56| + DCD g_screen_input_rst_pad + + AREA ||i.app_tp_screen_int_callback||, CODE, READONLY, ALIGN=2 + + app_tp_screen_int_callback PROC +;;;53 **************************************************************************/ +;;;54 static void app_tp_screen_int_callback(void *data) +000000 2101 MOVS r1,#1 +;;;55 { +;;;56 s_screen_int_flag = true; +000002 4a01 LDR r2,|L14.8| +000004 7011 STRB r1,[r2,#0] +;;;57 } +000006 4770 BX lr +;;;58 + 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 +;;;81 **************************************************************************/ +;;;82 static void app_tp_screen_int_init(void) +000000 b510 PUSH {r4,lr} +;;;83 { +;;;84 hal_gpio_ctrl_eint(g_screen_input_int_pad, DISABLE); // 1.关闭中断 +000002 2100 MOVS r1,#0 +000004 480c LDR r0,|L15.56| +000006 7800 LDRB r0,[r0,#0] ; g_screen_input_int_pad +000008 f7fffffe BL hal_gpio_ctrl_eint +;;;85 #if SCREEN_INT_LOW_DEFAULT +;;;86 hal_gpio_set_pull_state(g_screen_input_int_pad, DISABLE, ENABLE); // 2.配置下拉 +;;;87 hal_gpio_init_eint(g_screen_input_int_pad, DETECT_RISING_EDGE); // 3.中断初始化,INT 上升沿触发中断 +;;;88 #else +;;;89 hal_gpio_set_pull_state(g_screen_input_int_pad, ENABLE, DISABLE); // 2.配置上拉 +00000c 2200 MOVS r2,#0 +00000e 2101 MOVS r1,#1 +000010 4809 LDR r0,|L15.56| +000012 7800 LDRB r0,[r0,#0] ; g_screen_input_int_pad +000014 f7fffffe BL hal_gpio_set_pull_state +;;;90 hal_gpio_init_eint(g_screen_input_int_pad, DETECT_FALLING_EDGE); // 3.中断初始化,INT 下降沿触发中断 +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 +;;;91 #endif +;;;92 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 +;;;93 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 +;;;94 } +000036 bd10 POP {r4,pc} +;;;95 + 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=2 + + app_tp_screen_int_lvl_low PROC +;;;65 **************************************************************************/ +;;;66 static bool app_tp_screen_int_lvl_low(void) +000000 b510 PUSH {r4,lr} +;;;67 { +;;;68 #if SCREEN_INT_LOW_DEFAULT +;;;69 return hal_gpio_get_input_data(g_screen_input_int_pad); //INT 为高电平时,说明还有报点数据没读出 +;;;70 #else +;;;71 return !hal_gpio_get_input_data(g_screen_input_int_pad); //INT 为低电平时,说明还有报点数据没读出 +000002 4805 LDR r0,|L16.24| +000004 7800 LDRB r0,[r0,#0] ; g_screen_input_int_pad +000006 f7fffffe BL hal_gpio_get_input_data +00000a 2800 CMP r0,#0 +00000c d101 BNE |L16.18| +00000e 2001 MOVS r0,#1 + |L16.16| +;;;72 #endif +;;;73 } +000010 bd10 POP {r4,pc} + |L16.18| +000012 2000 MOVS r0,#0 ;71 +000014 e7fc B |L16.16| +;;;74 + ENDP + +000016 0000 DCW 0x0000 + |L16.24| + DCD g_screen_input_int_pad + + AREA ||i.app_tp_transfer_phone||, CODE, READONLY, ALIGN=2 + + app_tp_transfer_phone PROC +;;;570 **************************************************************************/ +;;;571 static void app_tp_transfer_phone(size_t recieve_num) +000000 b510 PUSH {r4,lr} +;;;572 { +000002 4604 MOV r4,r0 +;;;573 /* 数据解析,判断是否需要答复以及答复的buffer指针 */ +;;;574 if (recieve_num > 0) +000004 2c00 CMP r4,#0 +000006 d005 BEQ |L17.20| +;;;575 { +;;;576 app_tp_phone_analysis_data(s_phone_read_buffer, recieve_num, &s_slave_txbuffer, &s_slave_txbuffer_size); +000008 4b05 LDR r3,|L17.32| +00000a 4a06 LDR r2,|L17.36| +00000c 4621 MOV r1,r4 +00000e 4806 LDR r0,|L17.40| +000010 f7fffffe BL app_tp_phone_analysis_data + |L17.20| +;;;577 } +;;;578 +;;;579 app_tp_s_read(s_phone_read_buffer, BUFFER_SIZE_MAX); +000014 21fa MOVS r1,#0xfa +000016 4804 LDR r0,|L17.40| +000018 f7fffffe BL app_tp_s_read +;;;580 } +00001c bd10 POP {r4,pc} +;;;581 + ENDP + +00001e 0000 DCW 0x0000 + |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 +;;;374 **************************************************************************/ +;;;375 static void app_tp_transfer_screen_const(void) +000000 b510 PUSH {r4,lr} +;;;376 { +;;;377 static bool screen_const_transfer_buffer_ready = true; //发送 buffer 是否已准备好 +;;;378 +;;;379 /**** 1. 判断当前状态通信已结束, 并且开机初始化流程还未走完****/ +;;;380 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 d06d BEQ |L18.230| +00000a 4837 LDR r0,|L18.232| +00000c 7800 LDRB r0,[r0,#0] ; s_screen_const_transfer_count +00000e 4937 LDR r1,|L18.236| +000010 7809 LDRB r1,[r1,#0] ; screen_reg_start_data_size +000012 4288 CMP r0,r1 +000014 da67 BGE |L18.230| +;;;381 { +;;;382 if (s_spim_write) //SPI 写数据后需要把接收FIFO的数据读出,不然会影响下一次读取 +000016 4836 LDR r0,|L18.240| +000018 7800 LDRB r0,[r0,#0] ; s_spim_write +00001a 2800 CMP r0,#0 +00001c d004 BEQ |L18.40| +;;;383 { +;;;384 hal_spi_m_clear_rxfifo(); +00001e f7fffffe BL hal_spi_m_clear_rxfifo +;;;385 s_spim_write = false; +000022 2000 MOVS r0,#0 +000024 4932 LDR r1,|L18.240| +000026 7008 STRB r0,[r1,#0] + |L18.40| +;;;386 } +;;;387 +;;;388 /**** 2. 发送或读取从机数据 ****/ +;;;389 if (screen_const_transfer_buffer_ready) +000028 4832 LDR r0,|L18.244| +00002a 7800 LDRB r0,[r0,#0] ; screen_const_transfer_buffer_ready +00002c 2800 CMP r0,#0 +00002e d038 BEQ |L18.162| +;;;390 { +;;;391 screen_const_transfer_buffer_ready = false; +000030 2000 MOVS r0,#0 +000032 4930 LDR r1,|L18.244| +000034 7008 STRB r0,[r1,#0] +;;;392 g_screen_tp_init_start = true; +000036 2001 MOVS r0,#1 +000038 492f LDR r1,|L18.248| +00003a 7008 STRB r0,[r1,#0] +;;;393 +;;;394 if (!screen_reg_start_data[s_screen_const_transfer_count].read_flag) //当前通信不需要读回,直接写 +00003c 482a LDR r0,|L18.232| +00003e 7800 LDRB r0,[r0,#0] ; s_screen_const_transfer_count +000040 2114 MOVS r1,#0x14 +000042 4348 MULS r0,r1,r0 +000044 492d LDR r1,|L18.252| +000046 1840 ADDS r0,r0,r1 +000048 7c00 LDRB r0,[r0,#0x10] +00004a 2800 CMP r0,#0 +00004c d110 BNE |L18.112| +;;;395 { +;;;396 app_tp_m_write(screen_reg_start_data[s_screen_const_transfer_count].buffer, screen_reg_start_data[s_screen_const_transfer_count].txbuffer_size); +00004e 4a26 LDR r2,|L18.232| +000050 7812 LDRB r2,[r2,#0] ; s_screen_const_transfer_count +000052 2314 MOVS r3,#0x14 +000054 435a MULS r2,r3,r2 +000056 460b MOV r3,r1 +000058 18d2 ADDS r2,r2,r3 +00005a 6891 LDR r1,[r2,#8] +00005c 4a22 LDR r2,|L18.232| +00005e 7812 LDRB r2,[r2,#0] ; s_screen_const_transfer_count +000060 2314 MOVS r3,#0x14 +000062 435a MULS r2,r3,r2 +000064 4b25 LDR r3,|L18.252| +000066 18d2 ADDS r2,r2,r3 +000068 6850 LDR r0,[r2,#4] +00006a f7fffffe BL app_tp_m_write +00006e e03a B |L18.230| + |L18.112| +;;;397 } +;;;398 else //当前通信需要读回,先写再读 +;;;399 { +;;;400 app_tp_m_read(screen_reg_start_data[s_screen_const_transfer_count].buffer, screen_reg_start_data[s_screen_const_transfer_count].txbuffer_size, \ +000070 4a1d LDR r2,|L18.232| +000072 7812 LDRB r2,[r2,#0] ; s_screen_const_transfer_count +000074 2414 MOVS r4,#0x14 +000076 4362 MULS r2,r4,r2 +000078 4c20 LDR r4,|L18.252| +00007a 1912 ADDS r2,r2,r4 +00007c 68d3 LDR r3,[r2,#0xc] +00007e 4a1a LDR r2,|L18.232| +000080 7812 LDRB r2,[r2,#0] ; s_screen_const_transfer_count +000082 2414 MOVS r4,#0x14 +000084 4362 MULS r2,r4,r2 +000086 4c1d LDR r4,|L18.252| +000088 1912 ADDS r2,r2,r4 +00008a 6891 LDR r1,[r2,#8] +00008c 4a16 LDR r2,|L18.232| +00008e 7812 LDRB r2,[r2,#0] ; s_screen_const_transfer_count +000090 2414 MOVS r4,#0x14 +000092 4362 MULS r2,r4,r2 +000094 4c19 LDR r4,|L18.252| +000096 1912 ADDS r2,r2,r4 +000098 6850 LDR r0,[r2,#4] +00009a 4a19 LDR r2,|L18.256| +00009c f7fffffe BL app_tp_m_read +0000a0 e021 B |L18.230| + |L18.162| +;;;401 s_screen_read_buffer, screen_reg_start_data[s_screen_const_transfer_count].rxbuffer_size); +;;;402 } +;;;403 +;;;404 } +;;;405 /**** 3. 解析本次通信数据,并准备下一次通信的buffer ****/ +;;;406 else +;;;407 { +;;;408 screen_const_transfer_buffer_ready = true; +0000a2 2001 MOVS r0,#1 +0000a4 4913 LDR r1,|L18.244| +0000a6 7008 STRB r0,[r1,#0] +;;;409 s_screen_const_transfer_count = app_tp_screen_analysis_const(s_screen_const_transfer_count, s_screen_read_buffer, \ +0000a8 480f LDR r0,|L18.232| +0000aa 7800 LDRB r0,[r0,#0] ; s_screen_const_transfer_count +0000ac 2114 MOVS r1,#0x14 +0000ae 4348 MULS r0,r1,r0 +0000b0 4912 LDR r1,|L18.252| +0000b2 1840 ADDS r0,r0,r1 +0000b4 4912 LDR r1,|L18.256| +0000b6 68c2 LDR r2,[r0,#0xc] +0000b8 480b LDR r0,|L18.232| +0000ba 7800 LDRB r0,[r0,#0] ; s_screen_const_transfer_count +0000bc f7fffffe BL app_tp_screen_analysis_const +0000c0 4909 LDR r1,|L18.232| +0000c2 7008 STRB r0,[r1,#0] +;;;410 screen_reg_start_data[s_screen_const_transfer_count].rxbuffer_size); +;;;411 +;;;412 if (s_screen_const_transfer_count >= screen_reg_start_data_size) +0000c4 4608 MOV r0,r1 +0000c6 7800 LDRB r0,[r0,#0] ; s_screen_const_transfer_count +0000c8 4908 LDR r1,|L18.236| +0000ca 7809 LDRB r1,[r1,#0] ; screen_reg_start_data_size +0000cc 4288 CMP r0,r1 +0000ce db0a BLT |L18.230| +;;;413 { +;;;414 s_screen_init_complate = true; +0000d0 2001 MOVS r0,#1 +0000d2 490c LDR r1,|L18.260| +0000d4 7008 STRB r0,[r1,#0] +;;;415 TAU_LOGD("tp init done\n"); +0000d6 bf00 NOP +0000d8 22ff MOVS r2,#0xff +0000da 32a0 ADDS r2,r2,#0xa0 +0000dc a10a ADR r1,|L18.264| +0000de a00c ADR r0,|L18.272| +0000e0 f7fffffe BL LOG_printf +0000e4 bf00 NOP + |L18.230| +;;;416 } +;;;417 } +;;;418 } +;;;419 } +0000e6 bd10 POP {r4,pc} +;;;420 + ENDP + + |L18.232| + DCD s_screen_const_transfer_count + |L18.236| + DCD screen_reg_start_data_size + |L18.240| + DCD s_spim_write + |L18.244| + DCD screen_const_transfer_buffer_ready + |L18.248| + DCD g_screen_tp_init_start + |L18.252| + DCD screen_reg_start_data + |L18.256| + DCD s_screen_read_buffer + |L18.260| + DCD s_screen_init_complate + |L18.264| +000108 7461755f DCB "tau_log",0 +00010c 6c6f6700 + |L18.272| +000110 5b25735d DCB "[%s] (%04d) tp init done\n",0 +000114 20282530 +000118 34642920 +00011c 74702069 +000120 6e697420 +000124 646f6e65 +000128 0a00 +00012a 00 DCB 0 +00012b 00 DCB 0 + + AREA ||i.app_tp_transfer_screen_int||, CODE, READONLY, ALIGN=2 + + app_tp_transfer_screen_int PROC +;;;460 **************************************************************************/ +;;;461 void app_tp_transfer_screen_int(void) +000000 b538 PUSH {r3-r5,lr} +;;;462 { +;;;463 static uint8_t len = 0; +;;;464 bool screen_gpio_int = false; +000002 2400 MOVS r4,#0 +;;;465 static uint8_t screen_int_transfer_count = 0; //记录当前通信到哪一步 +;;;466 static bool screen_int_transfer_buffer_ready = true; //发送 buffer 是否已准备好 +;;;467 volatile bool init_gpio = false; +000004 2000 MOVS r0,#0 +000006 9000 STR r0,[sp,#0] +;;;468 if (!s_screen_init_complate) //TP 初始化还未完成,则先进行初始化操作 +000008 483e LDR r0,|L19.260| +00000a 7800 LDRB r0,[r0,#0] ; s_screen_init_complate +00000c 2800 CMP r0,#0 +00000e d102 BNE |L19.22| +;;;469 { +;;;470 app_tp_transfer_screen_const(); +000010 f7fffffe BL app_tp_transfer_screen_const + |L19.20| +;;;471 return; +;;;472 } +;;;473 +;;;474 app_tp_transfer_screen_restart(); +;;;475 app_tp_screen_analysis_wake_up_exec(); +;;;476 +;;;477 /**** 1. 判断 screen 是否发出中断信号 ****/ +;;;478 // s_screen_int_flag: 中断信号标志位 +;;;479 // app_tp_screen_int_lvl_low : SPI 长时间通信时,偶尔会出现cs拉高导致通信异常卡死,该标志位用于解决卡死的问题 +;;;480 init_gpio = app_tp_screen_int_lvl_low(); +;;;481 screen_gpio_int = (s_screen_int_flag || init_gpio); +;;;482 if (((screen_gpio_int) || (s_screen_int_transfer_status)) && app_tp_m_transfer_complate()) //判断当前不处于通信状态,并且准备通信 +;;;483 { +;;;484 s_screen_int_flag = false; +;;;485 if (s_spim_write) //SPI 写数据后需要把接收FIFO的数据读出,不然会影响下一次读取 +;;;486 { +;;;487 hal_spi_m_clear_rxfifo(); +;;;488 s_spim_write = false; +;;;489 } +;;;490 +;;;491 /**** 2. 发送或读取从机数据 ****/ +;;;492 if (screen_int_transfer_buffer_ready) +;;;493 { +;;;494 screen_int_transfer_buffer_ready = false; +;;;495 s_screen_int_transfer_status = true; +;;;496 len = 0; +;;;497 #if 1 +;;;498 app_tp_m_read(screen_reg_int_data[0].buffer, 1, s_screen_read_buffer, 8); +;;;499 while(!hal_i2c_m_transfer_complate()); +;;;500 if(s_screen_read_buffer[7]>0) +;;;501 { +;;;502 len = s_screen_read_buffer[7]*8; +;;;503 app_tp_m_read(screen_reg_int_data[0].buffer, 1, &s_screen_read_buffer[8], len); +;;;504 while(!hal_i2c_m_transfer_complate()); +;;;505 } +;;;506 /* delayUs(100); +;;;507 while(!hal_gpio_get_input_data(g_screen_input_int_pad)) +;;;508 { +;;;509 app_tp_m_read(screen_reg_int_data[0].buffer, 1, s_screen_read_buffer, 8); +;;;510 while(!hal_i2c_m_transfer_complate()); +;;;511 delayUs(100); +;;;512 if(s_screen_read_buffer[7]>0) +;;;513 { +;;;514 len = s_screen_read_buffer[7]*8; +;;;515 app_tp_m_read(screen_reg_int_data[0].buffer, 1, &s_screen_read_buffer[8], len); +;;;516 while(!hal_i2c_m_transfer_complate()); +;;;517 delayUs(100); +;;;518 } +;;;519 } +;;;520 */ +;;;521 // ap_tp_st_touch_error_handler_F3(s_screen_read_buffer); +;;;522 // ap_tp_st_touch_error_handler_FF(s_screen_read_buffer); +;;;523 // ap_tp_st_touch_scan_point_record_event(s_screen_read_buffer, len + 8); +;;;524 +;;;525 +;;;526 #else +;;;527 if (!screen_reg_int_data[screen_int_transfer_count].read_flag) //当前通信不需要读回,直接写 +;;;528 { +;;;529 app_tp_m_write(screen_reg_int_data[screen_int_transfer_count].buffer, screen_reg_int_data[screen_int_transfer_count].txbuffer_size); +;;;530 } +;;;531 else //当前通信需要读回,先写再读 +;;;532 { +;;;533 app_tp_m_read(screen_reg_int_data[screen_int_transfer_count].buffer, screen_reg_int_data[screen_int_transfer_count].txbuffer_size, \ +;;;534 s_screen_read_buffer, screen_reg_int_data[screen_int_transfer_count].rxbuffer_size); +;;;535 } +;;;536 +;;;537 // ap_tp_st_touch_error_handler_F3(s_screen_read_buffer); +;;;538 // ap_tp_st_touch_error_handler_FF(s_screen_read_buffer); +;;;539 // ap_tp_st_touch_scan_point_record_event(s_screen_read_buffer, 8); +;;;540 +;;;541 #endif +;;;542 } +;;;543 /**** 3. 解析本次通信数据,并准备下一次通信的buffer ****/ +;;;544 else +;;;545 { +;;;546 screen_int_transfer_buffer_ready = true; +;;;547 +;;;548 screen_int_transfer_count = app_tp_screen_analysis_int(screen_int_transfer_count, s_screen_read_buffer, \ +;;;549 (len + 8)); +;;;550 +;;;551 // screen_int_transfer_count = app_tp_screen_analysis_int(screen_int_transfer_count, s_screen_read_buffer, \ +;;;552 // screen_reg_int_data[screen_int_transfer_count].rxbuffer_size); +;;;553 +;;;554 if (screen_int_transfer_count >= screen_reg_int_data_size) //解析需要等最后一次通信结束,最后一次数据解析后,停止通信 +;;;555 { +;;;556 screen_int_transfer_count = 0; +;;;557 s_screen_int_transfer_status = false; +;;;558 return; +;;;559 } +;;;560 } +;;;561 } +;;;562 } +000014 bd38 POP {r3-r5,pc} + |L19.22| +000016 f7fffffe BL app_tp_transfer_screen_restart +00001a f7fffffe BL app_tp_screen_analysis_wake_up_exec +00001e f7fffffe BL app_tp_screen_int_lvl_low +000022 9000 STR r0,[sp,#0] ;480 +000024 4838 LDR r0,|L19.264| +000026 7800 LDRB r0,[r0,#0] ;481 ; s_screen_int_flag +000028 2800 CMP r0,#0 ;481 +00002a d103 BNE |L19.52| +00002c 4668 MOV r0,sp ;481 +00002e 7800 LDRB r0,[r0,#0] ;481 +000030 2800 CMP r0,#0 ;481 +000032 d001 BEQ |L19.56| + |L19.52| +000034 2001 MOVS r0,#1 ;481 +000036 e000 B |L19.58| + |L19.56| +000038 2000 MOVS r0,#0 ;481 + |L19.58| +00003a 4604 MOV r4,r0 ;481 +00003c 2c00 CMP r4,#0 ;482 +00003e d103 BNE |L19.72| +000040 4832 LDR r0,|L19.268| +000042 7800 LDRB r0,[r0,#0] ;482 ; s_screen_int_transfer_status +000044 2800 CMP r0,#0 ;482 +000046 d05a BEQ |L19.254| + |L19.72| +000048 f7fffffe BL app_tp_m_transfer_complate +00004c 2800 CMP r0,#0 ;482 +00004e d056 BEQ |L19.254| +000050 2000 MOVS r0,#0 ;484 +000052 492d LDR r1,|L19.264| +000054 7008 STRB r0,[r1,#0] ;484 +000056 482e LDR r0,|L19.272| +000058 7800 LDRB r0,[r0,#0] ;485 ; s_spim_write +00005a 2800 CMP r0,#0 ;485 +00005c d004 BEQ |L19.104| +00005e f7fffffe BL hal_spi_m_clear_rxfifo +000062 2000 MOVS r0,#0 ;488 +000064 492a LDR r1,|L19.272| +000066 7008 STRB r0,[r1,#0] ;488 + |L19.104| +000068 482a LDR r0,|L19.276| +00006a 7800 LDRB r0,[r0,#0] ;492 ; screen_int_transfer_buffer_ready +00006c 2800 CMP r0,#0 ;492 +00006e d02d BEQ |L19.204| +000070 2000 MOVS r0,#0 ;494 +000072 4928 LDR r1,|L19.276| +000074 7008 STRB r0,[r1,#0] ;494 +000076 2001 MOVS r0,#1 ;495 +000078 4924 LDR r1,|L19.268| +00007a 7008 STRB r0,[r1,#0] ;495 +00007c 2000 MOVS r0,#0 ;496 +00007e 4926 LDR r1,|L19.280| +000080 7008 STRB r0,[r1,#0] ;496 +000082 4926 LDR r1,|L19.284| +000084 2308 MOVS r3,#8 ;498 +000086 4a26 LDR r2,|L19.288| +000088 6808 LDR r0,[r1,#0] ;498 ; screen_reg_int_data +00008a 2101 MOVS r1,#1 ;498 +00008c f7fffffe BL app_tp_m_read +000090 bf00 NOP ;499 + |L19.146| +000092 f7fffffe BL hal_i2c_m_transfer_complate +000096 2800 CMP r0,#0 ;499 +000098 d0fb BEQ |L19.146| +00009a 4821 LDR r0,|L19.288| +00009c 79c0 LDRB r0,[r0,#7] ;500 ; s_screen_read_buffer +00009e 2800 CMP r0,#0 ;500 +0000a0 dd2d BLE |L19.254| +0000a2 481f LDR r0,|L19.288| +0000a4 79c0 LDRB r0,[r0,#7] ;502 ; s_screen_read_buffer +0000a6 06c0 LSLS r0,r0,#27 ;502 +0000a8 0e00 LSRS r0,r0,#24 ;502 +0000aa 491b LDR r1,|L19.280| +0000ac 7008 STRB r0,[r1,#0] ;502 +0000ae 491b LDR r1,|L19.284| +0000b0 6808 LDR r0,[r1,#0] ;503 ; screen_reg_int_data +0000b2 4919 LDR r1,|L19.280| +0000b4 780b LDRB r3,[r1,#0] ;503 ; len +0000b6 4a1a LDR r2,|L19.288| +0000b8 3208 ADDS r2,r2,#8 ;503 +0000ba 2101 MOVS r1,#1 ;503 +0000bc f7fffffe BL app_tp_m_read +0000c0 bf00 NOP ;504 + |L19.194| +0000c2 f7fffffe BL hal_i2c_m_transfer_complate +0000c6 2800 CMP r0,#0 ;504 +0000c8 d0fb BEQ |L19.194| +0000ca e018 B |L19.254| + |L19.204| +0000cc 2001 MOVS r0,#1 ;546 +0000ce 4911 LDR r1,|L19.276| +0000d0 7008 STRB r0,[r1,#0] ;546 +0000d2 4811 LDR r0,|L19.280| +0000d4 7802 LDRB r2,[r0,#0] ;548 ; len +0000d6 3208 ADDS r2,r2,#8 ;548 +0000d8 4911 LDR r1,|L19.288| +0000da 4812 LDR r0,|L19.292| +0000dc 7800 LDRB r0,[r0,#0] ;548 ; screen_int_transfer_count +0000de f7fffffe BL app_tp_screen_analysis_int +0000e2 4910 LDR r1,|L19.292| +0000e4 7008 STRB r0,[r1,#0] ;548 +0000e6 4608 MOV r0,r1 ;554 +0000e8 7800 LDRB r0,[r0,#0] ;554 ; screen_int_transfer_count +0000ea 490f LDR r1,|L19.296| +0000ec 7809 LDRB r1,[r1,#0] ;554 ; screen_reg_int_data_size +0000ee 4288 CMP r0,r1 ;554 +0000f0 db05 BLT |L19.254| +0000f2 2000 MOVS r0,#0 ;556 +0000f4 490b LDR r1,|L19.292| +0000f6 7008 STRB r0,[r1,#0] ;556 +0000f8 4904 LDR r1,|L19.268| +0000fa 7008 STRB r0,[r1,#0] ;557 +0000fc e78a B |L19.20| + |L19.254| +0000fe bf00 NOP +000100 e788 B |L19.20| +;;;563 + ENDP + +000102 0000 DCW 0x0000 + |L19.260| + DCD s_screen_init_complate + |L19.264| + DCD s_screen_int_flag + |L19.268| + DCD s_screen_int_transfer_status + |L19.272| + DCD s_spim_write + |L19.276| + DCD screen_int_transfer_buffer_ready + |L19.280| + DCD len + |L19.284| + DCD screen_reg_int_data + |L19.288| + DCD s_screen_read_buffer + |L19.292| + DCD screen_int_transfer_count + |L19.296| + DCD screen_reg_int_data_size + + AREA ||i.app_tp_transfer_screen_restart||, CODE, READONLY, ALIGN=2 + + app_tp_transfer_screen_restart PROC +;;;435 +;;;436 void app_tp_transfer_screen_restart(void) +000000 b510 PUSH {r4,lr} +;;;437 { +;;;438 if(g_screen_tp_init_restart == true) +000002 480b LDR r0,|L20.48| +000004 7800 LDRB r0,[r0,#0] ; g_screen_tp_init_restart +000006 2801 CMP r0,#1 +000008 d111 BNE |L20.46| +;;;439 { +;;;440 if(s_tp_restart_count < (65536/5)) // 65536*3 = 900ms 65536/5 = 60ms +00000a 480a LDR r0,|L20.52| +00000c 6800 LDR r0,[r0,#0] ; s_tp_restart_count +00000e 490a LDR r1,|L20.56| +000010 4288 CMP r0,r1 +000012 d205 BCS |L20.32| +;;;441 { +;;;442 s_tp_restart_count ++; +000014 4807 LDR r0,|L20.52| +000016 6800 LDR r0,[r0,#0] ; s_tp_restart_count +000018 1c40 ADDS r0,r0,#1 +00001a 4906 LDR r1,|L20.52| +00001c 6008 STR r0,[r1,#0] ; s_tp_restart_count +00001e e006 B |L20.46| + |L20.32| +;;;443 }else +;;;444 { +;;;445 s_tp_restart_count = 0; +000020 2000 MOVS r0,#0 +000022 4904 LDR r1,|L20.52| +000024 6008 STR r0,[r1,#0] ; s_tp_restart_count +;;;446 g_screen_tp_init_restart = false; +000026 4902 LDR r1,|L20.48| +000028 7008 STRB r0,[r1,#0] +;;;447 // app_tp_transfer_screen_start(); +;;;448 ap_tp_st_touch_hardware_reset(); +00002a f7fffffe BL ap_tp_st_touch_hardware_reset + |L20.46| +;;;449 } +;;;450 } +;;;451 +;;;452 } +00002e bd10 POP {r4,pc} +;;;453 + ENDP + + |L20.48| + DCD g_screen_tp_init_restart + |L20.52| + DCD s_tp_restart_count + |L20.56| + DCD 0x00003333 + + AREA ||i.app_tp_transfer_screen_start||, CODE, READONLY, ALIGN=2 + + app_tp_transfer_screen_start PROC +;;;427 **************************************************************************/ +;;;428 void app_tp_transfer_screen_start(void) +000000 b510 PUSH {r4,lr} +;;;429 { +;;;430 s_screen_init_complate = false; +000002 2000 MOVS r0,#0 +000004 4904 LDR r1,|L21.24| +000006 7008 STRB r0,[r1,#0] +;;;431 s_screen_const_transfer_count = 0; +000008 4904 LDR r1,|L21.28| +00000a 7008 STRB r0,[r1,#0] +;;;432 app_tp_screen_init(); +00000c f7fffffe BL app_tp_screen_init +;;;433 app_tp_transfer_screen_const(); +000010 f7fffffe BL app_tp_transfer_screen_const +;;;434 } +000014 bd10 POP {r4,pc} +;;;435 + ENDP + +000016 0000 DCW 0x0000 + |L21.24| + DCD s_screen_init_complate + |L21.28| + DCD s_screen_const_transfer_count + + AREA ||.bss||, DATA, NOINIT, ALIGN=0 + + s_screen_read_buffer + % 250 + s_phone_read_buffer + % 250 + + AREA ||.data||, DATA, ALIGN=2 + + s_slave_txbuffer + DCD 0x00000000 + s_slave_txbuffer_size + DCD 0x00000000 + s_spim_write +000008 00 DCB 0x00 + s_screen_int_flag +000009 00 DCB 0x00 + s_phone_reset_flag +00000a 00 DCB 0x00 + s_screen_int_transfer_status +00000b 00 DCB 0x00 + s_screen_init_complate +00000c 01 DCB 0x01 + s_screen_const_transfer_count +00000d ff0000 DCB 0xff,0x00,0x00 + s_tp_restart_count + DCD 0x00000000 + i2cs_transfer +000014 01 DCB 0x01 + screen_const_transfer_buffer_ready +000015 01 DCB 0x01 + len +000016 00 DCB 0x00 + screen_int_transfer_count +000017 00 DCB 0x00 + screen_int_transfer_buffer_ready +000018 01 DCB 0x01 + +;*** Start embedded assembler *** + +#line 1 "..\\..\\src\\app\\touch\\app_tp_transfer.c" + AREA ||.rev16_text||, CODE + THUMB + EXPORT |__asm___17_app_tp_transfer_c_e672c05a____REV16| +#line 467 "C:\\Keil_v5\\ARM\\PACK\\ARM\\CMSIS\\5.5.1\\CMSIS\\Core\\Include\\cmsis_armcc.h" +|__asm___17_app_tp_transfer_c_e672c05a____REV16| PROC +#line 468 + + rev16 r0, r0 + bx lr + ENDP + AREA ||.revsh_text||, CODE + THUMB + EXPORT |__asm___17_app_tp_transfer_c_e672c05a____REVSH| +#line 482 +|__asm___17_app_tp_transfer_c_e672c05a____REVSH| PROC +#line 483 + + revsh r0, r0 + bx lr + ENDP + +;*** End embedded assembler *** diff --git a/project/ISP_568T/Listings/board.txt b/project/ISP_568T/Listings/board.txt new file mode 100644 index 0000000..72b2e53 --- /dev/null +++ b/project/ISP_568T/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..\CVWL568 -I..\..\src\app\s21p -I.\RTE\_ISP_568T -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\5.5.1\CMSIS\Core\Include -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\5.5.1\Device\ARM\ARMCM0\Include -D__MICROLIB -D__UVISION_VERSION=528 -D_RTE_ -DARMCM0 -DISP_568 --omf_browse=.\objects\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_568T/Listings/main.txt b/project/ISP_568T/Listings/main.txt new file mode 100644 index 0000000..2a07651 --- /dev/null +++ b/project/ISP_568T/Listings/main.txt @@ -0,0 +1,101 @@ +; 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..\CVWL568 -I..\..\src\app\s21p -I.\RTE\_ISP_568T -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\5.5.1\CMSIS\Core\Include -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\5.5.1\Device\ARM\ARMCM0\Include -D__MICROLIB -D__UVISION_VERSION=528 -D_RTE_ -DARMCM0 -DISP_568 --omf_browse=.\objects\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_S21P_EN +;;;58 S21P_demo(); +000006 f7fffffe BL S21P_demo +;;;59 #endif +;;;60 while (1); +00000a bf00 NOP + |L1.12| +00000c e7fe B |L1.12| + |L1.14| +00000e e7fa B |L1.6| +;;;61 } +;;;62 } + 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_568T/Listings/s21p_demo.txt b/project/ISP_568T/Listings/s21p_demo.txt new file mode 100644 index 0000000..d170a99 --- /dev/null +++ b/project/ISP_568T/Listings/s21p_demo.txt @@ -0,0 +1,10228 @@ +; 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\s21p_demo.o --asm_dir=.\Listings\ --list_dir=.\Listings\ --depend=.\objects\s21p_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..\CVWL568 -I..\..\src\app\s21p -I.\RTE\_ISP_568T -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\5.5.1\CMSIS\Core\Include -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\5.5.1\Device\ARM\ARMCM0\Include -D__MICROLIB -D__UVISION_VERSION=528 -D_RTE_ -DARMCM0 -DISP_568 --omf_browse=.\objects\s21p_demo.crf ..\..\src\app\s21p\S21P_demo.c] + THUMB + + AREA ||i.S21P_demo||, CODE, READONLY, ALIGN=2 + + S21P_demo PROC +;;;3778 +;;;3779 void S21P_demo(void) +000000 2100 MOVS r1,#0 +;;;3780 { +;;;3781 /* mipi rx初始化 */ +;;;3782 hal_gpio_init_output(IO_PAD_AP_SWIRE, IO_LVL_LOW); +000002 2004 MOVS r0,#4 +000004 f7fffffe BL hal_gpio_init_output +;;;3783 hal_gpio_init_output(IO_PAD_PWMEN, IO_LVL_LOW); +000008 2100 MOVS r1,#0 +00000a 2013 MOVS r0,#0x13 +00000c f7fffffe BL hal_gpio_init_output +;;;3784 hal_gpio_init_output(IO_PAD_ADCIN, IO_LVL_LOW); +000010 2100 MOVS r1,#0 +000012 2014 MOVS r0,#0x14 +000014 f7fffffe BL hal_gpio_init_output +;;;3785 //hal_gpio_init_output(IO_PAD_AP_TPRSTN, IO_LVL_HIGH); +;;;3786 // hal_gpio_set_mode(IO_PAD_AP_SPIS_CLK, IO_MODE_I2C1_SCL); +;;;3787 // hal_gpio_set_mode(IO_PAD_AP_SPIS_CSN, IO_MODE_I2C1_SDA); +;;;3788 +;;;3789 open_mipi_rx(); +000018 f7fffffe BL open_mipi_rx +;;;3790 +;;;3791 TAU_LOGD("S21P rx done \n"); +00001c bf00 NOP +00001e 4a44 LDR r2,|L1.304| +000020 a144 ADR r1,|L1.308| +000022 a047 ADR r0,|L1.320| +000024 f7fffffe BL LOG_printf +000028 bf00 NOP +;;;3792 /* swire 初始化 */ +;;;3793 // swire_init(); +;;;3794 app_tp_init(); +00002a f7fffffe BL app_tp_init +;;;3795 /* 次应用中,屏的1.8V 接 AP TP1.8, PWMEN 接到 AP AVDD_SWIRE, 用于检查是息屏开屏还是AC */ +;;;3796 if(hal_gpio_get_input_data(IO_PAD_AP_TPRSTN)) /* S9 可以删掉 */ +00002e 2015 MOVS r0,#0x15 +000030 f7fffffe BL hal_gpio_get_input_data +000034 2800 CMP r0,#0 +000036 d00a BEQ |L1.78| +;;;3797 { +;;;3798 /* 息屏唤醒 */ +;;;3799 start_display_on = true; +000038 2001 MOVS r0,#1 +00003a 4948 LDR r1,|L1.348| +00003c 7008 STRB r0,[r1,#0] +;;;3800 TAU_LOGD("DC\n"); +00003e bf00 NOP +000040 4a3b LDR r2,|L1.304| +000042 3209 ADDS r2,r2,#9 +000044 a13b ADR r1,|L1.308| +000046 a046 ADR r0,|L1.352| +000048 f7fffffe BL LOG_printf +00004c e007 B |L1.94| + |L1.78| +;;;3801 } +;;;3802 else /* S9 可以删掉 */ +;;;3803 { +;;;3804 /* AC */ +;;;3805 TAU_LOGD("AC\n"); +00004e bf00 NOP +000050 4a37 LDR r2,|L1.304| +000052 320e ADDS r2,r2,#0xe +000054 a137 ADR r1,|L1.308| +000056 a046 ADR r0,|L1.368| +000058 f7fffffe BL LOG_printf +00005c bf00 NOP + |L1.94| +;;;3806 } +;;;3807 /* 在TP1.8有电之前,使用软件产生TE,屏显示之后切换为硬件产生TE S9 可以删掉 */ +;;;3808 // soft_te_timer_init(); +;;;3809 /* mipi tx 初始化 */ +;;;3810 init_mipi_tx(); +00005e f7fffffe BL init_mipi_tx +;;;3811 /* 屏初始化 */ +;;;3812 //tx_display_on(); /* S9 打开,删除While循环的屏初始化 */ +;;;3813 // app_tp_init(); +;;;3814 app_tp_transfer_screen_start(); +000062 f7fffffe BL app_tp_transfer_screen_start +;;;3815 +;;;3816 #ifdef ADD_TIMER3_FUNCTION +;;;3817 g_tp_sleep_delay_count = 0; +000066 2000 MOVS r0,#0 +000068 4945 LDR r1,|L1.384| +00006a 7008 STRB r0,[r1,#0] +;;;3818 hal_timer_init(TIMER_NUM3); +00006c 2003 MOVS r0,#3 +00006e f7fffffe BL hal_timer_init +;;;3819 hal_timer_start(TIMER_NUM3, 10, soft_timer3_cb, NULL); +000072 2300 MOVS r3,#0 +000074 4a43 LDR r2,|L1.388| +000076 210a MOVS r1,#0xa +000078 2003 MOVS r0,#3 +00007a f7fffffe BL hal_timer_start +;;;3820 TAU_LOGD("start timer3"); +00007e bf00 NOP +000080 4a2b LDR r2,|L1.304| +000082 321d ADDS r2,r2,#0x1d +000084 a12b ADR r1,|L1.308| +000086 a040 ADR r0,|L1.392| +000088 f7fffffe BL LOG_printf +00008c bf00 NOP +;;;3821 #endif +;;;3822 while(1) +00008e e04d B |L1.300| + |L1.144| +;;;3823 { +;;;3824 /* 等待 AP TP 上电*/ +;;;3825 if(start_display_on == true) +000090 4832 LDR r0,|L1.348| +000092 7800 LDRB r0,[r0,#0] ; start_display_on +000094 2801 CMP r0,#1 +000096 d113 BNE |L1.192| +;;;3826 { +;;;3827 /* 屏初始化 */ +;;;3828 tx_display_on(); +000098 f7fffffe BL tx_display_on +;;;3829 TAU_LOGD("tx_display_on\n"); +00009c bf00 NOP +00009e 4a24 LDR r2,|L1.304| +0000a0 3226 ADDS r2,r2,#0x26 +0000a2 a124 ADR r1,|L1.308| +0000a4 a03f ADR r0,|L1.420| +0000a6 f7fffffe BL LOG_printf +0000aa bf00 NOP +;;;3830 +;;;3831 start_display_on = false; +0000ac 2000 MOVS r0,#0 +0000ae 492b LDR r1,|L1.348| +0000b0 7008 STRB r0,[r1,#0] +;;;3832 panel_display_done = true; +0000b2 2001 MOVS r0,#1 +0000b4 4942 LDR r1,|L1.448| +0000b6 7008 STRB r0,[r1,#0] +;;;3833 #if ENABLE_TP_WAKE_UP//将启动中断放这里的原因是当开机时,复位会有一个连续拉低拉高(70ms)的过程,为了区分开机和待机,所以将中断启动放这里大于70ms,使得复位连续第二次拉高时不识别 +;;;3834 hal_gpio_set_ap_reset_int(ENABLE, ap_reset_cb, DETECT_RISING_EDGE); +0000b8 2202 MOVS r2,#2 +0000ba 4942 LDR r1,|L1.452| +0000bc f7fffffe BL hal_gpio_set_ap_reset_int + |L1.192| +;;;3835 #endif +;;;3836 } +;;;3837 /* 与屏的TP 模块通讯并初始化 */ +;;;3838 app_tp_transfer_screen_int(); +0000c0 f7fffffe BL app_tp_transfer_screen_int +;;;3839 +;;;3840 // tp_heartbeat_exec(); +;;;3841 // app_tp_calibration_exec(); +;;;3842 // ap_tp_st_touch_scan_point_record_event_exec(); +;;;3843 +;;;3844 while(hal_dsi_rx_ctrl_dsc_async_handler(g_rx_ctrl_handle)) +0000c4 bf00 NOP + |L1.198| +0000c6 4840 LDR r0,|L1.456| +0000c8 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0000ca f7fffffe BL hal_dsi_rx_ctrl_dsc_async_handler +0000ce 2800 CMP r0,#0 +0000d0 d1f9 BNE |L1.198| +;;;3845 { +;;;3846 +;;;3847 } +;;;3848 +;;;3849 #if ENABLE_TP_WAKE_UP +;;;3850 if (g_need_enter_sleep_mode) +0000d2 483e LDR r0,|L1.460| +0000d4 7800 LDRB r0,[r0,#0] ; g_need_enter_sleep_mode +0000d6 2800 CMP r0,#0 +0000d8 d028 BEQ |L1.300| +;;;3851 { +;;;3852 // g_mipi_path_off = true; +;;;3853 // hal_gpio_set_output_data(IO_PAD_TD_LEDPWM, IO_LVL_HIGH); +;;;3854 /* FIXME stop more model */ +;;;3855 hal_dsi_tx_ctrl_stop(g_tx_ctrl_handle); +0000da 483d LDR r0,|L1.464| +0000dc 6800 LDR r0,[r0,#0] ; g_tx_ctrl_handle +0000de f7fffffe BL hal_dsi_tx_ctrl_stop +;;;3856 hal_dsi_tx_ctrl_deinit(g_tx_ctrl_handle); +0000e2 483b LDR r0,|L1.464| +0000e4 6800 LDR r0,[r0,#0] ; g_tx_ctrl_handle +0000e6 f7fffffe BL hal_dsi_tx_ctrl_deinit +;;;3857 hal_dsi_rx_ctrl_stop(g_rx_ctrl_handle); +0000ea 4837 LDR r0,|L1.456| +0000ec 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0000ee f7fffffe BL hal_dsi_rx_ctrl_stop +;;;3858 hal_dsi_rx_ctrl_deinit(g_rx_ctrl_handle); +0000f2 4835 LDR r0,|L1.456| +0000f4 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0000f6 f7fffffe BL hal_dsi_rx_ctrl_deinit +;;;3859 +;;;3860 hal_swire_open(DISABLE); +0000fa 2000 MOVS r0,#0 +0000fc f7fffffe BL hal_swire_open +;;;3861 hal_swire_deinit(); +000100 f7fffffe BL hal_swire_deinit +;;;3862 hal_timer_stop(SWIRE_TIMER); +000104 2001 MOVS r0,#1 +000106 f7fffffe BL hal_timer_stop +;;;3863 hal_timer_deinit(SWIRE_TIMER); +00010a 2001 MOVS r0,#1 +00010c f7fffffe BL hal_timer_deinit +;;;3864 g_tp_sleep_in = true; +000110 2001 MOVS r0,#1 +000112 4930 LDR r1,|L1.468| +000114 7008 STRB r0,[r1,#0] +;;;3865 //hal_gpio_init_output(IO_PAD_TD_TPRSTN, IO_LVL_LOW); +;;;3866 // hal_system_set_vcc(false); //关VCC有屏唤不醒 +;;;3867 // hal_system_set_pvd(false); // +;;;3868 +;;;3869 TAU_LOGD("disable video path \n"); +000116 bf00 NOP +000118 4a05 LDR r2,|L1.304| +00011a 324e ADDS r2,r2,#0x4e +00011c a105 ADR r1,|L1.308| +00011e a02e ADR r0,|L1.472| +000120 f7fffffe BL LOG_printf +000124 bf00 NOP +;;;3870 g_need_enter_sleep_mode = false; +000126 2000 MOVS r0,#0 +000128 4928 LDR r1,|L1.460| +00012a 7008 STRB r0,[r1,#0] + |L1.300| +00012c e7b0 B |L1.144| +;;;3871 } +;;;3872 #endif +;;;3873 /* enter idle mode*/ +;;;3874 //hal_system_idle_mode(true); +;;;3875 } +;;;3876 } + ENDP + +00012e 0000 DCW 0x0000 + |L1.304| + DCD 0x00000ecf + |L1.308| +000134 53323150 DCB "S21P_demo",0 +000138 5f64656d +00013c 6f00 +00013e 00 DCB 0 +00013f 00 DCB 0 + |L1.320| +000140 5b25735d DCB "[%s] (%04d) S21P rx done \n",0 +000144 20282530 +000148 34642920 +00014c 53323150 +000150 20727820 +000154 646f6e65 +000158 200a00 +00015b 00 DCB 0 + |L1.348| + DCD start_display_on + |L1.352| +000160 5b25735d DCB "[%s] (%04d) DC\n",0 +000164 20282530 +000168 34642920 +00016c 44430a00 + |L1.368| +000170 5b25735d DCB "[%s] (%04d) AC\n",0 +000174 20282530 +000178 34642920 +00017c 41430a00 + |L1.384| + DCD g_tp_sleep_delay_count + |L1.388| + DCD soft_timer3_cb + |L1.392| +000188 5b25735d DCB "[%s] (%04d) start timer3",0 +00018c 20282530 +000190 34642920 +000194 73746172 +000198 74207469 +00019c 6d657233 +0001a0 00 +0001a1 00 DCB 0 +0001a2 00 DCB 0 +0001a3 00 DCB 0 + |L1.420| +0001a4 5b25735d DCB "[%s] (%04d) tx_display_on\n",0 +0001a8 20282530 +0001ac 34642920 +0001b0 74785f64 +0001b4 6973706c +0001b8 61795f6f +0001bc 6e0a00 +0001bf 00 DCB 0 + |L1.448| + DCD panel_display_done + |L1.452| + DCD ap_reset_cb + |L1.456| + DCD g_rx_ctrl_handle + |L1.460| + DCD g_need_enter_sleep_mode + |L1.464| + DCD g_tx_ctrl_handle + |L1.468| + DCD g_tp_sleep_in + |L1.472| +0001d8 5b25735d DCB "[%s] (%04d) disable video path \n",0 +0001dc 20282530 +0001e0 34642920 +0001e4 64697361 +0001e8 626c6520 +0001ec 76696465 +0001f0 6f207061 +0001f4 7468200a +0001f8 00 +0001f9 00 DCB 0 +0001fa 00 DCB 0 +0001fb 00 DCB 0 + + AREA ||i.ap_MIPI_RX_CMD_bb||, CODE, READONLY, ALIGN=1 + + ap_MIPI_RX_CMD_bb PROC +;;;1436 } +;;;1437 static bool ap_MIPI_RX_CMD_bb(hal_dsi_rx_ctrl_handle_t* handler, hal_dcs_packet_t* dcs_packet) +000000 b57c PUSH {r2-r6,lr} +;;;1438 { +000002 4605 MOV r5,r0 +000004 460c MOV r4,r1 +;;;1439 // for(int i = 0; i < dcs_packet->param_length; i++) +;;;1440 // { +;;;1441 // TAU_LOGD("BB_[%d] [%x] \n", i, dcs_packet->packet_param[i]) ; +;;;1442 // } +;;;1443 if(dcs_packet->packet_param[0] == 0x28) +000006 68e0 LDR r0,[r4,#0xc] +000008 7800 LDRB r0,[r0,#0] +00000a 2828 CMP r0,#0x28 +00000c d109 BNE |L2.34| +;;;1444 { +;;;1445 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x51, 0x02, 0x80); +00000e 2080 MOVS r0,#0x80 +000010 2102 MOVS r1,#2 +000012 2351 MOVS r3,#0x51 +000014 2203 MOVS r2,#3 +000016 9100 STR r1,[sp,#0] +000018 9001 STR r0,[sp,#4] +00001a 2100 MOVS r1,#0 +00001c 2039 MOVS r0,#0x39 +00001e f7fffffe BL hal_dsi_tx_ctrl_write_cmd + |L2.34| +;;;1446 } +;;;1447 return true; +000022 2001 MOVS r0,#1 +;;;1448 } +000024 bd7c POP {r2-r6,pc} +;;;1449 ///////////////// + ENDP + + + AREA ||i.ap_dcs_read||, CODE, READONLY, ALIGN=2 + + ap_dcs_read PROC +;;;162 +;;;163 static bool ap_dcs_read(uint8_t data_type, uint8_t dcs_cmd, uint8_t param) +000000 b507 PUSH {r0-r2,lr} +;;;164 { +000002 b0ac SUB sp,sp,#0xb0 +;;;165 if(dcs_cmd == 0xEE) +000004 982d LDR r0,[sp,#0xb4] +000006 28ee CMP r0,#0xee +000008 d109 BNE |L3.30| +;;;166 { +;;;167 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +00000a 2000 MOVS r0,#0 +00000c 2301 MOVS r3,#1 +00000e 4602 MOV r2,r0 +000010 2121 MOVS r1,#0x21 +000012 9000 STR r0,[sp,#0] +000014 48fa LDR r0,|L3.1024| +000016 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000018 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd + |L3.28| +00001c e3f8 B |L3.2064| + |L3.30| +;;;168 DSI_ACK_DT_DSC_SHORT_RESPONSE_1B, +;;;169 DSI_VC_0, +;;;170 1, 0x00); +;;;171 } +;;;172 else if(dcs_cmd == 0xE9) +00001e 982d LDR r0,[sp,#0xb4] +000020 28e9 CMP r0,#0xe9 +000022 d10a BNE |L3.58| +;;;173 { +;;;174 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +000024 2000 MOVS r0,#0 +000026 9000 STR r0,[sp,#0] +000028 2302 MOVS r3,#2 +00002a 4602 MOV r2,r0 +00002c 211c MOVS r1,#0x1c +00002e 9001 STR r0,[sp,#4] +000030 48f3 LDR r0,|L3.1024| +000032 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000034 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +000038 e7f0 B |L3.28| + |L3.58| +;;;175 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;176 DSI_VC_0, +;;;177 2, 0x00, 0x00); +;;;178 } +;;;179 else if(dcs_cmd == 0xDC) +00003a 982d LDR r0,[sp,#0xb4] +00003c 28dc CMP r0,#0xdc +00003e d109 BNE |L3.84| +;;;180 { +;;;181 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +000040 2005 MOVS r0,#5 +000042 2301 MOVS r3,#1 +000044 2200 MOVS r2,#0 +000046 2121 MOVS r1,#0x21 +000048 9000 STR r0,[sp,#0] +00004a 48ed LDR r0,|L3.1024| +00004c 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +00004e f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +000052 e7e3 B |L3.28| + |L3.84| +;;;182 DSI_ACK_DT_DSC_SHORT_RESPONSE_1B, +;;;183 DSI_VC_0, +;;;184 1, 0x05); +;;;185 } +;;;186 else if(dcs_cmd == 0xDB) +000054 982d LDR r0,[sp,#0xb4] +000056 28db CMP r0,#0xdb +000058 d109 BNE |L3.110| +;;;187 { +;;;188 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +00005a 2015 MOVS r0,#0x15 +00005c 2301 MOVS r3,#1 +00005e 2200 MOVS r2,#0 +000060 2121 MOVS r1,#0x21 +000062 9000 STR r0,[sp,#0] +000064 48e6 LDR r0,|L3.1024| +000066 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000068 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +00006c e7d6 B |L3.28| + |L3.110| +;;;189 DSI_ACK_DT_DSC_SHORT_RESPONSE_1B, +;;;190 DSI_VC_0, +;;;191 // 1,0x11); +;;;192 1, 0x15); +;;;193 } +;;;194 else if(dcs_cmd == 0xDA) +00006e 982d LDR r0,[sp,#0xb4] +000070 28da CMP r0,#0xda +000072 d109 BNE |L3.136| +;;;195 { +;;;196 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +000074 20a1 MOVS r0,#0xa1 +000076 2301 MOVS r3,#1 +000078 2200 MOVS r2,#0 +00007a 2121 MOVS r1,#0x21 +00007c 9000 STR r0,[sp,#0] +00007e 48e0 LDR r0,|L3.1024| +000080 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000082 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +000086 e7c9 B |L3.28| + |L3.136| +;;;197 DSI_ACK_DT_DSC_SHORT_RESPONSE_1B, +;;;198 DSI_VC_0, +;;;199 1, 0xA1); +;;;200 } +;;;201 else if(dcs_cmd == 0xD6) +000088 982d LDR r0,[sp,#0xb4] +00008a 28d6 CMP r0,#0xd6 +00008c d111 BNE |L3.178| +;;;202 { +;;;203 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +00008e 20a6 MOVS r0,#0xa6 +000090 2148 MOVS r1,#0x48 +000092 2271 MOVS r2,#0x71 +000094 2300 MOVS r3,#0 +000096 9301 STR r3,[sp,#4] +000098 9202 STR r2,[sp,#8] +00009a 9103 STR r1,[sp,#0xc] +00009c 9004 STR r0,[sp,#0x10] +00009e 20a3 MOVS r0,#0xa3 +0000a0 2305 MOVS r3,#5 +0000a2 2200 MOVS r2,#0 +0000a4 211c MOVS r1,#0x1c +0000a6 9000 STR r0,[sp,#0] +0000a8 48d5 LDR r0,|L3.1024| +0000aa 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0000ac f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +0000b0 e7b4 B |L3.28| + |L3.178| +;;;204 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;205 DSI_VC_0, +;;;206 5, 0xA3, 0x00, 0x71, 0x48, 0xA6); +;;;207 } +;;;208 else if(dcs_cmd == 0xC9) +0000b2 982d LDR r0,[sp,#0xb4] +0000b4 28c9 CMP r0,#0xc9 +0000b6 d16e BNE |L3.406| +;;;209 { +;;;210 uint32_t return_size = hal_dsi_rx_ctrl_get_max_ret_size(g_rx_ctrl_handle); +0000b8 48d1 LDR r0,|L3.1024| +0000ba 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0000bc f7fffffe BL hal_dsi_rx_ctrl_get_max_ret_size +0000c0 902b STR r0,[sp,#0xac] +;;;211 if(return_size == 10) +0000c2 982b LDR r0,[sp,#0xac] +0000c4 280a CMP r0,#0xa +0000c6 d167 BNE |L3.408| +;;;212 { +;;;213 static uint8_t ret_C9_count = 0; +;;;214 if(ret_C9_count == 0) +0000c8 48ce LDR r0,|L3.1028| +0000ca 7800 LDRB r0,[r0,#0] ; ret_C9_count +0000cc 2800 CMP r0,#0 +0000ce d11c BNE |L3.266| +;;;215 { +;;;216 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +0000d0 20e0 MOVS r0,#0xe0 +0000d2 2132 MOVS r1,#0x32 +0000d4 220c MOVS r2,#0xc +0000d6 236b MOVS r3,#0x6b +0000d8 9306 STR r3,[sp,#0x18] +0000da 9207 STR r2,[sp,#0x1c] +0000dc 9108 STR r1,[sp,#0x20] +0000de 9009 STR r0,[sp,#0x24] +0000e0 205c MOVS r0,#0x5c +0000e2 2121 MOVS r1,#0x21 +0000e4 2205 MOVS r2,#5 +0000e6 231a MOVS r3,#0x1a +0000e8 9302 STR r3,[sp,#8] +0000ea 9300 STR r3,[sp,#0] +0000ec 9301 STR r3,[sp,#4] +0000ee 9203 STR r2,[sp,#0xc] +0000f0 9104 STR r1,[sp,#0x10] +0000f2 9005 STR r0,[sp,#0x14] +0000f4 230a MOVS r3,#0xa +0000f6 2200 MOVS r2,#0 +0000f8 211c MOVS r1,#0x1c +0000fa 48c1 LDR r0,|L3.1024| +0000fc 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0000fe f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;217 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;218 DSI_VC_0, +;;;219 10, 0x1A, 0x1A, 0x1A, 0x05, 0x21, 0x5C, 0x6B, 0x0C, 0x32, 0xE0); +;;;220 ret_C9_count = 1; +000102 2001 MOVS r0,#1 +000104 49bf LDR r1,|L3.1028| +000106 7008 STRB r0,[r1,#0] + |L3.264| +000108 e206 B |L3.1304| + |L3.266| +;;;221 } +;;;222 else if(ret_C9_count == 1) +00010a 48be LDR r0,|L3.1028| +00010c 7800 LDRB r0,[r0,#0] ; ret_C9_count +00010e 2801 CMP r0,#1 +000110 d11e BNE |L3.336| +;;;223 { +;;;224 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +000112 2014 MOVS r0,#0x14 +000114 214a MOVS r1,#0x4a +000116 220d MOVS r2,#0xd +000118 23c4 MOVS r3,#0xc4 +00011a 9306 STR r3,[sp,#0x18] +00011c 9207 STR r2,[sp,#0x1c] +00011e 9108 STR r1,[sp,#0x20] +000120 9009 STR r0,[sp,#0x24] +000122 2011 MOVS r0,#0x11 +000124 2103 MOVS r1,#3 +000126 2225 MOVS r2,#0x25 +000128 23a3 MOVS r3,#0xa3 +00012a 9302 STR r3,[sp,#8] +00012c 9203 STR r2,[sp,#0xc] +00012e 9104 STR r1,[sp,#0x10] +000130 9005 STR r0,[sp,#0x14] +000132 200d MOVS r0,#0xd +000134 21e8 MOVS r1,#0xe8 +000136 230a MOVS r3,#0xa +000138 2200 MOVS r2,#0 +00013a 9100 STR r1,[sp,#0] +00013c 9001 STR r0,[sp,#4] +00013e 211c MOVS r1,#0x1c +000140 48af LDR r0,|L3.1024| +000142 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000144 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;225 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;226 DSI_VC_0, +;;;227 10, 0xE8, 0x0D, 0xA3, 0x25, 0x03, 0x11, 0xC4, 0x0D, 0x4A, 0x14); +;;;228 ret_C9_count = 2; +000148 2002 MOVS r0,#2 +00014a 49ae LDR r1,|L3.1028| +00014c 7008 STRB r0,[r1,#0] +00014e e7db B |L3.264| + |L3.336| +;;;229 } +;;;230 else if(ret_C9_count == 2) +000150 48ac LDR r0,|L3.1028| +000152 7800 LDRB r0,[r0,#0] ; ret_C9_count +000154 2802 CMP r0,#2 +000156 d120 BNE |L3.410| +;;;231 { +;;;232 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +000158 2079 MOVS r0,#0x79 +00015a 2146 MOVS r1,#0x46 +00015c 221c MOVS r2,#0x1c +00015e 23ab MOVS r3,#0xab +000160 9306 STR r3,[sp,#0x18] +000162 9207 STR r2,[sp,#0x1c] +000164 9108 STR r1,[sp,#0x20] +000166 9009 STR r0,[sp,#0x24] +000168 2059 MOVS r0,#0x59 +00016a 2175 MOVS r1,#0x75 +00016c 2217 MOVS r2,#0x17 +00016e 2379 MOVS r3,#0x79 +000170 9302 STR r3,[sp,#8] +000172 9203 STR r2,[sp,#0xc] +000174 9104 STR r1,[sp,#0x10] +000176 9005 STR r0,[sp,#0x14] +000178 20b1 MOVS r0,#0xb1 +00017a 2194 MOVS r1,#0x94 +00017c 230a MOVS r3,#0xa +00017e 2200 MOVS r2,#0 +000180 9100 STR r1,[sp,#0] +000182 9001 STR r0,[sp,#4] +000184 211c MOVS r1,#0x1c +000186 489e LDR r0,|L3.1024| +000188 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +00018a f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;233 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;234 DSI_VC_0, +;;;235 10, 0x94, 0xB1, 0x79, 0x17, 0x75, 0x59, 0xAB, 0x1C, 0x46, 0x79); +;;;236 ret_C9_count = 3; +00018e 2003 MOVS r0,#3 +000190 499c LDR r1,|L3.1028| +000192 7008 STRB r0,[r1,#0] +000194 e7b8 B |L3.264| + |L3.406| +000196 e3fd B |L3.2452| + |L3.408| +000198 e2d0 B |L3.1852| + |L3.410| +;;;237 } +;;;238 else if(ret_C9_count == 3) +00019a 489a LDR r0,|L3.1028| +00019c 7800 LDRB r0,[r0,#0] ; ret_C9_count +00019e 2803 CMP r0,#3 +0001a0 d11e BNE |L3.480| +;;;239 { +;;;240 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +0001a2 2000 MOVS r0,#0 +0001a4 21d0 MOVS r1,#0xd0 +0001a6 2236 MOVS r2,#0x36 +0001a8 2339 MOVS r3,#0x39 +0001aa 9306 STR r3,[sp,#0x18] +0001ac 9207 STR r2,[sp,#0x1c] +0001ae 9108 STR r1,[sp,#0x20] +0001b0 9009 STR r0,[sp,#0x24] +0001b2 2028 MOVS r0,#0x28 +0001b4 2172 MOVS r1,#0x72 +0001b6 2206 MOVS r2,#6 +0001b8 23f8 MOVS r3,#0xf8 +0001ba 9302 STR r3,[sp,#8] +0001bc 9203 STR r2,[sp,#0xc] +0001be 9104 STR r1,[sp,#0x10] +0001c0 9005 STR r0,[sp,#0x14] +0001c2 2022 MOVS r0,#0x22 +0001c4 21ff MOVS r1,#0xff +0001c6 230a MOVS r3,#0xa +0001c8 2200 MOVS r2,#0 +0001ca 9100 STR r1,[sp,#0] +0001cc 9001 STR r0,[sp,#4] +0001ce 211c MOVS r1,#0x1c +0001d0 488b LDR r0,|L3.1024| +0001d2 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0001d4 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;241 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;242 DSI_VC_0, +;;;243 10, 0xFF, 0x22, 0xF8, 0x06, 0x72, 0x28, 0x39, 0x36, 0xD0, 0x00); +;;;244 ret_C9_count = 4; +0001d8 2004 MOVS r0,#4 +0001da 498a LDR r1,|L3.1028| +0001dc 7008 STRB r0,[r1,#0] +0001de e793 B |L3.264| + |L3.480| +;;;245 } +;;;246 else if(ret_C9_count == 4) +0001e0 4888 LDR r0,|L3.1028| +0001e2 7800 LDRB r0,[r0,#0] ; ret_C9_count +0001e4 2804 CMP r0,#4 +0001e6 d11c BNE |L3.546| +;;;247 { +;;;248 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +0001e8 20ec MOVS r0,#0xec +0001ea 2152 MOVS r1,#0x52 +0001ec 220c MOVS r2,#0xc +0001ee 23c5 MOVS r3,#0xc5 +0001f0 9306 STR r3,[sp,#0x18] +0001f2 9207 STR r2,[sp,#0x1c] +0001f4 9108 STR r1,[sp,#0x20] +0001f6 9009 STR r0,[sp,#0x24] +0001f8 20a8 MOVS r0,#0xa8 +0001fa 2192 MOVS r1,#0x92 +0001fc 220a MOVS r2,#0xa +0001fe 231f MOVS r3,#0x1f +000200 9302 STR r3,[sp,#8] +000202 9300 STR r3,[sp,#0] +000204 9301 STR r3,[sp,#4] +000206 9203 STR r2,[sp,#0xc] +000208 9104 STR r1,[sp,#0x10] +00020a 9005 STR r0,[sp,#0x14] +00020c 4613 MOV r3,r2 +00020e 2200 MOVS r2,#0 +000210 211c MOVS r1,#0x1c +000212 487b LDR r0,|L3.1024| +000214 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000216 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;249 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;250 DSI_VC_0, +;;;251 10, 0x1F, 0x1F, 0x1F, 0x0A, 0x92, 0xA8, 0xC5, 0x0C, 0x52, 0xEC); +;;;252 ret_C9_count = 5; +00021a 2005 MOVS r0,#5 +00021c 4979 LDR r1,|L3.1028| +00021e 7008 STRB r0,[r1,#0] +000220 e772 B |L3.264| + |L3.546| +;;;253 } +;;;254 else if(ret_C9_count == 5) +000222 4878 LDR r0,|L3.1028| +000224 7800 LDRB r0,[r0,#0] ; ret_C9_count +000226 2805 CMP r0,#5 +000228 d11e BNE |L3.616| +;;;255 { +;;;256 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +00022a 2013 MOVS r0,#0x13 +00022c 213f MOVS r1,#0x3f +00022e 22e5 MOVS r2,#0xe5 +000230 2333 MOVS r3,#0x33 +000232 9306 STR r3,[sp,#0x18] +000234 9207 STR r2,[sp,#0x1c] +000236 9108 STR r1,[sp,#0x20] +000238 9009 STR r0,[sp,#0x24] +00023a 2011 MOVS r0,#0x11 +00023c 2100 MOVS r1,#0 +00023e 2229 MOVS r2,#0x29 +000240 23b3 MOVS r3,#0xb3 +000242 9302 STR r3,[sp,#8] +000244 9203 STR r2,[sp,#0xc] +000246 9104 STR r1,[sp,#0x10] +000248 9005 STR r0,[sp,#0x14] +00024a 200d MOVS r0,#0xd +00024c 21e7 MOVS r1,#0xe7 +00024e 230a MOVS r3,#0xa +000250 2200 MOVS r2,#0 +000252 9100 STR r1,[sp,#0] +000254 9001 STR r0,[sp,#4] +000256 211c MOVS r1,#0x1c +000258 4869 LDR r0,|L3.1024| +00025a 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +00025c f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;257 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;258 DSI_VC_0, +;;;259 10, 0xE7, 0x0D, 0xB3, 0x29, 0x00, 0x11, 0x33, 0xE5, 0x3F, 0x13); +;;;260 ret_C9_count = 6; +000260 2006 MOVS r0,#6 +000262 4968 LDR r1,|L3.1028| +000264 7008 STRB r0,[r1,#0] +000266 e74f B |L3.264| + |L3.616| +;;;261 } +;;;262 else if(ret_C9_count == 6) +000268 4866 LDR r0,|L3.1028| +00026a 7800 LDRB r0,[r0,#0] ; ret_C9_count +00026c 2806 CMP r0,#6 +00026e d11d BNE |L3.684| +;;;263 { +;;;264 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +000270 2019 MOVS r0,#0x19 +000272 21d6 MOVS r1,#0xd6 +000274 221a MOVS r2,#0x1a +000276 2399 MOVS r3,#0x99 +000278 9306 STR r3,[sp,#0x18] +00027a 9207 STR r2,[sp,#0x1c] +00027c 9108 STR r1,[sp,#0x20] +00027e 9009 STR r0,[sp,#0x24] +000280 2175 MOVS r1,#0x75 +000282 2216 MOVS r2,#0x16 +000284 236b MOVS r3,#0x6b +000286 9302 STR r3,[sp,#8] +000288 9203 STR r2,[sp,#0xc] +00028a 9104 STR r1,[sp,#0x10] +00028c 9005 STR r0,[sp,#0x14] +00028e 2079 MOVS r0,#0x79 +000290 21c4 MOVS r1,#0xc4 +000292 230a MOVS r3,#0xa +000294 2200 MOVS r2,#0 +000296 9100 STR r1,[sp,#0] +000298 9001 STR r0,[sp,#4] +00029a 211c MOVS r1,#0x1c +00029c 4858 LDR r0,|L3.1024| +00029e 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0002a0 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;265 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;266 DSI_VC_0, +;;;267 10, 0xC4, 0x79, 0x6B, 0x16, 0x75, 0x19, 0x99, 0x1A, 0xD6, 0x19); +;;;268 ret_C9_count = 7; +0002a4 2007 MOVS r0,#7 +0002a6 4957 LDR r1,|L3.1028| +0002a8 7008 STRB r0,[r1,#0] +0002aa e72d B |L3.264| + |L3.684| +;;;269 } +;;;270 else if(ret_C9_count == 7) +0002ac 4855 LDR r0,|L3.1028| +0002ae 7800 LDRB r0,[r0,#0] ; ret_C9_count +0002b0 2807 CMP r0,#7 +0002b2 d11e BNE |L3.754| +;;;271 { +;;;272 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +0002b4 2029 MOVS r0,#0x29 +0002b6 2194 MOVS r1,#0x94 +0002b8 2266 MOVS r2,#0x66 +0002ba 23c8 MOVS r3,#0xc8 +0002bc 9306 STR r3,[sp,#0x18] +0002be 9207 STR r2,[sp,#0x1c] +0002c0 9108 STR r1,[sp,#0x20] +0002c2 9009 STR r0,[sp,#0x24] +0002c4 2024 MOVS r0,#0x24 +0002c6 214a MOVS r1,#0x4a +0002c8 2272 MOVS r2,#0x72 +0002ca 23a7 MOVS r3,#0xa7 +0002cc 9302 STR r3,[sp,#8] +0002ce 9203 STR r2,[sp,#0xc] +0002d0 9104 STR r1,[sp,#0x10] +0002d2 9005 STR r0,[sp,#0x14] +0002d4 2020 MOVS r0,#0x20 +0002d6 21e5 MOVS r1,#0xe5 +0002d8 230a MOVS r3,#0xa +0002da 2200 MOVS r2,#0 +0002dc 9100 STR r1,[sp,#0] +0002de 9001 STR r0,[sp,#4] +0002e0 211c MOVS r1,#0x1c +0002e2 4847 LDR r0,|L3.1024| +0002e4 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0002e6 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;273 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;274 DSI_VC_0, +;;;275 10, 0xE5, 0x20, 0xA7, 0x72, 0x4A, 0x24, 0xC8, 0x66, 0x94, 0x29); +;;;276 ret_C9_count = 8; +0002ea 2008 MOVS r0,#8 +0002ec 4945 LDR r1,|L3.1028| +0002ee 7008 STRB r0,[r1,#0] +0002f0 e70a B |L3.264| + |L3.754| +;;;277 } +;;;278 else if(ret_C9_count == 8) +0002f2 4844 LDR r0,|L3.1028| +0002f4 7800 LDRB r0,[r0,#0] ; ret_C9_count +0002f6 2808 CMP r0,#8 +0002f8 d11b BNE |L3.818| +;;;279 { +;;;280 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +0002fa 21a3 MOVS r1,#0xa3 +0002fc 220c MOVS r2,#0xc +0002fe 23cf MOVS r3,#0xcf +000300 9306 STR r3,[sp,#0x18] +000302 9207 STR r2,[sp,#0x1c] +000304 9108 STR r1,[sp,#0x20] +000306 9009 STR r0,[sp,#0x24] +000308 20c8 MOVS r0,#0xc8 +00030a 2122 MOVS r1,#0x22 +00030c 220b MOVS r2,#0xb +00030e 231f MOVS r3,#0x1f +000310 9302 STR r3,[sp,#8] +000312 9300 STR r3,[sp,#0] +000314 9301 STR r3,[sp,#4] +000316 9203 STR r2,[sp,#0xc] +000318 9104 STR r1,[sp,#0x10] +00031a 9005 STR r0,[sp,#0x14] +00031c 230a MOVS r3,#0xa +00031e 2200 MOVS r2,#0 +000320 211c MOVS r1,#0x1c +000322 4837 LDR r0,|L3.1024| +000324 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000326 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;281 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;282 DSI_VC_0, +;;;283 10, 0x1F, 0x1F, 0x1F, 0x0B, 0x22, 0xC8, 0xCF, 0x0C, 0xA3, 0x08); +;;;284 ret_C9_count = 9; +00032a 2009 MOVS r0,#9 +00032c 4935 LDR r1,|L3.1028| +00032e 7008 STRB r0,[r1,#0] +000330 e6ea B |L3.264| + |L3.818| +;;;285 } +;;;286 else if(ret_C9_count == 9) +000332 4834 LDR r0,|L3.1028| +000334 7800 LDRB r0,[r0,#0] ; ret_C9_count +000336 2809 CMP r0,#9 +000338 d11e BNE |L3.888| +;;;287 { +;;;288 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +00033a 2013 MOVS r0,#0x13 +00033c 2140 MOVS r1,#0x40 +00033e 22f1 MOVS r2,#0xf1 +000340 2343 MOVS r3,#0x43 +000342 9306 STR r3,[sp,#0x18] +000344 9207 STR r2,[sp,#0x1c] +000346 9108 STR r1,[sp,#0x20] +000348 9009 STR r0,[sp,#0x24] +00034a 2011 MOVS r0,#0x11 +00034c 2102 MOVS r1,#2 +00034e 2239 MOVS r2,#0x39 +000350 23d3 MOVS r3,#0xd3 +000352 9302 STR r3,[sp,#8] +000354 9203 STR r2,[sp,#0xc] +000356 9104 STR r1,[sp,#0x10] +000358 9005 STR r0,[sp,#0x14] +00035a 200d MOVS r0,#0xd +00035c 21eb MOVS r1,#0xeb +00035e 230a MOVS r3,#0xa +000360 2200 MOVS r2,#0 +000362 9100 STR r1,[sp,#0] +000364 9001 STR r0,[sp,#4] +000366 211c MOVS r1,#0x1c +000368 4825 LDR r0,|L3.1024| +00036a 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +00036c f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;289 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;290 DSI_VC_0, +;;;291 10, 0xEB, 0x0D, 0xD3, 0x39, 0x02, 0x11, 0x43, 0xF1, 0x40, 0x13); +;;;292 ret_C9_count = 10; +000370 200a MOVS r0,#0xa +000372 4924 LDR r1,|L3.1028| +000374 7008 STRB r0,[r1,#0] +000376 e6c7 B |L3.264| + |L3.888| +;;;293 } +;;;294 else if(ret_C9_count == 10) +000378 4822 LDR r0,|L3.1028| +00037a 7800 LDRB r0,[r0,#0] ; ret_C9_count +00037c 280a CMP r0,#0xa +00037e d11d BNE |L3.956| +;;;295 { +;;;296 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +000380 2019 MOVS r0,#0x19 +000382 21d6 MOVS r1,#0xd6 +000384 221a MOVS r2,#0x1a +000386 2398 MOVS r3,#0x98 +000388 9306 STR r3,[sp,#0x18] +00038a 9207 STR r2,[sp,#0x1c] +00038c 9108 STR r1,[sp,#0x20] +00038e 9009 STR r0,[sp,#0x24] +000390 2175 MOVS r1,#0x75 +000392 2216 MOVS r2,#0x16 +000394 236c MOVS r3,#0x6c +000396 9302 STR r3,[sp,#8] +000398 9203 STR r2,[sp,#0xc] +00039a 9104 STR r1,[sp,#0x10] +00039c 9005 STR r0,[sp,#0x14] +00039e 2081 MOVS r0,#0x81 +0003a0 21d4 MOVS r1,#0xd4 +0003a2 230a MOVS r3,#0xa +0003a4 2200 MOVS r2,#0 +0003a6 9100 STR r1,[sp,#0] +0003a8 9001 STR r0,[sp,#4] +0003aa 211c MOVS r1,#0x1c +0003ac 4814 LDR r0,|L3.1024| +0003ae 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0003b0 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;297 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;298 DSI_VC_0, +;;;299 10, 0xD4, 0x81, 0x6C, 0x16, 0x75, 0x19, 0x98, 0x1A, 0xD6, 0x19); +;;;300 ret_C9_count = 11; +0003b4 200b MOVS r0,#0xb +0003b6 4913 LDR r1,|L3.1028| +0003b8 7008 STRB r0,[r1,#0] +0003ba e6a5 B |L3.264| + |L3.956| +;;;301 } +;;;302 else if(ret_C9_count == 11) +0003bc 4811 LDR r0,|L3.1028| +0003be 7800 LDRB r0,[r0,#0] ; ret_C9_count +0003c0 280b CMP r0,#0xb +0003c2 d121 BNE |L3.1032| +;;;303 { +;;;304 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +0003c4 2029 MOVS r0,#0x29 +0003c6 21f2 MOVS r1,#0xf2 +0003c8 2292 MOVS r2,#0x92 +0003ca 23d9 MOVS r3,#0xd9 +0003cc 9306 STR r3,[sp,#0x18] +0003ce 9207 STR r2,[sp,#0x1c] +0003d0 9108 STR r1,[sp,#0x20] +0003d2 9009 STR r0,[sp,#0x24] +0003d4 214c MOVS r1,#0x4c +0003d6 227e MOVS r2,#0x7e +0003d8 23d7 MOVS r3,#0xd7 +0003da 9302 STR r3,[sp,#8] +0003dc 9203 STR r2,[sp,#0xc] +0003de 9104 STR r1,[sp,#0x10] +0003e0 9005 STR r0,[sp,#0x14] +0003e2 2020 MOVS r0,#0x20 +0003e4 21e5 MOVS r1,#0xe5 +0003e6 230a MOVS r3,#0xa +0003e8 2200 MOVS r2,#0 +0003ea 9100 STR r1,[sp,#0] +0003ec 9001 STR r0,[sp,#4] +0003ee 211c MOVS r1,#0x1c +0003f0 4803 LDR r0,|L3.1024| +0003f2 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0003f4 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;305 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;306 DSI_VC_0, +;;;307 10, 0xE5, 0x20, 0xD7, 0x7E, 0x4C, 0x29, 0xD9, 0x92, 0xF2, 0x29); +;;;308 ret_C9_count = 12; +0003f8 200c MOVS r0,#0xc +0003fa 4902 LDR r1,|L3.1028| +0003fc 7008 STRB r0,[r1,#0] +0003fe e683 B |L3.264| + |L3.1024| + DCD g_rx_ctrl_handle + |L3.1028| + DCD ret_C9_count + |L3.1032| +;;;309 } +;;;310 else if(ret_C9_count == 12) +000408 48fe LDR r0,|L3.2052| +00040a 7800 LDRB r0,[r0,#0] ; ret_C9_count +00040c 280c CMP r0,#0xc +00040e d11c BNE |L3.1098| +;;;311 { +;;;312 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +000410 2065 MOVS r0,#0x65 +000412 21a3 MOVS r1,#0xa3 +000414 220d MOVS r2,#0xd +000416 23f0 MOVS r3,#0xf0 +000418 9306 STR r3,[sp,#0x18] +00041a 9207 STR r2,[sp,#0x1c] +00041c 9108 STR r1,[sp,#0x20] +00041e 9009 STR r0,[sp,#0x24] +000420 203c MOVS r0,#0x3c +000422 21c3 MOVS r1,#0xc3 +000424 220c MOVS r2,#0xc +000426 231f MOVS r3,#0x1f +000428 9302 STR r3,[sp,#8] +00042a 9300 STR r3,[sp,#0] +00042c 9301 STR r3,[sp,#4] +00042e 9203 STR r2,[sp,#0xc] +000430 9104 STR r1,[sp,#0x10] +000432 9005 STR r0,[sp,#0x14] +000434 230a MOVS r3,#0xa +000436 2200 MOVS r2,#0 +000438 211c MOVS r1,#0x1c +00043a 48f3 LDR r0,|L3.2056| +00043c 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +00043e f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;313 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;314 DSI_VC_0, +;;;315 10, 0x1F, 0x1F, 0x1F, 0x0C, 0xC3, 0x3C, 0xF0, 0x0D, 0xA3, 0x65); +;;;316 ret_C9_count = 13; +000442 200d MOVS r0,#0xd +000444 49ef LDR r1,|L3.2052| +000446 7008 STRB r0,[r1,#0] +000448 e65e B |L3.264| + |L3.1098| +;;;317 } +;;;318 else if(ret_C9_count == 13) +00044a 48ee LDR r0,|L3.2052| +00044c 7800 LDRB r0,[r0,#0] ; ret_C9_count +00044e 280d CMP r0,#0xd +000450 d11e BNE |L3.1168| +;;;319 { +;;;320 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +000452 2013 MOVS r0,#0x13 +000454 2144 MOVS r1,#0x44 +000456 2211 MOVS r2,#0x11 +000458 2384 MOVS r3,#0x84 +00045a 9306 STR r3,[sp,#0x18] +00045c 9207 STR r2,[sp,#0x1c] +00045e 9108 STR r1,[sp,#0x20] +000460 9009 STR r0,[sp,#0x24] +000462 4610 MOV r0,r2 +000464 2110 MOVS r1,#0x10 +000466 2285 MOVS r2,#0x85 +000468 2383 MOVS r3,#0x83 +00046a 9302 STR r3,[sp,#8] +00046c 9203 STR r2,[sp,#0xc] +00046e 9104 STR r1,[sp,#0x10] +000470 9005 STR r0,[sp,#0x14] +000472 200e MOVS r0,#0xe +000474 2100 MOVS r1,#0 +000476 230a MOVS r3,#0xa +000478 460a MOV r2,r1 +00047a 9100 STR r1,[sp,#0] +00047c 9001 STR r0,[sp,#4] +00047e 211c MOVS r1,#0x1c +000480 48e1 LDR r0,|L3.2056| +000482 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000484 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;321 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;322 DSI_VC_0, +;;;323 10, 0x00, 0x0E, 0x83, 0x85, 0x10, 0x11, 0x84, 0x11, 0x44, 0x13); +;;;324 ret_C9_count = 14; +000488 200e MOVS r0,#0xe +00048a 49de LDR r1,|L3.2052| +00048c 7008 STRB r0,[r1,#0] +00048e e3f0 B |L3.3186| + |L3.1168| +;;;325 } +;;;326 else if(ret_C9_count == 14) +000490 48dc LDR r0,|L3.2052| +000492 7800 LDRB r0,[r0,#0] ; ret_C9_count +000494 280e CMP r0,#0xe +000496 d11e BNE |L3.1238| +;;;327 { +;;;328 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +000498 2019 MOVS r0,#0x19 +00049a 21c6 MOVS r1,#0xc6 +00049c 221a MOVS r2,#0x1a +00049e 2398 MOVS r3,#0x98 +0004a0 9306 STR r3,[sp,#0x18] +0004a2 9207 STR r2,[sp,#0x1c] +0004a4 9108 STR r1,[sp,#0x20] +0004a6 9009 STR r0,[sp,#0x24] +0004a8 2021 MOVS r0,#0x21 +0004aa 2165 MOVS r1,#0x65 +0004ac 2216 MOVS r2,#0x16 +0004ae 236d MOVS r3,#0x6d +0004b0 9302 STR r3,[sp,#8] +0004b2 9203 STR r2,[sp,#0xc] +0004b4 9104 STR r1,[sp,#0x10] +0004b6 9005 STR r0,[sp,#0x14] +0004b8 2091 MOVS r0,#0x91 +0004ba 21e4 MOVS r1,#0xe4 +0004bc 230a MOVS r3,#0xa +0004be 2200 MOVS r2,#0 +0004c0 9100 STR r1,[sp,#0] +0004c2 9001 STR r0,[sp,#4] +0004c4 211c MOVS r1,#0x1c +0004c6 48d0 LDR r0,|L3.2056| +0004c8 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0004ca f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;329 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;330 DSI_VC_0, +;;;331 10, 0xE4, 0x91, 0x6D, 0x16, 0x65, 0x21, 0x98, 0x1A, 0xC6, 0x19); +;;;332 ret_C9_count = 15; +0004ce 200f MOVS r0,#0xf +0004d0 49cc LDR r1,|L3.2052| +0004d2 7008 STRB r0,[r1,#0] +0004d4 e3cd B |L3.3186| + |L3.1238| +;;;333 } +;;;334 else if(ret_C9_count == 15) +0004d6 48cb LDR r0,|L3.2052| +0004d8 7800 LDRB r0,[r0,#0] ; ret_C9_count +0004da 280f CMP r0,#0xf +0004dc d11d BNE |L3.1306| +;;;335 { +;;;336 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +0004de 2029 MOVS r0,#0x29 +0004e0 21f2 MOVS r1,#0xf2 +0004e2 2292 MOVS r2,#0x92 +0004e4 23d9 MOVS r3,#0xd9 +0004e6 9306 STR r3,[sp,#0x18] +0004e8 9207 STR r2,[sp,#0x1c] +0004ea 9108 STR r1,[sp,#0x20] +0004ec 9009 STR r0,[sp,#0x24] +0004ee 214a MOVS r1,#0x4a +0004f0 2276 MOVS r2,#0x76 +0004f2 23b7 MOVS r3,#0xb7 +0004f4 9302 STR r3,[sp,#8] +0004f6 9203 STR r2,[sp,#0xc] +0004f8 9104 STR r1,[sp,#0x10] +0004fa 9005 STR r0,[sp,#0x14] +0004fc 2020 MOVS r0,#0x20 +0004fe 21e4 MOVS r1,#0xe4 +000500 230a MOVS r3,#0xa +000502 2200 MOVS r2,#0 +000504 9100 STR r1,[sp,#0] +000506 9001 STR r0,[sp,#4] +000508 211c MOVS r1,#0x1c +00050a 48bf LDR r0,|L3.2056| +00050c 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +00050e f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;337 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;338 DSI_VC_0, +;;;339 10, 0xE4, 0x20, 0xB7, 0x76, 0x4A, 0x29, 0xD9, 0x92, 0xF2, 0x29); +;;;340 ret_C9_count = 16; +000512 2010 MOVS r0,#0x10 +000514 49bb LDR r1,|L3.2052| +000516 7008 STRB r0,[r1,#0] + |L3.1304| +000518 e3ab B |L3.3186| + |L3.1306| +;;;341 } +;;;342 else if(ret_C9_count == 16) +00051a 48ba LDR r0,|L3.2052| +00051c 7800 LDRB r0,[r0,#0] ; ret_C9_count +00051e 2810 CMP r0,#0x10 +000520 d11b BNE |L3.1370| +;;;343 { +;;;344 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +000522 20c9 MOVS r0,#0xc9 +000524 21f3 MOVS r1,#0xf3 +000526 220e MOVS r2,#0xe +000528 230b MOVS r3,#0xb +00052a 9306 STR r3,[sp,#0x18] +00052c 9207 STR r2,[sp,#0x1c] +00052e 9108 STR r1,[sp,#0x20] +000530 9009 STR r0,[sp,#0x24] +000532 20a9 MOVS r0,#0xa9 +000534 2133 MOVS r1,#0x33 +000536 231f MOVS r3,#0x1f +000538 9302 STR r3,[sp,#8] +00053a 9300 STR r3,[sp,#0] +00053c 9301 STR r3,[sp,#4] +00053e 9203 STR r2,[sp,#0xc] +000540 9104 STR r1,[sp,#0x10] +000542 9005 STR r0,[sp,#0x14] +000544 230a MOVS r3,#0xa +000546 2200 MOVS r2,#0 +000548 211c MOVS r1,#0x1c +00054a 48af LDR r0,|L3.2056| +00054c 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +00054e f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;345 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;346 DSI_VC_0, +;;;347 10, 0x1F, 0x1F, 0x1F, 0x0E, 0x33, 0xA9, 0x0B, 0x0E, 0xF3, 0xC9); +;;;348 ret_C9_count = 17; +000552 2011 MOVS r0,#0x11 +000554 49ab LDR r1,|L3.2052| +000556 7008 STRB r0,[r1,#0] +000558 e38b B |L3.3186| + |L3.1370| +;;;349 } +;;;350 else if(ret_C9_count == 17) +00055a 48aa LDR r0,|L3.2052| +00055c 7800 LDRB r0,[r0,#0] ; ret_C9_count +00055e 2811 CMP r0,#0x11 +000560 d11e BNE |L3.1440| +;;;351 { +;;;352 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +000562 2014 MOVS r0,#0x14 +000564 214b MOVS r1,#0x4b +000566 2241 MOVS r2,#0x41 +000568 23e4 MOVS r3,#0xe4 +00056a 9306 STR r3,[sp,#0x18] +00056c 9207 STR r2,[sp,#0x1c] +00056e 9108 STR r1,[sp,#0x20] +000570 9009 STR r0,[sp,#0x24] +000572 2011 MOVS r0,#0x11 +000574 2123 MOVS r1,#0x23 +000576 22e1 MOVS r2,#0xe1 +000578 2393 MOVS r3,#0x93 +00057a 9302 STR r3,[sp,#8] +00057c 9203 STR r2,[sp,#0xc] +00057e 9104 STR r1,[sp,#0x10] +000580 9005 STR r0,[sp,#0x14] +000582 200f MOVS r0,#0xf +000584 2118 MOVS r1,#0x18 +000586 230a MOVS r3,#0xa +000588 2200 MOVS r2,#0 +00058a 9100 STR r1,[sp,#0] +00058c 9001 STR r0,[sp,#4] +00058e 211c MOVS r1,#0x1c +000590 489d LDR r0,|L3.2056| +000592 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000594 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;353 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;354 DSI_VC_0, +;;;355 10, 0x18, 0x0F, 0x93, 0xE1, 0x23, 0x11, 0xE4, 0x41, 0x4B, 0x14); +;;;356 ret_C9_count = 18; +000598 2012 MOVS r0,#0x12 +00059a 499a LDR r1,|L3.2052| +00059c 7008 STRB r0,[r1,#0] +00059e e368 B |L3.3186| + |L3.1440| +;;;357 } +;;;358 else if(ret_C9_count == 18) +0005a0 4898 LDR r0,|L3.2052| +0005a2 7800 LDRB r0,[r0,#0] ; ret_C9_count +0005a4 2812 CMP r0,#0x12 +0005a6 d11e BNE |L3.1510| +;;;359 { +;;;360 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +0005a8 201d MOVS r0,#0x1d +0005aa 21c6 MOVS r1,#0xc6 +0005ac 221a MOVS r2,#0x1a +0005ae 239a MOVS r3,#0x9a +0005b0 9306 STR r3,[sp,#0x18] +0005b2 9207 STR r2,[sp,#0x1c] +0005b4 9108 STR r1,[sp,#0x20] +0005b6 9009 STR r0,[sp,#0x24] +0005b8 2031 MOVS r0,#0x31 +0005ba 2185 MOVS r1,#0x85 +0005bc 2216 MOVS r2,#0x16 +0005be 2371 MOVS r3,#0x71 +0005c0 9302 STR r3,[sp,#8] +0005c2 9203 STR r2,[sp,#0xc] +0005c4 9104 STR r1,[sp,#0x10] +0005c6 9005 STR r0,[sp,#0x14] +0005c8 20ad MOVS r0,#0xad +0005ca 2114 MOVS r1,#0x14 +0005cc 230a MOVS r3,#0xa +0005ce 2200 MOVS r2,#0 +0005d0 9100 STR r1,[sp,#0] +0005d2 9001 STR r0,[sp,#4] +0005d4 211c MOVS r1,#0x1c +0005d6 488c LDR r0,|L3.2056| +0005d8 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0005da f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;361 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;362 DSI_VC_0, +;;;363 10, 0x14, 0xAD, 0x71, 0x16, 0x85, 0x31, 0x9A, 0x1A, 0xC6, 0x1D); +;;;364 ret_C9_count = 19; +0005de 2013 MOVS r0,#0x13 +0005e0 4988 LDR r1,|L3.2052| +0005e2 7008 STRB r0,[r1,#0] +0005e4 e345 B |L3.3186| + |L3.1510| +;;;365 } +;;;366 else if(ret_C9_count == 19) +0005e6 4887 LDR r0,|L3.2052| +0005e8 7800 LDRB r0,[r0,#0] ; ret_C9_count +0005ea 2813 CMP r0,#0x13 +0005ec d11d BNE |L3.1578| +;;;367 { +;;;368 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +0005ee 2029 MOVS r0,#0x29 +0005f0 21f2 MOVS r1,#0xf2 +0005f2 2292 MOVS r2,#0x92 +0005f4 23d9 MOVS r3,#0xd9 +0005f6 9306 STR r3,[sp,#0x18] +0005f8 9207 STR r2,[sp,#0x1c] +0005fa 9108 STR r1,[sp,#0x20] +0005fc 9009 STR r0,[sp,#0x24] +0005fe 2148 MOVS r1,#0x48 +000600 226e MOVS r2,#0x6e +000602 2377 MOVS r3,#0x77 +000604 9302 STR r3,[sp,#8] +000606 9203 STR r2,[sp,#0xc] +000608 9104 STR r1,[sp,#0x10] +00060a 9005 STR r0,[sp,#0x14] +00060c 2020 MOVS r0,#0x20 +00060e 21e4 MOVS r1,#0xe4 +000610 230a MOVS r3,#0xa +000612 2200 MOVS r2,#0 +000614 9100 STR r1,[sp,#0] +000616 9001 STR r0,[sp,#4] +000618 211c MOVS r1,#0x1c +00061a 487b LDR r0,|L3.2056| +00061c 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +00061e f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;369 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;370 DSI_VC_0, +;;;371 10, 0xE4, 0x20, 0x77, 0x6E, 0x48, 0x29, 0xD9, 0x92, 0xF2, 0x29); +;;;372 ret_C9_count = 20; +000622 2014 MOVS r0,#0x14 +000624 4977 LDR r1,|L3.2052| +000626 7008 STRB r0,[r1,#0] + |L3.1576| +000628 e323 B |L3.3186| + |L3.1578| +;;;373 } +;;;374 else if(ret_C9_count == 20) +00062a 4876 LDR r0,|L3.2052| +00062c 7800 LDRB r0,[r0,#0] ; ret_C9_count +00062e 2814 CMP r0,#0x14 +000630 d11c BNE |L3.1644| +;;;375 { +;;;376 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +000632 203d MOVS r0,#0x3d +000634 2144 MOVS r1,#0x44 +000636 2210 MOVS r2,#0x10 +000638 232b MOVS r3,#0x2b +00063a 9306 STR r3,[sp,#0x18] +00063c 9207 STR r2,[sp,#0x1c] +00063e 9108 STR r1,[sp,#0x20] +000640 9009 STR r0,[sp,#0x24] +000642 2021 MOVS r0,#0x21 +000644 2184 MOVS r1,#0x84 +000646 220f MOVS r2,#0xf +000648 231f MOVS r3,#0x1f +00064a 9302 STR r3,[sp,#8] +00064c 9300 STR r3,[sp,#0] +00064e 9301 STR r3,[sp,#4] +000650 9203 STR r2,[sp,#0xc] +000652 9104 STR r1,[sp,#0x10] +000654 9005 STR r0,[sp,#0x14] +000656 230a MOVS r3,#0xa +000658 2200 MOVS r2,#0 +00065a 211c MOVS r1,#0x1c +00065c 486a LDR r0,|L3.2056| +00065e 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000660 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;377 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;378 DSI_VC_0, +;;;379 10, 0x1F, 0x1F, 0x1F, 0x0F, 0x84, 0x21, 0x2B, 0x10, 0x44, 0x3D); +;;;380 ret_C9_count = 21; +000664 2015 MOVS r0,#0x15 +000666 4967 LDR r1,|L3.2052| +000668 7008 STRB r0,[r1,#0] +00066a e302 B |L3.3186| + |L3.1644| +;;;381 } +;;;382 else if(ret_C9_count == 21) +00066c 4865 LDR r0,|L3.2052| +00066e 7800 LDRB r0,[r0,#0] ; ret_C9_count +000670 2815 CMP r0,#0x15 +000672 d11e BNE |L3.1714| +;;;383 { +;;;384 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +000674 2014 MOVS r0,#0x14 +000676 215b MOVS r1,#0x5b +000678 2291 MOVS r2,#0x91 +00067a 23a4 MOVS r3,#0xa4 +00067c 9306 STR r3,[sp,#0x18] +00067e 9207 STR r2,[sp,#0x1c] +000680 9108 STR r1,[sp,#0x20] +000682 9009 STR r0,[sp,#0x24] +000684 2012 MOVS r0,#0x12 +000686 213d MOVS r1,#0x3d +000688 224d MOVS r2,#0x4d +00068a 23c4 MOVS r3,#0xc4 +00068c 9302 STR r3,[sp,#8] +00068e 9203 STR r2,[sp,#0xc] +000690 9104 STR r1,[sp,#0x10] +000692 9005 STR r0,[sp,#0x14] +000694 2010 MOVS r0,#0x10 +000696 2136 MOVS r1,#0x36 +000698 230a MOVS r3,#0xa +00069a 2200 MOVS r2,#0 +00069c 9100 STR r1,[sp,#0] +00069e 9001 STR r0,[sp,#4] +0006a0 211c MOVS r1,#0x1c +0006a2 4859 LDR r0,|L3.2056| +0006a4 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0006a6 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;385 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;386 DSI_VC_0, +;;;387 10, 0x36, 0x10, 0xC4, 0x4D, 0x3D, 0x12, 0xA4, 0x91, 0x5B, 0x14); +;;;388 ret_C9_count = 22; +0006aa 2016 MOVS r0,#0x16 +0006ac 4955 LDR r1,|L3.2052| +0006ae 7008 STRB r0,[r1,#0] + |L3.1712| +0006b0 e2df B |L3.3186| + |L3.1714| +;;;389 } +;;;390 else if(ret_C9_count == 22) +0006b2 4854 LDR r0,|L3.2052| +0006b4 7800 LDRB r0,[r0,#0] ; ret_C9_count +0006b6 2816 CMP r0,#0x16 +0006b8 d11e BNE |L3.1784| +;;;391 { +;;;392 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +0006ba 2029 MOVS r0,#0x29 +0006bc 21c6 MOVS r1,#0xc6 +0006be 221a MOVS r2,#0x1a +0006c0 239f MOVS r3,#0x9f +0006c2 9306 STR r3,[sp,#0x18] +0006c4 9207 STR r2,[sp,#0x1c] +0006c6 9108 STR r1,[sp,#0x20] +0006c8 9009 STR r0,[sp,#0x24] +0006ca 204d MOVS r0,#0x4d +0006cc 21b5 MOVS r1,#0xb5 +0006ce 2216 MOVS r2,#0x16 +0006d0 2378 MOVS r3,#0x78 +0006d2 9302 STR r3,[sp,#8] +0006d4 9203 STR r2,[sp,#0xc] +0006d6 9104 STR r1,[sp,#0x10] +0006d8 9005 STR r0,[sp,#0x14] +0006da 20dd MOVS r0,#0xdd +0006dc 2174 MOVS r1,#0x74 +0006de 230a MOVS r3,#0xa +0006e0 2200 MOVS r2,#0 +0006e2 9100 STR r1,[sp,#0] +0006e4 9001 STR r0,[sp,#4] +0006e6 211c MOVS r1,#0x1c +0006e8 4847 LDR r0,|L3.2056| +0006ea 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0006ec f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;393 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;394 DSI_VC_0, +;;;395 10, 0x74, 0xDD, 0x78, 0x16, 0xB5, 0x4D, 0x9F, 0x1A, 0xC6, 0x29); +;;;396 ret_C9_count = 23; +0006f0 2017 MOVS r0,#0x17 +0006f2 4944 LDR r1,|L3.2052| +0006f4 7008 STRB r0,[r1,#0] +0006f6 e2bc B |L3.3186| + |L3.1784| +;;;397 } +;;;398 else if(ret_C9_count == 23) +0006f8 4842 LDR r0,|L3.2052| +0006fa 7800 LDRB r0,[r0,#0] ; ret_C9_count +0006fc 2817 CMP r0,#0x17 +0006fe d193 BNE |L3.1576| +;;;399 { +;;;400 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +000700 2029 MOVS r0,#0x29 +000702 21f2 MOVS r1,#0xf2 +000704 2292 MOVS r2,#0x92 +000706 23d9 MOVS r3,#0xd9 +000708 9306 STR r3,[sp,#0x18] +00070a 9207 STR r2,[sp,#0x1c] +00070c 9108 STR r1,[sp,#0x20] +00070e 9009 STR r0,[sp,#0x24] +000710 2146 MOVS r1,#0x46 +000712 2266 MOVS r2,#0x66 +000714 2367 MOVS r3,#0x67 +000716 9302 STR r3,[sp,#8] +000718 9203 STR r2,[sp,#0xc] +00071a 9104 STR r1,[sp,#0x10] +00071c 9005 STR r0,[sp,#0x14] +00071e 2020 MOVS r0,#0x20 +000720 21e5 MOVS r1,#0xe5 +000722 230a MOVS r3,#0xa +000724 2200 MOVS r2,#0 +000726 9100 STR r1,[sp,#0] +000728 9001 STR r0,[sp,#4] +00072a 211c MOVS r1,#0x1c +00072c 4836 LDR r0,|L3.2056| +00072e 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000730 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;401 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;402 DSI_VC_0, +;;;403 10, 0xE5, 0x20, 0x67, 0x66, 0x46, 0x29, 0xD9, 0x92, 0xF2, 0x29); +;;;404 ret_C9_count = 0; +000734 2000 MOVS r0,#0 +000736 4933 LDR r1,|L3.2052| +000738 7008 STRB r0,[r1,#0] +00073a e29a B |L3.3186| + |L3.1852| +;;;405 } +;;;406 else +;;;407 { +;;;408 //printf("C9 err return_size[%d] ret_C9_count[%d]\n", return_size, ret_C9_count); +;;;409 } +;;;410 } +;;;411 else if(return_size == 3) +00073c 982b LDR r0,[sp,#0xac] +00073e 2803 CMP r0,#3 +000740 d13d BNE |L3.1982| +;;;412 { +;;;413 static uint8_t ret_C9_count = 0; +;;;414 if(ret_C9_count == 0) +000742 4832 LDR r0,|L3.2060| +000744 7800 LDRB r0,[r0,#0] ; ret_C9_count +000746 2800 CMP r0,#0 +000748 d10f BNE |L3.1898| +;;;415 { +;;;416 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +00074a 201f MOVS r0,#0x1f +00074c 22f2 MOVS r2,#0xf2 +00074e 9001 STR r0,[sp,#4] +000750 2303 MOVS r3,#3 +000752 9200 STR r2,[sp,#0] +000754 9002 STR r0,[sp,#8] +000756 2200 MOVS r2,#0 +000758 211c MOVS r1,#0x1c +00075a 482b LDR r0,|L3.2056| +00075c 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +00075e f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;417 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;418 DSI_VC_0, +;;;419 3, 0xF2, 0x1F, 0x1F); +;;;420 ret_C9_count = 1; +000762 2001 MOVS r0,#1 +000764 4929 LDR r1,|L3.2060| +000766 7008 STRB r0,[r1,#0] +000768 e283 B |L3.3186| + |L3.1898| +;;;421 } +;;;422 else if(ret_C9_count == 1) +00076a 4828 LDR r0,|L3.2060| +00076c 7800 LDRB r0,[r0,#0] ; ret_C9_count +00076e 2801 CMP r0,#1 +000770 d110 BNE |L3.1940| +;;;423 { +;;;424 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +000772 20ee MOVS r0,#0xee +000774 2186 MOVS r1,#0x86 +000776 22a9 MOVS r2,#0xa9 +000778 2303 MOVS r3,#3 +00077a 9200 STR r2,[sp,#0] +00077c 9101 STR r1,[sp,#4] +00077e 9002 STR r0,[sp,#8] +000780 2200 MOVS r2,#0 +000782 211c MOVS r1,#0x1c +000784 4820 LDR r0,|L3.2056| +000786 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000788 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;425 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;426 DSI_VC_0, +;;;427 3, 0xA9, 0x86, 0xEE); +;;;428 ret_C9_count = 2; +00078c 2002 MOVS r0,#2 +00078e 491f LDR r1,|L3.2060| +000790 7008 STRB r0,[r1,#0] +000792 e26e B |L3.3186| + |L3.1940| +;;;429 } +;;;430 else if(ret_C9_count == 2) +000794 481d LDR r0,|L3.2060| +000796 7800 LDRB r0,[r0,#0] ; ret_C9_count +000798 2802 CMP r0,#2 +00079a d189 BNE |L3.1712| +;;;431 { +;;;432 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +00079c 20f2 MOVS r0,#0xf2 +00079e 2192 MOVS r1,#0x92 +0007a0 22d9 MOVS r2,#0xd9 +0007a2 2303 MOVS r3,#3 +0007a4 9200 STR r2,[sp,#0] +0007a6 9101 STR r1,[sp,#4] +0007a8 9002 STR r0,[sp,#8] +0007aa 2200 MOVS r2,#0 +0007ac 211c MOVS r1,#0x1c +0007ae 4816 LDR r0,|L3.2056| +0007b0 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0007b2 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;433 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;434 DSI_VC_0, +;;;435 3, 0xD9, 0x92, 0xF2); +;;;436 ret_C9_count = 0; +0007b6 2000 MOVS r0,#0 +0007b8 4914 LDR r1,|L3.2060| +0007ba 7008 STRB r0,[r1,#0] +0007bc e259 B |L3.3186| + |L3.1982| +;;;437 } +;;;438 else +;;;439 { +;;;440 //printf("C9 err return_size[%d] ret_C9_count[%d]\n", return_size, ret_C9_count); +;;;441 } +;;;442 } +;;;443 else if(return_size == 4) +0007be 982b LDR r0,[sp,#0xac] +0007c0 2804 CMP r0,#4 +0007c2 d10f BNE |L3.2020| +;;;444 { +;;;445 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +0007c4 20f2 MOVS r0,#0xf2 +0007c6 2192 MOVS r1,#0x92 +0007c8 22d9 MOVS r2,#0xd9 +0007ca 2329 MOVS r3,#0x29 +0007cc 9300 STR r3,[sp,#0] +0007ce 9201 STR r2,[sp,#4] +0007d0 9102 STR r1,[sp,#8] +0007d2 9003 STR r0,[sp,#0xc] +0007d4 2304 MOVS r3,#4 +0007d6 2200 MOVS r2,#0 +0007d8 211c MOVS r1,#0x1c +0007da 480b LDR r0,|L3.2056| +0007dc 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0007de f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +0007e2 e246 B |L3.3186| + |L3.2020| +;;;446 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;447 DSI_VC_0, +;;;448 4, 0x29, 0xD9, 0x92, 0xF2); +;;;449 } +;;;450 else if(return_size == 39) +0007e4 982b LDR r0,[sp,#0xac] +0007e6 2827 CMP r0,#0x27 +0007e8 d15b BNE |L3.2210| +;;;451 { +;;;452 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +0007ea 20d0 MOVS r0,#0xd0 +0007ec 2136 MOVS r1,#0x36 +0007ee 2239 MOVS r2,#0x39 +0007f0 2328 MOVS r3,#0x28 +0007f2 9323 STR r3,[sp,#0x8c] +0007f4 9224 STR r2,[sp,#0x90] +0007f6 9125 STR r1,[sp,#0x94] +0007f8 9026 STR r0,[sp,#0x98] +0007fa 2072 MOVS r0,#0x72 +0007fc 2106 MOVS r1,#6 +0007fe 22f8 MOVS r2,#0xf8 +000800 2322 MOVS r3,#0x22 +000802 e006 B |L3.2066| + |L3.2052| + DCD ret_C9_count + |L3.2056| + DCD g_rx_ctrl_handle + |L3.2060| + DCD |symbol_number.113| + |L3.2064| +000810 e22f B |L3.3186| + |L3.2066| +000812 931f STR r3,[sp,#0x7c] +000814 9220 STR r2,[sp,#0x80] +000816 9121 STR r1,[sp,#0x84] +000818 9022 STR r0,[sp,#0x88] +00081a 20ff MOVS r0,#0xff +00081c 2179 MOVS r1,#0x79 +00081e 2246 MOVS r2,#0x46 +000820 231c MOVS r3,#0x1c +000822 931b STR r3,[sp,#0x6c] +000824 921c STR r2,[sp,#0x70] +000826 911d STR r1,[sp,#0x74] +000828 901e STR r0,[sp,#0x78] +00082a 20ab MOVS r0,#0xab +00082c 2159 MOVS r1,#0x59 +00082e 2275 MOVS r2,#0x75 +000830 2317 MOVS r3,#0x17 +000832 9317 STR r3,[sp,#0x5c] +000834 9218 STR r2,[sp,#0x60] +000836 9119 STR r1,[sp,#0x64] +000838 901a STR r0,[sp,#0x68] +00083a 2079 MOVS r0,#0x79 +00083c 21b1 MOVS r1,#0xb1 +00083e 2294 MOVS r2,#0x94 +000840 2314 MOVS r3,#0x14 +000842 9313 STR r3,[sp,#0x4c] +000844 9214 STR r2,[sp,#0x50] +000846 9115 STR r1,[sp,#0x54] +000848 9016 STR r0,[sp,#0x58] +00084a 204a MOVS r0,#0x4a +00084c 210d MOVS r1,#0xd +00084e 22c4 MOVS r2,#0xc4 +000850 2311 MOVS r3,#0x11 +000852 930f STR r3,[sp,#0x3c] +000854 9210 STR r2,[sp,#0x40] +000856 9111 STR r1,[sp,#0x44] +000858 9012 STR r0,[sp,#0x48] +00085a 2003 MOVS r0,#3 +00085c 2125 MOVS r1,#0x25 +00085e 22a3 MOVS r2,#0xa3 +000860 230d MOVS r3,#0xd +000862 930b STR r3,[sp,#0x2c] +000864 920c STR r2,[sp,#0x30] +000866 910d STR r1,[sp,#0x34] +000868 900e STR r0,[sp,#0x38] +00086a 20e8 MOVS r0,#0xe8 +00086c 21e0 MOVS r1,#0xe0 +00086e 2232 MOVS r2,#0x32 +000870 230c MOVS r3,#0xc +000872 9307 STR r3,[sp,#0x1c] +000874 9208 STR r2,[sp,#0x20] +000876 9109 STR r1,[sp,#0x24] +000878 900a STR r0,[sp,#0x28] +00087a 206b MOVS r0,#0x6b +00087c 215c MOVS r1,#0x5c +00087e 2221 MOVS r2,#0x21 +000880 2305 MOVS r3,#5 +000882 9303 STR r3,[sp,#0xc] +000884 9204 STR r2,[sp,#0x10] +000886 9105 STR r1,[sp,#0x14] +000888 9006 STR r0,[sp,#0x18] +00088a 201a MOVS r0,#0x1a +00088c 9000 STR r0,[sp,#0] +00088e 9001 STR r0,[sp,#4] +000890 2327 MOVS r3,#0x27 +000892 2200 MOVS r2,#0 +000894 211c MOVS r1,#0x1c +000896 9002 STR r0,[sp,#8] +000898 48fe LDR r0,|L3.3220| +00089a 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +00089c f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +0008a0 e1e7 B |L3.3186| + |L3.2210| +;;;453 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;454 DSI_VC_0, +;;;455 39, 0x1A, 0x1A, 0x1A, 0x05, 0x21, 0x5C, 0x6B, 0x0C, 0x32, 0xE0, 0xE8, 0x0D, 0xA3, 0x25, 0x03, 0x11, 0xC4, 0x0D, 0x4A, 0x14, 0x94, 0xB1, 0x79, 0x17, 0x75, 0x59, 0xAB, 0x1C, 0x46, 0x79, 0xFF, 0x22, 0xF8, 0x06, 0x72, 0x28, 0x39, 0x36, 0xD0); +;;;456 } +;;;457 else if(return_size == 43) +0008a2 982b LDR r0,[sp,#0xac] +0008a4 282b CMP r0,#0x2b +0008a6 d176 BNE |L3.2454| +;;;458 { +;;;459 static uint8_t ret_C9_count = 0; +;;;460 if(ret_C9_count == 0) +0008a8 48fb LDR r0,|L3.3224| +0008aa 7800 LDRB r0,[r0,#0] ; ret_C9_count +0008ac 2800 CMP r0,#0 +0008ae d15d BNE |L3.2412| +;;;461 { +;;;462 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +0008b0 20ee MOVS r0,#0xee +0008b2 2186 MOVS r1,#0x86 +0008b4 22a9 MOVS r2,#0xa9 +0008b6 2329 MOVS r3,#0x29 +0008b8 9327 STR r3,[sp,#0x9c] +0008ba 9228 STR r2,[sp,#0xa0] +0008bc 9129 STR r1,[sp,#0xa4] +0008be 902a STR r0,[sp,#0xa8] +0008c0 2094 MOVS r0,#0x94 +0008c2 2166 MOVS r1,#0x66 +0008c4 22c8 MOVS r2,#0xc8 +0008c6 2324 MOVS r3,#0x24 +0008c8 9323 STR r3,[sp,#0x8c] +0008ca 9224 STR r2,[sp,#0x90] +0008cc 9125 STR r1,[sp,#0x94] +0008ce 9026 STR r0,[sp,#0x98] +0008d0 204a MOVS r0,#0x4a +0008d2 2172 MOVS r1,#0x72 +0008d4 22a7 MOVS r2,#0xa7 +0008d6 2320 MOVS r3,#0x20 +0008d8 931f STR r3,[sp,#0x7c] +0008da 9220 STR r2,[sp,#0x80] +0008dc 9121 STR r1,[sp,#0x84] +0008de 9022 STR r0,[sp,#0x88] +0008e0 20e5 MOVS r0,#0xe5 +0008e2 2119 MOVS r1,#0x19 +0008e4 22d6 MOVS r2,#0xd6 +0008e6 231a MOVS r3,#0x1a +0008e8 931b STR r3,[sp,#0x6c] +0008ea 921c STR r2,[sp,#0x70] +0008ec 911d STR r1,[sp,#0x74] +0008ee 901e STR r0,[sp,#0x78] +0008f0 2099 MOVS r0,#0x99 +0008f2 2275 MOVS r2,#0x75 +0008f4 2316 MOVS r3,#0x16 +0008f6 9317 STR r3,[sp,#0x5c] +0008f8 9218 STR r2,[sp,#0x60] +0008fa 9119 STR r1,[sp,#0x64] +0008fc 901a STR r0,[sp,#0x68] +0008fe 206b MOVS r0,#0x6b +000900 2179 MOVS r1,#0x79 +000902 22c4 MOVS r2,#0xc4 +000904 2313 MOVS r3,#0x13 +000906 9313 STR r3,[sp,#0x4c] +000908 9214 STR r2,[sp,#0x50] +00090a 9115 STR r1,[sp,#0x54] +00090c 9016 STR r0,[sp,#0x58] +00090e 203f MOVS r0,#0x3f +000910 21e5 MOVS r1,#0xe5 +000912 2233 MOVS r2,#0x33 +000914 2311 MOVS r3,#0x11 +000916 930f STR r3,[sp,#0x3c] +000918 9210 STR r2,[sp,#0x40] +00091a 9111 STR r1,[sp,#0x44] +00091c 9012 STR r0,[sp,#0x48] +00091e 2000 MOVS r0,#0 +000920 2129 MOVS r1,#0x29 +000922 22b3 MOVS r2,#0xb3 +000924 230d MOVS r3,#0xd +000926 930b STR r3,[sp,#0x2c] +000928 920c STR r2,[sp,#0x30] +00092a 910d STR r1,[sp,#0x34] +00092c 900e STR r0,[sp,#0x38] +00092e 20e7 MOVS r0,#0xe7 +000930 21ec MOVS r1,#0xec +000932 2252 MOVS r2,#0x52 +000934 230c MOVS r3,#0xc +000936 9307 STR r3,[sp,#0x1c] +000938 9208 STR r2,[sp,#0x20] +00093a 9109 STR r1,[sp,#0x24] +00093c 900a STR r0,[sp,#0x28] +00093e 20c5 MOVS r0,#0xc5 +000940 21a8 MOVS r1,#0xa8 +000942 2292 MOVS r2,#0x92 +000944 230a MOVS r3,#0xa +000946 9303 STR r3,[sp,#0xc] +000948 9204 STR r2,[sp,#0x10] +00094a 9105 STR r1,[sp,#0x14] +00094c 9006 STR r0,[sp,#0x18] +00094e 201f MOVS r0,#0x1f +000950 9000 STR r0,[sp,#0] +000952 9001 STR r0,[sp,#4] +000954 232b MOVS r3,#0x2b +000956 2200 MOVS r2,#0 +000958 211c MOVS r1,#0x1c +00095a 9002 STR r0,[sp,#8] +00095c 48cd LDR r0,|L3.3220| +00095e 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000960 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;463 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;464 DSI_VC_0, +;;;465 43, 0x1F, 0x1F, 0x1F, 0x0A, 0x92, 0xA8, 0xC5, 0x0C, 0x52, 0xEC, 0xE7, 0x0D, 0xB3, 0x29, 0x00, 0x11, 0x33, 0xE5, 0x3F, 0x13, 0xC4, 0x79, 0x6B, 0x16, 0x75, 0x19, 0x99, 0x1A, 0xD6, 0x19, 0xE5, 0x20, 0xA7, 0x72, 0x4A, 0x24, 0xC8, 0x66, 0x94, 0x29, 0xA9, 0x86, 0xEE); +;;;466 ret_C9_count = 1; +000964 2001 MOVS r0,#1 +000966 49cc LDR r1,|L3.3224| +000968 7008 STRB r0,[r1,#0] +00096a e182 B |L3.3186| + |L3.2412| +;;;467 } +;;;468 else if(ret_C9_count == 1) +00096c 48ca LDR r0,|L3.3224| +00096e 7800 LDRB r0,[r0,#0] ; ret_C9_count +000970 2801 CMP r0,#1 +000972 d15c BNE |L3.2606| +;;;469 { +;;;470 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +000974 20f2 MOVS r0,#0xf2 +000976 2192 MOVS r1,#0x92 +000978 22d9 MOVS r2,#0xd9 +00097a 2329 MOVS r3,#0x29 +00097c 9327 STR r3,[sp,#0x9c] +00097e 9228 STR r2,[sp,#0xa0] +000980 9129 STR r1,[sp,#0xa4] +000982 902a STR r0,[sp,#0xa8] +000984 9323 STR r3,[sp,#0x8c] +000986 9224 STR r2,[sp,#0x90] +000988 9125 STR r1,[sp,#0x94] +00098a 9026 STR r0,[sp,#0x98] +00098c 204c MOVS r0,#0x4c +00098e 217e MOVS r1,#0x7e +000990 22d7 MOVS r2,#0xd7 +000992 e001 B |L3.2456| + |L3.2452| +000994 e16e B |L3.3188| + |L3.2454| +000996 e163 B |L3.3168| + |L3.2456| +000998 2320 MOVS r3,#0x20 +00099a 931f STR r3,[sp,#0x7c] +00099c 9220 STR r2,[sp,#0x80] +00099e 9121 STR r1,[sp,#0x84] +0009a0 9022 STR r0,[sp,#0x88] +0009a2 20e5 MOVS r0,#0xe5 +0009a4 2119 MOVS r1,#0x19 +0009a6 22d6 MOVS r2,#0xd6 +0009a8 231a MOVS r3,#0x1a +0009aa 931b STR r3,[sp,#0x6c] +0009ac 921c STR r2,[sp,#0x70] +0009ae 911d STR r1,[sp,#0x74] +0009b0 901e STR r0,[sp,#0x78] +0009b2 2098 MOVS r0,#0x98 +0009b4 2275 MOVS r2,#0x75 +0009b6 2316 MOVS r3,#0x16 +0009b8 9317 STR r3,[sp,#0x5c] +0009ba 9218 STR r2,[sp,#0x60] +0009bc 9119 STR r1,[sp,#0x64] +0009be 901a STR r0,[sp,#0x68] +0009c0 206c MOVS r0,#0x6c +0009c2 2181 MOVS r1,#0x81 +0009c4 22d4 MOVS r2,#0xd4 +0009c6 2313 MOVS r3,#0x13 +0009c8 9313 STR r3,[sp,#0x4c] +0009ca 9214 STR r2,[sp,#0x50] +0009cc 9115 STR r1,[sp,#0x54] +0009ce 9016 STR r0,[sp,#0x58] +0009d0 2040 MOVS r0,#0x40 +0009d2 21f1 MOVS r1,#0xf1 +0009d4 2243 MOVS r2,#0x43 +0009d6 2311 MOVS r3,#0x11 +0009d8 930f STR r3,[sp,#0x3c] +0009da 9210 STR r2,[sp,#0x40] +0009dc 9111 STR r1,[sp,#0x44] +0009de 9012 STR r0,[sp,#0x48] +0009e0 2002 MOVS r0,#2 +0009e2 2139 MOVS r1,#0x39 +0009e4 22d3 MOVS r2,#0xd3 +0009e6 230d MOVS r3,#0xd +0009e8 930b STR r3,[sp,#0x2c] +0009ea 920c STR r2,[sp,#0x30] +0009ec 910d STR r1,[sp,#0x34] +0009ee 900e STR r0,[sp,#0x38] +0009f0 20eb MOVS r0,#0xeb +0009f2 2108 MOVS r1,#8 +0009f4 22a3 MOVS r2,#0xa3 +0009f6 230c MOVS r3,#0xc +0009f8 9307 STR r3,[sp,#0x1c] +0009fa 9208 STR r2,[sp,#0x20] +0009fc 9109 STR r1,[sp,#0x24] +0009fe 900a STR r0,[sp,#0x28] +000a00 20cf MOVS r0,#0xcf +000a02 21c8 MOVS r1,#0xc8 +000a04 2222 MOVS r2,#0x22 +000a06 230b MOVS r3,#0xb +000a08 9303 STR r3,[sp,#0xc] +000a0a 9204 STR r2,[sp,#0x10] +000a0c 9105 STR r1,[sp,#0x14] +000a0e 9006 STR r0,[sp,#0x18] +000a10 201f MOVS r0,#0x1f +000a12 9000 STR r0,[sp,#0] +000a14 9001 STR r0,[sp,#4] +000a16 232b MOVS r3,#0x2b +000a18 2200 MOVS r2,#0 +000a1a 211c MOVS r1,#0x1c +000a1c 9002 STR r0,[sp,#8] +000a1e 489d LDR r0,|L3.3220| +000a20 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000a22 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;471 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;472 DSI_VC_0, +;;;473 43, 0x1F, 0x1F, 0x1F, 0x0B, 0x22, 0xC8, 0xCF, 0x0C, 0xA3, 0x08, 0xEB, 0x0D, 0xD3, 0x39, 0x02, 0x11, 0x43, 0xF1, 0x40, 0x13, 0xD4, 0x81, 0x6C, 0x16, 0x75, 0x19, 0x98, 0x1A, 0xD6, 0x19, 0xE5, 0x20, 0xD7, 0x7E, 0x4C, 0x29, 0xD9, 0x92, 0xF2, 0x29, 0xD9, 0x92, 0xF2); +;;;474 ret_C9_count = 2; +000a26 2002 MOVS r0,#2 +000a28 499b LDR r1,|L3.3224| +000a2a 7008 STRB r0,[r1,#0] +000a2c e121 B |L3.3186| + |L3.2606| +;;;475 } +;;;476 else if(ret_C9_count == 2) +000a2e 489a LDR r0,|L3.3224| +000a30 7800 LDRB r0,[r0,#0] ; ret_C9_count +000a32 2802 CMP r0,#2 +000a34 d159 BNE |L3.2794| +;;;477 { +;;;478 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +000a36 20f2 MOVS r0,#0xf2 +000a38 2192 MOVS r1,#0x92 +000a3a 22d9 MOVS r2,#0xd9 +000a3c 2329 MOVS r3,#0x29 +000a3e 9327 STR r3,[sp,#0x9c] +000a40 9228 STR r2,[sp,#0xa0] +000a42 9129 STR r1,[sp,#0xa4] +000a44 902a STR r0,[sp,#0xa8] +000a46 9323 STR r3,[sp,#0x8c] +000a48 9224 STR r2,[sp,#0x90] +000a4a 9125 STR r1,[sp,#0x94] +000a4c 9026 STR r0,[sp,#0x98] +000a4e 204a MOVS r0,#0x4a +000a50 2176 MOVS r1,#0x76 +000a52 22b7 MOVS r2,#0xb7 +000a54 2320 MOVS r3,#0x20 +000a56 931f STR r3,[sp,#0x7c] +000a58 9220 STR r2,[sp,#0x80] +000a5a 9121 STR r1,[sp,#0x84] +000a5c 9022 STR r0,[sp,#0x88] +000a5e 20e4 MOVS r0,#0xe4 +000a60 2119 MOVS r1,#0x19 +000a62 22c6 MOVS r2,#0xc6 +000a64 231a MOVS r3,#0x1a +000a66 931b STR r3,[sp,#0x6c] +000a68 921c STR r2,[sp,#0x70] +000a6a 911d STR r1,[sp,#0x74] +000a6c 901e STR r0,[sp,#0x78] +000a6e 2098 MOVS r0,#0x98 +000a70 2121 MOVS r1,#0x21 +000a72 2265 MOVS r2,#0x65 +000a74 2316 MOVS r3,#0x16 +000a76 9317 STR r3,[sp,#0x5c] +000a78 9218 STR r2,[sp,#0x60] +000a7a 9119 STR r1,[sp,#0x64] +000a7c 901a STR r0,[sp,#0x68] +000a7e 206d MOVS r0,#0x6d +000a80 2191 MOVS r1,#0x91 +000a82 22e4 MOVS r2,#0xe4 +000a84 2313 MOVS r3,#0x13 +000a86 9313 STR r3,[sp,#0x4c] +000a88 9214 STR r2,[sp,#0x50] +000a8a 9115 STR r1,[sp,#0x54] +000a8c 9016 STR r0,[sp,#0x58] +000a8e 2044 MOVS r0,#0x44 +000a90 2111 MOVS r1,#0x11 +000a92 2284 MOVS r2,#0x84 +000a94 910f STR r1,[sp,#0x3c] +000a96 9210 STR r2,[sp,#0x40] +000a98 9111 STR r1,[sp,#0x44] +000a9a 9012 STR r0,[sp,#0x48] +000a9c 2010 MOVS r0,#0x10 +000a9e 2185 MOVS r1,#0x85 +000aa0 2283 MOVS r2,#0x83 +000aa2 230e MOVS r3,#0xe +000aa4 930b STR r3,[sp,#0x2c] +000aa6 920c STR r2,[sp,#0x30] +000aa8 910d STR r1,[sp,#0x34] +000aaa 900e STR r0,[sp,#0x38] +000aac 2000 MOVS r0,#0 +000aae 2165 MOVS r1,#0x65 +000ab0 22a3 MOVS r2,#0xa3 +000ab2 230d MOVS r3,#0xd +000ab4 9307 STR r3,[sp,#0x1c] +000ab6 9208 STR r2,[sp,#0x20] +000ab8 9109 STR r1,[sp,#0x24] +000aba 900a STR r0,[sp,#0x28] +000abc 20f0 MOVS r0,#0xf0 +000abe 213c MOVS r1,#0x3c +000ac0 22c3 MOVS r2,#0xc3 +000ac2 230c MOVS r3,#0xc +000ac4 9303 STR r3,[sp,#0xc] +000ac6 9204 STR r2,[sp,#0x10] +000ac8 9105 STR r1,[sp,#0x14] +000aca 9006 STR r0,[sp,#0x18] +000acc 201f MOVS r0,#0x1f +000ace 9000 STR r0,[sp,#0] +000ad0 9001 STR r0,[sp,#4] +000ad2 232b MOVS r3,#0x2b +000ad4 2200 MOVS r2,#0 +000ad6 211c MOVS r1,#0x1c +000ad8 9002 STR r0,[sp,#8] +000ada 486e LDR r0,|L3.3220| +000adc 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000ade f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;479 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;480 DSI_VC_0, +;;;481 43, 0x1F, 0x1F, 0x1F, 0x0C, 0xC3, 0x3C, 0xF0, 0x0D, 0xA3, 0x65, 0x00, 0x0E, 0x83, 0x85, 0x10, 0x11, 0x84, 0x11, 0x44, 0x13, 0xE4, 0x91, 0x6D, 0x16, 0x65, 0x21, 0x98, 0x1A, 0xC6, 0x19, 0xE4, 0x20, 0xB7, 0x76, 0x4A, 0x29, 0xD9, 0x92, 0xF2, 0x29, 0xD9, 0x92, 0xF2); +;;;482 ret_C9_count = 3; +000ae2 2003 MOVS r0,#3 +000ae4 496c LDR r1,|L3.3224| +000ae6 7008 STRB r0,[r1,#0] +000ae8 e0c3 B |L3.3186| + |L3.2794| +;;;483 } +;;;484 else if(ret_C9_count == 3) +000aea 486b LDR r0,|L3.3224| +000aec 7800 LDRB r0,[r0,#0] ; ret_C9_count +000aee 2803 CMP r0,#3 +000af0 d158 BNE |L3.2980| +;;;485 { +;;;486 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +000af2 20f2 MOVS r0,#0xf2 +000af4 2192 MOVS r1,#0x92 +000af6 22d9 MOVS r2,#0xd9 +000af8 2329 MOVS r3,#0x29 +000afa 9327 STR r3,[sp,#0x9c] +000afc 9228 STR r2,[sp,#0xa0] +000afe 9129 STR r1,[sp,#0xa4] +000b00 902a STR r0,[sp,#0xa8] +000b02 9323 STR r3,[sp,#0x8c] +000b04 9224 STR r2,[sp,#0x90] +000b06 9125 STR r1,[sp,#0x94] +000b08 9026 STR r0,[sp,#0x98] +000b0a 2048 MOVS r0,#0x48 +000b0c 216e MOVS r1,#0x6e +000b0e 2277 MOVS r2,#0x77 +000b10 2320 MOVS r3,#0x20 +000b12 931f STR r3,[sp,#0x7c] +000b14 9220 STR r2,[sp,#0x80] +000b16 9121 STR r1,[sp,#0x84] +000b18 9022 STR r0,[sp,#0x88] +000b1a 20e4 MOVS r0,#0xe4 +000b1c 211d MOVS r1,#0x1d +000b1e 22c6 MOVS r2,#0xc6 +000b20 231a MOVS r3,#0x1a +000b22 931b STR r3,[sp,#0x6c] +000b24 921c STR r2,[sp,#0x70] +000b26 911d STR r1,[sp,#0x74] +000b28 901e STR r0,[sp,#0x78] +000b2a 209a MOVS r0,#0x9a +000b2c 2131 MOVS r1,#0x31 +000b2e 2285 MOVS r2,#0x85 +000b30 2316 MOVS r3,#0x16 +000b32 9317 STR r3,[sp,#0x5c] +000b34 9218 STR r2,[sp,#0x60] +000b36 9119 STR r1,[sp,#0x64] +000b38 901a STR r0,[sp,#0x68] +000b3a 2071 MOVS r0,#0x71 +000b3c 21ad MOVS r1,#0xad +000b3e 2214 MOVS r2,#0x14 +000b40 9213 STR r2,[sp,#0x4c] +000b42 9214 STR r2,[sp,#0x50] +000b44 9115 STR r1,[sp,#0x54] +000b46 9016 STR r0,[sp,#0x58] +000b48 204b MOVS r0,#0x4b +000b4a 2141 MOVS r1,#0x41 +000b4c 22e4 MOVS r2,#0xe4 +000b4e 2311 MOVS r3,#0x11 +000b50 930f STR r3,[sp,#0x3c] +000b52 9210 STR r2,[sp,#0x40] +000b54 9111 STR r1,[sp,#0x44] +000b56 9012 STR r0,[sp,#0x48] +000b58 2023 MOVS r0,#0x23 +000b5a 21e1 MOVS r1,#0xe1 +000b5c 2293 MOVS r2,#0x93 +000b5e 230f MOVS r3,#0xf +000b60 930b STR r3,[sp,#0x2c] +000b62 920c STR r2,[sp,#0x30] +000b64 910d STR r1,[sp,#0x34] +000b66 900e STR r0,[sp,#0x38] +000b68 2018 MOVS r0,#0x18 +000b6a 21c9 MOVS r1,#0xc9 +000b6c 22f3 MOVS r2,#0xf3 +000b6e 230e MOVS r3,#0xe +000b70 9307 STR r3,[sp,#0x1c] +000b72 9208 STR r2,[sp,#0x20] +000b74 9109 STR r1,[sp,#0x24] +000b76 900a STR r0,[sp,#0x28] +000b78 200b MOVS r0,#0xb +000b7a 21a9 MOVS r1,#0xa9 +000b7c 2233 MOVS r2,#0x33 +000b7e 9303 STR r3,[sp,#0xc] +000b80 9204 STR r2,[sp,#0x10] +000b82 9105 STR r1,[sp,#0x14] +000b84 9006 STR r0,[sp,#0x18] +000b86 201f MOVS r0,#0x1f +000b88 9000 STR r0,[sp,#0] +000b8a 9001 STR r0,[sp,#4] +000b8c 232b MOVS r3,#0x2b +000b8e 2200 MOVS r2,#0 +000b90 211c MOVS r1,#0x1c +000b92 9002 STR r0,[sp,#8] +000b94 483f LDR r0,|L3.3220| +000b96 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000b98 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;487 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;488 DSI_VC_0, +;;;489 43, 0x1F, 0x1F, 0x1F, 0x0E, 0x33, 0xA9, 0x0B, 0x0E, 0xF3, 0xC9, 0x18, 0x0F, 0x93, 0xE1, 0x23, 0x11, 0xE4, 0x41, 0x4B, 0x14, 0x14, 0xAD, 0x71, 0x16, 0x85, 0x31, 0x9A, 0x1A, 0xC6, 0x1D, 0xE4, 0x20, 0x77, 0x6E, 0x48, 0x29, 0xD9, 0x92, 0xF2, 0x29, 0xD9, 0x92, 0xF2); +;;;490 ret_C9_count = 4; +000b9c 2004 MOVS r0,#4 +000b9e 493e LDR r1,|L3.3224| +000ba0 7008 STRB r0,[r1,#0] +000ba2 e066 B |L3.3186| + |L3.2980| +;;;491 } +;;;492 else if(ret_C9_count == 4) +000ba4 483c LDR r0,|L3.3224| +000ba6 7800 LDRB r0,[r0,#0] ; ret_C9_count +000ba8 2804 CMP r0,#4 +000baa d162 BNE |L3.3186| +;;;493 { +;;;494 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +000bac 20f2 MOVS r0,#0xf2 +000bae 2192 MOVS r1,#0x92 +000bb0 22d9 MOVS r2,#0xd9 +000bb2 2329 MOVS r3,#0x29 +000bb4 9327 STR r3,[sp,#0x9c] +000bb6 9228 STR r2,[sp,#0xa0] +000bb8 9129 STR r1,[sp,#0xa4] +000bba 902a STR r0,[sp,#0xa8] +000bbc 9323 STR r3,[sp,#0x8c] +000bbe 9224 STR r2,[sp,#0x90] +000bc0 9125 STR r1,[sp,#0x94] +000bc2 9026 STR r0,[sp,#0x98] +000bc4 2046 MOVS r0,#0x46 +000bc6 2166 MOVS r1,#0x66 +000bc8 2267 MOVS r2,#0x67 +000bca 2320 MOVS r3,#0x20 +000bcc 931f STR r3,[sp,#0x7c] +000bce 9220 STR r2,[sp,#0x80] +000bd0 9121 STR r1,[sp,#0x84] +000bd2 9022 STR r0,[sp,#0x88] +000bd4 20e5 MOVS r0,#0xe5 +000bd6 2129 MOVS r1,#0x29 +000bd8 22c6 MOVS r2,#0xc6 +000bda 231a MOVS r3,#0x1a +000bdc 931b STR r3,[sp,#0x6c] +000bde 921c STR r2,[sp,#0x70] +000be0 911d STR r1,[sp,#0x74] +000be2 901e STR r0,[sp,#0x78] +000be4 209f MOVS r0,#0x9f +000be6 214d MOVS r1,#0x4d +000be8 22b5 MOVS r2,#0xb5 +000bea 2316 MOVS r3,#0x16 +000bec 9317 STR r3,[sp,#0x5c] +000bee 9218 STR r2,[sp,#0x60] +000bf0 9119 STR r1,[sp,#0x64] +000bf2 901a STR r0,[sp,#0x68] +000bf4 2078 MOVS r0,#0x78 +000bf6 21dd MOVS r1,#0xdd +000bf8 2274 MOVS r2,#0x74 +000bfa 2314 MOVS r3,#0x14 +000bfc 9313 STR r3,[sp,#0x4c] +000bfe 9214 STR r2,[sp,#0x50] +000c00 9115 STR r1,[sp,#0x54] +000c02 9016 STR r0,[sp,#0x58] +000c04 205b MOVS r0,#0x5b +000c06 2191 MOVS r1,#0x91 +000c08 22a4 MOVS r2,#0xa4 +000c0a 2312 MOVS r3,#0x12 +000c0c 930f STR r3,[sp,#0x3c] +000c0e 9210 STR r2,[sp,#0x40] +000c10 9111 STR r1,[sp,#0x44] +000c12 9012 STR r0,[sp,#0x48] +000c14 203d MOVS r0,#0x3d +000c16 214d MOVS r1,#0x4d +000c18 22c4 MOVS r2,#0xc4 +000c1a 2310 MOVS r3,#0x10 +000c1c 930b STR r3,[sp,#0x2c] +000c1e 920c STR r2,[sp,#0x30] +000c20 910d STR r1,[sp,#0x34] +000c22 900e STR r0,[sp,#0x38] +000c24 2036 MOVS r0,#0x36 +000c26 213d MOVS r1,#0x3d +000c28 2244 MOVS r2,#0x44 +000c2a 9307 STR r3,[sp,#0x1c] +000c2c 9208 STR r2,[sp,#0x20] +000c2e 9109 STR r1,[sp,#0x24] +000c30 900a STR r0,[sp,#0x28] +000c32 202b MOVS r0,#0x2b +000c34 2121 MOVS r1,#0x21 +000c36 2284 MOVS r2,#0x84 +000c38 230f MOVS r3,#0xf +000c3a 9303 STR r3,[sp,#0xc] +000c3c 9204 STR r2,[sp,#0x10] +000c3e 9105 STR r1,[sp,#0x14] +000c40 9006 STR r0,[sp,#0x18] +000c42 201f MOVS r0,#0x1f +000c44 9000 STR r0,[sp,#0] +000c46 9001 STR r0,[sp,#4] +000c48 232b MOVS r3,#0x2b +000c4a 2200 MOVS r2,#0 +000c4c 211c MOVS r1,#0x1c +000c4e 9002 STR r0,[sp,#8] +000c50 4810 LDR r0,|L3.3220| +000c52 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000c54 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;495 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;496 DSI_VC_0, +;;;497 43, 0x1F, 0x1F, 0x1F, 0x0F, 0x84, 0x21, 0x2B, 0x10, 0x44, 0x3D, 0x36, 0x10, 0xC4, 0x4D, 0x3D, 0x12, 0xA4, 0x91, 0x5B, 0x14, 0x74, 0xDD, 0x78, 0x16, 0xB5, 0x4D, 0x9F, 0x1A, 0xC6, 0x29, 0xE5, 0x20, 0x67, 0x66, 0x46, 0x29, 0xD9, 0x92, 0xF2, 0x29, 0xD9, 0x92, 0xF2); +;;;498 ret_C9_count = 0; +000c58 2000 MOVS r0,#0 +000c5a 490f LDR r1,|L3.3224| +000c5c 7008 STRB r0,[r1,#0] +000c5e e008 B |L3.3186| + |L3.3168| +;;;499 } +;;;500 else +;;;501 { +;;;502 //printf("C9 err return_size[%d] ret_C9_count[%d]\n", return_size, ret_C9_count); +;;;503 } +;;;504 } +;;;505 else +;;;506 { +;;;507 TAU_LOGD("C9 resp error [%d]!\n", return_size); +000c60 bf00 NOP +000c62 22ff MOVS r2,#0xff +000c64 32fc ADDS r2,r2,#0xfc +000c66 a10d ADR r1,|L3.3228| +000c68 a00f ADR r0,|L3.3240| +000c6a 9b2b LDR r3,[sp,#0xac] +000c6c f7fffffe BL LOG_printf +000c70 bf00 NOP + |L3.3186| +;;;508 } +;;;509 } +000c72 e3f9 B |L3.5224| + |L3.3188| +;;;510 else if(dcs_cmd == 0xC7) +000c74 982d LDR r0,[sp,#0xb4] +000c76 28c7 CMP r0,#0xc7 +000c78 d17e BNE |L3.3448| +;;;511 { +;;;512 uint32_t return_size = hal_dsi_rx_ctrl_get_max_ret_size(g_rx_ctrl_handle); +000c7a 4806 LDR r0,|L3.3220| +000c7c 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000c7e f7fffffe BL hal_dsi_rx_ctrl_get_max_ret_size +000c82 902b STR r0,[sp,#0xac] +;;;513 if(return_size == 10) +000c84 982b LDR r0,[sp,#0xac] +000c86 280a CMP r0,#0xa +000c88 d177 BNE |L3.3450| +;;;514 { +;;;515 static uint8_t ret_C7_count = 0; +;;;516 if(ret_C7_count == 0) +000c8a 4810 LDR r0,|L3.3276| +000c8c 7800 LDRB r0,[r0,#0] ; ret_C7_count +000c8e 2800 CMP r0,#0 +000c90 d13b BNE |L3.3338| +;;;517 { +;;;518 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +000c92 e01d B |L3.3280| + |L3.3220| + DCD g_rx_ctrl_handle + |L3.3224| + DCD |symbol_number.114| + |L3.3228| +000c9c 53323150 DCB "S21P_demo",0 +000ca0 5f64656d +000ca4 6f00 +000ca6 00 DCB 0 +000ca7 00 DCB 0 + |L3.3240| +000ca8 5b25735d DCB "[%s] (%04d) C9 resp error [%d]!\n",0 +000cac 20282530 +000cb0 34642920 +000cb4 43392072 +000cb8 65737020 +000cbc 6572726f +000cc0 72205b25 +000cc4 645d210a +000cc8 00 +000cc9 00 DCB 0 +000cca 00 DCB 0 +000ccb 00 DCB 0 + |L3.3276| + DCD ret_C7_count + |L3.3280| +000cd0 20b5 MOVS r0,#0xb5 +000cd2 21e4 MOVS r1,#0xe4 +000cd4 2211 MOVS r2,#0x11 +000cd6 2323 MOVS r3,#0x23 +000cd8 9306 STR r3,[sp,#0x18] +000cda 9207 STR r2,[sp,#0x1c] +000cdc 9108 STR r1,[sp,#0x20] +000cde 9009 STR r0,[sp,#0x24] +000ce0 209d MOVS r0,#0x9d +000ce2 2184 MOVS r1,#0x84 +000ce4 2210 MOVS r2,#0x10 +000ce6 231f MOVS r3,#0x1f +000ce8 9302 STR r3,[sp,#8] +000cea 9300 STR r3,[sp,#0] +000cec 9301 STR r3,[sp,#4] +000cee 9203 STR r2,[sp,#0xc] +000cf0 9104 STR r1,[sp,#0x10] +000cf2 9005 STR r0,[sp,#0x14] +000cf4 230a MOVS r3,#0xa +000cf6 2200 MOVS r2,#0 +000cf8 211c MOVS r1,#0x1c +000cfa 48fe LDR r0,|L3.4340| +000cfc 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000cfe f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;519 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;520 DSI_VC_0, +;;;521 10, 0x1F, 0x1F, 0x1F, 0x10, 0x84, 0x9D, 0x23, 0x11, 0xE4, 0xB5); +;;;522 ret_C7_count = 1; +000d02 2001 MOVS r0,#1 +000d04 49fc LDR r1,|L3.4344| +000d06 7008 STRB r0,[r1,#0] + |L3.3336| +000d08 e209 B |L3.4382| + |L3.3338| +;;;523 } +;;;524 else if(ret_C7_count == 1) +000d0a 48fb LDR r0,|L3.4344| +000d0c 7800 LDRB r0,[r0,#0] ; ret_C7_count +000d0e 2801 CMP r0,#1 +000d10 d11e BNE |L3.3408| +;;;525 { +;;;526 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +000d12 2015 MOVS r0,#0x15 +000d14 216f MOVS r1,#0x6f +000d16 22f1 MOVS r2,#0xf1 +000d18 23b4 MOVS r3,#0xb4 +000d1a 9306 STR r3,[sp,#0x18] +000d1c 9207 STR r2,[sp,#0x1c] +000d1e 9108 STR r1,[sp,#0x20] +000d20 9009 STR r0,[sp,#0x24] +000d22 2013 MOVS r0,#0x13 +000d24 215a MOVS r1,#0x5a +000d26 22c1 MOVS r2,#0xc1 +000d28 2344 MOVS r3,#0x44 +000d2a 9302 STR r3,[sp,#8] +000d2c 9203 STR r2,[sp,#0xc] +000d2e 9104 STR r1,[sp,#0x10] +000d30 9005 STR r0,[sp,#0x14] +000d32 2012 MOVS r0,#0x12 +000d34 2155 MOVS r1,#0x55 +000d36 230a MOVS r3,#0xa +000d38 2200 MOVS r2,#0 +000d3a 9100 STR r1,[sp,#0] +000d3c 9001 STR r0,[sp,#4] +000d3e 211c MOVS r1,#0x1c +000d40 48ec LDR r0,|L3.4340| +000d42 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000d44 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;527 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;528 DSI_VC_0, +;;;529 10, 0x55, 0x12, 0x44, 0xC1, 0x5A, 0x13, 0xB4, 0xF1, 0x6F, 0x15); +;;;530 ret_C7_count = 2; +000d48 2002 MOVS r0,#2 +000d4a 49eb LDR r1,|L3.4344| +000d4c 7008 STRB r0,[r1,#0] +000d4e e7db B |L3.3336| + |L3.3408| +;;;531 } +;;;532 else if(ret_C7_count == 2) +000d50 48e9 LDR r0,|L3.4344| +000d52 7800 LDRB r0,[r0,#0] ; ret_C7_count +000d54 2802 CMP r0,#2 +000d56 d120 BNE |L3.3482| +;;;533 { +;;;534 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +000d58 203d MOVS r0,#0x3d +000d5a 21d6 MOVS r1,#0xd6 +000d5c 221a MOVS r2,#0x1a +000d5e 23a6 MOVS r3,#0xa6 +000d60 9306 STR r3,[sp,#0x18] +000d62 9207 STR r2,[sp,#0x1c] +000d64 9108 STR r1,[sp,#0x20] +000d66 9009 STR r0,[sp,#0x24] +000d68 207d MOVS r0,#0x7d +000d6a 2105 MOVS r1,#5 +000d6c 2217 MOVS r2,#0x17 +000d6e 2386 MOVS r3,#0x86 +000d70 9302 STR r3,[sp,#8] +000d72 9203 STR r2,[sp,#0xc] +000d74 9104 STR r1,[sp,#0x10] +000d76 e001 B |L3.3452| + |L3.3448| +000d78 e3f9 B |L3.5486| + |L3.3450| +000d7a e2e0 B |L3.4926| + |L3.3452| +000d7c 9005 STR r0,[sp,#0x14] +000d7e 2025 MOVS r0,#0x25 +000d80 9000 STR r0,[sp,#0] +000d82 230a MOVS r3,#0xa +000d84 2200 MOVS r2,#0 +000d86 211c MOVS r1,#0x1c +000d88 9001 STR r0,[sp,#4] +000d8a 48da LDR r0,|L3.4340| +000d8c 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000d8e f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;535 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;536 DSI_VC_0, +;;;537 10, 0x25, 0x25, 0x86, 0x17, 0x05, 0x7D, 0xA6, 0x1A, 0xD6, 0x3D); +;;;538 ret_C7_count = 3; +000d92 2003 MOVS r0,#3 +000d94 49d8 LDR r1,|L3.4344| +000d96 7008 STRB r0,[r1,#0] +000d98 e7b6 B |L3.3336| + |L3.3482| +;;;539 } +;;;540 else if(ret_C7_count == 3) +000d9a 48d7 LDR r0,|L3.4344| +000d9c 7800 LDRB r0,[r0,#0] ; ret_C7_count +000d9e 2803 CMP r0,#3 +000da0 d11e BNE |L3.3552| +;;;541 { +;;;542 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +000da2 2000 MOVS r0,#0 +000da4 21f2 MOVS r1,#0xf2 +000da6 2292 MOVS r2,#0x92 +000da8 23d9 MOVS r3,#0xd9 +000daa 9306 STR r3,[sp,#0x18] +000dac 9207 STR r2,[sp,#0x1c] +000dae 9108 STR r1,[sp,#0x20] +000db0 9009 STR r0,[sp,#0x24] +000db2 2029 MOVS r0,#0x29 +000db4 2146 MOVS r1,#0x46 +000db6 2266 MOVS r2,#0x66 +000db8 2367 MOVS r3,#0x67 +000dba 9302 STR r3,[sp,#8] +000dbc 9203 STR r2,[sp,#0xc] +000dbe 9104 STR r1,[sp,#0x10] +000dc0 9005 STR r0,[sp,#0x14] +000dc2 2020 MOVS r0,#0x20 +000dc4 21e7 MOVS r1,#0xe7 +000dc6 230a MOVS r3,#0xa +000dc8 2200 MOVS r2,#0 +000dca 9100 STR r1,[sp,#0] +000dcc 9001 STR r0,[sp,#4] +000dce 211c MOVS r1,#0x1c +000dd0 48c8 LDR r0,|L3.4340| +000dd2 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000dd4 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;543 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;544 DSI_VC_0, +;;;545 10, 0xE7, 0x20, 0x67, 0x66, 0x46, 0x29, 0xD9, 0x92, 0xF2, 0x00); +;;;546 ret_C7_count = 4; +000dd8 2004 MOVS r0,#4 +000dda 49c7 LDR r1,|L3.4344| +000ddc 7008 STRB r0,[r1,#0] +000dde e793 B |L3.3336| + |L3.3552| +;;;547 } +;;;548 else if(ret_C7_count == 4) +000de0 48c5 LDR r0,|L3.4344| +000de2 7800 LDRB r0,[r0,#0] ; ret_C7_count +000de4 2804 CMP r0,#4 +000de6 d11c BNE |L3.3618| +;;;549 { +;;;550 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +000de8 2041 MOVS r0,#0x41 +000dea 2115 MOVS r1,#0x15 +000dec 2214 MOVS r2,#0x14 +000dee 23b1 MOVS r3,#0xb1 +000df0 9306 STR r3,[sp,#0x18] +000df2 9207 STR r2,[sp,#0x1c] +000df4 9108 STR r1,[sp,#0x20] +000df6 9009 STR r0,[sp,#0x24] +000df8 2068 MOVS r0,#0x68 +000dfa 2142 MOVS r1,#0x42 +000dfc 2209 MOVS r2,#9 +000dfe 231f MOVS r3,#0x1f +000e00 9302 STR r3,[sp,#8] +000e02 9300 STR r3,[sp,#0] +000e04 9301 STR r3,[sp,#4] +000e06 9203 STR r2,[sp,#0xc] +000e08 9104 STR r1,[sp,#0x10] +000e0a 9005 STR r0,[sp,#0x14] +000e0c 230a MOVS r3,#0xa +000e0e 2200 MOVS r2,#0 +000e10 211c MOVS r1,#0x1c +000e12 48b8 LDR r0,|L3.4340| +000e14 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000e16 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;551 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;552 DSI_VC_0, +;;;553 10, 0x1F, 0x1F, 0x1F, 0x09, 0x42, 0x68, 0xB1, 0x14, 0x15, 0x41); +;;;554 ret_C7_count = 5; +000e1a 2005 MOVS r0,#5 +000e1c 49b6 LDR r1,|L3.4344| +000e1e 7008 STRB r0,[r1,#0] +000e20 e772 B |L3.3336| + |L3.3618| +;;;555 } +;;;556 else if(ret_C7_count == 5) +000e22 48b5 LDR r0,|L3.4344| +000e24 7800 LDRB r0,[r0,#0] ; ret_C7_count +000e26 2805 CMP r0,#5 +000e28 d11d BNE |L3.3686| +;;;557 { +;;;558 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +000e2a 2016 MOVS r0,#0x16 +000e2c 218b MOVS r1,#0x8b +000e2e 226d MOVS r2,#0x6d +000e30 2305 MOVS r3,#5 +000e32 9306 STR r3,[sp,#0x18] +000e34 9207 STR r2,[sp,#0x1c] +000e36 9108 STR r1,[sp,#0x20] +000e38 9009 STR r0,[sp,#0x24] +000e3a 2015 MOVS r0,#0x15 +000e3c 217d MOVS r1,#0x7d +000e3e 2249 MOVS r2,#0x49 +000e40 9002 STR r0,[sp,#8] +000e42 9203 STR r2,[sp,#0xc] +000e44 9104 STR r1,[sp,#0x10] +000e46 9005 STR r0,[sp,#0x14] +000e48 2014 MOVS r0,#0x14 +000e4a 2178 MOVS r1,#0x78 +000e4c 230a MOVS r3,#0xa +000e4e 2200 MOVS r2,#0 +000e50 9100 STR r1,[sp,#0] +000e52 9001 STR r0,[sp,#4] +000e54 211c MOVS r1,#0x1c +000e56 48a7 LDR r0,|L3.4340| +000e58 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000e5a f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;559 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;560 DSI_VC_0, +;;;561 10, 0x78, 0x14, 0x15, 0x49, 0x7D, 0x15, 0x05, 0x6D, 0x8B, 0x16); +;;;562 ret_C7_count = 6; +000e5e 2006 MOVS r0,#6 +000e60 49a5 LDR r1,|L3.4344| +000e62 7008 STRB r0,[r1,#0] +000e64 e750 B |L3.3336| + |L3.3686| +;;;563 } +;;;564 else if(ret_C7_count == 6) +000e66 48a4 LDR r0,|L3.4344| +000e68 7800 LDRB r0,[r0,#0] ; ret_C7_count +000e6a 2806 CMP r0,#6 +000e6c d11e BNE |L3.3756| +;;;565 { +;;;566 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +000e6e 204d MOVS r0,#0x4d +000e70 21a6 MOVS r1,#0xa6 +000e72 221a MOVS r2,#0x1a +000e74 23b1 MOVS r3,#0xb1 +000e76 9306 STR r3,[sp,#0x18] +000e78 9207 STR r2,[sp,#0x1c] +000e7a 9108 STR r1,[sp,#0x20] +000e7c 9009 STR r0,[sp,#0x24] +000e7e 20c1 MOVS r0,#0xc1 +000e80 2195 MOVS r1,#0x95 +000e82 2217 MOVS r2,#0x17 +000e84 239a MOVS r3,#0x9a +000e86 9302 STR r3,[sp,#8] +000e88 9203 STR r2,[sp,#0xc] +000e8a 9104 STR r1,[sp,#0x10] +000e8c 9005 STR r0,[sp,#0x14] +000e8e 208d MOVS r0,#0x8d +000e90 2135 MOVS r1,#0x35 +000e92 230a MOVS r3,#0xa +000e94 2200 MOVS r2,#0 +000e96 9100 STR r1,[sp,#0] +000e98 9001 STR r0,[sp,#4] +000e9a 211c MOVS r1,#0x1c +000e9c 4895 LDR r0,|L3.4340| +000e9e 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000ea0 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;567 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;568 DSI_VC_0, +;;;569 10, 0x35, 0x8D, 0x9A, 0x17, 0x95, 0xC1, 0xB1, 0x1A, 0xA6, 0x4D); +;;;570 ret_C7_count = 7; +000ea4 2007 MOVS r0,#7 +000ea6 4994 LDR r1,|L3.4344| +000ea8 7008 STRB r0,[r1,#0] +000eaa e72d B |L3.3336| + |L3.3756| +;;;571 } +;;;572 else if(ret_C7_count == 7) +000eac 4892 LDR r0,|L3.4344| +000eae 7800 LDRB r0,[r0,#0] ; ret_C7_count +000eb0 2807 CMP r0,#7 +000eb2 d11d BNE |L3.3824| +;;;573 { +;;;574 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +000eb4 2029 MOVS r0,#0x29 +000eb6 21f2 MOVS r1,#0xf2 +000eb8 2292 MOVS r2,#0x92 +000eba 23d9 MOVS r3,#0xd9 +000ebc 9306 STR r3,[sp,#0x18] +000ebe 9207 STR r2,[sp,#0x1c] +000ec0 9108 STR r1,[sp,#0x20] +000ec2 9009 STR r0,[sp,#0x24] +000ec4 2139 MOVS r1,#0x39 +000ec6 2242 MOVS r2,#0x42 +000ec8 2397 MOVS r3,#0x97 +000eca 9302 STR r3,[sp,#8] +000ecc 9203 STR r2,[sp,#0xc] +000ece 9104 STR r1,[sp,#0x10] +000ed0 9005 STR r0,[sp,#0x14] +000ed2 201f MOVS r0,#0x1f +000ed4 21e5 MOVS r1,#0xe5 +000ed6 230a MOVS r3,#0xa +000ed8 2200 MOVS r2,#0 +000eda 9100 STR r1,[sp,#0] +000edc 9001 STR r0,[sp,#4] +000ede 211c MOVS r1,#0x1c +000ee0 4884 LDR r0,|L3.4340| +000ee2 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000ee4 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;575 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;576 DSI_VC_0, +;;;577 10, 0xE5, 0x1F, 0x97, 0x42, 0x39, 0x29, 0xD9, 0x92, 0xF2, 0x29); +;;;578 ret_C7_count = 8; +000ee8 2008 MOVS r0,#8 +000eea 4983 LDR r1,|L3.4344| +000eec 7008 STRB r0,[r1,#0] +000eee e70b B |L3.3336| + |L3.3824| +;;;579 } +;;;580 else if(ret_C7_count == 8) +000ef0 4881 LDR r0,|L3.4344| +000ef2 7800 LDRB r0,[r0,#0] ; ret_C7_count +000ef4 2808 CMP r0,#8 +000ef6 d11c BNE |L3.3890| +;;;581 { +;;;582 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +000ef8 2094 MOVS r0,#0x94 +000efa 2152 MOVS r1,#0x52 +000efc 220b MOVS r2,#0xb +000efe 2370 MOVS r3,#0x70 +000f00 9306 STR r3,[sp,#0x18] +000f02 9207 STR r2,[sp,#0x1c] +000f04 9108 STR r1,[sp,#0x20] +000f06 9009 STR r0,[sp,#0x24] +000f08 2048 MOVS r0,#0x48 +000f0a 2101 MOVS r1,#1 +000f0c 2205 MOVS r2,#5 +000f0e 2313 MOVS r3,#0x13 +000f10 9302 STR r3,[sp,#8] +000f12 9300 STR r3,[sp,#0] +000f14 9301 STR r3,[sp,#4] +000f16 9203 STR r2,[sp,#0xc] +000f18 9104 STR r1,[sp,#0x10] +000f1a 9005 STR r0,[sp,#0x14] +000f1c 230a MOVS r3,#0xa +000f1e 2200 MOVS r2,#0 +000f20 211c MOVS r1,#0x1c +000f22 4874 LDR r0,|L3.4340| +000f24 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000f26 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;583 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;584 DSI_VC_0, +;;;585 10, 0x13, 0x13, 0x13, 0x05, 0x01, 0x48, 0x70, 0x0B, 0x52, 0x94); +;;;586 ret_C7_count = 9; +000f2a 2009 MOVS r0,#9 +000f2c 4972 LDR r1,|L3.4344| +000f2e 7008 STRB r0,[r1,#0] +000f30 e6ea B |L3.3336| + |L3.3890| +;;;587 } +;;;588 else if(ret_C7_count == 9) +000f32 4871 LDR r0,|L3.4344| +000f34 7800 LDRB r0,[r0,#0] ; ret_C7_count +000f36 2809 CMP r0,#9 +000f38 d11e BNE |L3.3960| +;;;589 { +;;;590 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +000f3a 2014 MOVS r0,#0x14 +000f3c 2147 MOVS r1,#0x47 +000f3e 22f5 MOVS r2,#0xf5 +000f40 2393 MOVS r3,#0x93 +000f42 9306 STR r3,[sp,#0x18] +000f44 9207 STR r2,[sp,#0x1c] +000f46 9108 STR r1,[sp,#0x20] +000f48 9009 STR r0,[sp,#0x24] +000f4a 2011 MOVS r0,#0x11 +000f4c 21fb MOVS r1,#0xfb +000f4e 22f4 MOVS r2,#0xf4 +000f50 2322 MOVS r3,#0x22 +000f52 9302 STR r3,[sp,#8] +000f54 9203 STR r2,[sp,#0xc] +000f56 9104 STR r1,[sp,#0x10] +000f58 9005 STR r0,[sp,#0x14] +000f5a 200d MOVS r0,#0xd +000f5c 21db MOVS r1,#0xdb +000f5e 230a MOVS r3,#0xa +000f60 2200 MOVS r2,#0 +000f62 9100 STR r1,[sp,#0] +000f64 9001 STR r0,[sp,#4] +000f66 211c MOVS r1,#0x1c +000f68 4862 LDR r0,|L3.4340| +000f6a 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000f6c f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;591 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;592 DSI_VC_0, +;;;593 10, 0xDB, 0x0D, 0x22, 0xF4, 0xFB, 0x11, 0x93, 0xF5, 0x47, 0x14); +;;;594 ret_C7_count = 10; +000f70 200a MOVS r0,#0xa +000f72 4961 LDR r1,|L3.4344| +000f74 7008 STRB r0,[r1,#0] +000f76 e6c7 B |L3.3336| + |L3.3960| +;;;595 } +;;;596 else if(ret_C7_count == 10) +000f78 485f LDR r0,|L3.4344| +000f7a 7800 LDRB r0,[r0,#0] ; ret_C7_count +000f7c 280a CMP r0,#0xa +000f7e d11e BNE |L3.4030| +;;;597 { +;;;598 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +000f80 206e MOVS r0,#0x6e +000f82 2146 MOVS r1,#0x46 +000f84 221c MOVS r2,#0x1c +000f86 23ad MOVS r3,#0xad +000f88 9306 STR r3,[sp,#0x18] +000f8a 9207 STR r2,[sp,#0x1c] +000f8c 9108 STR r1,[sp,#0x20] +000f8e 9009 STR r0,[sp,#0x24] +000f90 2055 MOVS r0,#0x55 +000f92 2175 MOVS r1,#0x75 +000f94 2217 MOVS r2,#0x17 +000f96 237b MOVS r3,#0x7b +000f98 9302 STR r3,[sp,#8] +000f9a 9203 STR r2,[sp,#0xc] +000f9c 9104 STR r1,[sp,#0x10] +000f9e 9005 STR r0,[sp,#0x14] +000fa0 20a1 MOVS r0,#0xa1 +000fa2 2184 MOVS r1,#0x84 +000fa4 230a MOVS r3,#0xa +000fa6 2200 MOVS r2,#0 +000fa8 9100 STR r1,[sp,#0] +000faa 9001 STR r0,[sp,#4] +000fac 211c MOVS r1,#0x1c +000fae 4851 LDR r0,|L3.4340| +000fb0 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000fb2 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;599 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;600 DSI_VC_0, +;;;601 10, 0x84, 0xA1, 0x7B, 0x17, 0x75, 0x55, 0xAD, 0x1C, 0x46, 0x6E); +;;;602 ret_C7_count = 11; +000fb6 200b MOVS r0,#0xb +000fb8 494f LDR r1,|L3.4344| +000fba 7008 STRB r0,[r1,#0] +000fbc e6a4 B |L3.3336| + |L3.4030| +;;;603 } +;;;604 else if(ret_C7_count == 11) +000fbe 484e LDR r0,|L3.4344| +000fc0 7800 LDRB r0,[r0,#0] ; ret_C7_count +000fc2 280b CMP r0,#0xb +000fc4 d11e BNE |L3.4100| +;;;605 { +;;;606 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +000fc6 202f MOVS r0,#0x2f +000fc8 21d1 MOVS r1,#0xd1 +000fca 2236 MOVS r2,#0x36 +000fcc 2349 MOVS r3,#0x49 +000fce 9306 STR r3,[sp,#0x18] +000fd0 9207 STR r2,[sp,#0x1c] +000fd2 9108 STR r1,[sp,#0x20] +000fd4 9009 STR r0,[sp,#0x24] +000fd6 2028 MOVS r0,#0x28 +000fd8 2174 MOVS r1,#0x74 +000fda 2202 MOVS r2,#2 +000fdc 23f8 MOVS r3,#0xf8 +000fde 9302 STR r3,[sp,#8] +000fe0 9203 STR r2,[sp,#0xc] +000fe2 9104 STR r1,[sp,#0x10] +000fe4 9005 STR r0,[sp,#0x14] +000fe6 2022 MOVS r0,#0x22 +000fe8 2101 MOVS r1,#1 +000fea 230a MOVS r3,#0xa +000fec 2200 MOVS r2,#0 +000fee 9100 STR r1,[sp,#0] +000ff0 9001 STR r0,[sp,#4] +000ff2 211c MOVS r1,#0x1c +000ff4 483f LDR r0,|L3.4340| +000ff6 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000ff8 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;607 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;608 DSI_VC_0, +;;;609 10, 0x01, 0x22, 0xF8, 0x02, 0x74, 0x28, 0x49, 0x36, 0xD1, 0x2F); +;;;610 ret_C7_count = 12; +000ffc 200c MOVS r0,#0xc +000ffe 493e LDR r1,|L3.4344| +001000 7008 STRB r0,[r1,#0] +001002 e681 B |L3.3336| + |L3.4100| +;;;611 } +;;;612 else if(ret_C7_count == 12) +001004 483c LDR r0,|L3.4344| +001006 7800 LDRB r0,[r0,#0] ; ret_C7_count +001008 280c CMP r0,#0xc +00100a d11b BNE |L3.4164| +;;;613 { +;;;614 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +00100c 2098 MOVS r0,#0x98 +00100e 2152 MOVS r1,#0x52 +001010 220b MOVS r2,#0xb +001012 23a6 MOVS r3,#0xa6 +001014 9306 STR r3,[sp,#0x18] +001016 9207 STR r2,[sp,#0x1c] +001018 9108 STR r1,[sp,#0x20] +00101a 9009 STR r0,[sp,#0x24] +00101c 2018 MOVS r0,#0x18 +00101e 2208 MOVS r2,#8 +001020 231a MOVS r3,#0x1a +001022 9302 STR r3,[sp,#8] +001024 9300 STR r3,[sp,#0] +001026 9301 STR r3,[sp,#4] +001028 9203 STR r2,[sp,#0xc] +00102a 9104 STR r1,[sp,#0x10] +00102c 9005 STR r0,[sp,#0x14] +00102e 230a MOVS r3,#0xa +001030 2200 MOVS r2,#0 +001032 211c MOVS r1,#0x1c +001034 482f LDR r0,|L3.4340| +001036 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +001038 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;615 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;616 DSI_VC_0, +;;;617 10, 0x1A, 0x1A, 0x1A, 0x08, 0x52, 0x18, 0xA6, 0x0B, 0x52, 0x98); +;;;618 ret_C7_count = 13; +00103c 200d MOVS r0,#0xd +00103e 492e LDR r1,|L3.4344| +001040 7008 STRB r0,[r1,#0] +001042 e06c B |L3.4382| + |L3.4164| +;;;619 } +;;;620 else if(ret_C7_count == 13) +001044 482c LDR r0,|L3.4344| +001046 7800 LDRB r0,[r0,#0] ; ret_C7_count +001048 280d CMP r0,#0xd +00104a d11e BNE |L3.4234| +;;;621 { +;;;622 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +00104c 2013 MOVS r0,#0x13 +00104e 213c MOVS r1,#0x3c +001050 22d1 MOVS r2,#0xd1 +001052 2303 MOVS r3,#3 +001054 9306 STR r3,[sp,#0x18] +001056 9207 STR r2,[sp,#0x1c] +001058 9108 STR r1,[sp,#0x20] +00105a 9009 STR r0,[sp,#0x24] +00105c 2011 MOVS r0,#0x11 +00105e 21f8 MOVS r1,#0xf8 +001060 22f0 MOVS r2,#0xf0 +001062 2322 MOVS r3,#0x22 +001064 9302 STR r3,[sp,#8] +001066 9203 STR r2,[sp,#0xc] +001068 9104 STR r1,[sp,#0x10] +00106a 9005 STR r0,[sp,#0x14] +00106c 200d MOVS r0,#0xd +00106e 21d8 MOVS r1,#0xd8 +001070 230a MOVS r3,#0xa +001072 2200 MOVS r2,#0 +001074 9100 STR r1,[sp,#0] +001076 9001 STR r0,[sp,#4] +001078 211c MOVS r1,#0x1c +00107a 481e LDR r0,|L3.4340| +00107c 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +00107e f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;623 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;624 DSI_VC_0, +;;;625 10, 0xD8, 0x0D, 0x22, 0xF0, 0xF8, 0x11, 0x03, 0xD1, 0x3C, 0x13); +;;;626 ret_C7_count = 14; +001082 200e MOVS r0,#0xe +001084 491c LDR r1,|L3.4344| +001086 7008 STRB r0,[r1,#0] +001088 e3e5 B |L3.6230| + |L3.4234| +;;;627 } +;;;628 else if(ret_C7_count == 14) +00108a 481b LDR r0,|L3.4344| +00108c 7800 LDRB r0,[r0,#0] ; ret_C7_count +00108e 280e CMP r0,#0xe +001090 d11e BNE |L3.4304| +;;;629 { +;;;630 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +001092 201d MOVS r0,#0x1d +001094 21e6 MOVS r1,#0xe6 +001096 221a MOVS r2,#0x1a +001098 2399 MOVS r3,#0x99 +00109a 9306 STR r3,[sp,#0x18] +00109c 9207 STR r2,[sp,#0x1c] +00109e 9108 STR r1,[sp,#0x20] +0010a0 9009 STR r0,[sp,#0x24] +0010a2 2015 MOVS r0,#0x15 +0010a4 2175 MOVS r1,#0x75 +0010a6 2216 MOVS r2,#0x16 +0010a8 236a MOVS r3,#0x6a +0010aa 9302 STR r3,[sp,#8] +0010ac 9203 STR r2,[sp,#0xc] +0010ae 9104 STR r1,[sp,#0x10] +0010b0 9005 STR r0,[sp,#0x14] +0010b2 2071 MOVS r0,#0x71 +0010b4 21b4 MOVS r1,#0xb4 +0010b6 230a MOVS r3,#0xa +0010b8 2200 MOVS r2,#0 +0010ba 9100 STR r1,[sp,#0] +0010bc 9001 STR r0,[sp,#4] +0010be 211c MOVS r1,#0x1c +0010c0 480c LDR r0,|L3.4340| +0010c2 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0010c4 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;631 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;632 DSI_VC_0, +;;;633 10, 0xB4, 0x71, 0x6A, 0x16, 0x75, 0x15, 0x99, 0x1A, 0xE6, 0x1D); +;;;634 ret_C7_count = 15; +0010c8 200f MOVS r0,#0xf +0010ca 490b LDR r1,|L3.4344| +0010cc 7008 STRB r0,[r1,#0] +0010ce e3c2 B |L3.6230| + |L3.4304| +;;;635 } +;;;636 else if(ret_C7_count == 15) +0010d0 4809 LDR r0,|L3.4344| +0010d2 7800 LDRB r0,[r0,#0] ; ret_C7_count +0010d4 280f CMP r0,#0xf +0010d6 d123 BNE |L3.4384| +;;;637 { +;;;638 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +0010d8 2029 MOVS r0,#0x29 +0010da 2196 MOVS r1,#0x96 +0010dc 226e MOVS r2,#0x6e +0010de 23e8 MOVS r3,#0xe8 +0010e0 9306 STR r3,[sp,#0x18] +0010e2 9207 STR r2,[sp,#0x1c] +0010e4 9108 STR r1,[sp,#0x20] +0010e6 9009 STR r0,[sp,#0x24] +0010e8 2024 MOVS r0,#0x24 +0010ea 214b MOVS r1,#0x4b +0010ec 2276 MOVS r2,#0x76 +0010ee 23b7 MOVS r3,#0xb7 +0010f0 9302 STR r3,[sp,#8] +0010f2 e003 B |L3.4348| + |L3.4340| + DCD g_rx_ctrl_handle + |L3.4344| + DCD ret_C7_count + |L3.4348| +0010fc 9203 STR r2,[sp,#0xc] +0010fe 9104 STR r1,[sp,#0x10] +001100 9005 STR r0,[sp,#0x14] +001102 2020 MOVS r0,#0x20 +001104 21e6 MOVS r1,#0xe6 +001106 230a MOVS r3,#0xa +001108 2200 MOVS r2,#0 +00110a 9100 STR r1,[sp,#0] +00110c 9001 STR r0,[sp,#4] +00110e 211c MOVS r1,#0x1c +001110 48fe LDR r0,|L3.5388| +001112 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +001114 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;639 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;640 DSI_VC_0, +;;;641 10, 0xE6, 0x20, 0xB7, 0x76, 0x4B, 0x24, 0xE8, 0x6E, 0x96, 0x29); +;;;642 ret_C7_count = 16; +001118 2010 MOVS r0,#0x10 +00111a 49fd LDR r1,|L3.5392| +00111c 7008 STRB r0,[r1,#0] + |L3.4382| +00111e e39a B |L3.6230| + |L3.4384| +;;;643 } +;;;644 else if(ret_C7_count == 16) +001120 48fb LDR r0,|L3.5392| +001122 7800 LDRB r0,[r0,#0] ; ret_C7_count +001124 2810 CMP r0,#0x10 +001126 d11c BNE |L3.4450| +;;;645 { +;;;646 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +001128 20a4 MOVS r0,#0xa4 +00112a 2162 MOVS r1,#0x62 +00112c 220b MOVS r2,#0xb +00112e 23ae MOVS r3,#0xae +001130 9306 STR r3,[sp,#0x18] +001132 9207 STR r2,[sp,#0x1c] +001134 9108 STR r1,[sp,#0x20] +001136 9009 STR r0,[sp,#0x24] +001138 2034 MOVS r0,#0x34 +00113a 21b2 MOVS r1,#0xb2 +00113c 2208 MOVS r2,#8 +00113e 231a MOVS r3,#0x1a +001140 9302 STR r3,[sp,#8] +001142 9300 STR r3,[sp,#0] +001144 9301 STR r3,[sp,#4] +001146 9203 STR r2,[sp,#0xc] +001148 9104 STR r1,[sp,#0x10] +00114a 9005 STR r0,[sp,#0x14] +00114c 230a MOVS r3,#0xa +00114e 2200 MOVS r2,#0 +001150 211c MOVS r1,#0x1c +001152 48ee LDR r0,|L3.5388| +001154 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +001156 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;647 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;648 DSI_VC_0, +;;;649 10, 0x1A, 0x1A, 0x1A, 0x08, 0xB2, 0x34, 0xAE, 0x0B, 0x62, 0xA4); +;;;650 ret_C7_count = 17; +00115a 2011 MOVS r0,#0x11 +00115c 49ec LDR r1,|L3.5392| +00115e 7008 STRB r0,[r1,#0] +001160 e379 B |L3.6230| + |L3.4450| +;;;651 } +;;;652 else if(ret_C7_count == 17) +001162 48eb LDR r0,|L3.5392| +001164 7800 LDRB r0,[r0,#0] ; ret_C7_count +001166 2811 CMP r0,#0x11 +001168 d11d BNE |L3.4518| +;;;653 { +;;;654 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +00116a 2013 MOVS r0,#0x13 +00116c 213d MOVS r1,#0x3d +00116e 22d9 MOVS r2,#0xd9 +001170 9006 STR r0,[sp,#0x18] +001172 9207 STR r2,[sp,#0x1c] +001174 9108 STR r1,[sp,#0x20] +001176 9009 STR r0,[sp,#0x24] +001178 2011 MOVS r0,#0x11 +00117a 21f8 MOVS r1,#0xf8 +00117c 22f4 MOVS r2,#0xf4 +00117e 2322 MOVS r3,#0x22 +001180 9302 STR r3,[sp,#8] +001182 9203 STR r2,[sp,#0xc] +001184 9104 STR r1,[sp,#0x10] +001186 9005 STR r0,[sp,#0x14] +001188 200d MOVS r0,#0xd +00118a 21db MOVS r1,#0xdb +00118c 230a MOVS r3,#0xa +00118e 2200 MOVS r2,#0 +001190 9100 STR r1,[sp,#0] +001192 9001 STR r0,[sp,#4] +001194 211c MOVS r1,#0x1c +001196 48dd LDR r0,|L3.5388| +001198 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +00119a f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;655 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;656 DSI_VC_0, +;;;657 10, 0xDB, 0x0D, 0x22, 0xF4, 0xF8, 0x11, 0x13, 0xD9, 0x3D, 0x13); +;;;658 ret_C7_count = 18; +00119e 2012 MOVS r0,#0x12 +0011a0 49db LDR r1,|L3.5392| +0011a2 7008 STRB r0,[r1,#0] +0011a4 e357 B |L3.6230| + |L3.4518| +;;;659 } +;;;660 else if(ret_C7_count == 18) +0011a6 48da LDR r0,|L3.5392| +0011a8 7800 LDRB r0,[r0,#0] ; ret_C7_count +0011aa 2812 CMP r0,#0x12 +0011ac d11e BNE |L3.4588| +;;;661 { +;;;662 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +0011ae 2021 MOVS r0,#0x21 +0011b0 21e6 MOVS r1,#0xe6 +0011b2 221a MOVS r2,#0x1a +0011b4 2399 MOVS r3,#0x99 +0011b6 9306 STR r3,[sp,#0x18] +0011b8 9207 STR r2,[sp,#0x1c] +0011ba 9108 STR r1,[sp,#0x20] +0011bc 9009 STR r0,[sp,#0x24] +0011be 2011 MOVS r0,#0x11 +0011c0 2165 MOVS r1,#0x65 +0011c2 2216 MOVS r2,#0x16 +0011c4 2369 MOVS r3,#0x69 +0011c6 9302 STR r3,[sp,#8] +0011c8 9203 STR r2,[sp,#0xc] +0011ca 9104 STR r1,[sp,#0x10] +0011cc 9005 STR r0,[sp,#0x14] +0011ce 2071 MOVS r0,#0x71 +0011d0 21b4 MOVS r1,#0xb4 +0011d2 230a MOVS r3,#0xa +0011d4 2200 MOVS r2,#0 +0011d6 9100 STR r1,[sp,#0] +0011d8 9001 STR r0,[sp,#4] +0011da 211c MOVS r1,#0x1c +0011dc 48cb LDR r0,|L3.5388| +0011de 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0011e0 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;663 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;664 DSI_VC_0, +;;;665 10, 0xB4, 0x71, 0x69, 0x16, 0x65, 0x11, 0x99, 0x1A, 0xE6, 0x21); +;;;666 ret_C7_count = 19; +0011e4 2013 MOVS r0,#0x13 +0011e6 49ca LDR r1,|L3.5392| +0011e8 7008 STRB r0,[r1,#0] +0011ea e334 B |L3.6230| + |L3.4588| +;;;667 } +;;;668 else if(ret_C7_count == 19) +0011ec 48c8 LDR r0,|L3.5392| +0011ee 7800 LDRB r0,[r0,#0] ; ret_C7_count +0011f0 2813 CMP r0,#0x13 +0011f2 d11d BNE |L3.4656| +;;;669 { +;;;670 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +0011f4 2029 MOVS r0,#0x29 +0011f6 21f2 MOVS r1,#0xf2 +0011f8 2292 MOVS r2,#0x92 +0011fa 23d9 MOVS r3,#0xd9 +0011fc 9306 STR r3,[sp,#0x18] +0011fe 9207 STR r2,[sp,#0x1c] +001200 9108 STR r1,[sp,#0x20] +001202 9009 STR r0,[sp,#0x24] +001204 214e MOVS r1,#0x4e +001206 2286 MOVS r2,#0x86 +001208 23d7 MOVS r3,#0xd7 +00120a 9302 STR r3,[sp,#8] +00120c 9203 STR r2,[sp,#0xc] +00120e 9104 STR r1,[sp,#0x10] +001210 9005 STR r0,[sp,#0x14] +001212 2020 MOVS r0,#0x20 +001214 21e7 MOVS r1,#0xe7 +001216 230a MOVS r3,#0xa +001218 2200 MOVS r2,#0 +00121a 9100 STR r1,[sp,#0] +00121c 9001 STR r0,[sp,#4] +00121e 211c MOVS r1,#0x1c +001220 48ba LDR r0,|L3.5388| +001222 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +001224 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;671 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;672 DSI_VC_0, +;;;673 10, 0xE7, 0x20, 0xD7, 0x86, 0x4E, 0x29, 0xD9, 0x92, 0xF2, 0x29); +;;;674 ret_C7_count = 20; +001228 2014 MOVS r0,#0x14 +00122a 49b9 LDR r1,|L3.5392| +00122c 7008 STRB r0,[r1,#0] + |L3.4654| +00122e e312 B |L3.6230| + |L3.4656| +;;;675 } +;;;676 else if(ret_C7_count == 20) +001230 48b7 LDR r0,|L3.5392| +001232 7800 LDRB r0,[r0,#0] ; ret_C7_count +001234 2814 CMP r0,#0x14 +001236 d11c BNE |L3.4722| +;;;677 { +;;;678 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +001238 20d8 MOVS r0,#0xd8 +00123a 21d2 MOVS r1,#0xd2 +00123c 220b MOVS r2,#0xb +00123e 23c9 MOVS r3,#0xc9 +001240 9306 STR r3,[sp,#0x18] +001242 9207 STR r2,[sp,#0x1c] +001244 9108 STR r1,[sp,#0x20] +001246 9009 STR r0,[sp,#0x24] +001248 2094 MOVS r0,#0x94 +00124a 21f2 MOVS r1,#0xf2 +00124c 2209 MOVS r2,#9 +00124e 231a MOVS r3,#0x1a +001250 9302 STR r3,[sp,#8] +001252 9300 STR r3,[sp,#0] +001254 9301 STR r3,[sp,#4] +001256 9203 STR r2,[sp,#0xc] +001258 9104 STR r1,[sp,#0x10] +00125a 9005 STR r0,[sp,#0x14] +00125c 230a MOVS r3,#0xa +00125e 2200 MOVS r2,#0 +001260 211c MOVS r1,#0x1c +001262 48aa LDR r0,|L3.5388| +001264 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +001266 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;679 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;680 DSI_VC_0, +;;;681 10, 0x1A, 0x1A, 0x1A, 0x09, 0xF2, 0x94, 0xC9, 0x0B, 0xD2, 0xD8); +;;;682 ret_C7_count = 21; +00126a 2015 MOVS r0,#0x15 +00126c 49a8 LDR r1,|L3.5392| +00126e 7008 STRB r0,[r1,#0] +001270 e2f1 B |L3.6230| + |L3.4722| +;;;683 } +;;;684 else if(ret_C7_count == 21) +001272 48a7 LDR r0,|L3.5392| +001274 7800 LDRB r0,[r0,#0] ; ret_C7_count +001276 2815 CMP r0,#0x15 +001278 d11d BNE |L3.4790| +;;;685 { +;;;686 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +00127a 2013 MOVS r0,#0x13 +00127c 213e MOVS r1,#0x3e +00127e 22e5 MOVS r2,#0xe5 +001280 9006 STR r0,[sp,#0x18] +001282 9207 STR r2,[sp,#0x1c] +001284 9108 STR r1,[sp,#0x20] +001286 9009 STR r0,[sp,#0x24] +001288 2011 MOVS r0,#0x11 +00128a 21fe MOVS r1,#0xfe +00128c 2214 MOVS r2,#0x14 +00128e 2343 MOVS r3,#0x43 +001290 9302 STR r3,[sp,#8] +001292 9203 STR r2,[sp,#0xc] +001294 9104 STR r1,[sp,#0x10] +001296 9005 STR r0,[sp,#0x14] +001298 200d MOVS r0,#0xd +00129a 21e8 MOVS r1,#0xe8 +00129c 230a MOVS r3,#0xa +00129e 2200 MOVS r2,#0 +0012a0 9100 STR r1,[sp,#0] +0012a2 9001 STR r0,[sp,#4] +0012a4 211c MOVS r1,#0x1c +0012a6 4899 LDR r0,|L3.5388| +0012a8 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0012aa f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;687 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;688 DSI_VC_0, +;;;689 10, 0xE8, 0x0D, 0x43, 0x14, 0xFE, 0x11, 0x13, 0xE5, 0x3E, 0x13); +;;;690 ret_C7_count = 22; +0012ae 2016 MOVS r0,#0x16 +0012b0 4997 LDR r1,|L3.5392| +0012b2 7008 STRB r0,[r1,#0] + |L3.4788| +0012b4 e2cf B |L3.6230| + |L3.4790| +;;;691 } +;;;692 else if(ret_C7_count == 22) +0012b6 4896 LDR r0,|L3.5392| +0012b8 7800 LDRB r0,[r0,#0] ; ret_C7_count +0012ba 2816 CMP r0,#0x16 +0012bc d11d BNE |L3.4858| +;;;693 { +;;;694 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +0012be 2019 MOVS r0,#0x19 +0012c0 21c6 MOVS r1,#0xc6 +0012c2 221a MOVS r2,#0x1a +0012c4 2398 MOVS r3,#0x98 +0012c6 9306 STR r3,[sp,#0x18] +0012c8 9207 STR r2,[sp,#0x1c] +0012ca 9108 STR r1,[sp,#0x20] +0012cc 9009 STR r0,[sp,#0x24] +0012ce 2165 MOVS r1,#0x65 +0012d0 2216 MOVS r2,#0x16 +0012d2 236b MOVS r3,#0x6b +0012d4 9302 STR r3,[sp,#8] +0012d6 9203 STR r2,[sp,#0xc] +0012d8 9104 STR r1,[sp,#0x10] +0012da 9005 STR r0,[sp,#0x14] +0012dc 2079 MOVS r0,#0x79 +0012de 21a4 MOVS r1,#0xa4 +0012e0 230a MOVS r3,#0xa +0012e2 2200 MOVS r2,#0 +0012e4 9100 STR r1,[sp,#0] +0012e6 9001 STR r0,[sp,#4] +0012e8 211c MOVS r1,#0x1c +0012ea 4888 LDR r0,|L3.5388| +0012ec 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0012ee f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;695 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;696 DSI_VC_0, +;;;697 10, 0xA4, 0x79, 0x6B, 0x16, 0x65, 0x19, 0x98, 0x1A, 0xC6, 0x19); +;;;698 ret_C7_count = 23; +0012f2 2017 MOVS r0,#0x17 +0012f4 4986 LDR r1,|L3.5392| +0012f6 7008 STRB r0,[r1,#0] +0012f8 e2ad B |L3.6230| + |L3.4858| +;;;699 } +;;;700 else if(ret_C7_count == 23) +0012fa 4885 LDR r0,|L3.5392| +0012fc 7800 LDRB r0,[r0,#0] ; ret_C7_count +0012fe 2817 CMP r0,#0x17 +001300 d195 BNE |L3.4654| +;;;701 { +;;;702 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +001302 2029 MOVS r0,#0x29 +001304 21f2 MOVS r1,#0xf2 +001306 2292 MOVS r2,#0x92 +001308 23d9 MOVS r3,#0xd9 +00130a 9306 STR r3,[sp,#0x18] +00130c 9207 STR r2,[sp,#0x1c] +00130e 9108 STR r1,[sp,#0x20] +001310 9009 STR r0,[sp,#0x24] +001312 214c MOVS r1,#0x4c +001314 227e MOVS r2,#0x7e +001316 23c7 MOVS r3,#0xc7 +001318 9302 STR r3,[sp,#8] +00131a 9203 STR r2,[sp,#0xc] +00131c 9104 STR r1,[sp,#0x10] +00131e 9005 STR r0,[sp,#0x14] +001320 2020 MOVS r0,#0x20 +001322 21e5 MOVS r1,#0xe5 +001324 230a MOVS r3,#0xa +001326 2200 MOVS r2,#0 +001328 9100 STR r1,[sp,#0] +00132a 9001 STR r0,[sp,#4] +00132c 211c MOVS r1,#0x1c +00132e 4877 LDR r0,|L3.5388| +001330 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +001332 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;703 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;704 DSI_VC_0, +;;;705 10, 0xE5, 0x20, 0xC7, 0x7E, 0x4C, 0x29, 0xD9, 0x92, 0xF2, 0x29); +;;;706 ret_C7_count = 0; +001336 2000 MOVS r0,#0 +001338 4975 LDR r1,|L3.5392| +00133a 7008 STRB r0,[r1,#0] +00133c e28b B |L3.6230| + |L3.4926| +;;;707 } +;;;708 else +;;;709 { +;;;710 //printf("C7 err return_size[%d] ret_C7_count[%d]\n", return_size, ret_C7_count); +;;;711 } +;;;712 } +;;;713 else if(return_size == 3) +00133e 982b LDR r0,[sp,#0xac] +001340 2803 CMP r0,#3 +001342 d13b BNE |L3.5052| +;;;714 { +;;;715 static uint8_t ret_C7_count = 0; +;;;716 if(ret_C7_count == 0) +001344 4873 LDR r0,|L3.5396| +001346 7800 LDRB r0,[r0,#0] ; ret_C7_count +001348 2800 CMP r0,#0 +00134a d10d BNE |L3.4968| +;;;717 { +;;;718 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +00134c 9000 STR r0,[sp,#0] +00134e 9001 STR r0,[sp,#4] +001350 2303 MOVS r3,#3 +001352 4602 MOV r2,r0 +001354 211c MOVS r1,#0x1c +001356 9002 STR r0,[sp,#8] +001358 486c LDR r0,|L3.5388| +00135a 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +00135c f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;719 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;720 DSI_VC_0, +;;;721 3, 0x00, 0x00, 0x00); +;;;722 ret_C7_count = 1; +001360 2001 MOVS r0,#1 +001362 496c LDR r1,|L3.5396| +001364 7008 STRB r0,[r1,#0] +001366 e276 B |L3.6230| + |L3.4968| +;;;723 } +;;;724 else if(ret_C7_count == 1) +001368 486a LDR r0,|L3.5396| +00136a 7800 LDRB r0,[r0,#0] ; ret_C7_count +00136c 2801 CMP r0,#1 +00136e d110 BNE |L3.5010| +;;;725 { +;;;726 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +001370 20f2 MOVS r0,#0xf2 +001372 2192 MOVS r1,#0x92 +001374 22d9 MOVS r2,#0xd9 +001376 2303 MOVS r3,#3 +001378 9200 STR r2,[sp,#0] +00137a 9101 STR r1,[sp,#4] +00137c 9002 STR r0,[sp,#8] +00137e 2200 MOVS r2,#0 +001380 211c MOVS r1,#0x1c +001382 4862 LDR r0,|L3.5388| +001384 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +001386 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;727 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;728 DSI_VC_0, +;;;729 3, 0xD9, 0x92, 0xF2); +;;;730 ret_C7_count = 2; +00138a 2002 MOVS r0,#2 +00138c 4961 LDR r1,|L3.5396| +00138e 7008 STRB r0,[r1,#0] +001390 e261 B |L3.6230| + |L3.5010| +;;;731 } +;;;732 else if(ret_C7_count == 2) +001392 4860 LDR r0,|L3.5396| +001394 7800 LDRB r0,[r0,#0] ; ret_C7_count +001396 2802 CMP r0,#2 +001398 d18c BNE |L3.4788| +;;;733 { +;;;734 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +00139a 2052 MOVS r0,#0x52 +00139c 21d7 MOVS r1,#0xd7 +00139e 225a MOVS r2,#0x5a +0013a0 2303 MOVS r3,#3 +0013a2 9200 STR r2,[sp,#0] +0013a4 9101 STR r1,[sp,#4] +0013a6 9002 STR r0,[sp,#8] +0013a8 2200 MOVS r2,#0 +0013aa 211c MOVS r1,#0x1c +0013ac 4857 LDR r0,|L3.5388| +0013ae 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0013b0 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;735 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;736 DSI_VC_0, +;;;737 3, 0x5A, 0xD7, 0x52); +;;;738 ret_C7_count = 0; +0013b4 2000 MOVS r0,#0 +0013b6 4957 LDR r1,|L3.5396| +0013b8 7008 STRB r0,[r1,#0] +0013ba e24c B |L3.6230| + |L3.5052| +;;;739 } +;;;740 else +;;;741 { +;;;742 //printf("C7 err return_size[%d] ret_C7_count[%d]\n", return_size, ret_C7_count); +;;;743 } +;;;744 } +;;;745 else if(return_size == 39) +0013bc 982b LDR r0,[sp,#0xac] +0013be 2827 CMP r0,#0x27 +0013c0 d153 BNE |L3.5226| +;;;746 { +;;;747 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +0013c2 20f2 MOVS r0,#0xf2 +0013c4 2192 MOVS r1,#0x92 +0013c6 22d9 MOVS r2,#0xd9 +0013c8 2329 MOVS r3,#0x29 +0013ca 9323 STR r3,[sp,#0x8c] +0013cc 9224 STR r2,[sp,#0x90] +0013ce 9125 STR r1,[sp,#0x94] +0013d0 9026 STR r0,[sp,#0x98] +0013d2 2046 MOVS r0,#0x46 +0013d4 2166 MOVS r1,#0x66 +0013d6 2267 MOVS r2,#0x67 +0013d8 2320 MOVS r3,#0x20 +0013da 931f STR r3,[sp,#0x7c] +0013dc 9220 STR r2,[sp,#0x80] +0013de 9121 STR r1,[sp,#0x84] +0013e0 9022 STR r0,[sp,#0x88] +0013e2 20e7 MOVS r0,#0xe7 +0013e4 213d MOVS r1,#0x3d +0013e6 22d6 MOVS r2,#0xd6 +0013e8 231a MOVS r3,#0x1a +0013ea 931b STR r3,[sp,#0x6c] +0013ec 921c STR r2,[sp,#0x70] +0013ee 911d STR r1,[sp,#0x74] +0013f0 901e STR r0,[sp,#0x78] +0013f2 20a6 MOVS r0,#0xa6 +0013f4 217d MOVS r1,#0x7d +0013f6 2205 MOVS r2,#5 +0013f8 2317 MOVS r3,#0x17 +0013fa 9317 STR r3,[sp,#0x5c] +0013fc 9218 STR r2,[sp,#0x60] +0013fe 9119 STR r1,[sp,#0x64] +001400 901a STR r0,[sp,#0x68] +001402 2086 MOVS r0,#0x86 +001404 2125 MOVS r1,#0x25 +001406 2315 MOVS r3,#0x15 +001408 9114 STR r1,[sp,#0x50] +00140a 9313 STR r3,[sp,#0x4c] +00140c 9115 STR r1,[sp,#0x54] +00140e 9016 STR r0,[sp,#0x58] +001410 206f MOVS r0,#0x6f +001412 21f1 MOVS r1,#0xf1 +001414 22b4 MOVS r2,#0xb4 +001416 2313 MOVS r3,#0x13 +001418 930f STR r3,[sp,#0x3c] +00141a 9210 STR r2,[sp,#0x40] +00141c 9111 STR r1,[sp,#0x44] +00141e 9012 STR r0,[sp,#0x48] +001420 205a MOVS r0,#0x5a +001422 21c1 MOVS r1,#0xc1 +001424 2244 MOVS r2,#0x44 +001426 2312 MOVS r3,#0x12 +001428 930b STR r3,[sp,#0x2c] +00142a 920c STR r2,[sp,#0x30] +00142c 910d STR r1,[sp,#0x34] +00142e 900e STR r0,[sp,#0x38] +001430 2055 MOVS r0,#0x55 +001432 21b5 MOVS r1,#0xb5 +001434 22e4 MOVS r2,#0xe4 +001436 2311 MOVS r3,#0x11 +001438 9307 STR r3,[sp,#0x1c] +00143a 9208 STR r2,[sp,#0x20] +00143c 9109 STR r1,[sp,#0x24] +00143e 900a STR r0,[sp,#0x28] +001440 2023 MOVS r0,#0x23 +001442 219d MOVS r1,#0x9d +001444 2284 MOVS r2,#0x84 +001446 2310 MOVS r3,#0x10 +001448 9303 STR r3,[sp,#0xc] +00144a 9204 STR r2,[sp,#0x10] +00144c 9105 STR r1,[sp,#0x14] +00144e 9006 STR r0,[sp,#0x18] +001450 201f MOVS r0,#0x1f +001452 9000 STR r0,[sp,#0] +001454 9001 STR r0,[sp,#4] +001456 2327 MOVS r3,#0x27 +001458 2200 MOVS r2,#0 +00145a 211c MOVS r1,#0x1c +00145c 9002 STR r0,[sp,#8] +00145e 482b LDR r0,|L3.5388| +001460 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +001462 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +001466 e1f6 B |L3.6230| + |L3.5224| +001468 e3fe B |L3.7272| + |L3.5226| +;;;748 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;749 DSI_VC_0, +;;;750 39, 0x1F, 0x1F, 0x1F, 0x10, 0x84, 0x9D, 0x23, 0x11, 0xE4, 0xB5, 0x55, 0x12, 0x44, 0xC1, 0x5A, 0x13, 0xB4, 0xF1, 0x6F, 0x15, 0x25, 0x25, 0x86, 0x17, 0x05, 0x7D, 0xA6, 0x1A, 0xD6, 0x3D, 0xE7, 0x20, 0x67, 0x66, 0x46, 0x29, 0xD9, 0x92, 0xF2); +;;;751 } +;;;752 else if(return_size == 43) +00146a 982b LDR r0,[sp,#0xac] +00146c 282b CMP r0,#0x2b +00146e d17d BNE |L3.5484| +;;;753 { +;;;754 static uint8_t ret_C7_count = 0; +;;;755 if(ret_C7_count == 0) +001470 4829 LDR r0,|L3.5400| +001472 7800 LDRB r0,[r0,#0] ; ret_C7_count +001474 2800 CMP r0,#0 +001476 d162 BNE |L3.5438| +;;;756 { +;;;757 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +001478 20f2 MOVS r0,#0xf2 +00147a 2192 MOVS r1,#0x92 +00147c 22d9 MOVS r2,#0xd9 +00147e 2329 MOVS r3,#0x29 +001480 9327 STR r3,[sp,#0x9c] +001482 9228 STR r2,[sp,#0xa0] +001484 9129 STR r1,[sp,#0xa4] +001486 902a STR r0,[sp,#0xa8] +001488 9323 STR r3,[sp,#0x8c] +00148a 9224 STR r2,[sp,#0x90] +00148c 9125 STR r1,[sp,#0x94] +00148e 9026 STR r0,[sp,#0x98] +001490 2039 MOVS r0,#0x39 +001492 2142 MOVS r1,#0x42 +001494 2297 MOVS r2,#0x97 +001496 231f MOVS r3,#0x1f +001498 931f STR r3,[sp,#0x7c] +00149a 9220 STR r2,[sp,#0x80] +00149c 9121 STR r1,[sp,#0x84] +00149e 9022 STR r0,[sp,#0x88] +0014a0 20e5 MOVS r0,#0xe5 +0014a2 214d MOVS r1,#0x4d +0014a4 22a6 MOVS r2,#0xa6 +0014a6 231a MOVS r3,#0x1a +0014a8 931b STR r3,[sp,#0x6c] +0014aa 921c STR r2,[sp,#0x70] +0014ac 911d STR r1,[sp,#0x74] +0014ae 901e STR r0,[sp,#0x78] +0014b0 20b1 MOVS r0,#0xb1 +0014b2 21c1 MOVS r1,#0xc1 +0014b4 2295 MOVS r2,#0x95 +0014b6 2317 MOVS r3,#0x17 +0014b8 9317 STR r3,[sp,#0x5c] +0014ba 9218 STR r2,[sp,#0x60] +0014bc 9119 STR r1,[sp,#0x64] +0014be 901a STR r0,[sp,#0x68] +0014c0 209a MOVS r0,#0x9a +0014c2 218d MOVS r1,#0x8d +0014c4 2235 MOVS r2,#0x35 +0014c6 2316 MOVS r3,#0x16 +0014c8 9313 STR r3,[sp,#0x4c] +0014ca 9214 STR r2,[sp,#0x50] +0014cc 9115 STR r1,[sp,#0x54] +0014ce 9016 STR r0,[sp,#0x58] +0014d0 208b MOVS r0,#0x8b +0014d2 216d MOVS r1,#0x6d +0014d4 2205 MOVS r2,#5 +0014d6 2315 MOVS r3,#0x15 +0014d8 930f STR r3,[sp,#0x3c] +0014da 9210 STR r2,[sp,#0x40] +0014dc 9111 STR r1,[sp,#0x44] +0014de 9012 STR r0,[sp,#0x48] +0014e0 207d MOVS r0,#0x7d +0014e2 2149 MOVS r1,#0x49 +0014e4 461a MOV r2,r3 +0014e6 2314 MOVS r3,#0x14 +0014e8 930b STR r3,[sp,#0x2c] +0014ea 920c STR r2,[sp,#0x30] +0014ec 910d STR r1,[sp,#0x34] +0014ee 900e STR r0,[sp,#0x38] +0014f0 2078 MOVS r0,#0x78 +0014f2 2141 MOVS r1,#0x41 +0014f4 2215 MOVS r2,#0x15 +0014f6 9307 STR r3,[sp,#0x1c] +0014f8 9208 STR r2,[sp,#0x20] +0014fa 9109 STR r1,[sp,#0x24] +0014fc 900a STR r0,[sp,#0x28] +0014fe 20b1 MOVS r0,#0xb1 +001500 2168 MOVS r1,#0x68 +001502 2242 MOVS r2,#0x42 +001504 2309 MOVS r3,#9 +001506 9303 STR r3,[sp,#0xc] +001508 9204 STR r2,[sp,#0x10] +00150a e007 B |L3.5404| + |L3.5388| + DCD g_rx_ctrl_handle + |L3.5392| + DCD ret_C7_count + |L3.5396| + DCD |symbol_number.116| + |L3.5400| + DCD |symbol_number.117| + |L3.5404| +00151c 9105 STR r1,[sp,#0x14] +00151e 9006 STR r0,[sp,#0x18] +001520 201f MOVS r0,#0x1f +001522 9000 STR r0,[sp,#0] +001524 9001 STR r0,[sp,#4] +001526 232b MOVS r3,#0x2b +001528 2200 MOVS r2,#0 +00152a 211c MOVS r1,#0x1c +00152c 9002 STR r0,[sp,#8] +00152e 48f8 LDR r0,|L3.6416| +001530 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +001532 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;758 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;759 DSI_VC_0, +;;;760 43, 0x1F, 0x1F, 0x1F, 0x09, 0x42, 0x68, 0xB1, 0x14, 0x15, 0x41, 0x78, 0x14, 0x15, 0x49, 0x7D, 0x15, 0x05, 0x6D, 0x8B, 0x16, 0x35, 0x8D, 0x9A, 0x17, 0x95, 0xC1, 0xB1, 0x1A, 0xA6, 0x4D, 0xE5, 0x1F, 0x97, 0x42, 0x39, 0x29, 0xD9, 0x92, 0xF2, 0x29, 0xD9, 0x92, 0xF2); +;;;761 ret_C7_count = 1; +001536 2001 MOVS r0,#1 +001538 49f6 LDR r1,|L3.6420| +00153a 7008 STRB r0,[r1,#0] +00153c e18b B |L3.6230| + |L3.5438| +;;;762 } +;;;763 else if(ret_C7_count == 1) +00153e 48f5 LDR r0,|L3.6420| +001540 7800 LDRB r0,[r0,#0] ; ret_C7_count +001542 2801 CMP r0,#1 +001544 d161 BNE |L3.5642| +;;;764 { +;;;765 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +001546 2052 MOVS r0,#0x52 +001548 21d7 MOVS r1,#0xd7 +00154a 225a MOVS r2,#0x5a +00154c 232f MOVS r3,#0x2f +00154e 9327 STR r3,[sp,#0x9c] +001550 9228 STR r2,[sp,#0xa0] +001552 9129 STR r1,[sp,#0xa4] +001554 902a STR r0,[sp,#0xa8] +001556 20d1 MOVS r0,#0xd1 +001558 2136 MOVS r1,#0x36 +00155a 2249 MOVS r2,#0x49 +00155c 2328 MOVS r3,#0x28 +00155e 9323 STR r3,[sp,#0x8c] +001560 9224 STR r2,[sp,#0x90] +001562 9125 STR r1,[sp,#0x94] +001564 9026 STR r0,[sp,#0x98] +001566 2074 MOVS r0,#0x74 +001568 2102 MOVS r1,#2 +00156a e001 B |L3.5488| + |L3.5484| +00156c e16b B |L3.6214| + |L3.5486| +00156e e173 B |L3.6232| + |L3.5488| +001570 22f8 MOVS r2,#0xf8 +001572 2322 MOVS r3,#0x22 +001574 931f STR r3,[sp,#0x7c] +001576 9220 STR r2,[sp,#0x80] +001578 9121 STR r1,[sp,#0x84] +00157a 9022 STR r0,[sp,#0x88] +00157c 2001 MOVS r0,#1 +00157e 216e MOVS r1,#0x6e +001580 2246 MOVS r2,#0x46 +001582 231c MOVS r3,#0x1c +001584 931b STR r3,[sp,#0x6c] +001586 921c STR r2,[sp,#0x70] +001588 911d STR r1,[sp,#0x74] +00158a 901e STR r0,[sp,#0x78] +00158c 20ad MOVS r0,#0xad +00158e 2155 MOVS r1,#0x55 +001590 2275 MOVS r2,#0x75 +001592 2317 MOVS r3,#0x17 +001594 9317 STR r3,[sp,#0x5c] +001596 9218 STR r2,[sp,#0x60] +001598 9119 STR r1,[sp,#0x64] +00159a 901a STR r0,[sp,#0x68] +00159c 207b MOVS r0,#0x7b +00159e 21a1 MOVS r1,#0xa1 +0015a0 2284 MOVS r2,#0x84 +0015a2 2314 MOVS r3,#0x14 +0015a4 9313 STR r3,[sp,#0x4c] +0015a6 9214 STR r2,[sp,#0x50] +0015a8 9115 STR r1,[sp,#0x54] +0015aa 9016 STR r0,[sp,#0x58] +0015ac 2047 MOVS r0,#0x47 +0015ae 21f5 MOVS r1,#0xf5 +0015b0 2293 MOVS r2,#0x93 +0015b2 2311 MOVS r3,#0x11 +0015b4 930f STR r3,[sp,#0x3c] +0015b6 9210 STR r2,[sp,#0x40] +0015b8 9111 STR r1,[sp,#0x44] +0015ba 9012 STR r0,[sp,#0x48] +0015bc 20fb MOVS r0,#0xfb +0015be 21f4 MOVS r1,#0xf4 +0015c0 2222 MOVS r2,#0x22 +0015c2 230d MOVS r3,#0xd +0015c4 930b STR r3,[sp,#0x2c] +0015c6 920c STR r2,[sp,#0x30] +0015c8 910d STR r1,[sp,#0x34] +0015ca 900e STR r0,[sp,#0x38] +0015cc 20db MOVS r0,#0xdb +0015ce 2194 MOVS r1,#0x94 +0015d0 2252 MOVS r2,#0x52 +0015d2 230b MOVS r3,#0xb +0015d4 9307 STR r3,[sp,#0x1c] +0015d6 9208 STR r2,[sp,#0x20] +0015d8 9109 STR r1,[sp,#0x24] +0015da 900a STR r0,[sp,#0x28] +0015dc 2070 MOVS r0,#0x70 +0015de 2148 MOVS r1,#0x48 +0015e0 2201 MOVS r2,#1 +0015e2 2305 MOVS r3,#5 +0015e4 9303 STR r3,[sp,#0xc] +0015e6 9204 STR r2,[sp,#0x10] +0015e8 9105 STR r1,[sp,#0x14] +0015ea 9006 STR r0,[sp,#0x18] +0015ec 2013 MOVS r0,#0x13 +0015ee 9000 STR r0,[sp,#0] +0015f0 9001 STR r0,[sp,#4] +0015f2 232b MOVS r3,#0x2b +0015f4 2200 MOVS r2,#0 +0015f6 211c MOVS r1,#0x1c +0015f8 9002 STR r0,[sp,#8] +0015fa 48c5 LDR r0,|L3.6416| +0015fc 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0015fe f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;766 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;767 DSI_VC_0, +;;;768 43, 0x13, 0x13, 0x13, 0x05, 0x01, 0x48, 0x70, 0x0B, 0x52, 0x94, 0xDB, 0x0D, 0x22, 0xF4, 0xFB, 0x11, 0x93, 0xF5, 0x47, 0x14, 0x84, 0xA1, 0x7B, 0x17, 0x75, 0x55, 0xAD, 0x1C, 0x46, 0x6E, 0x01, 0x22, 0xF8, 0x02, 0x74, 0x28, 0x49, 0x36, 0xD1, 0x2F, 0x5A, 0xD7, 0x52); +;;;769 ret_C7_count = 2; +001602 2002 MOVS r0,#2 +001604 49c3 LDR r1,|L3.6420| +001606 7008 STRB r0,[r1,#0] +001608 e125 B |L3.6230| + |L3.5642| +;;;770 } +;;;771 else if(ret_C7_count == 2) +00160a 48c2 LDR r0,|L3.6420| +00160c 7800 LDRB r0,[r0,#0] ; ret_C7_count +00160e 2802 CMP r0,#2 +001610 d15c BNE |L3.5836| +;;;772 { +;;;773 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +001612 21f2 MOVS r1,#0xf2 +001614 2292 MOVS r2,#0x92 +001616 20d9 MOVS r0,#0xd9 +001618 2329 MOVS r3,#0x29 +00161a 9327 STR r3,[sp,#0x9c] +00161c 9229 STR r2,[sp,#0xa4] +00161e 912a STR r1,[sp,#0xa8] +001620 9028 STR r0,[sp,#0xa0] +001622 2196 MOVS r1,#0x96 +001624 206e MOVS r0,#0x6e +001626 22e8 MOVS r2,#0xe8 +001628 2324 MOVS r3,#0x24 +00162a 9323 STR r3,[sp,#0x8c] +00162c 9224 STR r2,[sp,#0x90] +00162e 9126 STR r1,[sp,#0x98] +001630 9025 STR r0,[sp,#0x94] +001632 214b MOVS r1,#0x4b +001634 2076 MOVS r0,#0x76 +001636 22b7 MOVS r2,#0xb7 +001638 2320 MOVS r3,#0x20 +00163a 931f STR r3,[sp,#0x7c] +00163c 9220 STR r2,[sp,#0x80] +00163e 9122 STR r1,[sp,#0x88] +001640 9021 STR r0,[sp,#0x84] +001642 20e6 MOVS r0,#0xe6 +001644 211d MOVS r1,#0x1d +001646 231a MOVS r3,#0x1a +001648 901c STR r0,[sp,#0x70] +00164a 931b STR r3,[sp,#0x6c] +00164c 911d STR r1,[sp,#0x74] +00164e 901e STR r0,[sp,#0x78] +001650 2099 MOVS r0,#0x99 +001652 2115 MOVS r1,#0x15 +001654 2275 MOVS r2,#0x75 +001656 2316 MOVS r3,#0x16 +001658 9317 STR r3,[sp,#0x5c] +00165a 9218 STR r2,[sp,#0x60] +00165c 9119 STR r1,[sp,#0x64] +00165e 901a STR r0,[sp,#0x68] +001660 206a MOVS r0,#0x6a +001662 2171 MOVS r1,#0x71 +001664 22b4 MOVS r2,#0xb4 +001666 2313 MOVS r3,#0x13 +001668 9313 STR r3,[sp,#0x4c] +00166a 9214 STR r2,[sp,#0x50] +00166c 9115 STR r1,[sp,#0x54] +00166e 9016 STR r0,[sp,#0x58] +001670 203c MOVS r0,#0x3c +001672 21d1 MOVS r1,#0xd1 +001674 2203 MOVS r2,#3 +001676 2311 MOVS r3,#0x11 +001678 930f STR r3,[sp,#0x3c] +00167a 9210 STR r2,[sp,#0x40] +00167c 9111 STR r1,[sp,#0x44] +00167e 9012 STR r0,[sp,#0x48] +001680 20f8 MOVS r0,#0xf8 +001682 21f0 MOVS r1,#0xf0 +001684 2222 MOVS r2,#0x22 +001686 230d MOVS r3,#0xd +001688 930b STR r3,[sp,#0x2c] +00168a 920c STR r2,[sp,#0x30] +00168c 910d STR r1,[sp,#0x34] +00168e 900e STR r0,[sp,#0x38] +001690 20d8 MOVS r0,#0xd8 +001692 2198 MOVS r1,#0x98 +001694 2252 MOVS r2,#0x52 +001696 230b MOVS r3,#0xb +001698 9307 STR r3,[sp,#0x1c] +00169a 9208 STR r2,[sp,#0x20] +00169c 9109 STR r1,[sp,#0x24] +00169e 900a STR r0,[sp,#0x28] +0016a0 20a6 MOVS r0,#0xa6 +0016a2 2118 MOVS r1,#0x18 +0016a4 2308 MOVS r3,#8 +0016a6 9303 STR r3,[sp,#0xc] +0016a8 9204 STR r2,[sp,#0x10] +0016aa 9105 STR r1,[sp,#0x14] +0016ac 9006 STR r0,[sp,#0x18] +0016ae 201a MOVS r0,#0x1a +0016b0 9000 STR r0,[sp,#0] +0016b2 9001 STR r0,[sp,#4] +0016b4 232b MOVS r3,#0x2b +0016b6 2200 MOVS r2,#0 +0016b8 211c MOVS r1,#0x1c +0016ba 9002 STR r0,[sp,#8] +0016bc 4894 LDR r0,|L3.6416| +0016be 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0016c0 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;774 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;775 DSI_VC_0, +;;;776 43, 0x1A, 0x1A, 0x1A, 0x08, 0x52, 0x18, 0xA6, 0x0B, 0x52, 0x98, 0xD8, 0x0D, 0x22, 0xF0, 0xF8, 0x11, 0x03, 0xD1, 0x3C, 0x13, 0xB4, 0x71, 0x6A, 0x16, 0x75, 0x15, 0x99, 0x1A, 0xE6, 0x1D, 0xE6, 0x20, 0xB7, 0x76, 0x4B, 0x24, 0xE8, 0x6E, 0x96, 0x29, 0xD9, 0x92, 0xF2); +;;;777 ret_C7_count = 3; +0016c4 2003 MOVS r0,#3 +0016c6 4993 LDR r1,|L3.6420| +0016c8 7008 STRB r0,[r1,#0] +0016ca e0c4 B |L3.6230| + |L3.5836| +;;;778 } +;;;779 else if(ret_C7_count == 3) +0016cc 4891 LDR r0,|L3.6420| +0016ce 7800 LDRB r0,[r0,#0] ; ret_C7_count +0016d0 2803 CMP r0,#3 +0016d2 d15a BNE |L3.6026| +;;;780 { +;;;781 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +0016d4 20f2 MOVS r0,#0xf2 +0016d6 2192 MOVS r1,#0x92 +0016d8 22d9 MOVS r2,#0xd9 +0016da 2329 MOVS r3,#0x29 +0016dc 9327 STR r3,[sp,#0x9c] +0016de 9228 STR r2,[sp,#0xa0] +0016e0 9129 STR r1,[sp,#0xa4] +0016e2 902a STR r0,[sp,#0xa8] +0016e4 9323 STR r3,[sp,#0x8c] +0016e6 9224 STR r2,[sp,#0x90] +0016e8 9125 STR r1,[sp,#0x94] +0016ea 9026 STR r0,[sp,#0x98] +0016ec 204e MOVS r0,#0x4e +0016ee 2186 MOVS r1,#0x86 +0016f0 22d7 MOVS r2,#0xd7 +0016f2 2320 MOVS r3,#0x20 +0016f4 931f STR r3,[sp,#0x7c] +0016f6 9220 STR r2,[sp,#0x80] +0016f8 9121 STR r1,[sp,#0x84] +0016fa 9022 STR r0,[sp,#0x88] +0016fc 20e7 MOVS r0,#0xe7 +0016fe 2121 MOVS r1,#0x21 +001700 22e6 MOVS r2,#0xe6 +001702 231a MOVS r3,#0x1a +001704 931b STR r3,[sp,#0x6c] +001706 921c STR r2,[sp,#0x70] +001708 911d STR r1,[sp,#0x74] +00170a 901e STR r0,[sp,#0x78] +00170c 2099 MOVS r0,#0x99 +00170e 2111 MOVS r1,#0x11 +001710 2265 MOVS r2,#0x65 +001712 2316 MOVS r3,#0x16 +001714 9317 STR r3,[sp,#0x5c] +001716 9218 STR r2,[sp,#0x60] +001718 9119 STR r1,[sp,#0x64] +00171a 901a STR r0,[sp,#0x68] +00171c 2069 MOVS r0,#0x69 +00171e 2171 MOVS r1,#0x71 +001720 22b4 MOVS r2,#0xb4 +001722 2313 MOVS r3,#0x13 +001724 9313 STR r3,[sp,#0x4c] +001726 9214 STR r2,[sp,#0x50] +001728 9115 STR r1,[sp,#0x54] +00172a 9016 STR r0,[sp,#0x58] +00172c 203d MOVS r0,#0x3d +00172e 21d9 MOVS r1,#0xd9 +001730 461a MOV r2,r3 +001732 2311 MOVS r3,#0x11 +001734 930f STR r3,[sp,#0x3c] +001736 9210 STR r2,[sp,#0x40] +001738 9111 STR r1,[sp,#0x44] +00173a 9012 STR r0,[sp,#0x48] +00173c 20f8 MOVS r0,#0xf8 +00173e 21f4 MOVS r1,#0xf4 +001740 2222 MOVS r2,#0x22 +001742 230d MOVS r3,#0xd +001744 930b STR r3,[sp,#0x2c] +001746 920c STR r2,[sp,#0x30] +001748 910d STR r1,[sp,#0x34] +00174a 900e STR r0,[sp,#0x38] +00174c 20db MOVS r0,#0xdb +00174e 21a4 MOVS r1,#0xa4 +001750 2262 MOVS r2,#0x62 +001752 230b MOVS r3,#0xb +001754 9307 STR r3,[sp,#0x1c] +001756 9208 STR r2,[sp,#0x20] +001758 9109 STR r1,[sp,#0x24] +00175a 900a STR r0,[sp,#0x28] +00175c 20ae MOVS r0,#0xae +00175e 2134 MOVS r1,#0x34 +001760 22b2 MOVS r2,#0xb2 +001762 2308 MOVS r3,#8 +001764 9303 STR r3,[sp,#0xc] +001766 9204 STR r2,[sp,#0x10] +001768 9105 STR r1,[sp,#0x14] +00176a 9006 STR r0,[sp,#0x18] +00176c 201a MOVS r0,#0x1a +00176e 9000 STR r0,[sp,#0] +001770 9001 STR r0,[sp,#4] +001772 232b MOVS r3,#0x2b +001774 2200 MOVS r2,#0 +001776 211c MOVS r1,#0x1c +001778 9002 STR r0,[sp,#8] +00177a 4865 LDR r0,|L3.6416| +00177c 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +00177e f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;782 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;783 DSI_VC_0, +;;;784 43, 0x1A, 0x1A, 0x1A, 0x08, 0xB2, 0x34, 0xAE, 0x0B, 0x62, 0xA4, 0xDB, 0x0D, 0x22, 0xF4, 0xF8, 0x11, 0x13, 0xD9, 0x3D, 0x13, 0xB4, 0x71, 0x69, 0x16, 0x65, 0x11, 0x99, 0x1A, 0xE6, 0x21, 0xE7, 0x20, 0xD7, 0x86, 0x4E, 0x29, 0xD9, 0x92, 0xF2, 0x29, 0xD9, 0x92, 0xF2); +;;;785 ret_C7_count = 4; +001782 2004 MOVS r0,#4 +001784 4963 LDR r1,|L3.6420| +001786 7008 STRB r0,[r1,#0] +001788 e065 B |L3.6230| + |L3.6026| +;;;786 } +;;;787 else if(ret_C7_count == 4) +00178a 4862 LDR r0,|L3.6420| +00178c 7800 LDRB r0,[r0,#0] ; ret_C7_count +00178e 2804 CMP r0,#4 +001790 d161 BNE |L3.6230| +;;;788 { +;;;789 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +001792 20f2 MOVS r0,#0xf2 +001794 2192 MOVS r1,#0x92 +001796 22d9 MOVS r2,#0xd9 +001798 2329 MOVS r3,#0x29 +00179a 9327 STR r3,[sp,#0x9c] +00179c 9228 STR r2,[sp,#0xa0] +00179e 9129 STR r1,[sp,#0xa4] +0017a0 902a STR r0,[sp,#0xa8] +0017a2 9323 STR r3,[sp,#0x8c] +0017a4 9224 STR r2,[sp,#0x90] +0017a6 9125 STR r1,[sp,#0x94] +0017a8 9026 STR r0,[sp,#0x98] +0017aa 204c MOVS r0,#0x4c +0017ac 217e MOVS r1,#0x7e +0017ae 22c7 MOVS r2,#0xc7 +0017b0 2320 MOVS r3,#0x20 +0017b2 931f STR r3,[sp,#0x7c] +0017b4 9220 STR r2,[sp,#0x80] +0017b6 9121 STR r1,[sp,#0x84] +0017b8 9022 STR r0,[sp,#0x88] +0017ba 20e5 MOVS r0,#0xe5 +0017bc 2119 MOVS r1,#0x19 +0017be 22c6 MOVS r2,#0xc6 +0017c0 231a MOVS r3,#0x1a +0017c2 931b STR r3,[sp,#0x6c] +0017c4 921c STR r2,[sp,#0x70] +0017c6 911d STR r1,[sp,#0x74] +0017c8 901e STR r0,[sp,#0x78] +0017ca 2098 MOVS r0,#0x98 +0017cc 2265 MOVS r2,#0x65 +0017ce 2316 MOVS r3,#0x16 +0017d0 9317 STR r3,[sp,#0x5c] +0017d2 9218 STR r2,[sp,#0x60] +0017d4 9119 STR r1,[sp,#0x64] +0017d6 901a STR r0,[sp,#0x68] +0017d8 206b MOVS r0,#0x6b +0017da 2179 MOVS r1,#0x79 +0017dc 22a4 MOVS r2,#0xa4 +0017de 2313 MOVS r3,#0x13 +0017e0 9313 STR r3,[sp,#0x4c] +0017e2 9214 STR r2,[sp,#0x50] +0017e4 9115 STR r1,[sp,#0x54] +0017e6 9016 STR r0,[sp,#0x58] +0017e8 203e MOVS r0,#0x3e +0017ea 21e5 MOVS r1,#0xe5 +0017ec 461a MOV r2,r3 +0017ee 2311 MOVS r3,#0x11 +0017f0 930f STR r3,[sp,#0x3c] +0017f2 9210 STR r2,[sp,#0x40] +0017f4 9111 STR r1,[sp,#0x44] +0017f6 9012 STR r0,[sp,#0x48] +0017f8 21fe MOVS r1,#0xfe +0017fa 2214 MOVS r2,#0x14 +0017fc 2343 MOVS r3,#0x43 +0017fe 200d MOVS r0,#0xd +001800 930c STR r3,[sp,#0x30] +001802 920d STR r2,[sp,#0x34] +001804 910e STR r1,[sp,#0x38] +001806 900b STR r0,[sp,#0x2c] +001808 21e8 MOVS r1,#0xe8 +00180a 20d8 MOVS r0,#0xd8 +00180c 22d2 MOVS r2,#0xd2 +00180e 230b MOVS r3,#0xb +001810 9307 STR r3,[sp,#0x1c] +001812 9208 STR r2,[sp,#0x20] +001814 910a STR r1,[sp,#0x28] +001816 9009 STR r0,[sp,#0x24] +001818 20c9 MOVS r0,#0xc9 +00181a 2194 MOVS r1,#0x94 +00181c 22f2 MOVS r2,#0xf2 +00181e 2309 MOVS r3,#9 +001820 9303 STR r3,[sp,#0xc] +001822 9204 STR r2,[sp,#0x10] +001824 9105 STR r1,[sp,#0x14] +001826 9006 STR r0,[sp,#0x18] +001828 201a MOVS r0,#0x1a +00182a 9000 STR r0,[sp,#0] +00182c 9001 STR r0,[sp,#4] +00182e 232b MOVS r3,#0x2b +001830 2200 MOVS r2,#0 +001832 211c MOVS r1,#0x1c +001834 9002 STR r0,[sp,#8] +001836 4836 LDR r0,|L3.6416| +001838 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +00183a f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;790 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;791 DSI_VC_0, +;;;792 43, 0x1A, 0x1A, 0x1A, 0x09, 0xF2, 0x94, 0xC9, 0x0B, 0xD2, 0xD8, 0xE8, 0x0D, 0x43, 0x14, 0xFE, 0x11, 0x13, 0xE5, 0x3E, 0x13, 0xA4, 0x79, 0x6B, 0x16, 0x65, 0x19, 0x98, 0x1A, 0xC6, 0x19, 0xE5, 0x20, 0xC7, 0x7E, 0x4C, 0x29, 0xD9, 0x92, 0xF2, 0x29, 0xD9, 0x92, 0xF2); +;;;793 ret_C7_count = 0; +00183e 2000 MOVS r0,#0 +001840 4934 LDR r1,|L3.6420| +001842 7008 STRB r0,[r1,#0] +001844 e007 B |L3.6230| + |L3.6214| +;;;794 } +;;;795 else +;;;796 { +;;;797 //printf("C7 err return_size[%d] ret_C7_count[%d]\n", return_size, ret_C7_count); +;;;798 } +;;;799 } +;;;800 else +;;;801 { +;;;802 TAU_LOGD("C7 resp error [%d]!\n", return_size); +001846 bf00 NOP +001848 4a33 LDR r2,|L3.6424| +00184a 4934 LDR r1,|L3.6428| +00184c a034 ADR r0,|L3.6432| +00184e 9b2b LDR r3,[sp,#0xac] +001850 f7fffffe BL LOG_printf +001854 bf00 NOP + |L3.6230| +;;;803 } +;;;804 } +001856 e207 B |L3.7272| + |L3.6232| +;;;805 else if(dcs_cmd == 0xC6) +001858 982d LDR r0,[sp,#0xb4] +00185a 28c6 CMP r0,#0xc6 +00185c d174 BNE |L3.6472| +;;;806 { +;;;807 uint32_t return_size = hal_dsi_rx_ctrl_get_max_ret_size(g_rx_ctrl_handle); +00185e 482c LDR r0,|L3.6416| +001860 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +001862 f7fffffe BL hal_dsi_rx_ctrl_get_max_ret_size +001866 902b STR r0,[sp,#0xac] +;;;808 if(return_size == 1) +001868 982b LDR r0,[sp,#0xac] +00186a 2801 CMP r0,#1 +00186c d109 BNE |L3.6274| +;;;809 { +;;;810 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +00186e 2053 MOVS r0,#0x53 +001870 2301 MOVS r3,#1 +001872 2200 MOVS r2,#0 +001874 2121 MOVS r1,#0x21 +001876 9000 STR r0,[sp,#0] +001878 4825 LDR r0,|L3.6416| +00187a 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +00187c f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +001880 e3e4 B |L3.8268| + |L3.6274| +;;;811 DSI_ACK_DT_DSC_SHORT_RESPONSE_1B, +;;;812 DSI_VC_0, +;;;813 1, 0x53); +;;;814 } +;;;815 else if(return_size == 10) +001882 982b LDR r0,[sp,#0xac] +001884 280a CMP r0,#0xa +001886 d17d BNE |L3.6532| +;;;816 { +;;;817 static uint8_t ret_C6_count = 0; +;;;818 if(ret_C6_count == 0) +001888 482e LDR r0,|L3.6468| +00188a 7800 LDRB r0,[r0,#0] ; ret_C6_count +00188c 2800 CMP r0,#0 +00188e d11c BNE |L3.6346| +;;;819 { +;;;820 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +001890 201c MOVS r0,#0x1c +001892 2193 MOVS r1,#0x93 +001894 220c MOVS r2,#0xc +001896 23e1 MOVS r3,#0xe1 +001898 9306 STR r3,[sp,#0x18] +00189a 9207 STR r2,[sp,#0x1c] +00189c 9108 STR r1,[sp,#0x20] +00189e 9009 STR r0,[sp,#0x24] +0018a0 20e4 MOVS r0,#0xe4 +0018a2 2132 MOVS r1,#0x32 +0018a4 220b MOVS r2,#0xb +0018a6 231a MOVS r3,#0x1a +0018a8 9302 STR r3,[sp,#8] +0018aa 9300 STR r3,[sp,#0] +0018ac 9301 STR r3,[sp,#4] +0018ae 9203 STR r2,[sp,#0xc] +0018b0 9104 STR r1,[sp,#0x10] +0018b2 9005 STR r0,[sp,#0x14] +0018b4 230a MOVS r3,#0xa +0018b6 2200 MOVS r2,#0 +0018b8 211c MOVS r1,#0x1c +0018ba 4815 LDR r0,|L3.6416| +0018bc 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0018be f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;821 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;822 DSI_VC_0, +;;;823 10, 0x1A, 0x1A, 0x1A, 0x0B, 0x32, 0xE4, 0xE1, 0x0C, 0x93, 0x1C); +;;;824 ret_C6_count = 1; +0018c2 2001 MOVS r0,#1 +0018c4 491f LDR r1,|L3.6468| +0018c6 7008 STRB r0,[r1,#0] +0018c8 e3c0 B |L3.8268| + |L3.6346| +;;;825 } +;;;826 else if(ret_C6_count == 1) +0018ca 481e LDR r0,|L3.6468| +0018cc 7800 LDRB r0,[r0,#0] ; ret_C6_count +0018ce 2801 CMP r0,#1 +0018d0 d13b BNE |L3.6474| +;;;827 { +;;;828 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +0018d2 2013 MOVS r0,#0x13 +0018d4 2140 MOVS r1,#0x40 +0018d6 22f9 MOVS r2,#0xf9 +0018d8 2303 MOVS r3,#3 +0018da 9306 STR r3,[sp,#0x18] +0018dc 9207 STR r2,[sp,#0x1c] +0018de 9108 STR r1,[sp,#0x20] +0018e0 9009 STR r0,[sp,#0x24] +0018e2 2011 MOVS r0,#0x11 +0018e4 2108 MOVS r1,#8 +0018e6 224d MOVS r2,#0x4d +0018e8 2393 MOVS r3,#0x93 +0018ea 9302 STR r3,[sp,#8] +0018ec 9203 STR r2,[sp,#0xc] +0018ee 9104 STR r1,[sp,#0x10] +0018f0 9005 STR r0,[sp,#0x14] +0018f2 200d MOVS r0,#0xd +0018f4 21f6 MOVS r1,#0xf6 +0018f6 230a MOVS r3,#0xa +0018f8 2200 MOVS r2,#0 +0018fa 9100 STR r1,[sp,#0] +0018fc 9001 STR r0,[sp,#4] +0018fe 211c MOVS r1,#0x1c +001900 4803 LDR r0,|L3.6416| +001902 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +001904 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;829 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;830 DSI_VC_0, +;;;831 10, 0xF6, 0x0D, 0x93, 0x4D, 0x08, 0x11, 0x03, 0xF9, 0x40, 0x13); +;;;832 ret_C6_count = 2; +001908 2002 MOVS r0,#2 +00190a 490e LDR r1,|L3.6468| +00190c 7008 STRB r0,[r1,#0] +00190e e39d B |L3.8268| + |L3.6416| + DCD g_rx_ctrl_handle + |L3.6420| + DCD |symbol_number.117| + |L3.6424| + DCD 0x00000322 + |L3.6428| + DCD ||i.ap_dcs_read||+0xc9c + |L3.6432| +001920 5b25735d DCB "[%s] (%04d) C7 resp error [%d]!\n",0 +001924 20282530 +001928 34642920 +00192c 43372072 +001930 65737020 +001934 6572726f +001938 72205b25 +00193c 645d210a +001940 00 +001941 00 DCB 0 +001942 00 DCB 0 +001943 00 DCB 0 + |L3.6468| + DCD ret_C6_count + |L3.6472| +001948 e381 B |L3.8270| + |L3.6474| +;;;833 } +;;;834 else if(ret_C6_count == 2) +00194a 48fe LDR r0,|L3.7492| +00194c 7800 LDRB r0,[r0,#0] ; ret_C6_count +00194e 2802 CMP r0,#2 +001950 d11f BNE |L3.6546| +;;;835 { +;;;836 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +001952 2019 MOVS r0,#0x19 +001954 21b6 MOVS r1,#0xb6 +001956 221a MOVS r2,#0x1a +001958 2398 MOVS r3,#0x98 +00195a 9306 STR r3,[sp,#0x18] +00195c 9207 STR r2,[sp,#0x1c] +00195e 9108 STR r1,[sp,#0x20] +001960 9009 STR r0,[sp,#0x24] +001962 2155 MOVS r1,#0x55 +001964 2216 MOVS r2,#0x16 +001966 236b MOVS r3,#0x6b +001968 9302 STR r3,[sp,#8] +00196a 9203 STR r2,[sp,#0xc] +00196c 9104 STR r1,[sp,#0x10] +00196e 9005 STR r0,[sp,#0x14] +001970 2085 MOVS r0,#0x85 +001972 21a4 MOVS r1,#0xa4 +001974 230a MOVS r3,#0xa +001976 2200 MOVS r2,#0 +001978 9100 STR r1,[sp,#0] +00197a 9001 STR r0,[sp,#4] +00197c 211c MOVS r1,#0x1c +00197e 48f2 LDR r0,|L3.7496| +001980 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +001982 e000 B |L3.6534| + |L3.6532| +001984 e1c3 B |L3.7438| + |L3.6534| +001986 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;837 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;838 DSI_VC_0, +;;;839 10, 0xA4, 0x85, 0x6B, 0x16, 0x55, 0x19, 0x98, 0x1A, 0xB6, 0x19); +;;;840 ret_C6_count = 3; +00198a 2003 MOVS r0,#3 +00198c 49ed LDR r1,|L3.7492| +00198e 7008 STRB r0,[r1,#0] +001990 e35c B |L3.8268| + |L3.6546| +;;;841 } +;;;842 else if(ret_C6_count == 3) +001992 48ec LDR r0,|L3.7492| +001994 7800 LDRB r0,[r0,#0] ; ret_C6_count +001996 2803 CMP r0,#3 +001998 d11d BNE |L3.6614| +;;;843 { +;;;844 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +00199a 2029 MOVS r0,#0x29 +00199c 21f2 MOVS r1,#0xf2 +00199e 2292 MOVS r2,#0x92 +0019a0 23d9 MOVS r3,#0xd9 +0019a2 9306 STR r3,[sp,#0x18] +0019a4 9207 STR r2,[sp,#0x1c] +0019a6 9108 STR r1,[sp,#0x20] +0019a8 9009 STR r0,[sp,#0x24] +0019aa 214a MOVS r1,#0x4a +0019ac 2272 MOVS r2,#0x72 +0019ae 23a7 MOVS r3,#0xa7 +0019b0 9302 STR r3,[sp,#8] +0019b2 9203 STR r2,[sp,#0xc] +0019b4 9104 STR r1,[sp,#0x10] +0019b6 9005 STR r0,[sp,#0x14] +0019b8 2020 MOVS r0,#0x20 +0019ba 21e4 MOVS r1,#0xe4 +0019bc 230a MOVS r3,#0xa +0019be 2200 MOVS r2,#0 +0019c0 9100 STR r1,[sp,#0] +0019c2 9001 STR r0,[sp,#4] +0019c4 211c MOVS r1,#0x1c +0019c6 48e0 LDR r0,|L3.7496| +0019c8 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0019ca f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;845 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;846 DSI_VC_0, +;;;847 10, 0xE4, 0x20, 0xA7, 0x72, 0x4A, 0x29, 0xD9, 0x92, 0xF2, 0x29); +;;;848 ret_C6_count = 4; +0019ce 2004 MOVS r0,#4 +0019d0 49dc LDR r1,|L3.7492| +0019d2 7008 STRB r0,[r1,#0] +0019d4 e33a B |L3.8268| + |L3.6614| +;;;849 } +;;;850 else if(ret_C6_count == 4) +0019d6 48db LDR r0,|L3.7492| +0019d8 7800 LDRB r0,[r0,#0] ; ret_C6_count +0019da 2804 CMP r0,#4 +0019dc d11b BNE |L3.6678| +;;;851 { +;;;852 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +0019de 2071 MOVS r0,#0x71 +0019e0 21a3 MOVS r1,#0xa3 +0019e2 220d MOVS r2,#0xd +0019e4 23fb MOVS r3,#0xfb +0019e6 9306 STR r3,[sp,#0x18] +0019e8 9207 STR r2,[sp,#0x1c] +0019ea 9108 STR r1,[sp,#0x20] +0019ec 9009 STR r0,[sp,#0x24] +0019ee 2038 MOVS r0,#0x38 +0019f0 220c MOVS r2,#0xc +0019f2 231a MOVS r3,#0x1a +0019f4 9302 STR r3,[sp,#8] +0019f6 9300 STR r3,[sp,#0] +0019f8 9301 STR r3,[sp,#4] +0019fa 9203 STR r2,[sp,#0xc] +0019fc 9104 STR r1,[sp,#0x10] +0019fe 9005 STR r0,[sp,#0x14] +001a00 230a MOVS r3,#0xa +001a02 2200 MOVS r2,#0 +001a04 211c MOVS r1,#0x1c +001a06 48d0 LDR r0,|L3.7496| +001a08 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +001a0a f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;853 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;854 DSI_VC_0, +;;;855 10, 0x1A, 0x1A, 0x1A, 0x0C, 0xA3, 0x38, 0xFB, 0x0D, 0xA3, 0x71); +;;;856 ret_C6_count = 5; +001a0e 2005 MOVS r0,#5 +001a10 49cc LDR r1,|L3.7492| +001a12 7008 STRB r0,[r1,#0] +001a14 e31a B |L3.8268| + |L3.6678| +;;;857 } +;;;858 else if(ret_C6_count == 5) +001a16 48cb LDR r0,|L3.7492| +001a18 7800 LDRB r0,[r0,#0] ; ret_C6_count +001a1a 2805 CMP r0,#5 +001a1c d11e BNE |L3.6748| +;;;859 { +;;;860 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +001a1e 2013 MOVS r0,#0x13 +001a20 2146 MOVS r1,#0x46 +001a22 2219 MOVS r2,#0x19 +001a24 2354 MOVS r3,#0x54 +001a26 9306 STR r3,[sp,#0x18] +001a28 9207 STR r2,[sp,#0x1c] +001a2a 9108 STR r1,[sp,#0x20] +001a2c 9009 STR r0,[sp,#0x24] +001a2e 2011 MOVS r0,#0x11 +001a30 211a MOVS r1,#0x1a +001a32 2291 MOVS r2,#0x91 +001a34 2353 MOVS r3,#0x53 +001a36 9302 STR r3,[sp,#8] +001a38 9203 STR r2,[sp,#0xc] +001a3a 9104 STR r1,[sp,#0x10] +001a3c 9005 STR r0,[sp,#0x14] +001a3e 200e MOVS r0,#0xe +001a40 210d MOVS r1,#0xd +001a42 230a MOVS r3,#0xa +001a44 2200 MOVS r2,#0 +001a46 9100 STR r1,[sp,#0] +001a48 9001 STR r0,[sp,#4] +001a4a 211c MOVS r1,#0x1c +001a4c 48be LDR r0,|L3.7496| +001a4e 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +001a50 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;861 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;862 DSI_VC_0, +;;;863 10, 0x0D, 0x0E, 0x53, 0x91, 0x1A, 0x11, 0x54, 0x19, 0x46, 0x13); +;;;864 ret_C6_count = 6; +001a54 2006 MOVS r0,#6 +001a56 49bb LDR r1,|L3.7492| +001a58 7008 STRB r0,[r1,#0] +001a5a e2f7 B |L3.8268| + |L3.6748| +;;;865 } +;;;866 else if(ret_C6_count == 6) +001a5c 48b9 LDR r0,|L3.7492| +001a5e 7800 LDRB r0,[r0,#0] ; ret_C6_count +001a60 2806 CMP r0,#6 +001a62 d11e BNE |L3.6818| +;;;867 { +;;;868 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +001a64 2019 MOVS r0,#0x19 +001a66 21b6 MOVS r1,#0xb6 +001a68 221a MOVS r2,#0x1a +001a6a 239a MOVS r3,#0x9a +001a6c 9306 STR r3,[sp,#0x18] +001a6e 9207 STR r2,[sp,#0x1c] +001a70 9108 STR r1,[sp,#0x20] +001a72 9009 STR r0,[sp,#0x24] +001a74 2025 MOVS r0,#0x25 +001a76 2155 MOVS r1,#0x55 +001a78 2216 MOVS r2,#0x16 +001a7a 236f MOVS r3,#0x6f +001a7c 9302 STR r3,[sp,#8] +001a7e 9203 STR r2,[sp,#0xc] +001a80 9104 STR r1,[sp,#0x10] +001a82 9005 STR r0,[sp,#0x14] +001a84 2099 MOVS r0,#0x99 +001a86 21c4 MOVS r1,#0xc4 +001a88 230a MOVS r3,#0xa +001a8a 2200 MOVS r2,#0 +001a8c 9100 STR r1,[sp,#0] +001a8e 9001 STR r0,[sp,#4] +001a90 211c MOVS r1,#0x1c +001a92 48ad LDR r0,|L3.7496| +001a94 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +001a96 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;869 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;870 DSI_VC_0, +;;;871 10, 0xC4, 0x99, 0x6F, 0x16, 0x55, 0x25, 0x9A, 0x1A, 0xB6, 0x19); +;;;872 ret_C6_count = 7; +001a9a 2007 MOVS r0,#7 +001a9c 49a9 LDR r1,|L3.7492| +001a9e 7008 STRB r0,[r1,#0] +001aa0 e2d4 B |L3.8268| + |L3.6818| +;;;873 } +;;;874 else if(ret_C6_count == 7) +001aa2 48a8 LDR r0,|L3.7492| +001aa4 7800 LDRB r0,[r0,#0] ; ret_C6_count +001aa6 2807 CMP r0,#7 +001aa8 d11d BNE |L3.6886| +;;;875 { +;;;876 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +001aaa 2029 MOVS r0,#0x29 +001aac 21f2 MOVS r1,#0xf2 +001aae 2292 MOVS r2,#0x92 +001ab0 23d9 MOVS r3,#0xd9 +001ab2 9306 STR r3,[sp,#0x18] +001ab4 9207 STR r2,[sp,#0x1c] +001ab6 9108 STR r1,[sp,#0x20] +001ab8 9009 STR r0,[sp,#0x24] +001aba 2149 MOVS r1,#0x49 +001abc 2272 MOVS r2,#0x72 +001abe 2387 MOVS r3,#0x87 +001ac0 9302 STR r3,[sp,#8] +001ac2 9203 STR r2,[sp,#0xc] +001ac4 9104 STR r1,[sp,#0x10] +001ac6 9005 STR r0,[sp,#0x14] +001ac8 2020 MOVS r0,#0x20 +001aca 21e4 MOVS r1,#0xe4 +001acc 230a MOVS r3,#0xa +001ace 2200 MOVS r2,#0 +001ad0 9100 STR r1,[sp,#0] +001ad2 9001 STR r0,[sp,#4] +001ad4 211c MOVS r1,#0x1c +001ad6 489c LDR r0,|L3.7496| +001ad8 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +001ada f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;877 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;878 DSI_VC_0, +;;;879 10, 0xE4, 0x20, 0x87, 0x72, 0x49, 0x29, 0xD9, 0x92, 0xF2, 0x29); +;;;880 ret_C6_count = 8; +001ade 2008 MOVS r0,#8 +001ae0 4998 LDR r1,|L3.7492| +001ae2 7008 STRB r0,[r1,#0] +001ae4 e2b2 B |L3.8268| + |L3.6886| +;;;881 } +;;;882 else if(ret_C6_count == 8) +001ae6 4897 LDR r0,|L3.7492| +001ae8 7800 LDRB r0,[r0,#0] ; ret_C6_count +001aea 2808 CMP r0,#8 +001aec d11c BNE |L3.6952| +;;;883 { +;;;884 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +001aee 20cd MOVS r0,#0xcd +001af0 21a3 MOVS r1,#0xa3 +001af2 220e MOVS r2,#0xe +001af4 2302 MOVS r3,#2 +001af6 9306 STR r3,[sp,#0x18] +001af8 9207 STR r2,[sp,#0x1c] +001afa 9108 STR r1,[sp,#0x20] +001afc 9009 STR r0,[sp,#0x24] +001afe 21a9 MOVS r1,#0xa9 +001b00 2233 MOVS r2,#0x33 +001b02 200e MOVS r0,#0xe +001b04 231a MOVS r3,#0x1a +001b06 9302 STR r3,[sp,#8] +001b08 9300 STR r3,[sp,#0] +001b0a 9301 STR r3,[sp,#4] +001b0c 9204 STR r2,[sp,#0x10] +001b0e 9105 STR r1,[sp,#0x14] +001b10 9003 STR r0,[sp,#0xc] +001b12 230a MOVS r3,#0xa +001b14 2200 MOVS r2,#0 +001b16 211c MOVS r1,#0x1c +001b18 488b LDR r0,|L3.7496| +001b1a 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +001b1c f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;885 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;886 DSI_VC_0, +;;;887 10, 0x1A, 0x1A, 0x1A, 0x0E, 0x33, 0xA9, 0x02, 0x0E, 0xA3, 0xCD); +;;;888 ret_C6_count = 9; +001b20 2009 MOVS r0,#9 +001b22 4988 LDR r1,|L3.7492| +001b24 7008 STRB r0,[r1,#0] +001b26 e291 B |L3.8268| + |L3.6952| +;;;889 } +;;;890 else if(ret_C6_count == 9) +001b28 4886 LDR r0,|L3.7492| +001b2a 7800 LDRB r0,[r0,#0] ; ret_C6_count +001b2c 2809 CMP r0,#9 +001b2e d11e BNE |L3.7022| +;;;891 { +;;;892 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +001b30 2013 MOVS r0,#0x13 +001b32 2154 MOVS r1,#0x54 +001b34 224d MOVS r2,#0x4d +001b36 23c4 MOVS r3,#0xc4 +001b38 9306 STR r3,[sp,#0x18] +001b3a 9207 STR r2,[sp,#0x1c] +001b3c 9108 STR r1,[sp,#0x20] +001b3e 9009 STR r0,[sp,#0x24] +001b40 2011 MOVS r0,#0x11 +001b42 212d MOVS r1,#0x2d +001b44 22e1 MOVS r2,#0xe1 +001b46 2333 MOVS r3,#0x33 +001b48 9302 STR r3,[sp,#8] +001b4a 9203 STR r2,[sp,#0xc] +001b4c 9104 STR r1,[sp,#0x10] +001b4e 9005 STR r0,[sp,#0x14] +001b50 200f MOVS r0,#0xf +001b52 2125 MOVS r1,#0x25 +001b54 230a MOVS r3,#0xa +001b56 2200 MOVS r2,#0 +001b58 9100 STR r1,[sp,#0] +001b5a 9001 STR r0,[sp,#4] +001b5c 211c MOVS r1,#0x1c +001b5e 487a LDR r0,|L3.7496| +001b60 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +001b62 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;893 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;894 DSI_VC_0, +;;;895 10, 0x25, 0x0F, 0x33, 0xE1, 0x2D, 0x11, 0xC4, 0x4D, 0x54, 0x13); +;;;896 ret_C6_count = 10; +001b66 200a MOVS r0,#0xa +001b68 4976 LDR r1,|L3.7492| +001b6a 7008 STRB r0,[r1,#0] +001b6c e26e B |L3.8268| + |L3.7022| +;;;897 } +;;;898 else if(ret_C6_count == 10) +001b6e 4875 LDR r0,|L3.7492| +001b70 7800 LDRB r0,[r0,#0] ; ret_C6_count +001b72 280a CMP r0,#0xa +001b74 d11e BNE |L3.7092| +;;;899 { +;;;900 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +001b76 201d MOVS r0,#0x1d +001b78 2196 MOVS r1,#0x96 +001b7a 221a MOVS r2,#0x1a +001b7c 239d MOVS r3,#0x9d +001b7e 9306 STR r3,[sp,#0x18] +001b80 9207 STR r2,[sp,#0x1c] +001b82 9108 STR r1,[sp,#0x20] +001b84 9009 STR r0,[sp,#0x24] +001b86 2039 MOVS r0,#0x39 +001b88 2155 MOVS r1,#0x55 +001b8a 2216 MOVS r2,#0x16 +001b8c 2376 MOVS r3,#0x76 +001b8e 9302 STR r3,[sp,#8] +001b90 9203 STR r2,[sp,#0xc] +001b92 9104 STR r1,[sp,#0x10] +001b94 9005 STR r0,[sp,#0x14] +001b96 20b9 MOVS r0,#0xb9 +001b98 21e4 MOVS r1,#0xe4 +001b9a 230a MOVS r3,#0xa +001b9c 2200 MOVS r2,#0 +001b9e 9100 STR r1,[sp,#0] +001ba0 9001 STR r0,[sp,#4] +001ba2 211c MOVS r1,#0x1c +001ba4 4868 LDR r0,|L3.7496| +001ba6 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +001ba8 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;901 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;902 DSI_VC_0, +;;;903 10, 0xE4, 0xB9, 0x76, 0x16, 0x55, 0x39, 0x9D, 0x1A, 0x96, 0x1D); +;;;904 ret_C6_count = 11; +001bac 200b MOVS r0,#0xb +001bae 4965 LDR r1,|L3.7492| +001bb0 7008 STRB r0,[r1,#0] +001bb2 e24b B |L3.8268| + |L3.7092| +;;;905 } +;;;906 else if(ret_C6_count == 11) +001bb4 4863 LDR r0,|L3.7492| +001bb6 7800 LDRB r0,[r0,#0] ; ret_C6_count +001bb8 280b CMP r0,#0xb +001bba d11d BNE |L3.7160| +;;;907 { +;;;908 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +001bbc 2029 MOVS r0,#0x29 +001bbe 21f2 MOVS r1,#0xf2 +001bc0 2292 MOVS r2,#0x92 +001bc2 23d9 MOVS r3,#0xd9 +001bc4 9306 STR r3,[sp,#0x18] +001bc6 9207 STR r2,[sp,#0x1c] +001bc8 9108 STR r1,[sp,#0x20] +001bca 9009 STR r0,[sp,#0x24] +001bcc 2147 MOVS r1,#0x47 +001bce 2266 MOVS r2,#0x66 +001bd0 2377 MOVS r3,#0x77 +001bd2 9302 STR r3,[sp,#8] +001bd4 9203 STR r2,[sp,#0xc] +001bd6 9104 STR r1,[sp,#0x10] +001bd8 9005 STR r0,[sp,#0x14] +001bda 2020 MOVS r0,#0x20 +001bdc 21e4 MOVS r1,#0xe4 +001bde 230a MOVS r3,#0xa +001be0 2200 MOVS r2,#0 +001be2 9100 STR r1,[sp,#0] +001be4 9001 STR r0,[sp,#4] +001be6 211c MOVS r1,#0x1c +001be8 4857 LDR r0,|L3.7496| +001bea 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +001bec f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;909 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;910 DSI_VC_0, +;;;911 10, 0xE4, 0x20, 0x77, 0x66, 0x47, 0x29, 0xD9, 0x92, 0xF2, 0x29); +;;;912 ret_C6_count = 12; +001bf0 200c MOVS r0,#0xc +001bf2 4954 LDR r1,|L3.7492| +001bf4 7008 STRB r0,[r1,#0] + |L3.7158| +001bf6 e229 B |L3.8268| + |L3.7160| +;;;913 } +;;;914 else if(ret_C6_count == 12) +001bf8 4852 LDR r0,|L3.7492| +001bfa 7800 LDRB r0,[r0,#0] ; ret_C6_count +001bfc 280c CMP r0,#0xc +001bfe d11c BNE |L3.7226| +;;;915 { +;;;916 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +001c00 2049 MOVS r0,#0x49 +001c02 2134 MOVS r1,#0x34 +001c04 2210 MOVS r2,#0x10 +001c06 23af MOVS r3,#0xaf +001c08 9306 STR r3,[sp,#0x18] +001c0a 9207 STR r2,[sp,#0x1c] +001c0c 9108 STR r1,[sp,#0x20] +001c0e 9009 STR r0,[sp,#0x24] +001c10 2048 MOVS r0,#0x48 +001c12 2112 MOVS r1,#0x12 +001c14 2209 MOVS r2,#9 +001c16 231a MOVS r3,#0x1a +001c18 9302 STR r3,[sp,#8] +001c1a 9300 STR r3,[sp,#0] +001c1c 9301 STR r3,[sp,#4] +001c1e 9203 STR r2,[sp,#0xc] +001c20 9104 STR r1,[sp,#0x10] +001c22 9005 STR r0,[sp,#0x14] +001c24 230a MOVS r3,#0xa +001c26 2200 MOVS r2,#0 +001c28 211c MOVS r1,#0x1c +001c2a 4847 LDR r0,|L3.7496| +001c2c 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +001c2e f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;917 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;918 DSI_VC_0, +;;;919 10, 0x1A, 0x1A, 0x1A, 0x09, 0x12, 0x48, 0xAF, 0x10, 0x34, 0x49); +;;;920 ret_C6_count = 13; +001c32 200d MOVS r0,#0xd +001c34 4943 LDR r1,|L3.7492| +001c36 7008 STRB r0,[r1,#0] +001c38 e208 B |L3.8268| + |L3.7226| +;;;921 } +;;;922 else if(ret_C6_count == 13) +001c3a 4842 LDR r0,|L3.7492| +001c3c 7800 LDRB r0,[r0,#0] ; ret_C6_count +001c3e 280d CMP r0,#0xd +001c40 d120 BNE |L3.7300| +;;;923 { +;;;924 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +001c42 2013 MOVS r0,#0x13 +001c44 2165 MOVS r1,#0x65 +001c46 2299 MOVS r2,#0x99 +001c48 2354 MOVS r3,#0x54 +001c4a 9306 STR r3,[sp,#0x18] +001c4c 9207 STR r2,[sp,#0x1c] +001c4e 9108 STR r1,[sp,#0x20] +001c50 9009 STR r0,[sp,#0x24] +001c52 2012 MOVS r0,#0x12 +001c54 2148 MOVS r1,#0x48 +001c56 224d MOVS r2,#0x4d +001c58 2394 MOVS r3,#0x94 +001c5a 9302 STR r3,[sp,#8] +001c5c 9203 STR r2,[sp,#0xc] +001c5e 9104 STR r1,[sp,#0x10] +001c60 9005 STR r0,[sp,#0x14] +001c62 2010 MOVS r0,#0x10 +001c64 2140 MOVS r1,#0x40 +001c66 e000 B |L3.7274| + |L3.7272| +001c68 e2f0 B |L3.8780| + |L3.7274| +001c6a 230a MOVS r3,#0xa +001c6c 2200 MOVS r2,#0 +001c6e 9100 STR r1,[sp,#0] +001c70 9001 STR r0,[sp,#4] +001c72 211c MOVS r1,#0x1c +001c74 4834 LDR r0,|L3.7496| +001c76 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +001c78 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;925 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;926 DSI_VC_0, +;;;927 10, 0x40, 0x10, 0x94, 0x4D, 0x48, 0x12, 0x54, 0x99, 0x65, 0x13); +;;;928 ret_C6_count = 14; +001c7c 200e MOVS r0,#0xe +001c7e 4931 LDR r1,|L3.7492| +001c80 7008 STRB r0,[r1,#0] +001c82 e1e3 B |L3.8268| + |L3.7300| +;;;929 } +;;;930 else if(ret_C6_count == 14) +001c84 482f LDR r0,|L3.7492| +001c86 7800 LDRB r0,[r0,#0] ; ret_C6_count +001c88 280e CMP r0,#0xe +001c8a d11e BNE |L3.7370| +;;;931 { +;;;932 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +001c8c 200d MOVS r0,#0xd +001c8e 2106 MOVS r1,#6 +001c90 221a MOVS r2,#0x1a +001c92 239e MOVS r3,#0x9e +001c94 9306 STR r3,[sp,#0x18] +001c96 9207 STR r2,[sp,#0x1c] +001c98 9108 STR r1,[sp,#0x20] +001c9a 9009 STR r0,[sp,#0x24] +001c9c 2045 MOVS r0,#0x45 +001c9e 2105 MOVS r1,#5 +001ca0 2216 MOVS r2,#0x16 +001ca2 237d MOVS r3,#0x7d +001ca4 9302 STR r3,[sp,#8] +001ca6 9203 STR r2,[sp,#0xc] +001ca8 9104 STR r1,[sp,#0x10] +001caa 9005 STR r0,[sp,#0x14] +001cac 20e5 MOVS r0,#0xe5 +001cae 21f4 MOVS r1,#0xf4 +001cb0 230a MOVS r3,#0xa +001cb2 2200 MOVS r2,#0 +001cb4 9100 STR r1,[sp,#0] +001cb6 9001 STR r0,[sp,#4] +001cb8 211c MOVS r1,#0x1c +001cba 4823 LDR r0,|L3.7496| +001cbc 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +001cbe f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;933 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;934 DSI_VC_0, +;;;935 10, 0xF4, 0xE5, 0x7D, 0x16, 0x05, 0x45, 0x9E, 0x1A, 0x06, 0x0D); +;;;936 ret_C6_count = 15; +001cc2 200f MOVS r0,#0xf +001cc4 491f LDR r1,|L3.7492| +001cc6 7008 STRB r0,[r1,#0] +001cc8 e1c0 B |L3.8268| + |L3.7370| +;;;937 } +;;;938 else if(ret_C6_count == 15) +001cca 481e LDR r0,|L3.7492| +001ccc 7800 LDRB r0,[r0,#0] ; ret_C6_count +001cce 280f CMP r0,#0xf +001cd0 d191 BNE |L3.7158| +;;;939 { +;;;940 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +001cd2 2029 MOVS r0,#0x29 +001cd4 21f2 MOVS r1,#0xf2 +001cd6 2292 MOVS r2,#0x92 +001cd8 23d9 MOVS r3,#0xd9 +001cda 9306 STR r3,[sp,#0x18] +001cdc 9207 STR r2,[sp,#0x1c] +001cde 9108 STR r1,[sp,#0x20] +001ce0 9009 STR r0,[sp,#0x24] +001ce2 2138 MOVS r1,#0x38 +001ce4 2236 MOVS r2,#0x36 +001ce6 2387 MOVS r3,#0x87 +001ce8 9302 STR r3,[sp,#8] +001cea 9203 STR r2,[sp,#0xc] +001cec 9104 STR r1,[sp,#0x10] +001cee 9005 STR r0,[sp,#0x14] +001cf0 201f MOVS r0,#0x1f +001cf2 21de MOVS r1,#0xde +001cf4 230a MOVS r3,#0xa +001cf6 2200 MOVS r2,#0 +001cf8 9100 STR r1,[sp,#0] +001cfa 9001 STR r0,[sp,#4] +001cfc 211c MOVS r1,#0x1c +001cfe 4812 LDR r0,|L3.7496| +001d00 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +001d02 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;941 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;942 DSI_VC_0, +;;;943 10, 0xDE, 0x1F, 0x87, 0x36, 0x38, 0x29, 0xD9, 0x92, 0xF2, 0x29); +;;;944 ret_C6_count = 0; +001d06 2000 MOVS r0,#0 +001d08 490e LDR r1,|L3.7492| +001d0a 7008 STRB r0,[r1,#0] +001d0c e19e B |L3.8268| + |L3.7438| +;;;945 } +;;;946 else +;;;947 { +;;;948 //printf("C6 err return_size[%d] ret_C6_count[%d]\n", return_size, ret_C6_count); +;;;949 } +;;;950 } +;;;951 else if(return_size == 43) +001d0e 982b LDR r0,[sp,#0xac] +001d10 282b CMP r0,#0x2b +001d12 d17d BNE |L3.7696| +;;;952 { +;;;953 static uint8_t ret_C6_count = 0; +;;;954 if(ret_C6_count == 0) +001d14 480d LDR r0,|L3.7500| +001d16 7800 LDRB r0,[r0,#0] ; ret_C6_count +001d18 2800 CMP r0,#0 +001d1a d15f BNE |L3.7644| +;;;955 { +;;;956 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +001d1c 20f2 MOVS r0,#0xf2 +001d1e 2192 MOVS r1,#0x92 +001d20 22d9 MOVS r2,#0xd9 +001d22 2329 MOVS r3,#0x29 +001d24 9327 STR r3,[sp,#0x9c] +001d26 9228 STR r2,[sp,#0xa0] +001d28 9129 STR r1,[sp,#0xa4] +001d2a 902a STR r0,[sp,#0xa8] +001d2c 9323 STR r3,[sp,#0x8c] +001d2e 9224 STR r2,[sp,#0x90] +001d30 9125 STR r1,[sp,#0x94] +001d32 9026 STR r0,[sp,#0x98] +001d34 204a MOVS r0,#0x4a +001d36 2172 MOVS r1,#0x72 +001d38 22a7 MOVS r2,#0xa7 +001d3a 2320 MOVS r3,#0x20 +001d3c 931f STR r3,[sp,#0x7c] +001d3e 9220 STR r2,[sp,#0x80] +001d40 9121 STR r1,[sp,#0x84] +001d42 e005 B |L3.7504| + |L3.7492| + DCD ret_C6_count + |L3.7496| + DCD g_rx_ctrl_handle + |L3.7500| + DCD |symbol_number.119| + |L3.7504| +001d50 9022 STR r0,[sp,#0x88] +001d52 20e4 MOVS r0,#0xe4 +001d54 2119 MOVS r1,#0x19 +001d56 22b6 MOVS r2,#0xb6 +001d58 231a MOVS r3,#0x1a +001d5a 931b STR r3,[sp,#0x6c] +001d5c 921c STR r2,[sp,#0x70] +001d5e 911d STR r1,[sp,#0x74] +001d60 901e STR r0,[sp,#0x78] +001d62 2098 MOVS r0,#0x98 +001d64 2255 MOVS r2,#0x55 +001d66 2316 MOVS r3,#0x16 +001d68 9317 STR r3,[sp,#0x5c] +001d6a 9218 STR r2,[sp,#0x60] +001d6c 9119 STR r1,[sp,#0x64] +001d6e 901a STR r0,[sp,#0x68] +001d70 206b MOVS r0,#0x6b +001d72 2185 MOVS r1,#0x85 +001d74 22a4 MOVS r2,#0xa4 +001d76 2313 MOVS r3,#0x13 +001d78 9313 STR r3,[sp,#0x4c] +001d7a 9214 STR r2,[sp,#0x50] +001d7c 9115 STR r1,[sp,#0x54] +001d7e 9016 STR r0,[sp,#0x58] +001d80 2040 MOVS r0,#0x40 +001d82 21f9 MOVS r1,#0xf9 +001d84 2203 MOVS r2,#3 +001d86 2311 MOVS r3,#0x11 +001d88 930f STR r3,[sp,#0x3c] +001d8a 9210 STR r2,[sp,#0x40] +001d8c 9111 STR r1,[sp,#0x44] +001d8e 9012 STR r0,[sp,#0x48] +001d90 2008 MOVS r0,#8 +001d92 214d MOVS r1,#0x4d +001d94 2293 MOVS r2,#0x93 +001d96 230d MOVS r3,#0xd +001d98 930b STR r3,[sp,#0x2c] +001d9a 920c STR r2,[sp,#0x30] +001d9c 910d STR r1,[sp,#0x34] +001d9e 900e STR r0,[sp,#0x38] +001da0 20f6 MOVS r0,#0xf6 +001da2 211c MOVS r1,#0x1c +001da4 230c MOVS r3,#0xc +001da6 9307 STR r3,[sp,#0x1c] +001da8 9208 STR r2,[sp,#0x20] +001daa 9109 STR r1,[sp,#0x24] +001dac 900a STR r0,[sp,#0x28] +001dae 20e1 MOVS r0,#0xe1 +001db0 21e4 MOVS r1,#0xe4 +001db2 2232 MOVS r2,#0x32 +001db4 230b MOVS r3,#0xb +001db6 9303 STR r3,[sp,#0xc] +001db8 9204 STR r2,[sp,#0x10] +001dba 9105 STR r1,[sp,#0x14] +001dbc 9006 STR r0,[sp,#0x18] +001dbe 201a MOVS r0,#0x1a +001dc0 9000 STR r0,[sp,#0] +001dc2 9001 STR r0,[sp,#4] +001dc4 232b MOVS r3,#0x2b +001dc6 2200 MOVS r2,#0 +001dc8 211c MOVS r1,#0x1c +001dca 9002 STR r0,[sp,#8] +001dcc 48f8 LDR r0,|L3.8624| +001dce 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +001dd0 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;957 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;958 DSI_VC_0, +;;;959 43, 0x1A, 0x1A, 0x1A, 0x0B, 0x32, 0xE4, 0xE1, 0x0C, 0x93, 0x1C, 0xF6, 0x0D, 0x93, 0x4D, 0x08, 0x11, 0x03, 0xF9, 0x40, 0x13, 0xA4, 0x85, 0x6B, 0x16, 0x55, 0x19, 0x98, 0x1A, 0xB6, 0x19, 0xE4, 0x20, 0xA7, 0x72, 0x4A, 0x29, 0xD9, 0x92, 0xF2, 0x29, 0xD9, 0x92, 0xF2); +;;;960 ret_C6_count = 1; +001dd4 2001 MOVS r0,#1 +001dd6 49f7 LDR r1,|L3.8628| +001dd8 7008 STRB r0,[r1,#0] +001dda e137 B |L3.8268| + |L3.7644| +;;;961 } +;;;962 else if(ret_C6_count == 1) +001ddc 48f5 LDR r0,|L3.8628| +001dde 7800 LDRB r0,[r0,#0] ; ret_C6_count +001de0 2801 CMP r0,#1 +001de2 d15d BNE |L3.7840| +;;;963 { +;;;964 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +001de4 21f2 MOVS r1,#0xf2 +001de6 2292 MOVS r2,#0x92 +001de8 23d9 MOVS r3,#0xd9 +001dea 2029 MOVS r0,#0x29 +001dec 9328 STR r3,[sp,#0xa0] +001dee 9229 STR r2,[sp,#0xa4] +001df0 912a STR r1,[sp,#0xa8] +001df2 9027 STR r0,[sp,#0x9c] +001df4 4610 MOV r0,r2 +001df6 461a MOV r2,r3 +001df8 2329 MOVS r3,#0x29 +001dfa 9323 STR r3,[sp,#0x8c] +001dfc 9224 STR r2,[sp,#0x90] +001dfe 9126 STR r1,[sp,#0x98] +001e00 9025 STR r0,[sp,#0x94] +001e02 2049 MOVS r0,#0x49 +001e04 2172 MOVS r1,#0x72 +001e06 2287 MOVS r2,#0x87 +001e08 2320 MOVS r3,#0x20 +001e0a 931f STR r3,[sp,#0x7c] +001e0c 9220 STR r2,[sp,#0x80] +001e0e e000 B |L3.7698| + |L3.7696| +001e10 e102 B |L3.8216| + |L3.7698| +001e12 9121 STR r1,[sp,#0x84] +001e14 9022 STR r0,[sp,#0x88] +001e16 20e4 MOVS r0,#0xe4 +001e18 2119 MOVS r1,#0x19 +001e1a 22b6 MOVS r2,#0xb6 +001e1c 231a MOVS r3,#0x1a +001e1e 931b STR r3,[sp,#0x6c] +001e20 921c STR r2,[sp,#0x70] +001e22 911d STR r1,[sp,#0x74] +001e24 901e STR r0,[sp,#0x78] +001e26 209a MOVS r0,#0x9a +001e28 2125 MOVS r1,#0x25 +001e2a 2255 MOVS r2,#0x55 +001e2c 2316 MOVS r3,#0x16 +001e2e 9317 STR r3,[sp,#0x5c] +001e30 9218 STR r2,[sp,#0x60] +001e32 9119 STR r1,[sp,#0x64] +001e34 901a STR r0,[sp,#0x68] +001e36 206f MOVS r0,#0x6f +001e38 2199 MOVS r1,#0x99 +001e3a 22c4 MOVS r2,#0xc4 +001e3c 2313 MOVS r3,#0x13 +001e3e 9313 STR r3,[sp,#0x4c] +001e40 9214 STR r2,[sp,#0x50] +001e42 9115 STR r1,[sp,#0x54] +001e44 9016 STR r0,[sp,#0x58] +001e46 2046 MOVS r0,#0x46 +001e48 2119 MOVS r1,#0x19 +001e4a 2254 MOVS r2,#0x54 +001e4c 2311 MOVS r3,#0x11 +001e4e 930f STR r3,[sp,#0x3c] +001e50 9210 STR r2,[sp,#0x40] +001e52 9111 STR r1,[sp,#0x44] +001e54 9012 STR r0,[sp,#0x48] +001e56 201a MOVS r0,#0x1a +001e58 2191 MOVS r1,#0x91 +001e5a 2253 MOVS r2,#0x53 +001e5c 230e MOVS r3,#0xe +001e5e 930b STR r3,[sp,#0x2c] +001e60 920c STR r2,[sp,#0x30] +001e62 910d STR r1,[sp,#0x34] +001e64 900e STR r0,[sp,#0x38] +001e66 200d MOVS r0,#0xd +001e68 2171 MOVS r1,#0x71 +001e6a 22a3 MOVS r2,#0xa3 +001e6c 9007 STR r0,[sp,#0x1c] +001e6e 9208 STR r2,[sp,#0x20] +001e70 9109 STR r1,[sp,#0x24] +001e72 900a STR r0,[sp,#0x28] +001e74 20fb MOVS r0,#0xfb +001e76 2138 MOVS r1,#0x38 +001e78 230c MOVS r3,#0xc +001e7a 9303 STR r3,[sp,#0xc] +001e7c 9204 STR r2,[sp,#0x10] +001e7e 9105 STR r1,[sp,#0x14] +001e80 9006 STR r0,[sp,#0x18] +001e82 201a MOVS r0,#0x1a +001e84 9000 STR r0,[sp,#0] +001e86 9001 STR r0,[sp,#4] +001e88 232b MOVS r3,#0x2b +001e8a 2200 MOVS r2,#0 +001e8c 211c MOVS r1,#0x1c +001e8e 9002 STR r0,[sp,#8] +001e90 48c7 LDR r0,|L3.8624| +001e92 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +001e94 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;965 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;966 DSI_VC_0, +;;;967 43, 0x1A, 0x1A, 0x1A, 0x0C, 0xA3, 0x38, 0xFB, 0x0D, 0xA3, 0x71, 0x0D, 0x0E, 0x53, 0x91, 0x1A, 0x11, 0x54, 0x19, 0x46, 0x13, 0xC4, 0x99, 0x6F, 0x16, 0x55, 0x25, 0x9A, 0x1A, 0xB6, 0x19, 0xE4, 0x20, 0x87, 0x72, 0x49, 0x29, 0xD9, 0x92, 0xF2, 0x29, 0xD9, 0x92, 0xF2); +;;;968 ret_C6_count = 2; +001e98 2002 MOVS r0,#2 +001e9a 49c6 LDR r1,|L3.8628| +001e9c 7008 STRB r0,[r1,#0] +001e9e e0d5 B |L3.8268| + |L3.7840| +;;;969 } +;;;970 else if(ret_C6_count == 2) +001ea0 48c4 LDR r0,|L3.8628| +001ea2 7800 LDRB r0,[r0,#0] ; ret_C6_count +001ea4 2802 CMP r0,#2 +001ea6 d159 BNE |L3.8028| +;;;971 { +;;;972 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +001ea8 20f2 MOVS r0,#0xf2 +001eaa 2192 MOVS r1,#0x92 +001eac 22d9 MOVS r2,#0xd9 +001eae 2329 MOVS r3,#0x29 +001eb0 9327 STR r3,[sp,#0x9c] +001eb2 9228 STR r2,[sp,#0xa0] +001eb4 9129 STR r1,[sp,#0xa4] +001eb6 902a STR r0,[sp,#0xa8] +001eb8 9323 STR r3,[sp,#0x8c] +001eba 9224 STR r2,[sp,#0x90] +001ebc 9125 STR r1,[sp,#0x94] +001ebe 9026 STR r0,[sp,#0x98] +001ec0 2047 MOVS r0,#0x47 +001ec2 2166 MOVS r1,#0x66 +001ec4 2277 MOVS r2,#0x77 +001ec6 2320 MOVS r3,#0x20 +001ec8 931f STR r3,[sp,#0x7c] +001eca 9220 STR r2,[sp,#0x80] +001ecc 9121 STR r1,[sp,#0x84] +001ece 9022 STR r0,[sp,#0x88] +001ed0 20e4 MOVS r0,#0xe4 +001ed2 211d MOVS r1,#0x1d +001ed4 2296 MOVS r2,#0x96 +001ed6 231a MOVS r3,#0x1a +001ed8 931b STR r3,[sp,#0x6c] +001eda 921c STR r2,[sp,#0x70] +001edc 911d STR r1,[sp,#0x74] +001ede 901e STR r0,[sp,#0x78] +001ee0 209d MOVS r0,#0x9d +001ee2 2139 MOVS r1,#0x39 +001ee4 2255 MOVS r2,#0x55 +001ee6 2316 MOVS r3,#0x16 +001ee8 9317 STR r3,[sp,#0x5c] +001eea 9218 STR r2,[sp,#0x60] +001eec 9119 STR r1,[sp,#0x64] +001eee 901a STR r0,[sp,#0x68] +001ef0 2076 MOVS r0,#0x76 +001ef2 21b9 MOVS r1,#0xb9 +001ef4 22e4 MOVS r2,#0xe4 +001ef6 2313 MOVS r3,#0x13 +001ef8 9313 STR r3,[sp,#0x4c] +001efa 9214 STR r2,[sp,#0x50] +001efc 9115 STR r1,[sp,#0x54] +001efe 9016 STR r0,[sp,#0x58] +001f00 2054 MOVS r0,#0x54 +001f02 214d MOVS r1,#0x4d +001f04 22c4 MOVS r2,#0xc4 +001f06 2311 MOVS r3,#0x11 +001f08 930f STR r3,[sp,#0x3c] +001f0a 9210 STR r2,[sp,#0x40] +001f0c 9111 STR r1,[sp,#0x44] +001f0e 9012 STR r0,[sp,#0x48] +001f10 202d MOVS r0,#0x2d +001f12 21e1 MOVS r1,#0xe1 +001f14 2233 MOVS r2,#0x33 +001f16 230f MOVS r3,#0xf +001f18 930b STR r3,[sp,#0x2c] +001f1a 920c STR r2,[sp,#0x30] +001f1c 910d STR r1,[sp,#0x34] +001f1e 900e STR r0,[sp,#0x38] +001f20 2025 MOVS r0,#0x25 +001f22 21cd MOVS r1,#0xcd +001f24 22a3 MOVS r2,#0xa3 +001f26 230e MOVS r3,#0xe +001f28 9307 STR r3,[sp,#0x1c] +001f2a 9208 STR r2,[sp,#0x20] +001f2c 9109 STR r1,[sp,#0x24] +001f2e 900a STR r0,[sp,#0x28] +001f30 2002 MOVS r0,#2 +001f32 21a9 MOVS r1,#0xa9 +001f34 2233 MOVS r2,#0x33 +001f36 9303 STR r3,[sp,#0xc] +001f38 9204 STR r2,[sp,#0x10] +001f3a 9105 STR r1,[sp,#0x14] +001f3c 9006 STR r0,[sp,#0x18] +001f3e 201a MOVS r0,#0x1a +001f40 9000 STR r0,[sp,#0] +001f42 9001 STR r0,[sp,#4] +001f44 232b MOVS r3,#0x2b +001f46 2200 MOVS r2,#0 +001f48 211c MOVS r1,#0x1c +001f4a 9002 STR r0,[sp,#8] +001f4c 4898 LDR r0,|L3.8624| +001f4e 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +001f50 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;973 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;974 DSI_VC_0, +;;;975 43, 0x1A, 0x1A, 0x1A, 0x0E, 0x33, 0xA9, 0x02, 0x0E, 0xA3, 0xCD, 0x25, 0x0F, 0x33, 0xE1, 0x2D, 0x11, 0xC4, 0x4D, 0x54, 0x13, 0xE4, 0xB9, 0x76, 0x16, 0x55, 0x39, 0x9D, 0x1A, 0x96, 0x1D, 0xE4, 0x20, 0x77, 0x66, 0x47, 0x29, 0xD9, 0x92, 0xF2, 0x29, 0xD9, 0x92, 0xF2); +;;;976 ret_C6_count = 3; +001f54 2003 MOVS r0,#3 +001f56 4997 LDR r1,|L3.8628| +001f58 7008 STRB r0,[r1,#0] +001f5a e077 B |L3.8268| + |L3.8028| +;;;977 } +;;;978 else if(ret_C6_count == 3) +001f5c 4895 LDR r0,|L3.8628| +001f5e 7800 LDRB r0,[r0,#0] ; ret_C6_count +001f60 2803 CMP r0,#3 +001f62 d173 BNE |L3.8268| +;;;979 { +;;;980 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +001f64 20f2 MOVS r0,#0xf2 +001f66 2192 MOVS r1,#0x92 +001f68 22d9 MOVS r2,#0xd9 +001f6a 2329 MOVS r3,#0x29 +001f6c 9327 STR r3,[sp,#0x9c] +001f6e 9228 STR r2,[sp,#0xa0] +001f70 9129 STR r1,[sp,#0xa4] +001f72 902a STR r0,[sp,#0xa8] +001f74 9323 STR r3,[sp,#0x8c] +001f76 9224 STR r2,[sp,#0x90] +001f78 9125 STR r1,[sp,#0x94] +001f7a 9026 STR r0,[sp,#0x98] +001f7c 2038 MOVS r0,#0x38 +001f7e 2136 MOVS r1,#0x36 +001f80 2287 MOVS r2,#0x87 +001f82 231f MOVS r3,#0x1f +001f84 931f STR r3,[sp,#0x7c] +001f86 9220 STR r2,[sp,#0x80] +001f88 9121 STR r1,[sp,#0x84] +001f8a 9022 STR r0,[sp,#0x88] +001f8c 20de MOVS r0,#0xde +001f8e 210d MOVS r1,#0xd +001f90 2206 MOVS r2,#6 +001f92 231a MOVS r3,#0x1a +001f94 931b STR r3,[sp,#0x6c] +001f96 921c STR r2,[sp,#0x70] +001f98 911d STR r1,[sp,#0x74] +001f9a 901e STR r0,[sp,#0x78] +001f9c 209e MOVS r0,#0x9e +001f9e 2145 MOVS r1,#0x45 +001fa0 2205 MOVS r2,#5 +001fa2 2316 MOVS r3,#0x16 +001fa4 9317 STR r3,[sp,#0x5c] +001fa6 9218 STR r2,[sp,#0x60] +001fa8 9119 STR r1,[sp,#0x64] +001faa 901a STR r0,[sp,#0x68] +001fac 207d MOVS r0,#0x7d +001fae 21e5 MOVS r1,#0xe5 +001fb0 22f4 MOVS r2,#0xf4 +001fb2 2313 MOVS r3,#0x13 +001fb4 9313 STR r3,[sp,#0x4c] +001fb6 9214 STR r2,[sp,#0x50] +001fb8 9115 STR r1,[sp,#0x54] +001fba 9016 STR r0,[sp,#0x58] +001fbc 2065 MOVS r0,#0x65 +001fbe 2199 MOVS r1,#0x99 +001fc0 2254 MOVS r2,#0x54 +001fc2 2312 MOVS r3,#0x12 +001fc4 930f STR r3,[sp,#0x3c] +001fc6 9210 STR r2,[sp,#0x40] +001fc8 9111 STR r1,[sp,#0x44] +001fca 9012 STR r0,[sp,#0x48] +001fcc 2048 MOVS r0,#0x48 +001fce 214d MOVS r1,#0x4d +001fd0 2294 MOVS r2,#0x94 +001fd2 2310 MOVS r3,#0x10 +001fd4 930b STR r3,[sp,#0x2c] +001fd6 920c STR r2,[sp,#0x30] +001fd8 910d STR r1,[sp,#0x34] +001fda 900e STR r0,[sp,#0x38] +001fdc 2040 MOVS r0,#0x40 +001fde 2149 MOVS r1,#0x49 +001fe0 2234 MOVS r2,#0x34 +001fe2 9307 STR r3,[sp,#0x1c] +001fe4 9208 STR r2,[sp,#0x20] +001fe6 9109 STR r1,[sp,#0x24] +001fe8 900a STR r0,[sp,#0x28] +001fea 20af MOVS r0,#0xaf +001fec 2148 MOVS r1,#0x48 +001fee 2212 MOVS r2,#0x12 +001ff0 2309 MOVS r3,#9 +001ff2 9303 STR r3,[sp,#0xc] +001ff4 9204 STR r2,[sp,#0x10] +001ff6 9105 STR r1,[sp,#0x14] +001ff8 9006 STR r0,[sp,#0x18] +001ffa 201a MOVS r0,#0x1a +001ffc 9000 STR r0,[sp,#0] +001ffe 9001 STR r0,[sp,#4] +002000 232b MOVS r3,#0x2b +002002 2200 MOVS r2,#0 +002004 211c MOVS r1,#0x1c +002006 9002 STR r0,[sp,#8] +002008 4869 LDR r0,|L3.8624| +00200a 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +00200c f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;981 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;982 DSI_VC_0, +;;;983 43, 0x1A, 0x1A, 0x1A, 0x09, 0x12, 0x48, 0xAF, 0x10, 0x34, 0x49, 0x40, 0x10, 0x94, 0x4D, 0x48, 0x12, 0x54, 0x99, 0x65, 0x13, 0xF4, 0xE5, 0x7D, 0x16, 0x05, 0x45, 0x9E, 0x1A, 0x06, 0x0D, 0xDE, 0x1F, 0x87, 0x36, 0x38, 0x29, 0xD9, 0x92, 0xF2, 0x29, 0xD9, 0x92, 0xF2); +;;;984 ret_C6_count = 0; +002010 2000 MOVS r0,#0 +002012 4968 LDR r1,|L3.8628| +002014 7008 STRB r0,[r1,#0] +002016 e019 B |L3.8268| + |L3.8216| +;;;985 } +;;;986 else +;;;987 { +;;;988 //printf("C6 err return_size[%d] ret_C6_count[%d]\n", return_size, ret_C6_count); +;;;989 } +;;;990 } +;;;991 else if(return_size == 3) +002018 982b LDR r0,[sp,#0xac] +00201a 2803 CMP r0,#3 +00201c d10d BNE |L3.8250| +;;;992 { +;;;993 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +00201e 20f2 MOVS r0,#0xf2 +002020 2192 MOVS r1,#0x92 +002022 22d9 MOVS r2,#0xd9 +002024 2303 MOVS r3,#3 +002026 9200 STR r2,[sp,#0] +002028 9101 STR r1,[sp,#4] +00202a 9002 STR r0,[sp,#8] +00202c 2200 MOVS r2,#0 +00202e 211c MOVS r1,#0x1c +002030 485f LDR r0,|L3.8624| +002032 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +002034 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +002038 e008 B |L3.8268| + |L3.8250| +;;;994 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;995 DSI_VC_0, +;;;996 3, 0xD9, 0x92, 0xF2); +;;;997 } +;;;998 else +;;;999 { +;;;1000 TAU_LOGD("C6 resp error [%d]!\n", return_size); +00203a bf00 NOP +00203c 227d MOVS r2,#0x7d +00203e 00d2 LSLS r2,r2,#3 +002040 495d LDR r1,|L3.8632| +002042 a05e ADR r0,|L3.8636| +002044 9b2b LDR r3,[sp,#0xac] +002046 f7fffffe BL LOG_printf +00204a bf00 NOP + |L3.8268| +;;;1001 } +;;;1002 } +00204c e324 B |L3.9880| + |L3.8270| +;;;1003 else if(dcs_cmd == 0xA1) +00204e 982d LDR r0,[sp,#0xb4] +002050 28a1 CMP r0,#0xa1 +002052 d17a BNE |L3.8522| +;;;1004 { +;;;1005 uint32_t return_size = hal_dsi_rx_ctrl_get_max_ret_size(g_rx_ctrl_handle); +002054 4856 LDR r0,|L3.8624| +002056 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +002058 f7fffffe BL hal_dsi_rx_ctrl_get_max_ret_size +00205c 902b STR r0,[sp,#0xac] +;;;1006 if(return_size == 1) +00205e 982b LDR r0,[sp,#0xac] +002060 2801 CMP r0,#1 +002062 d109 BNE |L3.8312| +;;;1007 { +;;;1008 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +002064 2080 MOVS r0,#0x80 +002066 2301 MOVS r3,#1 +002068 2200 MOVS r2,#0 +00206a 2121 MOVS r1,#0x21 +00206c 9000 STR r0,[sp,#0] +00206e 4850 LDR r0,|L3.8624| +002070 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +002072 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +002076 e0e9 B |L3.8780| + |L3.8312| +;;;1009 DSI_ACK_DT_DSC_SHORT_RESPONSE_1B, +;;;1010 DSI_VC_0, +;;;1011 1, 0x80); +;;;1012 } +;;;1013 else if(return_size == 10) +002078 982b LDR r0,[sp,#0xac] +00207a 280a CMP r0,#0xa +00207c d166 BNE |L3.8524| +;;;1014 { +;;;1015 static uint8_t ret_A1_count = 0; +;;;1016 if(ret_A1_count == 0) +00207e 4858 LDR r0,|L3.8672| +002080 7800 LDRB r0,[r0,#0] ; ret_A1_count +002082 2800 CMP r0,#0 +002084 d11d BNE |L3.8386| +;;;1017 { +;;;1018 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +002086 2014 MOVS r0,#0x14 +002088 2111 MOVS r1,#0x11 +00208a 2201 MOVS r2,#1 +00208c 9106 STR r1,[sp,#0x18] +00208e 9207 STR r2,[sp,#0x1c] +002090 9108 STR r1,[sp,#0x20] +002092 9009 STR r0,[sp,#0x24] +002094 2019 MOVS r0,#0x19 +002096 219b MOVS r1,#0x9b +002098 2286 MOVS r2,#0x86 +00209a 230c MOVS r3,#0xc +00209c 9302 STR r3,[sp,#8] +00209e 9203 STR r2,[sp,#0xc] +0020a0 9104 STR r1,[sp,#0x10] +0020a2 9005 STR r0,[sp,#0x14] +0020a4 20eb MOVS r0,#0xeb +0020a6 210b MOVS r1,#0xb +0020a8 230a MOVS r3,#0xa +0020aa 2200 MOVS r2,#0 +0020ac 9100 STR r1,[sp,#0] +0020ae 9001 STR r0,[sp,#4] +0020b0 211c MOVS r1,#0x1c +0020b2 483f LDR r0,|L3.8624| +0020b4 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0020b6 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;1019 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;1020 DSI_VC_0, +;;;1021 10, 0x0B, 0xEB, 0x0C, 0x86, 0x9B, 0x19, 0x11, 0x01, 0x11, 0x14); +;;;1022 ret_A1_count = 1; +0020ba 2001 MOVS r0,#1 +0020bc 4948 LDR r1,|L3.8672| +0020be 7008 STRB r0,[r1,#0] +0020c0 e0c4 B |L3.8780| + |L3.8386| +;;;1023 } +;;;1024 else if(ret_A1_count == 1) +0020c2 4847 LDR r0,|L3.8672| +0020c4 7800 LDRB r0,[r0,#0] ; ret_A1_count +0020c6 2801 CMP r0,#1 +0020c8 d11d BNE |L3.8454| +;;;1025 { +;;;1026 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +0020ca 2053 MOVS r0,#0x53 +0020cc 2132 MOVS r1,#0x32 +0020ce 2255 MOVS r2,#0x55 +0020d0 2358 MOVS r3,#0x58 +0020d2 9306 STR r3,[sp,#0x18] +0020d4 9207 STR r2,[sp,#0x1c] +0020d6 9108 STR r1,[sp,#0x20] +0020d8 9009 STR r0,[sp,#0x24] +0020da 2034 MOVS r0,#0x34 +0020dc 2141 MOVS r1,#0x41 +0020de 22f5 MOVS r2,#0xf5 +0020e0 2301 MOVS r3,#1 +0020e2 9302 STR r3,[sp,#8] +0020e4 9203 STR r2,[sp,#0xc] +0020e6 9104 STR r1,[sp,#0x10] +0020e8 9005 STR r0,[sp,#0x14] +0020ea 2140 MOVS r1,#0x40 +0020ec 9301 STR r3,[sp,#4] +0020ee 9100 STR r1,[sp,#0] +0020f0 230a MOVS r3,#0xa +0020f2 2200 MOVS r2,#0 +0020f4 211c MOVS r1,#0x1c +0020f6 482e LDR r0,|L3.8624| +0020f8 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0020fa f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;1027 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;1028 DSI_VC_0, +;;;1029 10, 0x40, 0x01, 0x01, 0xF5, 0x41, 0x34, 0x58, 0x55, 0x32, 0x53); +;;;1030 ret_A1_count = 2; +0020fe 2002 MOVS r0,#2 +002100 4937 LDR r1,|L3.8672| +002102 7008 STRB r0,[r1,#0] +002104 e0a2 B |L3.8780| + |L3.8454| +;;;1031 } +;;;1032 else if(ret_A1_count == 2) +002106 4836 LDR r0,|L3.8672| +002108 7800 LDRB r0,[r0,#0] ; ret_A1_count +00210a 2802 CMP r0,#2 +00210c d11c BNE |L3.8520| +;;;1033 { +;;;1034 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +00210e 2038 MOVS r0,#0x38 +002110 2131 MOVS r1,#0x31 +002112 2230 MOVS r2,#0x30 +002114 2352 MOVS r3,#0x52 +002116 9306 STR r3,[sp,#0x18] +002118 9207 STR r2,[sp,#0x1c] +00211a 9108 STR r1,[sp,#0x20] +00211c 9009 STR r0,[sp,#0x24] +00211e 2041 MOVS r0,#0x41 +002120 2135 MOVS r1,#0x35 +002122 2245 MOVS r2,#0x45 +002124 2346 MOVS r3,#0x46 +002126 9302 STR r3,[sp,#8] +002128 9203 STR r2,[sp,#0xc] +00212a 9104 STR r1,[sp,#0x10] +00212c 9005 STR r0,[sp,#0x14] +00212e 214a MOVS r1,#0x4a +002130 230a MOVS r3,#0xa +002132 2200 MOVS r2,#0 +002134 9100 STR r1,[sp,#0] +002136 9001 STR r0,[sp,#4] +002138 211c MOVS r1,#0x1c +00213a 481d LDR r0,|L3.8624| +00213c 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +00213e f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;1035 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;1036 DSI_VC_0, +;;;1037 10, 0x4A, 0x41, 0x46, 0x45, 0x35, 0x41, 0x52, 0x30, 0x31, 0x38); +;;;1038 ret_A1_count = 0; +002142 2000 MOVS r0,#0 +002144 4926 LDR r1,|L3.8672| +002146 7008 STRB r0,[r1,#0] + |L3.8520| +002148 e080 B |L3.8780| + |L3.8522| +00214a e080 B |L3.8782| + |L3.8524| +;;;1039 } +;;;1040 else +;;;1041 { +;;;1042 //printf("A1 err return_size[%d] ret_A1_count[%d]\n", return_size, ret_A1_count); +;;;1043 } +;;;1044 } +;;;1045 else if(return_size == 20) +00214c 982b LDR r0,[sp,#0xac] +00214e 2814 CMP r0,#0x14 +002150 d148 BNE |L3.8676| +;;;1046 { +;;;1047 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +002152 2038 MOVS r0,#0x38 +002154 2131 MOVS r1,#0x31 +002156 2230 MOVS r2,#0x30 +002158 2352 MOVS r3,#0x52 +00215a 9310 STR r3,[sp,#0x40] +00215c 9211 STR r2,[sp,#0x44] +00215e 9112 STR r1,[sp,#0x48] +002160 9013 STR r0,[sp,#0x4c] +002162 2041 MOVS r0,#0x41 +002164 2135 MOVS r1,#0x35 +002166 2245 MOVS r2,#0x45 +002168 2346 MOVS r3,#0x46 +00216a 930c STR r3,[sp,#0x30] +00216c 920d STR r2,[sp,#0x34] +00216e 910e STR r1,[sp,#0x38] +002170 900f STR r0,[sp,#0x3c] +002172 214a MOVS r1,#0x4a +002174 2253 MOVS r2,#0x53 +002176 2332 MOVS r3,#0x32 +002178 9308 STR r3,[sp,#0x20] +00217a 9209 STR r2,[sp,#0x24] +00217c 910a STR r1,[sp,#0x28] +00217e 900b STR r0,[sp,#0x2c] +002180 2055 MOVS r0,#0x55 +002182 2158 MOVS r1,#0x58 +002184 2234 MOVS r2,#0x34 +002186 2341 MOVS r3,#0x41 +002188 9304 STR r3,[sp,#0x10] +00218a 9205 STR r2,[sp,#0x14] +00218c 9106 STR r1,[sp,#0x18] +00218e 9007 STR r0,[sp,#0x1c] +002190 20f5 MOVS r0,#0xf5 +002192 2101 MOVS r1,#1 +002194 2340 MOVS r3,#0x40 +002196 9101 STR r1,[sp,#4] +002198 9300 STR r3,[sp,#0] +00219a 9102 STR r1,[sp,#8] +00219c 9003 STR r0,[sp,#0xc] +00219e 2314 MOVS r3,#0x14 +0021a0 2200 MOVS r2,#0 +0021a2 211c MOVS r1,#0x1c +0021a4 4802 LDR r0,|L3.8624| +0021a6 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0021a8 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +0021ac e04e B |L3.8780| +0021ae 0000 DCW 0x0000 + |L3.8624| + DCD g_rx_ctrl_handle + |L3.8628| + DCD |symbol_number.119| + |L3.8632| + DCD ||i.ap_dcs_read||+0xc9c + |L3.8636| +0021bc 5b25735d DCB "[%s] (%04d) C6 resp error [%d]!\n",0 +0021c0 20282530 +0021c4 34642920 +0021c8 43362072 +0021cc 65737020 +0021d0 6572726f +0021d4 72205b25 +0021d8 645d210a +0021dc 00 +0021dd 00 DCB 0 +0021de 00 DCB 0 +0021df 00 DCB 0 + |L3.8672| + DCD ret_A1_count + |L3.8676| +;;;1048 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;1049 DSI_VC_0, +;;;1050 20, 0x40, 0x01, 0x01, 0xF5, 0x41, 0x34, 0x58, 0x55, 0x32, 0x53, 0x4A, 0x41, 0x46, 0x45, 0x35, 0x41, 0x52, 0x30, 0x31, 0x38); +;;;1051 } +;;;1052 else if(return_size == 4) +0021e4 982b LDR r0,[sp,#0xac] +0021e6 2804 CMP r0,#4 +0021e8 d10f BNE |L3.8714| +;;;1053 { +;;;1054 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +0021ea 2086 MOVS r0,#0x86 +0021ec 210c MOVS r1,#0xc +0021ee 22eb MOVS r2,#0xeb +0021f0 230b MOVS r3,#0xb +0021f2 9300 STR r3,[sp,#0] +0021f4 9201 STR r2,[sp,#4] +0021f6 9102 STR r1,[sp,#8] +0021f8 9003 STR r0,[sp,#0xc] +0021fa 2304 MOVS r3,#4 +0021fc 2200 MOVS r2,#0 +0021fe 211c MOVS r1,#0x1c +002200 48f7 LDR r0,|L3.9696| +002202 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +002204 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +002208 e020 B |L3.8780| + |L3.8714| +;;;1055 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;1056 DSI_VC_0, +;;;1057 4, 0x0B, 0xEB, 0x0C, 0x86); +;;;1058 } +;;;1059 else if(return_size == 7) +00220a 982b LDR r0,[sp,#0xac] +00220c 2807 CMP r0,#7 +00220e d115 BNE |L3.8764| +;;;1060 { +;;;1061 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +002210 2080 MOVS r0,#0x80 +002212 2114 MOVS r1,#0x14 +002214 2211 MOVS r2,#0x11 +002216 2301 MOVS r3,#1 +002218 9303 STR r3,[sp,#0xc] +00221a 9204 STR r2,[sp,#0x10] +00221c 9105 STR r1,[sp,#0x14] +00221e 9006 STR r0,[sp,#0x18] +002220 4610 MOV r0,r2 +002222 2119 MOVS r1,#0x19 +002224 229b MOVS r2,#0x9b +002226 2307 MOVS r3,#7 +002228 9200 STR r2,[sp,#0] +00222a 9101 STR r1,[sp,#4] +00222c 9002 STR r0,[sp,#8] +00222e 2200 MOVS r2,#0 +002230 211c MOVS r1,#0x1c +002232 48eb LDR r0,|L3.9696| +002234 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +002236 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +00223a e007 B |L3.8780| + |L3.8764| +;;;1062 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;1063 DSI_VC_0, +;;;1064 7, 0x9B, 0x19, 0x11, 0x01, 0x11, 0x14, 0x80); +;;;1065 } +;;;1066 else +;;;1067 { +;;;1068 TAU_LOGD("A1 resp error [%d]!\n", return_size); +00223c bf00 NOP +00223e 4ae9 LDR r2,|L3.9700| +002240 49e9 LDR r1,|L3.9704| +002242 a0ea ADR r0,|L3.9708| +002244 9b2b LDR r3,[sp,#0xac] +002246 f7fffffe BL LOG_printf +00224a bf00 NOP + |L3.8780| +;;;1069 } +;;;1070 } +00224c e224 B |L3.9880| + |L3.8782| +;;;1071 else if(dcs_cmd == 0x7F) +00224e 982d LDR r0,[sp,#0xb4] +002250 287f CMP r0,#0x7f +002252 d17d BNE |L3.9040| +;;;1072 { +;;;1073 uint32_t return_size = hal_dsi_rx_ctrl_get_max_ret_size(g_rx_ctrl_handle); +002254 48e2 LDR r0,|L3.9696| +002256 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +002258 f7fffffe BL hal_dsi_rx_ctrl_get_max_ret_size +00225c 902b STR r0,[sp,#0xac] +;;;1074 if(return_size == 3) +00225e 982b LDR r0,[sp,#0xac] +002260 2803 CMP r0,#3 +002262 d10c BNE |L3.8830| +;;;1075 { +;;;1076 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +002264 2000 MOVS r0,#0 +002266 22ff MOVS r2,#0xff +002268 9001 STR r0,[sp,#4] +00226a 2303 MOVS r3,#3 +00226c 9200 STR r2,[sp,#0] +00226e 9002 STR r0,[sp,#8] +002270 4602 MOV r2,r0 +002272 211c MOVS r1,#0x1c +002274 48da LDR r0,|L3.9696| +002276 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +002278 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +00227c e074 B |L3.9064| + |L3.8830| +;;;1077 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;1078 DSI_VC_0, +;;;1079 3, 0xFF, 0x00, 0x00); +;;;1080 } +;;;1081 else if(return_size == 4) +00227e 982b LDR r0,[sp,#0xac] +002280 2804 CMP r0,#4 +002282 d10f BNE |L3.8868| +;;;1082 { +;;;1083 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +002284 2088 MOVS r0,#0x88 +002286 2117 MOVS r1,#0x17 +002288 2264 MOVS r2,#0x64 +00228a 23c0 MOVS r3,#0xc0 +00228c 9300 STR r3,[sp,#0] +00228e 9201 STR r2,[sp,#4] +002290 9102 STR r1,[sp,#8] +002292 9003 STR r0,[sp,#0xc] +002294 2304 MOVS r3,#4 +002296 2200 MOVS r2,#0 +002298 211c MOVS r1,#0x1c +00229a 48d1 LDR r0,|L3.9696| +00229c 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +00229e f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +0022a2 e061 B |L3.9064| + |L3.8868| +;;;1084 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;1085 DSI_VC_0, +;;;1086 4, 0xC0, 0x64, 0x17, 0x88); +;;;1087 } +;;;1088 else if(return_size == 10) +0022a4 982b LDR r0,[sp,#0xac] +0022a6 280a CMP r0,#0xa +0022a8 d155 BNE |L3.9046| +;;;1089 { +;;;1090 static uint8_t ret_7F_count = 0; +;;;1091 if(ret_7F_count == 0) +0022aa 48d9 LDR r0,|L3.9744| +0022ac 7800 LDRB r0,[r0,#0] ; ret_7F_count +0022ae 2800 CMP r0,#0 +0022b0 d11b BNE |L3.8938| +;;;1092 { +;;;1093 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +0022b2 2088 MOVS r0,#0x88 +0022b4 2117 MOVS r1,#0x17 +0022b6 2264 MOVS r2,#0x64 +0022b8 230c MOVS r3,#0xc +0022ba 9306 STR r3,[sp,#0x18] +0022bc 9207 STR r2,[sp,#0x1c] +0022be 9108 STR r1,[sp,#0x20] +0022c0 9009 STR r0,[sp,#0x24] +0022c2 2000 MOVS r0,#0 +0022c4 9002 STR r0,[sp,#8] +0022c6 9003 STR r0,[sp,#0xc] +0022c8 9004 STR r0,[sp,#0x10] +0022ca 9005 STR r0,[sp,#0x14] +0022cc 2004 MOVS r0,#4 +0022ce 2140 MOVS r1,#0x40 +0022d0 230a MOVS r3,#0xa +0022d2 2200 MOVS r2,#0 +0022d4 9100 STR r1,[sp,#0] +0022d6 9001 STR r0,[sp,#4] +0022d8 211c MOVS r1,#0x1c +0022da 48c1 LDR r0,|L3.9696| +0022dc 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0022de f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;1094 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;1095 DSI_VC_0, +;;;1096 10, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x64, 0x17, 0x88); +;;;1097 ret_7F_count = 1; +0022e2 2001 MOVS r0,#1 +0022e4 49ca LDR r1,|L3.9744| +0022e6 7008 STRB r0,[r1,#0] +0022e8 e03e B |L3.9064| + |L3.8938| +;;;1098 } +;;;1099 else if(ret_7F_count == 1) +0022ea 48c9 LDR r0,|L3.9744| +0022ec 7800 LDRB r0,[r0,#0] ; ret_7F_count +0022ee 2801 CMP r0,#1 +0022f0 d115 BNE |L3.8990| +;;;1100 { +;;;1101 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +0022f2 2000 MOVS r0,#0 +0022f4 9006 STR r0,[sp,#0x18] +0022f6 9007 STR r0,[sp,#0x1c] +0022f8 9008 STR r0,[sp,#0x20] +0022fa 9009 STR r0,[sp,#0x24] +0022fc 9002 STR r0,[sp,#8] +0022fe 9003 STR r0,[sp,#0xc] +002300 9004 STR r0,[sp,#0x10] +002302 9005 STR r0,[sp,#0x14] +002304 9000 STR r0,[sp,#0] +002306 230a MOVS r3,#0xa +002308 4602 MOV r2,r0 +00230a 211c MOVS r1,#0x1c +00230c 9001 STR r0,[sp,#4] +00230e 48b4 LDR r0,|L3.9696| +002310 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +002312 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;1102 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;1103 DSI_VC_0, +;;;1104 10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00); +;;;1105 ret_7F_count = 2; +002316 2002 MOVS r0,#2 +002318 49bd LDR r1,|L3.9744| +00231a 7008 STRB r0,[r1,#0] +00231c e024 B |L3.9064| + |L3.8990| +;;;1106 } +;;;1107 else if(ret_7F_count == 2) +00231e 48bc LDR r0,|L3.9744| +002320 7800 LDRB r0,[r0,#0] ; ret_7F_count +002322 2802 CMP r0,#2 +002324 d120 BNE |L3.9064| +;;;1108 { +;;;1109 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +002326 2000 MOVS r0,#0 +002328 9006 STR r0,[sp,#0x18] +00232a 9007 STR r0,[sp,#0x1c] +00232c 9008 STR r0,[sp,#0x20] +00232e 9009 STR r0,[sp,#0x24] +002330 9002 STR r0,[sp,#8] +002332 9003 STR r0,[sp,#0xc] +002334 9004 STR r0,[sp,#0x10] +002336 9005 STR r0,[sp,#0x14] +002338 9000 STR r0,[sp,#0] +00233a 230a MOVS r3,#0xa +00233c 4602 MOV r2,r0 +00233e 211c MOVS r1,#0x1c +002340 9001 STR r0,[sp,#4] +002342 48a7 LDR r0,|L3.9696| +002344 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +002346 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;1110 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;1111 DSI_VC_0, +;;;1112 10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00); +;;;1113 ret_7F_count = 0; +00234a 2000 MOVS r0,#0 +00234c 49b0 LDR r1,|L3.9744| +00234e e000 B |L3.9042| + |L3.9040| +002350 e00b B |L3.9066| + |L3.9042| +002352 7008 STRB r0,[r1,#0] +002354 e008 B |L3.9064| + |L3.9046| +;;;1114 } +;;;1115 else +;;;1116 { +;;;1117 //printf("7F err return_size[%d] ret_7F_count[%d]\n", return_size, ret_7F_count); +;;;1118 } +;;;1119 } +;;;1120 else +;;;1121 { +;;;1122 TAU_LOGD("7F resp error [%d]!\n", return_size); +002356 bf00 NOP +002358 4aa2 LDR r2,|L3.9700| +00235a 3236 ADDS r2,r2,#0x36 +00235c 49a2 LDR r1,|L3.9704| +00235e a0ad ADR r0,|L3.9748| +002360 9b2b LDR r3,[sp,#0xac] +002362 f7fffffe BL LOG_printf +002366 bf00 NOP + |L3.9064| +;;;1123 } +;;;1124 } +002368 e196 B |L3.9880| + |L3.9066| +;;;1125 else if(dcs_cmd == 0x9A) +00236a 982d LDR r0,[sp,#0xb4] +00236c 289a CMP r0,#0x9a +00236e d10f BNE |L3.9104| +;;;1126 { +;;;1127 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +002370 2050 MOVS r0,#0x50 +002372 21cf MOVS r1,#0xcf +002374 223a MOVS r2,#0x3a +002376 232f MOVS r3,#0x2f +002378 9300 STR r3,[sp,#0] +00237a 9201 STR r2,[sp,#4] +00237c 9102 STR r1,[sp,#8] +00237e 9003 STR r0,[sp,#0xc] +002380 2304 MOVS r3,#4 +002382 2200 MOVS r2,#0 +002384 211c MOVS r1,#0x1c +002386 4896 LDR r0,|L3.9696| +002388 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +00238a f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +00238e e183 B |L3.9880| + |L3.9104| +;;;1128 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;1129 DSI_VC_0, +;;;1130 4, 0x2F, 0x3A, 0xCF, 0x50); +;;;1131 } +;;;1132 else if(dcs_cmd == 0x0E) +002390 982d LDR r0,[sp,#0xb4] +002392 280e CMP r0,#0xe +002394 d109 BNE |L3.9130| +;;;1133 { +;;;1134 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +002396 2080 MOVS r0,#0x80 +002398 2301 MOVS r3,#1 +00239a 2200 MOVS r2,#0 +00239c 2121 MOVS r1,#0x21 +00239e 9000 STR r0,[sp,#0] +0023a0 488f LDR r0,|L3.9696| +0023a2 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0023a4 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +0023a8 e176 B |L3.9880| + |L3.9130| +;;;1135 DSI_ACK_DT_DSC_SHORT_RESPONSE_1B, +;;;1136 DSI_VC_0, +;;;1137 1, 0x80); +;;;1138 } +;;;1139 else if(dcs_cmd == 0x0F) +0023aa 982d LDR r0,[sp,#0xb4] +0023ac 280f CMP r0,#0xf +0023ae d109 BNE |L3.9156| +;;;1140 { +;;;1141 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +0023b0 20c0 MOVS r0,#0xc0 +0023b2 2301 MOVS r3,#1 +0023b4 2200 MOVS r2,#0 +0023b6 2121 MOVS r1,#0x21 +0023b8 9000 STR r0,[sp,#0] +0023ba 4889 LDR r0,|L3.9696| +0023bc 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0023be f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +0023c2 e169 B |L3.9880| + |L3.9156| +;;;1142 DSI_ACK_DT_DSC_SHORT_RESPONSE_1B, +;;;1143 DSI_VC_0, +;;;1144 1, 0xC0); +;;;1145 } +;;;1146 else if(dcs_cmd == 0x87) +0023c4 982d LDR r0,[sp,#0xb4] +0023c6 2887 CMP r0,#0x87 +0023c8 d109 BNE |L3.9182| +;;;1147 { +;;;1148 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +0023ca 2000 MOVS r0,#0 +0023cc 2301 MOVS r3,#1 +0023ce 4602 MOV r2,r0 +0023d0 2121 MOVS r1,#0x21 +0023d2 9000 STR r0,[sp,#0] +0023d4 4882 LDR r0,|L3.9696| +0023d6 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0023d8 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +0023dc e15c B |L3.9880| + |L3.9182| +;;;1149 DSI_ACK_DT_DSC_SHORT_RESPONSE_1B, +;;;1150 DSI_VC_0, +;;;1151 1, 0x00); +;;;1152 } +;;;1153 else if(dcs_cmd == 0xFE) +0023de 982d LDR r0,[sp,#0xb4] +0023e0 28fe CMP r0,#0xfe +0023e2 d109 BNE |L3.9208| +;;;1154 { +;;;1155 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +0023e4 2010 MOVS r0,#0x10 +0023e6 2301 MOVS r3,#1 +0023e8 2200 MOVS r2,#0 +0023ea 2121 MOVS r1,#0x21 +0023ec 9000 STR r0,[sp,#0] +0023ee 487c LDR r0,|L3.9696| +0023f0 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0023f2 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +0023f6 e14f B |L3.9880| + |L3.9208| +;;;1156 DSI_ACK_DT_DSC_SHORT_RESPONSE_1B, +;;;1157 DSI_VC_0, +;;;1158 1, 0x10); +;;;1159 } +;;;1160 else if(dcs_cmd == 0x0A) +0023f8 982d LDR r0,[sp,#0xb4] +0023fa 280a CMP r0,#0xa +0023fc d11d BNE |L3.9274| +;;;1161 { +;;;1162 uint32_t return_size = hal_dsi_rx_ctrl_get_max_ret_size(g_rx_ctrl_handle); +0023fe 4878 LDR r0,|L3.9696| +002400 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +002402 f7fffffe BL hal_dsi_rx_ctrl_get_max_ret_size +002406 902b STR r0,[sp,#0xac] +;;;1163 if(return_size == 3) +002408 982b LDR r0,[sp,#0xac] +00240a 2803 CMP r0,#3 +00240c d10b BNE |L3.9254| +;;;1164 { +;;;1165 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +00240e 209f MOVS r0,#0x9f +002410 9000 STR r0,[sp,#0] +002412 9001 STR r0,[sp,#4] +002414 2303 MOVS r3,#3 +002416 2200 MOVS r2,#0 +002418 211c MOVS r1,#0x1c +00241a 9002 STR r0,[sp,#8] +00241c 4870 LDR r0,|L3.9696| +00241e 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +002420 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +002424 e008 B |L3.9272| + |L3.9254| +;;;1166 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;1167 DSI_VC_0, +;;;1168 3, 0x9F, 0x9F, 0x9F); +;;;1169 } +;;;1170 else +;;;1171 { +;;;1172 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +002426 209f MOVS r0,#0x9f +002428 2301 MOVS r3,#1 +00242a 2200 MOVS r2,#0 +00242c 2121 MOVS r1,#0x21 +00242e 9000 STR r0,[sp,#0] +002430 486b LDR r0,|L3.9696| +002432 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +002434 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd + |L3.9272| +;;;1173 DSI_ACK_DT_DSC_SHORT_RESPONSE_1B, +;;;1174 DSI_VC_0, +;;;1175 1, 0x9F); +;;;1176 } +;;;1177 } +002438 e12e B |L3.9880| + |L3.9274| +;;;1178 else if(dcs_cmd == 0x05) +00243a 982d LDR r0,[sp,#0xb4] +00243c 2805 CMP r0,#5 +00243e d109 BNE |L3.9300| +;;;1179 { +;;;1180 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +002440 2000 MOVS r0,#0 +002442 2301 MOVS r3,#1 +002444 4602 MOV r2,r0 +002446 2121 MOVS r1,#0x21 +002448 9000 STR r0,[sp,#0] +00244a 4865 LDR r0,|L3.9696| +00244c 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +00244e f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +002452 e121 B |L3.9880| + |L3.9300| +;;;1181 DSI_ACK_DT_DSC_SHORT_RESPONSE_1B, +;;;1182 DSI_VC_0, +;;;1183 1, 0x00); +;;;1184 } +;;;1185 else if(dcs_cmd == 0x0F) +002454 982d LDR r0,[sp,#0xb4] +002456 280f CMP r0,#0xf +002458 d109 BNE |L3.9326| +;;;1186 { +;;;1187 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +00245a 20c0 MOVS r0,#0xc0 +00245c 2301 MOVS r3,#1 +00245e 2200 MOVS r2,#0 +002460 2121 MOVS r1,#0x21 +002462 9000 STR r0,[sp,#0] +002464 485e LDR r0,|L3.9696| +002466 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +002468 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +00246c e114 B |L3.9880| + |L3.9326| +;;;1188 DSI_ACK_DT_DSC_SHORT_RESPONSE_1B, +;;;1189 DSI_VC_0, +;;;1190 1, 0xC0); +;;;1191 } +;;;1192 else if(dcs_cmd == 0x04) +00246e 982d LDR r0,[sp,#0xb4] +002470 2804 CMP r0,#4 +002472 d10d BNE |L3.9360| +;;;1193 { +;;;1194 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +002474 2005 MOVS r0,#5 +002476 2115 MOVS r1,#0x15 +002478 22a1 MOVS r2,#0xa1 +00247a 2303 MOVS r3,#3 +00247c 9200 STR r2,[sp,#0] +00247e 9101 STR r1,[sp,#4] +002480 9002 STR r0,[sp,#8] +002482 2200 MOVS r2,#0 +002484 211c MOVS r1,#0x1c +002486 4856 LDR r0,|L3.9696| +002488 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +00248a f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +00248e e103 B |L3.9880| + |L3.9360| +;;;1195 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;1196 DSI_VC_0, +;;;1197 3, 0xA1, 0x15, 0x05); +;;;1198 } +;;;1199 else if(dcs_cmd == 0xEA) +002490 982d LDR r0,[sp,#0xb4] +002492 28ea CMP r0,#0xea +002494 d10d BNE |L3.9394| +;;;1200 { +;;;1201 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +002496 2000 MOVS r0,#0 +002498 9001 STR r0,[sp,#4] +00249a 9002 STR r0,[sp,#8] +00249c 9003 STR r0,[sp,#0xc] +00249e 9004 STR r0,[sp,#0x10] +0024a0 2305 MOVS r3,#5 +0024a2 4602 MOV r2,r0 +0024a4 211c MOVS r1,#0x1c +0024a6 9000 STR r0,[sp,#0] +0024a8 484d LDR r0,|L3.9696| +0024aa 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0024ac f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +0024b0 e0f2 B |L3.9880| + |L3.9394| +;;;1202 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;1203 DSI_VC_0, +;;;1204 5, 0x00, 0x00, 0x00, 0x00, 0x00); +;;;1205 } +;;;1206 else if(dcs_cmd == 0x5A) +0024b2 982d LDR r0,[sp,#0xb4] +0024b4 285a CMP r0,#0x5a +0024b6 d17d BNE |L3.9652| +;;;1207 { +;;;1208 uint32_t return_size = hal_dsi_rx_ctrl_get_max_ret_size(g_rx_ctrl_handle); +0024b8 4849 LDR r0,|L3.9696| +0024ba 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0024bc f7fffffe BL hal_dsi_rx_ctrl_get_max_ret_size +0024c0 902b STR r0,[sp,#0xac] +;;;1209 if(return_size == 41) +0024c2 982b LDR r0,[sp,#0xac] +0024c4 2829 CMP r0,#0x29 +0024c6 d176 BNE |L3.9654| +;;;1210 { +;;;1211 static uint8_t ret_5A_count = 0; +;;;1212 if(ret_5A_count == 0) +0024c8 485b LDR r0,|L3.9784| +0024ca 7800 LDRB r0,[r0,#0] ; ret_5A_count +0024cc 2800 CMP r0,#0 +0024ce d136 BNE |L3.9534| +;;;1213 { +;;;1214 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +0024d0 9025 STR r0,[sp,#0x94] +0024d2 9026 STR r0,[sp,#0x98] +0024d4 9027 STR r0,[sp,#0x9c] +0024d6 9028 STR r0,[sp,#0xa0] +0024d8 9021 STR r0,[sp,#0x84] +0024da 9022 STR r0,[sp,#0x88] +0024dc 9023 STR r0,[sp,#0x8c] +0024de 9024 STR r0,[sp,#0x90] +0024e0 901d STR r0,[sp,#0x74] +0024e2 901e STR r0,[sp,#0x78] +0024e4 901f STR r0,[sp,#0x7c] +0024e6 9020 STR r0,[sp,#0x80] +0024e8 9019 STR r0,[sp,#0x64] +0024ea 901a STR r0,[sp,#0x68] +0024ec 901b STR r0,[sp,#0x6c] +0024ee 901c STR r0,[sp,#0x70] +0024f0 9015 STR r0,[sp,#0x54] +0024f2 9016 STR r0,[sp,#0x58] +0024f4 9017 STR r0,[sp,#0x5c] +0024f6 9018 STR r0,[sp,#0x60] +0024f8 9011 STR r0,[sp,#0x44] +0024fa 9012 STR r0,[sp,#0x48] +0024fc 9013 STR r0,[sp,#0x4c] +0024fe 9014 STR r0,[sp,#0x50] +002500 900d STR r0,[sp,#0x34] +002502 900e STR r0,[sp,#0x38] +002504 900f STR r0,[sp,#0x3c] +002506 9010 STR r0,[sp,#0x40] +002508 9009 STR r0,[sp,#0x24] +00250a 900a STR r0,[sp,#0x28] +00250c 900b STR r0,[sp,#0x2c] +00250e 900c STR r0,[sp,#0x30] +002510 2003 MOVS r0,#3 +002512 2100 MOVS r1,#0 +002514 9105 STR r1,[sp,#0x14] +002516 9106 STR r1,[sp,#0x18] +002518 2201 MOVS r2,#1 +00251a 9107 STR r1,[sp,#0x1c] +00251c 9101 STR r1,[sp,#4] +00251e 9103 STR r1,[sp,#0xc] +002520 9202 STR r2,[sp,#8] +002522 2329 MOVS r3,#0x29 +002524 9200 STR r2,[sp,#0] +002526 9104 STR r1,[sp,#0x10] +002528 9008 STR r0,[sp,#0x20] +00252a 460a MOV r2,r1 +00252c 211c MOVS r1,#0x1c +00252e 482c LDR r0,|L3.9696| +002530 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +002532 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;1215 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;1216 DSI_VC_0, +;;;1217 41, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 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); +;;;1218 ret_5A_count = 1; +002536 2001 MOVS r0,#1 +002538 493f LDR r1,|L3.9784| +00253a 7008 STRB r0,[r1,#0] +00253c e093 B |L3.9830| + |L3.9534| +;;;1219 } +;;;1220 else if(ret_5A_count == 1) +00253e 483e LDR r0,|L3.9784| +002540 7800 LDRB r0,[r0,#0] ; ret_5A_count +002542 2801 CMP r0,#1 +002544 d17b BNE |L3.9790| +;;;1221 { +;;;1222 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, +002546 20c8 MOVS r0,#0xc8 +002548 2100 MOVS r1,#0 +00254a 22a7 MOVS r2,#0xa7 +00254c 9125 STR r1,[sp,#0x94] +00254e 9226 STR r2,[sp,#0x98] +002550 9127 STR r1,[sp,#0x9c] +002552 9028 STR r0,[sp,#0xa0] +002554 20aa MOVS r0,#0xaa +002556 22c8 MOVS r2,#0xc8 +002558 9121 STR r1,[sp,#0x84] +00255a 9222 STR r2,[sp,#0x88] +00255c 9123 STR r1,[sp,#0x8c] +00255e 9024 STR r0,[sp,#0x90] +002560 20a7 MOVS r0,#0xa7 +002562 22aa MOVS r2,#0xaa +002564 911d STR r1,[sp,#0x74] +002566 921e STR r2,[sp,#0x78] +002568 911f STR r1,[sp,#0x7c] +00256a 9020 STR r0,[sp,#0x80] +00256c 20c8 MOVS r0,#0xc8 +00256e 22a7 MOVS r2,#0xa7 +002570 9119 STR r1,[sp,#0x64] +002572 921a STR r2,[sp,#0x68] +002574 911b STR r1,[sp,#0x6c] +002576 901c STR r0,[sp,#0x70] +002578 20aa MOVS r0,#0xaa +00257a 22c8 MOVS r2,#0xc8 +00257c 9115 STR r1,[sp,#0x54] +00257e 9216 STR r2,[sp,#0x58] +002580 9117 STR r1,[sp,#0x5c] +002582 9018 STR r0,[sp,#0x60] +002584 20a7 MOVS r0,#0xa7 +002586 22aa MOVS r2,#0xaa +002588 9111 STR r1,[sp,#0x44] +00258a 9212 STR r2,[sp,#0x48] +00258c 9113 STR r1,[sp,#0x4c] +00258e 9014 STR r0,[sp,#0x50] +002590 20f7 MOVS r0,#0xf7 +002592 22ee MOVS r2,#0xee +002594 910d STR r1,[sp,#0x34] +002596 920e STR r2,[sp,#0x38] +002598 910f STR r1,[sp,#0x3c] +00259a 9010 STR r0,[sp,#0x40] +00259c 20ef MOVS r0,#0xef +00259e 22ff MOVS r2,#0xff +0025a0 2301 MOVS r3,#1 +0025a2 9309 STR r3,[sp,#0x24] +0025a4 920a STR r2,[sp,#0x28] +0025a6 910b STR r1,[sp,#0x2c] +0025a8 900c STR r0,[sp,#0x30] +0025aa 2003 MOVS r0,#3 +0025ac 9305 STR r3,[sp,#0x14] +0025ae 9206 STR r2,[sp,#0x18] +0025b0 9107 STR r1,[sp,#0x1c] +0025b2 e001 B |L3.9656| + |L3.9652| +0025b4 e058 B |L3.9832| + |L3.9654| +0025b6 e04d B |L3.9812| + |L3.9656| +0025b8 9008 STR r0,[sp,#0x20] +0025ba 201c MOVS r0,#0x1c +0025bc 2203 MOVS r2,#3 +0025be 9101 STR r1,[sp,#4] +0025c0 9202 STR r2,[sp,#8] +0025c2 9103 STR r1,[sp,#0xc] +0025c4 9004 STR r0,[sp,#0x10] +0025c6 2001 MOVS r0,#1 +0025c8 2329 MOVS r3,#0x29 +0025ca 460a MOV r2,r1 +0025cc 211c MOVS r1,#0x1c +0025ce 9000 STR r0,[sp,#0] +0025d0 4803 LDR r0,|L3.9696| +0025d2 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0025d4 f7fffffe BL hal_dsi_rx_ctrl_send_ack_cmd +;;;1223 DSI_ACK_DT_DSC_LONG_RESPONSE, +;;;1224 DSI_VC_0, +;;;1225 41, 0x01, 0x00, 0x03, 0x00, 0x1C, 0x01, 0xFF, 0x00, 0x03, 0x01, 0xFF, 0x00, 0xEF, 0x00, 0xEE, 0x00, 0xF7, 0x00, 0xAA, 0x00, 0xA7, 0x00, 0xC8, 0x00, 0xAA, 0x00, 0xA7, 0x00, 0xC8, 0x00, 0xAA, 0x00, 0xA7, 0x00, 0xC8, 0x00, 0xAA, 0x00, 0xA7, 0x00, 0xC8); +;;;1226 ret_5A_count = 0; +0025d8 2000 MOVS r0,#0 +0025da 4917 LDR r1,|L3.9784| +0025dc 7008 STRB r0,[r1,#0] +0025de e042 B |L3.9830| + |L3.9696| + DCD g_rx_ctrl_handle + |L3.9700| + DCD 0x0000042c + |L3.9704| + DCD ||i.ap_dcs_read||+0xc9c + |L3.9708| +0025ec 5b25735d DCB "[%s] (%04d) A1 resp error [%d]!\n",0 +0025f0 20282530 +0025f4 34642920 +0025f8 41312072 +0025fc 65737020 +002600 6572726f +002604 72205b25 +002608 645d210a +00260c 00 +00260d 00 DCB 0 +00260e 00 DCB 0 +00260f 00 DCB 0 + |L3.9744| + DCD ret_7F_count + |L3.9748| +002614 5b25735d DCB "[%s] (%04d) 7F resp error [%d]!\n",0 +002618 20282530 +00261c 34642920 +002620 37462072 +002624 65737020 +002628 6572726f +00262c 72205b25 +002630 645d210a +002634 00 +002635 00 DCB 0 +002636 00 DCB 0 +002637 00 DCB 0 + |L3.9784| + DCD ret_5A_count +00263c e7ff B |L3.9790| + |L3.9790| +;;;1227 } +;;;1228 else +;;;1229 { +;;;1230 TAU_LOGD("5A err return_size[%d] ret_5A_count[%d]\n", return_size, ret_5A_count); +00263e bf00 NOP +002640 4817 LDR r0,|L3.9888| +002642 7800 LDRB r0,[r0,#0] ; ret_5A_count +002644 9000 STR r0,[sp,#0] +002646 4a17 LDR r2,|L3.9892| +002648 4917 LDR r1,|L3.9896| +00264a a018 ADR r0,|L3.9900| +00264c 9b2b LDR r3,[sp,#0xac] +00264e f7fffffe BL LOG_printf +002652 e008 B |L3.9830| + |L3.9812| +;;;1231 } +;;;1232 } +;;;1233 else +;;;1234 { +;;;1235 TAU_LOGD("resp error [%d]!\n", return_size); +002654 bf00 NOP +002656 4a13 LDR r2,|L3.9892| +002658 1d52 ADDS r2,r2,#5 +00265a 4913 LDR r1,|L3.9896| +00265c a021 ADR r0,|L3.9956| +00265e 9b2b LDR r3,[sp,#0xac] +002660 f7fffffe BL LOG_printf +002664 bf00 NOP + |L3.9830| +;;;1236 } +;;;1237 } +002666 e017 B |L3.9880| + |L3.9832| +;;;1238 else if (dcs_cmd == 0x01) +002668 982d LDR r0,[sp,#0xb4] +00266a 2801 CMP r0,#1 +00266c d105 BNE |L3.9850| +;;;1239 { +;;;1240 ap_get_tp_calibration_status_01(g_rx_ctrl_handle,param); +00266e 4825 LDR r0,|L3.9988| +002670 992e LDR r1,[sp,#0xb8] +002672 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +002674 f7fffffe BL ap_get_tp_calibration_status_01 +002678 e00e B |L3.9880| + |L3.9850| +;;;1241 } +;;;1242 else +;;;1243 { +;;;1244 TAU_LOGD("r %x ng need return [%d]\n", dcs_cmd, hal_dsi_rx_ctrl_get_max_ret_size(g_rx_ctrl_handle)); +00267a bf00 NOP +00267c 4821 LDR r0,|L3.9988| +00267e 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +002680 f7fffffe BL hal_dsi_rx_ctrl_get_max_ret_size +002684 902b STR r0,[sp,#0xac] +002686 9000 STR r0,[sp,#0] +002688 4a06 LDR r2,|L3.9892| +00268a 320e ADDS r2,r2,#0xe +00268c 4906 LDR r1,|L3.9896| +00268e a01e ADR r0,|L3.9992| +002690 9b2d LDR r3,[sp,#0xb4] +002692 f7fffffe BL LOG_printf +002696 bf00 NOP + |L3.9880| +;;;1245 } +;;;1246 return true; +002698 2001 MOVS r0,#1 +;;;1247 } +00269a b02f ADD sp,sp,#0xbc +00269c bd00 POP {pc} +;;;1248 /* PPS update callback 用于分辨率切换case */ + ENDP + +00269e 0000 DCW 0x0000 + |L3.9888| + DCD ret_5A_count + |L3.9892| + DCD 0x000004ce + |L3.9896| + DCD ||i.ap_dcs_read||+0xc9c + |L3.9900| +0026ac 5b25735d DCB "[%s] (%04d) 5A err return_size[%d] ret_5A_count[%d]\n",0 +0026b0 20282530 +0026b4 34642920 +0026b8 35412065 +0026bc 72722072 +0026c0 65747572 +0026c4 6e5f7369 +0026c8 7a655b25 +0026cc 645d2072 +0026d0 65745f35 +0026d4 415f636f +0026d8 756e745b +0026dc 25645d0a +0026e0 00 +0026e1 00 DCB 0 +0026e2 00 DCB 0 +0026e3 00 DCB 0 + |L3.9956| +0026e4 5b25735d DCB "[%s] (%04d) resp error [%d]!\n",0 +0026e8 20282530 +0026ec 34642920 +0026f0 72657370 +0026f4 20657272 +0026f8 6f72205b +0026fc 25645d21 +002700 0a00 +002702 00 DCB 0 +002703 00 DCB 0 + |L3.9988| + DCD g_rx_ctrl_handle + |L3.9992| +002708 5b25735d DCB "[%s] (%04d) r %x ng need return [%d]\n",0 +00270c 20282530 +002710 34642920 +002714 72202578 +002718 206e6720 +00271c 6e656564 +002720 20726574 +002724 75726e20 +002728 5b25645d +00272c 0a00 +00272e 00 DCB 0 +00272f 00 DCB 0 + + AREA ||i.ap_get_reg_df||, CODE, READONLY, ALIGN=1 + + ap_get_reg_df PROC +;;;1393 +;;;1394 static bool ap_get_reg_df(hal_dsi_rx_ctrl_handle_t* handler, hal_dcs_packet_t* dcs_packet) +000000 b5f0 PUSH {r4-r7,lr} +;;;1395 { +000002 b08f SUB sp,sp,#0x3c +000004 460c MOV r4,r1 +;;;1396 uint8_t panel_ccm_en = dcs_packet->packet_param[0x00]; +000006 68e0 LDR r0,[r4,#0xc] +000008 7805 LDRB r5,[r0,#0] +;;;1397 uint16_t panel_r = 255; +00000a 26ff MOVS r6,#0xff +;;;1398 uint16_t panel_g = 255; +00000c 27ff MOVS r7,#0xff +;;;1399 uint16_t panel_b = 255; +00000e 20ff MOVS r0,#0xff +000010 900e STR r0,[sp,#0x38] +;;;1400 +;;;1401 if(panel_ccm_en == 0x00) //护眼开 /* CCM adjust for screen in eye-shield mode */ +000012 2d00 CMP r5,#0 +000014 d107 BNE |L4.38| +;;;1402 { +;;;1403 //TAU_LOGD("00"); +;;;1404 panel_g = dcs_packet->packet_param[0x33]; +000016 68e0 LDR r0,[r4,#0xc] +000018 3020 ADDS r0,r0,#0x20 +00001a 7cc7 LDRB r7,[r0,#0x13] +;;;1405 panel_b = dcs_packet->packet_param[0x35]; +00001c 68e0 LDR r0,[r4,#0xc] +00001e 3020 ADDS r0,r0,#0x20 +000020 7d40 LDRB r0,[r0,#0x15] +000022 900e STR r0,[sp,#0x38] +000024 e015 B |L4.82| + |L4.38| +;;;1406 } +;;;1407 else if(panel_ccm_en == 0x01) //鲜明 /* CCM adjust for screen in self-adaption mode */ +000026 2d01 CMP r5,#1 +000028 d10a BNE |L4.64| +;;;1408 { +;;;1409 //TAU_LOGD("01"); +;;;1410 +;;;1411 panel_r = dcs_packet->packet_param[0x31]; +00002a 68e0 LDR r0,[r4,#0xc] +00002c 3020 ADDS r0,r0,#0x20 +00002e 7c46 LDRB r6,[r0,#0x11] +;;;1412 panel_g = dcs_packet->packet_param[0x33]; +000030 68e0 LDR r0,[r4,#0xc] +000032 3020 ADDS r0,r0,#0x20 +000034 7cc7 LDRB r7,[r0,#0x13] +;;;1413 panel_b = dcs_packet->packet_param[0x35]; +000036 68e0 LDR r0,[r4,#0xc] +000038 3020 ADDS r0,r0,#0x20 +00003a 7d40 LDRB r0,[r0,#0x15] +00003c 900e STR r0,[sp,#0x38] +00003e e008 B |L4.82| + |L4.64| +;;;1414 } +;;;1415 else if(panel_ccm_en == 0x11) ////自然 +000040 2d11 CMP r5,#0x11 +000042 d106 BNE |L4.82| +;;;1416 { +;;;1417 //TAU_LOGD("11"); +;;;1418 +;;;1419 panel_g = dcs_packet->packet_param[0x33]; +000044 68e0 LDR r0,[r4,#0xc] +000046 3020 ADDS r0,r0,#0x20 +000048 7cc7 LDRB r7,[r0,#0x13] +;;;1420 panel_b = dcs_packet->packet_param[0x35]; +00004a 68e0 LDR r0,[r4,#0xc] +00004c 3020 ADDS r0,r0,#0x20 +00004e 7d40 LDRB r0,[r0,#0x15] +000050 900e STR r0,[sp,#0x38] + |L4.82| +;;;1421 } +;;;1422 +;;;1423 /* CCM control red, green, blue */ +;;;1424 ccm_coef_t coef ; +;;;1425 coef.coef_c00 = panel_r; +000052 9605 STR r6,[sp,#0x14] +;;;1426 coef.coef_c01 = 0; +000054 2000 MOVS r0,#0 +000056 9006 STR r0,[sp,#0x18] +;;;1427 coef.coef_c02 = 0; +000058 9007 STR r0,[sp,#0x1c] +;;;1428 coef.coef_c10 = 0; +00005a 9008 STR r0,[sp,#0x20] +;;;1429 coef.coef_c11 = panel_g; +00005c 9709 STR r7,[sp,#0x24] +;;;1430 coef.coef_c12 = 0; +00005e 900a STR r0,[sp,#0x28] +;;;1431 coef.coef_c20 = 0; +000060 900b STR r0,[sp,#0x2c] +;;;1432 coef.coef_c21 = 0; +000062 900c STR r0,[sp,#0x30] +;;;1433 coef.coef_c22 = panel_b; +000064 980e LDR r0,[sp,#0x38] +000066 900d STR r0,[sp,#0x34] +;;;1434 hal_dsi_tx_ctrl_set_ccm(coef); +000068 2214 MOVS r2,#0x14 +00006a a909 ADD r1,sp,#0x24 +00006c 4668 MOV r0,sp +00006e f7fffffe BL __aeabi_memcpy4 +000072 a805 ADD r0,sp,#0x14 +000074 c80f LDM r0,{r0-r3} +000076 f7fffffe BL hal_dsi_tx_ctrl_set_ccm +;;;1435 return true; +00007a 2001 MOVS r0,#1 +;;;1436 } +00007c b00f ADD sp,sp,#0x3c +00007e bdf0 POP {r4-r7,pc} +;;;1437 static bool ap_MIPI_RX_CMD_bb(hal_dsi_rx_ctrl_handle_t* handler, hal_dcs_packet_t* dcs_packet) + ENDP + + + AREA ||i.ap_reset_cb||, CODE, READONLY, ALIGN=2 + + ap_reset_cb PROC +;;;149 +;;;150 static void ap_reset_cb(void *data) +000000 bf00 NOP +;;;151 { +;;;152 /* 切换电源 */ +;;;153 // hal_gpio_set_output_data_ex(POWER_IO_B, IO_LVL_HIGH, POWER_IO_A, IO_LVL_LOW); +;;;154 // hal_gpio_set_output_data(POWER_IO_A, IO_LVL_LOW);// +;;;155 /* 打开VCC供电 */ +;;;156 TAU_LOGD("disable reset!!!!!!!!!!!!!!!!!!!!!!!!!!"); +000002 229c MOVS r2,#0x9c +000004 a111 ADR r1,|L5.76| +000006 a014 ADR r0,|L5.88| +000008 f7fffffe BL LOG_printf +00000c bf00 NOP +;;;157 hal_system_set_pvd(true); +00000e 2001 MOVS r0,#1 +000010 f7fffffe BL hal_system_set_pvd +;;;158 hal_system_set_vcc(true); +000014 2001 MOVS r0,#1 +000016 f7fffffe BL hal_system_set_vcc +;;;159 NVIC_SystemReset(); +00001a bf00 NOP +00001c bf00 NOP +00001e bf00 NOP +000020 bf00 NOP +000022 bf00 NOP +000024 f3bf8f4f DSB +000028 bf00 NOP +00002a bf00 NOP +00002c bf00 NOP +00002e 4817 LDR r0,|L5.140| +000030 4917 LDR r1,|L5.144| +000032 60c8 STR r0,[r1,#0xc] +000034 bf00 NOP +000036 bf00 NOP +000038 bf00 NOP +00003a f3bf8f4f DSB +00003e bf00 NOP +000040 bf00 NOP +000042 bf00 NOP +000044 bf00 NOP + |L5.70| +000046 bf00 NOP +000048 e7fd B |L5.70| +;;;160 } +;;;161 #endif + ENDP + +00004a 0000 DCW 0x0000 + |L5.76| +00004c 53323150 DCB "S21P_demo",0 +000050 5f64656d +000054 6f00 +000056 00 DCB 0 +000057 00 DCB 0 + |L5.88| +000058 5b25735d DCB "[%s] (%04d) disable reset!!!!!!!!!!!!!!!!!!!!!!!!!!",0 +00005c 20282530 +000060 34642920 +000064 64697361 +000068 626c6520 +00006c 72657365 +000070 74212121 +000074 21212121 +000078 21212121 +00007c 21212121 +000080 21212121 +000084 21212121 +000088 21212100 + |L5.140| + DCD 0x05fa0004 + |L5.144| + DCD 0xe000ed00 + + AREA ||i.ap_set_backlight_51||, CODE, READONLY, ALIGN=1 + + ap_set_backlight_51 PROC +;;;1381 +;;;1382 static bool ap_set_backlight_51(hal_dsi_rx_ctrl_handle_t* handler, hal_dcs_packet_t* dcs_packet) +000000 b53e PUSH {r1-r5,lr} +;;;1383 { +000002 4605 MOV r5,r0 +000004 460c MOV r4,r1 +;;;1384 uint8_t cmd_data[2]; +;;;1385 +;;;1386 cmd_data[0] = dcs_packet->packet_param[0]; +000006 68e0 LDR r0,[r4,#0xc] +000008 7801 LDRB r1,[r0,#0] +00000a 4668 MOV r0,sp +00000c 7201 STRB r1,[r0,#8] +;;;1387 cmd_data[1] = dcs_packet->packet_param[1]; +00000e 68e0 LDR r0,[r4,#0xc] +000010 7841 LDRB r1,[r0,#1] +000012 4668 MOV r0,sp +000014 7241 STRB r1,[r0,#9] +;;;1388 if(cmd_data[0] == 0x00 && cmd_data[1] == 0x08) return true; +000016 7a00 LDRB r0,[r0,#8] +000018 2800 CMP r0,#0 +00001a d105 BNE |L6.40| +00001c 4668 MOV r0,sp +00001e 7a40 LDRB r0,[r0,#9] +000020 2808 CMP r0,#8 +000022 d101 BNE |L6.40| +000024 2001 MOVS r0,#1 + |L6.38| +;;;1389 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x51, cmd_data[0], cmd_data[1]); +;;;1390 // TAU_LOGD("51:[%x]", (cmd_data[0] << 8) | cmd_data[1]); +;;;1391 return true; +;;;1392 } +000026 bd3e POP {r1-r5,pc} + |L6.40| +000028 4669 MOV r1,sp ;1389 +00002a 7a48 LDRB r0,[r1,#9] ;1389 +00002c 7a09 LDRB r1,[r1,#8] ;1389 +00002e 2351 MOVS r3,#0x51 ;1389 +000030 2203 MOVS r2,#3 ;1389 +000032 9100 STR r1,[sp,#0] ;1389 +000034 9001 STR r0,[sp,#4] ;1389 +000036 2100 MOVS r1,#0 ;1389 +000038 2039 MOVS r0,#0x39 ;1389 +00003a f7fffffe BL hal_dsi_tx_ctrl_write_cmd +00003e 2001 MOVS r0,#1 ;1391 +000040 e7f1 B |L6.38| +;;;1393 + ENDP + + + AREA ||i.ap_set_display_off||, CODE, READONLY, ALIGN=2 + + ap_set_display_off PROC +;;;1275 +;;;1276 static bool ap_set_display_off(hal_dsi_rx_ctrl_handle_t* handler, hal_dcs_packet_t* dcs_packet) +000000 b57c PUSH {r2-r6,lr} +;;;1277 { +000002 4604 MOV r4,r0 +000004 460d MOV r5,r1 +;;;1278 // hal_dsi_tx_ctrl_write_cmd(0x05, 0, 2, 0x28); +;;;1279 +;;;1280 // hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_LOW); +;;;1281 hal_dsi_rx_ctrl_set_sw_tear_mode(g_rx_ctrl_handle); +000006 4819 LDR r0,|L7.108| +000008 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +00000a f7fffffe BL hal_dsi_rx_ctrl_set_sw_tear_mode +;;;1282 hal_dsi_tx_ctrl_write_cmd(0x29, 0, 3, 0x51, 0x00, 0x00); +00000e 2000 MOVS r0,#0 +000010 9000 STR r0,[sp,#0] +000012 2351 MOVS r3,#0x51 +000014 2203 MOVS r2,#3 +000016 4601 MOV r1,r0 +000018 9001 STR r0,[sp,#4] +00001a 2029 MOVS r0,#0x29 +00001c f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1283 delayMs(10); +000020 200a MOVS r0,#0xa +000022 f7fffffe BL delayMs +;;;1284 hal_dsi_tx_ctrl_write_cmd(0x05, 0, 2, 0x28); +000026 2328 MOVS r3,#0x28 +000028 2202 MOVS r2,#2 +00002a 2100 MOVS r1,#0 +00002c 2005 MOVS r0,#5 +00002e f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1285 // delayMs(50); +;;;1286 hal_gpio_set_output_data(IO_PAD_ADCIN, IO_LVL_LOW); +000032 2100 MOVS r1,#0 +000034 2014 MOVS r0,#0x14 +000036 f7fffffe BL hal_gpio_set_output_data +;;;1287 +;;;1288 hal_dsi_tx_ctrl_write_cmd(0x05, 0, 2, 0x10); +00003a 2310 MOVS r3,#0x10 +00003c 2202 MOVS r2,#2 +00003e 2100 MOVS r1,#0 +000040 2005 MOVS r0,#5 +000042 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;1289 delayMs(50); +000046 2032 MOVS r0,#0x32 +000048 f7fffffe BL delayMs +;;;1290 hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_LOW); +00004c 2100 MOVS r1,#0 +00004e 2013 MOVS r0,#0x13 +000050 f7fffffe BL hal_gpio_set_output_data +;;;1291 #if ENABLE_TP_WAKE_UP +;;;1292 g_need_enter_sleep_mode = true; +000054 2001 MOVS r0,#1 +000056 4906 LDR r1,|L7.112| +000058 7008 STRB r0,[r1,#0] +;;;1293 #endif +;;;1294 TAU_LOGD("disp off \n"); +00005a bf00 NOP +00005c 4a05 LDR r2,|L7.116| +00005e a106 ADR r1,|L7.120| +000060 a008 ADR r0,|L7.132| +000062 f7fffffe BL LOG_printf +000066 bf00 NOP +;;;1295 return true; +000068 2001 MOVS r0,#1 +;;;1296 } +00006a bd7c POP {r2-r6,pc} +;;;1297 + ENDP + + |L7.108| + DCD g_rx_ctrl_handle + |L7.112| + DCD g_need_enter_sleep_mode + |L7.116| + DCD 0x0000050e + |L7.120| +000078 53323150 DCB "S21P_demo",0 +00007c 5f64656d +000080 6f00 +000082 00 DCB 0 +000083 00 DCB 0 + |L7.132| +000084 5b25735d DCB "[%s] (%04d) disp off \n",0 +000088 20282530 +00008c 34642920 +000090 64697370 +000094 206f6666 +000098 200a00 +00009b 00 DCB 0 + + AREA ||i.ap_set_display_on||, CODE, READONLY, ALIGN=2 + + ap_set_display_on PROC +;;;1269 +;;;1270 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} +;;;1271 { +000002 4604 MOV r4,r0 +000004 460d MOV r5,r1 +;;;1272 TAU_LOGD("disp on \n"); +000006 bf00 NOP +000008 229f MOVS r2,#0x9f +00000a 00d2 LSLS r2,r2,#3 +00000c a103 ADR r1,|L8.28| +00000e a006 ADR r0,|L8.40| +000010 f7fffffe BL LOG_printf +000014 bf00 NOP +;;;1273 return true; +000016 2001 MOVS r0,#1 +;;;1274 } +000018 bd70 POP {r4-r6,pc} +;;;1275 + ENDP + +00001a 0000 DCW 0x0000 + |L8.28| +00001c 53323150 DCB "S21P_demo",0 +000020 5f64656d +000024 6f00 +000026 00 DCB 0 +000027 00 DCB 0 + |L8.40| +000028 5b25735d DCB "[%s] (%04d) disp on \n",0 +00002c 20282530 +000030 34642920 +000034 64697370 +000038 206f6e20 +00003c 0a00 +00003e 00 DCB 0 +00003f 00 DCB 0 + + AREA ||i.ap_set_enter_sleep_mode||, CODE, READONLY, ALIGN=2 + + ap_set_enter_sleep_mode PROC +;;;1297 +;;;1298 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} +;;;1299 { +000002 4604 MOV r4,r0 +000004 460d MOV r5,r1 +;;;1300 /* hal_dsi_rx_ctrl_set_sw_tear_mode(g_rx_ctrl_handle); +;;;1301 hal_dsi_tx_ctrl_write_cmd(0x29, 0, 3, 0x51, 0x00, 0x00); +;;;1302 delayMs(10); +;;;1303 hal_dsi_tx_ctrl_write_cmd(0x05, 0, 2, 0x28); +;;;1304 // delayMs(50); +;;;1305 hal_gpio_set_output_data(IO_PAD_ADCIN, IO_LVL_LOW); +;;;1306 +;;;1307 hal_dsi_tx_ctrl_write_cmd(0x05, 0, 2, 0x10); +;;;1308 delayMs(50); +;;;1309 hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_LOW); +;;;1310 #if ENABLE_TP_WAKE_UP +;;;1311 g_need_enter_sleep_mode = true; +;;;1312 #endif +;;;1313 */ +;;;1314 TAU_LOGD("enter sleep mode"); +000006 bf00 NOP +000008 4a03 LDR r2,|L9.24| +00000a a104 ADR r1,|L9.28| +00000c a006 ADR r0,|L9.40| +00000e f7fffffe BL LOG_printf +000012 bf00 NOP +;;;1315 return true; +000014 2001 MOVS r0,#1 +;;;1316 } +000016 bd70 POP {r4-r6,pc} +;;;1317 + ENDP + + |L9.24| + DCD 0x00000522 + |L9.28| +00001c 53323150 DCB "S21P_demo",0 +000020 5f64656d +000024 6f00 +000026 00 DCB 0 +000027 00 DCB 0 + |L9.40| +000028 5b25735d DCB "[%s] (%04d) enter sleep mode",0 +00002c 20282530 +000030 34642920 +000034 656e7465 +000038 7220736c +00003c 65657020 +000040 6d6f6465 +000044 00 +000045 00 DCB 0 +000046 00 DCB 0 +000047 00 DCB 0 + + AREA ||i.ap_set_exit_sleep_mode||, CODE, READONLY, ALIGN=2 + + ap_set_exit_sleep_mode PROC +;;;1317 +;;;1318 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} +;;;1319 { +000002 4604 MOV r4,r0 +000004 460d MOV r5,r1 +;;;1320 TAU_LOGD("enter exit sleep mode\n"); +000006 bf00 NOP +000008 22a5 MOVS r2,#0xa5 +00000a 00d2 LSLS r2,r2,#3 +00000c a103 ADR r1,|L10.28| +00000e a006 ADR r0,|L10.40| +000010 f7fffffe BL LOG_printf +000014 bf00 NOP +;;;1321 /* AVDD 上电, 用于解决息屏开屏PPS不更新问题 */ +;;;1322 // hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_HIGH); +;;;1323 // hal_gpio_set_output_data(IO_PAD_ADCIN, IO_LVL_HIGH); +;;;1324 return true; +000016 2001 MOVS r0,#1 +;;;1325 } +000018 bd70 POP {r4-r6,pc} +;;;1326 + ENDP + +00001a 0000 DCW 0x0000 + |L10.28| +00001c 53323150 DCB "S21P_demo",0 +000020 5f64656d +000024 6f00 +000026 00 DCB 0 +000027 00 DCB 0 + |L10.40| +000028 5b25735d DCB "[%s] (%04d) enter exit sleep mode\n",0 +00002c 20282530 +000030 34642920 +000034 656e7465 +000038 72206578 +00003c 69742073 +000040 6c656570 +000044 206d6f64 +000048 650a00 +00004b 00 DCB 0 + + AREA ||i.ap_set_tear_on||, CODE, READONLY, ALIGN=2 + + ap_set_tear_on PROC +;;;1326 +;;;1327 static bool ap_set_tear_on(hal_dsi_rx_ctrl_handle_t* handler, hal_dcs_packet_t* dcs_packet) +000000 b570 PUSH {r4-r6,lr} +;;;1328 { +000002 4604 MOV r4,r0 +000004 460d MOV r5,r1 +;;;1329 if(panel_display_done == true) +000006 4810 LDR r0,|L11.72| +000008 7800 LDRB r0,[r0,#0] ; panel_display_done +00000a 2801 CMP r0,#1 +00000c d10a BNE |L11.36| +;;;1330 { +;;;1331 hal_dsi_rx_ctrl_set_hw_tear_mode(g_rx_ctrl_handle); +00000e 480f LDR r0,|L11.76| +000010 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000012 f7fffffe BL hal_dsi_rx_ctrl_set_hw_tear_mode +;;;1332 TAU_LOGD("hw te\n"); +000016 bf00 NOP +000018 4a0d LDR r2,|L11.80| +00001a a10e ADR r1,|L11.84| +00001c a010 ADR r0,|L11.96| +00001e f7fffffe BL LOG_printf +000022 e00f B |L11.68| + |L11.36| +;;;1333 } +;;;1334 else +;;;1335 { +;;;1336 //soft_te_timer_init(); +;;;1337 hal_dsi_rx_ctrl_set_sw_tear_mode(g_rx_ctrl_handle); +000024 4809 LDR r0,|L11.76| +000026 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000028 f7fffffe BL hal_dsi_rx_ctrl_set_sw_tear_mode +;;;1338 hal_dsi_rx_ctrl_gen_a_tear_signal(g_rx_ctrl_handle); +00002c 4807 LDR r0,|L11.76| +00002e 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000030 f7fffffe BL hal_dsi_rx_ctrl_gen_a_tear_signal +;;;1339 TAU_LOGD("sw gen te\n"); +000034 bf00 NOP +000036 4a06 LDR r2,|L11.80| +000038 1dd2 ADDS r2,r2,#7 +00003a a106 ADR r1,|L11.84| +00003c a00d ADR r0,|L11.116| +00003e f7fffffe BL LOG_printf +000042 bf00 NOP + |L11.68| +;;;1340 } +;;;1341 return true; +000044 2001 MOVS r0,#1 +;;;1342 } +000046 bd70 POP {r4-r6,pc} +;;;1343 static bool ap_update_frame_rate(hal_dsi_rx_ctrl_handle_t* handler, hal_dcs_packet_t* dcs_packet) + ENDP + + |L11.72| + DCD panel_display_done + |L11.76| + DCD g_rx_ctrl_handle + |L11.80| + DCD 0x00000534 + |L11.84| +000054 53323150 DCB "S21P_demo",0 +000058 5f64656d +00005c 6f00 +00005e 00 DCB 0 +00005f 00 DCB 0 + |L11.96| +000060 5b25735d DCB "[%s] (%04d) hw te\n",0 +000064 20282530 +000068 34642920 +00006c 68772074 +000070 650a00 +000073 00 DCB 0 + |L11.116| +000074 5b25735d DCB "[%s] (%04d) sw gen te\n",0 +000078 20282530 +00007c 34642920 +000080 73772067 +000084 656e2074 +000088 650a00 +00008b 00 DCB 0 + + AREA ||i.ap_update_frame_rate||, CODE, READONLY, ALIGN=2 + + ap_update_frame_rate PROC +;;;1342 } +;;;1343 static bool ap_update_frame_rate(hal_dsi_rx_ctrl_handle_t* handler, hal_dcs_packet_t* dcs_packet) +000000 b570 PUSH {r4-r6,lr} +;;;1344 { +000002 4605 MOV r5,r0 +000004 460c MOV r4,r1 +;;;1345 static uint8_t frame_rate = 100; +;;;1346 +;;;1347 // TAU_LOGD("frame_rate:%x, %x, len=%d", dcs_packet->packet_param[0], dcs_packet->packet_param[1], dcs_packet->param_length); +;;;1348 +;;;1349 +;;;1350 // if (resolution_change_flag ) +;;;1351 // { +;;;1352 // resolution_change_flag = 0; +;;;1353 // } +;;;1354 // else +;;;1355 { +;;;1356 // if (dcs_packet->packet_param[0] == 0x08) +;;;1357 { +;;;1358 //0x08是动态适应 120hz,0x00是固定频率60hz +;;;1359 if(frame_rate != dcs_packet->packet_param[0]) +000006 68e0 LDR r0,[r4,#0xc] +000008 7800 LDRB r0,[r0,#0] +00000a 4910 LDR r1,|L12.76| +00000c 7809 LDRB r1,[r1,#0] ; frame_rate +00000e 4288 CMP r0,r1 +000010 d01a BEQ |L12.72| +;;;1360 { +;;;1361 frame_rate = dcs_packet->packet_param[0]; +000012 68e0 LDR r0,[r4,#0xc] +000014 7800 LDRB r0,[r0,#0] +000016 490d LDR r1,|L12.76| +000018 7008 STRB r0,[r1,#0] +;;;1362 if(frame_rate == 0x00) +00001a 4608 MOV r0,r1 +00001c 7800 LDRB r0,[r0,#0] ; frame_rate +00001e 2800 CMP r0,#0 +000020 d107 BNE |L12.50| +;;;1363 { +;;;1364 hal_dsi_rx_ctrl_set_tear_mode_ex(g_rx_ctrl_handle, INPUT_HEIGHT, TE_HW_MODE); +000022 2200 MOVS r2,#0 +000024 214b MOVS r1,#0x4b +000026 0149 LSLS r1,r1,#5 +000028 4809 LDR r0,|L12.80| +00002a 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +00002c f7fffffe BL hal_dsi_rx_ctrl_set_tear_mode_ex +000030 e00a B |L12.72| + |L12.50| +;;;1365 // hal_dsi_rx_ctrl_toggle_input_frame_rate(g_rx_ctrl_handle, DSI_FRAME_RATE_60HZ); +;;;1366 // TAU_LOGD("60"); +;;;1367 } +;;;1368 else if(frame_rate == 0x20) +000032 4806 LDR r0,|L12.76| +000034 7800 LDRB r0,[r0,#0] ; frame_rate +000036 2820 CMP r0,#0x20 +000038 d106 BNE |L12.72| +;;;1369 { +;;;1370 //120Hz +;;;1371 hal_dsi_rx_ctrl_set_tear_mode_ex(g_rx_ctrl_handle, INPUT_HEIGHT, TE_SOFT_120HZ_MODE); +00003a 2205 MOVS r2,#5 +00003c 214b MOVS r1,#0x4b +00003e 0149 LSLS r1,r1,#5 +000040 4803 LDR r0,|L12.80| +000042 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000044 f7fffffe BL hal_dsi_rx_ctrl_set_tear_mode_ex + |L12.72| +;;;1372 // TAU_LOGD("120"); +;;;1373 // hal_dsi_rx_ctrl_toggle_input_frame_rate(g_rx_ctrl_handle, DSI_FRAME_RATE_120HZ); +;;;1374 } +;;;1375 // TAU_LOGD("frame_rate:%x",frame_rate); +;;;1376 } +;;;1377 } +;;;1378 } +;;;1379 return true; +000048 2001 MOVS r0,#1 +;;;1380 } +00004a bd70 POP {r4-r6,pc} +;;;1381 + ENDP + + |L12.76| + DCD frame_rate + |L12.80| + DCD g_rx_ctrl_handle + + AREA ||i.frame_start_cb||, CODE, READONLY, ALIGN=2 + + frame_start_cb PROC +;;;3552 +;;;3553 static void frame_start_cb(hal_rx_dbg_event_e event) +000000 b510 PUSH {r4,lr} +;;;3554 { +000002 4604 MOV r4,r0 +;;;3555 TAU_LOGD("frame start\n"); +000004 bf00 NOP +000006 4a03 LDR r2,|L13.20| +000008 a103 ADR r1,|L13.24| +00000a a006 ADR r0,|L13.36| +00000c f7fffffe BL LOG_printf +000010 bf00 NOP +;;;3556 } +000012 bd10 POP {r4,pc} +;;;3557 + ENDP + + |L13.20| + DCD 0x00000de3 + |L13.24| +000018 53323150 DCB "S21P_demo",0 +00001c 5f64656d +000020 6f00 +000022 00 DCB 0 +000023 00 DCB 0 + |L13.36| +000024 5b25735d DCB "[%s] (%04d) frame start\n",0 +000028 20282530 +00002c 34642920 +000030 6672616d +000034 65207374 +000038 6172740a +00003c 00 +00003d 00 DCB 0 +00003e 00 DCB 0 +00003f 00 DCB 0 + + AREA ||i.init_mipi_tx||, CODE, READONLY, ALIGN=2 + + init_mipi_tx PROC +;;;3619 +;;;3620 static void init_mipi_tx(void) +000000 b510 PUSH {r4,lr} +;;;3621 { +;;;3622 if(g_tx_ctrl_handle == NULL) +000002 4830 LDR r0,|L14.196| +000004 6800 LDR r0,[r0,#0] ; g_tx_ctrl_handle +000006 2800 CMP r0,#0 +000008 d103 BNE |L14.18| +;;;3623 { +;;;3624 g_tx_ctrl_handle = hal_dsi_tx_ctrl_create_handle(); +00000a f7fffffe BL hal_dsi_tx_ctrl_create_handle +00000e 492d LDR r1,|L14.196| +000010 6008 STR r0,[r1,#0] ; g_tx_ctrl_handle + |L14.18| +;;;3625 } +;;;3626 g_tx_ctrl_handle->channel_id = OUTPUT_VC; +000012 2000 MOVS r0,#0 +000014 492b LDR r1,|L14.196| +000016 6809 LDR r1,[r1,#0] ; g_tx_ctrl_handle +000018 7088 STRB r0,[r1,#2] +;;;3627 g_tx_ctrl_handle->lane_num = OUTPUT_LANE_NUMBER; +00001a 2004 MOVS r0,#4 +00001c 4929 LDR r1,|L14.196| +00001e 6809 LDR r1,[r1,#0] ; g_tx_ctrl_handle +000020 7048 STRB r0,[r1,#1] +;;;3628 g_tx_ctrl_handle->vid_mode = OUTPUT_VIDEO_MODEL; +000022 2002 MOVS r0,#2 +000024 4927 LDR r1,|L14.196| +000026 6809 LDR r1,[r1,#0] ; g_tx_ctrl_handle +000028 70c8 STRB r0,[r1,#3] +;;;3629 g_tx_ctrl_handle->cmd_tx_type = DSI_CMD_TX_HS; +00002a 2000 MOVS r0,#0 +00002c 4925 LDR r1,|L14.196| +00002e 6809 LDR r1,[r1,#0] ; g_tx_ctrl_handle +000030 7108 STRB r0,[r1,#4] +;;;3630 g_tx_ctrl_handle->dpi_vsa = OUTPUT_VSA; +000032 2004 MOVS r0,#4 +000034 4923 LDR r1,|L14.196| +000036 6809 LDR r1,[r1,#0] ; g_tx_ctrl_handle +000038 6088 STR r0,[r1,#8] +;;;3631 g_tx_ctrl_handle->dpi_vbp = OUTPUT_VBP; +00003a 2008 MOVS r0,#8 +00003c 4921 LDR r1,|L14.196| +00003e 6809 LDR r1,[r1,#0] ; g_tx_ctrl_handle +000040 60c8 STR r0,[r1,#0xc] +;;;3632 g_tx_ctrl_handle->dpi_vfp = OUTPUT_VFP; +000042 203c MOVS r0,#0x3c +000044 491f LDR r1,|L14.196| +000046 6809 LDR r1,[r1,#0] ; g_tx_ctrl_handle +000048 6108 STR r0,[r1,#0x10] +;;;3633 g_tx_ctrl_handle->dpi_hsa = OUTPUT_HSA; +00004a 2008 MOVS r0,#8 +00004c 491d LDR r1,|L14.196| +00004e 6809 LDR r1,[r1,#0] ; g_tx_ctrl_handle +000050 6148 STR r0,[r1,#0x14] +;;;3634 g_tx_ctrl_handle->dpi_hbp = OUTPUT_HBP; +000052 2010 MOVS r0,#0x10 +000054 491b LDR r1,|L14.196| +000056 6809 LDR r1,[r1,#0] ; g_tx_ctrl_handle +000058 6188 STR r0,[r1,#0x18] +;;;3635 g_tx_ctrl_handle->dpi_hfp = OUTPUT_HFP; +00005a 201e MOVS r0,#0x1e +00005c 4919 LDR r1,|L14.196| +00005e 6809 LDR r1,[r1,#0] ; g_tx_ctrl_handle +000060 61c8 STR r0,[r1,#0x1c] +;;;3636 g_tx_ctrl_handle->base_info.src_w = INPUT_WIDTH; +000062 2087 MOVS r0,#0x87 +000064 00c0 LSLS r0,r0,#3 +000066 4917 LDR r1,|L14.196| +000068 6809 LDR r1,[r1,#0] ; g_tx_ctrl_handle +00006a 6208 STR r0,[r1,#0x20] +;;;3637 g_tx_ctrl_handle->base_info.src_h = INPUT_HEIGHT; +00006c 214b MOVS r1,#0x4b +00006e 0149 LSLS r1,r1,#5 +000070 4814 LDR r0,|L14.196| +000072 6800 LDR r0,[r0,#0] ; g_tx_ctrl_handle +000074 6241 STR r1,[r0,#0x24] +;;;3638 g_tx_ctrl_handle->base_info.dst_w = OUTPUT_WIDTH; +000076 2187 MOVS r1,#0x87 +000078 00c9 LSLS r1,r1,#3 +00007a 4812 LDR r0,|L14.196| +00007c 6800 LDR r0,[r0,#0] ; g_tx_ctrl_handle +00007e 6281 STR r1,[r0,#0x28] +;;;3639 g_tx_ctrl_handle->base_info.dst_h = OUTPUT_HEIGHT; +000080 214b MOVS r1,#0x4b +000082 0149 LSLS r1,r1,#5 +000084 480f LDR r0,|L14.196| +000086 6800 LDR r0,[r0,#0] ; g_tx_ctrl_handle +000088 62c1 STR r1,[r0,#0x2c] +;;;3640 g_tx_ctrl_handle->base_info.src_frate = INPUT_FRAME_RATE; +00008a 2100 MOVS r1,#0 +00008c 480d LDR r0,|L14.196| +00008e 6800 LDR r0,[r0,#0] ; g_tx_ctrl_handle +000090 3020 ADDS r0,r0,#0x20 +000092 7401 STRB r1,[r0,#0x10] +;;;3641 g_tx_ctrl_handle->base_info.src_mode = INPUT_DATA_MODE; +000094 2101 MOVS r1,#1 +000096 480b LDR r0,|L14.196| +000098 6800 LDR r0,[r0,#0] ; g_tx_ctrl_handle +00009a 3020 ADDS r0,r0,#0x20 +00009c 7441 STRB r1,[r0,#0x11] +;;;3642 // g_tx_ctrl_handle->tx_frame_rate = 60; +;;;3643 // g_tx_ctrl_handle->tx_clkawayshs = true; +;;;3644 // g_tx_ctrl_handle->tx_line_delay = 800; +;;;3645 hal_dsi_tx_ctrl_init(g_tx_ctrl_handle); +00009e 4809 LDR r0,|L14.196| +0000a0 6800 LDR r0,[r0,#0] ; g_tx_ctrl_handle +0000a2 f7fffffe BL hal_dsi_tx_ctrl_init +;;;3646 /* AP 没有发送数据时默认的显示颜色, 量产为0 0 0(黑色), 配置其他颜色仅为debug使用 */ +;;;3647 hal_dsi_tx_ctrl_set_overwrite_rgb(0x00, 0x00, 0x00); +0000a6 2200 MOVS r2,#0 +0000a8 4611 MOV r1,r2 +0000aa 4610 MOV r0,r2 +0000ac f7fffffe BL hal_dsi_tx_ctrl_set_overwrite_rgb +;;;3648 TAU_LOGD("BLUE\n"); +0000b0 bf00 NOP +0000b2 2239 MOVS r2,#0x39 +0000b4 0192 LSLS r2,r2,#6 +0000b6 a104 ADR r1,|L14.200| +0000b8 a006 ADR r0,|L14.212| +0000ba f7fffffe BL LOG_printf +0000be bf00 NOP +;;;3649 } +0000c0 bd10 POP {r4,pc} +;;;3650 + ENDP + +0000c2 0000 DCW 0x0000 + |L14.196| + DCD g_tx_ctrl_handle + |L14.200| +0000c8 53323150 DCB "S21P_demo",0 +0000cc 5f64656d +0000d0 6f00 +0000d2 00 DCB 0 +0000d3 00 DCB 0 + |L14.212| +0000d4 5b25735d DCB "[%s] (%04d) BLUE\n",0 +0000d8 20282530 +0000dc 34642920 +0000e0 424c5545 +0000e4 0a00 +0000e6 00 DCB 0 +0000e7 00 DCB 0 + + AREA ||i.init_panel||, CODE, READONLY, ALIGN=2 + + init_panel PROC +;;;3518 +;;;3519 static void init_panel(void) +000000 b510 PUSH {r4,lr} +;;;3520 { +;;;3521 /* reset panel*/ +;;;3522 tx_panel_reset(); +000002 f7fffffe BL tx_panel_reset +;;;3523 +;;;3524 hal_gpio_init_output(IO_PAD_TD_LEDPWM, IO_LVL_HIGH); +000006 2101 MOVS r1,#1 +000008 200a MOVS r0,#0xa +00000a f7fffffe BL hal_gpio_init_output +;;;3525 +;;;3526 /* enter send initial code mode*/ +;;;3527 hal_dsi_tx_ctrl_enter_init_panel_mode(); +00000e f7fffffe BL hal_dsi_tx_ctrl_enter_init_panel_mode +;;;3528 +;;;3529 send_panel_init_code(sizeof(panel_init_code), panel_init_code); +000012 4911 LDR r1,|L15.88| +000014 4811 LDR r0,|L15.92| +000016 f7fffffe BL send_panel_init_code +;;;3530 TAU_LOGD("init_code\n"); +00001a bf00 NOP +00001c 4a10 LDR r2,|L15.96| +00001e a111 ADR r1,|L15.100| +000020 a013 ADR r0,|L15.112| +000022 f7fffffe BL LOG_printf +000026 bf00 NOP +;;;3531 hal_dsi_tx_ctrl_write_cmd(0x05, 0, 1, 0x11); +000028 2311 MOVS r3,#0x11 +00002a 2201 MOVS r2,#1 +00002c 2100 MOVS r1,#0 +00002e 2005 MOVS r0,#5 +000030 f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;3532 // delayMs(10); +;;;3533 delayMs(40); +000034 2028 MOVS r0,#0x28 +000036 f7fffffe BL delayMs +;;;3534 hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_HIGH); //LED_ON +00003a 2101 MOVS r1,#1 +00003c 2013 MOVS r0,#0x13 +00003e f7fffffe BL hal_gpio_set_output_data +;;;3535 delayMs(60); +000042 203c MOVS r0,#0x3c +000044 f7fffffe BL delayMs +;;;3536 // hal_gpio_set_output_data(IO_PAD_ADCIN, IO_LVL_HIGH); +;;;3537 soft_swire_init(); +000048 f7fffffe BL soft_swire_init +;;;3538 // bist mode +;;;3539 // hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x9C,0xA5,0xA5); +;;;3540 // hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0xFD,0x5A,0x5A); +;;;3541 // hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x9F,0x01); +;;;3542 // hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xC6,0x01); +;;;3543 +;;;3544 // hal_dsi_tx_ctrl_write_cmd(0x05, 0, 1, 0x29); +;;;3545 // hal_dsi_tx_ctrl_write_cmd(0x29, 0, 3, 0x51, 0x09, 0xFF); +;;;3546 // delayMs(10); +;;;3547 +;;;3548 /* exit send initial code mode*/ +;;;3549 hal_dsi_tx_ctrl_exit_init_panel_mode(); +00004c f7fffffe BL hal_dsi_tx_ctrl_exit_init_panel_mode +;;;3550 delayMs(10); +000050 200a MOVS r0,#0xa +000052 f7fffffe BL delayMs +;;;3551 } +000056 bd10 POP {r4,pc} +;;;3552 + ENDP + + |L15.88| + DCD panel_init_code + |L15.92| + DCD 0x00001cb6 + |L15.96| + DCD 0x00000dca + |L15.100| +000064 53323150 DCB "S21P_demo",0 +000068 5f64656d +00006c 6f00 +00006e 00 DCB 0 +00006f 00 DCB 0 + |L15.112| +000070 5b25735d DCB "[%s] (%04d) init_code\n",0 +000074 20282530 +000078 34642920 +00007c 696e6974 +000080 5f636f64 +000084 650a00 +000087 00 DCB 0 + + AREA ||i.open_mipi_rx||, CODE, READONLY, ALIGN=2 + + open_mipi_rx PROC +;;;3557 +;;;3558 static void open_mipi_rx(void) +000000 b500 PUSH {lr} +;;;3559 { +000002 b0a1 SUB sp,sp,#0x84 +;;;3560 /* 配置TE引脚 */ +;;;3561 hal_gpio_set_mode(IO_PAD_AP_TE, IO_MODE_TEAR); +000004 2100 MOVS r1,#0 +000006 2003 MOVS r0,#3 +000008 f7fffffe BL hal_gpio_set_mode +;;;3562 +;;;3563 if(g_rx_ctrl_handle == NULL) +00000c 483b LDR r0,|L16.252| +00000e 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000010 2800 CMP r0,#0 +000012 d103 BNE |L16.28| +;;;3564 { +;;;3565 /* 创建rx ctrl handle */ +;;;3566 g_rx_ctrl_handle = hal_dsi_rx_ctrl_create_handle(); +000014 f7fffffe BL hal_dsi_rx_ctrl_create_handle +000018 4938 LDR r1,|L16.252| +00001a 6008 STR r0,[r1,#0] ; g_rx_ctrl_handle + |L16.28| +;;;3567 } +;;;3568 /* 配置参数 */ +;;;3569 g_rx_ctrl_handle->base_info.src_w = INPUT_WIDTH; +00001c 2087 MOVS r0,#0x87 +00001e 00c0 LSLS r0,r0,#3 +000020 4936 LDR r1,|L16.252| +000022 6809 LDR r1,[r1,#0] ; g_rx_ctrl_handle +000024 6008 STR r0,[r1,#0] +;;;3570 g_rx_ctrl_handle->base_info.src_h = INPUT_HEIGHT; +000026 204b MOVS r0,#0x4b +000028 0140 LSLS r0,r0,#5 +00002a 4934 LDR r1,|L16.252| +00002c 6809 LDR r1,[r1,#0] ; g_rx_ctrl_handle +00002e 6048 STR r0,[r1,#4] +;;;3571 g_rx_ctrl_handle->base_info.dst_w = OUTPUT_WIDTH; +000030 2087 MOVS r0,#0x87 +000032 00c0 LSLS r0,r0,#3 +000034 4931 LDR r1,|L16.252| +000036 6809 LDR r1,[r1,#0] ; g_rx_ctrl_handle +000038 6088 STR r0,[r1,#8] +;;;3572 g_rx_ctrl_handle->base_info.dst_h = OUTPUT_HEIGHT; +00003a 204b MOVS r0,#0x4b +00003c 0140 LSLS r0,r0,#5 +00003e 492f LDR r1,|L16.252| +000040 6809 LDR r1,[r1,#0] ; g_rx_ctrl_handle +000042 60c8 STR r0,[r1,#0xc] +;;;3573 g_rx_ctrl_handle->base_info.src_frate = INPUT_FRAME_RATE; +000044 2000 MOVS r0,#0 +000046 492d LDR r1,|L16.252| +000048 6809 LDR r1,[r1,#0] ; g_rx_ctrl_handle +00004a 7408 STRB r0,[r1,#0x10] +;;;3574 g_rx_ctrl_handle->base_info.src_mode = INPUT_DATA_MODE; +00004c 2001 MOVS r0,#1 +00004e 492b LDR r1,|L16.252| +000050 6809 LDR r1,[r1,#0] ; g_rx_ctrl_handle +000052 7448 STRB r0,[r1,#0x11] +;;;3575 g_rx_ctrl_handle->rx_color_mode = INPUT_COLOR_MODE; +000054 2004 MOVS r0,#4 +000056 4929 LDR r1,|L16.252| +000058 6809 LDR r1,[r1,#0] ; g_rx_ctrl_handle +00005a 7708 STRB r0,[r1,#0x1c] +;;;3576 g_rx_ctrl_handle->rx_lanes = INPUT_MIPI_LANE_NUM; +00005c 4927 LDR r1,|L16.252| +00005e 6809 LDR r1,[r1,#0] ; g_rx_ctrl_handle +000060 7748 STRB r0,[r1,#0x1d] +;;;3577 g_rx_ctrl_handle->rx_nonburst_models = INPUT_VIDEO_MODEL; /* 可不配置 */ +000062 2001 MOVS r0,#1 +000064 4925 LDR r1,|L16.252| +000066 6809 LDR r1,[r1,#0] ; g_rx_ctrl_handle +000068 7788 STRB r0,[r1,#0x1e] +;;;3578 g_rx_ctrl_handle->rx_vc = INPUT_VC; +00006a 2000 MOVS r0,#0 +00006c 4923 LDR r1,|L16.252| +00006e 6809 LDR r1,[r1,#0] ; g_rx_ctrl_handle +000070 77c8 STRB r0,[r1,#0x1f] +;;;3579 g_rx_ctrl_handle->compress_en = INPUT_COMPRESS; +000072 2101 MOVS r1,#1 +000074 4821 LDR r0,|L16.252| +000076 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000078 3020 ADDS r0,r0,#0x20 +00007a 7001 STRB r1,[r0,#0] +;;;3580 g_rx_ctrl_handle->rx_hsclk_rate = INPUT_MIPI_LANE_RATE; +00007c 4820 LDR r0,|L16.256| +00007e 491f LDR r1,|L16.252| +000080 6809 LDR r1,[r1,#0] ; g_rx_ctrl_handle +000082 6248 STR r0,[r1,#0x24] +;;;3581 g_rx_ctrl_handle->cus_dcs_entry_table = g_cus_rx_dcs_execute_table; /* 注册 DCS处理列表 */ +000084 491f LDR r1,|L16.260| +000086 481d LDR r0,|L16.252| +000088 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +00008a 3080 ADDS r0,r0,#0x80 +00008c 6281 STR r1,[r0,#0x28] +;;;3582 g_rx_ctrl_handle->rx_dcs_read_entry = ap_dcs_read; /* 注册dsc read 回调函数,可选,此函数为空时由cus_dcs_entry_table执行 */ +00008e 491e LDR r1,|L16.264| +000090 481a LDR r0,|L16.252| +000092 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000094 3080 ADDS r0,r0,#0x80 +000096 62c1 STR r1,[r0,#0x2c] +;;;3583 g_rx_ctrl_handle->pps_update_entry = pps_update_handle; +000098 491c LDR r1,|L16.268| +00009a 4818 LDR r0,|L16.252| +00009c 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +00009e 3080 ADDS r0,r0,#0x80 +0000a0 6301 STR r1,[r0,#0x30] +;;;3584 g_rx_ctrl_handle->hight_performan_mode = HIGHT_PERFORMAN_L2; +0000a2 2102 MOVS r1,#2 +0000a4 4815 LDR r0,|L16.252| +0000a6 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0000a8 30a0 ADDS r0,r0,#0xa0 +0000aa 77c1 STRB r1,[r0,#0x1f] +;;;3585 // g_rx_ctrl_handle->pq_marginal = PQ_TYPE_6; +;;;3586 // g_rx_ctrl_handle->err_handler_level = ERR_HANDLE_L1; +;;;3587 // g_rx_ctrl_handle->rx_debug_cb = frame_start_cb; +;;;3588 /* 提前预置PPS, AP 有PPS cmd也会更新 */ +;;;3589 if(g_rx_ctrl_handle->compress_en == true) +0000ac 4813 LDR r0,|L16.252| +0000ae 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0000b0 3020 ADDS r0,r0,#0x20 +0000b2 7800 LDRB r0,[r0,#0] +0000b4 2801 CMP r0,#1 +0000b6 d10b BNE |L16.208| +;;;3590 { +;;;3591 uint8_t pps[128 ] = +0000b8 2280 MOVS r2,#0x80 +0000ba 4915 LDR r1,|L16.272| +0000bc a801 ADD r0,sp,#4 +0000be f7fffffe BL __aeabi_memcpy4 +;;;3592 { +;;;3593 0x11, 0x00, 0x00, 0x89, 0x30, 0x80, 0x09, 0x60, 0x04, 0x38, 0x00, 0x78, 0x02, +;;;3594 0x1C, 0x02, 0x1C, 0x02, 0x00, 0x02, 0x0E, 0x00, 0x20, 0x0B, 0xAF, 0x00, 0x07, +;;;3595 0x00, 0x0C, 0x00, 0xCF, 0x00, 0xD9, 0x18, 0x00, 0x10, 0xF0, 0x03, 0x0C, 0x20, +;;;3596 0x00, 0x06, 0x0B, 0x0B, 0x33, 0x0E, 0x1C, 0x2A, 0x38, 0x46, 0x54, 0x62, 0x69, +;;;3597 0x70, 0x77, 0x79, 0x7B, 0x7D, 0x7E, 0x01, 0x02, 0x01, 0x00, 0x09, 0x40, 0x09, +;;;3598 0xBE, 0x19, 0xFC, 0x19, 0xFA, 0x19, 0xF8, 0x1A, 0x38, 0x1A, 0x78, 0x1A, 0xB6, +;;;3599 0x2A, 0xF6, 0x2B, 0x34, 0x2B, 0x74, 0x3B, 0x74, 0x6B, 0xF4, 0x00, 0x00, 0x00, +;;;3600 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +;;;3601 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +;;;3602 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +;;;3603 }; +;;;3604 hal_dsi_rx_ctrl_pre_init_pps(g_rx_ctrl_handle, pps, 128); +0000c2 2280 MOVS r2,#0x80 +0000c4 a901 ADD r1,sp,#4 +0000c6 480d LDR r0,|L16.252| +0000c8 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0000ca f7fffffe BL hal_dsi_rx_ctrl_pre_init_pps +;;;3605 } +0000ce bf00 NOP + |L16.208| +;;;3606 +;;;3607 /* 初始化rx ctrl */ +;;;3608 hal_dsi_rx_ctrl_init(g_rx_ctrl_handle); +0000d0 480a LDR r0,|L16.252| +0000d2 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0000d4 f7fffffe BL hal_dsi_rx_ctrl_init +;;;3609 +;;;3610 #ifdef CUS_SCLD_FILTER +;;;3611 hal_dsi_rx_ctrl_set_cus_scld_filter(g_rx_ctrl_handle, rx_filter_H_3, rx_filter_V_3); +;;;3612 #endif +;;;3613 hal_dsi_rx_ctrl_set_cus_esc_clk(g_rx_ctrl_handle, 20000000); +0000d8 490e LDR r1,|L16.276| +0000da 4808 LDR r0,|L16.252| +0000dc 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0000de f7fffffe BL hal_dsi_rx_ctrl_set_cus_esc_clk +;;;3614 // hal_dsi_rx_ctrl_hight_performan_mode(g_rx_ctrl_handle); +;;;3615 hal_dsi_rx_ctrl_set_cus_sync_line(g_rx_ctrl_handle, 2000); +0000e2 217d MOVS r1,#0x7d +0000e4 0109 LSLS r1,r1,#4 +0000e6 4805 LDR r0,|L16.252| +0000e8 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0000ea f7fffffe BL hal_dsi_rx_ctrl_set_cus_sync_line +;;;3616 /* 启动rx ctrl */ +;;;3617 hal_dsi_rx_ctrl_start(g_rx_ctrl_handle); +0000ee 4803 LDR r0,|L16.252| +0000f0 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +0000f2 f7fffffe BL hal_dsi_rx_ctrl_start +;;;3618 } +0000f6 b021 ADD sp,sp,#0x84 +0000f8 bd00 POP {pc} +;;;3619 + ENDP + +0000fa 0000 DCW 0x0000 + |L16.252| + DCD g_rx_ctrl_handle + |L16.256| + DCD 0x59682f00 + |L16.260| + DCD g_cus_rx_dcs_execute_table + |L16.264| + DCD ap_dcs_read + |L16.268| + DCD pps_update_handle + |L16.272| + DCD ||.constdata||+0x1d30 + |L16.276| + DCD 0x01312d00 + + AREA ||i.pps_update_handle||, CODE, READONLY, ALIGN=2 + + pps_update_handle PROC +;;;1248 /* PPS update callback 用于分辨率切换case */ +;;;1249 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} +;;;1250 { +000002 4606 MOV r6,r0 +000004 460f MOV r7,r1 +000006 4614 MOV r4,r2 +000008 461d MOV r5,r3 +;;;1251 /* AVDD 上电, 用于解决息屏开屏PPS不更新问题 */ +;;;1252 // hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_HIGH); +;;;1253 // if(pic_width != g_rx_ctrl_handle->base_info.src_w || pic_height != g_rx_ctrl_handle->base_info.src_h) +;;;1254 { +;;;1255 /* PPS Update 且分辨率发生变化 */ +;;;1256 g_rx_ctrl_handle->base_info.src_w = pic_width; +00000a 4810 LDR r0,|L17.76| +00000c 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +00000e 6004 STR r4,[r0,#0] +;;;1257 g_rx_ctrl_handle->base_info.src_h = pic_height; +000010 480e LDR r0,|L17.76| +000012 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000014 6045 STR r5,[r0,#4] +;;;1258 /* 注意部分基板更新PPS前不发 Compression Mode Command的情况 */ +;;;1259 g_rx_ctrl_handle->compress_en = hal_dsi_rx_ctrl_get_compressen_en(g_rx_ctrl_handle); +000016 480d LDR r0,|L17.76| +000018 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +00001a f7fffffe BL hal_dsi_rx_ctrl_get_compressen_en +00001e 490b LDR r1,|L17.76| +000020 6809 LDR r1,[r1,#0] ; g_rx_ctrl_handle +000022 3120 ADDS r1,r1,#0x20 +000024 7008 STRB r0,[r1,#0] +;;;1260 g_tx_ctrl_handle->base_info.src_w = pic_width; +000026 480a LDR r0,|L17.80| +000028 6800 LDR r0,[r0,#0] ; g_tx_ctrl_handle +00002a 6204 STR r4,[r0,#0x20] +;;;1261 g_tx_ctrl_handle->base_info.src_h = pic_height; +00002c 4808 LDR r0,|L17.80| +00002e 6800 LDR r0,[r0,#0] ; g_tx_ctrl_handle +000030 6245 STR r5,[r0,#0x24] +;;;1262 hal_dsi_rx_ctrl_toggle_resolution(g_rx_ctrl_handle); +000032 4806 LDR r0,|L17.76| +000034 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000036 f7fffffe BL hal_dsi_rx_ctrl_toggle_resolution +;;;1263 // TAU_LOGD("resolution update w[%d] h[%d] compress[%d]\n", pic_width, pic_height, g_rx_ctrl_handle->compress_en); +;;;1264 } +;;;1265 TAU_LOGD("PPS Update\n"); +00003a bf00 NOP +00003c 4a05 LDR r2,|L17.84| +00003e a106 ADR r1,|L17.88| +000040 a008 ADR r0,|L17.100| +000042 f7fffffe BL LOG_printf +000046 bf00 NOP +;;;1266 // hal_dsi_rx_ctrl_set_hw_tear_mode(g_rx_ctrl_handle); +;;;1267 return true; +000048 2001 MOVS r0,#1 +;;;1268 } +00004a bdf8 POP {r3-r7,pc} +;;;1269 + ENDP + + |L17.76| + DCD g_rx_ctrl_handle + |L17.80| + DCD g_tx_ctrl_handle + |L17.84| + DCD 0x000004f1 + |L17.88| +000058 53323150 DCB "S21P_demo",0 +00005c 5f64656d +000060 6f00 +000062 00 DCB 0 +000063 00 DCB 0 + |L17.100| +000064 5b25735d DCB "[%s] (%04d) PPS Update\n",0 +000068 20282530 +00006c 34642920 +000070 50505320 +000074 55706461 +000078 74650a00 + + AREA ||i.send_panel_init_code||, CODE, READONLY, ALIGN=1 + + send_panel_init_code PROC +;;;1477 +;;;1478 static void send_panel_init_code(uint32_t size, uint8_t* data) +000000 b5fe PUSH {r1-r7,lr} +;;;1479 { +000002 4607 MOV r7,r0 +000004 460d MOV r5,r1 +;;;1480 uint32_t data_offeset = 0; +000006 2400 MOVS r4,#0 +;;;1481 uint8_t data_type; +;;;1482 uint8_t vc; +;;;1483 uint8_t data_size; +;;;1484 uint8_t* p_data; +;;;1485 +;;;1486 while(data_offeset < size) +000008 e014 B |L18.52| + |L18.10| +;;;1487 { +;;;1488 data_type = data[data_offeset]; +00000a 5d28 LDRB r0,[r5,r4] +00000c 9002 STR r0,[sp,#8] +;;;1489 vc = data[data_offeset + 1]; +00000e 1c60 ADDS r0,r4,#1 +000010 5c28 LDRB r0,[r5,r0] +000012 9001 STR r0,[sp,#4] +;;;1490 data_size = data[data_offeset + 2]; +000014 1ca0 ADDS r0,r4,#2 +000016 5c2e LDRB r6,[r5,r0] +;;;1491 p_data = &data[data_offeset + 3]; +000018 1ce0 ADDS r0,r4,#3 +00001a 1828 ADDS r0,r5,r0 +00001c 9000 STR r0,[sp,#0] +;;;1492 hal_dsi_tx_ctrl_write_array_cmd(data_type, vc, data_size, p_data); +00001e 4632 MOV r2,r6 +000020 9b00 LDR r3,[sp,#0] +000022 9901 LDR r1,[sp,#4] +000024 9802 LDR r0,[sp,#8] +000026 f7fffffe BL hal_dsi_tx_ctrl_write_array_cmd +;;;1493 data_offeset = data_offeset + data_size + 3; +00002a 19a0 ADDS r0,r4,r6 +00002c 1cc4 ADDS r4,r0,#3 +;;;1494 delayUs(50); +00002e 2032 MOVS r0,#0x32 +000030 f7fffffe BL delayUs + |L18.52| +000034 42bc CMP r4,r7 ;1486 +000036 d3e8 BCC |L18.10| +;;;1495 } +;;;1496 } +000038 bdfe POP {r1-r7,pc} +;;;1497 + ENDP + + + AREA ||i.soft_swire_init||, CODE, READONLY, ALIGN=2 + + soft_swire_init PROC +;;;3712 +;;;3713 static void soft_swire_init(void) +000000 b510 PUSH {r4,lr} +;;;3714 { +;;;3715 hal_gpio_init_output(IO_PAD_ADCIN, IO_LVL_HIGH); +000002 2101 MOVS r1,#1 +000004 2014 MOVS r0,#0x14 +000006 f7fffffe BL hal_gpio_init_output +;;;3716 delayMs(3); +00000a 2003 MOVS r0,#3 +00000c f7fffffe BL delayMs +;;;3717 s_swire_pwm_counter = 0; +000010 2000 MOVS r0,#0 +000012 4907 LDR r1,|L19.48| +000014 7008 STRB r0,[r1,#0] +;;;3718 soft_swire_start(g_swire_num); +000016 2028 MOVS r0,#0x28 +000018 f7fffffe BL soft_swire_start +;;;3719 hal_timer_init(SWIRE_TIMER); +00001c 2001 MOVS r0,#1 +00001e f7fffffe BL hal_timer_init +;;;3720 hal_timer_start(SWIRE_TIMER, 16, soft_swire_timer_callback, NULL); +000022 2300 MOVS r3,#0 +000024 4a03 LDR r2,|L19.52| +000026 2110 MOVS r1,#0x10 +000028 2001 MOVS r0,#1 +00002a f7fffffe BL hal_timer_start +;;;3721 } +00002e bd10 POP {r4,pc} +;;;3722 + ENDP + + |L19.48| + DCD s_swire_pwm_counter + |L19.52| + DCD soft_swire_timer_callback + + AREA ||i.soft_swire_start||, CODE, READONLY, ALIGN=1 + + soft_swire_start PROC +;;;3686 +;;;3687 static void soft_swire_start(uint8_t pulse) +000000 b510 PUSH {r4,lr} +;;;3688 { +000002 4604 MOV r4,r0 +;;;3689 do +000004 bf00 NOP + |L20.6| +;;;3690 { +;;;3691 hal_gpio_init_output(IO_PAD_ADCIN, IO_LVL_LOW); // 3us +000006 2100 MOVS r1,#0 +000008 2014 MOVS r0,#0x14 +00000a f7fffffe BL hal_gpio_init_output +;;;3692 delayUs(10); +00000e 200a MOVS r0,#0xa +000010 f7fffffe BL delayUs +;;;3693 hal_gpio_init_output(IO_PAD_ADCIN, IO_LVL_HIGH); // 3us +000014 2101 MOVS r1,#1 +000016 2014 MOVS r0,#0x14 +000018 f7fffffe BL hal_gpio_init_output +;;;3694 delayUs(10); +00001c 200a MOVS r0,#0xa +00001e f7fffffe BL delayUs +;;;3695 }while(pulse--); +000022 4620 MOV r0,r4 +000024 1e61 SUBS r1,r4,#1 +000026 b2cc UXTB r4,r1 +000028 2800 CMP r0,#0 +00002a d1ec BNE |L20.6| +;;;3696 } +00002c bd10 POP {r4,pc} +;;;3697 static void soft_swire_timer_callback(void *data) + ENDP + + + AREA ||i.soft_swire_timer_callback||, CODE, READONLY, ALIGN=2 + + soft_swire_timer_callback PROC +;;;3696 } +;;;3697 static void soft_swire_timer_callback(void *data) +000000 b510 PUSH {r4,lr} +;;;3698 { +000002 4604 MOV r4,r0 +;;;3699 s_swire_pwm_counter++; +000004 480e LDR r0,|L21.64| +000006 7800 LDRB r0,[r0,#0] ; s_swire_pwm_counter +000008 1c40 ADDS r0,r0,#1 +00000a 490d LDR r1,|L21.64| +00000c 7008 STRB r0,[r1,#0] +;;;3700 if( s_swire_pwm_counter < SWIRE_MAX_NUM ) +00000e 4608 MOV r0,r1 +000010 7800 LDRB r0,[r0,#0] ; s_swire_pwm_counter +000012 280a CMP r0,#0xa +000014 da09 BGE |L21.42| +;;;3701 { +;;;3702 soft_swire_start(g_swire_num); +000016 2028 MOVS r0,#0x28 +000018 f7fffffe BL soft_swire_start +;;;3703 hal_timer_start(SWIRE_TIMER, 16, soft_swire_timer_callback, NULL); +00001c 2300 MOVS r3,#0 +00001e 4a09 LDR r2,|L21.68| +000020 2110 MOVS r1,#0x10 +000022 2001 MOVS r0,#1 +000024 f7fffffe BL hal_timer_start +000028 e009 B |L21.62| + |L21.42| +;;;3704 } +;;;3705 else +;;;3706 { +;;;3707 hal_timer_deinit(SWIRE_TIMER); +00002a 2001 MOVS r0,#1 +00002c f7fffffe BL hal_timer_deinit +;;;3708 hal_timer_stop(SWIRE_TIMER); +000030 2001 MOVS r0,#1 +000032 f7fffffe BL hal_timer_stop +;;;3709 hal_gpio_init_output(IO_PAD_ADCIN, IO_LVL_HIGH); +000036 2101 MOVS r1,#1 +000038 2014 MOVS r0,#0x14 +00003a f7fffffe BL hal_gpio_init_output + |L21.62| +;;;3710 } +;;;3711 } +00003e bd10 POP {r4,pc} +;;;3712 + ENDP + + |L21.64| + DCD s_swire_pwm_counter + |L21.68| + DCD soft_swire_timer_callback + + AREA ||i.soft_te_timer_cb||, CODE, READONLY, ALIGN=2 + + soft_te_timer_cb PROC +;;;3722 +;;;3723 static void soft_te_timer_cb(void* data) +000000 b510 PUSH {r4,lr} +;;;3724 { +000002 4604 MOV r4,r0 +;;;3725 /* +;;;3726 S8 的屏接的是TP1.8V, AC 启动后需要等到TP1.8 起来后再初始化屏, 所以在TP 起来前需要通过软件产生TE给手机,避免手机卡死 +;;;3727 */ +;;;3728 if(panel_display_done == false) +000004 4809 LDR r0,|L22.44| +000006 7800 LDRB r0,[r0,#0] ; panel_display_done +000008 2800 CMP r0,#0 +00000a d10a BNE |L22.34| +;;;3729 { +;;;3730 hal_dsi_rx_ctrl_gen_a_tear_signal(g_rx_ctrl_handle); +00000c 4808 LDR r0,|L22.48| +00000e 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000010 f7fffffe BL hal_dsi_rx_ctrl_gen_a_tear_signal +;;;3731 hal_timer_start(TE_TIMER, 17, soft_te_timer_cb, NULL); +000014 2300 MOVS r3,#0 +000016 4a07 LDR r2,|L22.52| +000018 2111 MOVS r1,#0x11 +00001a 2002 MOVS r0,#2 +00001c f7fffffe BL hal_timer_start +000020 e003 B |L22.42| + |L22.34| +;;;3732 } +;;;3733 else +;;;3734 { +;;;3735 hal_dsi_rx_ctrl_set_hw_tear_mode(g_rx_ctrl_handle); +000022 4803 LDR r0,|L22.48| +000024 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000026 f7fffffe BL hal_dsi_rx_ctrl_set_hw_tear_mode + |L22.42| +;;;3736 } +;;;3737 } +00002a bd10 POP {r4,pc} +;;;3738 + ENDP + + |L22.44| + DCD panel_display_done + |L22.48| + DCD g_rx_ctrl_handle + |L22.52| + DCD soft_te_timer_cb + + AREA ||i.soft_te_timer_init||, CODE, READONLY, ALIGN=2 + + soft_te_timer_init PROC +;;;3738 +;;;3739 static void soft_te_timer_init() +000000 b510 PUSH {r4,lr} +;;;3740 { +;;;3741 TAU_LOGD("soft_te_timer_init\n"); +000002 bf00 NOP +000004 4a09 LDR r2,|L23.44| +000006 a10a ADR r1,|L23.48| +000008 a00c ADR r0,|L23.60| +00000a f7fffffe BL LOG_printf +00000e bf00 NOP +;;;3742 hal_dsi_rx_ctrl_set_sw_tear_mode(g_rx_ctrl_handle); +000010 4812 LDR r0,|L23.92| +000012 6800 LDR r0,[r0,#0] ; g_rx_ctrl_handle +000014 f7fffffe BL hal_dsi_rx_ctrl_set_sw_tear_mode +;;;3743 hal_timer_init(TE_TIMER); +000018 2002 MOVS r0,#2 +00001a f7fffffe BL hal_timer_init +;;;3744 hal_timer_start(TE_TIMER, 1, soft_te_timer_cb, NULL); +00001e 2300 MOVS r3,#0 +000020 4a0f LDR r2,|L23.96| +000022 2101 MOVS r1,#1 +000024 2002 MOVS r0,#2 +000026 f7fffffe BL hal_timer_start +;;;3745 } +00002a bd10 POP {r4,pc} +;;;3746 + ENDP + + |L23.44| + DCD 0x00000e9d + |L23.48| +000030 53323150 DCB "S21P_demo",0 +000034 5f64656d +000038 6f00 +00003a 00 DCB 0 +00003b 00 DCB 0 + |L23.60| +00003c 5b25735d DCB "[%s] (%04d) soft_te_timer_init\n",0 +000040 20282530 +000044 34642920 +000048 736f6674 +00004c 5f74655f +000050 74696d65 +000054 725f696e +000058 69740a00 + |L23.92| + DCD g_rx_ctrl_handle + |L23.96| + DCD soft_te_timer_cb + + AREA ||i.soft_timer3_cb||, CODE, READONLY, ALIGN=2 + + soft_timer3_cb PROC +;;;3770 #ifdef ADD_TIMER3_FUNCTION +;;;3771 static void soft_timer3_cb(void *data) +000000 b510 PUSH {r4,lr} +;;;3772 { +000002 4604 MOV r4,r0 +;;;3773 hal_timer_start(TIMER_NUM3, 10, soft_timer3_cb, NULL); +000004 2300 MOVS r3,#0 +000006 4a05 LDR r2,|L24.28| +000008 210a MOVS r1,#0xa +00000a 2003 MOVS r0,#3 +00000c f7fffffe BL hal_timer_start +;;;3774 g_tp_sleep_delay_count++; +000010 4803 LDR r0,|L24.32| +000012 7800 LDRB r0,[r0,#0] ; g_tp_sleep_delay_count +000014 1c40 ADDS r0,r0,#1 +000016 4902 LDR r1,|L24.32| +000018 7008 STRB r0,[r1,#0] +;;;3775 +;;;3776 } +00001a bd10 POP {r4,pc} +;;;3777 #endif + ENDP + + |L24.28| + DCD soft_timer3_cb + |L24.32| + DCD g_tp_sleep_delay_count + + AREA ||i.swire_callback||, CODE, READONLY, ALIGN=2 + + swire_callback PROC +;;;3664 +;;;3665 static void swire_callback(void* data) +000000 b510 PUSH {r4,lr} +;;;3666 { +000002 4604 MOV r4,r0 +;;;3667 /* swire 的是否需要一直发送需要根据手机定,不同手机不同 */ +;;;3668 //if(start_display_on == false) +;;;3669 { +;;;3670 hal_timer_start(SWIRE_TIMER, 16, swire_timer_callback, NULL); +000004 2300 MOVS r3,#0 +000006 4a03 LDR r2,|L25.20| +000008 2110 MOVS r1,#0x10 +00000a 2001 MOVS r0,#1 +00000c f7fffffe BL hal_timer_start +;;;3671 } +;;;3672 } +000010 bd10 POP {r4,pc} +;;;3673 + ENDP + +000012 0000 DCW 0x0000 + |L25.20| + DCD swire_timer_callback + + AREA ||i.swire_init||, CODE, READONLY, ALIGN=2 + + swire_init PROC +;;;3674 /* swire 初始化,通过 hal_swire_start 调整波形, 这里在循坏一直发送 */ +;;;3675 static void swire_init() +000000 b508 PUSH {r3,lr} +;;;3676 { +;;;3677 hal_swire_open(DISABLE); +000002 2000 MOVS r0,#0 +000004 f7fffffe BL hal_swire_open +;;;3678 hal_swire_init(); +000008 f7fffffe BL hal_swire_init +;;;3679 /* swire 波形发生完成后回调函数 */ +;;;3680 hal_swire_register_callback(swire_callback); +00000c 480b LDR r0,|L26.60| +00000e f7fffffe BL hal_swire_register_callback +;;;3681 hal_swire_open(ENABLE); +000012 2001 MOVS r0,#1 +000014 f7fffffe BL hal_swire_open +;;;3682 hal_swire_start(12, 12, 12, 12, 36); +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 +;;;3683 hal_timer_init(SWIRE_TIMER); +000028 2001 MOVS r0,#1 +00002a f7fffffe BL hal_timer_init +;;;3684 hal_timer_start(SWIRE_TIMER, 16, swire_timer_callback, NULL); +00002e 2300 MOVS r3,#0 +000030 4a03 LDR r2,|L26.64| +000032 2110 MOVS r1,#0x10 +000034 2001 MOVS r0,#1 +000036 f7fffffe BL hal_timer_start +;;;3685 } +00003a bd08 POP {r3,pc} +;;;3686 + ENDP + + |L26.60| + DCD swire_callback + |L26.64| + DCD swire_timer_callback + + AREA ||i.swire_timer_callback||, CODE, READONLY, ALIGN=1 + + swire_timer_callback PROC +;;;3659 +;;;3660 static void swire_timer_callback(void* data) +000000 b538 PUSH {r3-r5,lr} +;;;3661 { +000002 4604 MOV r4,r0 +;;;3662 hal_swire_start(12, 12, 12, 12, 36); +000004 2024 MOVS r0,#0x24 +000006 230c MOVS r3,#0xc +000008 461a MOV r2,r3 +00000a 4619 MOV r1,r3 +00000c 9000 STR r0,[sp,#0] +00000e 4618 MOV r0,r3 +000010 f7fffffe BL hal_swire_start +;;;3663 } +000014 bd38 POP {r3-r5,pc} +;;;3664 + ENDP + + + AREA ||i.tp_heartbeat_exec||, CODE, READONLY, ALIGN=2 + + tp_heartbeat_exec PROC +;;;3746 +;;;3747 void tp_heartbeat_exec(void) +000000 b510 PUSH {r4,lr} +;;;3748 { +;;;3749 if (s_screen_init_complate) +000002 4812 LDR r0,|L28.76| +000004 7800 LDRB r0,[r0,#0] ; s_screen_init_complate +000006 2800 CMP r0,#0 +000008 d01f BEQ |L28.74| +;;;3750 { +;;;3751 if(hal_gpio_get_input_data(IO_PAD_TD_INT)) +00000a 2009 MOVS r0,#9 +00000c f7fffffe BL hal_gpio_get_input_data +000010 2800 CMP r0,#0 +000012 d003 BEQ |L28.28| +;;;3752 { +;;;3753 s_heartbeat = 0; +000014 2000 MOVS r0,#0 +000016 490e LDR r1,|L28.80| +000018 6008 STR r0,[r1,#0] ; s_heartbeat +00001a e016 B |L28.74| + |L28.28| +;;;3754 } +;;;3755 else +;;;3756 { +;;;3757 if(s_heartbeat < (65536/50)) // 65536*3 = 900ms 65536/50 = 6ms +00001c 480c LDR r0,|L28.80| +00001e 6800 LDR r0,[r0,#0] ; s_heartbeat +000020 490c LDR r1,|L28.84| +000022 4288 CMP r0,r1 +000024 d205 BCS |L28.50| +;;;3758 { +;;;3759 s_heartbeat ++; +000026 480a LDR r0,|L28.80| +000028 6800 LDR r0,[r0,#0] ; s_heartbeat +00002a 1c40 ADDS r0,r0,#1 +00002c 4908 LDR r1,|L28.80| +00002e 6008 STR r0,[r1,#0] ; s_heartbeat +000030 e00b B |L28.74| + |L28.50| +;;;3760 }else +;;;3761 { +;;;3762 TAU_LOGD("hb..."); +000032 bf00 NOP +000034 4a08 LDR r2,|L28.88| +000036 a109 ADR r1,|L28.92| +000038 a00b ADR r0,|L28.104| +00003a f7fffffe BL LOG_printf +00003e bf00 NOP +;;;3763 s_heartbeat = 0; +000040 2000 MOVS r0,#0 +000042 4903 LDR r1,|L28.80| +000044 6008 STR r0,[r1,#0] ; s_heartbeat +;;;3764 ap_tp_st_touch_software_reset(); +000046 f7fffffe BL ap_tp_st_touch_software_reset + |L28.74| +;;;3765 } +;;;3766 } +;;;3767 } +;;;3768 } +00004a bd10 POP {r4,pc} +;;;3769 + ENDP + + |L28.76| + DCD s_screen_init_complate + |L28.80| + DCD s_heartbeat + |L28.84| + DCD 0x0000051e + |L28.88| + DCD 0x00000eb2 + |L28.92| +00005c 53323150 DCB "S21P_demo",0 +000060 5f64656d +000064 6f00 +000066 00 DCB 0 +000067 00 DCB 0 + |L28.104| +000068 5b25735d DCB "[%s] (%04d) hb...",0 +00006c 20282530 +000070 34642920 +000074 68622e2e +000078 2e00 +00007a 00 DCB 0 +00007b 00 DCB 0 + + AREA ||i.tx_display_on||, CODE, READONLY, ALIGN=2 + + tx_display_on PROC +;;;3650 +;;;3651 static void tx_display_on(void) +000000 b510 PUSH {r4,lr} +;;;3652 { +;;;3653 init_panel(); +000002 f7fffffe BL init_panel +;;;3654 hal_dsi_tx_ctrl_start(g_tx_ctrl_handle); +000006 4808 LDR r0,|L29.40| +000008 6800 LDR r0,[r0,#0] ; g_tx_ctrl_handle +00000a f7fffffe BL hal_dsi_tx_ctrl_start +;;;3655 delayMs(120); +00000e 2078 MOVS r0,#0x78 +000010 f7fffffe BL delayMs +;;;3656 hal_dsi_tx_ctrl_write_cmd(0x05, 0, 1, 0x29); +000014 2329 MOVS r3,#0x29 +000016 2201 MOVS r2,#1 +000018 2100 MOVS r1,#0 +00001a 2005 MOVS r0,#5 +00001c f7fffffe BL hal_dsi_tx_ctrl_write_cmd +;;;3657 delayMs(20); +000020 2014 MOVS r0,#0x14 +000022 f7fffffe BL delayMs +;;;3658 } +000026 bd10 POP {r4,pc} +;;;3659 + ENDP + + |L29.40| + DCD g_tx_ctrl_handle + + AREA ||i.tx_panel_reset||, CODE, READONLY, ALIGN=1 + + tx_panel_reset PROC +;;;1466 +;;;1467 static void tx_panel_reset(void) +000000 b510 PUSH {r4,lr} +;;;1468 { +;;;1469 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 +;;;1470 delayMs(10); //10ms +000008 200a MOVS r0,#0xa +00000a f7fffffe BL delayMs +;;;1471 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 +;;;1472 delayMs(10); //10ms +000014 200a MOVS r0,#0xa +000016 f7fffffe BL delayMs +;;;1473 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 +;;;1474 delayMs(20); +000020 2014 MOVS r0,#0x14 +000022 f7fffffe BL delayMs +;;;1475 } +000026 bd10 POP {r4,pc} +;;;1476 + 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_51 +000020 00000000 DCB 0x00,0x00,0x00,0x00 + DCD 0x000000df + DCD ap_get_reg_df +00002c 00000000 DCB 0x00,0x00,0x00,0x00 + DCD 0x000000bb + DCD ap_MIPI_RX_CMD_bb +000038 00000000 DCB 0x00,0x00,0x00,0x00 + DCD 0x00000004 + DCD ap_set_tp_calibration_04 +000044 01000000 DCB 0x01,0x00,0x00,0x00 + DCD 0x00000010 + DCD ap_set_enter_sleep_mode +000050 01000000 DCB 0x01,0x00,0x00,0x00 + DCD 0x00000011 + DCD ap_set_exit_sleep_mode +00005c 01000000 DCB 0x01,0x00,0x00,0x00 + DCD 0x00000060 + DCD ap_update_frame_rate +000068 01000000 DCB 0x01,0x00,0x00,0x00 + DCD 0x00000000 + DCD 0x00000000 +000074 00000000 DCB 0x00,0x00,0x00,0x00 + panel_init_code +000078 2900039c DCB 0x29,0x00,0x03,0x9c +00007c a5a52900 DCB 0xa5,0xa5,0x29,0x00 +000080 03fd5a5a DCB 0x03,0xfd,0x5a,0x5a +000084 2900029f DCB 0x29,0x00,0x02,0x9f +000088 0f290002 DCB 0x0f,0x29,0x00,0x02 +00008c b3002900 DCB 0xb3,0x00,0x29,0x00 +000090 029f0129 DCB 0x02,0x9f,0x01,0x29 +000094 0002d001 DCB 0x00,0x02,0xd0,0x01 +000098 290004b2 DCB 0x29,0x00,0x04,0xb2 +00009c 5a04af29 DCB 0x5a,0x04,0xaf,0x29 +0000a0 0024b300 DCB 0x00,0x24,0xb3,0x00 +0000a4 d0a010bc DCB 0xd0,0xa0,0x10,0xbc +0000a8 0000dd00 DCB 0x00,0x00,0xdd,0x00 +0000ac 10100000 DCB 0x10,0x10,0x00,0x00 +0000b0 b3001010 DCB 0xb3,0x00,0x10,0x10 +0000b4 0000b300 DCB 0x00,0x00,0xb3,0x00 +0000b8 10102200 DCB 0x10,0x10,0x22,0x00 +0000bc ef001010 DCB 0xef,0x00,0x10,0x10 +0000c0 33181818 DCB 0x33,0x18,0x18,0x18 +0000c4 18182900 DCB 0x18,0x18,0x29,0x00 +0000c8 11ca0301 DCB 0x11,0xca,0x03,0x01 +0000cc 030304e5 DCB 0x03,0x03,0x04,0xe5 +0000d0 060604e5 DCB 0x06,0x06,0x04,0xe5 +0000d4 060604e5 DCB 0x06,0x06,0x04,0xe5 +0000d8 06062900 DCB 0x06,0x06,0x29,0x00 +0000dc 0fcb0303 DCB 0x0f,0xcb,0x03,0x03 +0000e0 05850707 DCB 0x05,0x85,0x07,0x07 +0000e4 05850707 DCB 0x05,0x85,0x07,0x07 +0000e8 05850707 DCB 0x05,0x85,0x07,0x07 +0000ec 290004d7 DCB 0x29,0x00,0x04,0xd7 +0000f0 00000229 DCB 0x00,0x00,0x02,0x29 +0000f4 00029f02 DCB 0x00,0x02,0x9f,0x02 +0000f8 29001ab2 DCB 0x29,0x00,0x1a,0xb2 +0000fc 00c03110 DCB 0x00,0xc0,0x31,0x10 +000100 11121210 DCB 0x11,0x12,0x12,0x10 +000104 18789050 DCB 0x18,0x78,0x90,0x50 +000108 11111010 DCB 0x11,0x11,0x10,0x10 +00010c 10101010 DCB 0x10,0x10,0x10,0x10 +000110 10101011 DCB 0x10,0x10,0x10,0x11 +000114 1729000a DCB 0x17,0x29,0x00,0x0a +000118 b3030000 DCB 0xb3,0x03,0x00,0x00 +00011c 00000000 DCB 0x00,0x00,0x00,0x00 +000120 00002900 DCB 0x00,0x00,0x29,0x00 +000124 0db4008a DCB 0x0d,0xb4,0x00,0x8a +000128 00000000 DCB 0x00,0x00,0x00,0x00 +00012c 00000000 DCB 0x00,0x00,0x00,0x00 +000130 00002900 DCB 0x00,0x00,0x29,0x00 +000134 07b50030 DCB 0x07,0xb5,0x00,0x30 +000138 3030302b DCB 0x30,0x30,0x30,0x2b +00013c 290014b6 DCB 0x29,0x00,0x14,0xb6 +000140 01010011 DCB 0x01,0x01,0x00,0x11 +000144 11111c1f DCB 0x11,0x11,0x1c,0x1f +000148 1f222222 DCB 0x1f,0x22,0x22,0x22 +00014c 22222222 DCB 0x22,0x22,0x22,0x22 +000150 22222229 DCB 0x22,0x22,0x22,0x29 +000154 000bb700 DCB 0x00,0x0b,0xb7,0x00 +000158 100f1010 DCB 0x10,0x0f,0x10,0x10 +00015c 15000000 DCB 0x15,0x00,0x00,0x00 +000160 0029000e DCB 0x00,0x29,0x00,0x0e +000164 b8000000 DCB 0xb8,0x00,0x00,0x00 +000168 43284328 DCB 0x43,0x28,0x43,0x28 +00016c 43284328 DCB 0x43,0x28,0x43,0x28 +000170 43282900 DCB 0x43,0x28,0x29,0x00 +000174 0db90000 DCB 0x0d,0xb9,0x00,0x00 +000178 5000000a DCB 0x50,0x00,0x00,0x0a +00017c 0f000000 DCB 0x0f,0x00,0x00,0x00 +000180 190a2900 DCB 0x19,0x0a,0x29,0x00 +000184 09ba00ff DCB 0x09,0xba,0x00,0xff +000188 44044404 DCB 0x44,0x04,0x44,0x04 +00018c 44042900 DCB 0x44,0x04,0x29,0x00 +000190 1abb014a DCB 0x1a,0xbb,0x01,0x4a +000194 64161701 DCB 0x64,0x16,0x17,0x01 +000198 4a641617 DCB 0x4a,0x64,0x16,0x17 +00019c 014a6416 DCB 0x01,0x4a,0x64,0x16 +0001a0 14014a64 DCB 0x14,0x01,0x4a,0x64 +0001a4 16140131 DCB 0x16,0x14,0x01,0x31 +0001a8 64160f29 DCB 0x64,0x16,0x0f,0x29 +0001ac 0011c100 DCB 0x00,0x11,0xc1,0x00 +0001b0 00002323 DCB 0x00,0x00,0x23,0x23 +0001b4 24240505 DCB 0x24,0x24,0x05,0x05 +0001b8 21212222 DCB 0x21,0x21,0x22,0x22 +0001bc 01010029 DCB 0x01,0x01,0x00,0x29 +0001c0 0011c200 DCB 0x00,0x11,0xc2,0x00 +0001c4 00002323 DCB 0x00,0x00,0x23,0x23 +0001c8 24240505 DCB 0x24,0x24,0x05,0x05 +0001cc 21212222 DCB 0x21,0x21,0x22,0x22 +0001d0 01010029 DCB 0x01,0x01,0x00,0x29 +0001d4 0008c300 DCB 0x00,0x08,0xc3,0x00 +0001d8 00000000 DCB 0x00,0x00,0x00,0x00 +0001dc 00002900 DCB 0x00,0x00,0x29,0x00 +0001e0 0fc40005 DCB 0x0f,0xc4,0x00,0x05 +0001e4 01000000 DCB 0x01,0x00,0x00,0x00 +0001e8 0000001f DCB 0x00,0x00,0x00,0x1f +0001ec 1f000006 DCB 0x1f,0x00,0x00,0x06 +0001f0 29001ac6 DCB 0x29,0x00,0x1a,0xc6 +0001f4 00000000 DCB 0x00,0x00,0x00,0x00 +0001f8 00000000 DCB 0x00,0x00,0x00,0x00 +0001fc 00000000 DCB 0x00,0x00,0x00,0x00 +000200 00001103 DCB 0x00,0x00,0x11,0x03 +000204 00001100 DCB 0x00,0x00,0x11,0x00 +000208 00005500 DCB 0x00,0x00,0x55,0x00 +00020c 0129000e DCB 0x01,0x29,0x00,0x0e +000210 c7002e2e DCB 0xc7,0x00,0x2e,0x2e +000214 2e2e002e DCB 0x2e,0x2e,0x00,0x2e +000218 2e2e2e00 DCB 0x2e,0x2e,0x2e,0x00 +00021c 30302900 DCB 0x30,0x30,0x29,0x00 +000220 0ec8002e DCB 0x0e,0xc8,0x00,0x2e +000224 2e2e2e00 DCB 0x2e,0x2e,0x2e,0x00 +000228 2e2e2e2e DCB 0x2e,0x2e,0x2e,0x2e +00022c 00303029 DCB 0x00,0x30,0x30,0x29 +000230 001bcc00 DCB 0x00,0x1b,0xcc,0x00 +000234 57ba57ba DCB 0x57,0xba,0x57,0xba +000238 0057ba57 DCB 0x00,0x57,0xba,0x57 +00023c ba0057bc DCB 0xba,0x00,0x57,0xbc +000240 00306c30 DCB 0x00,0x30,0x6c,0x30 +000244 6c00306c DCB 0x6c,0x00,0x30,0x6c +000248 306c0030 DCB 0x30,0x6c,0x00,0x30 +00024c 6c290011 DCB 0x6c,0x29,0x00,0x11 +000250 d2000009 DCB 0xd2,0x00,0x00,0x09 +000254 09000909 DCB 0x09,0x00,0x09,0x09 +000258 00090900 DCB 0x00,0x09,0x09,0x00 +00025c 09090009 DCB 0x09,0x09,0x00,0x09 +000260 0929000c DCB 0x09,0x29,0x00,0x0c +000264 d744013f DCB 0xd7,0x44,0x01,0x3f +000268 26372637 DCB 0x26,0x37,0x26,0x37 +00026c 01110000 DCB 0x01,0x11,0x00,0x00 +000270 29001ad8 DCB 0x29,0x00,0x1a,0xd8 +000274 0000c39f DCB 0x00,0x00,0xc3,0x9f +000278 400000c3 DCB 0x40,0x00,0x00,0xc3 +00027c 9f400000 DCB 0x9f,0x40,0x00,0x00 +000280 c39f4000 DCB 0xc3,0x9f,0x40,0x00 +000284 00c39f40 DCB 0x00,0xc3,0x9f,0x40 +000288 0000c300 DCB 0x00,0x00,0xc3,0x00 +00028c 0029000c DCB 0x00,0x29,0x00,0x0c +000290 d9100033 DCB 0xd9,0x10,0x00,0x33 +000294 00330033 DCB 0x00,0x33,0x00,0x33 +000298 00330030 DCB 0x00,0x33,0x00,0x30 +00029c 290006e1 DCB 0x29,0x00,0x06,0xe1 +0002a0 00000000 DCB 0x00,0x00,0x00,0x00 +0002a4 0029001a DCB 0x00,0x29,0x00,0x1a +0002a8 e2000000 DCB 0xe2,0x00,0x00,0x00 +0002ac 00000000 DCB 0x00,0x00,0x00,0x00 +0002b0 00000000 DCB 0x00,0x00,0x00,0x00 +0002b4 00000000 DCB 0x00,0x00,0x00,0x00 +0002b8 00000000 DCB 0x00,0x00,0x00,0x00 +0002bc 00000000 DCB 0x00,0x00,0x00,0x00 +0002c0 00002900 DCB 0x00,0x00,0x29,0x00 +0002c4 0de30000 DCB 0x0d,0xe3,0x00,0x00 +0002c8 00000000 DCB 0x00,0x00,0x00,0x00 +0002cc 00000000 DCB 0x00,0x00,0x00,0x00 +0002d0 00002900 DCB 0x00,0x00,0x29,0x00 +0002d4 06ef0080 DCB 0x06,0xef,0x00,0x80 +0002d8 85818229 DCB 0x85,0x81,0x82,0x29 +0002dc 0009be5f DCB 0x00,0x09,0xbe,0x5f +0002e0 16045f75 DCB 0x16,0x04,0x5f,0x75 +0002e4 00000029 DCB 0x00,0x00,0x00,0x29 +0002e8 0002bf08 DCB 0x00,0x02,0xbf,0x08 +0002ec 2900029f DCB 0x29,0x00,0x02,0x9f +0002f0 04290003 DCB 0x04,0x29,0x00,0x03 +0002f4 b2010029 DCB 0xb2,0x01,0x00,0x29 +0002f8 0013b300 DCB 0x00,0x13,0xb3,0x00 +0002fc 00100030 DCB 0x00,0x10,0x00,0x30 +000300 50007090 DCB 0x50,0x00,0x70,0x90 +000304 00b0f011 DCB 0x00,0xb0,0xf0,0x11 +000308 307012f0 DCB 0x30,0x70,0x12,0xf0 +00030c 70290015 DCB 0x70,0x29,0x00,0x15 +000310 b423f070 DCB 0xb4,0x23,0xf0,0x70 +000314 34f0f056 DCB 0x34,0xf0,0xf0,0x56 +000318 f0f078f0 DCB 0xf0,0xf0,0x78,0xf0 +00031c f0cef0f0 DCB 0xf0,0xce,0xf0,0xf0 +000320 ff70f00f DCB 0xff,0x70,0xf0,0x0f +000324 ff29000e DCB 0xff,0x29,0x00,0x0e +000328 b5111027 DCB 0xb5,0x11,0x10,0x27 +00032c 1cd00064 DCB 0x1c,0xd0,0x00,0x64 +000330 64103fff DCB 0x64,0x10,0x3f,0xff +000334 ffff2900 DCB 0xff,0xff,0x29,0x00 +000338 07b61100 DCB 0x07,0xb6,0x11,0x00 +00033c 000ff010 DCB 0x00,0x0f,0xf0,0x10 +000340 290003b9 DCB 0x29,0x00,0x03,0xb9 +000344 91832900 DCB 0x91,0x83,0x29,0x00 +000348 05c40110 DCB 0x05,0xc4,0x01,0x10 +00034c 00002900 DCB 0x00,0x00,0x29,0x00 +000350 14c50020 DCB 0x14,0xc5,0x00,0x20 +000354 88c1cf50 DCB 0x88,0xc1,0xcf,0x50 +000358 4f004e57 DCB 0x4f,0x00,0x4e,0x57 +00035c 3522222a DCB 0x35,0x22,0x22,0x2a +000360 053f0020 DCB 0x05,0x3f,0x00,0x20 +000364 0f29000d DCB 0x0f,0x29,0x00,0x0d +000368 c64b0090 DCB 0xc6,0x4b,0x00,0x90 +00036c 0002d500 DCB 0x00,0x02,0xd5,0x00 +000370 02cb0110 DCB 0x02,0xcb,0x01,0x10 +000374 43290005 DCB 0x43,0x29,0x00,0x05 +000378 c8292928 DCB 0xc8,0x29,0x29,0x28 +00037c 28290015 DCB 0x28,0x29,0x00,0x15 +000380 c9282828 DCB 0xc9,0x28,0x28,0x28 +000384 28282828 DCB 0x28,0x28,0x28,0x28 +000388 28282829 DCB 0x28,0x28,0x28,0x29 +00038c 29292928 DCB 0x29,0x29,0x29,0x28 +000390 28282828 DCB 0x28,0x28,0x28,0x28 +000394 28290015 DCB 0x28,0x29,0x00,0x15 +000398 ca282828 DCB 0xca,0x28,0x28,0x28 +00039c 28282828 DCB 0x28,0x28,0x28,0x28 +0003a0 28282829 DCB 0x28,0x28,0x28,0x29 +0003a4 29292928 DCB 0x29,0x29,0x29,0x28 +0003a8 28282828 DCB 0x28,0x28,0x28,0x28 +0003ac 28290015 DCB 0x28,0x29,0x00,0x15 +0003b0 cb282828 DCB 0xcb,0x28,0x28,0x28 +0003b4 28282828 DCB 0x28,0x28,0x28,0x28 +0003b8 28282829 DCB 0x28,0x28,0x28,0x29 +0003bc 29292928 DCB 0x29,0x29,0x29,0x28 +0003c0 28282828 DCB 0x28,0x28,0x28,0x28 +0003c4 28290015 DCB 0x28,0x29,0x00,0x15 +0003c8 cc282828 DCB 0xcc,0x28,0x28,0x28 +0003cc 28282828 DCB 0x28,0x28,0x28,0x28 +0003d0 28282829 DCB 0x28,0x28,0x28,0x29 +0003d4 29292928 DCB 0x29,0x29,0x29,0x28 +0003d8 28282828 DCB 0x28,0x28,0x28,0x28 +0003dc 28290015 DCB 0x28,0x29,0x00,0x15 +0003e0 cd211f1f DCB 0xcd,0x21,0x1f,0x1f +0003e4 1f1f1f1f DCB 0x1f,0x1f,0x1f,0x1f +0003e8 1f1f1f1c DCB 0x1f,0x1f,0x1f,0x1c +0003ec 1c1c1c1f DCB 0x1c,0x1c,0x1c,0x1f +0003f0 1f1f1f1f DCB 0x1f,0x1f,0x1f,0x1f +0003f4 1f290015 DCB 0x1f,0x29,0x00,0x15 +0003f8 ce211f1f DCB 0xce,0x21,0x1f,0x1f +0003fc 1f1f1f1f DCB 0x1f,0x1f,0x1f,0x1f +000400 1f1f1f1c DCB 0x1f,0x1f,0x1f,0x1c +000404 1c1c1c1f DCB 0x1c,0x1c,0x1c,0x1f +000408 1f1f1f1f DCB 0x1f,0x1f,0x1f,0x1f +00040c 1f290015 DCB 0x1f,0x29,0x00,0x15 +000410 cf211f1f DCB 0xcf,0x21,0x1f,0x1f +000414 1f1f1f1f DCB 0x1f,0x1f,0x1f,0x1f +000418 1f1f1f1c DCB 0x1f,0x1f,0x1f,0x1c +00041c 1c1c1c1f DCB 0x1c,0x1c,0x1c,0x1f +000420 1f1f1f1f DCB 0x1f,0x1f,0x1f,0x1f +000424 1f290015 DCB 0x1f,0x29,0x00,0x15 +000428 d0211f1f DCB 0xd0,0x21,0x1f,0x1f +00042c 1f1f1f1f DCB 0x1f,0x1f,0x1f,0x1f +000430 1f1f1f1c DCB 0x1f,0x1f,0x1f,0x1c +000434 1c1c1c1f DCB 0x1c,0x1c,0x1c,0x1f +000438 1f1f1f1f DCB 0x1f,0x1f,0x1f,0x1f +00043c 1f290015 DCB 0x1f,0x29,0x00,0x15 +000440 d1211f1f DCB 0xd1,0x21,0x1f,0x1f +000444 1f1f1f1f DCB 0x1f,0x1f,0x1f,0x1f +000448 1f1f1f1c DCB 0x1f,0x1f,0x1f,0x1c +00044c 1c1c1c1f DCB 0x1c,0x1c,0x1c,0x1f +000450 1f1f1f1f DCB 0x1f,0x1f,0x1f,0x1f +000454 1f290015 DCB 0x1f,0x29,0x00,0x15 +000458 d2211f1f DCB 0xd2,0x21,0x1f,0x1f +00045c 1f1f1f1f DCB 0x1f,0x1f,0x1f,0x1f +000460 1f1f1f1c DCB 0x1f,0x1f,0x1f,0x1c +000464 1c1c1c1f DCB 0x1c,0x1c,0x1c,0x1f +000468 1f1f1f1f DCB 0x1f,0x1f,0x1f,0x1f +00046c 1f290015 DCB 0x1f,0x29,0x00,0x15 +000470 d3211f1f DCB 0xd3,0x21,0x1f,0x1f +000474 1f1f1f1f DCB 0x1f,0x1f,0x1f,0x1f +000478 1f1f1f1c DCB 0x1f,0x1f,0x1f,0x1c +00047c 1c1c1c1f DCB 0x1c,0x1c,0x1c,0x1f +000480 1f1f1f1f DCB 0x1f,0x1f,0x1f,0x1f +000484 1f290015 DCB 0x1f,0x29,0x00,0x15 +000488 d4211f1f DCB 0xd4,0x21,0x1f,0x1f +00048c 1f1f1f1f DCB 0x1f,0x1f,0x1f,0x1f +000490 1f1f1f1c DCB 0x1f,0x1f,0x1f,0x1c +000494 1c1c1c1f DCB 0x1c,0x1c,0x1c,0x1f +000498 1f1f1f1f DCB 0x1f,0x1f,0x1f,0x1f +00049c 1f290002 DCB 0x1f,0x29,0x00,0x02 +0004a0 9f052900 DCB 0x9f,0x05,0x29,0x00 +0004a4 07b22420 DCB 0x07,0xb2,0x24,0x20 +0004a8 050fffff DCB 0x05,0x0f,0xff,0xff +0004ac 290009b3 DCB 0x29,0x00,0x09,0xb3 +0004b0 a0002800 DCB 0xa0,0x00,0x28,0x00 +0004b4 00003fff DCB 0x00,0x00,0x3f,0xff +0004b8 29000bb4 DCB 0x29,0x00,0x0b,0xb4 +0004bc 00600e38 DCB 0x00,0x60,0x0e,0x38 +0004c0 00000000 DCB 0x00,0x00,0x00,0x00 +0004c4 00002900 DCB 0x00,0x00,0x29,0x00 +0004c8 10b533fe DCB 0x10,0xb5,0x33,0xfe +0004cc 6e22ec68 DCB 0x6e,0x22,0xec,0x68 +0004d0 11e46410 DCB 0x11,0xe4,0x64,0x10 +0004d4 62ec0076 DCB 0x62,0xec,0x00,0x76 +0004d8 02290007 DCB 0x02,0x29,0x00,0x07 +0004dc b631fed8 DCB 0xb6,0x31,0xfe,0xd8 +0004e0 00580029 DCB 0x00,0x58,0x00,0x29 +0004e4 0010b971 DCB 0x00,0x10,0xb9,0x71 +0004e8 20057870 DCB 0x20,0x05,0x78,0x70 +0004ec 5a3c7870 DCB 0x5a,0x3c,0x78,0x70 +0004f0 5a3c7870 DCB 0x5a,0x3c,0x78,0x70 +0004f4 5a3c2900 DCB 0x5a,0x3c,0x29,0x00 +0004f8 029f0729 DCB 0x02,0x9f,0x07,0x29 +0004fc 0008b208 DCB 0x00,0x08,0xb2,0x08 +000500 08080804 DCB 0x08,0x08,0x08,0x04 +000504 02a82900 DCB 0x02,0xa8,0x29,0x00 +000508 08b30404 DCB 0x08,0xb3,0x04,0x04 +00050c 04040403 DCB 0x04,0x04,0x04,0x03 +000510 8c290008 DCB 0x8c,0x29,0x00,0x08 +000514 b4040404 DCB 0xb4,0x04,0x04,0x04 +000518 040402a8 DCB 0x04,0x04,0x02,0xa8 +00051c 290008b5 DCB 0x29,0x00,0x08,0xb5 +000520 04040404 DCB 0x04,0x04,0x04,0x04 +000524 0402a829 DCB 0x04,0x02,0xa8,0x29 +000528 0008b604 DCB 0x00,0x08,0xb6,0x04 +00052c 04040404 DCB 0x04,0x04,0x04,0x04 +000530 02a82900 DCB 0x02,0xa8,0x29,0x00 +000534 08b70808 DCB 0x08,0xb7,0x08,0x08 +000538 0808020b DCB 0x08,0x08,0x02,0x0b +00053c b8290008 DCB 0xb8,0x29,0x00,0x08 +000540 b8020404 DCB 0xb8,0x02,0x04,0x04 +000544 04010abe DCB 0x04,0x01,0x0a,0xbe +000548 290011b9 DCB 0x29,0x00,0x11,0xb9 +00054c 01050307 DCB 0x01,0x05,0x03,0x07 +000550 02060408 DCB 0x02,0x06,0x04,0x08 +000554 00000000 DCB 0x00,0x00,0x00,0x00 +000558 00000000 DCB 0x00,0x00,0x00,0x00 +00055c 290011ba DCB 0x29,0x00,0x11,0xba +000560 01030204 DCB 0x01,0x03,0x02,0x04 +000564 00000000 DCB 0x00,0x00,0x00,0x00 +000568 00000000 DCB 0x00,0x00,0x00,0x00 +00056c 00000000 DCB 0x00,0x00,0x00,0x00 +000570 290011bb DCB 0x29,0x00,0x11,0xbb +000574 01030204 DCB 0x01,0x03,0x02,0x04 +000578 00000000 DCB 0x00,0x00,0x00,0x00 +00057c 00000000 DCB 0x00,0x00,0x00,0x00 +000580 00000000 DCB 0x00,0x00,0x00,0x00 +000584 290011bc DCB 0x29,0x00,0x11,0xbc +000588 01030204 DCB 0x01,0x03,0x02,0x04 +00058c 00000000 DCB 0x00,0x00,0x00,0x00 +000590 00000000 DCB 0x00,0x00,0x00,0x00 +000594 00000000 DCB 0x00,0x00,0x00,0x00 +000598 290011bd DCB 0x29,0x00,0x11,0xbd +00059c 01030204 DCB 0x01,0x03,0x02,0x04 +0005a0 00000000 DCB 0x00,0x00,0x00,0x00 +0005a4 00000000 DCB 0x00,0x00,0x00,0x00 +0005a8 00000000 DCB 0x00,0x00,0x00,0x00 +0005ac 290011be DCB 0x29,0x00,0x11,0xbe +0005b0 01020304 DCB 0x01,0x02,0x03,0x04 +0005b4 05060708 DCB 0x05,0x06,0x07,0x08 +0005b8 00000000 DCB 0x00,0x00,0x00,0x00 +0005bc 00000000 DCB 0x00,0x00,0x00,0x00 +0005c0 290011bf DCB 0x29,0x00,0x11,0xbf +0005c4 01020304 DCB 0x01,0x02,0x03,0x04 +0005c8 00000000 DCB 0x00,0x00,0x00,0x00 +0005cc 00000000 DCB 0x00,0x00,0x00,0x00 +0005d0 00000000 DCB 0x00,0x00,0x00,0x00 +0005d4 290010c0 DCB 0x29,0x00,0x10,0xc0 +0005d8 22a8a822 DCB 0x22,0xa8,0xa8,0x22 +0005dc a8a82158 DCB 0xa8,0xa8,0x21,0x58 +0005e0 9000c844 DCB 0x90,0x00,0xc8,0x44 +0005e4 00202029 DCB 0x00,0x20,0x20,0x29 +0005e8 0010c133 DCB 0x00,0x10,0xc1,0x33 +0005ec 8c8c338c DCB 0x8c,0x8c,0x33,0x8c +0005f0 8c322018 DCB 0x8c,0x32,0x20,0x18 +0005f4 100c5800 DCB 0x10,0x0c,0x58,0x00 +0005f8 2c2c2900 DCB 0x2c,0x2c,0x29,0x00 +0005fc 10c222a8 DCB 0x10,0xc2,0x22,0xa8 +000600 a822a8a8 DCB 0xa8,0x22,0xa8,0xa8 +000604 21589000 DCB 0x21,0x58,0x90,0x00 +000608 c8440020 DCB 0xc8,0x44,0x00,0x20 +00060c 20290010 DCB 0x20,0x29,0x00,0x10 +000610 c322a8a8 DCB 0xc3,0x22,0xa8,0xa8 +000614 22a8a821 DCB 0x22,0xa8,0xa8,0x21 +000618 589000c8 DCB 0x58,0x90,0x00,0xc8 +00061c 44002020 DCB 0x44,0x00,0x20,0x20 +000620 290007c4 DCB 0x29,0x00,0x07,0xc4 +000624 22a8a822 DCB 0x22,0xa8,0xa8,0x22 +000628 a8a82900 DCB 0xa8,0xa8,0x29,0x00 +00062c 07c597c4 DCB 0x07,0xc5,0x97,0xc4 +000630 d0760840 DCB 0xd0,0x76,0x08,0x40 +000634 290004c6 DCB 0x29,0x00,0x04,0xc6 +000638 972e9e29 DCB 0x97,0x2e,0x9e,0x29 +00063c 0003c702 DCB 0x00,0x03,0xc7,0x02 +000640 00290008 DCB 0x00,0x29,0x00,0x08 +000644 c8102020 DCB 0xc8,0x10,0x20,0x20 +000648 2002007e DCB 0x20,0x02,0x00,0x7e +00064c 290008c9 DCB 0x29,0x00,0x08,0xc9 +000650 0f202020 DCB 0x0f,0x20,0x20,0x20 +000654 02007e29 DCB 0x02,0x00,0x7e,0x29 +000658 0008ca0e DCB 0x00,0x08,0xca,0x0e +00065c 20202002 DCB 0x20,0x20,0x20,0x02 +000660 007e2900 DCB 0x00,0x7e,0x29,0x00 +000664 08cb0d20 DCB 0x08,0xcb,0x0d,0x20 +000668 20200200 DCB 0x20,0x20,0x02,0x00 +00066c 7e290011 DCB 0x7e,0x29,0x00,0x11 +000670 cc010903 DCB 0xcc,0x01,0x09,0x03 +000674 0b050d07 DCB 0x0b,0x05,0x0d,0x07 +000678 0f020a04 DCB 0x0f,0x02,0x0a,0x04 +00067c 0c060e08 DCB 0x0c,0x06,0x0e,0x08 +000680 10290011 DCB 0x10,0x29,0x00,0x11 +000684 cd010703 DCB 0xcd,0x01,0x07,0x03 +000688 09050b0d DCB 0x09,0x05,0x0b,0x0d +00068c 0f020804 DCB 0x0f,0x02,0x08,0x04 +000690 0a060c0e DCB 0x0a,0x06,0x0c,0x0e +000694 00290011 DCB 0x00,0x29,0x00,0x11 +000698 ce010703 DCB 0xce,0x01,0x07,0x03 +00069c 09050b0d DCB 0x09,0x05,0x0b,0x0d +0006a0 0208040a DCB 0x02,0x08,0x04,0x0a +0006a4 060c0e00 DCB 0x06,0x0c,0x0e,0x00 +0006a8 00290011 DCB 0x00,0x29,0x00,0x11 +0006ac cf010703 DCB 0xcf,0x01,0x07,0x03 +0006b0 09050b0d DCB 0x09,0x05,0x0b,0x0d +0006b4 0208040a DCB 0x02,0x08,0x04,0x0a +0006b8 060c0000 DCB 0x06,0x0c,0x00,0x00 +0006bc 00290010 DCB 0x00,0x29,0x00,0x10 +0006c0 d0007e72 DCB 0xd0,0x00,0x7e,0x72 +0006c4 00645800 DCB 0x00,0x64,0x58,0x00 +0006c8 4c400032 DCB 0x4c,0x40,0x00,0x32 +0006cc 26001a16 DCB 0x26,0x00,0x1a,0x16 +0006d0 290010d1 DCB 0x29,0x00,0x10,0xd1 +0006d4 007e7200 DCB 0x00,0x7e,0x72,0x00 +0006d8 6458004c DCB 0x64,0x58,0x00,0x4c +0006dc 40003226 DCB 0x40,0x00,0x32,0x26 +0006e0 001a1629 DCB 0x00,0x1a,0x16,0x29 +0006e4 0010d200 DCB 0x00,0x10,0xd2,0x00 +0006e8 7e720064 DCB 0x7e,0x72,0x00,0x64 +0006ec 58004c40 DCB 0x58,0x00,0x4c,0x40 +0006f0 00322600 DCB 0x00,0x32,0x26,0x00 +0006f4 1a162900 DCB 0x1a,0x16,0x29,0x00 +0006f8 10d3007e DCB 0x10,0xd3,0x00,0x7e +0006fc 72006458 DCB 0x72,0x00,0x64,0x58 +000700 004c4000 DCB 0x00,0x4c,0x40,0x00 +000704 3226001a DCB 0x32,0x26,0x00,0x1a +000708 16290002 DCB 0x16,0x29,0x00,0x02 +00070c 9f0f2900 DCB 0x9f,0x0f,0x29,0x00 +000710 02f81129 DCB 0x02,0xf8,0x11,0x29 +000714 00029f00 DCB 0x00,0x02,0x9f,0x00 +000718 29000248 DCB 0x29,0x00,0x02,0x48 +00071c 00290003 DCB 0x00,0x29,0x00,0x03 +000720 51000029 DCB 0x51,0x00,0x00,0x29 +000724 000253e0 DCB 0x00,0x02,0x53,0xe0 +000728 29000235 DCB 0x29,0x00,0x02,0x35 +00072c 00290001 DCB 0x00,0x29,0x00,0x01 +000730 11290002 DCB 0x11,0x29,0x00,0x02 +000734 9f052900 DCB 0x9f,0x05,0x29,0x00 +000738 02f98029 DCB 0x02,0xf9,0x80,0x29 +00073c 0002f710 DCB 0x00,0x02,0xf7,0x10 +000740 2900029f DCB 0x29,0x00,0x02,0x9f +000744 06290029 DCB 0x06,0x29,0x00,0x29 +000748 b2000000 DCB 0xb2,0x00,0x00,0x00 +00074c 00000000 DCB 0x00,0x00,0x00,0x00 +000750 00000000 DCB 0x00,0x00,0x00,0x00 +000754 00000000 DCB 0x00,0x00,0x00,0x00 +000758 00000000 DCB 0x00,0x00,0x00,0x00 +00075c 00000000 DCB 0x00,0x00,0x00,0x00 +000760 00000000 DCB 0x00,0x00,0x00,0x00 +000764 00000000 DCB 0x00,0x00,0x00,0x00 +000768 00000000 DCB 0x00,0x00,0x00,0x00 +00076c 00000000 DCB 0x00,0x00,0x00,0x00 +000770 00290029 DCB 0x00,0x29,0x00,0x29 +000774 b3000000 DCB 0xb3,0x00,0x00,0x00 +000778 00000000 DCB 0x00,0x00,0x00,0x00 +00077c 00000000 DCB 0x00,0x00,0x00,0x00 +000780 00000000 DCB 0x00,0x00,0x00,0x00 +000784 00000000 DCB 0x00,0x00,0x00,0x00 +000788 00000000 DCB 0x00,0x00,0x00,0x00 +00078c 00000000 DCB 0x00,0x00,0x00,0x00 +000790 00000000 DCB 0x00,0x00,0x00,0x00 +000794 00000000 DCB 0x00,0x00,0x00,0x00 +000798 00000000 DCB 0x00,0x00,0x00,0x00 +00079c 00290015 DCB 0x00,0x29,0x00,0x15 +0007a0 b4000000 DCB 0xb4,0x00,0x00,0x00 +0007a4 00000000 DCB 0x00,0x00,0x00,0x00 +0007a8 00000000 DCB 0x00,0x00,0x00,0x00 +0007ac 00000000 DCB 0x00,0x00,0x00,0x00 +0007b0 00000000 DCB 0x00,0x00,0x00,0x00 +0007b4 00290029 DCB 0x00,0x29,0x00,0x29 +0007b8 b501ed01 DCB 0xb5,0x01,0xed,0x01 +0007bc ed01ed01 DCB 0xed,0x01,0xed,0x01 +0007c0 ed01ed01 DCB 0xed,0x01,0xed,0x01 +0007c4 ed01ed01 DCB 0xed,0x01,0xed,0x01 +0007c8 ed01ed01 DCB 0xed,0x01,0xed,0x01 +0007cc ed01ed01 DCB 0xed,0x01,0xed,0x01 +0007d0 ed01ed01 DCB 0xed,0x01,0xed,0x01 +0007d4 ed01ed01 DCB 0xed,0x01,0xed,0x01 +0007d8 ed01ed01 DCB 0xed,0x01,0xed,0x01 +0007dc ed01ed01 DCB 0xed,0x01,0xed,0x01 +0007e0 ed290029 DCB 0xed,0x29,0x00,0x29 +0007e4 b601ed01 DCB 0xb6,0x01,0xed,0x01 +0007e8 ed01ed01 DCB 0xed,0x01,0xed,0x01 +0007ec ed01ed01 DCB 0xed,0x01,0xed,0x01 +0007f0 ed01ed01 DCB 0xed,0x01,0xed,0x01 +0007f4 ed01ed01 DCB 0xed,0x01,0xed,0x01 +0007f8 ed01ed01 DCB 0xed,0x01,0xed,0x01 +0007fc ed01ed01 DCB 0xed,0x01,0xed,0x01 +000800 ed01ed01 DCB 0xed,0x01,0xed,0x01 +000804 ed01ed01 DCB 0xed,0x01,0xed,0x01 +000808 ed01ed01 DCB 0xed,0x01,0xed,0x01 +00080c ed290015 DCB 0xed,0x29,0x00,0x15 +000810 b701ed01 DCB 0xb7,0x01,0xed,0x01 +000814 ed01ed01 DCB 0xed,0x01,0xed,0x01 +000818 ed01ed01 DCB 0xed,0x01,0xed,0x01 +00081c ed01ed01 DCB 0xed,0x01,0xed,0x01 +000820 ed01ed01 DCB 0xed,0x01,0xed,0x01 +000824 ed390005 DCB 0xed,0x39,0x00,0x05 +000828 fe010000 DCB 0xfe,0x01,0x00,0x00 +00082c 00390016 DCB 0x00,0x39,0x00,0x16 +000830 f1000001 DCB 0xf1,0x00,0x00,0x01 +000834 0039c711 DCB 0x00,0x39,0xc7,0x11 +000838 48b0220b DCB 0x48,0xb0,0x22,0x0b +00083c 96331279 DCB 0x96,0x33,0x12,0x79 +000840 441da355 DCB 0x44,0x1d,0xa3,0x55 +000844 218d3900 DCB 0x21,0x8d,0x39,0x00 +000848 12f256f4 DCB 0x12,0xf2,0x56,0xf4 +00084c a3773cc9 DCB 0xa3,0x77,0x3c,0xc9 +000850 8850d6ab DCB 0x88,0x50,0xd6,0xab +000854 cecbcc14 DCB 0xce,0xcb,0xcc,0x14 +000858 51c05139 DCB 0x51,0xc0,0x51,0x39 +00085c 0016f300 DCB 0x00,0x16,0xf3,0x00 +000860 0001000b DCB 0x00,0x01,0x00,0x0b +000864 5b01b905 DCB 0x5b,0x01,0xb9,0x05 +000868 1158d722 DCB 0x11,0x58,0xd7,0x22 +00086c 46aa3344 DCB 0x46,0xaa,0x33,0x44 +000870 be44298c DCB 0xbe,0x44,0x29,0x8c +000874 390012f4 DCB 0x39,0x00,0x12,0xf4 +000878 45e88c66 DCB 0x45,0xe8,0x8c,0x66 +00087c 1e987711 DCB 0x1e,0x98,0x77,0x11 +000880 83992efe DCB 0x83,0x99,0x2e,0xfe +000884 aa3768a0 DCB 0xaa,0x37,0x68,0xa0 +000888 68390016 DCB 0x68,0x39,0x00,0x16 +00088c f50000e1 DCB 0xf5,0x00,0x00,0xe1 +000890 114dc322 DCB 0x11,0x4d,0xc3,0x22 +000894 369423ec DCB 0x36,0x94,0x23,0xec +000898 7834ee59 DCB 0x78,0x34,0xee,0x59 +00089c 550a9766 DCB 0x55,0x0a,0x97,0x66 +0008a0 18873900 DCB 0x18,0x87,0x39,0x00 +0008a4 12f667ef DCB 0x12,0xf6,0x67,0xef +0008a8 a58847d9 DCB 0xa5,0x88,0x47,0xd9 +0008ac 9971fbcd DCB 0x99,0x71,0xfb,0xcd +0008b0 172ddd79 DCB 0x17,0x2d,0xdd,0x79 +0008b4 bcd0bc39 DCB 0xbc,0xd0,0xbc,0x39 +0008b8 0002ff01 DCB 0x00,0x02,0xff,0x01 +0008bc 390005fe DCB 0x39,0x00,0x05,0xfe +0008c0 01010000 DCB 0x01,0x01,0x00,0x00 +0008c4 390016f1 DCB 0x39,0x00,0x16,0xf1 +0008c8 00002b00 DCB 0x00,0x00,0x2b,0x00 +0008cc 7ddc1144 DCB 0x7d,0xdc,0x11,0x44 +0008d0 a112f582 DCB 0xa1,0x12,0xf5,0x82 +0008d4 23f04a34 DCB 0x23,0xf0,0x4a,0x34 +0008d8 ea7245e3 DCB 0xea,0x72,0x45,0xe3 +0008dc 4c390012 DCB 0x4c,0x39,0x00,0x12 +0008e0 f256ab58 DCB 0xf2,0x56,0xab,0x58 +0008e4 67ed7378 DCB 0x67,0xed,0x73,0x78 +0008e8 ef65ab2c DCB 0xef,0x65,0xab,0x2c +0008ec 0ebb437b DCB 0x0e,0xbb,0x43,0x7b +0008f0 b07b3900 DCB 0xb0,0x7b,0x39,0x00 +0008f4 16f30000 DCB 0x16,0xf3,0x00,0x00 +0008f8 3700628d DCB 0x37,0x00,0x62,0x8d +0008fc 01ca0a11 DCB 0x01,0xca,0x0a,0x11 +000900 4dc62229 DCB 0x4d,0xc6,0x22,0x29 +000904 7c33138e DCB 0x7c,0x33,0x13,0x8e +000908 34ef4f39 DCB 0x34,0xef,0x4f,0x39 +00090c 0012f445 DCB 0x00,0x12,0xf4,0x45 +000910 a64356c9 DCB 0xa6,0x43,0x56,0xc9 +000914 4667b51e DCB 0x46,0x67,0xb5,0x1e +000918 89a05699 DCB 0x89,0xa0,0x56,0x99 +00091c 83b790b7 DCB 0x83,0xb7,0x90,0xb7 +000920 390016f5 DCB 0x39,0x00,0x16,0xf5 +000924 01002c11 DCB 0x01,0x00,0x2c,0x11 +000928 77cf222f DCB 0x77,0xcf,0x22,0x2f +00092c 8623d560 DCB 0x86,0x23,0xd5,0x60 +000930 34cc2945 DCB 0x34,0xcc,0x29,0x45 +000934 d46356dc DCB 0xd4,0x63,0x56,0xdc +000938 46390012 DCB 0x46,0x39,0x00,0x12 +00093c f667a858 DCB 0xf6,0x67,0xa8,0x58 +000940 78f47f99 DCB 0x78,0xf4,0x7f,0x99 +000944 0582bc6c DCB 0x05,0x82,0xbc,0x6c +000948 60cc99d1 DCB 0x60,0xcc,0x99,0xd1 +00094c c0d13900 DCB 0xc0,0xd1,0x39,0x00 +000950 02ff0139 DCB 0x02,0xff,0x01,0x39 +000954 0005fe01 DCB 0x00,0x05,0xfe,0x01 +000958 02000039 DCB 0x02,0x00,0x00,0x39 +00095c 0016f100 DCB 0x00,0x16,0xf1,0x00 +000960 0009005a DCB 0x00,0x09,0x00,0x5a +000964 9a01e32f DCB 0x9a,0x01,0xe3,0x2f +000968 1178ef22 DCB 0x11,0x78,0xef,0x22 +00096c 5ab13346 DCB 0x5a,0xb1,0x33,0x46 +000970 bd44237e DCB 0xbd,0x44,0x23,0x7e +000974 390012f2 DCB 0x39,0x00,0x12,0xf2 +000978 45d66e56 DCB 0x45,0xd6,0x6e,0x56 +00097c f36867d9 DCB 0xf3,0x68,0x67,0xd9 +000980 3d899f44 DCB 0x3d,0x89,0x9f,0x44 +000984 996d9590 DCB 0x99,0x6d,0x95,0x90 +000988 95390016 DCB 0x95,0x39,0x00,0x16 +00098c f3000026 DCB 0xf3,0x00,0x00,0x26 +000990 00526e00 DCB 0x00,0x52,0x6e,0x00 +000994 91be01ed DCB 0x91,0xbe,0x01,0xed +000998 4611a0f0 DCB 0x46,0x11,0xa0,0xf0 +00099c 2279e633 DCB 0x22,0x79,0xe6,0x33 +0009a0 45983900 DCB 0x45,0x98,0x39,0x00 +0009a4 12f434e5 DCB 0x12,0xf4,0x34,0xe5 +0009a8 6e45e551 DCB 0x6e,0x45,0xe5,0x51 +0009ac 56b51477 DCB 0x56,0xb5,0x14,0x77 +0009b0 4dde78fe DCB 0x4d,0xde,0x78,0xfe +0009b4 26802639 DCB 0x26,0x80,0x26,0x39 +0009b8 0016f501 DCB 0x00,0x16,0xf5,0x01 +0009bc 00251157 DCB 0x00,0x25,0x11,0x57 +0009c0 9212d51b DCB 0x92,0x12,0xd5,0x1b +0009c4 225ed033 DCB 0x22,0x5e,0xd0,0x33 +0009c8 388f4423 DCB 0x38,0x8f,0x44,0x23 +0009cc a2551070 DCB 0xa2,0x55,0x10,0x70 +0009d0 390012f6 DCB 0x39,0x00,0x12,0xf6 +0009d4 56cc6a67 DCB 0x56,0xcc,0x6a,0x67 +0009d8 f06a78df DCB 0xf0,0x6a,0x78,0xdf +0009dc 469ac074 DCB 0x46,0x9a,0xc0,0x74 +0009e0 aa9fcda0 DCB 0xaa,0x9f,0xcd,0xa0 +0009e4 cd390002 DCB 0xcd,0x39,0x00,0x02 +0009e8 ff013900 DCB 0xff,0x01,0x39,0x00 +0009ec 05fe0103 DCB 0x05,0xfe,0x01,0x03 +0009f0 00003900 DCB 0x00,0x00,0x39,0x00 +0009f4 16f10000 DCB 0x16,0xf1,0x00,0x00 +0009f8 0100365c DCB 0x01,0x00,0x36,0x5c +0009fc 007da201 DCB 0x00,0x7d,0xa2,0x01 +000a00 cd231175 DCB 0xcd,0x23,0x11,0x75 +000a04 c1223eaa DCB 0xc1,0x22,0x3e,0xaa +000a08 33065339 DCB 0x33,0x06,0x53,0x39 +000a0c 0012f234 DCB 0x00,0x12,0xf2,0x34 +000a10 960f4479 DCB 0x96,0x0f,0x44,0x79 +000a14 e5553d90 DCB 0xe5,0x55,0x3d,0x90 +000a18 67a41a77 DCB 0x67,0xa4,0x1a,0x77 +000a1c 37517051 DCB 0x37,0x51,0x70,0x51 +000a20 390016f3 DCB 0x39,0x00,0x16,0xf3 +000a24 00000100 DCB 0x00,0x00,0x01,0x00 +000a28 3f550060 DCB 0x3f,0x55,0x00,0x60 +000a2c 6f0084b5 DCB 0x6f,0x00,0x84,0xb5 +000a30 01eb2311 DCB 0x01,0xeb,0x23,0x11 +000a34 8ae8223c DCB 0x8a,0xe8,0x22,0x3c +000a38 84390012 DCB 0x84,0x39,0x00,0x12 +000a3c f423c235 DCB 0xf4,0x23,0xc2,0x35 +000a40 3395f144 DCB 0x33,0x95,0xf1,0x44 +000a44 418c5587 DCB 0x41,0x8c,0x55,0x87 +000a48 f4660f25 DCB 0xf4,0x66,0x0f,0x25 +000a4c 60253900 DCB 0x60,0x25,0x39,0x00 +000a50 16f50100 DCB 0x16,0xf5,0x01,0x00 +000a54 01113759 DCB 0x01,0x11,0x37,0x59 +000a58 11759912 DCB 0x11,0x75,0x99,0x12 +000a5c c010225f DCB 0xc0,0x10,0x22,0x5f +000a60 a6331d88 DCB 0xa6,0x33,0x1d,0x88 +000a64 34e23339 DCB 0x34,0xe2,0x33,0x39 +000a68 0012f644 DCB 0x00,0x12,0xf6,0x44 +000a6c 7afd556c DCB 0x7a,0xfd,0x55,0x6c +000a70 dd66388c DCB 0xdd,0x66,0x38,0x8c +000a74 78a82488 DCB 0x78,0xa8,0x24,0x88 +000a78 415d805d DCB 0x41,0x5d,0x80,0x5d +000a7c 390002ff DCB 0x39,0x00,0x02,0xff +000a80 01390005 DCB 0x01,0x39,0x00,0x05 +000a84 fe010400 DCB 0xfe,0x01,0x04,0x00 +000a88 00390016 DCB 0x00,0x39,0x00,0x16 +000a8c f1000001 DCB 0xf1,0x00,0x00,0x01 +000a90 00032d00 DCB 0x00,0x03,0x2d,0x00 +000a94 598601b9 DCB 0x59,0x86,0x01,0xb9 +000a98 1b1171bf DCB 0x1b,0x11,0x71,0xbf +000a9c 2245b333 DCB 0x22,0x45,0xb3,0x33 +000aa0 14633900 DCB 0x14,0x63,0x39,0x00 +000aa4 12f234ae DCB 0x12,0xf2,0x34,0xae +000aa8 2b459a01 DCB 0x2b,0x45,0x9a,0x01 +000aac 555baf67 DCB 0x55,0x5b,0xaf,0x67 +000ab0 c9447761 DCB 0xc9,0x44,0x77,0x61 +000ab4 7f707f39 DCB 0x7f,0x70,0x7f,0x39 +000ab8 0016f300 DCB 0x00,0x16,0xf3,0x00 +000abc 0001002e DCB 0x00,0x01,0x00,0x2e +000ac0 42005261 DCB 0x42,0x00,0x52,0x61 +000ac4 0076ab01 DCB 0x00,0x76,0xab,0x01 +000ac8 e31f1189 DCB 0xe3,0x1f,0x11,0x89 +000acc ee22448e DCB 0xee,0x22,0x44,0x8e +000ad0 390012f4 DCB 0x39,0x00,0x12,0xf4 +000ad4 23d44a34 DCB 0x23,0xd4,0x4a,0x34 +000ad8 ae08445c DCB 0xae,0x08,0x44,0x5c +000adc a756a91a DCB 0xa7,0x56,0xa9,0x1a +000ae0 66334e60 DCB 0x66,0x33,0x4e,0x60 +000ae4 4e390016 DCB 0x4e,0x39,0x00,0x16 +000ae8 f5010007 DCB 0xf5,0x01,0x00,0x07 +000aec 11345311 DCB 0x11,0x34,0x53,0x11 +000af0 749a12c2 DCB 0x74,0x9a,0x12,0xc2 +000af4 162265ac DCB 0x16,0x22,0x65,0xac +000af8 332f9c34 DCB 0x33,0x2f,0x9c,0x34 +000afc fa4b3900 DCB 0xfa,0x4b,0x39,0x00 +000b00 12f64599 DCB 0x12,0xf6,0x45,0x99 +000b04 1e5591fe DCB 0x1e,0x55,0x91,0xfe +000b08 6659ae78 DCB 0x66,0x59,0xae,0x78 +000b0c d2518870 DCB 0xd2,0x51,0x88,0x70 +000b10 8f808f39 DCB 0x8f,0x80,0x8f,0x39 +000b14 0002ff01 DCB 0x00,0x02,0xff,0x01 +000b18 390005fe DCB 0x39,0x00,0x05,0xfe +000b1c 01050000 DCB 0x01,0x05,0x00,0x00 +000b20 390016f1 DCB 0x39,0x00,0x16,0xf1 +000b24 00000100 DCB 0x00,0x00,0x01,0x00 +000b28 0227004f DCB 0x02,0x27,0x00,0x4f +000b2c 7b01a402 DCB 0x7b,0x01,0xa4,0x02 +000b30 1157a522 DCB 0x11,0x57,0xa5,0x22 +000b34 2da423ff DCB 0x2d,0xa4,0x23,0xff +000b38 55390012 DCB 0x55,0x39,0x00,0x12 +000b3c f2349f1d DCB 0xf2,0x34,0x9f,0x1d +000b40 448ef155 DCB 0x44,0x8e,0xf1,0x55 +000b44 4b9a67b5 DCB 0x4b,0x9a,0x67,0xb5 +000b48 32774a67 DCB 0x32,0x77,0x4a,0x67 +000b4c 70673900 DCB 0x70,0x67,0x39,0x00 +000b50 16f30000 DCB 0x16,0xf3,0x00,0x00 +000b54 01003a4e DCB 0x01,0x00,0x3a,0x4e +000b58 005f6d00 DCB 0x00,0x5f,0x6d,0x00 +000b5c 80a901dd DCB 0x80,0xa9,0x01,0xdd +000b60 101176dd DCB 0x10,0x11,0x76,0xdd +000b64 222f7e39 DCB 0x22,0x2f,0x7e,0x39 +000b68 0012f423 DCB 0x00,0x12,0xf4,0x23 +000b6c c63e33a4 DCB 0xc6,0x3e,0x33,0xa4 +000b70 fb444d94 DCB 0xfb,0x44,0x4d,0x94 +000b74 56960766 DCB 0x56,0x96,0x07,0x66 +000b78 203a603a DCB 0x20,0x3a,0x60,0x3a +000b7c 390016f5 DCB 0x39,0x00,0x16,0xf5 +000b80 0000d611 DCB 0x00,0x00,0xd6,0x11 +000b84 56701191 DCB 0x56,0x70,0x11,0x91 +000b88 b012d221 DCB 0xb0,0x12,0xd2,0x21 +000b8c 226eb433 DCB 0x22,0x6e,0xb4,0x33 +000b90 2f9c34f0 DCB 0x2f,0x9c,0x34,0xf0 +000b94 44390012 DCB 0x44,0x39,0x00,0x12 +000b98 f6459215 DCB 0xf6,0x45,0x92,0x15 +000b9c 5589f166 DCB 0x55,0x89,0xf1,0x66 +000ba0 4c9c78be DCB 0x4c,0x9c,0x78,0xbe +000ba4 3f885979 DCB 0x3f,0x88,0x59,0x79 +000ba8 80793900 DCB 0x80,0x79,0x39,0x00 +000bac 02ff0139 DCB 0x02,0xff,0x01,0x39 +000bb0 0005fe01 DCB 0x00,0x05,0xfe,0x01 +000bb4 06000039 DCB 0x06,0x00,0x00,0x39 +000bb8 0016f100 DCB 0x00,0x16,0xf1,0x00 +000bbc 00010002 DCB 0x00,0x01,0x00,0x02 +000bc0 22004163 DCB 0x22,0x00,0x41,0x63 +000bc4 0087d711 DCB 0x00,0x87,0xd7,0x11 +000bc8 24762210 DCB 0x24,0x76,0x22,0x10 +000bcc 9023f24e DCB 0x90,0x23,0xf2,0x4e +000bd0 390012f2 DCB 0x39,0x00,0x12,0xf2 +000bd4 34961b44 DCB 0x34,0x96,0x1b,0x44 +000bd8 90ee554e DCB 0x90,0xee,0x55,0x4e +000bdc 9a67b931 DCB 0x9a,0x67,0xb9,0x31 +000be0 774b5c70 DCB 0x77,0x4b,0x5c,0x70 +000be4 5c390016 DCB 0x5c,0x39,0x00,0x16 +000be8 f3000001 DCB 0xf3,0x00,0x00,0x01 +000bec 005d7800 DCB 0x00,0x5d,0x78,0x00 +000bf0 859200a2 DCB 0x85,0x92,0x00,0xa2 +000bf4 c001e10c DCB 0xc0,0x01,0xe1,0x0c +000bf8 1168d122 DCB 0x11,0x68,0xd1,0x22 +000bfc 267a3900 DCB 0x26,0x7a,0x39,0x00 +000c00 12f423bd DCB 0x12,0xf4,0x23,0xbd +000c04 3933a5f7 DCB 0x39,0x33,0xa5,0xf7 +000c08 444e9656 DCB 0x44,0x4e,0x96,0x56 +000c0c 99086620 DCB 0x99,0x08,0x66,0x20 +000c10 2e602e39 DCB 0x2e,0x60,0x2e,0x39 +000c14 0016f500 DCB 0x00,0x16,0xf5,0x00 +000c18 00ac11a0 DCB 0x00,0xac,0x11,0xa0 +000c1c be11d8f4 DCB 0xbe,0x11,0xd8,0xf4 +000c20 22105122 DCB 0x22,0x10,0x51,0x22 +000c24 90d03343 DCB 0x90,0xd0,0x33,0x43 +000c28 ac34ff52 DCB 0xac,0x34,0xff,0x52 +000c2c 390012f6 DCB 0x39,0x00,0x12,0xf6 +000c30 45981f55 DCB 0x45,0x98,0x1f,0x55 +000c34 94f66654 DCB 0x94,0xf6,0x66,0x54 +000c38 a078c440 DCB 0xa0,0x78,0xc4,0x40 +000c3c 885b6b80 DCB 0x88,0x5b,0x6b,0x80 +000c40 6b390002 DCB 0x6b,0x39,0x00,0x02 +000c44 ff013900 DCB 0xff,0x01,0x39,0x00 +000c48 05fe0107 DCB 0x05,0xfe,0x01,0x07 +000c4c 00003900 DCB 0x00,0x00,0x39,0x00 +000c50 16f10000 DCB 0x16,0xf1,0x00,0x00 +000c54 01000239 DCB 0x01,0x00,0x02,0x39 +000c58 00637e00 DCB 0x00,0x63,0x7e,0x00 +000c5c 98c901ff DCB 0x98,0xc9,0x01,0xff +000c60 4012ce5c DCB 0x40,0x12,0xce,0x5c +000c64 23d32f39 DCB 0x23,0xd3,0x2f,0x39 +000c68 0012f234 DCB 0x00,0x12,0xf2,0x34 +000c6c 8608448c DCB 0x86,0x08,0x44,0x8c +000c70 ef554c9f DCB 0xef,0x55,0x4c,0x9f +000c74 67b92a77 DCB 0x67,0xb9,0x2a,0x77 +000c78 51657065 DCB 0x51,0x65,0x70,0x65 +000c7c 390016f3 DCB 0x39,0x00,0x16,0xf3 +000c80 00000100 DCB 0x00,0x00,0x01,0x00 +000c84 02ce00e0 DCB 0x02,0xce,0x00,0xe0 +000c88 ef01fa11 DCB 0xef,0x01,0xfa,0x11 +000c8c 11254011 DCB 0x11,0x25,0x40,0x11 +000c90 83d42226 DCB 0x83,0xd4,0x22,0x26 +000c94 6f390012 DCB 0x6f,0x39,0x00,0x12 +000c98 f423bb31 DCB 0xf4,0x23,0xbb,0x31 +000c9c 33a2fa44 DCB 0x33,0xa2,0xfa,0x44 +000ca0 4f9a569a DCB 0x4f,0x9a,0x56,0x9a +000ca4 03662437 DCB 0x03,0x66,0x24,0x37 +000ca8 60373900 DCB 0x60,0x37,0x39,0x00 +000cac 16f50000 DCB 0x16,0xf5,0x00,0x00 +000cb0 2b225973 DCB 0x2b,0x22,0x59,0x73 +000cb4 22859a22 DCB 0x22,0x85,0x9a,0x22 +000cb8 b3db3305 DCB 0xb3,0xdb,0x33,0x05 +000cbc 313387dd DCB 0x31,0x33,0x87,0xdd +000cc0 44317839 DCB 0x44,0x31,0x78,0x39 +000cc4 0012f645 DCB 0x00,0x12,0xf6,0x45 +000cc8 c03656b0 DCB 0xc0,0x36,0x56,0xb0 +000ccc 106668b7 DCB 0x10,0x66,0x68,0xb7 +000cd0 78ce4388 DCB 0x78,0xce,0x43,0x88 +000cd4 6a808080 DCB 0x6a,0x80,0x80,0x80 +000cd8 390002ff DCB 0x39,0x00,0x02,0xff +000cdc 01390005 DCB 0x01,0x39,0x00,0x05 +000ce0 fe010800 DCB 0xfe,0x01,0x08,0x00 +000ce4 00390016 DCB 0x00,0x39,0x00,0x16 +000ce8 f1000001 DCB 0xf1,0x00,0x00,0x01 +000cec 00020300 DCB 0x00,0x02,0x03,0x00 +000cf0 628d00a2 DCB 0x62,0x8d,0x00,0xa2 +000cf4 c901f92a DCB 0xc9,0x01,0xf9,0x2a +000cf8 12a73b23 DCB 0x12,0xa7,0x3b,0x23 +000cfc bf2b3900 DCB 0xbf,0x2b,0x39,0x00 +000d00 12f23484 DCB 0x12,0xf2,0x34,0x84 +000d04 1b459c05 DCB 0x1b,0x45,0x9c,0x05 +000d08 5569c067 DCB 0x55,0x69,0xc0,0x67 +000d0c df5e7778 DCB 0xdf,0x5e,0x77,0x78 +000d10 95709539 DCB 0x95,0x70,0x95,0x39 +000d14 0016f300 DCB 0x00,0x16,0xf3,0x00 +000d18 00010002 DCB 0x00,0x01,0x00,0x02 +000d1c 1811253c DCB 0x18,0x11,0x25,0x3c +000d20 114b6411 DCB 0x11,0x4b,0x64,0x11 +000d24 819612cc DCB 0x81,0x96,0x12,0xcc +000d28 0e22539a DCB 0x0e,0x22,0x53,0x9a +000d2c 390012f4 DCB 0x39,0x00,0x12,0xf4 +000d30 23dc5334 DCB 0x23,0xdc,0x53,0x34 +000d34 bb18446b DCB 0xbb,0x18,0x44,0x6b +000d38 bb56be34 DCB 0xbb,0x56,0xbe,0x34 +000d3c 664f6660 DCB 0x66,0x4f,0x66,0x60 +000d40 66390016 DCB 0x66,0x39,0x00,0x16 +000d44 f5010029 DCB 0xf5,0x01,0x00,0x29 +000d48 23151e33 DCB 0x23,0x15,0x1e,0x33 +000d4c 303d334c DCB 0x30,0x3d,0x33,0x4c +000d50 6c338eb1 DCB 0x6c,0x33,0x8e,0xb1 +000d54 34f03c44 DCB 0x34,0xf0,0x3c,0x44 +000d58 82c83900 DCB 0x82,0xc8,0x39,0x00 +000d5c 12f65506 DCB 0x12,0xf6,0x55,0x06 +000d60 8256f04b DCB 0x82,0x56,0xf0,0x4b +000d64 66a4f088 DCB 0x66,0xa4,0xf0,0x88 +000d68 078c88a1 DCB 0x07,0x8c,0x88,0xa1 +000d6c bd80bd39 DCB 0xbd,0x80,0xbd,0x39 +000d70 0002ff01 DCB 0x00,0x02,0xff,0x01 +000d74 390005fe DCB 0x39,0x00,0x05,0xfe +000d78 01090000 DCB 0x01,0x09,0x00,0x00 +000d7c 390016f1 DCB 0x39,0x00,0x16,0xf1 +000d80 00000100 DCB 0x00,0x00,0x01,0x00 +000d84 02030004 DCB 0x02,0x03,0x00,0x04 +000d88 0500709c DCB 0x05,0x00,0x70,0x9c +000d8c 00b3d211 DCB 0x00,0xb3,0xd2,0x11 +000d90 044c12a5 DCB 0x04,0x4c,0x12,0xa5 +000d94 06390012 DCB 0x06,0x39,0x00,0x12 +000d98 f2236903 DCB 0xf2,0x23,0x69,0x03 +000d9c 3384e444 DCB 0x33,0x84,0xe4,0x44 +000da0 42905698 DCB 0x42,0x90,0x56,0x98 +000da4 06662136 DCB 0x06,0x66,0x21,0x36 +000da8 60363900 DCB 0x60,0x36,0x39,0x00 +000dac 16f30000 DCB 0x16,0xf3,0x00,0x00 +000db0 01000203 DCB 0x01,0x00,0x02,0x03 +000db4 01080e11 DCB 0x01,0x08,0x0e,0x11 +000db8 28401155 DCB 0x28,0x40,0x11,0x55 +000dbc 641182a3 DCB 0x64,0x11,0x82,0xa3 +000dc0 11c9f239 DCB 0x11,0xc9,0xf2,0x39 +000dc4 0012f422 DCB 0x00,0x12,0xf4,0x22 +000dc8 237b23d9 DCB 0x23,0x7b,0x23,0xd9 +000dcc 23336ead DCB 0x23,0x33,0x6e,0xad +000dd0 4493f655 DCB 0x44,0x93,0xf6,0x55 +000dd4 0e235023 DCB 0x0e,0x23,0x50,0x23 +000dd8 390016f5 DCB 0x39,0x00,0x16,0xf5 +000ddc 00000211 DCB 0x00,0x00,0x02,0x11 +000de0 72b8331e DCB 0x72,0xb8,0x33,0x1e +000de4 24332e42 DCB 0x24,0x33,0x2e,0x42 +000de8 33596d33 DCB 0x33,0x59,0x6d,0x33 +000dec 98c134f0 DCB 0x98,0xc1,0x34,0xf0 +000df0 1e390012 DCB 0x1e,0x39,0x00,0x12 +000df4 f64452a9 DCB 0xf6,0x44,0x52,0xa9 +000df8 55055355 DCB 0x55,0x05,0x53,0x55 +000dfc 9ce167ce DCB 0x9c,0xe1,0x67,0xce +000e00 34774e64 DCB 0x34,0x77,0x4e,0x64 +000e04 70643900 DCB 0x70,0x64,0x39,0x00 +000e08 02ff0139 DCB 0x02,0xff,0x01,0x39 +000e0c 0005fe01 DCB 0x00,0x05,0xfe,0x01 +000e10 00010039 DCB 0x00,0x01,0x00,0x39 +000e14 0016f100 DCB 0x00,0x16,0xf1,0x00 +000e18 00e41137 DCB 0x00,0xe4,0x11,0x37 +000e1c 9612f54d DCB 0x96,0x12,0xf5,0x4d +000e20 239a2033 DCB 0x23,0x9a,0x20,0x33 +000e24 8eee458c DCB 0x8e,0xee,0x45,0x8c +000e28 0d557ee6 DCB 0x0d,0x55,0x7e,0xe6 +000e2c 390012f2 DCB 0x39,0x00,0x12,0xf2 +000e30 6644f278 DCB 0x66,0x44,0xf2,0x78 +000e34 8a168997 DCB 0x8a,0x16,0x89,0x97 +000e38 19abf7e5 DCB 0x19,0xab,0xf7,0xe5 +000e3c cc2062c0 DCB 0xcc,0x20,0x62,0xc0 +000e40 62390016 DCB 0x62,0x39,0x00,0x16 +000e44 f30000f8 DCB 0xf3,0x00,0x00,0xf8 +000e48 11285711 DCB 0x11,0x28,0x57,0x11 +000e4c 8ec82202 DCB 0x8e,0xc8,0x22,0x02 +000e50 7123d128 DCB 0x71,0x23,0xd1,0x28 +000e54 34bb3244 DCB 0x34,0xbb,0x32,0x44 +000e58 99f53900 DCB 0x99,0xf5,0x39,0x00 +000e5c 12f4554a DCB 0x12,0xf4,0x55,0x4a +000e60 e06668e4 DCB 0xe0,0x66,0x68,0xe4 +000e64 7757c69a DCB 0x77,0x57,0xc6,0x9a +000e68 5d23aa56 DCB 0x5d,0x23,0xaa,0x56 +000e6c 8ea08e39 DCB 0x8e,0xa0,0x8e,0x39 +000e70 0016f501 DCB 0x00,0x16,0xf5,0x01 +000e74 00f92247 DCB 0x00,0xf9,0x22,0x47 +000e78 9623ec3b DCB 0x96,0x23,0xec,0x3b +000e7c 34860944 DCB 0x34,0x86,0x09,0x44 +000e80 76d6567a DCB 0x76,0xd6,0x56,0x7a +000e84 03667ae6 DCB 0x03,0x66,0x7a,0xe6 +000e88 390012f6 DCB 0x39,0x00,0x12,0xf6 +000e8c 774aff89 DCB 0x77,0x4a,0xff,0x89 +000e90 9e339abe DCB 0x9e,0x33,0x9a,0xbe +000e94 47cd4a55 DCB 0x47,0xcd,0x4a,0x55 +000e98 dd9be0d0 DCB 0xdd,0x9b,0xe0,0xd0 +000e9c e0390002 DCB 0xe0,0x39,0x00,0x02 +000ea0 ff013900 DCB 0xff,0x01,0x39,0x00 +000ea4 05fe0101 DCB 0x05,0xfe,0x01,0x01 +000ea8 01003900 DCB 0x01,0x00,0x39,0x00 +000eac 16f10100 DCB 0x16,0xf1,0x01,0x00 +000eb0 4f118dcf DCB 0x4f,0x11,0x8d,0xcf +000eb4 221b6623 DCB 0x22,0x1b,0x66,0x23 +000eb8 ad293392 DCB 0xad,0x29,0x33,0x92 +000ebc ee458607 DCB 0xee,0x45,0x86,0x07 +000ec0 5575da39 DCB 0x55,0x75,0xda,0x39 +000ec4 0012f266 DCB 0x00,0x12,0xf2,0x66 +000ec8 39e17773 DCB 0x39,0xe1,0x77,0x73 +000ecc f9887af3 DCB 0xf9,0x88,0x7a,0xf3 +000ed0 abc0a4bc DCB 0xab,0xc0,0xa4,0xbc +000ed4 e01bc01b DCB 0xe0,0x1b,0xc0,0x1b +000ed8 390016f3 DCB 0x39,0x00,0x16,0xf3 +000edc 01005f11 DCB 0x01,0x00,0x5f,0x11 +000ee0 82a211c6 DCB 0x82,0xa2,0x11,0xc6 +000ee4 f1222281 DCB 0xf1,0x22,0x22,0x81 +000ee8 23da2a34 DCB 0x23,0xda,0x2a,0x34 +000eec b429448c DCB 0xb4,0x29,0x44,0x8c +000ef0 e6390012 DCB 0xe6,0x39,0x00,0x12 +000ef4 f45539cd DCB 0xf4,0x55,0x39,0xcd +000ef8 6650c877 DCB 0x66,0x50,0xc8,0x77 +000efc 3aa4992b DCB 0x3a,0xa4,0x99,0x2b +000f00 ebaa1c4b DCB 0xeb,0xaa,0x1c,0x4b +000f04 a04b3900 DCB 0xa0,0x4b,0x39,0x00 +000f08 16f50200 DCB 0x16,0xf5,0x02,0x00 +000f0c 432283c4 DCB 0x43,0x22,0x83,0xc4 +000f10 330c5134 DCB 0x33,0x0c,0x51,0x34 +000f14 960f4478 DCB 0x96,0x0f,0x44,0x78 +000f18 d45574fa DCB 0xd4,0x55,0x74,0xfa +000f1c 666fd939 DCB 0x66,0x6f,0xd9,0x39 +000f20 0012f677 DCB 0x00,0x12,0xf6,0x77 +000f24 3bea8984 DCB 0x3b,0xea,0x89,0x84 +000f28 139a9c1d DCB 0x13,0x9a,0x9c,0x1d +000f2c cd0b0fdd DCB 0xcd,0x0b,0x0f,0xdd +000f30 5693d093 DCB 0x56,0x93,0xd0,0x93 +000f34 390002ff DCB 0x39,0x00,0x02,0xff +000f38 01390005 DCB 0x01,0x39,0x00,0x05 +000f3c fe010201 DCB 0xfe,0x01,0x02,0x01 +000f40 00390016 DCB 0x00,0x39,0x00,0x16 +000f44 f1010048 DCB 0xf1,0x01,0x00,0x48 +000f48 1187c522 DCB 0x11,0x87,0xc5,0x22 +000f4c 09512394 DCB 0x09,0x51,0x23,0x94 +000f50 0b3373cd DCB 0x0b,0x33,0x73,0xcd +000f54 4461dd55 DCB 0x44,0x61,0xdd,0x55 +000f58 4caf3900 DCB 0x4c,0xaf,0x39,0x00 +000f5c 12f26609 DCB 0x12,0xf2,0x66,0x09 +000f60 a9773abd DCB 0xa9,0x77,0x3a,0xbd +000f64 8838a9ab DCB 0x88,0x38,0xa9,0xab +000f68 5b31bb66 DCB 0x5b,0x31,0xbb,0x66 +000f6c 94b09439 DCB 0x94,0xb0,0x94,0x39 +000f70 0016f301 DCB 0x00,0x16,0xf3,0x01 +000f74 005e1180 DCB 0x00,0x5e,0x11,0x80 +000f78 9c11bee5 DCB 0x9c,0x11,0xbe,0xe5 +000f7c 22116b23 DCB 0x22,0x11,0x6b,0x23 +000f80 c00c3492 DCB 0xc0,0x0c,0x34,0x92 +000f84 034466bf DCB 0x03,0x44,0x66,0xbf +000f88 390012f4 DCB 0x39,0x00,0x12,0xf4 +000f8c 550f9e66 DCB 0x55,0x0f,0x9e,0x66 +000f90 1c9167fd DCB 0x1c,0x91,0x67,0xfd +000f94 6289d78c DCB 0x62,0x89,0xd7,0x8c +000f98 99b8e390 DCB 0x99,0xb8,0xe3,0x90 +000f9c e3390016 DCB 0xe3,0x39,0x00,0x16 +000fa0 f5020042 DCB 0xf5,0x02,0x00,0x42 +000fa4 227db923 DCB 0x22,0x7d,0xb9,0x23 +000fa8 fb3c337e DCB 0xfb,0x3c,0x33,0x7e +000fac f34459b3 DCB 0xf3,0x44,0x59,0xb3 +000fb0 554dd066 DCB 0x55,0x4d,0xd0,0x66 +000fb4 44ad3900 DCB 0x44,0xad,0x39,0x00 +000fb8 12f6770a DCB 0x12,0xf6,0x77,0x0a +000fbc b28848d2 DCB 0xb2,0x88,0x48,0xd2 +000fc0 9954cfbc DCB 0x99,0x54,0xcf,0xbc +000fc4 9e8bccc8 DCB 0x9e,0x8b,0xcc,0xc8 +000fc8 fec0fe39 DCB 0xfe,0xc0,0xfe,0x39 +000fcc 0002ff01 DCB 0x00,0x02,0xff,0x01 +000fd0 390005fe DCB 0x39,0x00,0x05,0xfe +000fd4 01030100 DCB 0x01,0x03,0x01,0x00 +000fd8 390016f1 DCB 0x39,0x00,0x16,0xf1 +000fdc 00005911 DCB 0x00,0x00,0x59,0x11 +000fe0 76a212d2 DCB 0x76,0xa2,0x12,0xd2 +000fe4 07223fa9 DCB 0x07,0x22,0x3f,0xa9 +000fe8 33045634 DCB 0x33,0x04,0x56,0x34 +000fec df5345b9 DCB 0xdf,0x53,0x45,0xb9 +000ff0 10390012 DCB 0x10,0x39,0x00,0x12 +000ff4 f25562f5 DCB 0xf2,0x55,0x62,0xf5 +000ff8 6676ed77 DCB 0x66,0x76,0xed,0x77 +000ffc 59ba9923 DCB 0x59,0xba,0x99,0x23 +001000 cb9af323 DCB 0xcb,0x9a,0xf3,0x23 +001004 a0233900 DCB 0xa0,0x23,0x39,0x00 +001008 16f30100 DCB 0x16,0xf3,0x01,0x00 +00100c 4e11788d DCB 0x4e,0x11,0x78,0x8d +001010 11a3bc12 DCB 0x11,0xa3,0xbc,0x12 +001014 db1f2265 DCB 0xdb,0x1f,0x22,0x65 +001018 a7331e85 DCB 0xa7,0x33,0x1e,0x85 +00101c 34e23239 DCB 0x34,0xe2,0x32,0x39 +001020 0012f444 DCB 0x00,0x12,0xf4,0x44 +001024 7afe5571 DCB 0x7a,0xfe,0x55,0x71 +001028 d666368f DCB 0xd6,0x66,0x36,0x8f +00102c 78ce5c88 DCB 0x78,0xce,0x5c,0x88 +001030 81a480a4 DCB 0x81,0xa4,0x80,0xa4 +001034 390016f5 DCB 0x39,0x00,0x16,0xf5 +001038 02003722 DCB 0x02,0x00,0x37,0x22 +00103c 6c9722c5 DCB 0x6c,0x97,0x22,0xc5 +001040 f8332e91 DCB 0xf8,0x33,0x2e,0x91 +001044 34ec3d45 DCB 0x34,0xec,0x3d,0x45 +001048 c63e56aa DCB 0xc6,0x3e,0x56,0xaa +00104c 06390012 DCB 0x06,0x39,0x00,0x12 +001050 f6665bf5 DCB 0xf6,0x66,0x5b,0xf5 +001054 777bf688 DCB 0x77,0x7b,0xf6,0x88 +001058 66cfab50 DCB 0x66,0xcf,0xab,0x50 +00105c 04bb325a DCB 0x04,0xbb,0x32,0x5a +001060 b05a3900 DCB 0xb0,0x5a,0x39,0x00 +001064 02ff0139 DCB 0x02,0xff,0x01,0x39 +001068 0005fe01 DCB 0x00,0x05,0xfe,0x01 +00106c 04010039 DCB 0x04,0x01,0x00,0x39 +001070 0016f100 DCB 0x00,0x16,0xf1,0x00 +001074 00011161 DCB 0x00,0x01,0x11,0x61 +001078 7e119ec3 DCB 0x7e,0x11,0x9e,0xc3 +00107c 12ea3a22 DCB 0x12,0xea,0x3a,0x22 +001080 88d0334e DCB 0x88,0xd0,0x33,0x4e +001084 ba441666 DCB 0xba,0x44,0x16,0x66 +001088 390012f2 DCB 0x39,0x00,0x12,0xf2 +00108c 45b13356 DCB 0x45,0xb1,0x33,0x56 +001090 a40b666a DCB 0xa4,0x0b,0x66,0x6a +001094 bf78f47a DCB 0xbf,0x78,0xf4,0x7a +001098 889ab980 DCB 0x88,0x9a,0xb9,0x80 +00109c b9390016 DCB 0xb9,0x39,0x00,0x16 +0010a0 f3000001 DCB 0xf3,0x00,0x00,0x01 +0010a4 116b7e11 DCB 0x11,0x6b,0x7e,0x11 +0010a8 8e9f11b0 DCB 0x8e,0x9f,0x11,0xb0 +0010ac da220a3d DCB 0xda,0x22,0x0a,0x3d +0010b0 22a0fa33 DCB 0x22,0xa0,0xfa,0x33 +0010b4 4c963900 DCB 0x4c,0x96,0x39,0x00 +0010b8 12f434d9 DCB 0x12,0xf4,0x34,0xd9 +0010bc 5045b611 DCB 0x50,0x45,0xb6,0x11 +0010c0 5565b467 DCB 0x55,0x65,0xb4,0x67 +0010c4 c33b7758 DCB 0xc3,0x3b,0x77,0x58 +0010c8 74707439 DCB 0x74,0x70,0x74,0x39 +0010cc 0016f502 DCB 0x00,0x16,0xf5,0x02 +0010d0 00322261 DCB 0x00,0x32,0x22,0x61 +0010d4 80229fc2 DCB 0x80,0x22,0x9f,0xc2 +0010d8 23e53233 DCB 0x23,0xe5,0x32,0x33 +0010dc 7bc3443c DCB 0x7b,0xc3,0x44,0x3c +0010e0 a5550356 DCB 0xa5,0x55,0x03,0x56 +0010e4 390012f6 DCB 0x39,0x00,0x12,0xf6 +0010e8 56a32c67 DCB 0x56,0xa3,0x2c,0x67 +0010ec a20d7772 DCB 0xa2,0x0d,0x77,0x72 +0010f0 cf990f9e DCB 0xcf,0x99,0x0f,0x9e +0010f4 99c1e190 DCB 0x99,0xc1,0xe1,0x90 +0010f8 e1390002 DCB 0xe1,0x39,0x00,0x02 +0010fc ff013900 DCB 0xff,0x01,0x39,0x00 +001100 05fe0105 DCB 0x05,0xfe,0x01,0x05 +001104 01003900 DCB 0x01,0x00,0x39,0x00 +001108 16f10000 DCB 0x16,0xf1,0x00,0x00 +00110c 01114265 DCB 0x01,0x11,0x42,0x65 +001110 1182a112 DCB 0x11,0x82,0xa1,0x12 +001114 c2072250 DCB 0xc2,0x07,0x22,0x50 +001118 9733147e DCB 0x97,0x33,0x14,0x7e +00111c 34da2a39 DCB 0x34,0xda,0x2a,0x39 +001120 0012f244 DCB 0x00,0x12,0xf2,0x44 +001124 71ed555c DCB 0x71,0xed,0x55,0x5c +001128 bb661669 DCB 0xbb,0x66,0x16,0x69 +00112c 788b0388 DCB 0x78,0x8b,0x03,0x88 +001130 26398039 DCB 0x26,0x39,0x80,0x39 +001134 390016f3 DCB 0x39,0x00,0x16,0xf3 +001138 00000111 DCB 0x00,0x00,0x01,0x11 +00113c 7f90119d DCB 0x7f,0x90,0x11,0x9d +001140 aa11b7d5 DCB 0xaa,0x11,0xb7,0xd5 +001144 12f72022 DCB 0x12,0xf7,0x20,0x22 +001148 78cc3318 DCB 0x78,0xcc,0x33,0x18 +00114c 60390012 DCB 0x60,0x39,0x00,0x12 +001150 f434a011 DCB 0xf4,0x34,0xa0,0x11 +001154 4474cb55 DCB 0x44,0x74,0xcb,0x55 +001158 1a64665f DCB 0x1a,0x64,0x66,0x5f +00115c d267ec06 DCB 0xd2,0x67,0xec,0x06 +001160 70063900 DCB 0x70,0x06,0x39,0x00 +001164 16f50100 DCB 0x16,0xf5,0x01,0x00 +001168 49227c97 DCB 0x49,0x22,0x7c,0x97 +00116c 22b3cd23 DCB 0x22,0xb3,0xcd,0x23 +001170 e9263364 DCB 0xe9,0x26,0x33,0x64 +001174 a1441175 DCB 0xa1,0x44,0x11,0x75 +001178 45ca1b39 DCB 0x45,0xca,0x1b,0x39 +00117c 0012f655 DCB 0x00,0x12,0xf6,0x55 +001180 64e46658 DCB 0x64,0xe4,0x66,0x58 +001184 bd771b70 DCB 0xbd,0x77,0x1b,0x70 +001188 899a1e99 DCB 0x89,0x9a,0x1e,0x99 +00118c 3d5d905d DCB 0x3d,0x5d,0x90,0x5d +001190 390002ff DCB 0x39,0x00,0x02,0xff +001194 01390005 DCB 0x01,0x39,0x00,0x05 +001198 fe010601 DCB 0xfe,0x01,0x06,0x01 +00119c 00390016 DCB 0x00,0x39,0x00,0x16 +0011a0 f1000001 DCB 0xf1,0x00,0x00,0x01 +0011a4 1197bb12 DCB 0x11,0x97,0xbb,0x12 +0011a8 dd03222e DCB 0xdd,0x03,0x22,0x2e +0011ac 8723da2b DCB 0x87,0x23,0xda,0x2b +0011b0 34b62344 DCB 0x34,0xb6,0x23,0x44 +0011b4 83d93900 DCB 0x83,0xd9,0x39,0x00 +0011b8 12f25529 DCB 0x12,0xf2,0x55,0x29 +0011bc ad662b97 DCB 0xad,0x66,0x2b,0x97 +0011c0 67fb5889 DCB 0x67,0xfb,0x58,0x89 +0011c4 9a2c994e DCB 0x9a,0x2c,0x99,0x4e +0011c8 76907639 DCB 0x76,0x90,0x76,0x39 +0011cc 0016f300 DCB 0x00,0x16,0xf3,0x00 +0011d0 000111e5 DCB 0x00,0x01,0x11,0xe5 +0011d4 f8220817 DCB 0xf8,0x22,0x08,0x17 +0011d8 22285022 DCB 0x22,0x28,0x50,0x22 +0011dc 7bac330f DCB 0x7b,0xac,0x33,0x0f +0011e0 6b34bf09 DCB 0x6b,0x34,0xbf,0x09 +0011e4 390012f4 DCB 0x39,0x00,0x12,0xf4 +0011e8 444ec555 DCB 0x44,0x4e,0xc5,0x55 +0011ec 319056ea DCB 0x31,0x90,0x56,0xea +0011f0 3c7759d6 DCB 0x3c,0x77,0x59,0xd6 +0011f4 78f31180 DCB 0x78,0xf3,0x11,0x80 +0011f8 11390016 DCB 0x11,0x39,0x00,0x16 +0011fc f502000e DCB 0xf5,0x02,0x00,0x0e +001200 23f81533 DCB 0x23,0xf8,0x15,0x33 +001204 35543375 DCB 0x35,0x54,0x33,0x75 +001208 b934fb3e DCB 0xb9,0x34,0xfb,0x3e +00120c 45b82155 DCB 0x45,0xb8,0x21,0x55 +001210 80d73900 DCB 0x80,0xd7,0x39,0x00 +001214 12f66629 DCB 0x12,0xf6,0x66,0x29 +001218 b57733a4 DCB 0xb5,0x77,0x33,0xa4 +00121c 880b6a9a DCB 0x88,0x0b,0x6a,0x9a +001220 c05caa81 DCB 0xc0,0x5c,0xaa,0x81 +001224 a4a0a439 DCB 0xa4,0xa0,0xa4,0x39 +001228 0002ff01 DCB 0x00,0x02,0xff,0x01 +00122c 390005fe DCB 0x39,0x00,0x05,0xfe +001230 01070100 DCB 0x01,0x07,0x01,0x00 +001234 390016f1 DCB 0x39,0x00,0x16,0xf1 +001238 00000122 DCB 0x00,0x00,0x01,0x22 +00123c 25552275 DCB 0x25,0x55,0x22,0x75 +001240 9323b906 DCB 0x93,0x23,0xb9,0x06 +001244 33529944 DCB 0x33,0x52,0x99,0x44 +001248 1d9345f4 DCB 0x1d,0x93,0x45,0xf4 +00124c 4a390012 DCB 0x4a,0x39,0x00,0x12 +001250 f256992a DCB 0xf2,0x56,0x99,0x2a +001254 67a91a77 DCB 0x67,0xa9,0x1a,0x77 +001258 85e89941 DCB 0x85,0xe8,0x99,0x41 +00125c dfaa0527 DCB 0xdf,0xaa,0x05,0x27 +001260 a0273900 DCB 0xa0,0x27,0x39,0x00 +001264 16f30000 DCB 0x16,0xf3,0x00,0x00 +001268 0122b8d1 DCB 0x01,0x22,0xb8,0xd1 +00126c 22e2ef23 DCB 0x22,0xe2,0xef,0x23 +001270 fb153335 DCB 0xfb,0x15,0x33,0x35 +001274 5833a4f3 DCB 0x58,0x33,0xa4,0xf3 +001278 443f8739 DCB 0x44,0x3f,0x87,0x39 +00127c 0012f445 DCB 0x00,0x12,0xf4,0x45 +001280 c84156ac DCB 0xc8,0x41,0x56,0xac +001284 0d666bc0 DCB 0x0d,0x66,0x6b,0xc0 +001288 78eb6e88 DCB 0x78,0xeb,0x6e,0x88 +00128c 8ead80ad DCB 0x8e,0xad,0x80,0xad +001290 390016f5 DCB 0x39,0x00,0x16,0xf5 +001294 02002c33 DCB 0x02,0x00,0x2c,0x33 +001298 ebff4415 DCB 0xeb,0xff,0x44,0x15 +00129c 2a444377 DCB 0x2a,0x44,0x43,0x77 +0012a0 44ace055 DCB 0x44,0xac,0xe0,0x55 +0012a4 4ab2660d DCB 0x4a,0xb2,0x66,0x0d +0012a8 63390012 DCB 0x63,0x39,0x00,0x12 +0012ac f667b040 DCB 0xf6,0x67,0xb0,0x40 +0012b0 78c13389 DCB 0x78,0xc1,0x33,0x89 +0012b4 a008ab77 DCB 0xa0,0x08,0xab,0x77 +0012b8 20bb496f DCB 0x20,0xbb,0x49,0x6f +0012bc b06f3900 DCB 0xb0,0x6f,0x39,0x00 +0012c0 02ff0139 DCB 0x02,0xff,0x01,0x39 +0012c4 0005fe01 DCB 0x00,0x05,0xfe,0x01 +0012c8 08010039 DCB 0x08,0x01,0x00,0x39 +0012cc 0016f100 DCB 0x00,0x16,0xf1,0x00 +0012d0 00010002 DCB 0x00,0x01,0x00,0x02 +0012d4 1622c7dd DCB 0x16,0x22,0xc7,0xdd +0012d8 23f01833 DCB 0x23,0xf0,0x18,0x33 +0012dc 3f6e34c3 DCB 0x3f,0x6e,0x34,0xc3 +0012e0 164464ad DCB 0x16,0x44,0x64,0xad +0012e4 390012f2 DCB 0x39,0x00,0x12,0xf2 +0012e8 45f37356 DCB 0x45,0xf3,0x73,0x56 +0012ec df3f6699 DCB 0xdf,0x3f,0x66,0x99 +0012f0 ee881291 DCB 0xee,0x88,0x12,0x91 +0012f4 88b0c880 DCB 0x88,0xb0,0xc8,0x80 +0012f8 c8390016 DCB 0xc8,0x39,0x00,0x16 +0012fc f3000001 DCB 0xf3,0x00,0x00,0x01 +001300 03025433 DCB 0x03,0x02,0x54,0x33 +001304 6c793383 DCB 0x6c,0x79,0x33,0x83 +001308 9033a0af DCB 0x90,0x33,0xa0,0xaf +00130c 33cdf044 DCB 0x33,0xcd,0xf0,0x44 +001310 17413900 DCB 0x17,0x41,0x39,0x00 +001314 12f4446b DCB 0x12,0xf4,0x44,0x6b +001318 c2551867 DCB 0xc2,0x55,0x18,0x67 +00131c 55b1f767 DCB 0x55,0xb1,0xf7,0x67 +001320 ee5c7776 DCB 0xee,0x5c,0x77,0x76 +001324 8e708e39 DCB 0x8e,0x70,0x8e,0x39 +001328 0016f500 DCB 0x00,0x16,0xf5,0x00 +00132c 0063349f DCB 0x00,0x63,0x34,0x9f +001330 9644a7b4 DCB 0x96,0x44,0xa7,0xb4 +001334 44bcd545 DCB 0x44,0xbc,0xd5,0x45 +001338 ed085544 DCB 0xed,0x08,0x55,0x44 +00133c 7e55b9f7 DCB 0x7e,0x55,0xb9,0xf7 +001340 390012f6 DCB 0x39,0x00,0x12,0xf6 +001344 6633a677 DCB 0x66,0x33,0xa6,0x77 +001348 0c6a78c2 DCB 0x0c,0x6a,0x78,0xc2 +00134c 169940c6 DCB 0x16,0x99,0x40,0xc6 +001350 9ae603a0 DCB 0x9a,0xe6,0x03,0xa0 +001354 03390002 DCB 0x03,0x39,0x00,0x02 +001358 ff013900 DCB 0xff,0x01,0x39,0x00 +00135c 05fe0109 DCB 0x05,0xfe,0x01,0x09 +001360 01003900 DCB 0x01,0x00,0x39,0x00 +001364 16f10000 DCB 0x16,0xf1,0x00,0x00 +001368 01000203 DCB 0x01,0x00,0x02,0x03 +00136c 0004050f DCB 0x00,0x04,0x05,0x0f +001370 55f9fff9 DCB 0x55,0xf9,0xff,0xf9 +001374 f9fff9f9 DCB 0xf9,0xff,0xf9,0xf9 +001378 f3faa439 DCB 0xf3,0xfa,0xa4,0x39 +00137c 0012f234 DCB 0x00,0x12,0xf2,0x34 +001380 bc0c4456 DCB 0xbc,0x0c,0x44,0x56 +001384 9d45e125 DCB 0x9d,0x45,0xe1,0x25 +001388 56f95466 DCB 0x56,0xf9,0x54,0x66 +00138c 6a7c607c DCB 0x6a,0x7c,0x60,0x7c +001390 390016f3 DCB 0x39,0x00,0x16,0xf3 +001394 00000100 DCB 0x00,0x00,0x01,0x00 +001398 02030704 DCB 0x02,0x03,0x07,0x04 +00139c b0fffbf9 DCB 0xb0,0xff,0xfb,0xf9 +0013a0 fff9f9ff DCB 0xff,0xf9,0xf9,0xff +0013a4 f9f9f3fa DCB 0xf9,0xf9,0xf3,0xfa +0013a8 cd390012 DCB 0xcd,0x39,0x00,0x12 +0013ac f433c9ea DCB 0xf4,0x33,0xc9,0xea +0013b0 44113744 DCB 0x44,0x11,0x37,0x44 +0013b4 5f89552e DCB 0x5f,0x89,0x55,0x2e +0013b8 78558a9b DCB 0x78,0x55,0x8a,0x9b +0013bc 509b3900 DCB 0x50,0x9b,0x39,0x00 +0013c0 16f50000 DCB 0x16,0xf5,0x00,0x00 +0013c4 dc370fd5 DCB 0xdc,0x37,0x0f,0xd5 +0013c8 efb7fdff DCB 0xef,0xb7,0xfd,0xff +0013cc fbf9fff9 DCB 0xfb,0xf9,0xff,0xf9 +0013d0 f9fff9f9 DCB 0xf9,0xff,0xf9,0xf9 +0013d4 f5fa3639 DCB 0xf5,0xfa,0x36,0x39 +0013d8 0012f655 DCB 0x00,0x12,0xf6,0x55 +0013dc 3e7655b0 DCB 0x3e,0x76,0x55,0xb0 +0013e0 ea66235f DCB 0xea,0x66,0x23,0x5f +0013e4 77277f77 DCB 0x77,0x27,0x7f,0x77 +0013e8 94a770a7 DCB 0x94,0xa7,0x70,0xa7 +0013ec 390002ff DCB 0x39,0x00,0x02,0xff +0013f0 01390005 DCB 0x01,0x39,0x00,0x05 +0013f4 fe010002 DCB 0xfe,0x01,0x00,0x02 +0013f8 00390016 DCB 0x00,0x39,0x00,0x16 +0013fc f1000001 DCB 0xf1,0x00,0x00,0x01 +001400 00021600 DCB 0x00,0x02,0x16,0x00 +001404 6bc7111b DCB 0x6b,0xc7,0x11,0x1b +001408 a8221c88 DCB 0xa8,0x22,0x1c,0x88 +00140c 3334bf44 DCB 0x33,0x34,0xbf,0x44 +001410 35a73900 DCB 0x35,0xa7,0x39,0x00 +001414 12f2550c DCB 0x12,0xf2,0x55,0x0c +001418 c7677305 DCB 0xc7,0x67,0x73,0x05 +00141c 789d1eab DCB 0x78,0x9d,0x1e,0xab +001420 3546bb92 DCB 0x35,0x46,0xbb,0x92 +001424 cab0ca39 DCB 0xca,0xb0,0xca,0x39 +001428 0016f300 DCB 0x00,0x16,0xf3,0x00 +00142c 00010002 DCB 0x00,0x01,0x00,0x02 +001430 0300043f DCB 0x03,0x00,0x04,0x3f +001434 007bed11 DCB 0x00,0x7b,0xed,0x11 +001438 53b12250 DCB 0x53,0xb1,0x22,0x50 +00143c d13340a1 DCB 0xd1,0x33,0x40,0xa1 +001440 390012f4 DCB 0x39,0x00,0x12,0xf4 +001444 34fb9f55 DCB 0x34,0xfb,0x9f,0x55 +001448 38bf6640 DCB 0x38,0xbf,0x66,0x40 +00144c b9897855 DCB 0xb9,0x89,0x78,0x55 +001450 9993c590 DCB 0x99,0x93,0xc5,0x90 +001454 c5390016 DCB 0xc5,0x39,0x00,0x16 +001458 f5000001 DCB 0xf5,0x00,0x00,0x01 +00145c 01d32111 DCB 0x01,0xd3,0x21,0x11 +001460 75c5220f DCB 0x75,0xc5,0x22,0x0f +001464 97330e77 DCB 0x97,0x33,0x0e,0x77 +001468 441cb155 DCB 0x44,0x1c,0xb1,0x55 +00146c 39ad3900 DCB 0x39,0xad,0x39,0x00 +001470 12f66619 DCB 0x12,0xf6,0x66,0x19 +001474 d9788727 DCB 0xd9,0x78,0x87,0x27 +001478 89bf50bc DCB 0x89,0xbf,0x50,0xbc +00147c 8fb8dd06 DCB 0x8f,0xb8,0xdd,0x06 +001480 42d04239 DCB 0x42,0xd0,0x42,0x39 +001484 0002ff01 DCB 0x00,0x02,0xff,0x01 +001488 390005fe DCB 0x39,0x00,0x05,0xfe +00148c 01010200 DCB 0x01,0x01,0x02,0x00 +001490 390016f1 DCB 0x39,0x00,0x16,0xf1 +001494 00000100 DCB 0x00,0x00,0x01,0x00 +001498 154a008c DCB 0x15,0x4a,0x00,0x8c +00149c d2111796 DCB 0xd2,0x11,0x17,0x96 +0014a0 22036133 DCB 0x22,0x03,0x61,0x33 +0014a4 008834f9 DCB 0x00,0x88,0x34,0xf9 +0014a8 60390012 DCB 0x60,0x39,0x00,0x12 +0014ac f245c776 DCB 0xf2,0x45,0xc7,0x76 +0014b0 6615a477 DCB 0x66,0x15,0xa4,0x77 +0014b4 29ac9a84 DCB 0x29,0xac,0x9a,0x84 +0014b8 74aaade9 DCB 0x74,0xaa,0xad,0xe9 +0014bc a0e93900 DCB 0xa0,0xe9,0x39,0x00 +0014c0 16f30000 DCB 0x16,0xf3,0x00,0x00 +0014c4 0100021e DCB 0x01,0x00,0x02,0x1e +0014c8 003f6500 DCB 0x00,0x3f,0x65,0x00 +0014cc 92ed1143 DCB 0x92,0xed,0x11,0x43 +0014d0 9522239f DCB 0x95,0x22,0x23,0x9f +0014d4 33076439 DCB 0x33,0x07,0x64,0x39 +0014d8 0012f434 DCB 0x00,0x12,0xf4,0x34 +0014dc bb5445e0 DCB 0xbb,0x54,0x45,0xe0 +0014e0 6256da4b DCB 0x62,0x56,0xda,0x4b +0014e4 78dda089 DCB 0x78,0xdd,0xa0,0x89 +0014e8 d2089008 DCB 0xd2,0x08,0x90,0x08 +0014ec 390016f5 DCB 0x39,0x00,0x16,0xf5 +0014f0 0000dc11 DCB 0x00,0x00,0xdc,0x11 +0014f4 194d118a DCB 0x19,0x4d,0x11,0x8a +0014f8 cb220882 DCB 0xcb,0x22,0x08,0x82 +0014fc 23ed4d34 DCB 0x23,0xed,0x4d,0x34 +001500 eb7a45f2 DCB 0xeb,0x7a,0x45,0xf2 +001504 65390012 DCB 0x65,0x39,0x00,0x12 +001508 f656cd85 DCB 0xf6,0x56,0xcd,0x85 +00150c 7729bd88 DCB 0x77,0x29,0xbd,0x88 +001510 48d1abd5 DCB 0x48,0xd1,0xab,0xd5 +001514 d5cc1552 DCB 0xd5,0xcc,0x15,0x52 +001518 c0523900 DCB 0xc0,0x52,0x39,0x00 +00151c 02ff0139 DCB 0x02,0xff,0x01,0x39 +001520 0005fe01 DCB 0x00,0x05,0xfe,0x01 +001524 02020039 DCB 0x02,0x02,0x00,0x39 +001528 0016f100 DCB 0x00,0x16,0xf1,0x00 +00152c 00010003 DCB 0x00,0x01,0x00,0x03 +001530 26004f7e DCB 0x26,0x00,0x4f,0x7e +001534 01b01611 DCB 0x01,0xb0,0x16,0x11 +001538 75c92258 DCB 0x75,0xc9,0x22,0x58 +00153c d4333c98 DCB 0xd4,0x33,0x3c,0x98 +001540 390012f2 DCB 0x39,0x00,0x12,0xf2 +001544 34eb8555 DCB 0x34,0xeb,0x85,0x55 +001548 0d8a56ff DCB 0x0d,0x8a,0x56,0xff +00154c 6978e698 DCB 0x69,0x78,0xe6,0x98 +001550 88c0e880 DCB 0x88,0xc0,0xe8,0x80 +001554 e8390016 DCB 0xe8,0x39,0x00,0x16 +001558 f3000001 DCB 0xf3,0x00,0x00,0x01 +00155c 00020c00 DCB 0x00,0x02,0x0c,0x00 +001560 21380054 DCB 0x21,0x38,0x00,0x54 +001564 9101d214 DCB 0x91,0x01,0xd2,0x14 +001568 118cf922 DCB 0x11,0x8c,0xf9,0x22 +00156c 59ad3900 DCB 0x59,0xad,0x39,0x00 +001570 12f423fb DCB 0x12,0xf4,0x23,0xfb +001574 8234f765 DCB 0x82,0x34,0xf7,0x65 +001578 45cb2c67 DCB 0x45,0xcb,0x2c,0x67 +00157c 7f157739 DCB 0x7f,0x15,0x77,0x39 +001580 60706039 DCB 0x60,0x70,0x60,0x39 +001584 0016f500 DCB 0x00,0x16,0xf5,0x00 +001588 00c91104 DCB 0x00,0xc9,0x11,0x04 +00158c 2b11517e DCB 0x2b,0x11,0x51,0x7e +001590 12ad0922 DCB 0x12,0xad,0x09,0x22 +001594 63b93344 DCB 0x63,0xb9,0x33,0x44 +001598 be442689 DCB 0xbe,0x44,0x26,0x89 +00159c 390012f6 DCB 0x39,0x00,0x12,0xf6 +0015a0 45e48966 DCB 0x45,0xe4,0x89,0x66 +0015a4 199a7710 DCB 0x19,0x9a,0x77,0x10 +0015a8 819913d1 DCB 0x81,0x99,0x13,0xd1 +0015ac 9afe2da0 DCB 0x9a,0xfe,0x2d,0xa0 +0015b0 2d390002 DCB 0x2d,0x39,0x00,0x02 +0015b4 ff013900 DCB 0xff,0x01,0x39,0x00 +0015b8 05fe0103 DCB 0x05,0xfe,0x01,0x03 +0015bc 02003900 DCB 0x02,0x00,0x39,0x00 +0015c0 16f10000 DCB 0x16,0xf1,0x00,0x00 +0015c4 01000203 DCB 0x01,0x00,0x02,0x03 +0015c8 00142a00 DCB 0x00,0x14,0x2a,0x00 +0015cc 417700b2 DCB 0x41,0x77,0x00,0xb2 +0015d0 ea115bbf DCB 0xea,0x11,0x5b,0xbf +0015d4 22176439 DCB 0x22,0x17,0x64,0x39 +0015d8 0012f223 DCB 0x00,0x12,0xf2,0x23 +0015dc ac283397 DCB 0xac,0x28,0x33,0x97 +0015e0 f7444da4 DCB 0xf7,0x44,0x4d,0xa4 +0015e4 56ca4766 DCB 0x56,0xca,0x47,0x66 +0015e8 67866086 DCB 0x67,0x86,0x60,0x86 +0015ec 390016f3 DCB 0x39,0x00,0x16,0xf3 +0015f0 00000100 DCB 0x00,0x00,0x01,0x00 +0015f4 02030004 DCB 0x02,0x03,0x00,0x04 +0015f8 0d001b34 DCB 0x0d,0x00,0x1b,0x34 +0015fc 00537601 DCB 0x00,0x53,0x76,0x01 +001600 c10b1154 DCB 0xc1,0x0b,0x11,0x54 +001604 97390012 DCB 0x97,0x39,0x00,0x12 +001608 f412d648 DCB 0xf4,0x12,0xd6,0x48 +00160c 23ac0433 DCB 0x23,0xac,0x04,0x33 +001610 549d459d DCB 0x54,0x9d,0x45,0x9d +001614 0d552945 DCB 0x0d,0x55,0x29,0x45 +001618 50453900 DCB 0x50,0x45,0x39,0x00 +00161c 16f50000 DCB 0x16,0xf5,0x00,0x00 +001620 2001e702 DCB 0x20,0x01,0xe7,0x02 +001624 11182f11 DCB 0x11,0x18,0x2f,0x11 +001628 457611ab DCB 0x45,0x76,0x11,0xab +00162c e32248ab DCB 0xe3,0x22,0x48,0xab +001630 33045039 DCB 0x33,0x04,0x50,0x39 +001634 0012f634 DCB 0x00,0x12,0xf6,0x34 +001638 9a134488 DCB 0x9a,0x13,0x44,0x88 +00163c f05553ac DCB 0xf0,0x55,0x53,0xac +001640 67dc5e77 DCB 0x67,0xdc,0x5e,0x77 +001644 7f9f709f DCB 0x7f,0x9f,0x70,0x9f +001648 390002ff DCB 0x39,0x00,0x02,0xff +00164c 01390005 DCB 0x01,0x39,0x00,0x05 +001650 fe010402 DCB 0xfe,0x01,0x04,0x02 +001654 00390016 DCB 0x00,0x39,0x00,0x16 +001658 f1000001 DCB 0xf1,0x00,0x00,0x01 +00165c 00020300 DCB 0x00,0x02,0x03,0x00 +001660 0923003b DCB 0x09,0x23,0x00,0x3b +001664 7700afec DCB 0x77,0x00,0xaf,0xec +001668 1164cc22 DCB 0x11,0x64,0xcc,0x22 +00166c 24783900 DCB 0x24,0x78,0x39,0x00 +001670 12f223c1 DCB 0x12,0xf2,0x23,0xc1 +001674 4334b210 DCB 0x43,0x34,0xb2,0x10 +001678 446ec456 DCB 0x44,0x6e,0xc4,0x56 +00167c f478668f DCB 0xf4,0x78,0x66,0x8f +001680 af60af39 DCB 0xaf,0x60,0xaf,0x39 +001684 0016f300 DCB 0x00,0x16,0xf3,0x00 +001688 00010002 DCB 0x00,0x01,0x00,0x02 +00168c 0300040b DCB 0x03,0x00,0x04,0x0b +001690 00163200 DCB 0x00,0x16,0x32,0x00 +001694 527801c6 DCB 0x52,0x78,0x01,0xc6 +001698 141160a5 DCB 0x14,0x11,0x60,0xa5 +00169c 390012f4 DCB 0x39,0x00,0x12,0xf4 +0016a0 12e65c23 DCB 0x12,0xe6,0x5c,0x23 +0016a4 c31d336f DCB 0xc3,0x1d,0x33,0x6f +0016a8 b745c031 DCB 0xb7,0x45,0xc0,0x31 +0016ac 554c6850 DCB 0x55,0x4c,0x68,0x50 +0016b0 68390016 DCB 0x68,0x39,0x00,0x16 +0016b4 f5000001 DCB 0xf5,0x00,0x00,0x01 +0016b8 01ed0611 DCB 0x01,0xed,0x06,0x11 +0016bc 2038114b DCB 0x20,0x38,0x11,0x4b +0016c0 8011b9f3 DCB 0x80,0x11,0xb9,0xf3 +0016c4 225dc333 DCB 0x22,0x5d,0xc3,0x33 +0016c8 1c6b3900 DCB 0x1c,0x6b,0x39,0x00 +0016cc 12f634b4 DCB 0x12,0xf6,0x34,0xb4 +0016d0 3145a913 DCB 0x31,0x45,0xa9,0x13 +0016d4 5577ce77 DCB 0x55,0x77,0xce,0x77 +0016d8 058d77ad DCB 0x05,0x8d,0x77,0xad +0016dc ca70ca39 DCB 0xca,0x70,0xca,0x39 +0016e0 0002ff01 DCB 0x00,0x02,0xff,0x01 +0016e4 390005fe DCB 0x39,0x00,0x05,0xfe +0016e8 01050200 DCB 0x01,0x05,0x02,0x00 +0016ec 390016f1 DCB 0x39,0x00,0x16,0xf1 +0016f0 00000100 DCB 0x00,0x00,0x01,0x00 +0016f4 02150028 DCB 0x02,0x15,0x00,0x28 +0016f8 3c004d7f DCB 0x3c,0x00,0x4d,0x7f +0016fc 00b2e711 DCB 0x00,0xb2,0xe7,0x11 +001700 54bb2212 DCB 0x54,0xbb,0x22,0x12 +001704 65390012 DCB 0x65,0x39,0x00,0x12 +001708 f223ab2f DCB 0xf2,0x23,0xab,0x2f +00170c 3399f944 DCB 0x33,0x99,0xf9,0x44 +001710 52a656cc DCB 0x52,0xa6,0x56,0xcc +001714 4c666a85 DCB 0x4c,0x66,0x6a,0x85 +001718 60853900 DCB 0x60,0x85,0x39,0x00 +00171c 16f30000 DCB 0x16,0xf3,0x00,0x00 +001720 01000213 DCB 0x01,0x00,0x02,0x13 +001724 001f2d00 DCB 0x00,0x1f,0x2d,0x00 +001728 364e0068 DCB 0x36,0x4e,0x00,0x68 +00172c 8601c80f DCB 0x86,0x01,0xc8,0x0f +001730 11579b39 DCB 0x11,0x57,0x9b,0x39 +001734 0012f412 DCB 0x00,0x12,0xf4,0x12 +001738 da4b23af DCB 0xda,0x4b,0x23,0xaf +00173c 073357a0 DCB 0x07,0x33,0x57,0xa0 +001740 459f1055 DCB 0x45,0x9f,0x10,0x55 +001744 2a455045 DCB 0x2a,0x45,0x50,0x45 +001748 390016f5 DCB 0x39,0x00,0x16,0xf5 +00174c 00004311 DCB 0x00,0x00,0x43,0x11 +001750 233f1150 DCB 0x23,0x3f,0x11,0x50 +001754 651179a4 DCB 0x65,0x11,0x79,0xa4 +001758 12d40522 DCB 0x12,0xd4,0x05,0x22 +00175c 66c33318 DCB 0x66,0xc3,0x33,0x18 +001760 63390012 DCB 0x63,0x39,0x00,0x12 +001764 f634a724 DCB 0xf6,0x34,0xa7,0x24 +001768 4494fb55 DCB 0x44,0x94,0xfb,0x55 +00176c 5cb667e2 DCB 0x5c,0xb6,0x67,0xe2 +001770 667785a5 DCB 0x66,0x77,0x85,0xa5 +001774 70a53900 DCB 0x70,0xa5,0x39,0x00 +001778 02ff0139 DCB 0x02,0xff,0x01,0x39 +00177c 0005fe01 DCB 0x00,0x05,0xfe,0x01 +001780 06020039 DCB 0x06,0x02,0x00,0x39 +001784 0016f100 DCB 0x00,0x16,0xf1,0x00 +001788 00010002 DCB 0x00,0x01,0x00,0x02 +00178c 2a004051 DCB 0x2a,0x00,0x40,0x51 +001790 00638b00 DCB 0x00,0x63,0x8b,0x00 +001794 b7e91155 DCB 0xb7,0xe9,0x11,0x55 +001798 b8221264 DCB 0xb8,0x22,0x12,0x64 +00179c 390012f2 DCB 0x39,0x00,0x12,0xf2 +0017a0 23af2f33 DCB 0x23,0xaf,0x2f,0x33 +0017a4 9bfb4456 DCB 0x9b,0xfb,0x44,0x56 +0017a8 a956c946 DCB 0xa9,0x56,0xc9,0x46 +0017ac 66628460 DCB 0x66,0x62,0x84,0x60 +0017b0 84390016 DCB 0x84,0x39,0x00,0x16 +0017b4 f3000001 DCB 0xf3,0x00,0x00,0x01 +0017b8 00445b00 DCB 0x00,0x44,0x5b,0x00 +0017bc 6c770083 DCB 0x6c,0x77,0x00,0x83 +0017c0 9500aac2 DCB 0x95,0x00,0xaa,0xc2 +0017c4 01f83311 DCB 0x01,0xf8,0x33,0x11 +0017c8 72ad3900 DCB 0x72,0xad,0x39,0x00 +0017cc 12f412ea DCB 0x12,0xf4,0x12,0xea +0017d0 5a23b90e DCB 0x5a,0x23,0xb9,0x0e +0017d4 335ea545 DCB 0x33,0x5e,0xa5,0x45 +0017d8 a10c5528 DCB 0xa1,0x0c,0x55,0x28 +0017dc 42504239 DCB 0x42,0x50,0x42,0x39 +0017e0 0016f500 DCB 0x00,0x16,0xf5,0x00 +0017e4 00be118a DCB 0x00,0xbe,0x11,0x8a +0017e8 a311b8c9 DCB 0xa3,0x11,0xb8,0xc9 +0017ec 12dd0022 DCB 0x12,0xdd,0x00,0x22 +0017f0 2249229b DCB 0x22,0x49,0x22,0x9b +0017f4 e733337a DCB 0xe7,0x33,0x33,0x7a +0017f8 390012f6 DCB 0x39,0x00,0x12,0xf6 +0017fc 34be3245 DCB 0x34,0xbe,0x32,0x45 +001800 a0065567 DCB 0xa0,0x06,0x55,0x67 +001804 bc67e062 DCB 0xbc,0x67,0xe0,0x62 +001808 777d9e70 DCB 0x77,0x7d,0x9e,0x70 +00180c 9e390002 DCB 0x9e,0x39,0x00,0x02 +001810 ff013900 DCB 0xff,0x01,0x39,0x00 +001814 05fe0107 DCB 0x05,0xfe,0x01,0x07 +001818 02003900 DCB 0x02,0x00,0x39,0x00 +00181c 16f10000 DCB 0x16,0xf1,0x00,0x00 +001820 01000298 DCB 0x01,0x00,0x02,0x98 +001824 00c5d501 DCB 0x00,0xc5,0xd5,0x01 +001828 e6051125 DCB 0xe6,0x05,0x11,0x25 +00182c 451192e3 DCB 0x45,0x11,0x92,0xe3 +001830 22347d39 DCB 0x22,0x34,0x7d,0x39 +001834 0012f223 DCB 0x00,0x12,0xf2,0x23 +001838 c43d34ab DCB 0xc4,0x3d,0x34,0xab +00183c 044461b3 DCB 0x04,0x44,0x61,0xb3 +001840 56cf4966 DCB 0x56,0xcf,0x49,0x66 +001844 6b846084 DCB 0x6b,0x84,0x60,0x84 +001848 390016f3 DCB 0x39,0x00,0x16,0xf3 +00184c 00000101 DCB 0x00,0x00,0x01,0x01 +001850 021f1136 DCB 0x02,0x1f,0x11,0x36 +001854 41114e60 DCB 0x41,0x11,0x4e,0x60 +001858 11708211 DCB 0x11,0x70,0x82,0x11 +00185c 9fc012e7 DCB 0x9f,0xc0,0x12,0xe7 +001860 11390012 DCB 0x11,0x39,0x00,0x12 +001864 f4223d90 DCB 0xf4,0x22,0x3d,0x90 +001868 23e22d33 DCB 0x23,0xe2,0x2d,0x33 +00186c 7abb45ae DCB 0x7a,0xbb,0x45,0xae +001870 1855344b DCB 0x18,0x55,0x34,0x4b +001874 504b3900 DCB 0x50,0x4b,0x39,0x00 +001878 16f50000 DCB 0x16,0xf5,0x00,0x00 +00187c 7a228096 DCB 0x7a,0x22,0x80,0x96 +001880 22a4b322 DCB 0x22,0xa4,0xb3,0x22 +001884 bfd423ed DCB 0xbf,0xd4,0x23,0xed +001888 06333666 DCB 0x06,0x33,0x36,0x66 +00188c 33a0d439 DCB 0x33,0xa0,0xd4,0x39 +001890 0012f644 DCB 0x00,0x12,0xf6,0x44 +001894 0a7245db DCB 0x0a,0x72,0x45,0xdb +001898 34558cdf DCB 0x34,0x55,0x8c,0xdf +00189c 67f87377 DCB 0x67,0xf8,0x73,0x77 +0018a0 92ac70ac DCB 0x92,0xac,0x70,0xac +0018a4 390002ff DCB 0x39,0x00,0x02,0xff +0018a8 01390005 DCB 0x01,0x39,0x00,0x05 +0018ac fe010802 DCB 0xfe,0x01,0x08,0x02 +0018b0 00390016 DCB 0x00,0x39,0x00,0x16 +0018b4 f1000001 DCB 0xf1,0x00,0x00,0x01 +0018b8 00021f11 DCB 0x00,0x02,0x1f,0x11 +0018bc 0f571170 DCB 0x0f,0x57,0x11,0x70 +0018c0 8b11a7c4 DCB 0x8b,0x11,0xa7,0xc4 +0018c4 22044122 DCB 0x22,0x04,0x41,0x22 +0018c8 80c03900 DCB 0x80,0xc0,0x39,0x00 +0018cc 12f23300 DCB 0x12,0xf2,0x33,0x00 +0018d0 7034d838 DCB 0x70,0x34,0xd8,0x38 +0018d4 4490e466 DCB 0x44,0x90,0xe4,0x66 +0018d8 017c6698 DCB 0x01,0x7c,0x66,0x98 +0018dc b560b539 DCB 0xb5,0x60,0xb5,0x39 +0018e0 0016f300 DCB 0x00,0x16,0xf3,0x00 +0018e4 00010002 DCB 0x00,0x01,0x00,0x02 +0018e8 0811ebff DCB 0x08,0x11,0xeb,0xff +0018ec 220a1c22 DCB 0x22,0x0a,0x1c,0x22 +0018f0 2937224d DCB 0x29,0x37,0x22,0x4d +0018f4 6622829c DCB 0x66,0x22,0x82,0x9c +0018f8 390012f4 DCB 0x39,0x00,0x12,0xf4 +0018fc 22b9f933 DCB 0x22,0xb9,0xf9,0x33 +001900 3d7b33bb DCB 0x3d,0x7b,0x33,0xbb +001904 fb45e34b DCB 0xfb,0x45,0xe3,0x4b +001908 55658250 DCB 0x55,0x65,0x82,0x50 +00190c 82390016 DCB 0x82,0x39,0x00,0x16 +001910 f5000001 DCB 0xf5,0x00,0x00,0x01 +001914 13032333 DCB 0x13,0x03,0x23,0x33 +001918 727b3385 DCB 0x72,0x7b,0x33,0x85 +00191c 9633a7ba DCB 0x96,0x33,0xa7,0xba +001920 34e20344 DCB 0x34,0xe2,0x03,0x44 +001924 2d5a3900 DCB 0x2d,0x5a,0x39,0x00 +001928 12f64487 DCB 0x12,0xf6,0x44,0x87 +00192c e055388f DCB 0xe0,0x55,0x38,0x8f +001930 56e53077 DCB 0x56,0xe5,0x30,0x77 +001934 41ba77d7 DCB 0x41,0xba,0x77,0xd7 +001938 f070f039 DCB 0xf0,0x70,0xf0,0x39 +00193c 0002ff01 DCB 0x00,0x02,0xff,0x01 +001940 390005fe DCB 0x39,0x00,0x05,0xfe +001944 01090200 DCB 0x01,0x09,0x02,0x00 +001948 390016f1 DCB 0x39,0x00,0x16,0xf1 +00194c 00000100 DCB 0x00,0x00,0x01,0x00 +001950 02030004 DCB 0x02,0x03,0x00,0x04 +001954 2801b461 DCB 0x28,0x01,0xb4,0x61 +001958 117a8a11 DCB 0x11,0x7a,0x8a,0x11 +00195c afd72202 DCB 0xaf,0xd7,0x22,0x02 +001960 2c390012 DCB 0x2c,0x39,0x00,0x12 +001964 f22254aa DCB 0xf2,0x22,0x54,0xaa +001968 23f64833 DCB 0x23,0xf6,0x48,0x33 +00196c 8ecc45c1 DCB 0x8e,0xcc,0x45,0xc1 +001970 25553f5b DCB 0x25,0x55,0x3f,0x5b +001974 505b3900 DCB 0x50,0x5b,0x39,0x00 +001978 16f30000 DCB 0x16,0xf3,0x00,0x00 +00197c 01000203 DCB 0x01,0x00,0x02,0x03 +001980 01047e12 DCB 0x01,0x04,0x7e,0x12 +001984 f1032211 DCB 0xf1,0x03,0x22,0x11 +001988 1c222c40 DCB 0x1c,0x22,0x2c,0x40 +00198c 224c5d39 DCB 0x22,0x4c,0x5d,0x39 +001990 0012f422 DCB 0x00,0x12,0xf4,0x22 +001994 6e9022b9 DCB 0x6e,0x90,0x22,0xb9 +001998 e0330a33 DCB 0xe0,0x33,0x0a,0x33 +00199c 34e22f44 DCB 0x34,0xe2,0x2f,0x44 +0019a0 465a405a DCB 0x46,0x5a,0x40,0x5a +0019a4 390016f5 DCB 0x39,0x00,0x16,0xf5 +0019a8 00009702 DCB 0x00,0x00,0x97,0x02 +0019ac e4b33353 DCB 0xe4,0xb3,0x33,0x53 +0019b0 66337180 DCB 0x66,0x33,0x71,0x80 +0019b4 338b9633 DCB 0x33,0x8b,0x96,0x33 +0019b8 adc633e1 DCB 0xad,0xc6,0x33,0xe1 +0019bc fb390012 DCB 0xfb,0x39,0x00,0x12 +0019c0 f6440f48 DCB 0xf6,0x44,0x0f,0x48 +0019c4 4482c145 DCB 0x44,0x82,0xc1,0x45 +0019c8 fc346614 DCB 0xfc,0x34,0x66,0x14 +0019cc 706687a1 DCB 0x70,0x66,0x87,0xa1 +0019d0 60a13900 DCB 0x60,0xa1,0x39,0x00 +0019d4 02ff0139 DCB 0x02,0xff,0x01,0x39 +0019d8 0005fe01 DCB 0x00,0x05,0xfe,0x01 +0019dc 00040039 DCB 0x00,0x04,0x00,0x39 +0019e0 0016f100 DCB 0x00,0x16,0xf1,0x00 +0019e4 00010002 DCB 0x00,0x01,0x00,0x02 +0019e8 03002453 DCB 0x03,0x00,0x24,0x53 +0019ec 0087f511 DCB 0x00,0x87,0xf5,0x11 +0019f0 4db6224e DCB 0x4d,0xb6,0x22,0x4e +0019f4 cd3342a0 DCB 0xcd,0x33,0x42,0xa0 +0019f8 390012f2 DCB 0x39,0x00,0x12,0xf2 +0019fc 34fe9055 DCB 0x34,0xfe,0x90,0x55 +001a00 148956fc DCB 0x14,0x89,0x56,0xfc +001a04 6178a134 DCB 0x61,0x78,0xa1,0x34 +001a08 88507480 DCB 0x88,0x50,0x74,0x80 +001a0c 74390016 DCB 0x74,0x39,0x00,0x16 +001a10 f3000001 DCB 0xf3,0x00,0x00,0x01 +001a14 00051500 DCB 0x00,0x05,0x15,0x00 +001a18 2637004a DCB 0x26,0x37,0x00,0x4a +001a1c 7c00acf5 DCB 0x7c,0x00,0xac,0xf5 +001a20 1170df22 DCB 0x11,0x70,0xdf,0x22 +001a24 489e3900 DCB 0x48,0x9e,0x39,0x00 +001a28 12f423fa DCB 0x12,0xf4,0x23,0xfa +001a2c 7a34f359 DCB 0x7a,0x34,0xf3,0x59 +001a30 45c11566 DCB 0x45,0xc1,0x15,0x66 +001a34 4bca67ec DCB 0x4b,0xca,0x67,0xec +001a38 05700539 DCB 0x05,0x70,0x05,0x39 +001a3c 0016f500 DCB 0x00,0x16,0xf5,0x00 +001a40 008301ec DCB 0x00,0x83,0x01,0xec +001a44 0c11386b DCB 0x0c,0x11,0x38,0x6b +001a48 129f0a22 DCB 0x12,0x9f,0x0a,0x22 +001a4c 60c5335d DCB 0x60,0xc5,0x33,0x5d +001a50 dd444bb6 DCB 0xdd,0x44,0x4b,0xb6 +001a54 390012f6 DCB 0x39,0x00,0x12,0xf6 +001a58 551bba66 DCB 0x55,0x1b,0xba,0x66 +001a5c 40b97726 DCB 0x40,0xb9,0x77,0x26 +001a60 8989db72 DCB 0x89,0x89,0xdb,0x72 +001a64 9991b990 DCB 0x99,0x91,0xb9,0x90 +001a68 b9390002 DCB 0xb9,0x39,0x00,0x02 +001a6c ff013900 DCB 0xff,0x01,0x39,0x00 +001a70 05fe0101 DCB 0x05,0xfe,0x01,0x01 +001a74 04003900 DCB 0x04,0x00,0x39,0x00 +001a78 16f10000 DCB 0x16,0xf1,0x00,0x00 +001a7c 01000203 DCB 0x01,0x00,0x02,0x03 +001a80 22a1a822 DCB 0x22,0xa1,0xa8,0x22 +001a84 afb622bd DCB 0xaf,0xb6,0x22,0xbd +001a88 c422cbd2 DCB 0xc4,0x22,0xcb,0xd2 +001a8c 23d91c39 DCB 0x23,0xd9,0x1c,0x39 +001a90 0012f233 DCB 0x00,0x12,0xf2,0x33 +001a94 6efe4479 DCB 0x6e,0xfe,0x44,0x79 +001a98 eb5550b5 DCB 0xeb,0x55,0x50,0xb5 +001a9c 67e56677 DCB 0x67,0xe5,0x66,0x77 +001aa0 7ea070a0 DCB 0x7e,0xa0,0x70,0xa0 +001aa4 390016f3 DCB 0x39,0x00,0x16,0xf3 +001aa8 00000101 DCB 0x00,0x00,0x01,0x01 +001aac eaad11b0 DCB 0xea,0xad,0x11,0xb0 +001ab0 b711bec5 DCB 0xb7,0x11,0xbe,0xc5 +001ab4 11ccd311 DCB 0x11,0xcc,0xd3,0x11 +001ab8 dae112e8 DCB 0xda,0xe1,0x12,0xe8 +001abc 21390012 DCB 0x21,0x39,0x00,0x12 +001ac0 f4226ef7 DCB 0xf4,0x22,0x6e,0xf7 +001ac4 3366cc44 DCB 0x33,0x66,0xcc,0x44 +001ac8 227c5697 DCB 0x22,0x7c,0x56,0x97 +001acc 0f662e47 DCB 0x0f,0x66,0x2e,0x47 +001ad0 60473900 DCB 0x60,0x47,0x39,0x00 +001ad4 16f50200 DCB 0x16,0xf5,0x02,0x00 +001ad8 4233a9ac DCB 0x42,0x33,0xa9,0xac +001adc 33afb633 DCB 0x33,0xaf,0xb6,0x33 +001ae0 bdc433cb DCB 0xbd,0xc4,0x33,0xcb +001ae4 d233d9e0 DCB 0xd2,0x33,0xd9,0xe0 +001ae8 34e72c39 DCB 0x34,0xe7,0x2c,0x39 +001aec 0012f645 DCB 0x00,0x12,0xf6,0x45 +001af0 801a569e DCB 0x80,0x1a,0x56,0x9e +001af4 13667ddd DCB 0x13,0x66,0x7d,0xdd +001af8 88149988 DCB 0x88,0x14,0x99,0x88 +001afc bad980d9 DCB 0xba,0xd9,0x80,0xd9 +001b00 390002ff DCB 0x39,0x00,0x02,0xff +001b04 01390005 DCB 0x01,0x39,0x00,0x05 +001b08 fe010204 DCB 0xfe,0x01,0x02,0x04 +001b0c 00390016 DCB 0x00,0x39,0x00,0x16 +001b10 f1000001 DCB 0xf1,0x00,0x00,0x01 +001b14 00020306 DCB 0x00,0x02,0x03,0x06 +001b18 0480ffa4 DCB 0x04,0x80,0xff,0xa4 +001b1c a9ffaeb3 DCB 0xa9,0xff,0xae,0xb3 +001b20 ffb8bdff DCB 0xff,0xb8,0xbd,0xff +001b24 c2c73900 DCB 0xc2,0xc7,0x39,0x00 +001b28 12f2ffcc DCB 0x12,0xf2,0xff,0xcc +001b2c d1ffd6db DCB 0xd1,0xff,0xd6,0xdb +001b30 ffe0e5ff DCB 0xff,0xe0,0xe5,0xff +001b34 eaeffff4 DCB 0xea,0xef,0xff,0xf4 +001b38 f9f0f939 DCB 0xf9,0xf0,0xf9,0x39 +001b3c 0016f300 DCB 0x00,0x16,0xf3,0x00 +001b40 00010f02 DCB 0x00,0x01,0x0f,0x02 +001b44 99ff9c9f DCB 0x99,0xff,0x9c,0x9f +001b48 ffa4a9ff DCB 0xff,0xa4,0xa9,0xff +001b4c aeb3ffb8 DCB 0xae,0xb3,0xff,0xb8 +001b50 bdffc2c7 DCB 0xbd,0xff,0xc2,0xc7 +001b54 390012f4 DCB 0x39,0x00,0x12,0xf4 +001b58 ffccd1ff DCB 0xff,0xcc,0xd1,0xff +001b5c d6dbffe0 DCB 0xd6,0xdb,0xff,0xe0 +001b60 e5ffeaef DCB 0xe5,0xff,0xea,0xef +001b64 fff4f9f0 DCB 0xff,0xf4,0xf9,0xf0 +001b68 f9390016 DCB 0xf9,0x39,0x00,0x16 +001b6c f50200f4 DCB 0xf5,0x02,0x00,0xf4 +001b70 ff9699ff DCB 0xff,0x96,0x99,0xff +001b74 9c9fffa4 DCB 0x9c,0x9f,0xff,0xa4 +001b78 a9ffaeb3 DCB 0xa9,0xff,0xae,0xb3 +001b7c ffb8bdff DCB 0xff,0xb8,0xbd,0xff +001b80 c2c73900 DCB 0xc2,0xc7,0x39,0x00 +001b84 12f6ffcc DCB 0x12,0xf6,0xff,0xcc +001b88 d1ffd6db DCB 0xd1,0xff,0xd6,0xdb +001b8c ffe0e5ff DCB 0xff,0xe0,0xe5,0xff +001b90 eaeffff4 DCB 0xea,0xef,0xff,0xf4 +001b94 f9f0f939 DCB 0xf9,0xf0,0xf9,0x39 +001b98 0002ff01 DCB 0x00,0x02,0xff,0x01 +001b9c 390005fe DCB 0x39,0x00,0x05,0xfe +001ba0 01030400 DCB 0x01,0x03,0x04,0x00 +001ba4 390016f1 DCB 0x39,0x00,0x16,0xf1 +001ba8 00000100 DCB 0x00,0x00,0x01,0x00 +001bac 02030004 DCB 0x02,0x03,0x00,0x04 +001bb0 050f06a9 DCB 0x05,0x0f,0x06,0xa9 +001bb4 ffaeb3ff DCB 0xff,0xae,0xb3,0xff +001bb8 b8bdffc2 DCB 0xb8,0xbd,0xff,0xc2 +001bbc c7390012 DCB 0xc7,0x39,0x00,0x12 +001bc0 f2ffccd1 DCB 0xf2,0xff,0xcc,0xd1 +001bc4 ffd6dbff DCB 0xff,0xd6,0xdb,0xff +001bc8 e0e5ffea DCB 0xe0,0xe5,0xff,0xea +001bcc effff4f9 DCB 0xef,0xff,0xf4,0xf9 +001bd0 f0f93900 DCB 0xf0,0xf9,0x39,0x00 +001bd4 16f30000 DCB 0x16,0xf3,0x00,0x00 +001bd8 01000203 DCB 0x01,0x00,0x02,0x03 +001bdc ffa0a3ff DCB 0xff,0xa0,0xa3,0xff +001be0 a6a9ffae DCB 0xa6,0xa9,0xff,0xae +001be4 b3ffb8bd DCB 0xb3,0xff,0xb8,0xbd +001be8 ffc2c739 DCB 0xff,0xc2,0xc7,0x39 +001bec 0012f4ff DCB 0x00,0x12,0xf4,0xff +001bf0 ccd1ffd6 DCB 0xcc,0xd1,0xff,0xd6 +001bf4 dbffe0e5 DCB 0xdb,0xff,0xe0,0xe5 +001bf8 ffeaefff DCB 0xff,0xea,0xef,0xff +001bfc f4f9f0f9 DCB 0xf4,0xf9,0xf0,0xf9 +001c00 390016f5 DCB 0x39,0x00,0x16,0xf5 +001c04 000040ff DCB 0x00,0x00,0x40,0xff +001c08 9a9dffa0 DCB 0x9a,0x9d,0xff,0xa0 +001c0c a3ffa6a9 DCB 0xa3,0xff,0xa6,0xa9 +001c10 ffaeb3ff DCB 0xff,0xae,0xb3,0xff +001c14 b8bdffc2 DCB 0xb8,0xbd,0xff,0xc2 +001c18 c7390012 DCB 0xc7,0x39,0x00,0x12 +001c1c f6ffccd1 DCB 0xf6,0xff,0xcc,0xd1 +001c20 ffd6dbff DCB 0xff,0xd6,0xdb,0xff +001c24 e0e5ffea DCB 0xe0,0xe5,0xff,0xea +001c28 effff4f9 DCB 0xef,0xff,0xf4,0xf9 +001c2c f0f93900 DCB 0xf0,0xf9,0x39,0x00 +001c30 02ff0129 DCB 0x02,0xff,0x01,0x29 +001c34 00029f05 DCB 0x00,0x02,0x9f,0x05 +001c38 290002f9 DCB 0x29,0x00,0x02,0xf9 +001c3c 00290002 DCB 0x00,0x29,0x00,0x02 +001c40 f7002900 DCB 0xf7,0x00,0x29,0x00 +001c44 029f0229 DCB 0x02,0x9f,0x02,0x29 +001c48 0008c311 DCB 0x00,0x08,0xc3,0x11 +001c4c c005c000 DCB 0xc0,0x05,0xc0,0x00 +001c50 007f2900 DCB 0x00,0x7f,0x29,0x00 +001c54 029f0429 DCB 0x02,0x9f,0x04,0x29 +001c58 0003ba10 DCB 0x00,0x03,0xba,0x10 +001c5c 00290002 DCB 0x00,0x29,0x00,0x02 +001c60 9f0a2900 DCB 0x9f,0x0a,0x29,0x00 +001c64 02b21b29 DCB 0x02,0xb2,0x1b,0x29 +001c68 0013b713 DCB 0x00,0x13,0xb7,0x13 +001c6c 28000000 DCB 0x28,0x00,0x00,0x00 +001c70 00000000 DCB 0x00,0x00,0x00,0x00 +001c74 00000000 DCB 0x00,0x00,0x00,0x00 +001c78 00212020 DCB 0x00,0x21,0x20,0x20 +001c7c 21290002 DCB 0x21,0x29,0x00,0x02 +001c80 9f0a2900 DCB 0x9f,0x0a,0x29,0x00 +001c84 02b21b29 DCB 0x02,0xb2,0x1b,0x29 +001c88 002eb807 DCB 0x00,0x2e,0xb8,0x07 +001c8c 0000060a DCB 0x00,0x00,0x06,0x0a +001c90 00060a00 DCB 0x00,0x06,0x0a,0x00 +001c94 00060a00 DCB 0x00,0x06,0x0a,0x00 +001c98 060a0000 DCB 0x06,0x0a,0x00,0x00 +001c9c 060a0006 DCB 0x06,0x0a,0x00,0x06 +001ca0 0a000006 DCB 0x0a,0x00,0x00,0x06 +001ca4 0a00060a DCB 0x0a,0x00,0x06,0x0a +001ca8 00000000 DCB 0x00,0x00,0x00,0x00 +001cac 00000000 DCB 0x00,0x00,0x00,0x00 +001cb0 00000000 DCB 0x00,0x00,0x00,0x00 +001cb4 00000000 DCB 0x00,0x00,0x00,0x00 +001cb8 29002bb9 DCB 0x29,0x00,0x2b,0xb9 +001cbc 00040400 DCB 0x00,0x04,0x04,0x00 +001cc0 0c0c0000 DCB 0x0c,0x0c,0x00,0x00 +001cc4 4000004c DCB 0x40,0x00,0x00,0x4c +001cc8 0c000040 DCB 0x0c,0x00,0x00,0x40 +001ccc 00004c0c DCB 0x00,0x00,0x4c,0x0c +001cd0 00000404 DCB 0x00,0x00,0x04,0x04 +001cd4 000c0c00 DCB 0x00,0x0c,0x0c,0x00 +001cd8 00000000 DCB 0x00,0x00,0x00,0x00 +001cdc 00000000 DCB 0x00,0x00,0x00,0x00 +001ce0 00000000 DCB 0x00,0x00,0x00,0x00 +001ce4 00002900 DCB 0x00,0x00,0x29,0x00 +001ce8 2bba000d DCB 0x2b,0xba,0x00,0x0d +001cec 03000d03 DCB 0x03,0x00,0x0d,0x03 +001cf0 00000d03 DCB 0x00,0x00,0x0d,0x03 +001cf4 000d0300 DCB 0x00,0x0d,0x03,0x00 +001cf8 000d0300 DCB 0x00,0x0d,0x03,0x00 +001cfc 0d030000 DCB 0x0d,0x03,0x00,0x00 +001d00 0d03000d DCB 0x0d,0x03,0x00,0x0d +001d04 03000000 DCB 0x03,0x00,0x00,0x00 +001d08 00000000 DCB 0x00,0x00,0x00,0x00 +001d0c 00000000 DCB 0x00,0x00,0x00,0x00 +001d10 00000000 DCB 0x00,0x00,0x00,0x00 +001d14 2900029f DCB 0x29,0x00,0x02,0x9f +001d18 00290002 DCB 0x00,0x29,0x00,0x02 +001d1c 48032900 DCB 0x48,0x03,0x29,0x00 +001d20 03510000 DCB 0x03,0x51,0x00,0x00 +001d24 29000253 DCB 0x29,0x00,0x02,0x53 +001d28 e0290002 DCB 0xe0,0x29,0x00,0x02 +001d2c 35000000 DCB 0x35,0x00,0x00,0x00 +001d30 11000089 DCB 0x11,0x00,0x00,0x89 +001d34 30800960 DCB 0x30,0x80,0x09,0x60 +001d38 04380078 DCB 0x04,0x38,0x00,0x78 +001d3c 021c021c DCB 0x02,0x1c,0x02,0x1c +001d40 0200020e DCB 0x02,0x00,0x02,0x0e +001d44 00200baf DCB 0x00,0x20,0x0b,0xaf +001d48 0007000c DCB 0x00,0x07,0x00,0x0c +001d4c 00cf00d9 DCB 0x00,0xcf,0x00,0xd9 +001d50 180010f0 DCB 0x18,0x00,0x10,0xf0 +001d54 030c2000 DCB 0x03,0x0c,0x20,0x00 +001d58 060b0b33 DCB 0x06,0x0b,0x0b,0x33 +001d5c 0e1c2a38 DCB 0x0e,0x1c,0x2a,0x38 +001d60 46546269 DCB 0x46,0x54,0x62,0x69 +001d64 7077797b DCB 0x70,0x77,0x79,0x7b +001d68 7d7e0102 DCB 0x7d,0x7e,0x01,0x02 +001d6c 01000940 DCB 0x01,0x00,0x09,0x40 +001d70 09be19fc DCB 0x09,0xbe,0x19,0xfc +001d74 19fa19f8 DCB 0x19,0xfa,0x19,0xf8 +001d78 1a381a78 DCB 0x1a,0x38,0x1a,0x78 +001d7c 1ab62af6 DCB 0x1a,0xb6,0x2a,0xf6 +001d80 2b342b74 DCB 0x2b,0x34,0x2b,0x74 +001d84 3b746bf4 DCB 0x3b,0x74,0x6b,0xf4 +001d88 00000000 DCB 0x00,0x00,0x00,0x00 +001d8c 00000000 DCB 0x00,0x00,0x00,0x00 +001d90 00000000 DCB 0x00,0x00,0x00,0x00 +001d94 00000000 DCB 0x00,0x00,0x00,0x00 +001d98 00000000 DCB 0x00,0x00,0x00,0x00 +001d9c 00000000 DCB 0x00,0x00,0x00,0x00 +001da0 00000000 DCB 0x00,0x00,0x00,0x00 +001da4 00000000 DCB 0x00,0x00,0x00,0x00 +001da8 00000000 DCB 0x00,0x00,0x00,0x00 +001dac 00000000 DCB 0x00,0x00,0x00,0x00 + + AREA ||.data||, DATA, ALIGN=2 + + s_heartbeat + DCD 0x00000000 + g_need_enter_sleep_mode +000004 00000000 DCB 0x00,0x00,0x00,0x00 + g_rx_ctrl_handle + DCD 0x00000000 + g_tx_ctrl_handle + DCD 0x00000000 + start_display_on +000010 01 DCB 0x01 + panel_display_done +000011 01 DCB 0x01 + s_swire_pwm_counter +000012 00 DCB 0x00 + ret_C9_count +000013 00 DCB 0x00 + |symbol_number.113| +000014 00 DCB 0x00 + |symbol_number.114| +000015 00 DCB 0x00 + ret_C7_count +000016 00 DCB 0x00 + |symbol_number.116| +000017 00 DCB 0x00 + |symbol_number.117| +000018 00 DCB 0x00 + ret_C6_count +000019 00 DCB 0x00 + |symbol_number.119| +00001a 00 DCB 0x00 + ret_A1_count +00001b 00 DCB 0x00 + ret_7F_count +00001c 00 DCB 0x00 + ret_5A_count +00001d 00 DCB 0x00 + frame_rate +00001e 64 DCB 0x64 + +;*** Start embedded assembler *** + +#line 1 "..\\..\\src\\app\\s21p\\S21P_demo.c" + AREA ||.rev16_text||, CODE + THUMB + EXPORT |__asm___11_S21P_demo_c_a82ca1ac____REV16| +#line 467 "C:\\Keil_v5\\ARM\\PACK\\ARM\\CMSIS\\5.5.1\\CMSIS\\Core\\Include\\cmsis_armcc.h" +|__asm___11_S21P_demo_c_a82ca1ac____REV16| PROC +#line 468 + + rev16 r0, r0 + bx lr + ENDP + AREA ||.revsh_text||, CODE + THUMB + EXPORT |__asm___11_S21P_demo_c_a82ca1ac____REVSH| +#line 482 +|__asm___11_S21P_demo_c_a82ca1ac____REVSH| PROC +#line 483 + + revsh r0, r0 + bx lr + ENDP + +;*** End embedded assembler *** diff --git a/project/ISP_568T/Objects/ISP_568T_S21P_20230511.bin b/project/ISP_568T/Objects/ISP_568T_S21P_20230511.bin new file mode 100644 index 0000000000000000000000000000000000000000..9096d4e1a5061f9978cfa6e47bbfacd59743f8c6 GIT binary patch literal 64004 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 literal 0 HcmV?d00001 diff --git a/project/ISP_568T/RTE/_ISP_568T/RTE_Components.h b/project/ISP_568T/RTE/_ISP_568T/RTE_Components.h new file mode 100644 index 0000000..ccd8056 --- /dev/null +++ b/project/ISP_568T/RTE/_ISP_568T/RTE_Components.h @@ -0,0 +1,21 @@ + +/* + * Auto generated Run-Time-Environment Configuration File + * *** Do not modify ! *** + * + * Project: 'ISP_568T' + * Target: 'ISP_568T' + */ + +#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/main.c b/src/app/main.c new file mode 100644 index 0000000..7892277 --- /dev/null +++ b/src/app/main.c @@ -0,0 +1,62 @@ +#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_S21P_EN + S21P_demo(); +#endif + while (1); + } +} diff --git a/src/app/s21p/S21P_demo.c b/src/app/s21p/S21P_demo.c new file mode 100644 index 0000000..e92a3f5 --- /dev/null +++ b/src/app/s21p/S21P_demo.c @@ -0,0 +1,3876 @@ +/******************************************************************************* +* +* File: s20P_demo.c +* Description: 系统测试文件 +* Version: V0.1 +* Date: 2020-02-22 +* Author: Tempest + *******************************************************************************/ + +#include "S21P_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 "test_cfg_global.h" +#include "app_tp_st_touch.h" + +#ifdef LOG_TAG +#undef LOG_TAG +#endif +#define LOG_TAG "S21P_demo" + +/********************基本参数配置*********************/ + +//S20+ MIPI数据信息 +/* 输入分辨率 */ +#define INPUT_WIDTH 1080 //1080 +#define INPUT_HEIGHT 2400 //2400 +/* 输入 MIPI lane rate,video mode需要正确配置,cmd mode可随便配置 */ +#define INPUT_MIPI_LANE_RATE 1500000000 +/* 输入图像格式 */ +#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 true + + +#define AMOLED_NT37701 0 + +#if AMOLED_NT37701 +//almoled NT37280输出MIPI数据信息 +/* 输出分辨率配置 */ +#define OUTPUT_WIDTH 1080 +#define OUTPUT_HEIGHT 2280 +/* 输出虚拟通道(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 4 +/* 输出 VBP */ +#define OUTPUT_VBP 28 +/* 输出 VBP */ +#define OUTPUT_VFP 10 +/* 输出 VSA */ +#define OUTPUT_HSA 8 +/* 输出 HBP */ +#define OUTPUT_HBP 16 +/* 输出 HFP */ +#define OUTPUT_HFP 36 +/* 初始化模式命令传输类型 */ +#define _CMD_TYPE DSI_CMD_TX_LP //0-HS,1-LP; + +#else + +/* 输出分辨率配置 */ +#define OUTPUT_WIDTH 1080 +#define OUTPUT_HEIGHT 2400 +/* 输出虚拟通道(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 4 +/* 输出 VBP */ +#define OUTPUT_VBP 8 +/* 输出 VBP */ +#define OUTPUT_VFP 60 // 50 +/* 输出 VSA */ +#define OUTPUT_HSA 8 // 4 +/* 输出 HBP */ +#define OUTPUT_HBP 16 //16 +/* 输出 HFP */ +#define OUTPUT_HFP 30 // 20 +/* 初始化模式命令传输类型 */ +#define _CMD_TYPE DSI_CMD_TX_LP //0-HS,1-LP; +#endif + +#define SWIRE_TIMER TIMER_NUM1 +#define TE_TIMER TIMER_NUM2 + +#define SYNC_LIN_NUMBER 2000 //2600//2000 + +#define g_swire_num 40 +#define SWIRE_MAX_NUM 10 + + +/* +RX Filter 1~3 数字越大,水波纹会大一些,边缘锯齿会增加,但是字体会更清晰 +TX Filter 1~3 值越大字体越清晰,但是字体边缘锯齿会增加,值越小字体越模糊,但边缘锯齿越小,对水波纹没有大影响 +*/ + +uint32_t s_heartbeat = 0; + +#if ENABLE_TP_WAKE_UP + static bool g_need_enter_sleep_mode = false; +#endif + +/******************************************************/ +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有电 */ +static volatile bool start_display_on = true; +/* 屏初始化完成标志位 */ +static bool panel_display_done = true; + +uint8_t s_swire_pwm_counter = 0; + +//static uint8_t b3_read_flag = 0; +//static uint8_t c8_read_flag = 0; +//static uint8_t c9_read_flag = 0; + + +static void soft_swire_init(void); + +#if ENABLE_TP_WAKE_UP + +static void ap_reset_cb(void *data) +{ + /* 切换电源 */ + // hal_gpio_set_output_data_ex(POWER_IO_B, IO_LVL_HIGH, POWER_IO_A, IO_LVL_LOW); +// hal_gpio_set_output_data(POWER_IO_A, IO_LVL_LOW);// + /* 打开VCC供电 */ + TAU_LOGD("disable reset!!!!!!!!!!!!!!!!!!!!!!!!!!"); + hal_system_set_pvd(true); + hal_system_set_vcc(true); + NVIC_SystemReset(); +} +#endif + +static bool ap_dcs_read(uint8_t data_type, uint8_t dcs_cmd, uint8_t param) +{ + if(dcs_cmd == 0xEE) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_SHORT_RESPONSE_1B, + DSI_VC_0, + 1, 0x00); + } + else if(dcs_cmd == 0xE9) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 2, 0x00, 0x00); + } + else if(dcs_cmd == 0xDC) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_SHORT_RESPONSE_1B, + DSI_VC_0, + 1, 0x05); + } + else if(dcs_cmd == 0xDB) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_SHORT_RESPONSE_1B, + DSI_VC_0, + // 1,0x11); + 1, 0x15); + } + else if(dcs_cmd == 0xDA) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_SHORT_RESPONSE_1B, + DSI_VC_0, + 1, 0xA1); + } + else if(dcs_cmd == 0xD6) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 5, 0xA3, 0x00, 0x71, 0x48, 0xA6); + } + else if(dcs_cmd == 0xC9) + { + uint32_t return_size = hal_dsi_rx_ctrl_get_max_ret_size(g_rx_ctrl_handle); + if(return_size == 10) + { + static uint8_t ret_C9_count = 0; + if(ret_C9_count == 0) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x1A, 0x1A, 0x1A, 0x05, 0x21, 0x5C, 0x6B, 0x0C, 0x32, 0xE0); + ret_C9_count = 1; + } + else if(ret_C9_count == 1) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0xE8, 0x0D, 0xA3, 0x25, 0x03, 0x11, 0xC4, 0x0D, 0x4A, 0x14); + ret_C9_count = 2; + } + else if(ret_C9_count == 2) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x94, 0xB1, 0x79, 0x17, 0x75, 0x59, 0xAB, 0x1C, 0x46, 0x79); + ret_C9_count = 3; + } + else if(ret_C9_count == 3) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0xFF, 0x22, 0xF8, 0x06, 0x72, 0x28, 0x39, 0x36, 0xD0, 0x00); + ret_C9_count = 4; + } + else if(ret_C9_count == 4) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x1F, 0x1F, 0x1F, 0x0A, 0x92, 0xA8, 0xC5, 0x0C, 0x52, 0xEC); + ret_C9_count = 5; + } + else if(ret_C9_count == 5) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0xE7, 0x0D, 0xB3, 0x29, 0x00, 0x11, 0x33, 0xE5, 0x3F, 0x13); + ret_C9_count = 6; + } + else if(ret_C9_count == 6) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0xC4, 0x79, 0x6B, 0x16, 0x75, 0x19, 0x99, 0x1A, 0xD6, 0x19); + ret_C9_count = 7; + } + else if(ret_C9_count == 7) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0xE5, 0x20, 0xA7, 0x72, 0x4A, 0x24, 0xC8, 0x66, 0x94, 0x29); + ret_C9_count = 8; + } + else if(ret_C9_count == 8) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x1F, 0x1F, 0x1F, 0x0B, 0x22, 0xC8, 0xCF, 0x0C, 0xA3, 0x08); + ret_C9_count = 9; + } + else if(ret_C9_count == 9) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0xEB, 0x0D, 0xD3, 0x39, 0x02, 0x11, 0x43, 0xF1, 0x40, 0x13); + ret_C9_count = 10; + } + else if(ret_C9_count == 10) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0xD4, 0x81, 0x6C, 0x16, 0x75, 0x19, 0x98, 0x1A, 0xD6, 0x19); + ret_C9_count = 11; + } + else if(ret_C9_count == 11) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0xE5, 0x20, 0xD7, 0x7E, 0x4C, 0x29, 0xD9, 0x92, 0xF2, 0x29); + ret_C9_count = 12; + } + else if(ret_C9_count == 12) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x1F, 0x1F, 0x1F, 0x0C, 0xC3, 0x3C, 0xF0, 0x0D, 0xA3, 0x65); + ret_C9_count = 13; + } + else if(ret_C9_count == 13) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x00, 0x0E, 0x83, 0x85, 0x10, 0x11, 0x84, 0x11, 0x44, 0x13); + ret_C9_count = 14; + } + else if(ret_C9_count == 14) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0xE4, 0x91, 0x6D, 0x16, 0x65, 0x21, 0x98, 0x1A, 0xC6, 0x19); + ret_C9_count = 15; + } + else if(ret_C9_count == 15) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0xE4, 0x20, 0xB7, 0x76, 0x4A, 0x29, 0xD9, 0x92, 0xF2, 0x29); + ret_C9_count = 16; + } + else if(ret_C9_count == 16) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x1F, 0x1F, 0x1F, 0x0E, 0x33, 0xA9, 0x0B, 0x0E, 0xF3, 0xC9); + ret_C9_count = 17; + } + else if(ret_C9_count == 17) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x18, 0x0F, 0x93, 0xE1, 0x23, 0x11, 0xE4, 0x41, 0x4B, 0x14); + ret_C9_count = 18; + } + else if(ret_C9_count == 18) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x14, 0xAD, 0x71, 0x16, 0x85, 0x31, 0x9A, 0x1A, 0xC6, 0x1D); + ret_C9_count = 19; + } + else if(ret_C9_count == 19) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0xE4, 0x20, 0x77, 0x6E, 0x48, 0x29, 0xD9, 0x92, 0xF2, 0x29); + ret_C9_count = 20; + } + else if(ret_C9_count == 20) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x1F, 0x1F, 0x1F, 0x0F, 0x84, 0x21, 0x2B, 0x10, 0x44, 0x3D); + ret_C9_count = 21; + } + else if(ret_C9_count == 21) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x36, 0x10, 0xC4, 0x4D, 0x3D, 0x12, 0xA4, 0x91, 0x5B, 0x14); + ret_C9_count = 22; + } + else if(ret_C9_count == 22) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x74, 0xDD, 0x78, 0x16, 0xB5, 0x4D, 0x9F, 0x1A, 0xC6, 0x29); + ret_C9_count = 23; + } + else if(ret_C9_count == 23) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0xE5, 0x20, 0x67, 0x66, 0x46, 0x29, 0xD9, 0x92, 0xF2, 0x29); + ret_C9_count = 0; + } + else + { + //printf("C9 err return_size[%d] ret_C9_count[%d]\n", return_size, ret_C9_count); + } + } + else if(return_size == 3) + { + static uint8_t ret_C9_count = 0; + if(ret_C9_count == 0) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 3, 0xF2, 0x1F, 0x1F); + ret_C9_count = 1; + } + else if(ret_C9_count == 1) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 3, 0xA9, 0x86, 0xEE); + ret_C9_count = 2; + } + else if(ret_C9_count == 2) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 3, 0xD9, 0x92, 0xF2); + ret_C9_count = 0; + } + else + { + //printf("C9 err return_size[%d] ret_C9_count[%d]\n", return_size, ret_C9_count); + } + } + else if(return_size == 4) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 4, 0x29, 0xD9, 0x92, 0xF2); + } + else if(return_size == 39) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 39, 0x1A, 0x1A, 0x1A, 0x05, 0x21, 0x5C, 0x6B, 0x0C, 0x32, 0xE0, 0xE8, 0x0D, 0xA3, 0x25, 0x03, 0x11, 0xC4, 0x0D, 0x4A, 0x14, 0x94, 0xB1, 0x79, 0x17, 0x75, 0x59, 0xAB, 0x1C, 0x46, 0x79, 0xFF, 0x22, 0xF8, 0x06, 0x72, 0x28, 0x39, 0x36, 0xD0); + } + else if(return_size == 43) + { + static uint8_t ret_C9_count = 0; + if(ret_C9_count == 0) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 43, 0x1F, 0x1F, 0x1F, 0x0A, 0x92, 0xA8, 0xC5, 0x0C, 0x52, 0xEC, 0xE7, 0x0D, 0xB3, 0x29, 0x00, 0x11, 0x33, 0xE5, 0x3F, 0x13, 0xC4, 0x79, 0x6B, 0x16, 0x75, 0x19, 0x99, 0x1A, 0xD6, 0x19, 0xE5, 0x20, 0xA7, 0x72, 0x4A, 0x24, 0xC8, 0x66, 0x94, 0x29, 0xA9, 0x86, 0xEE); + ret_C9_count = 1; + } + else if(ret_C9_count == 1) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 43, 0x1F, 0x1F, 0x1F, 0x0B, 0x22, 0xC8, 0xCF, 0x0C, 0xA3, 0x08, 0xEB, 0x0D, 0xD3, 0x39, 0x02, 0x11, 0x43, 0xF1, 0x40, 0x13, 0xD4, 0x81, 0x6C, 0x16, 0x75, 0x19, 0x98, 0x1A, 0xD6, 0x19, 0xE5, 0x20, 0xD7, 0x7E, 0x4C, 0x29, 0xD9, 0x92, 0xF2, 0x29, 0xD9, 0x92, 0xF2); + ret_C9_count = 2; + } + else if(ret_C9_count == 2) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 43, 0x1F, 0x1F, 0x1F, 0x0C, 0xC3, 0x3C, 0xF0, 0x0D, 0xA3, 0x65, 0x00, 0x0E, 0x83, 0x85, 0x10, 0x11, 0x84, 0x11, 0x44, 0x13, 0xE4, 0x91, 0x6D, 0x16, 0x65, 0x21, 0x98, 0x1A, 0xC6, 0x19, 0xE4, 0x20, 0xB7, 0x76, 0x4A, 0x29, 0xD9, 0x92, 0xF2, 0x29, 0xD9, 0x92, 0xF2); + ret_C9_count = 3; + } + else if(ret_C9_count == 3) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 43, 0x1F, 0x1F, 0x1F, 0x0E, 0x33, 0xA9, 0x0B, 0x0E, 0xF3, 0xC9, 0x18, 0x0F, 0x93, 0xE1, 0x23, 0x11, 0xE4, 0x41, 0x4B, 0x14, 0x14, 0xAD, 0x71, 0x16, 0x85, 0x31, 0x9A, 0x1A, 0xC6, 0x1D, 0xE4, 0x20, 0x77, 0x6E, 0x48, 0x29, 0xD9, 0x92, 0xF2, 0x29, 0xD9, 0x92, 0xF2); + ret_C9_count = 4; + } + else if(ret_C9_count == 4) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 43, 0x1F, 0x1F, 0x1F, 0x0F, 0x84, 0x21, 0x2B, 0x10, 0x44, 0x3D, 0x36, 0x10, 0xC4, 0x4D, 0x3D, 0x12, 0xA4, 0x91, 0x5B, 0x14, 0x74, 0xDD, 0x78, 0x16, 0xB5, 0x4D, 0x9F, 0x1A, 0xC6, 0x29, 0xE5, 0x20, 0x67, 0x66, 0x46, 0x29, 0xD9, 0x92, 0xF2, 0x29, 0xD9, 0x92, 0xF2); + ret_C9_count = 0; + } + else + { + //printf("C9 err return_size[%d] ret_C9_count[%d]\n", return_size, ret_C9_count); + } + } + else + { + TAU_LOGD("C9 resp error [%d]!\n", return_size); + } + } + else if(dcs_cmd == 0xC7) + { + uint32_t return_size = hal_dsi_rx_ctrl_get_max_ret_size(g_rx_ctrl_handle); + if(return_size == 10) + { + static uint8_t ret_C7_count = 0; + if(ret_C7_count == 0) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x1F, 0x1F, 0x1F, 0x10, 0x84, 0x9D, 0x23, 0x11, 0xE4, 0xB5); + ret_C7_count = 1; + } + else if(ret_C7_count == 1) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x55, 0x12, 0x44, 0xC1, 0x5A, 0x13, 0xB4, 0xF1, 0x6F, 0x15); + ret_C7_count = 2; + } + else if(ret_C7_count == 2) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x25, 0x25, 0x86, 0x17, 0x05, 0x7D, 0xA6, 0x1A, 0xD6, 0x3D); + ret_C7_count = 3; + } + else if(ret_C7_count == 3) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0xE7, 0x20, 0x67, 0x66, 0x46, 0x29, 0xD9, 0x92, 0xF2, 0x00); + ret_C7_count = 4; + } + else if(ret_C7_count == 4) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x1F, 0x1F, 0x1F, 0x09, 0x42, 0x68, 0xB1, 0x14, 0x15, 0x41); + ret_C7_count = 5; + } + else if(ret_C7_count == 5) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x78, 0x14, 0x15, 0x49, 0x7D, 0x15, 0x05, 0x6D, 0x8B, 0x16); + ret_C7_count = 6; + } + else if(ret_C7_count == 6) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x35, 0x8D, 0x9A, 0x17, 0x95, 0xC1, 0xB1, 0x1A, 0xA6, 0x4D); + ret_C7_count = 7; + } + else if(ret_C7_count == 7) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0xE5, 0x1F, 0x97, 0x42, 0x39, 0x29, 0xD9, 0x92, 0xF2, 0x29); + ret_C7_count = 8; + } + else if(ret_C7_count == 8) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x13, 0x13, 0x13, 0x05, 0x01, 0x48, 0x70, 0x0B, 0x52, 0x94); + ret_C7_count = 9; + } + else if(ret_C7_count == 9) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0xDB, 0x0D, 0x22, 0xF4, 0xFB, 0x11, 0x93, 0xF5, 0x47, 0x14); + ret_C7_count = 10; + } + else if(ret_C7_count == 10) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x84, 0xA1, 0x7B, 0x17, 0x75, 0x55, 0xAD, 0x1C, 0x46, 0x6E); + ret_C7_count = 11; + } + else if(ret_C7_count == 11) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x01, 0x22, 0xF8, 0x02, 0x74, 0x28, 0x49, 0x36, 0xD1, 0x2F); + ret_C7_count = 12; + } + else if(ret_C7_count == 12) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x1A, 0x1A, 0x1A, 0x08, 0x52, 0x18, 0xA6, 0x0B, 0x52, 0x98); + ret_C7_count = 13; + } + else if(ret_C7_count == 13) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0xD8, 0x0D, 0x22, 0xF0, 0xF8, 0x11, 0x03, 0xD1, 0x3C, 0x13); + ret_C7_count = 14; + } + else if(ret_C7_count == 14) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0xB4, 0x71, 0x6A, 0x16, 0x75, 0x15, 0x99, 0x1A, 0xE6, 0x1D); + ret_C7_count = 15; + } + else if(ret_C7_count == 15) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0xE6, 0x20, 0xB7, 0x76, 0x4B, 0x24, 0xE8, 0x6E, 0x96, 0x29); + ret_C7_count = 16; + } + else if(ret_C7_count == 16) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x1A, 0x1A, 0x1A, 0x08, 0xB2, 0x34, 0xAE, 0x0B, 0x62, 0xA4); + ret_C7_count = 17; + } + else if(ret_C7_count == 17) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0xDB, 0x0D, 0x22, 0xF4, 0xF8, 0x11, 0x13, 0xD9, 0x3D, 0x13); + ret_C7_count = 18; + } + else if(ret_C7_count == 18) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0xB4, 0x71, 0x69, 0x16, 0x65, 0x11, 0x99, 0x1A, 0xE6, 0x21); + ret_C7_count = 19; + } + else if(ret_C7_count == 19) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0xE7, 0x20, 0xD7, 0x86, 0x4E, 0x29, 0xD9, 0x92, 0xF2, 0x29); + ret_C7_count = 20; + } + else if(ret_C7_count == 20) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x1A, 0x1A, 0x1A, 0x09, 0xF2, 0x94, 0xC9, 0x0B, 0xD2, 0xD8); + ret_C7_count = 21; + } + else if(ret_C7_count == 21) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0xE8, 0x0D, 0x43, 0x14, 0xFE, 0x11, 0x13, 0xE5, 0x3E, 0x13); + ret_C7_count = 22; + } + else if(ret_C7_count == 22) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0xA4, 0x79, 0x6B, 0x16, 0x65, 0x19, 0x98, 0x1A, 0xC6, 0x19); + ret_C7_count = 23; + } + else if(ret_C7_count == 23) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0xE5, 0x20, 0xC7, 0x7E, 0x4C, 0x29, 0xD9, 0x92, 0xF2, 0x29); + ret_C7_count = 0; + } + else + { + //printf("C7 err return_size[%d] ret_C7_count[%d]\n", return_size, ret_C7_count); + } + } + else if(return_size == 3) + { + static uint8_t ret_C7_count = 0; + if(ret_C7_count == 0) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 3, 0x00, 0x00, 0x00); + ret_C7_count = 1; + } + else if(ret_C7_count == 1) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 3, 0xD9, 0x92, 0xF2); + ret_C7_count = 2; + } + else if(ret_C7_count == 2) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 3, 0x5A, 0xD7, 0x52); + ret_C7_count = 0; + } + else + { + //printf("C7 err return_size[%d] ret_C7_count[%d]\n", return_size, ret_C7_count); + } + } + else if(return_size == 39) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 39, 0x1F, 0x1F, 0x1F, 0x10, 0x84, 0x9D, 0x23, 0x11, 0xE4, 0xB5, 0x55, 0x12, 0x44, 0xC1, 0x5A, 0x13, 0xB4, 0xF1, 0x6F, 0x15, 0x25, 0x25, 0x86, 0x17, 0x05, 0x7D, 0xA6, 0x1A, 0xD6, 0x3D, 0xE7, 0x20, 0x67, 0x66, 0x46, 0x29, 0xD9, 0x92, 0xF2); + } + else if(return_size == 43) + { + static uint8_t ret_C7_count = 0; + if(ret_C7_count == 0) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 43, 0x1F, 0x1F, 0x1F, 0x09, 0x42, 0x68, 0xB1, 0x14, 0x15, 0x41, 0x78, 0x14, 0x15, 0x49, 0x7D, 0x15, 0x05, 0x6D, 0x8B, 0x16, 0x35, 0x8D, 0x9A, 0x17, 0x95, 0xC1, 0xB1, 0x1A, 0xA6, 0x4D, 0xE5, 0x1F, 0x97, 0x42, 0x39, 0x29, 0xD9, 0x92, 0xF2, 0x29, 0xD9, 0x92, 0xF2); + ret_C7_count = 1; + } + else if(ret_C7_count == 1) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 43, 0x13, 0x13, 0x13, 0x05, 0x01, 0x48, 0x70, 0x0B, 0x52, 0x94, 0xDB, 0x0D, 0x22, 0xF4, 0xFB, 0x11, 0x93, 0xF5, 0x47, 0x14, 0x84, 0xA1, 0x7B, 0x17, 0x75, 0x55, 0xAD, 0x1C, 0x46, 0x6E, 0x01, 0x22, 0xF8, 0x02, 0x74, 0x28, 0x49, 0x36, 0xD1, 0x2F, 0x5A, 0xD7, 0x52); + ret_C7_count = 2; + } + else if(ret_C7_count == 2) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 43, 0x1A, 0x1A, 0x1A, 0x08, 0x52, 0x18, 0xA6, 0x0B, 0x52, 0x98, 0xD8, 0x0D, 0x22, 0xF0, 0xF8, 0x11, 0x03, 0xD1, 0x3C, 0x13, 0xB4, 0x71, 0x6A, 0x16, 0x75, 0x15, 0x99, 0x1A, 0xE6, 0x1D, 0xE6, 0x20, 0xB7, 0x76, 0x4B, 0x24, 0xE8, 0x6E, 0x96, 0x29, 0xD9, 0x92, 0xF2); + ret_C7_count = 3; + } + else if(ret_C7_count == 3) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 43, 0x1A, 0x1A, 0x1A, 0x08, 0xB2, 0x34, 0xAE, 0x0B, 0x62, 0xA4, 0xDB, 0x0D, 0x22, 0xF4, 0xF8, 0x11, 0x13, 0xD9, 0x3D, 0x13, 0xB4, 0x71, 0x69, 0x16, 0x65, 0x11, 0x99, 0x1A, 0xE6, 0x21, 0xE7, 0x20, 0xD7, 0x86, 0x4E, 0x29, 0xD9, 0x92, 0xF2, 0x29, 0xD9, 0x92, 0xF2); + ret_C7_count = 4; + } + else if(ret_C7_count == 4) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 43, 0x1A, 0x1A, 0x1A, 0x09, 0xF2, 0x94, 0xC9, 0x0B, 0xD2, 0xD8, 0xE8, 0x0D, 0x43, 0x14, 0xFE, 0x11, 0x13, 0xE5, 0x3E, 0x13, 0xA4, 0x79, 0x6B, 0x16, 0x65, 0x19, 0x98, 0x1A, 0xC6, 0x19, 0xE5, 0x20, 0xC7, 0x7E, 0x4C, 0x29, 0xD9, 0x92, 0xF2, 0x29, 0xD9, 0x92, 0xF2); + ret_C7_count = 0; + } + else + { + //printf("C7 err return_size[%d] ret_C7_count[%d]\n", return_size, ret_C7_count); + } + } + else + { + TAU_LOGD("C7 resp error [%d]!\n", return_size); + } + } + else if(dcs_cmd == 0xC6) + { + uint32_t return_size = hal_dsi_rx_ctrl_get_max_ret_size(g_rx_ctrl_handle); + if(return_size == 1) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_SHORT_RESPONSE_1B, + DSI_VC_0, + 1, 0x53); + } + else if(return_size == 10) + { + static uint8_t ret_C6_count = 0; + if(ret_C6_count == 0) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x1A, 0x1A, 0x1A, 0x0B, 0x32, 0xE4, 0xE1, 0x0C, 0x93, 0x1C); + ret_C6_count = 1; + } + else if(ret_C6_count == 1) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0xF6, 0x0D, 0x93, 0x4D, 0x08, 0x11, 0x03, 0xF9, 0x40, 0x13); + ret_C6_count = 2; + } + else if(ret_C6_count == 2) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0xA4, 0x85, 0x6B, 0x16, 0x55, 0x19, 0x98, 0x1A, 0xB6, 0x19); + ret_C6_count = 3; + } + else if(ret_C6_count == 3) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0xE4, 0x20, 0xA7, 0x72, 0x4A, 0x29, 0xD9, 0x92, 0xF2, 0x29); + ret_C6_count = 4; + } + else if(ret_C6_count == 4) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x1A, 0x1A, 0x1A, 0x0C, 0xA3, 0x38, 0xFB, 0x0D, 0xA3, 0x71); + ret_C6_count = 5; + } + else if(ret_C6_count == 5) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x0D, 0x0E, 0x53, 0x91, 0x1A, 0x11, 0x54, 0x19, 0x46, 0x13); + ret_C6_count = 6; + } + else if(ret_C6_count == 6) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0xC4, 0x99, 0x6F, 0x16, 0x55, 0x25, 0x9A, 0x1A, 0xB6, 0x19); + ret_C6_count = 7; + } + else if(ret_C6_count == 7) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0xE4, 0x20, 0x87, 0x72, 0x49, 0x29, 0xD9, 0x92, 0xF2, 0x29); + ret_C6_count = 8; + } + else if(ret_C6_count == 8) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x1A, 0x1A, 0x1A, 0x0E, 0x33, 0xA9, 0x02, 0x0E, 0xA3, 0xCD); + ret_C6_count = 9; + } + else if(ret_C6_count == 9) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x25, 0x0F, 0x33, 0xE1, 0x2D, 0x11, 0xC4, 0x4D, 0x54, 0x13); + ret_C6_count = 10; + } + else if(ret_C6_count == 10) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0xE4, 0xB9, 0x76, 0x16, 0x55, 0x39, 0x9D, 0x1A, 0x96, 0x1D); + ret_C6_count = 11; + } + else if(ret_C6_count == 11) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0xE4, 0x20, 0x77, 0x66, 0x47, 0x29, 0xD9, 0x92, 0xF2, 0x29); + ret_C6_count = 12; + } + else if(ret_C6_count == 12) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x1A, 0x1A, 0x1A, 0x09, 0x12, 0x48, 0xAF, 0x10, 0x34, 0x49); + ret_C6_count = 13; + } + else if(ret_C6_count == 13) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x40, 0x10, 0x94, 0x4D, 0x48, 0x12, 0x54, 0x99, 0x65, 0x13); + ret_C6_count = 14; + } + else if(ret_C6_count == 14) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0xF4, 0xE5, 0x7D, 0x16, 0x05, 0x45, 0x9E, 0x1A, 0x06, 0x0D); + ret_C6_count = 15; + } + else if(ret_C6_count == 15) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0xDE, 0x1F, 0x87, 0x36, 0x38, 0x29, 0xD9, 0x92, 0xF2, 0x29); + ret_C6_count = 0; + } + else + { + //printf("C6 err return_size[%d] ret_C6_count[%d]\n", return_size, ret_C6_count); + } + } + else if(return_size == 43) + { + static uint8_t ret_C6_count = 0; + if(ret_C6_count == 0) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 43, 0x1A, 0x1A, 0x1A, 0x0B, 0x32, 0xE4, 0xE1, 0x0C, 0x93, 0x1C, 0xF6, 0x0D, 0x93, 0x4D, 0x08, 0x11, 0x03, 0xF9, 0x40, 0x13, 0xA4, 0x85, 0x6B, 0x16, 0x55, 0x19, 0x98, 0x1A, 0xB6, 0x19, 0xE4, 0x20, 0xA7, 0x72, 0x4A, 0x29, 0xD9, 0x92, 0xF2, 0x29, 0xD9, 0x92, 0xF2); + ret_C6_count = 1; + } + else if(ret_C6_count == 1) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 43, 0x1A, 0x1A, 0x1A, 0x0C, 0xA3, 0x38, 0xFB, 0x0D, 0xA3, 0x71, 0x0D, 0x0E, 0x53, 0x91, 0x1A, 0x11, 0x54, 0x19, 0x46, 0x13, 0xC4, 0x99, 0x6F, 0x16, 0x55, 0x25, 0x9A, 0x1A, 0xB6, 0x19, 0xE4, 0x20, 0x87, 0x72, 0x49, 0x29, 0xD9, 0x92, 0xF2, 0x29, 0xD9, 0x92, 0xF2); + ret_C6_count = 2; + } + else if(ret_C6_count == 2) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 43, 0x1A, 0x1A, 0x1A, 0x0E, 0x33, 0xA9, 0x02, 0x0E, 0xA3, 0xCD, 0x25, 0x0F, 0x33, 0xE1, 0x2D, 0x11, 0xC4, 0x4D, 0x54, 0x13, 0xE4, 0xB9, 0x76, 0x16, 0x55, 0x39, 0x9D, 0x1A, 0x96, 0x1D, 0xE4, 0x20, 0x77, 0x66, 0x47, 0x29, 0xD9, 0x92, 0xF2, 0x29, 0xD9, 0x92, 0xF2); + ret_C6_count = 3; + } + else if(ret_C6_count == 3) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 43, 0x1A, 0x1A, 0x1A, 0x09, 0x12, 0x48, 0xAF, 0x10, 0x34, 0x49, 0x40, 0x10, 0x94, 0x4D, 0x48, 0x12, 0x54, 0x99, 0x65, 0x13, 0xF4, 0xE5, 0x7D, 0x16, 0x05, 0x45, 0x9E, 0x1A, 0x06, 0x0D, 0xDE, 0x1F, 0x87, 0x36, 0x38, 0x29, 0xD9, 0x92, 0xF2, 0x29, 0xD9, 0x92, 0xF2); + ret_C6_count = 0; + } + else + { + //printf("C6 err return_size[%d] ret_C6_count[%d]\n", return_size, ret_C6_count); + } + } + else if(return_size == 3) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 3, 0xD9, 0x92, 0xF2); + } + else + { + TAU_LOGD("C6 resp error [%d]!\n", return_size); + } + } + else if(dcs_cmd == 0xA1) + { + uint32_t return_size = hal_dsi_rx_ctrl_get_max_ret_size(g_rx_ctrl_handle); + if(return_size == 1) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_SHORT_RESPONSE_1B, + DSI_VC_0, + 1, 0x80); + } + else if(return_size == 10) + { + static uint8_t ret_A1_count = 0; + if(ret_A1_count == 0) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x0B, 0xEB, 0x0C, 0x86, 0x9B, 0x19, 0x11, 0x01, 0x11, 0x14); + ret_A1_count = 1; + } + else if(ret_A1_count == 1) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x40, 0x01, 0x01, 0xF5, 0x41, 0x34, 0x58, 0x55, 0x32, 0x53); + ret_A1_count = 2; + } + else if(ret_A1_count == 2) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x4A, 0x41, 0x46, 0x45, 0x35, 0x41, 0x52, 0x30, 0x31, 0x38); + ret_A1_count = 0; + } + else + { + //printf("A1 err return_size[%d] ret_A1_count[%d]\n", return_size, ret_A1_count); + } + } + else if(return_size == 20) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 20, 0x40, 0x01, 0x01, 0xF5, 0x41, 0x34, 0x58, 0x55, 0x32, 0x53, 0x4A, 0x41, 0x46, 0x45, 0x35, 0x41, 0x52, 0x30, 0x31, 0x38); + } + else if(return_size == 4) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 4, 0x0B, 0xEB, 0x0C, 0x86); + } + else if(return_size == 7) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 7, 0x9B, 0x19, 0x11, 0x01, 0x11, 0x14, 0x80); + } + else + { + TAU_LOGD("A1 resp error [%d]!\n", return_size); + } + } + else if(dcs_cmd == 0x7F) + { + uint32_t return_size = hal_dsi_rx_ctrl_get_max_ret_size(g_rx_ctrl_handle); + if(return_size == 3) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 3, 0xFF, 0x00, 0x00); + } + else if(return_size == 4) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 4, 0xC0, 0x64, 0x17, 0x88); + } + else if(return_size == 10) + { + static uint8_t ret_7F_count = 0; + if(ret_7F_count == 0) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x64, 0x17, 0x88); + ret_7F_count = 1; + } + else if(ret_7F_count == 1) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00); + ret_7F_count = 2; + } + else if(ret_7F_count == 2) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00); + ret_7F_count = 0; + } + else + { + //printf("7F err return_size[%d] ret_7F_count[%d]\n", return_size, ret_7F_count); + } + } + else + { + TAU_LOGD("7F resp error [%d]!\n", return_size); + } + } + else if(dcs_cmd == 0x9A) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 4, 0x2F, 0x3A, 0xCF, 0x50); + } + else if(dcs_cmd == 0x0E) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_SHORT_RESPONSE_1B, + DSI_VC_0, + 1, 0x80); + } + else if(dcs_cmd == 0x0F) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_SHORT_RESPONSE_1B, + DSI_VC_0, + 1, 0xC0); + } + else if(dcs_cmd == 0x87) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_SHORT_RESPONSE_1B, + DSI_VC_0, + 1, 0x00); + } + else if(dcs_cmd == 0xFE) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_SHORT_RESPONSE_1B, + DSI_VC_0, + 1, 0x10); + } + else if(dcs_cmd == 0x0A) + { + uint32_t return_size = hal_dsi_rx_ctrl_get_max_ret_size(g_rx_ctrl_handle); + if(return_size == 3) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 3, 0x9F, 0x9F, 0x9F); + } + else + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_SHORT_RESPONSE_1B, + DSI_VC_0, + 1, 0x9F); + } + } + else if(dcs_cmd == 0x05) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_SHORT_RESPONSE_1B, + DSI_VC_0, + 1, 0x00); + } + else if(dcs_cmd == 0x0F) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_SHORT_RESPONSE_1B, + DSI_VC_0, + 1, 0xC0); + } + else if(dcs_cmd == 0x04) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 3, 0xA1, 0x15, 0x05); + } + else if(dcs_cmd == 0xEA) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 5, 0x00, 0x00, 0x00, 0x00, 0x00); + } + else if(dcs_cmd == 0x5A) + { + uint32_t return_size = hal_dsi_rx_ctrl_get_max_ret_size(g_rx_ctrl_handle); + if(return_size == 41) + { + static uint8_t ret_5A_count = 0; + if(ret_5A_count == 0) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 41, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 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); + ret_5A_count = 1; + } + else if(ret_5A_count == 1) + { + hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, + DSI_ACK_DT_DSC_LONG_RESPONSE, + DSI_VC_0, + 41, 0x01, 0x00, 0x03, 0x00, 0x1C, 0x01, 0xFF, 0x00, 0x03, 0x01, 0xFF, 0x00, 0xEF, 0x00, 0xEE, 0x00, 0xF7, 0x00, 0xAA, 0x00, 0xA7, 0x00, 0xC8, 0x00, 0xAA, 0x00, 0xA7, 0x00, 0xC8, 0x00, 0xAA, 0x00, 0xA7, 0x00, 0xC8, 0x00, 0xAA, 0x00, 0xA7, 0x00, 0xC8); + ret_5A_count = 0; + } + else + { + TAU_LOGD("5A err return_size[%d] ret_5A_count[%d]\n", return_size, ret_5A_count); + } + } + else + { + TAU_LOGD("resp error [%d]!\n", return_size); + } + } + else if (dcs_cmd == 0x01) + { + ap_get_tp_calibration_status_01(g_rx_ctrl_handle,param); + } + else + { + TAU_LOGD("r %x ng need return [%d]\n", dcs_cmd, hal_dsi_rx_ctrl_get_max_ret_size(g_rx_ctrl_handle)); + } + return true; +} +/* 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); +// 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; + /* 注意部分基板更新PPS前不发 Compression Mode Command的情况 */ + g_rx_ctrl_handle->compress_en = hal_dsi_rx_ctrl_get_compressen_en(g_rx_ctrl_handle); + 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); +// TAU_LOGD("resolution update w[%d] h[%d] compress[%d]\n", pic_width, pic_height, g_rx_ctrl_handle->compress_en); + } + TAU_LOGD("PPS Update\n"); +// hal_dsi_rx_ctrl_set_hw_tear_mode(g_rx_ctrl_handle); + 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) +{ +// hal_dsi_tx_ctrl_write_cmd(0x05, 0, 2, 0x28); + +// hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_LOW); + hal_dsi_rx_ctrl_set_sw_tear_mode(g_rx_ctrl_handle); + hal_dsi_tx_ctrl_write_cmd(0x29, 0, 3, 0x51, 0x00, 0x00); + delayMs(10); + hal_dsi_tx_ctrl_write_cmd(0x05, 0, 2, 0x28); + // delayMs(50); + hal_gpio_set_output_data(IO_PAD_ADCIN, IO_LVL_LOW); + + hal_dsi_tx_ctrl_write_cmd(0x05, 0, 2, 0x10); + delayMs(50); + hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_LOW); +#if ENABLE_TP_WAKE_UP + g_need_enter_sleep_mode = true; +#endif + TAU_LOGD("disp off \n"); + return true; +} + +static bool ap_set_enter_sleep_mode(hal_dsi_rx_ctrl_handle_t* handler, hal_dcs_packet_t* dcs_packet) +{ +/* hal_dsi_rx_ctrl_set_sw_tear_mode(g_rx_ctrl_handle); + hal_dsi_tx_ctrl_write_cmd(0x29, 0, 3, 0x51, 0x00, 0x00); + delayMs(10); + hal_dsi_tx_ctrl_write_cmd(0x05, 0, 2, 0x28); + // delayMs(50); + hal_gpio_set_output_data(IO_PAD_ADCIN, IO_LVL_LOW); + + hal_dsi_tx_ctrl_write_cmd(0x05, 0, 2, 0x10); + delayMs(50); + hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_LOW); +#if ENABLE_TP_WAKE_UP + g_need_enter_sleep_mode = true; +#endif +*/ + TAU_LOGD("enter sleep mode"); + return true; +} + +static bool ap_set_exit_sleep_mode(hal_dsi_rx_ctrl_handle_t* handler, hal_dcs_packet_t* dcs_packet) +{ + TAU_LOGD("enter exit sleep mode\n"); + /* AVDD 上电, 用于解决息屏开屏PPS不更新问题 */ +// hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_HIGH); +// hal_gpio_set_output_data(IO_PAD_ADCIN, IO_LVL_HIGH); + return true; +} + +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); + TAU_LOGD("hw te\n"); + } + else + { + //soft_te_timer_init(); + hal_dsi_rx_ctrl_set_sw_tear_mode(g_rx_ctrl_handle); + hal_dsi_rx_ctrl_gen_a_tear_signal(g_rx_ctrl_handle); + TAU_LOGD("sw gen te\n"); + } + return true; +} +static bool ap_update_frame_rate(hal_dsi_rx_ctrl_handle_t* handler, hal_dcs_packet_t* dcs_packet) +{ + static uint8_t frame_rate = 100; + +// TAU_LOGD("frame_rate:%x, %x, len=%d", dcs_packet->packet_param[0], dcs_packet->packet_param[1], dcs_packet->param_length); + + +// if (resolution_change_flag ) +// { +// resolution_change_flag = 0; +// } +// else + { +// if (dcs_packet->packet_param[0] == 0x08) + { + //0x08是动态适应 120hz,0x00是固定频率60hz + if(frame_rate != dcs_packet->packet_param[0]) + { + frame_rate = dcs_packet->packet_param[0]; + if(frame_rate == 0x00) + { + hal_dsi_rx_ctrl_set_tear_mode_ex(g_rx_ctrl_handle, INPUT_HEIGHT, TE_HW_MODE); +// hal_dsi_rx_ctrl_toggle_input_frame_rate(g_rx_ctrl_handle, DSI_FRAME_RATE_60HZ); +// TAU_LOGD("60"); + } + else if(frame_rate == 0x20) + { + //120Hz + hal_dsi_rx_ctrl_set_tear_mode_ex(g_rx_ctrl_handle, INPUT_HEIGHT, TE_SOFT_120HZ_MODE); +// TAU_LOGD("120"); +// hal_dsi_rx_ctrl_toggle_input_frame_rate(g_rx_ctrl_handle, DSI_FRAME_RATE_120HZ); + } +// TAU_LOGD("frame_rate:%x",frame_rate); + } + } + } + return true; +} + +static bool ap_set_backlight_51(hal_dsi_rx_ctrl_handle_t* handler, hal_dcs_packet_t* dcs_packet) +{ + uint8_t cmd_data[2]; + + cmd_data[0] = dcs_packet->packet_param[0]; + cmd_data[1] = dcs_packet->packet_param[1]; + if(cmd_data[0] == 0x00 && cmd_data[1] == 0x08) return true; + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x51, cmd_data[0], cmd_data[1]); +// TAU_LOGD("51:[%x]", (cmd_data[0] << 8) | cmd_data[1]); + return true; +} + +static bool ap_get_reg_df(hal_dsi_rx_ctrl_handle_t* handler, hal_dcs_packet_t* dcs_packet) +{ + uint8_t panel_ccm_en = dcs_packet->packet_param[0x00]; + uint16_t panel_r = 255; + uint16_t panel_g = 255; + uint16_t panel_b = 255; + + if(panel_ccm_en == 0x00) //护眼开 /* CCM adjust for screen in eye-shield mode */ + { + //TAU_LOGD("00"); + panel_g = dcs_packet->packet_param[0x33]; + panel_b = dcs_packet->packet_param[0x35]; + } + else if(panel_ccm_en == 0x01) //鲜明 /* CCM adjust for screen in self-adaption mode */ + { + //TAU_LOGD("01"); + + panel_r = dcs_packet->packet_param[0x31]; + panel_g = dcs_packet->packet_param[0x33]; + panel_b = dcs_packet->packet_param[0x35]; + } + else if(panel_ccm_en == 0x11) ////自然 + { + //TAU_LOGD("11"); + + panel_g = dcs_packet->packet_param[0x33]; + panel_b = dcs_packet->packet_param[0x35]; + } + + /* CCM control red, green, blue */ + ccm_coef_t coef ; + coef.coef_c00 = panel_r; + coef.coef_c01 = 0; + coef.coef_c02 = 0; + coef.coef_c10 = 0; + coef.coef_c11 = panel_g; + coef.coef_c12 = 0; + coef.coef_c20 = 0; + coef.coef_c21 = 0; + coef.coef_c22 = panel_b; + hal_dsi_tx_ctrl_set_ccm(coef); + return true; +} +static bool ap_MIPI_RX_CMD_bb(hal_dsi_rx_ctrl_handle_t* handler, hal_dcs_packet_t* dcs_packet) +{ +// for(int i = 0; i < dcs_packet->param_length; i++) +// { +// TAU_LOGD("BB_[%d] [%x] \n", i, dcs_packet->packet_param[i]) ; +// } + if(dcs_packet->packet_param[0] == 0x28) + { + hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x51, 0x02, 0x80); + } + 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}, +// {0xB1, ap_set_backlight, false}, + {0x51, ap_set_backlight_51, false}, //leo S21U是用51调光的 + {0xDF, ap_get_reg_df, false}, //蓝光 + {0xBB, ap_MIPI_RX_CMD_bb, false},//息屏时钟亮度 + // TP calibration + {0x04, ap_set_tp_calibration_04, true}, + {DCS_ENTER_SLEEP_MODE, ap_set_enter_sleep_mode, true}, + {DCS_EXIT_SLEEP_MODE, ap_set_exit_sleep_mode, true}, + {0x60, ap_update_frame_rate, true}, + {0, NULL, false} //{0,NULL,false} 数组最后一个固定成员,作为table结尾的判断标准 +}; + +static void tx_panel_reset(void) +{ + 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(20); +} + + +static void send_panel_init_code(uint32_t size, uint8_t* data) +{ + uint32_t data_offeset = 0; + uint8_t data_type; + uint8_t vc; + uint8_t data_size; + uint8_t* p_data; + + while(data_offeset < size) + { + data_type = data[data_offeset]; + vc = data[data_offeset + 1]; + data_size = data[data_offeset + 2]; + p_data = &data[data_offeset + 3]; + hal_dsi_tx_ctrl_write_array_cmd(data_type, vc, data_size, p_data); + data_offeset = data_offeset + data_size + 3; + delayUs(50); + } +} + +#define USE_PARAS_OLED_VIDEO +//#define USE_PARAS_OLED_HD_1101 + +#if 1 +const uint8_t panel_init_code[] = { + +#if 1 //S21P ICNA3511 + 0x29, 0, 3, 0x9C, 0xA5, 0xA5, + 0x29, 0, 3, 0xFD, 0x5A, 0x5A, + 0x29, 0, 2, 0x9F, 0x0F, + 0x29, 0, 2, 0xB3, 0x00, + 0x29, 0, 2, 0x9F, 0x01, + 0x29, 0, 2, 0xD0, 0x01, +// 0x39,0,2,0xD3,0x01, + 0x29, 0, 4, 0xB2, 0x5A, 0x04, 0xAF, + 0x29, 0, 36, 0xB3, 0x00, 0xD0, 0xA0, 0x10, 0xBC, 0x00, 0x00, 0xDD, 0x00, 0x10, 0x10, 0x00, 0x00, 0xB3, 0x00, 0x10, 0x10, 0x00, 0x00, 0xB3, 0x00, 0x10, 0x10, 0x22, 0x00, 0xEF, 0x00, 0x10, 0x10, 0x33, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x29, 0, 17, 0xCA, 0x03, 0x01, 0x03, 0x03, 0x04, 0xE5, 0x06, 0x06, 0x04, 0xE5, 0x06, 0x06, 0x04, 0xE5, 0x06, 0x06, + 0x29, 0, 15, 0xCB, 0x03, 0x03, 0x05, 0x85, 0x07, 0x07, 0x05, 0x85, 0x07, 0x07, 0x05, 0x85, 0x07, 0x07, + 0x29, 0, 4, 0xD7, 0x00, 0x00, 0x02, + 0x29, 0, 2, 0x9F, 0x02, + 0x29, 0, 26, 0xB2, 0x00, 0xC0, 0x31, 0x10, 0x11, 0x12, 0x12, 0x10, 0x18, 0x78, 0x90, 0x50, 0x11, 0x11, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x11, 0x17, + 0x29, 0, 10, 0xB3, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x29, 0, 13, 0xB4, 0x00, 0x8A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x29, 0, 7, 0xB5, 0x00, 0x30, 0x30, 0x30, 0x30, 0x2B, + 0x29, 0, 20, 0xB6, 0x01, 0x01, 0x00, 0x11, 0x11, 0x11, 0x1C, 0x1F, 0x1F, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, + 0x29, 0, 11, 0xB7, 0x00, 0x10, 0x0F, 0x10, 0x10, 0x15, 0x00, 0x00, 0x00, 0x00, + 0x29, 0, 14, 0xB8, 0x00, 0x00, 0x00, 0x43, 0x28, 0x43, 0x28, 0x43, 0x28, 0x43, 0x28, 0x43, 0x28, + 0x29, 0, 13, 0xB9, 0x00, 0x00, 0x50, 0x00, 0x00, 0x0A, 0x0F, 0x00, 0x00, 0x00, 0x19, 0x0A, + 0x29, 0, 9, 0xBA, 0x00, 0xFF, 0x44, 0x04, 0x44, 0x04, 0x44, 0x04, + 0x29, 0, 26, 0xBB, 0x01, 0x4A, 0x64, 0x16, 0x17, 0x01, 0x4A, 0x64, 0x16, 0x17, 0x01, 0x4A, 0x64, 0x16, 0x14, 0x01, 0x4A, 0x64, 0x16, 0x14, 0x01, 0x31, 0x64, 0x16, 0x0F, + 0x29, 0, 17, 0xC1, 0x00, 0x00, 0x00, 0x23, 0x23, 0x24, 0x24, 0x05, 0x05, 0x21, 0x21, 0x22, 0x22, 0x01, 0x01, 0x00, + 0x29, 0, 17, 0xC2, 0x00, 0x00, 0x00, 0x23, 0x23, 0x24, 0x24, 0x05, 0x05, 0x21, 0x21, 0x22, 0x22, 0x01, 0x01, 0x00, + 0x29, 0, 8, 0xC3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x29, 0, 15, 0xC4, 0x00, 0x05, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x00, 0x00, 0x06, + 0x29, 0, 26, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x03, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x55, 0x00, 0x01, + 0x29, 0, 14, 0xC7, 0x00, 0x2E, 0x2E, 0x2E, 0x2E, 0x00, 0x2E, 0x2E, 0x2E, 0x2E, 0x00, 0x30, 0x30, + 0x29, 0, 14, 0xC8, 0x00, 0x2E, 0x2E, 0x2E, 0x2E, 0x00, 0x2E, 0x2E, 0x2E, 0x2E, 0x00, 0x30, 0x30, + 0x29, 0, 27, 0xCC, 0x00, 0x57, 0xBA, 0x57, 0xBA, 0x00, 0x57, 0xBA, 0x57, 0xBA, 0x00, 0x57, 0xBC, 0x00, 0x30, 0x6C, 0x30, 0x6C, 0x00, 0x30, 0x6C, 0x30, 0x6C, 0x00, 0x30, 0x6C, + 0x29, 0, 17, 0xD2, 0x00, 0x00, 0x09, 0x09, 0x00, 0x09, 0x09, 0x00, 0x09, 0x09, 0x00, 0x09, 0x09, 0x00, 0x09, 0x09, + 0x29, 0, 12, 0xD7, 0x44, 0x01, 0x3F, 0x26, 0x37, 0x26, 0x37, 0x01, 0x11, 0x00, 0x00, + 0x29, 0, 26, 0xD8, 0x00, 0x00, 0xC3, 0x9F, 0x40, 0x00, 0x00, 0xC3, 0x9F, 0x40, 0x00, 0x00, 0xC3, 0x9F, 0x40, 0x00, 0x00, 0xC3, 0x9F, 0x40, 0x00, 0x00, 0xC3, 0x00, 0x00, + 0x29, 0, 12, 0xD9, 0x10, 0x00, 0x33, 0x00, 0x33, 0x00, 0x33, 0x00, 0x33, 0x00, 0x30, + 0x29, 0, 6, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x29, 0, 26, 0xE2, 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, + 0x29, 0, 13, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x29, 0, 6, 0xEF, 0x00, 0x80, 0x85, 0x81, 0x82, + 0x29, 0, 9, 0xBE, 0x5F, 0x16, 0x04, 0x5F, 0x75, 0x00, 0x00, 0x00, + 0x29, 0, 2, 0xBF, 0x08, + 0x29, 0, 2, 0x9F, 0x04, + 0x29, 0, 3, 0xB2, 0x01, 0x00, + 0x29, 0, 19, 0xB3, 0x00, 0x00, 0x10, 0x00, 0x30, 0x50, 0x00, 0x70, 0x90, 0x00, 0xB0, 0xF0, 0x11, 0x30, 0x70, 0x12, 0xF0, 0x70, + 0x29, 0, 21, 0xB4, 0x23, 0xF0, 0x70, 0x34, 0xF0, 0xF0, 0x56, 0xF0, 0xF0, 0x78, 0xF0, 0xF0, 0xCE, 0xF0, 0xF0, 0xFF, 0x70, 0xF0, 0x0F, 0xFF, + 0x29, 0, 14, 0xB5, 0x11, 0x10, 0x27, 0x1C, 0xD0, 0x00, 0x64, 0x64, 0x10, 0x3F, 0xFF, 0xFF, 0xFF, + 0x29, 0, 7, 0xB6, 0x11, 0x00, 0x00, 0x0F, 0xF0, 0x10, + 0x29, 0, 3, 0xB9, 0x91, 0x83, + // 0x29, 0, 3, 0xBA, 0x10, 0x00, + 0x29, 0, 5, 0xC4, 0x01, 0x10, 0x00, 0x00, + 0x29, 0, 20, 0xC5, 0x00, 0x20, 0x88, 0xC1, 0xCF, 0x50, 0x4F, 0x00, 0x4E, 0x57, 0x35, 0x22, 0x22, 0x2A, 0x05, 0x3F, 0x00, 0x20, 0x0F, + 0x29, 0, 13, 0xC6, 0x4B, 0x00, 0x90, 0x00, 0x02, 0xD5, 0x00, 0x02, 0xCB, 0x01, 0x10, 0x43, + 0x29, 0, 5, 0xC8, 0x29, 0x29, 0x28, 0x28, + 0x29, 0, 21, 0xC9, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x29, 0x29, 0x29, 0x29, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, + 0x29, 0, 21, 0xCA, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x29, 0x29, 0x29, 0x29, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, + 0x29, 0, 21, 0xCB, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x29, 0x29, 0x29, 0x29, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, + 0x29, 0, 21, 0xCC, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x29, 0x29, 0x29, 0x29, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, + 0x29, 0, 21, 0xCD, 0x21, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, + 0x29, 0, 21, 0xCE, 0x21, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, + 0x29, 0, 21, 0xCF, 0x21, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, + 0x29, 0, 21, 0xD0, 0x21, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, + 0x29, 0, 21, 0xD1, 0x21, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, + 0x29, 0, 21, 0xD2, 0x21, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, + 0x29, 0, 21, 0xD3, 0x21, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, + 0x29, 0, 21, 0xD4, 0x21, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, + 0x29, 0, 2, 0x9F, 0x05, + 0x29, 0, 7, 0xB2, 0x24, 0x20, 0x05, 0x0F, 0xFF, 0xFF, + 0x29, 0, 9, 0xB3, 0xA0, 0x00, 0x28, 0x00, 0x00, 0x00, 0x3F, 0xFF, + 0x29, 0, 11, 0xB4, 0x00, 0x60, 0x0E, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x29, 0, 16, 0xB5, 0x33, 0xFE, 0x6E, 0x22, 0xEC, 0x68, 0x11, 0xE4, 0x64, 0x10, 0x62, 0xEC, 0x00, 0x76, 0x02, + 0x29, 0, 7, 0xB6, 0x31, 0xFE, 0xD8, 0x00, 0x58, 0x00, + 0x29, 0, 16, 0xB9, 0x71, 0x20, 0x05, 0x78, 0x70, 0x5A, 0x3C, 0x78, 0x70, 0x5A, 0x3C, 0x78, 0x70, 0x5A, 0x3C, + 0x29, 0, 2, 0x9F, 0x07, + 0x29, 0, 8, 0xB2, 0x08, 0x08, 0x08, 0x08, 0x04, 0x02, 0xA8, + 0x29, 0, 8, 0xB3, 0x04, 0x04, 0x04, 0x04, 0x04, 0x03, 0x8C, + 0x29, 0, 8, 0xB4, 0x04, 0x04, 0x04, 0x04, 0x04, 0x02, 0xA8, + 0x29, 0, 8, 0xB5, 0x04, 0x04, 0x04, 0x04, 0x04, 0x02, 0xA8, + 0x29, 0, 8, 0xB6, 0x04, 0x04, 0x04, 0x04, 0x04, 0x02, 0xA8, + 0x29, 0, 8, 0xB7, 0x08, 0x08, 0x08, 0x08, 0x02, 0x0B, 0xB8, + 0x29, 0, 8, 0xB8, 0x02, 0x04, 0x04, 0x04, 0x01, 0x0A, 0xBE, + 0x29, 0, 17, 0xB9, 0x01, 0x05, 0x03, 0x07, 0x02, 0x06, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x29, 0, 17, 0xBA, 0x01, 0x03, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x29, 0, 17, 0xBB, 0x01, 0x03, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x29, 0, 17, 0xBC, 0x01, 0x03, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x29, 0, 17, 0xBD, 0x01, 0x03, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x29, 0, 17, 0xBE, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x29, 0, 17, 0xBF, 0x01, 0x02, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x29, 0, 16, 0xC0, 0x22, 0xA8, 0xA8, 0x22, 0xA8, 0xA8, 0x21, 0x58, 0x90, 0x00, 0xC8, 0x44, 0x00, 0x20, 0x20, + 0x29, 0, 16, 0xC1, 0x33, 0x8C, 0x8C, 0x33, 0x8C, 0x8C, 0x32, 0x20, 0x18, 0x10, 0x0C, 0x58, 0x00, 0x2C, 0x2C, + 0x29, 0, 16, 0xC2, 0x22, 0xA8, 0xA8, 0x22, 0xA8, 0xA8, 0x21, 0x58, 0x90, 0x00, 0xC8, 0x44, 0x00, 0x20, 0x20, + 0x29, 0, 16, 0xC3, 0x22, 0xA8, 0xA8, 0x22, 0xA8, 0xA8, 0x21, 0x58, 0x90, 0x00, 0xC8, 0x44, 0x00, 0x20, 0x20, + 0x29, 0, 7, 0xC4, 0x22, 0xA8, 0xA8, 0x22, 0xA8, 0xA8, + 0x29, 0, 7, 0xC5, 0x97, 0xC4, 0xD0, 0x76, 0x08, 0x40, + 0x29, 0, 4, 0xC6, 0x97, 0x2E, 0x9E, + 0x29, 0, 3, 0xC7, 0x02, 0x00, + 0x29, 0, 8, 0xC8, 0x10, 0x20, 0x20, 0x20, 0x02, 0x00, 0x7E, + 0x29, 0, 8, 0xC9, 0x0F, 0x20, 0x20, 0x20, 0x02, 0x00, 0x7E, + 0x29, 0, 8, 0xCA, 0x0E, 0x20, 0x20, 0x20, 0x02, 0x00, 0x7E, + 0x29, 0, 8, 0xCB, 0x0D, 0x20, 0x20, 0x20, 0x02, 0x00, 0x7E, + 0x29, 0, 17, 0xCC, 0x01, 0x09, 0x03, 0x0B, 0x05, 0x0D, 0x07, 0x0F, 0x02, 0x0A, 0x04, 0x0C, 0x06, 0x0E, 0x08, 0x10, + 0x29, 0, 17, 0xCD, 0x01, 0x07, 0x03, 0x09, 0x05, 0x0B, 0x0D, 0x0F, 0x02, 0x08, 0x04, 0x0A, 0x06, 0x0C, 0x0E, 0x00, + 0x29, 0, 17, 0xCE, 0x01, 0x07, 0x03, 0x09, 0x05, 0x0B, 0x0D, 0x02, 0x08, 0x04, 0x0A, 0x06, 0x0C, 0x0E, 0x00, 0x00, + 0x29, 0, 17, 0xCF, 0x01, 0x07, 0x03, 0x09, 0x05, 0x0B, 0x0D, 0x02, 0x08, 0x04, 0x0A, 0x06, 0x0C, 0x00, 0x00, 0x00, + 0x29, 0, 16, 0xD0, 0x00, 0x7E, 0x72, 0x00, 0x64, 0x58, 0x00, 0x4C, 0x40, 0x00, 0x32, 0x26, 0x00, 0x1A, 0x16, + 0x29, 0, 16, 0xD1, 0x00, 0x7E, 0x72, 0x00, 0x64, 0x58, 0x00, 0x4C, 0x40, 0x00, 0x32, 0x26, 0x00, 0x1A, 0x16, + 0x29, 0, 16, 0xD2, 0x00, 0x7E, 0x72, 0x00, 0x64, 0x58, 0x00, 0x4C, 0x40, 0x00, 0x32, 0x26, 0x00, 0x1A, 0x16, + 0x29, 0, 16, 0xD3, 0x00, 0x7E, 0x72, 0x00, 0x64, 0x58, 0x00, 0x4C, 0x40, 0x00, 0x32, 0x26, 0x00, 0x1A, 0x16, + 0x29, 0, 2, 0x9F, 0x0F, + 0x29, 0, 2, 0xF8, 0x11, + 0x29, 0, 2, 0x9F, 0x00, + 0x29, 0, 2, 0x48, 0x00, + 0x29, 0, 3, 0x51, 0x00, 0x00, + 0x29, 0, 2, 0x53, 0xE0, + 0x29, 0, 2, 0x35, 0x00, + 0x29, 0, 1, 0x11, + + 0x29, 0, 2, 0x9F, 0x05, + 0x29, 0, 2, 0xF9, 0x80, + 0x29, 0, 2, 0xF7, 0x10, + 0x29, 0, 2, 0x9F, 0x06, + 0x29, 0, 41, 0xB2, 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, + 0x29, 0, 41, 0xB3, 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, + 0x29, 0, 21, 0xB4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x29, 0, 41, 0xB5, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, + 0x29, 0, 41, 0xB6, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, + 0x29, 0, 21, 0xB7, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, +#if 1 +/////////////GAMMA1/////////////// + 0x39, 0, 5, 0xFE, 0x01, 0x00, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x39, 0xC7, 0x11, 0x48, 0xB0, 0x22, 0x0B, 0x96, 0x33, 0x12, 0x79, 0x44, 0x1D, 0xA3, 0x55, 0x21, 0x8D, + 0x39, 0, 18, 0xF2, 0x56, 0xF4, 0xA3, 0x77, 0x3C, 0xC9, 0x88, 0x50, 0xD6, 0xAB, 0xCE, 0xCB, 0xCC, 0x14, 0x51, 0xC0, 0x51, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x0B, 0x5B, 0x01, 0xB9, 0x05, 0x11, 0x58, 0xD7, 0x22, 0x46, 0xAA, 0x33, 0x44, 0xBE, 0x44, 0x29, 0x8C, + 0x39, 0, 18, 0xF4, 0x45, 0xE8, 0x8C, 0x66, 0x1E, 0x98, 0x77, 0x11, 0x83, 0x99, 0x2E, 0xFE, 0xAA, 0x37, 0x68, 0xA0, 0x68, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0xE1, 0x11, 0x4D, 0xC3, 0x22, 0x36, 0x94, 0x23, 0xEC, 0x78, 0x34, 0xEE, 0x59, 0x55, 0x0A, 0x97, 0x66, 0x18, 0x87, + 0x39, 0, 18, 0xF6, 0x67, 0xEF, 0xA5, 0x88, 0x47, 0xD9, 0x99, 0x71, 0xFB, 0xCD, 0x17, 0x2D, 0xDD, 0x79, 0xBC, 0xD0, 0xBC, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x01, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x2B, 0x00, 0x7D, 0xDC, 0x11, 0x44, 0xA1, 0x12, 0xF5, 0x82, 0x23, 0xF0, 0x4A, 0x34, 0xEA, 0x72, 0x45, 0xE3, 0x4C, + 0x39, 0, 18, 0xF2, 0x56, 0xAB, 0x58, 0x67, 0xED, 0x73, 0x78, 0xEF, 0x65, 0xAB, 0x2C, 0x0E, 0xBB, 0x43, 0x7B, 0xB0, 0x7B, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x37, 0x00, 0x62, 0x8D, 0x01, 0xCA, 0x0A, 0x11, 0x4D, 0xC6, 0x22, 0x29, 0x7C, 0x33, 0x13, 0x8E, 0x34, 0xEF, 0x4F, + 0x39, 0, 18, 0xF4, 0x45, 0xA6, 0x43, 0x56, 0xC9, 0x46, 0x67, 0xB5, 0x1E, 0x89, 0xA0, 0x56, 0x99, 0x83, 0xB7, 0x90, 0xB7, + 0x39, 0, 22, 0xF5, 0x01, 0x00, 0x2C, 0x11, 0x77, 0xCF, 0x22, 0x2F, 0x86, 0x23, 0xD5, 0x60, 0x34, 0xCC, 0x29, 0x45, 0xD4, 0x63, 0x56, 0xDC, 0x46, + 0x39, 0, 18, 0xF6, 0x67, 0xA8, 0x58, 0x78, 0xF4, 0x7F, 0x99, 0x05, 0x82, 0xBC, 0x6C, 0x60, 0xCC, 0x99, 0xD1, 0xC0, 0xD1, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x02, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x09, 0x00, 0x5A, 0x9A, 0x01, 0xE3, 0x2F, 0x11, 0x78, 0xEF, 0x22, 0x5A, 0xB1, 0x33, 0x46, 0xBD, 0x44, 0x23, 0x7E, + 0x39, 0, 18, 0xF2, 0x45, 0xD6, 0x6E, 0x56, 0xF3, 0x68, 0x67, 0xD9, 0x3D, 0x89, 0x9F, 0x44, 0x99, 0x6D, 0x95, 0x90, 0x95, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x26, 0x00, 0x52, 0x6E, 0x00, 0x91, 0xBE, 0x01, 0xED, 0x46, 0x11, 0xA0, 0xF0, 0x22, 0x79, 0xE6, 0x33, 0x45, 0x98, + 0x39, 0, 18, 0xF4, 0x34, 0xE5, 0x6E, 0x45, 0xE5, 0x51, 0x56, 0xB5, 0x14, 0x77, 0x4D, 0xDE, 0x78, 0xFE, 0x26, 0x80, 0x26, + 0x39, 0, 22, 0xF5, 0x01, 0x00, 0x25, 0x11, 0x57, 0x92, 0x12, 0xD5, 0x1B, 0x22, 0x5E, 0xD0, 0x33, 0x38, 0x8F, 0x44, 0x23, 0xA2, 0x55, 0x10, 0x70, + 0x39, 0, 18, 0xF6, 0x56, 0xCC, 0x6A, 0x67, 0xF0, 0x6A, 0x78, 0xDF, 0x46, 0x9A, 0xC0, 0x74, 0xAA, 0x9F, 0xCD, 0xA0, 0xCD, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x03, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x36, 0x5C, 0x00, 0x7D, 0xA2, 0x01, 0xCD, 0x23, 0x11, 0x75, 0xC1, 0x22, 0x3E, 0xAA, 0x33, 0x06, 0x53, + 0x39, 0, 18, 0xF2, 0x34, 0x96, 0x0F, 0x44, 0x79, 0xE5, 0x55, 0x3D, 0x90, 0x67, 0xA4, 0x1A, 0x77, 0x37, 0x51, 0x70, 0x51, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x3F, 0x55, 0x00, 0x60, 0x6F, 0x00, 0x84, 0xB5, 0x01, 0xEB, 0x23, 0x11, 0x8A, 0xE8, 0x22, 0x3C, 0x84, + 0x39, 0, 18, 0xF4, 0x23, 0xC2, 0x35, 0x33, 0x95, 0xF1, 0x44, 0x41, 0x8C, 0x55, 0x87, 0xF4, 0x66, 0x0F, 0x25, 0x60, 0x25, + 0x39, 0, 22, 0xF5, 0x01, 0x00, 0x01, 0x11, 0x37, 0x59, 0x11, 0x75, 0x99, 0x12, 0xC0, 0x10, 0x22, 0x5F, 0xA6, 0x33, 0x1D, 0x88, 0x34, 0xE2, 0x33, + 0x39, 0, 18, 0xF6, 0x44, 0x7A, 0xFD, 0x55, 0x6C, 0xDD, 0x66, 0x38, 0x8C, 0x78, 0xA8, 0x24, 0x88, 0x41, 0x5D, 0x80, 0x5D, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x04, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x03, 0x2D, 0x00, 0x59, 0x86, 0x01, 0xB9, 0x1B, 0x11, 0x71, 0xBF, 0x22, 0x45, 0xB3, 0x33, 0x14, 0x63, + 0x39, 0, 18, 0xF2, 0x34, 0xAE, 0x2B, 0x45, 0x9A, 0x01, 0x55, 0x5B, 0xAF, 0x67, 0xC9, 0x44, 0x77, 0x61, 0x7F, 0x70, 0x7F, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x2E, 0x42, 0x00, 0x52, 0x61, 0x00, 0x76, 0xAB, 0x01, 0xE3, 0x1F, 0x11, 0x89, 0xEE, 0x22, 0x44, 0x8E, + 0x39, 0, 18, 0xF4, 0x23, 0xD4, 0x4A, 0x34, 0xAE, 0x08, 0x44, 0x5C, 0xA7, 0x56, 0xA9, 0x1A, 0x66, 0x33, 0x4E, 0x60, 0x4E, + 0x39, 0, 22, 0xF5, 0x01, 0x00, 0x07, 0x11, 0x34, 0x53, 0x11, 0x74, 0x9A, 0x12, 0xC2, 0x16, 0x22, 0x65, 0xAC, 0x33, 0x2F, 0x9C, 0x34, 0xFA, 0x4B, + 0x39, 0, 18, 0xF6, 0x45, 0x99, 0x1E, 0x55, 0x91, 0xFE, 0x66, 0x59, 0xAE, 0x78, 0xD2, 0x51, 0x88, 0x70, 0x8F, 0x80, 0x8F, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x05, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x27, 0x00, 0x4F, 0x7B, 0x01, 0xA4, 0x02, 0x11, 0x57, 0xA5, 0x22, 0x2D, 0xA4, 0x23, 0xFF, 0x55, + 0x39, 0, 18, 0xF2, 0x34, 0x9F, 0x1D, 0x44, 0x8E, 0xF1, 0x55, 0x4B, 0x9A, 0x67, 0xB5, 0x32, 0x77, 0x4A, 0x67, 0x70, 0x67, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x3A, 0x4E, 0x00, 0x5F, 0x6D, 0x00, 0x80, 0xA9, 0x01, 0xDD, 0x10, 0x11, 0x76, 0xDD, 0x22, 0x2F, 0x7E, + 0x39, 0, 18, 0xF4, 0x23, 0xC6, 0x3E, 0x33, 0xA4, 0xFB, 0x44, 0x4D, 0x94, 0x56, 0x96, 0x07, 0x66, 0x20, 0x3A, 0x60, 0x3A, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0xD6, 0x11, 0x56, 0x70, 0x11, 0x91, 0xB0, 0x12, 0xD2, 0x21, 0x22, 0x6E, 0xB4, 0x33, 0x2F, 0x9C, 0x34, 0xF0, 0x44, + 0x39, 0, 18, 0xF6, 0x45, 0x92, 0x15, 0x55, 0x89, 0xF1, 0x66, 0x4C, 0x9C, 0x78, 0xBE, 0x3F, 0x88, 0x59, 0x79, 0x80, 0x79, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x06, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x22, 0x00, 0x41, 0x63, 0x00, 0x87, 0xD7, 0x11, 0x24, 0x76, 0x22, 0x10, 0x90, 0x23, 0xF2, 0x4E, + 0x39, 0, 18, 0xF2, 0x34, 0x96, 0x1B, 0x44, 0x90, 0xEE, 0x55, 0x4E, 0x9A, 0x67, 0xB9, 0x31, 0x77, 0x4B, 0x5C, 0x70, 0x5C, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x5D, 0x78, 0x00, 0x85, 0x92, 0x00, 0xA2, 0xC0, 0x01, 0xE1, 0x0C, 0x11, 0x68, 0xD1, 0x22, 0x26, 0x7A, + 0x39, 0, 18, 0xF4, 0x23, 0xBD, 0x39, 0x33, 0xA5, 0xF7, 0x44, 0x4E, 0x96, 0x56, 0x99, 0x08, 0x66, 0x20, 0x2E, 0x60, 0x2E, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0xAC, 0x11, 0xA0, 0xBE, 0x11, 0xD8, 0xF4, 0x22, 0x10, 0x51, 0x22, 0x90, 0xD0, 0x33, 0x43, 0xAC, 0x34, 0xFF, 0x52, + 0x39, 0, 18, 0xF6, 0x45, 0x98, 0x1F, 0x55, 0x94, 0xF6, 0x66, 0x54, 0xA0, 0x78, 0xC4, 0x40, 0x88, 0x5B, 0x6B, 0x80, 0x6B, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x07, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x39, 0x00, 0x63, 0x7E, 0x00, 0x98, 0xC9, 0x01, 0xFF, 0x40, 0x12, 0xCE, 0x5C, 0x23, 0xD3, 0x2F, + 0x39, 0, 18, 0xF2, 0x34, 0x86, 0x08, 0x44, 0x8C, 0xEF, 0x55, 0x4C, 0x9F, 0x67, 0xB9, 0x2A, 0x77, 0x51, 0x65, 0x70, 0x65, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0xCE, 0x00, 0xE0, 0xEF, 0x01, 0xFA, 0x11, 0x11, 0x25, 0x40, 0x11, 0x83, 0xD4, 0x22, 0x26, 0x6F, + 0x39, 0, 18, 0xF4, 0x23, 0xBB, 0x31, 0x33, 0xA2, 0xFA, 0x44, 0x4F, 0x9A, 0x56, 0x9A, 0x03, 0x66, 0x24, 0x37, 0x60, 0x37, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x2B, 0x22, 0x59, 0x73, 0x22, 0x85, 0x9A, 0x22, 0xB3, 0xDB, 0x33, 0x05, 0x31, 0x33, 0x87, 0xDD, 0x44, 0x31, 0x78, + 0x39, 0, 18, 0xF6, 0x45, 0xC0, 0x36, 0x56, 0xB0, 0x10, 0x66, 0x68, 0xB7, 0x78, 0xCE, 0x43, 0x88, 0x6A, 0x80, 0x80, 0x80, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x08, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x62, 0x8D, 0x00, 0xA2, 0xC9, 0x01, 0xF9, 0x2A, 0x12, 0xA7, 0x3B, 0x23, 0xBF, 0x2B, + 0x39, 0, 18, 0xF2, 0x34, 0x84, 0x1B, 0x45, 0x9C, 0x05, 0x55, 0x69, 0xC0, 0x67, 0xDF, 0x5E, 0x77, 0x78, 0x95, 0x70, 0x95, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x18, 0x11, 0x25, 0x3C, 0x11, 0x4B, 0x64, 0x11, 0x81, 0x96, 0x12, 0xCC, 0x0E, 0x22, 0x53, 0x9A, + 0x39, 0, 18, 0xF4, 0x23, 0xDC, 0x53, 0x34, 0xBB, 0x18, 0x44, 0x6B, 0xBB, 0x56, 0xBE, 0x34, 0x66, 0x4F, 0x66, 0x60, 0x66, + 0x39, 0, 22, 0xF5, 0x01, 0x00, 0x29, 0x23, 0x15, 0x1E, 0x33, 0x30, 0x3D, 0x33, 0x4C, 0x6C, 0x33, 0x8E, 0xB1, 0x34, 0xF0, 0x3C, 0x44, 0x82, 0xC8, + 0x39, 0, 18, 0xF6, 0x55, 0x06, 0x82, 0x56, 0xF0, 0x4B, 0x66, 0xA4, 0xF0, 0x88, 0x07, 0x8C, 0x88, 0xA1, 0xBD, 0x80, 0xBD, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x09, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0x05, 0x00, 0x70, 0x9C, 0x00, 0xB3, 0xD2, 0x11, 0x04, 0x4C, 0x12, 0xA5, 0x06, + 0x39, 0, 18, 0xF2, 0x23, 0x69, 0x03, 0x33, 0x84, 0xE4, 0x44, 0x42, 0x90, 0x56, 0x98, 0x06, 0x66, 0x21, 0x36, 0x60, 0x36, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x01, 0x08, 0x0E, 0x11, 0x28, 0x40, 0x11, 0x55, 0x64, 0x11, 0x82, 0xA3, 0x11, 0xC9, 0xF2, + 0x39, 0, 18, 0xF4, 0x22, 0x23, 0x7B, 0x23, 0xD9, 0x23, 0x33, 0x6E, 0xAD, 0x44, 0x93, 0xF6, 0x55, 0x0E, 0x23, 0x50, 0x23, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x02, 0x11, 0x72, 0xB8, 0x33, 0x1E, 0x24, 0x33, 0x2E, 0x42, 0x33, 0x59, 0x6D, 0x33, 0x98, 0xC1, 0x34, 0xF0, 0x1E, + 0x39, 0, 18, 0xF6, 0x44, 0x52, 0xA9, 0x55, 0x05, 0x53, 0x55, 0x9C, 0xE1, 0x67, 0xCE, 0x34, 0x77, 0x4E, 0x64, 0x70, 0x64, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x00, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0xE4, 0x11, 0x37, 0x96, 0x12, 0xF5, 0x4D, 0x23, 0x9A, 0x20, 0x33, 0x8E, 0xEE, 0x45, 0x8C, 0x0D, 0x55, 0x7E, 0xE6, + 0x39, 0, 18, 0xF2, 0x66, 0x44, 0xF2, 0x78, 0x8A, 0x16, 0x89, 0x97, 0x19, 0xAB, 0xF7, 0xE5, 0xCC, 0x20, 0x62, 0xC0, 0x62, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0xF8, 0x11, 0x28, 0x57, 0x11, 0x8E, 0xC8, 0x22, 0x02, 0x71, 0x23, 0xD1, 0x28, 0x34, 0xBB, 0x32, 0x44, 0x99, 0xF5, + 0x39, 0, 18, 0xF4, 0x55, 0x4A, 0xE0, 0x66, 0x68, 0xE4, 0x77, 0x57, 0xC6, 0x9A, 0x5D, 0x23, 0xAA, 0x56, 0x8E, 0xA0, 0x8E, + 0x39, 0, 22, 0xF5, 0x01, 0x00, 0xF9, 0x22, 0x47, 0x96, 0x23, 0xEC, 0x3B, 0x34, 0x86, 0x09, 0x44, 0x76, 0xD6, 0x56, 0x7A, 0x03, 0x66, 0x7A, 0xE6, + 0x39, 0, 18, 0xF6, 0x77, 0x4A, 0xFF, 0x89, 0x9E, 0x33, 0x9A, 0xBE, 0x47, 0xCD, 0x4A, 0x55, 0xDD, 0x9B, 0xE0, 0xD0, 0xE0, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x01, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x01, 0x00, 0x4F, 0x11, 0x8D, 0xCF, 0x22, 0x1B, 0x66, 0x23, 0xAD, 0x29, 0x33, 0x92, 0xEE, 0x45, 0x86, 0x07, 0x55, 0x75, 0xDA, + 0x39, 0, 18, 0xF2, 0x66, 0x39, 0xE1, 0x77, 0x73, 0xF9, 0x88, 0x7A, 0xF3, 0xAB, 0xC0, 0xA4, 0xBC, 0xE0, 0x1B, 0xC0, 0x1B, + 0x39, 0, 22, 0xF3, 0x01, 0x00, 0x5F, 0x11, 0x82, 0xA2, 0x11, 0xC6, 0xF1, 0x22, 0x22, 0x81, 0x23, 0xDA, 0x2A, 0x34, 0xB4, 0x29, 0x44, 0x8C, 0xE6, + 0x39, 0, 18, 0xF4, 0x55, 0x39, 0xCD, 0x66, 0x50, 0xC8, 0x77, 0x3A, 0xA4, 0x99, 0x2B, 0xEB, 0xAA, 0x1C, 0x4B, 0xA0, 0x4B, + 0x39, 0, 22, 0xF5, 0x02, 0x00, 0x43, 0x22, 0x83, 0xC4, 0x33, 0x0C, 0x51, 0x34, 0x96, 0x0F, 0x44, 0x78, 0xD4, 0x55, 0x74, 0xFA, 0x66, 0x6F, 0xD9, + 0x39, 0, 18, 0xF6, 0x77, 0x3B, 0xEA, 0x89, 0x84, 0x13, 0x9A, 0x9C, 0x1D, 0xCD, 0x0B, 0x0F, 0xDD, 0x56, 0x93, 0xD0, 0x93, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x02, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x01, 0x00, 0x48, 0x11, 0x87, 0xC5, 0x22, 0x09, 0x51, 0x23, 0x94, 0x0B, 0x33, 0x73, 0xCD, 0x44, 0x61, 0xDD, 0x55, 0x4C, 0xAF, + 0x39, 0, 18, 0xF2, 0x66, 0x09, 0xA9, 0x77, 0x3A, 0xBD, 0x88, 0x38, 0xA9, 0xAB, 0x5B, 0x31, 0xBB, 0x66, 0x94, 0xB0, 0x94, + 0x39, 0, 22, 0xF3, 0x01, 0x00, 0x5E, 0x11, 0x80, 0x9C, 0x11, 0xBE, 0xE5, 0x22, 0x11, 0x6B, 0x23, 0xC0, 0x0C, 0x34, 0x92, 0x03, 0x44, 0x66, 0xBF, + 0x39, 0, 18, 0xF4, 0x55, 0x0F, 0x9E, 0x66, 0x1C, 0x91, 0x67, 0xFD, 0x62, 0x89, 0xD7, 0x8C, 0x99, 0xB8, 0xE3, 0x90, 0xE3, + 0x39, 0, 22, 0xF5, 0x02, 0x00, 0x42, 0x22, 0x7D, 0xB9, 0x23, 0xFB, 0x3C, 0x33, 0x7E, 0xF3, 0x44, 0x59, 0xB3, 0x55, 0x4D, 0xD0, 0x66, 0x44, 0xAD, + 0x39, 0, 18, 0xF6, 0x77, 0x0A, 0xB2, 0x88, 0x48, 0xD2, 0x99, 0x54, 0xCF, 0xBC, 0x9E, 0x8B, 0xCC, 0xC8, 0xFE, 0xC0, 0xFE, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x03, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x59, 0x11, 0x76, 0xA2, 0x12, 0xD2, 0x07, 0x22, 0x3F, 0xA9, 0x33, 0x04, 0x56, 0x34, 0xDF, 0x53, 0x45, 0xB9, 0x10, + 0x39, 0, 18, 0xF2, 0x55, 0x62, 0xF5, 0x66, 0x76, 0xED, 0x77, 0x59, 0xBA, 0x99, 0x23, 0xCB, 0x9A, 0xF3, 0x23, 0xA0, 0x23, + 0x39, 0, 22, 0xF3, 0x01, 0x00, 0x4E, 0x11, 0x78, 0x8D, 0x11, 0xA3, 0xBC, 0x12, 0xDB, 0x1F, 0x22, 0x65, 0xA7, 0x33, 0x1E, 0x85, 0x34, 0xE2, 0x32, + 0x39, 0, 18, 0xF4, 0x44, 0x7A, 0xFE, 0x55, 0x71, 0xD6, 0x66, 0x36, 0x8F, 0x78, 0xCE, 0x5C, 0x88, 0x81, 0xA4, 0x80, 0xA4, + 0x39, 0, 22, 0xF5, 0x02, 0x00, 0x37, 0x22, 0x6C, 0x97, 0x22, 0xC5, 0xF8, 0x33, 0x2E, 0x91, 0x34, 0xEC, 0x3D, 0x45, 0xC6, 0x3E, 0x56, 0xAA, 0x06, + 0x39, 0, 18, 0xF6, 0x66, 0x5B, 0xF5, 0x77, 0x7B, 0xF6, 0x88, 0x66, 0xCF, 0xAB, 0x50, 0x04, 0xBB, 0x32, 0x5A, 0xB0, 0x5A, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x04, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x11, 0x61, 0x7E, 0x11, 0x9E, 0xC3, 0x12, 0xEA, 0x3A, 0x22, 0x88, 0xD0, 0x33, 0x4E, 0xBA, 0x44, 0x16, 0x66, + 0x39, 0, 18, 0xF2, 0x45, 0xB1, 0x33, 0x56, 0xA4, 0x0B, 0x66, 0x6A, 0xBF, 0x78, 0xF4, 0x7A, 0x88, 0x9A, 0xB9, 0x80, 0xB9, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x11, 0x6B, 0x7E, 0x11, 0x8E, 0x9F, 0x11, 0xB0, 0xDA, 0x22, 0x0A, 0x3D, 0x22, 0xA0, 0xFA, 0x33, 0x4C, 0x96, + 0x39, 0, 18, 0xF4, 0x34, 0xD9, 0x50, 0x45, 0xB6, 0x11, 0x55, 0x65, 0xB4, 0x67, 0xC3, 0x3B, 0x77, 0x58, 0x74, 0x70, 0x74, + 0x39, 0, 22, 0xF5, 0x02, 0x00, 0x32, 0x22, 0x61, 0x80, 0x22, 0x9F, 0xC2, 0x23, 0xE5, 0x32, 0x33, 0x7B, 0xC3, 0x44, 0x3C, 0xA5, 0x55, 0x03, 0x56, + 0x39, 0, 18, 0xF6, 0x56, 0xA3, 0x2C, 0x67, 0xA2, 0x0D, 0x77, 0x72, 0xCF, 0x99, 0x0F, 0x9E, 0x99, 0xC1, 0xE1, 0x90, 0xE1, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x05, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x11, 0x42, 0x65, 0x11, 0x82, 0xA1, 0x12, 0xC2, 0x07, 0x22, 0x50, 0x97, 0x33, 0x14, 0x7E, 0x34, 0xDA, 0x2A, + 0x39, 0, 18, 0xF2, 0x44, 0x71, 0xED, 0x55, 0x5C, 0xBB, 0x66, 0x16, 0x69, 0x78, 0x8B, 0x03, 0x88, 0x26, 0x39, 0x80, 0x39, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x11, 0x7F, 0x90, 0x11, 0x9D, 0xAA, 0x11, 0xB7, 0xD5, 0x12, 0xF7, 0x20, 0x22, 0x78, 0xCC, 0x33, 0x18, 0x60, + 0x39, 0, 18, 0xF4, 0x34, 0xA0, 0x11, 0x44, 0x74, 0xCB, 0x55, 0x1A, 0x64, 0x66, 0x5F, 0xD2, 0x67, 0xEC, 0x06, 0x70, 0x06, + 0x39, 0, 22, 0xF5, 0x01, 0x00, 0x49, 0x22, 0x7C, 0x97, 0x22, 0xB3, 0xCD, 0x23, 0xE9, 0x26, 0x33, 0x64, 0xA1, 0x44, 0x11, 0x75, 0x45, 0xCA, 0x1B, + 0x39, 0, 18, 0xF6, 0x55, 0x64, 0xE4, 0x66, 0x58, 0xBD, 0x77, 0x1B, 0x70, 0x89, 0x9A, 0x1E, 0x99, 0x3D, 0x5D, 0x90, 0x5D, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x06, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x11, 0x97, 0xBB, 0x12, 0xDD, 0x03, 0x22, 0x2E, 0x87, 0x23, 0xDA, 0x2B, 0x34, 0xB6, 0x23, 0x44, 0x83, 0xD9, + 0x39, 0, 18, 0xF2, 0x55, 0x29, 0xAD, 0x66, 0x2B, 0x97, 0x67, 0xFB, 0x58, 0x89, 0x9A, 0x2C, 0x99, 0x4E, 0x76, 0x90, 0x76, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x11, 0xE5, 0xF8, 0x22, 0x08, 0x17, 0x22, 0x28, 0x50, 0x22, 0x7B, 0xAC, 0x33, 0x0F, 0x6B, 0x34, 0xBF, 0x09, + 0x39, 0, 18, 0xF4, 0x44, 0x4E, 0xC5, 0x55, 0x31, 0x90, 0x56, 0xEA, 0x3C, 0x77, 0x59, 0xD6, 0x78, 0xF3, 0x11, 0x80, 0x11, + 0x39, 0, 22, 0xF5, 0x02, 0x00, 0x0E, 0x23, 0xF8, 0x15, 0x33, 0x35, 0x54, 0x33, 0x75, 0xB9, 0x34, 0xFB, 0x3E, 0x45, 0xB8, 0x21, 0x55, 0x80, 0xD7, + 0x39, 0, 18, 0xF6, 0x66, 0x29, 0xB5, 0x77, 0x33, 0xA4, 0x88, 0x0B, 0x6A, 0x9A, 0xC0, 0x5C, 0xAA, 0x81, 0xA4, 0xA0, 0xA4, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x07, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x22, 0x25, 0x55, 0x22, 0x75, 0x93, 0x23, 0xB9, 0x06, 0x33, 0x52, 0x99, 0x44, 0x1D, 0x93, 0x45, 0xF4, 0x4A, + 0x39, 0, 18, 0xF2, 0x56, 0x99, 0x2A, 0x67, 0xA9, 0x1A, 0x77, 0x85, 0xE8, 0x99, 0x41, 0xDF, 0xAA, 0x05, 0x27, 0xA0, 0x27, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x22, 0xB8, 0xD1, 0x22, 0xE2, 0xEF, 0x23, 0xFB, 0x15, 0x33, 0x35, 0x58, 0x33, 0xA4, 0xF3, 0x44, 0x3F, 0x87, + 0x39, 0, 18, 0xF4, 0x45, 0xC8, 0x41, 0x56, 0xAC, 0x0D, 0x66, 0x6B, 0xC0, 0x78, 0xEB, 0x6E, 0x88, 0x8E, 0xAD, 0x80, 0xAD, + 0x39, 0, 22, 0xF5, 0x02, 0x00, 0x2C, 0x33, 0xEB, 0xFF, 0x44, 0x15, 0x2A, 0x44, 0x43, 0x77, 0x44, 0xAC, 0xE0, 0x55, 0x4A, 0xB2, 0x66, 0x0D, 0x63, + 0x39, 0, 18, 0xF6, 0x67, 0xB0, 0x40, 0x78, 0xC1, 0x33, 0x89, 0xA0, 0x08, 0xAB, 0x77, 0x20, 0xBB, 0x49, 0x6F, 0xB0, 0x6F, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x08, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x16, 0x22, 0xC7, 0xDD, 0x23, 0xF0, 0x18, 0x33, 0x3F, 0x6E, 0x34, 0xC3, 0x16, 0x44, 0x64, 0xAD, + 0x39, 0, 18, 0xF2, 0x45, 0xF3, 0x73, 0x56, 0xDF, 0x3F, 0x66, 0x99, 0xEE, 0x88, 0x12, 0x91, 0x88, 0xB0, 0xC8, 0x80, 0xC8, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x03, 0x02, 0x54, 0x33, 0x6C, 0x79, 0x33, 0x83, 0x90, 0x33, 0xA0, 0xAF, 0x33, 0xCD, 0xF0, 0x44, 0x17, 0x41, + 0x39, 0, 18, 0xF4, 0x44, 0x6B, 0xC2, 0x55, 0x18, 0x67, 0x55, 0xB1, 0xF7, 0x67, 0xEE, 0x5C, 0x77, 0x76, 0x8E, 0x70, 0x8E, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x63, 0x34, 0x9F, 0x96, 0x44, 0xA7, 0xB4, 0x44, 0xBC, 0xD5, 0x45, 0xED, 0x08, 0x55, 0x44, 0x7E, 0x55, 0xB9, 0xF7, + 0x39, 0, 18, 0xF6, 0x66, 0x33, 0xA6, 0x77, 0x0C, 0x6A, 0x78, 0xC2, 0x16, 0x99, 0x40, 0xC6, 0x9A, 0xE6, 0x03, 0xA0, 0x03, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x09, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0x05, 0x0F, 0x55, 0xF9, 0xFF, 0xF9, 0xF9, 0xFF, 0xF9, 0xF9, 0xF3, 0xFA, 0xA4, + 0x39, 0, 18, 0xF2, 0x34, 0xBC, 0x0C, 0x44, 0x56, 0x9D, 0x45, 0xE1, 0x25, 0x56, 0xF9, 0x54, 0x66, 0x6A, 0x7C, 0x60, 0x7C, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x07, 0x04, 0xB0, 0xFF, 0xFB, 0xF9, 0xFF, 0xF9, 0xF9, 0xFF, 0xF9, 0xF9, 0xF3, 0xFA, 0xCD, + 0x39, 0, 18, 0xF4, 0x33, 0xC9, 0xEA, 0x44, 0x11, 0x37, 0x44, 0x5F, 0x89, 0x55, 0x2E, 0x78, 0x55, 0x8A, 0x9B, 0x50, 0x9B, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0xDC, 0x37, 0x0F, 0xD5, 0xEF, 0xB7, 0xFD, 0xFF, 0xFB, 0xF9, 0xFF, 0xF9, 0xF9, 0xFF, 0xF9, 0xF9, 0xF5, 0xFA, 0x36, + 0x39, 0, 18, 0xF6, 0x55, 0x3E, 0x76, 0x55, 0xB0, 0xEA, 0x66, 0x23, 0x5F, 0x77, 0x27, 0x7F, 0x77, 0x94, 0xA7, 0x70, 0xA7, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x00, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x16, 0x00, 0x6B, 0xC7, 0x11, 0x1B, 0xA8, 0x22, 0x1C, 0x88, 0x33, 0x34, 0xBF, 0x44, 0x35, 0xA7, + 0x39, 0, 18, 0xF2, 0x55, 0x0C, 0xC7, 0x67, 0x73, 0x05, 0x78, 0x9D, 0x1E, 0xAB, 0x35, 0x46, 0xBB, 0x92, 0xCA, 0xB0, 0xCA, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0x3F, 0x00, 0x7B, 0xED, 0x11, 0x53, 0xB1, 0x22, 0x50, 0xD1, 0x33, 0x40, 0xA1, + 0x39, 0, 18, 0xF4, 0x34, 0xFB, 0x9F, 0x55, 0x38, 0xBF, 0x66, 0x40, 0xB9, 0x89, 0x78, 0x55, 0x99, 0x93, 0xC5, 0x90, 0xC5, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x01, 0x01, 0xD3, 0x21, 0x11, 0x75, 0xC5, 0x22, 0x0F, 0x97, 0x33, 0x0E, 0x77, 0x44, 0x1C, 0xB1, 0x55, 0x39, 0xAD, + 0x39, 0, 18, 0xF6, 0x66, 0x19, 0xD9, 0x78, 0x87, 0x27, 0x89, 0xBF, 0x50, 0xBC, 0x8F, 0xB8, 0xDD, 0x06, 0x42, 0xD0, 0x42, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x01, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x15, 0x4A, 0x00, 0x8C, 0xD2, 0x11, 0x17, 0x96, 0x22, 0x03, 0x61, 0x33, 0x00, 0x88, 0x34, 0xF9, 0x60, + 0x39, 0, 18, 0xF2, 0x45, 0xC7, 0x76, 0x66, 0x15, 0xA4, 0x77, 0x29, 0xAC, 0x9A, 0x84, 0x74, 0xAA, 0xAD, 0xE9, 0xA0, 0xE9, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x1E, 0x00, 0x3F, 0x65, 0x00, 0x92, 0xED, 0x11, 0x43, 0x95, 0x22, 0x23, 0x9F, 0x33, 0x07, 0x64, + 0x39, 0, 18, 0xF4, 0x34, 0xBB, 0x54, 0x45, 0xE0, 0x62, 0x56, 0xDA, 0x4B, 0x78, 0xDD, 0xA0, 0x89, 0xD2, 0x08, 0x90, 0x08, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0xDC, 0x11, 0x19, 0x4D, 0x11, 0x8A, 0xCB, 0x22, 0x08, 0x82, 0x23, 0xED, 0x4D, 0x34, 0xEB, 0x7A, 0x45, 0xF2, 0x65, + 0x39, 0, 18, 0xF6, 0x56, 0xCD, 0x85, 0x77, 0x29, 0xBD, 0x88, 0x48, 0xD1, 0xAB, 0xD5, 0xD5, 0xCC, 0x15, 0x52, 0xC0, 0x52, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x02, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x03, 0x26, 0x00, 0x4F, 0x7E, 0x01, 0xB0, 0x16, 0x11, 0x75, 0xC9, 0x22, 0x58, 0xD4, 0x33, 0x3C, 0x98, + 0x39, 0, 18, 0xF2, 0x34, 0xEB, 0x85, 0x55, 0x0D, 0x8A, 0x56, 0xFF, 0x69, 0x78, 0xE6, 0x98, 0x88, 0xC0, 0xE8, 0x80, 0xE8, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x0C, 0x00, 0x21, 0x38, 0x00, 0x54, 0x91, 0x01, 0xD2, 0x14, 0x11, 0x8C, 0xF9, 0x22, 0x59, 0xAD, + 0x39, 0, 18, 0xF4, 0x23, 0xFB, 0x82, 0x34, 0xF7, 0x65, 0x45, 0xCB, 0x2C, 0x67, 0x7F, 0x15, 0x77, 0x39, 0x60, 0x70, 0x60, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0xC9, 0x11, 0x04, 0x2B, 0x11, 0x51, 0x7E, 0x12, 0xAD, 0x09, 0x22, 0x63, 0xB9, 0x33, 0x44, 0xBE, 0x44, 0x26, 0x89, + 0x39, 0, 18, 0xF6, 0x45, 0xE4, 0x89, 0x66, 0x19, 0x9A, 0x77, 0x10, 0x81, 0x99, 0x13, 0xD1, 0x9A, 0xFE, 0x2D, 0xA0, 0x2D, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x03, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x14, 0x2A, 0x00, 0x41, 0x77, 0x00, 0xB2, 0xEA, 0x11, 0x5B, 0xBF, 0x22, 0x17, 0x64, + 0x39, 0, 18, 0xF2, 0x23, 0xAC, 0x28, 0x33, 0x97, 0xF7, 0x44, 0x4D, 0xA4, 0x56, 0xCA, 0x47, 0x66, 0x67, 0x86, 0x60, 0x86, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0x0D, 0x00, 0x1B, 0x34, 0x00, 0x53, 0x76, 0x01, 0xC1, 0x0B, 0x11, 0x54, 0x97, + 0x39, 0, 18, 0xF4, 0x12, 0xD6, 0x48, 0x23, 0xAC, 0x04, 0x33, 0x54, 0x9D, 0x45, 0x9D, 0x0D, 0x55, 0x29, 0x45, 0x50, 0x45, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x20, 0x01, 0xE7, 0x02, 0x11, 0x18, 0x2F, 0x11, 0x45, 0x76, 0x11, 0xAB, 0xE3, 0x22, 0x48, 0xAB, 0x33, 0x04, 0x50, + 0x39, 0, 18, 0xF6, 0x34, 0x9A, 0x13, 0x44, 0x88, 0xF0, 0x55, 0x53, 0xAC, 0x67, 0xDC, 0x5E, 0x77, 0x7F, 0x9F, 0x70, 0x9F, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x04, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x09, 0x23, 0x00, 0x3B, 0x77, 0x00, 0xAF, 0xEC, 0x11, 0x64, 0xCC, 0x22, 0x24, 0x78, + 0x39, 0, 18, 0xF2, 0x23, 0xC1, 0x43, 0x34, 0xB2, 0x10, 0x44, 0x6E, 0xC4, 0x56, 0xF4, 0x78, 0x66, 0x8F, 0xAF, 0x60, 0xAF, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0x0B, 0x00, 0x16, 0x32, 0x00, 0x52, 0x78, 0x01, 0xC6, 0x14, 0x11, 0x60, 0xA5, + 0x39, 0, 18, 0xF4, 0x12, 0xE6, 0x5C, 0x23, 0xC3, 0x1D, 0x33, 0x6F, 0xB7, 0x45, 0xC0, 0x31, 0x55, 0x4C, 0x68, 0x50, 0x68, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x01, 0x01, 0xED, 0x06, 0x11, 0x20, 0x38, 0x11, 0x4B, 0x80, 0x11, 0xB9, 0xF3, 0x22, 0x5D, 0xC3, 0x33, 0x1C, 0x6B, + 0x39, 0, 18, 0xF6, 0x34, 0xB4, 0x31, 0x45, 0xA9, 0x13, 0x55, 0x77, 0xCE, 0x77, 0x05, 0x8D, 0x77, 0xAD, 0xCA, 0x70, 0xCA, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x05, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x15, 0x00, 0x28, 0x3C, 0x00, 0x4D, 0x7F, 0x00, 0xB2, 0xE7, 0x11, 0x54, 0xBB, 0x22, 0x12, 0x65, + 0x39, 0, 18, 0xF2, 0x23, 0xAB, 0x2F, 0x33, 0x99, 0xF9, 0x44, 0x52, 0xA6, 0x56, 0xCC, 0x4C, 0x66, 0x6A, 0x85, 0x60, 0x85, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x13, 0x00, 0x1F, 0x2D, 0x00, 0x36, 0x4E, 0x00, 0x68, 0x86, 0x01, 0xC8, 0x0F, 0x11, 0x57, 0x9B, + 0x39, 0, 18, 0xF4, 0x12, 0xDA, 0x4B, 0x23, 0xAF, 0x07, 0x33, 0x57, 0xA0, 0x45, 0x9F, 0x10, 0x55, 0x2A, 0x45, 0x50, 0x45, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x43, 0x11, 0x23, 0x3F, 0x11, 0x50, 0x65, 0x11, 0x79, 0xA4, 0x12, 0xD4, 0x05, 0x22, 0x66, 0xC3, 0x33, 0x18, 0x63, + 0x39, 0, 18, 0xF6, 0x34, 0xA7, 0x24, 0x44, 0x94, 0xFB, 0x55, 0x5C, 0xB6, 0x67, 0xE2, 0x66, 0x77, 0x85, 0xA5, 0x70, 0xA5, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x06, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x2A, 0x00, 0x40, 0x51, 0x00, 0x63, 0x8B, 0x00, 0xB7, 0xE9, 0x11, 0x55, 0xB8, 0x22, 0x12, 0x64, + 0x39, 0, 18, 0xF2, 0x23, 0xAF, 0x2F, 0x33, 0x9B, 0xFB, 0x44, 0x56, 0xA9, 0x56, 0xC9, 0x46, 0x66, 0x62, 0x84, 0x60, 0x84, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x44, 0x5B, 0x00, 0x6C, 0x77, 0x00, 0x83, 0x95, 0x00, 0xAA, 0xC2, 0x01, 0xF8, 0x33, 0x11, 0x72, 0xAD, + 0x39, 0, 18, 0xF4, 0x12, 0xEA, 0x5A, 0x23, 0xB9, 0x0E, 0x33, 0x5E, 0xA5, 0x45, 0xA1, 0x0C, 0x55, 0x28, 0x42, 0x50, 0x42, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0xBE, 0x11, 0x8A, 0xA3, 0x11, 0xB8, 0xC9, 0x12, 0xDD, 0x00, 0x22, 0x22, 0x49, 0x22, 0x9B, 0xE7, 0x33, 0x33, 0x7A, + 0x39, 0, 18, 0xF6, 0x34, 0xBE, 0x32, 0x45, 0xA0, 0x06, 0x55, 0x67, 0xBC, 0x67, 0xE0, 0x62, 0x77, 0x7D, 0x9E, 0x70, 0x9E, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x07, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x98, 0x00, 0xC5, 0xD5, 0x01, 0xE6, 0x05, 0x11, 0x25, 0x45, 0x11, 0x92, 0xE3, 0x22, 0x34, 0x7D, + 0x39, 0, 18, 0xF2, 0x23, 0xC4, 0x3D, 0x34, 0xAB, 0x04, 0x44, 0x61, 0xB3, 0x56, 0xCF, 0x49, 0x66, 0x6B, 0x84, 0x60, 0x84, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x01, 0x02, 0x1F, 0x11, 0x36, 0x41, 0x11, 0x4E, 0x60, 0x11, 0x70, 0x82, 0x11, 0x9F, 0xC0, 0x12, 0xE7, 0x11, + 0x39, 0, 18, 0xF4, 0x22, 0x3D, 0x90, 0x23, 0xE2, 0x2D, 0x33, 0x7A, 0xBB, 0x45, 0xAE, 0x18, 0x55, 0x34, 0x4B, 0x50, 0x4B, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x7A, 0x22, 0x80, 0x96, 0x22, 0xA4, 0xB3, 0x22, 0xBF, 0xD4, 0x23, 0xED, 0x06, 0x33, 0x36, 0x66, 0x33, 0xA0, 0xD4, + 0x39, 0, 18, 0xF6, 0x44, 0x0A, 0x72, 0x45, 0xDB, 0x34, 0x55, 0x8C, 0xDF, 0x67, 0xF8, 0x73, 0x77, 0x92, 0xAC, 0x70, 0xAC, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x08, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x1F, 0x11, 0x0F, 0x57, 0x11, 0x70, 0x8B, 0x11, 0xA7, 0xC4, 0x22, 0x04, 0x41, 0x22, 0x80, 0xC0, + 0x39, 0, 18, 0xF2, 0x33, 0x00, 0x70, 0x34, 0xD8, 0x38, 0x44, 0x90, 0xE4, 0x66, 0x01, 0x7C, 0x66, 0x98, 0xB5, 0x60, 0xB5, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x08, 0x11, 0xEB, 0xFF, 0x22, 0x0A, 0x1C, 0x22, 0x29, 0x37, 0x22, 0x4D, 0x66, 0x22, 0x82, 0x9C, + 0x39, 0, 18, 0xF4, 0x22, 0xB9, 0xF9, 0x33, 0x3D, 0x7B, 0x33, 0xBB, 0xFB, 0x45, 0xE3, 0x4B, 0x55, 0x65, 0x82, 0x50, 0x82, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x01, 0x13, 0x03, 0x23, 0x33, 0x72, 0x7B, 0x33, 0x85, 0x96, 0x33, 0xA7, 0xBA, 0x34, 0xE2, 0x03, 0x44, 0x2D, 0x5A, + 0x39, 0, 18, 0xF6, 0x44, 0x87, 0xE0, 0x55, 0x38, 0x8F, 0x56, 0xE5, 0x30, 0x77, 0x41, 0xBA, 0x77, 0xD7, 0xF0, 0x70, 0xF0, + 0x39, 0, 2, 0xFF, 0x01, + 0x39, 0, 5, 0xFE, 0x01, 0x09, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0x28, 0x01, 0xB4, 0x61, 0x11, 0x7A, 0x8A, 0x11, 0xAF, 0xD7, 0x22, 0x02, 0x2C, + 0x39, 0, 18, 0xF2, 0x22, 0x54, 0xAA, 0x23, 0xF6, 0x48, 0x33, 0x8E, 0xCC, 0x45, 0xC1, 0x25, 0x55, 0x3F, 0x5B, 0x50, 0x5B, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x01, 0x04, 0x7E, 0x12, 0xF1, 0x03, 0x22, 0x11, 0x1C, 0x22, 0x2C, 0x40, 0x22, 0x4C, 0x5D, + 0x39, 0, 18, 0xF4, 0x22, 0x6E, 0x90, 0x22, 0xB9, 0xE0, 0x33, 0x0A, 0x33, 0x34, 0xE2, 0x2F, 0x44, 0x46, 0x5A, 0x40, 0x5A, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x97, 0x02, 0xE4, 0xB3, 0x33, 0x53, 0x66, 0x33, 0x71, 0x80, 0x33, 0x8B, 0x96, 0x33, 0xAD, 0xC6, 0x33, 0xE1, 0xFB, + 0x39, 0, 18, 0xF6, 0x44, 0x0F, 0x48, 0x44, 0x82, 0xC1, 0x45, 0xFC, 0x34, 0x66, 0x14, 0x70, 0x66, 0x87, 0xA1, 0x60, 0xA1, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x00, 0x04, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x24, 0x53, 0x00, 0x87, 0xF5, 0x11, 0x4D, 0xB6, 0x22, 0x4E, 0xCD, 0x33, 0x42, 0xA0, + 0x39, 0, 18, 0xF2, 0x34, 0xFE, 0x90, 0x55, 0x14, 0x89, 0x56, 0xFC, 0x61, 0x78, 0xA1, 0x34, 0x88, 0x50, 0x74, 0x80, 0x74, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x05, 0x15, 0x00, 0x26, 0x37, 0x00, 0x4A, 0x7C, 0x00, 0xAC, 0xF5, 0x11, 0x70, 0xDF, 0x22, 0x48, 0x9E, + 0x39, 0, 18, 0xF4, 0x23, 0xFA, 0x7A, 0x34, 0xF3, 0x59, 0x45, 0xC1, 0x15, 0x66, 0x4B, 0xCA, 0x67, 0xEC, 0x05, 0x70, 0x05, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x83, 0x01, 0xEC, 0x0C, 0x11, 0x38, 0x6B, 0x12, 0x9F, 0x0A, 0x22, 0x60, 0xC5, 0x33, 0x5D, 0xDD, 0x44, 0x4B, 0xB6, + 0x39, 0, 18, 0xF6, 0x55, 0x1B, 0xBA, 0x66, 0x40, 0xB9, 0x77, 0x26, 0x89, 0x89, 0xDB, 0x72, 0x99, 0x91, 0xB9, 0x90, 0xB9, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x01, 0x04, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x22, 0xA1, 0xA8, 0x22, 0xAF, 0xB6, 0x22, 0xBD, 0xC4, 0x22, 0xCB, 0xD2, 0x23, 0xD9, 0x1C, + 0x39, 0, 18, 0xF2, 0x33, 0x6E, 0xFE, 0x44, 0x79, 0xEB, 0x55, 0x50, 0xB5, 0x67, 0xE5, 0x66, 0x77, 0x7E, 0xA0, 0x70, 0xA0, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x01, 0xEA, 0xAD, 0x11, 0xB0, 0xB7, 0x11, 0xBE, 0xC5, 0x11, 0xCC, 0xD3, 0x11, 0xDA, 0xE1, 0x12, 0xE8, 0x21, + 0x39, 0, 18, 0xF4, 0x22, 0x6E, 0xF7, 0x33, 0x66, 0xCC, 0x44, 0x22, 0x7C, 0x56, 0x97, 0x0F, 0x66, 0x2E, 0x47, 0x60, 0x47, + 0x39, 0, 22, 0xF5, 0x02, 0x00, 0x42, 0x33, 0xA9, 0xAC, 0x33, 0xAF, 0xB6, 0x33, 0xBD, 0xC4, 0x33, 0xCB, 0xD2, 0x33, 0xD9, 0xE0, 0x34, 0xE7, 0x2C, + 0x39, 0, 18, 0xF6, 0x45, 0x80, 0x1A, 0x56, 0x9E, 0x13, 0x66, 0x7D, 0xDD, 0x88, 0x14, 0x99, 0x88, 0xBA, 0xD9, 0x80, 0xD9, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x02, 0x04, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x06, 0x04, 0x80, 0xFF, 0xA4, 0xA9, 0xFF, 0xAE, 0xB3, 0xFF, 0xB8, 0xBD, 0xFF, 0xC2, 0xC7, + 0x39, 0, 18, 0xF2, 0xFF, 0xCC, 0xD1, 0xFF, 0xD6, 0xDB, 0xFF, 0xE0, 0xE5, 0xFF, 0xEA, 0xEF, 0xFF, 0xF4, 0xF9, 0xF0, 0xF9, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x0F, 0x02, 0x99, 0xFF, 0x9C, 0x9F, 0xFF, 0xA4, 0xA9, 0xFF, 0xAE, 0xB3, 0xFF, 0xB8, 0xBD, 0xFF, 0xC2, 0xC7, + 0x39, 0, 18, 0xF4, 0xFF, 0xCC, 0xD1, 0xFF, 0xD6, 0xDB, 0xFF, 0xE0, 0xE5, 0xFF, 0xEA, 0xEF, 0xFF, 0xF4, 0xF9, 0xF0, 0xF9, + 0x39, 0, 22, 0xF5, 0x02, 0x00, 0xF4, 0xFF, 0x96, 0x99, 0xFF, 0x9C, 0x9F, 0xFF, 0xA4, 0xA9, 0xFF, 0xAE, 0xB3, 0xFF, 0xB8, 0xBD, 0xFF, 0xC2, 0xC7, + 0x39, 0, 18, 0xF6, 0xFF, 0xCC, 0xD1, 0xFF, 0xD6, 0xDB, 0xFF, 0xE0, 0xE5, 0xFF, 0xEA, 0xEF, 0xFF, 0xF4, 0xF9, 0xF0, 0xF9, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x03, 0x04, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0x05, 0x0F, 0x06, 0xA9, 0xFF, 0xAE, 0xB3, 0xFF, 0xB8, 0xBD, 0xFF, 0xC2, 0xC7, + 0x39, 0, 18, 0xF2, 0xFF, 0xCC, 0xD1, 0xFF, 0xD6, 0xDB, 0xFF, 0xE0, 0xE5, 0xFF, 0xEA, 0xEF, 0xFF, 0xF4, 0xF9, 0xF0, 0xF9, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0xFF, 0xA0, 0xA3, 0xFF, 0xA6, 0xA9, 0xFF, 0xAE, 0xB3, 0xFF, 0xB8, 0xBD, 0xFF, 0xC2, 0xC7, + 0x39, 0, 18, 0xF4, 0xFF, 0xCC, 0xD1, 0xFF, 0xD6, 0xDB, 0xFF, 0xE0, 0xE5, 0xFF, 0xEA, 0xEF, 0xFF, 0xF4, 0xF9, 0xF0, 0xF9, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x40, 0xFF, 0x9A, 0x9D, 0xFF, 0xA0, 0xA3, 0xFF, 0xA6, 0xA9, 0xFF, 0xAE, 0xB3, 0xFF, 0xB8, 0xBD, 0xFF, 0xC2, 0xC7, + 0x39, 0, 18, 0xF6, 0xFF, 0xCC, 0xD1, 0xFF, 0xD6, 0xDB, 0xFF, 0xE0, 0xE5, 0xFF, 0xEA, 0xEF, 0xFF, 0xF4, 0xF9, 0xF0, 0xF9, + 0x39, 0, 2, 0xFF, 0x01, +////////////////////////GAMMA1 END/////////////////////////////// +#else + +/////////////GAMMA2/////////////// + 0x29, 0, 5, 0xFE, 0x01, 0x00, 0x00, 0x00, + 0x29, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x39, 0xC7, 0x11, 0x48, 0xB0, 0x22, 0x0B, 0x96, 0x33, 0x12, 0x79, 0x44, 0x1D, 0xA3, 0x55, 0x21, 0x8D, + 0x29, 0, 18, 0xF2, 0x56, 0xF4, 0xA3, 0x77, 0x3C, 0xC9, 0x88, 0x50, 0xD6, 0xAB, 0xCE, 0xCB, 0xCC, 0x14, 0x51, 0xC0, 0x51, + 0x29, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x0B, 0x5B, 0x01, 0xB9, 0x05, 0x11, 0x58, 0xD7, 0x22, 0x46, 0xAA, 0x33, 0x44, 0xBE, 0x44, 0x29, 0x8C, + 0x29, 0, 18, 0xF4, 0x45, 0xE8, 0x8C, 0x66, 0x1E, 0x98, 0x77, 0x11, 0x83, 0x99, 0x2E, 0xFE, 0xAA, 0x37, 0x68, 0xA0, 0x68, + 0x29, 0, 22, 0xF5, 0x00, 0x00, 0xE1, 0x11, 0x4D, 0xC3, 0x22, 0x36, 0x94, 0x23, 0xEC, 0x78, 0x34, 0xEE, 0x59, 0x55, 0x0A, 0x97, 0x66, 0x18, 0x87, + 0x29, 0, 18, 0xF6, 0x67, 0xEF, 0xA5, 0x88, 0x47, 0xD9, 0x99, 0x71, 0xFB, 0xCD, 0x17, 0x2D, 0xDD, 0x79, 0xBC, 0xD0, 0xBC, + 0x29, 0, 2, 0xFF, 0x01, + + 0x29, 0, 5, 0xFE, 0x01, 0x01, 0x00, 0x00, + 0x29, 0, 22, 0xF1, 0x00, 0x00, 0x2B, 0x00, 0x7D, 0xDC, 0x11, 0x44, 0xA1, 0x12, 0xF5, 0x82, 0x23, 0xF0, 0x4A, 0x34, 0xEA, 0x72, 0x45, 0xE3, 0x4C, + 0x29, 0, 18, 0xF2, 0x56, 0xAB, 0x58, 0x67, 0xED, 0x73, 0x78, 0xEF, 0x65, 0xAB, 0x2C, 0x0E, 0xBB, 0x43, 0x7B, 0xB0, 0x7B, + 0x29, 0, 22, 0xF3, 0x00, 0x00, 0x37, 0x00, 0x62, 0x8D, 0x01, 0xCA, 0x0A, 0x11, 0x4D, 0xC6, 0x22, 0x29, 0x7C, 0x33, 0x13, 0x8E, 0x34, 0xEF, 0x4F, + 0x29, 0, 18, 0xF4, 0x45, 0xA6, 0x43, 0x56, 0xC9, 0x46, 0x67, 0xB5, 0x1E, 0x89, 0xA0, 0x56, 0x99, 0x83, 0xB7, 0x90, 0xB7, + 0x29, 0, 22, 0xF5, 0x01, 0x00, 0x2C, 0x11, 0x77, 0xCF, 0x22, 0x2F, 0x86, 0x23, 0xD5, 0x60, 0x34, 0xCC, 0x29, 0x45, 0xD4, 0x63, 0x56, 0xDC, 0x46, + 0x29, 0, 18, 0xF6, 0x67, 0xA8, 0x58, 0x78, 0xF4, 0x7F, 0x99, 0x05, 0x82, 0xBC, 0x6C, 0x60, 0xCC, 0x99, 0xD1, 0xC0, 0xD1, + 0x29, 0, 2, 0xFF, 0x01, + + 0x29, 0, 5, 0xFE, 0x01, 0x02, 0x00, 0x00, + 0x29, 0, 22, 0xF1, 0x00, 0x00, 0x09, 0x00, 0x5A, 0x9A, 0x01, 0xE3, 0x2F, 0x11, 0x78, 0xEF, 0x22, 0x5A, 0xB1, 0x33, 0x46, 0xBD, 0x44, 0x23, 0x7E, + 0x29, 0, 18, 0xF2, 0x45, 0xD6, 0x6E, 0x56, 0xF3, 0x68, 0x67, 0xD9, 0x3D, 0x89, 0x9F, 0x44, 0x99, 0x6D, 0x95, 0x90, 0x95, + 0x29, 0, 22, 0xF3, 0x00, 0x00, 0x26, 0x00, 0x52, 0x6E, 0x00, 0x91, 0xBE, 0x01, 0xED, 0x46, 0x11, 0xA0, 0xF0, 0x22, 0x79, 0xE6, 0x33, 0x45, 0x98, + 0x29, 0, 18, 0xF4, 0x34, 0xE5, 0x6E, 0x45, 0xE5, 0x51, 0x56, 0xB5, 0x14, 0x77, 0x4D, 0xDE, 0x78, 0xFE, 0x26, 0x80, 0x26, + 0x29, 0, 22, 0xF5, 0x01, 0x00, 0x25, 0x11, 0x57, 0x92, 0x12, 0xD5, 0x1B, 0x22, 0x5E, 0xD0, 0x33, 0x38, 0x8F, 0x44, 0x23, 0xA2, 0x55, 0x10, 0x70, + 0x29, 0, 18, 0xF6, 0x56, 0xCC, 0x6A, 0x67, 0xF0, 0x6A, 0x78, 0xDF, 0x46, 0x9A, 0xC0, 0x74, 0xAA, 0x9F, 0xCD, 0xA0, 0xCD, + 0x29, 0, 2, 0xFF, 0x01, + + 0x29, 0, 5, 0xFE, 0x01, 0x03, 0x00, 0x00, + 0x29, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x36, 0x5C, 0x00, 0x7D, 0xA2, 0x01, 0xCD, 0x23, 0x11, 0x75, 0xC1, 0x22, 0x3E, 0xAA, 0x33, 0x06, 0x53, + 0x29, 0, 18, 0xF2, 0x34, 0x96, 0x0F, 0x44, 0x79, 0xE5, 0x55, 0x3D, 0x90, 0x67, 0xA4, 0x1A, 0x77, 0x37, 0x51, 0x70, 0x51, + 0x29, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x3F, 0x55, 0x00, 0x60, 0x6F, 0x00, 0x84, 0xB5, 0x01, 0xEB, 0x23, 0x11, 0x8A, 0xE8, 0x22, 0x3C, 0x84, + 0x29, 0, 18, 0xF4, 0x23, 0xC2, 0x35, 0x33, 0x95, 0xF1, 0x44, 0x41, 0x8C, 0x55, 0x87, 0xF4, 0x66, 0x0F, 0x25, 0x60, 0x25, + 0x29, 0, 22, 0xF5, 0x01, 0x00, 0x01, 0x11, 0x37, 0x59, 0x11, 0x75, 0x99, 0x12, 0xC0, 0x10, 0x22, 0x5F, 0xA6, 0x33, 0x1D, 0x88, 0x34, 0xE2, 0x33, + 0x29, 0, 18, 0xF6, 0x44, 0x7A, 0xFD, 0x55, 0x6C, 0xDD, 0x66, 0x38, 0x8C, 0x78, 0xA8, 0x24, 0x88, 0x41, 0x5D, 0x80, 0x5D, + 0x29, 0, 2, 0xFF, 0x01, + + 0x29, 0, 5, 0xFE, 0x01, 0x04, 0x00, 0x00, + 0x29, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x03, 0x2D, 0x00, 0x59, 0x86, 0x01, 0xB9, 0x1B, 0x11, 0x71, 0xBF, 0x22, 0x45, 0xB3, 0x33, 0x14, 0x63, + 0x29, 0, 18, 0xF2, 0x34, 0xAE, 0x2B, 0x45, 0x9A, 0x01, 0x55, 0x5B, 0xAF, 0x67, 0xC9, 0x44, 0x77, 0x61, 0x7F, 0x70, 0x7F, + 0x29, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x2E, 0x42, 0x00, 0x52, 0x61, 0x00, 0x76, 0xAB, 0x01, 0xE3, 0x1F, 0x11, 0x89, 0xEE, 0x22, 0x44, 0x8E, + 0x29, 0, 18, 0xF4, 0x23, 0xD4, 0x4A, 0x34, 0xAE, 0x08, 0x44, 0x5C, 0xA7, 0x56, 0xA9, 0x1A, 0x66, 0x33, 0x4E, 0x60, 0x4E, + 0x29, 0, 22, 0xF5, 0x01, 0x00, 0x07, 0x11, 0x34, 0x53, 0x11, 0x74, 0x9A, 0x12, 0xC2, 0x16, 0x22, 0x65, 0xAC, 0x33, 0x2F, 0x9C, 0x34, 0xFA, 0x4B, + 0x29, 0, 18, 0xF6, 0x45, 0x99, 0x1E, 0x55, 0x91, 0xFE, 0x66, 0x59, 0xAE, 0x78, 0xD2, 0x51, 0x88, 0x70, 0x8F, 0x80, 0x8F, + 0x29, 0, 2, 0xFF, 0x01, + + 0x29, 0, 5, 0xFE, 0x01, 0x05, 0x00, 0x00, + 0x29, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x27, 0x00, 0x4F, 0x7B, 0x01, 0xA4, 0x02, 0x11, 0x57, 0xA5, 0x22, 0x2D, 0xA4, 0x23, 0xFF, 0x55, + 0x29, 0, 18, 0xF2, 0x34, 0x9F, 0x1D, 0x44, 0x8E, 0xF1, 0x55, 0x4B, 0x9A, 0x67, 0xB5, 0x32, 0x77, 0x4A, 0x67, 0x70, 0x67, + 0x29, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x3A, 0x4E, 0x00, 0x5F, 0x6D, 0x00, 0x80, 0xA9, 0x01, 0xDD, 0x10, 0x11, 0x76, 0xDD, 0x22, 0x2F, 0x7E, + 0x29, 0, 18, 0xF4, 0x23, 0xC6, 0x3E, 0x33, 0xA4, 0xFB, 0x44, 0x4D, 0x94, 0x56, 0x96, 0x07, 0x66, 0x20, 0x3A, 0x60, 0x3A, + 0x29, 0, 22, 0xF5, 0x00, 0x00, 0xD6, 0x11, 0x56, 0x70, 0x11, 0x91, 0xB0, 0x12, 0xD2, 0x21, 0x22, 0x6E, 0xB4, 0x33, 0x2F, 0x9C, 0x34, 0xF0, 0x44, + 0x29, 0, 18, 0xF6, 0x45, 0x92, 0x15, 0x55, 0x89, 0xF1, 0x66, 0x4C, 0x9C, 0x78, 0xBE, 0x3F, 0x88, 0x59, 0x79, 0x80, 0x79, + 0x29, 0, 2, 0xFF, 0x01, + + 0x29, 0, 5, 0xFE, 0x01, 0x06, 0x00, 0x00, + 0x29, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x22, 0x00, 0x41, 0x63, 0x00, 0x87, 0xD7, 0x11, 0x24, 0x76, 0x22, 0x10, 0x90, 0x23, 0xF2, 0x4E, + 0x29, 0, 18, 0xF2, 0x34, 0x96, 0x1B, 0x44, 0x90, 0xEE, 0x55, 0x4E, 0x9A, 0x67, 0xB9, 0x31, 0x77, 0x4B, 0x5C, 0x70, 0x5C, + 0x29, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x5D, 0x78, 0x00, 0x85, 0x92, 0x00, 0xA2, 0xC0, 0x01, 0xE1, 0x0C, 0x11, 0x68, 0xD1, 0x22, 0x26, 0x7A, + 0x29, 0, 18, 0xF4, 0x23, 0xBD, 0x39, 0x33, 0xA5, 0xF7, 0x44, 0x4E, 0x96, 0x56, 0x99, 0x08, 0x66, 0x20, 0x2E, 0x60, 0x2E, + 0x29, 0, 22, 0xF5, 0x00, 0x00, 0xAC, 0x11, 0xA0, 0xBE, 0x11, 0xD8, 0xF4, 0x22, 0x10, 0x51, 0x22, 0x90, 0xD0, 0x33, 0x43, 0xAC, 0x34, 0xFF, 0x52, + 0x29, 0, 18, 0xF6, 0x45, 0x98, 0x1F, 0x55, 0x94, 0xF6, 0x66, 0x54, 0xA0, 0x78, 0xC4, 0x40, 0x88, 0x5B, 0x6B, 0x80, 0x6B, + 0x29, 0, 2, 0xFF, 0x01, + + 0x29, 0, 5, 0xFE, 0x01, 0x07, 0x00, 0x00, + 0x29, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x39, 0x00, 0x63, 0x7E, 0x00, 0x98, 0xC9, 0x01, 0xFF, 0x40, 0x12, 0xCE, 0x5C, 0x23, 0xD3, 0x2F, + 0x29, 0, 18, 0xF2, 0x34, 0x86, 0x08, 0x44, 0x8C, 0xEF, 0x55, 0x4C, 0x9F, 0x67, 0xB9, 0x2A, 0x77, 0x51, 0x65, 0x70, 0x65, + 0x29, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0xCE, 0x00, 0xE0, 0xEF, 0x01, 0xFA, 0x11, 0x11, 0x25, 0x40, 0x11, 0x83, 0xD4, 0x22, 0x26, 0x6F, + 0x29, 0, 18, 0xF4, 0x23, 0xBB, 0x31, 0x33, 0xA2, 0xFA, 0x44, 0x4F, 0x9A, 0x56, 0x9A, 0x03, 0x66, 0x24, 0x37, 0x60, 0x37, + 0x29, 0, 22, 0xF5, 0x00, 0x00, 0x2B, 0x22, 0x59, 0x73, 0x22, 0x85, 0x9A, 0x22, 0xB3, 0xDB, 0x33, 0x05, 0x31, 0x33, 0x87, 0xDD, 0x44, 0x31, 0x78, + 0x29, 0, 18, 0xF6, 0x45, 0xC0, 0x36, 0x56, 0xB0, 0x10, 0x66, 0x68, 0xB7, 0x78, 0xCE, 0x43, 0x88, 0x6A, 0x80, 0x80, 0x80, + 0x29, 0, 2, 0xFF, 0x01, + + 0x29, 0, 5, 0xFE, 0x01, 0x08, 0x00, 0x00, + 0x29, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x62, 0x8D, 0x00, 0xA2, 0xC9, 0x01, 0xF9, 0x2A, 0x12, 0xA7, 0x3B, 0x23, 0xBF, 0x2B, + 0x29, 0, 18, 0xF2, 0x34, 0x84, 0x1B, 0x45, 0x9C, 0x05, 0x55, 0x69, 0xC0, 0x67, 0xDF, 0x5E, 0x77, 0x78, 0x95, 0x70, 0x95, + 0x29, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x18, 0x11, 0x25, 0x3C, 0x11, 0x4B, 0x64, 0x11, 0x81, 0x96, 0x12, 0xCC, 0x0E, 0x22, 0x53, 0x9A, + 0x29, 0, 18, 0xF4, 0x23, 0xDC, 0x53, 0x34, 0xBB, 0x18, 0x44, 0x6B, 0xBB, 0x56, 0xBE, 0x34, 0x66, 0x4F, 0x66, 0x60, 0x66, + 0x29, 0, 22, 0xF5, 0x01, 0x00, 0x29, 0x23, 0x15, 0x1E, 0x33, 0x30, 0x3D, 0x33, 0x4C, 0x6C, 0x33, 0x8E, 0xB1, 0x34, 0xF0, 0x3C, 0x44, 0x82, 0xC8, + 0x29, 0, 18, 0xF6, 0x55, 0x06, 0x82, 0x56, 0xF0, 0x4B, 0x66, 0xA4, 0xF0, 0x88, 0x07, 0x8C, 0x88, 0xA1, 0xBD, 0x80, 0xBD, + 0x29, 0, 2, 0xFF, 0x01, + + 0x29, 0, 5, 0xFE, 0x01, 0x09, 0x00, 0x00, + 0x29, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0x05, 0x00, 0x70, 0x9C, 0x00, 0xB3, 0xD2, 0x11, 0x04, 0x4C, 0x12, 0xA5, 0x06, + 0x29, 0, 18, 0xF2, 0x23, 0x69, 0x03, 0x33, 0x84, 0xE4, 0x44, 0x42, 0x90, 0x56, 0x98, 0x06, 0x66, 0x21, 0x36, 0x60, 0x36, + 0x29, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x01, 0x08, 0x0E, 0x11, 0x28, 0x40, 0x11, 0x55, 0x64, 0x11, 0x82, 0xA3, 0x11, 0xC9, 0xF2, + 0x29, 0, 18, 0xF4, 0x22, 0x23, 0x7B, 0x23, 0xD9, 0x23, 0x33, 0x6E, 0xAD, 0x44, 0x93, 0xF6, 0x55, 0x0E, 0x23, 0x50, 0x23, + 0x29, 0, 22, 0xF5, 0x00, 0x00, 0x02, 0x11, 0x72, 0xB8, 0x33, 0x1E, 0x24, 0x33, 0x2E, 0x42, 0x33, 0x59, 0x6D, 0x33, 0x98, 0xC1, 0x34, 0xF0, 0x1E, + 0x29, 0, 18, 0xF6, 0x44, 0x52, 0xA9, 0x55, 0x05, 0x53, 0x55, 0x9C, 0xE1, 0x67, 0xCE, 0x34, 0x77, 0x4E, 0x64, 0x70, 0x64, + 0x29, 0, 2, 0xFF, 0x01, + + 0x29, 0, 5, 0xFE, 0x01, 0x00, 0x01, 0x00, + 0x29, 0, 22, 0xF1, 0x00, 0x00, 0xE4, 0x11, 0x37, 0x96, 0x12, 0xF5, 0x4D, 0x23, 0x9A, 0x20, 0x33, 0x8E, 0xEE, 0x45, 0x8C, 0x0D, 0x55, 0x7E, 0xE6, + 0x29, 0, 18, 0xF2, 0x66, 0x44, 0xF2, 0x78, 0x8A, 0x16, 0x89, 0x97, 0x19, 0xAB, 0xF7, 0xE5, 0xCC, 0x20, 0x62, 0xC0, 0x62, + 0x29, 0, 22, 0xF3, 0x00, 0x00, 0xF8, 0x11, 0x28, 0x57, 0x11, 0x8E, 0xC8, 0x22, 0x02, 0x71, 0x23, 0xD1, 0x28, 0x34, 0xBB, 0x32, 0x44, 0x99, 0xF5, + 0x29, 0, 18, 0xF4, 0x55, 0x4A, 0xE0, 0x66, 0x68, 0xE4, 0x77, 0x57, 0xC6, 0x9A, 0x5D, 0x23, 0xAA, 0x56, 0x8E, 0xA0, 0x8E, + 0x29, 0, 22, 0xF5, 0x01, 0x00, 0xF9, 0x22, 0x47, 0x96, 0x23, 0xEC, 0x3B, 0x34, 0x86, 0x09, 0x44, 0x76, 0xD6, 0x56, 0x7A, 0x03, 0x66, 0x7A, 0xE6, + 0x29, 0, 18, 0xF6, 0x77, 0x4A, 0xFF, 0x89, 0x9E, 0x33, 0x9A, 0xBE, 0x47, 0xCD, 0x4A, 0x55, 0xDD, 0x9B, 0xE0, 0xD0, 0xE0, + 0x29, 0, 2, 0xFF, 0x01, + + 0x29, 0, 5, 0xFE, 0x01, 0x01, 0x01, 0x00, + 0x29, 0, 22, 0xF1, 0x01, 0x00, 0x4F, 0x11, 0x8D, 0xCF, 0x22, 0x1B, 0x66, 0x23, 0xAD, 0x29, 0x33, 0x92, 0xEE, 0x45, 0x86, 0x07, 0x55, 0x75, 0xDA, + 0x29, 0, 18, 0xF2, 0x66, 0x39, 0xE1, 0x77, 0x73, 0xF9, 0x88, 0x7A, 0xF3, 0xAB, 0xC0, 0xA4, 0xBC, 0xE0, 0x1B, 0xC0, 0x1B, + 0x29, 0, 22, 0xF3, 0x01, 0x00, 0x5F, 0x11, 0x82, 0xA2, 0x11, 0xC6, 0xF1, 0x22, 0x22, 0x81, 0x23, 0xDA, 0x2A, 0x34, 0xB4, 0x29, 0x44, 0x8C, 0xE6, + 0x29, 0, 18, 0xF4, 0x55, 0x39, 0xCD, 0x66, 0x50, 0xC8, 0x77, 0x3A, 0xA4, 0x99, 0x2B, 0xEB, 0xAA, 0x1C, 0x4B, 0xA0, 0x4B, + 0x29, 0, 22, 0xF5, 0x02, 0x00, 0x43, 0x22, 0x83, 0xC4, 0x33, 0x0C, 0x51, 0x34, 0x96, 0x0F, 0x44, 0x78, 0xD4, 0x55, 0x74, 0xFA, 0x66, 0x6F, 0xD9, + 0x29, 0, 18, 0xF6, 0x77, 0x3B, 0xEA, 0x89, 0x84, 0x13, 0x9A, 0x9C, 0x1D, 0xCD, 0x0B, 0x0F, 0xDD, 0x56, 0x93, 0xD0, 0x93, + 0x29, 0, 2, 0xFF, 0x01, + + 0x29, 0, 5, 0xFE, 0x01, 0x02, 0x01, 0x00, + 0x29, 0, 22, 0xF1, 0x01, 0x00, 0x48, 0x11, 0x87, 0xC5, 0x22, 0x09, 0x51, 0x23, 0x94, 0x0B, 0x33, 0x73, 0xCD, 0x44, 0x61, 0xDD, 0x55, 0x4C, 0xAF, + 0x29, 0, 18, 0xF2, 0x66, 0x09, 0xA9, 0x77, 0x3A, 0xBD, 0x88, 0x38, 0xA9, 0xAB, 0x5B, 0x31, 0xBB, 0x66, 0x94, 0xB0, 0x94, + 0x29, 0, 22, 0xF3, 0x01, 0x00, 0x5E, 0x11, 0x80, 0x9C, 0x11, 0xBE, 0xE5, 0x22, 0x11, 0x6B, 0x23, 0xC0, 0x0C, 0x34, 0x92, 0x03, 0x44, 0x66, 0xBF, + 0x29, 0, 18, 0xF4, 0x55, 0x0F, 0x9E, 0x66, 0x1C, 0x91, 0x67, 0xFD, 0x62, 0x89, 0xD7, 0x8C, 0x99, 0xB8, 0xE3, 0x90, 0xE3, + 0x29, 0, 22, 0xF5, 0x02, 0x00, 0x42, 0x22, 0x7D, 0xB9, 0x23, 0xFB, 0x3C, 0x33, 0x7E, 0xF3, 0x44, 0x59, 0xB3, 0x55, 0x4D, 0xD0, 0x66, 0x44, 0xAD, + 0x29, 0, 18, 0xF6, 0x77, 0x0A, 0xB2, 0x88, 0x48, 0xD2, 0x99, 0x54, 0xCF, 0xBC, 0x9E, 0x8B, 0xCC, 0xC8, 0xFE, 0xC0, 0xFE, + 0x29, 0, 2, 0xFF, 0x01, + + 0x29, 0, 5, 0xFE, 0x01, 0x03, 0x01, 0x00, + 0x29, 0, 22, 0xF1, 0x00, 0x00, 0x59, 0x11, 0x76, 0xA2, 0x12, 0xD2, 0x07, 0x22, 0x3F, 0xA9, 0x33, 0x04, 0x56, 0x34, 0xDF, 0x53, 0x45, 0xB9, 0x10, + 0x29, 0, 18, 0xF2, 0x55, 0x62, 0xF5, 0x66, 0x76, 0xED, 0x77, 0x59, 0xBA, 0x99, 0x23, 0xCB, 0x9A, 0xF3, 0x23, 0xA0, 0x23, + 0x29, 0, 22, 0xF3, 0x01, 0x00, 0x4E, 0x11, 0x78, 0x8D, 0x11, 0xA3, 0xBC, 0x12, 0xDB, 0x1F, 0x22, 0x65, 0xA7, 0x33, 0x1E, 0x85, 0x34, 0xE2, 0x32, + 0x29, 0, 18, 0xF4, 0x44, 0x7A, 0xFE, 0x55, 0x71, 0xD6, 0x66, 0x36, 0x8F, 0x78, 0xCE, 0x5C, 0x88, 0x81, 0xA4, 0x80, 0xA4, + 0x29, 0, 22, 0xF5, 0x02, 0x00, 0x37, 0x22, 0x6C, 0x97, 0x22, 0xC5, 0xF8, 0x33, 0x2E, 0x91, 0x34, 0xEC, 0x3D, 0x45, 0xC6, 0x3E, 0x56, 0xAA, 0x06, + 0x29, 0, 18, 0xF6, 0x66, 0x5B, 0xF5, 0x77, 0x7B, 0xF6, 0x88, 0x66, 0xCF, 0xAB, 0x50, 0x04, 0xBB, 0x32, 0x5A, 0xB0, 0x5A, + 0x29, 0, 2, 0xFF, 0x01, + + 0x29, 0, 5, 0xFE, 0x01, 0x04, 0x01, 0x00, + 0x29, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x11, 0x61, 0x7E, 0x11, 0x9E, 0xC3, 0x12, 0xEA, 0x3A, 0x22, 0x88, 0xD0, 0x33, 0x4E, 0xBA, 0x44, 0x16, 0x66, + 0x29, 0, 18, 0xF2, 0x45, 0xB1, 0x33, 0x56, 0xA4, 0x0B, 0x66, 0x6A, 0xBF, 0x78, 0xF4, 0x7A, 0x88, 0x9A, 0xB9, 0x80, 0xB9, + 0x29, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x11, 0x6B, 0x7E, 0x11, 0x8E, 0x9F, 0x11, 0xB0, 0xDA, 0x22, 0x0A, 0x3D, 0x22, 0xA0, 0xFA, 0x33, 0x4C, 0x96, + 0x29, 0, 18, 0xF4, 0x34, 0xD9, 0x50, 0x45, 0xB6, 0x11, 0x55, 0x65, 0xB4, 0x67, 0xC3, 0x3B, 0x77, 0x58, 0x74, 0x70, 0x74, + 0x29, 0, 22, 0xF5, 0x02, 0x00, 0x32, 0x22, 0x61, 0x80, 0x22, 0x9F, 0xC2, 0x23, 0xE5, 0x32, 0x33, 0x7B, 0xC3, 0x44, 0x3C, 0xA5, 0x55, 0x03, 0x56, + 0x29, 0, 18, 0xF6, 0x56, 0xA3, 0x2C, 0x67, 0xA2, 0x0D, 0x77, 0x72, 0xCF, 0x99, 0x0F, 0x9E, 0x99, 0xC1, 0xE1, 0x90, 0xE1, + 0x29, 0, 2, 0xFF, 0x01, + + 0x29, 0, 5, 0xFE, 0x01, 0x05, 0x01, 0x00, + 0x29, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x11, 0x42, 0x65, 0x11, 0x82, 0xA1, 0x12, 0xC2, 0x07, 0x22, 0x50, 0x97, 0x33, 0x14, 0x7E, 0x34, 0xDA, 0x2A, + 0x29, 0, 18, 0xF2, 0x44, 0x71, 0xED, 0x55, 0x5C, 0xBB, 0x66, 0x16, 0x69, 0x78, 0x8B, 0x03, 0x88, 0x26, 0x39, 0x80, 0x39, + 0x29, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x11, 0x7F, 0x90, 0x11, 0x9D, 0xAA, 0x11, 0xB7, 0xD5, 0x12, 0xF7, 0x20, 0x22, 0x78, 0xCC, 0x33, 0x18, 0x60, + 0x29, 0, 18, 0xF4, 0x34, 0xA0, 0x11, 0x44, 0x74, 0xCB, 0x55, 0x1A, 0x64, 0x66, 0x5F, 0xD2, 0x67, 0xEC, 0x06, 0x70, 0x06, + 0x29, 0, 22, 0xF5, 0x01, 0x00, 0x49, 0x22, 0x7C, 0x97, 0x22, 0xB3, 0xCD, 0x23, 0xE9, 0x26, 0x33, 0x64, 0xA1, 0x44, 0x11, 0x75, 0x45, 0xCA, 0x1B, + 0x29, 0, 18, 0xF6, 0x55, 0x64, 0xE4, 0x66, 0x58, 0xBD, 0x77, 0x1B, 0x70, 0x89, 0x9A, 0x1E, 0x99, 0x3D, 0x5D, 0x90, 0x5D, + 0x29, 0, 2, 0xFF, 0x01, + + 0x29, 0, 5, 0xFE, 0x01, 0x06, 0x01, 0x00, + 0x29, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x11, 0x97, 0xBB, 0x12, 0xDD, 0x03, 0x22, 0x2E, 0x87, 0x23, 0xDA, 0x2B, 0x34, 0xB6, 0x23, 0x44, 0x83, 0xD9, + 0x29, 0, 18, 0xF2, 0x55, 0x29, 0xAD, 0x66, 0x2B, 0x97, 0x67, 0xFB, 0x58, 0x89, 0x9A, 0x2C, 0x99, 0x4E, 0x76, 0x90, 0x76, + 0x29, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x11, 0xE5, 0xF8, 0x22, 0x08, 0x17, 0x22, 0x28, 0x50, 0x22, 0x7B, 0xAC, 0x33, 0x0F, 0x6B, 0x34, 0xBF, 0x09, + 0x29, 0, 18, 0xF4, 0x44, 0x4E, 0xC5, 0x55, 0x31, 0x90, 0x56, 0xEA, 0x3C, 0x77, 0x59, 0xD6, 0x78, 0xF3, 0x11, 0x80, 0x11, + 0x29, 0, 22, 0xF5, 0x02, 0x00, 0x0E, 0x23, 0xF8, 0x15, 0x33, 0x35, 0x54, 0x33, 0x75, 0xB9, 0x34, 0xFB, 0x3E, 0x45, 0xB8, 0x21, 0x55, 0x80, 0xD7, + 0x29, 0, 18, 0xF6, 0x66, 0x29, 0xB5, 0x77, 0x33, 0xA4, 0x88, 0x0B, 0x6A, 0x9A, 0xC0, 0x5C, 0xAA, 0x81, 0xA4, 0xA0, 0xA4, + 0x29, 0, 2, 0xFF, 0x01, + + 0x29, 0, 5, 0xFE, 0x01, 0x07, 0x01, 0x00, + 0x29, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x22, 0x25, 0x55, 0x22, 0x75, 0x93, 0x23, 0xB9, 0x06, 0x33, 0x52, 0x99, 0x44, 0x1D, 0x93, 0x45, 0xF4, 0x4A, + 0x29, 0, 18, 0xF2, 0x56, 0x99, 0x2A, 0x67, 0xA9, 0x1A, 0x77, 0x85, 0xE8, 0x99, 0x41, 0xDF, 0xAA, 0x05, 0x27, 0xA0, 0x27, + 0x29, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x22, 0xB8, 0xD1, 0x22, 0xE2, 0xEF, 0x23, 0xFB, 0x15, 0x33, 0x35, 0x58, 0x33, 0xA4, 0xF3, 0x44, 0x3F, 0x87, + 0x29, 0, 18, 0xF4, 0x45, 0xC8, 0x41, 0x56, 0xAC, 0x0D, 0x66, 0x6B, 0xC0, 0x78, 0xEB, 0x6E, 0x88, 0x8E, 0xAD, 0x80, 0xAD, + 0x29, 0, 22, 0xF5, 0x02, 0x00, 0x2C, 0x33, 0xEB, 0xFF, 0x44, 0x15, 0x2A, 0x44, 0x43, 0x77, 0x44, 0xAC, 0xE0, 0x55, 0x4A, 0xB2, 0x66, 0x0D, 0x63, + 0x29, 0, 18, 0xF6, 0x67, 0xB0, 0x40, 0x78, 0xC1, 0x33, 0x89, 0xA0, 0x08, 0xAB, 0x77, 0x20, 0xBB, 0x49, 0x6F, 0xB0, 0x6F, + 0x29, 0, 2, 0xFF, 0x01, + + 0x29, 0, 5, 0xFE, 0x01, 0x08, 0x01, 0x00, + 0x29, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x16, 0x22, 0xC7, 0xDD, 0x23, 0xF0, 0x18, 0x33, 0x3F, 0x6E, 0x34, 0xC3, 0x16, 0x44, 0x64, 0xAD, + 0x29, 0, 18, 0xF2, 0x45, 0xF3, 0x73, 0x56, 0xDF, 0x3F, 0x66, 0x99, 0xEE, 0x88, 0x12, 0x91, 0x88, 0xB0, 0xC8, 0x80, 0xC8, + 0x29, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x03, 0x02, 0x54, 0x33, 0x6C, 0x79, 0x33, 0x83, 0x90, 0x33, 0xA0, 0xAF, 0x33, 0xCD, 0xF0, 0x44, 0x17, 0x41, + 0x29, 0, 18, 0xF4, 0x44, 0x6B, 0xC2, 0x55, 0x18, 0x67, 0x55, 0xB1, 0xF7, 0x67, 0xEE, 0x5C, 0x77, 0x76, 0x8E, 0x70, 0x8E, + 0x29, 0, 22, 0xF5, 0x00, 0x00, 0x63, 0x34, 0x9F, 0x96, 0x44, 0xA7, 0xB4, 0x44, 0xBC, 0xD5, 0x45, 0xED, 0x08, 0x55, 0x44, 0x7E, 0x55, 0xB9, 0xF7, + 0x29, 0, 18, 0xF6, 0x66, 0x33, 0xA6, 0x77, 0x0C, 0x6A, 0x78, 0xC2, 0x16, 0x99, 0x40, 0xC6, 0x9A, 0xE6, 0x03, 0xA0, 0x03, + 0x29, 0, 2, 0xFF, 0x01, + + 0x29, 0, 5, 0xFE, 0x01, 0x09, 0x01, 0x00, + 0x29, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0x05, 0x0F, 0x55, 0xF9, 0xFF, 0xF9, 0xF9, 0xFF, 0xF9, 0xF9, 0xF3, 0xFA, 0xA4, + 0x29, 0, 18, 0xF2, 0x34, 0xBC, 0x0C, 0x44, 0x56, 0x9D, 0x45, 0xE1, 0x25, 0x56, 0xF9, 0x54, 0x66, 0x6A, 0x7C, 0x60, 0x7C, + 0x29, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x07, 0x04, 0xB0, 0xFF, 0xFB, 0xF9, 0xFF, 0xF9, 0xF9, 0xFF, 0xF9, 0xF9, 0xF3, 0xFA, 0xCD, + 0x29, 0, 18, 0xF4, 0x33, 0xC9, 0xEA, 0x44, 0x11, 0x37, 0x44, 0x5F, 0x89, 0x55, 0x2E, 0x78, 0x55, 0x8A, 0x9B, 0x50, 0x9B, + 0x29, 0, 22, 0xF5, 0x00, 0x00, 0xDC, 0x37, 0x0F, 0xD5, 0xEF, 0xB7, 0xFD, 0xFF, 0xFB, 0xF9, 0xFF, 0xF9, 0xF9, 0xFF, 0xF9, 0xF9, 0xF5, 0xFA, 0x36, + 0x29, 0, 18, 0xF6, 0x55, 0x3E, 0x76, 0x55, 0xB0, 0xEA, 0x66, 0x23, 0x5F, 0x77, 0x27, 0x7F, 0x77, 0x94, 0xA7, 0x70, 0xA7, + 0x29, 0, 2, 0xFF, 0x01, + + 0x29, 0, 5, 0xFE, 0x01, 0x00, 0x02, 0x00, + 0x29, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x16, 0x00, 0x6B, 0xC7, 0x11, 0x1B, 0xA8, 0x22, 0x1C, 0x88, 0x33, 0x34, 0xBF, 0x44, 0x35, 0xA7, + 0x29, 0, 18, 0xF2, 0x55, 0x0C, 0xC7, 0x67, 0x73, 0x05, 0x78, 0x9D, 0x1E, 0xAB, 0x35, 0x46, 0xBB, 0x92, 0xCA, 0xB0, 0xCA, + 0x29, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0x3F, 0x00, 0x7B, 0xED, 0x11, 0x53, 0xB1, 0x22, 0x50, 0xD1, 0x33, 0x40, 0xA1, + 0x29, 0, 18, 0xF4, 0x34, 0xFB, 0x9F, 0x55, 0x38, 0xBF, 0x66, 0x40, 0xB9, 0x89, 0x78, 0x55, 0x99, 0x93, 0xC5, 0x90, 0xC5, + 0x29, 0, 22, 0xF5, 0x00, 0x00, 0x01, 0x01, 0xD3, 0x21, 0x11, 0x75, 0xC5, 0x22, 0x0F, 0x97, 0x33, 0x0E, 0x77, 0x44, 0x1C, 0xB1, 0x55, 0x39, 0xAD, + 0x29, 0, 18, 0xF6, 0x66, 0x19, 0xD9, 0x78, 0x87, 0x27, 0x89, 0xBF, 0x50, 0xBC, 0x8F, 0xB8, 0xDD, 0x06, 0x42, 0xD0, 0x42, + 0x29, 0, 2, 0xFF, 0x01, + + 0x29, 0, 5, 0xFE, 0x01, 0x01, 0x02, 0x00, + 0x29, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x15, 0x4A, 0x00, 0x8C, 0xD2, 0x11, 0x17, 0x96, 0x22, 0x03, 0x61, 0x33, 0x00, 0x88, 0x34, 0xF9, 0x60, + 0x29, 0, 18, 0xF2, 0x45, 0xC7, 0x76, 0x66, 0x15, 0xA4, 0x77, 0x29, 0xAC, 0x9A, 0x84, 0x74, 0xAA, 0xAD, 0xE9, 0xA0, 0xE9, + 0x29, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x1E, 0x00, 0x3F, 0x65, 0x00, 0x92, 0xED, 0x11, 0x43, 0x95, 0x22, 0x23, 0x9F, 0x33, 0x07, 0x64, + 0x29, 0, 18, 0xF4, 0x34, 0xBB, 0x54, 0x45, 0xE0, 0x62, 0x56, 0xDA, 0x4B, 0x78, 0xDD, 0xA0, 0x89, 0xD2, 0x08, 0x90, 0x08, + 0x29, 0, 22, 0xF5, 0x00, 0x00, 0xDC, 0x11, 0x19, 0x4D, 0x11, 0x8A, 0xCB, 0x22, 0x08, 0x82, 0x23, 0xED, 0x4D, 0x34, 0xEB, 0x7A, 0x45, 0xF2, 0x65, + 0x29, 0, 18, 0xF6, 0x56, 0xCD, 0x85, 0x77, 0x29, 0xBD, 0x88, 0x48, 0xD1, 0xAB, 0xD5, 0xD5, 0xCC, 0x15, 0x52, 0xC0, 0x52, + 0x29, 0, 2, 0xFF, 0x01, + + 0x29, 0, 5, 0xFE, 0x01, 0x02, 0x02, 0x00, + 0x29, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x03, 0x26, 0x00, 0x4F, 0x7E, 0x01, 0xB0, 0x16, 0x11, 0x75, 0xC9, 0x22, 0x58, 0xD4, 0x33, 0x3C, 0x98, + 0x29, 0, 18, 0xF2, 0x34, 0xEB, 0x85, 0x55, 0x0D, 0x8A, 0x56, 0xFF, 0x69, 0x78, 0xE6, 0x98, 0x88, 0xC0, 0xE8, 0x80, 0xE8, + 0x29, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x0C, 0x00, 0x21, 0x38, 0x00, 0x54, 0x91, 0x01, 0xD2, 0x14, 0x11, 0x8C, 0xF9, 0x22, 0x59, 0xAD, + 0x29, 0, 18, 0xF4, 0x23, 0xFB, 0x82, 0x34, 0xF7, 0x65, 0x45, 0xCB, 0x2C, 0x67, 0x7F, 0x15, 0x77, 0x39, 0x60, 0x70, 0x60, + 0x29, 0, 22, 0xF5, 0x00, 0x00, 0xC9, 0x11, 0x04, 0x2B, 0x11, 0x51, 0x7E, 0x12, 0xAD, 0x09, 0x22, 0x63, 0xB9, 0x33, 0x44, 0xBE, 0x44, 0x26, 0x89, + 0x29, 0, 18, 0xF6, 0x45, 0xE4, 0x89, 0x66, 0x19, 0x9A, 0x77, 0x10, 0x81, 0x99, 0x13, 0xD1, 0x9A, 0xFE, 0x2D, 0xA0, 0x2D, + 0x29, 0, 2, 0xFF, 0x01, + + 0x29, 0, 5, 0xFE, 0x01, 0x03, 0x02, 0x00, + 0x29, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x14, 0x2A, 0x00, 0x41, 0x77, 0x00, 0xB2, 0xEA, 0x11, 0x5B, 0xBF, 0x22, 0x17, 0x64, + 0x29, 0, 18, 0xF2, 0x23, 0xAC, 0x28, 0x33, 0x97, 0xF7, 0x44, 0x4D, 0xA4, 0x56, 0xCA, 0x47, 0x66, 0x67, 0x86, 0x60, 0x86, + 0x29, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0x0D, 0x00, 0x1B, 0x34, 0x00, 0x53, 0x76, 0x01, 0xC1, 0x0B, 0x11, 0x54, 0x97, + 0x29, 0, 18, 0xF4, 0x12, 0xD6, 0x48, 0x23, 0xAC, 0x04, 0x33, 0x54, 0x9D, 0x45, 0x9D, 0x0D, 0x55, 0x29, 0x45, 0x50, 0x45, + 0x29, 0, 22, 0xF5, 0x00, 0x00, 0x20, 0x01, 0xE7, 0x02, 0x11, 0x18, 0x2F, 0x11, 0x45, 0x76, 0x11, 0xAB, 0xE3, 0x22, 0x48, 0xAB, 0x33, 0x04, 0x50, + 0x29, 0, 18, 0xF6, 0x34, 0x9A, 0x13, 0x44, 0x88, 0xF0, 0x55, 0x53, 0xAC, 0x67, 0xDC, 0x5E, 0x77, 0x7F, 0x9F, 0x70, 0x9F, + 0x29, 0, 2, 0xFF, 0x01, + + 0x29, 0, 5, 0xFE, 0x01, 0x04, 0x02, 0x00, + 0x29, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x09, 0x23, 0x00, 0x3B, 0x77, 0x00, 0xAF, 0xEC, 0x11, 0x64, 0xCC, 0x22, 0x24, 0x78, + 0x29, 0, 18, 0xF2, 0x23, 0xC1, 0x43, 0x34, 0xB2, 0x10, 0x44, 0x6E, 0xC4, 0x56, 0xF4, 0x78, 0x66, 0x8F, 0xAF, 0x60, 0xAF, + 0x29, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0x0B, 0x00, 0x16, 0x32, 0x00, 0x52, 0x78, 0x01, 0xC6, 0x14, 0x11, 0x60, 0xA5, + 0x29, 0, 18, 0xF4, 0x12, 0xE6, 0x5C, 0x23, 0xC3, 0x1D, 0x33, 0x6F, 0xB7, 0x45, 0xC0, 0x31, 0x55, 0x4C, 0x68, 0x50, 0x68, + 0x29, 0, 22, 0xF5, 0x00, 0x00, 0x01, 0x01, 0xED, 0x06, 0x11, 0x20, 0x38, 0x11, 0x4B, 0x80, 0x11, 0xB9, 0xF3, 0x22, 0x5D, 0xC3, 0x33, 0x1C, 0x6B, + 0x29, 0, 18, 0xF6, 0x34, 0xB4, 0x31, 0x45, 0xA9, 0x13, 0x55, 0x77, 0xCE, 0x77, 0x05, 0x8D, 0x77, 0xAD, 0xCA, 0x70, 0xCA, + 0x29, 0, 2, 0xFF, 0x01, + + 0x29, 0, 5, 0xFE, 0x01, 0x05, 0x02, 0x00, + 0x29, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x15, 0x00, 0x28, 0x3C, 0x00, 0x4D, 0x7F, 0x00, 0xB2, 0xE7, 0x11, 0x54, 0xBB, 0x22, 0x12, 0x65, + 0x29, 0, 18, 0xF2, 0x23, 0xAB, 0x2F, 0x33, 0x99, 0xF9, 0x44, 0x52, 0xA6, 0x56, 0xCC, 0x4C, 0x66, 0x6A, 0x85, 0x60, 0x85, + 0x29, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x13, 0x00, 0x1F, 0x2D, 0x00, 0x36, 0x4E, 0x00, 0x68, 0x86, 0x01, 0xC8, 0x0F, 0x11, 0x57, 0x9B, + 0x29, 0, 18, 0xF4, 0x12, 0xDA, 0x4B, 0x23, 0xAF, 0x07, 0x33, 0x57, 0xA0, 0x45, 0x9F, 0x10, 0x55, 0x2A, 0x45, 0x50, 0x45, + 0x29, 0, 22, 0xF5, 0x00, 0x00, 0x43, 0x11, 0x23, 0x3F, 0x11, 0x50, 0x65, 0x11, 0x79, 0xA4, 0x12, 0xD4, 0x05, 0x22, 0x66, 0xC3, 0x33, 0x18, 0x63, + 0x29, 0, 18, 0xF6, 0x34, 0xA7, 0x24, 0x44, 0x94, 0xFB, 0x55, 0x5C, 0xB6, 0x67, 0xE2, 0x66, 0x77, 0x85, 0xA5, 0x70, 0xA5, + 0x29, 0, 2, 0xFF, 0x01, + + 0x29, 0, 5, 0xFE, 0x01, 0x06, 0x02, 0x00, + 0x29, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x2A, 0x00, 0x40, 0x51, 0x00, 0x63, 0x8B, 0x00, 0xB7, 0xE9, 0x11, 0x55, 0xB8, 0x22, 0x12, 0x64, + 0x29, 0, 18, 0xF2, 0x23, 0xAF, 0x2F, 0x33, 0x9B, 0xFB, 0x44, 0x56, 0xA9, 0x56, 0xC9, 0x46, 0x66, 0x62, 0x84, 0x60, 0x84, + 0x29, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x44, 0x5B, 0x00, 0x6C, 0x77, 0x00, 0x83, 0x95, 0x00, 0xAA, 0xC2, 0x01, 0xF8, 0x33, 0x11, 0x72, 0xAD, + 0x29, 0, 18, 0xF4, 0x12, 0xEA, 0x5A, 0x23, 0xB9, 0x0E, 0x33, 0x5E, 0xA5, 0x45, 0xA1, 0x0C, 0x55, 0x28, 0x42, 0x50, 0x42, + 0x29, 0, 22, 0xF5, 0x00, 0x00, 0xBE, 0x11, 0x8A, 0xA3, 0x11, 0xB8, 0xC9, 0x12, 0xDD, 0x00, 0x22, 0x22, 0x49, 0x22, 0x9B, 0xE7, 0x33, 0x33, 0x7A, + 0x29, 0, 18, 0xF6, 0x34, 0xBE, 0x32, 0x45, 0xA0, 0x06, 0x55, 0x67, 0xBC, 0x67, 0xE0, 0x62, 0x77, 0x7D, 0x9E, 0x70, 0x9E, + 0x29, 0, 2, 0xFF, 0x01, + + 0x29, 0, 5, 0xFE, 0x01, 0x07, 0x02, 0x00, + 0x29, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x98, 0x00, 0xC5, 0xD5, 0x01, 0xE6, 0x05, 0x11, 0x25, 0x45, 0x11, 0x92, 0xE3, 0x22, 0x34, 0x7D, + 0x29, 0, 18, 0xF2, 0x23, 0xC4, 0x3D, 0x34, 0xAB, 0x04, 0x44, 0x61, 0xB3, 0x56, 0xCF, 0x49, 0x66, 0x6B, 0x84, 0x60, 0x84, + 0x29, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x01, 0x02, 0x1F, 0x11, 0x36, 0x41, 0x11, 0x4E, 0x60, 0x11, 0x70, 0x82, 0x11, 0x9F, 0xC0, 0x12, 0xE7, 0x11, + 0x29, 0, 18, 0xF4, 0x22, 0x3D, 0x90, 0x23, 0xE2, 0x2D, 0x33, 0x7A, 0xBB, 0x45, 0xAE, 0x18, 0x55, 0x34, 0x4B, 0x50, 0x4B, + 0x29, 0, 22, 0xF5, 0x00, 0x00, 0x7A, 0x22, 0x80, 0x96, 0x22, 0xA4, 0xB3, 0x22, 0xBF, 0xD4, 0x23, 0xED, 0x06, 0x33, 0x36, 0x66, 0x33, 0xA0, 0xD4, + 0x29, 0, 18, 0xF6, 0x44, 0x0A, 0x72, 0x45, 0xDB, 0x34, 0x55, 0x8C, 0xDF, 0x67, 0xF8, 0x73, 0x77, 0x92, 0xAC, 0x70, 0xAC, + 0x29, 0, 2, 0xFF, 0x01, + + 0x29, 0, 5, 0xFE, 0x01, 0x08, 0x02, 0x00, + 0x29, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x1F, 0x11, 0x0F, 0x57, 0x11, 0x70, 0x8B, 0x11, 0xA7, 0xC4, 0x22, 0x04, 0x41, 0x22, 0x80, 0xC0, + 0x29, 0, 18, 0xF2, 0x33, 0x00, 0x70, 0x34, 0xD8, 0x38, 0x44, 0x90, 0xE4, 0x66, 0x01, 0x7C, 0x66, 0x98, 0xB5, 0x60, 0xB5, + 0x29, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x08, 0x11, 0xEB, 0xFF, 0x22, 0x0A, 0x1C, 0x22, 0x29, 0x37, 0x22, 0x4D, 0x66, 0x22, 0x82, 0x9C, + 0x29, 0, 18, 0xF4, 0x22, 0xB9, 0xF9, 0x33, 0x3D, 0x7B, 0x33, 0xBB, 0xFB, 0x45, 0xE3, 0x4B, 0x55, 0x65, 0x82, 0x50, 0x82, + 0x29, 0, 22, 0xF5, 0x00, 0x00, 0x01, 0x13, 0x03, 0x23, 0x33, 0x72, 0x7B, 0x33, 0x85, 0x96, 0x33, 0xA7, 0xBA, 0x34, 0xE2, 0x03, 0x44, 0x2D, 0x5A, + 0x29, 0, 18, 0xF6, 0x44, 0x87, 0xE0, 0x55, 0x38, 0x8F, 0x56, 0xE5, 0x30, 0x77, 0x41, 0xBA, 0x77, 0xD7, 0xF0, 0x70, 0xF0, + 0x29, 0, 2, 0xFF, 0x01, + 0x29, 0, 5, 0xFE, 0x01, 0x09, 0x02, 0x00, + 0x29, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0x28, 0x01, 0xB4, 0x61, 0x11, 0x7A, 0x8A, 0x11, 0xAF, 0xD7, 0x22, 0x02, 0x2C, + 0x29, 0, 18, 0xF2, 0x22, 0x54, 0xAA, 0x23, 0xF6, 0x48, 0x33, 0x8E, 0xCC, 0x45, 0xC1, 0x25, 0x55, 0x3F, 0x5B, 0x50, 0x5B, + 0x29, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x01, 0x04, 0x7E, 0x12, 0xF1, 0x03, 0x22, 0x11, 0x1C, 0x22, 0x2C, 0x40, 0x22, 0x4C, 0x5D, + 0x29, 0, 18, 0xF4, 0x22, 0x6E, 0x90, 0x22, 0xB9, 0xE0, 0x33, 0x0A, 0x33, 0x34, 0xE2, 0x2F, 0x44, 0x46, 0x5A, 0x40, 0x5A, + 0x29, 0, 22, 0xF5, 0x00, 0x00, 0x97, 0x02, 0xE4, 0xB3, 0x33, 0x53, 0x66, 0x33, 0x71, 0x80, 0x33, 0x8B, 0x96, 0x33, 0xAD, 0xC6, 0x33, 0xE1, 0xFB, + 0x29, 0, 18, 0xF6, 0x44, 0x0F, 0x48, 0x44, 0x82, 0xC1, 0x45, 0xFC, 0x34, 0x66, 0x14, 0x70, 0x66, 0x87, 0xA1, 0x60, 0xA1, + 0x29, 0, 2, 0xFF, 0x01, + + 0x29, 0, 5, 0xFE, 0x01, 0x00, 0x04, 0x00, + 0x29, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x24, 0x53, 0x00, 0x87, 0xF5, 0x11, 0x4D, 0xB6, 0x22, 0x4E, 0xCD, 0x33, 0x42, 0xA0, + 0x29, 0, 18, 0xF2, 0x34, 0xFE, 0x90, 0x55, 0x14, 0x89, 0x56, 0xFC, 0x61, 0x78, 0xA1, 0x34, 0x88, 0x50, 0x74, 0x80, 0x74, + 0x29, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x05, 0x15, 0x00, 0x26, 0x37, 0x00, 0x4A, 0x7C, 0x00, 0xAC, 0xF5, 0x11, 0x70, 0xDF, 0x22, 0x48, 0x9E, + 0x29, 0, 18, 0xF4, 0x23, 0xFA, 0x7A, 0x34, 0xF3, 0x59, 0x45, 0xC1, 0x15, 0x66, 0x4B, 0xCA, 0x67, 0xEC, 0x05, 0x70, 0x05, + 0x29, 0, 22, 0xF5, 0x00, 0x00, 0x83, 0x01, 0xEC, 0x0C, 0x11, 0x38, 0x6B, 0x12, 0x9F, 0x0A, 0x22, 0x60, 0xC5, 0x33, 0x5D, 0xDD, 0x44, 0x4B, 0xB6, + 0x29, 0, 18, 0xF6, 0x55, 0x1B, 0xBA, 0x66, 0x40, 0xB9, 0x77, 0x26, 0x89, 0x89, 0xDB, 0x72, 0x99, 0x91, 0xB9, 0x90, 0xB9, + 0x29, 0, 2, 0xFF, 0x01, + + 0x29, 0, 5, 0xFE, 0x01, 0x01, 0x04, 0x00, + 0x29, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x22, 0xA1, 0xA8, 0x22, 0xAF, 0xB6, 0x22, 0xBD, 0xC4, 0x22, 0xCB, 0xD2, 0x23, 0xD9, 0x1C, + 0x29, 0, 18, 0xF2, 0x33, 0x6E, 0xFE, 0x44, 0x79, 0xEB, 0x55, 0x50, 0xB5, 0x67, 0xE5, 0x66, 0x77, 0x7E, 0xA0, 0x70, 0xA0, + 0x29, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x01, 0xEA, 0xAD, 0x11, 0xB0, 0xB7, 0x11, 0xBE, 0xC5, 0x11, 0xCC, 0xD3, 0x11, 0xDA, 0xE1, 0x12, 0xE8, 0x21, + 0x29, 0, 18, 0xF4, 0x22, 0x6E, 0xF7, 0x33, 0x66, 0xCC, 0x44, 0x22, 0x7C, 0x56, 0x97, 0x0F, 0x66, 0x2E, 0x47, 0x60, 0x47, + 0x29, 0, 22, 0xF5, 0x02, 0x00, 0x42, 0x33, 0xA9, 0xAC, 0x33, 0xAF, 0xB6, 0x33, 0xBD, 0xC4, 0x33, 0xCB, 0xD2, 0x33, 0xD9, 0xE0, 0x34, 0xE7, 0x2C, + 0x29, 0, 18, 0xF6, 0x45, 0x80, 0x1A, 0x56, 0x9E, 0x13, 0x66, 0x7D, 0xDD, 0x88, 0x14, 0x99, 0x88, 0xBA, 0xD9, 0x80, 0xD9, + 0x29, 0, 2, 0xFF, 0x01, + + 0x29, 0, 5, 0xFE, 0x01, 0x02, 0x04, 0x00, + 0x29, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x06, 0x04, 0x80, 0xFF, 0xA4, 0xA9, 0xFF, 0xAE, 0xB3, 0xFF, 0xB8, 0xBD, 0xFF, 0xC2, 0xC7, + 0x29, 0, 18, 0xF2, 0xFF, 0xCC, 0xD1, 0xFF, 0xD6, 0xDB, 0xFF, 0xE0, 0xE5, 0xFF, 0xEA, 0xEF, 0xFF, 0xF4, 0xF9, 0xF0, 0xF9, + 0x29, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x0F, 0x02, 0x99, 0xFF, 0x9C, 0x9F, 0xFF, 0xA4, 0xA9, 0xFF, 0xAE, 0xB3, 0xFF, 0xB8, 0xBD, 0xFF, 0xC2, 0xC7, + 0x29, 0, 18, 0xF4, 0xFF, 0xCC, 0xD1, 0xFF, 0xD6, 0xDB, 0xFF, 0xE0, 0xE5, 0xFF, 0xEA, 0xEF, 0xFF, 0xF4, 0xF9, 0xF0, 0xF9, + 0x29, 0, 22, 0xF5, 0x02, 0x00, 0xF4, 0xFF, 0x96, 0x99, 0xFF, 0x9C, 0x9F, 0xFF, 0xA4, 0xA9, 0xFF, 0xAE, 0xB3, 0xFF, 0xB8, 0xBD, 0xFF, 0xC2, 0xC7, + 0x29, 0, 18, 0xF6, 0xFF, 0xCC, 0xD1, 0xFF, 0xD6, 0xDB, 0xFF, 0xE0, 0xE5, 0xFF, 0xEA, 0xEF, 0xFF, 0xF4, 0xF9, 0xF0, 0xF9, + 0x29, 0, 2, 0xFF, 0x01, + + 0x29, 0, 5, 0xFE, 0x01, 0x03, 0x04, 0x00, + 0x29, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0x05, 0x0F, 0x06, 0xA9, 0xFF, 0xAE, 0xB3, 0xFF, 0xB8, 0xBD, 0xFF, 0xC2, 0xC7, + 0x29, 0, 18, 0xF2, 0xFF, 0xCC, 0xD1, 0xFF, 0xD6, 0xDB, 0xFF, 0xE0, 0xE5, 0xFF, 0xEA, 0xEF, 0xFF, 0xF4, 0xF9, 0xF0, 0xF9, + 0x29, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0xFF, 0xA0, 0xA3, 0xFF, 0xA6, 0xA9, 0xFF, 0xAE, 0xB3, 0xFF, 0xB8, 0xBD, 0xFF, 0xC2, 0xC7, + 0x29, 0, 18, 0xF4, 0xFF, 0xCC, 0xD1, 0xFF, 0xD6, 0xDB, 0xFF, 0xE0, 0xE5, 0xFF, 0xEA, 0xEF, 0xFF, 0xF4, 0xF9, 0xF0, 0xF9, + 0x29, 0, 22, 0xF5, 0x00, 0x00, 0x40, 0xFF, 0x9A, 0x9D, 0xFF, 0xA0, 0xA3, 0xFF, 0xA6, 0xA9, 0xFF, 0xAE, 0xB3, 0xFF, 0xB8, 0xBD, 0xFF, 0xC2, 0xC7, + 0x29, 0, 18, 0xF6, 0xFF, 0xCC, 0xD1, 0xFF, 0xD6, 0xDB, 0xFF, 0xE0, 0xE5, 0xFF, 0xEA, 0xEF, 0xFF, 0xF4, 0xF9, 0xF0, 0xF9, + 0x29, 0, 2, 0xFF, 0x01, +/////////////GAMMA2end/////////////// + +#endif + 0x29, 0, 2, 0x9F, 0x05, + 0x29, 0, 2, 0xF9, 0x00, + 0x29, 0, 2, 0xF7, 0x00, + 0x29, 0, 2, 0x9F, 0x02, + 0x29, 0, 8, 0xC3, 0x11, 0xC0, 0x05, 0xC0, 0x00, 0x00, 0x7F, + 0x29, 0, 2, 0x9F, 0x04, + 0x29, 0, 3, 0xBA, 0x10, 0x00, + 0x29, 0, 2, 0x9F, 0x0A, + 0x29, 0, 2, 0xB2, 0x1B, + 0x29, 0, 19, 0xB7, 0x13, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x20, 0x20, 0x21, + 0x29, 0, 2, 0x9F, 0x0A, + 0x29, 0, 2, 0xB2, 0x1B, + 0x29, 0, 46, 0xB8, 0x07, 0x00, 0x00, 0x06, 0x0A, 0x00, 0x06, 0x0A, 0x00, 0x00, 0x06, 0x0A, 0x00, 0x06, 0x0A, 0x00, 0x00, 0x06, 0x0A, 0x00, 0x06, 0x0A, 0x00, 0x00, 0x06, 0x0A, 0x00, 0x06, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x29, 0, 43, 0xB9, 0x00, 0x04, 0x04, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x40, 0x00, 0x00, 0x4C, 0x0C, 0x00, 0x00, 0x40, 0x00, 0x00, 0x4C, 0x0C, 0x00, 0x00, 0x04, 0x04, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x29, 0, 43, 0xBA, 0x00, 0x0D, 0x03, 0x00, 0x0D, 0x03, 0x00, 0x00, 0x0D, 0x03, 0x00, 0x0D, 0x03, 0x00, 0x00, 0x0D, 0x03, 0x00, 0x0D, 0x03, 0x00, 0x00, 0x0D, 0x03, 0x00, 0x0D, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x29, 0, 2, 0x9F, 0x00, + 0x29, 0, 2, 0x48, 0x03, +// 0x29,0,2,0x48,0x33, // video mode + 0x29, 0, 3, 0x51, 0x00, 0x00, + 0x29, 0, 2, 0x53, 0xE0, + 0x29, 0, 2, 0x35, 0x00, + // 0x05, 0, 1, 0x38, + +// bist mode +// 0x29, 0, 2, 0xA5, 0xA5, +// 0x29, 0, 2, 0x5A, 0x5A, +// 0x29, 0, 2, 0x9F, 0x01, +// 0x29, 0, 2, 0xC6, 0x01, + + +#else + 0x39, 0, 3, 0x9C, 0xA5, 0xA5, + 0x39, 0, 3, 0xFD, 0x5A, 0x5A, + 0x39, 0, 2, 0x9F, 0x0F, + 0x39, 0, 2, 0xB3, 0x00, + 0x39, 0, 2, 0x9F, 0x01, + 0x39, 0, 2, 0xD0, 0x01, +// 0x39,0,2,0xD3,0x01, + 0x39, 0, 4, 0xB2, 0x5A, 0x04, 0xAF, + 0x39, 0, 36, 0xB3, 0x00, 0xD0, 0xA0, 0x10, 0xBC, 0x00, 0x00, 0xDD, 0x00, 0x10, 0x10, 0x00, 0x00, 0xB3, 0x00, 0x10, 0x10, 0x00, 0x00, 0xB3, 0x00, 0x10, 0x10, 0x22, 0x00, 0xEF, 0x00, 0x10, 0x10, 0x33, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x39, 0, 17, 0xCA, 0x03, 0x01, 0x03, 0x03, 0x04, 0xE5, 0x06, 0x06, 0x04, 0xE5, 0x06, 0x06, 0x04, 0xE5, 0x06, 0x06, + 0x39, 0, 15, 0xCB, 0x03, 0x03, 0x05, 0x85, 0x07, 0x07, 0x05, 0x85, 0x07, 0x07, 0x05, 0x85, 0x07, 0x07, + 0x39, 0, 4, 0xD7, 0x00, 0x00, 0x02, + 0x39, 0, 2, 0x9F, 0x02, + 0x39, 0, 26, 0xB2, 0x00, 0xC0, 0x31, 0x10, 0x11, 0x12, 0x12, 0x10, 0x18, 0x78, 0x90, 0x50, 0x11, 0x11, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x11, 0x17, + 0x39, 0, 10, 0xB3, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 13, 0xB4, 0x00, 0x8A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 7, 0xB5, 0x00, 0x30, 0x30, 0x30, 0x30, 0x2B, + 0x39, 0, 20, 0xB6, 0x01, 0x01, 0x00, 0x11, 0x11, 0x11, 0x1C, 0x1F, 0x1F, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, + 0x39, 0, 11, 0xB7, 0x00, 0x10, 0x0F, 0x10, 0x10, 0x15, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 14, 0xB8, 0x00, 0x00, 0x00, 0x43, 0x28, 0x43, 0x28, 0x43, 0x28, 0x43, 0x28, 0x43, 0x28, + 0x39, 0, 13, 0xB9, 0x00, 0x00, 0x50, 0x00, 0x00, 0x0A, 0x0F, 0x00, 0x00, 0x00, 0x19, 0x0A, + 0x39, 0, 9, 0xBA, 0x00, 0xFF, 0x44, 0x04, 0x44, 0x04, 0x44, 0x04, + 0x39, 0, 26, 0xBB, 0x01, 0x4A, 0x64, 0x16, 0x17, 0x01, 0x4A, 0x64, 0x16, 0x17, 0x01, 0x4A, 0x64, 0x16, 0x14, 0x01, 0x4A, 0x64, 0x16, 0x14, 0x01, 0x31, 0x64, 0x16, 0x0F, + 0x39, 0, 17, 0xC1, 0x00, 0x00, 0x00, 0x23, 0x23, 0x24, 0x24, 0x05, 0x05, 0x21, 0x21, 0x22, 0x22, 0x01, 0x01, 0x00, + 0x39, 0, 17, 0xC2, 0x00, 0x00, 0x00, 0x23, 0x23, 0x24, 0x24, 0x05, 0x05, 0x21, 0x21, 0x22, 0x22, 0x01, 0x01, 0x00, + 0x39, 0, 8, 0xC3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 15, 0xC4, 0x00, 0x05, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x00, 0x00, 0x06, + 0x39, 0, 26, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x03, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x55, 0x00, 0x01, + 0x39, 0, 14, 0xC7, 0x00, 0x2E, 0x2E, 0x2E, 0x2E, 0x00, 0x2E, 0x2E, 0x2E, 0x2E, 0x00, 0x30, 0x30, + 0x39, 0, 14, 0xC8, 0x00, 0x2E, 0x2E, 0x2E, 0x2E, 0x00, 0x2E, 0x2E, 0x2E, 0x2E, 0x00, 0x30, 0x30, + 0x39, 0, 27, 0xCC, 0x00, 0x57, 0xBA, 0x57, 0xBA, 0x00, 0x57, 0xBA, 0x57, 0xBA, 0x00, 0x57, 0xBC, 0x00, 0x30, 0x6C, 0x30, 0x6C, 0x00, 0x30, 0x6C, 0x30, 0x6C, 0x00, 0x30, 0x6C, + 0x39, 0, 17, 0xD2, 0x00, 0x00, 0x09, 0x09, 0x00, 0x09, 0x09, 0x00, 0x09, 0x09, 0x00, 0x09, 0x09, 0x00, 0x09, 0x09, + 0x39, 0, 12, 0xD7, 0x44, 0x01, 0x3F, 0x26, 0x37, 0x26, 0x37, 0x01, 0x11, 0x00, 0x00, + 0x39, 0, 26, 0xD8, 0x00, 0x00, 0xC3, 0x9F, 0x40, 0x00, 0x00, 0xC3, 0x9F, 0x40, 0x00, 0x00, 0xC3, 0x9F, 0x40, 0x00, 0x00, 0xC3, 0x9F, 0x40, 0x00, 0x00, 0xC3, 0x00, 0x00, + 0x39, 0, 12, 0xD9, 0x10, 0x00, 0x33, 0x00, 0x33, 0x00, 0x33, 0x00, 0x33, 0x00, 0x30, + 0x39, 0, 6, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 26, 0xE2, 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, + 0x39, 0, 13, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 6, 0xEF, 0x00, 0x80, 0x85, 0x81, 0x82, + 0x39, 0, 9, 0xBE, 0x5F, 0x16, 0x04, 0x5F, 0x75, 0x00, 0x00, 0x00, + 0x39, 0, 2, 0xBF, 0x08, + 0x39, 0, 2, 0x9F, 0x04, + 0x39, 0, 3, 0xB2, 0x01, 0x00, + 0x39, 0, 19, 0xB3, 0x00, 0x00, 0x10, 0x00, 0x30, 0x50, 0x00, 0x70, 0x90, 0x00, 0xB0, 0xF0, 0x11, 0x30, 0x70, 0x12, 0xF0, 0x70, + 0x39, 0, 21, 0xB4, 0x23, 0xF0, 0x70, 0x34, 0xF0, 0xF0, 0x56, 0xF0, 0xF0, 0x78, 0xF0, 0xF0, 0xCE, 0xF0, 0xF0, 0xFF, 0x70, 0xF0, 0x0F, 0xFF, + 0x39, 0, 14, 0xB5, 0x11, 0x10, 0x27, 0x1C, 0xD0, 0x00, 0x64, 0x64, 0x10, 0x3F, 0xFF, 0xFF, 0xFF, + 0x39, 0, 7, 0xB6, 0x11, 0x00, 0x00, 0x0F, 0xF0, 0x10, + 0x39, 0, 3, 0xB9, 0x91, 0x83, + // 0x39, 0, 3, 0xBA, 0x10, 0x00, + 0x39, 0, 5, 0xC4, 0x01, 0x10, 0x00, 0x00, + 0x39, 0, 20, 0xC5, 0x00, 0x20, 0x88, 0xC1, 0xCF, 0x50, 0x4F, 0x00, 0x4E, 0x57, 0x35, 0x22, 0x22, 0x2A, 0x05, 0x3F, 0x00, 0x20, 0x0F, + 0x39, 0, 13, 0xC6, 0x4B, 0x00, 0x90, 0x00, 0x02, 0xD5, 0x00, 0x02, 0xCB, 0x01, 0x10, 0x43, + 0x39, 0, 5, 0xC8, 0x29, 0x29, 0x28, 0x28, + 0x39, 0, 21, 0xC9, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x29, 0x29, 0x29, 0x29, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, + 0x39, 0, 21, 0xCA, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x29, 0x29, 0x29, 0x29, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, + 0x39, 0, 21, 0xCB, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x29, 0x29, 0x29, 0x29, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, + 0x39, 0, 21, 0xCC, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x29, 0x29, 0x29, 0x29, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, + 0x39, 0, 21, 0xCD, 0x21, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, + 0x39, 0, 21, 0xCE, 0x21, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, + 0x39, 0, 21, 0xCF, 0x21, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, + 0x39, 0, 21, 0xD0, 0x21, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, + 0x39, 0, 21, 0xD1, 0x21, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, + 0x39, 0, 21, 0xD2, 0x21, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, + 0x39, 0, 21, 0xD3, 0x21, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, + 0x39, 0, 21, 0xD4, 0x21, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, + 0x39, 0, 2, 0x9F, 0x05, + 0x39, 0, 7, 0xB2, 0x24, 0x20, 0x05, 0x0F, 0xFF, 0xFF, + 0x39, 0, 9, 0xB3, 0xA0, 0x00, 0x28, 0x00, 0x00, 0x00, 0x3F, 0xFF, + 0x39, 0, 11, 0xB4, 0x00, 0x60, 0x0E, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 16, 0xB5, 0x33, 0xFE, 0x6E, 0x22, 0xEC, 0x68, 0x11, 0xE4, 0x64, 0x10, 0x62, 0xEC, 0x00, 0x76, 0x02, + 0x39, 0, 7, 0xB6, 0x31, 0xFE, 0xD8, 0x00, 0x58, 0x00, + 0x39, 0, 16, 0xB9, 0x71, 0x20, 0x05, 0x78, 0x70, 0x5A, 0x3C, 0x78, 0x70, 0x5A, 0x3C, 0x78, 0x70, 0x5A, 0x3C, + 0x39, 0, 2, 0x9F, 0x07, + 0x39, 0, 8, 0xB2, 0x08, 0x08, 0x08, 0x08, 0x04, 0x02, 0xA8, + 0x39, 0, 8, 0xB3, 0x04, 0x04, 0x04, 0x04, 0x04, 0x03, 0x8C, + 0x39, 0, 8, 0xB4, 0x04, 0x04, 0x04, 0x04, 0x04, 0x02, 0xA8, + 0x39, 0, 8, 0xB5, 0x04, 0x04, 0x04, 0x04, 0x04, 0x02, 0xA8, + 0x39, 0, 8, 0xB6, 0x04, 0x04, 0x04, 0x04, 0x04, 0x02, 0xA8, + 0x39, 0, 8, 0xB7, 0x08, 0x08, 0x08, 0x08, 0x02, 0x0B, 0xB8, + 0x39, 0, 8, 0xB8, 0x02, 0x04, 0x04, 0x04, 0x01, 0x0A, 0xBE, + 0x39, 0, 17, 0xB9, 0x01, 0x05, 0x03, 0x07, 0x02, 0x06, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 17, 0xBA, 0x01, 0x03, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 17, 0xBB, 0x01, 0x03, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 17, 0xBC, 0x01, 0x03, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 17, 0xBD, 0x01, 0x03, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 17, 0xBE, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 17, 0xBF, 0x01, 0x02, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 16, 0xC0, 0x22, 0xA8, 0xA8, 0x22, 0xA8, 0xA8, 0x21, 0x58, 0x90, 0x00, 0xC8, 0x44, 0x00, 0x20, 0x20, + 0x39, 0, 16, 0xC1, 0x33, 0x8C, 0x8C, 0x33, 0x8C, 0x8C, 0x32, 0x20, 0x18, 0x10, 0x0C, 0x58, 0x00, 0x2C, 0x2C, + 0x39, 0, 16, 0xC2, 0x22, 0xA8, 0xA8, 0x22, 0xA8, 0xA8, 0x21, 0x58, 0x90, 0x00, 0xC8, 0x44, 0x00, 0x20, 0x20, + 0x39, 0, 16, 0xC3, 0x22, 0xA8, 0xA8, 0x22, 0xA8, 0xA8, 0x21, 0x58, 0x90, 0x00, 0xC8, 0x44, 0x00, 0x20, 0x20, + 0x39, 0, 7, 0xC4, 0x22, 0xA8, 0xA8, 0x22, 0xA8, 0xA8, + 0x39, 0, 7, 0xC5, 0x97, 0xC4, 0xD0, 0x76, 0x08, 0x40, + 0x39, 0, 4, 0xC6, 0x97, 0x2E, 0x9E, + 0x39, 0, 3, 0xC7, 0x02, 0x00, + 0x39, 0, 8, 0xC8, 0x10, 0x20, 0x20, 0x20, 0x02, 0x00, 0x7E, + 0x39, 0, 8, 0xC9, 0x0F, 0x20, 0x20, 0x20, 0x02, 0x00, 0x7E, + 0x39, 0, 8, 0xCA, 0x0E, 0x20, 0x20, 0x20, 0x02, 0x00, 0x7E, + 0x39, 0, 8, 0xCB, 0x0D, 0x20, 0x20, 0x20, 0x02, 0x00, 0x7E, + 0x39, 0, 17, 0xCC, 0x01, 0x09, 0x03, 0x0B, 0x05, 0x0D, 0x07, 0x0F, 0x02, 0x0A, 0x04, 0x0C, 0x06, 0x0E, 0x08, 0x10, + 0x39, 0, 17, 0xCD, 0x01, 0x07, 0x03, 0x09, 0x05, 0x0B, 0x0D, 0x0F, 0x02, 0x08, 0x04, 0x0A, 0x06, 0x0C, 0x0E, 0x00, + 0x39, 0, 17, 0xCE, 0x01, 0x07, 0x03, 0x09, 0x05, 0x0B, 0x0D, 0x02, 0x08, 0x04, 0x0A, 0x06, 0x0C, 0x0E, 0x00, 0x00, + 0x39, 0, 17, 0xCF, 0x01, 0x07, 0x03, 0x09, 0x05, 0x0B, 0x0D, 0x02, 0x08, 0x04, 0x0A, 0x06, 0x0C, 0x00, 0x00, 0x00, + 0x39, 0, 16, 0xD0, 0x00, 0x7E, 0x72, 0x00, 0x64, 0x58, 0x00, 0x4C, 0x40, 0x00, 0x32, 0x26, 0x00, 0x1A, 0x16, + 0x39, 0, 16, 0xD1, 0x00, 0x7E, 0x72, 0x00, 0x64, 0x58, 0x00, 0x4C, 0x40, 0x00, 0x32, 0x26, 0x00, 0x1A, 0x16, + 0x39, 0, 16, 0xD2, 0x00, 0x7E, 0x72, 0x00, 0x64, 0x58, 0x00, 0x4C, 0x40, 0x00, 0x32, 0x26, 0x00, 0x1A, 0x16, + 0x39, 0, 16, 0xD3, 0x00, 0x7E, 0x72, 0x00, 0x64, 0x58, 0x00, 0x4C, 0x40, 0x00, 0x32, 0x26, 0x00, 0x1A, 0x16, + 0x39, 0, 2, 0x9F, 0x0F, + 0x39, 0, 2, 0xF8, 0x11, + 0x39, 0, 2, 0x9F, 0x00, + 0x39, 0, 2, 0x48, 0x00, + 0x39, 0, 3, 0x51, 0x00, 0x00, + 0x39, 0, 2, 0x53, 0xE0, + 0x39, 0, 2, 0x35, 0x00, + 0x39, 0, 1, 0x11, + + 0x39, 0, 2, 0x9F, 0x05, + 0x39, 0, 2, 0xF9, 0x80, + 0x39, 0, 2, 0xF7, 0x10, + 0x39, 0, 2, 0x9F, 0x06, + 0x39, 0, 41, 0xB2, 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, + 0x39, 0, 41, 0xB3, 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, + 0x39, 0, 21, 0xB4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 41, 0xB5, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, + 0x39, 0, 41, 0xB6, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, + 0x39, 0, 21, 0xB7, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, +#if 1 +/////////////GAMMA1/////////////// + 0x39, 0, 5, 0xFE, 0x01, 0x00, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x23, 0x01, 0xB7, 0x47, 0x12, 0xBF, 0x26, 0x23, 0x7C, 0x0E, 0x33, 0x83, 0xE8, 0x45, 0x8A, 0x10, 0x55, 0x82, 0xEB, + 0x39, 0, 18, 0xF2, 0x66, 0x4B, 0xF9, 0x78, 0x92, 0x1F, 0x89, 0xA5, 0x23, 0xBB, 0x07, 0xF4, 0xCC, 0x32, 0x71, 0xC0, 0x71, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x49, 0x00, 0x8C, 0xDC, 0x11, 0x33, 0x83, 0x12, 0xCB, 0x4C, 0x23, 0xB9, 0x16, 0x34, 0xB0, 0x2E, 0x44, 0x97, 0xF7, + 0x39, 0, 18, 0xF4, 0x55, 0x4D, 0xE6, 0x66, 0x6E, 0xED, 0x77, 0x65, 0xCF, 0x9A, 0x6C, 0x33, 0xAA, 0x67, 0x9E, 0xA0, 0x9E, + 0x39, 0, 22, 0xF5, 0x01, 0x00, 0x5C, 0x12, 0xC5, 0x3C, 0x23, 0xAE, 0x12, 0x33, 0x66, 0xF5, 0x44, 0x6A, 0xCF, 0x56, 0x77, 0x03, 0x66, 0x7D, 0xEC, + 0x39, 0, 18, 0xF6, 0x78, 0x51, 0x06, 0x89, 0xA5, 0x3C, 0x9A, 0xCA, 0x4F, 0xCD, 0x58, 0x66, 0xDD, 0xAD, 0xEE, 0xD0, 0xEE, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x01, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x9E, 0x01, 0xF9, 0x5D, 0x12, 0xBF, 0x17, 0x22, 0x6A, 0xF2, 0x33, 0x60, 0xC1, 0x44, 0x5C, 0xDE, 0x55, 0x4F, 0xB3, + 0x39, 0, 18, 0xF2, 0x66, 0x0E, 0xB2, 0x77, 0x43, 0xC5, 0x88, 0x3F, 0xB4, 0xAB, 0x66, 0x3A, 0xBB, 0x72, 0x9D, 0xB0, 0x9D, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0xBA, 0x01, 0xE1, 0x0D, 0x11, 0x47, 0x87, 0x12, 0xC4, 0x35, 0x22, 0x98, 0xEF, 0x33, 0x82, 0xFB, 0x44, 0x62, 0xBD, + 0x39, 0, 18, 0xF4, 0x55, 0x10, 0xA2, 0x66, 0x22, 0x97, 0x77, 0x05, 0x6E, 0x89, 0xE3, 0x97, 0x99, 0xC5, 0xEF, 0x90, 0xEF, + 0x39, 0, 22, 0xF5, 0x01, 0x00, 0xA0, 0x12, 0xEF, 0x4D, 0x23, 0xAC, 0x03, 0x33, 0x52, 0xD9, 0x44, 0x47, 0xA8, 0x55, 0x49, 0xD1, 0x66, 0x47, 0xB1, + 0x39, 0, 18, 0xF6, 0x77, 0x10, 0xBB, 0x88, 0x50, 0xDA, 0x99, 0x5D, 0xD8, 0xBC, 0xA9, 0x93, 0xCD, 0xD1, 0x06, 0xD0, 0x06, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x02, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x01, 0xD7, 0x18, 0x11, 0x65, 0xAD, 0x12, 0xEE, 0x68, 0x23, 0xD0, 0x27, 0x34, 0xB9, 0x30, 0x44, 0x95, 0xEE, + 0x39, 0, 18, 0xF2, 0x55, 0x42, 0xD3, 0x66, 0x52, 0xC4, 0x77, 0x2E, 0x91, 0x89, 0xEF, 0x8E, 0x99, 0xBB, 0xDF, 0x90, 0xDF, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x9D, 0x00, 0xD4, 0xEE, 0x11, 0x12, 0x3C, 0x11, 0x69, 0xC2, 0x22, 0x15, 0x63, 0x23, 0xE9, 0x57, 0x34, 0xB8, 0x0C, + 0x39, 0, 18, 0xF4, 0x44, 0x57, 0xDB, 0x55, 0x4D, 0xB4, 0x66, 0x11, 0x6B, 0x78, 0xA1, 0x2B, 0x88, 0x4B, 0x70, 0x80, 0x70, + 0x39, 0, 22, 0xF5, 0x01, 0x00, 0x96, 0x12, 0xD0, 0x0D, 0x22, 0x53, 0x98, 0x23, 0xDA, 0x50, 0x34, 0xB6, 0x0E, 0x45, 0xA0, 0x19, 0x55, 0x85, 0xE2, + 0x39, 0, 18, 0xF6, 0x66, 0x3A, 0xD3, 0x77, 0x56, 0xCF, 0x88, 0x3C, 0xA3, 0xAA, 0x19, 0xC1, 0xAB, 0xEE, 0x11, 0xB0, 0x11, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x03, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0xAD, 0xD2, 0x01, 0xF5, 0x22, 0x11, 0x4E, 0xA3, 0x12, 0xF0, 0x39, 0x23, 0xB6, 0x1E, 0x33, 0x77, 0xC8, + 0x39, 0, 18, 0xF2, 0x44, 0x0E, 0x87, 0x45, 0xEE, 0x4E, 0x55, 0xA2, 0xF2, 0x67, 0xFD, 0x75, 0x77, 0x93, 0xAE, 0x70, 0xAE, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0xC1, 0xD1, 0x00, 0xE0, 0xF2, 0x11, 0x06, 0x35, 0x11, 0x6B, 0x9C, 0x22, 0x01, 0x5B, 0x22, 0xAD, 0xF5, + 0x39, 0, 18, 0xF4, 0x33, 0x37, 0xA9, 0x44, 0x0B, 0x60, 0x44, 0xAE, 0xF6, 0x56, 0xE6, 0x50, 0x66, 0x69, 0x84, 0x60, 0x84, + 0x39, 0, 22, 0xF5, 0x01, 0x00, 0x29, 0x11, 0xAD, 0xCE, 0x12, 0xED, 0x14, 0x22, 0x3D, 0x8F, 0x23, 0xDC, 0x22, 0x34, 0x9D, 0x05, 0x44, 0x5D, 0xAE, + 0x39, 0, 18, 0xF6, 0x45, 0xF7, 0x75, 0x56, 0xE1, 0x47, 0x66, 0xA0, 0xF2, 0x88, 0x0B, 0x84, 0x88, 0xA2, 0xC3, 0x80, 0xC3, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x04, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x68, 0x98, 0x00, 0xCC, 0xFE, 0x11, 0x32, 0x95, 0x12, 0xEA, 0x3A, 0x23, 0xBD, 0x29, 0x33, 0x85, 0xD8, + 0x39, 0, 18, 0xF2, 0x44, 0x23, 0x9E, 0x55, 0x0A, 0x6C, 0x56, 0xC2, 0x0F, 0x77, 0x25, 0x9D, 0x77, 0xBB, 0xD8, 0x70, 0xD8, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0xAF, 0xC2, 0x00, 0xD2, 0xE3, 0x01, 0xF7, 0x2B, 0x11, 0x64, 0x9B, 0x22, 0x04, 0x62, 0x23, 0xB7, 0x00, + 0x39, 0, 18, 0xF4, 0x33, 0x47, 0xBD, 0x44, 0x22, 0x7B, 0x45, 0xC9, 0x11, 0x66, 0x08, 0x76, 0x66, 0x8E, 0xA9, 0x60, 0xA9, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0xCB, 0x11, 0xA7, 0xCA, 0x12, 0xEC, 0x14, 0x22, 0x3F, 0x94, 0x23, 0xE5, 0x2E, 0x34, 0xB0, 0x1A, 0x44, 0x76, 0xC8, + 0x39, 0, 18, 0xF6, 0x55, 0x13, 0x93, 0x66, 0x03, 0x69, 0x67, 0xC3, 0x14, 0x88, 0x35, 0xB3, 0x88, 0xD0, 0xF0, 0x80, 0xF0, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x05, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x61, 0x92, 0x00, 0xC0, 0xEE, 0x11, 0x1E, 0x7A, 0x12, 0xD1, 0x1D, 0x23, 0xA3, 0x13, 0x33, 0x76, 0xC8, + 0x39, 0, 18, 0xF2, 0x44, 0x12, 0x8E, 0x45, 0xFB, 0x5C, 0x56, 0xB2, 0x01, 0x77, 0x12, 0x84, 0x77, 0xA5, 0xC0, 0x70, 0xC0, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0xC0, 0xD1, 0x00, 0xDF, 0xEF, 0x11, 0x00, 0x2B, 0x11, 0x5B, 0x8E, 0x12, 0xF0, 0x4C, 0x22, 0xA2, 0xF0, + 0x39, 0, 18, 0xF4, 0x33, 0x35, 0xAD, 0x44, 0x12, 0x6C, 0x45, 0xBA, 0x02, 0x56, 0xF6, 0x5F, 0x66, 0x7A, 0x94, 0x60, 0x94, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x5D, 0x11, 0xC7, 0xE6, 0x22, 0x06, 0x28, 0x22, 0x4E, 0x9C, 0x23, 0xE9, 0x31, 0x34, 0xAF, 0x17, 0x44, 0x72, 0xC1, + 0x39, 0, 18, 0xF6, 0x55, 0x0B, 0x89, 0x56, 0xF8, 0x5C, 0x67, 0xB6, 0x07, 0x88, 0x23, 0x9B, 0x88, 0xBA, 0xD8, 0x80, 0xD8, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x06, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x87, 0x00, 0xAD, 0xD0, 0x01, 0xF8, 0x48, 0x11, 0x99, 0xE7, 0x22, 0x7E, 0xF9, 0x33, 0x61, 0xBB, + 0x39, 0, 18, 0xF2, 0x44, 0x09, 0x8A, 0x45, 0xF7, 0x58, 0x56, 0xB2, 0x01, 0x77, 0x10, 0x84, 0x77, 0xA2, 0xBA, 0x70, 0xBA, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0xDB, 0xF9, 0x11, 0x05, 0x11, 0x11, 0x1D, 0x39, 0x11, 0x5D, 0x86, 0x12, 0xDD, 0x3A, 0x22, 0x94, 0xE4, + 0x39, 0, 18, 0xF4, 0x33, 0x2B, 0xA7, 0x44, 0x0F, 0x68, 0x45, 0xB9, 0x00, 0x56, 0xF5, 0x5D, 0x66, 0x77, 0x8D, 0x60, 0x8D, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0xBA, 0x22, 0x0A, 0x28, 0x22, 0x45, 0x63, 0x22, 0x80, 0xC3, 0x33, 0x06, 0x48, 0x34, 0xBF, 0x22, 0x44, 0x7A, 0xCB, + 0x39, 0, 18, 0xF6, 0x55, 0x12, 0x90, 0x56, 0xFF, 0x61, 0x67, 0xBC, 0x0C, 0x88, 0x23, 0x9A, 0x88, 0xB8, 0xD1, 0x80, 0xD1, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x07, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x27, 0x00, 0xBD, 0xDE, 0x01, 0xF8, 0x30, 0x11, 0x6C, 0xA6, 0x22, 0x2C, 0xBD, 0x33, 0x34, 0x98, + 0x39, 0, 18, 0xF2, 0x34, 0xEB, 0x76, 0x45, 0xEC, 0x50, 0x55, 0xAC, 0xFC, 0x77, 0x0C, 0x80, 0x77, 0x9E, 0xB5, 0x70, 0xB5, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x01, 0x02, 0x40, 0x11, 0x5C, 0x67, 0x11, 0x70, 0x83, 0x11, 0x97, 0xAF, 0x12, 0xE9, 0x38, 0x22, 0x8C, 0xD9, + 0x39, 0, 18, 0xF4, 0x33, 0x21, 0x9E, 0x44, 0x07, 0x62, 0x44, 0xB4, 0xFF, 0x56, 0xF1, 0x59, 0x66, 0x74, 0x8A, 0x60, 0x8A, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x10, 0x12, 0xEE, 0xCC, 0x22, 0xE1, 0xF9, 0x33, 0x10, 0x3D, 0x33, 0x6D, 0x9D, 0x34, 0xF9, 0x52, 0x44, 0xA3, 0xEE, + 0x39, 0, 18, 0xF6, 0x55, 0x2F, 0xA9, 0x66, 0x15, 0x74, 0x67, 0xCC, 0x1C, 0x88, 0x2B, 0xA0, 0x88, 0xBE, 0xD7, 0x80, 0xD7, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x08, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x28, 0xEB, 0x11, 0x02, 0x32, 0x11, 0x5D, 0x91, 0x12, 0xFB, 0x90, 0x33, 0x15, 0x86, + 0x39, 0, 18, 0xF2, 0x34, 0xE5, 0x7B, 0x45, 0xF6, 0x64, 0x56, 0xC2, 0x16, 0x77, 0x30, 0xA6, 0x77, 0xC2, 0xDC, 0x70, 0xDC, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x11, 0x9A, 0xA8, 0x11, 0xB7, 0xCA, 0x11, 0xDB, 0xEE, 0x22, 0x22, 0x62, 0x22, 0xAB, 0xF4, + 0x39, 0, 18, 0xF4, 0x33, 0x39, 0xB3, 0x44, 0x1D, 0x7A, 0x45, 0xCB, 0x17, 0x66, 0x13, 0x7D, 0x66, 0x95, 0xAD, 0x60, 0xAD, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x0D, 0x13, 0x27, 0x06, 0x33, 0x7F, 0x93, 0x33, 0xA3, 0xC9, 0x34, 0xEC, 0x10, 0x44, 0x5C, 0xA6, 0x45, 0xEB, 0x30, + 0x39, 0, 18, 0xF6, 0x55, 0x6F, 0xE6, 0x66, 0x4E, 0xAC, 0x77, 0x02, 0x51, 0x88, 0x61, 0xD6, 0x89, 0xF3, 0x0F, 0x90, 0x0F, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x09, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0x05, 0x00, 0x2A, 0xF9, 0x11, 0x14, 0x35, 0x11, 0x74, 0xB4, 0x22, 0x00, 0x5C, + 0x39, 0, 18, 0xF2, 0x23, 0xBB, 0x5D, 0x34, 0xE0, 0x49, 0x44, 0xA1, 0xF2, 0x56, 0xF2, 0x5C, 0x66, 0x74, 0x8C, 0x60, 0x8C, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0xB8, 0x11, 0xA1, 0xAE, 0x11, 0xBF, 0xCC, 0x11, 0xE1, 0xFC, 0x22, 0x1E, 0x49, + 0x39, 0, 18, 0xF4, 0x22, 0x78, 0xD7, 0x33, 0x35, 0x89, 0x34, 0xD2, 0x17, 0x45, 0xF6, 0x55, 0x55, 0x6B, 0x7F, 0x50, 0x7F, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x01, 0x01, 0x2B, 0x41, 0x33, 0x68, 0x7F, 0x33, 0x82, 0x9A, 0x33, 0xB4, 0xCB, 0x34, 0xFA, 0x28, 0x44, 0x58, 0x8C, + 0x39, 0, 18, 0xF6, 0x45, 0xBB, 0x18, 0x55, 0x6C, 0xBC, 0x66, 0x04, 0x48, 0x77, 0x30, 0x94, 0x77, 0xAC, 0xC0, 0x70, 0xC0, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x00, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0xE4, 0x11, 0x37, 0x96, 0x12, 0xF5, 0x4D, 0x23, 0x9A, 0x20, 0x33, 0x8E, 0xEE, 0x45, 0x8C, 0x0D, 0x55, 0x7E, 0xE6, + 0x39, 0, 18, 0xF2, 0x66, 0x44, 0xF2, 0x78, 0x8A, 0x16, 0x89, 0x97, 0x19, 0xAB, 0xF7, 0xE5, 0xCC, 0x20, 0x62, 0xC0, 0x62, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0xF8, 0x11, 0x28, 0x57, 0x11, 0x8E, 0xC8, 0x22, 0x02, 0x71, 0x23, 0xD1, 0x28, 0x34, 0xBB, 0x32, 0x44, 0x99, 0xF5, + 0x39, 0, 18, 0xF4, 0x55, 0x4A, 0xE0, 0x66, 0x68, 0xE4, 0x77, 0x57, 0xC6, 0x9A, 0x5D, 0x23, 0xAA, 0x56, 0x8E, 0xA0, 0x8E, + 0x39, 0, 22, 0xF5, 0x01, 0x00, 0xF9, 0x22, 0x47, 0x96, 0x23, 0xEC, 0x3B, 0x34, 0x86, 0x09, 0x44, 0x76, 0xD6, 0x56, 0x7A, 0x03, 0x66, 0x7A, 0xE6, + 0x39, 0, 18, 0xF6, 0x77, 0x4A, 0xFF, 0x89, 0x9E, 0x33, 0x9A, 0xBE, 0x47, 0xCD, 0x4A, 0x55, 0xDD, 0x9B, 0xE0, 0xD0, 0xE0, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x01, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x01, 0x00, 0x4F, 0x11, 0x8D, 0xCF, 0x22, 0x1B, 0x66, 0x23, 0xAD, 0x29, 0x33, 0x92, 0xEE, 0x45, 0x86, 0x07, 0x55, 0x75, 0xDA, + 0x39, 0, 18, 0xF2, 0x66, 0x39, 0xE1, 0x77, 0x73, 0xF9, 0x88, 0x7A, 0xF3, 0xAB, 0xC0, 0xA4, 0xBC, 0xE0, 0x1B, 0xC0, 0x1B, + 0x39, 0, 22, 0xF3, 0x01, 0x00, 0x5F, 0x11, 0x82, 0xA2, 0x11, 0xC6, 0xF1, 0x22, 0x22, 0x81, 0x23, 0xDA, 0x2A, 0x34, 0xB4, 0x29, 0x44, 0x8C, 0xE6, + 0x39, 0, 18, 0xF4, 0x55, 0x39, 0xCD, 0x66, 0x50, 0xC8, 0x77, 0x3A, 0xA4, 0x99, 0x2B, 0xEB, 0xAA, 0x1C, 0x4B, 0xA0, 0x4B, + 0x39, 0, 22, 0xF5, 0x02, 0x00, 0x43, 0x22, 0x83, 0xC4, 0x33, 0x0C, 0x51, 0x34, 0x96, 0x0F, 0x44, 0x78, 0xD4, 0x55, 0x74, 0xFA, 0x66, 0x6F, 0xD9, + 0x39, 0, 18, 0xF6, 0x77, 0x3B, 0xEA, 0x89, 0x84, 0x13, 0x9A, 0x9C, 0x1D, 0xCD, 0x0B, 0x0F, 0xDD, 0x56, 0x93, 0xD0, 0x93, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x02, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x01, 0x00, 0x48, 0x11, 0x87, 0xC5, 0x22, 0x09, 0x51, 0x23, 0x94, 0x0B, 0x33, 0x73, 0xCD, 0x44, 0x61, 0xDD, 0x55, 0x4C, 0xAF, + 0x39, 0, 18, 0xF2, 0x66, 0x09, 0xA9, 0x77, 0x3A, 0xBD, 0x88, 0x38, 0xA9, 0xAB, 0x5B, 0x31, 0xBB, 0x66, 0x94, 0xB0, 0x94, + 0x39, 0, 22, 0xF3, 0x01, 0x00, 0x5E, 0x11, 0x80, 0x9C, 0x11, 0xBE, 0xE5, 0x22, 0x11, 0x6B, 0x23, 0xC0, 0x0C, 0x34, 0x92, 0x03, 0x44, 0x66, 0xBF, + 0x39, 0, 18, 0xF4, 0x55, 0x0F, 0x9E, 0x66, 0x1C, 0x91, 0x67, 0xFD, 0x62, 0x89, 0xD7, 0x8C, 0x99, 0xB8, 0xE3, 0x90, 0xE3, + 0x39, 0, 22, 0xF5, 0x02, 0x00, 0x42, 0x22, 0x7D, 0xB9, 0x23, 0xFB, 0x3C, 0x33, 0x7E, 0xF3, 0x44, 0x59, 0xB3, 0x55, 0x4D, 0xD0, 0x66, 0x44, 0xAD, + 0x39, 0, 18, 0xF6, 0x77, 0x0A, 0xB2, 0x88, 0x48, 0xD2, 0x99, 0x54, 0xCF, 0xBC, 0x9E, 0x8B, 0xCC, 0xC8, 0xFE, 0xC0, 0xFE, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x03, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x59, 0x11, 0x76, 0xA2, 0x12, 0xD2, 0x07, 0x22, 0x3F, 0xA9, 0x33, 0x04, 0x56, 0x34, 0xDF, 0x53, 0x45, 0xB9, 0x10, + 0x39, 0, 18, 0xF2, 0x55, 0x62, 0xF5, 0x66, 0x76, 0xED, 0x77, 0x59, 0xBA, 0x99, 0x23, 0xCB, 0x9A, 0xF3, 0x23, 0xA0, 0x23, + 0x39, 0, 22, 0xF3, 0x01, 0x00, 0x4E, 0x11, 0x78, 0x8D, 0x11, 0xA3, 0xBC, 0x12, 0xDB, 0x1F, 0x22, 0x65, 0xA7, 0x33, 0x1E, 0x85, 0x34, 0xE2, 0x32, + 0x39, 0, 18, 0xF4, 0x44, 0x7A, 0xFE, 0x55, 0x71, 0xD6, 0x66, 0x36, 0x8F, 0x78, 0xCE, 0x5C, 0x88, 0x81, 0xA4, 0x80, 0xA4, + 0x39, 0, 22, 0xF5, 0x02, 0x00, 0x37, 0x22, 0x6C, 0x97, 0x22, 0xC5, 0xF8, 0x33, 0x2E, 0x91, 0x34, 0xEC, 0x3D, 0x45, 0xC6, 0x3E, 0x56, 0xAA, 0x06, + 0x39, 0, 18, 0xF6, 0x66, 0x5B, 0xF5, 0x77, 0x7B, 0xF6, 0x88, 0x66, 0xCF, 0xAB, 0x50, 0x04, 0xBB, 0x32, 0x5A, 0xB0, 0x5A, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x04, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x11, 0x61, 0x7E, 0x11, 0x9E, 0xC3, 0x12, 0xEA, 0x3A, 0x22, 0x88, 0xD0, 0x33, 0x4E, 0xBA, 0x44, 0x16, 0x66, + 0x39, 0, 18, 0xF2, 0x45, 0xB1, 0x33, 0x56, 0xA4, 0x0B, 0x66, 0x6A, 0xBF, 0x78, 0xF4, 0x7A, 0x88, 0x9A, 0xB9, 0x80, 0xB9, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x11, 0x6B, 0x7E, 0x11, 0x8E, 0x9F, 0x11, 0xB0, 0xDA, 0x22, 0x0A, 0x3D, 0x22, 0xA0, 0xFA, 0x33, 0x4C, 0x96, + 0x39, 0, 18, 0xF4, 0x34, 0xD9, 0x50, 0x45, 0xB6, 0x11, 0x55, 0x65, 0xB4, 0x67, 0xC3, 0x3B, 0x77, 0x58, 0x74, 0x70, 0x74, + 0x39, 0, 22, 0xF5, 0x02, 0x00, 0x32, 0x22, 0x61, 0x80, 0x22, 0x9F, 0xC2, 0x23, 0xE5, 0x32, 0x33, 0x7B, 0xC3, 0x44, 0x3C, 0xA5, 0x55, 0x03, 0x56, + 0x39, 0, 18, 0xF6, 0x56, 0xA3, 0x2C, 0x67, 0xA2, 0x0D, 0x77, 0x72, 0xCF, 0x99, 0x0F, 0x9E, 0x99, 0xC1, 0xE1, 0x90, 0xE1, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x05, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x11, 0x42, 0x65, 0x11, 0x82, 0xA1, 0x12, 0xC2, 0x07, 0x22, 0x50, 0x97, 0x33, 0x14, 0x7E, 0x34, 0xDA, 0x2A, + 0x39, 0, 18, 0xF2, 0x44, 0x71, 0xED, 0x55, 0x5C, 0xBB, 0x66, 0x16, 0x69, 0x78, 0x8B, 0x03, 0x88, 0x26, 0x39, 0x80, 0x39, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x11, 0x7F, 0x90, 0x11, 0x9D, 0xAA, 0x11, 0xB7, 0xD5, 0x12, 0xF7, 0x20, 0x22, 0x78, 0xCC, 0x33, 0x18, 0x60, + 0x39, 0, 18, 0xF4, 0x34, 0xA0, 0x11, 0x44, 0x74, 0xCB, 0x55, 0x1A, 0x64, 0x66, 0x5F, 0xD2, 0x67, 0xEC, 0x06, 0x70, 0x06, + 0x39, 0, 22, 0xF5, 0x01, 0x00, 0x49, 0x22, 0x7C, 0x97, 0x22, 0xB3, 0xCD, 0x23, 0xE9, 0x26, 0x33, 0x64, 0xA1, 0x44, 0x11, 0x75, 0x45, 0xCA, 0x1B, + 0x39, 0, 18, 0xF6, 0x55, 0x64, 0xE4, 0x66, 0x58, 0xBD, 0x77, 0x1B, 0x70, 0x89, 0x9A, 0x1E, 0x99, 0x3D, 0x5D, 0x90, 0x5D, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x06, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x11, 0x97, 0xBB, 0x12, 0xDD, 0x03, 0x22, 0x2E, 0x87, 0x23, 0xDA, 0x2B, 0x34, 0xB6, 0x23, 0x44, 0x83, 0xD9, + 0x39, 0, 18, 0xF2, 0x55, 0x29, 0xAD, 0x66, 0x2B, 0x97, 0x67, 0xFB, 0x58, 0x89, 0x9A, 0x2C, 0x99, 0x4E, 0x76, 0x90, 0x76, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x11, 0xE5, 0xF8, 0x22, 0x08, 0x17, 0x22, 0x28, 0x50, 0x22, 0x7B, 0xAC, 0x33, 0x0F, 0x6B, 0x34, 0xBF, 0x09, + 0x39, 0, 18, 0xF4, 0x44, 0x4E, 0xC5, 0x55, 0x31, 0x90, 0x56, 0xEA, 0x3C, 0x77, 0x59, 0xD6, 0x78, 0xF3, 0x11, 0x80, 0x11, + 0x39, 0, 22, 0xF5, 0x02, 0x00, 0x0E, 0x23, 0xF8, 0x15, 0x33, 0x35, 0x54, 0x33, 0x75, 0xB9, 0x34, 0xFB, 0x3E, 0x45, 0xB8, 0x21, 0x55, 0x80, 0xD7, + 0x39, 0, 18, 0xF6, 0x66, 0x29, 0xB5, 0x77, 0x33, 0xA4, 0x88, 0x0B, 0x6A, 0x9A, 0xC0, 0x5C, 0xAA, 0x81, 0xA4, 0xA0, 0xA4, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x07, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x22, 0x25, 0x55, 0x22, 0x75, 0x93, 0x23, 0xB9, 0x06, 0x33, 0x52, 0x99, 0x44, 0x1D, 0x93, 0x45, 0xF4, 0x4A, + 0x39, 0, 18, 0xF2, 0x56, 0x99, 0x2A, 0x67, 0xA9, 0x1A, 0x77, 0x85, 0xE8, 0x99, 0x41, 0xDF, 0xAA, 0x05, 0x27, 0xA0, 0x27, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x22, 0xB8, 0xD1, 0x22, 0xE2, 0xEF, 0x23, 0xFB, 0x15, 0x33, 0x35, 0x58, 0x33, 0xA4, 0xF3, 0x44, 0x3F, 0x87, + 0x39, 0, 18, 0xF4, 0x45, 0xC8, 0x41, 0x56, 0xAC, 0x0D, 0x66, 0x6B, 0xC0, 0x78, 0xEB, 0x6E, 0x88, 0x8E, 0xAD, 0x80, 0xAD, + 0x39, 0, 22, 0xF5, 0x02, 0x00, 0x2C, 0x33, 0xEB, 0xFF, 0x44, 0x15, 0x2A, 0x44, 0x43, 0x77, 0x44, 0xAC, 0xE0, 0x55, 0x4A, 0xB2, 0x66, 0x0D, 0x63, + 0x39, 0, 18, 0xF6, 0x67, 0xB0, 0x40, 0x78, 0xC1, 0x33, 0x89, 0xA0, 0x08, 0xAB, 0x77, 0x20, 0xBB, 0x49, 0x6F, 0xB0, 0x6F, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x08, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x16, 0x22, 0xC7, 0xDD, 0x23, 0xF0, 0x18, 0x33, 0x3F, 0x6E, 0x34, 0xC3, 0x16, 0x44, 0x64, 0xAD, + 0x39, 0, 18, 0xF2, 0x45, 0xF3, 0x73, 0x56, 0xDF, 0x3F, 0x66, 0x99, 0xEE, 0x88, 0x12, 0x91, 0x88, 0xB0, 0xC8, 0x80, 0xC8, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x03, 0x02, 0x54, 0x33, 0x6C, 0x79, 0x33, 0x83, 0x90, 0x33, 0xA0, 0xAF, 0x33, 0xCD, 0xF0, 0x44, 0x17, 0x41, + 0x39, 0, 18, 0xF4, 0x44, 0x6B, 0xC2, 0x55, 0x18, 0x67, 0x55, 0xB1, 0xF7, 0x67, 0xEE, 0x5C, 0x77, 0x76, 0x8E, 0x70, 0x8E, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x63, 0x34, 0x9F, 0x96, 0x44, 0xA7, 0xB4, 0x44, 0xBC, 0xD5, 0x45, 0xED, 0x08, 0x55, 0x44, 0x7E, 0x55, 0xB9, 0xF7, + 0x39, 0, 18, 0xF6, 0x66, 0x33, 0xA6, 0x77, 0x0C, 0x6A, 0x78, 0xC2, 0x16, 0x99, 0x40, 0xC6, 0x9A, 0xE6, 0x03, 0xA0, 0x03, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x09, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0x05, 0x0F, 0x55, 0xF9, 0xFF, 0xF9, 0xF9, 0xFF, 0xF9, 0xF9, 0xF3, 0xFA, 0xA4, + 0x39, 0, 18, 0xF2, 0x34, 0xBC, 0x0C, 0x44, 0x56, 0x9D, 0x45, 0xE1, 0x25, 0x56, 0xF9, 0x54, 0x66, 0x6A, 0x7C, 0x60, 0x7C, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x07, 0x04, 0xB0, 0xFF, 0xFB, 0xF9, 0xFF, 0xF9, 0xF9, 0xFF, 0xF9, 0xF9, 0xF3, 0xFA, 0xCD, + 0x39, 0, 18, 0xF4, 0x33, 0xC9, 0xEA, 0x44, 0x11, 0x37, 0x44, 0x5F, 0x89, 0x55, 0x2E, 0x78, 0x55, 0x8A, 0x9B, 0x50, 0x9B, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0xDC, 0x37, 0x0F, 0xD5, 0xEF, 0xB7, 0xFD, 0xFF, 0xFB, 0xF9, 0xFF, 0xF9, 0xF9, 0xFF, 0xF9, 0xF9, 0xF5, 0xFA, 0x36, + 0x39, 0, 18, 0xF6, 0x55, 0x3E, 0x76, 0x55, 0xB0, 0xEA, 0x66, 0x23, 0x5F, 0x77, 0x27, 0x7F, 0x77, 0x94, 0xA7, 0x70, 0xA7, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x00, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x44, 0x98, 0x01, 0xF7, 0x4C, 0x12, 0x9C, 0x1E, 0x22, 0x98, 0xFD, 0x34, 0xAC, 0x2E, 0x45, 0xA7, 0x15, + 0x39, 0, 18, 0xF2, 0x56, 0x78, 0x28, 0x67, 0xCA, 0x5D, 0x78, 0xEB, 0x74, 0xAB, 0x76, 0x71, 0xBB, 0xB3, 0xF3, 0xB0, 0xF3, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x2F, 0x58, 0x00, 0x8F, 0xC8, 0x11, 0x03, 0x6A, 0x12, 0xCF, 0x29, 0x23, 0xC8, 0x42, 0x34, 0xB5, 0x16, + 0x39, 0, 18, 0xF4, 0x45, 0x6F, 0x0D, 0x56, 0x98, 0x1A, 0x67, 0x95, 0x0A, 0x89, 0xBA, 0x92, 0x9A, 0xC9, 0x03, 0xA0, 0x03, + 0x39, 0, 22, 0xF5, 0x01, 0x00, 0x17, 0x11, 0x61, 0xA5, 0x12, 0xF3, 0x44, 0x23, 0x92, 0x18, 0x33, 0x91, 0xF5, 0x45, 0x9F, 0x2D, 0x56, 0xAB, 0x1B, + 0x39, 0, 18, 0xF6, 0x67, 0x85, 0x40, 0x78, 0xEB, 0x88, 0x99, 0x1E, 0xAF, 0xBC, 0xD5, 0xF3, 0xDD, 0x3E, 0x81, 0xD0, 0x81, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x01, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x66, 0x00, 0xA0, 0xD4, 0x11, 0x13, 0x57, 0x12, 0x98, 0x0F, 0x22, 0x80, 0xDA, 0x33, 0x7C, 0xFD, 0x44, 0x70, 0xD7, + 0x39, 0, 18, 0xF2, 0x55, 0x35, 0xDB, 0x67, 0x75, 0x00, 0x77, 0x88, 0xFB, 0x9A, 0xCE, 0xB1, 0xAB, 0xE6, 0x1E, 0xB0, 0x1E, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x6A, 0x00, 0x8F, 0xA9, 0x00, 0xC9, 0xEC, 0x11, 0x14, 0x6B, 0x12, 0xC5, 0x0B, 0x23, 0x9C, 0x10, 0x33, 0x7B, 0xDC, + 0x39, 0, 18, 0xF4, 0x44, 0x2E, 0xC1, 0x55, 0x49, 0xC3, 0x66, 0x35, 0xA1, 0x88, 0x2C, 0xEC, 0x99, 0x17, 0x4C, 0x90, 0x4C, + 0x39, 0, 22, 0xF5, 0x01, 0x00, 0x65, 0x11, 0x9B, 0xCF, 0x22, 0x0A, 0x4A, 0x23, 0x8D, 0x07, 0x33, 0x77, 0xD0, 0x44, 0x70, 0xF6, 0x55, 0x70, 0xDD, + 0x39, 0, 18, 0xF6, 0x66, 0x3E, 0xF0, 0x78, 0x94, 0x26, 0x89, 0xAF, 0x31, 0xBC, 0x1E, 0x18, 0xCC, 0x57, 0x98, 0xC0, 0x98, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x02, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x07, 0x00, 0x8F, 0xAE, 0x01, 0xD9, 0x0B, 0x11, 0x38, 0x99, 0x12, 0xF2, 0x45, 0x23, 0xD6, 0x4F, 0x34, 0xB8, 0x12, + 0x39, 0, 18, 0xF2, 0x44, 0x64, 0xF9, 0x55, 0x7C, 0xF4, 0x66, 0x63, 0xCA, 0x88, 0x3C, 0xE8, 0x99, 0x11, 0x3B, 0x90, 0x3B, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x57, 0x00, 0x87, 0x97, 0x00, 0xAE, 0xC4, 0x01, 0xDB, 0x18, 0x11, 0x58, 0x95, 0x22, 0x0A, 0x76, 0x23, 0xD1, 0x27, + 0x39, 0, 18, 0xF4, 0x33, 0x70, 0xFA, 0x44, 0x72, 0xD7, 0x55, 0x3A, 0x94, 0x67, 0xD4, 0x6A, 0x77, 0x8E, 0xB6, 0x70, 0xB6, + 0x39, 0, 22, 0xF5, 0x01, 0x00, 0x5A, 0x11, 0x89, 0xAB, 0x12, 0xD5, 0x01, 0x22, 0x2C, 0x8E, 0x23, 0xE9, 0x3C, 0x34, 0xCC, 0x43, 0x45, 0xAD, 0x0E, + 0x39, 0, 18, 0xF6, 0x56, 0x63, 0x00, 0x67, 0x8A, 0x09, 0x77, 0x7D, 0xE8, 0x9A, 0x74, 0x2B, 0xAA, 0x56, 0x84, 0xA0, 0x84, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x03, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x74, 0x8D, 0x00, 0xA1, 0xB3, 0x00, 0xC9, 0xFC, 0x11, 0x39, 0x6D, 0x12, 0xD9, 0x3A, 0x22, 0x90, 0xE0, + 0x39, 0, 18, 0xF2, 0x33, 0x2A, 0xA6, 0x44, 0x0F, 0x6D, 0x45, 0xC3, 0x15, 0x66, 0x30, 0xA4, 0x66, 0xC7, 0xE3, 0x60, 0xE3, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x72, 0x84, 0x00, 0x90, 0x9A, 0x00, 0xA4, 0xBC, 0x00, 0xDA, 0xFA, 0x11, 0x42, 0x8E, 0x12, 0xCD, 0x13, + 0x39, 0, 18, 0xF4, 0x22, 0x54, 0xC2, 0x33, 0x1F, 0x79, 0x34, 0xC7, 0x11, 0x55, 0x0B, 0x74, 0x55, 0x8F, 0xA9, 0x50, 0xA9, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0xBF, 0x11, 0x6F, 0x87, 0x11, 0x9D, 0xB0, 0x11, 0xC4, 0xF5, 0x22, 0x2D, 0x61, 0x23, 0xCF, 0x30, 0x33, 0x86, 0xD6, + 0x39, 0, 18, 0xF6, 0x44, 0x1C, 0x99, 0x55, 0x08, 0x6D, 0x56, 0xC8, 0x1C, 0x77, 0x46, 0xC8, 0x78, 0xEA, 0x09, 0x80, 0x09, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x04, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x60, 0x7C, 0x00, 0x92, 0xA8, 0x00, 0xC2, 0xFC, 0x11, 0x36, 0x70, 0x12, 0xE0, 0x43, 0x22, 0xA0, 0xEC, + 0x39, 0, 18, 0xF2, 0x33, 0x3C, 0xBD, 0x44, 0x29, 0x8B, 0x45, 0xE0, 0x34, 0x66, 0x52, 0xD2, 0x67, 0xF2, 0x12, 0x70, 0x12, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x6B, 0x7F, 0x00, 0x8A, 0x94, 0x00, 0xA2, 0xBD, 0x00, 0xD7, 0xFB, 0x11, 0x45, 0x91, 0x12, 0xDD, 0x19, + 0x39, 0, 18, 0xF4, 0x22, 0x61, 0xD4, 0x33, 0x3C, 0x94, 0x34, 0xE2, 0x2C, 0x55, 0x2A, 0x96, 0x55, 0xB3, 0xCD, 0x50, 0xCD, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x73, 0x11, 0x73, 0x8D, 0x11, 0xA1, 0xB6, 0x11, 0xCC, 0xFE, 0x22, 0x34, 0x6E, 0x23, 0xDE, 0x44, 0x33, 0xA1, 0xEE, + 0x39, 0, 18, 0xF6, 0x44, 0x38, 0xB8, 0x55, 0x2C, 0x91, 0x56, 0xEA, 0x44, 0x77, 0x73, 0xF7, 0x88, 0x17, 0x35, 0x80, 0x35, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x05, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x7E, 0x99, 0x00, 0xAB, 0xBD, 0x01, 0xD1, 0x02, 0x11, 0x33, 0x69, 0x12, 0xCC, 0x30, 0x22, 0x8C, 0xDB, + 0x39, 0, 18, 0xF2, 0x33, 0x24, 0xA5, 0x44, 0x11, 0x71, 0x45, 0xC9, 0x18, 0x66, 0x31, 0xAD, 0x66, 0xCF, 0xEC, 0x60, 0xEC, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x8F, 0x9F, 0x00, 0xAD, 0xB4, 0x00, 0xC1, 0xD5, 0x01, 0xEF, 0x07, 0x11, 0x46, 0x8A, 0x12, 0xD2, 0x0A, + 0x39, 0, 18, 0xF4, 0x22, 0x50, 0xC1, 0x33, 0x24, 0x7F, 0x34, 0xCC, 0x14, 0x55, 0x0C, 0x76, 0x55, 0x8F, 0xAC, 0x50, 0xAC, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x0C, 0x11, 0xA1, 0xB8, 0x11, 0xCE, 0xDD, 0x12, 0xF1, 0x1F, 0x22, 0x51, 0x81, 0x23, 0xE3, 0x41, 0x33, 0x9A, 0xE5, + 0x39, 0, 18, 0xF6, 0x44, 0x28, 0xA6, 0x55, 0x17, 0x7A, 0x56, 0xD4, 0x26, 0x77, 0x4F, 0xD0, 0x78, 0xF3, 0x0F, 0x80, 0x0F, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x06, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x22, 0xA7, 0x00, 0xBA, 0xCD, 0x01, 0xDE, 0x06, 0x11, 0x2E, 0x61, 0x12, 0xC6, 0x28, 0x22, 0x87, 0xDA, + 0x39, 0, 18, 0xF2, 0x33, 0x25, 0xA4, 0x44, 0x0C, 0x70, 0x45, 0xC7, 0x18, 0x66, 0x2F, 0xA7, 0x66, 0xC4, 0xE0, 0x60, 0xE0, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0xC7, 0xE4, 0x00, 0xEF, 0xFB, 0x11, 0x03, 0x13, 0x11, 0x25, 0x3B, 0x11, 0x6D, 0xA5, 0x12, 0xE5, 0x22, + 0x39, 0, 18, 0xF4, 0x22, 0x5D, 0xC9, 0x33, 0x27, 0x81, 0x34, 0xCE, 0x16, 0x55, 0x0B, 0x73, 0x55, 0x8D, 0xA7, 0x50, 0xA7, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x63, 0x12, 0xF7, 0x15, 0x22, 0x29, 0x3C, 0x22, 0x52, 0x72, 0x22, 0x94, 0xBF, 0x33, 0x11, 0x63, 0x33, 0xB4, 0xFD, + 0x39, 0, 18, 0xF6, 0x44, 0x3A, 0xB4, 0x55, 0x1C, 0x80, 0x56, 0xD8, 0x2B, 0x77, 0x4E, 0xCC, 0x78, 0xEA, 0x0B, 0x80, 0x0B, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x07, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0xB4, 0x11, 0x36, 0x47, 0x11, 0x55, 0x71, 0x11, 0x90, 0xAE, 0x12, 0xF3, 0x4F, 0x22, 0x9C, 0xE9, + 0x39, 0, 18, 0xF2, 0x33, 0x28, 0xAE, 0x44, 0x20, 0x7C, 0x45, 0xCF, 0x20, 0x66, 0x2A, 0xA7, 0x66, 0xC4, 0xE1, 0x60, 0xE1, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x01, 0x02, 0x8E, 0x11, 0xA2, 0xAF, 0x11, 0xBA, 0xCB, 0x11, 0xD8, 0xE6, 0x22, 0x04, 0x26, 0x22, 0x4C, 0x7A, + 0x39, 0, 18, 0xF4, 0x23, 0x9D, 0x01, 0x33, 0x54, 0x9E, 0x34, 0xE8, 0x2E, 0x55, 0x11, 0x7B, 0x55, 0x95, 0xAC, 0x50, 0xAC, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x01, 0x22, 0xE1, 0xFB, 0x33, 0x0B, 0x1A, 0x33, 0x27, 0x40, 0x33, 0x5B, 0x75, 0x33, 0xA4, 0xDE, 0x44, 0x14, 0x4F, + 0x39, 0, 18, 0xF6, 0x44, 0x7F, 0xED, 0x55, 0x54, 0xAB, 0x56, 0xFB, 0x4C, 0x77, 0x58, 0xD8, 0x78, 0xF7, 0x16, 0x80, 0x16, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x08, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x1F, 0xEA, 0xF9, 0xFF, 0xF9, 0xF9, 0xFF, 0xF9, 0xF9, 0xFF, 0xF9, 0xFB, 0x33, 0x24, 0x20, + 0x39, 0, 18, 0xF2, 0x33, 0x5F, 0xD6, 0x44, 0x3F, 0xA3, 0x45, 0xF7, 0x4A, 0x66, 0x5D, 0xD4, 0x67, 0xF4, 0x05, 0x70, 0x05, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0xFF, 0xFA, 0xF9, 0xFF, 0xF9, 0xF9, 0xFF, 0xF9, 0xF9, 0xFF, 0xF9, 0xFB, 0x32, 0x13, 0xFB, + 0x39, 0, 18, 0xF4, 0x33, 0x17, 0x5C, 0x33, 0xA6, 0xEA, 0x44, 0x29, 0x69, 0x55, 0x4A, 0xAD, 0x55, 0xC8, 0xD8, 0x50, 0xD8, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x01, 0x5F, 0x83, 0xFD, 0xFF, 0xFA, 0xF9, 0xFF, 0xF9, 0xF9, 0xFF, 0xF9, 0xF9, 0xFF, 0xF9, 0xFB, 0x44, 0xF3, 0xCA, + 0x39, 0, 18, 0xF6, 0x45, 0xF7, 0x52, 0x55, 0xAA, 0xFE, 0x66, 0x4B, 0x99, 0x78, 0xA6, 0x1B, 0x88, 0x3A, 0x4C, 0x80, 0x4C, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x09, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0x05, 0x11, 0x09, 0xB3, 0x11, 0xC9, 0xDC, 0x22, 0x01, 0x24, 0x22, 0x51, 0x7A, + 0x39, 0, 18, 0xF2, 0x23, 0xAD, 0x08, 0x33, 0x61, 0xAD, 0x34, 0xF0, 0x3F, 0x55, 0x2C, 0x8F, 0x55, 0xA9, 0xBD, 0x50, 0xBD, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x01, 0x04, 0xD0, 0x22, 0x4E, 0x62, 0x22, 0x72, 0x7F, 0x22, 0x8C, 0x9E, 0x22, 0xAB, 0xBB, + 0x39, 0, 18, 0xF4, 0x22, 0xCC, 0xEF, 0x33, 0x15, 0x44, 0x33, 0x6B, 0xA3, 0x44, 0x51, 0xA1, 0x44, 0xBA, 0xC3, 0x40, 0xC3, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x0C, 0x02, 0x15, 0x9C, 0x33, 0xB7, 0xC5, 0x33, 0xD4, 0xE4, 0x33, 0xF0, 0xFF, 0x44, 0x17, 0x31, 0x44, 0x4C, 0x64, + 0x39, 0, 18, 0xF6, 0x44, 0x80, 0xB9, 0x45, 0xF6, 0x33, 0x55, 0x68, 0xA8, 0x66, 0x7C, 0xDB, 0x67, 0xF6, 0x07, 0x70, 0x07, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x00, 0x04, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x4C, 0x77, 0x00, 0x9F, 0xD2, 0x01, 0xFE, 0x69, 0x12, 0xC3, 0x1F, 0x23, 0xB7, 0x39, 0x34, 0xA8, 0x08, + 0x39, 0, 18, 0xF2, 0x44, 0x5E, 0xF1, 0x55, 0x72, 0xDE, 0x66, 0x45, 0xA5, 0x78, 0xE8, 0x72, 0x88, 0x8D, 0xB0, 0x80, 0xB0, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x83, 0x8C, 0x00, 0x9B, 0xAD, 0x00, 0xB8, 0xEE, 0x11, 0x23, 0x63, 0x12, 0xD0, 0x41, 0x23, 0xA6, 0x06, + 0x39, 0, 18, 0xF4, 0x33, 0x54, 0xDB, 0x44, 0x48, 0xBB, 0x55, 0x0F, 0x69, 0x67, 0x89, 0x0A, 0x77, 0x2B, 0x45, 0x70, 0x45, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0xD8, 0x11, 0x59, 0x7C, 0x11, 0xA4, 0xDA, 0x22, 0x0C, 0x7A, 0x23, 0xD9, 0x39, 0x34, 0xCB, 0x4E, 0x45, 0xBE, 0x23, + 0x39, 0, 18, 0xF6, 0x56, 0x7D, 0x12, 0x67, 0x9B, 0x0D, 0x77, 0x7D, 0xDA, 0x99, 0x29, 0xB9, 0x99, 0xDC, 0xFD, 0x90, 0xFD, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x01, 0x04, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x39, 0x65, 0x00, 0x82, 0xB0, 0x01, 0xCF, 0x21, 0x11, 0x7A, 0xBF, 0x22, 0x48, 0xBF, 0x33, 0x2A, 0x82, + 0x39, 0, 18, 0xF2, 0x34, 0xDB, 0x67, 0x45, 0xD9, 0x43, 0x56, 0xA8, 0x01, 0x77, 0x26, 0xA6, 0x77, 0xC0, 0xE1, 0x70, 0xE1, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x7F, 0x88, 0x00, 0x92, 0x9D, 0x00, 0xAD, 0xC9, 0x01, 0xF3, 0x23, 0x11, 0x7C, 0xD9, 0x22, 0x31, 0x82, + 0x39, 0, 18, 0xF4, 0x23, 0xDC, 0x5D, 0x34, 0xC4, 0x2A, 0x44, 0x7E, 0xD2, 0x56, 0xDD, 0x4E, 0x66, 0x70, 0x85, 0x60, 0x85, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x1B, 0x11, 0x51, 0x73, 0x11, 0x8D, 0xB8, 0x12, 0xD7, 0x2F, 0x22, 0x88, 0xD7, 0x33, 0x66, 0xD4, 0x44, 0x42, 0x99, + 0x39, 0, 18, 0xF6, 0x45, 0xF7, 0x82, 0x66, 0x01, 0x72, 0x67, 0xD2, 0x33, 0x88, 0x60, 0xE2, 0x99, 0x01, 0x20, 0x90, 0x20, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x02, 0x04, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x15, 0x09, 0x00, 0x25, 0x47, 0x00, 0x56, 0x6A, 0x00, 0x85, 0xA7, 0x00, 0xC9, 0xF7, + 0x39, 0, 18, 0xF2, 0x11, 0x1C, 0x64, 0x11, 0xA8, 0xEA, 0x22, 0x2F, 0x6F, 0x33, 0x3A, 0x89, 0x33, 0x94, 0xB3, 0x30, 0xB3, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0x32, 0x00, 0x74, 0x83, 0x00, 0x85, 0x87, 0x00, 0x94, 0x9D, 0x00, 0xAC, 0xB8, + 0x39, 0, 18, 0xF4, 0x00, 0xCA, 0xE5, 0x11, 0x0F, 0x3E, 0x11, 0x71, 0xA4, 0x22, 0x42, 0x93, 0x22, 0x8E, 0xB6, 0x20, 0xB6, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x01, 0x00, 0x02, 0x46, 0x11, 0x32, 0x3F, 0x11, 0x43, 0x53, 0x11, 0x64, 0x76, 0x11, 0x8C, 0xAF, 0x11, 0xD5, 0xFF, + 0x39, 0, 18, 0xF6, 0x22, 0x21, 0x71, 0x23, 0xC0, 0x00, 0x33, 0x43, 0x82, 0x44, 0x4F, 0xA5, 0x44, 0xAD, 0xC6, 0x40, 0xC6, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x03, 0x04, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0x17, 0x00, 0x18, 0x2B, 0x00, 0x40, 0x4E, 0x00, 0x64, 0x7B, 0x00, 0x94, 0xAF, + 0x39, 0, 18, 0xF2, 0x00, 0xC9, 0xFC, 0x11, 0x32, 0x6C, 0x11, 0x97, 0xCF, 0x22, 0x7F, 0xCD, 0x22, 0xE0, 0xF3, 0x20, 0xF3, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0x05, 0x00, 0x06, 0x73, 0x00, 0x7E, 0x81, 0x00, 0x87, 0x8F, 0x00, 0x98, 0x9F, + 0x39, 0, 18, 0xF4, 0x00, 0xAC, 0xBE, 0x00, 0xD3, 0xF4, 0x11, 0x06, 0x29, 0x11, 0xA8, 0xEC, 0x11, 0xF7, 0xFF, 0x10, 0xFF, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x01, 0x00, 0x02, 0x10, 0x01, 0x57, 0x2F, 0x11, 0x3D, 0x43, 0x11, 0x51, 0x5D, 0x11, 0x73, 0x83, 0x11, 0x9E, 0xB8, + 0x39, 0, 18, 0xF6, 0x12, 0xD4, 0x06, 0x22, 0x3E, 0x7D, 0x22, 0xAB, 0xE4, 0x33, 0x97, 0xE9, 0x34, 0xFB, 0x06, 0x40, 0x06, + 0x39, 0, 2, 0xFF, 0x01, +////////////////////////GAMMA1 END/////////////////////////////// +#else + +/////////////GAMMA2/////////////// + 0x39, 0, 5, 0xFE, 0x01, 0x00, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x39, 0xC7, 0x11, 0x48, 0xB0, 0x22, 0x0B, 0x96, 0x33, 0x12, 0x79, 0x44, 0x1D, 0xA3, 0x55, 0x21, 0x8D, + 0x39, 0, 18, 0xF2, 0x56, 0xF4, 0xA3, 0x77, 0x3C, 0xC9, 0x88, 0x50, 0xD6, 0xAB, 0xCE, 0xCB, 0xCC, 0x14, 0x51, 0xC0, 0x51, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x0B, 0x5B, 0x01, 0xB9, 0x05, 0x11, 0x58, 0xD7, 0x22, 0x46, 0xAA, 0x33, 0x44, 0xBE, 0x44, 0x29, 0x8C, + 0x39, 0, 18, 0xF4, 0x45, 0xE8, 0x8C, 0x66, 0x1E, 0x98, 0x77, 0x11, 0x83, 0x99, 0x2E, 0xFE, 0xAA, 0x37, 0x68, 0xA0, 0x68, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0xE1, 0x11, 0x4D, 0xC3, 0x22, 0x36, 0x94, 0x23, 0xEC, 0x78, 0x34, 0xEE, 0x59, 0x55, 0x0A, 0x97, 0x66, 0x18, 0x87, + 0x39, 0, 18, 0xF6, 0x67, 0xEF, 0xA5, 0x88, 0x47, 0xD9, 0x99, 0x71, 0xFB, 0xCD, 0x17, 0x2D, 0xDD, 0x79, 0xBC, 0xD0, 0xBC, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x01, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x2B, 0x00, 0x7D, 0xDC, 0x11, 0x44, 0xA1, 0x12, 0xF5, 0x82, 0x23, 0xF0, 0x4A, 0x34, 0xEA, 0x72, 0x45, 0xE3, 0x4C, + 0x39, 0, 18, 0xF2, 0x56, 0xAB, 0x58, 0x67, 0xED, 0x73, 0x78, 0xEF, 0x65, 0xAB, 0x2C, 0x0E, 0xBB, 0x43, 0x7B, 0xB0, 0x7B, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x37, 0x00, 0x62, 0x8D, 0x01, 0xCA, 0x0A, 0x11, 0x4D, 0xC6, 0x22, 0x29, 0x7C, 0x33, 0x13, 0x8E, 0x34, 0xEF, 0x4F, + 0x39, 0, 18, 0xF4, 0x45, 0xA6, 0x43, 0x56, 0xC9, 0x46, 0x67, 0xB5, 0x1E, 0x89, 0xA0, 0x56, 0x99, 0x83, 0xB7, 0x90, 0xB7, + 0x39, 0, 22, 0xF5, 0x01, 0x00, 0x2C, 0x11, 0x77, 0xCF, 0x22, 0x2F, 0x86, 0x23, 0xD5, 0x60, 0x34, 0xCC, 0x29, 0x45, 0xD4, 0x63, 0x56, 0xDC, 0x46, + 0x39, 0, 18, 0xF6, 0x67, 0xA8, 0x58, 0x78, 0xF4, 0x7F, 0x99, 0x05, 0x82, 0xBC, 0x6C, 0x60, 0xCC, 0x99, 0xD1, 0xC0, 0xD1, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x02, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x09, 0x00, 0x5A, 0x9A, 0x01, 0xE3, 0x2F, 0x11, 0x78, 0xEF, 0x22, 0x5A, 0xB1, 0x33, 0x46, 0xBD, 0x44, 0x23, 0x7E, + 0x39, 0, 18, 0xF2, 0x45, 0xD6, 0x6E, 0x56, 0xF3, 0x68, 0x67, 0xD9, 0x3D, 0x89, 0x9F, 0x44, 0x99, 0x6D, 0x95, 0x90, 0x95, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x26, 0x00, 0x52, 0x6E, 0x00, 0x91, 0xBE, 0x01, 0xED, 0x46, 0x11, 0xA0, 0xF0, 0x22, 0x79, 0xE6, 0x33, 0x45, 0x98, + 0x39, 0, 18, 0xF4, 0x34, 0xE5, 0x6E, 0x45, 0xE5, 0x51, 0x56, 0xB5, 0x14, 0x77, 0x4D, 0xDE, 0x78, 0xFE, 0x26, 0x80, 0x26, + 0x39, 0, 22, 0xF5, 0x01, 0x00, 0x25, 0x11, 0x57, 0x92, 0x12, 0xD5, 0x1B, 0x22, 0x5E, 0xD0, 0x33, 0x38, 0x8F, 0x44, 0x23, 0xA2, 0x55, 0x10, 0x70, + 0x39, 0, 18, 0xF6, 0x56, 0xCC, 0x6A, 0x67, 0xF0, 0x6A, 0x78, 0xDF, 0x46, 0x9A, 0xC0, 0x74, 0xAA, 0x9F, 0xCD, 0xA0, 0xCD, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x03, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x36, 0x5C, 0x00, 0x7D, 0xA2, 0x01, 0xCD, 0x23, 0x11, 0x75, 0xC1, 0x22, 0x3E, 0xAA, 0x33, 0x06, 0x53, + 0x39, 0, 18, 0xF2, 0x34, 0x96, 0x0F, 0x44, 0x79, 0xE5, 0x55, 0x3D, 0x90, 0x67, 0xA4, 0x1A, 0x77, 0x37, 0x51, 0x70, 0x51, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x3F, 0x55, 0x00, 0x60, 0x6F, 0x00, 0x84, 0xB5, 0x01, 0xEB, 0x23, 0x11, 0x8A, 0xE8, 0x22, 0x3C, 0x84, + 0x39, 0, 18, 0xF4, 0x23, 0xC2, 0x35, 0x33, 0x95, 0xF1, 0x44, 0x41, 0x8C, 0x55, 0x87, 0xF4, 0x66, 0x0F, 0x25, 0x60, 0x25, + 0x39, 0, 22, 0xF5, 0x01, 0x00, 0x01, 0x11, 0x37, 0x59, 0x11, 0x75, 0x99, 0x12, 0xC0, 0x10, 0x22, 0x5F, 0xA6, 0x33, 0x1D, 0x88, 0x34, 0xE2, 0x33, + 0x39, 0, 18, 0xF6, 0x44, 0x7A, 0xFD, 0x55, 0x6C, 0xDD, 0x66, 0x38, 0x8C, 0x78, 0xA8, 0x24, 0x88, 0x41, 0x5D, 0x80, 0x5D, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x04, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x03, 0x2D, 0x00, 0x59, 0x86, 0x01, 0xB9, 0x1B, 0x11, 0x71, 0xBF, 0x22, 0x45, 0xB3, 0x33, 0x14, 0x63, + 0x39, 0, 18, 0xF2, 0x34, 0xAE, 0x2B, 0x45, 0x9A, 0x01, 0x55, 0x5B, 0xAF, 0x67, 0xC9, 0x44, 0x77, 0x61, 0x7F, 0x70, 0x7F, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x2E, 0x42, 0x00, 0x52, 0x61, 0x00, 0x76, 0xAB, 0x01, 0xE3, 0x1F, 0x11, 0x89, 0xEE, 0x22, 0x44, 0x8E, + 0x39, 0, 18, 0xF4, 0x23, 0xD4, 0x4A, 0x34, 0xAE, 0x08, 0x44, 0x5C, 0xA7, 0x56, 0xA9, 0x1A, 0x66, 0x33, 0x4E, 0x60, 0x4E, + 0x39, 0, 22, 0xF5, 0x01, 0x00, 0x07, 0x11, 0x34, 0x53, 0x11, 0x74, 0x9A, 0x12, 0xC2, 0x16, 0x22, 0x65, 0xAC, 0x33, 0x2F, 0x9C, 0x34, 0xFA, 0x4B, + 0x39, 0, 18, 0xF6, 0x45, 0x99, 0x1E, 0x55, 0x91, 0xFE, 0x66, 0x59, 0xAE, 0x78, 0xD2, 0x51, 0x88, 0x70, 0x8F, 0x80, 0x8F, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x05, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x27, 0x00, 0x4F, 0x7B, 0x01, 0xA4, 0x02, 0x11, 0x57, 0xA5, 0x22, 0x2D, 0xA4, 0x23, 0xFF, 0x55, + 0x39, 0, 18, 0xF2, 0x34, 0x9F, 0x1D, 0x44, 0x8E, 0xF1, 0x55, 0x4B, 0x9A, 0x67, 0xB5, 0x32, 0x77, 0x4A, 0x67, 0x70, 0x67, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x3A, 0x4E, 0x00, 0x5F, 0x6D, 0x00, 0x80, 0xA9, 0x01, 0xDD, 0x10, 0x11, 0x76, 0xDD, 0x22, 0x2F, 0x7E, + 0x39, 0, 18, 0xF4, 0x23, 0xC6, 0x3E, 0x33, 0xA4, 0xFB, 0x44, 0x4D, 0x94, 0x56, 0x96, 0x07, 0x66, 0x20, 0x3A, 0x60, 0x3A, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0xD6, 0x11, 0x56, 0x70, 0x11, 0x91, 0xB0, 0x12, 0xD2, 0x21, 0x22, 0x6E, 0xB4, 0x33, 0x2F, 0x9C, 0x34, 0xF0, 0x44, + 0x39, 0, 18, 0xF6, 0x45, 0x92, 0x15, 0x55, 0x89, 0xF1, 0x66, 0x4C, 0x9C, 0x78, 0xBE, 0x3F, 0x88, 0x59, 0x79, 0x80, 0x79, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x06, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x22, 0x00, 0x41, 0x63, 0x00, 0x87, 0xD7, 0x11, 0x24, 0x76, 0x22, 0x10, 0x90, 0x23, 0xF2, 0x4E, + 0x39, 0, 18, 0xF2, 0x34, 0x96, 0x1B, 0x44, 0x90, 0xEE, 0x55, 0x4E, 0x9A, 0x67, 0xB9, 0x31, 0x77, 0x4B, 0x5C, 0x70, 0x5C, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x5D, 0x78, 0x00, 0x85, 0x92, 0x00, 0xA2, 0xC0, 0x01, 0xE1, 0x0C, 0x11, 0x68, 0xD1, 0x22, 0x26, 0x7A, + 0x39, 0, 18, 0xF4, 0x23, 0xBD, 0x39, 0x33, 0xA5, 0xF7, 0x44, 0x4E, 0x96, 0x56, 0x99, 0x08, 0x66, 0x20, 0x2E, 0x60, 0x2E, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0xAC, 0x11, 0xA0, 0xBE, 0x11, 0xD8, 0xF4, 0x22, 0x10, 0x51, 0x22, 0x90, 0xD0, 0x33, 0x43, 0xAC, 0x34, 0xFF, 0x52, + 0x39, 0, 18, 0xF6, 0x45, 0x98, 0x1F, 0x55, 0x94, 0xF6, 0x66, 0x54, 0xA0, 0x78, 0xC4, 0x40, 0x88, 0x5B, 0x6B, 0x80, 0x6B, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x07, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x39, 0x00, 0x63, 0x7E, 0x00, 0x98, 0xC9, 0x01, 0xFF, 0x40, 0x12, 0xCE, 0x5C, 0x23, 0xD3, 0x2F, + 0x39, 0, 18, 0xF2, 0x34, 0x86, 0x08, 0x44, 0x8C, 0xEF, 0x55, 0x4C, 0x9F, 0x67, 0xB9, 0x2A, 0x77, 0x51, 0x65, 0x70, 0x65, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0xCE, 0x00, 0xE0, 0xEF, 0x01, 0xFA, 0x11, 0x11, 0x25, 0x40, 0x11, 0x83, 0xD4, 0x22, 0x26, 0x6F, + 0x39, 0, 18, 0xF4, 0x23, 0xBB, 0x31, 0x33, 0xA2, 0xFA, 0x44, 0x4F, 0x9A, 0x56, 0x9A, 0x03, 0x66, 0x24, 0x37, 0x60, 0x37, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x2B, 0x22, 0x59, 0x73, 0x22, 0x85, 0x9A, 0x22, 0xB3, 0xDB, 0x33, 0x05, 0x31, 0x33, 0x87, 0xDD, 0x44, 0x31, 0x78, + 0x39, 0, 18, 0xF6, 0x45, 0xC0, 0x36, 0x56, 0xB0, 0x10, 0x66, 0x68, 0xB7, 0x78, 0xCE, 0x43, 0x88, 0x6A, 0x80, 0x80, 0x80, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x08, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x62, 0x8D, 0x00, 0xA2, 0xC9, 0x01, 0xF9, 0x2A, 0x12, 0xA7, 0x3B, 0x23, 0xBF, 0x2B, + 0x39, 0, 18, 0xF2, 0x34, 0x84, 0x1B, 0x45, 0x9C, 0x05, 0x55, 0x69, 0xC0, 0x67, 0xDF, 0x5E, 0x77, 0x78, 0x95, 0x70, 0x95, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x18, 0x11, 0x25, 0x3C, 0x11, 0x4B, 0x64, 0x11, 0x81, 0x96, 0x12, 0xCC, 0x0E, 0x22, 0x53, 0x9A, + 0x39, 0, 18, 0xF4, 0x23, 0xDC, 0x53, 0x34, 0xBB, 0x18, 0x44, 0x6B, 0xBB, 0x56, 0xBE, 0x34, 0x66, 0x4F, 0x66, 0x60, 0x66, + 0x39, 0, 22, 0xF5, 0x01, 0x00, 0x29, 0x23, 0x15, 0x1E, 0x33, 0x30, 0x3D, 0x33, 0x4C, 0x6C, 0x33, 0x8E, 0xB1, 0x34, 0xF0, 0x3C, 0x44, 0x82, 0xC8, + 0x39, 0, 18, 0xF6, 0x55, 0x06, 0x82, 0x56, 0xF0, 0x4B, 0x66, 0xA4, 0xF0, 0x88, 0x07, 0x8C, 0x88, 0xA1, 0xBD, 0x80, 0xBD, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x09, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0x05, 0x00, 0x70, 0x9C, 0x00, 0xB3, 0xD2, 0x11, 0x04, 0x4C, 0x12, 0xA5, 0x06, + 0x39, 0, 18, 0xF2, 0x23, 0x69, 0x03, 0x33, 0x84, 0xE4, 0x44, 0x42, 0x90, 0x56, 0x98, 0x06, 0x66, 0x21, 0x36, 0x60, 0x36, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x01, 0x08, 0x0E, 0x11, 0x28, 0x40, 0x11, 0x55, 0x64, 0x11, 0x82, 0xA3, 0x11, 0xC9, 0xF2, + 0x39, 0, 18, 0xF4, 0x22, 0x23, 0x7B, 0x23, 0xD9, 0x23, 0x33, 0x6E, 0xAD, 0x44, 0x93, 0xF6, 0x55, 0x0E, 0x23, 0x50, 0x23, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x02, 0x11, 0x72, 0xB8, 0x33, 0x1E, 0x24, 0x33, 0x2E, 0x42, 0x33, 0x59, 0x6D, 0x33, 0x98, 0xC1, 0x34, 0xF0, 0x1E, + 0x39, 0, 18, 0xF6, 0x44, 0x52, 0xA9, 0x55, 0x05, 0x53, 0x55, 0x9C, 0xE1, 0x67, 0xCE, 0x34, 0x77, 0x4E, 0x64, 0x70, 0x64, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x00, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0xE4, 0x11, 0x37, 0x96, 0x12, 0xF5, 0x4D, 0x23, 0x9A, 0x20, 0x33, 0x8E, 0xEE, 0x45, 0x8C, 0x0D, 0x55, 0x7E, 0xE6, + 0x39, 0, 18, 0xF2, 0x66, 0x44, 0xF2, 0x78, 0x8A, 0x16, 0x89, 0x97, 0x19, 0xAB, 0xF7, 0xE5, 0xCC, 0x20, 0x62, 0xC0, 0x62, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0xF8, 0x11, 0x28, 0x57, 0x11, 0x8E, 0xC8, 0x22, 0x02, 0x71, 0x23, 0xD1, 0x28, 0x34, 0xBB, 0x32, 0x44, 0x99, 0xF5, + 0x39, 0, 18, 0xF4, 0x55, 0x4A, 0xE0, 0x66, 0x68, 0xE4, 0x77, 0x57, 0xC6, 0x9A, 0x5D, 0x23, 0xAA, 0x56, 0x8E, 0xA0, 0x8E, + 0x39, 0, 22, 0xF5, 0x01, 0x00, 0xF9, 0x22, 0x47, 0x96, 0x23, 0xEC, 0x3B, 0x34, 0x86, 0x09, 0x44, 0x76, 0xD6, 0x56, 0x7A, 0x03, 0x66, 0x7A, 0xE6, + 0x39, 0, 18, 0xF6, 0x77, 0x4A, 0xFF, 0x89, 0x9E, 0x33, 0x9A, 0xBE, 0x47, 0xCD, 0x4A, 0x55, 0xDD, 0x9B, 0xE0, 0xD0, 0xE0, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x01, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x01, 0x00, 0x4F, 0x11, 0x8D, 0xCF, 0x22, 0x1B, 0x66, 0x23, 0xAD, 0x29, 0x33, 0x92, 0xEE, 0x45, 0x86, 0x07, 0x55, 0x75, 0xDA, + 0x39, 0, 18, 0xF2, 0x66, 0x39, 0xE1, 0x77, 0x73, 0xF9, 0x88, 0x7A, 0xF3, 0xAB, 0xC0, 0xA4, 0xBC, 0xE0, 0x1B, 0xC0, 0x1B, + 0x39, 0, 22, 0xF3, 0x01, 0x00, 0x5F, 0x11, 0x82, 0xA2, 0x11, 0xC6, 0xF1, 0x22, 0x22, 0x81, 0x23, 0xDA, 0x2A, 0x34, 0xB4, 0x29, 0x44, 0x8C, 0xE6, + 0x39, 0, 18, 0xF4, 0x55, 0x39, 0xCD, 0x66, 0x50, 0xC8, 0x77, 0x3A, 0xA4, 0x99, 0x2B, 0xEB, 0xAA, 0x1C, 0x4B, 0xA0, 0x4B, + 0x39, 0, 22, 0xF5, 0x02, 0x00, 0x43, 0x22, 0x83, 0xC4, 0x33, 0x0C, 0x51, 0x34, 0x96, 0x0F, 0x44, 0x78, 0xD4, 0x55, 0x74, 0xFA, 0x66, 0x6F, 0xD9, + 0x39, 0, 18, 0xF6, 0x77, 0x3B, 0xEA, 0x89, 0x84, 0x13, 0x9A, 0x9C, 0x1D, 0xCD, 0x0B, 0x0F, 0xDD, 0x56, 0x93, 0xD0, 0x93, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x02, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x01, 0x00, 0x48, 0x11, 0x87, 0xC5, 0x22, 0x09, 0x51, 0x23, 0x94, 0x0B, 0x33, 0x73, 0xCD, 0x44, 0x61, 0xDD, 0x55, 0x4C, 0xAF, + 0x39, 0, 18, 0xF2, 0x66, 0x09, 0xA9, 0x77, 0x3A, 0xBD, 0x88, 0x38, 0xA9, 0xAB, 0x5B, 0x31, 0xBB, 0x66, 0x94, 0xB0, 0x94, + 0x39, 0, 22, 0xF3, 0x01, 0x00, 0x5E, 0x11, 0x80, 0x9C, 0x11, 0xBE, 0xE5, 0x22, 0x11, 0x6B, 0x23, 0xC0, 0x0C, 0x34, 0x92, 0x03, 0x44, 0x66, 0xBF, + 0x39, 0, 18, 0xF4, 0x55, 0x0F, 0x9E, 0x66, 0x1C, 0x91, 0x67, 0xFD, 0x62, 0x89, 0xD7, 0x8C, 0x99, 0xB8, 0xE3, 0x90, 0xE3, + 0x39, 0, 22, 0xF5, 0x02, 0x00, 0x42, 0x22, 0x7D, 0xB9, 0x23, 0xFB, 0x3C, 0x33, 0x7E, 0xF3, 0x44, 0x59, 0xB3, 0x55, 0x4D, 0xD0, 0x66, 0x44, 0xAD, + 0x39, 0, 18, 0xF6, 0x77, 0x0A, 0xB2, 0x88, 0x48, 0xD2, 0x99, 0x54, 0xCF, 0xBC, 0x9E, 0x8B, 0xCC, 0xC8, 0xFE, 0xC0, 0xFE, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x03, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x59, 0x11, 0x76, 0xA2, 0x12, 0xD2, 0x07, 0x22, 0x3F, 0xA9, 0x33, 0x04, 0x56, 0x34, 0xDF, 0x53, 0x45, 0xB9, 0x10, + 0x39, 0, 18, 0xF2, 0x55, 0x62, 0xF5, 0x66, 0x76, 0xED, 0x77, 0x59, 0xBA, 0x99, 0x23, 0xCB, 0x9A, 0xF3, 0x23, 0xA0, 0x23, + 0x39, 0, 22, 0xF3, 0x01, 0x00, 0x4E, 0x11, 0x78, 0x8D, 0x11, 0xA3, 0xBC, 0x12, 0xDB, 0x1F, 0x22, 0x65, 0xA7, 0x33, 0x1E, 0x85, 0x34, 0xE2, 0x32, + 0x39, 0, 18, 0xF4, 0x44, 0x7A, 0xFE, 0x55, 0x71, 0xD6, 0x66, 0x36, 0x8F, 0x78, 0xCE, 0x5C, 0x88, 0x81, 0xA4, 0x80, 0xA4, + 0x39, 0, 22, 0xF5, 0x02, 0x00, 0x37, 0x22, 0x6C, 0x97, 0x22, 0xC5, 0xF8, 0x33, 0x2E, 0x91, 0x34, 0xEC, 0x3D, 0x45, 0xC6, 0x3E, 0x56, 0xAA, 0x06, + 0x39, 0, 18, 0xF6, 0x66, 0x5B, 0xF5, 0x77, 0x7B, 0xF6, 0x88, 0x66, 0xCF, 0xAB, 0x50, 0x04, 0xBB, 0x32, 0x5A, 0xB0, 0x5A, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x04, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x11, 0x61, 0x7E, 0x11, 0x9E, 0xC3, 0x12, 0xEA, 0x3A, 0x22, 0x88, 0xD0, 0x33, 0x4E, 0xBA, 0x44, 0x16, 0x66, + 0x39, 0, 18, 0xF2, 0x45, 0xB1, 0x33, 0x56, 0xA4, 0x0B, 0x66, 0x6A, 0xBF, 0x78, 0xF4, 0x7A, 0x88, 0x9A, 0xB9, 0x80, 0xB9, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x11, 0x6B, 0x7E, 0x11, 0x8E, 0x9F, 0x11, 0xB0, 0xDA, 0x22, 0x0A, 0x3D, 0x22, 0xA0, 0xFA, 0x33, 0x4C, 0x96, + 0x39, 0, 18, 0xF4, 0x34, 0xD9, 0x50, 0x45, 0xB6, 0x11, 0x55, 0x65, 0xB4, 0x67, 0xC3, 0x3B, 0x77, 0x58, 0x74, 0x70, 0x74, + 0x39, 0, 22, 0xF5, 0x02, 0x00, 0x32, 0x22, 0x61, 0x80, 0x22, 0x9F, 0xC2, 0x23, 0xE5, 0x32, 0x33, 0x7B, 0xC3, 0x44, 0x3C, 0xA5, 0x55, 0x03, 0x56, + 0x39, 0, 18, 0xF6, 0x56, 0xA3, 0x2C, 0x67, 0xA2, 0x0D, 0x77, 0x72, 0xCF, 0x99, 0x0F, 0x9E, 0x99, 0xC1, 0xE1, 0x90, 0xE1, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x05, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x11, 0x42, 0x65, 0x11, 0x82, 0xA1, 0x12, 0xC2, 0x07, 0x22, 0x50, 0x97, 0x33, 0x14, 0x7E, 0x34, 0xDA, 0x2A, + 0x39, 0, 18, 0xF2, 0x44, 0x71, 0xED, 0x55, 0x5C, 0xBB, 0x66, 0x16, 0x69, 0x78, 0x8B, 0x03, 0x88, 0x26, 0x39, 0x80, 0x39, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x11, 0x7F, 0x90, 0x11, 0x9D, 0xAA, 0x11, 0xB7, 0xD5, 0x12, 0xF7, 0x20, 0x22, 0x78, 0xCC, 0x33, 0x18, 0x60, + 0x39, 0, 18, 0xF4, 0x34, 0xA0, 0x11, 0x44, 0x74, 0xCB, 0x55, 0x1A, 0x64, 0x66, 0x5F, 0xD2, 0x67, 0xEC, 0x06, 0x70, 0x06, + 0x39, 0, 22, 0xF5, 0x01, 0x00, 0x49, 0x22, 0x7C, 0x97, 0x22, 0xB3, 0xCD, 0x23, 0xE9, 0x26, 0x33, 0x64, 0xA1, 0x44, 0x11, 0x75, 0x45, 0xCA, 0x1B, + 0x39, 0, 18, 0xF6, 0x55, 0x64, 0xE4, 0x66, 0x58, 0xBD, 0x77, 0x1B, 0x70, 0x89, 0x9A, 0x1E, 0x99, 0x3D, 0x5D, 0x90, 0x5D, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x06, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x11, 0x97, 0xBB, 0x12, 0xDD, 0x03, 0x22, 0x2E, 0x87, 0x23, 0xDA, 0x2B, 0x34, 0xB6, 0x23, 0x44, 0x83, 0xD9, + 0x39, 0, 18, 0xF2, 0x55, 0x29, 0xAD, 0x66, 0x2B, 0x97, 0x67, 0xFB, 0x58, 0x89, 0x9A, 0x2C, 0x99, 0x4E, 0x76, 0x90, 0x76, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x11, 0xE5, 0xF8, 0x22, 0x08, 0x17, 0x22, 0x28, 0x50, 0x22, 0x7B, 0xAC, 0x33, 0x0F, 0x6B, 0x34, 0xBF, 0x09, + 0x39, 0, 18, 0xF4, 0x44, 0x4E, 0xC5, 0x55, 0x31, 0x90, 0x56, 0xEA, 0x3C, 0x77, 0x59, 0xD6, 0x78, 0xF3, 0x11, 0x80, 0x11, + 0x39, 0, 22, 0xF5, 0x02, 0x00, 0x0E, 0x23, 0xF8, 0x15, 0x33, 0x35, 0x54, 0x33, 0x75, 0xB9, 0x34, 0xFB, 0x3E, 0x45, 0xB8, 0x21, 0x55, 0x80, 0xD7, + 0x39, 0, 18, 0xF6, 0x66, 0x29, 0xB5, 0x77, 0x33, 0xA4, 0x88, 0x0B, 0x6A, 0x9A, 0xC0, 0x5C, 0xAA, 0x81, 0xA4, 0xA0, 0xA4, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x07, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x22, 0x25, 0x55, 0x22, 0x75, 0x93, 0x23, 0xB9, 0x06, 0x33, 0x52, 0x99, 0x44, 0x1D, 0x93, 0x45, 0xF4, 0x4A, + 0x39, 0, 18, 0xF2, 0x56, 0x99, 0x2A, 0x67, 0xA9, 0x1A, 0x77, 0x85, 0xE8, 0x99, 0x41, 0xDF, 0xAA, 0x05, 0x27, 0xA0, 0x27, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x22, 0xB8, 0xD1, 0x22, 0xE2, 0xEF, 0x23, 0xFB, 0x15, 0x33, 0x35, 0x58, 0x33, 0xA4, 0xF3, 0x44, 0x3F, 0x87, + 0x39, 0, 18, 0xF4, 0x45, 0xC8, 0x41, 0x56, 0xAC, 0x0D, 0x66, 0x6B, 0xC0, 0x78, 0xEB, 0x6E, 0x88, 0x8E, 0xAD, 0x80, 0xAD, + 0x39, 0, 22, 0xF5, 0x02, 0x00, 0x2C, 0x33, 0xEB, 0xFF, 0x44, 0x15, 0x2A, 0x44, 0x43, 0x77, 0x44, 0xAC, 0xE0, 0x55, 0x4A, 0xB2, 0x66, 0x0D, 0x63, + 0x39, 0, 18, 0xF6, 0x67, 0xB0, 0x40, 0x78, 0xC1, 0x33, 0x89, 0xA0, 0x08, 0xAB, 0x77, 0x20, 0xBB, 0x49, 0x6F, 0xB0, 0x6F, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x08, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x16, 0x22, 0xC7, 0xDD, 0x23, 0xF0, 0x18, 0x33, 0x3F, 0x6E, 0x34, 0xC3, 0x16, 0x44, 0x64, 0xAD, + 0x39, 0, 18, 0xF2, 0x45, 0xF3, 0x73, 0x56, 0xDF, 0x3F, 0x66, 0x99, 0xEE, 0x88, 0x12, 0x91, 0x88, 0xB0, 0xC8, 0x80, 0xC8, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x03, 0x02, 0x54, 0x33, 0x6C, 0x79, 0x33, 0x83, 0x90, 0x33, 0xA0, 0xAF, 0x33, 0xCD, 0xF0, 0x44, 0x17, 0x41, + 0x39, 0, 18, 0xF4, 0x44, 0x6B, 0xC2, 0x55, 0x18, 0x67, 0x55, 0xB1, 0xF7, 0x67, 0xEE, 0x5C, 0x77, 0x76, 0x8E, 0x70, 0x8E, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x63, 0x34, 0x9F, 0x96, 0x44, 0xA7, 0xB4, 0x44, 0xBC, 0xD5, 0x45, 0xED, 0x08, 0x55, 0x44, 0x7E, 0x55, 0xB9, 0xF7, + 0x39, 0, 18, 0xF6, 0x66, 0x33, 0xA6, 0x77, 0x0C, 0x6A, 0x78, 0xC2, 0x16, 0x99, 0x40, 0xC6, 0x9A, 0xE6, 0x03, 0xA0, 0x03, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x09, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0x05, 0x0F, 0x55, 0xF9, 0xFF, 0xF9, 0xF9, 0xFF, 0xF9, 0xF9, 0xF3, 0xFA, 0xA4, + 0x39, 0, 18, 0xF2, 0x34, 0xBC, 0x0C, 0x44, 0x56, 0x9D, 0x45, 0xE1, 0x25, 0x56, 0xF9, 0x54, 0x66, 0x6A, 0x7C, 0x60, 0x7C, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x07, 0x04, 0xB0, 0xFF, 0xFB, 0xF9, 0xFF, 0xF9, 0xF9, 0xFF, 0xF9, 0xF9, 0xF3, 0xFA, 0xCD, + 0x39, 0, 18, 0xF4, 0x33, 0xC9, 0xEA, 0x44, 0x11, 0x37, 0x44, 0x5F, 0x89, 0x55, 0x2E, 0x78, 0x55, 0x8A, 0x9B, 0x50, 0x9B, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0xDC, 0x37, 0x0F, 0xD5, 0xEF, 0xB7, 0xFD, 0xFF, 0xFB, 0xF9, 0xFF, 0xF9, 0xF9, 0xFF, 0xF9, 0xF9, 0xF5, 0xFA, 0x36, + 0x39, 0, 18, 0xF6, 0x55, 0x3E, 0x76, 0x55, 0xB0, 0xEA, 0x66, 0x23, 0x5F, 0x77, 0x27, 0x7F, 0x77, 0x94, 0xA7, 0x70, 0xA7, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x00, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x16, 0x00, 0x6B, 0xC7, 0x11, 0x1B, 0xA8, 0x22, 0x1C, 0x88, 0x33, 0x34, 0xBF, 0x44, 0x35, 0xA7, + 0x39, 0, 18, 0xF2, 0x55, 0x0C, 0xC7, 0x67, 0x73, 0x05, 0x78, 0x9D, 0x1E, 0xAB, 0x35, 0x46, 0xBB, 0x92, 0xCA, 0xB0, 0xCA, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0x3F, 0x00, 0x7B, 0xED, 0x11, 0x53, 0xB1, 0x22, 0x50, 0xD1, 0x33, 0x40, 0xA1, + 0x39, 0, 18, 0xF4, 0x34, 0xFB, 0x9F, 0x55, 0x38, 0xBF, 0x66, 0x40, 0xB9, 0x89, 0x78, 0x55, 0x99, 0x93, 0xC5, 0x90, 0xC5, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x01, 0x01, 0xD3, 0x21, 0x11, 0x75, 0xC5, 0x22, 0x0F, 0x97, 0x33, 0x0E, 0x77, 0x44, 0x1C, 0xB1, 0x55, 0x39, 0xAD, + 0x39, 0, 18, 0xF6, 0x66, 0x19, 0xD9, 0x78, 0x87, 0x27, 0x89, 0xBF, 0x50, 0xBC, 0x8F, 0xB8, 0xDD, 0x06, 0x42, 0xD0, 0x42, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x01, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x15, 0x4A, 0x00, 0x8C, 0xD2, 0x11, 0x17, 0x96, 0x22, 0x03, 0x61, 0x33, 0x00, 0x88, 0x34, 0xF9, 0x60, + 0x39, 0, 18, 0xF2, 0x45, 0xC7, 0x76, 0x66, 0x15, 0xA4, 0x77, 0x29, 0xAC, 0x9A, 0x84, 0x74, 0xAA, 0xAD, 0xE9, 0xA0, 0xE9, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x1E, 0x00, 0x3F, 0x65, 0x00, 0x92, 0xED, 0x11, 0x43, 0x95, 0x22, 0x23, 0x9F, 0x33, 0x07, 0x64, + 0x39, 0, 18, 0xF4, 0x34, 0xBB, 0x54, 0x45, 0xE0, 0x62, 0x56, 0xDA, 0x4B, 0x78, 0xDD, 0xA0, 0x89, 0xD2, 0x08, 0x90, 0x08, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0xDC, 0x11, 0x19, 0x4D, 0x11, 0x8A, 0xCB, 0x22, 0x08, 0x82, 0x23, 0xED, 0x4D, 0x34, 0xEB, 0x7A, 0x45, 0xF2, 0x65, + 0x39, 0, 18, 0xF6, 0x56, 0xCD, 0x85, 0x77, 0x29, 0xBD, 0x88, 0x48, 0xD1, 0xAB, 0xD5, 0xD5, 0xCC, 0x15, 0x52, 0xC0, 0x52, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x02, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x03, 0x26, 0x00, 0x4F, 0x7E, 0x01, 0xB0, 0x16, 0x11, 0x75, 0xC9, 0x22, 0x58, 0xD4, 0x33, 0x3C, 0x98, + 0x39, 0, 18, 0xF2, 0x34, 0xEB, 0x85, 0x55, 0x0D, 0x8A, 0x56, 0xFF, 0x69, 0x78, 0xE6, 0x98, 0x88, 0xC0, 0xE8, 0x80, 0xE8, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x0C, 0x00, 0x21, 0x38, 0x00, 0x54, 0x91, 0x01, 0xD2, 0x14, 0x11, 0x8C, 0xF9, 0x22, 0x59, 0xAD, + 0x39, 0, 18, 0xF4, 0x23, 0xFB, 0x82, 0x34, 0xF7, 0x65, 0x45, 0xCB, 0x2C, 0x67, 0x7F, 0x15, 0x77, 0x39, 0x60, 0x70, 0x60, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0xC9, 0x11, 0x04, 0x2B, 0x11, 0x51, 0x7E, 0x12, 0xAD, 0x09, 0x22, 0x63, 0xB9, 0x33, 0x44, 0xBE, 0x44, 0x26, 0x89, + 0x39, 0, 18, 0xF6, 0x45, 0xE4, 0x89, 0x66, 0x19, 0x9A, 0x77, 0x10, 0x81, 0x99, 0x13, 0xD1, 0x9A, 0xFE, 0x2D, 0xA0, 0x2D, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x03, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x14, 0x2A, 0x00, 0x41, 0x77, 0x00, 0xB2, 0xEA, 0x11, 0x5B, 0xBF, 0x22, 0x17, 0x64, + 0x39, 0, 18, 0xF2, 0x23, 0xAC, 0x28, 0x33, 0x97, 0xF7, 0x44, 0x4D, 0xA4, 0x56, 0xCA, 0x47, 0x66, 0x67, 0x86, 0x60, 0x86, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0x0D, 0x00, 0x1B, 0x34, 0x00, 0x53, 0x76, 0x01, 0xC1, 0x0B, 0x11, 0x54, 0x97, + 0x39, 0, 18, 0xF4, 0x12, 0xD6, 0x48, 0x23, 0xAC, 0x04, 0x33, 0x54, 0x9D, 0x45, 0x9D, 0x0D, 0x55, 0x29, 0x45, 0x50, 0x45, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x20, 0x01, 0xE7, 0x02, 0x11, 0x18, 0x2F, 0x11, 0x45, 0x76, 0x11, 0xAB, 0xE3, 0x22, 0x48, 0xAB, 0x33, 0x04, 0x50, + 0x39, 0, 18, 0xF6, 0x34, 0x9A, 0x13, 0x44, 0x88, 0xF0, 0x55, 0x53, 0xAC, 0x67, 0xDC, 0x5E, 0x77, 0x7F, 0x9F, 0x70, 0x9F, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x04, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x09, 0x23, 0x00, 0x3B, 0x77, 0x00, 0xAF, 0xEC, 0x11, 0x64, 0xCC, 0x22, 0x24, 0x78, + 0x39, 0, 18, 0xF2, 0x23, 0xC1, 0x43, 0x34, 0xB2, 0x10, 0x44, 0x6E, 0xC4, 0x56, 0xF4, 0x78, 0x66, 0x8F, 0xAF, 0x60, 0xAF, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0x0B, 0x00, 0x16, 0x32, 0x00, 0x52, 0x78, 0x01, 0xC6, 0x14, 0x11, 0x60, 0xA5, + 0x39, 0, 18, 0xF4, 0x12, 0xE6, 0x5C, 0x23, 0xC3, 0x1D, 0x33, 0x6F, 0xB7, 0x45, 0xC0, 0x31, 0x55, 0x4C, 0x68, 0x50, 0x68, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x01, 0x01, 0xED, 0x06, 0x11, 0x20, 0x38, 0x11, 0x4B, 0x80, 0x11, 0xB9, 0xF3, 0x22, 0x5D, 0xC3, 0x33, 0x1C, 0x6B, + 0x39, 0, 18, 0xF6, 0x34, 0xB4, 0x31, 0x45, 0xA9, 0x13, 0x55, 0x77, 0xCE, 0x77, 0x05, 0x8D, 0x77, 0xAD, 0xCA, 0x70, 0xCA, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x05, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x15, 0x00, 0x28, 0x3C, 0x00, 0x4D, 0x7F, 0x00, 0xB2, 0xE7, 0x11, 0x54, 0xBB, 0x22, 0x12, 0x65, + 0x39, 0, 18, 0xF2, 0x23, 0xAB, 0x2F, 0x33, 0x99, 0xF9, 0x44, 0x52, 0xA6, 0x56, 0xCC, 0x4C, 0x66, 0x6A, 0x85, 0x60, 0x85, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x13, 0x00, 0x1F, 0x2D, 0x00, 0x36, 0x4E, 0x00, 0x68, 0x86, 0x01, 0xC8, 0x0F, 0x11, 0x57, 0x9B, + 0x39, 0, 18, 0xF4, 0x12, 0xDA, 0x4B, 0x23, 0xAF, 0x07, 0x33, 0x57, 0xA0, 0x45, 0x9F, 0x10, 0x55, 0x2A, 0x45, 0x50, 0x45, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x43, 0x11, 0x23, 0x3F, 0x11, 0x50, 0x65, 0x11, 0x79, 0xA4, 0x12, 0xD4, 0x05, 0x22, 0x66, 0xC3, 0x33, 0x18, 0x63, + 0x39, 0, 18, 0xF6, 0x34, 0xA7, 0x24, 0x44, 0x94, 0xFB, 0x55, 0x5C, 0xB6, 0x67, 0xE2, 0x66, 0x77, 0x85, 0xA5, 0x70, 0xA5, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x06, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x2A, 0x00, 0x40, 0x51, 0x00, 0x63, 0x8B, 0x00, 0xB7, 0xE9, 0x11, 0x55, 0xB8, 0x22, 0x12, 0x64, + 0x39, 0, 18, 0xF2, 0x23, 0xAF, 0x2F, 0x33, 0x9B, 0xFB, 0x44, 0x56, 0xA9, 0x56, 0xC9, 0x46, 0x66, 0x62, 0x84, 0x60, 0x84, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x44, 0x5B, 0x00, 0x6C, 0x77, 0x00, 0x83, 0x95, 0x00, 0xAA, 0xC2, 0x01, 0xF8, 0x33, 0x11, 0x72, 0xAD, + 0x39, 0, 18, 0xF4, 0x12, 0xEA, 0x5A, 0x23, 0xB9, 0x0E, 0x33, 0x5E, 0xA5, 0x45, 0xA1, 0x0C, 0x55, 0x28, 0x42, 0x50, 0x42, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0xBE, 0x11, 0x8A, 0xA3, 0x11, 0xB8, 0xC9, 0x12, 0xDD, 0x00, 0x22, 0x22, 0x49, 0x22, 0x9B, 0xE7, 0x33, 0x33, 0x7A, + 0x39, 0, 18, 0xF6, 0x34, 0xBE, 0x32, 0x45, 0xA0, 0x06, 0x55, 0x67, 0xBC, 0x67, 0xE0, 0x62, 0x77, 0x7D, 0x9E, 0x70, 0x9E, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x07, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x98, 0x00, 0xC5, 0xD5, 0x01, 0xE6, 0x05, 0x11, 0x25, 0x45, 0x11, 0x92, 0xE3, 0x22, 0x34, 0x7D, + 0x39, 0, 18, 0xF2, 0x23, 0xC4, 0x3D, 0x34, 0xAB, 0x04, 0x44, 0x61, 0xB3, 0x56, 0xCF, 0x49, 0x66, 0x6B, 0x84, 0x60, 0x84, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x01, 0x02, 0x1F, 0x11, 0x36, 0x41, 0x11, 0x4E, 0x60, 0x11, 0x70, 0x82, 0x11, 0x9F, 0xC0, 0x12, 0xE7, 0x11, + 0x39, 0, 18, 0xF4, 0x22, 0x3D, 0x90, 0x23, 0xE2, 0x2D, 0x33, 0x7A, 0xBB, 0x45, 0xAE, 0x18, 0x55, 0x34, 0x4B, 0x50, 0x4B, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x7A, 0x22, 0x80, 0x96, 0x22, 0xA4, 0xB3, 0x22, 0xBF, 0xD4, 0x23, 0xED, 0x06, 0x33, 0x36, 0x66, 0x33, 0xA0, 0xD4, + 0x39, 0, 18, 0xF6, 0x44, 0x0A, 0x72, 0x45, 0xDB, 0x34, 0x55, 0x8C, 0xDF, 0x67, 0xF8, 0x73, 0x77, 0x92, 0xAC, 0x70, 0xAC, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x08, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x1F, 0x11, 0x0F, 0x57, 0x11, 0x70, 0x8B, 0x11, 0xA7, 0xC4, 0x22, 0x04, 0x41, 0x22, 0x80, 0xC0, + 0x39, 0, 18, 0xF2, 0x33, 0x00, 0x70, 0x34, 0xD8, 0x38, 0x44, 0x90, 0xE4, 0x66, 0x01, 0x7C, 0x66, 0x98, 0xB5, 0x60, 0xB5, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x08, 0x11, 0xEB, 0xFF, 0x22, 0x0A, 0x1C, 0x22, 0x29, 0x37, 0x22, 0x4D, 0x66, 0x22, 0x82, 0x9C, + 0x39, 0, 18, 0xF4, 0x22, 0xB9, 0xF9, 0x33, 0x3D, 0x7B, 0x33, 0xBB, 0xFB, 0x45, 0xE3, 0x4B, 0x55, 0x65, 0x82, 0x50, 0x82, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x01, 0x13, 0x03, 0x23, 0x33, 0x72, 0x7B, 0x33, 0x85, 0x96, 0x33, 0xA7, 0xBA, 0x34, 0xE2, 0x03, 0x44, 0x2D, 0x5A, + 0x39, 0, 18, 0xF6, 0x44, 0x87, 0xE0, 0x55, 0x38, 0x8F, 0x56, 0xE5, 0x30, 0x77, 0x41, 0xBA, 0x77, 0xD7, 0xF0, 0x70, 0xF0, + 0x39, 0, 2, 0xFF, 0x01, + 0x39, 0, 5, 0xFE, 0x01, 0x09, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0x28, 0x01, 0xB4, 0x61, 0x11, 0x7A, 0x8A, 0x11, 0xAF, 0xD7, 0x22, 0x02, 0x2C, + 0x39, 0, 18, 0xF2, 0x22, 0x54, 0xAA, 0x23, 0xF6, 0x48, 0x33, 0x8E, 0xCC, 0x45, 0xC1, 0x25, 0x55, 0x3F, 0x5B, 0x50, 0x5B, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x01, 0x04, 0x7E, 0x12, 0xF1, 0x03, 0x22, 0x11, 0x1C, 0x22, 0x2C, 0x40, 0x22, 0x4C, 0x5D, + 0x39, 0, 18, 0xF4, 0x22, 0x6E, 0x90, 0x22, 0xB9, 0xE0, 0x33, 0x0A, 0x33, 0x34, 0xE2, 0x2F, 0x44, 0x46, 0x5A, 0x40, 0x5A, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x97, 0x02, 0xE4, 0xB3, 0x33, 0x53, 0x66, 0x33, 0x71, 0x80, 0x33, 0x8B, 0x96, 0x33, 0xAD, 0xC6, 0x33, 0xE1, 0xFB, + 0x39, 0, 18, 0xF6, 0x44, 0x0F, 0x48, 0x44, 0x82, 0xC1, 0x45, 0xFC, 0x34, 0x66, 0x14, 0x70, 0x66, 0x87, 0xA1, 0x60, 0xA1, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x00, 0x04, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x24, 0x53, 0x00, 0x87, 0xF5, 0x11, 0x4D, 0xB6, 0x22, 0x4E, 0xCD, 0x33, 0x42, 0xA0, + 0x39, 0, 18, 0xF2, 0x34, 0xFE, 0x90, 0x55, 0x14, 0x89, 0x56, 0xFC, 0x61, 0x78, 0xA1, 0x34, 0x88, 0x50, 0x74, 0x80, 0x74, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x05, 0x15, 0x00, 0x26, 0x37, 0x00, 0x4A, 0x7C, 0x00, 0xAC, 0xF5, 0x11, 0x70, 0xDF, 0x22, 0x48, 0x9E, + 0x39, 0, 18, 0xF4, 0x23, 0xFA, 0x7A, 0x34, 0xF3, 0x59, 0x45, 0xC1, 0x15, 0x66, 0x4B, 0xCA, 0x67, 0xEC, 0x05, 0x70, 0x05, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x83, 0x01, 0xEC, 0x0C, 0x11, 0x38, 0x6B, 0x12, 0x9F, 0x0A, 0x22, 0x60, 0xC5, 0x33, 0x5D, 0xDD, 0x44, 0x4B, 0xB6, + 0x39, 0, 18, 0xF6, 0x55, 0x1B, 0xBA, 0x66, 0x40, 0xB9, 0x77, 0x26, 0x89, 0x89, 0xDB, 0x72, 0x99, 0x91, 0xB9, 0x90, 0xB9, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x01, 0x04, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x22, 0xA1, 0xA8, 0x22, 0xAF, 0xB6, 0x22, 0xBD, 0xC4, 0x22, 0xCB, 0xD2, 0x23, 0xD9, 0x1C, + 0x39, 0, 18, 0xF2, 0x33, 0x6E, 0xFE, 0x44, 0x79, 0xEB, 0x55, 0x50, 0xB5, 0x67, 0xE5, 0x66, 0x77, 0x7E, 0xA0, 0x70, 0xA0, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x01, 0xEA, 0xAD, 0x11, 0xB0, 0xB7, 0x11, 0xBE, 0xC5, 0x11, 0xCC, 0xD3, 0x11, 0xDA, 0xE1, 0x12, 0xE8, 0x21, + 0x39, 0, 18, 0xF4, 0x22, 0x6E, 0xF7, 0x33, 0x66, 0xCC, 0x44, 0x22, 0x7C, 0x56, 0x97, 0x0F, 0x66, 0x2E, 0x47, 0x60, 0x47, + 0x39, 0, 22, 0xF5, 0x02, 0x00, 0x42, 0x33, 0xA9, 0xAC, 0x33, 0xAF, 0xB6, 0x33, 0xBD, 0xC4, 0x33, 0xCB, 0xD2, 0x33, 0xD9, 0xE0, 0x34, 0xE7, 0x2C, + 0x39, 0, 18, 0xF6, 0x45, 0x80, 0x1A, 0x56, 0x9E, 0x13, 0x66, 0x7D, 0xDD, 0x88, 0x14, 0x99, 0x88, 0xBA, 0xD9, 0x80, 0xD9, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x02, 0x04, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x06, 0x04, 0x80, 0xFF, 0xA4, 0xA9, 0xFF, 0xAE, 0xB3, 0xFF, 0xB8, 0xBD, 0xFF, 0xC2, 0xC7, + 0x39, 0, 18, 0xF2, 0xFF, 0xCC, 0xD1, 0xFF, 0xD6, 0xDB, 0xFF, 0xE0, 0xE5, 0xFF, 0xEA, 0xEF, 0xFF, 0xF4, 0xF9, 0xF0, 0xF9, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x0F, 0x02, 0x99, 0xFF, 0x9C, 0x9F, 0xFF, 0xA4, 0xA9, 0xFF, 0xAE, 0xB3, 0xFF, 0xB8, 0xBD, 0xFF, 0xC2, 0xC7, + 0x39, 0, 18, 0xF4, 0xFF, 0xCC, 0xD1, 0xFF, 0xD6, 0xDB, 0xFF, 0xE0, 0xE5, 0xFF, 0xEA, 0xEF, 0xFF, 0xF4, 0xF9, 0xF0, 0xF9, + 0x39, 0, 22, 0xF5, 0x02, 0x00, 0xF4, 0xFF, 0x96, 0x99, 0xFF, 0x9C, 0x9F, 0xFF, 0xA4, 0xA9, 0xFF, 0xAE, 0xB3, 0xFF, 0xB8, 0xBD, 0xFF, 0xC2, 0xC7, + 0x39, 0, 18, 0xF6, 0xFF, 0xCC, 0xD1, 0xFF, 0xD6, 0xDB, 0xFF, 0xE0, 0xE5, 0xFF, 0xEA, 0xEF, 0xFF, 0xF4, 0xF9, 0xF0, 0xF9, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x03, 0x04, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0x05, 0x0F, 0x06, 0xA9, 0xFF, 0xAE, 0xB3, 0xFF, 0xB8, 0xBD, 0xFF, 0xC2, 0xC7, + 0x39, 0, 18, 0xF2, 0xFF, 0xCC, 0xD1, 0xFF, 0xD6, 0xDB, 0xFF, 0xE0, 0xE5, 0xFF, 0xEA, 0xEF, 0xFF, 0xF4, 0xF9, 0xF0, 0xF9, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0xFF, 0xA0, 0xA3, 0xFF, 0xA6, 0xA9, 0xFF, 0xAE, 0xB3, 0xFF, 0xB8, 0xBD, 0xFF, 0xC2, 0xC7, + 0x39, 0, 18, 0xF4, 0xFF, 0xCC, 0xD1, 0xFF, 0xD6, 0xDB, 0xFF, 0xE0, 0xE5, 0xFF, 0xEA, 0xEF, 0xFF, 0xF4, 0xF9, 0xF0, 0xF9, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x40, 0xFF, 0x9A, 0x9D, 0xFF, 0xA0, 0xA3, 0xFF, 0xA6, 0xA9, 0xFF, 0xAE, 0xB3, 0xFF, 0xB8, 0xBD, 0xFF, 0xC2, 0xC7, + 0x39, 0, 18, 0xF6, 0xFF, 0xCC, 0xD1, 0xFF, 0xD6, 0xDB, 0xFF, 0xE0, 0xE5, 0xFF, 0xEA, 0xEF, 0xFF, 0xF4, 0xF9, 0xF0, 0xF9, + 0x39, 0, 2, 0xFF, 0x01, +/////////////GAMMA2end/////////////// + +#endif + 0x39, 0, 2, 0x9F, 0x05, + 0x39, 0, 2, 0xF9, 0x00, + 0x39, 0, 2, 0xF7, 0x00, + 0x39, 0, 2, 0x9F, 0x02, + 0x39, 0, 8, 0xC3, 0x11, 0xC0, 0x05, 0xC0, 0x00, 0x00, 0x7F, + 0x39, 0, 2, 0x9F, 0x04, + 0x39, 0, 3, 0xBA, 0x10, 0x00, + 0x39, 0, 2, 0x9F, 0x0A, + 0x39, 0, 2, 0xB2, 0x1B, + 0x39, 0, 19, 0xB7, 0x13, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x20, 0x20, 0x21, + 0x39, 0, 2, 0x9F, 0x0A, + 0x39, 0, 2, 0xB2, 0x1B, + 0x39, 0, 46, 0xB8, 0x07, 0x00, 0x00, 0x06, 0x0A, 0x00, 0x06, 0x0A, 0x00, 0x00, 0x06, 0x0A, 0x00, 0x06, 0x0A, 0x00, 0x00, 0x06, 0x0A, 0x00, 0x06, 0x0A, 0x00, 0x00, 0x06, 0x0A, 0x00, 0x06, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 43, 0xB9, 0x00, 0x04, 0x04, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x40, 0x00, 0x00, 0x4C, 0x0C, 0x00, 0x00, 0x40, 0x00, 0x00, 0x4C, 0x0C, 0x00, 0x00, 0x04, 0x04, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 43, 0xBA, 0x00, 0x0D, 0x03, 0x00, 0x0D, 0x03, 0x00, 0x00, 0x0D, 0x03, 0x00, 0x0D, 0x03, 0x00, 0x00, 0x0D, 0x03, 0x00, 0x0D, 0x03, 0x00, 0x00, 0x0D, 0x03, 0x00, 0x0D, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 2, 0x9F, 0x00, + 0x39, 0, 2, 0x48, 0x03, +// 0x39,0,2,0x48,0x33, // video mode + 0x39, 0, 3, 0x51, 0x00, 0x00, + 0x39, 0, 2, 0x53, 0xE0, + 0x39, 0, 2, 0x35, 0x00, + +#endif +}; + + +#else + +const uint8_t panel_init_code[] = +{ + +#ifdef USE_PARAS_OLED_VIDEO + + 0x39, 0, 3, 0x9C, 0xA5, 0xA5, + 0x39, 0, 3, 0xFD, 0x5A, 0x5A, + 0x39, 0, 2, 0x9F, 0x0F, + 0x39, 0, 2, 0xB3, 0x00, + 0x39, 0, 2, 0x9F, 0x01, + 0x39, 0, 2, 0xD0, 0x01, +// 0x39,0,2,0xD3,0x01, + 0x39, 0, 4, 0xB2, 0x5A, 0x04, 0xAF, + 0x39, 0, 36, 0xB3, 0x00, 0xD0, 0xA0, 0x10, 0xBC, 0x00, 0x00, 0xDD, 0x00, 0x10, 0x10, 0x00, 0x00, 0xB3, 0x00, 0x10, 0x10, 0x00, 0x00, 0xB3, 0x00, 0x10, 0x10, 0x22, 0x00, 0xEF, 0x00, 0x10, 0x10, 0x33, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x39, 0, 17, 0xCA, 0x03, 0x01, 0x03, 0x03, 0x04, 0xE5, 0x06, 0x06, 0x04, 0xE5, 0x06, 0x06, 0x04, 0xE5, 0x06, 0x06, + 0x39, 0, 15, 0xCB, 0x03, 0x03, 0x05, 0x85, 0x07, 0x07, 0x05, 0x85, 0x07, 0x07, 0x05, 0x85, 0x07, 0x07, + 0x39, 0, 4, 0xD7, 0x00, 0x00, 0x02, + 0x39, 0, 2, 0x9F, 0x02, + 0x39, 0, 26, 0xB2, 0x00, 0xC0, 0x31, 0x10, 0x11, 0x12, 0x12, 0x10, 0x18, 0x78, 0x90, 0x50, 0x11, 0x11, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x11, 0x17, + 0x39, 0, 10, 0xB3, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 13, 0xB4, 0x00, 0x8A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 7, 0xB5, 0x00, 0x30, 0x30, 0x30, 0x30, 0x2B, + 0x39, 0, 20, 0xB6, 0x01, 0x01, 0x00, 0x11, 0x11, 0x11, 0x1C, 0x1F, 0x1F, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, + 0x39, 0, 11, 0xB7, 0x00, 0x10, 0x0F, 0x10, 0x10, 0x15, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 14, 0xB8, 0x00, 0x00, 0x00, 0x43, 0x28, 0x43, 0x28, 0x43, 0x28, 0x43, 0x28, 0x43, 0x28, + 0x39, 0, 13, 0xB9, 0x00, 0x00, 0x50, 0x00, 0x00, 0x0A, 0x0F, 0x00, 0x00, 0x00, 0x19, 0x0A, + 0x39, 0, 9, 0xBA, 0x00, 0xFF, 0x44, 0x04, 0x44, 0x04, 0x44, 0x04, + 0x39, 0, 26, 0xBB, 0x01, 0x4A, 0x64, 0x16, 0x17, 0x01, 0x4A, 0x64, 0x16, 0x17, 0x01, 0x4A, 0x64, 0x16, 0x14, 0x01, 0x4A, 0x64, 0x16, 0x14, 0x01, 0x31, 0x64, 0x16, 0x0F, + 0x39, 0, 17, 0xC1, 0x00, 0x00, 0x00, 0x23, 0x23, 0x24, 0x24, 0x05, 0x05, 0x21, 0x21, 0x22, 0x22, 0x01, 0x01, 0x00, + 0x39, 0, 17, 0xC2, 0x00, 0x00, 0x00, 0x23, 0x23, 0x24, 0x24, 0x05, 0x05, 0x21, 0x21, 0x22, 0x22, 0x01, 0x01, 0x00, + 0x39, 0, 8, 0xC3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 15, 0xC4, 0x00, 0x05, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x00, 0x00, 0x06, + 0x39, 0, 26, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x03, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x55, 0x00, 0x01, + 0x39, 0, 14, 0xC7, 0x00, 0x2E, 0x2E, 0x2E, 0x2E, 0x00, 0x2E, 0x2E, 0x2E, 0x2E, 0x00, 0x30, 0x30, + 0x39, 0, 14, 0xC8, 0x00, 0x2E, 0x2E, 0x2E, 0x2E, 0x00, 0x2E, 0x2E, 0x2E, 0x2E, 0x00, 0x30, 0x30, + 0x39, 0, 27, 0xCC, 0x00, 0x57, 0xBA, 0x57, 0xBA, 0x00, 0x57, 0xBA, 0x57, 0xBA, 0x00, 0x57, 0xBC, 0x00, 0x30, 0x6C, 0x30, 0x6C, 0x00, 0x30, 0x6C, 0x30, 0x6C, 0x00, 0x30, 0x6C, + 0x39, 0, 17, 0xD2, 0x00, 0x00, 0x09, 0x09, 0x00, 0x09, 0x09, 0x00, 0x09, 0x09, 0x00, 0x09, 0x09, 0x00, 0x09, 0x09, + 0x39, 0, 12, 0xD7, 0x44, 0x01, 0x3F, 0x26, 0x37, 0x26, 0x37, 0x01, 0x11, 0x00, 0x00, + 0x39, 0, 26, 0xD8, 0x00, 0x00, 0xC3, 0x9F, 0x40, 0x00, 0x00, 0xC3, 0x9F, 0x40, 0x00, 0x00, 0xC3, 0x9F, 0x40, 0x00, 0x00, 0xC3, 0x9F, 0x40, 0x00, 0x00, 0xC3, 0x00, 0x00, + 0x39, 0, 12, 0xD9, 0x10, 0x00, 0x33, 0x00, 0x33, 0x00, 0x33, 0x00, 0x33, 0x00, 0x30, + 0x39, 0, 6, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 26, 0xE2, 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, + 0x39, 0, 13, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 6, 0xEF, 0x00, 0x80, 0x85, 0x81, 0x82, + 0x39, 0, 9, 0xBE, 0x5F, 0x16, 0x04, 0x5F, 0x75, 0x00, 0x00, 0x00, + 0x39, 0, 2, 0xBF, 0x08, + 0x39, 0, 2, 0x9F, 0x04, + 0x39, 0, 3, 0xB2, 0x01, 0x00, + 0x39, 0, 19, 0xB3, 0x00, 0x00, 0x10, 0x00, 0x30, 0x50, 0x00, 0x70, 0x90, 0x00, 0xB0, 0xF0, 0x11, 0x30, 0x70, 0x12, 0xF0, 0x70, + 0x39, 0, 21, 0xB4, 0x23, 0xF0, 0x70, 0x34, 0xF0, 0xF0, 0x56, 0xF0, 0xF0, 0x78, 0xF0, 0xF0, 0xCE, 0xF0, 0xF0, 0xFF, 0x70, 0xF0, 0x0F, 0xFF, + 0x39, 0, 14, 0xB5, 0x11, 0x10, 0x27, 0x1C, 0xD0, 0x00, 0x64, 0x64, 0x10, 0x3F, 0xFF, 0xFF, 0xFF, + 0x39, 0, 7, 0xB6, 0x11, 0x00, 0x00, 0x0F, 0xF0, 0x10, + 0x39, 0, 3, 0xB9, 0x91, 0x83, + 0x39, 0, 3, 0xBA, 0x10, 0x00, + 0x39, 0, 5, 0xC4, 0x01, 0x10, 0x00, 0x00, + 0x39, 0, 20, 0xC5, 0x00, 0x20, 0x88, 0xC1, 0xCF, 0x50, 0x4F, 0x00, 0x4E, 0x57, 0x35, 0x22, 0x22, 0x2A, 0x05, 0x3F, 0x00, 0x20, 0x0F, + 0x39, 0, 13, 0xC6, 0x4B, 0x00, 0x90, 0x00, 0x02, 0xD5, 0x00, 0x02, 0xCB, 0x01, 0x10, 0x43, + 0x39, 0, 5, 0xC8, 0x29, 0x29, 0x28, 0x28, + 0x39, 0, 21, 0xC9, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x29, 0x29, 0x29, 0x29, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, + 0x39, 0, 21, 0xCA, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x29, 0x29, 0x29, 0x29, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, + 0x39, 0, 21, 0xCB, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x29, 0x29, 0x29, 0x29, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, + 0x39, 0, 21, 0xCC, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x29, 0x29, 0x29, 0x29, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, + 0x39, 0, 21, 0xCD, 0x21, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, + 0x39, 0, 21, 0xCE, 0x21, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, + 0x39, 0, 21, 0xCF, 0x21, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, + 0x39, 0, 21, 0xD0, 0x21, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, + 0x39, 0, 21, 0xD1, 0x21, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, + 0x39, 0, 21, 0xD2, 0x21, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, + 0x39, 0, 21, 0xD3, 0x21, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, + 0x39, 0, 21, 0xD4, 0x21, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, + 0x39, 0, 2, 0x9F, 0x05, + 0x39, 0, 7, 0xB2, 0x24, 0x20, 0x05, 0x0F, 0xFF, 0xFF, + 0x39, 0, 9, 0xB3, 0xA0, 0x00, 0x28, 0x00, 0x00, 0x00, 0x3F, 0xFF, + 0x39, 0, 11, 0xB4, 0x00, 0x60, 0x0E, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 16, 0xB5, 0x33, 0xFE, 0x6E, 0x22, 0xEC, 0x68, 0x11, 0xE4, 0x64, 0x10, 0x62, 0xEC, 0x00, 0x76, 0x02, + 0x39, 0, 7, 0xB6, 0x31, 0xFE, 0xD8, 0x00, 0x58, 0x00, + 0x39, 0, 16, 0xB9, 0x71, 0x20, 0x05, 0x78, 0x70, 0x5A, 0x3C, 0x78, 0x70, 0x5A, 0x3C, 0x78, 0x70, 0x5A, 0x3C, + 0x39, 0, 2, 0x9F, 0x07, + 0x39, 0, 8, 0xB2, 0x08, 0x08, 0x08, 0x08, 0x04, 0x02, 0xA8, + 0x39, 0, 8, 0xB3, 0x04, 0x04, 0x04, 0x04, 0x04, 0x03, 0x8C, + 0x39, 0, 8, 0xB4, 0x04, 0x04, 0x04, 0x04, 0x04, 0x02, 0xA8, + 0x39, 0, 8, 0xB5, 0x04, 0x04, 0x04, 0x04, 0x04, 0x02, 0xA8, + 0x39, 0, 8, 0xB6, 0x04, 0x04, 0x04, 0x04, 0x04, 0x02, 0xA8, + 0x39, 0, 8, 0xB7, 0x08, 0x08, 0x08, 0x08, 0x02, 0x0B, 0xB8, + 0x39, 0, 8, 0xB8, 0x02, 0x04, 0x04, 0x04, 0x01, 0x0A, 0xBE, + 0x39, 0, 17, 0xB9, 0x01, 0x05, 0x03, 0x07, 0x02, 0x06, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 17, 0xBA, 0x01, 0x03, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 17, 0xBB, 0x01, 0x03, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 17, 0xBC, 0x01, 0x03, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 17, 0xBD, 0x01, 0x03, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 17, 0xBE, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 17, 0xBF, 0x01, 0x02, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 16, 0xC0, 0x22, 0xA8, 0xA8, 0x22, 0xA8, 0xA8, 0x21, 0x58, 0x90, 0x00, 0xC8, 0x44, 0x00, 0x20, 0x20, + 0x39, 0, 16, 0xC1, 0x33, 0x8C, 0x8C, 0x33, 0x8C, 0x8C, 0x32, 0x20, 0x18, 0x10, 0x0C, 0x58, 0x00, 0x2C, 0x2C, + 0x39, 0, 16, 0xC2, 0x22, 0xA8, 0xA8, 0x22, 0xA8, 0xA8, 0x21, 0x58, 0x90, 0x00, 0xC8, 0x44, 0x00, 0x20, 0x20, + 0x39, 0, 16, 0xC3, 0x22, 0xA8, 0xA8, 0x22, 0xA8, 0xA8, 0x21, 0x58, 0x90, 0x00, 0xC8, 0x44, 0x00, 0x20, 0x20, + 0x39, 0, 7, 0xC4, 0x22, 0xA8, 0xA8, 0x22, 0xA8, 0xA8, + 0x39, 0, 7, 0xC5, 0x97, 0xC4, 0xD0, 0x76, 0x08, 0x40, + 0x39, 0, 4, 0xC6, 0x97, 0x2E, 0x9E, + 0x39, 0, 3, 0xC7, 0x02, 0x00, + 0x39, 0, 8, 0xC8, 0x10, 0x20, 0x20, 0x20, 0x02, 0x00, 0x7E, + 0x39, 0, 8, 0xC9, 0x0F, 0x20, 0x20, 0x20, 0x02, 0x00, 0x7E, + 0x39, 0, 8, 0xCA, 0x0E, 0x20, 0x20, 0x20, 0x02, 0x00, 0x7E, + 0x39, 0, 8, 0xCB, 0x0D, 0x20, 0x20, 0x20, 0x02, 0x00, 0x7E, + 0x39, 0, 17, 0xCC, 0x01, 0x09, 0x03, 0x0B, 0x05, 0x0D, 0x07, 0x0F, 0x02, 0x0A, 0x04, 0x0C, 0x06, 0x0E, 0x08, 0x10, + 0x39, 0, 17, 0xCD, 0x01, 0x07, 0x03, 0x09, 0x05, 0x0B, 0x0D, 0x0F, 0x02, 0x08, 0x04, 0x0A, 0x06, 0x0C, 0x0E, 0x00, + 0x39, 0, 17, 0xCE, 0x01, 0x07, 0x03, 0x09, 0x05, 0x0B, 0x0D, 0x02, 0x08, 0x04, 0x0A, 0x06, 0x0C, 0x0E, 0x00, 0x00, + 0x39, 0, 17, 0xCF, 0x01, 0x07, 0x03, 0x09, 0x05, 0x0B, 0x0D, 0x02, 0x08, 0x04, 0x0A, 0x06, 0x0C, 0x00, 0x00, 0x00, + 0x39, 0, 16, 0xD0, 0x00, 0x7E, 0x72, 0x00, 0x64, 0x58, 0x00, 0x4C, 0x40, 0x00, 0x32, 0x26, 0x00, 0x1A, 0x16, + 0x39, 0, 16, 0xD1, 0x00, 0x7E, 0x72, 0x00, 0x64, 0x58, 0x00, 0x4C, 0x40, 0x00, 0x32, 0x26, 0x00, 0x1A, 0x16, + 0x39, 0, 16, 0xD2, 0x00, 0x7E, 0x72, 0x00, 0x64, 0x58, 0x00, 0x4C, 0x40, 0x00, 0x32, 0x26, 0x00, 0x1A, 0x16, + 0x39, 0, 16, 0xD3, 0x00, 0x7E, 0x72, 0x00, 0x64, 0x58, 0x00, 0x4C, 0x40, 0x00, 0x32, 0x26, 0x00, 0x1A, 0x16, + 0x39, 0, 2, 0x9F, 0x0F, + 0x39, 0, 2, 0xF8, 0x11, + 0x39, 0, 2, 0x9F, 0x00, + 0x39, 0, 2, 0x48, 0x00, + 0x39, 0, 3, 0x51, 0x00, 0x00, + 0x39, 0, 2, 0x53, 0xE0, + 0x39, 0, 2, 0x35, 0x00, + 0x39, 0, 1, 0x11, + + 0x39, 0, 2, 0x9F, 0x05, + 0x39, 0, 2, 0xF9, 0x80, + 0x39, 0, 2, 0xF7, 0x10, + 0x39, 0, 2, 0x9F, 0x06, + 0x39, 0, 41, 0xB2, 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, + 0x39, 0, 41, 0xB3, 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, + 0x39, 0, 21, 0xB4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 41, 0xB5, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, + 0x39, 0, 41, 0xB6, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, + 0x39, 0, 21, 0xB7, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, 0x01, 0xED, + 0x39, 0, 5, 0xFE, 0x01, 0x00, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x23, 0x01, 0xB7, 0x47, 0x12, 0xBF, 0x26, 0x23, 0x7C, 0x0E, 0x33, 0x83, 0xE8, 0x45, 0x8A, 0x10, 0x55, 0x82, 0xEB, + 0x39, 0, 18, 0xF2, 0x66, 0x4B, 0xF9, 0x78, 0x92, 0x1F, 0x89, 0xA5, 0x23, 0xBB, 0x07, 0xF4, 0xCC, 0x32, 0x71, 0xC0, 0x71, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x49, 0x00, 0x8C, 0xDC, 0x11, 0x33, 0x83, 0x12, 0xCB, 0x4C, 0x23, 0xB9, 0x16, 0x34, 0xB0, 0x2E, 0x44, 0x97, 0xF7, + 0x39, 0, 18, 0xF4, 0x55, 0x4D, 0xE6, 0x66, 0x6E, 0xED, 0x77, 0x65, 0xCF, 0x9A, 0x6C, 0x33, 0xAA, 0x67, 0x9E, 0xA0, 0x9E, + 0x39, 0, 22, 0xF5, 0x01, 0x00, 0x5C, 0x12, 0xC5, 0x3C, 0x23, 0xAE, 0x12, 0x33, 0x66, 0xF5, 0x44, 0x6A, 0xCF, 0x56, 0x77, 0x03, 0x66, 0x7D, 0xEC, + 0x39, 0, 18, 0xF6, 0x78, 0x51, 0x06, 0x89, 0xA5, 0x3C, 0x9A, 0xCA, 0x4F, 0xCD, 0x58, 0x66, 0xDD, 0xAD, 0xEE, 0xD0, 0xEE, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x01, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x9E, 0x01, 0xF9, 0x5D, 0x12, 0xBF, 0x17, 0x22, 0x6A, 0xF2, 0x33, 0x60, 0xC1, 0x44, 0x5C, 0xDE, 0x55, 0x4F, 0xB3, + 0x39, 0, 18, 0xF2, 0x66, 0x0E, 0xB2, 0x77, 0x43, 0xC5, 0x88, 0x3F, 0xB4, 0xAB, 0x66, 0x3A, 0xBB, 0x72, 0x9D, 0xB0, 0x9D, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0xBA, 0x01, 0xE1, 0x0D, 0x11, 0x47, 0x87, 0x12, 0xC4, 0x35, 0x22, 0x98, 0xEF, 0x33, 0x82, 0xFB, 0x44, 0x62, 0xBD, + 0x39, 0, 18, 0xF4, 0x55, 0x10, 0xA2, 0x66, 0x22, 0x97, 0x77, 0x05, 0x6E, 0x89, 0xE3, 0x97, 0x99, 0xC5, 0xEF, 0x90, 0xEF, + 0x39, 0, 22, 0xF5, 0x01, 0x00, 0xA0, 0x12, 0xEF, 0x4D, 0x23, 0xAC, 0x03, 0x33, 0x52, 0xD9, 0x44, 0x47, 0xA8, 0x55, 0x49, 0xD1, 0x66, 0x47, 0xB1, + 0x39, 0, 18, 0xF6, 0x77, 0x10, 0xBB, 0x88, 0x50, 0xDA, 0x99, 0x5D, 0xD8, 0xBC, 0xA9, 0x93, 0xCD, 0xD1, 0x06, 0xD0, 0x06, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x02, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x01, 0xD7, 0x18, 0x11, 0x65, 0xAD, 0x12, 0xEE, 0x68, 0x23, 0xD0, 0x27, 0x34, 0xB9, 0x30, 0x44, 0x95, 0xEE, + 0x39, 0, 18, 0xF2, 0x55, 0x42, 0xD3, 0x66, 0x52, 0xC4, 0x77, 0x2E, 0x91, 0x89, 0xEF, 0x8E, 0x99, 0xBB, 0xDF, 0x90, 0xDF, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x9D, 0x00, 0xD4, 0xEE, 0x11, 0x12, 0x3C, 0x11, 0x69, 0xC2, 0x22, 0x15, 0x63, 0x23, 0xE9, 0x57, 0x34, 0xB8, 0x0C, + 0x39, 0, 18, 0xF4, 0x44, 0x57, 0xDB, 0x55, 0x4D, 0xB4, 0x66, 0x11, 0x6B, 0x78, 0xA1, 0x2B, 0x88, 0x4B, 0x70, 0x80, 0x70, + 0x39, 0, 22, 0xF5, 0x01, 0x00, 0x96, 0x12, 0xD0, 0x0D, 0x22, 0x53, 0x98, 0x23, 0xDA, 0x50, 0x34, 0xB6, 0x0E, 0x45, 0xA0, 0x19, 0x55, 0x85, 0xE2, + 0x39, 0, 18, 0xF6, 0x66, 0x3A, 0xD3, 0x77, 0x56, 0xCF, 0x88, 0x3C, 0xA3, 0xAA, 0x19, 0xC1, 0xAB, 0xEE, 0x11, 0xB0, 0x11, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x03, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0xAD, 0xD2, 0x01, 0xF5, 0x22, 0x11, 0x4E, 0xA3, 0x12, 0xF0, 0x39, 0x23, 0xB6, 0x1E, 0x33, 0x77, 0xC8, + 0x39, 0, 18, 0xF2, 0x44, 0x0E, 0x87, 0x45, 0xEE, 0x4E, 0x55, 0xA2, 0xF2, 0x67, 0xFD, 0x75, 0x77, 0x93, 0xAE, 0x70, 0xAE, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0xC1, 0xD1, 0x00, 0xE0, 0xF2, 0x11, 0x06, 0x35, 0x11, 0x6B, 0x9C, 0x22, 0x01, 0x5B, 0x22, 0xAD, 0xF5, + 0x39, 0, 18, 0xF4, 0x33, 0x37, 0xA9, 0x44, 0x0B, 0x60, 0x44, 0xAE, 0xF6, 0x56, 0xE6, 0x50, 0x66, 0x69, 0x84, 0x60, 0x84, + 0x39, 0, 22, 0xF5, 0x01, 0x00, 0x29, 0x11, 0xAD, 0xCE, 0x12, 0xED, 0x14, 0x22, 0x3D, 0x8F, 0x23, 0xDC, 0x22, 0x34, 0x9D, 0x05, 0x44, 0x5D, 0xAE, + 0x39, 0, 18, 0xF6, 0x45, 0xF7, 0x75, 0x56, 0xE1, 0x47, 0x66, 0xA0, 0xF2, 0x88, 0x0B, 0x84, 0x88, 0xA2, 0xC3, 0x80, 0xC3, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x04, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x68, 0x98, 0x00, 0xCC, 0xFE, 0x11, 0x32, 0x95, 0x12, 0xEA, 0x3A, 0x23, 0xBD, 0x29, 0x33, 0x85, 0xD8, + 0x39, 0, 18, 0xF2, 0x44, 0x23, 0x9E, 0x55, 0x0A, 0x6C, 0x56, 0xC2, 0x0F, 0x77, 0x25, 0x9D, 0x77, 0xBB, 0xD8, 0x70, 0xD8, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0xAF, 0xC2, 0x00, 0xD2, 0xE3, 0x01, 0xF7, 0x2B, 0x11, 0x64, 0x9B, 0x22, 0x04, 0x62, 0x23, 0xB7, 0x00, + 0x39, 0, 18, 0xF4, 0x33, 0x47, 0xBD, 0x44, 0x22, 0x7B, 0x45, 0xC9, 0x11, 0x66, 0x08, 0x76, 0x66, 0x8E, 0xA9, 0x60, 0xA9, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0xCB, 0x11, 0xA7, 0xCA, 0x12, 0xEC, 0x14, 0x22, 0x3F, 0x94, 0x23, 0xE5, 0x2E, 0x34, 0xB0, 0x1A, 0x44, 0x76, 0xC8, + 0x39, 0, 18, 0xF6, 0x55, 0x13, 0x93, 0x66, 0x03, 0x69, 0x67, 0xC3, 0x14, 0x88, 0x35, 0xB3, 0x88, 0xD0, 0xF0, 0x80, 0xF0, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x05, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x61, 0x92, 0x00, 0xC0, 0xEE, 0x11, 0x1E, 0x7A, 0x12, 0xD1, 0x1D, 0x23, 0xA3, 0x13, 0x33, 0x76, 0xC8, + 0x39, 0, 18, 0xF2, 0x44, 0x12, 0x8E, 0x45, 0xFB, 0x5C, 0x56, 0xB2, 0x01, 0x77, 0x12, 0x84, 0x77, 0xA5, 0xC0, 0x70, 0xC0, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0xC0, 0xD1, 0x00, 0xDF, 0xEF, 0x11, 0x00, 0x2B, 0x11, 0x5B, 0x8E, 0x12, 0xF0, 0x4C, 0x22, 0xA2, 0xF0, + 0x39, 0, 18, 0xF4, 0x33, 0x35, 0xAD, 0x44, 0x12, 0x6C, 0x45, 0xBA, 0x02, 0x56, 0xF6, 0x5F, 0x66, 0x7A, 0x94, 0x60, 0x94, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x5D, 0x11, 0xC7, 0xE6, 0x22, 0x06, 0x28, 0x22, 0x4E, 0x9C, 0x23, 0xE9, 0x31, 0x34, 0xAF, 0x17, 0x44, 0x72, 0xC1, + 0x39, 0, 18, 0xF6, 0x55, 0x0B, 0x89, 0x56, 0xF8, 0x5C, 0x67, 0xB6, 0x07, 0x88, 0x23, 0x9B, 0x88, 0xBA, 0xD8, 0x80, 0xD8, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x06, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x87, 0x00, 0xAD, 0xD0, 0x01, 0xF8, 0x48, 0x11, 0x99, 0xE7, 0x22, 0x7E, 0xF9, 0x33, 0x61, 0xBB, + 0x39, 0, 18, 0xF2, 0x44, 0x09, 0x8A, 0x45, 0xF7, 0x58, 0x56, 0xB2, 0x01, 0x77, 0x10, 0x84, 0x77, 0xA2, 0xBA, 0x70, 0xBA, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0xDB, 0xF9, 0x11, 0x05, 0x11, 0x11, 0x1D, 0x39, 0x11, 0x5D, 0x86, 0x12, 0xDD, 0x3A, 0x22, 0x94, 0xE4, + 0x39, 0, 18, 0xF4, 0x33, 0x2B, 0xA7, 0x44, 0x0F, 0x68, 0x45, 0xB9, 0x00, 0x56, 0xF5, 0x5D, 0x66, 0x77, 0x8D, 0x60, 0x8D, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0xBA, 0x22, 0x0A, 0x28, 0x22, 0x45, 0x63, 0x22, 0x80, 0xC3, 0x33, 0x06, 0x48, 0x34, 0xBF, 0x22, 0x44, 0x7A, 0xCB, + 0x39, 0, 18, 0xF6, 0x55, 0x12, 0x90, 0x56, 0xFF, 0x61, 0x67, 0xBC, 0x0C, 0x88, 0x23, 0x9A, 0x88, 0xB8, 0xD1, 0x80, 0xD1, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x07, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x27, 0x00, 0xBD, 0xDE, 0x01, 0xF8, 0x30, 0x11, 0x6C, 0xA6, 0x22, 0x2C, 0xBD, 0x33, 0x34, 0x98, + 0x39, 0, 18, 0xF2, 0x34, 0xEB, 0x76, 0x45, 0xEC, 0x50, 0x55, 0xAC, 0xFC, 0x77, 0x0C, 0x80, 0x77, 0x9E, 0xB5, 0x70, 0xB5, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x01, 0x02, 0x40, 0x11, 0x5C, 0x67, 0x11, 0x70, 0x83, 0x11, 0x97, 0xAF, 0x12, 0xE9, 0x38, 0x22, 0x8C, 0xD9, + 0x39, 0, 18, 0xF4, 0x33, 0x21, 0x9E, 0x44, 0x07, 0x62, 0x44, 0xB4, 0xFF, 0x56, 0xF1, 0x59, 0x66, 0x74, 0x8A, 0x60, 0x8A, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x10, 0x12, 0xEE, 0xCC, 0x22, 0xE1, 0xF9, 0x33, 0x10, 0x3D, 0x33, 0x6D, 0x9D, 0x34, 0xF9, 0x52, 0x44, 0xA3, 0xEE, + 0x39, 0, 18, 0xF6, 0x55, 0x2F, 0xA9, 0x66, 0x15, 0x74, 0x67, 0xCC, 0x1C, 0x88, 0x2B, 0xA0, 0x88, 0xBE, 0xD7, 0x80, 0xD7, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x08, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x28, 0xEB, 0x11, 0x02, 0x32, 0x11, 0x5D, 0x91, 0x12, 0xFB, 0x90, 0x33, 0x15, 0x86, + 0x39, 0, 18, 0xF2, 0x34, 0xE5, 0x7B, 0x45, 0xF6, 0x64, 0x56, 0xC2, 0x16, 0x77, 0x30, 0xA6, 0x77, 0xC2, 0xDC, 0x70, 0xDC, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x11, 0x9A, 0xA8, 0x11, 0xB7, 0xCA, 0x11, 0xDB, 0xEE, 0x22, 0x22, 0x62, 0x22, 0xAB, 0xF4, + 0x39, 0, 18, 0xF4, 0x33, 0x39, 0xB3, 0x44, 0x1D, 0x7A, 0x45, 0xCB, 0x17, 0x66, 0x13, 0x7D, 0x66, 0x95, 0xAD, 0x60, 0xAD, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x0D, 0x13, 0x27, 0x06, 0x33, 0x7F, 0x93, 0x33, 0xA3, 0xC9, 0x34, 0xEC, 0x10, 0x44, 0x5C, 0xA6, 0x45, 0xEB, 0x30, + 0x39, 0, 18, 0xF6, 0x55, 0x6F, 0xE6, 0x66, 0x4E, 0xAC, 0x77, 0x02, 0x51, 0x88, 0x61, 0xD6, 0x89, 0xF3, 0x0F, 0x90, 0x0F, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x09, 0x00, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0x05, 0x00, 0x2A, 0xF9, 0x11, 0x14, 0x35, 0x11, 0x74, 0xB4, 0x22, 0x00, 0x5C, + 0x39, 0, 18, 0xF2, 0x23, 0xBB, 0x5D, 0x34, 0xE0, 0x49, 0x44, 0xA1, 0xF2, 0x56, 0xF2, 0x5C, 0x66, 0x74, 0x8C, 0x60, 0x8C, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0xB8, 0x11, 0xA1, 0xAE, 0x11, 0xBF, 0xCC, 0x11, 0xE1, 0xFC, 0x22, 0x1E, 0x49, + 0x39, 0, 18, 0xF4, 0x22, 0x78, 0xD7, 0x33, 0x35, 0x89, 0x34, 0xD2, 0x17, 0x45, 0xF6, 0x55, 0x55, 0x6B, 0x7F, 0x50, 0x7F, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x01, 0x01, 0x2B, 0x41, 0x33, 0x68, 0x7F, 0x33, 0x82, 0x9A, 0x33, 0xB4, 0xCB, 0x34, 0xFA, 0x28, 0x44, 0x58, 0x8C, + 0x39, 0, 18, 0xF6, 0x45, 0xBB, 0x18, 0x55, 0x6C, 0xBC, 0x66, 0x04, 0x48, 0x77, 0x30, 0x94, 0x77, 0xAC, 0xC0, 0x70, 0xC0, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x00, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0xE4, 0x11, 0x37, 0x96, 0x12, 0xF5, 0x4D, 0x23, 0x9A, 0x20, 0x33, 0x8E, 0xEE, 0x45, 0x8C, 0x0D, 0x55, 0x7E, 0xE6, + 0x39, 0, 18, 0xF2, 0x66, 0x44, 0xF2, 0x78, 0x8A, 0x16, 0x89, 0x97, 0x19, 0xAB, 0xF7, 0xE5, 0xCC, 0x20, 0x62, 0xC0, 0x62, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0xF8, 0x11, 0x28, 0x57, 0x11, 0x8E, 0xC8, 0x22, 0x02, 0x71, 0x23, 0xD1, 0x28, 0x34, 0xBB, 0x32, 0x44, 0x99, 0xF5, + 0x39, 0, 18, 0xF4, 0x55, 0x4A, 0xE0, 0x66, 0x68, 0xE4, 0x77, 0x57, 0xC6, 0x9A, 0x5D, 0x23, 0xAA, 0x56, 0x8E, 0xA0, 0x8E, + 0x39, 0, 22, 0xF5, 0x01, 0x00, 0xF9, 0x22, 0x47, 0x96, 0x23, 0xEC, 0x3B, 0x34, 0x86, 0x09, 0x44, 0x76, 0xD6, 0x56, 0x7A, 0x03, 0x66, 0x7A, 0xE6, + 0x39, 0, 18, 0xF6, 0x77, 0x4A, 0xFF, 0x89, 0x9E, 0x33, 0x9A, 0xBE, 0x47, 0xCD, 0x4A, 0x55, 0xDD, 0x9B, 0xE0, 0xD0, 0xE0, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x01, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x01, 0x00, 0x4F, 0x11, 0x8D, 0xCF, 0x22, 0x1B, 0x66, 0x23, 0xAD, 0x29, 0x33, 0x92, 0xEE, 0x45, 0x86, 0x07, 0x55, 0x75, 0xDA, + 0x39, 0, 18, 0xF2, 0x66, 0x39, 0xE1, 0x77, 0x73, 0xF9, 0x88, 0x7A, 0xF3, 0xAB, 0xC0, 0xA4, 0xBC, 0xE0, 0x1B, 0xC0, 0x1B, + 0x39, 0, 22, 0xF3, 0x01, 0x00, 0x5F, 0x11, 0x82, 0xA2, 0x11, 0xC6, 0xF1, 0x22, 0x22, 0x81, 0x23, 0xDA, 0x2A, 0x34, 0xB4, 0x29, 0x44, 0x8C, 0xE6, + 0x39, 0, 18, 0xF4, 0x55, 0x39, 0xCD, 0x66, 0x50, 0xC8, 0x77, 0x3A, 0xA4, 0x99, 0x2B, 0xEB, 0xAA, 0x1C, 0x4B, 0xA0, 0x4B, + 0x39, 0, 22, 0xF5, 0x02, 0x00, 0x43, 0x22, 0x83, 0xC4, 0x33, 0x0C, 0x51, 0x34, 0x96, 0x0F, 0x44, 0x78, 0xD4, 0x55, 0x74, 0xFA, 0x66, 0x6F, 0xD9, + 0x39, 0, 18, 0xF6, 0x77, 0x3B, 0xEA, 0x89, 0x84, 0x13, 0x9A, 0x9C, 0x1D, 0xCD, 0x0B, 0x0F, 0xDD, 0x56, 0x93, 0xD0, 0x93, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x02, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x01, 0x00, 0x48, 0x11, 0x87, 0xC5, 0x22, 0x09, 0x51, 0x23, 0x94, 0x0B, 0x33, 0x73, 0xCD, 0x44, 0x61, 0xDD, 0x55, 0x4C, 0xAF, + 0x39, 0, 18, 0xF2, 0x66, 0x09, 0xA9, 0x77, 0x3A, 0xBD, 0x88, 0x38, 0xA9, 0xAB, 0x5B, 0x31, 0xBB, 0x66, 0x94, 0xB0, 0x94, + 0x39, 0, 22, 0xF3, 0x01, 0x00, 0x5E, 0x11, 0x80, 0x9C, 0x11, 0xBE, 0xE5, 0x22, 0x11, 0x6B, 0x23, 0xC0, 0x0C, 0x34, 0x92, 0x03, 0x44, 0x66, 0xBF, + 0x39, 0, 18, 0xF4, 0x55, 0x0F, 0x9E, 0x66, 0x1C, 0x91, 0x67, 0xFD, 0x62, 0x89, 0xD7, 0x8C, 0x99, 0xB8, 0xE3, 0x90, 0xE3, + 0x39, 0, 22, 0xF5, 0x02, 0x00, 0x42, 0x22, 0x7D, 0xB9, 0x23, 0xFB, 0x3C, 0x33, 0x7E, 0xF3, 0x44, 0x59, 0xB3, 0x55, 0x4D, 0xD0, 0x66, 0x44, 0xAD, + 0x39, 0, 18, 0xF6, 0x77, 0x0A, 0xB2, 0x88, 0x48, 0xD2, 0x99, 0x54, 0xCF, 0xBC, 0x9E, 0x8B, 0xCC, 0xC8, 0xFE, 0xC0, 0xFE, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x03, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x59, 0x11, 0x76, 0xA2, 0x12, 0xD2, 0x07, 0x22, 0x3F, 0xA9, 0x33, 0x04, 0x56, 0x34, 0xDF, 0x53, 0x45, 0xB9, 0x10, + 0x39, 0, 18, 0xF2, 0x55, 0x62, 0xF5, 0x66, 0x76, 0xED, 0x77, 0x59, 0xBA, 0x99, 0x23, 0xCB, 0x9A, 0xF3, 0x23, 0xA0, 0x23, + 0x39, 0, 22, 0xF3, 0x01, 0x00, 0x4E, 0x11, 0x78, 0x8D, 0x11, 0xA3, 0xBC, 0x12, 0xDB, 0x1F, 0x22, 0x65, 0xA7, 0x33, 0x1E, 0x85, 0x34, 0xE2, 0x32, + 0x39, 0, 18, 0xF4, 0x44, 0x7A, 0xFE, 0x55, 0x71, 0xD6, 0x66, 0x36, 0x8F, 0x78, 0xCE, 0x5C, 0x88, 0x81, 0xA4, 0x80, 0xA4, + 0x39, 0, 22, 0xF5, 0x02, 0x00, 0x37, 0x22, 0x6C, 0x97, 0x22, 0xC5, 0xF8, 0x33, 0x2E, 0x91, 0x34, 0xEC, 0x3D, 0x45, 0xC6, 0x3E, 0x56, 0xAA, 0x06, + 0x39, 0, 18, 0xF6, 0x66, 0x5B, 0xF5, 0x77, 0x7B, 0xF6, 0x88, 0x66, 0xCF, 0xAB, 0x50, 0x04, 0xBB, 0x32, 0x5A, 0xB0, 0x5A, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x04, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x11, 0x61, 0x7E, 0x11, 0x9E, 0xC3, 0x12, 0xEA, 0x3A, 0x22, 0x88, 0xD0, 0x33, 0x4E, 0xBA, 0x44, 0x16, 0x66, + 0x39, 0, 18, 0xF2, 0x45, 0xB1, 0x33, 0x56, 0xA4, 0x0B, 0x66, 0x6A, 0xBF, 0x78, 0xF4, 0x7A, 0x88, 0x9A, 0xB9, 0x80, 0xB9, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x11, 0x6B, 0x7E, 0x11, 0x8E, 0x9F, 0x11, 0xB0, 0xDA, 0x22, 0x0A, 0x3D, 0x22, 0xA0, 0xFA, 0x33, 0x4C, 0x96, + 0x39, 0, 18, 0xF4, 0x34, 0xD9, 0x50, 0x45, 0xB6, 0x11, 0x55, 0x65, 0xB4, 0x67, 0xC3, 0x3B, 0x77, 0x58, 0x74, 0x70, 0x74, + 0x39, 0, 22, 0xF5, 0x02, 0x00, 0x32, 0x22, 0x61, 0x80, 0x22, 0x9F, 0xC2, 0x23, 0xE5, 0x32, 0x33, 0x7B, 0xC3, 0x44, 0x3C, 0xA5, 0x55, 0x03, 0x56, + 0x39, 0, 18, 0xF6, 0x56, 0xA3, 0x2C, 0x67, 0xA2, 0x0D, 0x77, 0x72, 0xCF, 0x99, 0x0F, 0x9E, 0x99, 0xC1, 0xE1, 0x90, 0xE1, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x05, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x11, 0x42, 0x65, 0x11, 0x82, 0xA1, 0x12, 0xC2, 0x07, 0x22, 0x50, 0x97, 0x33, 0x14, 0x7E, 0x34, 0xDA, 0x2A, + 0x39, 0, 18, 0xF2, 0x44, 0x71, 0xED, 0x55, 0x5C, 0xBB, 0x66, 0x16, 0x69, 0x78, 0x8B, 0x03, 0x88, 0x26, 0x39, 0x80, 0x39, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x11, 0x7F, 0x90, 0x11, 0x9D, 0xAA, 0x11, 0xB7, 0xD5, 0x12, 0xF7, 0x20, 0x22, 0x78, 0xCC, 0x33, 0x18, 0x60, + 0x39, 0, 18, 0xF4, 0x34, 0xA0, 0x11, 0x44, 0x74, 0xCB, 0x55, 0x1A, 0x64, 0x66, 0x5F, 0xD2, 0x67, 0xEC, 0x06, 0x70, 0x06, + 0x39, 0, 22, 0xF5, 0x01, 0x00, 0x49, 0x22, 0x7C, 0x97, 0x22, 0xB3, 0xCD, 0x23, 0xE9, 0x26, 0x33, 0x64, 0xA1, 0x44, 0x11, 0x75, 0x45, 0xCA, 0x1B, + 0x39, 0, 18, 0xF6, 0x55, 0x64, 0xE4, 0x66, 0x58, 0xBD, 0x77, 0x1B, 0x70, 0x89, 0x9A, 0x1E, 0x99, 0x3D, 0x5D, 0x90, 0x5D, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x06, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x11, 0x97, 0xBB, 0x12, 0xDD, 0x03, 0x22, 0x2E, 0x87, 0x23, 0xDA, 0x2B, 0x34, 0xB6, 0x23, 0x44, 0x83, 0xD9, + 0x39, 0, 18, 0xF2, 0x55, 0x29, 0xAD, 0x66, 0x2B, 0x97, 0x67, 0xFB, 0x58, 0x89, 0x9A, 0x2C, 0x99, 0x4E, 0x76, 0x90, 0x76, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x11, 0xE5, 0xF8, 0x22, 0x08, 0x17, 0x22, 0x28, 0x50, 0x22, 0x7B, 0xAC, 0x33, 0x0F, 0x6B, 0x34, 0xBF, 0x09, + 0x39, 0, 18, 0xF4, 0x44, 0x4E, 0xC5, 0x55, 0x31, 0x90, 0x56, 0xEA, 0x3C, 0x77, 0x59, 0xD6, 0x78, 0xF3, 0x11, 0x80, 0x11, + 0x39, 0, 22, 0xF5, 0x02, 0x00, 0x0E, 0x23, 0xF8, 0x15, 0x33, 0x35, 0x54, 0x33, 0x75, 0xB9, 0x34, 0xFB, 0x3E, 0x45, 0xB8, 0x21, 0x55, 0x80, 0xD7, + 0x39, 0, 18, 0xF6, 0x66, 0x29, 0xB5, 0x77, 0x33, 0xA4, 0x88, 0x0B, 0x6A, 0x9A, 0xC0, 0x5C, 0xAA, 0x81, 0xA4, 0xA0, 0xA4, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x07, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x22, 0x25, 0x55, 0x22, 0x75, 0x93, 0x23, 0xB9, 0x06, 0x33, 0x52, 0x99, 0x44, 0x1D, 0x93, 0x45, 0xF4, 0x4A, + 0x39, 0, 18, 0xF2, 0x56, 0x99, 0x2A, 0x67, 0xA9, 0x1A, 0x77, 0x85, 0xE8, 0x99, 0x41, 0xDF, 0xAA, 0x05, 0x27, 0xA0, 0x27, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x22, 0xB8, 0xD1, 0x22, 0xE2, 0xEF, 0x23, 0xFB, 0x15, 0x33, 0x35, 0x58, 0x33, 0xA4, 0xF3, 0x44, 0x3F, 0x87, + 0x39, 0, 18, 0xF4, 0x45, 0xC8, 0x41, 0x56, 0xAC, 0x0D, 0x66, 0x6B, 0xC0, 0x78, 0xEB, 0x6E, 0x88, 0x8E, 0xAD, 0x80, 0xAD, + 0x39, 0, 22, 0xF5, 0x02, 0x00, 0x2C, 0x33, 0xEB, 0xFF, 0x44, 0x15, 0x2A, 0x44, 0x43, 0x77, 0x44, 0xAC, 0xE0, 0x55, 0x4A, 0xB2, 0x66, 0x0D, 0x63, + 0x39, 0, 18, 0xF6, 0x67, 0xB0, 0x40, 0x78, 0xC1, 0x33, 0x89, 0xA0, 0x08, 0xAB, 0x77, 0x20, 0xBB, 0x49, 0x6F, 0xB0, 0x6F, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x08, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x16, 0x22, 0xC7, 0xDD, 0x23, 0xF0, 0x18, 0x33, 0x3F, 0x6E, 0x34, 0xC3, 0x16, 0x44, 0x64, 0xAD, + 0x39, 0, 18, 0xF2, 0x45, 0xF3, 0x73, 0x56, 0xDF, 0x3F, 0x66, 0x99, 0xEE, 0x88, 0x12, 0x91, 0x88, 0xB0, 0xC8, 0x80, 0xC8, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x03, 0x02, 0x54, 0x33, 0x6C, 0x79, 0x33, 0x83, 0x90, 0x33, 0xA0, 0xAF, 0x33, 0xCD, 0xF0, 0x44, 0x17, 0x41, + 0x39, 0, 18, 0xF4, 0x44, 0x6B, 0xC2, 0x55, 0x18, 0x67, 0x55, 0xB1, 0xF7, 0x67, 0xEE, 0x5C, 0x77, 0x76, 0x8E, 0x70, 0x8E, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x63, 0x34, 0x9F, 0x96, 0x44, 0xA7, 0xB4, 0x44, 0xBC, 0xD5, 0x45, 0xED, 0x08, 0x55, 0x44, 0x7E, 0x55, 0xB9, 0xF7, + 0x39, 0, 18, 0xF6, 0x66, 0x33, 0xA6, 0x77, 0x0C, 0x6A, 0x78, 0xC2, 0x16, 0x99, 0x40, 0xC6, 0x9A, 0xE6, 0x03, 0xA0, 0x03, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x09, 0x01, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0x05, 0x0F, 0x55, 0xF9, 0xFF, 0xF9, 0xF9, 0xFF, 0xF9, 0xF9, 0xF3, 0xFA, 0xA4, + 0x39, 0, 18, 0xF2, 0x34, 0xBC, 0x0C, 0x44, 0x56, 0x9D, 0x45, 0xE1, 0x25, 0x56, 0xF9, 0x54, 0x66, 0x6A, 0x7C, 0x60, 0x7C, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x07, 0x04, 0xB0, 0xFF, 0xFB, 0xF9, 0xFF, 0xF9, 0xF9, 0xFF, 0xF9, 0xF9, 0xF3, 0xFA, 0xCD, + 0x39, 0, 18, 0xF4, 0x33, 0xC9, 0xEA, 0x44, 0x11, 0x37, 0x44, 0x5F, 0x89, 0x55, 0x2E, 0x78, 0x55, 0x8A, 0x9B, 0x50, 0x9B, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0xDC, 0x37, 0x0F, 0xD5, 0xEF, 0xB7, 0xFD, 0xFF, 0xFB, 0xF9, 0xFF, 0xF9, 0xF9, 0xFF, 0xF9, 0xF9, 0xF5, 0xFA, 0x36, + 0x39, 0, 18, 0xF6, 0x55, 0x3E, 0x76, 0x55, 0xB0, 0xEA, 0x66, 0x23, 0x5F, 0x77, 0x27, 0x7F, 0x77, 0x94, 0xA7, 0x70, 0xA7, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x00, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x44, 0x98, 0x01, 0xF7, 0x4C, 0x12, 0x9C, 0x1E, 0x22, 0x98, 0xFD, 0x34, 0xAC, 0x2E, 0x45, 0xA7, 0x15, + 0x39, 0, 18, 0xF2, 0x56, 0x78, 0x28, 0x67, 0xCA, 0x5D, 0x78, 0xEB, 0x74, 0xAB, 0x76, 0x71, 0xBB, 0xB3, 0xF3, 0xB0, 0xF3, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x2F, 0x58, 0x00, 0x8F, 0xC8, 0x11, 0x03, 0x6A, 0x12, 0xCF, 0x29, 0x23, 0xC8, 0x42, 0x34, 0xB5, 0x16, + 0x39, 0, 18, 0xF4, 0x45, 0x6F, 0x0D, 0x56, 0x98, 0x1A, 0x67, 0x95, 0x0A, 0x89, 0xBA, 0x92, 0x9A, 0xC9, 0x03, 0xA0, 0x03, + 0x39, 0, 22, 0xF5, 0x01, 0x00, 0x17, 0x11, 0x61, 0xA5, 0x12, 0xF3, 0x44, 0x23, 0x92, 0x18, 0x33, 0x91, 0xF5, 0x45, 0x9F, 0x2D, 0x56, 0xAB, 0x1B, + 0x39, 0, 18, 0xF6, 0x67, 0x85, 0x40, 0x78, 0xEB, 0x88, 0x99, 0x1E, 0xAF, 0xBC, 0xD5, 0xF3, 0xDD, 0x3E, 0x81, 0xD0, 0x81, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x01, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x66, 0x00, 0xA0, 0xD4, 0x11, 0x13, 0x57, 0x12, 0x98, 0x0F, 0x22, 0x80, 0xDA, 0x33, 0x7C, 0xFD, 0x44, 0x70, 0xD7, + 0x39, 0, 18, 0xF2, 0x55, 0x35, 0xDB, 0x67, 0x75, 0x00, 0x77, 0x88, 0xFB, 0x9A, 0xCE, 0xB1, 0xAB, 0xE6, 0x1E, 0xB0, 0x1E, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x6A, 0x00, 0x8F, 0xA9, 0x00, 0xC9, 0xEC, 0x11, 0x14, 0x6B, 0x12, 0xC5, 0x0B, 0x23, 0x9C, 0x10, 0x33, 0x7B, 0xDC, + 0x39, 0, 18, 0xF4, 0x44, 0x2E, 0xC1, 0x55, 0x49, 0xC3, 0x66, 0x35, 0xA1, 0x88, 0x2C, 0xEC, 0x99, 0x17, 0x4C, 0x90, 0x4C, + 0x39, 0, 22, 0xF5, 0x01, 0x00, 0x65, 0x11, 0x9B, 0xCF, 0x22, 0x0A, 0x4A, 0x23, 0x8D, 0x07, 0x33, 0x77, 0xD0, 0x44, 0x70, 0xF6, 0x55, 0x70, 0xDD, + 0x39, 0, 18, 0xF6, 0x66, 0x3E, 0xF0, 0x78, 0x94, 0x26, 0x89, 0xAF, 0x31, 0xBC, 0x1E, 0x18, 0xCC, 0x57, 0x98, 0xC0, 0x98, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x02, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x07, 0x00, 0x8F, 0xAE, 0x01, 0xD9, 0x0B, 0x11, 0x38, 0x99, 0x12, 0xF2, 0x45, 0x23, 0xD6, 0x4F, 0x34, 0xB8, 0x12, + 0x39, 0, 18, 0xF2, 0x44, 0x64, 0xF9, 0x55, 0x7C, 0xF4, 0x66, 0x63, 0xCA, 0x88, 0x3C, 0xE8, 0x99, 0x11, 0x3B, 0x90, 0x3B, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x57, 0x00, 0x87, 0x97, 0x00, 0xAE, 0xC4, 0x01, 0xDB, 0x18, 0x11, 0x58, 0x95, 0x22, 0x0A, 0x76, 0x23, 0xD1, 0x27, + 0x39, 0, 18, 0xF4, 0x33, 0x70, 0xFA, 0x44, 0x72, 0xD7, 0x55, 0x3A, 0x94, 0x67, 0xD4, 0x6A, 0x77, 0x8E, 0xB6, 0x70, 0xB6, + 0x39, 0, 22, 0xF5, 0x01, 0x00, 0x5A, 0x11, 0x89, 0xAB, 0x12, 0xD5, 0x01, 0x22, 0x2C, 0x8E, 0x23, 0xE9, 0x3C, 0x34, 0xCC, 0x43, 0x45, 0xAD, 0x0E, + 0x39, 0, 18, 0xF6, 0x56, 0x63, 0x00, 0x67, 0x8A, 0x09, 0x77, 0x7D, 0xE8, 0x9A, 0x74, 0x2B, 0xAA, 0x56, 0x84, 0xA0, 0x84, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x03, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x74, 0x8D, 0x00, 0xA1, 0xB3, 0x00, 0xC9, 0xFC, 0x11, 0x39, 0x6D, 0x12, 0xD9, 0x3A, 0x22, 0x90, 0xE0, + 0x39, 0, 18, 0xF2, 0x33, 0x2A, 0xA6, 0x44, 0x0F, 0x6D, 0x45, 0xC3, 0x15, 0x66, 0x30, 0xA4, 0x66, 0xC7, 0xE3, 0x60, 0xE3, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x72, 0x84, 0x00, 0x90, 0x9A, 0x00, 0xA4, 0xBC, 0x00, 0xDA, 0xFA, 0x11, 0x42, 0x8E, 0x12, 0xCD, 0x13, + 0x39, 0, 18, 0xF4, 0x22, 0x54, 0xC2, 0x33, 0x1F, 0x79, 0x34, 0xC7, 0x11, 0x55, 0x0B, 0x74, 0x55, 0x8F, 0xA9, 0x50, 0xA9, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0xBF, 0x11, 0x6F, 0x87, 0x11, 0x9D, 0xB0, 0x11, 0xC4, 0xF5, 0x22, 0x2D, 0x61, 0x23, 0xCF, 0x30, 0x33, 0x86, 0xD6, + 0x39, 0, 18, 0xF6, 0x44, 0x1C, 0x99, 0x55, 0x08, 0x6D, 0x56, 0xC8, 0x1C, 0x77, 0x46, 0xC8, 0x78, 0xEA, 0x09, 0x80, 0x09, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x04, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x60, 0x7C, 0x00, 0x92, 0xA8, 0x00, 0xC2, 0xFC, 0x11, 0x36, 0x70, 0x12, 0xE0, 0x43, 0x22, 0xA0, 0xEC, + 0x39, 0, 18, 0xF2, 0x33, 0x3C, 0xBD, 0x44, 0x29, 0x8B, 0x45, 0xE0, 0x34, 0x66, 0x52, 0xD2, 0x67, 0xF2, 0x12, 0x70, 0x12, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x6B, 0x7F, 0x00, 0x8A, 0x94, 0x00, 0xA2, 0xBD, 0x00, 0xD7, 0xFB, 0x11, 0x45, 0x91, 0x12, 0xDD, 0x19, + 0x39, 0, 18, 0xF4, 0x22, 0x61, 0xD4, 0x33, 0x3C, 0x94, 0x34, 0xE2, 0x2C, 0x55, 0x2A, 0x96, 0x55, 0xB3, 0xCD, 0x50, 0xCD, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x73, 0x11, 0x73, 0x8D, 0x11, 0xA1, 0xB6, 0x11, 0xCC, 0xFE, 0x22, 0x34, 0x6E, 0x23, 0xDE, 0x44, 0x33, 0xA1, 0xEE, + 0x39, 0, 18, 0xF6, 0x44, 0x38, 0xB8, 0x55, 0x2C, 0x91, 0x56, 0xEA, 0x44, 0x77, 0x73, 0xF7, 0x88, 0x17, 0x35, 0x80, 0x35, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x05, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x7E, 0x99, 0x00, 0xAB, 0xBD, 0x01, 0xD1, 0x02, 0x11, 0x33, 0x69, 0x12, 0xCC, 0x30, 0x22, 0x8C, 0xDB, + 0x39, 0, 18, 0xF2, 0x33, 0x24, 0xA5, 0x44, 0x11, 0x71, 0x45, 0xC9, 0x18, 0x66, 0x31, 0xAD, 0x66, 0xCF, 0xEC, 0x60, 0xEC, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x8F, 0x9F, 0x00, 0xAD, 0xB4, 0x00, 0xC1, 0xD5, 0x01, 0xEF, 0x07, 0x11, 0x46, 0x8A, 0x12, 0xD2, 0x0A, + 0x39, 0, 18, 0xF4, 0x22, 0x50, 0xC1, 0x33, 0x24, 0x7F, 0x34, 0xCC, 0x14, 0x55, 0x0C, 0x76, 0x55, 0x8F, 0xAC, 0x50, 0xAC, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x0C, 0x11, 0xA1, 0xB8, 0x11, 0xCE, 0xDD, 0x12, 0xF1, 0x1F, 0x22, 0x51, 0x81, 0x23, 0xE3, 0x41, 0x33, 0x9A, 0xE5, + 0x39, 0, 18, 0xF6, 0x44, 0x28, 0xA6, 0x55, 0x17, 0x7A, 0x56, 0xD4, 0x26, 0x77, 0x4F, 0xD0, 0x78, 0xF3, 0x0F, 0x80, 0x0F, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x06, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x22, 0xA7, 0x00, 0xBA, 0xCD, 0x01, 0xDE, 0x06, 0x11, 0x2E, 0x61, 0x12, 0xC6, 0x28, 0x22, 0x87, 0xDA, + 0x39, 0, 18, 0xF2, 0x33, 0x25, 0xA4, 0x44, 0x0C, 0x70, 0x45, 0xC7, 0x18, 0x66, 0x2F, 0xA7, 0x66, 0xC4, 0xE0, 0x60, 0xE0, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0xC7, 0xE4, 0x00, 0xEF, 0xFB, 0x11, 0x03, 0x13, 0x11, 0x25, 0x3B, 0x11, 0x6D, 0xA5, 0x12, 0xE5, 0x22, + 0x39, 0, 18, 0xF4, 0x22, 0x5D, 0xC9, 0x33, 0x27, 0x81, 0x34, 0xCE, 0x16, 0x55, 0x0B, 0x73, 0x55, 0x8D, 0xA7, 0x50, 0xA7, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x63, 0x12, 0xF7, 0x15, 0x22, 0x29, 0x3C, 0x22, 0x52, 0x72, 0x22, 0x94, 0xBF, 0x33, 0x11, 0x63, 0x33, 0xB4, 0xFD, + 0x39, 0, 18, 0xF6, 0x44, 0x3A, 0xB4, 0x55, 0x1C, 0x80, 0x56, 0xD8, 0x2B, 0x77, 0x4E, 0xCC, 0x78, 0xEA, 0x0B, 0x80, 0x0B, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x07, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0xB4, 0x11, 0x36, 0x47, 0x11, 0x55, 0x71, 0x11, 0x90, 0xAE, 0x12, 0xF3, 0x4F, 0x22, 0x9C, 0xE9, + 0x39, 0, 18, 0xF2, 0x33, 0x28, 0xAE, 0x44, 0x20, 0x7C, 0x45, 0xCF, 0x20, 0x66, 0x2A, 0xA7, 0x66, 0xC4, 0xE1, 0x60, 0xE1, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x01, 0x02, 0x8E, 0x11, 0xA2, 0xAF, 0x11, 0xBA, 0xCB, 0x11, 0xD8, 0xE6, 0x22, 0x04, 0x26, 0x22, 0x4C, 0x7A, + 0x39, 0, 18, 0xF4, 0x23, 0x9D, 0x01, 0x33, 0x54, 0x9E, 0x34, 0xE8, 0x2E, 0x55, 0x11, 0x7B, 0x55, 0x95, 0xAC, 0x50, 0xAC, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x01, 0x22, 0xE1, 0xFB, 0x33, 0x0B, 0x1A, 0x33, 0x27, 0x40, 0x33, 0x5B, 0x75, 0x33, 0xA4, 0xDE, 0x44, 0x14, 0x4F, + 0x39, 0, 18, 0xF6, 0x44, 0x7F, 0xED, 0x55, 0x54, 0xAB, 0x56, 0xFB, 0x4C, 0x77, 0x58, 0xD8, 0x78, 0xF7, 0x16, 0x80, 0x16, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x08, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x1F, 0xEA, 0xF9, 0xFF, 0xF9, 0xF9, 0xFF, 0xF9, 0xF9, 0xFF, 0xF9, 0xFB, 0x33, 0x24, 0x20, + 0x39, 0, 18, 0xF2, 0x33, 0x5F, 0xD6, 0x44, 0x3F, 0xA3, 0x45, 0xF7, 0x4A, 0x66, 0x5D, 0xD4, 0x67, 0xF4, 0x05, 0x70, 0x05, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0xFF, 0xFA, 0xF9, 0xFF, 0xF9, 0xF9, 0xFF, 0xF9, 0xF9, 0xFF, 0xF9, 0xFB, 0x32, 0x13, 0xFB, + 0x39, 0, 18, 0xF4, 0x33, 0x17, 0x5C, 0x33, 0xA6, 0xEA, 0x44, 0x29, 0x69, 0x55, 0x4A, 0xAD, 0x55, 0xC8, 0xD8, 0x50, 0xD8, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x01, 0x5F, 0x83, 0xFD, 0xFF, 0xFA, 0xF9, 0xFF, 0xF9, 0xF9, 0xFF, 0xF9, 0xF9, 0xFF, 0xF9, 0xFB, 0x44, 0xF3, 0xCA, + 0x39, 0, 18, 0xF6, 0x45, 0xF7, 0x52, 0x55, 0xAA, 0xFE, 0x66, 0x4B, 0x99, 0x78, 0xA6, 0x1B, 0x88, 0x3A, 0x4C, 0x80, 0x4C, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x09, 0x02, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0x05, 0x11, 0x09, 0xB3, 0x11, 0xC9, 0xDC, 0x22, 0x01, 0x24, 0x22, 0x51, 0x7A, + 0x39, 0, 18, 0xF2, 0x23, 0xAD, 0x08, 0x33, 0x61, 0xAD, 0x34, 0xF0, 0x3F, 0x55, 0x2C, 0x8F, 0x55, 0xA9, 0xBD, 0x50, 0xBD, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x01, 0x04, 0xD0, 0x22, 0x4E, 0x62, 0x22, 0x72, 0x7F, 0x22, 0x8C, 0x9E, 0x22, 0xAB, 0xBB, + 0x39, 0, 18, 0xF4, 0x22, 0xCC, 0xEF, 0x33, 0x15, 0x44, 0x33, 0x6B, 0xA3, 0x44, 0x51, 0xA1, 0x44, 0xBA, 0xC3, 0x40, 0xC3, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x0C, 0x02, 0x15, 0x9C, 0x33, 0xB7, 0xC5, 0x33, 0xD4, 0xE4, 0x33, 0xF0, 0xFF, 0x44, 0x17, 0x31, 0x44, 0x4C, 0x64, + 0x39, 0, 18, 0xF6, 0x44, 0x80, 0xB9, 0x45, 0xF6, 0x33, 0x55, 0x68, 0xA8, 0x66, 0x7C, 0xDB, 0x67, 0xF6, 0x07, 0x70, 0x07, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x00, 0x04, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x4C, 0x77, 0x00, 0x9F, 0xD2, 0x01, 0xFE, 0x69, 0x12, 0xC3, 0x1F, 0x23, 0xB7, 0x39, 0x34, 0xA8, 0x08, + 0x39, 0, 18, 0xF2, 0x44, 0x5E, 0xF1, 0x55, 0x72, 0xDE, 0x66, 0x45, 0xA5, 0x78, 0xE8, 0x72, 0x88, 0x8D, 0xB0, 0x80, 0xB0, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x83, 0x8C, 0x00, 0x9B, 0xAD, 0x00, 0xB8, 0xEE, 0x11, 0x23, 0x63, 0x12, 0xD0, 0x41, 0x23, 0xA6, 0x06, + 0x39, 0, 18, 0xF4, 0x33, 0x54, 0xDB, 0x44, 0x48, 0xBB, 0x55, 0x0F, 0x69, 0x67, 0x89, 0x0A, 0x77, 0x2B, 0x45, 0x70, 0x45, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0xD8, 0x11, 0x59, 0x7C, 0x11, 0xA4, 0xDA, 0x22, 0x0C, 0x7A, 0x23, 0xD9, 0x39, 0x34, 0xCB, 0x4E, 0x45, 0xBE, 0x23, + 0x39, 0, 18, 0xF6, 0x56, 0x7D, 0x12, 0x67, 0x9B, 0x0D, 0x77, 0x7D, 0xDA, 0x99, 0x29, 0xB9, 0x99, 0xDC, 0xFD, 0x90, 0xFD, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x01, 0x04, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x39, 0x65, 0x00, 0x82, 0xB0, 0x01, 0xCF, 0x21, 0x11, 0x7A, 0xBF, 0x22, 0x48, 0xBF, 0x33, 0x2A, 0x82, + 0x39, 0, 18, 0xF2, 0x34, 0xDB, 0x67, 0x45, 0xD9, 0x43, 0x56, 0xA8, 0x01, 0x77, 0x26, 0xA6, 0x77, 0xC0, 0xE1, 0x70, 0xE1, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x7F, 0x88, 0x00, 0x92, 0x9D, 0x00, 0xAD, 0xC9, 0x01, 0xF3, 0x23, 0x11, 0x7C, 0xD9, 0x22, 0x31, 0x82, + 0x39, 0, 18, 0xF4, 0x23, 0xDC, 0x5D, 0x34, 0xC4, 0x2A, 0x44, 0x7E, 0xD2, 0x56, 0xDD, 0x4E, 0x66, 0x70, 0x85, 0x60, 0x85, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x1B, 0x11, 0x51, 0x73, 0x11, 0x8D, 0xB8, 0x12, 0xD7, 0x2F, 0x22, 0x88, 0xD7, 0x33, 0x66, 0xD4, 0x44, 0x42, 0x99, + 0x39, 0, 18, 0xF6, 0x45, 0xF7, 0x82, 0x66, 0x01, 0x72, 0x67, 0xD2, 0x33, 0x88, 0x60, 0xE2, 0x99, 0x01, 0x20, 0x90, 0x20, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x02, 0x04, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x15, 0x09, 0x00, 0x25, 0x47, 0x00, 0x56, 0x6A, 0x00, 0x85, 0xA7, 0x00, 0xC9, 0xF7, + 0x39, 0, 18, 0xF2, 0x11, 0x1C, 0x64, 0x11, 0xA8, 0xEA, 0x22, 0x2F, 0x6F, 0x33, 0x3A, 0x89, 0x33, 0x94, 0xB3, 0x30, 0xB3, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0x32, 0x00, 0x74, 0x83, 0x00, 0x85, 0x87, 0x00, 0x94, 0x9D, 0x00, 0xAC, 0xB8, + 0x39, 0, 18, 0xF4, 0x00, 0xCA, 0xE5, 0x11, 0x0F, 0x3E, 0x11, 0x71, 0xA4, 0x22, 0x42, 0x93, 0x22, 0x8E, 0xB6, 0x20, 0xB6, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x01, 0x00, 0x02, 0x46, 0x11, 0x32, 0x3F, 0x11, 0x43, 0x53, 0x11, 0x64, 0x76, 0x11, 0x8C, 0xAF, 0x11, 0xD5, 0xFF, + 0x39, 0, 18, 0xF6, 0x22, 0x21, 0x71, 0x23, 0xC0, 0x00, 0x33, 0x43, 0x82, 0x44, 0x4F, 0xA5, 0x44, 0xAD, 0xC6, 0x40, 0xC6, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 5, 0xFE, 0x01, 0x03, 0x04, 0x00, + 0x39, 0, 22, 0xF1, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0x17, 0x00, 0x18, 0x2B, 0x00, 0x40, 0x4E, 0x00, 0x64, 0x7B, 0x00, 0x94, 0xAF, + 0x39, 0, 18, 0xF2, 0x00, 0xC9, 0xFC, 0x11, 0x32, 0x6C, 0x11, 0x97, 0xCF, 0x22, 0x7F, 0xCD, 0x22, 0xE0, 0xF3, 0x20, 0xF3, + 0x39, 0, 22, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x04, 0x05, 0x00, 0x06, 0x73, 0x00, 0x7E, 0x81, 0x00, 0x87, 0x8F, 0x00, 0x98, 0x9F, + 0x39, 0, 18, 0xF4, 0x00, 0xAC, 0xBE, 0x00, 0xD3, 0xF4, 0x11, 0x06, 0x29, 0x11, 0xA8, 0xEC, 0x11, 0xF7, 0xFF, 0x10, 0xFF, + 0x39, 0, 22, 0xF5, 0x00, 0x00, 0x01, 0x00, 0x02, 0x10, 0x01, 0x57, 0x2F, 0x11, 0x3D, 0x43, 0x11, 0x51, 0x5D, 0x11, 0x73, 0x83, 0x11, 0x9E, 0xB8, + 0x39, 0, 18, 0xF6, 0x12, 0xD4, 0x06, 0x22, 0x3E, 0x7D, 0x22, 0xAB, 0xE4, 0x33, 0x97, 0xE9, 0x34, 0xFB, 0x06, 0x40, 0x06, + 0x39, 0, 2, 0xFF, 0x01, + + 0x39, 0, 2, 0x9F, 0x05, + 0x39, 0, 2, 0xF9, 0x00, + 0x39, 0, 2, 0xF7, 0x00, + 0x39, 0, 2, 0x9F, 0x02, + 0x39, 0, 8, 0xC3, 0x11, 0xC0, 0x05, 0xC0, 0x00, 0x00, 0x7F, + 0x39, 0, 2, 0x9F, 0x04, + 0x39, 0, 3, 0xBA, 0x10, 0x00, + 0x39, 0, 2, 0x9F, 0x0A, + 0x39, 0, 2, 0xB2, 0x1B, + 0x39, 0, 19, 0xB7, 0x13, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x20, 0x20, 0x21, + 0x39, 0, 2, 0x9F, 0x0A, + 0x39, 0, 2, 0xB2, 0x1B, + 0x39, 0, 46, 0xB8, 0x07, 0x00, 0x00, 0x06, 0x0A, 0x00, 0x06, 0x0A, 0x00, 0x00, 0x06, 0x0A, 0x00, 0x06, 0x0A, 0x00, 0x00, 0x06, 0x0A, 0x00, 0x06, 0x0A, 0x00, 0x00, 0x06, 0x0A, 0x00, 0x06, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 43, 0xB9, 0x00, 0x04, 0x04, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x40, 0x00, 0x00, 0x4C, 0x0C, 0x00, 0x00, 0x40, 0x00, 0x00, 0x4C, 0x0C, 0x00, 0x00, 0x04, 0x04, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 43, 0xBA, 0x00, 0x0D, 0x03, 0x00, 0x0D, 0x03, 0x00, 0x00, 0x0D, 0x03, 0x00, 0x0D, 0x03, 0x00, 0x00, 0x0D, 0x03, 0x00, 0x0D, 0x03, 0x00, 0x00, 0x0D, 0x03, 0x00, 0x0D, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x39, 0, 2, 0x9F, 0x00, + 0x39, 0, 2, 0x48, 0x03, +// 0x39,0,2,0x48,0x33, // video mode + 0x39, 0, 3, 0x51, 0x00, 0x00, + 0x39, 0, 2, 0x53, 0xE0, + 0x39, 0, 2, 0x35, 0x00, + +// 0x39, 0, 3, 0x51, 0x03,0x00,//0x05, 0xDD, +// 0x39,0,1,0x29, +// delayMs(20); +// delayMs(20); +#endif +}; + +#endif + +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(); + + send_panel_init_code(sizeof(panel_init_code), panel_init_code); + TAU_LOGD("init_code\n"); + hal_dsi_tx_ctrl_write_cmd(0x05, 0, 1, 0x11); +// delayMs(10); + delayMs(40); + hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_HIGH); //LED_ON + delayMs(60); + // hal_gpio_set_output_data(IO_PAD_ADCIN, IO_LVL_HIGH); + soft_swire_init(); + // bist mode +// hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x9C,0xA5,0xA5); +// hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0xFD,0x5A,0x5A); +// hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x9F,0x01); +// hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xC6,0x01); + +// hal_dsi_tx_ctrl_write_cmd(0x05, 0, 1, 0x29); +// hal_dsi_tx_ctrl_write_cmd(0x29, 0, 3, 0x51, 0x09, 0xFF); +// delayMs(10); + + /* exit send initial code mode*/ + hal_dsi_tx_ctrl_exit_init_panel_mode(); + delayMs(10); +} + +static void frame_start_cb(hal_rx_dbg_event_e event) +{ + TAU_LOGD("frame start\n"); +} + +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->hight_performan_mode = HIGHT_PERFORMAN_L2; +// g_rx_ctrl_handle->pq_marginal = PQ_TYPE_6; +// g_rx_ctrl_handle->err_handler_level = ERR_HANDLE_L1; +// g_rx_ctrl_handle->rx_debug_cb = frame_start_cb; + /* 提前预置PPS, AP 有PPS cmd也会更新 */ + if(g_rx_ctrl_handle->compress_en == true) + { + uint8_t pps[128 ] = + { + 0x11, 0x00, 0x00, 0x89, 0x30, 0x80, 0x09, 0x60, 0x04, 0x38, 0x00, 0x78, 0x02, + 0x1C, 0x02, 0x1C, 0x02, 0x00, 0x02, 0x0E, 0x00, 0x20, 0x0B, 0xAF, 0x00, 0x07, + 0x00, 0x0C, 0x00, 0xCF, 0x00, 0xD9, 0x18, 0x00, 0x10, 0xF0, 0x03, 0x0C, 0x20, + 0x00, 0x06, 0x0B, 0x0B, 0x33, 0x0E, 0x1C, 0x2A, 0x38, 0x46, 0x54, 0x62, 0x69, + 0x70, 0x77, 0x79, 0x7B, 0x7D, 0x7E, 0x01, 0x02, 0x01, 0x00, 0x09, 0x40, 0x09, + 0xBE, 0x19, 0xFC, 0x19, 0xFA, 0x19, 0xF8, 0x1A, 0x38, 0x1A, 0x78, 0x1A, 0xB6, + 0x2A, 0xF6, 0x2B, 0x34, 0x2B, 0x74, 0x3B, 0x74, 0x6B, 0xF4, 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 + }; + hal_dsi_rx_ctrl_pre_init_pps(g_rx_ctrl_handle, pps, 128); + } + + /* 初始化rx ctrl */ + hal_dsi_rx_ctrl_init(g_rx_ctrl_handle); + +#ifdef CUS_SCLD_FILTER + hal_dsi_rx_ctrl_set_cus_scld_filter(g_rx_ctrl_handle, rx_filter_H_3, rx_filter_V_3); +#endif + hal_dsi_rx_ctrl_set_cus_esc_clk(g_rx_ctrl_handle, 20000000); +// hal_dsi_rx_ctrl_hight_performan_mode(g_rx_ctrl_handle); + hal_dsi_rx_ctrl_set_cus_sync_line(g_rx_ctrl_handle, 2000); + /* 启动rx ctrl */ + hal_dsi_rx_ctrl_start(g_rx_ctrl_handle); +} + +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 = DSI_CMD_TX_HS; + 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->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 = 800; + hal_dsi_tx_ctrl_init(g_tx_ctrl_handle); + /* AP 没有发送数据时默认的显示颜色, 量产为0 0 0(黑色), 配置其他颜色仅为debug使用 */ + hal_dsi_tx_ctrl_set_overwrite_rgb(0x00, 0x00, 0x00); + TAU_LOGD("BLUE\n"); +} + +static void tx_display_on(void) +{ + init_panel(); + hal_dsi_tx_ctrl_start(g_tx_ctrl_handle); + delayMs(120); + hal_dsi_tx_ctrl_write_cmd(0x05, 0, 1, 0x29); + delayMs(20); +} + +static void swire_timer_callback(void* data) +{ + hal_swire_start(12, 12, 12, 12, 36); +} + +static void swire_callback(void* data) +{ + /* swire 的是否需要一直发送需要根据手机定,不同手机不同 */ + //if(start_display_on == false) + { + hal_timer_start(SWIRE_TIMER, 16, 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, 36); + hal_timer_init(SWIRE_TIMER); + hal_timer_start(SWIRE_TIMER, 16, swire_timer_callback, NULL); +} + +static void soft_swire_start(uint8_t pulse) +{ + do + { + hal_gpio_init_output(IO_PAD_ADCIN, IO_LVL_LOW); // 3us + delayUs(10); + hal_gpio_init_output(IO_PAD_ADCIN, IO_LVL_HIGH); // 3us + delayUs(10); + }while(pulse--); +} +static void soft_swire_timer_callback(void *data) +{ + s_swire_pwm_counter++; + if( s_swire_pwm_counter < SWIRE_MAX_NUM ) + { + soft_swire_start(g_swire_num); + hal_timer_start(SWIRE_TIMER, 16, soft_swire_timer_callback, NULL); + } + else + { + hal_timer_deinit(SWIRE_TIMER); + hal_timer_stop(SWIRE_TIMER); + hal_gpio_init_output(IO_PAD_ADCIN, IO_LVL_HIGH); + } +} + +static void soft_swire_init(void) +{ + hal_gpio_init_output(IO_PAD_ADCIN, IO_LVL_HIGH); + delayMs(3); + s_swire_pwm_counter = 0; + soft_swire_start(g_swire_num); + hal_timer_init(SWIRE_TIMER); + hal_timer_start(SWIRE_TIMER, 16, soft_swire_timer_callback, NULL); +} + +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); +} + +void tp_heartbeat_exec(void) +{ + if (s_screen_init_complate) + { + if(hal_gpio_get_input_data(IO_PAD_TD_INT)) + { + s_heartbeat = 0; + } + else + { + if(s_heartbeat < (65536/50)) // 65536*3 = 900ms 65536/50 = 6ms + { + s_heartbeat ++; + }else + { + TAU_LOGD("hb..."); + s_heartbeat = 0; + ap_tp_st_touch_software_reset(); + } + } + } +} + +#ifdef ADD_TIMER3_FUNCTION +static void soft_timer3_cb(void *data) +{ + hal_timer_start(TIMER_NUM3, 10, soft_timer3_cb, NULL); + g_tp_sleep_delay_count++; + +} +#endif + +void S21P_demo(void) +{ + /* mipi rx初始化 */ + hal_gpio_init_output(IO_PAD_AP_SWIRE, IO_LVL_LOW); + 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_TPRSTN, IO_LVL_HIGH); +// hal_gpio_set_mode(IO_PAD_AP_SPIS_CLK, IO_MODE_I2C1_SCL); +// hal_gpio_set_mode(IO_PAD_AP_SPIS_CSN, IO_MODE_I2C1_SDA); + + open_mipi_rx(); + + TAU_LOGD("S21P rx done \n"); + /* swire 初始化 */ +// swire_init(); + app_tp_init(); + /* 次应用中,屏的1.8V 接 AP TP1.8, PWMEN 接到 AP AVDD_SWIRE, 用于检查是息屏开屏还是AC */ + if(hal_gpio_get_input_data(IO_PAD_AP_TPRSTN)) /* S9 可以删掉 */ + { + /* 息屏唤醒 */ + start_display_on = true; + TAU_LOGD("DC\n"); + } + else /* S9 可以删掉 */ + { + /* AC */ + TAU_LOGD("AC\n"); + } + /* 在TP1.8有电之前,使用软件产生TE,屏显示之后切换为硬件产生TE S9 可以删掉 */ +// soft_te_timer_init(); + /* mipi tx 初始化 */ + init_mipi_tx(); + /* 屏初始化 */ + //tx_display_on(); /* S9 打开,删除While循环的屏初始化 */ +// app_tp_init(); + app_tp_transfer_screen_start(); + +#ifdef ADD_TIMER3_FUNCTION + g_tp_sleep_delay_count = 0; + hal_timer_init(TIMER_NUM3); + hal_timer_start(TIMER_NUM3, 10, soft_timer3_cb, NULL); + TAU_LOGD("start timer3"); +#endif + while(1) + { + /* 等待 AP TP 上电*/ + if(start_display_on == true) + { + /* 屏初始化 */ + tx_display_on(); + TAU_LOGD("tx_display_on\n"); + + start_display_on = false; + panel_display_done = true; + #if ENABLE_TP_WAKE_UP//将启动中断放这里的原因是当开机时,复位会有一个连续拉低拉高(70ms)的过程,为了区分开机和待机,所以将中断启动放这里大于70ms,使得复位连续第二次拉高时不识别 + hal_gpio_set_ap_reset_int(ENABLE, ap_reset_cb, DETECT_RISING_EDGE); + #endif + } + /* 与屏的TP 模块通讯并初始化 */ + app_tp_transfer_screen_int(); + + // tp_heartbeat_exec(); + // app_tp_calibration_exec(); + // ap_tp_st_touch_scan_point_record_event_exec(); + + while(hal_dsi_rx_ctrl_dsc_async_handler(g_rx_ctrl_handle)) + { + + } + + #if ENABLE_TP_WAKE_UP + if (g_need_enter_sleep_mode) + { +// g_mipi_path_off = true; + // hal_gpio_set_output_data(IO_PAD_TD_LEDPWM, IO_LVL_HIGH); + /* FIXME stop more model */ + hal_dsi_tx_ctrl_stop(g_tx_ctrl_handle); + hal_dsi_tx_ctrl_deinit(g_tx_ctrl_handle); + hal_dsi_rx_ctrl_stop(g_rx_ctrl_handle); + hal_dsi_rx_ctrl_deinit(g_rx_ctrl_handle); + + hal_swire_open(DISABLE); + hal_swire_deinit(); + hal_timer_stop(SWIRE_TIMER); + hal_timer_deinit(SWIRE_TIMER); + g_tp_sleep_in = true; + //hal_gpio_init_output(IO_PAD_TD_TPRSTN, IO_LVL_LOW); + // hal_system_set_vcc(false); //关VCC有屏唤不醒 + // hal_system_set_pvd(false); // + + TAU_LOGD("disable video path \n"); + g_need_enter_sleep_mode = false; + } + #endif + /* enter idle mode*/ + //hal_system_idle_mode(true); + } +} diff --git a/src/app/s21p/S21P_demo.h b/src/app/s21p/S21P_demo.h new file mode 100644 index 0000000..9fa4ce9 --- /dev/null +++ b/src/app/s21p/S21P_demo.h @@ -0,0 +1,27 @@ +/******************************************************************************* +* +* +* File: s20+_demo.h +* Description: S20+ demo +* Version: V0.1 +* Date: 2021-11-30 +* Author: Jaya + *******************************************************************************/ + +#ifndef __S20P_DEMO_H__ +#define __S20P_DEMO_H__ + +#define RATIO_VALUE 2 //优化系数 + +#define ENABLE_TP_WAKE_UP 1 + +#define ADD_TIMER3_FUNCTION + +/** +* @brief test system 主函数 +* @param none +* @retval none +*/ +void S21P_demo(void); + +#endif diff --git a/src/app/s21p/app_tp_for_custom_s21p.c b/src/app/s21p/app_tp_for_custom_s21p.c new file mode 100644 index 0000000..a013245 --- /dev/null +++ b/src/app/s21p/app_tp_for_custom_s21p.c @@ -0,0 +1,938 @@ +/******************************************************************************* +* +* +* 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" + + +#include "app_tp_for_custom_s21p.h" +#include "app_tp_phone_transfer_data_s21p.h" +#include "app_tp_screen_transfer_data_s21p.h" +#include "tau_log.h" +#include "tau_delay.h" + +#ifdef LOG_TAG + #undef LOG_TAG +#endif +#define LOG_TAG "s21p_tp" + +#define S8_TP_DEBUG_LOG 0 + +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; + +/*************************************报点协议 master 相关 buffer ****************************************/ +#if 1 +#if 1 + #ifndef u8 + #define u8 uint8_t + #endif + #ifndef u16 + #define u16 uint16_t + #endif + #ifndef u32 + #define u32 uint32_t + #endif + #ifndef u64 + #define u64 uint64_t + #endif + #ifndef U8 + #define U8 uint8_t + #endif + #ifndef U16 + #define U16 uint16_t + #endif + #ifndef U32 + #define U32 uint32_t + #endif + #ifndef U64 + #define U64 uint64_t + #endif + #ifndef s8 + #define s8 int8_t + #endif + #ifndef s16 + #define s16 int16_t + #endif + #ifndef s32 + #define s32 int32_t + #endif + #ifndef s64 + #define s64 int64_t + #endif + #ifndef S8 + #define S8 int8_t + #endif + #ifndef S16 + #define S16 int16_t + #endif + #ifndef S32 + #define S32 int32_t + #endif + #ifndef S64 + #define S64 int64_t + #endif +#endif + +#define Touch_Release_Event_Time 2 //手指松开时间 50ms步进 +#define Touch_MAX_Point 5 //最大触摸点 +typedef struct +{ + u16 X; // 坐标 + u16 Y; // 坐标 + u16 X_in; // 坐标 + u16 Y_in; // 坐标 + u16 Z; // 触摸面积 + u8 Event;//0无触 1按下 2移动 3松开 + u8 Eventbk;//0无触 1按下 2移动 3松开 + u16 Event_Time;//事件保持时间 +} Touch_Single_Point_str; + +typedef struct +{ + Touch_Single_Point_str Touch_Single_Point[Touch_MAX_Point];//最大 5 个触摸点 + u8 Event_Hold;//事件保持 1表示有触摸点事件 + u8 Event_Single_Flag;//单次触发触摸点事件,1表示当前可以触发一次触点事件,可给中断 +} Touch_str; +Touch_str Touch = //初始化值 +{ + .Touch_Single_Point[0] = (Touch_Single_Point_str){.X = 0, .Y = 0, .X_in = 0, .Y_in = 0, .Z = 0, .Event = 0, .Eventbk = 0, .Event_Time = 0,}, + .Touch_Single_Point[1] = (Touch_Single_Point_str){.X = 0, .Y = 0, .X_in = 0, .Y_in = 0, .Z = 0, .Event = 0, .Eventbk = 0, .Event_Time = 0,}, + .Touch_Single_Point[2] = (Touch_Single_Point_str){.X = 0, .Y = 0, .X_in = 0, .Y_in = 0, .Z = 0, .Event = 0, .Eventbk = 0, .Event_Time = 0,}, + .Touch_Single_Point[3] = (Touch_Single_Point_str){.X = 0, .Y = 0, .X_in = 0, .Y_in = 0, .Z = 0, .Event = 0, .Eventbk = 0, .Event_Time = 0,}, + .Touch_Single_Point[4] = (Touch_Single_Point_str){.X = 0, .Y = 0, .X_in = 0, .Y_in = 0, .Z = 0, .Event = 0, .Eventbk = 0, .Event_Time = 0,}, +#if (Touch_MAX_Point==10) + .Touch_Single_Point[5] = (Touch_Single_Point_str){.X = 0, .Y = 0, .X_in = 0, .Y_in = 0, .Z = 0, .Event = 0, .Eventbk = 0, .Event_Time = 0,}, + .Touch_Single_Point[6] = (Touch_Single_Point_str){.X = 0, .Y = 0, .X_in = 0, .Y_in = 0, .Z = 0, .Event = 0, .Eventbk = 0, .Event_Time = 0,}, + .Touch_Single_Point[7] = (Touch_Single_Point_str){.X = 0, .Y = 0, .X_in = 0, .Y_in = 0, .Z = 0, .Event = 0, .Eventbk = 0, .Event_Time = 0,}, + .Touch_Single_Point[8] = (Touch_Single_Point_str){.X = 0, .Y = 0, .X_in = 0, .Y_in = 0, .Z = 0, .Event = 0, .Eventbk = 0, .Event_Time = 0,}, + .Touch_Single_Point[9] = (Touch_Single_Point_str){.X = 0, .Y = 0, .X_in = 0, .Y_in = 0, .Z = 0, .Event = 0, .Eventbk = 0, .Event_Time = 0,}, +#endif + .Event_Hold = 0, + .Event_Single_Flag = 0, +}; + + + +typedef struct +{ +// uint16_t record_cmd_len; +// uint8_t record_cmd; +// uint8_t dma_handshake; +// uint8_t gesture_en; +// uint8_t status; +// uint8_t status_app; +// uint8_t status_wait_idle_boot; // For FT8719_SPI_STATUS_PACKAGE + + uint8_t D60_count; // FTS_REG_FW_VER + uint8_t D85_count; // FTS_REG_FW_VER + uint8_t D92_count; // FTS_REG_FW_VER + uint8_t reg_60_0[16]; // FTS_REG_FW_VER + uint8_t reg_60_1[16]; // FTS_REG_FW_VER + uint8_t reg_60_2[16]; // FTS_REG_FW_VER + uint8_t reg_60_3[16]; // FTS_REG_FW_VER + uint8_t reg_60_4[16]; // FTS_REG_FW_VER + uint8_t reg_60_5[16]; // FTS_REG_FW_VER + uint8_t reg_60_6[16]; // FTS_REG_FW_VER + uint8_t reg_60_7[16]; // FTS_REG_FW_VER + uint8_t reg_60_8[16]; // FTS_REG_FW_VER + uint8_t reg_60_9[16]; // FTS_REG_FW_VER + uint8_t reg_60_10[16]; // FTS_REG_FW_VER + uint8_t reg_60_11[16]; // FTS_REG_FW_VER + uint8_t reg_60_12[16]; // FTS_REG_FW_VER + uint8_t reg_60_13[16]; // FTS_REG_FW_VER + uint8_t reg_60_1_0[16]; // FTS_REG_FW_VER + uint8_t reg_60_1_1[16]; // FTS_REG_FW_VER + uint8_t reg_60_1_2[16]; // FTS_REG_FW_VER + uint8_t reg_61_0[16]; // FTS_REG_FW_VER + uint8_t reg_61_1[16]; // FTS_REG_FW_VER + + uint8_t reg_22[5]; // FTS_REG_FW_VER + uint8_t reg_21[1]; // FTS_REG_FW_VER + uint8_t reg_55[1]; // FTS_REG_FW_VER + uint8_t reg_af[4]; // FTS_REG_FW_VER + uint8_t reg_f1[4]; // FTS_REG_FW_VER + uint8_t reg_a3[4]; // FTS_REG_FW_VER + uint8_t reg_a4[4]; // FTS_REG_FW_VER + uint8_t reg_a5[4]; // FTS_REG_FW_VER + uint8_t reg_52[3]; // FTS_REG_FW_VER + uint8_t reg_23[11]; // FTS_REG_FW_VER + uint8_t reg_30[2]; // FTS_REG_FW_VER + uint8_t reg_90[10]; // FTS_REG_FW_VER + uint8_t reg_85_0[28]; // FTS_REG_WORKMODE + uint8_t reg_85_1[1]; // FTS_REG_WORKMODE + uint8_t reg_e4_0[1]; // FTS_REG_GESTURE_EN + uint8_t reg_e4_1[1]; // FTS_REG_GESTURE_EN + uint8_t Touch_ON[1]; // 报点标志 + uint8_t reg_92_0[6]; + uint8_t reg_92_1[3]; + uint8_t reg_92_2[2]; + bool Phone_Init_Done; + +} SAMSUNG_s21p_str; + +SAMSUNG_s21p_str SAMSUNG_s21p = +{ + .D60_count = 0x00, + .D85_count = 0x00, + .D92_count = 0x00, + .reg_60_0 = { 0x09, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + .reg_60_1 = { 0x1D, 0x61, 0x02, 0x02, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + .reg_60_2 = { 0x1D, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + .reg_60_3 = { 0x1D, 0x6F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + .reg_60_4 = { 0x1D, 0x61, 0x02, 0x02, 0x06, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + .reg_60_5 = { 0x1D, 0x61, 0x02, 0x02, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + .reg_60_6 = { 0x1D, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + .reg_60_7 = { 0x1D, 0x61, 0x02, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + .reg_60_8 = { 0x1D, 0x6A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + .reg_60_9 = { 0x1D, 0x61, 0x02, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + .reg_60_10 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // 2 + .reg_60_11 = { 0x1D, 0x61, 0x03, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + .reg_60_12 = { 0x1D, 0x6B, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + .reg_60_13 = { 0x1D, 0x6F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + + .reg_60_1_0 = { 0x1D, 0x61, 0x02, 0x02, 0x05, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + .reg_60_1_1 = { 0x1D, 0x6B, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + .reg_60_1_2 = { 0x1D, 0x61, 0x03, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + + .reg_61_0 = { 0x1D, 0x20, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + .reg_61_1 = { 0x1D, 0x61, 0x06, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + + .reg_22 = { 0x53, 0x45, 0x37, 0x92, 0x00}, + .reg_21 = { 0x80}, + .reg_55 = { 0x20}, + .reg_af = { 0x00, 0x03, 0x01, 0x00}, + .reg_f1 = { 0x05, 0x05, 0x00, 0xA2}, + .reg_a5 = { 0x28, 0x19, 0x01, 0x30}, + .reg_a3 = { 0x28, 0x19, 0x01, 0x00}, + .reg_a4 = { 0x28, 0x19, 0x01, 0x02}, + .reg_52 = { 0xAC, 0x37, 0x71}, + .reg_23 = { + 0x10, 0x00, 0x10, 0x00, 0x04, 0x38, 0x09, 0x60, + 0x12, 0x28, 0x00 + }, + .reg_30 = { 0x61, 0x00}, + .reg_90 = { + 0x4E, 0x39, 0x37, 0x35, 0x00, 0x04, 0x00, 0x0A, + 0x10, 0x00 + }, + .reg_85_0 = { + 0x01,0x25,0x01,0x04,0x01,0x00,0x09,0x01, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x01,0x00 + }, + .reg_85_1 = { 0xFF }, + .reg_e4_0 = {0x00}, + .reg_e4_1 = {0x01}, + .Touch_ON = {0x00}, + .reg_92_0 = { 0xBA, 0x00, 0x7C, 0x00, 0xBA, 0x00}, + .reg_92_1 = { 0x12, 0x12, 0x29}, + .reg_92_2 = { 0x8A, 0x25}, + .Phone_Init_Done = false, +}; + +#endif +uint8_t screen_data_write_1[1] = {0x86}; //触点/坐标 数据读取对应的发送buffer +uint8_t screen_data_write_2[3] = {0xc0, 0x05, 0x01}; //配置buffer +uint8_t screen_data_write_3[3] = {0xc0, 0x05, 0x00}; //配置buffer + +st_screen_data screen_reg_int_data[] = {{screen_data_write_1, 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 ************************************/ +// 数组按照协议发送数据先后排列 +st_screen_const_data screen_reg_start_data[] = +{ + {data_num_00, screen_86_data, sizeof(screen_86_data), 8, SCREEN_TRANSFER_READ}, \ + {data_num_01, screen_a0_00_01_data, sizeof(screen_a0_00_01_data), 0, SCREEN_TRANSFER_WRITE}, \ + {data_num_02, screen_a2_03_00_data, sizeof(screen_a2_03_00_data), 0, SCREEN_TRANSFER_WRITE}, \ + {data_num_03, screen_a2_02_00_data, sizeof(screen_a2_02_00_data), 0, SCREEN_TRANSFER_WRITE}, \ + {data_num_04, screen_c0_07_01_data, sizeof(screen_c0_07_01_data), 0, SCREEN_TRANSFER_WRITE}, \ +// {data_num_05, screen_86_data, sizeof(screen_86_data), 8, SCREEN_TRANSFER_READ}, \ +// {data_num_06, screen_86_data, sizeof(screen_86_data), 8, SCREEN_TRANSFER_READ}, \ +// {data_num_07, screen_86_data, sizeof(screen_86_data), 8, SCREEN_TRANSFER_READ}, \ +// {data_num_08, screen_86_data, sizeof(screen_86_data), 8, SCREEN_TRANSFER_READ}, +}; +const uint8_t screen_reg_start_data_size = sizeof(screen_reg_start_data) / sizeof(st_screen_const_data); +/*********************************开机屏幕初始化 master 相关 buffer 截止**********************************/ + +//st_screen_const_data screen_reg_tp_sendcmd_data[] = { \ +// {data_num_00, screen_87_data, sizeof(screen_87_data), 10, SCREEN_TRANSFER_READ}, \ +// {data_num_01, screen_a0_00_01_data, sizeof(screen_a0_00_01_data), 0, SCREEN_TRANSFER_WRITE}, \ + +//}; +//// {data_num_03, screen_a3_a4_fc_data, sizeof(screen_a3_a4_fc_data), 0, SCREEN_TRANSFER_WRITE}, +//const uint8_t screen_reg_tp_sendcmd_data_size = sizeof(screen_reg_tp_sendcmd_data) / sizeof(st_screen_const_data); + + +//st_screen_const_data screen_reg_tp_software_reset_data[] = { \ + +//{data_num_00, screen_fa_software_reset_data, sizeof(screen_fa_software_reset_data), 0, SCREEN_TRANSFER_WRITE}, \ +//{data_num_01, screen_87_data, sizeof(screen_87_data), 10, SCREEN_TRANSFER_READ}, \ +//{data_num_02, screen_a0_00_01_data, sizeof(screen_a0_00_01_data), 0, SCREEN_TRANSFER_WRITE}, \ +// }; +//// {data_num_03, screen_a3_a4_fc_data, sizeof(screen_a3_a4_fc_data), 0, SCREEN_TRANSFER_WRITE}, +//const uint8_t screen_reg_tp_software_reset_data_size = sizeof(screen_reg_tp_software_reset_data) / sizeof(st_screen_const_data); + +uint8_t g_screen_tp_reg_43_software_reset_flag = false; +bool g_screen_tp_init_start = false; +bool g_screen_tp_init_restart = false; +bool g_tp_sleep_in = false; +bool g_tp_wakeup = false; +uint8_t g_tp_sleep_delay_count = 0; + +/*************************************报点协议 slave 相关 buffer******************************************/ + +uint8_t phone_reg_coord_data[] = {0x60}; //坐标 数据反馈对应的接收数据 +uint8_t phone_reg_coord_back[16] = {0x09, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; //坐标 数据反馈对应的数据buffer +uint8_t phone_reg_coord_back_X61[80] = {0x09, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00}; //坐标 数据反馈对应的数据buffer +uint8_t phone_reg_coord_back_BUF[10][10] = {0x09, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00}; //坐标 数据反馈对应的数据buffer +uint8_t phone_reg_coord_BUF_NUM = 0; + +st_reg_data phone_reg_int_data[] = {{1, 8, 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_60_start_back), sizeof(phone_60_start_back), phone_60_start_back, phone_60_start_back}, + {sizeof(phone_22_data), sizeof(phone_22_back), phone_22_data, phone_22_back}, + {sizeof(phone_21_data), sizeof(phone_21_back), phone_21_data, phone_21_back}, +}; + +uint8_t phone_reg_const_data_size = sizeof(phone_reg_const_data) / sizeof(phone_reg_const_data[0]); +/***************************开机阶段slave需要反馈的数据及其对应的接收开头截止******************************/ + + + + +/************************************************************************** +* @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) +{ + uint8_t return_num = transfer_now + 1; + + g_tp_sleep_in = false; // 退出息屏状态 + +// static uint8_t app_tp_count = 0; + +// switch (transfer_now) +// { +// case data_num_02: //87 +// if (rxbuffer[0] == 0x03) +// { +//#if S8_TP_DEBUG_LOG +// TAU_LOGD("87 wait 03 ok\n"); +//#endif +// } +// else +// { +//#if S8_TP_DEBUG_LOG +// TAU_LOGD("TD TP init [%d]\n", rxbuffer[2]); +//#endif +// app_tp_count++; +// return_num = transfer_now; +// if (app_tp_count > 120) //初始化不成功,重新reset screen +// { +// app_tp_count = 0; +// app_tp_screen_init(); +// return_num = data_num_00; +// } +// delayMs(10); +// } +// break; +// default: +// break; +// } + + return return_num; + +} + +/************************************************************************** +* @name : app_tp_screen_analysis_wake_up +* @brief : screen 息屏双击唤醒功能 +* @param[in] : +* @return : 0表示触摸类事件;1表示状态事件;2表示手势事件;3表示空事件 +* @retval : +**************************************************************************/ +uint8_t app_tp_screen_analysis_wake_up(uint8_t *rxbuffer, uint8_t touch_number) +{ + uint16_t x = 0,y = 0; + uint8_t touch_event = 0; + + uint8_t result = 0; // 0表示触摸类事件;1表示状态事件;2表示手势事件;3表示空事件 + + if(touch_number == 1) // 单点触摸 + { + touch_event = rxbuffer[0] >> 4;//触摸事件 + + if(touch_event == 0x03) // 释放事件 单击事件 + { + Touch.Touch_Single_Point[0].X_in = (((u16)rxbuffer[3] & 0x0F) << 8) | (rxbuffer[2]); + Touch.Touch_Single_Point[0].Y_in = ((u16)rxbuffer[4] << 4) | ((rxbuffer[3] & 0xF0) >> 4); + + if(g_tp_sleep_delay_count < 50) // 50*10 = 500ms 内双击事件 + { + x = abs(Touch.Touch_Single_Point[0].X_in-Touch.Touch_Single_Point[1].X_in); + y = abs(Touch.Touch_Single_Point[0].Y_in-Touch.Touch_Single_Point[1].Y_in); + if(x<100 && y<100) // 双击 x y的范围小于100个像素点 + { + g_tp_wakeup = true; + } + } + + // 保存x y数值 + Touch.Touch_Single_Point[1].X_in = Touch.Touch_Single_Point[0].X_in; + Touch.Touch_Single_Point[1].Y_in = Touch.Touch_Single_Point[0].Y_in; + g_tp_sleep_delay_count = 0; + } + } + else + { + g_tp_sleep_delay_count = 0; + Touch.Touch_Single_Point[0].X_in = 0; + Touch.Touch_Single_Point[0].Y_in = 0; + Touch.Touch_Single_Point[1].X_in = Touch.Touch_Single_Point[0].X_in; + Touch.Touch_Single_Point[1].Y_in = Touch.Touch_Single_Point[0].Y_in; + } + +// return result; +} + +void app_tp_screen_analysis_wake_up_exec(void) +{ + if(g_tp_wakeup == true) + { + g_tp_wakeup = false; + delayMs(100); + phone_reg_coord_back_X61[0] = 0x46; //44 press C4 leave 84 move + phone_reg_coord_back_X61[1] = 0x01; //x 高八位 + phone_reg_coord_back_X61[2] = 0x2D; //y 高八位 + phone_reg_coord_back_X61[3] = 0x34; //bit0-bit3:y低四位;bit4-bit7:x低四位; + phone_reg_coord_back_X61[4] = 0xD8; //major + phone_reg_coord_back_X61[5] = 0; //minor + //touch type:0:普通手指触摸;1:盘旋;2:保护套;3:手套;4:尖笔;5:手掌;6:潮湿的;7:接近;8:轻摇 + // phone_reg_coord_back_X61[((s1) * 8) + 6] = ((Touch.Touch_Single_Point[ss].Z & 0xFE) >> 2); //bit0-bit5:z只有6位;bit6-bit7:touch type的高两位 + // phone_reg_coord_back_X61[((s1) * 8) + 7] = --Touch_num; //bit0-bit5:buffer里面剩余多少个事件;bit6-bit7:touch type 低两位 + + phone_reg_coord_back_X61[ 6] = 0; + phone_reg_coord_back_X61[ 7] = 0; + + phone_reg_coord_back_X61[ 8] = 0; + phone_reg_coord_back_X61[ 9] = 0; + phone_reg_coord_back_X61[ 10] = 0; + phone_reg_coord_back_X61[ 11] = 0; + phone_reg_coord_back_X61[ 12] = 0; + phone_reg_coord_back_X61[ 13] = 0; + phone_reg_coord_back_X61[14] = 0; + phone_reg_coord_back_X61[15] = 0; + SAMSUNG_s21p.Touch_ON[0] = 1; + hal_gpio_set_output_data(g_phone_output_int_pad, IO_LVL_LOW); //拉低TP中断脚,通知AP读取TP数据 + Touch.Event_Single_Flag = 0; + } +} + +/************************************************************************** +* @name : app_tp_screen_analysis_int +* @brief : screen 报点数据解析函数,由客户定制 +* @param[in] : +* @return : +* @retval : +**************************************************************************/ + +uint8_t app_tp_screen_analysis_int(uint8_t transfer_now, uint8_t *rxbuffer, size_t data_size) +{ + uint8_t touch_number = 0; + uint8_t ii = 0,ss = 0; + + phone_reg_coord_BUF_NUM = data_size/8; + + if (phone_reg_coord_BUF_NUM >= Touch_MAX_Point)phone_reg_coord_BUF_NUM = Touch_MAX_Point; + + for (ii = 0; ii < phone_reg_coord_BUF_NUM; ii++) + { + for (ss = 0; ss < 8; ss++) + phone_reg_coord_back_BUF[ii][ss] = rxbuffer[ii*8+ss]; + } + + //ST TP数据分析处理 +// byte0: bit4-bit7:0x1:按下事件;0x2:移动事件;0x3:松开事件; bit2-bit3:reserved; bit0-bit1:0x3 +// byte1: bit4-bit7:touchId; 手指数 0x0: Pointer ID 0、0x1: Pointer ID 1 ... 0xF: Pointer ID 15 +// bit0-bit3:touchType: 0x0: Invalid、0x1: Finger touch、0x2: Glove touch、0x3: Stylus touch、0x4: Palm touch、Others: Reserved +// byte2: X低8位 +// byte3: 高4位:Y的bit0-bit3; 低4位:X的bit11-bit8 +// byte4: Y的:bit11-bit4 +// byte5: reserved +// byte6: reserved +// byte7: bit5-bit7:reserved; bit0-bit4:buffer中剩余的事件数 evt_left + + Touch.Event_Single_Flag = 1; + // phone_reg_coord_BUF_NUM = 0; + + if (g_tp_sleep_in == false) + { + u8 s1 = 0; + for (ss = 0; ss < phone_reg_coord_BUF_NUM; ss++) + { + uint8_t touch_id = 0; + uint8_t touch_event_id = 0; + uint8_t ap_event_id = 0; + + touch_id = phone_reg_coord_back_BUF[ss][1] >> 4; + if (touch_id >= Touch_MAX_Point)continue; //判断手指编号是否超出范围 + + touch_event_id = phone_reg_coord_back_BUF[ss][0] >> 4;//触摸事件 +// if((touch_event_id == 0x01)||(touch_event_id == 0x02)) // 按下事件 // 移动事件 +// { +// +// } + Touch.Touch_Single_Point[0].X_in = (((u16)phone_reg_coord_back_BUF[ss][3] & 0x0F) << 8) | (phone_reg_coord_back_BUF[ss][2]); + Touch.Touch_Single_Point[0].Y_in = ((u16)phone_reg_coord_back_BUF[ss][4] << 4) | ((phone_reg_coord_back_BUF[ss][3] & 0xF0) >> 4); + //分辨率转换 + Touch.Touch_Single_Point[0].X = (((float)Touch.Touch_Single_Point[0].X_in) * (float)INPUT_WIDTH_VALUE) / ((float)OUTPUT_WIDTH_VALUE); + Touch.Touch_Single_Point[0].Y = (((float)Touch.Touch_Single_Point[0].Y_in) * (float)INPUT_HEIGHT_VALUE) / ((float)OUTPUT_HEIGHT_VALUE); + + u16 X0, Y0; + X0 = ((float)Touch.Touch_Single_Point[0].X) * 4095.0 / ((float)INPUT_WIDTH_VALUE); + Y0 = ((float)Touch.Touch_Single_Point[0].Y) * 4095.0 / ((float)INPUT_HEIGHT_VALUE); + if (X0 > 0xfff)X0 = 0xfff; + if (Y0 > 0xfff)Y0 = 0xfff; + + Y0 = 0xfff - Y0; // 零点上下不一致,需要转换 + +// hal_gpio_set_output_data(IO_PAD_AP_SPIS_MISO, IO_LVL_LOW); + //bit0-bit1:event id; 0表示触摸类事件;1表示状态事件;2表示手势事件;3表示空事件 + //bit2-bit5:touch id; 表示第几个触摸手指 + //bit6-bit7:touch action; 0:没有触摸事件;1:按下;2:移动;3:松开 + + phone_reg_coord_back_X61[((s1) * 16) + 0] = (touch_event_id << 6) | ((touch_id + 1) << 2) | ap_event_id; //44 press C4 leave 84 move + phone_reg_coord_back_X61[((s1) * 16) + 1] = (uint8_t)((X0 & 0xFF0) >> 4); //x 高八位 + phone_reg_coord_back_X61[((s1) * 16) + 2] = (uint8_t)((Y0 & 0xFF0) >> 4); //y 高八位 + phone_reg_coord_back_X61[((s1) * 16) + 3] = ((X0 & 0xF) << 4) | ((Y0 & 0xF)); //bit0-bit3:y低四位;bit4-bit7:x低四位; + phone_reg_coord_back_X61[((s1) * 16) + 4] = 4; //major + phone_reg_coord_back_X61[((s1) * 16) + 5] = 4; //minor + //touch type:0:普通手指触摸;1:盘旋;2:保护套;3:手套;4:尖笔;5:手掌;6:潮湿的;7:接近;8:轻摇 +// phone_reg_coord_back_X61[((s1) * 8) + 6] = ((Touch.Touch_Single_Point[ss].Z & 0xFE) >> 2); //bit0-bit5:z只有6位;bit6-bit7:touch type的高两位 +// phone_reg_coord_back_X61[((s1) * 8) + 7] = --Touch_num; //bit0-bit5:buffer里面剩余多少个事件;bit6-bit7:touch type 低两位 + + phone_reg_coord_back_X61[((s1) * 16) + 6] = 0x1b; + phone_reg_coord_back_X61[((s1) * 16) + 7] = 0x20+(phone_reg_coord_BUF_NUM-1-ss); + + phone_reg_coord_back_X61[((s1) * 16) + 8] = 0x04; + phone_reg_coord_back_X61[((s1) * 16) + 9] = 0x96; + phone_reg_coord_back_X61[((s1) * 16) + 10] = 0; + phone_reg_coord_back_X61[((s1) * 16) + 11] = 0; + phone_reg_coord_back_X61[((s1) * 16) + 12] = 0; + phone_reg_coord_back_X61[((s1) * 16) + 13] = 0; + phone_reg_coord_back_X61[((s1) * 16) + 14] = 0; + phone_reg_coord_back_X61[((s1) * 16) + 15] = 0; + + Touch.Touch_Single_Point[ss].Eventbk = Touch.Touch_Single_Point[ss].Event; + + Touch.Touch_Single_Point[ss].Event = 0; +// hal_gpio_set_output_data(IO_PAD_AP_SPIS_MISO, IO_LVL_HIGH); +// } + s1++; + } + SAMSUNG_s21p.Touch_ON[0] = 1; + + hal_gpio_set_output_data(g_phone_output_int_pad, IO_LVL_LOW); //拉低TP中断脚,通知AP读取TP数据 + Touch.Event_Single_Flag = 0; + } + else + { + // 息屏触摸处理 + app_tp_screen_analysis_wake_up(rxbuffer,phone_reg_coord_BUF_NUM); + } + + return screen_reg_int_data_size + 1; +// TAU_LOGD("TD [%d]\n", x); +} + + +/************************************************************************** +* @name : hal_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) +{ + + *txbuffer_size = 0; +// if ((!((rxbuffer[0] == 0x60) || (rxbuffer[0] == 0x61))) || (SAMSUNG_s21p.Phone_Init_Done == false)) + if (!((rxbuffer[0] == 0x60) || (rxbuffer[0] == 0x61))) + { + SAMSUNG_s21p.Touch_ON[0] = 0; + } + if(phone_reg_coord_BUF_NUM<2) // 单点触摸 + hal_gpio_set_output_data(g_phone_output_int_pad, IO_LVL_HIGH); + switch (rxbuffer[0]) + { + case 0x60: + { + if (SAMSUNG_s21p.Touch_ON[0] == 1) + { + *txbuffer = phone_reg_coord_back_X61; + *txbuffer_size = sizeof(phone_reg_coord_back); + // TAU_LOGD("TD OK\n"); + } + else + { + if (SAMSUNG_s21p.D60_count == 0) + { + if(g_screen_tp_init_start == true) //开机 + { + *txbuffer = SAMSUNG_s21p.reg_60_0; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_0); + SAMSUNG_s21p.D60_count = 1; + } + else + { + *txbuffer = SAMSUNG_s21p.reg_60_1_0; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_1_0); + SAMSUNG_s21p.D60_count = 1; + } + } + else if (SAMSUNG_s21p.D60_count == 1) + { + *txbuffer = SAMSUNG_s21p.reg_60_1; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_1); + } + else if (SAMSUNG_s21p.D60_count == 2) + { + *txbuffer = SAMSUNG_s21p.reg_60_2; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_2); + SAMSUNG_s21p.D60_count = 3; + } + else if (SAMSUNG_s21p.D60_count == 3) + { + *txbuffer = SAMSUNG_s21p.reg_60_3; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_3); + SAMSUNG_s21p.D60_count = 4; + } + else if (SAMSUNG_s21p.D60_count == 4) + { + *txbuffer = SAMSUNG_s21p.reg_60_4; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_4); + SAMSUNG_s21p.D60_count = 5; + } + else if (SAMSUNG_s21p.D60_count == 5) + { + *txbuffer = SAMSUNG_s21p.reg_60_5; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_5); + } + else if (SAMSUNG_s21p.D60_count == 6) + { + *txbuffer = SAMSUNG_s21p.reg_60_6; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_6); + SAMSUNG_s21p.D60_count = 6; + } + else if (SAMSUNG_s21p.D60_count == 7) + { + *txbuffer = SAMSUNG_s21p.reg_60_7; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_7); + SAMSUNG_s21p.D60_count = 7; + } + else if (SAMSUNG_s21p.D60_count == 8) + { + *txbuffer = SAMSUNG_s21p.reg_60_8; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_8); + SAMSUNG_s21p.D60_count = 8; + } + else if (SAMSUNG_s21p.D60_count == 9) + { + *txbuffer = SAMSUNG_s21p.reg_60_9; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_9); + SAMSUNG_s21p.D60_count = 10; + } + else if (SAMSUNG_s21p.D60_count == 10) + { + *txbuffer = SAMSUNG_s21p.reg_60_10; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_10); + SAMSUNG_s21p.D60_count = 11; + } + else if (SAMSUNG_s21p.D60_count == 11) + { + *txbuffer = SAMSUNG_s21p.reg_60_10; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_10); + SAMSUNG_s21p.D60_count = 12; + } + else if (SAMSUNG_s21p.D60_count == 12) + { + *txbuffer = SAMSUNG_s21p.reg_60_11; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_11); + SAMSUNG_s21p.D60_count = 12; + } + else if (SAMSUNG_s21p.D60_count == 13) + { + *txbuffer = SAMSUNG_s21p.reg_60_12; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_12); + SAMSUNG_s21p.D60_count = 14; + } + else if (SAMSUNG_s21p.D60_count == 14) + { + *txbuffer = SAMSUNG_s21p.reg_60_13; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_13); + SAMSUNG_s21p.D60_count = 1; + } + } + } + break; + case 0x61: + { + if (SAMSUNG_s21p.Touch_ON[0] == 1) + { + hal_gpio_set_output_data(g_phone_output_int_pad, IO_LVL_HIGH); // 多点触摸 + + *txbuffer = &phone_reg_coord_back_X61[16]; + *txbuffer_size = sizeof(phone_reg_coord_back_X61) - 16; + } + else + { + *txbuffer = SAMSUNG_s21p.reg_61_0; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_61_0); + } + } + break; + case 0x22: + { + *txbuffer = SAMSUNG_s21p.reg_22; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_22); +// app_tp_transfer_screen_start(); + g_screen_tp_init_restart = true; + } + break; + case 0x21: + { + *txbuffer = SAMSUNG_s21p.reg_21; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_21); + } + break; + case 0x55: + { + *txbuffer = SAMSUNG_s21p.reg_55; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_55); + } + break; + case 0xaf: + { + *txbuffer = SAMSUNG_s21p.reg_af; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_af); + } + break; + case 0xf1: + { + *txbuffer = SAMSUNG_s21p.reg_f1; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_f1); + } + break; + case 0xa5: + { + *txbuffer = SAMSUNG_s21p.reg_a5; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_a5); + } + break; + case 0xa3: + { + *txbuffer = SAMSUNG_s21p.reg_a3; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_a3); + } + break; + case 0xa4: + { + *txbuffer = SAMSUNG_s21p.reg_a4; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_a4); + } + break; + case 0x52: + { + *txbuffer = SAMSUNG_s21p.reg_52; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_52); + } + break; + case 0x23: + { + *txbuffer = SAMSUNG_s21p.reg_23; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_23); + } + break; + case 0x30: + { + *txbuffer = SAMSUNG_s21p.reg_30; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_30); + } + break; + case 0x90: + { + *txbuffer = SAMSUNG_s21p.reg_90; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_90); + } + break; + case 0x11: + { + SAMSUNG_s21p.D60_count = 2; + } + break; + case 0x85: + { + if (rxbuffer_size > 1) + { + if ((rxbuffer[1] == 0x00) && (rxbuffer[2] == 0x00)) + { + SAMSUNG_s21p.D85_count = 1; + } + return; + } + else + { + if(SAMSUNG_s21p.D85_count == 0x00) + { + *txbuffer = SAMSUNG_s21p.reg_85_0; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_85_0); + } + else if(SAMSUNG_s21p.D85_count == 0x01) + { + *txbuffer = SAMSUNG_s21p.reg_85_1; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_85_1); + } + } + } + break; + case 0x92: + { + if (rxbuffer_size == 1) + { + if(SAMSUNG_s21p.D92_count == 0x00) + { + *txbuffer = SAMSUNG_s21p.reg_92_0; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_92_0); + SAMSUNG_s21p.D92_count = 1; + } + else if(SAMSUNG_s21p.D92_count == 0x01) + { + *txbuffer = SAMSUNG_s21p.reg_92_1; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_92_1); + SAMSUNG_s21p.D92_count = 2; + } + else + { + *txbuffer = SAMSUNG_s21p.reg_92_2; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_92_2); + // SAMSUNG_s21p.D92_count = 0; + } + } + + if (rxbuffer_size == 3) + { + if((rxbuffer[1] == 0xF0)&&(rxbuffer[2] == 0x00)) + { + SAMSUNG_s21p.D92_count = 2; + } + } + } + break; +// case 0x72: +// { +// *txbuffer = SAMSUNG_s21p.reg_60_0; +// *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_0); +// } + case 0x74: + { + if(rxbuffer_size == 2) + { + if(rxbuffer[1] == 0x01) + SAMSUNG_s21p.D60_count = 5; + else if((rxbuffer[1] == 0x02) || (rxbuffer[1] == 0x03)) + SAMSUNG_s21p.D60_count = 6; + } + } + break; +// case 0x80: +// { +// *txbuffer = SAMSUNG_s21p.reg_60_0; +// *txbuffer_size = sizeof(SAMSUNG_s21p.reg_60_0); +// } +// break; + case 0xE4: + { + if (rxbuffer_size == 2) + { + if(rxbuffer[1] == 0x00) + SAMSUNG_s21p.D60_count = 7; + else if(rxbuffer[1] == 0x01) + SAMSUNG_s21p.D60_count = 8; + } + else + { + if(SAMSUNG_s21p.Phone_Init_Done == false) + { + *txbuffer = SAMSUNG_s21p.reg_e4_0; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_e4_0); + } + else{ + *txbuffer = SAMSUNG_s21p.reg_e4_1; + *txbuffer_size = sizeof(SAMSUNG_s21p.reg_e4_1); + } + } + } + break; + case 0xF3: + { + if (rxbuffer_size == 2) + { + if(rxbuffer[1] == 0x00) + SAMSUNG_s21p.D60_count = 9; + } + } + break; + case 0xAE: + { + if (rxbuffer_size > 1) + { + if ((rxbuffer[1] == 0xA3) && (rxbuffer[2] == 0x40)) + { + //if(D60_count==0) + { + SAMSUNG_s21p.D60_count = 4; + + } + + } + } + } + break; + case 0xBE: + { + if (rxbuffer_size == 2) + { + SAMSUNG_s21p.Phone_Init_Done = true; + } + } + break; + + } + //hal_gpio_set_output_data(IO_PAD_AP_SPIS_MISO,0); + +} + + diff --git a/src/app/s21p/app_tp_for_custom_s21p.h b/src/app/s21p/app_tp_for_custom_s21p.h new file mode 100644 index 0000000..7a4b74e --- /dev/null +++ b/src/app/s21p/app_tp_for_custom_s21p.h @@ -0,0 +1,109 @@ +/******************************************************************************* +* +* +* File: app_tp_for_custom.h +* Description tp 协议处理文件,包括特定配置的宏 +* Version V0.1 +* Date 2021-10-14 +* Author zhanghz +*******************************************************************************/ +#ifndef __APP_TP_FOR_CUSTOM_S21P_H__ +#define __APP_TP_FOR_CUSTOM_S21P_H__ + +#include "string.h" +#include "tau_device_datatype.h" +#include "tau_common.h" +#include "app_tp_transfer.h" +#include "hal_gpio.h" +#include "s21p_demo.h" + +#define BUFFER_SIZE_MAX 250 //定义 bufrer 最大的字节数 +#define SCREEN_INT_LOW_DEFAULT 0 + +/** 跟手机之间使用 I2C 通信 **/ +#define PHONE_SLAVE_TRANSFER_I2C 1 //1:表示手机跟芯片之间,touch 数据采用 I2C 通信; +#define CHIP_I2C_ADDRESS 0x48 //芯片本身 I2C 从机地址 +#define CHIP_I2C_ADDR_BITS I2C_ADDR_BITS_7 //屏幕 I2C 地址位数 7/10,默认为7 + +/** 跟手机之间使用 SPI 通信 **/ +#define PHONE_SLAVE_TRANSFER_SPI 0 //1:表示手机跟芯片之间,touch 数据采用 SPI 通信; +#define PHONE_SPI_CPHA 0 //0:表示时钟在数据之后才切换,即第1个时钟沿有效 +#define PHONE_SPI_CPOL 0 //0:表示闲时时钟状态为低电平 + +/** 跟屏幕之间使用 I2C 通信 **/ +#define SCREEN_MASTER_TRANSFER_I2C 1 //1:表示屏幕跟芯片之间,touch 数据采用 I2C 通信; +#define SCREEN_I2C_ADDRESS 0x49 //屏幕 I2C 从机地址 +#define SCREEN_I2C_ADDR_BITS I2C_ADDR_BITS_7 //屏幕 I2C 地址位数 7/10,默认为7 +#define I2C_MASTER_SPEED 400000 //设置 I2C 主机通信速率 + +/** 跟屏幕之间使用 SPI 通信 **/ +#define SCREEN_MASTER_TRANSFER_SPI 0 //1:表示屏幕跟芯片之间,touch 数据采用 SPI 通信; +#define SCREEN_SPI_CPHA 0 //0:表示时钟在数据之后才切换,即第1个时钟沿有效 +#define SCREEN_SPI_CPOL 0 //0:表示闲时时钟状态为低电平 +#define SPI_MASTER_SPEED 10000000 //设置 SPI 主机通信速率 + + +/** 坐标转换参数 **/ +#define INPUT_WIDTH_VALUE 1080 //原装屏 X 坐标码值的最大值 +#define INPUT_HEIGHT_VALUE 2400 //原装屏 Y 坐标码值的最大值 +#define OUTPUT_WIDTH_VALUE 1080 //维修屏 X 坐标码值的最大值 +#define OUTPUT_HEIGHT_VALUE 2400 //维修屏 Y 坐标码值的最大值 + + + + + +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[]; + +extern const uint8_t screen_reg_tp_sendcmd_data_size; + +extern st_screen_const_data screen_reg_tp_sendcmd_data[]; +extern st_screen_const_data screen_reg_tp_software_reset_data[]; +extern const uint8_t screen_reg_tp_software_reset_data_size; +extern uint8_t g_screen_tp_reg_43_software_reset_flag; +extern bool g_screen_tp_init_start; +extern bool g_screen_tp_init_restart; + +extern bool g_tp_sleep_in; +extern uint8_t g_tp_sleep_delay_count; + +/************************************************************************** +* @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_screen_analysis_wake_up_exec(void); + +#endif + diff --git a/src/app/s21p/app_tp_phone_transfer_data_s21p.h b/src/app/s21p/app_tp_phone_transfer_data_s21p.h new file mode 100644 index 0000000..07eb786 --- /dev/null +++ b/src/app/s21p/app_tp_phone_transfer_data_s21p.h @@ -0,0 +1,28 @@ +/******************************************************************************* +* +* +* File: app_tp_transfer_data.h +* Description 配置从机需要答复的接收值,及其对应的答复值 +* Version V0.1 +* Date 2021-10-14 +* Author zhanghz +*******************************************************************************/ +#ifndef __APP_TP_PHONE_TRANSFER_DATA_S21P_H__ +#define __APP_TP_PHONE_TRANSFER_DATA_S21P_H__ + +#include "tau_common.h" + +/***************send to phone***************/ +const uint8_t phone_60_start_back[] = {0x09, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00}; + +const uint8_t phone_22_data[] = {0x22}; +const uint8_t phone_22_back[] = {0x53, 0x45, 0x37, 0x61, 0x00}; + +const uint8_t phone_21_data[] = {0x21}; +const uint8_t phone_21_back[] = {0x80}; + + +/*******************************************/ + +#endif + diff --git a/src/app/s21p/app_tp_screen_transfer_data_s21p.h b/src/app/s21p/app_tp_screen_transfer_data_s21p.h new file mode 100644 index 0000000..d4e8937 --- /dev/null +++ b/src/app/s21p/app_tp_screen_transfer_data_s21p.h @@ -0,0 +1,65 @@ +/******************************************************************************* +* +* +* 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_S21P_H__ +#define __HAL_TP_SCREEN_TRANSFER_DATA_S21P_H__ + +#include "tau_common.h" + +/***************send to screen***************/ + +const uint8_t screen_86_data[] = {0x86}; +const uint8_t screen_a0_00_01_data[] = {0xa0, 0x00, 0x01}; +const uint8_t screen_a2_03_00_data[] = {0xa2, 0x03, 0x00, 0x00, 0x00, 0x03}; +const uint8_t screen_a2_02_00_data[] = {0xa2, 0x02, 0x00}; +const uint8_t screen_c0_07_01_data[] = {0xc0, 0x07, 0x01}; + +//const uint8_t screen_87_data[] = {0x87}; +//const uint8_t screen_a0_00_01_data[] = {0xa0, 0x00, 0x01}; +//const uint8_t screen_a0_00_ff_data[] = {0xa0, 0x00, 0x01}; +//const uint8_t screen_a4_06_c1_data[] = {0xa4, 0x01, 0x01}; +//const uint8_t screen_a3_a4_fc_data[] = {0xa3, 0xA4, 0xFC}; +//const uint8_t screen_a3_data[] = {0xa3}; +//const uint8_t screen_a4_data[] = {0xA4}; +//const uint8_t screen_fc_data[] = {0xFC}; +//const uint8_t screen_60_data[] = {0x60, 0x00, 0x00}; +//const uint8_t screen_a4_06_01_data[] = {0xa4, 0x06, 0x01}; +//const uint8_t screen_a4_00_01_data[] = {0xa4, 0x00, 0x01}; +//const uint8_t screen_a4_0c_5a_data[] = {0xa4, 0x0c, 0x5a}; +//const uint8_t screen_a4_05_04_data[] = {0xa4, 0x05, 0x04}; +//const uint8_t screen_a4_00_03_data[] = {0xa4, 0x00, 0x03}; +const uint8_t screen_fa_software_reset_data[] = {0xFA, 0x20, 0x00, 0x00, 0x24, 0x80}; +//读取固件等版本信息 +const uint8_t screen_a7_00_00_data[] = {0xA7, 0x00, 0x00, 0x00}; +//解锁 +const uint8_t screen_fa_20_24_data[] = {0xFA, 0x20, 0x00, 0x00, 0x24, 0x01}; +const uint8_t screen_fa_20_32_data[] = {0xFA, 0x20, 0x00, 0x00, 0x32, 0x10}; +const uint8_t screen_fa_20_34_data[] = {0xFA, 0x20, 0x00, 0x00, 0x34, 0x02}; +const uint8_t screen_fa_20_3f_data[] = {0xFA, 0x20, 0x00, 0x00, 0x3F, 0x07}; +const uint8_t screen_fa_20_3d_data[] = {0xFA, 0x20, 0x00, 0x00, 0x3D, 0x30}; +const uint8_t screen_fa_20_2d_data[] = {0xFA, 0x20, 0x00, 0x00, 0x2D, 0x02}; +const uint8_t screen_fa_20_1b_data[] = {0xFA, 0x20, 0x00, 0x00, 0x1B, 0x66}; +const uint8_t screen_fa_20_68_data[] = {0xFA, 0x20, 0x00, 0x00, 0x68, 0x13}; +const uint8_t screen_fa_20_25_data[] = {0xFA, 0x20, 0x00, 0x00, 0x25, 0x20}; +const uint8_t screen_fa_20_6b_data[] = {0xFA, 0x20, 0x00, 0x00, 0x6B, 0x00}; +const uint8_t screen_fa_20_de_data[] = {0xFA, 0x20, 0x00, 0x00, 0xDE, 0x03}; +const uint8_t screen_fa_20_28_data[] = {0xFA, 0x20, 0x00, 0x01, 0x28, 0xFF, 0xFF, 0xFF, 0x83}; +const uint8_t screen_fa_20_6a_data[] = {0xFA, 0x20, 0x00, 0x00, 0x6A, 0xA0}; +//读取寄存器值 +const uint8_t screen_fb_20_6a_data[] = {0xFB, 0x20, 0x00, 0x00, 0x6A}; +const uint8_t screen_fa_20_72_data1[] = {0xFA, 0x20, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x3F, 0x00}; +const uint8_t screen_fa_20_72_data2[] = {0xFA, 0x20, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x40, 0x3E, 0x27, 0x00}; +const uint8_t screen_fa_20_72_data3[] = {0xFA, 0x20, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x7C, 0x2D, 0x03, 0x00}; +const uint8_t screen_fa_20_6B_data[] = {0xFA, 0x20, 0x00, 0x00, 0x6B, 0x00, 0x40, 0x42, 0x0F, 0x00, 0x00, 0xC0}; +const uint8_t screen_fb_20_71_data[] = {0xFB, 0x20, 0x00, 0x00, 0x71}; + +/*******************************************/ + +#endif + diff --git a/src/app/s21p/demo_version.txt b/src/app/s21p/demo_version.txt new file mode 100644 index 0000000..c14764a --- /dev/null +++ b/src/app/s21p/demo_version.txt @@ -0,0 +1,32 @@ + +///////////////////////////////////////////////////////////////////////////////// +// 汾˵ demo + + ʱ䣺ISPͺ++Driver IC+ͺ+ʱ䣺ISP568_S20P_NT37701AH_VSN667_20230316 + + Ҫ˵ + + ˵޸ĵķ + + ע + 1ϴGitʱֱӽ汾˵ƵGit޸Уʵͬ + 2ĿṩͻҪڸʱǰӿͻƣ + 磺 + BC_ISP568_S20P_NT37701AH_VSN667_20230316; Ŀ + CX_ISP568_S20P_NT37701AH_VSN667_20230316; Ŀ + +///////////////////////////////////////////////////////////////////////////////// + +///////////////////////////////////////////////////////////////////////////////// + + ISP568T_S21P_3511_20230505 + + 1Ӵܣ°汾ƬҪʵִ + + + + + + +//////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// \ No newline at end of file diff --git a/src/app/test_cfg_global.h b/src/app/test_cfg_global.h new file mode 100644 index 0000000..2ef009f --- /dev/null +++ b/src/app/test_cfg_global.h @@ -0,0 +1,99 @@ +/******************************************************************************* +* +* 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_S21P_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_S21P_EN + #include "S21P_demo.h" + #include "app_tp_for_custom_s21p.h" + +// #include "app_tp_for_custom_s9.h" +#endif + +#endif + diff --git a/src/app/touch/app_tp_st_touch.c b/src/app/touch/app_tp_st_touch.c new file mode 100644 index 0000000..9e3f2db --- /dev/null +++ b/src/app/touch/app_tp_st_touch.c @@ -0,0 +1,573 @@ +/******************************************************************************* +* +* +* File: app_tp_st_touch.c +* Description ST touch У׼λȹܺ +* Version V0.1 +* Date 2023-03-13 +* Author sfy + +* Description ST touch У׼ضܣŽӿڸλȡǷɹ +* Version V0.2 +* Date 2023-03-22 +* Author sfy + +*******************************************************************************/ + +#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 "app_tp_st_touch.h" + +#define ST_TP_CALIBRATION_SUCCESS 0x5A // У׼ɹ־ + +static volatile bool s_calibration_flag = false; +static volatile uint8_t s_calibration_correct_flag = false; + +st_tp_scan_data tp_scan_data; + +uint8_t st_touch_init_sensor_off[3] = {0xA0,0x00,0x00}; //2 sensor OFF +uint8_t st_touch_init_sensor_on[3] = {0xA0,0x00,0x01}; //2 sensor on + + +uint8_t st_touch_tp_tuning_reset[3] = {0xA4,0x00,0x00}; // 3 System Reset +uint8_t st_touch_tp_tuning_FpnlInit[3] = {0xA4,0x00,0x03}; // FPnl Init +uint8_t st_touch_tp_tuning_PnlInit[3] = {0xA4,0x00,0x02}; // Pnl Init +uint8_t st_touch_tp_tuning_TuneM[4] = {0xA4,0x03,0x13,0x00}; // TuneM +uint8_t st_touch_tp_tuning_TuneS[4] = {0xA4,0x03,0x0C,0x00}; // TuneS +uint8_t st_touch_tp_tuning_SvCfg[3] = {0xA4,0x05,0x01}; // SvCfg +uint8_t st_touch_tp_tuning_SvCx[3] = {0xA4,0x05,0x02}; // SvCx +uint8_t st_touch_tp_tuning_SvPnl[3] = {0xA4,0x05,0x04}; // SvPnl +uint8_t st_touch_tp_tuning_clearfifo[3] = {0xA4,0x00,0x01}; // 1 clear fifo + +uint8_t st_touch_tp_tuning_clkreset[3] = {0xA4,0x00,0x05}; // clk reset + +/************************************************************************** +* @name : ap_tp_st_touch_get_calibration_success_mark +* @brief : st touch ȡУ׼ɹ־ +* @param[in] : +* @return : +* @retval : +**************************************************************************/ + +void ap_tp_st_touch_get_calibration_success_mark(void) +{ + uint8_t cali_send_buff[6] = {0xFA,0x20,0x01,0x00,0x00,0x00}; + uint8_t cali_send_buff1[3] = {0xA4,0x06,0x01}; + uint8_t cali_read_buff[40] = {0}; + uint8_t i = 0; + + app_tp_m_read(cali_send_buff, 5, cali_read_buff, 4); + while(!hal_i2c_m_transfer_complate()); + delayMs(1); + + app_tp_m_write(cali_send_buff1, 3); + while(!hal_i2c_m_transfer_complate()); + delayMs(1); + + app_tp_m_read(cali_send_buff, 5, cali_read_buff, 4); + while(!hal_i2c_m_transfer_complate()); + delayMs(1); + + app_tp_m_read(cali_send_buff, 5, cali_read_buff, 32); + while(!hal_i2c_m_transfer_complate()); + + if((cali_read_buff[20] == 0xFF) && (cali_read_buff[21] == 0xFF)) + { + s_calibration_correct_flag = ST_TP_CALIBRATION_SUCCESS; // У׼ɹ + } + else + { + s_calibration_correct_flag = 0x00; // У׼ʧ + } +/* + for(i=0;i<32;i++) + { + printf("%02x ",cali_read_buff[i]); + } +*/ +} + +/************************************************************************** +* @name : ap_tp_st_touch_calibration +* @brief : st touch У׼ָ +* @param[in] : +* @return : +* @retval : +**************************************************************************/ + +void ap_tp_st_touch_calibration(void) +{ + // app_tp_m_write(st_touch_tp_tuning_reset, sizeof(st_touch_tp_tuning_reset)); // System Reset + // while(!hal_i2c_m_transfer_complate()); + // delayMs(10); + app_tp_m_write(st_touch_tp_tuning_FpnlInit, sizeof(st_touch_tp_tuning_FpnlInit)); // FPnl Init + while(!hal_i2c_m_transfer_complate()); + delayMs(1); + app_tp_m_write(st_touch_tp_tuning_PnlInit, sizeof(st_touch_tp_tuning_PnlInit)); // Pnl Init + while(!hal_i2c_m_transfer_complate()); + delayMs(1); + app_tp_m_write(st_touch_tp_tuning_TuneM, sizeof(st_touch_tp_tuning_TuneM)); // TuneM + while(!hal_i2c_m_transfer_complate()); + delayMs(1); + app_tp_m_write(st_touch_tp_tuning_TuneS, sizeof(st_touch_tp_tuning_TuneS)); // TuneS + while(!hal_i2c_m_transfer_complate()); + delayMs(1); + app_tp_m_write(st_touch_tp_tuning_SvCfg, sizeof(st_touch_tp_tuning_SvCfg)); // SvCfg + while(!hal_i2c_m_transfer_complate()); + delayMs(1); + app_tp_m_write(st_touch_tp_tuning_SvCx, sizeof(st_touch_tp_tuning_SvCx)); // SvCx + while(!hal_i2c_m_transfer_complate()); + delayMs(1); + app_tp_m_write(st_touch_tp_tuning_SvPnl, sizeof(st_touch_tp_tuning_SvPnl)); // SvPnl + while(!hal_i2c_m_transfer_complate()); + delayMs(1); +} + +const unsigned short wCRCTalbeAbs[] = +{ + 0x0000, 0xCC01, 0xD801, 0x1400, 0xF001, 0x3C00, 0x2800, 0xE401, + 0xA001, 0x6C00, 0x7800, 0xB401, 0x5000, 0x9C01, 0x8801, 0x4400, +}; + +/************************************************************************** +* @name : CRC16_2 +* @brief : CRC ֵ +* @param[in] :pchMsg ַָ; wDataLen CRC 鳤 +* @return : 16λCRCֵ +* @retval : +**************************************************************************/ + +unsigned short CRC16_2(unsigned char *pchMsg, unsigned short wDataLen) +{ + unsigned short wCRC = 0xFFFF; + unsigned short i; + unsigned char chChar; + + for (i = 0; i < wDataLen; i++) + { + chChar = *pchMsg++; + wCRC = wCRCTalbeAbs[(chChar ^ wCRC) & 15] ^ (wCRC >> 4); + wCRC = wCRCTalbeAbs[((chChar >> 4) ^ wCRC) & 15] ^ (wCRC >> 4); + } + + return wCRC; +} + +/************************************************************************** +* @name : ap_set_tp_calibration_04 +* @brief : ȡ04 02ִУ׼gammaУ׼ȹ +* @param[in] :handler rx handler; dcs_packet ָͳȵϢṹ +* @return : true +* @retval : +**************************************************************************/ + +bool ap_set_tp_calibration_04(hal_dsi_rx_ctrl_handle_t *handler, hal_dcs_packet_t *dcs_packet) +{ + uint8_t i,crch,crcl,command,param[30] = {0}; + unsigned short crc; + + // CRCֵ + for(i=0;iparam_length;i++) + { + param[i+1] = dcs_packet->packet_param[i]; + printf("%02x ",dcs_packet->packet_param[i]); + } + + param[0] = 0x04; + crc = CRC16_2(param,dcs_packet->param_length-1); + crch = (crc>>8); + crcl = crc; + + // CRCУж +// if(crch == dcs_packet->packet_param[dcs_packet->param_length-2] && crcl == dcs_packet->packet_param[dcs_packet->param_length-1]) + { + command = param[3]; + switch(command) + { + case CMD_TP_CABLIBRATION: // TouchУ׼ + if( (param[4] == 0x01) && (param[5] == 0x01) && (param[6] == 0x01) ) + { + s_calibration_flag = true; + s_calibration_correct_flag = false; + + } + /* if( (param[4] == 0xA5) && (param[5] == 0x5A) && (param[6] == 0xA5) ) + { + if(s_calibration_correct_flag) // У׼ɹ + { + hal_dsi_rx_ctrl_send_ack_cmd(handler, + DSI_ACK_DT_GEN_LONG_RESPONSE, //xxx + DSI_VC_0, + 0x7, 0x04,0x02,0x07,0x2A,ST_TP_CALIBRATION_SUCCESS,0x00,0x00); + printf("cali. send ok "); + } + else // У׼ʧ + { + hal_dsi_rx_ctrl_send_ack_cmd(handler, + DSI_ACK_DT_GEN_LONG_RESPONSE, //xxx + DSI_VC_0, + 0x7, 0x04,0x02,0x07,0x2A,0x00,0x00,0x00); + } + printf("%02x ",s_calibration_correct_flag); + } + */ + break; + case CMD_SET_IMAGE_RGB: // Image RGB + break; + case CMD_SEND_COMMAND: // Command Send + break; + case CMD_WRITE_GAMMA: // GammaУд + break; + case CMD_START_GAMMA: + break; + default: + break; + } + } + + // ݾɰ汾tp calibration + if( (dcs_packet->packet_param[0] == 0x01) && (dcs_packet->packet_param[1] == 0x01) && (dcs_packet->packet_param[2] == 0x01) ) + { + s_calibration_flag = true; + s_calibration_correct_flag = false; + } +/* + if( (dcs_packet->packet_param[0] == 0xA5) && (dcs_packet->packet_param[1] == 0x5A) && (dcs_packet->packet_param[2] == 0xA5) ) + { + if(s_calibration_correct_flag) // У׼ɹ + { + hal_dsi_rx_ctrl_send_ack_cmd(handler, + DSI_ACK_DT_GEN_LONG_RESPONSE, //xxx + DSI_VC_0, + 0x7, 0x04,0x02,0x07,0x2A,ST_TP_CALIBRATION_SUCCESS,0x00,0x00); + } + else // У׼ʧ + { + hal_dsi_rx_ctrl_send_ack_cmd(handler, + DSI_ACK_DT_GEN_LONG_RESPONSE, //xxx + DSI_VC_0, + 0x7, 0x04,0x02,0x07,0x2A,0x00,0x00,0x00); + } + } +*/ + return true; +} + + +/************************************************************************** +* @name : ap_get_tp_calibration_status_01 +* @brief : ȡУ׼״̬ +* @param[in] :param 01 +* @return : true +* @retval : +**************************************************************************/ + +bool ap_get_tp_calibration_status_01(hal_dsi_rx_ctrl_handle_t *handler, uint8_t param) +{ +// if( param == 0x5A ) + { + if(s_calibration_correct_flag) // У׼ɹ + { + hal_dsi_rx_ctrl_send_ack_cmd(handler, + DSI_ACK_DT_DSC_SHORT_RESPONSE_1B, //xxx + DSI_VC_0, + 1,ST_TP_CALIBRATION_SUCCESS); + } + else // У׼ʧ + { + hal_dsi_rx_ctrl_send_ack_cmd(handler, + DSI_ACK_DT_DSC_SHORT_RESPONSE_1B, //xxx + DSI_VC_0, + 1,0x00); + } + } + + return true; +} + +/************************************************************************** +* @name : app_tp_calibration_exec +* @brief : st touch У׼ִк +* @param[in] : +* @return : +* @retval : +**************************************************************************/ + +void app_tp_calibration_exec(void) +{ + uint8_t i = 0; + + if(s_calibration_flag) + { + s_calibration_flag = false; + for(i=0;i<3;i++) + { + ap_tp_st_touch_calibration(); + delayMs(4000); + ap_tp_st_touch_get_calibration_success_mark(); + if(s_calibration_correct_flag == ST_TP_CALIBRATION_SUCCESS) + { + TAU_LOGD("calibration successful \n"); + break; + } + else + { + TAU_LOGD("calibration failure \n"); + } + } + + } +} + + +/************************************************************************** +* @name : ap_tp_st_touch_scan_point_init +* @brief : st touch tp_scan_dataṹʼ +* @param[in] : +* @return : +* @retval : +**************************************************************************/ + +void ap_tp_st_touch_scan_point_init(void) +{ + uint8_t i=0; + + for(i=0;i>4)+1; + i+=7; + + if(eventdata == 0x13) // ¼ + { + for(j=0;j0)) // ͷ¼ + { + for(j=0;j0) // в + { + printf("release finger %2d\n",tp_scan_data.tp_read_point_counter); + tp_scan_data.tp_read_point_counter = 0; + ap_tp_st_touch_simulate_finger_release_event(); + } + ap_tp_st_touch_scan_point_init(); + } + } +} + +/************************************************************************** +* @name : ap_tp_st_touch_error_handler_F3 +* @brief : st touch 쳣 F3 02 +* @param[in] : screendata +* @return : +* @retval : +**************************************************************************/ + +void ap_tp_st_touch_error_handler_F3(uint8_t* screendata) +{ + // յ TP 쳣ظ 0xF3 0x02 0x00 0x00 0x00 0x00 0x00 0x00 + if(screendata[0] == 0xF3 && screendata[1] == 0x02 && screendata[2] == 0x00) + { + ap_tp_st_touch_software_reset(); + } + +// if(screendata[0] == 0xF3 && screendata[1] == 0x91 && screendata[2] == 0x00) +// { +// ap_tp_st_touch_software_reset(); +// } +} + +/************************************************************************** +* @name : ap_tp_st_touch_error_handler_F3 +* @brief : st touch 쳣 FF FF +* @param[in] : screendata +* @return : +* @retval : +**************************************************************************/ + +void ap_tp_st_touch_error_handler_FF(uint8_t* screendata) +{ + // յ TP 쳣ظ 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF + if(screendata[1] == 0xFF && screendata[2] == 0xFF&& screendata[3] == 0xFF&&screendata[4] == 0xFF) + { + ap_tp_st_touch_software_reset(); + } +} + + + + diff --git a/src/app/touch/app_tp_st_touch.h b/src/app/touch/app_tp_st_touch.h new file mode 100644 index 0000000..e7ad4ef --- /dev/null +++ b/src/app/touch/app_tp_st_touch.h @@ -0,0 +1,170 @@ +/******************************************************************************* +* +* +* File: app_tp_st_touch.h +* Description ST touch оƬغ +* Version V0.1 +* Date 2023-03-13 +* Author sfy +*******************************************************************************/ + +#ifndef __APP_TP_ST_TOUCH_H__ +#define __APP_TP_ST_TOUCH_H__ + +#include "string.h" +#include "tau_device_datatype.h" +#include "tau_common.h" +#include "hal_dsi_rx_ctrl.h" + +typedef enum +{ + CMD_TP_CABLIBRATION = 0x2A, + CMD_SET_IMAGE_RGB = 0x2B, + CMD_SEND_COMMAND = 0x2C, + CMD_WRITE_GAMMA = 0x2D, + CMD_START_GAMMA = 0x2E +} st_tp_calibration_command; + + +#define ST_TP_SCAN_POINT_NUMBER_MAX 6 // TP + +typedef struct +{ + uint8_t tp_point_buffer[ST_TP_SCAN_POINT_NUMBER_MAX]; // ¼TPID + uint8_t tp_read_point_counter; // IDͳ + uint8_t tp_point_up_error_flag; // ¼ҪִUP¼ + uint32_t tp_point_error_time_counter; // ûյmove¼release¼ʱ +} st_tp_scan_data; + +/************************************************************************** +* @name : ap_tp_st_touch_calibration +* @brief : st touch У׼ָ +* @param[in] : +* @return : +* @retval : +**************************************************************************/ + +void ap_tp_st_touch_calibration(void); + +/************************************************************************** +* @name : app_tp_calibration_exec +* @brief : st touch У׼ִк +* @param[in] : +* @return : +* @retval : +**************************************************************************/ + +void app_tp_calibration_exec(void); + +/************************************************************************** +* @name : ap_tp_st_touch_get_calibration_success_mark +* @brief : st touch ȡУ׼ɹ־ +* @param[in] : +* @return : +* @retval : +**************************************************************************/ + +void ap_tp_st_touch_get_calibration_success_mark(void); + +/************************************************************************** +* @name : ap_set_tp_calibration_04 +* @brief : ȡ04 02ִУ׼gammaУ׼ȹ +* @param[in] :handler rx handler; dcs_packet ָͳȵϢṹ +* @return : true +* @retval : +**************************************************************************/ + +bool ap_set_tp_calibration_04(hal_dsi_rx_ctrl_handle_t *handler, hal_dcs_packet_t *dcs_packet); + +/************************************************************************** +* @name : ap_get_tp_calibration_status_01 +* @brief : ȡУ׼״̬ +* @param[in] :param 01 +* @return : true +* @retval : +**************************************************************************/ + +bool ap_get_tp_calibration_status_01(hal_dsi_rx_ctrl_handle_t *handler, uint8_t param); + +/************************************************************************** +* @name : ap_tp_st_touch_scan_point_init +* @brief : st touch tp_scan_dataṹʼ +* @param[in] : +* @return : +* @retval : +**************************************************************************/ + +void ap_tp_st_touch_scan_point_init(void); + +/************************************************************************** +* @name : ap_tp_st_touch_simulate_finger_release_event +* @brief : st touch ģST ָͷ¼ +* @param[in] : +* @return : +* @retval : +**************************************************************************/ + +void ap_tp_st_touch_simulate_finger_release_event(void); + +/************************************************************************** +* @name : ap_tp_st_touch_software_reset +* @brief : st touch оƬλָ +* @param[in] : +* @return : +* @retval : +**************************************************************************/ + +void ap_tp_st_touch_software_reset(void); + +/************************************************************************** +* @name : app_tp_st_touch_hardware_reset +* @brief : st touch оƬӲλָ +* @param[in] : +* @return : +* @retval : +**************************************************************************/ +void ap_tp_st_touch_hardware_reset(void); + +/************************************************************************** +* @name : ap_tp_st_touch_scan_point_record_event +* @brief : st touch ¼¼ +* @param[in] : screendata buflen ݳ +* @return : +* @retval : +**************************************************************************/ + +void ap_tp_st_touch_scan_point_record_event(uint8_t* screendata,uint8_t len); + +/************************************************************************** +* @name : ap_tp_st_touch_scan_point_record_event_exec +* @brief : st touch в㣬ʱִкҪwhile(1)ִ +* @param[in] : +* @return : +* @retval : +**************************************************************************/ + +void ap_tp_st_touch_scan_point_record_event_exec(void); + +/************************************************************************** +* @name : ap_tp_st_touch_error_handler_F3 +* @brief : st touch 쳣 F3 02 +* @param[in] : screendata +* @return : +* @retval : +**************************************************************************/ + +void ap_tp_st_touch_error_handler_F3(uint8_t* screendata); + +/************************************************************************** +* @name : ap_tp_st_touch_error_handler_F3 +* @brief : st touch 쳣 FF FF +* @param[in] : screendata +* @return : +* @retval : +**************************************************************************/ + +void ap_tp_st_touch_error_handler_FF(uint8_t* screendata); + + +#endif + diff --git a/src/app/touch/app_tp_transfer.c b/src/app/touch/app_tp_transfer.c new file mode 100644 index 0000000..7eb04a2 --- /dev/null +++ b/src/app/touch/app_tp_transfer.c @@ -0,0 +1,644 @@ +/******************************************************************************* +* +* +* 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" +#include "stdio.h" +#include "app_tp_st_touch.h" + +#ifdef BUFFER_SIZE_MAX + +static uint8_t s_screen_read_buffer[BUFFER_SIZE_MAX]; +static uint8_t s_phone_read_buffer[BUFFER_SIZE_MAX]; + +static 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 = true; //屏幕TP开机初始化完成标志,初始值为true,确保app_tp_transfer_screen_start之后才配置开机初始化 +static uint8_t s_screen_const_transfer_count = 0xff; //记录当前通信到哪一步,初始值必须大于 screen_reg_start_data_size + +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 + +uint32_t s_tp_restart_count = 0; + +/************************************************************************** +* @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 : true:IO 为低电平 +* @retval : +**************************************************************************/ +static bool app_tp_screen_int_lvl_low(void) +{ +#if SCREEN_INT_LOW_DEFAULT + return hal_gpio_get_input_data(g_screen_input_int_pad); //INT 为高电平时,说明还有报点数据没读出 +#else + return !hal_gpio_get_input_data(g_screen_input_int_pad); //INT 为低电平时,说明还有报点数据没读出 +#endif +} + +/************************************************************************** +* @name : app_tp_screen_int_init +* @brief : screen 报点中断 IO 初始化 +* @param[in] : +* @return : +* @retval : +**************************************************************************/ +static void app_tp_screen_int_init(void) +{ + hal_gpio_ctrl_eint(g_screen_input_int_pad, DISABLE); // 1.关闭中断 +#if SCREEN_INT_LOW_DEFAULT + hal_gpio_set_pull_state(g_screen_input_int_pad, DISABLE, ENABLE); // 2.配置下拉 + hal_gpio_init_eint(g_screen_input_int_pad, DETECT_RISING_EDGE); // 3.中断初始化,INT 上升沿触发中断 +#else + hal_gpio_set_pull_state(g_screen_input_int_pad, ENABLE, DISABLE); // 2.配置上拉 + hal_gpio_init_eint(g_screen_input_int_pad, DETECT_FALLING_EDGE); // 3.中断初始化,INT 下降沿触发中断 +#endif + 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.使能中断 +} + +/************************************************************************** +* @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); +} + +/************************************************************************** +* @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); + delayUs(400); +} + +/************************************************************************** +* @name : app_tp_init +* @brief : 初始化通信相关 +* @param[in] : +* @return : +* @retval : +**************************************************************************/ +void app_tp_init(void) +{ +// app_tp_phone_reset_init(); //初始化手机复位的IO口 + app_tp_screen_int_init(); //配置screen中断输入引脚 + hal_gpio_init_output(g_phone_output_int_pad, IO_LVL_HIGH); //配置phone报点输出中断IO口 + +#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(); // 启动tx自动发送 +#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 PHONE_SLAVE_TRANSFER_I2C + return hal_i2c_s_write_complate() && hal_i2c_s_read_complate(); +#elif PHONE_SLAVE_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 : +**************************************************************************/ +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 : +**************************************************************************/ +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()); +#if 1 + hal_spi_slave_reset_tx(txbuffer, buffer_size, true); +#else + 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 +#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 +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) +{ + static bool spis_transfer = true; //确保一次通信只解析一次 + + // 1. 接收完数据, 完成一次解析?? + if (spis_transfer) + { + app_tp_transfer_phone(packet_info->packet_size); + spis_transfer = false; + } + + // 2.一帧通信结束, 需要重新设置 txbuffer + if (event == SPI_EVENT_RCV_CS_HIGH) + { + spis_transfer = true; + if (s_slave_txbuffer_size) + { + app_tp_s_write(s_slave_txbuffer, s_slave_txbuffer_size); + } + } +} +#endif + +/************************************************************************** +* @name : app_tp_reset_callback +* @brief : 手机 IO跳变复位的中断处理函数 +* @param[in] : +* @return : +* @retval : +**************************************************************************/ +static void app_tp_reset_callback(void *data) +{ + s_phone_reset_flag = true; + //app_tp_s_write(phone_reg_const_data[0].write_back, phone_reg_const_data[0].write_back_size); ///////S8 s8p + +#if PHONE_SLAVE_TRANSFER_SPI + hal_gpio_set_output_data(IO_PAD_AP_INT, IO_LVL_LOW); +#endif + //TAU_LOGD("app_tp_reset_callback\n"); +} + +/************************************************************************** +* @name : app_tp_transfer_screen_const +* @brief : 按照flow读写screen,完成 开机 screen 初始化 +* @param[in] : +* @return : +* @retval : +**************************************************************************/ +static void app_tp_transfer_screen_const(void) +{ + static bool screen_const_transfer_buffer_ready = true; //发送 buffer 是否已准备好 + + /**** 1. 判断当前状态通信已结束, 并且开机初始化流程还未走完****/ + 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; + } + + /**** 2. 发送或读取从机数据 ****/ + if (screen_const_transfer_buffer_ready) + { + screen_const_transfer_buffer_ready = false; + g_screen_tp_init_start = true; + + if (!screen_reg_start_data[s_screen_const_transfer_count].read_flag) //当前通信不需要读回,直接写 + { + app_tp_m_write(screen_reg_start_data[s_screen_const_transfer_count].buffer, screen_reg_start_data[s_screen_const_transfer_count].txbuffer_size); + } + else //当前通信需要读回,先写再读 + { + app_tp_m_read(screen_reg_start_data[s_screen_const_transfer_count].buffer, screen_reg_start_data[s_screen_const_transfer_count].txbuffer_size, \ + s_screen_read_buffer, screen_reg_start_data[s_screen_const_transfer_count].rxbuffer_size); + } + + } + /**** 3. 解析本次通信数据,并准备下一次通信的buffer ****/ + else + { + screen_const_transfer_buffer_ready = true; + s_screen_const_transfer_count = app_tp_screen_analysis_const(s_screen_const_transfer_count, s_screen_read_buffer, \ + screen_reg_start_data[s_screen_const_transfer_count].rxbuffer_size); + + if (s_screen_const_transfer_count >= screen_reg_start_data_size) + { + s_screen_init_complate = true; + TAU_LOGD("tp init done\n"); + } + } + } +} + +/************************************************************************** +* @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(); + app_tp_transfer_screen_const(); +} + +void app_tp_transfer_screen_restart(void) +{ + if(g_screen_tp_init_restart == true) + { + if(s_tp_restart_count < (65536/5)) // 65536*3 = 900ms 65536/5 = 60ms + { + s_tp_restart_count ++; + }else + { + s_tp_restart_count = 0; + g_screen_tp_init_restart = false; + // app_tp_transfer_screen_start(); + ap_tp_st_touch_hardware_reset(); + } + } + +} + +/************************************************************************** +* @name : app_tp_transfer_screen_int +* @brief : 接收screen中断后,按照flow读写screen,即报点协议转换 +* @param[in] : +* @return : +* @retval : +**************************************************************************/ +void app_tp_transfer_screen_int(void) +{ + static uint8_t len = 0; + bool screen_gpio_int = false; + static uint8_t screen_int_transfer_count = 0; //记录当前通信到哪一步 + static bool screen_int_transfer_buffer_ready = true; //发送 buffer 是否已准备好 + volatile bool init_gpio = false; + if (!s_screen_init_complate) //TP 初始化还未完成,则先进行初始化操作 + { + app_tp_transfer_screen_const(); + return; + } + + app_tp_transfer_screen_restart(); + app_tp_screen_analysis_wake_up_exec(); + + /**** 1. 判断 screen 是否发出中断信号 ****/ + // s_screen_int_flag: 中断信号标志位 + // app_tp_screen_int_lvl_low : SPI 长时间通信时,偶尔会出现cs拉高导致通信异常卡死,该标志位用于解决卡死的问题 + init_gpio = app_tp_screen_int_lvl_low(); + screen_gpio_int = (s_screen_int_flag || init_gpio); + if (((screen_gpio_int) || (s_screen_int_transfer_status)) && app_tp_m_transfer_complate()) //判断当前不处于通信状态,并且准备通信 + { + 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) + { + screen_int_transfer_buffer_ready = false; + s_screen_int_transfer_status = true; + len = 0; + #if 1 + app_tp_m_read(screen_reg_int_data[0].buffer, 1, s_screen_read_buffer, 8); + while(!hal_i2c_m_transfer_complate()); + if(s_screen_read_buffer[7]>0) + { + len = s_screen_read_buffer[7]*8; + app_tp_m_read(screen_reg_int_data[0].buffer, 1, &s_screen_read_buffer[8], len); + while(!hal_i2c_m_transfer_complate()); + } +/* delayUs(100); + while(!hal_gpio_get_input_data(g_screen_input_int_pad)) + { + app_tp_m_read(screen_reg_int_data[0].buffer, 1, s_screen_read_buffer, 8); + while(!hal_i2c_m_transfer_complate()); + delayUs(100); + if(s_screen_read_buffer[7]>0) + { + len = s_screen_read_buffer[7]*8; + app_tp_m_read(screen_reg_int_data[0].buffer, 1, &s_screen_read_buffer[8], len); + while(!hal_i2c_m_transfer_complate()); + delayUs(100); + } + } +*/ + // ap_tp_st_touch_error_handler_F3(s_screen_read_buffer); + // ap_tp_st_touch_error_handler_FF(s_screen_read_buffer); + // ap_tp_st_touch_scan_point_record_event(s_screen_read_buffer, len + 8); + + + #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 //当前通信需要读回,先写再读 + { + 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, screen_reg_int_data[screen_int_transfer_count].rxbuffer_size); + } + + // ap_tp_st_touch_error_handler_F3(s_screen_read_buffer); + // ap_tp_st_touch_error_handler_FF(s_screen_read_buffer); + // ap_tp_st_touch_scan_point_record_event(s_screen_read_buffer, 8); + + #endif + } + /**** 3. 解析本次通信数据,并准备下一次通信的buffer ****/ + else + { + screen_int_transfer_buffer_ready = true; + + screen_int_transfer_count = app_tp_screen_analysis_int(screen_int_transfer_count, s_screen_read_buffer, \ + (len + 8)); + + // 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; + } + } + } +} + +/************************************************************************** +* @name : app_tp_transfer_phone +* @brief : 根据数据解析进行相应的答复 +* @param[in] : recieve_num:接收数据长度 +* @return : +* @retval : +**************************************************************************/ +static void app_tp_transfer_phone(size_t recieve_num) +{ + /* 数据解析,判断是否需要答复以及答复的buffer指针 */ + if (recieve_num > 0) + { + app_tp_phone_analysis_data(s_phone_read_buffer, recieve_num, &s_slave_txbuffer, &s_slave_txbuffer_size); + } + + app_tp_s_read(s_phone_read_buffer, BUFFER_SIZE_MAX); +} + +/************************************************************************** +* @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) +{ + +} + +#endif + diff --git a/src/app/touch/app_tp_transfer.h b/src/app/touch/app_tp_transfer.h new file mode 100644 index 0000000..b5db194 --- /dev/null +++ b/src/app/touch/app_tp_transfer.h @@ -0,0 +1,193 @@ +/******************************************************************************* +* +* +* 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中断,发送数据之后要读回数据 + +typedef enum +{ + I2C_ADDR_BITS_7 = 7, + I2C_ADDR_BITS_10 = 10 +} en_I2C_ADDR_BITS_mdoe; + +typedef enum +{ + data_num_00 = 0, + data_num_01, + data_num_02, + data_num_03, + data_num_04, + data_num_05, + data_num_06, + data_num_07, + data_num_08, + data_num_09, + data_num_10, + data_num_11, + data_num_12, + data_num_13, + data_num_14, + data_num_15, + data_num_16, + data_num_17, + data_num_18, + data_num_19, + data_num_20, + data_num_21, + data_num_22, + data_num_23, + data_num_24, + data_num_25, + data_num_26, + data_num_27, + data_num_28, + data_num_29, + data_num_30, + data_num_31, + data_num_32, + data_num_33, + data_num_34, + data_num_35, + data_num_36, + data_num_37, + data_num_38, + data_num_39, + data_num_40, + data_num_41, + data_num_42, + data_num_43, + data_num_44, + data_num_45, + data_num_46, + data_num_47, + data_num_48, + data_num_49 +} en_data_num; + + +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 +{ + en_data_num data_num; //记录当前为第几个结构体数组元素 + 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; //要发送的数据长度 + const uint8_t *reg_data; //接收buffer + const uint8_t *write_back; //发送bufer +} st_reg_data; + +extern bool s_screen_init_complate; //屏幕TP开机初始化完成标志 + +/************************************************************************** +* @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 app_tp_m_write(const uint8_t *txbuffer, size_t buffer_size); +void app_tp_m_read(const uint8_t *cmd, size_t cmd_size, uint8_t *data_buffer, size_t data_size); + +#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..b450fd3 --- /dev/null +++ b/src/board/board.h @@ -0,0 +1,16 @@ +/******************************************************************************* +* Copyright (C) 2019-2022, CVA 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..88f0192 --- /dev/null +++ b/src/common/tau_log.h @@ -0,0 +1,108 @@ +/******************************************************************************* +* +* +* 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" +#if LOG_MODE_RTT + #include "SEGGER_RTT.h" +#endif +/******************************************************************************* +* 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 +#if LOG_MODE_RTT +#define TAU_LOGD(format,...) \ + do { \ + if (LOG_CURREN_LEVEL <= kLOG_LEVEL_DBG) { \ + SEGGER_RTT_printf(0,"[%s] (%04d) " format, LOG_TAG, __LINE__, ##__VA_ARGS__); \ + }; \ + } while (0) + + +#define TAU_LOGI(format,...) \ + do { \ + if (LOG_CURREN_LEVEL <= kLOG_LEVEL_INF) { \ + SEGGER_RTT_printf(0,"[%s] (%04d) " format, LOG_TAG, __LINE__, ##__VA_ARGS__); \ + }; \ + } while (0) + +#define TAU_LOGE(format,...) \ + do { \ + if (LOG_CURREN_LEVEL <= kLOG_LEVEL_ERR) { \ + SEGGER_RTT_printf(0,"error [%s] (%04d) " format, LOG_TAG, __LINE__, ##__VA_ARGS__); \ + }; \ + } while (0) +#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 +#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..722ab020b9eef3b2588acc72063ed1e47494b229 GIT binary patch literal 657712 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 !p1EiWelyR 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

Orf}}$Z(yYD67iz4 zo%l*62C8(NJLx*!xSpBs$VxT#xJZqO!e)AY*bC`bt1-`*vZpJ%N`*sX!FP3jjBVD@ zKS$Y^BPs1>WzSSL-VaFrsmg9qHpXZrzg5{7la=;TW$QJl&sFwm3SXw|`N}>|*?KPL z`;?8bRT=$_TaXsfZey}N65Hzq_4 zK~gvN2eVy6Z>eO4%;{goUVa={edSt>m06(r&h?=nGuVxZZF*=f6|R>_ImNL<^*R$W zR}b{9@6QlUmAQ9AZ>HdKf!+<>1A{$%>+0Hjx~vFT5`3(iOL1RjL7n_CcsoUK&^l(s z61_6lhxy6y)S}VqQ`)KuF!0;8YC+wq?gbeJe#fAC5B<)o_gdij_(Ia%HJ)o}&liKM z)g`u0o>i+M9vHf^zuP@VojQB}k}ee4WE^^p{oh|k$9!Bn(-=G7{(H5W$2>!aJJ9Z& zZ*R>|dn&FBgY7GDr^;!tJqDs4Y%eUr64lXTH{|}Z>U-$tHQwWm$A{GR4=f)07@2q% zVLzy;=Rb~}lB=B#!}UB&-Vg}p>sHPCjKv!UkFP8SCSsuJ!AuOO&Ioe=kO7|Iy z$GNM~4C(H)c$++UpS5_L`)cPO5I6nX$W{7*T(&F-7tCirC-O(|9yvw6SEk#{Eg z&pZdU(`ni9tFr_c(P0QC!OQf`^o_u9NYf4?g%}!5JidtY z@nd|vt}evS)HUcikk#0aDwn)4e73VDPtSoQkNX)PdDE2*PdYsZl03fo@#5(@kmT_> z){DnEkjyuErf$Gax8LBEXNhmv;7!QF+ivjqTW z|DdRTJRX)7R3AGda!Z^N99e|#h?g}kii<}V$?u?ZONjESmPV}Iyi#f@kP*jjsA#xS z?b%5U3TNTwkNA?q$<2%No_RBNOPzT1&DhQI@2&WYO5B;(Tr1P6ZDt&WtxXlNP0*z5 z5mnB9+rL}R>>b6--hPCqE1$ly(SPo)ip}xIojJ4IsY-Ay=HmL0q4~FY@ zLEYk;aXqvwg(ESil(T#<6t?8WeN~Q)c-5AemH$E>=J4jF=J2K%n7>74BjQbml8k^$fu|~`tuBcdid7aE*d39T(Z|QJ_Z%Eb6O3}df&gCu<4Q3lDu{ge4 z?;^qI5)IUhnXV3oDam;I%?r*hNnsgltumx#B_Y2p>tLI#9ovtwB?E`1Z^m&_PH`M6 zdtlqET@5xCjZe!CyvuWFUd%o@x4pw=uZx(>!_mnn+GHG?wgj&ad@TES!Vk^M;glnr zbfsjBI}^6?_2{<_Z=b@UTE1EV+No1XvY;IoP7w#66;IrT3xKay`N}T;W$3-o?OycSMmx%!4OS^HFT_g4w&y>`xd`sE%sDb&K%l4Eah#{9-Za!b>c?M6|o`QVTD&G(1rY zkBZr@@MRWWCTbPVa~@Z}g^v?c3>>Y8TrV3`>G)mt{pr^dDECD1J(oR6Jmj(~#GNjC zvKV&RQv}!S)Q;a}U*@ta#T=JC&01&R1Z$mv6RmXyV%9nXRn|HK)z&%#)5lzApa9no zv&1%y8k|k)e0A)g=y2J2qQzzBi;2pP$?#$EC)9U3z5?+RWwTA8=H_W-^Es94mEWvv zwsF+h@O?hR^I4eRbx$ap$9J5+G^N?8k##sK}4NjfXh7WT!J)*^`oTkDC*+-HqCM*nbX_O(9a#R% zEN*%o2-ogTDGqXyYhTrySgjM~oc$H8=bf{BuC=6vj5meO$%@uzMe8gyw%(_J9oOxaIGYFcTl`K4nS>#M-c*&XO&GST#OQ34%J?kL51j;!;J?mEWxr9&Y zYg#oD<`u(b>(dvTjii_5NJnBe3?~23M!`f6X%I}%XbkM#ne*mq1k50+0Wf!ExcGZ! zr!H;l!Z#4>qBjuhfx`)w0Wgk_ii|$lL z9-kFV9=bIddDQHfJZiBrrTZa^*99J*E49=4vo%mxgAmgs_?l;Hn|1(;8a!PuAuHVn zJb15Szgdo5uusBIJDu)#vBTu;hux$}@O8RhvUt=~m1p2>vv>{QndQ*wUT*QIy+T(p z<#f8}PP+1U4|wc{Yo~cUj{v34gQu-@HLnaAATOXI;Jg8z3)*R(t!?6bgeFab&p7C8 zUVo0fhrr`Gt({kV2Xc&W9txC8{x*V#M~am5N_Q7{x#aKl9Mf$;#paUkR`7C3_lX>N zc#V`(y)=QBOa8b{OfL02k|VDi4OcGlt@PmeaDM1x$b)(pc&M6`)7u9@GI=||%e3ar z0gw=7%FV*V^f0)rn-Ac}_;@`(16~1q?e2&6B@E*v{BTN09&Ns}F?kOeJjTTzd7rX) zj~F~uWs0}a;yq#Tkj)g2YfhT!J`Eo8&HRN7-g_+Gi$;9Rm(E|6#oK4_n2zQJEZ(aI zkM|MH+mCHCf3F!l>M%6#I~MPC@M^J-<=}e`&HIAItHJAB=AXP`gLl2fn`Q9$-bcr` z*5b_rFNS@LuM|Jc!|MW9IaYwD>zTghu|Hszx64SE`Y6qtZt;4J_^|28+hp)~U-F9Y zCWDtvTX&bi%ciZn-{57_);(hI_&&)ie@`2{Y}&dP4IcX)Uh%zZ@Um&^UN?A^S>h`~ z)hJX2d|p9g0dyjYg_mKnUNEWAq$UUe2;ufb!UbUAG8-zM-* zHyTbf1Jc>rzkk5VG=UA8a+*gU?PkB;zY7N|Wnib~QTw+Z3*#&4-XPT(GL|I(OYbE_^H?qpwXR= zB?}4)e2>K+OAbTx_ZYNukHx9ui#|%_T6E{*$>HgDHa;F-oV=lNu|#$~SkPK@p{OdB znnE$F;Dwj+pDgjkwl)M?!ztAq6oqiZ(9A`5<}cm8IJk!^NyU^7QTte23+qv((}<`v zd@6Qd%-`A&2y;~`!S828cLtj)l~S*`MI>YKmtqb6csvjrjf+@pC^nGjp?1-aUl6~# z>YE#P;g?9nH|*FD+u-C1aY?P>t_OXs!y>#=twR6sKV%ciMg7UQZlED_%xKp3eM|mEzULvF4?3)^T{rinQ{1-?T_P16pKjD@K z#VNnp!(7$vZ0dP>&6BgrMnuhopENR>9IgsCj>hYK3#E!OuerY2 z+46-7O7}k)i`NE4NjyG0uc}ML4nFF`4=a|<437A!^3~ZRQd!mEJi`p*(4cifj0`I}2)&9OS)_p~ z+LJeA{5!Vo*m_@b*Mpl2w)uQF_w+pZptw0dw4gNEGaQP1-%0V69(>e!WKVS!w5`+E zJiNp|+c#1)yKax~c6>c%PwD9XzTr^C_hU)1u{It{HdMyqJGM5Quw!_~R#AIkPvI#2 z@JMF7cuz9vuiDy}jI$(8N>8Oy3L2^G*d}T#MrxCHC&T?akjjquj%`R~^Zq^&I(0;*`9RrxTIHxd{;qU)OS7^wAK`>QCdWF5K8!8HhXQ^Y8ZXN^_2-Q=2|l zd-a_M_b1Us@$HWfpA@^QYSXZIQiK~{O4c`q8~4X+o2!$FB(I?SSmJ6i)4!+cqfds! zNGMi^oK}7GhWuMf$NBt?yJFWihVzF@hken;`{LtTzb>}6)%J8;9jg+j1V+M*4PcAW zt&N|%+K)Xx?4ebCb=0tG6S`&EpL_sm^E{!8%JwAsXt86;zjgTg_SWbgs&B=uGUXOy z>qxYW?4xMcf{jJvuiBD#eeh#}k2}kAv5#!li`M;)wTvCxMX#_SU-q)FA2wE5#!8=E zh{H+WtcS14^mD6+vC6`D$12O8BMv@q9Bn?%I>I>ke5DZA!m|8_lP;ev zw3~yC+_dA_HP<{B4kr)h_07Kj(H_6p5yoL&8}rbCUNnAVPHjY{^V*E-BAK7uuQPj| zfq8E5*)m(*9;>iCM&9WjI+wsarhNVzdu~Mbb1HlK+1uHeO#kXFW6dM5HT34S;hdMb z%||#^@tAeW?W4U;!bTj}dHbaF z!V4tMeyHOLEIcA{KF2vOV&R1nXP?1wg%)09*~OM!V%epZ9kuK-%N{4wPv2|DS@?L% zF1PFnGJH&DA39}s{ZF*;i55P|vMVfmvSm+^@v)ETxG5Gs)v_xsdzxjRAmih+q2o@l z@Ds($uJb8o*;SUkNPOAgb6&s~l+9;n&NH~fW%G&FaZT_7qFS4B+%tgH8TzgG{Dv(s z&%kZ_#V_+yQ6Rp6_=sT(=%&{gHs=|*@u0ZGh38p#o>=O_^DR7IEOg-^3lE8tU3l2S z!(yTfFR<_e@rE%z!0+X`^B)nvaN&g(UMT*b3oo+pBC*Sb7h8C-xX*=`Sa`|*&)(a> zS5=((<8$u4Np5ZedEqUAfHxsPzyLQP34x;K&5$4}MpRVl%}sJc0wKB03j$&VM5}1K z)Vi&>*uvIYYi-NA(sjGCi*K#E>@Kyo+ZTWRQQK~9*LL03?Yg`E>i_%9nYnjna?i;T zWdGZ(^U2Me?>yi0%*&Z`&YXF9hTWyf^9*?&yHS(p8}fYCrO68nc>!Ce$qNm6AzP)% zrx@}ntW1+nHRMzIx*A!7VCmA3Ph)TM&T*UJ$2tVP{HL>@YVsL|d0HTMf@+f2QI2 z>{A+Ez;4!X1?$%ELe{R~MVc*9i=EGHrKaMq)Yc7IY_YaZ$byB{Z=@cH$j?%39gu}t z^PkYyPpYn9s*OzS7QujAe=z16WeC!Q8 zKMB(}Jgt)%&~Sj=ATYIQXg|)i0#h-Nt=g3WQ=5ov)h^WdK~^O2d@jeV1%aD54zbtq ze4+TMO+)Kuz9+DqzFhXSz|^-x>u4SknA#w;j^?8R+v&?=J2ZYix3fh0ZGHjk(9SPp z7YZEa`lhgQfvLZ*5F2(DX!2?7cSsoNv-#86&jhyfH-o(_a2r3rh&?SZ^?4Thin*Xr-6qI zyxzcAx{`Es{=6iz_0e^Zj_!q8ksf;9l=;r%Wh3QeD_DEpqkTj3c0vd3>mB;MJs&iQ zAGY_~3Vl(?KP}c5{e|7;_95{!uO@U%@K6X;Z$jWve^dxON=N9=?0I0mC+zuGBqyG4 zSjbUmT+icny`XSZORgs@cqXRs&|{3R!y=#OqoiNI9?FBR*9wu$vY%>v&ja8%&! z0!79rmyFe(X>!hAOiEZ0wcSl~t>zeV5+1l}!hzrcG0#$-6I zZ?C`~6!=zwuMv2kz?TYqo4}g{zFpvJ1^$S@ae?m;xLaV{95s}Wc7gW`jEPu0J$DIw zg}`?Ue6heE75EZ?KPK??0{@Y~wE`ayc)7qI7x+qn?-6(_5_QJwyJ&|0RgE3%jrBu( zWfBkXAMBUwsyJRh92*?zjSsi+wO8#OSBT|Nny?urmPg|@MU`K9WB+J(-<8d4FVRBd zqfN1~o(`O%26vEA==IxM+gmRm7u+!}7%7R4k8pK-l+KSfj}FTPW;~$?Z;AKD#s)^4 zhX#9-_OiL`;=x!KR+Y7{S7WsUTeim3z?S}zG}M;3S!Ru0L&Kw2!fLd7G7s#CcgOp; zA=@4oY;_M|QJUBimnZg`;r`Kh)4)*o7TY4Vb{Vc5#eAg>2%5%vamiq?nu{qVmkkY? zXNk0=mBe~XHcF86APQPtCp3$|X0hEej}2iR+f#{H8z0;>+NYc#q8+D5gqynB<*Gap zrML#-%4{3yi;l*(^BTLYs?I)6zcKTs=*SN2KfN{DO{K?_E&q~RR-0jD8C=*nPbU%< z&Q+1UEJzv*CrS74rZFCY9W5+>$75an(XsxX{%u=_daz>64%iys+C4B#E7)QqTd`WM zD#CY!roOFcceG~tir!_lk#rkEyYZY?(bcbTS}Rvy=O|g`D2X^pmOHN2Tkg18Z@J@2 zwK~V8YIU_vDX2p;KHAuEX>`+YBD$m}-Zi!<+B+QE8ZWPPEQ4CdGN^SdgIdQjsBtWV z_g5^&%c~sg!5OVsvQjSP2h+&I#+W#h(y*f9Qcj2G#~jr2AZiqfpsL@VCgYE66=ja#ib zW$Lu)Gm465&MKKb=e%&~xm&!6xC_z8h0l5ZO$pC&{br`Ys|OdK(@7_fzXWBfzExn% zNwV<$B98Afc+|&`j(5Ak!)Kvpt6l1Q69;O%_kt&76s0^)82avmtc3`|$$VUI@LqvD zEJ^Ssuhrna4OwLx-Xeon0o;~`S7`7ky;IZheq`i#A9ylNM3?y`TSO2gukRfIYQKo& zJ!bG|?*KJk$@^o2_ZWC3O8O*kkHI6GKI!5eFnB+4h?mM0qGUd3U7H%O%=-pI-&Ejm zn)F?0@M?go)9`+ZFg4yj@X8gQjQ8&i-rWwo1xCC_fvLYmIzaBwJ*36^9SGF=B6&v) z-W=Sg)PEOnJeun)|%1j>hDSP43*rXTUVer;^i1&5yR(ar6WO<8s06Z`H9tO`#`rh;yZ#^!q zmvY(Vk$1u)FOcmmzYQLFyFBuq0I$u%b)!yQFV|xgcwWkHw@2Qy;CZ>e`8nQr8^QCE zkNZ6GUiQe#&-GR=>%sGqz5^chy$qh0>svC(8?OgEFW2{B2Oh2Gmd`G#cCUjMQ0kvN ze!<|q0p1;W21+M&JcR@K%q7|ODU6-KH5tS4C-5VE`S{V;BC2}Q)t_gFHzS0e#l*v{ z%I-CIZ3>S#lDF63Z2*tXCw-Jm$r~_uo!}J-9v(?a-ZchqyAm(ymHL_t-W>{$@+W!o z4c>hU54Tj3H`(Altng5bN#0vHR?F`R@MJy;72b~w-YG@jG==w~!8@(+sNE*>f#D-9 z-ZvB;#V>ge7(5nEUEgAbhhZ5_Up{#FO* zuUmt{!;q#UZ=J%UdgxRSIu%}(3ooJY=zGOU-)@Ds%!PMA;n6+er0=l8!w{h(@2JA7 zbK#v(co<@I)OSkZ)w}RcD?AMOI_i5v;jMJx(akOIa||&%>dRMn)J||Jzp%o?5VIpM zqVO(s;Wa3{i(Gi?6kdbEqi3)mKj}Kbqi;v)EOAf(UkPR(#>0o&?$Svf`QRmF_%Lp= zTO@!ld9vFqiqR~xWl&YOyuP-ow!Rh{6-C12?Eh7fNL?MmmaiZQxrz5Mx_1VTFlomi zf;m`n52JUE-F9^H16i_3_o=nU%h8{X;nW=o`oTTR%E_a+H0Fg{=d=18pOB zj96taj$AexygxJ&9JSdj{PUmXAIoh$+)t~4ec{d%XtFGjQMG&WAAmW|gxg zd03HdpU3VU-dVNNnrow#t$FPcdzYcbd8e=!5!cP`-Mn+*PG6Ff)o!nJX5kFvE)f2& zp9RAI@iXOeV4oydb!hFp#fKH!hx^%1O5u3HtVv`6!z?MO*xI^(R*0Umt5nVZvEnWt*=~3Un`Cqr`(uY zTiG~ecx`CPO^s-%zMC|vIuDK4xy`rQR{CyqQd?9ydJi>DIr}w#XQM~$OQrY9*{=CJ zQypr#;E}JD3zb(hOd<~r#s^1NhA~PVCfEpnq^n`1+cjWwr614>B3Bcri>YkM_p~uu5-mC>rbO!S?2u^Dq(} z9g2<(_QZSp2jjF}48l$E!T2y@z~<+P1SXDPj>Oikp@9)dd-`L5V+pdAI^70aqB z`MSg)kvBG#&4T5q;eVDf0a*%A%=WI}m=sGnOuw1ZkWe=@TKpF&CBC)5uc ztT)iHkL^?BwBD>h!OZ7pzfMI7X~2*N7>(IUNBi37=V!3L(BzqhJd@E_t8}!ljeb7X zpK0=-ArG=^HF>rn&t}&{PTytJPvk>ySd+#N8T=3S7Ic&Dz2XT@g zRx9=N=dzF@w;=yl`H={|1#6Sv)o?!hYYi7LvI#65?JKii!&4ZIol9q7H2Z1|Ph+bz zJe`$kcn13|PNpELHnbjv`bbmQ$8JY`AWZFGT8|>$4EC1-(>+D& zQ9dPb8OK@dW`U`lS?CM077d5kUm;vNTJP|P1n>#pZ{S-Eyve}V8Mw*7)K4ZI>7OnE ze8Ng`VLb)*)K>2g++URM5R_6sM(AR(ZlO8llfFdwrfZCQ`Rt+NjPBmlFZSENBNQ&8@a)kn?HM4lH#tp#vp3 zW6e#TJ}o$-ov#t_HicbGk(2qOIpomL92*$uieVbIAx=e^WH?P4OFzq-db?=aHnwHK z#OYD7c!AIM=E2yQqFcr-x%k4t7t?q$pYB zlx{gKJ~@@02c%XQB&U4Wq^5jRV!NZYE2`qlmeoDCw*-m zc?ZDrQhv0C+Y7HKBYpa2i|Z>B-U%L5CY?Np*7Ve$?uJQ^!@;vH3Z_{4JLoltoA^m62#Qg~Bcc&8PfI^W66 z#~TW7x{E%BOoGa<2MssN{NnSB*IRhp<%4&(yeSYO52=j&HiiE`gu)=Z3erg)`QRmF z_(DXsSpxWyM;`A8)4xjvrtAx#j;CYfo7+ndwXyB2!v9Sg zKbAkT0#3*NHa6SpV+*ZQ4Sjd4wyop)$Ra)LxLcjr0icC7_}Uu#+Jo(^QQ*vWn32JV zu~nAe97I^KuOZmL=m;qR-)g@jdF*Rz=sS^hA}=Xhlizs-q*R<4?Y=Uk3!0>!16&{J z$UkP4m;1?zxXeSK(<-%(kxFrt(Y8AhNbWe0l>UgFw%UUU9w(KK;vzU!$7TN~jyJp6 zmBrLl*Ku37bLp8^VdUR!T$M zZ_-ga*UQ+kTiS!r;hgsIa}w0}={+Xnr!@WHj2H8#tf!&k>J{~i(XDqDMT156VkEtr zkE9cJ9s{qci&R%uMV2oE$9*6?mgpY2U@3MyjSt^AG`uBsgflVz4kG~lJ@GK_N#fZ( z^Gv)aqr|ev(+&`m@cpsj_s53+P{)R;{&&+Oc%1u{+Q39hQOB^OsmcB9pMmMQZacpr z4{&+vy%{j%8HPN=kY{o^y)SK-X~?shaOTezIQ-fU;%JT_$LvlPrQE~#T5`$bA6;`6f`6-?vSQ3cbuwJr~6b_HqNT9;?A z)i|HNKd4UlAg8sn()sZft@AV4d73=SkY}+>O&&DlK_=IlQXTN&tNIu6;|JJ}uWCKM zZ1#_uJY>j2>^V)IW5{#ZQB9s}$aC2vLQeUoc?Np?lh`34C(nZX9vslMraDS^hmZpT z=d(@?7cg2=E**_)S88|)E7b5*_Ld~Ww_w-whZ>&Fp4IRSZQR&GZ^Z#kUd+EUDGEw6 zjeAo)Okp2;U0i>9X3)5IOkgSx8uzXfnC^KR=PnhP?jf?f_&Su4J}QqwUpD)mz;urm z`acx`sSO$Z%TVG2jb zBIVDAPAf_$`IJ98kJ1@hXZPolPyMSDE_wCDFA?L$C$2axE7}juVFcbqM1NLt8*R-rQtiyR7=}pBs5T(hT z7!H#`Fc8-hjrVMdM|%fin-syo5CmIeFcYT)#<@v0CBU|;mF|37(oGh~VDZdpn8$gr z7)HUO-MyIUit$}4CrYpk)2(^QVcHdZlopKv4A3s??pj{AtU5A&fYycOJT$w^(N@*} zzCqhf)QcAF?qVbMk*vL9l=^)w)h*Mu@4JLw#b$YNh_<-Lk%`SYLNjnc{E zc7sRnGbtmkJpKrdK~0YF()*6M(n(&Gp>Gs~d`W^Yc{2>&J_lZ=!Mhi{Fn-cWegBF8 zP?PC<9LMxdmrnA&ivX2(0ytgzHW|EA!0GfoXYgJDF2PSa881~5HQu*?8zc$79F7UjR-wBWU-geOU6%@QIbGil%s7UxrI(hsMLR4N01pCsA z@qQXS6j{shme`=5G8{UPYeWmL?vB zlRo01sjl%N;Dr%JJPb1@dDMxs9QISK+yhp}wZ@)G<`^dc39Zid@nc zMB&QoM&q!uoXs)WB9LNA1(%0Z=2Rc0+kt?8RRScBd;}*XZ!-#Giv;i`Z)sJny@;8Q zvxe<4*$8G&u8^yn^)=4RR#XfA#A}@2usgz%Yn)41F^e3V(*FF;(9Q!*);Ae;;=W_& zJ7v?V^DbG}e4@zLI<@-g&iy;znK!L=bMs3@R{1;CR`tuHIXn07ynfF8O}=lkvi-x> z>5h{9!!PdaD0y)>a{PqoYzwr7O08j5+Bm#t_^DwlOk^KyGho?n%Z0uNn@y2M!P*?vTtrv~QM(Dhj zl^ZXK_YXw3)o#QE-M9|dV`L-Nscvk(^vd=tH`XqxT~Z~EG37D7u{{~1r!!mP+xk(A zq!7R6OCu=-Ez#(u?advRuWfG%F9x{k>h>$!FTX5$^~D|JUr<|JPvJ;)6ux~n4%)9= z7p<+T4^MQ_)PmmFW7MK<*U?(HkzRUBphHNTmEbliPfuCt*5Sb0F2e4k-R>jh<42p- zmh38|!8!fz@rs9-%#QFsFCWst)HkoLA)+Vv5y&a$wzIS~M%3ydIhCsIe1_c5<&R$2B9PXA?NicEV+mU|>|>W}*w3mp9ANZKB^~wcKPUnB z|Mi{y3bxRyO1|t6PHVKT*5s40%TLN#XmypRAo!u=njuPm0s4M#NBoooDr4$f9ukRYZ6*zQXXuwsF!jA)M^z@(!!NTk&_zCE36;5!=BceJN}hRZt6c?VRwt}vxglb4KNQSD+SMdDg%!f{tp zmnN^`_+W7b>4KH_uyS<4PtcB-;FZ)!HC%LQEy7`Q^^(Yn@hc6mFO^tpFw>fofg6P3 z-N>vg9H_%sfbQ-X#B{IAaaf9dgK`SB`N`dnpUS%%SbeKW-gbjW&%qY_q?5dB5TNRN z4Y*vA;7eY;!J~Q5cswMX5-1vEj;AX%Q_LZtZ&hpMMtu$ z*YL0~g>0U;X8w^$)$4f3>CDV;f1s~)P3e(>>Z|M!KQ#51teJgeTJ=UAa+pH46s;*b zQe551Lpmv>Z_1jfM`l+~;~`;$EZdT|Chth8ES$In9}~% zaWu~xEEZnKO3%ypa!vE9OONdKQLTu56EXY=~am(GgwOc5Sq^ zaed?3>m%FeZU11%iAUUyb?YU|Q6H(+^fe$Y4so}%7+eQl`#NttzS)NsIjV(&PUPE5 zUMA!qZ4+`()ayIiSFgqwYKqJ4;C&|Vfyu2?TWuS0^=quwd~VUrf1uvB?AE%hjjpcM z>gU$wBJG3%2TEHrIQAuvtOK@=1(#YvTcB0yuq7F-wzay<)}XM0=Q~K+O1REa9$yvz zpNTVtWjW5sYF#1D&3lQC0*B~4n_-`~r}Tvkp0d+)6yW*^v$D)f$fqA!_p8`4co}1d z8_|o@z}V@F@{a||Y4*QehpkfE&u$BJ<{!6@F=d6f;%0soy){-Qd$RqXFs2Z&K&u>NSeTmh-J7$$m<@vKpX9|B7_ouhPqF`rZr&YE$wkPK6Z0an$oRyW9 z+SkB;FEI z?=gP<@b)mwgJCMkP?BVoJvIA3szRM>ke9^j$T9x|`}!UXKFHeV^yVIXs`riK{<*V!&lFwT`A+1Wh%dqx1x_^%SXdp?*ppb@IKbD%;OMPmS*=0b zuVH@AP>E)?`sUeJ$|9;Vg$PSxzH;CT|i z6PcZqO=%6a>hj<*_6ajIc%0ttv+-MjU*z%8)}A@@w)d2Lv5CDjyS4j+*RvlNMV>5L zO<&so(^uQLt>nOjF7&V6@-fP7g^?GxK00cBNk=VSr*ngrd;b`<;GE7SOOkH=iqtxG zJJ&7WD{-z|LE@&vE&l(`v{M;NN4-Yg`b6FPHR(&lE$?Resc8uFG@O|=%c(e5I!c3= z>tLpZ%0N202OFo{l(GN{{BH84rl*PPdiVE380Sg%CJs!Cq`n)c+;paCqI>O3%1F%@ z9iOcZ8cl_ccm1qT)A3&9<-Mpg`*~h=o^hQ~>)$ZfwcV4hiJphlv*c7yCOS9ha&9`S zyy`Q2{<}O^&HrmW|7Tv7>T`v9P3A#pgn!TM!OC6&jO$Kl4R%GO z=6``TSefH9zshGns;+d;q#aOC$=@GK=O%%~i2wUz=}Xk&FeX571J9y*ciRs#r`Ct<0){+;%csExw_PTemrICI4~n0@ z7;I1X2VY_LDe7b>W7`Vv5#Ri^f;8_Nq%|5Qxx0P&zf@vPY zT7l`yhQ{?9G>lFY;aa$Sj)c6=+t1Epd4|3t=wDAdALcb^7`96lOlt(ED43BgQ#sHE zCA3CRmj~D@nmoghXRxO3LY5XjMpT!;)e5&I<)c4ype$e0t zS)V4)Hssl?U6Y3ld5A?cd5$5^VIfVPYshoin>2_c9IX-5%Wo3Gd;$?}_F$Y-$sgq-RRwWNJ)2K$l5FEaQ=?8kynUobw56uzkOiw%A;qy0=%`it2Y zHU3P4Ka+h)@ac=ohtbHpHU2DvKZ|`#@aY-rW3$+Z!l&_+>oi=-=WK(@oyE%7d`&)= zuxPv%l8x0`{PWE7*PwFJuV~FJf0~_)0F(FJ}P_*Rx;J z#TU+x-bnraoz0$soG4W6G>_?^hJD(+tODN(_Af$CUs;8|+3XHHZ|VHkIQFyO;(0=t z+7Psc_J;yfn}Oyz-61eN=E*knW`W@WXR}KLZsIt^ss*;wm&0-ergwB9COZ8V_aDVa z@BBjFB=(BH^mSQ?iBHc6O!rHnFOPj*;4sJe?0~?w{sMNR#xG>o3rsykg}y1QQQ-L; zPh|@Qrgw6oZyKZV{#1IVvn~R{(HdWx7bYFyW&_t5c#(n0&Yg60e!hYI2L7!i!zcdF z4g6gLKWE^t82FHZQ*9Aj|8_%ugMnKNyvV?*wwkR^$qu*8t<_(&H|RQq{=}ZAMt-Zn z*9m_>_#YPj0pb6t@E;fc*MPn6edI$Am22oQM%4uVB>CVYh|3=m_$c{@>^-JK zpJnW65&k^+hZ#F1{8xm3n*7h$_iO0W*e8|n1Nf1T{1%e`WqXfF!n}NedH5ZI2S1Z| zNCe$?AJ}4z~lLxIPdeKTt6t{!FknmUcWsDg7on6gWoCi z4ho-NPlWUGf-sZ9AI6XTF9`gIi06y;oSD$0Vhwwxm`Axt;Kc%;FXlaN7V{plR-Ue} z4~ruxUp{1tV`PToW`VZ~yjox+lFMra9uoL+ffE8>EAWQ|ZWnl1;7bG^5%^MpM+Lq@ z;4y(QX@{q8o4}0%-ze}hfpL@a^j$CT4uMfQ`T08q-X!o%0>=bKW##AN=H~pH1;!*Z zj&X6g{9=J`5g2RzxqP?47YMvZ;Hw1QD{z&-9})OgT!b^9hl(zk;qB2x-;O9BpS^Lo zA3HQvbED(RI{xvLDmMy^*E*bynWkGDM0^RnBC|j7`D*#G1SN62jM6O!g~`4^e;0O` z>K_^$&!mZ$#K!P(0tVYhlQV6TeNfn-3I^MU28M>CU5Uha4Yr|xX#ens#>)_OceFpz zA06Eu?THV>WKwB;^rbY_1k*LzJFXavw#5c}u;W&m$+pHk+x{idC?-=PL9{X?I&xz_ z%ofxOGX=6_`o=J#K6K-t5sZAGP!iE@*ciZE(NqrkT6Ux|fyMB>(lUZnhO;OK=>@QO zkS3O%9%o%7ORKAUba-IABr$X&Ohk+&^aRr-!4jAex};i8NU$}w9r+x!=S`23qTu*; zVmLKwrag6~6Wy5jJRILP(uexLotv)MR#j&or=RLf#VL(8NZSBvm~O~{B??zrE;@*1bCEU$8s)H%+KuXCIlU*~APqtq4p z)9In~zvG?c*yhkO?E2=?8zSS*d#_$>;}oY_H=0Ok*=XV8TQ&c`tgLZtM4j{0I2)Qt zzcg1LnR04ZU~LX9^5s9i4~S4E7y8;OeM#3wU11v2Go5Jsdon$PuRGQB%;dcMg2E|N zr%j(xR6KLm>~m;|W{uzO`=M`9a`X)p;79g9d3>S4t9Rgi%F^|%0`ERwN}<#@YVfEJ zGJr7YByWSkqrTJzNrEqVD-2!{1nbi9<{J6v1Fs|v&u{SdffrPGGD|smbR&KDfY+2p-$_Fs?JEtHA$e zsn0TaUEs}^B>0kd3dd^ts4w_{!jowwyO=7kC@XzAKW^xo4_>aKPsV%D;8lZ{F2B^L zq{iFipby<98t*djrlyIP?rT+F7kJc9CY?;*w?U%yLekM1D#{1l@91jd*O1EQTi|hh z;>3O6%|y6#Qr`ju5Kp>KgV!Pfd?_<|uX^Oo$Ia_S-)8VA57Ifs`;bT8s~&lCvc09R z3p_9B`?N>i_rYtEnT79^-!gPkdWrW2@Vw}I2s|&>;}_tq^^m^09B=w|g163tz85{} zn~X~DB_ACgd7t#i`@TosoJrowZ?i|Ui57SZ>`&P6AzNFf|suT z$uYyEiah;26A*&0;RcZR00jlWdtM5GrHt(2%4ZkxPENt|8Fi)?$G71}r_l5I6X4+% zOS)I)*y93}XEZT55041GU#`kqb)G%mK|In$KjN)7^p%Gh!yhk0yke8QT7%aD5}i-_ z@Cr-vXd$>7?^=b2TQA9b4aX{PJ$Ur4AbqHcN#02utGv6z_F8e`O;dPB4crVN_ zrB3QIc_j)Dm)en6sqn%syj2PhhmQKzD!eim-bRH-X_w_<=3_wNmAmkEDZF_uyt@@1 zwa1*|J*4ocP2j|PRN+;)@Saq73tf0872YBj-YW|4d>7v93a`?I_qM`Y?83{%MV0k$ zi3_hp;VpIHRVuuQ3vZRe!w{I`^;oO$Xx!B4x@}Z=7y@+U4JbVM?MlxPv!3o!c(pG2 z?pAnpF1$kuZ@CNaQH3YJnbW23NrksU(MQiNKYr4k1W%v;V@s$luJX!o^L&;f63$Y5 z@DeioIaCsQc1kCCG+aS_iK8CZ?pH6b@w|4w=u#eAa_#<8?5~q+_Y=n^wLP;X7i-=F zeT{v$_2o1LPGzqN9m(OVSu2||Pi3x|+uAWZ<47S7@$(`algIxw_} zVXf-Wa9CZXx_(2r{j&983};}JF~V25)^Dd*+(g_emCJ@`<*Dz`Jyxi>*cWOp4TPGX z?#(}*_jm^jHTSn>-;|Be{?_)J+PQz{O?Pttg_~aBe)g_xKbP-n=l-3$?&SUpyRxAP z=il7U{q~#h@zPJ36rH_PQNE*l`d00h`%e(2UTXg%;Mm z#wH)%9oZ9qI-XeFfL!j5uq{{#+nreLE5q?Z|Eb1)Vj-;mN>K(~l#h%uUl)}F zmFEep1?Sgj^PO3D=Czmjw!D;;eac#h_3#UGPWcxWoC+)~I>jw9k~PLHCo=gCds_~a z2Aix?+zKQQUs#%L=^SE_Gm;49H>tyqn|g+V*{yEAN`*?t&dY0hTi?A_w5 z6XL7};hzX_Ejar($MzfzwyrA;m91;OoUcG`nbTRauC%Q=R7z`;(SgG41!T7VH1n5} zPiJK1?Otw&1X?XFVZ4Ue|LqXD*4jq9=laT~mfFXaWz)pbfwJl1C{k7|jm!} z_<8#6|LnfsVO93Y?RRZ256s0KaBD1QNBfRhf$Yqj<|)n3#PU&6S*@#Dch`hBv-!Vm z&Z@9ZMOxoJet0tzN2ilVottmV`cmH3600ohbb+w*z$!wgI!a!8?2)E_`<`{5Rl29) zM_nv@y6f%Zqy;u!a2=BR=l!xd4_Yf)e<$?Qk*%MOIyc{*_0_y>B}~(w%k@77{q`z! zR*`WkBYe1v%_}@jXVGtAGBuf}zEXC6>pd)AJe#+c{PMA5O~3lyT-ZIyIa0*$N8f$4 zLuGh#u=I}RaF^8jpWn<|<3BRFdJgBX@b8Yxdv*MCd~6^w66+p??ajfV(QrR363|2Z z8DF~Rc!fITm=pe~4to2#?{n5O1m7 z5g#l-1j^_Q^VDYfKKnR-uUTdH_$hqPmV)LzcoXf}@^S9(?JEpnx0>d?h!O4GV?l0H z#BK}Zz?O(rY9G^%qV|!#qi9mf*pJxhy?yV%7R3F{^yVgwPj&lxn(+?JdmL6H;u#0` z^kg1eFm8226A6A!?egdf%<=uOObGY!}&EJezEr}u0*0^cgl&R~oDr}l1vMuhI& zvL8M|GuinvH2=6Ant$ACWxVY29=8tq?#~V&ubcb_pW1{yP!C$283!9XGY{_R%sTi~ zC&futL@4jYC_A!8;zNq_j_uuYPmoG>Z+Cxd2zGs~s`2snx31Y~mA3oRN%li>XIjaN zki3vq61oXF@~6|b29kC~k|*+-cRZh8XY+bmWiO?@&iTh47Zxn2MM13#tIOK#EBiQF z7L8kYy92d?WPD#+$SBO_*sYKJV^0`1FrKKAI#U)fWLOZ-YqFCeF|G}sEi3UG!SDCi z9>zp#sOc+=zK&I!9w|E*?zSxGBjenh>uv{wdYzo(eQ#|*P+Zc{+veTGtB$gi7^|ra4Yuc(HzH}uxK)&|{Zu8&nL+;)5oOv4D>#2Jk zA75Y8>-Gpw|4nCg-6kqOw|q}@-ORFA)85L{{^5ORQ|=ShIWvCsetEa&s%bB?>&@lp zTz9QAX8fv-0b9rD+2|mB6Wb9v^ZIu-&*!r_H=TV9wd|+|7WeHH@3!p5-}^W3^WR1_ z@XW6xJ$EO*2JZJU^^Bgaj>7jqhp12gE#=|%T%i$JeeczC9p2i!ZhGh$&C~J+Y#WM3p}g3J zs;{c6U%c$hZ7N}vS8QZ!`1+cjWwr6{4>EzV+faWD8^ewz_?o2)R;*Z7RmuNV)kUf+ zt0K#nA$8q}u?w*C4HhabrhRl4_X1xz)H`~0>pGxVqI=|mrF=u58;6Fsq>dmP9ExJm zPCvHi;R}M~xZ9cM<2|ztB?^B0W=pBz!S`)Lsm74rw+-dVHWcbrH=b+b-NTr_m2wu- zvCqJM_BrtBNoza5ArBZh!@!vahOHYd{-A-g4IDCXj)8LxJjuY54V-7-d;=F4xX{2; z3_R7q(|CE&+unB54Eb~e&oFS2fs465YLVKmn9HeUu40L3<}Y2Z6o00{w{eO;%ZRVU zz_SfJhwFbbsbG#FKab0))oHu)40+hVr3NlD@LU6z8+e|9=kxffbz!^thJ1m6D-68Q zz>5rgzJV(Zyx71?47}995d&8lxZ1$W3|wR2S_9V^c)5Y=4ZM;a)b7tw)~R5!<+Wa5 z>g^+2UTqr20GV(tT>b$G`5az9X6?-|^nGDcl7b1J7SpkheN2&)Ew5P$CR<+rsWfNF zmX|Jvtr<<8VaPMs2~D19$TQhzG71*J<)8h8(uKH2G9RK9v<~@@a;A8uMxL>4tnd`%&s)irP2Bkk4SxX!0UM zUc`=Q@?t|?%x==;GY$Dnb~EJEt4BQ>WP2;B@n;$QS?pp>USh~gSfwVPZOCV{d`&*b zkk4WNrcBx;+kAR`Igg#z^it;;m|YF4A+Ha1hk?b_l_3l_8f zi56WX({~9wso}NkF%4hJ?$hvP?86$qob_mU9b2Q}EBIdTsrWkBbWMIGdz%_Q!dcjf z^HmLBWvpenntfT5U&HRz@CLS1!`HG-4PVDvHGDm*)bK`Dpy3a)-zt-oEp`L@frg{( zgoZoW=QJEMY$JBDAx+-R)@!(jtPq(LPI^A7G~irso0KMtoY}0gf}-5sjb4?hu%I zM#*+!LSTA~lI_Ix8V<1w1*Yd`AsRpB0+(}~%d#~7B=*l}AEnYanf-&nblZ~c#N(Pg zpB)s~PEP^bCa|5~Lbg$0M1%8TJ5j@EzX?p=&}2I?ATT{o3$c0akCAXnkDdM*>^XsZ zxV(scR$yu`75a)Vb3=UyB6r2`@4*m4kF7KY;I3%0fMUW%xc-vcqjv zYR?aRPt$!7T4=FK;a8K7#f5Z#h0eEZTZ-^09>O)`|Anxn__(m8i1P<196mqqKkV0N z2tIvohhQ+2t_S&apNE!Owr$EK7XPjY;UZ8zLyPH+3%}ChYk0}l;|+un-)8c^CTvpz ze^`XyA^dxU|7pQ{RN!ZY|M$ZGuJB(K{_Dd3t?++GKIT@Ft%^{EW!sF*v-oLEyg=`11mzvT**N2>cHMcM5z;;73bppRE@Opv2EifttFR$+i+$Hco3j7&?QHgo_?h^QW0)J89?+g4_ z0{=i@Je;`xR|I}S;Qu4=V*>wBU{p%Z|GxtF34B`MTLk`*z{3LL=Hlra5ctOe4+{Jf zfp-f0Q-MbX{wINPGw}F-Ch)BSzb5c)0{>j#Jp%ti;2wehS>SB~cs?*9!cWz;B{bo|WxT*t;~$8+H%%sJ1o7 z6UG@A9Zwl&TvVkP#zj?8It!wZOEZly$TW~La3xN(muz5}f??HD6Vr;0^zzZ+{!N=4 zg|y`*VuxAFv~iOm(y@`Kw&28->14fBB-X_gYSM_-`uEflsfd`bZ;MkQ+U2VS^TN~0 zokpUEqA)!f=htQcrb@T=C z@@W6o_z(=Lj?*#%Q+I}yRnVzYZA+*|RAnH~9JKWhI!e3y#s;_OX(D};geawfENp5e zM$-65cX~nBXe=6oS>17GKwt#+^hTE%B~51eh6YFC{CengZj@EC$%;Jk`<)UxuApqQ zcDzc{O}fKS#;xyiX<}diYiP|Bi_?c?C9-EJ@c0H|gK5(TmAym5-Ek-!9~rlH8s(=B z$3GP98*!z?#zu#t1FHR56uxe<_!`j3+b7XJ-tLC5$ZgkWJp9 zff$T08-+%a@rj_&fdoZGHAau9duXt?e-p)&HatEwYUGhD48tmMG=X}Ti0v2{iWwC| z68QZ(?xIU+AFeo_gIXPwGG1sxwUbr6b7XCozm8~i8LzhVJl0HHr;&KG!aI@8U5bup z8&!S0A>OTIX?Zx_8-@Kp-9#^!ppeH)9E|tAcQ$lU-@Bt-T{T@@wUIhk8@lP3@7jiL zRh^@m*s3~5JF!)@j)r2ZY8@@bR@FM1%dM($w3k~|<7hCqs>ab`ZdHw=$=s@Cjy7|v zmN}QkGUw8$b}o%-=hCQlE{!VZ(!dpVFo#@K3I43wxr|bRnB*V^UdIRFF4)`wc-^mTXLyaB7ard z@9*(K&Cv9Cv1Vvm6)T3O)nE_b3M$<+Kne$w}a>pWMpOqvqL$#lXR==C9~(87cMQETRw08f{KNU&aYg&WNDB^g7D}B9x6XihB$U6KscqMjJ{J%`! zX@ggUn9j3%}=B6 zX9n*E@MKvKUFPE-3?A9OPggE~Zt#Y|dn8S~`wdoU z@RxKlAD0{Pt_LYyJ*9n;RecEu9)|ff-rWxI?lO3v1TWq5?^=WRFnH70yV(<9 zl?Q!a&9UdfNUBr3zxK#mfidpIULkH?FY#XOk$1mG-Ved^QtxNt zA>xI1wMX7P;CadKcfj*f|K{Lf>P26dN8UpodB5<;TQbF4`i8;tQqEuY$oqxIc$eTM z<0anB9(fOWm+Llvnz!_If#*fvL*T9T@Lc<~N8W{Kym-;KA3QJR{B@5!-wbd1 zF7(LT37(gHeBC3j5REl2`Mt~|Z$EfmuJ7N2=la|b?VRbw>3IdBJtV70CwKt~;LGEn z!RrAp-5xd6kQPyLEtU8fJdAtuZ-9O)^x;v=euRb$n#@UevdV7nZbJx~{ybiM8nC}G zcs~KJ9^u48l}++KZtzN~?e7KRA*o5;CWBY5@TeU~`K5SQ8@x*JP9U80&B9OeFnwIh z$Lor|*$OXY@ZJPZ=7YYMr9Mmx)$~;^v#%S)d!E93$>5EG7e*NI==(?N`znsra=sTl z${+ENgd`8siZ$LLg;%Tawi~<$6<(dfyUO4_s_>R8yc&b|xWc3Ik@=Ww@SX&Z>JjDR z11`Li3XkqjCw;FdybD}-uPZ$2Uvbj+w!*u}g_ny0kojnE;gu-7Mi*YC!fSHjtx|Z+ zF1)o0uf>J8QQ=+e!W&R{^xf}Ne!CRjY8T$!3Xh(HPWlchymlAfqY7`03-3vVcZmz{ zq{5^3jZ^wwQFxcS@LpGVm$~rXR(O}Y@N#i;%lfy@g;%2Ru5jU1D!dLC-YSK6r3-JZ z!dvgc+od!As~<62O-{n)N);-P65fXla;SRo(L1I{piXBRs_ZUlobe z)zv{>TOFz4;hmvdE?(PeSyB_}tVrsms9s*gBTVkSwHa&P8@`rUeF8u1w&A0_EUZ54 zoq$~>tUm0sK>pmj8fcdXtFKsuAGH0lLcVK*$-nE4P~WV;OujosQ|JD^y`4GxU*sWA zcdqI8#qPRme?Q5aV%eMbV7DkA-xI>rGSPljR_|o&x|MOz!tNZ6Jwfc!fgLiiONWJB zIvTM{#~$p`@l>34%m}8{Z|^u_$Lc$6=hf;%8DRen$~EnvCHL3xWACi%b`zP`(}w=y zJ5K~(2xeylo5QjD`VS^iXY9NE#rvh~aBNBV#70(;cdBUfQ^9a6?TB^l<`;sET?g@h zPgl5)b{2t-PCB|XKu7tlwcRi30!gS&SbZHC^3LFUk@mmp zw6Vfe0`{IZL0%5Dr;Qz|?`dO)LCW{EVGDyulS{glnjXO^>dqh5uE~XySQgVQ{RV@< z>|iLEla(99vn`iDM(lsoj(#t6R2b<ycp{#NBd&~wq5gBPY+g7Vm0wd6bpFA z27BVY{ey9`84jc8o8p7=Xy7RZo@(G}2A*!<83rygaIt}B z8hDn0OW3Dy{pfvdyAne_o6D&UV!PRfd=8h>`^|Q94EcEm4r{h#@n&V~mHI=r#L1Q% zIr_dOOKGb#?Bg=}*TUtc1}@{aU}Yfb`%IQZ@O>83v5(!X$jO#?NWo-F{9l#6N3tcZ z%LDBDnmoghXRv2Ad8Q%9UI>~z%aCWWJ2iRGkO$d-CeJqH*^JhgNJqBB_4J2WwIS-CZA!*XRyPX zyvUFjvAZ;Ru^}&JJ2d%BLq3zyIt=MxN#BsqVi#%h5<_0XN;UaxLq3~L*5q>x`5gBD zlumrI9j=!jY=>*|upx)7O+{|8x$MgtE@$^@cplrS;rXmn!wXoehAUX5h8HsQz9*dp z%a3oR9!YpwozH%#;Y#+bh8MF(G`xfz(C|{WO~VnkQNvZNNyF8wLc_}#t>2N3ED^q$ z8kRu%Y7JYqb?k&DU(O!Va6P+Q!zB!RL8xp{` z*hTC+8g5`;=Hd4HfNbgBu3;a$1n zQ~ye#FN@tJa5=}=t3lxT9A~pDG=7NNuBQ0HT%N;b2s!mV6#8_2e-QGC>&LAG;G z3rw$7vYq>!z?~e=V1FtwwFwG+MeL&jQ-1*2&b>+CMI6s$HwYZ&cou8a&M#qe1uo}u z>?I&DwHe5k?mM`jQsoC*x&qtz53@LU(vdCI775@JrgTV0n69IAgh{t_Wx(3=1?_`; z2t)VS>z+cNxBJ*b58G{`&=+idp+^`C6Ayk3`3SFv@2jxqJi;WejTZ{MK-d)Q7d8bk zL4oRPHfo~BwCh%^7G2w!rzeiw9IN^A&z}E5H6_jGC8e-Mn6RaZ{_X0i@j-5*(6%;cMq~?BdiUt?K(u!tX_$~lAPQs0 z*tVMLNOZIhh93Hc2BbAMm14^@g|^wZk?w)9Xm9@jm6L7%Ks{}EQx|oTp`&CJeQ;?A zqGt_e21gPDu^rJg3Af`hi7^yg8hu0C;={JRHAL+uPa{KZiH@MpE^R_nc1+a#^;1t9 zPTH9+Z+%0<{X0?S{nGxOdM3J#`eTEG@eygZPZg5w2+f|ODKu>NX=17{iUmJa*4@1| zO}@Lky3<{|t{sV3+SKv7G8C<;sj=g6GJx=&8Q6;r$F{=0VE-sLaHrI`=r(T4j?CRT z5c*(24EtZgxLj2vD*H@fbuM0CR}+a>)u*vK=f-okNcO&2uXuT#qiM5RN7H7tj;76O z9Zj3nI+`|n->lbvyIC*(e0g_oJu(4hJWqdbUWCbp!}yn-^E*;&O^iQLd7`CxJiq@A z{k?yOo^uOE>Fg<`-gb5i%6x5~^F*DIStWX$U?W|pHpRO&swC8OIIv?sLsDbF-}iYpQRCRb&-gKKgcXH>q^)EGPY?_+Cdh2Y2*6iBJ5blgD2&c=Y`& zWki<8cNsidvqXJ6(%}=HyJ3U39---Y*Bd;1VyER@Z1DDhN98J=jCY~IdmIF{&q4A+ z2Jc1i%B3>+lJ`p-SirLUeuZOnCnTNZoicc2>m^;hrdN%HZi6=pUYR7pm%P;mkL)$2<1H|FPdKEH6ho9Ozh?ocuS`0Kx%)?i ztGpiqq>J~f29NZo(|4c2n+aZ>j1<0%7hN`5yz3yKzBuV5?-oPf(-4TEFHV&_bX92j zUWA}iDuXY18x4JnP#;5Sc(l$Ff64Nz0gw9nq?7uvosGt$e)2_<1Yh!s3|<1fa2no! zAxw?;0C@QdPd*R+kHI?(9=hFanY`^Dc~62z&p_!YkK{~!Z+Ya^WO&n;@W^}ABkwhjymCAUH`-a` z|DE!?8$2)N@}x)JTON5eSst%1cwW-?xJTX_9(k2`Xn2XY&m-?akG#_!d9+uZm;0j= zJTLj6y??#vJMEEIj)$a|cso7v4teB}9VRdFPR;RVx1kd}FXi%}N8W1=ywBh+mG>y! zu$6d7;!%`z^7xYoQF#&Y=-DQnlzj{V@)=CB*YQ#~g|g|x@kj8ZQ|LXh89!Xoq}??~QU9IL!H6@8^Hyg*4R z-ZB^7RE0-zImKJ9@XB3yH41N@3$I1t&3ECgS9l9tcs&ZQ!i6`g@D{r8_9?tYF1&jc z-uW)P2NhnW3-57-hhaCz>+!6@TjIidS>Y{p;r&G6MO=7qDm)CcIi@c#J5~RxU3gO! z9)=Me^_43;`OQc7n|XiKC_D^1I_hgtc+`$|s`u*^9)=Aac|8hGeru*n->AaFu%e^B zeF~4puAS0%ufqF)3-3XNx5|b0xWc=@h4-w&yU>OAvckhKt7ATXqVO6NUNMgS_(}IB zc+V*T@;P1rf)dRB5)a1*=mH2QdE|qakl|P3=Kin*@FkD>inhkLdS0KqqPo7GFV786 zygoN!f8Zt8=U#+2v0R^;C5UEUbsbI>aWvrWNaSah!iFpRY%>`BtgzXSW5gV$(jx^ee6_(6&1g==_`C zT>eLY^P8bRlIsy^En;Un_<~54udgH6!KB2RI}0h!7BX6U+tg>TA8qQ}&r?phnw0?#t@1=pe0@IXZWkKz zk7ZtRe-r!O%vOJ2VC|i(!zyV0Y;#VtANivBAV0ylK56(t0I9>uRMJ4tz~ATflJxCJ z??E*W>RL;44GQt4n~Z~ZbM91mB7D3a&S?G0*~G7&oBuA;{`+vQ+j=cZzuUEPJ9nb% z>~=0)^D~W?`g`2Yb*q~b<=5@pcUw2qdQI=(vt5_9QPF|JKcID4_M6npx~%%%SoiP$ zx-2`tXMTm>lXY3iLQlIci%Z{Mm-YU-tar68i`SZNdUzR5UDrUZXdU|u>}S>JpQY!a z?fiy3VBib`XY%vunQXgEL!M>epnt znmpT(XR~)wMTXpk40(vXrpa>*c@Cp}45XuVOM3ot*`I0hNrrq9JEX}c8}i9)uO`nk z3zM?4UwkY)ZnB13zo@ul$gw_F(oZ6g)z5v@LFtuL`eHpA* zV0wnpx{!8Fp2e04Ol{>tUy#v$H7R}B%o3Q|@P)n*`vtBC$!(m&zA3OBUoMm5^mckC zu}=#*wQ&o5li5CjZFwHsqUpzi{75k;Kedx&QZgEk4M%T` zZHvR&gPhK-3zga5x}fjI?g2T~J1N0T%=n;~cbE+9?TRLb`!P!s^XW(A`=tPzbxdFDs@ zHx0(LQ}}kRX-=}|uw#8f?@%lVpX24#j#I$@n|C!%R{i&H*wHb$mSy4_R;*s4r=~q0+P(<}=-D>@-XDJ(pYzG9 z>1NcXf3lzRq@2+_S}M=?a2~Btmu4Oz%-mM0YzB$t6V}rq)4@~WH>7>3!gID9gt1x&? z!0GZ4GI*B(r%T_zAt4YYuiFg(Q)S}d%k=%g;L%$Abo!n)czeN1m*3AByaV8sBTPDZ z-R?pFM9K6$?hr4{2O*wxG#9r;0{Bv9@`A{q7an~xQ=OL1N#7kFd1RZxOT0mR+j)t% z#UpRGN8Xbjd2e~-(cDxo`AB%=J?fG7nnzwa`q;druhS#%5O^)JvcPw$FQ*-NH!0_k z8k(DmtR$U09!7}NO~MNB(#>t#3>m6i()|P<$LqkwXDFk2-K3B1XMFx?bIfWmnF61j ze9kW}HRsXyIlV8`xoEq<3nPr~FM6ktKH|;APvso~kK!R7^+Y=H9#wesJaXbasqoMf z<;Xj!@TR-)UQu}J96d81uPeMF7kzIlJet4al#g7zWMsLZOTv*?qVUjF;mE60cqJ~p zRSFN&X&m*fRd{Z55;rP5>OyeJ?|{M!yYO}?yiyn5-3qVFg?C8d(KU5S-=hkzT;Z8> zke&oDq}*8YUc_Zb-*L))9hJBq_queFM?QE78U8y&kOT;nyrorjE5eGKXpey9HFfr; z0UqWcmCy}=MP77IQ!m?M^x(-kNYmQyXtKUHtu3+oozlfscQoaFkChgzS+p{9?j_CN zy6)B{|F<&3jm>uyC04hWyzp3X;jh2NO0(D8GdsOJ19D&6?%9deub?ctkh%P0g*=9W zHq5^%?MDou?^TypMaT+zu>QnjIqfId(G?9vWCcCACRqKqjAHeD>v^^tVH9Wn!Z)Ea z7|B0QI*%d;Rv)+44jb;aO?GRpy+1)=2)(1Q>h3GE!`U6U{F4)_>tT0(QY-t!OOGvV zwP#ydb2qojSkNn7_|gKDXK5`D6dg=1`}v?@uv%DA;#j za}aZj60pYan-@Ht+4tq<%+Bc_oZOk&w**H$C5M{c{8r-l0qcS})l=uOr>*Ammc#Jb zn^yaIADBL!&G%hieo;{t+u*x$UQ6)|w%>Q%{PtNv_M|UbacM~r`<1V^Vm&6dhy9xu zT{EYcb@)G2`N8uRvVHz-OS{4=*jN3#miCrm%)-C7YRlZ2Y-Zpi%ZBDHVrv6;EgPP{ zl6^REPu=#49CkEtaK-M0v)HSFPp{m&=zKOc0tG$|F6Aofv=;u&;6f=q$ByEr)~LtB+GAG96c@b)XTDDY%sQY z1Wb>lqhm|9ED1?ACXgT;NPs|M9!+c@jUkW_LJ~K@ElD9Uj?+4nw&szRJeuny+>j=@ zsgqK|ZE1YJ|L)8=Go#(r+Qv5_cz!zC{pS02W_EUVc6N5=KXf%ki>6KBbQTPYxDJq*XE4KiB?+YfE8^QU9vA;T;f&WDrnOKVahZ$M;-$yhq8vF#&ggox|pAbe&0qidc z1SUkR9#D0Z)E}c|d~;L_KOLo8jh#~&nWDZyT!k{ett5XO8oo;l`e`M zSgyV`d|T+lLD)||nY1{C6S|ESwx0*OZ-}!wqW-?}eqSSvmRH2y{UeRkv;G5*H&T=0W(``=oE>{~cI?qfjXhGz zP6Bn~Xvenx(k@`x{!8Pafnhxs`m0ickimy7o}aF^3mbfffin%9W#EW`vkjbM;Bget z&Ih&~HC#-Gm6r`3!}GMjEaNdjPii>*!qRN=5ni@}c}$RwgY?^Ukcclt zH!GMh24b^@kfaJxupxC$3o|` z=~a!-G58$%hQ^OG_;Hr4Q0ykC~|#xY)v(v_xQT zWw9;QJb|MYj###6IXrI76$G;_TeOThzj(}y{R#|VVLNUc!Bzvp(ykBguZXzfh0&M5*OSMZ@VhvVO|fvL zz=+Jk7#m{oI2j8ASQt%23u7#Zg-Zpl6}U`bj5V?NsK7{+h0#%D9gnds7Us-3tuY{6 zO%ErBhU2!?!OD2&4Z}&rs-(eJIPsS8D_%5&4cQsTGB?oME2yysk-$P_-_WpPN79Ji zok?K*5b-HCbqrgkH2tvd$yU?P8hvq+BP%dgf{pLQxA%1Q?7)DPw4J_M%T6CB!fxNf zT3>BVU2UQQW-{T{t+--+>&d9y2U1kJTBWOWwMtj%YL)JfU`PUInl(137bYM(1}KHQ zdp38ce7KaQ)~D&UM4DGO8#;Xli;;F`*kAioMa<^JU14x1SNzfk>$lSx|2*$BQh?`E z@;PdE?-@_YDGe0hWQrHbch2mV7O2CZfwic1eGM8weXR@{IFrK#XagRW{Ji9EJM8%R zz|U^!c$zmVqk7tNGEky!9xu%3J{edY^9F#LDkg*a9cz=srwB)RNW>3ehf<| zb^ihnRd*{uREn^bx)+2_;zyz5Hm7vbU$)1jKih0-mH=CMh^g!Isr!mg-J8&HS&+^x z-b!3}Kk3^6U8@WXTetAO;Zv81Zw!9Iy97Ev=W(Y`9j{g56y7t+Iq_+Raf9MiQcmuF z6+ZIZnT$a9LrE&!7qBnO1nc-aF@KXsQLK)o%RM@46du?fZkjUE&g2I=)|q z4c$iQ_;~q^lfz>j-_vS%y^4-`sjD`0Hz_(kUh3u;y1Nt|zwNr|9#VANmUq)Vspzol zs(VJ!@p-$2_kyCsYk{lohl&ob3$D6fDLSw3>~AZ&B9HL!ktKEAyuP!~P;~rG<#xVH z6rK8=-Tc0KK6LF$!Iit5M_kUN<8cLr9GP%Z$6M$Ir2m(Z_$?A(D|Or^8Qj@9=z9(J z>R1()Vuu^s#>057G?nkGN$N~}Uk#M-is-!l_$|G>dh;z^xAfkF|Ga*5-hrrPgCWDR zvk)k;x3&!id!K}#vkivh2kzJ(Zb^2}+tR)zvioyej%~@>9o?F_``Ffu-O=9g?)Ki$ z?)I(0-TSr%c2BY5D7OA5+vjyg_Oy3?t}|=TvChmr(L~0cV~OydXjf=YdslEzdm^xB zUm|<|@n`Yo+|+2Lm7+OqcXk&9$9*@_O_?LPv;b>lu*o!le!11m$VZ@nIB zee-o1p?dnvkMrrN!(lq~%W?Hv@pTz1mDhK}T0<*!AE_Vt3ZH*{lGK4Jtatf>9ay|5@T6=^KVL^?b2o;`lx#Jm~7*_pM$N#Sv1 zePhnZoj$kXyp@+t3~b5H$qr&Q@6N!MzicYO_V}}bEhkC~!uK>Sw0yIJ**VKC{|2FL z=xngG4bV2EwCrnZ+5Z-yy`}ROOM8puC&Oi5Tg(2>3GH*8&so~%EI+AbUt7!m4Olsz z&ylaeROAMqV=#g5R z*X!7^zO8y)tJ66)E8v~aUh$sZu~|X0jLbmZN>_@VlUb?Q>w5Fs&zZPpW3BSc->6SD zUNlNQj`hA~-p6Kn)(Ku^)M-U%^_uaU*vVWo^ZK7`9Whq9_d1t%1H+!naFkPd$v5bnJ*#=~x{ z`x)I)QPK4$U`NJ2-&4QB?}#0lRHi%Hk+ImbV>!-_LBBwsuyi4abv~26tMOR|pGAM8@ezZMSnI*2!_PMO zY}&0IpJVVj)UWa541OG~)A;cQKb~S5Kf&N980%wCGNPx<=4p5yjo0veZA=@FLw_}0MWFUrNZ-)#B6?KAi!oP2mM-pRUP1#JUP@PJ zxSY<{@Hy7FBN;*fBXfAJs&oOWpkK?*Yj_5zl3vkp6@6X9)u}OM90sq)t$qg#U zfjcdnMb8S%Z^~?U=?Q`Pna^X$?iJV$KZmZ<^y6rQ!2FEo^|;y29mi*fHzBoNwtf6W zLXs3dmw4_f>&IKi=g~h3Y=@Um2L!gmE1*wnxR7oUn0pR*J?_l{zhL1>bg97DfS*iN zntlpR7nt8Vc|Gn-jh{;Y2lor7&pv({{jYQ(!xNGw5**&(yx(vYn_!I8Hi0 zcB8cNgXcTvOU^!|mA4NIdr!dg1TN?8r|q!|ytT&aeMpSKTOh{ZLCoLkg9`jYjY@SwnL0uKp%k-)(^_07Nd-{?#p`S*IsEDVnfY|}b zLt-XljW_Gr8Q-)`ORwealp{>^V6kb-Ko_scnjGAbvaDsr#fnr)oT5u?A5;Zc9o-&@ zmpU33ZB#~asEJ-VkkpcHg59trhJN-Bn6Y#XC9neM_MvVyWCx31Rxq|dUjSZG-Cp2* z$51!M=p6N8(#TQ`q=d)Os>^WZ?dyerwceRJG8uQJDiZ`cd7 z(;rVR@9JEhT$XSc>}oGf?X1HvSC{+CB}sLzBU$TQjcYAihLN{?3y(U%W!0`sg&R{_ z=gQQ$GH2JAE~|3QgFm?u%}QOuRuSLj&j#iBYMj{Fr-qUt*3;p1pBm{FixToEvvXEm zI`#wRj1S#*8$|B>OgrPrIi->0oYr^H z#?0AgbUgWd@h*s0a?5esp5G&-ll#*R9lx7NjHH2wRPp`&LUG;(f)?9fQs(pPw~!Y_s1<_c(MII-GLHq2uyW zkKc#zKk;4-ou7C=;ZygLPu)cHiTa6ml~3J=ed-SR)cxM4?p!>WR`Z1x&h5H= z7&<@ad&sBm_da#!X8DVEhfm#CeCmD;ou7O;7dNk;a{58&{N&%)ed^xysjI}~6F>3x zLAO>G0&LyN!8d${_g~O?=8LG9F2uvF)gj(bC~08&cIa?xrkvcr8$L3vOx^{Zlby-i zz{$Fhb*;ImOQB6*e*`}ckJ}6A&erDp+>VJKQTWy4hazj~koB|Q#9=e#KoA05kS9A+JbZZseLJwWLqFdyl<8@PIzAX08jVQV$9=hF% z4xemXug5+`$1hNB*KNO|JI6zJP|?LabVn5(J|VfrdrZ+)dgzWTI(#y54Ub@CROU0^ zV{Yf0r|9sB##I+pbhRG3n4-fcCfD%l6&<&k-O{&K(JlATwJW-FJ#+(#?mQ3Oh@#`? zgIoG`D>{4vOX*Ne@cgxu+Xo%52PB=WlerD6c+<<6H2ih0Acd1U-a^_C~)N0J zAGPZ7NX*Hv-a*In*N8AP>x;+!VdCmGD!@w0SL62te!s=cCa9n-*l+^0ZSWv zAh4J5Eghk~*`en;G9Cz9IMA87x1lp@?=78?z0Y+~Qy!*q(@;hy`PT_C{RGm^IUoXSwm5Kc|^&*+#ZMY%`tr-_6+Iw>-J2$@%leEj?{bO&@J+`CgzT^PbD{E}oTr-}+gR`;r%D-M9YOb&d^S+B0wlp+7ID0Rw>~aYCEmy9(W~Lp+282;@?D;9{ za@Q5Vgfz6J(r{UEWlLidR^cvwdCE1p4;KFbv8-dZ6mgV3P(1nA_mJ}M6m!boryO;) zi+*wFryV&DP7hTz&FM_EBsw4N{7GlggTciY9i7sW^B~6+`eaknIW56^S2l(33*2*} zG||#nS^jXWl|IRLTv(a)aE|5owbzg1 zVY>f`0=oQitRr}0I$d@76q0qRtY*3LeHuURvkPDR9l94KSKfsC`@*OHI2#yp#m)Z+-;-16Z@;$7R9umh$RRcI%e~Y!Z z4o50`Rv7H}T#B{BWxoLKtx&18mtq@IejIY_K{YG7_~kvM{nSzat4R3uj|*ucFx^-ZS;nrp7$rkK0ZsE^mc{bF^b-iX7N6w#y5oJ z#yWfYqAllcw7zHC-_|$AHw|p=u)lDN&+XCJ&dQkWuse6B5ssbiE||+28XoNFO2%&x zX;r+okM`POd*x_pvcuvhIBaiq3|up}3#X6e*t*pG*lv34Fg$Xsu{G)p*gr;#$X>G> zc`O*em#F99Wz873Udr+Nk=L80809`wGC zPVanAHQupi){b@mn)jfZ&uk~kJ)gbL*Zbc0zDALgj90BUIKA(LwRivFoX)wN&atEO zU(E;Z`*|no&#~$nuX2m#h-dlvQ#*F7I?d~R$2!*QK0TdlG*-N)lV-1D-)m*#?D;Mx zwVnKKEF0!MsMfd9lc;aK&V8)=(M*HdUgiE}X$1ni?;+a_cF(dO+YNQgs{aI5=CIHA z)UWV6V!I)g>5jG=EcUGJhO@RCPRe$JRcaDkc^U3s)fW?dRnl?Lz##*N4V+=%Oao^b zI6~h?{9M1`{z*7x8&A`(QJj1{<4Lr-hv#tE$z7^ZeHu$K;bGz7fQG+iraH)ak7`V*9a}7Mt z!1E2fz`zR)yvV?d4ZOs_OATCZ;ByQdv+^SM;n}vvM+N3SCbq3{vxZX_-WsbEBK`tzyJl=cxKq~};r(QsRA7riq&g1L zKPWug*0@^1Y+D1}bt%W|&FFlX=4pI}!DmoJ<1-CDliuVP1mQv$iKK_0MaMKgV(=0A zTaC{)_-uMo<8ur?hyGmS#~J)M`k=;-H~8_iS>q=d`~TL)%fWKKb`)QJLOX4bB4jspdV=bOoN|E-_rP5 z20x3Q(D>N~KbtA$(7TDTCMWANwDk2F4J@G<(9##b181wF3ul?Go)AJh0M zgRi0?jjuNNYPw3}YYe`IF4Xv1gRi9$jbCQ)%cw~3SK%9f2o@#u@>xg!jdA1B1?W8b ziH6UoBO1PdzNFy`>3$7gMDN#dJ+*7N0qgk6*m#UrBQ4Qz6Jbf+lndY~{T4sSg$vLM z`jLiP2$s83EZVk5)ufrf+fL75)4PQ)+8eUBcG`xl;YWNa*LmBKAzzX&} z-$A+nMpz%z@MW4Up#Vk|-=*>EX;8x(=qe3gP8VwU3M$j^m6W65tBB{3NC!(}^v@c; zn*K(^*U&xD5@m*xu0w?#oPk0Ju|H*k!Equ-!?!0ENmuYkTMu$`VlI;8PM z^q9bQc$4TJf%&@>+XmVpFgMc+f>WqNVEcTEX@$Ucd{b$$z;=F5qkIidr{96#^ewQ$ z!~3L$XVSL?#s=}tq9+CBcSyGNv|C{Ne4=!Nz)?$ILY)HJ=_#d^0wbGn{2W@M;W8=| z*bZ+ly@lr=r_a{oeNn^n={XHApvN@4knYg%BHE_m#dMj5mr#v{m(o-Xm(%~CV5HM? z4jmKNKHnI9TjML}2@O}$Zh`ImsG{u}kLRO?Yp7n+*U}sfFSFj`kUf?=728eP^HADu ziUw@kO(g+q&7&OPd59qgnCEfkVDY9AvAthxza+MAifs=Y}v*d z``01dV52=}Cs;3VlfVtahR|1q4Iyd6=qZ8M3;uw>D+T^5fv*$zuLYJio}LyMl@s4r z!LJGYu)wI~s@ea`0{@M`34xyx_-27I#@Eu{BJei^zEKQ8bq0`~~~U4fGV|FgiG z1^yR-KPT|30)J89?+N@Ffxj>CV*>v`;Li*ELxH~_@V^RtpTIv7_>%(vFM%Hv_?W<- z7Wl^k-y`r(1pae@e=6`^fnO8&Qv&~Qfj=bh&jh|r;MWDd42Al%Y;bWmvt>qzmtx$O zgdrxy(w0RkwkyiVvb1F{;K*Yv`=n_sD~#;}SROJN9~y*3CDp1`D)t+yhbu8FqOV7q zaWa@he{xfWu*2j)VIiAxITqMD8!NnS*YLXC!?UPS;c?2-Ib=jOl<3_a-(dxLgP9P8 zOSp3}kKoD1iTZ&gVH=(s%Q)(`-XdZQR1%0a-_!P8mNTTIfrzyzg1+U@wRkmlIe5`%lTBS z(6~&DI+OnG!<#n6hr408OPUr-#RPkH$v!iZo<3Lo=8m3G@=b%=FwnUdH(Xz0RQX8u zb;oAP|xPRj$V7bxf+tqCOQV< z13f#FS{YQ$#A)fW3CnEZVDgL^h+BQ>%J={(;o(iNXVx*a4L02>Y$I;gi6-LJUCTGs z)+DQ3jlDVR+}AX&sC6~BR#D?>Z>^%n)!ifY#dlq;%TS5U5~b~QX#QSEAZ zuA<7-^jt-itL?dpD)-!|bkB`S_uQy-&y5QA-0-+w74ErF;hq~Y_uPoN=SIvmH)wq_08rPyw?OGD5T?<0BYdNTLEeBPu<={PJj__=| zT7B-aMaHx3>QU`lZXU;-8>4ATYm9J4zJu-R)ElJI%Cn+4+u%Oi;C63tb30wVz0X)P z{EVBgbhD;uH>P`&9fQ`np7C^?k{L}-Ri!pA)O7tg5c5T~>D{4Qw9Hu)i0e+um~APt4zTq?7wk8#?Y6mmF*5 z{$~u``QY%$B<0YpZaH4hK7c(LZ!`A!n}c*x$7=(rx^)l~OA)qGcbTEv0*=4QNhfs| z8M@mca0>5o_^a{m1FpwUI(fcxjqr{^Fi(oGmGO=i*TxEpgHPt)Z)jPUblWE5rMup<_Fc%}TtWE%%V2yUQiKU51Xo3(GJ#AQ>;OT?8tX zCbo0A(Td6bCv}$?y5Bd7u_;L z_oRz%x}p0k7u^YDo|=CLU38{h-sfF(e`kdEii_?GhVDl$x{n*WpS$RW4Bc;CbXOR< zx1lSOg#cSw{?0RWQB=-O8@~z7oP|u*^6z5&d+%~?>@E32rPu)#Ebx-@$y#bw{ za(X^0KR>!#q4Sf^2Yu?^_8D(;uD^IkeCnR@se8+(t~$?O`UZUJp7g2vxldhLzQ6Rf z`_w(;Q}?P*T@e~W=u-g$weed^xusf*#|$WK1^Lg%MG zc*5dXDs77=$!0jZv}^@cFMgm74JQ`#$SZb z&++5%aLdqT_~8+ra@9+SqCkWAMet)CZ>#ZBbsL~t3qRJ)#!u?z7`jKH<9JxN+(Y-2 zqT{j8Zs8qPbmw{KUQu*>o!!EFP0?N8p?gEo@z`m%@WM;e=X;Tdu1L|lZS4DqHFfhbt$?P9=c&g*W#hORne{V(A}@-`2KXe9*-)zHV@rXif)yM z?y#b}*hBYD~fKThwe2+cddu+4Mq279=h;3>GBu%&=o1Vb`M>dqU-R`RV%tq4_&jOOL*uu zD7r2WU6-Oudgz7~-6jv+t%`25hwgqw*X^NuRMGW#=$=w^TRe1!6&<%R-0rtm6kV@} z?lncX%|rKwqU-a}g=6XR*RSZ%{K0(5v@3${DEio>lWi(A(>2{|HAKh8OI5n<#d?G{ zAeqB>=zc;1Y-M;n3Ue^o)ian(3`fiR G+ME| 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 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..0756a27344ed74c8bf80666a5a25e14560918f04 GIT binary patch literal 668752 zcmdpf3w&Hhb@$wTNGn;EWXX19TUPGMvMt$`yn0J{fFAZnO60`Y&Rb!<+Fg0qk+kcT zWXr)J4md9!VGRM~B=mDy3J#>yq;a8;6cYj@CBQn+LP*+*r$d{9X-f!{;_sX@bMMZb zy}Op3^znW7r>ogB=Rap=&di*7+_`hTmj#od=v#_6>ekCAk^Hy(U)Ni@I=i^f&SJ)# zFEh61*#GYPw{wjBH{RNN)9g*Tzwmpe<-7l`jcIT2b`%e=|I&NYlgu&Sdvq&v{8!u$ zG3Lm1f3}M`-i-Sth~r%MuRY8$&)Zpkh@JCp*vg#$Ki~I-nR7n(#}mx?KYY91QqL~v zzG*RY{l9o0n`N&5j{6^8X0HDSZuk0U*}U$dW6b^Eao-zd?sMIrd>?ba(K|iN+!u2H zs+zgqz+JHD413e=?t`o#*FE$TRxqD?&l9ZRLhp|-R&c)eUktN?bKT!au!0M{Uww=f zT;N?;`8@j{ySIOy6`t!(&a%S!+#eWXg?9HJLmdAV_s_So!vBwM&rOHefBXHRIp+EA zyua}*^ZYNki^_Je|JC>Pi&@eCru!4Gu%h|i&%DZt&gcH8Cs>i){f8%6QJ%Ya@eXFW zYmc(x>^l$$PL2lxf#%LYG&mLrPsRetnLubNITi>7S|i=9zRr$L;0LyCzOK20oezBb z0Kj{vsmFsY$7(5?VSwn3yjCZk$^pWG6d?{KM@i!CbI-YCW0elk-$`B zaw?DrPEAFU6IqyDk%>SMAi-o{GPY|XIA()@?8e6v$;jj+fFpJ?rUK)^nLsi!1wwAi z&U-YrD+)=7BuC@P@!$kyDk~n_OhT-b`#>TwnH3@#8H)rbb7~wCJQYl4>lJbl4q!Rk z74anGAvir14@CC`Mq^{3v#e+l5}KY2M4$jdW4GqyPlm?A=aNC?Hx`@7))~eU4owEa zv1B9!`h|L68xy1x@{undKv4PS6p@HbOvRw0Q0ds|3(77w6M+U9oC?||f|7VH47B7N z+L}C93ZYr;3+|0z0&U|r^B0KBWCQGL!Bjkv1)YlT+69V;O(dqL0;9>`cqEX7Hk}Ix zH7q_hJr#>*w+SIBgHTeIjO>a{LhTCdOU58~ScFgt$^CXlZOXKPoo&s{q1Mj!yf!c= z9BiOr?hu0pDG>`<{K(WoTFC4qLwlj-WbgS%rXt!2kslPd zC1P^2#LiWOh8YKKP(AGk8m=!HwI&$ z$*E*yV%JnOBMiA_i!~+jC^OxH9mBADCeJRPD1I^&9gj_cW|Fa8yF|BZ2AUj;?Bk}` z9Q1WiA;wxlF!mrz8VYodc7{Wd7CZBJZnP*+5*U!InD7`6lHnnhWW3NWC|;Qs#bKB? z8~_DkyvJ3_chM%SuMJTh`h!8WQvC(*7B0d!vPfYEX(3259X5~1l#*iDd4*Nl{1(>rS zCIcAGC=4l#FdjzXWOBe6lt`n*x~aet`^KTD!tK7c?yzqpyQuP@L>Zxk*aX*#*+vb| z_{3;zSC%i@AEPx3q*TVj2MaVborI>11Nv!Utt2MZQW&Mj;=E2vtg-k$9KYLers7jj ztl2!Xk_aj0fF~3j8ykV)H)&ZgQTuZG!LUFQDXV}sk&<_KdTKu!gczSrp&aBYxkfKb zLeL`-oSx+M!UzRbD4+wtd4{H}2_jD$nK(03)Pk`Sd@7pEG<0s7CKIuYA!}=m zw6}IQH)mI$=5wP(H6nqc7A2|mkRG|Wq$lAa+qaCD*`70A89TxK$WCOLF>EP1jsB$n+#PZW%A7thgi?bK&G(kMA)}`nNOydPunuy=tJGl<%o)mi6STl%V}8= zXY|R_h%|N?Fd-L>g8Q4A73nZW!y=JNz7d`l7O{Ls-VKtoR3MgF|;?lU_r&q4WBwq!weBJ6A4Cqo#D|o zn@XAwC-MS=Q)x{VMRF2Ht&~KHMfmL+i;sv!O!AggK(v`zqF~)B5`(d|F@DX6GdPww z$hN~I#RhM(Fo2;2KGxe8hSlUiYpZXxy)|sJe4Pg+G=LJMj38;|1BqLq#RS4}K8;2X zv({S%TgXvLm%Plf<&?D;C*nz7hhb0~>~3vsvz=b~pa;o?gG}s#b}$(j!G-A1=q^D{ zPEEtwM23XEol_HFpf`;Nxt#_u(lkZc2D7bf-|KM&&G6m-f__((4Unual*fPgnwOhtr%ldvWpmvk7Ju|$e1fYxZK&%xA2MOm8ykz?zr0;$QF!BD)S4f0a7 zVbvE>#>58NXeOt`kjsfYrma5EcI6P*l$G*EFQYnTpr$X69$K843zJ33ruLWN(IYad zxG*lugi&(HLmJ~zGc@;BYpLOj>zc6QlQjr4Oif4o=x9fCYqw30!Mnd4Kw&UBS2CI0 zgX#|1cut!}l#`J5aifak{KewSbDi-{#P>l*9ggqgLj#UAOD%&l9#TnoqkCxKogYkm z;mI7tx0lZ^10$`WaIm%2X7OO2A;{u#X;H9F5ioc7C@C@%2~ERl&J@iYpf8Az!Ya=M ztnmj%rzb+tZP`2^1!DoD5quQFN7>keOup=lDD18IzEtYWdDWReIo^$9R0RvkF^F$i~=94nJ zxG@HpPUVb&N;%1=YKm-PP1&-{!3b~snMYmNNE9)sW}C;aHYmGiqc*U73d6|qDhvU6 z6-IzO3d{FAQAw<*J!7FTJdy~9lQd`;>fh9#W766JtMz-KFQMHG@E|%E9BGb>+Ra+? zBf(Zo2DbHX3G`nDKjdi{7zjSAgE9Q&LdjFiy~waD-k2VN4+mPL=tv07rD2Q((P0IFu3^`t%FeJP4qx#k<;nqMZ+gy`iORy7OopZY}G%Q=sEYZQ}NB}pU zWTSzRjZTa-+dvZ|(C*YU@OEQK7Iqio(_ll?3{pR0mkNWC9RfF`#BGC2hT=9c2;b~< zLQj{KcI^GsG~%Qt8wj3RNV02LQ1Z>fQk{aSV73(d+J@Bu_H@NyMv$EvgOL>r)j4Yw zNzRPeNFd*=;C#6-D@V}H!vi(YlVM)E$-2L5dv$;=T)5^A3ilV9~>rKod-|QW-B8$ih&D$7TA8 zp@|U%SaM;pafk)7GeDKYyZPjFVv5@!Oi+%nR_}ZP>G7VC7_=-R8P=?DQ#2j~Wx(@E ze43d_f<-}g${laPM{%$>&xi)h0*vjl)t#wKm^G}BBh$&rOgQv0r`?7y@`O2%OdF36 zGM>0PlZnt;t!Pmp(AL$_+SS~Zvs&4rXpVrKscF;<#fKz4a)*V~37BD9J)yh}e*|u( z-G%*N#*xD37Vx+WHmraw^x(A$l`7`Z+!I$sV7h}3ByoY)DV(p zY=R^n?0ZRaU$OcO1%wP-$PpY-iv)uzM-rZSavYN3$S93kD0=EeNrcS8hY|cCWEM;4 z3W^!WIGtJfGjc%Tq~84r<3f&CM_5V1mHq$WVh81ncWm_kD_8>{j}gRac1 z(^DK;R3z3uYzX*^kN>TCH0K1S!EA0Ni-`fqZUs7FK-Svf>#|u3I0qE!IEvvW5`+jIqE>PvR+z(X_>YlsCjc zsIx2B);4OtJqay`Jr1&NJDta_q<3rJ>TR31Z{A^@S|Drl4Lb${gIDkHJBQAo18eSqctg z=FhV;fy{QO59wSxD{jdobd!|enQ6?5aeD5Ds9kZa?&4S`(2@mzVBF!Bmoj#j7 zdQR{;ib*k*BDFsIVlu}?_GJQWKBKp&7DqNTZZI^#M;&&$mN(C3(0O#tcfKjn+2~o? z_hG7;*Kk_vq?!k|0Cv3v+e6KE>-OhHgQ8*1M{i9;jW-$sQ5(O#hMx^A<0Vkjfic*0 zd0Twa*l7(>>YCR&mrCTu+p96^I<8VJE76|rYd!c&=8HZCemdE=tOk~S_%9Q$5dBnEXZQZA>O ziUMpBv=!4EH}omFK`%@&EiB{Gp9ReK2^uM({eW2TaWJ^?jE)R{MHPlOiKZ=j*y?38DNUd z5YdiIPilCYgA???giR9QVg& zgIdL@E57rRiIm2}mJ%4}vtyboXK+|9*q2!cbzC}s;}iQAKBVBjN>@joxrY?UHii@} zkrZm%KJ9KGK8yOlD95%&%Yz3*T99Hd$edpx?j+ZOC(Yw8J-Q zySwxpP*G=aE(+VI@GTh-whNw8z&<3gR0oe%cr@k{D6_U$IL101rC)Hc;Uyz`GDB`d z7!BUxO|eOM&CzE(|1p@jb6%uqZ0{JQimOXVmH3$AEFLxNUCH=#B8vq{x045>3Gx1t z5`xAEME=U` z&h)ogLm|AffPzKGlPT47?tyJQHUX0`eAOs}LvL8Uf~RT5mG))AgsroCv=v^W$sVhSu|kKtu}r>1`avb35OsYx>S?gEiMa+UY*T-_A2wm@BIY^pV4F zgTY3hct?w;M#Ow|d_whyqS-csX*Yo2u|x7e*;&E1N2dCM)8TEnHHDJ3oi>kc?;pB~ z)5fmKelREIZcRcOoB?{U1v~Vu0U#Stl4jO9^LpI4X-znFUD%39sAZ!+`cN|z`w=qD zy^Z=Ks!C}8U{u-N9BJ*e-A;cltWotgZRs7vM@E*+$@LKcHcV7&7Dv`r785FzTz|6o zf|=!S#AGx)KKRGIzc3{XjdXUjw%Dwbf!)l*2^W8zBT^w_;9!xJPC+)u4ra*#*=4(5+x^aJ_`#wjqhesc9T`O(?#693*)r zBd|vfUqFmPOTwqG8Qv}-Ivy&E`0jEn{Mlhy^37Y)vAWM9lE+I<|G!&m?cP~}<<0l{uT$itBM zKE))wzl~juc=pVXcR{8YUdZwg4>7?Z3Gh@O`YiKB3`s5@iixp^<~H65sQuXiU~FK`B}zf9*sSOTB0;t)kn8*Q(_vr`mwB0d&` zP9&pbkR3rV3ZdpI1%Pu$LU<~OcyKMtqDFy1cyBEQ%2axK-$vq?mJ5p<;-y!Ouy@9l z$_U^8IA+PUg1~WlRBU6&h@ey^#8R6inuOZLnYVd~bV0u0Ek-Hvm=vDb0K^4mTkOh{ zA{1<#I9T*61gWH*o{Q5B zF0$AZaoS${p=0ud1e8*lU}N7<(4+bq-ny!&7lAl16FI8$3M<$M6s` zJ|ZxMK+446)%4=E28Z$XLB^&Mahv?p5}-Jj2VSm()9NhAfC7lYx{BflI}f7!LSssj zGp|!*!_6b!EG($tuq}TC%)*E@3S!W+Fk=X9=991LTT-mlciPm8uUWT_H2Yw32bXfF zB(LxGIH>P*2n)QA13QLcp5&9>k-!>Z_&1yWIcI9U>MI`Dd0n^FZfTn*hFVhMR@`Dr z=OUoCBo1#NKGGF=hhexuXFz1Uly*lj{+uq1r@|Q>Kl#%LS3EPxc*J4d7vEAbBPZB2 zlsQ#bJUY%O6*CY{ocOCsST&Qz+M&r$1YtQlTPmC@7#JPrEtRll6rgo6XS4cSz0G9= zUQWi#uV%_+K9pA$AKNS*7l|sDrZ^NO@^Ho=j*2v8l7E(tgfC2J#Zik2p3ki_Iz@b@ z6`K)KE2V;hBf2aiY&3{6rYB(vEo;j36c3$E(TGfnPK$fSM{%VV0%TUrc*~&X7YcNR zMnWAeq1+3#_BgWzakhBDh^qde+8{8C97a{&SeB5yW(9*>_~Nm`N^{HRmO zZWB-Hpe5Q|1|dJJ=Ged|^Vzx{N2^$Y)CC$d-&)T!=!03~%qq z3uY9+thbgbD_B@yW+Je-(F#a|6oPSooPOi`oyM@nWI>+?!)!d2Y$C)bawZF2Yag{0 z2ZfXAAu{mf9?=z8tHjBn9r63)G%lRquKv<1j6H5rCff>Kvih|g+m2y<+PX@a zV-K?7tvon0yp`u>hPU$A%Cj0$J*x9K( z6U^T0nf=~p_R!jPh1Yh{YqwV`d(TJq0ZH4lAFyv%UhK4c#A)|40O`uubOxLN%AT(5k@t zNf`O#ZL-_J&ITmQGBI7iOa#UxP+mhx$#(=BlxDFOd|PU z7%`?Q#9mB1;>dh~c(kjlv!%G zM{ttg73>HFBeoAY&jA&QHATfIVDbv%2RN@etM@TLa=kYEq*`rwVYVkG$M_q}h9`EA z)2%IZ`a7z_;@?HyW-goIT#IS`EDQ2T&$PBo+RW?n;V^&rFl-AHTPTTb+$epR5PtG+5OP2H3x$S% zb62Mbu(KEsQNUGUD0&>EG{rZXUa%}Gdu3i+FhIDYi|-^fd~mjrIg12+QSH`{)bMb` zNcPphSY=7iNAa<#0m8P(Ee`q=Z!|I_a?{+=+11|M-qqS==zs&7eZG#44qb0;>uPQx z?9SplHV^qVO=HHTv3i!F7<(*69CsTz_3UZ(CD!wW#1$vuK6Ap|puNEKGfx#=eDCA$ z_8cnwcp3ASZE?*FR3BvJH`E6QtB>@({vEbqVVbRC`e60_%stm!^|s-!v%l(D(BD&i zwC^|HSs&E&bfP>O1^3KTOlLi=1})9>#1)ME9fJeF0g557{KSGG{dTRsJgxhm@gD6u z`xAqOa{7rrcUtqZ+WTCb*7Ty|XP(kQ>bc_8&Jpj^r?F7x-pa~RFLi@=_FZ<$<3H+S zx3l`rH0Hon-=4mBfbyj0`0uUa9PcvWRtR^oa4#YkLpwn0%)6B6U+V{56a!HjXd1PR z?oS2hSCl$d$9fVc?mb=t+OP3PNki;GZMLsp(|Zb;*EM%2u{lwYI9WYdeHiMB=Xm0& z#0i(bdf;f^;!`{?<&+oA?_mqmo*1ilrTe06odz`^bp@sYY6rxgc&dEB5xsLsai5mf zYS|pCW$P-_?%I+e$LdgQJ^HQ!-&JhA^VGJQ7anKp{_PZ7=QyR+a?OAYyr7OTFYEaY zq}kJ4Fsc`m)Bm-8r?srSzUT%=_3_Kk+(Bi<8^(s;KT02g(*GCQV#!3 zE!tt{2OWo9t00yKc`V=HdaY+Y9d1U)&q#KQ-Mo787QKG8uPxl5(=!PjpGoL+iW+>3 zm6e|;gnCkB))QCSMfJldLDE49)+Yz~L%A|A2|!~wj~UJ>!T}%4o?nD>Ug>dd;spD%1&>31ja{_sR$z3q4dm$6$P(K!1>W5BRwfV2J zTUfpOls1Q{^iYmultv}Q%TDA1>g($#G(W2=_3IriGiO&{b5&#ez;3qAonGhPa?R)a zR=()0TQm1;?NviZ`!x9No*SfJjyg7{)s@{*xbdP>R~}&N3Qx@v-#OQJWvY+8=%`!g zFP=j`M_s|(4CAKk5IVR@wjVo$rdS(jM%;&r#g}uAOTKdq!S-0?oUeLTla?!sWI>^K#pu zc^8s@^9311b zR9&vc+y_rs!HKvITj8({ybg6>1Jr>U(K?rtjVScj5A;U6s5ZF$sKeD)JN>~sv|1ne z{nO(=g!W2p4K(jayP;mZ{#3W0r+c;kX#1z{7jm6&%8^nypQqU^>^Iq zy$@Q1E4}DS?&F**6TiCsrMxZq7Yf&imumy{B3cTyDF?KT4-^&_LjS9gZhrV{w~zX& zZICms$l1#DHCuuQMBj1DNc)mB_JX6(uP*m56FpB+E%S05qFDXg(?Q5z(Q)5Xh%HR( z2b>H!?xF2ZDVK9BRT_YPOX zg0#EAoi2pC05n(#R$bGzIj63zS?kw3yJxfp*QwwE)}Wozyzax$r=+kH+Nsocg5GLQ zX{&YUg_obw4`}rT(5{Oi)um}yeM!1}&Q{H3J1M{egF)&%3s#x19g-o69IgIgeNSHXDDeI)m2&<&%(f;@bO zpRH=}zm-x0E$0BH)Ri)R75dp~*X%FYoi}z8!Zquw>Wy*>|5rD*kl&eQz0r;IYrI-- zJpEGXEUWjXdq^w!)0HpX4*%n)3)d{$@>+ij^eMascxs!4-EbbmbV9wMT2t@mwMV6c zw-*g@JIP?IjUhB>>4wE8S})}F1;(Q|E_K6*0m?{>NR2T)jpUgJcneM)ZT3JbDMaf6 zqxYvr9HHWA8te1%KGZnu>&v0GT_kE-Wt!Vq-t+LWEAORvN-!PRi@K=CH&Q41b{L1Q8VHBe0Tt8EUfMT*ryxxeF} z=a9dr`fh(M^x7ZaTy|=PVE_^a$QJuM*Rp1#*!E}3)8x}$y3 z3dg#B_kE47CH;DfAF$4%TgW@m!>~{`kSuoF%~seXt(7j zJbu?;@yxsWz*gZHD1jQ{`beB``%9=Kz4ZU-$A5l@lXB}E*tC;I)znX+ESy7?`Y-Y? zg>qYKmT7I8)%}$1xv_#m9fP`CM!)vo$a}z7z-IyZgsb%pKYxkOzdXkrGu?jPd-B;3 zj+rUNP~e#6;w#^UwWFotb{I#cd$6siJ-p80XcKNeI{l4lpUO}0e8D(%=n#x=VFpO^ zAlvaR>7^KQQflU;2$>BX;2ruMtD+dM(|;7k zZ#d8Uk{;>2SAN{Pi(S8=-VYOaBGey^#E1kGb8M$p4q(mB^z z(dm=t&;>A~)n+mF7XPKBn_B;Ra?y{aie^umAr=r0LpXAV&}z38_A{6bSM~O@ z*?xAi%2Rc)s^rL>iHak=iOM5dVjK2LAEjWxhDoHIqvV6A344p}3(c$8(&;@=UW2dw=WgjblxPtPt@F8y5?QuLszd&zbGjd1m#F&WveG%!z*nkn?7wQ6<{d1&v1-Lb z?@d%cbX8*ILkkkvMt|}0w(18q|Lo-@pbMO*7W;KwyQSRJyW3v`BT#N(pN7#UuT$7t zIZri+ai(ZlqHZ|+rG8C^dGczuZbe#KSDkjObEKW<(iocCFfNfbRf6?EZHf`4n6+2H zoIzWC8s?qo{utaJp5_RSW&+1!hW4e@eHa5#-PgQ^bl%D`bsxf9^=_E|Rf+oROtS_j z)OQEjS?1+-11*dk#^Ya7eKt_W}908;R`8V{-5WUWMt%EUqbUrH7v7)bqcLm z(rt$28pE`epD2Jd6hhBabUWt2XW?=NljEV# zdZryHtystkS)o?wD0F&U9=E5!Q|R${iaf=h1%)M^QXFJwF6fZhn<1lKNr%HW9X$T3 zO!O=Xzk4eW9CF>|yxVaaCo*rMU7Py$dc}rtZM>S!9k~e*rReo<#b8HKp_RL(aP(zmUdg zapmpjn?|`DurBphzVpzz%E4pS&Fnf^3o`QQJzrR?TlvCf+60eRPWuh>OnW{V54;I7 zn%)E%18;(i3r&aIzAvM6%&&dtE7zqU=X}alZr3{~4N|)~Pgz)}jqAJc1MC&FltV># zdG0Q}r{I3~FtovEzWTMVlRqmebwUF=pR~$#P$&84Za?|z;D!s7A=|HqNydz9zY;fH zfUS}9w(da6AhbtdZ_ zpC-)5CaZaqW$15$j0-J)IUU%p-)LUm3>oEbLOL!~A9CI0{q2R-U0DwHxo^fe3}wF2 z^6^}t3?0H5m!cQ2*Vk4a0OtAF2;C3{?gMc5R_>GS;e_Lg%6D9-yb>CBS>%m6-hF=Z z9k#v2h}f`}$$`DD2aM6Q|>WY4|G5D7;7#=1h3!2fob%?~#nd4sh5g z1E;5rkHp6&feT*>0&+S*ubp4s-QC)}f&O)Lw6y>`l$gG}AI|!S%rtKC0Sy~!F5eD& z*01w#1qyZz!v>qnn}*{fyWxfb-nSLW&mYZ7rk+?scD%1!8?4zBXRg-iRu}mZIG(( zWcb$M*aV!f2s%`xNUUM3c-A%~eGCu(JULjz3+m6k{f&S~R zA8PIB0*_6X3}dC=2S@TWUJvzPc*~}%8n?nrE5p#1hx@l|AKX6N-qhaIEPg|ai3|^# zIh%j*O_9B^P=us{?;?Iiq)XwuiJzGzxfOl^@p0tNuL6Z%NPO&J`BkX!Jqle!_!$GviWGh^ z@gFw%#R`7`@pY5GK;f4VAA3}Ol_>m$#K)02zZNR|QsUzXkzb_>zl``d7;ILi@XLvh zt5N(aSNMyFk3A&67AgD+;)e}3t04ZEL}Pj5$`8Ld-=G+)r0}?c#ji?5{$k?eY81Z~ zEBqzI&-B1c6#i1;>`CjeSm~d#&}PG8n~2}W z)dK%H-Ol6uyf&Equ4ace9@@&cyFz z1q#1_ebd4(RQQGLF$>?L@ICBa3%^L=7qJlwzgXcHv$t6I3l#nWw%o!mQTQe7H zENsD7DEJCCD)87RIH126u;42dd?mY5;IWTzK!35pf?urQ7sJC)o_-ywwu3EZ3oZC1 z3VsQDwL;eSQiZ>iygCMmtE+4C0s8U??GeagaL ztMJ#ddo28Vg;b{|5WiXBH?wyOK9-Tj zn%RD!v2Vj0>79ZPB+wn~3JcxI8ZC4etF+MF?6`<3*_Ut?FZ?^)<;*i#mIEBg}*{Wf-=h2F;E z7J56o)bbwV@=$-60naLlNXOPWFw3D?e^}m&U7Wi2AvA$Qp`0HI3+QF`q!Y^`+ zupbFNu1r=qTG{7ee1+k65DgYk&^XMiaJZOT&_1Hw>=hWVARgz`6|gz|+k$?8=tA}x zL36x^y+_b9#4loDLE{{`!cok61g#UjfK>|`lU?B`VZRmqH_mx091GbCf<`k|;V5Na z6!Z;5m$5QI;~cQUv4s5s`a?`F&iN`FFy9k2+M5c;MeKy2ze{u#O9`5XU&baZ;g_=k zLE{{)!m)zY33>z3)$9+@-(Y-buPPiX*$)J*6J5hTC+KxVU(BWi&GqGF+Xejq@oQP5 zpmEi{!m)~#3mWH474SOAw?GjXAD6d=J!YZTvik&$W~0JU&-MtqiRcD)lZ9T#e1his zU(ZSejdPj`#|HLOu#XrYryJRq1U*6gCUzAD6jud|x!$7CK80ST&`TA%NTL6;$dHcd zVeDTN`tKDwtlFHOg`PoZyB=qnX^ zy+SWi=>NoyL|mx9pDOfs75Yhq{!@j%PoeiH^z{n8Nuk#%^b&=pj!#POKRb=obA7&~ z&|g>RPb+jvp>J2{m_lEz&>ae0qtFEk{VM3#xKQ8UQ|K=%^f870fI`nGbU>l~3cX&T z%N6>UXzay>>HDfe&noncLSL`YoeEv8&}WRuz{U9fMxp;iq2I00BMRNC(9-f1$(N#s z*E!%>owVM>V7&~wKUQ3?(N0yzm-!CX;&<}hqQ&bqhW&o=I*qlVTc@!ubXRHYN_2sL zwcuYT_%{juZglr+>^5{08hej$kD?3VK8`NPeGFZYdmLSm`?TPHP4K@Z_%8@P3`bb; zof`Ge#g}L_?kT=Zr1ut$VZUE|t4Qxv8pCl!u@7es+#M3`4&e?9cPF~<*4UV!r_kLf z(toeU?iVzUTVy>^dK!hEHfSt?xQGTXka3(3={}A1pbLvSesrOdklq3sjZ0A%=HAy@}P8uGgp-6otd@c1eJS8D9<(7#(_ub>O@`~ux}jr}{iZ5sPM zx}a~D#$6oOA-!0**dCCs6E3KXXb4I!6eTPE45SBLh==qGdcyHB>Zt|Y9#O8nBAw7^ zcB21)#-iv#;3;(bHFmdfQ^K7^7vvlj?x)bbLexKq{PRGgzMn+*YeIiph5n#jbRqs) zjrE}mji2=PE{(_kAMk`9{Q*z$Zqe8uA-zpw$I#s&;(^7$zeXC|X9fQS!GBr!|4jIw z5&o~EdxORbP%jXFIl9+rY&p7bgZhW=HLwDJ?sm`*x>sooR6_ocB+Az)$_Z=igXq3p zqz_!u1Gt#~;!%x#3*B8B&4Y@g8l&{YG)CzOYV3E&hk8!s3vLa@11^;-v_l`#cZ0q} zyqnPd8lR`2eSxaRiVtXP7Tqb0{V}=?8iS%|#p4<~iSC%t&t8rF6Vgy_RNugEyoNMH zM(F^%QH=2czZ6~IFGUylq#xj~K^p84RB2XxBTrZHO+r8WpdF$=824dxZ_^m4fEB+3 z=9}n(T*wN^y&qkW`$2R;?jH;OCj|d9g8#VSe+}J9jiu2|Li<4%BKZe&_kdo7`wQW| zCR|v|WyNugdC;APc7X1L#;VZ073w3njxRG-1$scYPPo+W2O;06pAJ!P!CfQh4d{Bf zy+?c3gY*i}1Gp%s4Qa2a&m$Up9%*o2LH;w)XCV#Bpm?D?3y_BPS%NO;X(_tB+#X|j z>qvus*P#pgrS=Q@y$os4FUE`YVF$W5Yb*?|k+0(WM7no!`-=XMZLnX$zJ+-H(4XSH zPS}a}WbovFspuaz3BBA7^%Uhmz4M9qJV--2%F%`TL;71Qa6psZ)`)&(wXg%V!VUm` z2*UyXIuZWu=mLHeUBK@~7w~F4I{HI6(htb#KpMim1ziZ&hc1L8`M@W+fRCa-&}8QT ze?Z_53Ou!Mz&(gG@c&rwKOy*!qYL~m2>#Q84@E}tQF%gRBz-{nR--?Z?;3QWe5sy* z-Nkama;`ytXzZj{=-((mEdtkyD~rHy7Wo0=FpM<#j|hL#5BTRQ$6CaJy~T3C@-9I7 zJp#X5r0=a_JaBKOTuGk6hju}7B)$XXyjPU_9b68|r+gpG(4~m05cL9F(gV0upTVW_ z0{2RRqj~@|N@1{+yt{FX&GR`b9xQ<0pAP5Hu){=$8b2SkNyE`eTCrdqE!&^gjqXA?SY;^k)S< zCuk@XlK(?NPYC))g8rzWe=O*|g8qr1q481pp9(rD=${Gt&jo#2&|ehvD}si1+bI0c z1wA9^e-iZn5%fO``s0FrRnQ+6^uGxDLxTQ=pdS+SF9kg&=re-;grI*V=wpKZS3&=k zp#M$Ke> zAIHCNz>l}aO{O`}_(_tSEc^&cRt_oMcto9fsCn)*b6CJU;ykyo$$c4ldE%tgnekhu zxh3I|aQOkSQIj8#9H38k<`xBKaKmBx=K?|b!k%H{oY~ycj4vqVM!@$BOr_?@A;6^5 zw{wfb%!rjz~Xctv|TbSyQVYLr6+@v(;HFuzZNzDy7ph?bB{|N>`3Z@Jvd}H_hxNA`CVV(+>3reHSekZXyum^_m|*o+Dau zgeo0PngA;dCo<+h;(3@ss;<05bLl&r4Dt_zP{HOB#y^Q^pY~7^z6*ex$>TXfhv2|f z*uZbpEZD$L9R_Z!2D8AL;I)7N?6fyd(2q6Qeh{IFn;1ACcXCRcnb|Y~AJnn*EM#}F z8PH4Q)EMmfV{v$uK(v*;lTlFp44Lu0@NI1R&4ywlb#>b!d#0h;)YZ|e3nR2!-q^1# zK3E`nr>w37`#S|{=@9H>As}O7a!3H%jfcTUatTl^S`IOaS+POo?51t7qFLLe3EKdi zH<~le#E-x?LCF5v$VPyDrb$;^^U~-b1T_sl7XgC=i?DoP8zjaG-xh%)nKHhWg=P&t z5d;+xKH8T#H62eqB^DK5)@ipH7Iq4BaJzawyU9=vs?T=ikJHD3R*%Ow{Oyj@w>hUi&sqLH&Qv!|sC^S)b0x{Q(ZN1^ly^W?Z58SgsF#@_aB$DOu$Nd2#&er1@=8)SBUm4I=w9 zq~MEZwwR?Np>uxa6i55^A4WCi0ZP0X#Y^Jx+pYFea(va5MhQmK6@u(O7>iZaGRTus zLrqAG?6N<3t7uom0Vmwsep#2FzAm4J9!l<-riR38dy=1hZu)WyV(V*sJu-u(FZ5u_ zO)u=$)WG1E6%@vhaq8%Da`^f3Mq+Wy8G`r6vL%JgQ}`(n{3{1oUr@vJ4IBQ2vh1Vk zrQ^a;<#=ScF;J9Pqv}_f;q3QFa3mI(jzQWX20W}?c(h~)Y=nvZZ6*`xv1EphN!alC z^q2{RinTXGzzeJyqGdXEn?wO29qrCXw!4yvfV@IdXFK3EkFW29p|j;AcQ|LhHPYSc z>+CSTD*)%npAWpb1BT5xB8ByxKvn{qTTv-FSj{Y*#A8ai`op);ovI&YzQR4%&0-pgpG!+H&fkEvF9Ja_XQprw&?k>Yz2J4q9^Rpe3gcT5{^3 zC8rLWbLyZurw*EP>L8~I+TrVo#*)}BT=k-9s~J(n~ z!r5$NMc9sGSq;txSXP3w*)-F`v8zqZAs*JOTs$0w<>K*?bS|!aRmBKxLfEeMW@ja9 z5?~LpuJYPp)D_-rjF>f8R(G>e*($YyL>%C;CrKRqMONN@8>$bzM!OfdDH`fhbUw7^H&D*c* zsC(!39ar^VwTY9RKn@JmU9){_Z~x}H&3(OHb=x+-t*Z_`hr7M2ZgX$n;NBLSQpO~i zi@pElDY7Kyyw9hA^>y2|Xb^;_l+cZ*h799j7vdBVI!1)f5y?8iCdBH(ATl^c-DX{w z)lIQpc;?M$Cd4${$YBK~McN{5vEw4GN?WEm`he?nxeE$CMa2tB7M7NkFRG|q zykzM`Rm+yIs9srfvF@#1RkwQ0+WLld>o+tuZS*z6>pm?_zHZpuv|Ouk!`m?M?u7%k z7S*_x!B3byFb%iAS7`7e4Y5i!aOZXXeF1-u101?=zluxzM#uPlO2KtWJQ?@6g2Vk9 zHy}VO@fU7rA8F?!eToni? zx52#z{&Ifnfwq(P4F$Iq=&+5v;|lHxpm*Bf4lB6Dklv3=wG!BL#TDG=p}?DZWo2<7NP7r{_l% z+)==7H4-Pqd$)o+131`@VqQl2Zc%V^@ZP0e`Z^Wd?*X^Ll$OcwLIqb38@k49a6biI z$@zT%aCYtTiwf>pz(J9im!a|xDY!J??DRLL;9k!W@0AK}LmA&gW<+f0&#U0VIdH#+ z%*y$F7;tE_j0?oj^@4)K_vmo%uW=c;&nmdf7V)z+44jd^`xV?lz`^z@^D^Y^QgHtc zIJ@$IEs2(V)K}Q!a6d5onRap*aG+}QGUELM_{casx8O1pm8n-hR&d91;9zTn8S%mvJPYm&;B*57uA#pX1y^2akHh{<&W8_h6OueLUa(JCf1#Psh395GBYvY} z#CuTmM=gSf=VuHkIE?Q$fivX20yw#S81f>3gCaGrGk^n=z#?$}2i%CmJ0#>4hy?#0 zaLd8pxQu+P1rLnhxRx%q)<1)%;%=HJ?vDT`=Qo!;Jhx?&kqB^e;npqT?_3zrT)4e} z+hKt6$ordl;%b&!?Q^bpCjd8}d^`>~xqal4_ltSr)?GBecqitGdwia_*XD`4q-uWY zdne%LQ(wLYxcTVM0VCs~dDMfe0k?A=xX%D?KIQwb^Tc&PqnuAYeGlN~6Ysa?DX(_L z{PesVaPvvuUjuGF>2tuKWIj0mJaO-tC+=JG#8s@EU;3__C+@*{;{E|}^Qrf1U{X0B z+yvm}qvyxxiF*xj^7u5Dz4Bi?Kio&=iTfGg=97FSe+&1=@c~S|2?iDy(YruF>-WL^ITMzd~ zdB`_#A5w6a0Zs=#;xIi1E~emyd$^tvhvPs4*Q?+@4mi{U;uc7_WeV;Iz+t)&hvO$h z-oL^RSuall&X5OFB@_2`1@}DQ40$*{Hsn2~;JynuY)2R`OdU+z`xRVWFQa#25r^>` z@@`dd4+HKX@DYdOLIZb|f~)RhEG=*_L^g5j72K)p4C>q4COkc>r*jF2q6CWa2)j z;2r~vzbx+wz!~|dk#JE3_ly)Tm{wCBo&zAuds&jFOSqK^?o~;iSHisx zbwid1UrwWUx*~w7m2lruaASZw27JV=l5l^f;1*xO*WnOXC*j}~H%q*m05<@9#I2Ta z@G7JQ_ddWG<*`P>!7Jky+{XcD=y|P#TdLrm0Gv^7^%CxP@LSf)lYrB~57XBGw^6VD z5q`_KmnGaf3HMnA_j@Vc^%Cwr1?K{#82Q*B;oh#`7E8EB3D>6J>Hr6Sl#eC}hh-?| zV@#5VGK~DHxC0WdJrC}E60Rc;?qLbnnFsfngu`~6D}7H&xb8f-=Ox@Fd2laFxJ&ck zUX^f{<-z@4!d;#RS2CEX2XD!PtCnyu1jwnE4HB*=5AHGv*P917B;oq<;D#k!e;(YJ zgxiz{cR<2z&VzfOgagx+Q!fuoIB23dagRwjD8ih$CnX&G%!zwm!d;mM_p*e$Di7{e z35Vn3TLmu3d67I%4xaTF@O?hxHOSqf!;9iw* z!+CJOmvFb_!IeN|H|ihueYwh`TEYeL;5JCOoq2GVNw{Dh+>nGDk#IOxb;502!+`sF zfk9>FjW{QeahstMe-8)P;(}odUFZTXAxKsoV=QG5;2OA%&E2|uHFtD&wKunSwRY*c zj~M)av(MMj(V^?Dovl9Zv$Ob)%|m`oGbEwRdQ&b&)wYKsbmO=HpZcWPH(AdY5?7pr z`^<@t!8ha=`aiLI*Ua3^;#7SMzryP9KG%=#lGM+m)rXhRcY7;S{7daCQkC>=@`}{P zsL$U`-;|x{he6gUw)W&Q3hj?Zm!~xUvQ*|rX-zLn@h>

q;#-QbiK^SJmCb5z+x)n)>tIy0_pMhOOUSoO&g;Aayia zkeZ7Yrsj5gQhKZ?wRoWT$en$j?=OJ=?(bI&+|%cH`OD?^_Z9p-rt9(33{p~>`oZav zp=S8PaOp#3^sVE?wMCCc{qB#V_pX1+@W%`4sVb;}q7K-jH@BHC=+a-S8*L%P- z02&=DNFUughRi;zP#^pbS}^Q+K91^?PnPv%4a7 zd^aK&r4lpfmVp1+`oxj?N-_w3p_XR6vpY;`|oO2reE>4xh*UuNt#^~GDjI@by8Mn6b zxn=Id&Lcfljw1_GJyoSC*8{~z+_M8zw;rWXX(}lr1iCK&97DIzUpA{jYMkk={kQEu zSXD5G?tjc2top*t3-C4U(g(|{+^H{aD0z{=x8qm&zjWo79{I{q42dOC2{q*EIpl(r zRn9%1yYlmod~oI0=?lka>lV&F?{lYIvq$?*oXVt#rA`j&ex5p>n`1i@Gdn4@JdbiZ zTf9g){4IJP*8Vh`gA%HGwqASjtlsE57Mx@C!C#Jy1>Lj9MjUz~cr11&>#5>jckih= z9$fiDH)xmDgSNe(ZSOVB+F{gZJi2I>*U4;+7Ldjh)JAh*JcK!(7gLz}RrGkYCDvP2 zF4m0|{qPzn>^P)PQjdB5-GhuCTzLU_`v6U@7mc$$8YtZyVyS6eg~<=UYCF2OH4?t6;q|6$r@ zuGBLpK5)EuKzslFj~{&h!N*HeZZGev7Q(Mm%6TDtwOqvE?II1_qn~7V_p$H${9nH4 zzA{hMA1SgWV;`&A-85ot1U1zSX(H5@ldd+Q&;cb*>ke+qV!p>YeRKFEwEahrkoL)G)ySlG`Tg}4R27hlq4;!v_Z&yxQIP@=IkpJslly2|?y7~lLRWJn0dmqAZ+J`Wl z6RgO6WH+h_gF(wrIE+vv$9LlWFt+n~wPP4!)!-w2jnoR(rFp9nZRb&Yw`z;~NIlhV zH?&YWgcZ-~U0}->ikdIucxYDtyEOl$iB|H8Q4c7unrM-lXpx$iw@A&)TV(lDg4K)FQ*6~b7@2lb7`Cb#tWZCV z!z!-kEw88Gci+|iymF3HCxPO>oPMT1&6fF3^>kkwuKvm6J=G^4ch&#;JCF7K{5$LX z+M`!eYuyZW8q38EcBOzc>I4mV5}FP*0dKgJ3 z^~=_d+cwVA{AT%+?UQJ(vkYIQ318`lvnMkcRR+-P#9ha=6tv?Hx<2HBQHKVjQeJ!9 z#~Ic{z?=o!xzyh~aF9llF25&LJiE|ec-Xfb>r;WhXtvDHqWHVTf2rSnxPbb>TK{^g zHR#V$%>ySXwDT~|GF+*WBNekfQurP-JXn>i@CAM!W2dw=g&*@g%zJV7Lj_clax8^@ z=f_+Rmr&Vg4>_{1RdJuT6K-J&h;f}*ZT7G z;>6a((A4wOH+k0gX#Qd<=fqP>5<3!GrceXc-zbHF@qi1;?e!Bbzjxqh-{Mo)8!k#; zyhZbhmLlBhs}sN}NIOK!c^!I}*PmML?`f~UZRs_v-g!#%@>!YQw)22iUy{~u$9_=* z3&Z_0A?snB|C>`jke3N%g#KsVA|XwfG+qZ6LhUZ3+U-g&80dj;j~F#XfaJ-58- z@!_wsPxUP7@2O@Fruts{4$m3J;eL?I{R(Oc@>TZ4A5NeRT5wEDF}<>BQF>KVS=!yS zFukN{LAn8KP)4juxIQeHWw=ZPR0Y+7BM?``7OjQm$6} zJ;$84eXQ?iFF9`G77wMoblRwArC<$9wrICJnkW%EKL#c0PIvhqq4tUO3TLd;YU_Uk z_UvRo)HZ%Wo~ut358VkGch?GxH|p2+KyO5?t-6+pehhjeqYtAx@zz?{u_^2yxBpN_ zKwbjox$Z5!GxfEimjL&Nl#>eJ9>~-0jzN?-1Cglmo1pBZXyw=_?j->B41R*I}?e zhYJsT4i_CRKFki|2xS4-KrXhq;(YWgpLK1>rB!+rI%=7su1 zc{%{?bs>z@Am@qR#GQ#RC$v4id&;i<;f&9(J;X>8OpNVRx53mcpZOesRs=W6J$vF# z(WjM&8gsJncWL(FOZ-?Oe4J1)_#DiI-Dx9Ttp2xYx9Ep@KuqEU^oNjB4YbNNTI(+q zRs=LkZTi58g|xQt%+wos59mA2K>t$Ue`5EqcYC7OMDM#pgE_k9bsp~NIMnAj^;yabgZVF56!85w(6Zz3 zQ^45+9MF(gJFLxV@ZWKSHMr6m{MXW2-R`;1?spw#4NYm+k)E31@{yXsnyoZHXU<>^ z<{xiX+j*7wJGB>%=UbhAbj3`~ZV4Te(CbZfp`SH*PpzEmsjVw z*L|(OK$InwIh%Vc+Gw2HxWqioZiKdAi&k4A!ddxz{)PPjuPZcfp*nKr#7CjrU=7N< z@EGdwPh%XhB=u}#!HcrxUoiJ<42bkkE&t5!vefbD!qk~)X=*?} zcnhnqO8a7AUwLXN^dgAkS~-21_fgz$PEefp;%Q&3Jhkvh*=+fPuzqypzN((8rK#!I z=VE`kdnxtzk3>`H{t`#kJ+I5{JBnFyh%r zw)2%`2bcYEY$;zSq+A!6t5jTmUDkRBN^tv^P#EondOw@v@rP+u$mI`vhx+St^079D zY2Kz+g`u`Qi<q!v9|cEt_kA|A+of(iqtznDb*D=%RVC8%Dz%QR^=rGHi{e@Aj7` znD=do!--P~qvmmmUBV_X4Qzva+0c<>GM?0LUOjn>UccJc7H-h3>j?0L<`A3^GCc<8 zOX;x*9oHYmZVm1W?uWBA&BX;6$+5F=IpIjMP-s2V4wP0bWQD9yD|8e(JuZ*iQ{XA| zcsxa(V$XuY5)W+m!5u`#g-;OP3>ozxM^1;sHXS^E-H04qd@9^qx$ltsF4x`8dmQ&` zy_I`!u6zfqr_Wzroh0wxYoNGzTX~?ja_UggU7ouO?~1V4H!-+72MIuodT zC(!4U|HXzNaCNvLpD62sWni5X>A7GTxSIAxWxN^bxKJ6mW5>8^;74!e9a!IQ8>+nH zf^~ACX_3pfoYF#d<$p9C7n&EjEnyp=HhJ42Xr+VDNX-^{UU}0&j&b3eP>PM3aJ;+n z9p}@YFmJ|%Wq&?l<$8lp;i1YLa^2;;`+VD@ZX^I){1O6KMT^~aeER(IB+L6Fkcl=z zqzi1NW2o}L`Q=kC$KvetjX7@TM)5***Jn-Rd6j|OUM{qr$}%vo7h=m~9epBOM`6d) zZ%jwrE}7+c!8*cS#TSx4xvt|5G^|t3yRfF8UtN;>Lfom-TX{Q|12r>TdHZ?gOV)Xc zWbK#RO~TRt#&j-hmeF?3D{XR};&R@Y9bZTJJAWA)Ae?di!HN2|*p{f{KGabqqcPKY zj%#H7AIz@vZ+F~u{`!~o#`Aps;~TlI;%=)8waao{<#qnHO#K46=VR}5qY%KoA8x7M zC-)au-hRGgN?G26R(Xl(Hz;qfRo>Lz3y>$5V=c)$SKakEJm$P8dp?9^dOrG=%kF&? z|Am*GoR_Y7&hXHYgtPpUdV7m7Ri2p;#MceeW)^d0f|*d;ohnLTlFSqvcegfgpnn}5Z7skKC8jSoPd5R26zJ{o(W&eFTY-vCPbH?OE^iu+kL-q%swU0T zQ^ZsMrZ|A$RB}8s_VUqqG88FhgA))0^N;72PeQ{@bOgIXjjeA;MZw8&p`j3I2g)d@%V)5izo2JCPHJ=phG2q#2Vh>v*RY?Be4lO zxCgeHfEYZ+9~*-;Vw7V+<_EwDuLv04wqx^fp#Qq-hgv(jz+=-T!&vF}1z~mRdZ-7( zTQ*(QxD`%C8iuw!+`nb};P&D6ruL?0@f%u9WO&fb+5CfVitLSrA|w?g_iyoKq-+WV zwhZ=fyJl#xPj3X`+Uo|l4_xJkm3An!lidJ#9Fg$LsqkII$I%79TngV! zd>k$D%dPMWh>s&qeibPELWTAa9(zH4c@%yT@v+zCSCPUmCO*!*_*Ja%7Z4w3di+|T z@JkeWA>lU}aJEq4ml8iSGcHy5WyIIb@MQ|WocP#7@vB_nFCspUTKKg{;a4bhr9v;J z@b?wf0@Exrtp_5{N)ON zg~DH<@T-ZBt3&*%R`@HG@GBL54e@bC$*&rPe=!el*0+llzD|6cwew3?_+H}UsEc1- zgF~q z|I6ODz}H#SY0o*iot&mknxt)7T6)r^B`s}9(lou$VtOH@P@vEP1&X<+IgloYTzY}Z z7A-eLtymQi6wkQJkyj;HX$*;XG*kx;=D{=83mK&f;Mo6@~m$mOKxsa{2k< zk0B?Ybv6q50f%4U@e9Pwn$JEgiWU0<4!_Xj7m7`eyvUOmiA9b)=E-BC!jTty@?!BH zTm-IN9#-DF`HPF6LC*ZKkBdV7jKiPc@h6C9HJ^Q66f5*U@9;}Jeu?-C&F3={#do&b z9R5U)KT+&(gzayXG$)|`>M?Te)PZbwA@@bxYny7Q+Ri3;`6g%?i zo_xA^kqeNt%fk*-Zh6cQPdV~aJozc&0Y^U5lg|`4Ir3Sae3rP%k)P_xPZi4@`D{-< zTdahf_lsXFqGGm~)m0j=aW`*N8)o ze4ZztCq4{0^TReg3ghYP9R7TdKVR(AeARx<7jJj?r+NI-M7!p*4~~k{#0H07>+x$v zi^H!K3myIfkH0`H(tP&OQ7mVf=a+VMK z@F?WZJN!i+f06is=BxH;k@%X!U+nQ0izhXItJJ?(-0$$0c>E>e0nKNh9~Dc)dmR25 z9{&vSUd`tiAS%ufyB&U=$FCE6HJ@XGDC`!x9DcpWuNOU<&oM$&)QgP{zro`-i1RdG z)wc$*LGw2uzC4T<-11*4mRj-%N^#V|tHk{dK2zN8;MHQt!E3}e2cIR* za`4+=#A{+>8k$Ai!E41!+>}N;o)-Nb2d@{8I(UP)*TH9tTOHgY1{{2j*y`X`vC6?4 zVNh>kXZp?+g$_PXyqJF3f_#&B#=+-{M;v^C_=JNm6bBrkw5L=%f!PD-X=ck;LF7g4!%NkIrvJ^>fr5Sv4gJ?w}3<%Qw`jj5(QS|pZeJV)Y~n4`%(0r;6Dcuah_-iZs4m;%f1d?%()MULKtzp4RvoiRX%kG=5Ox8u2mQFXPJ5u)WvA z`#e18;SLXP_3$|!UghB>93z_{ zcX)WWhr2x7>ft3GF7xoeB2MEN|KlFM-@~_h_-YSt@o=+;=Xto&!@ptYqaD-p0}nsz z;m16jo{LlEdy6MedH5m^pXuQ_9+sV>mA-#6iG|PfKJ4KSdwA5tS9qA?e&eW5Pv^-X zVkqx(O(x4`{`dCk!Ll;*F@xA?$mb=!_UU}hJI^AJVhUR*{@RmoR+_!@yptO zRr|l8k96iEgS5oRl0R0OhVh{aY5zGj{N4$&RN58N3q+_}h42SKJsyh{#g<65Pk3;p%4C->4X0j`r!W!eel0dAAFgwk4EG?M|>6H zXL{gopbtIxC;dz5Lr=TLy&7LlA9`hepm&HEdS$+FU;dmJm6P?I>G^y5(DOa|xbFM( zaorE;;4h&Mejk1C z2k3)8LLdA+^ugapAN>9F!Dl-WNBMk@KCb(r_Ftrr>tCji`}S-4xZil$l=@=y!JkAQ z@^bnp)EV@lZ;qDN(ubZ#jaSh}dd{K`KHEX+xj=_sOdsjIls?jV1%0Hmoj%H&`(egE z9uarZN4Y;hAJ;#u{V&mn{;z2Kb?uMQM>@Wv<*jJ{qd(%38-(AjpF`-A&msH^7!H4g zJ|2o2=-;lNr+aa~h(Ct>(?`9pfzNu4VZVrP#r@Jg!--k%={M5ff_!VdS>x^W@w{}> z{|N3Q{ZHY(!KYq6*U^8${5<`C*6|>H98WWywe+FCj{c#DxLSu_M<4l<&lBEEID+Kk_W`cHhV5DoN4 z)cjxktLi-~evMA=_takB@qZA4?RXq(Z#wCJNvL)cjfPD3QK8bE)a5l85r|6Ohr8i3 zA2Pit4|(6=v)yO8%liOd%J0JSz;L8@3H_&Zy5O%P?$+%&e3_mrbbEb%MDEoY#DjVu z%l#&_v%K!zI^H{VJnz!}koNa!|7KlYw`hEuPUo#U{6byM8+CmLmgToLBIi%z&3HZ; z-x^&{A(!a{zn9^_L-fJFjz0J|X#PR^;N7X^_t1x&^?>?hJ%juaEkCN|k861eni%Gv z_dmW{*XMVtdCT}8sr$-$(F!?vvi#q!%YTP{&hXq&9)G{?FYnOlMz~BT%I9XvKdA0A z_3*i%UU?r6s^>XAtm_vV`#SP*{R;BHXFVo=KErVzFQt$BE6WEys-ncQ{#+FiM~UG> zB*Pcc$93%*%W{MKevM`Q!E=%z?$Y^sG97OT!#nhS?9}OPN59N)q`QoMo4)VBlHaFs zzp7{Pl-7^>Q%n8`XS(3;jmR^t;waa4Vw7u&ey@JM5q?02C+J_NufJB86Y3$$DSka? z_TUewvsIYi1o4%cht8F9mZwbjhjjhEL8tE>7*~-0NBX&cr_Lwpy)3`?>iW80wI^(! zW%~rad|q&UKd(3KIQ%`tsK5K^zfI@kEc7Rucdz#4eE{#zHSZz%;61M8Ptb>aOv|6u za%4ru_d_lJsg}R2<#E*Scq8r){iVnk{r8|;=zkdHNFUF66Mdu~kB;=u)jpaSiDmxo z*7x~2{T%$Q+H*PnZDpCt>+2ZrGXgWf@Shi=h5iS0eL(vp%NPA;g5ekh&8L5vE?3}Y zjpcQh=za;|xTTV}i$1VyKXIL`7r^h<@(1ZdzbrrWzmF2b{|bHd(|Mf@aeO2_KPnIY2$?}B08iqrkELZUBh*zT@ zqK|PasA_zz!?)}3P946F{xmV^ zG{()5`d-oaR*iqI@$DM_LgP!_{$oXYCNcM znZ`pJPu3WXp45kjL+bzE8dqriHH|AZenjIb8l#bu*H6{>eHu^G7)xZO91oq;zgOew z8h=FN85$qf_!N!N7|82qYWy*cXKB0}m3;}!IhS+;U88p#fgrbaSKdG2ebtGar3_~BiH1HH)|ZKJ7S zthMeL3K0+O=%g(=Opixk>K;bw+1ZgC7!Hwkb?vkyJhv8><-@RLZo^5#<0UeeG|3)p zqse&)VQ5^GTCu!5)wj3J&9W`cRD`y?JC)3GHO~+YNf|fEYui1P_mIbjUl6I$V!lng9d&;Zz%}raQ94X>+sC z26y!gsq#U+%7vGO)1S&#e8?$|jP6KrW5Pk4dlo;E+C4iOo|Mk4w+(ge!cp`Yq8S=Y;VyM$kPMCv zjI_yZFSw{D6G1l5c(6Kl4!2?5O;$2?%V<+=W>??nz%{7GSREvL7p~gCJrGN<=BN$J zc-s0y&D!k4Q1l6qO-#oVKH$>Qcs7hG$VU5 ziFjhUjHe&Vs9b`MnN7VcVpl3J;?)_CMt2esP3YGkG{Uc<*j&Yf=Vj8ECe;v7 znY>S``$MR5!}X)W*SF;mIS%# z!J{UJc2@9k-{=S`-hfTz1IA&LO$+L|RXRHDk}gNAvi0>ZW5j&OKR+XRFuM-@EJPc^w>aQq8U# z!;dzswMC=0w|}t1sp&?{*!@avWV*ArZh?`o2yCTYLpw&*lgC$0w4*ZFZYT%QR278E zLK*5APd9>$SL_@`ckV|ZZ(v%xE)q4)MGi;%dxk|n!Ae zG_Bj#)@^I+wzYLT+PWJoZC$-XT{~0gDcagF@qpn%M}Ox)uh?|qIp~v7|71}O?`&&p zt6z?WwBNMDvdisiTi#e--?eo4GRWI5KKs%wtxR*y^!g?p?T(>Tn?0pbQ{R|Hv^4yx zx=_*5<>4aUQ|5krGM3hdiW*jgiXE^7g`!C zLknYNXj!ZbEs7PPC9xv3AXbEy!-~*iSRPsm%R>ucd1x6lg_c26Xc;txmcg>nGFTQ` z2FpUrU|DDxG=`QzV`v#PhL*w7&@xyWS_Vr)%b+2&3>reqpdqvj8bZsUKC}$#L(8B( zvyvg1S1U>6IUcy1X3f1GHV1m~PmAOa{_1#OP&`j)(zf2DE zf-LE1G8T(1<4A<#*YWz&@3xLi-h}idZkQ}RfjgcdCvP(abK*8bxPIHnEb%97Gqdd1 zQ#Dz8d|pUW+_%%rY64D(4*mL;`QmXCvmvzfq-xR*41U08CN&dn{D-k;WMr4xRuk|;GCo!*kXBkYUXPgp- zqV47n?|$32bDJ8ytB>3Oh`ZEm&#+ZZO*d3_^vlW7nr@s-CDzhJOTGh&2(6n6g1xOo zVM%dha-=dkEm9Sk9*MRa&p2h~tW#$vs^`qD znK%Em+64vxZY9jBXGBgdkPFcwQ5dqFnm-*1@jf9UMfg!3 ziN@hUgwNVJyJLmQmKvUP{N9|ef73I+pY?dOuP`#3x7p*Zh7jf$fiu_4^>|N#!?=wz zyr{>cVd!Qf1lj!jaeIr#bzAsOXxn~@m>ONkrK)OO}saHyqUNa z2Qu)k^mzAxN1GbsjJ_2f?-3Xx(Z&elOn#d@-ZAh> zGVrE(ycfZ{-Qqzk-OG7yx$MEZ%b6K?&w9K=;3YEfxUR)6XRZ^?r0*7wHwIp&^4sq5 zj)m~f^ms3Y@TPe@7G9=!{~ZNx=c5d~$_)8^!sFG1=)2qFHG*f~Uvoc(Jl;0yV?wku zysaLu59^CJ8xnlOTjB8@0q^b%yjdP^>m+3>Yp6!wFOe3zTCH$9UNuB&9c4O-R?ee3madgM`lQ1eW@e+-`aO`gfpY1VIs-w)mf{?IOr_mdoX zOQyNcd6>Q%z_ag181EVI+D+o%hw&P!a?^J+c$;$2_Y8Qsl*?3%0dwJ9kt6RDIr6@r zBX9l;wU)qSIjsB!z{@2c59P@FMUK2xr{osz4dCTeU%=aJGMlBo%t5EWItSj{!E4Qd zcRzT!#QTdJc`dVY%kN#_<&wVdgO|(wosU1d*J1gkA_5U@m>dBF6H;-9C^`doKTTN{d+rjx#Z&^@N!AtFTl&CoX?t*TRFcQ zyj-4-zt54kaBgn;t^+TZ{C*j{)j5>&uffZuUbWQZ7Vo=r9GUD z^0i>M$EyPGDI)|YqIrYhnK222URZ!~MqBYY>u$ zKk{Puo9*#x&Q{lxM~>nBroht&9@p-Y2T{O#!Q(x8j#^tn9-<0(U-o#ffXDQZhgbiA zcbCU|4Ls(LJn~KY-r?~|@No2L9?QY-F7tRJ77wqu0k6^HeHT3ZlkrZlcrlMxvr(-r zXZrA}6zKat5@6qt)!@anKD+`2yf1pZ4VFH<0tLJ~Jl=LoAIrz&celsu2JcoKFJ2u2 z-Zqc-B6tbS!w^2;HF&&|bJO|25I*2lc)UvRI7Vl=R9d{BqB0f(8@I{Qhar5RkL#yx z-d6BTJ;2a6;Bh^+&Fi*!7^()mcX_-KD_#sO1Ku`|x6k5Xh!^mdd%Ob{507WStMGWY zTRaSn0v`9^t}e2saJC?-nTqn zBRYkI)>mWk{=(yJwRrO^9+rkW@s5DUdcu6nw|Ju-?{7h3 z7`#@<8Ses%$GK9cT)?9q@)laW-{7~+t2sYiE~i_(7d+ku@JxOeS-ijTc-z4<_hYfe z`;^B!1YQhbOy3fV_fC&@H+au!-We9}YL7Q^fqLJkKGqvkpD*@!4}*v0lrr9Wi`VG! zN>E8n`SIP}=wltT%dZhUbKjO{;cc*ZET1raTP@zoEWB=uw<-&7#NwTqg?GT>ahw&F zzC#voO%~pL7VoSqyoW8`+p_Q;w|LE2c+XnAwOM#CSiE&vc&}Kz^;vlN7p3dLhAg~F zi+6SwUX8_T$--;2co-Um-nR`FkL^d;{oQKuHfG^ zrN!&X!mF`(y;*pT7H>xu-Uf@;XYn|O&%>W_Tfuv=(4h2t_hbawyk=CoxAVnAI}9nL zqYqw6L-7gxI%EKR!!s+&mJFVepsR0MzG7MZvK32LBocKpMEzf1SJ%|k1bIVUJv_Mf z_#d6UsU;FIny9lj(95V&95CaxoMRe}Vm6EOMe~SQ-7nr*6-|^~$}`T(9+OH$nLKA4+gOZ65(wj;$lJJIG*|84 zQ?=sgLn(GXaAikITGooSRr#$IEwQQ__cZUBBTri=e-GrZ9w}%kZJF5mr=p}PI{*I5 zgg$}3V~;v#{`oz1lE1P=`O!o|rsLHh9r-PyIw3iE8}C8+tO{0uCn zGo4Q{C!Nz2u8*}$k@{7NBJ=*OKrAXAD`_ogpQcV>uU3BQF`<7coY%U)uAu!de|F*f z|MF*p?}zkxajfh}T$hI`jVEV5`H+c?5zkZ| zZ2myAVpc6I`c{<}R)Vk+FU-9P%B6m#BXuM)Z&AyE<_|R&T(D^UXy1*^A8h{g`swQ@ zt{-hjO7*?Ze((Ie+%_&RZeBOea`PIER*AgmbnG!VLli|%5i#u3J1II#lwv>LGRP)J zt0Lvm>5&Q;@>E4niA;~qjLeA6ikuQXHBu9u9hnzJm5EM|o)(=Et&N@%T@alaEr{aF zGp>!`uLOS+@wX6vr{ixC{ubj8rHqYGqLH$^NL7AJ6y%i^=2aEN1kRi<&M%ASS4}7o zB?YmG1!a>8s!9t*Sz&B)VOe=$RYj4gEQ(Eu#PFa`6S1m1F+DFfBPLFXiJ37mD<<&RygTgmHZP;CZ42H|5`)cgyQP|JF_qf1gNtY#rq}>BxSz z<|OFg+n;@Jqx&Y6PsH40Q6&3WmTY`aHV?5A)WN!L9A|Z`bFNP~KfKo`o1fh7N%nG` z@dl*hEgfnW$J7zNX`N^tDKSdmvs{&1|3Bu;Rqh9n+hMEq-7Eh94qH|E{ck>HH7N9q z$E!-|Tj#2(BU-WY_pNhP?el7bS1!KC`fhrW9TE{Pj(RvxOa(vP>S18$T%RxH?Ddq( z_v8g0E|h$ZI+QE)q+<*Ur)m|1tzQ!M4_QCqPmk4w3FZKRU8C!ZkY=~31M zPhKMB>`jy_@#GVwJY8NBJ^3UlzrtLO-EH0UmwLEN@;Sm$uFR89_TroD$;&-?xhJpi z{(+N8OhwM*FNHBeuzrC-1Z z)WuOT(US9gMSeFATr^MMwMNbn@E-7d#hWZS&sTK$`QjQ!Uf{_K#1=U<_$3QgJD#8Dravx@Ir0gfe1dq~k(YS#5^43p3Hg%YVz^nuDvwpE-Dr_@IO5ioFi55p52hC(d^8e9SMH+_OAR z!@P!izF6!$zv&+^J;xb3g`?sY)MsM$3FXmzvD3i?;u4M72b5z`&zTzYdFA;|^EF;2 zaZHqH%r?C|S}cBrh^T*##Bo7;6Joa6<5PZYE#A)oh`=RwhK zgqUxl<Fj$n%)<7tKRo_gU0x9*2wE{aUK0jH9kvYdTlN=55L468n4s1Q{xLX?$Wqf<8F-? zBeN&9FD_ru*;Uf9mVEotZdF@UD*6}h&w5Fo6YrtOr&eCleb~7-a107#ya7wj7w$2 zfqDitj1Q_GA5`ZCB?r~+Wq~GBMnS;1DjuW-l{blf7KhrpI{N!N&CYf5!ax*M{_z~I zN(O4Z3K#53RVO#GlIpv#PhMST)6%A{47*olnnIDp^izU@tJOs~>wFO5IHtxCdA`6}zK9QEp z?lP=kySwm%RafDM%2wM7^qxmg5_Ava!h^2ClBBzZH+?sYO#5pDZ3*}7wC~HCo|@OY zw+5@j61jVH#(vFgs6qcYn`&rH8FtgaSTeWWG&mw3znjLJxmU(E48r-|!gmBZjzRO~ zFZG}Ky~*Qo3~pp(n&0&vk7M)%3ECOnGlth_aFFe>)Q^nIRoz-9`8Z$5*c_$Jl<2_wP)ac*yAn2{f=2YKjf_teV@sZ z_fzojDjm46`_Y7kE0=h$%aQlx9C?`D%PHQL9C`1~k@s|tymCC0xs=}(;AOhMucE+B zne!&_>~B<=z?t9w?(yyh?*StO+vxZaewb&CN;XUs;wZS7z7Re5<0WPIdm6lA_{Qa9 zGK=Aydn1Q`xJ>RRVe=}%V>o%JIsxyHr*EdkW1naA?ecgvR=gYVp{A+v%GLp1Hr1E#5^QZ;{1g|8L^u zc*WMY+TvAMyty84lf~ngJfqL&ZMS&HdMK~o;^Ai~Z=c0ueF%&9c8f=Q=P=&g7H>ut z-h&qJlq|eQE#Ay5yr(SQtSr3mT0G7Rhvnl%i#Iz9?=_2;$igc@;hK6?orO2k;?2pz zTV(NAN5b;4+Tzt@;cc>b^Rn=^TfF&Mc>NadG>hlk%I^cO+iHl>tVqXa4?~u~9YbZ} zzHi1E9)0jqCj2!N?vMfS4etyZ#ar%pw(?CY>+}W3x0UZ#1N*>Mej!F_##Ub0yq7(e zg3bD*mMN|8TqmB1wp4Dqcb#~yvL#YorLDoIOMgyFeT%XfFKMOCbtKUor61oEog=g@ zdc^ZnkKJ=~L^Q8ss|L3jX4pr>=|y7&=Zl&}DP=vKXh}Vmm!OR{UD*+_pl~ezTv1b* zqV_~f8Kh-W3Ykukn=&zHa*GP#FO^ze5or~B(sug=tl4q*+M%86*UPLlEnR+LMcyoXN8`; z$ip$oXVb1+%##;;`ie!;$xqzFm7?B~)24Br#`I_-Io-kOf#n7%=bNc=3YUm~u?Csc zcfExLY_MD$6@8YRHj+P2M}Y~2JaNpzw25@(`QraL@&Zp@AdWclLQh^OKJ3VgJUPnW zk;goFOkCl}i#>U<*bX_z%)G}@yvcHpS2~8#M$*ksT)fSaM5pLdqKOWkB)IpA zaS>4}{?5T=;x8RMS$x{TZOU#v zezvj|q`!#a>$Hv4Dk1Ps#Mf$Dt25QST70z-moj_}-ud81@nXn1oA`QdONH?t=Y-;T zIA#3<=6#Jf>u|)wAu!|PyL-Gv+knC6{iO{S=VIcpp_-}j3i`MRQHv;q5@UizVob>J zl_Yw)woRI+F*4K0a7;`{`C^Un@+vV3QOYqfATey&B%Y-)0wtcSalOXXPyKsK@!{ZhfnF!sQ2deg&2}ki%ttY&Wtg zEnqBxJPIU3xXeSKM4tyrJ1KRBqADEglu%t-D(~s*lvNPMmfA3=ty3S*NWMNA6=w_C z3DBWKZYb}Nou+zeb`TiW1cowA(on|AAP#%$UEbZ*(~#+~x8t+Jjb?tw4Mx-r37!tv zW$81Tl%;}ILeAr5Ni#fJwlu?IWs7;k?Qc@=)|eo z`=+Pj_1a0K@6{V)E#c_PU^8(6+U}fAAmK>D*i5{6mJ;>osM%MWu{HY}_Lat&-}5{k z`#&Qi*Zlrh{I>P6e`KF(9Q%E`XYgn9HURfipq-3&@;SG;gn7%fZ&i?_LQ*f^T@U5l)^N_P1(msFcxhj@$eu z-UzUPKeRJ4pZDGzdEd;DHw6XJY9fUn7VlNy<&wTn<;eTz9OGS#f@Iw?E-ZaX@G_;Z z6c?ClsN*nr=3Wt--(0I<^BxB82_pp0$bN(0NP6J*q0)0*7KV~?KYm_PhQA--&;G7g zf{&7XJ~)1cY8fx_)A+M_mEg4^%zUe(KJsYaV)M3x$9Tvqz@Oo9{BQI6EgqkJ!`tKW z_JLQ6FzPF^c$a#-`@my*$fIxcu|2Wleb9=R;f6QY<2`Ee?C-!n?h;vB8FC1_HzV9lLt4(bVz2o7FFESl%GNvmO7t z*|GUDw&1(j7JewwdrYN{RBWm^|JWW8Svx(Jh+QhG`K1cDT11+sH}`2&TRaw%->XEm z_7lfasmF?RnDSrY!)x4v=r~oxMO=3wh%Y>MLx=S>so&Em`EI5kN?wdt7yizu%!7GM!iKX3(sG;>BoB_ zk>cqW^oiQ_V-cOoA0uCp>9_4kY^OdVG5xQw&lM4Ot%}~I!)up}og&jPW24&3N?pkk ziO3S+cR?kouoz-`^KH}+(J~c75!+qbH&^b zrZ%^Kpj{+P-Xg90gKvJ3jUsWYF3Ykbk(T_{f^&}|Kl`iHJyKs4mAbMcMXf~}DQ$*S zrQh8ROz|QcpU@id3?3=iSa9Bxd!jAHkteH)uUF}{v?7hDE9Y0BoLM)J^FC9iVI>Ua z91%%upDcIiQV7@WQ8*RcRip!Zo9Q&QHV1h=UOr#NH`L2EKDj3zxoqP_Ri)R*=Dhn- zamS{<-fONcI`!KZo!^JLFlFok{9iOSCz2hXWYtZZ4kepTzls(=6rMW1>2ensThZwW_YKqoMW3?PbT7wC)Gv^s$vKi)B4XCV$em z0AXb_5-Va=eI4yPSGJrcC5XA8;oFsobJovoT~T$kZ}#~QbnH(QULJGO@&L5O$NnW5 z!}YZtlaICU6k7i3V~6vj&;B@B+fjI|E^>5|sGTl(wH-g{i^{y!zT*LWF-Fc4qV`AM zZ12CP|5$(f&Usx^t=RK=%GK6|X-K5&#C6&C7u|j6{e3e(t+SpS&&=Rt;y;;d zk5?Z#o_#&{4nv^8aXfsyd>?NYw>LsZ;sn!SKi`|Bj(rF6Z_2w_?X7p>U(E5fzdt!} zjsE=KEkFOufW?dTdDQA#eMfgU=Ct|;yN26F2HQplx_f$)13moqjSu-ddIoy9a2Iw9 zsgztTyLV^jU_ZXGhZ+$yH8nOsoZWsvE$mq{{`0&Zy+XmR-X2Z`ujw5e>gtJ$ja)OE zfU(HVo`I2Je6&b4^w#|WY_!GMES>2Szt?Y=bws-OLyaR8&|ULfV{-<2!y!znj$~o3h zuE>+eq?~=eaxqU{?CCG|>6Ag6=zy<+Mzs=u56gl z%oCrnFzrxWdA@iMa%P`(JPP?ChhO0FVF%>M3q5(E*x|^FJb95g*OA9OId(yIKY=jr-R1Ht zMX4p{UR}i&=3a9ye~S3Io?~Pj5y<};Sp8P`o4|YujQlIWd@ncn&w%ky{_*+`0`L)I z81a7mU|lu%TKp)pa0f8Q??%1_KiK{lya_+}Zf5XO{?HB^dy5$k#%!yDXNVtKlL*{v z>?sG&6c0IgmblZwr-~aKJX>@-I3dn;aJ8s&@EkGK!E?oH=_Uo`QzPw~()pPucqX`U z5iwu*j%l2bxI~O;jLRUODE>lY-gE9f zc1UCPG2DCXdWT;o+8vDkLt_m5Cfa>=tEb6~9@CW`+Z|(g$Weh+d}l{EBYX{T^_F@>`Xi zR{W#tI`TG<4<73yF~90lPc8ksg=o@#GyOZ&TIe_m1(%5U2b6sq(>Fl;J|T9||A-Lp zq>qn!@23BLtYf7Qa4&u6{|x=x)j9Qy_hDeB;}QB>utt@BqiXvoH|aAz+r;=GZ9fM& z+dN(`!#}9<%j;@%xVcW2=X*k~L;0Rcy~y_>?c-Hh#6K>?x!U*3*XT9AjQ_*q^|$hR zq^q0$K_RZDf0qznpnt0nWAtxR=Z;eT3oXZK3?dGFm(mAc_G`#jA29Q~0zBIFt){;~ zV6QvWiIuhIBSjr%n| zU*nw`pQAA@ksK5xrL9wHgm;e4)m}8n4%QMB|OP_@wO;<*QjX zv&3OzaMv-?;TZ@TQHZ(Xu(WG4W?SQ~&0uup8bqq=X=Vkpx~{#jzssPbe_Ytmp5A2d zVB5gpNYBpH$lmdCm_Yh_pvj3BY0VYbUbablzsy&MW_Vz5pcAua*Kl?$gQ?}PvitM1 z$sK!;#m>E$TN@bNIWEq${h5CyC8NXk)?MQmug`=ty|)__y=m5*=}p+M8=bnpLp|3@ zdrl)#)|U1jY{BH1sgRZhsIJ8{Ry78jtX|aZm;?qwql1+?9ms1OyU<}(C!~36n#TJj z>)7x}$H?fgrNFZy#g=u01HH)|zEYLB*JVm7vts4XGaA*2t8-0B8OjT_9jbbU{J_4B zfq@>mfnLwh&}eEz<;T8EF=RFw+?^aY3N1<3(2h|VJJyl)sM`<(b@7=Hfnn>iz_3-_ zx30Ej%X+&TdY3n3*aq&no?j<)Atdep`NauF1S)Wv08rq{34JWVbfiBWr2^FgLK8f!ed%!WRzmAo0>M->b zbOVnVz3H}JwhDnV^`wvA$1dG$IW1AzXxQ|k){dGgLDJ+n=#MPhW3OYiRb}W@eKGSC zbf~Vd--*QUNNujNwP))&F4Po|?m$E3&XwajPWv)xP;CeJ9i}Z~_IzXQVc8109p#&D z8lBBR8wvUyHqe&O%Nu8(ZPaBj&%PW(*qqF>=YeRYfLD`2-(io}2VSQ8i`Ql+-lHM$j(EJM zLU??J?0h^2UIJmpnfk(dY4ctMZ-fEb8Qx}uGZ>z9{SYMdZ+eDzuI8C3&f7zHr{Nka z8u1`_8!UZB=JQ_4k=Iy|n{9duyw)7zeI!SHujI(%Hxm1~49oAn9C@5m%SB&hQEuh3 zIY-{@;N^1P#&XnG63Z=ptvT`zfR{`9p2(3`Qk*3C{aMMc}yiQ!@~z)#SGu@=yeV z?WfJV8$5=SM~>lr$K%}xUPANm2n4(@c)Z6gee6SxzE63)r@%X?^`Ytny!{?;`}B1B zm`WUn0VRW+U0zo74Jlg z_qQJJK}#QRwbA#W$9o*S6$s;fE46s<_js>a@v@#6eJPKZk4bY=4<=i@OFUi)c&1!9 z4{h`{db}F&wjqq^tFU-;J>EX>m@e|BX5rm#@up?r-EHxhPLn=A-UlrniYS!#sKvw2 zP~KA(@02XO?^?W>S$Hp6yjfXzuUS0K`-kPX1c@@`jHU3QyqOj+k%hO&;#Ftit+se` zvhX%pJl?CYd~COPHCcH57H?h_-ad;rKMU`6i+5TU-rW|j*5a{_nK2W7iU+|Pwi|Q#bL!)XwnegU82Mx@(Yld@=}};c+G;wR@*IcK-P1&Nr^CYfR7`e@#$q zfs8I#6Eq;M3DyLez4Tr^QuxV9EtM^^S|TlKkGcAmh+Oeg-4d1lf|fk#uWZSeenFy0 zuH1R`F{8umb0@0HB%>^lpiawk>hoI)TJtvwxtb)R&x0>}%6GDI`A;y{x8WFZuKZY_Q>E7bq#oOMr0{OBFft}ik9_munODw?%!_u|{@C*D03X_?iEPlA2XgZX1KH%8?ejh6LdQT|w!MrQ*Rj!n^M z&-(lpacp(Vr`L(Uo7Yly;fg(?Ha2#8O9Nub|7f1Pp7BJgV{&bdD^VpANvue{_#@Vm z^t~v=Dx{d)%W$$RLs6}KwN41@bpo8e|M^&bQ-Jkj@mj11lWVEU5HE9@_Oq2}*%5Oe z(szh;$F4W+>y^HAT5%6su-7*AFQ+sqTu!9jy@3H-=yvCa6S%-J~^cK|=uR_wMHs*DW8E3RKV z;q@(gu+yf>=(=E`06QDI?&Z3m=w$RHOa|e%;Lpk9x{8suitGPd7j>LyeYVS)<$9uZ zz<#z)v_9H8FxEp_ZaBb&A+P6t+d4RCKUp1oaXJwltZT-t#*dR(2xjN$jVRmS6&>n% zJh^-PyQ0G`Q+?mpW0R}F0W9EIl~{Z6`CQGDO7`~*C6+CzYf6l!@Hwm}(Uhp|98LCj zCzda(Taef~IM}}`@%y)yNshX6S;f@Z^#`!WtIX|x^YSHA;u#k%QTW!9rMH$Wg)UiQ z1?e)qljC2>b}Voa;o_)=^E{mI;Q|jAdbr5LF|iHtr@PLWColHo#hyIw$>W}Uf`>~y zJki6GJY4GGG8rF-gUXe8^2t)pA+d6kJ$bp8-f~Y~;o(XTPx0_n4^Q)Om4~Ox_&FD; z+;mSqL&|H77}m!2{EWbQ0~a@mQ>^;K^+Kf@=R*hAADQ(@3a2N9Hb{B;&MQ1i{5>bk zwWGd%3k$3VaB);zV#&Gw==+7{YWP?m@O2Aw{gErr7Y{q~0#9Bb?s4RWp1e@p=*Wva zd6DRL6muQ<6i+@ylsNLKo_uPs9tp`s?VRSxr-|?K!O$)bUmx82 zQzgFQ$ftYq>Eg4Fe1<2VAwI3;YEJbOPkxHH%aU_F(T$eA2(0b<96VcG;NXO4ba1t| zehIVUj(o1SeyPS=zckNVzck-lzjT_neyP@5zqG(xzqHU>zjV5{erb`nerd6{erbuf ze(4Nv{ZgH`eyLvW%WUpv1Ut92r<*)HCrd?(gBu0U2{bMumWe`O-YXUx*FPNtNaLuu z4DB5;n^~@ZdJ4}!@oI_l#TPVI@&a+M#(XvAdZ>3f@*>fzFit#wvcbUXgNjeX00>mbXZLnds11$;-tB8gqK1Jc{+O zj=oAUPviMgK1ED&uAeG?iGpK%>iTKodm5|sREftmW*=A{oi4cEkNjGRXNbQg(2n1o zANBB`diZt^U*}<-KWQBGz0Je?HftQ^aS#8S5yGeZJ0AW^4?pPPyFC0(4`1V9etS2L z@nMNa;D}jH#!UuJk0n(4tmMn}Qcin@{v4Oc^-}Uv|J~|(uIDl9dU#)nmuSC9`|>)h z^TF+s>uq>{xn4(x->LnN>V3TL(0bt~z>D6ewaW< zKBn~}-7;PGX!#%O^;)0O>Di>dFLRw(4fVl4i$20z;WM3lt{Bd8rZ4jk{|e%>h3KV! zFYKH&zK;GUgg5}7*WXURO|=gUm+3vE<41YT)N+#_S$>~X-%sPn7pDj5C$!J|%k)Y9 zJvyJ@^Lc0b_}w**{7JotUtW*!ISfbs7r|$`R?tVLR@0xaF}|@$e41Vd)T!42nRP;V zWoaaTijhAYCt;TQDcu3Bh zOpSMIjE7j}XOG4!HQuZ7G8EoPt-HeeB~P<%8{Rw6)i%;MWG(n{L^vZoIcRU!?n*mg z&>VJY*ND9^%DJwiKck3CKn63YONB%ujk43LjZ75Uu6euw_VK%VhOp2nxieF$^+K8M z(UHAv*kmYUQZy%X24Hr+b8tW}xbgCl9FQwhu(W5q0OznLc??r}If0vYT$>@Q2$e?Y zgCqQ^p6NbmM*raMta7=Ve>MeOqeDZOB-M){#-%M|c_VIla(l)M>r%`t>+k6p;%cS; z4}1R0z5Q|Y)LxYSPAnGS5+SZlGBt@y8SrrQ4EGK8caM|EXD2uwz`jNormqUw9vK?! zcND3*Z8NO}T-1qzWHPuYjfG;EI#@BB;PJJ|x`s8zst=yTt_hyVtpmQ0t7K4ry?i5$ z<1?dI)ybTVwDCcrvS6K7wxwG=9i7Rx(IiguLa7I9xmL;rHY|v)w(ezhjVrtBI>#^K z%EAg?y|ug%vEa)<+m4}B+mh~{&e0uhy+a*4duo=~he?`Ngi4l$N*cl>%T|U;nnEQ@ zLnU=#lE&qslF%|}3@wADp=Gc%v<#MpmO(>k88n2J!SD8Q5<6rIGc-Ej93m04Af``N zYl@s;{e)$b$WAhYfcHc<{h>KFKzBZ$L zd?MXGHhqz957|UIf#X|4N9<( z%emyilaBj@@jBzoZ%pkt;q~BcFeFRn^G0*z{jVH(|CJ+eEi#x(`fkdR_au0&IplY8 zf!edlP{Ycv2fSSL{aKE@pM$sAM4IJ(oQ;M$mvXr+N8UHU%OxLEigJth@*H^|&yn|h zj=Xtj4D9wQ?7m$KUM}T#BuCz_a^$Tk&Mn>>bL9PXj=W-YGMV!GGqgLVj9Be9gNH{X zaOU?1-nQ;vDk@o?Qci7U0M=H>_*W*0`9@9g8cmx98r5^7IOCPFYz+2|=#=uKJ zPJK+5NgvPOvh(|r#bdbP@f=*6SB61E0&?m@F$TPU^mujPRcRh9y#pTC=G*#O!DG6p zkNua4_fsBkv&EZe@ow~Z+pKu`ZNup6_IN2vU#Z1w_IP{1OF+)_@xB;+)gJFo@LDx* zvc==td^^9#EPWhT8h!tP-!>1Q+Jkbbuy}vx@nROQ(&8QUcxB+3`!U7hecI#ITKf2H z$E5Gw9gO|y9TdQ z79Izurkv+x;gwmu`B``gi+5TUUY*6O&BAN8cnh-dHe0-fS$ORhkFVNc<(IN}i?ZflAw#2c^7OBX8&${z?W^^T zrHTC!t{VJpVr?CLv+9w*aW)y^W-3!h#OblIg7Zbqq7+YEqZB8!J(h<*%E`kD(gnq1 zh3APmGg5J^l{Ks~uyjr&udr2M9cIB;LF@jjj}{#*<@!*b_7*WGzDZq-f%z+Fnbaa` z3Xa_)nx`|Yd*%xdJ-qIh-%4@CYGUffTiYYmRca+`^>pb+s|&SXAbo|@Z!u?bi(>Pa z;`3Kps@O8UNJoSZmAxkI_ia5SAF2~s=fpvXaU39?tPVblC!#|=D=H=JQb+n=Aw0Xz zy~(y-(9RD#{*z4$+BN7nep-%q;1uQ^jAw|NpJ)G@qMABxo_55*!5KhCPYsjgvBecke< z;AB73sw34kyygsi5bGJ*Jvekt`WLRmQCj$lp6u>P2)R3@mFpAF%Nug)lXn9$uAZ_u zZ!MyFYY|oGA}Xt%bg72S`=4tQ(k>#`Dx`7L!+ByDe0Iai<$3aa4;Og2P+s3|F2`(= z8-J0Mvl&;e$dkvUoL!!BF;8CXU0>|U;~t*i;Sza0n}6j>#15x?CVF^=IKz^2?T=Y| z!7)GA5>3-`g`-BXoM+6FmaZyjgXEWrACagX_3gE=fNi~tqoUiAb1l(-*e?#SweN+T zT`KQc6!PaRIoB4s{Cx4(j=aE=7sxZ?P5Sb1|J>^f#mAiMi#&OexXF>nJb6rXIr3sp zUM$Xc z!wxPNcR9F1?00ab=ymWEvB|+xMT3K*a;~wUmq;b4{ z&;a_E7vMG^%w00?_2y_{k&t+gZDjtk^0^cKVQw?#?L`o z7=E!{!>~!)?w_Z=8^n>w6_n!x>{;|-JKm!G3+QjtXSD!aL5zvhZun75F0!48U!ra6 z5xfP-mvT&&Nja2Aj6_MiQe(XH zNQ^{DIVKY&K2u{PUSdQpMqqgiQFyZlvQ54f zMeZQ3wivgJvXyK{Dme%nC!FSxws+PN8U+t^3=DIxc$lN5`ms&KI97TOaQ}Kryn{KE zVhS?GIL^RY@s;^iNcy{AI@j3&d*&s>dv}g>baGdCc~-4hg54|HaGGsfA5J0Zf#tv4 z^&P2vQ_kAp>qStO$R1A3l?K1&kPX^4Gvn9}-amiCh=wdtD!EhA)%NPN97b8FAX%n5 zMBaT_omF!JqWUjW+e6nMpB-)& z{XfZ8mlX^*l{cYh04rgvGZK`9)zoWfl)<9+>y=fb-r zN8U$sF#5)RJF8O#YMBi0NfJp<> zl#h8FPy=UvZ}oUF@SZS2u#FDZOWcCMjlqC~=d!Z>cpLtBNg4i@f@j;794=MitkWnW z$>Vb{)#KsIqkKNdqb~lD_gnng`kt_OoSHJcA9}no@Y)eZeQfIt?;H4S>#IYenQrom zEZ$#uyk?8XbQyi`^>~}Xqn!E}kKqk_ylobb?VI6U=JDDso^A8Ra<}u*2i|6cFF;EFPu-0v>G_I}rYYI41s09DDW1z6Oj`i@qeE@MNBo24nbu5biiOR07?`uunaV*cl481jV%dv{9^HR4an`hqI zu}l80xOzSCe&B%sS6uxrgdIg#w-Z)z^;Z!tX5HGcZCp6?UJJdDotsgHcp%>o`KnMk z;sxg@IJH?hNC$Yax?4LckIO^4hHgz3gZrLjYv0isv^HT$-?VPtw{Cjqf*-w{tlAh! z96aY9*q>C4O~bzAqVT5DsNNZ!p|5@O}{geYG-+c)Nk6QC^mm7K7W-- zyB_{hY-y{)c#bHmp$M&QB#v)7)+cHwjV0b8_h6rcx;Q6VT_CM@3R>qRpI5uh8|$2{ zqM6r4wOtNsF9!tB%bF;)3XzD?;zn8ONLg{~(WJoM<`G?bkwgI)WshAmC;wB0_wY(# z^n*XrF^ZMsJH(aqhObK0&Z}$eUXZ})or6OOyeJJP%zIp7V6?wKQ5_eN>b%w`*WcJ4 zsm32;)#($k8*t}Wq zocCP&^o|*$kwo2N2NTe#%a-b+=T)^|-acc<=!^zjnIoaf8?ORms?6E`v7N@0r>J{) zq^0}Rd3(BNes-OBW>!nrRac51RMkCNbxs|mzi)<095ooX8b50BXXhbTgC354PS&7j zoz!uBgP!9V!f<4D{ItZPvAkG*tRPkxD=I39VOV6B1@m*FWx?xCHh$*e^~7(doxlHo zUCYsxaf|Td`1u~c$-S+EX+IGid^(M5#E-QV?>LZm6Sp|eRuwTj~;tiSq` z1J`KtuWo7nB?A^OPIU~8Bs=<*tyV{OH@-e#dm0=9JlHmhGlP4R13k2Tf+5$Ao`D{0 zSJVT$wN#3yzT<;W=V1RZq}|C5z|m9+yQ&PYS-Em){UZ5aQ&VFD#M$k~ussw$)~s2w zeX#TDp01H$&Roh#OFe3b0(?c{{x@rS2Zy?P;$kDe?r<0No!BjC7~ca^D|?pz0cCi}Q}8+JQ!dYw z=S%qtBgX6l^=+^)uV*W*oRS-aS9y6odjjPOJpF}Io*uardh#ME=cq!tB2ONZa`v>! z#XNbjhvObU?#U-eIY&;)P4MI;QqECg4 zG1-%sOF2hB%9VTa3Mo&QcZDaf^yHPEe2U%JHrbc zoStcB9m|6qm~jfv5VJjfpXVg6aj+9}aa7!G$!TY}z`_D{hMxdt_2n}_JHyGAoOXsT zKVQ7e$!G2IP`_Pyfq2@H7kctS@fk;6ecwWFP=d;KKwydy95B%d_>5hDgC!ZqbYk2~R$b%J}8~;=>(Yl^{ zfWKl*;zls5O}j?pB3O`j)WN5U`yD)6-0t9n7;1@}BLE`qO#k2<(k-0R>4;#LPQ6ax-EU2JvmBEfTyjf;rIVy=a`XS-XTRpJ+T zc=`OYSZOEvq=Tb^=L*v$@HaU+RlHkchE0wx5%Zv*L3}$Xhv6O18XH+i_)!^Ix{xlsn6`kwdjQy%`Dhwt|AZ5|%<@Kz5udzkZm#xXto z_G27zh3-E%2AUJim-oWR=Roe%SM-0p5AhKp9soZMz&)er)83hTZ2wgI)EB*6+n0Vg zy$3emj=2|hjrJGP|B$l7q>ooO5&wu9qtU-W<89is!@Sx*PR}8gp5XfTsrpRZ z48F;y?aO%HukBwK>;Cz4jS-3LukjGp@p>3jpa`XXuEg6l-l*kQX?&i>c(^4WAFw6A zP2&qSZr6Cd#vK~3)womREgE-ee2K>08pDoO>hIBbrN+G)U!?I4jnCG&Ph;5G%IlLF zpQG{B8lSK6H5%h1vgG$`yj%sx1QOpM}wth7Mk2?7OFDp7{6_#YsRZ$lD2)J$<1KPt1e5M{$*0Cx6I8X z%4i6zbgFVOX34`Nm_EvwF_$N;NPS+o=`<#o+O}-oxTS65#TN~=x|?KZ?boA zoTxiF+|k+JGcLSybeMYD+Ag?s_yq34F zt!ppxFE(9xPFrdSDtp5=CeB!=Fx`o-k811GK3PB0_R-4%`)KvZbhRyCw!EpcVd=6A z=F!I`!#X;oUWaTM{nl2_JvD!DTRCTJ!{kG%y0IL(uuw|6`|>G4*EL??pCmAz(b1hb zX`ZFH-&OgFxD)b8G}OA6^RAG2WzD(#Lg4-4P7iQ`PEl#E`Fu5di_xGk7 zs%J8o&(M**>FGETgLzqt-k6=3gE0csWiXegEp!J@2oRA|@v~q(*2nbhS$uw-C@d+C zOpa7Wr$wqF(<9N-AkDNNbJd$?IR6A*MDQvW*qigcf$vbpnctiTv3Z;`H!^a~??3T) ze2>{cf_8@YLnyQL?WY{q8fSQ4^?BfQ8xnlO`1z$qx5m@Q`K@-XgPzH6o2Ty)@G3L#&h&Usg~U7C zi}$dLsblTTRq-=mOiH2q;I9id(hH1 z!Q!3b@gBGIvHdmr@JYlem#4sEo6UTnC;j>9-`E^^oMOk}aN>V;f@g`cR2K z$A(lp!=n#g%7jnD%^EcTzTwIFh26=ao+X24a2e9^)+;S*(#w?+$6v4XEGr7S4YoP_ zLRO8Fb<=yu>h&YlljItcGVGMvEq_IHh^RJe9=JM!@Ei2`!jQE|@ zu3{}X{L*91>)0!(zSCX>@cXvqY65vU5$j|2CC0IzIuRWSqX2%l)Uo?O!A;OG?z9IB==EJ3^>Cht^F3VP;X)6?J`?e= zO;@f++~&kzDlWA!?Oo5+nB!O4yBhmDh0_C|4N}fGF69(178RbpPp2=zi*ZD_I4U?V zYaH!eIZqZi*t<@$Fzs7idA|5BGjPI1v~P9g1>&C^d7&pS6x>h5xI8S#cCRlI4_opG zW;{7BZCpf55H~s)`knKnZ^l;^TluV z_3T$^@AtgM>?3LK_qQ5%OI##=0^c~=fBjzr;1eJ9@aH`IK@acq@YNo^$ipz{2^{0& zJB4xFqlNh}j&kPRINGB*_XG8la0_Rxcc=3>UVH$JX5O2`-V&Jic#?MgiNc1Hi zFAnm04EPy;9EnP3pYIgJoO7VxqW#VE@gi|4{W>AG)5rCF@S}JMCqFt-&Aq`)QejMN za4rsJlFH5rFU*a^NF-Fq{SYO_&6XJN4ie+tPh!02N{mEGoY0sPHYaBX#pa3jB(CX> z49#kfBpHLL9vml(Rbu)xrVR8=kYu2-BKm*qeG7b5#hw40bDy~hBqRX>1UNSjxZ!08 zuS6~0BzU=rfE2N-Etb5!Apt@XAUv$WMMdk{U~M;8cMDzXA6xq`%Svmz(v6SZs_k}f zPu?f?6mGjs2pNp8G={_MtYdz@VaC?PGlCym`4pwa0zI&U-NUSeOK%20#rnh}- zs{$OIQGA^X_o7@zp15z^ju8$+=Q0w`_FeEeT5s$-$8n-w;+xPuW^ZxZ($?i;tRop0 znEHgh#VPOOUYzni?!_tZ<4$=U_cFOq%Fa?=_0;+^IyY4=uX3sbuWs+U9(pW&c(OD^ z?S9u|ao*Z+%HnrO6D~xJp#{GRjZj)z@TmZDE%>{q^=9n52!#3$FMedG-K4f&8u|Pk zIH)*kw^S)xJ;S$iIp^2%7qK zX(W!~t>OkicS;a!nGTxkBb+pE;bD~|U`w8k3xkmk?qHg@r_;n`A%W}Dh~FmQ(uv>E z6gbig$h1>%w7x**8PW3j6rNSwE5MP?SQ^Ru5*)xvn0qk?xE^C+nyU`tM_zL9`!s&) zeE&-*TymH5h=lXwcR<6v4x9xy!VyN|sLWM)`51dhd8&S>Uc;3DN8yk>dS|3OdT&&D z3xK2YARJ9=N?fsq+pmO6a#P{%Qg9SbD%|}Fj_Q9Z+`|eEk127FDL4$rQsTa?;4qv^ ziTl2So2cOQdE-}sdl`IbWPOq4E#1!`QtFxh5=STe&- zM?F2|j@UD~Q={&NsnLTqo?)A|=Znd|{29S)KErHtCPWXkdx|!glWGq%W<>*aMnh&@ zHGT&gGV7mc2-Jr!H5&tgn#Kc-k2ms@j<7KYw;3N~;c!3er}MR7h5NY)_s>4X23%Hq zB)WrHhj#dPm;`{uOSiPX5G)$Q*3J5JtFP~Awktx<|e9!_TeFeHlejz*^*XE=q- zIHkfE;s0^25xIGAdzrUxsFvJvPXEm>ul|Im&J}&Sfu7jk{P(%ve3t6oZ#;AkSUEEP zy*#%~-$)lb2aHcA$k@xTiVA7@@ot~^laKJEp|N;})wbUwRLllN=-_>~5F7AKASxD-C=ogDYiLGM!U;JY=xn=N$kJsRJ` zCOP!4?|FFI(89d^(`w%b7$u^Sw8F{^dZC2SgKnmeFuCOzc8gGkaQ`#$O~(KMbTJ>(ie z)7X&iucP}IiEq;$mgk_o{9K(R-^WG}P?Gj1&H=IgXRxmdKDB9df8C!6n!fw!+>!kb z|5^M#Mv_NuST5>Yt%E<2EppJ=Y?_14VQ->*lKv;L9}BvK%gbfY6H^${OMYFWAJpi> z8ogJeKcdle&xSN4f4)Z3y#vw^pY9uxhUlM50yfeAsL_9|(SN4VcW894MqjVdS7?UD13%kXhs|@TAdfRsUT>Stl zjYa;kppwcj&~1Oe1X^vqXWZF`)7YaHoXy~Cizgp1q1zjWP#e%LCbg7_M z3A$L&R|>jJ&=En)b2wHDIw<&2L0=~5IzcZHbiJUVwCC}=O3+n;UL)vbf?g}=xq^oB zf~S`zy)RBb&BtXpbfC4h%Rb{kQ8x=-tP%R%w$4VJ&%kxSqY=>k?rP>2C`nDV@JdSI zUASN?slrwmu|0H+TYD1@I&I(X&~w|MgrXAn%JsH4cWiFPjd!{veiB3T_H8}ealpWs z+%a5n#6^mv&<;#8yXvT|6(Ii!r^Z-QBH9i|oWx5vuO}B9Kw?`vWyJR8 zjvm`toRVT!9vsdgxAZsZY~&BuxbvWGU+szNsyHSps^X?qQH7&d&cywK75173Q81e; zS}NKamo9G{W6{I-$keMImX)VE>|<%l^$<%_u7_Bfay`V7lnWx3EK3!GKcG7g9qoeB z3OU{Nrrya#Q$x-CC`W4IM>}fGy8~b!b}_m&OS~9Llkf28XzoXGoUus0Hx6Lp%^BsY zHk1yg_F_4B`m5z+YHiiKzJev?IvUyZwl-1=n(Qy$^%$M^ni?L{cW6z57iqXu>ucn`TPcsm%~E$jG9iYW`w^%b zE{3@Ln^Uk8xP2N9L(wsD^c|+kqx`0CP-$eiztC_W1z;>(wT5d;ft#b@@ToJVyc`YJ z2izh2q>=gj3pfCpC=Vj&TUi>Jj=zV4iYo*$Ryw{5cNItLlr1R?whZ^UCXc>j$CCF6 z4M+F#jfLB#;b`CSSh$TEZWD0%aFa%+m+Bi>iG1k-LEkdc$aLV7h2y0AQQ%fdLgDGS zm(s+A5TSJBb*70sktUALKS?LtO3ZhpgWI1bZYWKh+nrvx`gtH!reyT;pz}b|Nk<$w zYGb5HB`*u}Sn0@HpC<0!G;uEimrnfh(O`~+dlm_jX`(c)2M$S282S9ThT90-3CRRn z%J>={P?ZwKjde`@KKl%XtKmvsa_}1jE+c_r>>w6N()&y0L>T%Jy<5ZGrQneC1n!SC z+`S48QBC0JTpcys`xP98C&Mk$a1SUr@-J~&8t!4>qTo|Hs9%z}pW|5#_jN@cvM7Oj zM#H_O;Ajp>%6mY=xuM#S`8QF)eO$w3DY$F}*RA356&#h940pYTD+G@ClwMk!CUMly ztLa^!$U~A6I7~@7a7z_=cua{~rQoPNm*ML2HY&Ku~)}y$X&ND5nbdpn@wH z2Y0W6qcwo3u!Qwomy|5V{Vui(ZzkKrW+hwUgS<-M-pXu2;| zxNa1xtXI}JxO@c{90ymT;EKk!3{WKzT(nJ#Wo zwC_^9DHtw%hE>;Q;1*4i9IG`1-;lQ~3R~WJ1I>K9;)*$?1n^DPWU3^sA&puIUoDIT1Sc~ z{Q<3)6Rlf1%jK%dE0(_Z&omGTzVI@BN0!Savwh6fayI+@#d7a2mP@%<&aNWO)LJ=> zhXz*(V=yOeYBYA~JMeCe_Gq+MqkYVTf9h9kYtimX27!-o7u%`O zbOwTx?`ACyzDMJG*jfkQtMR>z&Xkpg)}lG(``8=@->>ogY_fx&q46`=TZWWQIv zV+TEf-+?3%22NxBvV)(^KINcu7|r!cW8iDG(Lv|3O3>s)B>Cp2ygEN9Fj8*4=3uU-j`n8}AO7Z%4SyA6BYu=_)gO;HDpo}(ZCfmPItLhB#Fe$GPp3gb@Q&q zP6eCL5JO03QzKUDB;_c{cRG$0sIAkrmtS<>xRWnX;c988Q+kI+*s*Tj+}6_4)>_#* z*5xDip%E#7sh3YwEJ?L^p(5qNivQ0CO^70+`fe+~rGu#Jqa2;EWKB_lynd?=O5wii zI_p$gbUR_cucuM)*u67~b17;Jy*ZX5rl&XO6MJrt*XPf87uDs=hfb6FO*s`vZ90ud zq>;~W!a>DRpCfsMmCrOLP;t};(fCCg>O;vqjGv0z0-E|cX(aAX;h^HWK~w)Hjl}JT zgNnNg^jPxRG~B(QqxeZ9(?R8=%KJX(v2c_RDvtEgAt?;Dj34PM2qz8cnO8{yw&dx! zfi!Wn4m=%s1&B~OI6AjNO>e6BJ&-2u)ilE`$Cx*r`1Pj1(U?`nm9m%ar*PAQF!K3F zpjF&sz>RfY#&>~3)DtG=$2bf^sGMlrM)Gp-dlElY|I~*;BGm)Z0YNm!!7DqCpNcyQ z9Jxzf5y>O^lN#?zNAI+h*QDWwfTOxg@_Y)ePQ$&S;3!^F9<>u{ zI?5+7X2Ff*k-Nkd3mO(T>w%N$pfA!?xCRBM>MM15T?!6SO)0Nm!Qn9_Za~3dD4h~_ zRKclwO+9`m6da{HReFaMoT}H<<;4{oeSb)Kyt@D`%?NOLN(GmXx*q74NTi>H2qST1 zyA;*Wn+WVi34$$ga$U1f1HJ7z(95e;m`j@kKwFud!pg;Swqb7pAaW~&?b*?KaY!cglV{GXDc<}aou z5D$J9%10Y)IW&e8ayIeI1^tI}ZUgNaS+qSJHB?huTlsrm4P~eI!b|ua(LyCM zeM}`3=f1CldS3^XQU}FrNHf|g-Kjw@x`DM0>^XW^$Ha4Bb9uatQC3z8rX3)7fX_GBg_@v`{JQ)N&1YPV43QamL zC*RE;2A{^pR3;|)_c`z$4ewzebMUj!N{?L8rc z=W?*moW7|8i1Zw?!$Rj(%@`gT;oy~-&^d8@Z4zGscf!**N1$djzLNY+5jrn?H*y-f zC@M!2lM>|5Tp)B*QpdGW(3aq1qLSt{Xn#D%Um|Ekmecsh`9*?WENEmh=T``tB70Ff zFzP-w_tJgMTXCK@Zh}`7QchkI?UHTZcB2mHZf$OD--VsEqy0)&DzBPujE4s?35`)w zZDzAtZ4Ym^ADiC`e!d&1J2&6h)xMo;mr@;|j;LWv9*+a5t%z*yhR&}Qdvj_3HQjd4 zk1XHXy0y8pdnvoNdc#J0moR_&qwe5&r>l}t>}R_rfcT+X*1^Ac#@ z+}hY$zM`dV=@=W2$HTox^=8Tq^Ujw6*(8)>PWMDjw>4s%Dc=Ikk8~c(i=tHHBH%Ug zQv8o8)$EwqmFiuO#QE+w34$$gCp6rC(07f28_;kx z*2)7?Ve6gUjm6M0G5QHctNzl4#` zzlMuUJ2C0*_2ZJM@MtWLtVo!bP}oDjh2Vl^Q(QLH$M4}sIwxr!5IPbJ2YKBf(eTQK z@KbS*07veGBaFm7tl=I5u3X?$-5b3#s=QYfdGzi}c{?=R>%dVOC|sX{Td&~?NjD>K zWJ`I}o~YrL04L>C`qUxU6yHbt*U{DP_3(6&xN@;_gy#2~jQXKH=BupkEe<=kfjKq-* zT$gmeGG9GIGx_e&$Z&VdjZ*dY_PV!<%F1+gZz0NvlzXtm9jwYp_blk=_nx|hKFzji zf0YqTJ}1x1H#jc2|4Q!E>N@3#WQluNLtNrb7Bg=OHq<`DNHa%2W1%^0`?vph(Mk16 zTnO{t-x)=3-oY=;pn4yi<6Ez zYFSm&{{nRsPwxM)HcDpsn93+(zORdVUl)~97ey7MInfL&52w_@2u9>i+SF*5M!PlI zqtRZC_Gz?Vqchk;j`-xUK7}UTO{bt~$V9rJ1_zz|Qdq_LG(&A0o6ck_GY%gPH4Zw5RXONMY_@~WW%9d^%8ztAq$?qa zO`GiN$Pc1v)Iz$NNu?#O+R}< z(6;{!_5|FeAzjIrB>|i0`!)JDjoz)%EgD^~(N!8SiF6 zYC7#7qHiJE$3&wy+LuH+NZMaChivF3=$n*m%5TC^KGA+Be6DaBL2!TEhCI#(j`J}o zLvv1n#f({GBU7QS;ro!v$p%i!;JosCJPNYN6YI?3HeHl#Co^ej1yPMh@F zxxEp`)He1u$M_~80xR2yh_nyCk9Sk+A^KM8W5`fjOZ|Z~^7(Z*P`@T|)E7t|Vde7^cvf-L zSJ1dX8tS9SP@k>hVxVcfAdSQg!a>FLg3gy9*b>*L;SPbOeoz{T+YAR)-T>&aa93$K ziU*BHq>=I{A5?kY0X9F1Y4X~d7tZA~YB zv|cJ5+!JZyy!a*mo`C^ExK}z(^Z2%cqjaZ|_k9I7p3dV{ z1*hsfcy9su(!2#6ojECueAIOrek79i+DRjEWW%{jx(~tQjgo*Zaoe_c^E)!6GUM&; z1+G}SEbV)N2eB>Mhcq@#nhgeC&n19i&C@3M~bB zH^THk=aj$hmcD1Zp6CngF!$cMqh{~3J8s!~=gy(MPw%vM+T@(J2nc+2><<4OEUV~n zZFK|PD_k49%lANbVeMgGMs^TxIj4s@4%HaAVYh3wf!`aa&>Z|}_PP~atYmA%zS$Sg zmQhr;2@4_Pzbj+I6 zy#p)ih7at(4Zz&|*Qwi1r?Jec|LX2*PqQoM!aNt$;=t+PVF#@-9^*urt|$q z)1t$Rb{pt?lTV6 zF)PYTGNGUPG_Liz=cwO35Uk6ps^7r|=0^&OGWrVbbYnl&P}Q`A|AMFytllvtnpIi7 zhn2k*&*Pj)RAYQ^@!OIq)kD5FhZjy;KJAs6zb=2Y#yGow24Y-dEInQG_;dE|FG6|j zv?JYbDe0#2`t2!iBs-EH$y{p$ZJn22*aem`uq1M6d;eJtdP zV@KWIXpcEUw!h~`dsr|Vb=Ds@i`YHJVb>RtB7Rb%Z^Ym(CR`SC7m{U!>@a7aPIjsW z_PR}sy7wK}6W+(lJiK(QnrzfT#0d9TlRvA*$7%bS>L+;i-a(W@A9h0Un?Za3q2$|XA1%jv8#zB2J3pT%xwg!er&x)3FVPdDkMEfn zWo5{#Ag))VoVquWR|%J7UNMnZE5(~Pllhi1T0Pg1{0-{WtR5iUH%?kOm7MFJ7yURTiWIjCmQyE75m zY;%C}))=7joh)h@y(^S{!eC!##8v#+puxkn>qt4;P{;i2JntkpJJI5BlR1Z_^7EO^JGsP@J*` zaS&NNmxrUKcOrMO-==iaKKz`I_o_x1>Vi?GoZ<%KYV6+H+&rHd`zPj3fF8wX_{`*a zvVOlm!yoWx`m$&YOZ~AlG{$}>WP~6`jmLOAOjqMR=e+v#wjsyA3>_ zj~sR00qTMaT5+MqrIX9Ju(Ng5xGcE9xLEKf&C7VG&f9m;bF2F{*X_s~?ASKD^7fri z{#a5N?Ay4!K2=_~89qOGY8s2Uy#4>wN0XJ0(X=Q^^J9i`vdukdZnae$%g=y{-C1lR1uGwVk!wS2gbR zoX%>lcPspyG{aB!6?Pg5;ZGXsAFA_ivfJ6}yuNGmZaT00P-U&+vi2t1640s3W&FG) zT{5lOJKs90#^=LahSIj3XM8N+rRm2*b>8k|+G_H8_vc}70{3+LMz!vczY9s2&Jwcy);M0jN63ya9ba`J$HDmUmEA$3Kv>RgyE#=`3bl(bQb|-acC;ncfR8;fp?7 zB^e21`l#is3GVyrS>IpJI_7#-tUPM%-qzT;DN$9Lsl{@dc6ETt4CbUwjdrm%;HeF? zjZ5R>oOST2jkb+j<9jq3XGl20_i41B%cDNbHhztt!TI#Kektd7O7E;xt!v(Y|wOTxf5d#G`__)I`~12A7qz1_(dAOh|PBJi#2{RGaUR9jbFmf`DE@=dsM3NOW8j< z_;WP=9Cq5lpR4ibvd=sCA&nnmcR2WE8o!Jk6nwhl-GzlU&hnp^;9E$Bi_O>g^V!FQ ze;U)du*Asee*x%QIOqzN>!6pgH@pxm zjDeN9KXA~?*i#OAIs1ZxUcm+&bS2y6psUy>2Yo54anP4R$tpvq^j^*;I_M9u*J)v* zFa}%6zU!c`U_%Z%%pP>m)$A?@UBkK^bS=BiL9b#f9rTr~#6d?`z(KEOuTeoI;umHA z=%DM^V-C8Wea=B&#SS^>HEf%MUduK*=ylo|0avrx4*q&Zca=+Hun)4ID7sLCZD8MV z(ATiPa?l&upo6}a-Q=J@#I6NRIz$SF_H8Y6&?cKD@D})!u;eV;K|}8fns_u%N&Npn z#l9TROQroF?H=H+iO?q;CVCAd;qg$tX&a zj)A7MNctMkRK$|L0yI@gNiPCTLnv~i@YZ9zL%cco(LS}O(7zL1!f7}AqM%7PLi^MX z3!3KKXrJ0%2j9oq1igy${cN3}slA{x1}_!#ZJZ9UQbE7W=}eX*X!@qh#RjY2pueN| zY~l0-_ESOI@tes0NzgIQ&t~5cG<}oh;v%X4Bj^yPC$YnVrf;rX6K6I$`1rmOv@JiM zZ4|Vfp2@6I(Dcoei$nT?4tgrfbkGItO*DoS|00f`#$Fb5gwxYmT+lI2&tOA>rf-^D zvygpW(DV(Hiwmvp5j1_XjQv5qPzm&ZwX!^#;HRrIu5wtCDF8e=%UcmVw_HjY?bGnSpqKFAY z`vS8yTHQxV{Qsc975qPG^xtW;dXF9X|E$LUghubxXgbG98uEX=Mz7T9VvSbU7n6UN z#{Z=h4x9Kt)@WK=FAedBBmtY~ztZT>YxF%DeTzo#)aVas^pzToEs_aC;TI<;J3h&8 zZ)#8Mx*{R8&(kqJ!1vd5Fa!Apv&hDwS5!~TFNpn}*w{huo%x`>9zKBfnc9Isj=}de z5RTd%vgeTdB*VU6Zmz*TN;D23+d_88;Af%+rWovyzz>iOx%ZO&GjT5+{I4TC{8O79 zK;gBJonbJ_w*U_Rx|?jsJ5Dy_JwkS=!5$?W4f}V6`wz&@G}x=KDV*2HMmTSfjrdag z8JKMF^NIqvSSLhukVZVVJH6i&K2I0IuOu1=#)bu-+8+w9foz0>tmXIs+4Jc1TANSh z5iksUzbtUv{dN1CB$ChNKrWR#$*1=?0DcqMc?N&aDgNBwZ$!DgDfY)A{L6tOzMJrn z$HRjhUasI5k^4CDyHJ06y1XKMi)@5X?GM?@$wqosl8y9GdMUnW)_A$)kd6E=AshM6 z^AF{jo2EODKMwBY{-zsz-$tO&u=f+sOx9m2Uvs|5e@o=kEKx4lOg=}1$IBV<2onul zs(QfFgLu{u4*C31vXRd`J@B7Tv`kMC?SKb8(XjVVgXZ-u+pzNi?mT=nM!f#PUIRSU z)AeK{zut~tK=KhEi)`fQJhD;0c{zZldP3=;{0|`AB%g4+-oc&6AMS0!U8bAI2j#ew z+>uU-52cgWN7Qp!&v^NPPdJJEildC z`@5(ftt0+VXlXxeH1gMx4LQAJBR*7a<~1VR4~l)@0AEh-8$@{6(8t4T5%dW`-y-P0 z6!cL+pA_`{f<|M{{eMo-j|e&@=u?75Ci3)sMbHNY{Z&DKTF{RQx?j*=6ZFRf{dGZi z3;M4G-6iP91bv^NvF4J;Z&1+R5cG!y{WpTXSI|R(ZV>e2f<|TF@qa?ln*{x&pzjv+ zQ-U54^xq1)Nzi{M=sN}dO+o*;pr01>1A=}=(0zh_R?xkI{+6J33HsZD-XiF~7j&nf zza!||1pN` zcCoj#H*VY9)7&i%02sw@Y{Egr_8xzY*V5jTlBxUX+1-xK^PAf`dp7rUwU6RrJ9krS zPp^nnbDKOqAQ57ZMBu36md)b<#^7;3JKJ0IV7Yq==jQF(+S>V%0Au;m-FECmtay%& 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

J#qJcC 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 Ozm4a2rv%ta-Twn9#!f8& literal 0 HcmV?d00001 diff --git a/src/sdk/CVWL518T/lib/CVWL518T.lib b/src/sdk/CVWL518T/lib/CVWL518T.lib new file mode 100644 index 0000000000000000000000000000000000000000..8063d32804a133ae3f987518b21cce3d7d69e92a GIT binary patch literal 657160 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�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 z z`6JV3_TBynI+{-)o!mA1ZvPc0S%&K-oz&45-u=>lG9ue30k%>%)IN-U+n)9vyyuqp z-PTr@SJ&1!ta(~l8>#g=W|HP>!6nx`Eo6DgzT4b`!KT284~7ph>U|A2b^H;c zPji_gc(t~}CLl&>+EJYY?Kj0}0H+<TMC7LK5>uRwE zmyP!_JKv$c;dqxxbl9!_6t`WYYOr&QT-?bFMWJlQClZ?+{D1|k9G9Xpg?7;-1H#)U z@zyBE=rz}_sxGfx4|lUBA_Jr?`V03enEDHKKFDrScp3|+w>v`YQt*@n zNqldb_jhFo43c9s zGN~ou&lmkyXdiKmhAr<8qsHEu_g_(qYW1L}PAigL4e4naPL0K|oFMvr%FAQPvWXrc z-jZ8AXwxC&rgQEMaxsjDZWNL7bKXH=+jSyx_?$=X+&f}ZH#l9yQRB+Qv0BBV^@0qs z`eu|sPhB8|5C$*=xS}kw3^&wN-^_GBwK#o#ysFI%(yImLb1)xn0haIc)9nFjf_fXl z%h~M!MdGpgKDHV~#McjKy>T5E!#hxvrH^n6j?ji<87$#>(Nr*aPlo=9)@@1u9)U`vpXBg%ay^i1$T z(F%SX%bGLD*umQl_)3Cb=xQQeR}|k=;`1XuMB_g6aKTA8!*h_#i7$ z^Z~R0_2bjn49R0la|d-kov-;MFJu$+&?*>v6s2N2$NCPNH6Lk!S5^sQVQl^A$DkLsthr)~ zml%3~q8B{gj{%Zne8l1yZCT!rfktx`>EyVbsRE;agYy{g!+B~npK(72rrHnjfdH6F zxDn%LEFSH#4;y)nn_lywZAZtusoK@m8*Heo4M9N}=Ljx?ipWN$Dzz9I^kTUZSItoyBxh&&7E~tIb-@?y-bZ?83#JQv8 z%+@BLoI}R*iy$w+Iqwj$>y1&a_c@Q>Q-_T8a5$sx80%22Gp3W3qCbXS&pq|WP<=o{ zQq&%qw0E>ehOti|4ytFy>XZ4fp`*Hj>RIXJ{u+3w;Za?JswnBCt`R<}t`k_T|4`j= zNAajSs)MOMmQLzE1P^-G4+!Gpw50=ule?()RBuK)N{e((x)&kvqML*Onq^?vI)(Rs zkGju6r#?qyc)d#46x~}Og0v%?+)n_@V>pEjBfH7cN$v)C$h;(u*1~L literal 0 HcmV?d00001 diff --git a/src/sdk/CVWL568/lib/CVWL568.lib b/src/sdk/CVWL568/lib/CVWL568.lib new file mode 100644 index 0000000000000000000000000000000000000000..523877e0ecb6a261baf721a9c8e32a6327dd69c5 GIT binary patch literal 669952 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�JcX~6dx%Sac_aXjvp25OgSw*0a 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'fpw#_!rGEMCLw@H)LNZ}h< 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%0D9H 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 literal 0 HcmV?d00001 diff --git a/src/sdk/CVWL568T/lib/CVWL568T.lib b/src/sdk/CVWL568T/lib/CVWL568T.lib new file mode 100644 index 0000000000000000000000000000000000000000..1f34f15cbf35c89c115da3162d4e9ad6e70e105a GIT binary patch literal 670040 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 z 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 z zoIVBNS_|{TU7siJDd5)lsd{xr)-7*69+Z6YHwK(}eS^wzFL3$P-^+R8TB6z0eLFIs z^T2YA0f(ygNgpq9aNB|7wbP_^oQ4BD5aG)AGhDZyw-O!h7ji_FGM|~V02`WdQp)c1O(J=$Z_hFE}9R`l}NI|%p4cu`C&b48>3plwk zJ1`_XW|CYRrbQ^E>8nxW7~-8UtfGm#G5#>58H5^ldgEecljN=V^KF=#lgS2o%KHny z{7aX@G5_+WChtUY>a~GavVeHJn`KZh&cY5GtzQ{FXCHn+HcW}VvCa^@@rNd&ojcEo zc80JH@WO%{+Cu3HY4-u^5RY2%*unlr0RQl&Ym2W9J={~+)!O*jz>TpR#bYT^b5%;& zFiCro;k{+6Ma>X> zp<|VpdsFJ0n<8!BgpRhsC&k>hwsi4%^#iZXUmCtPT3jBQdv9BDIM!C5Duh@5n=BoP z=fpt)J)Zyl{c<0H{qT&xUs^cv2+1Km?Qh>(H%U3yO%9(!ndlroCnYgOosSH>HuvGh zx3xWzS~+lC+e#V#6*dOLTu*uJrs62JY+q0~5kb8aZwjRfl1PC+#E0L0iDzXNb|vIG z&7D}Mxf5r1B0Yv;9LSpDa|;i4&H2Xt`xk`1%hIPI$zlv zfep>9jv82S(Z=ekRC4uhS+?D&${hvQL_SKd@`sX#!_hO6XXh)a&@UQmkW)-BflFKki zVUF1b9kUIZWE-UJjb5+ua{hjYjk!-DVe?^!j|lo-((NF>7HoWhl(U`osKAjIN;%)- z9u+$BA}Qzl&Z8nn9(CkVM;?=M?-PO=Vvf96$}{i8Vn-gA@=TS)9eIhA^Bv+*i6bwS z@=U+0)RC7-Ip2XEl{xZqDbM7u+>uX{a`q)Wn&!w8QqI1fM+vb%Qy848aQIrW%aGH4 zXoun%&>m^K#fOz%Z+wbA)-| zUM%ji5-N(;WFUF~gE49C<=a zQ*!VAsc_^Kz7KrLXm*+&$`sFdv|svvs9(nS_^5bR@oe*Gzx0UW*@jexi^X3l-b+6&b}621 z810wduXwguv|r*L2-MFusxn+A+7<8VD;L_&DBB?Vyq~4yY;!8Z3Ay$VhmvUD#B?-O zD6HmbZ)81xXfK$L_^IB$z2OeeE-T(EL{goPA>{c6@*A)=lKe(xCxc2mlYFh>=P7=! zvQz0&b}H?P*LE(5M15gx=hCY9)e7(0xuEhT9)sE(rwZeb2&y_HC^W&fdhL_tDKwf#^z~h}bK*RA?hP-$&L`i(hxl~RT+2?#yno*? z&rbIC#>}c}YX%o(Z)c9WP0Am;eT@IH7}Opef-eta93`tu5BikI%SxsOK+{SFPS=m7 zq0GOa1El*vNLjvf*?-ccj~{k$c#X?`o{QV#;MhlDe@c_q_t!XKri<6V>?gRmT@G#s zc#dgm()z}5!qmsUYP$v@)VLd*{JjWSXBOP$4vs!Ml38%?b#UvzvtOr4r@O+zje%$X zPLsx+>fqStPihcCjiX%w{>#2A#kU9G(CxBt4+2-p2#U16--9>x?FW;s96xq&&jE)n zn@?IF?+;U70{!2+d{m|!2Ne!oe@PDjr*-gzK0X=8)TfC)$lEo8P|IB0t9jyDk%85D z=(`>`-qV_b(%qjYt^fthryLw>$R}NnY2<_3mnZI3;LPVEsJ!hkQppELd!&5ww?9u@ zK~bLd2V6es?g+q5;DYP2^V;tN4prlmKK^H%F>#Lq_n;OUvajM8x28|yFnZYy?AvhW zUHCCd0>97USB#&gWTkh$4kw7=kL}3y_?fr{;CP-mRHcs_c5p2Q4$1pC+Ax{=S`D1( zgNEN|Ca%-SAM>yCH`l?fGjKQz#0?m@Ty`?s4O~?YeLD?YE<2f93>?4fgUYeTz~!=& z`I3R-`!Gn~egl`wPUa~C$MKLLea{;>n79PuUNLZUa^PaP2)wR!_|b+aDBWrUcVZ4) zy@5L^2d>4yC3E094P1?ZbM1%L0ry?wLDh$@{ZJ!rlBZcnMHi#x@mXv$6$xUwpUX-4yN`?lG}!YZBadbW<4CUznN@1V)p6hPf=&NYpUtw_!>6bY2QYq*A(4$gEUMA)2 zr+8E*erDDG@#60co;Ds|P&~^-n-T8IPV#tmHa((F`Y_St@zcasM_BNxoI_sC>z< zP&@|6CBIVfu(3FD8wM=pSGETEZQbDaNZbk3QO^U3YcMd{o!z`(v^(1r>1cO0^8%d3 zWNUWw0@o`?W@giuOfoOD?^eGPmUa$W*-Xba)NLQP0KUIH}M*;n!&nUaQOEr~(#g`AxxdT-%s} zKbq6;VxxK=79mX%-!FXEYSPD-I5@r!wTxJO%=3JwYJGU6Wt}f?bM*BA*N&eit#6@& z+XFzS1|ihAN(c8MWXUYJS8xtcKYs}@nf`r7-?I*m`G{rF_jL!?3|w^<+`SHNHE_u+ zxLX|D5OCS@ca?+N2^?PYKIwWHa&Qj-x7tT#%InTsb8^tU9*8E%#nEOpAKcD7agPJX zdqz`Gx-opW-AAJwxiF+{sw;mO*>zvnMAtrAD z^+_LJgfk|t0XU|uNy}j7Yt1u1hsoL`u&3dC8-9$Ez>n>YIgeX_b<%v^WLt=kIP!Dx zGjXNBF+Oqp+6}_ZF>p8x#4R*%)ElJlOasR`yCB?Z1BWTjK-_u*hpE9p+>n8*%7MGm zz~!1}zTUv)nrFVWt%X@EiQeCj)J z;x#r02<%1)fOXV!7KcBidyFZ4d4a=4PhNuqu(dfc^qN#o@mvR`jT70Saj|>ET$(LTc(%?D&W%FTY zek&qg)Ez$PCq6% zZlfuJ`nKi8;+;y)dm;i4dA2+*RvB{cjooPIU zukA`_ukGn#v()4D`#Iml>&hf~{VT&^e}0M21m~On4MNKK3~;{bVa2n2+)G=p58*w| z`KFtdocA>6o360p$Ar1Qg7Zz7n(@h9b4#9SYvO#8RiC)unD6+R_%X!%5c5r+_{<+e zesfaJ^Ks1oG^wydoo_)H#)ldpB8-lZ|54;@~p=6PxqkB@DBUxzVxBjuR? zkvu+{C4ai&=PDj2rF@>^8x;=&S&2ucq?`u5N46H0&7xlMYPxQh=STWC4$>b^#+$XV zto2=87oL42>stMkhqn!l_ILMg-L_>+FFwu4wqDLnz_(t$Ws<08aIAZ5aC5&U@Rp?> zj+^)^M!S1AV5Oavw>rIg3581f#a}t5bgm3SD6F%sDU%*N8EXUCxN4H zbWQq@dEoWd6hdW;7$-E2Ax;l#+$bUrXa=Fi$$0>;gJ$n7kJVG217`29_RHMTycph@ zNmI`QtoIsH-!Jnr^tSapK*QcpGJf8I?coJw-z@IjH#i>IF)fr7$M3tJduG>f7qcVv zp@~qk0X}>2^Jpji35#TB8gl?RPV5!+CC?PCnm!n+Dec(N`nk60>3v1}%CBk-V@3e; z3BYh|Rj9V;+^bu~g2=?WO^LR3J;Ud$+q6rDP)nViab7Nk%2&9f`iv*;uda_hvr9y3uWr4nHPZPJtotfy`-mSu zgIVKa{z+o~$;aqH{&lu$#L^+{% z-5|>8>z5xrZ{&%IsTQ}eb5M_;S%%ESMDE2rG=L0_n|o4&4QO!O$>~-BuPKQGJ+Plk z$I+UU;0OBQraM(!cR~hjmQU=5=1MnL+}zh{a($cW9!Xp_+=r59^E&gznUAAsx7=oD zbCJ~X!5xun=&snOx6oXWeiP+08`RXWq2*058>EZ;KRq9$^AYGWSOJdB2_2ggvgd@< zjnV5jSjNHMv%~CDNZ5SX;Um)aip`)$5l3Di=PSyixFaud zdsODg%N=>SBcJA^KTYhhu3y68lVa46a~^7=;u&yW>k^C4eCf7JIlpE+^7u-zNa1;w z`t}*$Hk{Y8`LNuZS*bvJ5plYOkBI38&v`9dULbyx$r550I`Ts4D>b9P$dMO`hphNf zM;;ZQw&XEK9upt5`Q@Gc>Er;)EC1=3B=WTgH(2o|00oRRjos*`JnC|RNR3(Nj`3!Nf#m^LHTKp_g zYw^`0X7RJd&vjx5>Ff7Ni$7j`#p36P-4=g>_^8F7=&!l^c(zHL_v=wS z+aRtpJICTn#6rchjo~^o`etVOY*V<-?3Z9Ne7Sg5@t(eEQU<6b&Kp|S8_zTI&Aqi7 z5QbN%c|!0^k9-TmT5l{boK*Z=#n-5KXe>B>6~=s@)N{7tv5rjg9g1I|cziQU{HcoX zR6OP_CB94Xn5UHdD#c@6o8-?`Jmw!IzgqE26n~!Lmnr^y#WyPc9g4?*o{Yan@h77Y zM>g;1y?Qa-Hq@OS?j9M%T;9mwMq>ujINROdx3M3K-NyQR$MW4qT1^J|$w-f%daBSk z%cW`9VRxkeeE~u&LCY>=2KzBxI4Pdo)7dMIn~NcDk=(|St=opP#8YJ+x@;(0bh+y8 zvi_0L!L3^wx(E9l1uO}2O4r7|GhkIvdjiwWlqbVByL5?qh!dy&(mAz>v`!8eY{Sxq z4gE{AOomPY4W14?=2*ACt})QLaG-DDC1P}=dc?NKyJ{mQ)W@zE?ziV{jYqLZ{c|fgsXks<#IC_1)PIn9d za~M+N{?bWz95@a!YSOrmIJi9kBsB=3#&NzD|NZ>!$8olFS30;Sfny&_lh((wnfhJ; zKSzTQYTP_WAN$dDS#WU&$MuHUaKAuYi2QP_0h2A=CmbBt5hk*vyVt>88G!q&gS#HM zZ27xY;m{qIbT4rD?~^`e7fv5jcpsQ{AC-~0xL@aqTaG?-KJ(h!^2FVjC+=s!$Gy0gqKH#9z zCw)AQGbU~TxNQ4uZwC&S)Tb(Z&?V7$;S)w&fFJeoxw;rXbH2YBCwaaWKUBHI#SpTc zHF50*j_0Y5xVa8)t%2j{PY|xp!0}r)2sdWn%=vUT-5mz5Du=$C4cv?zxVsD-zpaDv z_ke-RwchYi1IKncNZ*qNjy3~9xaSNUzqx~OFB`aAer*eIu>h6#0o&;yeN_eyX1Rg5 zIs?bCgCKp)1`cMsKF+n5Xb0}+#)F^_aa!KD2qZP(Ciw~zQ>1YWaeoi%^Dp3HZP5%u zjbrbS=Cat_(q1aIljFFY#r3T)QP#0u;QUD388B_3Ka&=unnLumEdZu+YBMc!+XOW zv8J{6#~Sv*>LWDo8rXQ0OeDQhE(|?W(pi`a)p$Jgsw1(m=$S&S_bl|+d-@2h^=!c2 z((#UJspA6CK2SdIp0?7q_Ec4}4eLy+t5?3SLFTZkc1>Go)p&JiOx4Xg(aQGDqV=NH zY$K&CC0aA%^9tQ3T4_sVQUe&%%;AlQkT^TPZ3aPsm-*MVZah1MLaH+Vi)CM_)uZ-O<) zs=$YTjbE2F$C+x+y5`suAG0qxW?y32mw2~DFIy;^s_?Cwp^&iou){|jzQExN9lprn zqYfW)_+n9k{ABue#g05K<(YS4+>w_!e5u6qz2#A8%ApD@?{euJlNh%GOWYdbWawjs8>P;^-Fu?E-R1?J{Y zHhAs}ZOfxDNcX-g*}p+21?A?J56@5wMmoj+mW%N#s>0$cKOM_w+vE%`J@KFzUhNjUO^SY*YoaO4%DUdegS zbKh~h{wt-AUWf$c^hq2t^wH<=^ZKJ-%4dpywfI?rKIk;j=kRS7KU<7j{BdG~#UC$L zTl^f+Wbr3BYtm12)}){0tVvHgYtn0+HR-j^n)JC-u1PP(^TRB$O`~nfmFj-=_yW;m z@r9z(;)}#g#V2L_nD{;FH>0mu{7CU^Q)r9wxZ?Tk#(k!5P(0f>+MaNXoADEpFBfUW z^ZIdLX>H3=C;5bEP;yUy#UZbGx9%6TUu;g|E#4SZwvcl{@%0$HVA!W{;F*57EfXSJ z5-0JnDdG56{1PEp?s(d>1&XJHXa&!BEH6WuKJ@XshWhzU8ShtX>k+O}=VJ_kt3zm} zi>!+<5<8RO9A#UBK{d&rplnk*lx<3b;?GgMwuR|be6x~wDPG&&AQKRYaFdd2+nGg* zU#;Y4DPG&otWf;p z!M5j2z#o|G9!PKL8|tSWO8>~nw&BScqc7>vvGmxs(Mj4V3eGd7gIf@FOE2sm{QbVY z0%d##Smp5yW4z?LHw>jW>O{G|du`WwXJ5G3aepB7`qHMH(#D+921h!TgKuvMevk*< z?7M0k3+N8r>w#Buz1_Mq}Wf&Ym}`5ip~u z2EaU(<>B{s+0ORh8xrTCHzdvjf7A_fvRMfEZIjc!9QDi`s&$aOab6$WAgwBkWe}%~ z^Rf)81yH-D@GOHWDvzdZ&|KC3V?T?;egpeZn)LB32giPrmJzFuT^l0yo7flD1T~Vl z*9!ZoI$d;bi;1I+Qnqy8?cn-=v^A>Ag1gqiwE}0B zL#O*b2S=MEbQgWn>7q+%0vRAKq7=}kp7(+#jdN{? zXsh3@K?tdX8i zzjSv3mruHn=82;tj(qZWD0_kDqi-V5bgR&C<)d$10FL7*`Wo`0-VPk9#wUIJ3P2`q zH*mYP5NIuX5eHD|6DP~Zf#p5(PW%{!&+`+&6(iKN55^xcF!S-lEg^B_Ic{U(_8U0r z;*YpbIk*V}hpO~(+a26f1`gTuaqo0+2Z3Y0nZKxkd%J^s(a^_y>HO6=xK|7u%cpS> z2Zy09zh3wr(YWVvY}QN6z@f^0+&??G1aS2@$8vD2L+kszgKIJLl^M8e99*k`trZxLh`8_ZqldHfQ?`TrQil2?NJ5rJ(#BG;q0W&R#Td>~{p|OO?=1G^swTasW z-04QciDp0&@9l^>X7E+qbhFr?DbhHGzzys3-^NAt8JyHO4uNb-kBljkxXfMx0XA`s zOPkbY0#o}CD#iFH$oC<1xfnBS;tD$dKYQ;27*%!WkDog;NhXs(hJ;6efRhj)AmAh< zAy6NA83>9-K#Ph^Cdq^u2xOWB1VJ09T0q;PwJliNf_1yL+XuDMb-U69`|`Eh=xWzK zcK_Jg*0y$+THCr^xBNcebI+MM=Vb290MdWE<-p|J&-s4N_dM>ouk-jGE9P59v(muyE$2*S4 zhA>a=IOdxj@1RtIM`^ZK@W>Ofp&9o#J<-t^+uPL0CC47gZOy-qmD>4W^KyUia`sbW ztjjHr(a8>z>A}?^$;>#_R9eQ|zCTSZdu>e;4_?*FQ~KcJJ9OwLGn8*{x^^ zocMa*)SS0oY>LxAZ!9m-TC#Hby^pZDuRljAhmSPJpI!gdym7;ZhKpi(9Ut2L%n(u?da`UUQl+|W;C1sPa`-0B$k>)iEo|P@VYXoM zFuQ2d@QK(EcBVhkQEAoj*@amxl`Zy>m6KcW>La0!3LhKW(J@qA+RZ|59<}hptj{^V zVXHJ-v=Ej&dXu-{i7gkju=z8F*}T$W(Z=_MMN6QTPVM=pk=dOO$5{5xf>28+Y`yz4 zu|3&)3L4(c_GjTd=eK#~oJ^$W!_U5-{E_QFxaZ*RhhxVc*_pe?vhIn;pL&Gdlbusr z5Q`7x1YWdL{8^k`2?rlz?!!y}h_mH+fK}uUvpG4#Y;M-@vynjLiUc5PbPJ?Yzzyc)wRiuG#8(5%ocr8|b$Q_SD=a;&n+ z-}GunMN3&M5~KT4b|`Wio8x(|^wy_x*lv_lZy107yyvctocF2r8#E&SXEMi+-ch7mhJ%KpTW-&~!*{3meYQC#dPi34 zMb3vE&FmRH)12bwSng$^_ps5*GFtld3UNB=tM%{|o_=QaFj`qi?`UQDQ|O@YjkC?i z#b>C4zOSUCb9*}HMU5Lei?~$&(@B@UEu^c$K|@g{bE-$qi&pbbZQ*qCpkCkf?tixD zFLZ`F)N7*}FVGD|TQj;xq-)ozt{ZrMGQZB;=6Tb%rCZ&etGINIoYNgS$6h_B^gTKH zngRDV<(|I#eKy3?zwLIq(>s@8qz?7ku-j#3^YqO*>Tj1GwNB~yY_Ai)q63G2MRUyU zFXBw5m{%^U4FBaDGPKKk=4beAnPHx+^t2Pqx%B+}^7He{wfW_|RdmtK$#8E_r+m^` zOvfGrd)cqSPu)MghTLc1ECXj7ILE+#uAkl;ZRa=Sxm=!lC&)GA0WPO^H`@gac^;S3 zw~y`e40%46({t8#`G$OqfyWxSz`#KRk27$gfr|`0-oO)h{z5W)n7^x^uZf0yq9LDT z;9>($Ht-a#kKVg%H^q=oHE@Z6rx|!U*GJz=wwrFqFJM2>+GEJTr3P+bUsm`u|Nd_U zrte9bfB!KJ(^sDDn&Ej_nS^{S(2JG)?>6*#70fXIUdJAGGCQdP`n>E`1vAVijw_hv z-|KQ8qwz)QX#Tw}&tl6pdA1?XW_6l8$B^f+S(+TS7!}Msel|hDG~ZsA=Q5ur4;bLPK82F4p8lhP;TCY4Y)gd^{`AZy25gkkX3b1q* zW~V=+;hF498lJ^Is^Qt}Rt;CME)CCNts0)I*`Bo6g~>e@DGwH#r>&>4u#@}CsaqiA z3)r_ce37<3#=>m!4{7pBwoSuT+WHm?ySb>gS}n{*yHMlTFq#J>oyBU|@8tj+&+j5_ zk46iYGQY0L7qic3cnSNUhTp+9YxrVqPeqGe!WuOBrEIo_FJoggT+e>O^JSl3vTaIT z!bG9-O?w({!2OXhebhCD@jKzS69iQIeXg$exf$jVS**c9s zj;+-Ah3ry+Lp**FD;Jphyb7_&A*~Oj{Mqse?2pJu3QuG|6WA`#B=&;9%Xs`^_JqLH z?^o!V%swqJy@M2brm*)5O#MoQo~dk;z;^wYu)7T1u>7Anx3qxuIrt7=Va{>E2 zeCcRU$Oj~VPk4`k`wYC=z*y3ebQFJP650CbJV-~^!t3Jv()lRE`vTRKbY+lh_iMc0 zP`(47W3W;T|55v0+|zH*l?)uP=Ntq+ZQ#GP_dE)GR>(gg*5mxWSQmpraeYSw50ypj zDF7bzxdg!D>3+$cGv#^Ao~uN1;!*l22Iq$yFog#mVSIfO`7|dd@MSyyNnhp*>0Cwf zk1@6uKIy0SLgnK5*e~*j@=$$JJ}xEyGmIgK=NDPz@lb^<@DE}gP*{|AfxwjlUnJJe zY!T~bE*JP_f!hV%DsZd7+XRjXe2c)B2)te34Fc~FSgtd=Rp168zfIsKf!`zWWdaWg z92a<}z?dM0qA|}dfo~G{y#l{e;M)bp4k-sKC1g?h+UmM>VB; zg}{3SzDD4?1YRZZ-2yKa`27N}5cmTE-ze}01zsfZK7khte2>620^cj}Mr7)Y*FDk9 z_iGzgt~S=y@D)2eJiaL|*Bf!Xx<9gMpeNeDjIT**U3raIHlzugV3Kz*YExACs+;43 zU9nY7S6-ooMh6=so4Z#ciWW&OXVC0yW;hp{Q!DwS|U)P5CrgbtB!8N8}*lNn27F|8!hZL(3Zqz6gRvNMqz5!fX5td(bA<gfIAL1`V(o*`t-Q%@sjRh+)35Wwp0?YtiSNetE~-6kW7~9_ z-BOrh>(^W*Mj~MnTNT;sW#ksQBuBD&w#F&fwRn$jZ&2@R2imX21=P~jzcLD=`us*}2k|GF zdUs9#WE3|Ye&0WfJFvV#r=FrhnG|SGP$5&Eo-#yvawdZu?(M0EsbKQwt9XzmgZM-0 zFYF1RJ^DpSMm+XKc_RT-`5%6gkuW8vy}g_Cn|TbH0v1gCZE|l zMtmBLSjSj2e!|2_#gnH@Etxj`f>7zXT-M0IHPda&=gZ?m;SLeX{ zB1kIlV(?0m+EThdYVg*8GhN})_awPp1`nT(X?Y2QcOQ6ax>Db7aiHe!FnCgi!{qS| zhCXxw@UaWxkdyUtxxsrAvJer3lf1COqrJE1NfLa?8*lKMftRJ>y@fD{lIM+VkB?8o z`;k%JgW$=uh%U?ijKQOIi1f`bo#cJl;F0ZmHC@U3h`}R!H|fsDE`#?Ahjcd@Jj!^w zbgwsfQj0=#tjTWzH4%VO+tnJ9djKf3Rz`i_A|eO1!Q{QX>{EAf-yQ9SA7 z@s9-$#pLc;L!V4{Hl#8R5nlkWna8mINSVni#*H---r5X#2f@2CgLGd5@8S%26*-yZ zuNS;b^gRq-Ci$cB^i1ld4ktGg-i{1;$1>#kax*J$eTKXp8S)+jZ&?QCjXHKSIUg5; zmr4B%Wyt#mc$u8vAQpLM!dnYoCgs?lA@79@dBOb5>SZ-}ndEO@hWcIrFO&0IGA1)# zH+Y$x--jJ||0?c(vdO&$o=*b!^7v_kcM`k@q!2uL|9b)l@}5g-?k;5P7|zLN9DfKu ziW0={@4!P-Pr57d@F)gq!jJC7#KWb^K4kE^!K3)ZBaYA7*0O7emR?;8pa)tKbbd#0-I z1%-zumgK!`@Lo}P6BORl2Ja1pNAH2M92iQ{()C@CIv;fYB=6$}Z@j{rtne^2qv

    yG_EpIb;^1Mw|cx?vnO7Ox6BYh}RQeU;f+o9;gVUjn);N1?PY=31g zy!#X$>5%0x^*yBU%3XMmD!iF4yl*JHSuVU66y9tX-YW{P!iD#S!kgp5^Mz9NH`j$X zUg2Hn!YfyJ^IUk<3U9s(uUX+?_|oybtyXv#)^y}`D?Dn4PVHb&;ZdJ}6Yq9~N8c+> zy!#a1LKogc3XiS{Cw-49yc!qYHxyp23-1Mmhhay@bYD?;^zQGJzc&;fhAka=zS30t zTjIhSukbL8?5M9?;n917Q~s(I-X$))W`%dD3vac;yUc~xt?=p<9^Hez_(?Yi-UUj4 zB?RN(E5YnT<&6Cv@9xq`9{J!UWcXfOjPH>EzU0w36z>d8udH2ES5sM2x3D@C z3Wvzqe=Eb`+S=MsXi?q5DjpmfeSLrNB%WY$eSaA9uSb7YJVA&u=*xr?s-4P{++dtkunL>EM`!Lcphv>^z+JiNMG6TWH<#_Uz__;e74PUEEfmwczoWyq|6s?bF$`ywvjyX@THB5nZW#)*`x@V4 zy~mnihb(CcwubH9Y35_?y5LnLd7dOMr&X-x4rQUFzR>^t%oqA^DoN5MkpBrS9q;i} z1cndBhr-r-vUrJKj`^olbYNBS(QN!cN7?K6TJDbbcq=9jdy((9*ols|7~6L+UKFF4 zb6awFTuZDyw(E(7>acdcPUr|fx;*9ywcUJWEE;3;vxoh$PsK`GKGza{{F$osG96h7bZ=JI)BgGGku!3= zS4d_aKD~?Z^;LIRR|bmMH@?}J*FYXUv(<9Rb;9Y^0EWPo?(NWrTSd~f;HaVK=G6Mc zhN6CCbbA9{YELJRs?LW->fGYF!d7}ZI_bStI=bgJ6z#a(dx!fv>vZ+^cIi?3HG@1q zr@t2P?a-l?hu$TrUVL|W@3ddshgW4g2ahN9#)hr0thBhZK#2F3M zhAKKY$9ua&i)zAiLaY1wdY6PE{TqAZn>K`QtnOY|6Yai<$$i);f%d_^_RX8RqdoCWQCf2a;kxLiXg^ZG=Gut_=9yqh#m3IQ-T_Fv;}O8k z39>mlaLMAu3oGaGKee^hRSS)#9H2BWv(z+R1{x zGe6UB+d4cuBdC1GwRoIyem&m#^>`!J1Yj@F3)2#HGO$(n&A5p$qQ?WIzOKU6uAZYujNM?_!g`n zzNFzG`WAf5rMLvZA}iDIB=$RyDTta4tqGw% z$`tmnJ5fJ`>6)ZHMcxqQr*|e=Bl41lv)Dff{1BICvyTc)*Bq@8xm94g#%PU5vxWog z9}zActvUFt1n>#pZ{YVDc%6Z7FmR)Rsh>(Z(yxxk6IQAVYZ{n-esO(KJp@oWRGvVq z-M<~cw^cS__@pmzIb$L6!MlolT&x}BqmyDi`ByNuMTGAb;h6r-!>JxU==^$^e02JK zj(l{Q(Yt40nLSP(SZ>dAAidOI6}Zwloceb>$Q1RXV2KM>CBerxJ;xKo+;b?Yrf~Ex z&^Mb0om(8w78rnIbP97hI;%J?6}VR5xdNl}iOXjSj6^v`ed_D(CavGVNJbhjeqm|Fo&ukXC zn5HJnCyL$_>Fw=|U?#L7P9>RSIL+EhKhc`r-SG-bJCtDV@}O8iz$aYuU`(v;l4(mW zz8dfqGLpoZG#>9s zCwbpTh{~h)h+vY1XSg{2s=?du!277dqxX-)_(>GUl`xXKGdK{|c&1rM*g+^q)BFOJER<-jWt*C$15 z!Bf+vw8)vfgBkK(0gu|XbWZwcuZB!`^nJHlDueH&@1+cR^H33Z?Myl+eS;bD9tSUz z`opJXMm(oI7^WekGOv{RyP*$BC!IW&bAzQ|A9#nQ5P?!hJ`QlIlCD0$*h%ncJX?-s z()IV>_^ER$!UgtqIR)X=)<`wAv+v@k^6J5(aN-e1^1fp5mMJ`BHOc#s!D|C=4Z=tt z-J7JojRx;wMPH7>yV~F#2Co=lq>u6`_0j!KEyt4z4^@=p%`kW;z@z#ieblQV^_jer z3U90nkCaJ$h~lU(sPKsIlx|4j(Ri&BFRbtiU3m2hugHbhrtrqQ@H!M8KI0tomr!{4 z40PlTDLfkTmE|?ZwD*B`x4bC8lZWP*b_ps&-49su$j5b%fXCh6AyexmfG>IUQE+qj zI%%?g^fB$KMHty8H~N_NYgDm{&3biA8{^L0mN&k&x3UWFb2P#%e`KMWj=js+G%LpD zSi|+P-Airj>>jdo4;$lF2S!?(S-odjL#)-`${GaDZiP7)jLKSN!6rY#{IPm}J)`Pj_PfA~AC#+U~f~QHfqqs1R)$z_h$8lUYo2U86e}z#7bwLm%8PsE=l5+HeU(+7cHotS=f_;nkGX1N zuGA>H=)PpSlX#g*Ig9BSHXb#(m;DNu?sc~F8gd_(r=BG~L!M>GvkZAQm(w%EcG-qJ zhs$MO3GJ$;=g-gO^xU+a-;n2WIo;=NmutuaTu#qy+XW1H9+%Uz#&&szJfF)``O9Z7 zYxOtAz*E>^MNZ?d4+%`~YBZipYyHUCIQ0eDj4&^^T*bxwTi1*6!9GKurC^5fIvso1 zFH$O@&&zIBFpcN7E11S}b-7Qoc}L^9x;%?5MSOZEr#9h%yjs(jZSb?%1)4m^kms;$ zP3|}3e&!eHQ5*2!OOw{FN=M_pdj4|RziIM-ArG)`YVtfop2rSr@_a*{&ps>URDLhM zRQ2@7um^;kJPY!BaX{yq+9=^|LJkNVWE~nF$67R8$Y@QAbQUXOg&H2u-jqW4G~W9k z8lK3$q2Wo|c&ddj_$zzWQY{$>%HrF8HE|c+E?fl?+ zq;dtWw)+MGD^laAlzsr6HzD%Tc}L~*VBC`ONj{a2;&EP^-G>-}Un{~Tua5X7VmuX< zz%j-(sXQ?8XODNHgNW;&Auxm-R|<@AVUFhsjKO7&X9|qT=p4@#xL)82fg1$IxGa6E zc^U=AI4;Lc0$(IBPBPb53i26`w~8-xZv04Wo{kZKUVD3SJg>NbHc8h*M{b2~%gI2? zJDZmpmdi370ZnD5x1A;uVwgwLeptlc#jS-kIQv##hh?o*! zn|w+a-`$)E4F`_Bk2bl;HqEw@iw#3wsG)-<@9Ja{% zQv=~C`k$ydp7VjibVHSCui2Jb%bLikB1_5B(FpeFP8D30lwE}i7PgaDOy3^-l>))~BE;B@-FY4CmsT!No; zGF@sSYPxR%*Gm$7$)h?|d36Bk()}mFlb;J@<0c&suR2^GJnq`SYnA{$rA5x<-IpPc z<~LGXkj_cpc)TZO!fVTrN48-y(f4GAJRd4D6Mgj=@^*liNj)FSP~Te)`o4&Ymvv6( zpdJlLwk5*y_|rI6dCd^)mqJDM2^^!!lJ19i@eO0(k;XkQ$B&}W_3~c))N#Ok4AzAa zR)Qb0%6at8+=ZXYyBItQCmw~9KEila*Lcm~g%CzOEN@Ek=si}|*RANI_Am9#FnGP- zQNBqZ4jp+r6kdS~?{0-hdY#gJK;eyZ;eAfwxs5A6uJGK(6`xgj<6YAIp~7<;SA0$3 zxs5BnrSQ~oMe}^*qjKf>D0azTiNd3?NmB1!|7hg9d(9;JIf68()5AbI2? zI3amMsI(0dz?Zy>Dr@Y;wS4R`WRFvZF{==vw!r=?*WOkyuFQDt?J(*NF1hx$giU7Q zBSo!GZVznV*JwS*uygY6?Wf8nR25v&)^x1c(=xv5iH^P7PtBZAv%cy1VypaAl~wh^ zVBYq<+i#qHf1~F)RvhU zcNQN2J@KBt1$}83Ng1TKvCqB>3*Y)Sh32>7Wz_yp^X9rS|1#RYcA#%F*2oFtiTGB@ zgchUaf1_&yZ7sgoqy3wl_^`k{FleW3D#XkG+QGifT`^P8jir6*!q!F-?Ic^fs?Jp$ zPsFeya*ZpeKia)9zM&dR4~)Zu(r`f z-r81K)waTwvTCubm`W8{7w=j)3MbYTI zRZUC#n(JMaG}M6P&RFPPqV9M<7L)Ss9#=hE;#>OK2Nt^*y`ieA#{FDjoox43taWuc z;|+^OEfbO%y=r*we%<9O$-ktg3iqStcI3Jpz8xC}t*hGFYijF4qu!I%yXe|(<0;YQ zGP}Zk_gi`ktiVs5iKEV9F=toMTaQ|$^z9fjUDv~Om#~8OI;%{)gg@?RSRs7 z75Ug?fvJuPJy~2A4!NVXccj;YCbU}k^xZ<3^pRgL{1V}Zgio!Gb6|iii1cr4hcO1JJpJg! zI`!??Y5N7oy&N33ayY}~Oy|6VIbBz`az>J;jGs~MWF(UEr&nWE7uJN$(v#DIuv~rU+Ob?357?`N+;fs!o#5>Z=b@WXQh+Ag9;Ci%Oub2YdZ|yZy=XW zwkxx*?NdnXXHp2VJR~3Wo{;hP;)FFzpzvs5wtFCsjhXCa0o=|V^|e)|?`x~93yaRS z(boj*sNo4F``UV0JZb0d%_ECjpN%bEw)pBLD}0Sb!;6=*P+P~c4vYW2F!q_Uds)q) zMF(kZz&kcvw!G@lW&HSHPWFozu7Ah!1&0c!HS>@aS9Kt4VXSufoJ0Pqv5e%O@QwuIk_+9TXC~ zV0qD@lB)4MB!rNK8>TKFdnhD19{-E}W%Xfie8TeFLo=(oInNWKoWFS#ujlm^3$dZO zc(tP699D1FH)A)>9Jnb|F*97s8wXy9CS7}8(aroYg=YKzUiEnIGTlnPLw^9vW&_>-bUr1 zx>v7kUAh#Xs3|VDzxc_5kB@B`-(uS%tXpoi1i1x6@4h}b}q)bCVi2z%iNlW8C;cIT>xIv_ zA8bMDvBc6p9~9t%;6m$`70Ot6?_(m(QKdZYs!Ho_*-~X_F38_#dgvxG&JX zVgs)AboU3E;u4~c;&$q+T7o-6xN7UXP*rY}jd%8pO_@5(^Oa+D>pG8Na4L`K_`!7eJ=5A?(9?6vB_5VIBRm#&Te1y^5~sW|AFJt+yhom;6Ou9 z-hrJx`3H{ooIHv&TE_5pf1HIwY)=07$rh(I-}~I5*v_V4<)Mzm(L*t-iF{k~2QCQ- z$xbfu&Y0@?dhzugr^2Vgo-mv18*b>eu(qtBJF&E(m#-?r5qg4P6V;Dv|ALlF_!Y>{ z+dj`s^0Q$lmE--*r9<25vpr*Nd}=}7u)i!MY?~%>o)~*?NvS|N7g^uSDPt#=v=oOt zO?S;G6X9&$WqjS+F;?>8i5%asRd%hA9L({(XqDX|PzOgJ7ATZc3fbiXO+8`9l-Q0b z_1H0`o{*;JL^gZTJM$Nh)Cf&>Imqs6eIq_Wv^EhuawsIb1hfN>BLp@ zV3+00@}Rb3%0njS(`*yegD4$c%MC@_Q&x3>Pp4dJej2&1)4#4lh$r0}I54gJdTuV- zex`Y%b9N?mq?U`0&sGP`8i9_}zUQd8eUQc_<}6KX2&#ydgdf zN={QcKX1sKz@p4JS$lrokT%w*Rn7T%Lx0KhhA_OrH%1VTuP*yV#rT`84m2@~>DXgn ztOy66-llBlHRL`nr!NfK`3!j$m(y3W?XnDcHkZ?zyzR2Nyj((N%c*z4cD7t1TK`Y^ zOTDdOeYjRWzkzcN9N_V(2f%g#E>Gph#!^Zv2Xy`UJU+c`+b-Xbk1_CA0~Z)LXy9=M zE;MkFfyWzof`KRU{Nl6=H_?z!GH|hhCmVQ*fu|a{#K66Fau|fxaEJ{U`mz+vJQmY2>>uPv4U``2A1Ih%&e0kLbNdGhW*#4_ zS1`AKpkRhMNi!9UtH;ov&1OSRr-Rx!u09sf_^^MVV1_wU`GQYv-h=l43uS!Yi_vPG z?`O|ya@ar6^yRY8YjW5>(BuJjpC*U>15KXCHfeI$KhWg)Y>g&|{R2%thFz-3#~Sjn zY^EkJFysX+SCa<~d62zM1L(qGw*o^xj(ty)7aH&eiyn4gO>{Pw=T%0|ObX zNaIg2_*2*fP5%`323@$qdD&EhKb8Fsa>@_&!gwHmQR9~w{1WzWf=~Bk4^~@|{ZHvE zR?0r5;WECzMoK<|^=a~QcCChIGP!>S#j&vKd#NU$&2ltc!R@=G^v_}ciiro(Ss3*G z2Mu4yKB?h(><$gjXB#xUfL){Ei`XI!huJg@S2C}LtJu#|w@8#{A^VPot1((~knFJ=ohyo8k~*o%=5{d%9yUdPF&^H0@Eb3VylZwh;ob6hEx z<2>(R)1i;#)C*JSna*Cr{e$qU9DCUf0@FJP*%N6LnBF;PPAKiUPJDU{(EbtsA~4-H z$ezd-1#aXxz&;|doj=TZ6_}p!g_sn2gTVC8Q0N)M>IDvQJeJKCn695fPXWu*#fjJ$o@%S>P0T}6tRZ{ZsB-5+bi%ajwi5wfvJ#%n5=rEz;^y7v3scS z!jb)xAp`dtIBMYQ4Sc16FEg+@$C%QaX~>HWoMYgVGPCe0{=Xaen+E=(fgdpNUITA6 z@VgA$Y+#zrC|ySOW7Ovx-e)QhIdIUP157@hNAhnFey{Lv6aGHoKPdc1h5s$#|4{fp zA|FCJ&w9LxEPP%r;1h%&vaj#J zrx<&UFe)QJKFV82J|=)p7kHMyJp69KgP%>|pA+>1pPnCttI3ZuM)!w6k3Bb>&POj{ z_&na<+0V*?@HnG`hzmA4|@1{h5T+IzhC&M3Lft< z;eSi`F9@HXU&MP|;5W(d68ZZgjtQf3d44g$k+*|KM1H?4>7qzCqw!0=EeKUV-ZczFlB68m{jSf!7Fpr@&PL-zD(-P-$nrb^u+){af1; zv2A=gR{PEUaqQ4o#WzS%Y%7hVRJu`Uj*UZXtPa@VAmV0;6q(&s!7V*)PEZ!p%X%Z5 zqU{4WM-n5&R4h5qhs@=~JFx*}yl>M;Ce5WMHf97Ru=mVha`8m6D;@h+V(*#0-oF0! z&P1BDY}-!l@&0#@)Q+UP+T)3M``}hAO6`rvl8{N86*PMgGw@nhUbCrvS!7c;HsnmR ze!^Hf5ns^Wj_L8p5H03K@#C;GRVOS<$%>0@#w4k}n>QK3CKx zrJXHl&Pff^ZEukz{k4}yA}%>i!ml(fgkNAgbP4KbXRST-;$(t_4IdbO!P+Cl~*rqPxNDnIVDRM$GZMR`-1Lh=jL_o zJ^hi5(ekv{jI@7NS;Y;YiT2*rUR4=hSliRHXrv9aQJAoU=5TpBWUJ0`52i(qdoV4k zb}HneN+(IJJ)b+FK} z4*rVF*V*^Uk&k=vM&KkCx2BO|et#Mn%x@?ogY7$&9WI|c&JQv1QlQi6?&kP#OT8+L zh(yn}znJHq<9m%(EV@NIJ{|R!oe}Zgu7~Fc#i=(aO{Ba%Y2hQ^oc@1Vkm>lMcFuF- zY=6+fVv9b?=k)S|HJxPqh5z`rX+oPc03$5Gkg~P9#xxcQ@x>$8cTUHl^VVtjn5j;5DYv_e(@j^}PTd{wJN(muKjE38dGOtW=yA z4SnCpvim(GRqFdkgZDgmAxVNSc@G*q8Y>E>;oWKQV5T~)zCMFj241@IUT5%TftN1b zB?hk+JnA=)4r1=8uGD(&0k1{K$dkN~q3?6x%}T=?MwqJa1@O|f=UhYIOF8M!$D@Y6 zpMsa4Cfx%D?{)Cf)eE|5wEUr4KdrtS4c=Jr#-~Y_u79<>W#CbNp>(qT-T;Z#q)JyO z(nWU;@86?yO+Putku4%NgEvJ+f-m*W#xbQU-MheRmH@t#nY;%x7452T^aK32XC2F2H#2Fk22)V&C4u*J>X@M?iawzq+VVJ z4_&26=TweMaj|8hZx?uNNo~&c@_dH+CXUH0-5WCGeIi5Nk22)VLZ^8q<=p~aCiVOT zc$u`*KW4~VQjnRxE#SH4Puy^x054tp`w<$BY&&%N^KsMlDeXWW%e@z*CYe@2F3{%bDVesggLi%v2 zBzcr)mG`QmkDg1i9M2lOli=+~80n+ulH?sWc)Rg1m*qf}CwU(>c>5F{*9Tc@32Nm8_g-7q-D(_*1NAIap-wcCy7(8kpR9>3l<-|Lt@Io%UVTD)f z!aJex%3OFS6&~f?DSu=HTb85Tg%?zKIMt5&LJALAaO8y*9u6IO^$M@Th1aI==D6@W z6y97HUP9qr=)xOPc=KF%`xM@M7v4dIx4?yWSm9md!aJt$!Y;gFg;(jqJE8C}1n79) zPAa^GE<9ScCEFiei%#t{sPJlBcp-&X>%t2wyhSd&dWA>#OQ-y`DZIrlybgu8#D$ko zco^zVrc3uidhSR!1m0#P0JnMW=o>%@X1_%v&Q)%7l1Dyx2|E^Jf5b_^kaW^X9*x9M zU+AD>m!`UE(W06~>Fv@~)h(_Hhscd?mu3yd%HfiBX}-aZC+*TCj*MCM^$q#3=i-Ys z#O{dYHTs5gmj@2zaZ3&J8ncIU%VxAZZ)F`Sf06KcI`bqE7B7;X)73l4Q#>5(}aw^HS@KC-CbdEj0v&@|Z-Xe#vunx5zh z9xZruB?~mgTXMJOA~fF8y1kYAd$#Z4{!`nZ;(qRqTrZdJXyyK%9ecR{)Q((eLi}4> zx!-#09`5hC^(pQ@b!%>RplMf+?=Y-ytb?V5IlkfJ>&b$`@y^83-0d=P`DAtXmhadQN+(%TKgWIR#{_LLsw3z)k)SphAu00u4qlj?!$^B8QM&{4zsJvn;{T1z||p3li0w&uXz%bdJn@0@YNzB$Fi+>$t16W?$w zo9~*uVPC1g(HiDf%z5~n(p*aq`HUHIWXQC{vZ0<^TCugl+R6q7?c@(-**>%V5W>>L zW+L{Gh;>ZFsu%t-AJ>A|zd7<=*zss94V1MtUCk|2G*9m+X)9gU6euOz6`p+_Zp*{k z_mk{jjXjZ-Q!up14)F2V= z#ZhkABysePmbop(;<#+vv5=>!P@scbkF$<#^~`D-3Rz80KN1w-KiWD@9GzN_KYTd5 zxqvK=*r`6q$li#^O<7~|Xl3$fSMumyam0jg$MWna+aJLr&u+bIYq@U*u9Wvi^0u{Z zo9fHW&TA@a`g$aY8qI0BxMiq1w4TlST~khlH5_hv>*&GtOdOp^9(An0Bj@u48%wOR zoD<`Oy(3l;7+zWO{3D-j{O$Lw{Z{GD`jMav(B zemb)C(^1FzJ9EBLu%(1)`t!N|N1)%f!^0}FhO&wkpSJha|ly1OaVDYgFLIq!1cp$S#fIfsS* zc=TKNu#?yJ$ou~0-o!wpYY=wkH}wsM;;_y`H~o>k)Dw@-ji6|lq5;G4AuN~iBe%hitIfd#gpw` zHs#PY3GIg_gnE5iASA64AYQZoZ7)96V9q z4gZNwZ&%`I_=xZ0-UmoF8Q~H9=HQ7o6!yRhlCO-OM90_5XWu>i8EBQ=>!t9W8^$&5 z#1m`hhI_cbD^?i5u8d8)kRskakNCN5E&IJ84>q-|Qu~;8ledrb-Q<%}#$IM8cEwJ? zlF|K5^pq!!$Gbe;O?ciGJPON6(X0bIyR#1*@3sy!L_G&~Mt!iTm!{ZzBNy5cQ? zTTYc)l_S%Sw=BQKDsA-kUW)E64;IsdDCfI4oRybDG+5XI2z>V**u?C z+4E`7bMVNc!V(g_dC*&k)oHEwl-+|jkcJKX{RFLoWIp~@V)3^pn`6JF1dlvs*iw3| zQtC`uQj%eQ+^@;rlEgSSxUbN=JEoBS1>02`&3*=b5#b}m!Jd-4O(g$0i|cMriF&-8 z^E}d)5b>p>uhlb+OHZ29iAz0h(v{<&p=igbwq)GwNV(Uyd!13Qo?G7C(xsk0=eX`| z#JzouJXe&Kbku`~I=kI>hxbkoYR)+i?q&Z|=3hPMpXK@Aepct)J@4-29_^f)Hm20P zxA45*cKg}X`)KXeOkcfDPdBcb_cFWPTwMg;t<9L}t2%mZ9fN11gY=DVgX+w$pR>8Q zpH19!_KeiJqn=}2x7VC*-Hp8VZ@t}n2erU6KaX_J9{n7Qybr16p=ZX~>L`30bcpu! zC#es&=K+n>xLsFnaYwtKxm}afGps|m^yxgDY2HVB?{G_Zw772NrctWVY+sIcJ-ffV z_&sNve!6=CJ-?-U90v_W+fw$@U_8$4Jec`Wb?xW6&fNBzs%x#8FJPy9jaJ9mE^(=T z+}cO?S;VFCIOTb?bVrNpb{_hXZl*Q>)3uKf;!8(6?-=c4i|3=KXP;1ge;DmO-|bxZ zktw(OH0wltR?w)>nLI1hXI~xHk=c8%nHNY}r>2LL5lW1Bd*)UBUBq1<%_RB>Q;h_ak*S8F+p_(*N`O zkz#;KeJ*t2y=A0(6LVTq&SEu7NRDsO2}$ z!1)FqW8kp{E--M=z~c;DXy76Pk2mlH15f1jM{oGHn`p=<8MxTMlMOtD>!Ytw+fCte z`WjcUL=1Mj==`PlQw_e2Q~VMmy=exXZr}^J{>PIFE->UFF5jP&hYWeCfy)d$!@%VR zo@wA&2A<8+r>_ay%{Jr}2A*T!xdy(_!1D||-@pqDe35~}2Cg)4m4O!;xZ1!q2Cg;m zA_LbMc(H-s!G5k?e_PlW6-;&@KP51YP>>zSk7^hL>cTa1`Nb0Qbq-$aL>o2q{T^!q zk`8vqbnIb2RODm_GOl2<1G!AWWCv20``A29o@L0h*jP=TZOF6PuawVY+S^yxpTl0z z{?Ae#*mL;b((yvAs@?1Gqh8uCK+x0<}jkQcG{Yx41id_3#dP@vKmc3$&gQC<28A)AundXOWlmodM6w5$?OG9KE;qvVPDYXQw{l4b{KN%>8IXK zvfFsC#xF7WCCr}fX`c}?@jlrXionKCa1U8S+_dw}<}`_|*o# zniXjB8bglfYmO`pwP%=@QJxpfQ_KDUc`ChH_C1Zi$lxzxKM;I+hx4#S?5i3dW~4Oz zb?kA$r`}Qz-poI)@fREX#q5)UPd&LFwwT?n@GaaWHfZ=Vc8!MX*&+=$uxT1@WL^z7 zv7b}-y>J$u^54<$w$EhL^L28oq)}*6@|=RF=#QotG8t zCmOzrJ)_~P*_Slj#y+ayYuK$CUdg&Nyo$AIcs097!`E^-2y*LSHv3IhU zHN1v>Tf^70&ujPw_8|@5$hK*CEo;~CO{`hN@4`fNnL5=^I~%Lv4)z;m0fogPjBFuD zXR%IpRKs2DK@E4a_h~rFdNtf**wJ0bYBhO`P1SImF1n<%*n0Mp)GH?Pzkxli;a>Jd z4R2)kX?PRcrr|#JE)6GGlZM~TDm2{B#%OqeuPK)qv|yF<2Xr$K&Wo9F`t|${_9e)P zLe)-ocHgIA54%x`KhCq6{kxFUs6-*`?k>muAr;@p76?rD2ePXh6u6h;Z1!JxKTGj* z*mnh{5f8Gv`!#{-Hb{1NAJlMw-7PTPPYXSHtY6@Aj`P_&1-8pGhAq+Jk7d&}c>(hX zOqXq;C&*6X{VA2daqL-v?fez8&j@UnzleQMV5mX-@oZ4T6WCP((>FNT-CZOw-ERv$ zlh{Oo?egIJ8wZqrHitK)<%g7M|OWr zJIC`3d7**dl#$_6{1XO##=u7m{GfsN8F-6^8XOma~%T9 z@V%=P2NAWykppQ7s|u)t#TgkMGeJFuS!`C-epM+=|QAzV%VSB2f(zh`(t0V95| z@Oixdwbx$<;M3=O;3A8+SMtjV!|+Tk`M5|fCVwHl3Bbq6SWZ5SPq&eeh1*>JVa9q0 zBVD>q16X^pL*P4wPxVUj`-T5$^1*vl;Ae&ZUE#kf{5OREN8$TXVWfxJ0r@4uFDL&P z>Yx1imTh-~ zKM?pqfqy9Q2L%3ifxjT|e+c|Ff&V{&9~1b5!2c-l%L3yj$LsG$0&f)f#{zE<_!WV7 z3H%d*Hw*kzfiaTK_5DoXcMFV*l-JL#0{>j#n+5)bz}p4>rNDOz{F=bK1^$)5w+sBA z0TjwaGE$WdvY!;_Yo2*Q49%$DV#kn$_OjC=@y4bl+S}$Dv zwwjq13G+3(QL03{ezjm;d0M@1iFZf)+F>XdM!R94vKMx!H+C!5n-N{1bjJrGoxRca z7#0q?5_MbBwvzUNSOoU34do;3MT0yT-x%$Kwd@gE24H^FFrf`PWqeCQwU8|XdEuZf zzR6MA72CXNgPteSM_Fj6JdizPt;R?i9q39g=p2l+M_^KYL<|Uw!0w**g+@)2snotr z15tiHbUL@Vtr^@#8Ts{2868nkwmnhar0F8vW+>yP)wwj$+Y7q@W{ySle%Xj@iw8VC zZnTx!%Se?yef?cgC>$x_Cac?d)c)wZ+hYT+l*s16KD0!gGcrjssG2IL&gKTRH+I9K z0hLmh@od6cHf|*Sn-fM6qupdxonppsF^Wi%L|<vOQ^KtpL&aoou9P8oy zZUNEq^ScE^%d4C(2j{E7`C@Rq791}Hj8pR6W8`~b>M6>fu1-R2D}j-5wXFnHv9gtb z8l1tGhe|iM7=TRq+&KS5B3`^l{~{UjCi!RfnUeap*WNwpeJ^EEMt?8m?}Fl+encex zeKz7XH~IRA(x>}aO8b>RLbqV0zVMwGZ}X>B+CGC3X`lZ9`)l|BJLfxDti1f1x^ith zi}(V^o~d)58!aQ)3B&$RTVag0uLf2>Id2Lk_tYRi<9#)_#x(nC+=d=nzPT2&rsL3g zUybFEdVN{hIsV*0Uj7(kUyW(gF9?;E%_yHaYj(w)xfjlxzu=;9W!1v!n%YHmi{EiB zH{JMXwmpstk2~sj_laZjB@V9!TXv+{w_6m-*V7bX7HW{4^^LZvi^bw zZ`eWKYsfT2NgXc$q&pu^8NAoPo03d5b>6;c@My1x{4~7#3?7ZOr{n!2(oypl0uRGj zNe4CD-D>FbdokvmWTo=A*5FM6FI_vh)Zmqa*PTY+hmHL02Jg}|ybT8LTMoP{44x19 zz_5PO$@5!oj-Ngjs4wfegbytR@9U-HHpyhp*K{dS~7a@=7^Pt%v5gZoAr zUV)Ln5H8+y*Y6vs2Z}D+FwH+Hv6JF|W&TbWJlZ=X9q$=~*8v`ljt9W2mx;oc^|#&7_e1c43Qy+mT?X$p@bEwBB(L7!y#Z2Ll9f8Y z7aF{Yx#{=9nPBkNf|oAcw~zt#ymf;&D^0pTGk7#VO4bF@WjVfM@IC-ux_bGt!TSVw zpG}kQUW2y`7kRpNu+HGoUMcC?0j7#*<=p}v{wE#OaCfz#ZwRDx?X=F|J>bCmB($pa z{Fps-%Yipeyf?`rJ`0{t0{HUSZ}5h}OScCZy>N>pxt6VE@Ng|X z0q+k&A8zgJWxQzN)jH|6*4ppITM>d!1fDK^7yP}!+Xr49!ik3_mgL=I@SX&Z;uDYh z5vUx5*BQKFg*R2*%L4$4SQJbHJPyszL`<*flv*2_YL_c4Rlq3}@jq(0KG>We8n zWHrgV*5D-+9uAYdYJ;~`;Vo8pGYsAkc+`%z;z!q=EU(Gir|>Ru;T=?X)W71S@36wV z%!PMM;nlnFh813e3-5%&YjokARCrA;JS-he)?c#=FR1V?cj1K;UW*Gatnik)@ah#F zwSTAc(WdZPU3eV|Z@CLEq42J7;SDJ~dX6~dZ=b?j;lewp@UC*<9aeZ(yYP-FJbHdP zZM=SmC|Xg;%fe*0}K6 z6yEhNybgtTg9|UA@NRVB4Jo{}F1&pT?ri;>U3dwF zx50%sr0{xOc>5IIMi<^eg}2FtcUa-|x$urDyo3vHSmC|fg?B>X^}Fy+D!c&~9=){4 z_BZIl3o5+L3U4xwz4%EN0`F6DkOP615TN@(<9!`35C4O{Dd{ASeCVU9;_hpB80?n- zzU0yL?cT2Lt_6J;VIRa$2y=()-1bbw^xUdy&K!Nu#L!%xU~vv+u zJ`dk-$BJP$9IgdB=fEFr-$1KpEOtN4I$&YvqlRujc0j`JL)Zby!VX9c*a2xLc0f8F zrQL|^eVa`E{ykXm9zH{OI%Fcz@sjwp-yYLK!n`2Z5B~8s8R1Z5* z4?8=8M|Ywg$hXQ?@*RWhlszY`7?sS5VaF)!pG0Mpdn7ethoFK-J@;D&3L$Ce^xf~} zM>{+DzKdlmJ+yz5vmWf~hk6ViVP%x}53y(0_&T3i^WM&tC84>$|3UC*vQ*e#F?ht= zlHU?+DUEf;a;FsYUGGBi(mlugPx+t9@;4PnI^xItYa*fTv+4I<&Do2zJ zjG$!P!)pk8Uh;jjtPt(qXYZTk=Xs`mv+PiP-z+-}Qoe7NRaTgtsyk|X^=Z*Al?CQFZSv$rSj)AQ*-Fmp+@6YuI{CPR~ zeq7)A{8F<2&^y!Hp`*gcheyeWo8@r2tj{!V=q%z=9h|FlO$*~{eHWiax})XUOcz}% zNjC*YXJTbt%{#Rd=Q?xWm4zNZ&T(^GE&WeChjB-*vmIBUJNk_CUN%ZxGkvwbM?2qc z*VSn0y2W*`@3TA4W_i^%T8_Fp+a13~t24LsujJ{EzJrsSj#+jYM%~HBt^P4Qycc_#)+`9uhBha)#|W^~sR6KWU%W z#vYjwKKH|`%(!pn{0msAq3_E|pD%;GQ5}2O{feCI>(5p&+1DSZV6v~T%YE#(n5QqD zmt`69EcRVZo^8mp**|FV97CSNKCa3AhTPAFGY(sHZ=c{j(-7Fysa7Ax$1MpJd15Q#sIslVZVs z{IeQfz#h@?MQp!@!|XNhbY!h`qK0eOTS+P9r@mM2a5=}>>>mZ5#c>Y%q{jENT^i11QGuyX3nMh_YJsVbhwL#|30%f;KAWiFG3<9J z2<69)KbCz*VCoAl#N_f%3v9;^vO5H(+kPP?Pe(O=A-h~)TVD~IDKPb$kv-;oE&c@d zd$ey#pZc@N9`jEGraphN$NZ$gA&!gL5rOHMTj-h0J}$6b-&5F-z|^-?=$Xp;wD=_q zqg+aPr;Tb~m+~eZ+0)hTFL)jYAq?!Y*V+U=VxQN*M;QxIIQ(kz5nc!1GsB*1<|!4p zTwqi#wGR&_P7vSICNL&QaEu8vT;3t@T7e@1-ym?O!01%t{4Rl)3EVAki@;HVQQ4f| zBXG08>ja)Ba7^GTfiYo#=dWJi^#V5vj0pf-eyPB{0%NS1r-uQ3F2^5^F>uc@8Vko5 zpyzmjzzKnC1;&6omoFE%UtmP$@iBnTpeGBNTxbcHYjf8+3#wa&(iC)3MNGDrB2HMa^#}=Tku^qj5 z?V1%guE6fG6c!fI@hHt5+KCRLXHwYKNan&evl6>mHC&ezqW7^UI@lFcBSklH(~q_h zM>7dqsM5Oz`+M7adXx4Zxo%O;!5DfsHRZAbx+1VHxj6y5eNkxuPmMSr#OMyZ47%}qlPeY7y%h@QO2w)Qmnwl$f=2yA_%(bu;n+HaexL(*>YG%~aU zSQ*^3E^S6r_FUBR$EnX&HBG1ru{&%$vS}0gjngE??HVdJ3e|{Ys8BPKX$lRihng4_ zIid-Pv)R?PF-=Z7wai2s3*F8({;lGTbibp1?R>w63-~9IdQNV;s+o=WHGA zyiqWi{&F;ocHSu1pOH~8e#!m`9uj1A%D8p?NuC?pgVQ#dq~4{H&yDlXm88X4wSNBc zo-60vB2hZ~NU4X3{gNOaW#>FEXJ#FVPVn1l8%gL(V;KqGB$-)8nh&CjWu$Xx{OEe| z4M^Xx$5eaql|4V+nNc%L3KRECb1}})r=BG*b27^a? zuu%VnbP#iQiNV7*CTVSnByBl}cxxSamZ6XOp3>#-`v}MX7igc|#C{BniIc(RHZu4nk0`@Z@#*1A})0 zykdnX_0jd9>U$G{@o9LUH+cEDPD5#U`wZSZ@Y0=+*@7ok)PdJ5fg&?`J2K=Q1CQ=S z(oq@7nfl(!kXMI_%|zc|hP=ZW^2i2QCh1n7Z?oAhBLC}D-d^xB(f4qMyjL>hg>VsN zlI~jYGAYNw4E6mmLtb%CX8Bv4A#Y!Xyl277q`X0YX8F4kyiD}%%aHd%hUo@#GfQ`M zhP?gYWzt?=$dDHdq|e_Ft`>Q%(1o)aJRcnhCy&t`s`1ucV?V;gz}Y@~5TBL3wg2M~T8Kcj3)bcr#si z7c0D3F1#xh-fS1%T7_5P!s}Idb6j{k6dt`#IMvJD3J)Wej=TpH-aHrH=M)}&#Wl16<)0i?@EQY$c497;mL0~y1$s$d9T7-?4oan!ds&7%(azwgBSIJAe_8Unrkb6 zjhn@n@hp^1^2kT@gbaTO7sYl7;7cBLNoAcdc{hQbg z$+eZiBcUr!sM}!ueHMpx_nmO$X7UG zttQsT1&;*zT0C2BmD+ypG9Oj~+Q&?U`IZfZeI5Vwo2x(gPrvE=U~(-U*3YdJD#jx8U#y3dN;&+L_j9+c<@KBR+{p0w%@7%Lm;*c02!LmK0Sd4P75Mq>Oc*jWNg&vk`pqeaKm14ptJb=PL<`1$XL#;E}xYhpbl5z1Fy< z@8jo*J;+xYVm&5ljSH=`0v37tnCJecJv<*ao|=Wy)5=PoM-S?vRg^V&#DB&8jqH0< zTD&n|`KOxpu)HR3$If_eelBWvXN2ne6dJcD=0~ijM64&`h2FwE()ffZ*YTL0gX2hn z?tOpB>lx`=ke+{P8Pv6q=GqnY+i~n^#-;Zt>F6EfY}f3ZZu)Om-l^Z?Z1Yafursaq zKi9Z!YoyMmo#EBgwXWRK9j&g;Rov0a>y|EECvI)SEiUzWxy5z6o=3~GTinsEMYlYk zP2ADWuUno+t1GuWpH1A+%4_CXy>HUH-I?5bR2~1Xy|;m{;yBO6-}52q=;-?c5Fp@4 z2n-lxNk~H2*pZMB5(b+9v5BMfNIE(~2ZSU`0%M0bf?x+bG{%mb;FP9L;xr#64RuYg z|GAK2$4wnyw--BZ8z)ZxBz03ab#vXsP14pkzR$ZmbI#1@>}mni)UoELqupoTXJ=+- zXJ=+-=6&ao5(ZA+K{|(akJO9KVN-q6+h66-zTJy|z;B7lVKUFtsvKIevkZ9_jcf9dArDbhlV=<9Y+9?y z!-hOeOEr0pAto=1PJ$@2|4bapj)fgvxTk7)8jLtaQbG2Ra#vi2%&r59bPg*Fox@5)=WwB+ zb692Q94<0+4i_6bhgTRnhf55dLrg@Zsu0vJ%M6{vD-E5)<%Z7T3Pb0x+R!tSo=o~f}I){yh&fzLU=dfu?ox>fd|9B4Q5Pqz4_!8cC#yqyf zI)~pBnA=#^IsB3)&!mqF%xzGyKa2JX%;P-8{t)#D%x!3~KbzV#9HuJ;w&TkoxwoIq z&$V=%IXyh4SnSWEzs38=*bYCR9u?S*zku!$*bc9d5*ojVwh7GRE5-g|s?)A7q1giS zm@(@d{u1Ro72gc{p@wHBbqwwF%%ZOfxt;zpdO%=qGg;^GHcdWwrd{9b`$0%IcAx*mzH=WsR&92Xe&Wi5HXz%2sr5Ev87mV7|qtpXBWK-zo6B z1eQ9B?-v-EWyO!hlNNus!0QAa61Y=fEPk>0m?*dSBLZWgfQ4@r7!%7D9u@dnfyV@1 zFYvg)SS(}l_Xyl7@Lqx6ComT2Sn*>afyKu|wlFVzxFnrL{yq>oa?!--twL?l+9r72 zrq*cZmUjutU^$Jdy{Ri&L9&{Ntu{AqZ}1(3Q8lTrmt;Ui5gL=X55=Ofq}GBi z?C*{Cj7q(`q-Z?eGa9|EXKx&q&ZGvKE>slZbiu%FvB6QHw5CX))6!@9^5)-Bx8x6w zj|{7-amny3&5N<|DAeTo5|$w`Gi<2P#D`4J{xLiXmy3`Yqw(E6i6OQq$N4E!X9m$N6!3`k8?kzIq)y<7y;6j-M7#z%XG#yI_B@j+F%14YZ;z+LwpiuOdUf-#oZG1Q}7 z62k{S!Wr)w-}7IpmuTH#EZWz&vLE|D_c-b$rsuinCDu?h3af_E9it=B>b`jIo*nk1 zs#>+mQBv z=h<7SVJN~&qhW|I3U3;Q%RzM3FuZ&UhS!SkKYW&3j{Dz1an1*MUTg69`%21G-WCA< zMwH?4_t#-22q&+ZZG`s}5B$MLA)oda&RB=$cUp1FrM>v5$E??(t&4UhHr z_#09>8Sl3Y9`F5LC`mX<-eU&uI`H^gTsq17q`}(=Ua2JEDDUG=gVzmSy8DP3yg`R} z*BiV$z$;hch1hb-4BjWeOLxB+2Ja8ROP7By!5@Fga_~4ny8Ae7@SXxr7w;Dg-V4BL z{>l5e%iz5NTqf?34>F%Qzwnn#A3snYgON^#cfG-5n_}tG*I@8CKhyE%8oa9=c$hlS z(zgM;bmi(FkYG@g_pu#39&3?K-tRN;P^}+tS@HhFq+8aj@J8 z@Y*E6k<-M^0%Keh;^gPxrk?%a$0fXS7=qH^#$Izw58v!q!J|KozlWjW(l8eUeD7YB1 z)bs&w0ETzc9iK}y0CWw0s2Z#^;MT11OqCZbCyKzId3XhqyoESdc~#(XeabwZb>{ov z@JwF4!s9V;CtjPvTj0Xmrtl&zygr3j;ldkNc$F@^Lkf@Y(dj-|?^5PVl?(3?g}2Cs z_n5+4?819W;a%avdqLqXapAqJ@RqvpURQX_TzEkg5}7YNeD0Kgr3!Dk3$IGyVLHGu zyn2OK?ZRtQcy4-w+Z0}nOL%<>57Q%#=^IygbuPR^3eQb%@Ii$qzm?LxmyaksOz$|R z?=gkvrZ@PM!gJFbd_m#KZ!}Jyspt1Hc%58P2`B5&B4EXvR^a9SAleY=B#)2ajY$75 zqp;s00gjT#dVZt(dPhC)p}4AUrB^+_^ISj_J-@v)melj3CE4G5BJ*4MzR2O`KxZha zGsik)6F;Eyv?L=b_d#yymchU9R7OY304?>MqsZa)#ZqI>iil;tq%1>|`6>?dWL5Cq zgZw)%$h+Mg=sPfYKmJ=g2rel-XJ285>8r4jufoQvtniGANH8faGjKicb=WfaP%HK~ zL`(rx?%1y|Qn2Cvfo%Vbzb+i0%!vY8QgqITUry)sJ99SXbbM}Y@LcE4@bwR^rRTyO z?;hyP{8qu!&4p(|9l!j?P{+^z5w|-*&6uQbZVsLe(C2YK zoaS94>v>Pa<^lUiiIMda!jItRA1u!0-4XprlRPH#8NvHHJM28iIrbtv{s8n5XX8#P zGFd;c@XTwc-dtSnUy#}8pApO<-lH&-Q80H=?KSJ)o$uS39nSW%-k@*iAGcQE_}UrY z&NnNIgZH;CwS2Sv+2Pfee~aL@^tM>s7I0gVT=uoO?0-OT5A+_exCbmh87}+UT=suL zaG&UX!s0$*`AIJO+FbT;!7h}1k8)Q^zDIuy+JsAk=bqTbCFKb)p4i2EH}Y9JUC6bA zSqtYvyD}Sjx)ynQ0KAb?!4o6TvZm%k`27ICrO3rw@q1#|J=ym_GZLX$dsOm1nEVtD z;`rLBdrk)1;{%I#cJB-w{ld=kJF|{Pc4ZztzboTtWH5NNdoXacdzb&{!@GP(XIW*u z%=#biUfdfx*4_Js-mGKidozzkVj0KI$AZTqeSu@$eg0$JG2gL=W7#KPJ7c{p{EYGA zHo6_Zn#ac5`{pm&*H`|BYw7uU?Xma2kN&=_=5*QHKts}fhd6F&xus99A?bcCJ~A%T zweC9*^2mvEnzQ_F8b*BW)EY+a_Z^-hemBi3?&Y|p-R;`YWx6)xbH87=GIA-`W?e$O zmv-&sGNO*MaZegMA07(c6}a1vz56cqd2yH*d+nt>YaXd|i`RTV)RE1p%I8~oEj|vC z?pd6*lziY&#$Ca?10UgBzp#5yM^nAL<5QJexBUNgU90aRZ0{Z%N#-C?ubGD}C8I+n z*svM?>Ff8&?}3_+w^-p_+76s+--0lB72ni#w)?$YY#8dh!7~LHl9%eWJUV|N*Q)gq zUu)g}T|Vr7`_!KU!o73$(zL(8yy&$y)W?4V6kF~4z4#~mmMFF+Gd-t40*04=bo|cat(Q&f%6SqVBkUn z7a6$Nz$FGQwbH|*Ikqb`iNvFug^T|DW*c~pf#({y z+`#h;Jm0_z3>-0V1^tOuo+=G_l_6hGA5i$LM>{MqkDRbxZcM}eHF>rn&$jjgv~!U2J8a0qbWpoK$B^gH zuqMwn2hCt!|$Tw8g8b8 z8g8Kh4X>peG~7z{8g8RG8eT^M1qU#TrI&{)`ks|edtRUSR{awV`{{SZ!{cI7&pi|AQ_c|?!(p#MaZmsoZw_<95jc_|GGxs7Mgy9MUaRo;7bmB2je&3msd5ZI2t zi~<^eHvKaM96pZ<7W?PW-w14nHPA(TeByp|;C%%mCMmBZucl;E00!H9`*? z3v4Vb^_p)NdcUng5BLs&-zV?~1b)B3`vp!2{6T@E0^ccci@+Zec%8r#0zBk*qv92fXw0!uyi`viWskRKKJMuG1a82Z{){0|7cUf_=le7(RA z3j8jCe@EbJ1^$GqFfH?Ic6j z+)4qpaPBgZ3(j_exO_Y$_Q8nAT7M`L@VG5uze0z5xm!b;a8iG9)j-CF#Xce=Z0K?1wZ zTB_ZwN**8Go7Bm+62Xkvp3!JBPQ?a5iZDDl>E5gh2Y0DY(o$2$PO!*mBi(&tG3-&i zC%G4~6|$-hUZaL%3pmqk)p^LG(Hm~+Y>lq7_C|&|gp^lXVvP4oX1~k1)h!Qp#YT7R zv38cWUtR~@@3f_Uho#4F-M0PqLV14=wC#0&Ja6G|?5u0&SG2!xWp8awJnpE$o}LE{ zcFsZ8R5xBmhg(?fs8+t(QLVhmQLVhmQLTJ>W8dkGePP++zqe}r<8%dX=GcRuqQPF6m8SQt%toNGg3YB?B(G=}h0VOH`-r)um}^ zFS|~BI`w?f-Ybp!WlzS%spfNw`&O#vi}2E@=Hp|`n`%D3R$Wx{=gnUbsi>^Fd>Z;h zUkun|7d#fij=u#lypVMA{J6p6Z*M7MvOGU*@c3Ii!UW+Yk8L^n;3wnl!g-k_;V5}O z#ktBG2QE*;`x}FY&(O3ybI;=w;PE(@bQnIdT(gnBKZUPM6B8uwN`v<`$O@StoaCJb zR`25(U>+}%PV$P3@Tzc8sU+bj)9@=?poZ53(3gg1+9cqyO&JE$WxRiGg!eFbJpLk` z8^|{IPZ85@o1H5P9C!OSljqsiZmT6+H6MYyU*2N2hY|jK}aY@ltxpzqKBD zcY5S~%_HyU;BEA9ziYF-mA|{e^K!pWdgT4eBkyW-UN(EUk9)!M@*e$_M_zG`xA1QA z$omv{Uh?m6rs9c;vlx|bN1A-$xma1YS=3y6_%Rc&#qH#}rc@CgBbqbS~V43*=bb3-7U-SEeLfiyhq)vfE=P5UUu?w|#{_*aX^TU*n?btW4D43TJ26kx z@LtUyZJuN8%be{i&M0b~0~-$$HBSx{XB8JpA#5H^5dC zp6mWFTa#dW3fTV|b`OA_uq1p|c*TrUBY{6 zSI~K?prx7TXh7X#n<9vP($3oxHR=2&@6bI_GXaYkcz~yZpU(Kbtc{&ijQyr>!S7N0 zevIFf)(+Rmfir%rebww}R2;w^vgMD0$NZo2JyeYSv=8(I9(tlDGx0V5jaUx_7o0?dKfK`qa0utG7QEJc)c2J9GQ7gS8J~5v?7N`+~1U_^ka( zucfm~;ZI&6%lL2fzwm|1Ej|W#q{L-XEM}LO%)px~$4#|3n$v zVeuyd3+Ezr*&=lTOY#KLVW08N<7^k>MdU=FBHQ0w=EqgGtOYXr>;TScPCYg7+M*M! zbA9ElPj%b7nAelQCpYZrSh_mSPMbxU);>$UDy z9k{RW9Pg!E>u$Y+#{`|@ovg*peCcN5q^0D8hXQw9xP<_s94@?7g)X1Q*1j`!Dft^2z&)ib*I zy5ZvEoyz)!d%ZIG-BRC+`L55%{n|^ZSGexK*m^~MH@%1BUfx2NkPlPUEpG2MkLx(U zBkpD9H}P8Y{ZiWj{^orvt&$+PcaTjF`%BJ?O^@3C+M2ijX7%>{Ui=e&OKf^1Gd-;Xs8y|HV_RAZ!)Z`xQCc_{df;+xXzUGNfah9=be8-_zt7hCGALYVu4& zo=Kn8n8v$aCl_O`dDWbE!;|=Na-m z@@evXL!M86pL%(b`vr!)fWE283k`W8ozmn*hP;S=SCbbT@?yGElb0Cs66(?9rG~te z+BNwMLq3D5HTg_KK9go^@>zy_76mkUnISK;bm~*jZ?++yZP+lGW60;wNnXSvT!7{p z^11X0Ov|B>+jEe>eS>54EX}8)#MRF9-*0!b~t2MlwA{t&nnHsL9SCz?RA6-SyYq*AZy{vRTs-;hBxQ-5KcqQ%B za6N6-a04}JxRH2Wv2;FK#Z_+7`KXCrNmco14OY`%Y4~d5z4oN@VP~9AX?P7yX!u&{ z*YI_;QN!<|It@2dnTA{FSE=c4q-QO?tl?IAM#F8y>*uBO(K_Ni^rZ8_3jTf#ucuxO zcTk6hJE>a38>mFX*V8X$;5hoQQu6y6-b7Do_y+odhHoU8MZk6TdJVQ=aB@lLGVjZm~a;9ub(wsM%)81DZTU zy!RD{$9+z=S<)-;Vhe|f%{l@9B<+GDEQ|$QX(4#_b=l5JXCh%hG`f|Ec!}F+DU^~C&)Aa)LICHUo z0j(6+jz2Y@e%7)_&NG(1+EvkPS~h8By3c42z-~o z?E>E|FbXTr*ZV&raJRsR1^z98?-6*5!1oHgP2i6TyjI{N0^cdHwDB<^@W+IFyTH=M z$B@8Bg?zKX_Y2%7@B;$hBJjrr9u@dOfqMm(Ha_|V{)CWs3H(WcZxZ;Jz#9a9NMK~T zm0zC{c%#5Dn1n|_{u=~7E^xEJzbEi@0)JZIL4l#TVO_sd;D-es5co3!?-Tg50*?#) zIf3^I{D{DJ2>f}0_Y3?70*?s%1%cZH{-VHK*e=P&2@fB@yoshB_=ED`~T2q-PX*=WJue*0fCtV}pIsy|LkVf334f z8mrK+f@zkKwATzc2WN>U1vff8-ZP#U9x_84*%OV8k4keW$=FBYL*t1--12QblM*me z2h$#jp~U#4J55S@Cq={8aGED2Y@aYNQC`d%^-ItMn{Jy zB>|Q&;*)L?o>4Z8Vg`{Ia*VovbT@Wx-Z_lXGe4_v16!b zFlw1&QA4t&v7QmOArsfiQ94^J)}yrrNZDnzu40=(u_H`x0mYU@n_|7O#=2O&qXm@o zJXk<+Fm+N}yV6-y<0z_G zV_CPE^x1IPlX7v!Vz|nBD~-j7@X{EI!B?g?V=?@>7YJr#W`(lDIk|cH1%*Y$C8aZF z&MKQdXKuM|EM{TVqQzG%q1L+Un$;MHnd6(Efzd0BwfJG~VSbR+gJ4_Eo=z$D`FZ#S zqI@2T@#HFl_P9-^VDon|ypm3y&op?Pb}3`BJRie3M=ry|CwyAFEj}Z>?cjy*lg=+r zUctDp8eTX2c}z$;$@@!#hoOzM_AtI`@a_h0z6=aU8Q$+1yhj|udoTRe^qmH7#!ot# zFCR9-djo{Ul7yp-H(~H95qNPL-WG$$HmXb0@UAg65&>4IbMbPZ#fy!FvrnHJ{}*rrjI1ZLacUysbufJl{|#ZvscjTWs)_0H+Jj zv_G>3JeejAR))vv#$WOoG((W?y)^C5bbyzxJfAkg<9tfTd)VMT2woW{OgNd=dko$Q z@VL^G4$yM98oWP+AYK05WbnS}5Z*Ng@0qtLZrOugxQG!XxjrN8T?z^6Igk%FBI> zc;ub%$a@964iDw8291Ij-ahcW+{a@cd9QioEuYHnjkw1FkGw}b^3HqYm7_D{fgkhOpTlEby}&qF?kVutpLrag2Q3W30;=FPb2@NKMkelH#_)GIQXA+@Nag=Ul>=^?m?!f*&%^4w3za{`&rNKTx$l^mem@bOh;N zV%&pjL&>yjfKQyHs zy8Tk({dHaY>na<3zwBDEb>#36R%Blt!J3E&L#)jnjWkr(G)C;zYLUjslHNUu!M@0< zhMJ|3ZNtNZS4VnAcVpG_uE_i9`&Kr@``%B|W5o)rULH^M48n5G&@gYqh;ORF;n-Mo zd^oyis4w1+#nNoU1;QQiq4+4Te&3B{F^M6p1ipQD@9^Llq%vlb%QVi`CRcG{WB~8{c2^DtLUt#1)#K$d?vgFf$aqHML&GaaM%@#`8|X%RkO8-k zCGcvy1h=&bZ?B8Ib8~Io=1s1Yt*c$dd{;d?60wz2uzCh}$M-c%ee*rBxNAsuPS@6s z>~^JXo+6)HR@ODNN4LM%HISADklYz7-S5aA`eMxy_q*Dg*gG5@TkTG2sjF*ne^zJ- z`u3qVcX{G1tERjsL^E~PSoyd0mK)5-_!V<4pS{C9qiC&+BwBBJdS7XjC%x2q+b4;X zS89^Xu2d33vB5ok@h)!cI;*?3Y+KhA-NN-1H?HxXF@6+nS9e_>PYg!)HguuB?%Irv zF2}misCTt)+S<9btD(A~x>lT{>5O-E+F^RVvMs(h5sO;^BGA@NHK_pFqR~yAty^x~ z*ts^c0^mJ2b#Cpv@rLM4>$dRm+J-vRM{QB0I*OxxHBLIWZjLrIHbp9@tVU5O8%=l& zb9Sa%jCtCW^O27I1`g0d@MS-UM~HQP(2xfWd4?tD{;KUV40)y{=l-4TG7Wi_AZ+4SAj+&okutmOPa|`G&l}kQW&8LQ9@{K81$7 z$dDHq@?t|?Y{*Ltd5Iw}HRPp+e1;*PVaR7%^3?O6X~<_8@>zzw%#fEE^4W%bwjrNm z$y50^$B@r8d3k>-JLmn~Y5kp>K$SVwar6I30x#QQ|C{a<-HRmgu{2KbWhS$*T8orjI8orL!Y4}}qrG}fSNW(4k3uSQw+eiAohFj?y8g8R6 zX?Pvor{Q)Q*YJ8;56o*HI9j$(G)KdJ$`kyvkQe!@C?D+)^SMvK_KDaYVG0LnSYYn+ zv3;VO1m->v+b6nK!&y|N;Sl9$IGcWo`i#T3uMg9U8qT4!8qTFJXgH6K3T&q*-?C50 z;n}!=287(cpF-NE;Ua3*a4{{{a0$)Oa4G!??|&*kX3#4F+v%T4FKBp{WzR5me`WNC znjH0`7Tz5Cu!iT-ZVi{y%^IFZEgGIrD>S@-W@|V?85*vjpW^*a-4E;&3Cw+_V*f(o zeUYUr#`*UR{G@@uVBjMLzSY1t8Tc9lM+}@{;Qzyk7mm~SqJh6*;IA0?lLo%iz;Od_ zGVm$`R~R^K;GfIH;>hX!I|F~yz<*@mPZ)T@z&j1R&A_|{P&$tPN(pde%;i`*#!B+3 z5?E_*&_8CKDnINZ$s@0wWz0HCmvWTh$fFG3>v5|1y@oRtkKYr%&!c?&7pzU=<3A7` zPa>?+CnAU=((X|3QJJeXM%~J|^V51%622TLu1< zz+(bS`&h#Q9~bhE3M}noeMsO>3;6+oe_!Aa3;eLacM1F%fqz@z&kDRp;Li#C0fA8% ztowV9z@HcRW`X}e;P(pr1%cluFba`%{rd&}lE6`czbtT%z<(%kOkfl~>v}BAtl{VK z6@lXdqw=xj9})Pg0w)AMDex|V|5)JL1%6cE+XVg-f!~eDF4~^gK+jMgj5@LXBewrD zn5e$FZGE(J%e#l79hPWRc;5tt__Y3$RP*g%-qW&WTRQ%>&Q0sKtaOyrIZA3BB{k_J zTW=rRmWb^#?qciBo#}65>*mg_X@l9^xhb9h=9@RQtxJ1@n>sglMz?KGcabI9l3uiK zQ){|QHnvVOm}Wht&brpL83O;b+0lVP`SzYYgX2bqv~S$nx^2tGbWyL{zO6IbdBe6< zZo)=4VS}5n-c6XcfXD=;EhAExHdmxDZPv7HYDt%rmd(){wyfKl{vo$adMcQRAMfd< zYMwX6d^lBOdOwO8^XNdlrw?Z6tTz-Us6I0}#tX~7>0Vd%Py4ba1?H=22`0U$>^u22W#7p!sqjs6dljpqW1%`o= zwtbo$c*6#74R~dCP}YALo@v8tn*-0Z;WY?eX`1ln8}UwnQ=W$BGk6#tO3Qm$jEl;A zdE9~b7Y6SI2i}(r9*@PPOW$uBJRW;X#~U$tOB{Gx4PKiAugTzbgO@I!d8{6yWH}gj z;Drp{VerzG1JmZ#!w$Ufz#o6fcprD*oi%vp9C)8Mc&|9{?lpL9h$G#7j2Jw&S(fg( zZ8v!J4!mZAx7mSrg~1zi;1wCX!{DX64-8vt`TVd055vY9?{Np-Hw+%z4oep=hBdYD zUUA^vZ}2cdo;ExTPio!wJAI)GkK4B49pi7*mKH{!I#4;#BUdPC`w6Jy2x%PHoylW zi^sv=VDQ*h3;Q#V!{Q&~RR*t0;h}0x@_5aV8ZX;)k>R0=OY;6NZbIeND?C&+N#1#b z$F^T&czl%U`-Z`5Q+OPYj-hPG0ceR?lyRjC_KCZN#3BrJE8D+y^0KPo56cb;muNb zYYg6Lg~$C*8QwyJ_msk$t?=>;-m?mCj>7vH&ei;TLE+6+crO~fmlR&P!uvCW_p-v9 zr|>>+@LpATJOm-{7t0p3^u4a|7AQO{XV7?WD7=Wm!?Fa87hIfr&npyOyTQv_iOT&D?9}4$XlcEaO%k0sPLA!@VXSZcrvXJGk&4pL4@YcETmMc82lbxQ&8iluB;c=T7z)!l3;GI)EP*q!w`yPrn zm7`Kw${jG_B#)2ajY$7>D8vUPz)|ur@*a)%?-`53o*!H4gH6ANM*JEYq%}X=vY)i+ zx2mzOo_Stu`W14=L9yv~C3Gm7zc#Y|EPk(@`s7KfEWiGEd-*0>IMkkfzVPXr>GiEw zlw8T90)f8#s{l#&gYq;9nmb@KxMn`O%r&Q&j1Dz*n)W zefF*Iz4f76U%b`#kiWa7JNHb>KvrdO@cz~o*gdn)i>&iPgkRdeeV{Y*Z1!1SXMU)4 zd$+Gb#x@an}Lx!($nTY$H-H8k#7;>FhPLA90@3WS28j8JAMD=RmI&jS9^kdAw~ zZr7TY)VP-|9rr+6NX$G!NqlziY&#$Ca?10V5!%-2%Vx3A;_uHm`e z58vB`q(!|S?pd^yeCUGjM-78p|CW+F58+NOdpf4d2P6fKjq?1a+UQA{=uv8FFV=aQ zR@KzMy{+>oH+=EW_#!RyIAy!A$&*gZHk+oc@l0FeNgDr|w#H+cg;DIdbWL01(QIRB zSu<^o=fANv9#6)2Qf*hv?xU#xe_Q>4!Jr1GC+a6&l6>ym0*89Z>q}HqN6rQWShg|LdC{Q!qgf zTgQI7Ly@!Hk1PeV-47nimyYdz=<*=_r6$iX?5!sL0ZflwLk) zxBsaGmb}E$)0AF5tZq6efhC^-^Xw_-gO)6h8*vi2e6U_Uf1#zYpZ4SVG3GMQdh|a5 zV9Z}H#r`1uZ-M#ijP>aMhrs-0#Cr4(YdDMU6PUkTiv1zFLty@@EcR#9fWUV6VcH@v zr>oeXW5tbA%dsA>R(?=E!;pkAn8@LUF$icKF?iPm?8kr&kI(rr31wkS3RxI~PyAKx z$EO^Rf8x8{#u)dpFb2^rIR>jOjGMJE2Bj^G#90`F&lbjHgoQC4WML%2!ni35M+C;8 zv4yJy2Fb!aIdai@g~{qJdfRAXJT8<7Q@*3nikjpJy{Y&pbP;=E<1h?K)l=zI*}FDd zgH?7kuJl?8%3Q?t4@UXw0m7*m|>19vGg)bdXCbIf1S~ji* zm}bfNji}c=Eg9!o124A+O)!x{$B>KO#($` z^0@!vg;$4&_}NK^%PePx$NL?7;qlsdFY*2ayv;IF9G&954*hs9@!kQRmw3PKk>?M3 z3$Go#bm_ZKxhKBOL*U^r>E!v{@R9e6bg!hQN{t-l$kN`)? z!$xka?KxfhKkw_-P}8uwwl@77@ao3eI-5E5zHa5bm`a%gZlsmTIbd4iKj-VDNNB{~ z(XHuJ?#9SIT2k~J&&f7Z=&yIS4_1Ua7}2qb%!&NS2+MuX&5iI`6XtU*ca)lEbRJ&o zdvQj`$oe-cR@5F|Tks-P6m3{`b>_nBTfcqFht~$aof&CqJzO@jo@a(bOMm)ps>t5( zz`XSG49NW*6Z1yazm!4Li;OBfRcysj)KPfm&58tK2)|fYQCq`l3pJg6G^g_{om|~q zhI!nI(1uXm|00gn|Lvz~0)F;v^y>&SR8x3{!#s(Ei#cA*_}a6yzJ=j|xxqQD#o=Oq zxZ5}2ueAN?Fp5b2$oi&J!S=j%`uOvYE^Uuk^VYtFJKN=X(;1crkL9%|+H*!aMp7)l z#=^|>fWK;CYoPn@19Mu#-Tr~kw)(q61IJoJ-GygHPEnPAQRsZ;z#p|{cF%l&es|_T zHO~6VkFS0G+aqU=`mUW{SGtIv^tCQnH6xQ=_jN9~W+rU+`fsdy7dFb??%%qoZT2j> z*MH06&bc8v?T;?mR9;3u@%Jy;R-R3fz|Lhi&!0_O0=F)I|AM7-D6sdc-pFeD)4=|# z`YXfqO5kAau7z`GPVgfuhZilQjlqwu99?`h-5GqKao>_0IvIRu^~BP-^uyq%uRgf! zN-E9x+|?ghehsx}d~wZ@6}hx8<3#h(tIFxi87EsFtXWPkWt>|3P~953g(9VMP^tCN z!dd0{g)~HwnRD_Y7^_%NIv0x&k5I+TIfX^^396VeC%=Ne4F23aKWs`>&6;0O44Y9) zW>yqb!X^|S1F-qDysWCQg#LqS$`%(bqyj^14gF2yaPRgs@JMI#;ln2B^XFCtbL`ws>03fz666Y}Z8xtKgv!@;PPr)LxLxt9;__PCV~ zx3a}u2)Ap^vZX%HJf2qbkB~x$v(-4cl&A0vG5d-zEf6c24)THoc zJ@JwFP~Wxs5(9-Zz0P2I*B@&WBe}`Y^g4s-bq2h>mbQdode@(~`>sEp*BK~nLkwM? z$?kvh07KIGNXLEy2k3F|Q=OuKArD&e)VOTWkY`x(?aBBu40)y{=gzn7G7Wi_fkOt) zHgMR$IR?%(a2}n|@+05C1qPl+LkgeQBlHT)2VUQBlZI0xgKd_ayQ8+VaS=rXpM5#J zN0qS~Uf-Z&KmCp(=k*Ph3g-09{xyY`S)?oYYg~Jq-E`3SE<@5pTI(uA`*LQ5vu%AAO^21Sb9mDH8!UA)h!s|PJCY}e^A-ulh zdjfNv!RtG|DKNiT#VCJ|3S4I45Pe!;{)puD9R~%DSU61m0`tczukY9>Fh8GSf37x% zz|WfX9;IWf&J8hEvd^;fu02n@-+Z6`tFbl&$MAc^`jDH%x(oPsu^fZ@oc{1OdoG4C zkFAHd+H-H=mA2g=#u4@hZo<)zi+Ik%k3?A*gUA+!?hThe|Ft5Xc>-T2@B)Fc7za@i zwkxpt%>q{l+#>K*0g0kd1$#qHV zPq-Q6y+Xy>kh*B^?b=EdLtdLs&Wk^+4R^6eZ;!HIg|B7V$lzeqL4-viiC$cr7#=b% zv=^W7s*x07s=P;Op+!R1>L z^bk4__)D(K;r3AZL`a_VI%1W_?R`4lU&3GIaesjOO47+|z6uYO$NekjN+)>_!b9a9 z2JV(593^ib&Q;zkz}wRCKvH>ZQ$$T4x>T0yGk6<;(cMWp$>a6U_)F#=U&nnv=_GGE zJXGEwKtz&olswK?m3IVy`-;*@UL*Wf-lG8Ahm=n8cpa0X|7jkinTsq3luzEs|z!ei45GJOjT z-hPG0@jLO3C_G-<&$`u~3XLSm1xx(XB!A`t23a?z@nd`VVg2#4orIV-T zI<9|3W_+C^6HfB@h^lr(`hOLX?Un#X$wghJgzEEPF$DMe#iQJaa=+MX1g` zr$|vncHrr5Uj(bBu!f66E<9D%S$2I<)x85%flsXsKNqPi?xJOx=iZF?YtDCU+-D`2?(W+;WQ*eDYrn&i;EZ)XDOj3nI8KkdFI8Q!P@NYB2}bxl8a< z^TBPgj~aikhxoImSWHrgFxb6w)^sGtUc4>osE^nE2H1*FZu;V%^;=>uLP?3!f{qmB zvajdB2wr@2sAn)@Op{Chu1z(jsBaV+d81-?hQv^8a8F;HIbB<}t?RN?*oI=Gw~vg& zv+e4x>*I;R=-!4dWM0?ip4hIjE^GqR)w*eG=hnBGBKPQUZ(^v6x2n(@1B_6laYbm9 zQx2N48ul9)Gf9whU1+<2A;%J5$hp3?UC@wcSaPlpZI@xlGcCES>o_J%ttc+b!1?r- zN++J@A)gSKyC6KTc}l}6a+@XR9+vHFoJ}7|QP5}l*EeS?nCCTh451?Dc}-PMniIQE zc5Dz0&ui-Ppf=CN^P0LmgVt-;Ll0iTgn6VEfq8z0^|p0+7S#(m=Z6n+wrR@e5|;pT zE=c?zIG4_c*`6OrfTNFc=r1&!OJC7&9!*$0J3O8@q@&7>YP zml>Wn>j9bhy%x@(PJy{h@Vr?Ej?(eG6{doc?qcS-wEV*J=DhG@o{7^JhN2b68^*j5 z_l^0uL>&3sop}+)m?zrC$K|{>+xF-C@#A8PheN?gZDj$6|;(AW-p zHY#p6T1kwZ2BCY72|G#P=_+#1cJpyye#C$J8LvIJKO^KJ&#Lna$_sBc%kynMbk@HYGr+B-;^OC+t z9Kt(>2xQnC*Lm<{o-vl^_u*XSy$oKn6e_Zh;2ff)tI8tiTM==Sw-`UZq!7QI_^IQW zZ5YW22^l{l<}rRZekyMxcuU~NVK7JXxcsWTaq!9nPaT&<6Rq)%fX89+kK>c!nY`l) zkK=LToltly8^cy8mj&ni4FuTJs4r10_-o;eQqDtLbfxpeZGn&W`aAW^0KAcT`V zKEiuM`u`pJMsW#nlss;u`^I80V-mBh`c63xSnqutu!|p-G7cEQNT3`C+;@s9=>DrK z)^>e6^n!2h?6$K0eW$W_``$Nucl(tiTe2P~I7M4@)+Wqrw*LVYoFCVzr93^BkpW(661&kopkK*+R$@67HE$g=8Eya{Eh!XTgp$8 zzjaB_-x`VdTYbkk+|RVa4sLG-TmHrPB9HkYUs5A@81q|!e*HuZ?Q9M-7mTbgTjqP7 zA|va=1ODy}18ckQ9XQzi%)pb~;e@|uLt<^uy@`W8&m^Ag3GejxZrHiD_uiccd!O0) zWN&zvKel1l+St9j4#u9@^<*qO=@9u-~Z|!~} z&S~>iKA**@^C7;%Q{7g~g=b)uxbn#MJU7*>eYno;TDOr%zHX|K$f-sG`7OSX_#@y; zw;d-fCAX<|eD@|??D$SKDvHYBg3`h@s&tJwVVlBI?a%gq=ZtSAYd0?nYxOm~HE(}Q zxXD}oHIHp3)8RC-DGAf#nyw?FZSlQ{Slk*Y#fNU|rkbu!InLS^jc)2}-E!l`&b5&h z0Pne}b8F{~H$-n*w}p?_Hq2F$1H!K;S{;e zlBas9HV!ApI5~YB-ul!f=uG=a$9{?^avrn%itKc802q_|q=I?OQkMtmpeD~S%R}W5d5tw9qTSUE&-0L zoA7B37t)yJZ}*jX46{SSertU^N69T1k73HSZ`?BT80H}eSV@9j`6k9mgEjWgqfP zj&rWGhAxxoi8l2##(Lt7J!wWcr=U8Ian{v1j&ZJXl)Sa$qL=HjYUVa&F3M+p*@q#W zhD2pT9E;awPuT?ykctFf%<^b+cr+DMn!(YHs7^c$j&dbvn@GHjqob(*MV&s?_~^eO zIiM!TQMnH0et>lH{IB4l^03GKvsl&`D)ZdNN1GHL zmqSi!2)~8mIvgz5q403($lI>)_&sq7Z$ROxk+pO_mAJ!Ga6rU^YG}du1#&%ui#aQo);y0y!`Tw;H_v&-j6nz zXFr;*R9T40%1S%_TsAnCua9)>H*mnfLHe5TZgR}T#;Kl8 zn_5F}Kgk0Qrb9q+<%^F*jWvqz@@_UdN}m&GwiP zN5Sb&w;#zY2wBc8LM7t+6poC!b*aRd6`xC2iQCuW$Nh2B9LAVV6OJ%PVUH1^4`^Ws zxvz?$D|?Ixiap#9#Lmr5QGH<2jF+xUBKQScXXXW&ey%JHQ}v__9atJcf{_c5r%#la^J9YqhFH z8z~s47XDQ7G)%y~s6bF1BFKbQ6}&Tkyh8JX-2KL+1^Ms_P_fU?uLnf=>T3iqXLmb9 zOrC0dV7I~J_l@6i>Et>4tKsqcSSCq0;+3`>*S0Ee8!*=a(n+5AUA-3suKT2uH)`^} z27(tJj}LhHzU8s;bm48q^)d~drU?L<7mVfk2Ar!r9-BWVg^Fw~&gH%1l*;j79tIax znYA8_FF|!S>HGFH3IKn9;`58YpR9NpFT^i3Q$zF=cziwc+`fZfPd1Rt;c+-JJoEc82;p6jODFTp{C>O#ynmNMkmV^KasMOo`h$2QdL>YJT(b@i?+{;) z)?VGN-;ee64UN`kWn^mozU};BuB_{sL$i|Kj|GpxX84ygJNysv_hYa#Xsx;_JRLe6 zJXyBhx{kt&#;~XMT_=5&!7mM1w#l($_x_BNbS7Z=W_-!_MZP-YSQh-aWmCV&-VWcD zYK_1(oV71>OUb_VB_Fz=Z%j3unN~R1kGZAfj*bfqr^?QF>pzbq!6Y_9Ih6Uaj146p zc*;VQ%_=39Ykf!Tk(_)(ynMOV_tn46wce7q`)mGgwJIg2uT~aLf3qf)%HF}>tXvXe zqCQd&htszb^${kG;jvpu7#gz;9R;%k@NScv?s~!J%8U`C*(Fx zk=rae_aJO% z&}-JO&ouV`%%*=%CYJjsVR}x(IrK-s93L>J0-x8akqiFA1)osua*Eu#%%XPI>sEYbc{J|(((7Z zmOprYmTaM5REgsvdoC}$1aZJCTuBtc(U0$Z{-6mj7RM{ZcRoIVtnYjX`Fq2U{+5N& zspZ~~ADzm2KFYNqa|Fisza_^S5=+jV%8MQc=pWfLZf(0an5gc@nhbfa=z2}L7Noj& z>_SHe_KpcfG7SGk_w-WKLAf{M`U= 6010050) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wc11-extensions" +#pragma clang diagnostic ignored "-Wreserved-id-macro" +#elif defined (__GNUC__) +/* anonymous unions are enabled by default */ +#elif defined (__TMS470__) +/* anonymous unions are enabled by default */ +#elif defined (__TASKING__) +#pragma warning 586 +#elif defined (__CSMC__) +/* anonymous unions are enabled by default */ +#else +#warning Not supported compiler type +#endif + +/* -------- Configuration of Core Peripherals ----------------------------------- */ +#define __CM0_REV 0x0000U /* Core revision r0p0 */ +#define __MPU_PRESENT 0U /* no MPU present */ +#define __VTOR_PRESENT 0U /* no VTOR present */ +#define __NVIC_PRIO_BITS 2U /* Number of Bits used for Priority Levels */ //20220228 +#define __Vendor_SysTickConfig 0U /* Set to 1 if different SysTick Config is used */ + +#define __FPU_PRESENT 0U /* Set to 1 if FPU is present */ +#define __FPU_DP 0U /* single precision FPU */ +#define __ICACHE_PRESENT 0U /* Set to 1 if I-CACHE is present */ +#define __DCACHE_PRESENT 0U /* Set to 1 if D-CACHE is present */ +#define __DSP_PRESENT 0U /* no DSP extension present */ + +#define FPGA_MODE 0 +#define EDA_MODE 0 +#define EXTERN_24M 0 +#define CPU_CLK_100M 0 + +#define LOG_MODE_RTT 0 /* 0:UART MODE 1: rtt MODE */ + +#include "core_cm0.h" /* Processor and core peripherals */ +#include "system_ARMCM0.h" /* System Header */ + +/*---------------------------------------------------------------------------- + Define clocks + *----------------------------------------------------------------------------*/ +#define XTAL (500000000UL) /* Oscillator frequency */ + +#if FPGA_MODE +#define SYSTEM_CLOCK (33300000U) +#else +/* 使用外部晶振时,系统时钟只能是100M,不使用外部晶振时,系统时钟可以是100M/80M*/ +#if EXTERN_24M +#define SYSTEM_CLOCK (100000000U) +#else +#if CPU_CLK_100M +#define SYSTEM_CLOCK (100000000U) +#else +#define SYSTEM_CLOCK (80000000U) +#endif +#endif +#endif + +/* -------- End of section using anonymous unions and disabling warnings -------- */ +#if defined (__CC_ARM) +#pragma pop +#elif defined (__ICCARM__) +/* leave anonymous unions enabled */ +#elif (defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)) +#pragma clang diagnostic pop +#elif defined (__GNUC__) +/* anonymous unions are enabled by default */ +#elif defined (__TMS470__) +/* anonymous unions are enabled by default */ +#elif defined (__TASKING__) +#pragma warning restore +#elif defined (__CSMC__) +/* anonymous unions are enabled by default */ +#else +#warning Not supported compiler type +#endif + +/* In HS mode and when the DMA is used, all variables and data structures dealing + with the DMA during the transaction process should be 4-bytes aligned */ +#define DMA_WORD_ALIGN_EN +#ifdef DMA_WORD_ALIGN_EN +#if defined (__GNUC__) /* GNU Compiler */ +#define __ALIGN_END __attribute__ ((aligned (4))) +#define __ALIGN_BEGIN +#else +#define __ALIGN_END +#if defined (__CC_ARM) /* ARM Compiler */ +#define __ALIGN_BEGIN __align(4) +#elif defined (__ICCARM__) /* IAR Compiler */ +#define __ALIGN_BEGIN +#elif defined (__TASKING__) /* TASKING Compiler */ +#define __ALIGN_BEGIN __align(4) +#endif /* __CC_ARM */ +#endif /* __GNUC__ */ +#else + +#define __ALIGN_BEGIN +#define __ALIGN_END + +#define __ALIGN_END_1 __attribute__ ((aligned (1))) +#endif /* DMA_WORD_ALIGN_EN */ + +/* __packed keyword used to decrease the data type alignment to 1-byte */ +#if defined (__CC_ARM) /* ARM Compiler */ +#define __packed __packed +#elif defined (__ICCARM__) /* IAR Compiler */ +#define __packed __packed +#elif defined ( __GNUC__ ) /* GNU Compiler */ +#define __packed __attribute__ ((__packed__)) +#define __weak __attribute__((weak)) +#elif defined (__TASKING__) /* TASKING Compiler */ +#define __packed __unaligned +#endif /* __CC_ARM */ + +#ifdef __cplusplus +} +#endif + +#endif /* ARMCM0_H */ diff --git a/src/sdk/include/hal_dsi_rx_ctrl.h b/src/sdk/include/hal_dsi_rx_ctrl.h new file mode 100644 index 0000000..9e6726d --- /dev/null +++ b/src/sdk/include/hal_dsi_rx_ctrl.h @@ -0,0 +1,568 @@ +/******************************************************************************* +* +* +* File: hal_dsi_rx_ctrl.h +* Description: hal mipi dsi rx path control 头文件 +* Version: V0.1 +* Date: 2021-04-06 +* Author: lzy + *******************************************************************************/ +#ifndef __HAL_DSI_RX_CTRL_H__ +#define __HAL_DSI_RX_CTRL_H__ + +/******************************************************************************* +* 1.Included files +*******************************************************************************/ +#include "tau_dsi_datatype.h" +#include "tau_common.h" + +/******************************************************************************* +* 2.Global constant and macro definitions using #define +*******************************************************************************/ +#define RX_DCS_QUEUE_MAX_SIZE 20 /* DCS存储队列长度 */ + +/******************************************************************************* +* 3.Global structures, unions and enumerations using typedef +*******************************************************************************/ +typedef struct hal_dcs_execute_entry_t hal_dcs_execute_entry_t; + +typedef struct hal_dcs_packet_t hal_dcs_packet_t; + +typedef struct hal_dsi_rx_ctrl_handle_t hal_dsi_rx_ctrl_handle_t; + +/* DCS CMD 回调函数, 注册进cus_dcs_entry_table里, 匹配对应的DCS 后回调*/ +typedef bool (*hal_dsi_rx_ctrl_dcs_execute)(hal_dsi_rx_ctrl_handle_t *rx_handle, hal_dcs_packet_t *dcs_packet); + +/* AP 读cmd 回调, 需要快速回CMD 时可注册, 为NULL 时DSC 读指令与写指令经过parse后由cus_dcs_entry_table回调 */ +typedef bool (*hal_dsi_rx_ctrl_read_entry)(uint8_t data_type, uint8_t dcs_cmd, uint8_t param); + +/* AP PPS 更新回调,参数为PPS 以及从PPS 里解析出来的picture width/height, 用于分辨率切换, 不注册该接口时内部处理PPS */ +typedef bool (*hal_dsi_rx_ctrl_pps_entry)(uint8_t *pps, uint8_t size, uint32_t pic_width, uint32_t pic_height); + +/** +* @brief hal_rx_dbg_event_e select +*/ +typedef enum hal_rx_dbg_event_e +{ + HAL_RX_DBG_FS = 0, /* Frame start */ + HAL_RX_DBG_EVENT_MAX +} hal_rx_dbg_event_e; + +/* RX debug 回调函数,用于获取frame start 等功能debug */ +typedef void (*hal_dsi_rx_ctrl_dbg_entry)(hal_rx_dbg_event_e event); + +/** +* @brief dsi rx ctrl handle struct +*/ +typedef struct hal_dsi_rx_ctrl_handle_t +{ + dsi_base_trans_info_t base_info; /* mipi video 转换基本信息 */ + dsi_color_code_e rx_color_mode; /* 输入color mode */ + dsi_lane_nume_e rx_lanes; /* mipi data lane */ + dsi_video_mode_type_e rx_nonburst_models; /* transmission packet sequences */ + dsi_virtual_channel_e rx_vc; /* virtual channel number */ + bool compress_en; /* DSC 压缩标志 */ + uint32_t rx_hsclk_rate; /* mipi 高速信号lane rate */ + uint8_t rx_dsc_pps[DSC_PPS_SIZE]; /* DSC 压缩PPS参数 */ + const hal_dcs_execute_entry_t *cus_dcs_entry_table; /* DCS处理函数列表 */ + hal_dsi_rx_ctrl_read_entry rx_dcs_read_entry; /* Host读指令数据函数,为NULL时由rx_dcs_queue注册cmd处理 */ + hal_dsi_rx_ctrl_pps_entry pps_update_entry; /* PPS Update 时回调函数,用于分辨率切换更新PPS,为NULL时内部处理 */ + bool used; /* handle使用标志位 */ + uint8_t pq_marginal; /* picture quality,参数为hal_rx_pq_marginal_type_e */ + bool direct_mode; /* video mode 直通模式,预留,仅debug使用 */ + hal_dsi_rx_ctrl_dbg_entry rx_debug_cb; /* rx debug 回调函数,目前为收到frame start之后回调,预留其他debug功能 */ + hal_err_handle_level_e err_handler_level; /* RX接收错误的时候对模块做reset等级, 等级越高reset模块越多 */ + bool draw_mode; /* 画点模式,仅debug使用 */ +#if defined(ISP_568) || defined(ISP_368) + uint8_t rx_strength; /* 用于调节RX信号强度,仅适用于开启内阻校准模式,档位0~7,默认3 */ + hight_performan_mode_e hight_performan_mode; /* 高性能模式等级,参考hight_performan_mode_e */ + bool pu_optimize; /* 用于优化PU显示效果,默认为false;true:优化PU显示显示效果,高功耗;false:普通PU模式,低功耗 */ +#endif + bool video_auto_sync; /* Video mode 自动同步开关 */ + uint8_t rx_debug_status; /* rx debug status用于debug表示rx的状态 */ +} hal_dsi_rx_ctrl_handle_t; + +/** +* @brief DCS command execute entry +*/ +typedef struct hal_dcs_execute_entry_t +{ + uint32_t dcs_command; /* DCS command */ + hal_dsi_rx_ctrl_dcs_execute execute_func; /* command 对应处理函数 */ + bool immediately_func; /* 执行机制:true-在中断里立即执行,false-加入DCS队列异步执行 */ +} hal_dcs_execute_entry_t; + +/** +* @brief 存储 DCS packet 结构体 +*/ +typedef struct hal_dcs_packet_t +{ + uint32_t data_type; /* data type */ + uint32_t dcs_command; /* dcs command */ + uint32_t param_length; /* dcs param length */ + uint8_t *packet_param; /* dcs param */ + const hal_dcs_execute_entry_t *dcs_execute_entry; /* dcs packet 处理函数入口*/ +} hal_dcs_packet_t; + +/** +* @brief dcs command filter select +*/ +typedef enum +{ + HAL_RX_DCS_FILTER_0 = 0, + HAL_RX_DCS_FILTER_1 = 1, + HAL_RX_DCS_FILTER_2 = 2, + HAL_RX_DCS_FILTER_3 = 3, + HAL_RX_DCS_FILTER_4 = 4, + HAL_RX_DCS_FILTER_5 = 5, + HAL_RX_DCS_FILTER_6 = 6, + HAL_RX_DCS_FILTER_7 = 7, + HAL_RX_DCS_FILTER_MAX +} hal_rx_dcs_filter_sel_e; + +/** +* @brief pentile source color format +*/ +typedef enum +{ + PENTILE_SRC_FORMAT_RGB = 0x0, + PENTILE_SRC_FORMAT_BGR = 0x1, + PENTILE_SRC_FORMAT_RGBG_BGRG = 0x8, + PENTILE_SRC_FORMAT_GBGR_GRGB = 0x9, + PENTILE_SRC_FORMAT_BGRG_RGBG = 0xA, + PENTILE_SRC_FORMAT_GRGB_GBGR = 0xB, + PENTILE_SRC_FORMAT_RGBG_RGBG = 0xC, + PENTILE_SRC_FORMAT_GBGR_GBGR = 0xD, + PENTILE_SRC_FORMAT_BGRG_BGRG = 0xE, + PENTILE_SRC_FORMAT_GRGB_GRGB = 0xF, + PENTILE_SRC_FORMAT_MAX +} pentile_src_format_e; + +/** +* @brief pential G0 G1 swap mode +*/ +typedef enum +{ + PENTILE_G0G1 = 0, + PENTILE_G1G0 = 1 +} pentile_g_swap_e; + +/** +* @brief pential R B swap mode +*/ +typedef enum +{ + PENTILE_RGBG_BGRG = 0, + PENTILE_GGRB_RBGG = 1, + PENTILE_GGBR_BRGG = 3 +} pentile_rb_swap_e; + +/** +* @brief TE 信号产生模式 +*/ +typedef enum +{ + TE_HW_MODE = 0, /* TE由硬件产生,频率与输出帧率一致 */ + TE_USER_MODE = 1, /* 底层不产生TE, 由hal_dsi_rx_ctrl_gen_a_tear_signal 接口产生 */ + TE_SOFT_60HZ_MODE = 2, /* 底层软件产生同步60Hz TE */ + TE_SOFT_90HZ_MODE = 4, /* 底层软件产生同步90Hz TE */ + TE_SOFT_120HZ_MODE = 5, /* 底层软件产生同步120Hz TE */ + TE_HW_MAX +} te_mode_e; + +/** +* @brief pq_marginal_type select +*/ +typedef enum +{ + PQ_TYPE_0 = 0x0, + PQ_TYPE_1 = 0x1, + PQ_TYPE_2 = 0x3, + PQ_TYPE_3 = 0x2, + PQ_TYPE_4 = 0xA, + PQ_TYPE_5 = 0xE, + PQ_TYPE_6 = 0xC, + PQ_TYPE_7 = 0x1A, + PQ_TYPE_8 = 0x18, + PQ_TYPE_MAX +} hal_rx_pq_marginal_type_e; + +/** +* @brief 设置RX CLK +*/ +typedef enum +{ + RX_CLK_100M = 0, + RX_CLK_150M = 1, + RX_CLK_200M = 2, + RX_CLK_300M = 3, + RX_CLK_MAX +} hal_rx_clk_e; + + +/******************************************************************************* +* 4.Global variable extern declarations +*******************************************************************************/ + +/******************************************************************************* +* 5.Global function prototypes +*******************************************************************************/ + +/** +* @brief 创建dsi rx ctrl handle (释放时需调用hal_dsi_rx_ctrl_release_handle) +* @param none +* @retval dsi rx handle +*/ +hal_dsi_rx_ctrl_handle_t *hal_dsi_rx_ctrl_create_handle(void); + +/** +* @brief 释放dsi rx ctrl handle +* @param rx_ctrl_handle: dsi rx handle +* @retval true/false +*/ +bool hal_dsi_rx_ctrl_release_handle(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle); + +/** +* @brief 设置rx ctrl handle 里的 PPS 参数 +* @param rx_ctrl_handle: dsi rx handle +* @param pps: pps 参数 +* @param pps_size: pps 参数长度 +* @retval true/false +*/ +bool hal_dsi_rx_ctrl_pre_init_pps(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle, uint8_t pps[], uint32_t pps_size); + +/** +* @brief 初始化dsi rx 模块 +* @param rx_ctrl_handle: dsi rx handle +* @retval true/false +*/ +bool hal_dsi_rx_ctrl_init(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle); + +/** +* @brief dsi rx 模块去初始化 +* @param rx_ctrl_handle: dsi rx handle +* @retval true/false +*/ +bool hal_dsi_rx_ctrl_deinit(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle); + +/** +* @brief 启动dsi rx +* @param rx_ctrl_handle: dsi rx handle +* @retval true/false +*/ +bool hal_dsi_rx_ctrl_start(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle); + +/** +* @brief 重新配置dsi rx参数并恢复状态 (debug使用, 重新配置rx_ctrl_handle参数后调用该接口重启) +* @param rx_ctrl_handle: dsi rx handle +* @retval true/false +*/ +bool hal_dsi_rx_ctrl_restart(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle); + +/** +* @brief 停止dsi rx +* @param rx_ctrl_handle: dsi rx handle +* @retval true/false +*/ +bool hal_dsi_rx_ctrl_stop(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle); + +/** +* @brief 手动设置RX clk,一般RX CLK 由底层自动计算,用于特殊video mode场景出现FIFO FULL情况调试使用 +* @param rxbr_clk: rx clk, 需要大于hs_lane_rate/8 +* @retval true/false +*/ +bool hal_dsi_rx_ctrl_set_rx_clk(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle, hal_rx_clk_e rxbr_clk); + +/** +* @brief 发送 MIPI HOST的读响应 CMD +* @param rx_ctrl_handle: dsi rx handle +* @param data_type: data type +* @param vc: virtual channel +* @param cmd_count: ack command 的长度 +* @param ... : 需要发送的command(数量与cmd_count 配置一致) +* @retval true/false +*/ +bool hal_dsi_rx_ctrl_send_ack_cmd(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle, dsi_ack_data_type_e data_type, dsi_virtual_channel_e vc, uint8_t cmd_count, ...); + +/** +* @brief 使用数组方式回复短包,与hal_dsi_rx_ctrl_send_ack_cmd功能一致 +* @param rx_ctrl_handle: dsi rx handle +* @param data_size: 数组长度,固定为4 +* @param data: 回复cmd数据,数据排列有严格规定: +* data[0]:DI(data type) +* data[1]:data 0 +* data[2]:data 1 +* data[3]:内部pkt type,短包固定为0 +* @retval true/false +*/ +bool hal_dsi_rx_ctrl_ack_short_cmd(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle, uint8_t data_size, uint8_t data[]); + +/** +* @brief 使用数组方式回复长包,与hal_dsi_rx_ctrl_send_ack_cmd功能一致 +* @param rx_ctrl_handle: dsi rx handle +* @param data_size: 数组长度,为Word Count + header长度 (header固定为4) +* @param data: 回复cmd数据,数据排列有严格规定: +* data[0]:DI(data type) +* data[1]:wc 0 (Word Count 低八位) +* data[2]:wc 1 (Word Count 高八位) +* data[3]:内部pkt type,长包固定为1 +* data[N]:长包数据 +* @retval true/false +*/ +bool hal_dsi_rx_ctrl_ack_long_cmd(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle, uint8_t data_size, uint8_t data[]); + +/** +* @brief 异步处理DSC接口,执行cus_dcs_entry_table里对应DCS immediately_func为false的函数 +* @param rx_ctrl_handle: dsi rx handle +* @retval true - 正常处理1个DSC , false - 无DSC 处理 +*/ +bool hal_dsi_rx_ctrl_dsc_async_handler(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle); + +/** +* @brief 使用硬件filter丢弃不需要处理的CMD,避免MCU资源被无效CMD占用 +* @param rx_ctrl_handle: dsi rx handle +* @param filter_number: filter 编号(0-7) +* @param cmd_start: 需要丢弃command code起始位 +* @param cmd_end: 需要丢弃command code终止位 +* @retval true/false +*/ +bool hal_dsi_rx_ctrl_set_hw_cmd_filter(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle, + hal_rx_dcs_filter_sel_e filter_number, + uint32_t cmd_start, uint32_t cmd_end); + +/** +* @brief 配置输入输出同步行数,用于调整图像撕裂问题 +* @param rx_ctrl_handle: dsi rx handle +* @param line_num: 同步行号,范围1 ~ input height +* @retval true/false +*/ +bool hal_dsi_rx_ctrl_set_cus_sync_line(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle, uint32_t line_num); + +/** +* @brief 使用内置pattern代替mipi输入(用于测试) +* @param rx_ctrl_handle: dsi rx handle +* @param pg_orient: pattern 方向(0:Vertical mode ; 1:Horizontal mode) +* @param enable: 开启/关闭pattern +* @retval true/false +*/ +bool hal_dsi_rx_ctrl_enable_test_pattern(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle, uint8_t pg_orient, bool enable); + +/** +* @brief 设置TE信号特征 +* @param rx_ctrl_handle: dsi rx handle +* @param inverse_poly: tear信号极性 +* @param te_width: tear信号宽度(0-1023) +* @retval true/false +*/ +bool hal_dsi_rx_ctrl_set_te_waveform(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle, bool inverse_poly, uint32_t te_width); + +/** +* @brief 客制化scld filter配置,用于图像质量调节 +* @param rx_ctrl_handle: dsi rx handle +* @param scld_filter_h: 水平方向filter +* @param scld_filter_v: 垂直方向filter +* @retval true/false +*/ +bool hal_dsi_rx_ctrl_set_cus_scld_filter(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle, uint32_t scld_filter_h[32][2], uint32_t scld_filter_v[32][2]); + +/** +* @brief 获取AP 配置 BTA回复数据最大size +* @param rx_ctrl_handle: dsi rx handle +* @retval 返回数据大小 +*/ +uint32_t hal_dsi_rx_ctrl_get_max_ret_size(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle); + +/** +* @brief 获取AP Compression Mode Command配置,默认为0,谨慎使用 +* @param rx_ctrl_handle: dsi rx handle +* @retval AP 配置compressen_en +*/ +bool hal_dsi_rx_ctrl_get_compressen_en(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle); + +/** +* @brief 生成一个TE信号 +* @param rx_ctrl_handle: dsi rx handle +* @retval none +*/ +bool hal_dsi_rx_ctrl_gen_a_tear_signal(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle); + +/** +* @brief 输入分辨率切换接口 +* @param rx_ctrl_handle: dsi rx handle +* @retval true/false +*/ +bool hal_dsi_rx_ctrl_toggle_resolution(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle); + +/** +* @brief 启动高性能模式,通常为debug使用 +* @param rx_ctrl_handle: dsi rx handle +* @retval true/false +*/ +bool hal_dsi_rx_ctrl_hight_performan_mode(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle); + +/** +* @brief 配置TE信号为软件模式 +* @param rx_ctrl_handle: dsi rx handle +* @retval none +*/ +bool hal_dsi_rx_ctrl_set_sw_tear_mode(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle); + +/** +* @brief 配置TE信号为硬件模式 +* @param rx_ctrl_handle: dsi rx handle +* @retval none +*/ +bool hal_dsi_rx_ctrl_set_hw_tear_mode(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle); + +/** +* @brief 配置 pentile格式 +* @param rx_ctrl_handle: dsi rx handle +* @param src_format: pentile format +* @param g_swap: swap G0 G1 +* @param rb_swap: swap R B +* @retval true/false +*/ +bool hal_dsi_rx_ctrl_set_pentile_format(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle, pentile_src_format_e src_format, pentile_g_swap_e g_swap, pentile_rb_swap_e rb_swap); + +/** +* @brief 配置 RX escape clk +* @param rx_ctrl_handle: dsi rx handle +* @param esc_clk: escape clk 单位Hz,10000000时回CMD为10Mhz +* @retval true/false +*/ +bool hal_dsi_rx_ctrl_set_cus_esc_clk(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle, uint32_t esc_clk); + +/** +* @brief 自动计算并配置硬件filter +* @param rx_ctrl_handle: dsi rx handle +* @param enable: 启动/关闭 硬件filter +* @retval true/false +*/ +bool hal_dsi_rx_ctrl_set_auto_hw_filter(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle, bool enable); + +/* +* @brief 配置DCS cmd 透传模式, Tx init 之后生效 +* @param enable/disable +* @retval true/false +*/ +bool hal_dsi_rx_ctrl_set_dcs_direct_mode(bool enable); + +/* +* @brief 输入帧率修改(针对video mode) +* @param rx_ctrl_handle: dsi rx handle +* @param frame_rate:frame rate +*/ +bool hal_dsi_rx_ctrl_toggle_input_frame_rate(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle, dsi_video_frame_rate_e frame_rate); + +/** +* @brief 配置TE模式扩展接口 +* @param line_num: 同步行号,范围1 ~ input height +建议从最大开始配置,step为100逐步减小,直到完全不出现撕裂 +* @param te_mode: 产生 te 模式,建议使用HW mode +* @retval none +*/ +bool hal_dsi_rx_ctrl_set_tear_mode_ex(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle, uint32_t line_num, te_mode_e te_mode); + +/** +* @brief 输入分辨率切换扩展接口 +* @param rx_ctrl_handle: dsi rx handle +* @retval true/false +*/ +bool hal_dsi_rx_ctrl_toggle_resolution_ex(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle); + +/* +* @brief 注册写命令的回调函数,用于特殊命令序列时写命令的处理,注意无法接收0XFF命令 +* @param rx_ctrl_handle: dsi rx handle +* @param 写命令处理函数 +* @retval none +*/ +void hal_dsi_rx_register_write_cmd_entry(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle, hal_dsi_rx_ctrl_dcs_execute execute_func); + + +#if !defined(ISP_568) && !defined(ISP_368) + /* ISP_518/ISP_308 接口 */ + /** + * @brief 客制化 Channel Gain 配置,用于图像质量调节 + * @param rx_ctrl_handle: dsi rx handle + * @param gain_r: channel gain coefficient for R + * @param gain_g: channel gain coefficient for G + * @param gain_b: channel gain coefficient for B + * @retval true/false + */ + bool hal_dsi_rx_ctrl_set_cus_pq_gain(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle, int r_gain, int g_gain, int b_gain); + + /** + * @brief 客制化enhance for luma参数配置,用于图像质量调节 + * @param rx_ctrl_handle: dsi rx handle + * @param enhl_str: Enhance Str + * @param enhl_edgeslope: Enhance Edge Slope + * @retval none + */ + bool hal_dsi_rx_ctrl_set_cus_pq_enh_lum(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle, uint32_t enhl_str, uint32_t enhl_edgeslope); + + /** + * @brief 客制化false color remove for chroma参数配置,用于图像质量调节 + * @param rx_ctrl_handle: dsi rx handle + * @param desatstr: 饱和度调整参数 范围:0-4095 + * @param desatslope: 饱和度调整斜率 范围:0-4095 + * @retval none + */ + bool hal_dsi_rx_ctrl_set_cus_pq_enh_chr(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle, uint32_t desatstr, uint32_t desatslope); + + /** + * @brief 客制化false color remove for chroma参数配置2,用于图像质量调节 + * @param rx_ctrl_handle: dsi rx handle + * @param desatmode: 饱和度调整模式 0-降低饱和度 1-提升饱和度 + * @param fc_final_alpha: 饱和度调整参数 范围:0 - 255 + * @param edge_med_slope: 饱和度调整参数 范围:0 - 4095 + * @retval none + */ + bool hal_dsi_rx_ctrl_set_cus_pq_enh_chr2(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle, uint32_t desatmode, uint32_t fc_final_alpha, uint32_t edge_med_slope); + +#else + /* ISP_568/ISP_368 接口 */ + /** + * @brief 裁剪输入video多余部分,用于部分机型比如mipi输入是900x1792,实际有效部分为828x1792,可用于裁剪右边跟下边 + * @param rx_ctrl_handle: dsi rx handle + * @param crop_width: 需要裁剪的列数 + * @param crop_height: 需要裁剪的行数 + * @retval true/false + */ + bool hal_dsi_rx_ctrl_crop_video(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle, uint32_t crop_width, uint32_t crop_height); + + /* + * @brief 初始化画点模式,全屏赋值 + * @param rx_ctrl_handle: dsi rx handle + * @param red_data: 像素点R分量 + * @param green_data: 像素点G分量 + * @param blue_data: 像素点B分量 + * @retval none + */ + void hal_dsi_rx_ctrl_draw_mode_init(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle, uint8_t red_data, uint8_t green_data, uint8_t blue_data); + + /* + * @brief 配置像素颜色 + * @param rx_ctrl_handle: dsi rx handle + * @param x: 像素点的x 坐标 + * @param y: 像素点的y 坐标 + * @param red_data: 像素点R分量 + * @param green_data: 像素点G分量 + * @param blue_data: 像素点B分量 + * @retval none + */ + void hal_dsi_rx_ctrl_set_pixel_data(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle, int x, int y, uint8_t red_data, uint8_t green_data, uint8_t blue_data); + + /* + * @brief 填充颜色矩形 + * @param rx_ctrl_handle: dsi rx handle + * @param x1,y1: 矩形起始点 + * @param x2,y2: 矩形终点 + * @param red_data: 像素点R分量 + * @param green_data: 像素点G分量 + * @param blue_data: 像素点B分量 + * @retval none + */ + void hal_dsi_rx_ctrl_set_rect_pixel_data(hal_dsi_rx_ctrl_handle_t *rx_ctrl_handle, int x1, int x2, int y1, int y2, uint8_t red_data, uint8_t green_data, uint8_t blue_data); +#endif + +#endif //__HAL_DSI_RX_CTRL_H__ diff --git a/src/sdk/include/hal_dsi_tx_ctrl.h b/src/sdk/include/hal_dsi_tx_ctrl.h new file mode 100644 index 0000000..652b498 --- /dev/null +++ b/src/sdk/include/hal_dsi_tx_ctrl.h @@ -0,0 +1,284 @@ +/******************************************************************************* +* +* +* File: hal_dsi_tx_ctrl.h +* Description: hal mipi dsi tx 头文件 +* Version: V0.1 +* Date: 2021-04-23 +* Author: wuc + *******************************************************************************/ +#ifndef __HAL_DSI_TX_CTRL_H__ +#define __HAL_DSI_TX_CTRL_H__ + +/******************************************************************************* +* 1.Included files +*******************************************************************************/ +#include "tau_dsi_datatype.h" +#include "tau_device_datatype.h" +#include "tau_common.h" +#include "hal_gpio.h" +#include "stdint.h" +#include "stdbool.h" + +/******************************************************************************* +* 2.Global constant and macro definitions using #define +*******************************************************************************/ + +/******************************************************************************* +* 3.Global structures, unions and enumerations using typedef +*******************************************************************************/ + +/** +* @brief 客制化MIPI TX参数结构体 +*/ +typedef struct +{ + bool used; /* handle使用标志位 */ + uint8_t lane_num; + dsi_virtual_channel_e channel_id; + dsi_video_mode_type_e vid_mode; + dsi_tx_cmd_tx_type_e cmd_tx_type; /* 初始化模式传输命令方式,0:HS; 1:LP */ + uint8_t pclk_offset; /* 增加lane byte clk以增大HFP,适配LONG H的TP */ + uint32_t dpi_vsa; + uint32_t dpi_vbp; + uint32_t dpi_vfp; + uint32_t dpi_hsa; + uint32_t dpi_hbp; + uint32_t dpi_hfp; + dsi_base_trans_info_t base_info; /* mipi video 转换基本信息 */ + uint32_t tx_line_delay; /* tx 发送至屏端显示的延迟行数,由屏端决定,用于分辨率切换时确认切换时间点 */ + float tx_frame_rate; /* 默认60Hz输出,不建议配置为其他,仅作为debug使用 */ + bool tx_clkawayshs; /* 默认为false, 配置为true时video mode消隐行期间clk不进入LP */ + uint8_t blank_rows; /* 默认为0, 针对特殊屏使用,大于0时生效表示向下补黑blank_rows行 */ + uint8_t blank_columns; /* 默认为0, 针对特殊屏使用,大于0时生效表示向右补黑blank_columns列 */ + bool lp_exit_lpdt; /* 每一条LP CMD都退出LPDT */ + bool tx_cmd_mode_sync; /* TX command mode 输出同步 */ +} hal_dsi_tx_ctrl_handle_t; + +/** +* @brief crop parameters +*/ +typedef struct +{ + uint16_t crop_top; + uint16_t crop_bottom; + uint16_t crop_left; + uint16_t crop_right; +} hal_dsi_tx_crop_t; + +/** +* @brief MIPI TX初始化 +* @param tx_ctrl_handle: MIPI TX实例 +* @retval 成功:0 失败:-1 +*/ +bool hal_dsi_tx_ctrl_init(hal_dsi_tx_ctrl_handle_t *tx_ctrl_handle); + +/** +* @brief MIPI TX反初始化 +* @param tx_ctrl_handle: MIPI TX实例 +* @retval 成功:0 失败:-1 +*/ +bool hal_dsi_tx_ctrl_deinit(hal_dsi_tx_ctrl_handle_t *tx_ctrl_handle); + +/** +* @brief MIPI TX创建实例 +* @param 无 +* @retval tx_ctrl_handle: MIPI TX实例 +*/ +hal_dsi_tx_ctrl_handle_t *hal_dsi_tx_ctrl_create_handle(void); + +/** +* @brief MIPI TX释放实例 +* @param tx_ctrl_handle: MIPI TX实例 +* @retval 成功:0 失败:-1 +*/ +bool hal_dsi_tx_ctrl_release_handle(hal_dsi_tx_ctrl_handle_t *tx_ctrl_handle); + +/** +* @brief MIPI TX开始运行 +* @param tx_ctrl_handle: MIPI TX实例 +* @retval 成功:0 失败:-1 +*/ +bool hal_dsi_tx_ctrl_start(hal_dsi_tx_ctrl_handle_t *tx_ctrl_handle); + +/** +* @brief MIPI TX停止运行 +* @param tx_ctrl_handle: MIPI TX实例 +* @retval 成功:0 失败:-1 +*/ +bool hal_dsi_tx_ctrl_stop(hal_dsi_tx_ctrl_handle_t *tx_ctrl_handle); + +/** +* @brief 进入初始化panel +* @param 无 +* @retval 无 +*/ +void hal_dsi_tx_ctrl_enter_init_panel_mode(void); + +/** +* @brief 退出初始化panel +* @param 无 +* @retval 无 +*/ +void hal_dsi_tx_ctrl_exit_init_panel_mode(void); + +/** +* @brief MIPI TX接收命令 +* @param data_type: 数据类型,参考枚举类型dsi_data_type_e +* @param vc: 虚拟通道编号,参考枚举类型dsi_virtual_channel_e +* @param cmd: DCS指令 +* @param size: 读取数据长度 +* @param data: 数据存放地址 +* @retval 无 +*/ +void hal_dsi_tx_ctrl_read_cmd(uint8_t data_type, uint8_t vc, uint8_t cmd, uint8_t size, uint8_t *data); + +/** +* @brief MIPI TX发送命令 +* @param data_type: 数据类型,参考枚举类型dsi_data_type_e +* @param vc: 虚拟通道编号,参考枚举类型dsi_virtual_channel_e +* @param cmd_count: 可变参数个数 +* @param ...: 可变参数 +* @retval 无 +*/ +void hal_dsi_tx_ctrl_write_cmd(uint8_t data_type, uint8_t vc, uint8_t cmd_count, ...); + +/** +* @brief MIPI TX发送命令 +* @param data_type: 数据类型,参考枚举类型dsi_data_type_e +* @param vc: 虚拟通道编号,参考枚举类型dsi_virtual_channel_e +* @param size: data个数 +* @param data: data数组 +* @retval 无 +*/ +void hal_dsi_tx_ctrl_write_array_cmd(uint8_t data_type, uint8_t vc, uint8_t size, const uint8_t *data); + +/** +* @brief 设置TX溢出时钟分频系统 +* @param esc_div: TX溢出时钟分频系数 +* @retval 无 +*/ +void hal_dsi_tx_ctrl_set_escape_clock_div(uint8_t esc_div); + +/** +* @brief 屏端复位脚操作 +* @param state: Reset脚拉高、拉低 +* @retval 无 +*/ +void hal_dsi_tx_ctrl_panel_reset_pin(gpio_level_e state); + +/** +* @brief 设置部分显示的区域 +* @param st_line: 起始行 +* @param st_col: 起始列 +* @param end_line: 结束行 +* @param end_col: 结束列 +* @retval 无 +*/ +void hal_dsi_tx_ctrl_set_partial_disp_area(uint32_t st_line, uint32_t st_col, uint32_t end_line, uint32_t end_col); + +/** +* @brief 部分显示功能开关 +* @param pd_en: 开关部分显示功能 +* @retval 无 +*/ +void hal_dsi_tx_ctrl_set_partial_disp(function_state_e pd_en); + +/** +* @brief 设置复写颜色 +* @param R: RGB的R分量 +* @param G: RGB的G分量 +* @param B: RGB的B分量 +* @retval 无 +*/ +void hal_dsi_tx_ctrl_set_overwrite_rgb(uint8_t R, uint8_t G, uint8_t B); + +/** +* @brief 全屏复写开关 +* @param ow_en: 开关全屏复写功能 +* @retval 无 +*/ +void hal_dsi_tx_ctrl_set_overwrite(function_state_e ow_en); + +/** +* @brief 设置RGB或BGR +* @param endianness: 选择RGB或BGR显示 +* @retval 无 +*/ +void hal_dsi_tx_ctrl_set_endianness(dpi_endianness_type_e endianness); + +/** +* @brief 设置CCM参数 +* @param coef: 客制化参数,参考结构体ccm_coef_t +* @retval 无 +*/ +void hal_dsi_tx_ctrl_set_ccm(ccm_coef_t coef); + +/** +* @brief 控制TX VPG的输出 +* @param vpg_en: 使能VPG +* @param style: VPG的样式 +* @retval 无 +*/ +void hal_dsi_tx_ctrl_set_vpg(function_state_e vpg_en, dsi_tx_vpg_style_e style); + +/** +* @brief 在video mode下使能LP CMD +* @param lp_en:使能LP CMD +* @retval 无 +*/ +void hal_dsi_tx_ctrl_set_lp_cmd(function_state_e lp_en); + +/** +* @brief 裁剪tx输出的图像 +* @param tx_ctrl_handle: dsi tx handle +* @param crop: 裁剪参数 +* @retval 无 +*/ +void hal_dsi_tx_crop_pic(hal_dsi_tx_ctrl_handle_t *tx_ctrl_handle, hal_dsi_tx_crop_t *crop); + +#if !defined(ISP_568) && !defined(ISP_368) + /* ISP_518/ISP_308 接口 */ + /** + * @brief 设置水平翻转 + * @param flip_en: 开关水平翻转功能 + * @retval 无 + */ + void hal_dsi_tx_ctrl_set_horizon_flip(function_state_e flip_en); + + /** + * @brief 设置tx 画质filter + * @param tx_ctrl_handle: dsi tx handle + * @param filter_h: 水平方向filter + * @param filter_v: 垂直方向filter + * @retval true/false + */ + bool hal_dsi_tx_ctrl_set_cus_pq_filter(hal_dsi_tx_ctrl_handle_t *tx_ctrl_handle, uint32_t filter_h[32][2], uint32_t filter_v[32][2]); + + /** + * @brief 设置tx边缘参数,只在 + * @param tx_ctrl_handle: dsi tx handle + * @param threshold: 边缘增强强度 + * @param slope: 边缘增强范围 + * @retval true/false + */ + bool hal_dsi_tx_ctrl_set_cus_pq_edge(hal_dsi_tx_ctrl_handle_t *tx_ctrl_handle, uint8_t threshold, uint16_t slope); +#else + /* ISP_568/ISP_368 接口 */ + /** + * @brief 设置tx 画质filter + * @param tx_ctrl_handle: dsi tx handle + * @param filter: tx filter + * @retval true/false + */ + bool hal_dsi_tx_ctrl_set_cus_pq_filter(hal_dsi_tx_ctrl_handle_t *tx_ctrl_handle, uint32_t filter[32]); + + /** + * @brief TX command mode 同步接口,在收到屏端TE信号后调用,防止撕裂 + * @param tx_ctrl_handle: dsi tx handle + * @retval true/false + */ + bool hal_dsi_tx_ctrl_cmd_mode_rcv_te(hal_dsi_tx_ctrl_handle_t *tx_ctrl_handle); +#endif + +#endif //__HAL_DSI_TX_CTRL_H__ diff --git a/src/sdk/include/hal_flash.h b/src/sdk/include/hal_flash.h new file mode 100644 index 0000000..93fb7d0 --- /dev/null +++ b/src/sdk/include/hal_flash.h @@ -0,0 +1,109 @@ +/******************************************************************************* +* +* +* File: hal_system.h +* Description hal 通用系统接口头文件 +* Version V0.1 +* Date 2023-03-03 +* Author kevin + *******************************************************************************/ +#ifndef __HAL_FLASH_H__ +#define __HAL_FLASH_H__ +/******************************************************************************* +* 1.Included files +*******************************************************************************/ +#include "tau_common.h" + +/******************************************************************************* +* 2.Global constant and macro definitions using #define +*******************************************************************************/ + +/******************************************************************************* +* 3.Global structures, unions and enumerations using typedef +*******************************************************************************/ + +/******************************************************************************* +* 4.Global variable extern declarations +*******************************************************************************/ + +/******************************************************************************* +* 5.Global function prototypes +*******************************************************************************/ + +/** +* @brief 初始化flash 模块,使用完flash模块后需要deinit用于节省功耗 +* @param +* @retval bool 无 +*/ +void hal_flash_init(void); + +/** +* @brief 关闭flash 模块 +* @param +* @retval bool 无 +*/ +void hal_flash_deinit(void); + + +/** +* @brief flash ctl读取flash-uid操作 +* @param UID[16] 存放UID的数组,UID最大长度为16 +* @param UID 数组长度(最大16) +* @retval +*/ +void hal_flash_read_uid(uint8_t *UID, uint8_t size); + +/** +* @brief +* @param flash_block:0-13,选择对应的block进行擦除,启动对某个block写之前需要先擦除对应64K数据 +* @retval +*/ +bool hal_flash_erase(uint8_t flash_block); + + +/** +* @brief 用户字节数组形式从flash读取数据,按页读取,每页1024字节 +* @param *usr_cfg_t_addr(数组首地址), + usr_cfg_t_size(数组大小可以超过1024,超过1024时为跨页连续读) + flash_block:选择操作的block(0-13,其中0-3为TDDI Flash区域) + flash_page :(一个block 页0~63) + page_offset_addr:block = 64K +* @retval bool 无 +*/ +bool hal_flash_normal_read(uint8_t *usr_cfg_t_addr, + uint16_t usr_cfg_t_size, + uint8_t flash_block, + uint16_t flash_page, + uint16_t page_offset_addr); + +/** +* @brief 用户字节数组形式存入flash(次数有限,不可频繁写入),按页写入,每页1024字节 + 注意:写入某个block前确认使用hal_flash_erase进行擦除整个blocK,才能对该block的0-63page进行写入 +* @param *usr_cfg_t_addr(数组首地址), + usr_cfg_t_size(数组大小可以超过1024,超过1024时为跨页连续写) + flash_block:选择操作的block(0-13,其中0-3为TDDI Flash区域) + flash_page (一个block 0~63页) + page_offset_addr:0-1023 byte +* @retval bool 校验size是否超出 +*/ +bool hal_flash_normal_write(uint8_t *usr_cfg_t_addr, + uint16_t usr_cfg_t_size, + uint8_t flash_block, + uint16_t flash_page, + uint16_t page_offset_addr); + +/** +* @brief 发送0xAB指令控制flash退出deep sleep power mode +* @param none +* @retval null +*/ +void hal_flash_release_power_down(void); + +/** +* @brief 发送0xB9指令控制flash进入deep sleep power mode +* @param none +* @retval null +*/ +void hal_flash_power_down(void); + +#endif //__HAL_FLASH_H__ diff --git a/src/sdk/include/hal_gpio.h b/src/sdk/include/hal_gpio.h new file mode 100644 index 0000000..6d69a97 --- /dev/null +++ b/src/sdk/include/hal_gpio.h @@ -0,0 +1,537 @@ +/******************************************************************************* +* +* +* File: hal_gpio.h +* Description: gpio HAL层头文件 +* Version: V0.1 +* Date: 2021-03-17 +* Author: wuc + *******************************************************************************/ +#ifndef __HAL_GPIO_H__ +#define __HAL_GPIO_H__ + +/******************************************************************************* +* 1.Included files +*******************************************************************************/ +#include "tau_device_datatype.h" +#include "tau_common.h" + +/******************************************************************************* +* 2.Global constant and macro definitions using #define +*******************************************************************************/ +/** +* @brief GPIO pin +*/ +typedef enum +{ + /*以GPIO命名PIN*/ + IO_PAD_GPIO0 = 0, + IO_PAD_GPIO1, + IO_PAD_GPIO2, + IO_PAD_GPIO3, + IO_PAD_GPIO4, + IO_PAD_GPIO5, + IO_PAD_GPIO6, + IO_PAD_RESV, + IO_PAD_GPIO8, + IO_PAD_GPIO9, + IO_PAD_GPIO10, + IO_PAD_GPIO11, + IO_PAD_GPIO12, + IO_PAD_GPIO13, + IO_PAD_GPIO14, + IO_PAD_RESV1, + IO_PAD_RESV2, + IO_PAD_GPIO17, + IO_PAD_GPIO18, + IO_PAD_GPIO19, + IO_PAD_GPIO20, + IO_PAD_GPIO21, + + /*以实际PAD NAME命名PIN*/ + IO_PAD_AP_SPIS_MISO = IO_PAD_GPIO0, + IO_PAD_AP_SPIS_MOSI = IO_PAD_GPIO1, + IO_PAD_AP_INT = IO_PAD_GPIO2, + IO_PAD_AP_TE = IO_PAD_GPIO3, + IO_PAD_AP_SWIRE = IO_PAD_GPIO4, + IO_PAD_TD_SPIM_MISO = IO_PAD_GPIO5, + IO_PAD_TD_SPIM_MOSI = IO_PAD_GPIO6, + IO_PAD_TD_RSTN = IO_PAD_RESV, + IO_PAD_TD_TPRSTN = IO_PAD_GPIO8, + IO_PAD_TD_INT = IO_PAD_GPIO9, + IO_PAD_TD_LEDPWM = IO_PAD_GPIO10, + IO_PAD_TD_FC_CLK = IO_PAD_GPIO11, + IO_PAD_TD_FC_CSN = IO_PAD_GPIO12, + IO_PAD_TD_FC_MISO = IO_PAD_GPIO13, + IO_PAD_TD_FC_MOSI = IO_PAD_GPIO14, + IO_PAD_UART_RX = IO_PAD_GPIO17, + IO_PAD_UART_TX = IO_PAD_GPIO18, + IO_PAD_PWMEN = IO_PAD_GPIO19, + IO_PAD_ADCIN = IO_PAD_GPIO20, + IO_PAD_AP_TPRSTN = IO_PAD_GPIO21, + + IO_PAD_AP_SPIS_CLK, + IO_PAD_AP_SPIS_CSN, + IO_PAD_TD_SPIM_CLK, + IO_PAD_TD_SPIM_CSN, + IO_PAD_SFC_CLK, + IO_PAD_SFC_CSN, + IO_PAD_SFC_IO0, + IO_PAD_SFC_IO1, + + IO_PAD_MAX, + + /*以实际BALL编号命名PIN*/ + IO_PIN_A1 = IO_PAD_TD_TPRSTN, + IO_PIN_A2 = IO_PAD_TD_FC_CSN, + IO_PIN_A3 = IO_PAD_TD_SPIM_MISO, + IO_PIN_A4 = IO_PAD_TD_SPIM_CLK, + IO_PIN_A5 = IO_PAD_PWMEN, + IO_PIN_A6 = IO_PAD_ADCIN, + IO_PIN_A7 = IO_PAD_AP_INT, + IO_PIN_A8 = IO_PAD_AP_SPIS_MOSI, + IO_PIN_B1 = IO_PAD_TD_FC_CLK, + IO_PIN_B2 = IO_PAD_TD_FC_MISO, + IO_PIN_B3 = IO_PAD_TD_SPIM_MOSI, + IO_PIN_B4 = IO_PAD_TD_SPIM_CSN, + IO_PIN_B5 = IO_PAD_AP_SWIRE, + IO_PIN_B7 = IO_PAD_AP_SPIS_MISO, + IO_PIN_B8 = IO_PAD_AP_SPIS_CSN, + IO_PIN_C1 = IO_PAD_TD_FC_MOSI, + IO_PIN_C2 = IO_PAD_TD_LEDPWM, + IO_PIN_C4 = IO_PAD_UART_TX, + IO_PIN_C5 = IO_PAD_UART_RX, + IO_PIN_C6 = IO_PAD_AP_TE, + IO_PIN_D1 = IO_PAD_TD_RSTN, + IO_PIN_D2 = IO_PAD_TD_INT, + IO_PIN_D7 = IO_PAD_AP_TPRSTN, + IO_PIN_D8 = IO_PAD_AP_SPIS_CLK, +} io_pad_e; + +/** +* @brief PAD_AP_SPIS_CLK可选的mode +*/ +typedef enum +{ + IO_MODE_JTAG_TCK = 0, + IO_MODE_SPIS_SCLK = 1, + IO_MODE_I2C0_SCL = 3, +} pad_ap_spis_clk_mode_e; + +/** +* @brief PAD_AP_SPIS_CSN可选的mode +*/ +typedef enum +{ + IO_MODE_JTAG_TRSTN = 0, + IO_MODE_SPIS_CSN = 1, + IO_MODE_I2C0_SDA = 3, +} pad_ap_spis_csn_mode_e; + +/** +* @brief PAD_AP_SPIS_MISO可选的mode +*/ +typedef enum +{ + IO_MODE_JTAG_TDO = 0, + IO_MODE_SPIS_MISO = 1, + IO_MODE_GPIO0 = 2, + IO_MODE_UART_RX_AP = 3, + IO_MODE_SPIM_MISO_AP = 4, +} pad_ap_spis_miso_mode_e; + +/** +* @brief PAD_AP_SPIS_MOSI可选的mode +*/ +typedef enum +{ + IO_MODE_JTAG_TMS = 0, + IO_MODE_SPIS_MOSI = 1, + IO_MODE_GPIO1 = 2, + IO_MODE_UART_TX_AP = 3, + IO_MODE_SPIM_MOSI_AP = 4, +} pad_ap_spis_mosi_mode_e; + +/** +* @brief PAD_AP_TPRSTN可选的mode +*/ +typedef enum +{ + IO_MODE_JTAG_TDI = 0, + IO_MODE_GPIO21 = 2, +} pad_ap_tprstn_mode_e; + +/** +* @brief PAD_AP_INT可选的mode +*/ +typedef enum +{ + IO_MODE_GPIO2 = 2, +} pad_ap_int_mode_e; + +/** +* @brief PAD_AP_TE可选的mode +*/ +typedef enum +{ + IO_MODE_TEAR = 0, + IO_MODE_GPIO3 = 2, +} pad_ap_te_mode_e; + +/** +* @brief PAD_AP_SWIRE可选的mode +*/ +typedef enum +{ + IO_MODE_SWIRE = 0, + IO_MODE_PWMO = 1, + IO_MODE_GPIO4 = 2, +} pad_ap_swire_mode_e; + +/** +* @brief PAD_TD_SPIM_CLK可选的mode +*/ +typedef enum +{ + IO_MODE_SPIM_SCLK = 0, + IO_MODE_I2C1_SCL = 1, +} pad_td_spim_clk_mode_e; + +/** +* @brief PAD_TD_SPIM_CSN可选的mode +*/ +typedef enum +{ + IO_MODE_SPIM_CSN = 0, + IO_MODE_I2C1_SDA = 1, +} pad_td_spim_csn_mode_e; + +/** +* @brief PAD_TD_SPIM_MISO可选的mode +*/ +typedef enum +{ + IO_MODE_SPIM_MISO = 0, +#if defined(ISP_568) || defined(ISP_368) + IO_MODE_PWMO1 = 1, +#endif + IO_MODE_GPIO5 = 2, +} pad_td_spim_miso_mode_e; + +/** +* @brief PAD_TD_SPIM_MOSI可选的mode +*/ +typedef enum +{ + IO_MODE_SPIM_MOSI = 0, + IO_MODE_GPIO6 = 2, +} pad_td_spim_mosi_mode_e; + +/** +* @brief PAD_TD_TPRSTN可选的mode +*/ +typedef enum +{ + IO_MODE_GPIO8 = 2, +} pad_td_tprstn_mode_e; + +/** +* @brief PAD_TD_INT可选的mode +*/ +typedef enum +{ + IO_MODE_GPIO9_FUNC = 0, + IO_MODE_GPIO9 = 2, +} pad_td_int_mode_e; + +/** +* @brief PAD_TD_LEDPWM可选的mode +*/ +typedef enum +{ + IO_MODE_PWMI = 0, +#if defined(ISP_568) || defined(ISP_368) + IO_MODE_PWMO2 = 1, +#endif + IO_MODE_GPIO10 = 2, +} pad_td_ledpwm_mode_e; + +/** +* @brief PAD_TD_FC_CLK可选的mode +*/ +typedef enum +{ + IO_MODE_TSPIS_CLK = 0, + IO_MODE_GPIO11 = 2, +} pad_td_fc_clk_mode_e; + +/** +* @brief PAD_TD_FC_CSN可选的mode +*/ +typedef enum +{ + IO_MODE_TSPIS_CSN = 0, + IO_MODE_GPIO12 = 2, +} pad_td_fc_csn_mode_e; + +/** +* @brief PAD_TD_FC_MISO可选的mode +*/ +typedef enum +{ + IO_MODE_TSPIS_MISO = 0, + IO_MODE_GPIO13 = 2, +} pad_td_fc_miso_mode_e; + +/** +* @brief PAD_TD_FC_MOSI可选的mode +*/ +typedef enum +{ + IO_MODE_TSPIS_MOSI = 0, + IO_MODE_GPIO14 = 2, +} pad_td_fc_mosi_mode_e; + +/** +* @brief PAD_UART_RX可选的mode +*/ +typedef enum +{ + IO_MODE_UART_RX = 0, + IO_MODE_GPIO17 = 2, +} pad_uart_rx_mode_e; + +/** +* @brief PAD_UART_TX可选的mode +*/ +typedef enum +{ + IO_MODE_UART_TX = 0, + IO_MODE_GPIO18 = 2, +} pad_uart_tx_mode_e; + +/** +* @brief PAD_PWMEN可选的mode +*/ +typedef enum +{ + IO_MODE_GPIO19 = 2, +} pad_pwmen_mode_e; + +/** +* @brief PAD_ADCIN可选的mode +*/ +typedef enum +{ + IO_MODE_GPIO20 = 2, +} pad_adcin_mode_e; + +/** +* @brief PAD_SFC_CLK可选的mode +*/ +typedef enum +{ + IO_MODE_INTER_FLS_CLK = 0, + IO_MODE_EXT_FLS_CLK = 1, +} pad_sfc_clk_mode_e; + +/** +* @brief PAD_SFC_CSN可选的mode +*/ +typedef enum +{ + IO_MODE_INTER_FLS_CSN = 0, + IO_MODE_EXT_FLS_CSN = 1, +} pad_sfc_csn_mode_e; + +/** +* @brief PAD_SFC_IO0可选的mode +*/ +typedef enum +{ + IO_MODE_INTER_FLS_IO0 = 0, + IO_MODE_EXT_FLS_MISO = 1, +} pad_sfc_io0_mode_e; + +/** +* @brief PAD_SFC_IO1可选的mode +*/ +typedef enum +{ + IO_MODE_INTER_FLS_IO1 = 0, + IO_MODE_EXT_FLS_MOSI = 1, +} pad_sfc_io1_mode_e; + +/** +* @brief PAD电压转换速率 +*/ +typedef enum +{ + IO_SLEW_RATE_SLOW = 0, + IO_SLEW_RATE_FAST = 1, +} pad_slew_rate_e; + +/******************************************************************************* +* IOE +*******************************************************************************/ +/** +* @brief GPIO io方向 +*/ +typedef enum +{ + IO_IOE_INPUT = 0, + IO_IOE_OUTPUT +} gpio_ioe_direct_e; + +/** +* @brief GPIO level +*/ +typedef enum +{ + IO_LVL_LOW = 0, + IO_LVL_HIGH +} gpio_level_e; + +/******************************************************************************* +* 3.Global structures, unions and enumerations using typedef +*******************************************************************************/ + +/******************************************************************************* +* 4.Global variable extern declarations +*******************************************************************************/ + +/******************************************************************************* +* 5.Global function prototypes +*******************************************************************************/ +/** +* @brief 配置指定PAD为GPIO mode,方向为input,指定中断触发方式 +* @param pad:GPIO序号,参考枚举类型gpio_pad_e +* @param trig:4种中断触发方式,参考枚举类型sys_cfg_trigger_e +* @retval 无 +*/ +void hal_gpio_init_eint(io_pad_e pad, sys_cfg_trigger_e trig); + +/** +* @brief 注册GPIO中断回调函数 +* @param pad:GPIO序号,参考枚举类型gpio_pad_e +* @param cb_func:回调函数地址 +* @param data:回调函数参数地址 +* @retval 无 +*/ +void hal_gpio_reg_eint_cb(io_pad_e pad, fcb_type cb_func); + +/** +* @brief 开关GPIO中断 +* @param pad:GPIO序号,参考枚举类型gpio_pad_e +* @param state:开关控制 +* @retval 无 +*/ +void hal_gpio_ctrl_eint(io_pad_e pad, function_state_e state); + +/** +* @brief 获取GPIO中断类型 +* @param pad:GPIO序号,参考枚举类型gpio_pad_e +* @retval 无 +*/ +gpio_int_e hal_gpio_get_int_type(io_pad_e pad); + +/** +* @brief 配置指定PAD为GPIO mode,方向为output,指定初始电平 +* @param pad:GPIO序号,参考枚举类型gpio_pad_e +* @param lvl:初始电平,参考枚举类型gpio_level_e +* @retval 无 +*/ +void hal_gpio_init_output(io_pad_e pad, gpio_level_e lvl); + +/** +* @brief 封装设置输出接口 +* @param pad:GPIO序号,参考枚举类型gpio_pad_e +* @param lvl:初始电平,参考枚举类型gpio_level_e +* @retval 无 +*/ +void hal_gpio_set_output_data(io_pad_e pad, gpio_level_e lvl); + +/** +* @brief 封装设置输出接口扩展,支持同时通知两个IO输出电平 +* @param pad1:GPIO序号,参考枚举类型gpio_pad_e +* @param pad1_lvl:配置电平,参考枚举类型gpio_level_e +* @param pad2:GPIO序号,参考枚举类型gpio_pad_e +* @param pad2_lvl:配置电平,参考枚举类型gpio_level_e +* @retval 无 +*/ +void hal_gpio_set_output_data_ex(io_pad_e pad1, gpio_level_e pad1_lvl, io_pad_e pad2, gpio_level_e pad2_lvl); + +/** +* @brief 配置指定PAD为GPIO mode,方向为input +* @param pad:GPIO序号,参考枚举类型gpio_pad_e +* @retval 无 +*/ +void hal_gpio_init_input(io_pad_e pad); + +/** +* @brief 读取输入电平 +* @param pad:GPIO序号,参考枚举类型gpio_pad_e +* @retval 无 +*/ +gpio_level_e hal_gpio_get_input_data(io_pad_e pad); + +/** +* @brief 设置io mode +* @param pad:GPIO序号,参考枚举类型gpio_pad_e +* @param mode:工作模式,参考各PAD对应的mode枚举类型 +* @retval 无 +*/ +void hal_gpio_set_mode(io_pad_e pad, uint8_t mode); + +/** +* @brief 获取指定PAD的默认上拉、下拉状态 +* @param pad:GPIO序号,参考枚举类型gpio_pad_e +* @param up_enable:默认上拉状态 +* @param down_enable:默认下拉状态 +* @retval 无 +*/ +void hal_gpio_get_pull_state(io_pad_e pad, function_state_e *up_enable, function_state_e *down_enable); + +/** +* @brief 配置指定PAD的默认上拉、下拉状态 +* @param pad:GPIO序号,参考枚举类型gpio_pad_e +* @param up_enable:默认上拉状态 +* @param down_enable:默认下拉状态 +* @retval 无 +*/ +void hal_gpio_set_pull_state(io_pad_e pad, function_state_e up_enable, function_state_e down_enable); + +/** +* @brief 配置指定PAD是否为施密特触发 +* @param pad:GPIO序号,参考枚举类型gpio_pad_e +* @param st_enable:1为施密特触发,0为正常触发 +* @retval 无 +*/ +void hal_gpio_set_schmitt_trigger(io_pad_e pad, function_state_e st_enable); + +/** +* @brief 配置指定PAD的驱动能力 +* @param pad:GPIO序号,参考枚举类型gpio_pad_e +* @param strength:驱动强度,取值为0~3 +* @retval 无 +*/ +void hal_gpio_set_driving_strength(io_pad_e pad, uint8_t strength); + +/** +* @brief 配置指定PAD的电压转换速率 +* @param pad:GPIO序号,参考枚举类型gpio_pad_e +* @param rate:驱动强度,取值为0~3 +* @retval 无 +*/ +void hal_gpio_set_slew_rate(io_pad_e pad, pad_slew_rate_e rate); + +/** +* @brief 配置AP_RSTN引脚中断 +* @param enable: 中断开关 +* @param cb_func:回调函数 +* @param trig:触发模式 +* @retval 无 +*/ +void hal_gpio_set_ap_reset_int(bool enable, fcb_type cb_func, sys_cfg_trigger_e trig); + +#endif /* __HAL_GPIO_H__ */ diff --git a/src/sdk/include/hal_i2c_master.h b/src/sdk/include/hal_i2c_master.h new file mode 100644 index 0000000..94db44b --- /dev/null +++ b/src/sdk/include/hal_i2c_master.h @@ -0,0 +1,80 @@ +/******************************************************************************* +* +* +* File: hal_i2c_master.h +* Description i2c hal file +* Version V0.1 +* Date 2021-10-14 +* Author zhanghz +*******************************************************************************/ + +#ifndef __HAL_I2C_MASTER_H__ +#define __HAL_I2C_MASTER_H__ + +#include "tau_device_datatype.h" +#include "tau_common.h" +#include "string.h" + +/************************************************************************** +* @name : hal_i2c_m_dma_init +* @brief : i2c master dma 初始化 +* @param[in] : slave_addr:目标从机地址 +* @param[in] : addr_bits:目标从机地址位数 +* @param[in] : i2c_speed_hz: 通信速率 +* @return : +* @retval : +**************************************************************************/ +void hal_i2c_m_dma_init(uint8_t slave_addr, uint8_t addr_bits, uint32_t i2c_speed_hz); + +/************************************************************************** +* @name : hal_i2c_m_dma_write +* @brief : i2c master dma 发送数据 +* @param[in] : txBuffer:发送数据buffer +* @param[in] : data_size:发送数据个数 +* @return : STATUS_SUCCESS:数据已排入 DMA 通道,但不一定全部发送 +* @return : 其它:发送出错,需要重新调用函数发送 +* @retval : +**************************************************************************/ +status_t hal_i2c_m_dma_write(const uint8_t *txBuffer, size_t data_size); + +/************************************************************************** +* @name : hal_i2c_m_dma_read +* @brief : i2c master dma 接收数据 +* @param[in] : reg_address:先发送寄存器地址给从机 +* @param[in] : reg_size:地址字节数 +* @param[in] : rxBuffer:接收数据buffer +* @param[in] : data_size:接收数据长度 +* @return : STATUS_SUCCESS:寄存器地址发送成功,并已配置DMA接收通道,但不一定完成接收 +* @return : 其它:接收出错,需要重新调用函数接收 +* @retval : +**************************************************************************/ +status_t hal_i2c_m_dma_read(uint32_t reg_address, size_t reg_size, uint8_t *rxBuffer, size_t data_size); + +/************************************************************************** +* @name : hal_i2c_m_transfer_complate +* @brief : 获取 i2c master 发送状态 +* @param[in] : +* @return : true:数据发送完成 +* @return : false:数据还在发送 +* @retval : +**************************************************************************/ +bool hal_i2c_m_transfer_complate(void); + +/************************************************************************** +* @name : hal_i2c_m_set_high_impedance +* @brief : 将 I2C 主机的IO口设置为高阻态 +* @param[in] : +* @return : +* @retval : +**************************************************************************/ +void hal_i2c_m_set_high_impedance(void); +/************************************************************************** +* @name : hal_i2c_m_deinit +* @brief : i2c主机 IP去初始化(关掉使能、外设时钟) +* @param[in] : +* @return : +* @retval : +***************************************************************************/ +void hal_i2c_m_deinit(void); +#endif /* __HAL_I2C_MASTER_H__*/ + diff --git a/src/sdk/include/hal_i2c_slave.h b/src/sdk/include/hal_i2c_slave.h new file mode 100644 index 0000000..6019ae0 --- /dev/null +++ b/src/sdk/include/hal_i2c_slave.h @@ -0,0 +1,179 @@ +/******************************************************************************* +* +* +* File: hal_i2c_slave.h +* Description i2c hal file +* Version V0.1 +* Date 2021-10-14 +* Author zhanghz +*******************************************************************************/ + +#ifndef __HAL_I2C_SLAVE_H__ +#define __HAL_I2C_SLAVE_H__ + +#include "tau_device_datatype.h" +#include "tau_common.h" +#include "string.h" + +typedef enum +{ + I2C_S_INT_READ = 0, //发生 读请求 中断 + I2C_S_INT_RX, //发生 接收 中断 + I2C_S_INT_STOP //发生 stop 中断 +} e_i2c_s_int_status; + +#if defined(ISP_568) || defined(ISP_368) +typedef enum +{ + I2C_S_0 = 0, + I2C_S_1, + I2C_S_MAX +} i2c_s_index_e; +#endif + +typedef void (*hal_i2c_s_callback_t)(e_i2c_s_int_status int_status, size_t receive_num); + +/************************************************************************** +* @name : hal_i2c_s_init +* @brief : i2c slave 初始化 +* @param[in] : slave_addr:从机地址 +* @param[in] : addr_bits:从机地址位数 +* @return : +* @retval : +**************************************************************************/ +void hal_i2c_s_init(uint8_t slave_addr, uint8_t addr_bits); + +/************************************************************************** +* @name : hal_i2c_s_dma_write +* @brief : i2c slave dma 发送数据 +* @param[in] : txBuffer:发送数据buffer +* @param[in] : data_size:发送数据个数 +* @return : STATUS_SUCCESS:数据已排入 DMA 通道,但不一定全部发送 +* @return : 其它:发送出错,需要重新调用函数发送 +* @retval : +**************************************************************************/ +status_t hal_i2c_s_dma_write(const uint8_t *txBuffer, size_t data_size); + +/************************************************************************** +* @name : hal_i2c_s_nonblocking_read +* @brief : i2c slave 准备接收数据 +* @param[in] : rxBuffer:接收数据buffer +* @param[in] : data_size:接收数据最大个数 +* @return : STATUS_SUCCESS:已配置准备接收,此时通信不一定开始 +* @return : 其它:接收配置出错,需要重新调用函数配置 +* @retval : +**************************************************************************/ +status_t hal_i2c_s_nonblocking_read(uint8_t *rxBuffer, size_t data_size); + +/************************************************************************** +* @name : hal_i2c_s_transfer_complate +* @brief : 获取 i2c slave 发送状态 +* @param[in] : +* @return : true:数据发送完成 +* @return : false:数据还在发送 +* @retval : +**************************************************************************/ +bool hal_i2c_s_write_complate(void); + +/************************************************************************** +* @name : hal_i2c_s_read_complate +* @brief : 获取 i2c slave 接收状态 +* @param[in] : +* @return : 数据接收个数 +* @retval : +**************************************************************************/ +uint8_t hal_i2c_s_read_complate(void); + +/************************************************************************** +* @name : hal_i2c_s_read_complate_clear +* @brief : 清除 i2c slave 接收状态 +* @param[in] : +* @return : +* @retval : +**************************************************************************/ +void hal_i2c_s_read_complate_clear(void); + +/************************************************************************** +* @name : hal_i2c_s_set_dma_tx_cycle +* @brief : 配置 I2C cycle 模式 +* @param[in] : +* @return : ENABLE:cycle模式,DISABLE:非cycle模式 +* @retval : +**************************************************************************/ +void hal_i2c_s_set_dma_tx_cycle(bool enable); + +/************************************************************************** +* @name : hal_i2c_s_set_transfer +* @brief : 配置 i2c 从机数据解析函数 +* @param[in] :hal_tp_transfer_phone_tmp:解析函数指针 +* @return : +* @retval : +**************************************************************************/ +void hal_i2c_s_set_transfer(hal_i2c_s_callback_t hal_i2c_s_callback_tmp); + +/************************************************************************** +* @name : hal_i2c_s_read_data +* @brief :read data +* @param[in] : rx_data: 接收数据 +* @return : 1: 成功获取数据 +* @return : 0: 接收 fifo 为空 +* @retval : +**************************************************************************/ +status_t hal_i2c_s_read_data(uint8_t *rx_data); + +/************************************************************************** +* @name : hal_i2c_s_write_data +* @brief :write data +* @param[in] : tx_data: 准备发送的数据 +* @return : 1: 配置发送成功 +* @return : 0: 发送 fifo 已满 +* @retval : +**************************************************************************/ +status_t hal_i2c_s_write_data(const uint8_t tx_data); + +/************************************************************************** + * @name : hal_i2c_s_rxfifo_notempty + * @brief : 判断当前 rxfifo 中是否有数据 + * @param[in] : + * @return : true: rxfifo 中有数据 + * @return : false: rxfifo 中没有数据 + * @retval : + **************************************************************************/ +bool hal_i2c_s_rxfifo_notempty(void); + +/************************************************************************** +* @name : hal_i2c_s_set_high_impedance +* @brief : 将 I2C 从机的IO口设置为高阻态 +* @param[in] : +* @return : +* @retval : +**************************************************************************/ +void hal_i2c_s_set_high_impedance(void); +/************************************************************************** +* @name : hal_i2c_s_get_tx_byte_num +* @brief : 获取I2C从机发送成功字节数 +* @param[in] : +* @return :发送总字节数 +* @retval : +**************************************************************************/ +int hal_i2c_s_get_tx_byte_num(void); +/************************************************************************** +* @name : hal_i2c_s_deinit +* @brief : i2c IP去初始化(关掉使能、外设时钟) +* @param[in] :slave_num 从机序号 +* @return : +* @retval : +***************************************************************************/ +void hal_i2c_s_deinit(void); +#if defined(ISP_568) || defined(ISP_368) + /************************************************************************** + * @name : hal_i2c_s_sel + * @brief : i2c slave 选择 + * @param[in] : slaver:从机编号 + * @return : + * @retval : + **************************************************************************/ + void hal_i2c_s_sel(i2c_s_index_e slaver); +#endif +#endif /* __HAL_I2C_SLAVE_H__*/ + diff --git a/src/sdk/include/hal_pwm.h b/src/sdk/include/hal_pwm.h new file mode 100644 index 0000000..485351d --- /dev/null +++ b/src/sdk/include/hal_pwm.h @@ -0,0 +1,219 @@ +/******************************************************************************* +* +* +* File: hal_pwm.h +* Description: pwm HAL层头文件 +* Version: V0.1 +* Date: 2021-03-17 +* Author: wuc + *******************************************************************************/ +#ifndef __HAL_PWM_H__ +#define __HAL_PWM_H__ + +/******************************************************************************* +* 1.Included files +*******************************************************************************/ +#include "tau_device_datatype.h" +#include "tau_common.h" +#include "hal_gpio.h" + +/******************************************************************************* +* 2.Global constant and macro definitions using #define +*******************************************************************************/ + +/******************************************************************************* +* 3.Global structures, unions and enumerations using typedef +*******************************************************************************/ +/*! @brief PWM触发功能的定义 */ +typedef enum _pwm_out_ctrl_e +{ + PWMO_CTRL_KEEP = 0, + PWMO_CTRL_LOW = 1, + PWMO_CTRL_HIGH = 2, + PWMO_CTRL_TOGGLE = 3, + PWMO_CTRL_MAX +} pwm_out_ctrl_e; + +/******************************************************************************* +* 4.Global variable extern declarations +*******************************************************************************/ + +/******************************************************************************* +* 5.Global function prototypes +*******************************************************************************/ +/** +* @brief PWMO初始化 +* @param 无 +* @retval 无 +*/ +void hal_pwm_out_init(void); + +/** +* @brief PWMO反初始化 +* @param 无 +* @retval 无 +*/ +void hal_pwm_out_deinit(void); + +/** +* @brief PWMO输出脉冲暂停、恢复 +* @param state:开关控制 +* @retval 无 +*/ +void hal_pwm_out_pause(function_state_e state); + +/** +* @brief 配置PWMO脉冲并开始输出 +* @param ctl0:到达阈值thr0时的操作,参考枚举类型pwm_out_ctrl_e +* @param ctl1:到达阈值thr1时的操作,参考枚举类型pwm_out_ctrl_e +* @param thr0:阈值0,单位us +* @param thr1:阈值1,单位us +* @param period:一个周期的时间,单位us +* @retval 无 +*/ +void hal_pwm_out_config_all(pwm_out_ctrl_e ctl0, pwm_out_ctrl_e ctl1, uint32_t thr0, uint32_t thr1, uint32_t period); + +/** +* @brief 在同步所有模式下配置PWMO脉冲所有参数 +* @param ctl0:到达阈值thr0时的操作,参考枚举类型pwm_out_ctrl_e +* @param ctl1:到达阈值thr1时的操作,参考枚举类型pwm_out_ctrl_e +* @param thr0:阈值0,单位us +* @param thr1:阈值1,单位us +* @param period:一个周期的时间,单位us +* @retval 无 +*/ +void hal_pwm_out_sync_all(pwm_out_ctrl_e ctl0, pwm_out_ctrl_e ctl1, uint32_t thr0, uint32_t thr1, uint32_t period); + +/** +* @brief 调制pwm输出以控制背光 +* @param polarity: 极性,false:先高后低,true:先低后高 +* @param duty_ratio: 占空比(0-total_ratio) +* @param total_ratio: 可细分总量 +* @param frequency: 频率,单位HZ +* @retval 无 +*/ +void hal_pwm_out_config_duty_ratio(bool polarity, uint16_t duty_ratio, uint16_t total_ratio, uint32_t frequency); + +/** +* @brief 在同步周期模式下配置PWMO脉冲的周期 +* @param period:一个周期的时间,单位us +* @retval 无 +*/ +void hal_pwm_out_sync_period(uint32_t period); + +/** +* @brief 在同步控制模式下配置PWMO脉冲的控制 +* @param ctl0:到达阈值thr0时的操作,参考枚举类型pwm_out_ctrl_e +* @param ctl1:到达阈值thr1时的操作,参考枚举类型pwm_out_ctrl_e +* @retval 无 +*/ +void hal_pwm_out_sync_ctl(pwm_out_ctrl_e ctl0, pwm_out_ctrl_e ctl1); + +/** +* @brief 在同步阈值模式下配置PWMO脉冲的阈值 +* @param thr0:阈值0,单位us +* @param thr1:阈值1,单位us +* @retval 无 +*/ +void hal_pwm_out_sync_thr(uint32_t thr0, uint32_t thr1); + +/** +* @brief 在同步暂停模式下暂停或恢复PWMO脉冲 +* @param pause_state:暂停或恢复 +* @retval 无 +*/ +void hal_pwm_out_sync_pause(function_state_e pause_state); + +/** +* @brief PWMI初始化 +* @param 无 +* @retval 无 +*/ +void hal_pwm_in_init(void); + +/** +* @brief PWMI反初始化 +* @param 无 +* @retval 无 +*/ +void hal_pwm_in_deinit(void); + +/** +* @brief 注册PWMI中断回调函数,回传PWMI中断类型指针,参考pwm_int_type_e +* @param cb_func:回调函数地址 +* @retval 无 +*/ +void hal_pwm_in_register_callback(fcb_type cb_func); + +/** +* @brief 配置PWMI所有中断的开关 +* @param high_overflow_en:high overflow中断使能开关 +* @param low_overflow_en:low overflow中断使能开关 +* @param total_overflow_en:total overflow中断使能开关 +* @param high_done_en:high done中断使能开关 +* @param low_done_en:low done中断使能开关 +* @param total_done_en:total done中断使能开关 +* @retval 无 +*/ +void hal_pwm_in_config_int(function_state_e high_overflow_en, function_state_e low_overflow_en, function_state_e total_overflow_en, + function_state_e high_done_en, function_state_e low_done_en, function_state_e total_done_en); + +/** +* @brief 配置PWMI单个中断的开关 +* @param pwm_int:中断类型,参考枚举类型pwm_int_type_e +* @param enable:控制开关 +* @retval 无 +*/ +void hal_pwm_in_set_int(pwm_int_type_e pwm_int, function_state_e enable); + +/** +* @brief 关闭PWMI所有中断 +* @param 无 +* @retval 无 +*/ +void hal_pwm_in_clear_int(void); + +/** +* @brief 开关PWMI中断 +* @param state:开关控制 +* @retval 无 +*/ +void hal_pwm_in_ctrl_int(function_state_e state); + +/** +* @brief 获取PWMI脉冲周期时长 +* @param 无 +* @retval 周期时长,单位us +*/ +uint32_t hal_pwm_in_get_total_period(void); + +/** +* @brief 获取PWMI脉冲高电平时长 +* @param 无 +* @retval 高电平时长,单位us +*/ +uint32_t hal_pwm_in_get_high_period(void); + +/** +* @brief 获取PWMI脉冲低电平时长 +* @param 无 +* @retval 低电平时长,单位us +*/ +uint32_t hal_pwm_in_get_low_period(void); + +/** +* @brief 获取PWMI上升沿累积个数 +* @param 无 +* @retval 从模块使能到当前时间的上升沿个数,超过32位宽后清零重新计数 +*/ +uint32_t hal_pwm_in_get_current_count(void); + +#if defined(ISP_568) || defined(ISP_368) + /** + * @brief 选择PWMO输出的IO口 + * @param pad: PWMO输出的IO口,默认为IO_PAD_AP_SWIRE,可选通过IO_PAD_TD_SPIM_MISO、IO_PAD_TD_LEDPWM输出 + * @retval 无 + */ + void hal_pwm_out_sel_io(io_pad_e pad); +#endif +#endif /* __HAL_PWM_H__ */ diff --git a/src/sdk/include/hal_spi_master.h b/src/sdk/include/hal_spi_master.h new file mode 100644 index 0000000..bd75c44 --- /dev/null +++ b/src/sdk/include/hal_spi_master.h @@ -0,0 +1,89 @@ +/******************************************************************************* +* +* +* File: hal_spi_touch.h +* Description spi hal file +* Version V0.1 +* Date 2021-10-25 +* Author zhanghz +*******************************************************************************/ + +#ifndef __HAL_SPI_MASTER_H__ +#define __HAL_SPI_MASTER_H__ + +#include "tau_device_datatype.h" +#include "tau_common.h" +#include "string.h" + +/************************************************************************** +* @name : hal_spi_m_dma_init +* @brief : SPIM DMA 初始化 +* @param[in] :speed:配置通信速率 +* @param[in] :cpha: 配置第一个时钟沿或者第二个时钟沿有效 +* @param[in] :cpol: 配置总线空闲时时钟电平 +* @return : +* @retval : +**************************************************************************/ +void hal_spi_m_dma_init(uint32_t speed, uint8_t cpha, uint8_t cpol); + +/************************************************************************** +* @name : hal_spi_m_dma_write +* @brief : 用SPIM 发送数据 +* @param[in] :data_buffer: 发送数据 buffer 头地址 +* @param[in] :data_size: 发送数据 buffer 长度 +* @return :STATUS_SUCCESS: 配置成功,但数据不一定发送完成 +* @return :其它:配置不成功,需要重新配置发送 +* @retval : +**************************************************************************/ +status_t hal_spi_m_dma_write(const uint8_t *data_buffer, size_t data_size); + +/************************************************************************** +* @name : hal_spi_m_dma_read +* @brief : 用SPIM 读取数据 +* @param[in] :cmd: 发送命令 buffer 头地址 +* @param[in] :cmd_size: 发送命令 buffer 长度 +* @param[in] :data_buffer: 读取数据 buffer 头地址 +* @param[in] :data_size: 发送命令 和 读取数据 buffer 长度 +* @return :STATUS_SUCCESS: 配置成功,但数据不一定读取完成 +* @return :其它:配置不成功,需要重新配置发送 +* @retval : +**************************************************************************/ +status_t hal_spi_m_dma_read(const uint8_t *cmd, size_t cmd_size, uint8_t *data_buffer, size_t data_size); + +/************************************************************************** +* @name : hal_spi_m_get_transfer_complate +* @brief : 获取 SPIM 通信完成状态 +* @param[in] : +* @return :true:通信完成 +* @retval : +**************************************************************************/ +bool hal_spi_m_get_transfer_complate(void); + +/************************************************************************** +* @name : hal_spi_m_clear_rxfifo +* @brief : 清空 rxfifo 中的数据 +* @param[in] : +* @return : +* @retval : +**************************************************************************/ +void hal_spi_m_clear_rxfifo(void); + +/************************************************************************** +* @name : hal_spi_m_set_high_impedance +* @brief : 将 SPI 主机的IO口设置为高阻态 +* @param[in] : +* @return : +* @retval : +**************************************************************************/ +void hal_spi_m_set_high_impedance(void); +/************************************************************************** +* @name : hal_spi_m_deinit +* @brief : 将 SPI 主机去初始化(关掉SPIM) +* @param[in] : +* @return :true +* @retval : +**************************************************************************/ +bool hal_spi_m_deinit(void); + +#endif + diff --git a/src/sdk/include/hal_spi_slave.h b/src/sdk/include/hal_spi_slave.h new file mode 100644 index 0000000..6454ab2 --- /dev/null +++ b/src/sdk/include/hal_spi_slave.h @@ -0,0 +1,181 @@ +/******************************************************************************* +* Copyright (C) 2021-2022, All Rights Reserved. +* +* File: hal_spi_slave.h +* Description spi slave hal file +* Version V0.1 +* Date 2021-10-23 +* Author lzy +*******************************************************************************/ +#ifndef __HAL_SPI_SLAVE_H__ +#define __HAL_SPI_SLAVE_H__ + +/******************************************************************************* +* 1.Included files +*******************************************************************************/ +#include "tau_dsi_datatype.h" +#include "tau_common.h" + +/******************************************************************************* +* 2.Global constant and macro definitions using #define +*******************************************************************************/ + +/******************************************************************************* +* 3.Global structures, unions and enumerations using typedef +*******************************************************************************/ +/* +自动模式event eg:rx_buffer_size=8, host发送16个byte数据, +收到前面8byte数据时产生SPI_EVENT_RCV_FULL事件,后续的事件丢弃, +传输完成后host拉高CS,产生SPI_EVENT_RCV_CS_HIGH事件 +*/ +typedef enum +{ + SPI_EVENT_RCV_DATA = 0, /* 手动模式下,SPIS 接受每接收一个数据即产生事件 */ + SPI_EVENT_RCV_FULL, /* 自动模式下 ,SPIS 接收数据等于buffer size后产生事件 */ + SPI_EVENT_RCV_CS_HIGH, /* 自动模式下 ,SPIS 收到CS 拉高的信号 */ +} hal_spis_event_e; + +typedef struct hal_spi_packet_info_t +{ + uint8_t *rx_buffer; /* 接收buffer */ + uint32_t rx_buffer_size; /* 接收buffer size */ + bool rx_circle; /* 接收circle mode */ + const uint8_t *tx_buffer; /* 发送buffer */ + uint32_t tx_buffer_size; /* 发送buffer size */ + bool tx_circle; /* 发送circle mode */ + uint32_t packet_size; /* packet size */ +} hal_spi_packet_info_t; + +typedef void (*hal_spi_slave_cb)(hal_spis_event_e event, hal_spi_packet_info_t *packet_info); + +/******************************************************************************* +* 4.Global variable extern declarations +*******************************************************************************/ + +/******************************************************************************* +* 5.Global function prototypes +*******************************************************************************/ +/** +* @brief 初始化spi slave 模块 +* @param cpha: 相位配置 +* @param cpol: 极性配置 +* @param dma: 自动模式下DMA enable +* @retval true/false +*/ +bool hal_spi_slave_init(uint8_t cpha, uint8_t cpol, bool dma); + +/** +* @brief spi slave 模块去初始化 +* @param none +* @retval true/false +*/ +bool hal_spi_slave_deinit(void); + +/** +* @brief spi slave 注册回调函数 +* @param cb:call back +* @retval true/false +*/ +bool hal_spi_slave_register_callback(hal_spi_slave_cb cb); + +/** +* @brief spi slave enable +* @param none +* @retval true/false +*/ +bool hal_spi_slave_enable(void); + +/** +* @brief spi slave disable +* @param none +* @retval true/false +*/ +bool hal_spi_slave_disable(void); + +/** +* @brief spi slave 配置自动接收buffer, 底层自动接收数据后调用callback, buffer为NULL时为自动接收模式 +* @param buffer:自动模式数据接收buffer +* @param size: 自动模式数据接收buffer size +* @param circle:circle mode,packet size 大于buffer size 时从offset 0重新写(暂不支持) +* @retval true/false +*/ +bool hal_spi_slave_set_auto_rx_buffer(uint8_t *buffer, uint32_t size, bool circle); + +/** +* @brief spi slave 配置自动发送buffer +* @param buffer:自动模式数据发送buffer, buffer为NULL为切换为自动模式 +* @param size: 自动模式数据发收buffer size +* @param circle:circle mode,重复发送buffer的数据 +* @retval true/false +*/ +bool hal_spi_slave_set_auto_tx_buffer(const uint8_t *buffer, uint32_t size, bool circle); + +/** +* @brief spi slave 启动自动传输 +* @param none +* @retval true/false +*/ +bool hal_spi_slave_auto_transfer_start(void); + +/** +* @brief spi slave 停止自动传输(circle mode 下packet结束可使用) +* @param none +* @retval true/false +*/ +bool hal_spi_slave_auto_transfer_abort(void); + +/** +* @brief spi slave flush fifo(circle mode 下packet结束后可使用) +* @param none +* @retval true/false +*/ +bool hal_spi_slave_flush_fifo(void); + +/** +* @brief reset spis tx,在启动spis后重新配置输出数据 +* @param buffer:自动模式数据发送buffer +* @param size: 自动模式数据发收buffer size +* @param circle:circle mode,重复发送buffer的数据 +* @retval true/false +*/ +bool hal_spi_slave_reset_tx(const uint8_t *buffer, uint32_t size, bool circle); + +/** +* @brief check spi slave busy(CS status) +* @param none +* @retval true/false +*/ +bool hal_spi_slave_busy(void); + +/** +* @brief 获取rx fifo 非空 +* @param none +* @retval true/false +*/ +bool hal_spi_slave_get_rxfifo_notempty(void); + +/** +* @brief 手动模式下从rx fifo 读取数据 +* @param none +* @retval true/false +*/ +bool hal_spi_slave_read_data(uint32_t *data); + +/** +* @brief 手动模式下往tx fifo 写数据 +* @param none +* @retval true/false +*/ +bool hal_spi_slave_write_data(const uint8_t data); + +/************************************************************************** +* @name : hal_spi_s_set_high_impedance +* @brief : 将 SPI 从机的IO口设置为高阻态 +* @param[in] : +* @return : +* @retval : +**************************************************************************/ +void hal_spi_s_set_high_impedance(void); + +#endif /* __HAL_SPI_SLAVE_H__*/ + diff --git a/src/sdk/include/hal_swire.h b/src/sdk/include/hal_swire.h new file mode 100644 index 0000000..de654a4 --- /dev/null +++ b/src/sdk/include/hal_swire.h @@ -0,0 +1,75 @@ +/******************************************************************************* +* +* +* File: hal_swire.h +* Description: swire HAL层头文件 +* Version: V0.1 +* Date: 2021-03-17 +* Author: wuc + *******************************************************************************/ +#ifndef __HAL_SWIRE_H__ +#define __HAL_SWIRE_H__ + +/******************************************************************************* +* 1.Included files +*******************************************************************************/ +#include "tau_device_datatype.h" +#include "tau_common.h" + +/******************************************************************************* +* 2.Global constant and macro definitions using #define +*******************************************************************************/ + +/******************************************************************************* +* 3.Global structures, unions and enumerations using typedef +*******************************************************************************/ + +/******************************************************************************* +* 4.Global variable extern declarations +*******************************************************************************/ + +/******************************************************************************* +* 5.Global function prototypes +*******************************************************************************/ +/** +* @brief SWIRE初始化 +* @param 无 +* @retval 无 +*/ +void hal_swire_init(void); + +/** +* @brief SWIRE反初始化 +* @param 无 +* @retval 无 +*/ +void hal_swire_deinit(void); + +/** +* @brief 配置SWIRE脉冲并开始输出 +* @param start_time:起始时长,单位us +* @param stop_time:结束时长,单位us,必须大于300us +* @param high_time:高电平时长,单位us +* @param low_time:低电平时长,单位us +* @param pulse:上升沿个数 +* @retval 无 +*/ +void hal_swire_start(uint32_t start_time, uint32_t stop_time, + uint32_t high_time, uint32_t low_time, + uint32_t pulse); + +/** +* @brief 打开或关闭背光 +* @param state:开关控制 +* @retval 无 +*/ +void hal_swire_open(function_state_e state); + +/** +* @brief 注册回调函数 +* @param cb_func:回调函数地址 +* @retval 无 +*/ +void hal_swire_register_callback(fcb_type cb_func); + +#endif /* __HAL_SWIRE_H__ */ diff --git a/src/sdk/include/hal_system.h b/src/sdk/include/hal_system.h new file mode 100644 index 0000000..ef90c75 --- /dev/null +++ b/src/sdk/include/hal_system.h @@ -0,0 +1,219 @@ +/******************************************************************************* +* +* +* File: hal_system.h +* Description hal 通用系统接口头文件 +* Version V0.1 +* Date 2021-05-21 +* Author lzy + *******************************************************************************/ +#ifndef __HAL_SYSTEM_H__ +#define __HAL_SYSTEM_H__ +/******************************************************************************* +* 1.Included files +*******************************************************************************/ +#include "tau_common.h" +#include "hal_flash.h" + +/******************************************************************************* +* 2.Global constant and macro definitions using #define +*******************************************************************************/ + +/******************************************************************************* +* API兼容宏定义 +*******************************************************************************/ + +/** +* @brief 发送0xAB指令控制flash退出deep sleep power mode +* 新API为hal_flash_release_power_down +* @param none +* @retval null +*/ +#define hal_system_flash_release_power_down()\ +{\ + hal_flash_init();\ + hal_flash_release_power_down();\ + hal_flash_deinit();\ +} + +/** +* @brief 发送0xB9指令控制flash进入deep sleep power mode +* 新API为hal_system_flash_power_down +* @param +* @retval null +*/ +#define hal_system_flash_power_down()\ +{\ + hal_flash_init();\ + hal_flash_power_down();\ + hal_flash_deinit();\ +} + +/** +* @brief 用户字节数组形式从flash读取数据,按页读取,每页1024字节 +* 新API为hal_flash_normal_read +* @param *usr_cfg_t_addr(数组首地址), + usr_cfg_t_size(数组大小可以超过1024,可以按页读也可连续跨页读) + flash_page (页0~63) +* @retval bool 无 +*/ +#define hal_system_flash_read(usr_cfg_t_addr, usr_cfg_t_size, flash_page)\ +({\ + bool ret;\ + hal_flash_init();\ + ret = hal_flash_normal_read(usr_cfg_t_addr, usr_cfg_t_size, 13, flash_page, 0);\ + hal_flash_deinit();\ + ret;\ +}) + +/** +* @brief 用户字节数组形式存入flash(次数有限,不可频繁写入),按页写入,每页1024字节 +* 新API为hal_flash_normal_write +* @param *usr_cfg_t_addr(数组首地址), + usr_cfg_t_size(数组大小可以超过1024,可以按页写也可连续跨页写入), + 推荐按页顺序写入方式,第一次必须从0页开始写入,后续才可1~63任意页写入 + flash_page (写入页0~63) +* @retval bool 校验size是否超出 +*/ +#define hal_system_flash_write(usr_cfg_t_addr, usr_cfg_t_size, flash_page)\ +({\ + bool ret;\ + if(flash_page == 0)\ + {\ + hal_flash_erase(13);\ + }\ + hal_flash_init();\ + ret = hal_flash_normal_write(usr_cfg_t_addr, usr_cfg_t_size, 13, flash_page, 0);\ + hal_flash_deinit();\ + ret;\ +}) + +/******************************************************************************* +* 3.Global structures, unions and enumerations using typedef +*******************************************************************************/ + +/******************************************************************************* +* 4.Global variable extern declarations +*******************************************************************************/ + +/******************************************************************************* +* 5.Global function prototypes +*******************************************************************************/ + +/** +* @brief system 初始化 +* @param none +* @retval none +*/ +void hal_system_init(uint32_t sysclk); + +/** +* @brief system 初始化 console +* @param baud_rate 波特率 +* @retval none +*/ +void hal_system_init_console(uint32_t baud_rate); + +/** +* @brief mcu进入idle模式,等待中断唤醒 +* @param disable_systick: 进入idle时是否关闭systick(退出idle 恢复systick) +* @retval none +*/ +void hal_system_idle_mode(bool disable_systick); + +/** +* @brief 注册systick回调函数 +* @param cb_func:回调函数地址 +* @retval 无 +*/ +void hal_system_register_systick_cb(fcb_type cb_func); + +/** +* @brief 启动sys tickt +* @param ms: sys tickt 间隔, 范围1-10ms +* @retval true/false +*/ +bool hal_system_enable_systick(uint8_t ms); + +/** +* @brief 获取systickt +* @param none +* @retval 当前systickt值 +*/ +bool hal_system_disable_systick(void); + +/** +* @brief 获取systickt +* @param none +* @retval 当前systickt值 +*/ +uint32_t hal_system_get_tick(void); + +/** +* @brief 进入deep sleep mode 模式, 等待AP_RSTN 唤醒 +* @param polarity true:上升沿唤醒, false:下降沿唤醒 +* @retval none +*/ +void hal_system_deep_sleep_mode(bool polarity); + +/** +* @brief 配置共享flash开关(使用过后注意关闭,常开功耗会增加) +* @param enable:true:可通过F_SPI访问内部flash , false:不可通过F_SPI访问内部flash +* @retval true/false +*/ +bool hal_system_share_flash_mode(bool enable); + +/** +* @brief sleep mode 配置 +* @param enable +* @retval none +*/ +void hal_system_sleep_mode(bool enable); + +/** +* @brief reset chip +* @param none +* @retval none +*/ +void hal_system_reset_chip(void); + +/** +* @brief 开关PVD检测 +* @param none +* @retval none +*/ +void hal_system_set_pvd(bool enable); + +/** +* @brief VCC电源开关, +* 使用场景: VCC掉电,13D与13M使用外灌电源时,关闭内部VCC供电,防止电源倒灌 +* @param enable: true:打开CP, false:关闭CP +* @retval none +*/ +void hal_system_set_vcc(bool enable); + + +#if defined(ISP_568) || defined(ISP_368) + /** + * @brief 控制DPHY内部校准开关 + * @param en: 使能开关 + * @retval none + */ + void hal_system_set_phy_calibration(bool en); +#endif + +/** +* @brief 获取上位机设置的debug state +* @param none +* @retval debug state +*/ +uint32_t hal_system_get_debug_state(void); + +/** +* @brief clear debug state(debug only) +* @param none +* @retval none +*/ +void hal_system_clear_debug_state(void); + +#endif //__HAL_SYSTEM_H__ diff --git a/src/sdk/include/hal_timer.h b/src/sdk/include/hal_timer.h new file mode 100644 index 0000000..f395c19 --- /dev/null +++ b/src/sdk/include/hal_timer.h @@ -0,0 +1,92 @@ +/******************************************************************************* +* +* +* File: hal_timer.h +* Description: timer HAL层头文件 +* Version: V0.1 +* Date: 2021-03-16 +* Author: wuc + *******************************************************************************/ +#ifndef __HAL_TIMER_H__ +#define __HAL_TIMER_H__ + +/******************************************************************************* +* 1.Included files +*******************************************************************************/ +#include "tau_device_datatype.h" +#include "tau_common.h" + +/******************************************************************************* +* 2.Global constant and macro definitions using #define +*******************************************************************************/ + +/******************************************************************************* +* 3.Global structures, unions and enumerations using typedef +*******************************************************************************/ + +/******************************************************************************* +* 4.Global variable extern declarations +*******************************************************************************/ + +/******************************************************************************* +* 5.Global function prototypes +*******************************************************************************/ +/** +* @brief 指定定时器初始化 +* @param index:实例序号(0~3),参考枚举类型timer_num_e +* @retval 无 +*/ +void hal_timer_init(timer_num_e index); + +/** +* @brief 指定定时器反初始化 +* @param index:实例序号(0~3),参考枚举类型timer_num_e +* @retval 无 +*/ +void hal_timer_deinit(timer_num_e index); + +/** +* @brief 启动指定定时器 +* @param index:实例序号(0~3),参考枚举类型timer_num_e +* @param ms:超时时间,单位ms。由于应用场景一般是ms级别的,应用开发不需要计数具体时针数, + 故直接输入时间,在接口内部换算成时钟数进行寄存器设置。 +* @param cb_func:回调函数地址,不需要则填NULL +* @param data:回调函数的参数地址,不需要则填NULL +* @retval 无 +*/ +void hal_timer_start(timer_num_e index, uint32_t ms, fcb_type cb_func, void *data); + +/** +* @brief 启动指定定时器 +* @param index:实例序号(0~3),参考枚举类型timer_num_e +* @param us:超时时间,单位us。由于应用场景一般是us级别的,应用开发不需要计数具体时针数, + 故直接输入时间,在接口内部换算成时钟数进行寄存器设置。 +* @param cb_func:回调函数地址,不需要则填NULL +* @param data:回调函数的参数地址,不需要则填NULL +* @retval 无 +*/ +void hal_timer_start_ex(timer_num_e index, uint32_t us, fcb_type cb_func, void *data); + +/** +* @brief 停止指定定时器 +* @param index:实例序号(0~3),参考枚举类型timer_num_e +* @retval 无 +*/ +void hal_timer_stop(timer_num_e index); + +/** +* @brief 设置定时器是否循环超时 +* @param index:实例序号(0~3),参考枚举类型timer_num_e +* @param bool enable:循环超时使能 +* @retval 无 +*/ +void hal_timer_set_repeat(timer_num_e index, bool repeat); + +/** +* @brief 获取指定指示器状态 +* @param index:实例序号(0~3),参考枚举类型timer_num_e +* @retval 参考timer_status_e +*/ +timer_status_e hal_timer_get_status(timer_num_e index); + +#endif /* __HAL_TIMER_H__ */ diff --git a/src/sdk/include/hal_uart.h b/src/sdk/include/hal_uart.h new file mode 100644 index 0000000..fcfd17a --- /dev/null +++ b/src/sdk/include/hal_uart.h @@ -0,0 +1,131 @@ +/******************************************************************************* +* +* +* File: hal_uart.h +* Description +* Version V0.1 +* Date 2021-11-24 +* Author kc +*******************************************************************************/ + +#ifndef __HAL_UART_H__ +#define __HAL_UART_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 +*******************************************************************************/ +typedef enum +{ + HAL_UART_STOPBIT_1 = 0, + HAL_UART_STOPBIT_2 = 1 +} hal_uart_stopbit_e; + +typedef enum +{ + HAL_UART_PARITY_NO = 0, + HAL_UART_PARITY_ODD = 0x01, + HAL_UART_PARITY_EVEN = 0x03, +} hal_uart_parity_e; + +typedef enum +{ + HAL_UART_DATAWIDTH_6 = 1, + HAL_UART_DATAWIDTH_7 = 2, + HAL_UART_DATAWIDTH_8 = 3 +} hal_uart_datawidth_e; + + +typedef struct +{ + uint32_t baudrate; + hal_uart_stopbit_e stopbits; + hal_uart_datawidth_e data_width; + hal_uart_parity_e parity; +} hal_uart_config_t; + + +typedef struct _hal_uart_handle_t +{ + hal_uart_config_t uart_config; + void (* txdmacallback)(void); + void (* rxdmacallback)(void); +} hal_uart_handle_t; + + +typedef enum +{ + HAL_UART_OK = 0x00U, + HAL_UART_ERROR = 0x01U, + HAL_UART_BUSY = 0x02U, + HAL_UART_TIMEOUT = 0x03U +} hal_uart_status; + + +/******************************************************************************* +* 4.Global variable extern declarations +*******************************************************************************/ + +/******************************************************************************* +* 5.Global function prototypes +*******************************************************************************/ +/** +* @brief 初始化设置uart 传输的波特率、位宽等参数 +* @param hal_uart_handle_t +* @retval hal_uart_status +*/ +hal_uart_status hal_uart_init(hal_uart_handle_t *huart); + +/** +* @brief 关闭uart口 +* @param hal_uart_handle_t +* @retval hal_uart_status +*/ +hal_uart_status hal_uart_deinit(hal_uart_handle_t *huart); + +/** +* @brief 阻塞式发送数据 +* @param hal_uart_handle_t +* @param pdata:传输数据指针 +* @param size:传输数据大小 +* @retval hal_uart_status +*/ +hal_uart_status hal_uart_transmit_blocking(hal_uart_handle_t *huart, uint8_t *pdata, uint16_t size); + +/** +* @brief 阻塞式接收数据 +* @param hal_uart_handle_t +* @param pdata:传输数据指针 +* @param size:传输数据大小 +* @retval hal_uart_status +*/ +hal_uart_status hal_uart_receive_blocking(hal_uart_handle_t *huart, uint8_t *pdata, uint16_t size); + +/** +* @brief 使用DMA发送数据,TX和RX共用一个DMA 通道,所以需要TX/RX传输完后才能进行RX/TX的传输 +* @param hal_uart_handle_t +* @param pdata:传输数据指针 +* @param size:传输数据大小 +* @retval hal_uart_status +*/ +hal_uart_status hal_uart_transmit_dma(hal_uart_handle_t *huart, uint8_t *pdata, uint16_t size); + +/** +* @brief 使用DMA发送数据,TX和RX共用一个DMA 通道,所以需要TX/RX传输完后才能进行RX/TX的传输 +* @param hal_uart_handle_t +* @param pdata:传输数据指针 +* @param size:传输数据大小 +* @retval hal_uart_status +*/ +hal_uart_status hal_uart_receive_dma(hal_uart_handle_t *huart, uint8_t *pdata, uint16_t size); + +#endif /* __HAL_UART_H__ */ diff --git a/src/sdk/include/hal_wdg.h b/src/sdk/include/hal_wdg.h new file mode 100644 index 0000000..87c9360 --- /dev/null +++ b/src/sdk/include/hal_wdg.h @@ -0,0 +1,94 @@ +/******************************************************************************* +* +* +* File: hal_wdg.h +* Description: wdg HAL层头文件 +* Version: V0.1 +* Date: 2021-03-16 +* Author: wuc + *******************************************************************************/ +#ifndef __HAL_WDG_H__ +#define __HAL_WDG_H__ + +/******************************************************************************* +* 1.Included files +*******************************************************************************/ +#include "tau_device_datatype.h" +#include "tau_common.h" + + +/******************************************************************************* +* 2.Global constant and macro definitions using #define +*******************************************************************************/ + +/******************************************************************************* +* 3.Global structures, unions and enumerations using typedef +*******************************************************************************/ +/*! + * @brief watch dog模式 + */ +typedef enum +{ + WDG_MODE_RESET = 0, //复位模式,跑飞复位 + WDG_MODE_INTERRUPT = 1 //中断模式,跑飞进入中断 +} wdg_mode_e; + +/******************************************************************************* +* 4.Global variable extern declarations +*******************************************************************************/ + +/******************************************************************************* +* 5.Global function prototypes +*******************************************************************************/ +/** +* @brief 看门狗初始化 +* @param 无 +* @retval 无 +*/ +void hal_wdg_init(void); + +/** +* @brief 看门狗反初始化 +* @param 无 +* @retval 无 +*/ +void hal_wdg_deinit(void); + +/** +* @brief 启动看门狗 +* @param wdg_mode_e modeSel: 复位或中断模式 +* @param uint32_t load: 超时时间,单位ms +* @retval 无 +*/ +void hal_wdg_start(wdg_mode_e modeSel, uint32_t load); + +/** +* @brief 停止看门狗 +* @param 无 +* @retval 无 +*/ +void hal_wdg_stop(void); + +/** +* @brief 设置WDG是否循环超时 +* @param enable:循环超时使能 +* @retval 无 +*/ +void hal_wdg_set_repeat(bool repeat); + +/** +* @brief 注册中断回调函数 +* @param cb_func:回调函数地址 +* @param data:回调参数地址 +* @retval 无 +*/ +void hal_wdg_register_callback(fcb_type cb_func, void *data); + +/** +* @brief 喂狗 +* @param 无 +* @retval 无 +*/ +void hal_wdg_kick_dog(void); + +#endif /* __HAL_WDG_H__ */ diff --git a/src/sdk/sdk_version.h b/src/sdk/sdk_version.h new file mode 100644 index 0000000..3fc1d35 --- /dev/null +++ b/src/sdk/sdk_version.h @@ -0,0 +1 @@ +#define SDK_REVISION 4450 \ No newline at end of file