Browse Source

Long byte stability

old-version
gudae 1 month ago
parent
commit
3800ba2a4a
  1. BIN
      DefaultBuild/app_owi_service.obj
  2. BIN
      DefaultBuild/multical.abs
  3. 452
      DefaultBuild/multical.map
  4. 3024
      DefaultBuild/multical.mot
  5. BIN
      DefaultBuild/owi.obj
  6. BIN
      DefaultBuild/r_main.obj
  7. 14
      QualityReport(multical,DefaultBuild).txt
  8. 61
      app_owi_service.c
  9. 1
      multical.mtpj
  10. 96
      multical.temp.mtud
  11. 6
      r_main.c

BIN
DefaultBuild/app_owi_service.obj

Binary file not shown.

BIN
DefaultBuild/multical.abs

Binary file not shown.

452
DefaultBuild/multical.map

@ -1,4 +1,4 @@
Renesas Optimizing Linker (W3.07.00 ) 18-Mar-2026 13:43:41
Renesas Optimizing Linker (W3.07.00 ) 19-Mar-2026 14:53:16
*** Options ***
@ -72,9 +72,9 @@ SECTION START END SIZE ALIGN
.const
00003000 00003625 626 2
.textf
00003626 00007197 3b72 1
00003626 00007204 3bdf 1
.SLIB
00007198 00009aa0 2909 1
00007205 00009b0d 2909 1
.monitor2
0003fe00 0003ffff 200 1
.bss
@ -90,7 +90,7 @@ SECTION START END SIZE ALIGN
RAMDATA SECTION: 00003bf9 Byte(s)
ROMDATA SECTION: 00001113 Byte(s)
PROGRAM SECTION: 00006630 Byte(s)
PROGRAM SECTION: 0000669d Byte(s)
*** Symbol List ***
@ -192,7 +192,7 @@ FILE=DefaultBuild\stkinit.obj
LSTINIT3
00003669 0 none ,l *
FILE=DefaultBuild\r_main.obj
0000366a 00005596 1f2d
0000366a 000055ab 1f42
_RS485_Bridge_Push
0000366a 2b func ,g *
_RS485_Bridge_ResetFifo@1
@ -250,439 +250,443 @@ FILE=DefaultBuild\r_main.obj
_print_owi_read_result@1
00003ed4 d5 func ,l *
_run_connect_verify_one_channel@1
00003fa9 193 func ,l *
00003fa9 1a8 func ,l *
_print_connect_sweep_result@1
0000413c 52 func ,l *
00004151 52 func ,l *
_execute_connect_verify_sequence@1
0000418e 9f func ,l *
000041a3 9f func ,l *
_execute_direct_read_sequence@1
0000422d 17d func ,l *
00004242 17d func ,l *
_execute_write_coeff_sequence@1
000043aa 1f6 func ,l *
000043bf 1f6 func ,l *
_execute_shadow_write_copy_nvm_sequence@1
000045a0 59a func ,l *
000045b5 59a func ,l *
_execute_owi_service_from_job@1
00004b3a 11e func ,l *
00004b4f 11e func ,l *
_forward_line_rs485_and_bridge@1
00004c58 208 func ,l *
00004c6d 208 func ,l *
_process_cmd@1
00004e60 6d func ,l *
00004e75 6d func ,l *
_process_cmd_by_prefix@1
00004ecd 11 func ,l *
00004ee2 11 func ,l *
_process_one_line_now@1
00004ede 43b func ,l *
00004ef3 43b func ,l *
_process_one_line@1
00005319 98 func ,l *
0000532e 98 func ,l *
_app_runtime_try_start@1
000053b1 1a func ,l *
000053c6 1a func ,l *
_app_job_tick@1
000053cb cb func ,l *
000053e0 cb func ,l *
_handle_uart_command_line
00005496 7b func ,g *
000054ab 7b func ,g *
_main
00005511 6f func ,g *
00005526 6f func ,g *
_R_MAIN_UserInit
00005580 17 func ,g *
00005595 17 func ,g *
FILE=DefaultBuild\r_systeminit.obj
00005597 000055d7 41
000055ac 000055ec 41
_R_Systeminit
00005597 3a func ,g *
000055ac 3a func ,g *
_hdwinit
000055d1 7 func ,g *
000055e6 7 func ,g *
FILE=DefaultBuild\r_cg_cgc.obj
000055d8 00005601 2a
000055ed 00005616 2a
_R_CGC_Create
000055d8 2a func ,g *
000055ed 2a func ,g *
FILE=DefaultBuild\r_cg_cgc_user.obj
00005602 00005604 3
00005617 00005619 3
_R_CGC_Get_ResetSource
00005602 3 func ,g *
00005617 3 func ,g *
FILE=DefaultBuild\r_cg_serial.obj
00005605 000058e8 2e4
0000561a 000058fd 2e4
_R_SAU0_Create
00005605 10 func ,g *
0000561a 10 func ,g *
_R_UART0_Create
00005615 6e func ,g *
0000562a 6e func ,g *
_R_UART0_Start
00005683 26 func ,g *
00005698 26 func ,g *
_R_UART0_Stop
000056a9 1e func ,g *
000056be 1e func ,g *
_R_UART0_Receive
000056c7 18 func ,g *
000056dc 18 func ,g *
_R_UART0_Send
000056df 26 func ,g *
000056f4 26 func ,g *
_R_SAU1_Create
00005705 10 func ,g *
0000571a 10 func ,g *
_R_UART1_Create
00005715 6e func ,g *
0000572a 6e func ,g *
_R_UART1_Start
00005783 26 func ,g *
00005798 26 func ,g *
_R_UART1_Stop
000057a9 1e func ,g *
000057be 1e func ,g *
_R_UART1_Receive
000057c7 18 func ,g *
000057dc 18 func ,g *
_R_UART1_Send
000057df 26 func ,g *
000057f4 26 func ,g *
_R_IICA0_Create
00005805 50 func ,g *
0000581a 50 func ,g *
_R_IICA0_Stop
00005855 5 func ,g *
0000586a 5 func ,g *
_R_IICA0_StopCondition
0000585a 5 func ,g *
0000586f 5 func ,g *
_R_IICA0_Master_Send
0000585f 43 func ,g *
00005874 43 func ,g *
_R_IICA0_Master_Receive
000058a2 47 func ,g *
000058b7 47 func ,g *
FILE=DefaultBuild\r_cg_serial_user.obj
000058e9 00005a8b 1a3
000058fe 00005aa0 1a3
_r_uart0_callback_receiveend@1
000058e9 5e func ,l *
000058fe 5e func ,l *
_r_uart0_callback_softwareoverrun@1
00005947 1 func ,l *
0000595c 1 func ,l *
_r_uart0_callback_sendend@1
00005948 9 func ,l *
0000595d 9 func ,l *
_r_uart0_callback_error@1
00005951 5c func ,l *
00005966 5c func ,l *
_r_uart1_callback_receiveend@1
000059ad 31 func ,l *
000059c2 31 func ,l *
_r_uart1_callback_softwareoverrun@1
000059de 1 func ,l *
000059f3 1 func ,l *
_r_uart1_callback_sendend@1
000059df 4 func ,l *
000059f4 4 func ,l *
_r_uart1_callback_error@1
000059e3 1 func ,l *
000059f8 1 func ,l *
_iica0_masterhandler@1
000059e4 91 func ,l *
000059f9 91 func ,l *
_r_iica0_callback_master_error@1
00005a75 7 func ,l *
00005a8a 7 func ,l *
_r_iica0_callback_master_receiveend@1
00005a7c 8 func ,l *
00005a91 8 func ,l *
_r_iica0_callback_master_sendend@1
00005a84 8 func ,l *
00005a99 8 func ,l *
FILE=DefaultBuild\r_cg_port.obj
00005a8c 00005ae4 59
00005aa1 00005af9 59
_R_PORT_Create
00005a8c 59 func ,g *
00005aa1 59 func ,g *
FILE=DefaultBuild\owi.obj
00005ae5 0000627e 79a
00005afa 00006293 79a
_GPIO_Clear
00005ae5 12 func ,g *
00005afa 12 func ,g *
_GPIO_Input
00005af7 11 func ,g *
00005b0c 11 func ,g *
_GPIO_Read
00005b08 9 func ,g *
00005b1d 9 func ,g *
_OWI_Release@1
00005b11 11 func ,l *
00005b26 11 func ,l *
_GPIO_StrongDriveHighKick@1
00005b22 32 func ,l *
00005b37 32 func ,l *
_GPIO_ForceHighKick
00005b54 8 func ,g *
00005b69 8 func ,g *
_OWI_DriveLow@1
00005b5c 12 func ,l *
00005b71 12 func ,l *
_OWI_HasTimeout
00005b6e 4 func ,g *
00005b83 4 func ,g *
_OWI_ClearTimeout
00005b72 e func ,g *
00005b87 e func ,g *
_OWI_GetLastTimeoutByteIndex
00005b80 4 func ,g *
00005b95 4 func ,g *
_OWI_GetLastTimeoutBitIndex
00005b84 4 func ,g *
00005b99 4 func ,g *
_OWI_Init
00005b88 1b func ,g *
00005b9d 1b func ,g *
_OWI_Start
00005ba3 17 func ,g *
00005bb8 17 func ,g *
_OWI_Stop
00005bba 14 func ,g *
00005bcf 14 func ,g *
_OWI_StopRead@1
00005bce 17 func ,l *
00005be3 17 func ,l *
_OWI_WaitForFallingEdge@1
00005be5 4b func ,l *
00005bfa 4b func ,l *
_OWI_ReadByte_StreamSynced@1
00005c30 73 func ,l *
00005c45 73 func ,l *
_OWI_SecureStop
00005ca3 51 func ,g *
00005cb8 51 func ,g *
_OWI_WriteBit
00005cf4 37 func ,g *
00005d09 37 func ,g *
_OWI_WriteByte
00005d2b 2a func ,g *
00005d40 2a func ,g *
_OWI_ReadBit
00005d55 af func ,g *
00005d6a af func ,g *
_OWI_ReadByte
00005e04 48 func ,g *
00005e19 48 func ,g *
_OWI_T_ReadBytesAndPrint
00005e4c 130 func ,g *
00005e61 130 func ,g *
_owi_result_init@1
00005f7c 21 func ,l *
00005f91 21 func ,l *
_owi_result_latch_timeout@1
00005f9d 29 func ,l *
00005fb2 29 func ,l *
_OWI_T_CommandModeRaw
00005fc6 4d func ,g *
00005fdb 4d func ,g *
_OWI_CommandModeRaw
00006013 4d func ,g *
00006028 4d func ,g *
_OWI_ReadBytesRaw
00006060 bc func ,g *
00006075 bc func ,g *
_OWI_disable
0000611c 15 func ,g *
00006131 15 func ,g *
_OWI_T_CommandMode
00006131 26 func ,g *
00006146 26 func ,g *
_OWI_CommandMode
00006157 26 func ,g *
0000616c 26 func ,g *
_OWI_ReadBytesAndPrint
0000617d 102 func ,g *
00006192 102 func ,g *
FILE=DefaultBuild\i2c.obj
0000627f 000063ff 181
00006294 00006414 181
_disable
0000627f 26 func ,g *
00006294 26 func ,g *
_I2C_EnablePower
000062a5 4 func ,g *
000062ba 4 func ,g *
_I2C_DisablePower
000062a9 3 func ,g *
000062be 3 func ,g *
_I2C_T_Command_Mode_receiveData
000062ac 4d func ,g *
000062c1 4d func ,g *
_I2C_Command_Mode_receiveData
000062f9 3e func ,g *
0000630e 3e func ,g *
_I2C_Command_Mode_Send
00006337 c9 func ,g *
0000634c c9 func ,g *
FILE=DefaultBuild\uart.obj
00006400 00006601 202
00006415 00006616 202
_rs485_recover
00006400 56 func ,g *
00006415 56 func ,g *
_UART1_WaitTxIdle@1
00006456 2c func ,l *
0000646b 2c func ,l *
_rs485_set_tx
00006482 b func ,g *
00006497 b func ,g *
_rs485_init
0000648d c func ,g *
000064a2 c func ,g *
_UART0_WaitTxDone_Us
00006499 2f func ,g *
000064ae 2f func ,g *
_RS485_Send
000064c8 4a func ,g *
000064dd 4a func ,g *
_RS485_SendString
00006512 11 func ,g *
00006527 11 func ,g *
_uart_send_string
00006523 11 func ,g *
00006538 11 func ,g *
_uart1_send_string
00006534 40 func ,g *
00006549 40 func ,g *
_uart_send_hex
00006574 43 func ,g *
00006589 43 func ,g *
_uart1_send_hex
000065b7 4b func ,g *
000065cc 4b func ,g *
FILE=DefaultBuild\delay.obj
00006602 000066c0 bf
00006617 000066d5 bf
_delay
00006602 18 func ,g *
00006617 18 func ,g *
_delay_us
0000661a 82 func ,g *
0000662f 82 func ,g *
_delay_ms
0000669c 25 func ,g *
000066b1 25 func ,g *
FILE=DefaultBuild\dipSwitch.obj
000066c1 000066d1 11
000066d6 000066e6 11
_DipSwitch_Init
000066c1 8 func ,g *
000066d6 8 func ,g *
_DipSwitch_ReadAddr_0to31
000066c9 9 func ,g *
000066de 9 func ,g *
FILE=DefaultBuild\gatectrl.obj
000066d2 00006a95 3c4
000066e7 00006aaa 3c4
_Gate_SetByNum
000066d2 372 func ,g *
000066e7 372 func ,g *
_Cal_Init
00006a44 21 func ,g *
00006a59 21 func ,g *
_Eol_Init
00006a65 21 func ,g *
00006a7a 21 func ,g *
_GateCtrl_SelectChannel
00006a86 10 func ,g *
00006a9b 10 func ,g *
FILE=DefaultBuild\app_result.obj
00006a96 00006a9f a
00006aab 00006ab4 a
_app_result_print_ok
00006a96 5 func ,g *
00006aab 5 func ,g *
_app_result_print_err
00006a9b 5 func ,g *
00006ab0 5 func ,g *
FILE=DefaultBuild\app_cmd_parser.obj
00006aa0 00006f11 472
00006ab5 00006f26 472
_parse_x_v_addr@1
00006aa0 62 func ,l *
00006ab5 62 func ,l *
_find_payload_pos@1
00006b02 1b func ,l *
00006b17 1b func ,l *
_hex_nibble@1
00006b1d 31 func ,l *
00006b32 31 func ,l *
_hex_pair_to_u8@1
00006b4e 2f func ,l *
00006b63 2f func ,l *
_app_cmd_parse_line
00006b7d 395 func ,g *
00006b92 395 func ,g *
FILE=DefaultBuild\app_scheduler.obj
00006f12 00006fad 9c
00006f27 00006fc2 9c
_app_scheduler_init
00006f12 15 func ,g *
00006f27 15 func ,g *
_app_scheduler_push
00006f27 38 func ,g *
00006f3c 38 func ,g *
_app_scheduler_pop
00006f5f 31 func ,g *
00006f74 31 func ,g *
_app_scheduler_is_empty
00006f90 9 func ,g *
00006fa5 9 func ,g *
_app_scheduler_clear
00006f99 15 func ,g *
00006fae 15 func ,g *
FILE=DefaultBuild\app_owi_service.obj
00006fae 00007197 1ea
00006fc3 00007204 242
_app_owi_from_raw@1
00006fae 86 func ,l *
00006fc3 86 func ,l *
_is_long_owi_read@1
00007034 15 func ,l *
00007049 15 func ,l *
_looks_bad_tail@1
00007049 5c func ,l *
0000705e 5c func ,l *
_looks_bad_last_bytes@1
000070ba 48 func ,l *
_needs_retry_for_long_read@1
00007102 3a func ,l *
_app_owi_read_basic
000070a5 99 func ,g *
0000713c 6f func ,g *
_app_owi_write_basic
0000713e 2d func ,g *
000071ab 2d func ,g *
_app_owi_write_t_basic
0000716b 2d func ,g *
000071d8 2d func ,g *
SECTION=.SLIB
FILE=isdigit
00007198 000071a1 a
00007205 0000720e a
_isdigit
00007198 0 none ,g *
00007205 0 none ,g *
FILE=memcmp
000071a2 000071b3 12
0000720f 00007220 12
_memcmp
000071a2 0 none ,g *
0000720f 0 none ,g *
FILE=memcpy
000071b4 000071c3 10
00007221 00007230 10
_memcpy
000071b4 0 none ,g *
00007221 0 none ,g *
FILE=memset
000071c4 000071d1 e
00007231 0000723e e
_memset
000071c4 0 none ,g *
00007231 0 none ,g *
FILE=sprintf
000071d2 000072ca f9
0000723f 00007337 f9
_sprintf
000071d2 e1 func ,g *
0000723f e1 func ,g *
__REL_sp@1
000072b3 18 func ,l *
00007320 18 func ,l *
FILE=strchr
000072cb 000072d8 e
00007338 00007345 e
_strchr
000072cb 0 none ,g *
00007338 0 none ,g *
FILE=strcpy
000072d9 000072e5 d
00007346 00007352 d
_strcpy
000072d9 0 none ,g *
00007346 0 none ,g *
FILE=strlen
000072e6 000072f0 b
00007353 0000735d b
_strlen
000072e6 0 none ,g *
00007353 0 none ,g *
FILE=strncpy
000072f1 00007304 14
0000735e 00007371 14
_strncpy
000072f1 0 none ,g *
0000735e 0 none ,g *
FILE=strstr
00007305 00007323 1f
00007372 00007390 1f
_strstr
00007305 0 none ,g *
00007372 0 none ,g *
FILE=toupper
00007324 00007331 e
00007391 0000739e e
_toupper
00007324 0 none ,g *
00007391 0 none ,g *
FILE=_REL_print
00007332 00009289 1f58
0000739f 000092f6 1f58
__REL_print
00007332 1046 func ,g *
0000739f 1046 func ,g *
__REL_fltprn@1
00008378 941 func ,l *
000083e5 941 func ,l *
__REL_henkan1@1
00008cb9 28 func ,l *
00008d26 28 func ,l *
__REL_henkan2@1
00008ce1 33 func ,l *
00008d4e 33 func ,l *
__REL_pri@1
00008d14 298 func ,l *
00008d81 298 func ,l *
__REL_fltgeti@1
00008fac 19d func ,l *
00009019 19d func ,l *
__REL_inmod@1
00009149 141 func ,l *
000091b6 141 func ,l *
FILE=_COM_fdiv
0000928a 000093b7 12e
000092f7 00009424 12e
__COM_fdiv
000092e9 0 none ,g *
00009356 0 none ,g *
FILE=_COM_feq
000093b8 000093cd 16
00009425 0000943a 16
__COM_feq
000093b8 0 none ,g *
00009425 0 none ,g *
FILE=_COM_fge
000093ce 000093e3 16
0000943b 00009450 16
__COM_fge
000093ce 0 none ,g *
0000943b 0 none ,g *
FILE=_COM_flt
000093e4 000093f9 16
00009451 00009466 16
__COM_flt
000093e4 0 none ,g *
00009451 0 none ,g *
FILE=_COM_fmul
000093fa 000094e6 ed
00009467 00009553 ed
__COM_fmul
00009445 0 none ,g *
000094b2 0 none ,g *
FILE=_COM_fne
000094e7 000094f7 11
00009554 00009564 11
__COM_fne
000094e7 0 none ,g *
00009554 0 none ,g *
FILE=_COM_ftosl
000094f8 000094ff 8
00009565 0000956c 8
__COM_ftosl
000094f8 0 none ,g *
00009565 0 none ,g *
FILE=_COM_sidiv
00009500 00009521 22
0000956d 0000958e 22
__COM_sidiv
00009502 0 none ,g *
0000956f 0 none ,g *
FILE=_COM_sirem
00009522 00009541 20
0000958f 000095ae 20
__COM_sirem
00009522 0 none ,g *
0000958f 0 none ,g *
FILE=_COM_ulldiv
00009542 0000956b 2a
000095af 000095d8 2a
__COM_ulldiv
00009542 0 none ,g *
000095af 0 none ,g *
FILE=_COM_ullrem
0000956c 0000959c 31
000095d9 00009609 31
__COM_ullrem
0000956c 0 none ,g *
000095d9 0 none ,g *
FILE=_REL_f_inf
0000959d 000095a4 8
0000960a 00009611 8
__REL_f_inf
0000959d 0 none ,g *
0000960a 0 none ,g *
FILE=_REL_f_norm
000095a5 000095b4 10
00009612 00009621 10
__REL_f_norm
000095a5 0 none ,g *
00009612 0 none ,g *
FILE=_REL_f_round
000095b5 000095c7 13
00009622 00009634 13
__REL_f_round
000095b5 0 none ,g *
00009622 0 none ,g *
FILE=_REL_fcmp
000095c8 000095ff 38
00009635 0000966c 38
__REL_fcmp
000095c8 0 none ,g *
00009635 0 none ,g *
FILE=_REL_fordered_core
00009600 0000961b 1c
0000966d 00009688 1c
__REL_fordered_core
00009600 0 none ,g *
0000966d 0 none ,g *
FILE=_REL_ftol
0000961c 00009650 35
00009689 000096bd 35
__REL_ftol
0000961c 0 none ,g *
00009689 0 none ,g *
FILE=_REL_lldiv
00009651 00009856 206
000096be 000098c3 206
__REL_lldiv
0000966d 0 none ,g *
000096da 0 none ,g *
FILE=_REL_llrem
00009857 00009a5a 204
000098c4 00009ac7 204
__REL_llrem
00009874 0 none ,g *
000098e1 0 none ,g *
FILE=_REL_ltosl
00009a5b 00009a7f 25
00009ac8 00009aec 25
__REL_ltosl
00009a5b 0 none ,g *
00009ac8 0 none ,g *
FILE=_COM_lshr
00009a80 00009aa0 21
00009aed 00009b0d 21
__COM_lshr
00009a8a 0 none ,g *
00009af7 0 none ,g *
SECTION=.monitor2
FILE=rlink_generates_02
@ -862,7 +866,7 @@ FILE=rlink_generates_05
__s.textf
00003626 0 none ,g *
__e.textf
00007198 0 none ,g *
00007205 0 none ,g *
__s.const
00003000 0 none ,g *
__e.const
@ -904,9 +908,9 @@ FILE=rlink_generates_05
__e.RLIB
000000c4 0 none ,g *
__s.SLIB
00007198 0 none ,g *
00007205 0 none ,g *
__e.SLIB
00009aa1 0 none ,g *
00009b0e 0 none ,g *
__s.option_byte
000000c0 0 none ,g *
__e.option_byte

3024
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.

14
QualityReport(multical,DefaultBuild).txt

@ -1,13 +1,13 @@
QualityReport
2026년 3월 18일 수요일 오후 2:04:39
2026년 3월 19일 목요일 오후 2:53:53
------ Start build(multical, DefaultBuild) ------
------ Build ended(Error:0, Warning:0)(multical, DefaultBuild) ------
--- SHA1 hash value of output files ---
C:\Users\temp\Desktop\new_fw\DefaultBuild\multical.abs: a1f673f43efd9df3d36b8b83716e9d0420974ff2
C:\Users\temp\Desktop\new_fw\DefaultBuild\multical.mot: f708d9433ec20c9933cc70dcdfe65f331310e129
C:\Users\temp\Desktop\new_fw\DefaultBuild\multical.abs: 7173ccbedf8682368cd521d6b08405bda2ce75d1
C:\Users\temp\Desktop\new_fw\DefaultBuild\multical.mot: 774fc35f6ee30a410742fb9777e07e0855336967
--- System Information ---
@ -35,13 +35,13 @@ C:\Users\temp\Desktop\new_fw\DefaultBuild\multical.mot: f708d9433ec20c9933cc70dc
C:\Program Files (x86)\Renesas Electronics\CS+\CC
*Memory Usage
*Private Working Set
320 MB
339 MB
*Number of GDI Objects
2739
2802
*Number of USER Objects
1526
1570
*Opened Files
33 editors, 33 files, 239 KB
33 editors, 33 files, 240 KB
--- Build Tool Plug-in Information ---
RH850 Build tool CC-RH Plug-in

61
app_owi_service.c

@ -51,7 +51,7 @@ static uint8_t looks_bad_tail(const owi_io_result_t *io)
if (b == 0xFFu) ff_run++;
else ff_run = 0;
/* 진짜 이상한 경우만 */
/* tail ?? 8??? ?? ?? 00/FF? ??? */
if (zero_run >= 8u || ff_run >= 8u) {
return 1u;
}
@ -60,24 +60,59 @@ static uint8_t looks_bad_tail(const owi_io_result_t *io)
return 0u;
}
/* ? ? ?? 4???? ?? 00 ?? ?? FF? ????? ?? */
static uint8_t looks_bad_last_bytes(const owi_io_result_t *io)
{
uint16_t start;
uint8_t i;
uint8_t all_zero = 1u;
uint8_t all_ff = 1u;
if (!io) return 1u;
if (io->read_len < 6u) return 1u;
start = (uint16_t)(io->read_len - 6u);
for (i = 0; i < 6u; i++) {
uint8_t b = io->data[start + i];
if (b != 0x00u) all_zero = 0u;
if (b != 0xFFu) all_ff = 0u;
}
return (uint8_t)(all_zero || all_ff);
}
static uint8_t needs_retry_for_long_read(const owi_io_result_t *io, int length)
{
if (!is_long_owi_read(length)) return 0u;
if (!io) return 1u;
if (!io->ok) return 1u;
if (io->timeout) return 1u;
if (io->read_len < (uint16_t)length) return 1u;
if (looks_bad_tail(io)) return 1u;
if (looks_bad_last_bytes(io)) return 1u;
return 0u;
}
app_owi_result_t app_owi_read_basic(uint8_t id, int length)
{
owi_io_result_t io;
OWI_ReadBytesRaw(length, id, &io);
if (is_long_owi_read(length)) {
if (!io.ok || io.timeout || io.read_len < (uint16_t)length || looks_bad_tail(&io)) {
delay_us(3000u);
OWI_ReadBytesRaw(length, id, &io);
/* 재시도 후에도 bad면 실패 처리 */
if (!io.ok || io.timeout || io.read_len < (uint16_t)length || looks_bad_tail(&io)) {
io.ok = 0u;
io.timeout = 1u;
io.timeout_byte_index = 0xFFFEu;
io.timeout_bit_index = 0xFEu;
}
if (needs_retry_for_long_read(&io, length)) {
delay_us(3000u);
OWI_ReadBytesRaw(length, id, &io);
/* ??? ??? ???? ?? ?? */
if (needs_retry_for_long_read(&io, length)) {
io.ok = 0u;
io.timeout = 1u;
io.timeout_byte_index = 0xFFFEu;
io.timeout_bit_index = 0xFEu;
}
}

1
multical.mtpj

@ -2061,6 +2061,7 @@ C:\Program Files (x86)\Renesas Electronics\CS+\CC\FAA\V1.05.00
<DebuggerProperty-HookProperty-HookTransaction-Broke-Length>0</DebuggerProperty-HookProperty-HookTransaction-Broke-Length>
<DebuggerProperty-HookProperty-HookTransaction-Connected-Length>0</DebuggerProperty-HookProperty-HookTransaction-Connected-Length>
<DebuggerProperty-HookProperty-HookTransaction-Disconnecting-Length>0</DebuggerProperty-HookProperty-HookTransaction-Disconnecting-Length>
<DebuggerProperty-EssentialProperty-EmulatorConnect-SerialNumber />
</Instance>
</Class>
<Class Guid="9f7af90c-526c-4f28-af29-524df208b9e0">

96
multical.temp.mtud

File diff suppressed because one or more lines are too long

6
r_main.c

@ -761,6 +761,8 @@ static int run_connect_verify_one_channel(const app_job_t *job, uint8_t ch)
uint8_t cmd_7c = 0x7C;
uint8_t attempt;
char dbg[32];
if (!job) return 0;
if (ch < 1 || ch > 20) return 0;
@ -798,6 +800,10 @@ static int run_connect_verify_one_channel(const app_job_t *job, uint8_t ch)
continue;
}
if (r_read2.data[0] != 0x72u || r_read2.data[1] != 0x72u) {
continue;
}
/* 3) OWT 28 001 + 7C */
r_write3 = app_owi_write_t_basic(0x28u, &cmd_7c, 1);
if (!r_write3.ok || r_write3.timeout) {

Loading…
Cancel
Save