LoginSignup
2
1

DAPLinkをGCC 13.2でビルドする

Posted at

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

以上です。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1