Browse Source

속도 수정

main
gudae 2 months ago
parent
commit
7b564c9fed
  1. BIN
      DefaultBuild/app_owi_service.obj
  2. BIN
      DefaultBuild/multical.abs
  3. 552
      DefaultBuild/multical.map
  4. 2875
      DefaultBuild/multical.mot
  5. BIN
      DefaultBuild/owi.obj
  6. BIN
      DefaultBuild/r_main.obj
  7. 26
      QualityReport(multical,DefaultBuild).txt
  8. 116
      multical.temp.mtud
  9. 161
      owi.c
  10. 12
      owi.h
  11. 96
      r_main.c

BIN
DefaultBuild/app_owi_service.obj

Binary file not shown.

BIN
DefaultBuild/multical.abs

Binary file not shown.

552
DefaultBuild/multical.map

@ -1,4 +1,4 @@
Renesas Optimizing Linker (W3.07.00 ) 08-Jun-2026 14:47:12 Renesas Optimizing Linker (W3.07.00 ) 10-Jun-2026 11:14:49
*** Options *** *** Options ***
@ -72,11 +72,11 @@ SECTION START END SIZE ALIGN
.text .text
00000529 000006d9 1b1 1 00000529 000006d9 1b1 1
.const .const
00003000 0000334d 34e 2 00003000 0000327d 27e 2
.textf .textf
0000334e 00006235 2ee8 1 0000327e 00005d97 2b1a 1
.SLIB .SLIB
00006236 00008b81 294c 1 00005d98 000086d6 293f 1
.monitor2 .monitor2
0003fe00 0003ffff 200 1 0003fe00 0003ffff 200 1
.bss .bss
@ -91,8 +91,8 @@ SECTION START END SIZE ALIGN
*** Total Section Size *** *** Total Section Size ***
RAMDATA SECTION: 00002751 Byte(s) RAMDATA SECTION: 00002751 Byte(s)
ROMDATA SECTION: 00000a4b Byte(s) ROMDATA SECTION: 0000097b Byte(s)
PROGRAM SECTION: 000059e5 Byte(s) PROGRAM SECTION: 0000560a Byte(s)
*** Symbol List *** *** Symbol List ***
@ -156,539 +156,513 @@ FILE=DefaultBuild\r_cg_serial_user.obj
SECTION=.const SECTION=.const
FILE=DefaultBuild\r_main.obj FILE=DefaultBuild\r_main.obj
00003000 00003246 247 00003000 000031f4 1f5
_nvm_cmd@6@read_connected_nvm_tail8@1 _nvm_cmd@6@read_connected_nvm_tail8@1
0000323c 3 data ,l * 000031ea 3 data ,l *
_expect_7c@9@read_connected_nvm_last16@1 _expect_7c@9@read_connected_nvm_last16@1
0000323f 3 data ,l * 000031ed 3 data ,l *
_expect_7272@8@read_connected_nvm_last16@1 _expect_7272@8@read_connected_nvm_last16@1
00003242 2 data ,l * 000031f0 2 data ,l *
_connect_cmd@7@read_connected_nvm_last16@1 _connect_cmd@7@read_connected_nvm_last16@1
00003244 3 data ,l * 000031f2 3 data ,l *
FILE=DefaultBuild\owi.obj
00003248 000032c4 7d
FILE=DefaultBuild\i2c.obj FILE=DefaultBuild\i2c.obj
000032c6 0000334d 88 000031f6 0000327d 88
SECTION=.textf SECTION=.textf
FILE=DefaultBuild\stkinit.obj FILE=DefaultBuild\stkinit.obj
0000334e 00003391 44 0000327e 000032c1 44
_stkinit _stkinit
0000334e 0 none ,g * 0000327e 0 none ,g *
LSTINIT1 LSTINIT1
0000335c 0 none ,l * 0000328c 0 none ,l *
LSTINIT2 LSTINIT2
00003386 0 none ,l * 000032b6 0 none ,l *
LSTINIT3 LSTINIT3
00003391 0 none ,l * 000032c1 0 none ,l *
FILE=DefaultBuild\r_main.obj FILE=DefaultBuild\r_main.obj
00003392 00004c3a 18a9 000032c2 00004a05 1744
_send_end_response@1 _send_end_response@1
00003392 8 func ,l * 000032c2 8 func ,l *
_out_print@1 _out_print@1
0000339a a func ,l * 000032ca a func ,l *
_uart1_send_string_safe@1 _uart1_send_string_safe@1
000033a4 a func ,l * 000032d4 a func ,l *
_app_kick_wdt@1 _app_kick_wdt@1
000033ae 5 func ,l * 000032de 5 func ,l *
_delay_ms_wdt@1 _delay_ms_wdt@1
000033b3 27 func ,l * 000032e3 27 func ,l *
_hex2byte@1 _hex2byte@1
000033da 56 func ,l * 0000330a 56 func ,l *
_relay_init@1 _relay_init@1
00003430 b func ,l * 00003360 b func ,l *
_relay_on@1 _relay_on@1
0000343b 4 func ,l * 0000336b 4 func ,l *
_relay_off@1 _relay_off@1
0000343f 4 func ,l * 0000336f 4 func ,l *
_gauge_req_start@1 _gauge_req_start@1
00003443 16 func ,l * 00003373 16 func ,l *
_gauge_req_stop@1 _gauge_req_stop@1
00003459 18 func ,l * 00003389 18 func ,l *
_gauge_read_pin@1 _gauge_read_pin@1
00003471 a func ,l * 000033a1 a func ,l *
_gauge_wait_pin_state@1 _gauge_wait_pin_state@1
0000347b 43 func ,l * 000033ab 43 func ,l *
_gauge_read_nibble@1 _gauge_read_nibble@1
000034be 84 func ,l * 000033ee 84 func ,l *
_gauge_is_valid_frame@1 _gauge_is_valid_frame@1
00003542 50 func ,l * 00003472 50 func ,l *
_debug_gauge_levels@1
00003592 7c func ,l *
_gauge_read_aligned_frame@1 _gauge_read_aligned_frame@1
0000360e a7 func ,l * 000034c2 91 func ,l *
_gauge_decode_value@1 _gauge_decode_value@1
000036b5 11f func ,l * 00003553 11f func ,l *
_gauge_reset_state@1 _gauge_reset_state@1
000037d4 2c func ,l * 00003672 2c func ,l *
_gauge_align_captured_frame@1 _gauge_align_captured_frame@1
00003800 47 func ,l * 0000369e 47 func ,l *
_gauge_capture_init@1 _gauge_capture_init@1
00003847 37 func ,l * 000036e5 37 func ,l *
_gauge_capture_step@1 _gauge_capture_step@1
0000387e de func ,l * 0000371c de func ,l *
_gauge_finish_captured_frame@1 _gauge_finish_captured_frame@1
0000395c 43 func ,l * 000037fa 43 func ,l *
_gauge_read_pair@1 _gauge_read_pair@1
0000399f c6 func ,l * 0000383d c6 func ,l *
_gauge_read@1 _gauge_read@1
00003a65 50 func ,l * 00003903 50 func ,l *
_gauge_format_value@1 _gauge_format_value@1
00003ab5 b5 func ,l * 00003953 b5 func ,l *
_gauge_setup_pins@1 _gauge_setup_pins@1
00003b6a 3d func ,l * 00003a08 3d func ,l *
_build_line_from_rx@1 _build_line_from_rx@1
00003ba7 5c func ,l * 00003a45 5c func ,l *
_print_owi_write_result@1 _print_owi_write_result@1
00003c03 45 func ,l * 00003aa1 45 func ,l *
_reset_channel_gate_defaults@1 _reset_channel_gate_defaults@1
00003c48 10 func ,l * 00003ae6 10 func ,l *
_print_owi_read_result@1 _print_owi_read_result@1
00003c58 119 func ,l * 00003af6 119 func ,l *
_print_connect_sweep_result@1
00003d71 49 func ,l *
_runtime_reset@1 _runtime_reset@1
00003dba c func ,l * 00003c0f c func ,l *
_is_x_off_cmd@1 _is_x_off_cmd@1
00003dc6 41 func ,l * 00003c1b 41 func ,l *
_is_start_cmd@1 _is_start_cmd@1
00003e07 40 func ,l * 00003c5c 40 func ,l *
_is_stop_cmd@1 _is_stop_cmd@1
00003e47 36 func ,l * 00003c9c 36 func ,l *
_is_long_owi_read_len@1 _is_long_owi_read_len@1
00003e7d 15 func ,l * 00003cd2 15 func ,l *
_do_stable_owi_read@1 _do_stable_owi_read@1
00003e92 9f func ,l * 00003ce7 9f func ,l *
_copy_nvm_tail8@1 _copy_nvm_tail8@1
00003f31 49 func ,l * 00003d86 49 func ,l *
_tails_match_8@1
00003f7a 1e func ,l *
_tail8_to_hex16@1 _tail8_to_hex16@1
00003f98 4c func ,l * 00003dcf 4c func ,l *
_read_connected_nvm_tail8@1 _read_connected_nvm_tail8@1
00003fe4 78 func ,l * 00003e1b 78 func ,l *
_read_connected_nvm_last16@1 _read_connected_nvm_last16@1
0000405c 1dd func ,l * 00003e93 181 func ,l *
_run_connect_verify_one_channel@1 _run_connect_verify_one_channel@1
00004239 257 func ,l * 00004014 257 func ,l *
_execute_connect_verify_sequence@1 _execute_connect_verify_sequence@1
00004490 7d func ,l * 0000426b 77 func ,l *
_execute_direct_read_sequence@1 _execute_direct_read_sequence@1
0000450d 1b0 func ,l * 000042e2 1a6 func ,l *
_do_nvm_read_after_gauge@1 _do_nvm_read_after_gauge@1
000046bd 24 func ,l * 00004488 24 func ,l *
_execute_owi_service_from_job@1 _execute_owi_service_from_job@1
000046e1 e5 func ,l * 000044ac e5 func ,l *
_process_local_legacy_line@1 _process_local_legacy_line@1
000047c6 26a func ,l * 00004591 26a func ,l *
_process_one_line@1 _process_one_line@1
00004a30 139 func ,l * 000047fb 139 func ,l *
_app_runtime_try_start@1 _app_runtime_try_start@1
00004b69 14 func ,l * 00004934 14 func ,l *
_app_job_tick@1 _app_job_tick@1
00004b7d 39 func ,l * 00004948 39 func ,l *
_main _main
00004bb6 7d func ,g * 00004981 7d func ,g *
_R_MAIN_UserInit _R_MAIN_UserInit
00004c33 8 func ,g * 000049fe 8 func ,g *
FILE=DefaultBuild\r_systeminit.obj FILE=DefaultBuild\r_systeminit.obj
00004c3b 00004c7f 45 00004a06 00004a4a 45
_R_Systeminit _R_Systeminit
00004c3b 3e func ,g * 00004a06 3e func ,g *
_hdwinit _hdwinit
00004c79 7 func ,g * 00004a44 7 func ,g *
FILE=DefaultBuild\r_cg_cgc.obj FILE=DefaultBuild\r_cg_cgc.obj
00004c80 00004ca9 2a 00004a4b 00004a74 2a
_R_CGC_Create _R_CGC_Create
00004c80 2a func ,g * 00004a4b 2a func ,g *
FILE=DefaultBuild\r_cg_cgc_user.obj FILE=DefaultBuild\r_cg_cgc_user.obj
00004caa 00004cac 3 00004a75 00004a77 3
_R_CGC_Get_ResetSource _R_CGC_Get_ResetSource
00004caa 3 func ,g * 00004a75 3 func ,g *
FILE=DefaultBuild\r_cg_serial.obj FILE=DefaultBuild\r_cg_serial.obj
00004cad 00004f94 2e8 00004a78 00004d5f 2e8
_R_SAU0_Create _R_SAU0_Create
00004cad 12 func ,g * 00004a78 12 func ,g *
_R_UART0_Create _R_UART0_Create
00004cbf 6e func ,g * 00004a8a 6e func ,g *
_R_UART0_Start _R_UART0_Start
00004d2d 26 func ,g * 00004af8 26 func ,g *
_R_UART0_Stop _R_UART0_Stop
00004d53 1e func ,g * 00004b1e 1e func ,g *
_R_UART0_Receive _R_UART0_Receive
00004d71 18 func ,g * 00004b3c 18 func ,g *
_R_UART0_Send _R_UART0_Send
00004d89 26 func ,g * 00004b54 26 func ,g *
_R_SAU1_Create _R_SAU1_Create
00004daf 12 func ,g * 00004b7a 12 func ,g *
_R_UART1_Create _R_UART1_Create
00004dc1 6e func ,g * 00004b8c 6e func ,g *
_R_UART1_Start _R_UART1_Start
00004e2f 26 func ,g * 00004bfa 26 func ,g *
_R_UART1_Stop _R_UART1_Stop
00004e55 1e func ,g * 00004c20 1e func ,g *
_R_UART1_Receive _R_UART1_Receive
00004e73 18 func ,g * 00004c3e 18 func ,g *
_R_UART1_Send _R_UART1_Send
00004e8b 26 func ,g * 00004c56 26 func ,g *
_R_IICA0_Create _R_IICA0_Create
00004eb1 50 func ,g * 00004c7c 50 func ,g *
_R_IICA0_Stop _R_IICA0_Stop
00004f01 5 func ,g * 00004ccc 5 func ,g *
_R_IICA0_StopCondition _R_IICA0_StopCondition
00004f06 5 func ,g * 00004cd1 5 func ,g *
_R_IICA0_Master_Send _R_IICA0_Master_Send
00004f0b 43 func ,g * 00004cd6 43 func ,g *
_R_IICA0_Master_Receive _R_IICA0_Master_Receive
00004f4e 47 func ,g * 00004d19 47 func ,g *
FILE=DefaultBuild\r_cg_serial_user.obj FILE=DefaultBuild\r_cg_serial_user.obj
00004f95 00005077 e3 00004d60 00004e42 e3
_r_uart0_callback_receiveend@1 _r_uart0_callback_receiveend@1
00004f95 1 func ,l * 00004d60 1 func ,l *
_r_uart0_callback_softwareoverrun@1 _r_uart0_callback_softwareoverrun@1
00004f96 1 func ,l * 00004d61 1 func ,l *
_r_uart0_callback_sendend@1 _r_uart0_callback_sendend@1
00004f97 1 func ,l * 00004d62 1 func ,l *
_r_uart0_callback_error@1 _r_uart0_callback_error@1
00004f98 1 func ,l * 00004d63 1 func ,l *
_r_uart1_callback_receiveend@1 _r_uart1_callback_receiveend@1
00004f99 31 func ,l * 00004d64 31 func ,l *
_r_uart1_callback_softwareoverrun@1 _r_uart1_callback_softwareoverrun@1
00004fca 1 func ,l * 00004d95 1 func ,l *
_r_uart1_callback_sendend@1 _r_uart1_callback_sendend@1
00004fcb 4 func ,l * 00004d96 4 func ,l *
_r_uart1_callback_error@1 _r_uart1_callback_error@1
00004fcf 1 func ,l * 00004d9a 1 func ,l *
_iica0_masterhandler@1 _iica0_masterhandler@1
00004fd0 91 func ,l * 00004d9b 91 func ,l *
_r_iica0_callback_master_error@1 _r_iica0_callback_master_error@1
00005061 7 func ,l * 00004e2c 7 func ,l *
_r_iica0_callback_master_receiveend@1 _r_iica0_callback_master_receiveend@1
00005068 8 func ,l * 00004e33 8 func ,l *
_r_iica0_callback_master_sendend@1 _r_iica0_callback_master_sendend@1
00005070 8 func ,l * 00004e3b 8 func ,l *
FILE=DefaultBuild\r_cg_port.obj FILE=DefaultBuild\r_cg_port.obj
00005078 0000509c 25 00004e43 00004e67 25
_R_PORT_Create _R_PORT_Create
00005078 25 func ,g * 00004e43 25 func ,g *
FILE=DefaultBuild\owi.obj FILE=DefaultBuild\owi.obj
0000509d 00005817 77b 00004e68 00005379 512
_OWI_KickWdt@1 _OWI_KickWdt@1
0000509d 5 func ,l * 00004e68 5 func ,l *
_GPIO_Clear _GPIO_Clear
000050a2 12 func ,g * 00004e6d 12 func ,g *
_GPIO_Input _GPIO_Input
000050b4 11 func ,g * 00004e7f 11 func ,g *
_GPIO_Read _GPIO_Read
000050c5 9 func ,g * 00004e90 9 func ,g *
_OWI_Release@1 _OWI_Release@1
000050ce 11 func ,l * 00004e99 11 func ,l *
_GPIO_StrongDriveHighKick@1
000050df 32 func ,l *
_GPIO_ForceHighKick
00005111 8 func ,g *
_OWI_DriveLow@1 _OWI_DriveLow@1
00005119 12 func ,l * 00004eaa 12 func ,l *
_OWI_HasTimeout _OWI_HasTimeout
0000512b 4 func ,g * 00004ebc 4 func ,g *
_OWI_ClearTimeout _OWI_ClearTimeout
0000512f e func ,g * 00004ec0 e func ,g *
_OWI_GetLastTimeoutByteIndex _OWI_GetLastTimeoutByteIndex
0000513d 4 func ,g * 00004ece 4 func ,g *
_OWI_GetLastTimeoutBitIndex _OWI_GetLastTimeoutBitIndex
00005141 4 func ,g * 00004ed2 4 func ,g *
_OWI_Init _OWI_Init
00005145 1e func ,g * 00004ed6 1e func ,g *
_OWI_Start _OWI_Start
00005163 17 func ,g * 00004ef4 17 func ,g *
_OWI_Stop _OWI_Stop
0000517a 14 func ,g * 00004f0b 14 func ,g *
_OWI_StopRead@1 _OWI_StopRead@1
0000518e 17 func ,l * 00004f1f 17 func ,l *
_OWI_WaitForFallingEdge@1 _OWI_WaitForFallingEdge@1
000051a5 4b func ,l * 00004f36 4b func ,l *
_OWI_ReadByte_StreamSynced@1 _OWI_ReadByte_StreamSynced@1
000051f0 73 func ,l * 00004f81 73 func ,l *
_OWI_SecureStop _OWI_SecureStop
00005263 51 func ,g * 00004ff4 51 func ,g *
_OWI_WriteBit _OWI_WriteBit
000052b4 37 func ,g * 00005045 37 func ,g *
_OWI_WriteByte _OWI_WriteByte
000052eb 2a func ,g * 0000507c 2a func ,g *
_OWI_ReadBit _OWI_ReadBit
00005315 af func ,g * 000050a6 af func ,g *
_OWI_ReadByte _OWI_ReadByte
000053c4 48 func ,g * 00005155 48 func ,g *
_OWI_T_ReadBytesAndPrint
0000540c 117 func ,g *
_owi_result_init@1 _owi_result_init@1
00005523 21 func ,l * 0000519d 21 func ,l *
_owi_result_latch_timeout@1 _owi_result_latch_timeout@1
00005544 29 func ,l * 000051be 29 func ,l *
_OWI_T_CommandModeRaw _OWI_T_CommandModeRaw
0000556d 63 func ,g * 000051e7 63 func ,g *
_OWI_CommandModeRaw _OWI_CommandModeRaw
000055d0 63 func ,g * 0000524a 63 func ,g *
_OWI_ReadBytesRaw _OWI_ReadBytesRaw
00005633 cd func ,g * 000052ad cd func ,g *
_OWI_disable
00005700 8 func ,g *
_OWI_T_CommandMode
00005708 18 func ,g *
_OWI_CommandMode
00005720 18 func ,g *
_OWI_ReadBytesAndPrint
00005738 e0 func ,g *
FILE=DefaultBuild\i2c.obj FILE=DefaultBuild\i2c.obj
00005818 00005940 129 0000537a 000054a2 129
_disable _disable
00005818 19 func ,g * 0000537a 19 func ,g *
_I2C_EnablePower _I2C_EnablePower
00005831 4 func ,g * 00005393 4 func ,g *
_I2C_DisablePower _I2C_DisablePower
00005835 3 func ,g * 00005397 3 func ,g *
_I2C_T_Command_Mode_receiveData _I2C_T_Command_Mode_receiveData
00005838 36 func ,g * 0000539a 36 func ,g *
_I2C_Command_Mode_receiveData _I2C_Command_Mode_receiveData
0000586e 27 func ,g * 000053d0 27 func ,g *
_I2C_Command_Mode_Send _I2C_Command_Mode_Send
00005895 ac func ,g * 000053f7 ac func ,g *
FILE=DefaultBuild\uart.obj FILE=DefaultBuild\uart.obj
00005941 000059df 9f 000054a3 00005541 9f
_UART1_WaitTxIdle@1 _UART1_WaitTxIdle@1
00005941 2c func ,l * 000054a3 2c func ,l *
_uart1_send_string _uart1_send_string
0000596d 40 func ,g * 000054cf 40 func ,g *
_uart1_send_hex _uart1_send_hex
000059ad 33 func ,g * 0000550f 33 func ,g *
FILE=DefaultBuild\delay.obj FILE=DefaultBuild\delay.obj
000059e0 00005a9e bf 00005542 00005600 bf
_delay _delay
000059e0 18 func ,g * 00005542 18 func ,g *
_delay_us _delay_us
000059f8 82 func ,g * 0000555a 82 func ,g *
_delay_ms _delay_ms
00005a7a 25 func ,g * 000055dc 25 func ,g *
FILE=DefaultBuild\dipSwitch.obj FILE=DefaultBuild\dipSwitch.obj
00005a9f 00005aaf 11 00005601 00005611 11
_DipSwitch_Init _DipSwitch_Init
00005a9f 8 func ,g * 00005601 8 func ,g *
_DipSwitch_ReadAddr_0to31 _DipSwitch_ReadAddr_0to31
00005aa7 9 func ,g * 00005609 9 func ,g *
FILE=DefaultBuild\gatectrl.obj FILE=DefaultBuild\gatectrl.obj
00005ab0 00005b29 7a 00005612 0000568b 7a
_Gate_SetByNum _Gate_SetByNum
00005ab0 49 func ,g * 00005612 49 func ,g *
_Cal_Init _Cal_Init
00005af9 21 func ,g * 0000565b 21 func ,g *
_GateCtrl_SelectChannel _GateCtrl_SelectChannel
00005b1a 10 func ,g * 0000567c 10 func ,g *
FILE=DefaultBuild\app_result.obj FILE=DefaultBuild\app_result.obj
00005b2a 00005b33 a 0000568c 00005695 a
_app_result_print_ok _app_result_print_ok
00005b2a 5 func ,g * 0000568c 5 func ,g *
_app_result_print_err _app_result_print_err
00005b2f 5 func ,g * 00005691 5 func ,g *
FILE=DefaultBuild\app_cmd_parser.obj FILE=DefaultBuild\app_cmd_parser.obj
00005b34 00005f08 3d5 00005696 00005a6a 3d5
_find_payload_pos@1 _find_payload_pos@1
00005b34 1b func ,l * 00005696 1b func ,l *
_hex_nibble@1 _hex_nibble@1
00005b4f 31 func ,l * 000056b1 31 func ,l *
_hex_pair_to_u8@1 _hex_pair_to_u8@1
00005b80 30 func ,l * 000056e2 30 func ,l *
_app_cmd_parse_line _app_cmd_parse_line
00005bb0 359 func ,g * 00005712 359 func ,g *
FILE=DefaultBuild\app_scheduler.obj FILE=DefaultBuild\app_scheduler.obj
00005f09 00005fa4 9c 00005a6b 00005b06 9c
_app_scheduler_init _app_scheduler_init
00005f09 15 func ,g * 00005a6b 15 func ,g *
_app_scheduler_push _app_scheduler_push
00005f1e 38 func ,g * 00005a80 38 func ,g *
_app_scheduler_pop _app_scheduler_pop
00005f56 31 func ,g * 00005ab8 31 func ,g *
_app_scheduler_is_empty _app_scheduler_is_empty
00005f87 9 func ,g * 00005ae9 9 func ,g *
_app_scheduler_clear _app_scheduler_clear
00005f90 15 func ,g * 00005af2 15 func ,g *
FILE=DefaultBuild\app_owi_service.obj FILE=DefaultBuild\app_owi_service.obj
00005fa5 0000622a 286 00005b07 00005d8c 286
_app_owi_from_raw@1 _app_owi_from_raw@1
00005fa5 86 func ,l * 00005b07 86 func ,l *
_is_long_owi_read@1 _is_long_owi_read@1
0000602b 15 func ,l * 00005b8d 15 func ,l *
_looks_bad_tail@1 _looks_bad_tail@1
00006040 5c func ,l * 00005ba2 5c func ,l *
_looks_bad_last_bytes@1 _looks_bad_last_bytes@1
0000609c 48 func ,l * 00005bfe 48 func ,l *
_ends_with_ff_pair@1 _ends_with_ff_pair@1
000060e4 25 func ,l * 00005c46 25 func ,l *
_needs_retry_for_long_read@1 _needs_retry_for_long_read@1
00006109 42 func ,l * 00005c6b 42 func ,l *
_app_owi_read_basic _app_owi_read_basic
0000614b 86 func ,g * 00005cad 86 func ,g *
_app_owi_write_basic _app_owi_write_basic
000061d1 2d func ,g * 00005d33 2d func ,g *
_app_owi_write_t_basic _app_owi_write_t_basic
000061fe 2d func ,g * 00005d60 2d func ,g *
FILE=DefaultBuild\r_cg_wdt.obj FILE=DefaultBuild\r_cg_wdt.obj
0000622b 00006235 b 00005d8d 00005d97 b
_R_WDT_Create _R_WDT_Create
0000622b 7 func ,g * 00005d8d 7 func ,g *
_R_WDT_Restart _R_WDT_Restart
00006232 4 func ,g * 00005d94 4 func ,g *
SECTION=.SLIB SECTION=.SLIB
FILE=_COM_fdiv FILE=_COM_fdiv
00006236 00006363 12e 00005d98 00005ec5 12e
__COM_fdiv __COM_fdiv
00006295 0 none ,g * 00005df7 0 none ,g *
FILE=_COM_sltof FILE=_COM_sltof
00006364 0000637b 18 00005ec6 00005edd 18
__COM_sltof __COM_sltof
00006364 0 none ,g * 00005ec6 0 none ,g *
FILE=isdigit FILE=isdigit
0000637c 00006385 a 00005ede 00005ee7 a
_isdigit _isdigit
0000637c 0 none ,g * 00005ede 0 none ,g *
FILE=memcmp FILE=memcmp
00006386 00006397 12 00005ee8 00005ef9 12
_memcmp _memcmp
00006386 0 none ,g * 00005ee8 0 none ,g *
FILE=memcpy FILE=memcpy
00006398 000063a7 10 00005efa 00005f09 10
_memcpy _memcpy
00006398 0 none ,g * 00005efa 0 none ,g *
FILE=memset FILE=memset
000063a8 000063b5 e 00005f0a 00005f17 e
_memset _memset
000063a8 0 none ,g * 00005f0a 0 none ,g *
FILE=sprintf FILE=sprintf
000063b6 000064ae f9 00005f18 00006010 f9
_sprintf _sprintf
000063b6 e1 func ,g * 00005f18 e1 func ,g *
__REL_sp@1 __REL_sp@1
00006497 18 func ,l * 00005ff9 18 func ,l *
FILE=strchr FILE=strchr
000064af 000064bc e 00006011 0000601e e
_strchr _strchr
000064af 0 none ,g * 00006011 0 none ,g *
FILE=strcpy
000064bd 000064c9 d
_strcpy
000064bd 0 none ,g *
FILE=strlen FILE=strlen
000064ca 000064d4 b 0000601f 00006029 b
_strlen _strlen
000064ca 0 none ,g * 0000601f 0 none ,g *
FILE=strncpy FILE=strncpy
000064d5 000064e8 14 0000602a 0000603d 14
_strncpy _strncpy
000064d5 0 none ,g * 0000602a 0 none ,g *
FILE=toupper FILE=toupper
000064e9 000064f6 e 0000603e 0000604b e
_toupper _toupper
000064e9 0 none ,g * 0000603e 0 none ,g *
FILE=_REL_f_inf FILE=_REL_f_inf
000064f7 000064fe 8 0000604c 00006053 8
__REL_f_inf __REL_f_inf
000064f7 0 none ,g * 0000604c 0 none ,g *
FILE=_REL_f_norm FILE=_REL_f_norm
000064ff 0000650e 10 00006054 00006063 10
__REL_f_norm __REL_f_norm
000064ff 0 none ,g * 00006054 0 none ,g *
FILE=_REL_f_round FILE=_REL_f_round
0000650f 00006521 13 00006064 00006076 13
__REL_f_round __REL_f_round
0000650f 0 none ,g * 00006064 0 none ,g *
FILE=_REL_ltof FILE=_REL_ltof
00006522 0000656b 4a 00006077 000060c0 4a
__REL_ltof __REL_ltof
00006522 0 none ,g * 00006077 0 none ,g *
FILE=_REL_print FILE=_REL_print
0000656c 000084c3 1f58 000060c1 00008018 1f58
__REL_print __REL_print
0000656c 1046 func ,g * 000060c1 1046 func ,g *
__REL_fltprn@1 __REL_fltprn@1
000075b2 941 func ,l * 00007107 941 func ,l *
__REL_henkan1@1 __REL_henkan1@1
00007ef3 28 func ,l * 00007a48 28 func ,l *
__REL_henkan2@1 __REL_henkan2@1
00007f1b 33 func ,l * 00007a70 33 func ,l *
__REL_pri@1 __REL_pri@1
00007f4e 298 func ,l * 00007aa3 298 func ,l *
__REL_fltgeti@1 __REL_fltgeti@1
000081e6 19d func ,l * 00007d3b 19d func ,l *
__REL_inmod@1 __REL_inmod@1
00008383 141 func ,l * 00007ed8 141 func ,l *
FILE=_COM_feq FILE=_COM_feq
000084c4 000084d9 16 00008019 0000802e 16
__COM_feq __COM_feq
000084c4 0 none ,g * 00008019 0 none ,g *
FILE=_COM_fge FILE=_COM_fge
000084da 000084ef 16 0000802f 00008044 16
__COM_fge __COM_fge
000084da 0 none ,g * 0000802f 0 none ,g *
FILE=_COM_flt FILE=_COM_flt
000084f0 00008505 16 00008045 0000805a 16
__COM_flt __COM_flt
000084f0 0 none ,g * 00008045 0 none ,g *
FILE=_COM_fmul FILE=_COM_fmul
00008506 000085f2 ed 0000805b 00008147 ed
__COM_fmul __COM_fmul
00008551 0 none ,g * 000080a6 0 none ,g *
FILE=_COM_fne FILE=_COM_fne
000085f3 00008603 11 00008148 00008158 11
__COM_fne __COM_fne
000085f3 0 none ,g * 00008148 0 none ,g *
FILE=_COM_ftosl FILE=_COM_ftosl
00008604 0000860b 8 00008159 00008160 8
__COM_ftosl __COM_ftosl
00008604 0 none ,g * 00008159 0 none ,g *
FILE=_COM_sidiv FILE=_COM_sidiv
0000860c 0000862d 22 00008161 00008182 22
__COM_sidiv __COM_sidiv
0000860e 0 none ,g * 00008163 0 none ,g *
FILE=_COM_sirem FILE=_COM_sirem
0000862e 0000864d 20 00008183 000081a2 20
__COM_sirem __COM_sirem
0000862e 0 none ,g * 00008183 0 none ,g *
FILE=_COM_ulldiv FILE=_COM_ulldiv
0000864e 00008677 2a 000081a3 000081cc 2a
__COM_ulldiv __COM_ulldiv
0000864e 0 none ,g * 000081a3 0 none ,g *
FILE=_COM_ullrem FILE=_COM_ullrem
00008678 000086a8 31 000081cd 000081fd 31
__COM_ullrem __COM_ullrem
00008678 0 none ,g * 000081cd 0 none ,g *
FILE=_REL_fcmp FILE=_REL_fcmp
000086a9 000086e0 38 000081fe 00008235 38
__REL_fcmp __REL_fcmp
000086a9 0 none ,g * 000081fe 0 none ,g *
FILE=_REL_fordered_core FILE=_REL_fordered_core
000086e1 000086fc 1c 00008236 00008251 1c
__REL_fordered_core __REL_fordered_core
000086e1 0 none ,g * 00008236 0 none ,g *
FILE=_REL_ftol FILE=_REL_ftol
000086fd 00008731 35 00008252 00008286 35
__REL_ftol __REL_ftol
000086fd 0 none ,g * 00008252 0 none ,g *
FILE=_REL_lldiv FILE=_REL_lldiv
00008732 00008937 206 00008287 0000848c 206
__REL_lldiv __REL_lldiv
0000874e 0 none ,g * 000082a3 0 none ,g *
FILE=_REL_llrem FILE=_REL_llrem
00008938 00008b3b 204 0000848d 00008690 204
__REL_llrem __REL_llrem
00008955 0 none ,g * 000084aa 0 none ,g *
FILE=_REL_ltosl FILE=_REL_ltosl
00008b3c 00008b60 25 00008691 000086b5 25
__REL_ltosl __REL_ltosl
00008b3c 0 none ,g * 00008691 0 none ,g *
FILE=_COM_lshr FILE=_COM_lshr
00008b61 00008b81 21 000086b6 000086d6 21
__COM_lshr __COM_lshr
00008b6b 0 none ,g * 000086c0 0 none ,g *
SECTION=.monitor2 SECTION=.monitor2
FILE=rlink_generates_02 FILE=rlink_generates_02
@ -829,13 +803,13 @@ FILE=rlink_generates_05
__e.text __e.text
000006da 0 none ,g * 000006da 0 none ,g *
__s.textf __s.textf
0000334e 0 none ,g * 0000327e 0 none ,g *
__e.textf __e.textf
00006236 0 none ,g * 00005d98 0 none ,g *
__s.const __s.const
00003000 0 none ,g * 00003000 0 none ,g *
__e.const __e.const
0000334e 0 none ,g * 0000327e 0 none ,g *
__s.constf __s.constf
00000080 0 none ,g * 00000080 0 none ,g *
__e.constf __e.constf
@ -873,9 +847,9 @@ FILE=rlink_generates_05
__e.RLIB __e.RLIB
000000c4 0 none ,g * 000000c4 0 none ,g *
__s.SLIB __s.SLIB
00006236 0 none ,g * 00005d98 0 none ,g *
__e.SLIB __e.SLIB
00008b82 0 none ,g * 000086d7 0 none ,g *
__s.option_byte __s.option_byte
000000c0 0 none ,g * 000000c0 0 none ,g *
__e.option_byte __e.option_byte

2875
DefaultBuild/multical.mot

File diff suppressed because it is too large

BIN
DefaultBuild/owi.obj

Binary file not shown.

BIN
DefaultBuild/r_main.obj

Binary file not shown.

26
QualityReport(multical,DefaultBuild).txt

@ -1,5 +1,5 @@
QualityReport QualityReport
2026년 6월 8일 월요일 오후 2:47:12 2026년 6월 10일 수요일 오전 11:14:49
------ Start build(multical, DefaultBuild) ------ ------ Start build(multical, DefaultBuild) ------
C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.15.00\Bin\ccrl.exe r_main.c -cpu=S3 -o DefaultBuild\r_main.obj "-dev=C:\Program Files (x86)\Renesas Electronics\CS+\CC\Device\RL78\Devicefile\DR5F10PPJ.DVF" -g -g_line -I "..\..\Documents\카카오톡 받은 파일\IDH1.1\IDH1.1" -I ..\IDH1.1 -I . -c -msg_lang=english C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.15.00\Bin\ccrl.exe r_main.c -cpu=S3 -o DefaultBuild\r_main.obj "-dev=C:\Program Files (x86)\Renesas Electronics\CS+\CC\Device\RL78\Devicefile\DR5F10PPJ.DVF" -g -g_line -I "..\..\Documents\카카오톡 받은 파일\IDH1.1\IDH1.1" -I ..\IDH1.1 -I . -c -msg_lang=english
@ -13,9 +13,6 @@ C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.15.00\inc\stdint.h(25
C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.15.00\inc\stdint.h(26):W0520301:Typedef name has already been declared (with same type) C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.15.00\inc\stdint.h(26):W0520301:Typedef name has already been declared (with same type)
C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.15.00\inc\stdint.h(27):W0520301:Typedef name has already been declared (with same type) C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.15.00\inc\stdint.h(27):W0520301:Typedef name has already been declared (with same type)
i2c.h(8):W0520047:Incompatible redefinition of macro "RAM_BYTES" (declared at line 11 of "uart.h") i2c.h(8):W0520047:Incompatible redefinition of macro "RAM_BYTES" (declared at line 11 of "uart.h")
r_main.c(1093):W0520111:Statement is unreachable
r_main.c(241):W0520177:Function "debug_ck_edges" was declared but never referenced
r_main.c(581):W0520177:Function "gauge_print_value" was declared but never referenced
W0511106:The folder "..\..\Documents\카카오톡 받은 파일\IDH1.1\IDH1.1" specified by the "-I" option is not found. W0511106:The folder "..\..\Documents\카카오톡 받은 파일\IDH1.1\IDH1.1" specified by the "-I" option is not found.
W0511187:The evaluation period for the option "-Odefault" of CC-RL V1 has expired. It is implicitly changed to "-Olite". Please consider purchasing the product to continue using "-Odefault". By explicitly specifying "-Olite" or "-Onothing", this warning message disappears. W0511187:The evaluation period for the option "-Odefault" of CC-RL V1 has expired. It is implicitly changed to "-Olite". Please consider purchasing the product to continue using "-Odefault". By explicitly specifying "-Olite" or "-Onothing", this warning message disappears.
C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.15.00\inc\stdint.h(18):W0520301:Typedef name has already been declared (with same type) C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.15.00\inc\stdint.h(18):W0520301:Typedef name has already been declared (with same type)
@ -33,16 +30,11 @@ C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.15.00\inc\stdint.h(20
C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.15.00\inc\stdint.h(25):W0520301:Typedef name has already been declared (with same type) C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.15.00\inc\stdint.h(25):W0520301:Typedef name has already been declared (with same type)
C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.15.00\inc\stdint.h(26):W0520301:Typedef name has already been declared (with same type) C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.15.00\inc\stdint.h(26):W0520301:Typedef name has already been declared (with same type)
C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.15.00\inc\stdint.h(27):W0520301:Typedef name has already been declared (with same type) C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.15.00\inc\stdint.h(27):W0520301:Typedef name has already been declared (with same type)
uart.h(11):W0520047:Incompatible redefinition of macro "RAM_BYTES" (declared at line 29 of "owi.h")
owi.c(537):W0520549:Variable "r" is used before its value is set
owi.c(546):W0520549:Variable "r" is used before its value is set
owi.c(148):W0520177:Function "OWI_StopWrite" was declared but never referenced
owi.c(163):W0520177:Function "OWI_WaitFirstBitStart" was declared but never referenced
C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.15.00\Bin\rlink.exe -subcommand=DefaultBuild\multical.clnk C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.15.00\Bin\rlink.exe -subcommand=DefaultBuild\multical.clnk
W0561017:Paid license of CC-RL V1 is not found, and the evaluation period has expired. Please consider purchasing the product. W0561017:Paid license of CC-RL V1 is not found, and the evaluation period has expired. Please consider purchasing the product.
W0561017:Paid license of CC-RL V1 is not found, and the evaluation period has expired. Please consider purchasing the product. W0561017:Paid license of CC-RL V1 is not found, and the evaluation period has expired. Please consider purchasing the product.
Renesas Optimizing Linker Completed Renesas Optimizing Linker Completed
------ Build ended(Error:0, Warning:35)(multical, DefaultBuild) ------ ------ Build ended(Error:0, Warning:27)(multical, DefaultBuild) ------
--- CommandFile 1 --- --- CommandFile 1 ---
DefaultBuild\multical.clnk : DefaultBuild\multical.clnk :
@ -97,8 +89,8 @@ DefaultBuild\multical.clnk :
--- SHA1 hash value of output files --- --- SHA1 hash value of output files ---
C:\Users\temp\Desktop\measurement_fw\DefaultBuild\multical.abs: 4653592a84b5abb7ff4fa5162688b90cd520c9f9 C:\Users\temp\Desktop\measurement_fw\DefaultBuild\multical.abs: 0e61e61b13d9bf6e29db540d3cd3a5987482268d
C:\Users\temp\Desktop\measurement_fw\DefaultBuild\multical.mot: 006906a6ae1bbda7d0cc35dc837923cd4e073f90 C:\Users\temp\Desktop\measurement_fw\DefaultBuild\multical.mot: c5e104f56736460312eb50bf4562d12797638ac8
--- System Information --- --- System Information ---
@ -109,7 +101,7 @@ C:\Users\temp\Desktop\measurement_fw\DefaultBuild\multical.mot: 006906a6ae1bbda7
*.NET Framework Version *.NET Framework Version
Microsoft .NET Framework 4 [.NET 4.8 or later] (533325) Microsoft .NET Framework 4 [.NET 4.8 or later] (533325)
*WebView2 Version *WebView2 Version
148.0.3967.96 149.0.4022.52
--- Application Information --- --- Application Information ---
*Product Name *Product Name
@ -126,13 +118,13 @@ C:\Users\temp\Desktop\measurement_fw\DefaultBuild\multical.mot: 006906a6ae1bbda7
C:\Program Files (x86)\Renesas Electronics\CS+\CC C:\Program Files (x86)\Renesas Electronics\CS+\CC
*Memory Usage *Memory Usage
*Private Working Set *Private Working Set
381 MB 413 MB
*Number of GDI Objects *Number of GDI Objects
3079 2906
*Number of USER Objects *Number of USER Objects
1880 1892
*Opened Files *Opened Files
36 editors, 36 files, 214 KB 36 editors, 36 files, 208 KB
--- Build Tool Plug-in Information --- --- Build Tool Plug-in Information ---
RH850 Build tool CC-RH Plug-in RH850 Build tool CC-RH Plug-in

116
multical.temp.mtud

File diff suppressed because one or more lines are too long

161
owi.c

@ -2,12 +2,6 @@
#include "r_cg_wdt.h" #include "r_cg_wdt.h"
#include "delay.h" #include "delay.h"
#include <string.h> #include <string.h>
#include <stdio.h>
#include "uart.h"
#ifndef OWI_STRONG_DRIVE_HIGH_US
#define OWI_STRONG_DRIVE_HIGH_US 5u
#endif
/* 내부 상태 */ /* 내부 상태 */
static uint32_t bit_period_us = OWI_BIT_PERIOD_US; static uint32_t bit_period_us = OWI_BIT_PERIOD_US;
@ -55,29 +49,6 @@ static void OWI_Release(void)
OWI_PORT_PM |= (uint8_t)OWI_PIN_MASK; OWI_PORT_PM |= (uint8_t)OWI_PIN_MASK;
} }
static void GPIO_StrongDriveHighKick(uint32_t kick_us)
{
OWI_Release();
if (!GPIO_Read()) {
return;
}
OWI_PORT_POM &= (uint8_t)~OWI_PIN_MASK;
OWI_PORT_P |= (uint8_t)OWI_PIN_MASK;
OWI_PORT_PM &= (uint8_t)~OWI_PIN_MASK;
delay_us(kick_us);
OWI_PORT_POM |= (uint8_t)OWI_PIN_MASK;
OWI_Release();
}
void GPIO_ForceHighKick(void)
{
GPIO_StrongDriveHighKick(OWI_STRONG_DRIVE_HIGH_US);
}
static void OWI_DriveLow(void) static void OWI_DriveLow(void)
{ {
OWI_PORT_POM |= (uint8_t)OWI_PIN_MASK; OWI_PORT_POM |= (uint8_t)OWI_PIN_MASK;
@ -145,13 +116,6 @@ void OWI_Stop(void)
delay_us(TIDLE); delay_us(TIDLE);
} }
static void OWI_StopWrite(void)
{
OWI_Release();
delay_us(TSTOP_LOW);
delay_us(TIDLE);
}
static void OWI_StopRead(void) static void OWI_StopRead(void)
{ {
OWI_DriveLow(); OWI_DriveLow();
@ -160,29 +124,6 @@ static void OWI_StopRead(void)
delay_us(TIDLE); delay_us(TIDLE);
} }
static uint8_t OWI_WaitFirstBitStart(void)
{
int timeout;
timeout = (int)(bit_period_us * 4u);
/* 첫 번째 HIGH->LOW 시작을 기다림 */
while (GPIO_Read() && timeout-- > 0) {
delay_us(1u);
}
if (timeout <= 0) {
if (!g_owi_timeout_latched) {
g_owi_timeout_latched = 1;
g_owi_last_timeout_byte_index = 0u;
g_owi_last_timeout_bit_index = 0u;
}
return 0u;
}
return 1u;
}
static uint8_t OWI_WaitForFallingEdge(uint16_t byte_index, uint8_t bit_index) static uint8_t OWI_WaitForFallingEdge(uint16_t byte_index, uint8_t bit_index)
{ {
int timeout = (int)(bit_period_us * 4u); int timeout = (int)(bit_period_us * 4u);
@ -343,47 +284,6 @@ uint8_t OWI_ReadByte(void)
return data; return data;
} }
/* =========================================================
* Debug Print
* ========================================================= */
void OWI_T_ReadBytesAndPrint(int length)
{
uint8_t buf[129];
int i;
char uart_buf[8];
char tmp_buf[8];
uint8_t va0, va1;
if (length > 129) length = 129;
if (length <= 0) return;
OWI_ClearTimeout();
for (i = 0; i < length; i++) {
g_owi_current_read_byte_index = (uint16_t)i;
buf[i] = OWI_ReadByte();
if (OWI_HasTimeout()) {
i++;
break;
}
}
sprintf(uart_buf, "%02X ", buf[0]);
strcpy(tmp_buf, uart_buf);
HOST_PRINT(tmp_buf);
for (i = 1; i < length; i += 2) {
va0 = buf[i];
va1 = (uint8_t)((i + 1 < length) ? buf[i + 1] : 0u);
delay_us(200);
sprintf(uart_buf, "%02X%02X ", va0, va1);
strcpy(tmp_buf, uart_buf);
HOST_PRINT(tmp_buf);
delay_us(200);
}
}
/* ========================================================= /* =========================================================
* Raw helpers * Raw helpers
* ========================================================= */ * ========================================================= */
@ -525,64 +425,3 @@ void OWI_ReadBytesRaw(int length, uint8_t id, owi_io_result_t *r)
OWI_StopRead(); OWI_StopRead();
OWI_KickWdt(); OWI_KickWdt();
} }
void OWI_disable(void)
{
HOST_PRINT("51\r\n");
}
void OWI_T_CommandMode(const uint8_t *tx_data, uint8_t tx_len, uint8_t id)
{
owi_io_result_t r;
(void)r;
OWI_T_CommandModeRaw(tx_data, tx_len, id, &r);
HOST_PRINT("51\r\n");
}
void OWI_CommandMode(const uint8_t *tx_data, uint8_t tx_len, uint8_t id)
{
owi_io_result_t r;
(void)r;
OWI_CommandModeRaw(tx_data, tx_len, id, &r);
HOST_PRINT("51\r\n");
}
void OWI_ReadBytesAndPrint(int length, uint8_t id)
{
owi_io_result_t r;
char out[(2 * OWI_IO_MAX_BYTES) + 40];
int i;
uint16_t p = 0;
if (length <= 0) {
HOST_PRINT("Err:read_len_nonzero\r\n");
return;
}
OWI_ReadBytesRaw(length, id, &r);
if (r.read_len == 0) {
HOST_PRINT("Err:read_len_nonzero\r\n");
return;
}
for (i = 0; i < (int)r.read_len; i++) {
uint8_t b = r.data[i];
out[p++] = "0123456789ABCDEF"[b >> 4];
out[p++] = "0123456789ABCDEF"[b & 0x0F];
}
if (r.timeout) {
p += (uint16_t)sprintf(&out[p], " !TO(B%u b%u)",
(unsigned)r.timeout_byte_index,
(unsigned)r.timeout_bit_index);
}
out[p++] = '\r';
out[p++] = '\n';
out[p] = '\0';
HOST_PRINT(out);
}

12
owi.h

@ -54,23 +54,13 @@ void OWI_WriteByte(uint8_t data);
uint8_t OWI_ReadBit(void); uint8_t OWI_ReadBit(void);
uint8_t OWI_ReadByte(void); uint8_t OWI_ReadByte(void);
void OWI_T_ReadBytesAndPrint(int length);
void OWI_ReadBytesAndPrint(int length, uint8_t id);
void OWI_T_CommandMode(const uint8_t *tx_data, uint8_t tx_len, uint8_t id);
void OWI_CommandMode (const uint8_t *tx_data, uint8_t tx_len, uint8_t id);
void OWI_A_CommandMode(const uint8_t *tx_data, uint8_t tx_len, uint8_t id);
void OWI_T_CommandModeRaw(const uint8_t *tx_data, uint8_t tx_len, uint8_t id, owi_io_result_t *r); void OWI_T_CommandModeRaw(const uint8_t *tx_data, uint8_t tx_len, uint8_t id, owi_io_result_t *r);
void OWI_CommandModeRaw (const uint8_t *tx_data, uint8_t tx_len, uint8_t id, owi_io_result_t *r); void OWI_CommandModeRaw (const uint8_t *tx_data, uint8_t tx_len, uint8_t id, owi_io_result_t *r);
void OWI_ReadBytesRaw (int length, uint8_t id, owi_io_result_t *r); void OWI_ReadBytesRaw (int length, uint8_t id, owi_io_result_t *r);
void OWI_disable(void);
void GPIO_ForceHighKick(void);
uint8_t OWI_HasTimeout(void); uint8_t OWI_HasTimeout(void);
void OWI_ClearTimeout(void); void OWI_ClearTimeout(void);
uint16_t OWI_GetLastTimeoutByteIndex(void); uint16_t OWI_GetLastTimeoutByteIndex(void);
uint8_t OWI_GetLastTimeoutBitIndex(void); uint8_t OWI_GetLastTimeoutBitIndex(void);
#endif #endif

96
r_main.c

@ -238,27 +238,6 @@ static uint8_t gauge_wait_pin_state(volatile uint8_t *port, uint8_t mask, int st
return 0u; return 0u;
} }
static void debug_ck_edges(const gauge_pins_t *g)
{
char buf[64];
uint8_t prev, cur;
uint16_t edge_cnt = 0;
uint32_t i;
prev = gauge_read_pin(g->ck_p, g->ck_mask);
for (i = 0; i < 50000u; i++) { /* 50ms °üÂû */
cur = gauge_read_pin(g->ck_p, g->ck_mask);
if (cur != prev) {
edge_cnt++;
prev = cur;
}
delay_us(1u);
}
sprintf(buf, "CK_EDGE=%u\r\n", edge_cnt);
}
static uint8_t gauge_read_nibble(const gauge_pins_t *g, uint8_t *outNibble) static uint8_t gauge_read_nibble(const gauge_pins_t *g, uint8_t *outNibble)
{ {
uint8_t k = 0; uint8_t k = 0;
@ -315,20 +294,6 @@ static uint8_t gauge_is_valid_frame(const uint8_t *n)
return 1u; return 1u;
} }
static void debug_gauge_levels(const char *tag, const gauge_pins_t *g)
{
char buf[96];
int req, ck, data;
if (!g) return;
req = ((*(g->req_p)) & g->req_mask) ? 1 : 0;
ck = ((*(g->ck_p)) & g->ck_mask) ? 1 : 0;
data = ((*(g->data_p)) & g->data_mask) ? 1 : 0;
sprintf(buf, "%s REQ=%d CK=%d DATA=%d\r\n", tag, req, ck, data);
}
static uint8_t gauge_read_aligned_frame(const gauge_pins_t *g, gauge_state_t *s) static uint8_t gauge_read_aligned_frame(const gauge_pins_t *g, gauge_state_t *s)
{ {
int i; int i;
@ -338,11 +303,9 @@ static uint8_t gauge_read_aligned_frame(const gauge_pins_t *g, gauge_state_t *s)
gauge_req_stop(g); gauge_req_stop(g);
delay_ms(10u); delay_ms(10u);
debug_gauge_levels("BEFORE_START", g);
gauge_req_start(g); gauge_req_start(g);
delay_ms(20u); delay_ms(20u);
debug_gauge_levels("AFTER_START", g);
@ -578,21 +541,6 @@ static uint8_t gauge_read(const gauge_pins_t *g, gauge_state_t *s)
} }
static void gauge_print_value(const char *label, const gauge_state_t *s)
{
char buf[48];
if (!label || !s) return;
out_print(label);
if (s->valid) {
(void)sprintf(buf, "%.*f", s->decimal, s->value);
} else {
out_print("ERR");
}
}
static void gauge_format_value(char *dst, int dst_sz, const char *label, const gauge_state_t *s) static void gauge_format_value(char *dst, int dst_sz, const char *label, const gauge_state_t *s)
{ {
(void)dst_sz; (void)dst_sz;
@ -727,12 +675,6 @@ static void print_owi_read_result(const app_owi_result_t *r, uint8_t reset_ch)
reset_channel_gate_defaults(reset_ch); reset_channel_gate_defaults(reset_ch);
} }
static void print_connect_sweep_result(uint8_t ch, uint8_t ok)
{
char buf[32];
(void)sprintf(buf, "ch%u: %s\r\n", (unsigned)ch, ok ? "Success" : "Fail");
}
static void runtime_reset(void) static void runtime_reset(void)
{ {
memset(&g_runtime, 0, sizeof(g_runtime)); memset(&g_runtime, 0, sizeof(g_runtime));
@ -820,12 +762,6 @@ static uint8_t copy_nvm_tail8(const app_owi_result_t *r, uint8_t *tail8)
return 1u; return 1u;
} }
static uint8_t tails_match_8(const uint8_t *a, const uint8_t *b)
{
if (!a || !b) return 0u;
return (uint8_t)(memcmp(a, b, 8u) == 0);
}
static void tail8_to_hex16(const uint8_t *tail8, char *out_hex) static void tail8_to_hex16(const uint8_t *tail8, char *out_hex)
{ {
uint8_t i; uint8_t i;
@ -871,9 +807,7 @@ static uint8_t read_connected_nvm_last16(uint8_t ch,
static const uint8_t expect_7272[2] = { 0x72u, 0x72u }; static const uint8_t expect_7272[2] = { 0x72u, 0x72u };
static const uint8_t expect_7c[3] = { 0x7Cu, 0x78u, 0x01u }; static const uint8_t expect_7c[3] = { 0x7Cu, 0x78u, 0x01u };
uint8_t cmd_7c = 0x7Cu; uint8_t cmd_7c = 0x7Cu;
uint8_t tail1[8]; uint8_t tail8[8];
uint8_t tail2[8];
uint8_t tail3[8];
if (!out_hex) return 0u; if (!out_hex) return 0u;
if (ch < 1u || ch > 20u) return 0u; if (ch < 1u || ch > 20u) return 0u;
@ -898,27 +832,10 @@ static uint8_t read_connected_nvm_last16(uint8_t ch,
if (!r_read3.ok || r_read3.timeout || r_read3.read_len < 3u) return 0u; if (!r_read3.ok || r_read3.timeout || r_read3.read_len < 3u) return 0u;
if (memcmp(r_read3.data, expect_7c, 3u) != 0) return 0u; if (memcmp(r_read3.data, expect_7c, 3u) != 0) return 0u;
if (!read_connected_nvm_tail8(tail1)) return 0u; if (!read_connected_nvm_tail8(tail8)) return 0u;
if (!read_connected_nvm_tail8(tail2)) return 0u;
if (tails_match_8(tail1, tail2)) { tail8_to_hex16(tail8, out_hex);
tail8_to_hex16(tail1, out_hex); return 1u;
return 1u;
}
if (!read_connected_nvm_tail8(tail3)) return 0u;
if (tails_match_8(tail1, tail3)) {
tail8_to_hex16(tail1, out_hex);
return 1u;
}
if (tails_match_8(tail2, tail3)) {
tail8_to_hex16(tail2, out_hex);
return 1u;
}
return 0u;
} }
static int run_connect_verify_one_channel(const app_job_t *job, uint8_t ch) static int run_connect_verify_one_channel(const app_job_t *job, uint8_t ch)
{ {
@ -1019,7 +936,6 @@ static int execute_connect_verify_sequence(const app_job_t *job)
for (ch = 1u; ch <= 20u; ch++) { for (ch = 1u; ch <= 20u; ch++) {
uint8_t ok = (uint8_t)run_connect_verify_one_channel(job, ch); uint8_t ok = (uint8_t)run_connect_verify_one_channel(job, ch);
if (ok) { if (ok) {
print_connect_sweep_result(ch, 1u);
success_count++; success_count++;
} }
} }
@ -1083,14 +999,14 @@ static int execute_direct_read_sequence(const app_job_t *job)
job->anaout_on, job->anaout_on,
job->check_on, job->check_on,
nvm_hex)) { nvm_hex)) {
(void)sprintf(out, "%s\r\n<end>\r\n", nvm_hex); (void)sprintf(out, "%s\r\n", nvm_hex);
out_print(out); out_print(out);
} else { } else {
out_print("Fail\r\n"); out_print("Fail\r\n");
} }
reset_channel_gate_defaults(job->channel); reset_channel_gate_defaults(job->channel);
send_end_response();
return 1; return 1;
read_len = 23u;
} else { } else {
return 0; return 0;
} }

Loading…
Cancel
Save