user: 请从给定的汇编指令推导出C源代码:

```asm
<link_pid>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x8,%rsp
  movsd  D2266(%rip),%xmm0
  lea    D1298(%rip),%rdi
  call   <set_hal_pin@plt>
  mov    D2144(%rip),%rax
  movq   %rax,%xmm0
  lea    D957(%rip),%rdi
  call   <set_hal_pin@plt>
  mov    D2144(%rip),%rax
  movq   %rax,%xmm0
  lea    D934(%rip),%rdi
  call   <set_hal_pin@plt>
  mov    D2005(%rip),%rax
  movq   %rax,%xmm0
  lea    D1187(%rip),%rdi
  call   <set_hal_pin@plt>
  mov    D2005(%rip),%rax
  movq   %rax,%xmm0
  lea    D529(%rip),%rdi
  call   <set_hal_pin@plt>
  movsd  D2261(%rip),%xmm0
  lea    D1782(%rip),%rdi
  call   <set_hal_pin@plt>
  movsd  D2766(%rip),%xmm0
  lea    D39(%rip),%rdi
  call   <set_hal_pin@plt>
  movsd  D1325(%rip),%xmm0
  lea    D2071(%rip),%rdi
  call   <set_hal_pin@plt>
  movsd  D2015(%rip),%xmm0
  lea    D1865(%rip),%rdi
  call   <set_hal_pin@plt>
  movsd  D2527(%rip),%xmm0
  lea    D1519(%rip),%rdi
  call   <set_hal_pin@plt>
  movsd  D1262(%rip),%xmm0
  lea    D1516(%rip),%rdi
  call   <set_hal_pin@plt>
  movsd  D1921(%rip),%xmm0
  lea    D1043(%rip),%rdi
  call   <set_hal_pin@plt>
  movsd  D502(%rip),%xmm0
  lea    D2049(%rip),%rdi
  call   <set_hal_pin@plt>
  movsd  D570(%rip),%xmm0
  lea    D1300(%rip),%rdi
  call   <set_hal_pin@plt>
  mov    D2407(%rip),%rax
  movq   %rax,%xmm0
  lea    D1772(%rip),%rdi
  call   <set_hal_pin@plt>
  mov    D2407(%rip),%rax
  movq   %rax,%xmm0
  lea    D2691(%rip),%rdi
  call   <set_hal_pin@plt>
  lea    D2285(%rip),%rsi
  lea    D2176(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D414(%rip),%r12
  mov    %r12,%rsi
  lea    D2504(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1395(%rip),%rsi
  lea    D606(%rip),%r15
  mov    %r15,%rdi
  call   <link_hal_pins@plt>
  lea    D48(%rip),%rsi
  lea    D407(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1995(%rip),%rsi
  lea    D2400(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2785(%rip),%rsi
  lea    D1638(%rip),%rbx
  mov    %rbx,%rdi
  call   <link_hal_pins@plt>
  lea    D2807(%rip),%rsi
  lea    D802(%rip),%rdi
  call   <link_hal_pins@plt>
  movsd  D2501(%rip),%xmm0
  lea    D15(%rip),%rdi
  call   <set_hal_pin@plt>
  lea    D1694(%rip),%rsi
  mov    %r12,%rdi
  call   <link_hal_pins@plt>
  lea    D283(%rip),%rsi
  lea    D2807(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D612(%rip),%rsi
  lea    D1597(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D779(%rip),%rsi
  lea    D2003(%rip),%r13
  mov    %r13,%rdi
  call   <link_hal_pins@plt>
  lea    D1169(%rip),%rsi
  mov    %rbx,%rdi
  call   <link_hal_pins@plt>
  lea    D431(%rip),%rsi
  lea    D2659(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2135(%rip),%rsi
  lea    D2239(%rip),%r14
  mov    %r14,%rdi
  call   <link_hal_pins@plt>
  lea    D1961(%rip),%rsi
  lea    D1712(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2650(%rip),%rbp
  mov    %rbp,%rsi
  lea    D1332(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D620(%rip),%rsi
  lea    D223(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1226(%rip),%rsi
  lea    D620(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1220(%rip),%rsi
  mov    %rbp,%rdi
  call   <link_hal_pins@plt>
  lea    D2045(%rip),%rsi
  lea    D2165(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2768(%rip),%rsi
  lea    D4(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D748(%rip),%rsi
  lea    D1570(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1450(%rip),%rsi
  lea    D405(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2225(%rip),%rsi
  lea    D1539(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2497(%rip),%rsi
  lea    D1974(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D23(%rip),%rsi
  lea    D1061(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D86(%rip),%rsi
  lea    D121(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D43(%rip),%rsi
  lea    D751(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1774(%rip),%rsi
  lea    D2078(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1604(%rip),%rsi
  lea    D1658(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1243(%rip),%rsi
  lea    D2104(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2614(%rip),%rsi
  lea    D1583(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D578(%rip),%rsi
  lea    D333(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1929(%rip),%rsi
  lea    D2716(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2421(%rip),%rsi
  lea    D1426(%rip),%rdi
  call   <link_hal_pins@plt>
  pxor   %xmm0,%xmm0
  lea    D2552(%rip),%rdi
  call   <set_hal_pin@plt>
  lea    D1834(%rip),%rsi
  lea    D2523(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D89(%rip),%rsi
  lea    D190(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2198(%rip),%rsi
  lea    D2296(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1636(%rip),%rsi
  lea    D523(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1344(%rip),%rsi
  lea    D2543(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2606(%rip),%rsi
  lea    D132(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1724(%rip),%rsi
  lea    D232(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1248(%rip),%rsi
  lea    D732(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1567(%rip),%rsi
  lea    D2369(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D838(%rip),%rsi
  lea    D2195(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1566(%rip),%rsi
  lea    D2664(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D312(%rip),%rsi
  mov    %r12,%rdi
  call   <link_hal_pins@plt>
  lea    D474(%rip),%rsi
  mov    %r13,%rdi
  call   <link_hal_pins@plt>
  lea    D180(%rip),%rsi
  lea    D1449(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1052(%rip),%rsi
  lea    D1652(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1775(%rip),%rsi
  lea    D2587(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D427(%rip),%rsi
  lea    D1428(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D665(%rip),%rsi
  lea    D1790(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D429(%rip),%rsi
  mov    %rbx,%rdi
  call   <link_hal_pins@plt>
  lea    D2327(%rip),%rsi
  lea    D639(%rip),%rbx
  mov    %rbx,%rdi
  call   <link_hal_pins@plt>
  lea    D2738(%rip),%rsi
  lea    D905(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2502(%rip),%rsi
  lea    D2340(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1009(%rip),%rsi
  lea    D2180(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2592(%rip),%rsi
  lea    D844(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2313(%rip),%rsi
  lea    D1559(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D501(%rip),%rsi
  lea    D318(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D675(%rip),%rsi
  mov    %r14,%rdi
  call   <link_hal_pins@plt>
  lea    D628(%rip),%rsi
  lea    D1996(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D556(%rip),%rsi
  lea    D2023(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2767(%rip),%rsi
  lea    D313(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2435(%rip),%rsi
  lea    D293(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2034(%rip),%rsi
  lea    D1644(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1397(%rip),%rsi
  mov    %r15,%rdi
  call   <link_hal_pins@plt>
  lea    D1301(%rip),%rsi
  lea    D407(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D530(%rip),%rsi
  lea    D901(%rip),%rdi
  call   <link_hal_pins@plt>
  mov    D2510(%rip),%rax
  movq   %rax,%xmm0
  lea    D2603(%rip),%rdi
  call   <set_hal_pin@plt>
  mov    D2510(%rip),%rax
  movq   %rax,%xmm0
  lea    D2615(%rip),%rdi
  call   <set_hal_pin@plt>
  mov    D2510(%rip),%rax
  movq   %rax,%xmm0
  lea    D100(%rip),%rdi
  call   <set_hal_pin@plt>
  mov    D2289(%rip),%rax
  movq   %rax,%xmm0
  lea    D1529(%rip),%rdi
  call   <set_hal_pin@plt>
  mov    D2289(%rip),%rax
  movq   %rax,%xmm0
  lea    D2331(%rip),%rdi
  call   <set_hal_pin@plt>
  mov    D2289(%rip),%rax
  movq   %rax,%xmm0
  lea    D2191(%rip),%rdi
  call   <set_hal_pin@plt>
  mov    D2289(%rip),%rax
  movq   %rax,%xmm0
  mov    %rbx,%rdi
  call   <set_hal_pin@plt>
  lea    D1272(%rip),%rsi
  lea    D1517(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D799(%rip),%rsi
  lea    D481(%rip),%r13
  mov    %r13,%rdi
  call   <link_hal_pins@plt>
  lea    D2652(%rip),%rsi
  lea    D1903(%rip),%r15
  mov    %r15,%rdi
  call   <link_hal_pins@plt>
  lea    D201(%rip),%rsi
  lea    D674(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2420(%rip),%rsi
  lea    D2016(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D490(%rip),%rsi
  lea    D2543(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D389(%rip),%rsi
  lea    D422(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2686(%rip),%rsi
  lea    D1182(%rip),%r14
  mov    %r14,%rdi
  call   <link_hal_pins@plt>
  lea    D660(%rip),%rsi
  mov    %r14,%rdi
  call   <link_hal_pins@plt>
  lea    D164(%rip),%rsi
  lea    D2809(%rip),%rbx
  mov    %rbx,%rdi
  call   <link_hal_pins@plt>
  lea    D2058(%rip),%rsi
  mov    %rbx,%rdi
  call   <link_hal_pins@plt>
  lea    D2392(%rip),%rsi
  lea    D28(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2095(%rip),%rsi
  lea    D1511(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1200(%rip),%rsi
  lea    D2535(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2533(%rip),%rsi
  lea    D133(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D250(%rip),%rsi
  lea    D2241(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1282(%rip),%rsi
  lea    D254(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2380(%rip),%rsi
  mov    %rbp,%rdi
  call   <link_hal_pins@plt>
  lea    D605(%rip),%rsi
  mov    %r14,%rdi
  call   <link_hal_pins@plt>
  lea    D2398(%rip),%rsi
  mov    %rbx,%rdi
  call   <link_hal_pins@plt>
  lea    D1404(%rip),%rsi
  mov    %rbx,%rdi
  call   <link_hal_pins@plt>
  lea    D1907(%rip),%rsi
  mov    %r15,%rdi
  call   <link_hal_pins@plt>
  lea    D1653(%rip),%rsi
  lea    D2570(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1120(%rip),%rsi
  lea    D2579(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1993(%rip),%rsi
  lea    D1661(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2799(%rip),%rsi
  lea    D1957(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D983(%rip),%rsi
  mov    %r13,%rdi
  call   <link_hal_pins@plt>
  lea    D1067(%rip),%rsi
  lea    D2579(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2783(%rip),%rsi
  mov    %r14,%rdi
  call   <link_hal_pins@plt>
  lea    D830(%rip),%rsi
  mov    %rbx,%rdi
  call   <link_hal_pins@plt>
  lea    D2187(%rip),%rsi
  mov    %rbx,%rdi
  call   <link_hal_pins@plt>
  lea    D555(%rip),%rsi
  mov    %r15,%rdi
  call   <link_hal_pins@plt>
  lea    D68(%rip),%rsi
  mov    %r13,%rdi
  call   <link_hal_pins@plt>
  lea    D2306(%rip),%rsi
  lea    D422(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D301(%rip),%rsi
  lea    D1957(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1656(%rip),%rsi
  lea    D2579(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D35(%rip),%rsi
  lea    D784(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1359(%rip),%rsi
  lea    D1046(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2499(%rip),%rsi
  lea    D919(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2453(%rip),%rsi
  lea    D2241(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1852(%rip),%rsi
  lea    D254(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2130(%rip),%rsi
  mov    %r13,%rdi
  call   <link_hal_pins@plt>
  lea    D1593(%rip),%rsi
  lea    D2459(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D444(%rip),%rsi
  lea    D1102(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D375(%rip),%rsi
  lea    D1142(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D970(%rip),%rsi
  lea    D49(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D833(%rip),%rsi
  lea    D2279(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D709(%rip),%rsi
  mov    %r12,%rdi
  call   <link_hal_pins@plt>
  lea    D2608(%rip),%rsi
  lea    D620(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1958(%rip),%rsi
  lea    D2807(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1355(%rip),%rsi
  mov    %rbp,%rdi
  call   <link_hal_pins@plt>
  mov    D2711(%rip),%rax
  movq   %rax,%xmm0
  lea    D1346(%rip),%rdi
  call   <set_hal_pin@plt>
  mov    D2711(%rip),%rax
  movq   %rax,%xmm0
  lea    D911(%rip),%rdi
  call   <set_hal_pin@plt>
  mov    D2289(%rip),%rax
  movq   %rax,%xmm0
  lea    D767(%rip),%rdi
  call   <set_hal_pin@plt>
  mov    D2289(%rip),%rax
  movq   %rax,%xmm0
  lea    D794(%rip),%rdi
  call   <set_hal_pin@plt>
  lea    D2271(%rip),%rsi
  lea    D584(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D982(%rip),%rsi
  lea    D2771(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D276(%rip),%rsi
  lea    D1946(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D41(%rip),%rsi
  lea    D907(%rip),%rdi
  call   <link_hal_pins@plt>
  add    $0x8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
```

tool_calls: name: disassemble_data
arguments: data_tag: D2266
type: f64
name: disassemble_data
arguments: data_tag: D1298
type: string
name: disassemble_data
arguments: data_tag: D2144
type: f64
name: disassemble_data
arguments: data_tag: D957
type: string
name: disassemble_data
arguments: data_tag: D934
type: string
name: disassemble_data
arguments: data_tag: D2005
type: f64
name: disassemble_data
arguments: data_tag: D1187
type: string
name: disassemble_data
arguments: data_tag: D529
type: string
name: disassemble_data
arguments: data_tag: D2261
type: f64
name: disassemble_data
arguments: data_tag: D1782
type: string
name: disassemble_data
arguments: data_tag: D2766
type: f64
name: disassemble_data
arguments: data_tag: D39
type: string
name: disassemble_data
arguments: data_tag: D1325
type: f64
name: disassemble_data
arguments: data_tag: D2071
type: string
name: disassemble_data
arguments: data_tag: D2015
type: f64
name: disassemble_data
arguments: data_tag: D1865
type: string
name: disassemble_data
arguments: data_tag: D2527
type: f64
name: disassemble_data
arguments: data_tag: D1519
type: string
name: disassemble_data
arguments: data_tag: D1262
type: f64
name: disassemble_data
arguments: data_tag: D1516
type: string
name: disassemble_data
arguments: data_tag: D1921
type: f64
name: disassemble_data
arguments: data_tag: D1043
type: string
name: disassemble_data
arguments: data_tag: D502
type: f64
name: disassemble_data
arguments: data_tag: D2049
type: string
name: disassemble_data
arguments: data_tag: D570
type: f64
name: disassemble_data
arguments: data_tag: D1300
type: string
name: disassemble_data
arguments: data_tag: D2407
type: f64
name: disassemble_data
arguments: data_tag: D1772
type: string
name: disassemble_data
arguments: data_tag: D2691
type: string
name: disassemble_data
arguments: data_tag: D2285
type: string
name: disassemble_data
arguments: data_tag: D2176
type: string
name: disassemble_data
arguments: data_tag: D414
type: string
name: disassemble_data
arguments: data_tag: D2504
type: string
name: disassemble_data
arguments: data_tag: D1395
type: string
name: disassemble_data
arguments: data_tag: D606
type: string
name: disassemble_data
arguments: data_tag: D48
type: string
name: disassemble_data
arguments: data_tag: D407
type: string
name: disassemble_data
arguments: data_tag: D1995
type: string
name: disassemble_data
arguments: data_tag: D2400
type: string
name: disassemble_data
arguments: data_tag: D2785
type: string
name: disassemble_data
arguments: data_tag: D1638
type: string
name: disassemble_data
arguments: data_tag: D2807
type: string
name: disassemble_data
arguments: data_tag: D802
type: string
name: disassemble_data
arguments: data_tag: D2501
type: f64
name: disassemble_data
arguments: data_tag: D15
type: string
name: disassemble_data
arguments: data_tag: D1694
type: string
name: disassemble_data
arguments: data_tag: D283
type: string
name: disassemble_data
arguments: data_tag: D612
type: string
name: disassemble_data
arguments: data_tag: D1597
type: string
name: disassemble_data
arguments: data_tag: D779
type: string
name: disassemble_data
arguments: data_tag: D2003
type: string
name: disassemble_data
arguments: data_tag: D1169
type: string
name: disassemble_data
arguments: data_tag: D431
type: string
name: disassemble_data
arguments: data_tag: D2659
type: string
name: disassemble_data
arguments: data_tag: D2135
type: string
name: disassemble_data
arguments: data_tag: D2239
type: string
name: disassemble_data
arguments: data_tag: D1961
type: string
name: disassemble_data
arguments: data_tag: D1712
type: string
name: disassemble_data
arguments: data_tag: D2650
type: string
name: disassemble_data
arguments: data_tag: D1332
type: string
name: disassemble_data
arguments: data_tag: D620
type: string
name: disassemble_data
arguments: data_tag: D223
type: string
name: disassemble_data
arguments: data_tag: D1226
type: string
name: disassemble_data
arguments: data_tag: D1220
type: string
name: disassemble_data
arguments: data_tag: D2045
type: string
name: disassemble_data
arguments: data_tag: D2165
type: string
name: disassemble_data
arguments: data_tag: D2768
type: string
name: disassemble_data
arguments: data_tag: D4
type: string
name: disassemble_data
arguments: data_tag: D748
type: string
name: disassemble_data
arguments: data_tag: D1570
type: string
name: disassemble_data
arguments: data_tag: D1450
type: string
name: disassemble_data
arguments: data_tag: D405
type: string
name: disassemble_data
arguments: data_tag: D2225
type: string
name: disassemble_data
arguments: data_tag: D1539
type: string
name: disassemble_data
arguments: data_tag: D2497
type: string
name: disassemble_data
arguments: data_tag: D1974
type: string
name: disassemble_data
arguments: data_tag: D23
type: string
name: disassemble_data
arguments: data_tag: D1061
type: string
name: disassemble_data
arguments: data_tag: D86
type: string
name: disassemble_data
arguments: data_tag: D121
type: string
name: disassemble_data
arguments: data_tag: D43
type: string
name: disassemble_data
arguments: data_tag: D751
type: string
name: disassemble_data
arguments: data_tag: D1774
type: string
name: disassemble_data
arguments: data_tag: D2078
type: string
name: disassemble_data
arguments: data_tag: D1604
type: string
name: disassemble_data
arguments: data_tag: D1658
type: string
name: disassemble_data
arguments: data_tag: D1243
type: string
name: disassemble_data
arguments: data_tag: D2104
type: string
name: disassemble_data
arguments: data_tag: D2614
type: string
name: disassemble_data
arguments: data_tag: D1583
type: string
name: disassemble_data
arguments: data_tag: D578
type: string
name: disassemble_data
arguments: data_tag: D333
type: string
name: disassemble_data
arguments: data_tag: D1929
type: string
name: disassemble_data
arguments: data_tag: D2716
type: string
name: disassemble_data
arguments: data_tag: D2421
type: string
name: disassemble_data
arguments: data_tag: D1426
type: string
name: disassemble_data
arguments: data_tag: D2552
type: string
name: disassemble_data
arguments: data_tag: D1834
type: string
name: disassemble_data
arguments: data_tag: D2523
type: string
name: disassemble_data
arguments: data_tag: D89
type: string
name: disassemble_data
arguments: data_tag: D190
type: string
name: disassemble_data
arguments: data_tag: D2198
type: string
name: disassemble_data
arguments: data_tag: D2296
type: string
name: disassemble_data
arguments: data_tag: D1636
type: string
name: disassemble_data
arguments: data_tag: D523
type: string
name: disassemble_data
arguments: data_tag: D1344
type: string
name: disassemble_data
arguments: data_tag: D2543
type: string
name: disassemble_data
arguments: data_tag: D2606
type: string
name: disassemble_data
arguments: data_tag: D132
type: string
name: disassemble_data
arguments: data_tag: D1724
type: string
name: disassemble_data
arguments: data_tag: D232
type: string
name: disassemble_data
arguments: data_tag: D1248
type: string
name: disassemble_data
arguments: data_tag: D732
type: string
name: disassemble_data
arguments: data_tag: D1567
type: string
name: disassemble_data
arguments: data_tag: D2369
type: string
name: disassemble_data
arguments: data_tag: D838
type: string
name: disassemble_data
arguments: data_tag: D2195
type: string
name: disassemble_data
arguments: data_tag: D1566
type: string
name: disassemble_data
arguments: data_tag: D2664
type: string
name: disassemble_data
arguments: data_tag: D312
type: string
name: disassemble_data
arguments: data_tag: D474
type: string
name: disassemble_data
arguments: data_tag: D180
type: string
name: disassemble_data
arguments: data_tag: D1449
type: string
name: disassemble_data
arguments: data_tag: D1052
type: string
name: disassemble_data
arguments: data_tag: D1652
type: string
name: disassemble_data
arguments: data_tag: D1775
type: string
name: disassemble_data
arguments: data_tag: D2587
type: string
name: disassemble_data
arguments: data_tag: D427
type: string
name: disassemble_data
arguments: data_tag: D1428
type: string
name: disassemble_data
arguments: data_tag: D665
type: string
name: disassemble_data
arguments: data_tag: D1790
type: string
name: disassemble_data
arguments: data_tag: D429
type: string
name: disassemble_data
arguments: data_tag: D2327
type: string
name: disassemble_data
arguments: data_tag: D639
type: string
name: disassemble_data
arguments: data_tag: D2738
type: string
name: disassemble_data
arguments: data_tag: D905
type: string
name: disassemble_data
arguments: data_tag: D2502
type: string
name: disassemble_data
arguments: data_tag: D2340
type: string
name: disassemble_data
arguments: data_tag: D1009
type: string
name: disassemble_data
arguments: data_tag: D2180
type: string
name: disassemble_data
arguments: data_tag: D2592
type: string
name: disassemble_data
arguments: data_tag: D844
type: string
name: disassemble_data
arguments: data_tag: D2313
type: string
name: disassemble_data
arguments: data_tag: D1559
type: string
name: disassemble_data
arguments: data_tag: D501
type: string
name: disassemble_data
arguments: data_tag: D318
type: string
name: disassemble_data
arguments: data_tag: D675
type: string
name: disassemble_data
arguments: data_tag: D628
type: string
name: disassemble_data
arguments: data_tag: D1996
type: string
name: disassemble_data
arguments: data_tag: D556
type: string
name: disassemble_data
arguments: data_tag: D2023
type: string
name: disassemble_data
arguments: data_tag: D2767
type: string
name: disassemble_data
arguments: data_tag: D313
type: string
name: disassemble_data
arguments: data_tag: D2435
type: string
name: disassemble_data
arguments: data_tag: D293
type: string
name: disassemble_data
arguments: data_tag: D2034
type: string
name: disassemble_data
arguments: data_tag: D1644
type: string
name: disassemble_data
arguments: data_tag: D1397
type: string
name: disassemble_data
arguments: data_tag: D1301
type: string
name: disassemble_data
arguments: data_tag: D530
type: string
name: disassemble_data
arguments: data_tag: D901
type: string
name: disassemble_data
arguments: data_tag: D2510
type: f64
name: disassemble_data
arguments: data_tag: D2603
type: string
name: disassemble_data
arguments: data_tag: D2615
type: string
name: disassemble_data
arguments: data_tag: D100
type: string
name: disassemble_data
arguments: data_tag: D2289
type: f64
name: disassemble_data
arguments: data_tag: D1529
type: string
name: disassemble_data
arguments: data_tag: D2331
type: string
name: disassemble_data
arguments: data_tag: D2191
type: string
name: disassemble_data
arguments: data_tag: D1272
type: string
name: disassemble_data
arguments: data_tag: D1517
type: string
name: disassemble_data
arguments: data_tag: D799
type: string
name: disassemble_data
arguments: data_tag: D481
type: string
name: disassemble_data
arguments: data_tag: D2652
type: string
name: disassemble_data
arguments: data_tag: D1903
type: string
name: disassemble_data
arguments: data_tag: D201
type: string
name: disassemble_data
arguments: data_tag: D674
type: string
name: disassemble_data
arguments: data_tag: D2420
type: string
name: disassemble_data
arguments: data_tag: D2016
type: string
name: disassemble_data
arguments: data_tag: D490
type: string
name: disassemble_data
arguments: data_tag: D389
type: string
name: disassemble_data
arguments: data_tag: D422
type: string
name: disassemble_data
arguments: data_tag: D2686
type: string
name: disassemble_data
arguments: data_tag: D1182
type: string
name: disassemble_data
arguments: data_tag: D660
type: string
name: disassemble_data
arguments: data_tag: D164
type: string
name: disassemble_data
arguments: data_tag: D2809
type: string
name: disassemble_data
arguments: data_tag: D2058
type: string
name: disassemble_data
arguments: data_tag: D2392
type: string
name: disassemble_data
arguments: data_tag: D28
type: string
name: disassemble_data
arguments: data_tag: D2095
type: string
name: disassemble_data
arguments: data_tag: D1511
type: string
name: disassemble_data
arguments: data_tag: D1200
type: string
name: disassemble_data
arguments: data_tag: D2535
type: string
name: disassemble_data
arguments: data_tag: D2533
type: string
name: disassemble_data
arguments: data_tag: D133
type: string
name: disassemble_data
arguments: data_tag: D250
type: string
name: disassemble_data
arguments: data_tag: D2241
type: string
name: disassemble_data
arguments: data_tag: D1282
type: string
name: disassemble_data
arguments: data_tag: D254
type: string
name: disassemble_data
arguments: data_tag: D2380
type: string
name: disassemble_data
arguments: data_tag: D605
type: string
name: disassemble_data
arguments: data_tag: D2398
type: string
name: disassemble_data
arguments: data_tag: D1404
type: string
name: disassemble_data
arguments: data_tag: D1907
type: string
name: disassemble_data
arguments: data_tag: D1653
type: string
name: disassemble_data
arguments: data_tag: D2570
type: string
name: disassemble_data
arguments: data_tag: D1120
type: string
name: disassemble_data
arguments: data_tag: D2579
type: string
name: disassemble_data
arguments: data_tag: D1993
type: string
name: disassemble_data
arguments: data_tag: D1661
type: string
name: disassemble_data
arguments: data_tag: D2799
type: string
name: disassemble_data
arguments: data_tag: D1957
type: string
name: disassemble_data
arguments: data_tag: D983
type: string
name: disassemble_data
arguments: data_tag: D1067
type: string
name: disassemble_data
arguments: data_tag: D2783
type: string
name: disassemble_data
arguments: data_tag: D830
type: string
name: disassemble_data
arguments: data_tag: D2187
type: string
name: disassemble_data
arguments: data_tag: D555
type: string
name: disassemble_data
arguments: data_tag: D68
type: string
name: disassemble_data
arguments: data_tag: D2306
type: string
name: disassemble_data
arguments: data_tag: D301
type: string
name: disassemble_data
arguments: data_tag: D1656
type: string
name: disassemble_data
arguments: data_tag: D35
type: string
name: disassemble_data
arguments: data_tag: D784
type: string
name: disassemble_data
arguments: data_tag: D1359
type: string
name: disassemble_data
arguments: data_tag: D1046
type: string
name: disassemble_data
arguments: data_tag: D2499
type: string
name: disassemble_data
arguments: data_tag: D919
type: string
name: disassemble_data
arguments: data_tag: D2453
type: string
name: disassemble_data
arguments: data_tag: D1852
type: string
name: disassemble_data
arguments: data_tag: D2130
type: string
name: disassemble_data
arguments: data_tag: D1593
type: string
name: disassemble_data
arguments: data_tag: D2459
type: string
name: disassemble_data
arguments: data_tag: D444
type: string
name: disassemble_data
arguments: data_tag: D1102
type: string
name: disassemble_data
arguments: data_tag: D375
type: string
name: disassemble_data
arguments: data_tag: D1142
type: string
name: disassemble_data
arguments: data_tag: D970
type: string
name: disassemble_data
arguments: data_tag: D49
type: string
name: disassemble_data
arguments: data_tag: D833
type: string
name: disassemble_data
arguments: data_tag: D2279
type: string
name: disassemble_data
arguments: data_tag: D709
type: string
name: disassemble_data
arguments: data_tag: D2608
type: string
name: disassemble_data
arguments: data_tag: D1958
type: string
name: disassemble_data
arguments: data_tag: D1355
type: string
name: disassemble_data
arguments: data_tag: D2711
type: f64
name: disassemble_data
arguments: data_tag: D1346
type: string
name: disassemble_data
arguments: data_tag: D911
type: string
name: disassemble_data
arguments: data_tag: D767
type: string
name: disassemble_data
arguments: data_tag: D794
type: string
name: disassemble_data
arguments: data_tag: D2271
type: string
name: disassemble_data
arguments: data_tag: D584
type: string
name: disassemble_data
arguments: data_tag: D982
type: string
name: disassemble_data
arguments: data_tag: D2771
type: string
name: disassemble_data
arguments: data_tag: D276
type: string
name: disassemble_data
arguments: data_tag: D1946
type: string
name: disassemble_data
arguments: data_tag: D41
type: string
name: disassemble_data
arguments: data_tag: D907
type: string

tool: D2266: 3

tool: D1298: fault0.rt_prio

tool: D2144: 4

tool: D957: rev0.rt_prio

tool: D934: rev1.rt_prio

tool: D2005: 5

tool: D1187: vel0.rt_prio

tool: D529: vel1.rt_prio

tool: D2261: 6

tool: D1782: stp0.rt_prio

tool: D2766: 7

tool: D39: cauto0.rt_prio

tool: D1325: 8

tool: D2071: pid0.rt_prio

tool: D2015: 9

tool: D1865: t2c0.rt_prio

tool: D2527: 10

tool: D1519: curpid0.rt_prio

tool: D1262: 11

tool: D1516: pmsm0.rt_prio

tool: D1921: 12

tool: D1043: pmsm_limits0.rt_prio

tool: D502: 13

tool: D2049: idq0.rt_prio

tool: D570: 14

tool: D1300: hv0.rt_prio

tool: D2407: 15

tool: D1772: sim0.rt_prio

tool: D2691: term0.rt_prio

tool: D2285: rev0.rev

tool: D2176: conf0.cmd_rev

tool: D414: net0.cmd

tool: D2504: vel0.pos_out

tool: D1395: stp0.max_vel

tool: D606: conf0.max_vel

tool: D48: stp0.max_acc

tool: D407: conf0.max_acc

tool: D1995: vel0.pos_in

tool: D2400: rev0.out

tool: D2785: vel0.en

tool: D1638: fault0.enable_pid

tool: D2807: net0.cmd_d

tool: D802: vel0.vel

tool: D2501: 500

tool: D15: vel0.w

tool: D1694: pid0.pos_ext_cmd

tool: D283: pid0.vel_ext_cmd

tool: D612: rev1.rev

tool: D1597: conf0.fb_rev

tool: D779: vel1.pos_in

tool: D2003: rev1.out

tool: D1169: vel1.en

tool: D431: cauto0.fb_in

tool: D2659: vel1.pos_out

tool: D2135: vel1.j

tool: D2239: conf0.j

tool: D1961: vel1.torque

tool: D1712: pmsm0.torque

tool: D2650: net0.fb_d

tool: D1332: vel1.vel

tool: D620: net0.fb

tool: D223: cauto0.fb_out

tool: D1226: pid0.pos_fb

tool: D1220: pid0.vel_fb

tool: D2045: fault0.max_dc_cur

tool: D2165: conf0.max_dc_cur

tool: D2768: fault0.max_ac_cur

tool: D4: conf0.max_ac_cur

tool: D748: fault0.max_dc_volt

tool: D1570: conf0.max_dc_volt

tool: D1450: fault0.max_hv_temp

tool: D405: conf0.max_hv_temp

tool: D2225: fault0.max_core_temp

tool: D1539: conf0.max_core_temp

tool: D2497: fault0.max_motor_temp

tool: D1974: conf0.max_motor_temp

tool: D23: fault0.max_pos_error

tool: D1061: conf0.max_pos_error

tool: D86: fault0.high_dc_volt

tool: D121: conf0.high_dc_volt

tool: D43: fault0.high_hv_temp

tool: D751: conf0.high_hv_temp

tool: D1774: fault0.high_motor_temp

tool: D2078: conf0.high_motor_temp

tool: D1604: fault0.low_dc_volt

tool: D1658: conf0.low_dc_volt

tool: D1243: fault0.fan_hv_temp

tool: D2104: conf0.fan_hv_temp

tool: D2614: fault0.fan_core_temp

tool: D1583: conf0.fan_core_temp

tool: D578: fault0.fan_motor_temp

tool: D333: conf0.fan_motor_temp

tool: D1929: fault0.phase_on_start

tool: D2716: conf0.autophase

tool: D2421: fault0.max_sat

tool: D1426: conf0.max_sat

tool: D2552: fault0.reset

tool: D1834: cauto0.start

tool: D2523: fault0.phase_start

tool: D89: fault0.phase_ready

tool: D190: cauto0.ready

tool: D2198: fault0.pos_error

tool: D2296: pid0.pos_error

tool: D1636: fault0.sat

tool: D523: pid0.saturated

tool: D1344: fault0.dc_volt

tool: D2543: hv0.dc_volt

tool: D2606: fault0.hv_temp

tool: D132: hv0.hv_temp

tool: D1724: fault0.core_temp0

tool: D232: net0.core_temp0

tool: D1248: fault0.core_temp1

tool: D732: net0.core_temp1

tool: D1567: fault0.motor_temp

tool: D2369: net0.motor_temp

tool: D838: fault0.dc_cur

tool: D2195: hv0.dc_cur

tool: D1566: fault0.fb_error

tool: D2664: net0.fb_error

tool: D312: fault0.cmd

tool: D474: fault0.fb

tool: D180: cauto0.start_offset

tool: D1449: fault0.start_offset

tool: D1052: curpid0.max_cur

tool: D1652: fault0.cur

tool: D1775: io0.brake

tool: D2587: fault0.brake

tool: D427: io0.fan

tool: D1428: fault0.hv_fan

tool: D665: hv0.enable

tool: D1790: fault0.enable_out

tool: D429: pid0.enable

tool: D2327: fault0.enable

tool: D639: net0.enable

tool: D2738: io0.green

tool: D905: fault0.led_green

tool: D2502: io0.red

tool: D2340: fault0.led_red

tool: D1009: term0.fault

tool: D2180: fault0.state

tool: D2592: cauto0.mag_offset

tool: D844: conf0.fb_offset

tool: D2313: cauto0.cur

tool: D1559: conf0.phase_cur

tool: D501: cauto0.time

tool: D318: conf0.phase_time

tool: D675: pid0.j

tool: D628: pid0.p

tool: D1996: conf0.p

tool: D556: pid0.pos_p

tool: D2023: conf0.pos_p

tool: D2767: pid0.vel_p

tool: D313: conf0.vel_p

tool: D2435: pid0.acc_p

tool: D293: conf0.acc_p

tool: D2034: pid0.acc_pi

tool: D1644: conf0.acc_pi

tool: D1397: pid0.max_usr_vel

tool: D1301: pid0.max_usr_acc

tool: D530: pid0.max_usr_torque

tool: D901: conf0.max_force

tool: D2510: 4000

tool: D2603: pid0.pos_lp

tool: D2615: pid0.vel_lp

tool: D100: pid0.acc_lp

tool: D2289: 1

tool: D1529: pid0.torque_ff

tool: D2331: pid0.vel_ff

tool: D2191: pid0.acc_ff

tool: D1272: t2c0.torque

tool: D1517: pid0.torque_cor_cmd

tool: D799: t2c0.polecount

tool: D481: conf0.polecount

tool: D2652: t2c0.psi

tool: D1903: conf0.psi

tool: D201: curpid0.id_cmd

tool: D674: cauto0.i_d

tool: D2420: curpid0.iq_cmd

tool: D2016: t2c0.cur

tool: D490: curpid0.dc_volt

tool: D389: curpid0.ac_volt

tool: D422: hv0.ac_volt

tool: D2686: curpid0.rd

tool: D1182: conf0.r

tool: D660: curpid0.rq

tool: D164: curpid0.ld

tool: D2809: conf0.l

tool: D2058: curpid0.lq

tool: D2392: curpid0.ff

tool: D28: conf0.cur_ff

tool: D2095: curpid0.kp

tool: D1511: conf0.cur_p

tool: D1200: curpid0.ki

tool: D2535: conf0.cur_i

tool: D2533: curpid0.kind

tool: D133: conf0.cur_ind

tool: D250: pmsm0.ud

tool: D2241: curpid0.ud

tool: D1282: pmsm0.uq

tool: D254: curpid0.uq

tool: D2380: pmsm0.vel

tool: D605: pmsm0.r

tool: D2398: pmsm0.ld

tool: D1404: pmsm0.lq

tool: D1907: pmsm0.psi

tool: D1653: curpid0.id_fb

tool: D2570: pmsm0.id

tool: D1120: curpid0.iq_fb

tool: D2579: pmsm0.iq

tool: D1993: curpid0.indd_fb

tool: D1661: pmsm0.indd

tool: D2799: curpid0.indq_fb

tool: D1957: pmsm0.indq

tool: D983: pmsm0.polecount

tool: D1067: hv0.iq

tool: D2783: pmsm_limits0.r

tool: D830: pmsm_limits0.ld

tool: D2187: pmsm_limits0.lq

tool: D555: pmsm_limits0.psi

tool: D68: pmsm_limits0.polecount

tool: D2306: pmsm_limits0.ac_volt

tool: D301: pmsm_limits0.indq

tool: D1656: pmsm_limits0.iq

tool: D35: pid0.max_torque

tool: D784: pmsm_limits0.next_max_torque

tool: D1359: pid0.min_torque

tool: D1046: pmsm_limits0.next_min_torque

tool: D2499: pid0.max_vel

tool: D919: pmsm_limits0.abs_max_vel

tool: D2453: idq0.d

tool: D1852: idq0.q

tool: D2130: idq0.polecount

tool: D1593: hv0.a

tool: D2459: idq0.a

tool: D444: hv0.b

tool: D1102: idq0.b

tool: D375: hv0.rev

tool: D1142: conf0.out_rev

tool: D970: idq0.pos

tool: D49: cauto0.pos

tool: D833: sim0.res

tool: D2279: conf0.cmd_res

tool: D709: term0.wave0

tool: D2608: term0.wave1

tool: D1958: term0.wave2

tool: D1355: term0.wave3

tool: D2711: 20

tool: D1346: term0.gain0

tool: D911: term0.gain1

tool: D767: term0.gain2

tool: D794: term0.gain3

tool: D2271: adc0.sin_gain

tool: D584: conf0.sin_gain

tool: D982: adc0.cos_gain

tool: D2771: conf0.cos_gain

tool: D276: adc0.sin_offset

tool: D1946: conf0.sin_offset

tool: D41: adc0.cos_offset

tool: D907: conf0.cos_offset

assistant: ```c
void link_pid() {
  set_hal_pin("fault0.rt_prio", 3.0);
  set_hal_pin("rev0.rt_prio", 4.0);
  set_hal_pin("rev1.rt_prio", 4.0);
  set_hal_pin("vel0.rt_prio", 5.0);
  set_hal_pin("vel1.rt_prio", 5.0);
  set_hal_pin("stp0.rt_prio", 6.0);
  set_hal_pin("cauto0.rt_prio", 7.0);
  set_hal_pin("pid0.rt_prio", 8.0);
  set_hal_pin("t2c0.rt_prio", 9.0);
  set_hal_pin("curpid0.rt_prio", 10.0);
  set_hal_pin("pmsm0.rt_prio", 11.0);
  set_hal_pin("pmsm_limits0.rt_prio", 12.0);
  set_hal_pin("idq0.rt_prio", 13.0);
  set_hal_pin("hv0.rt_prio", 14.0);
  set_hal_pin("sim0.rt_prio", 15.0);
  set_hal_pin("term0.rt_prio", 15.0);
  link_hal_pins("conf0.cmd_rev", "rev0.rev");
  link_hal_pins("vel0.pos_out", "net0.cmd");
  link_hal_pins("conf0.max_vel", "stp0.max_vel");
  link_hal_pins("conf0.max_acc", "stp0.max_acc");
  link_hal_pins("rev0.out", "vel0.pos_in");
  link_hal_pins("fault0.enable_pid", "vel0.en");
  link_hal_pins("vel0.vel", "net0.cmd_d");
  set_hal_pin("vel0.w", 500.0);
  link_hal_pins("net0.cmd", "pid0.pos_ext_cmd");
  link_hal_pins("net0.cmd_d", "pid0.vel_ext_cmd");
  link_hal_pins("conf0.fb_rev", "rev1.rev");
  link_hal_pins("rev1.out", "vel1.pos_in");
  link_hal_pins("fault0.enable_pid", "vel1.en");
  link_hal_pins("vel1.pos_out", "cauto0.fb_in");
  link_hal_pins("conf0.j", "vel1.j");
  link_hal_pins("pmsm0.torque", "vel1.torque");
  link_hal_pins("vel1.vel", "net0.fb_d");
  link_hal_pins("cauto0.fb_out", "net0.fb");
  link_hal_pins("net0.fb", "pid0.pos_fb");
  link_hal_pins("net0.fb_d", "pid0.vel_fb");
  link_hal_pins("conf0.max_dc_cur", "fault0.max_dc_cur");
  link_hal_pins("conf0.max_ac_cur", "fault0.max_ac_cur");
  link_hal_pins("conf0.max_dc_volt", "fault0.max_dc_volt");
  link_hal_pins("conf0.max_hv_temp", "fault0.max_hv_temp");
  link_hal_pins("conf0.max_core_temp", "fault0.max_core_temp");
  link_hal_pins("conf0.max_motor_temp", "fault0.max_motor_temp");
  link_hal_pins("conf0.max_pos_error", "fault0.max_pos_error");
  link_hal_pins("conf0.high_dc_volt", "fault0.high_dc_volt");
  link_hal_pins("conf0.high_hv_temp", "fault0.high_hv_temp");
  link_hal_pins("conf0.high_motor_temp", "fault0.high_motor_temp");
  link_hal_pins("conf0.low_dc_volt", "fault0.low_dc_volt");
  link_hal_pins("conf0.fan_hv_temp", "fault0.fan_hv_temp");
  link_hal_pins("conf0.fan_core_temp", "fault0.fan_core_temp");
  link_hal_pins("conf0.fan_motor_temp", "fault0.fan_motor_temp");
  link_hal_pins("conf0.autophase", "fault0.phase_on_start");
  link_hal_pins("conf0.max_sat", "fault0.max_sat");
  set_hal_pin("fault0.reset", 0.0);
  link_hal_pins("fault0.phase_start", "cauto0.start");
  link_hal_pins("cauto0.ready", "fault0.phase_ready");
  link_hal_pins("pid0.pos_error", "fault0.pos_error");
  link_hal_pins("pid0.saturated", "fault0.sat");
  link_hal_pins("hv0.dc_volt", "fault0.dc_volt");
  link_hal_pins("hv0.hv_temp", "fault0.hv_temp");
  link_hal_pins("net0.core_temp0", "fault0.core_temp0");
  link_hal_pins("net0.core_temp1", "fault0.core_temp1");
  link_hal_pins("net0.motor_temp", "fault0.motor_temp");
  link_hal_pins("hv0.dc_cur", "fault0.dc_cur");
  link_hal_pins("net0.fb_error", "fault0.fb_error");
  link_hal_pins("net0.cmd", "fault0.cmd");
  link_hal_pins("rev1.out", "fault0.fb");
  link_hal_pins("fault0.start_offset", "cauto0.start_offset");
  link_hal_pins("fault0.cur", "curpid0.max_cur");
  link_hal_pins("fault0.brake", "io0.brake");
  link_hal_pins("fault0.hv_fan", "io0.fan");
  link_hal_pins("fault0.enable_out", "hv0.enable");
  link_hal_pins("fault0.enable_pid", "pid0.enable");
  link_hal_pins("net0.enable", "fault0.enable");
  link_hal_pins("fault0.led_green", "io0.green");
  link_hal_pins("fault0.led_red", "io0.red");
  link_hal_pins("fault0.state", "term0.fault");
  link_hal_pins("conf0.fb_offset", "cauto0.mag_offset");
  link_hal_pins("conf0.phase_cur", "cauto0.cur");
  link_hal_pins("conf0.phase_time", "cauto0.time");
  link_hal_pins("conf0.j", "pid0.j");
  link_hal_pins("conf0.p", "pid0.p");
  link_hal_pins("conf0.pos_p", "pid0.pos_p");
  link_hal_pins("conf0.vel_p", "pid0.vel_p");
  link_hal_pins("conf0.acc_p", "pid0.acc_p");
  link_hal_pins("conf0.acc_pi", "pid0.acc_pi");
  link_hal_pins("conf0.max_vel", "pid0.max_usr_vel");
  link_hal_pins("conf0.max_acc", "pid0.max_usr_acc");
  link_hal_pins("conf0.max_force", "pid0.max_usr_torque");
  set_hal_pin("pid0.pos_lp", 4000.0);
  set_hal_pin("pid0.vel_lp", 4000.0);
  set_hal_pin("pid0.acc_lp", 4000.0);
  set_hal_pin("pid0.torque_ff", 1.0);
  set_hal_pin("pid0.vel_ff", 1.0);
  set_hal_pin("pid0.acc_ff", 1.0);
  set_hal_pin("net0.enable", 1.0);
  link_hal_pins("pid0.torque_cor_cmd", "t2c0.torque");
  link_hal_pins("conf0.polecount", "t2c0.polecount");
  link_hal_pins("conf0.psi", "t2c0.psi");
  link_hal_pins("cauto0.i_d", "curpid0.id_cmd");
  link_hal_pins("t2c0.cur", "curpid0.iq_cmd");
  link_hal_pins("hv0.dc_volt", "curpid0.dc_volt");
  link_hal_pins("hv0.ac_volt", "curpid0.ac_volt");
  link_hal_pins("conf0.r", "curpid0.rd");
  link_hal_pins("conf0.r", "curpid0.rq");
  link_hal_pins("conf0.l", "curpid0.ld");
  link_hal_pins("conf0.l", "curpid0.lq");
  link_hal_pins("conf0.cur_ff", "curpid0.ff");
  link_hal_pins("conf0.cur_p", "curpid0.kp");
  link_hal_pins("conf0.cur_i", "curpid0.ki");
  link_hal_pins("conf0.cur_ind", "curpid0.kind");
  link_hal_pins("curpid0.ud", "pmsm0.ud");
  link_hal_pins("curpid0.uq", "pmsm0.uq");
  link_hal_pins("net0.fb_d", "pmsm0.vel");
  link_hal_pins("conf0.r", "pmsm0.r");
  link_hal_pins("conf0.l", "pmsm0.ld");
  link_hal_pins("conf0.l", "pmsm0.lq");
  link_hal_pins("conf0.psi", "pmsm0.psi");
  link_hal_pins("pmsm0.id", "curpid0.id_fb");
  link_hal_pins("pmsm0.iq", "curpid0.iq_fb");
  link_hal_pins("pmsm0.indd", "curpid0.indd_fb");
  link_hal_pins("pmsm0.indq", "curpid0.indq_fb");
  link_hal_pins("conf0.polecount", "pmsm0.polecount");
  link_hal_pins("pmsm0.iq", "hv0.iq");
  link_hal_pins("conf0.r", "pmsm_limits0.r");
  link_hal_pins("conf0.l", "pmsm_limits0.ld");
  link_hal_pins("conf0.l", "pmsm_limits0.lq");
  link_hal_pins("conf0.psi", "pmsm_limits0.psi");
  link_hal_pins("conf0.polecount", "pmsm_limits0.polecount");
  link_hal_pins("hv0.ac_volt", "pmsm_limits0.ac_volt");
  link_hal_pins("pmsm0.indq", "pmsm_limits0.indq");
  link_hal_pins("pmsm0.iq", "pmsm_limits0.iq");
  link_hal_pins("pmsm_limits0.next_max_torque", "pid0.max_torque");
  link_hal_pins("pmsm_limits0.next_min_torque", "pid0.min_torque");
  link_hal_pins("pmsm_limits0.abs_max_vel", "pid0.max_vel");
  link_hal_pins("curpid0.ud", "idq0.d");
  link_hal_pins("curpid0.uq", "idq0.q");
  link_hal_pins("conf0.polecount", "idq0.polecount");
  link_hal_pins("idq0.a", "hv0.a");
  link_hal_pins("idq0.b", "hv0.b");
  link_hal_pins("conf0.out_rev", "hv0.rev");
  link_hal_pins("cauto0.pos", "idq0.pos");
  link_hal_pins("conf0.cmd_res", "sim0.res");
  link_hal_pins("net0.cmd", "term0.wave0");
  link_hal_pins("net0.fb", "term0.wave1");
  link_hal_pins("net0.cmd_d", "term0.wave2");
  link_hal_pins("net0.fb_d", "term0.wave3");
  set_hal_pin("term0.gain0", 20.0);
  set_hal_pin("term0.gain1", 20.0);
  set_hal_pin("term0.gain2", 1.0);
  set_hal_pin("term0.gain3", 1.0);
  link_hal_pins("conf0.sin_gain", "adc0.sin_gain");
  link_hal_pins("conf0.cos_gain", "adc0.cos_gain");
  link_hal_pins("conf0.sin_offset", "adc0.sin_offset");
  link_hal_pins("conf0.cos_offset", "adc0.cos_offset");
}
```