DAPLinkをGCC 13.2でビルドする

arm-none-eabi-gcc 13.2がリリースされたので、DAPLinkをビルドしてみたのですが、謎のリンクエラーが表示され、ビルドする事が出来ませんでした。  

色々と調べてみたところ、クローズされたissueに回避方法の情報がありました。
https://github.com/ARMmbed/DAPLink/issues/1003#issuecomment-1412320300

なるほど、known issueだったようです。せっかくなので、この方法でビルドを試みてみました。
  
回避方法を適用したブランチは、こちら。
https://github.com/toyowata/DAPLink/tree/gcc_13_build

## DAPLinkのビルド
では、DAPLinkをビルドします。ここでは、mbed LPC1114FN28ボード用にビルドします。

```
$ git clone -b gcc_13_build https://github.com/toyowata/DAPLink my_daplink
$ cd my_daplink
$ ./tools/progen_compile.py -t make_gcc_arm lpc11u35_ssci1114_if 
Preprocessing ../../../source/hic_hal/nxp/lpc11u35/gcc/lpc11u35.ld
Compiling ../../../source/board/ssci1114.c
Compiling ../../../source/daplink/HardFault_Handler.c

(中略)

Compiling ../../../source/usb/winusb/usbd_core_winusb.c
Assembling ../../../source/hic_hal/nxp/lpc11u35/gcc/startup_LPC11Uxx.S
Assembling ../../../source/rtos2/RTX/Source/GCC/irq_cm0.S
Linking build/lpc11u35_ssci1114_if.elf
Memory region         Used Size  Region Size  %age Used
    m_interrupts:          1 KB         1 KB    100.00%
          m_text:       54648 B        59 KB     90.45%
        m_cfgrom:          10 B         4 KB      0.24%
          m_data:        7252 B       7904 B     91.75%
        m_cfgram:         142 B        256 B     55.47%
        m_data_2:          2 KB         2 KB    100.00%
       m_usb_ram:          40 B         2 KB      1.95%
   text	   data	    bss	    dec	    hex	filename
  55664	   1224	   8276	  65164	   fe8c	build/lpc11u35_ssci1114_if.elf
  55664	   1224	   8276	  65164	   fe8c	(TOTALS)
Converting build/lpc11u35_ssci1114_if.hex
Converting build/lpc11u35_ssci1114_if.bin
build/lpc11u35_ssci1114_if_crc
board_id None
family_id None
bin_offset None
Start 0x0, Length 0xde38, CRC32 0x07a97979
```

無事にビルドできました。

## サイズ比較
参考までにビルドされたイメージサイズを比較してみました。少しだけ、小さくなっていました。

### arm-none-eabi-gcc (GNU Arm Embedded Toolchain 10.3-2021.10) 10.3.1 20210824 (release)
```
   text	   data	    bss	    dec	    hex	filename
  55748	   1320	   8280	  65348	   ff44	build/lpc11u35_ssci1114_if.elf
  55748	   1320	   8280	  65348	   ff44	(TOTALS)
```
### arm-none-eabi-gcc (Arm GNU Toolchain 13.2.rel1 (Build arm-13.7)) 13.2.1 20231009
```
   text	   data	    bss	    dec	    hex	filename
  55676	   1224	   8276	  65176	   fe98	build/lpc11u35_ssci1114_if.elf
  55676	   1224	   8276	  65176	   fe98	(TOTALS)
```

## ボードへの書き込み
ターゲットボードに書き込みを行います。ISPボタンを押しながら、USBケーブルでPCと接続します（CRP DISABLDというボリュームがマウントされます）。

古いファームウェアを削除します。

```
$ rm -rf /Volumes/CRP\ DISABLD/firmware.bin 
```

新しいDAPLinkを書き込みます。
```
$ cp ./projectfiles/make_gcc_arm/lpc11u35_ssci1114_if/build/lpc11u35_ssci1114_if_crc.bin /Volumes/CRP\ DISABLD 
$ sync
```

USBケーブルを再接続して、DAPLinkが更新されたことを確認します。

```
$ cat /Volumes/MBED/DETAILS.TXT 
# DAPLink Firmware - see https://daplink.io
Build ID: 0246-1329-g8f927427 (gcc)
Unique ID: 1114000119e5e91e00000000000000000000000097969902
HIC ID: 97969902
Auto Reset: 1
Automation allowed: 1
Overflow detection: 1
Incompatible image detection: 0
Page erasing: 0
Daplink Mode: Interface
Interface Version: 0259
Git SHA: 8f927427df0982d29b91d360d790ae3e2a095f4f
Local Mods: 0
USB Interfaces: MSD, CDC, HID, WebUSB
Interface CRC: 0xc20904fd
Remount count: 0
URL: https://mbed.org/device/?code=1114000119e5e91e00000000000000000000000097969902?version=0259?target_id=@T
```

以上です。