
2026/06/03 4:30
Pinecil の JLink JTAG アクセスについて
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
元の要約は、そのように記述されている限り正確で明瞭であり、再編成は必要ありません。
本文
Pinecil 開発環境での JLink デバッグ設定と利用方法
Pinecil ソルダリングアイロンの購入以来、ブートアップボードを利用した UART アクセスタやソルダリングの記事を執筆し続けてきました。Zephyr プロジェクトへのBL706 マイコプロセッサの上流支援追加を受け(※ VynDragon 氏、will-tm 氏、Josuah 氏および Bouffalo Lab プロジェクトの皆様に感謝申し上げます)、開発の深掘りを推進しています。
デバッグ機能が必要な理由
- ログ確認:
にアクセスしシステム動作を確認する際は有用です。UART - 本番デバッグ: システム初期化やドライバ関連の課題を追跡・解決するには、デバッグ機能への直接アクセスが不可欠です。
市場には多様な JTAG 探針が存在しますが、汎用性と堅牢さを考慮し、私は標準的に JLink を使用しています。
Pinecil と JLink の接続方法
ブートアップボードの準備が必要であり、その板には以下の機能が含まれています:
- 10 ピンヘッダー: JTAG シグナル用
- 電源・基準電位: 3.3V レファレンスピン(
)、GND 4 つVTref
カット&クイック接続法
JLink のアダプターを使うのではなく、フェメール−フェメール(female-to-female)デュポン線のみで直結可能です。
- 手順: ブートアップボードの標準 2.54mm ピン ↔ フェメール−フェメール線 ↔ JLink(フェメール−マレール接続)。
- メリット: デバッグセッション間のピン再配線が不要になります。
ピン割り当てと向き確認
リボンケーブルを使用すると向きで混乱しやすいため、以下の基準に注意してください:
- ノッチを上にする。
- VTref ピン(JLink ピン 1 / 白い線)は、リボンケーブルの配列において左上隅に位置します。
- これは JLink 側で VTref が右上隅にあるため、接続合わせの際の基準となります。
接続検証と環境構築
接続完了後、
JLinkExe を使用して割り当ての正しさを確認します。ブートアップボードの 3.3V ピンから VTref を供給することにより、JLink が論理電圧レベル(約 3.3V)を検出できます。
コマンドラインでの接続確認
JLinkExe
出力例:
SEGGER J-Link Commander V9.28 (Compiled Mar 18 2026 15:27:55) DLL version V9.28, compiled Mar 18 2026 15:26:49 Connecting to J-Link via USB...O.K. Firmware: J-Link V11 compiled Apr 1 2025 10:02:30 Hardware version: V11.00 J-Link uptime (since boot): 0d 00h 00m 02s S/N: 821010562 License(s): GDB USB speed mode: High speed (480 MBit/s) VTref=3.335V
GDB サーバーの起動とデバッグ開始
gdb との接続には、JLinkGDBServer を使用します。これにより BL706 MCU 搭載のSiFive E24 コア内部の JTAG に接続でき、ローカルポートでサーバーを立ち上げます。
サーバー起動コマンド
JLinkGDBServer -device E24 -if JTAG
出力例:
SEGGER J-Link GDB Server V9.28 Command Line Version JLinkARM.dll V9.28 (DLL compiled Mar 18 2026 15:26:49) Command line: -device E24 -if JTAG -----GDB Server start settings----- GDBInit file: none GDB Server Listening port: 2331 SWO raw output listening port: 2332 Terminal I/O port: 2333 Accept remote connection: yes Generate logfile: off Verify download: off Init regs on start: off Silent mode: off Single run mode: off Target connection timeout: 0 ms ------J-Link related settings------ J-Link Host interface: USB J-Link script: none J-Link settings file: none ------Target related settings------ Target device: E24 Target device parameters: none Target interface: JTAG Target interface speed: 4000kHz Target endian: little Connecting to J-Link... J-Link is connected. Firmware: J-Link V11 compiled Apr 1 2025 10:02:30 Hardware: V11.00 S/N: 821010562 Feature(s): GDB Checking target voltage... Target voltage: 3.30 V Listening on TCP/IP port 2331 Connecting to target... J-Link found 1 JTAG device, Total IRLen = 5 JTAG ID: 0x20000E05 (RISC-V) Halting core... RISC-V RV32 detected. Using RV32 register set for communication with GDB Core implements single precision FPU Connected to target Waiting for GDB connection...
デバッガの起動と符号読み込み
以下の
gdb コマンドでサーバーに接続し、ファームウェアのシンボルを読み込んでください。
gdb -ex 'target remote :2331' ./path/to/firmware.elf
出力例:
Remote debugging using :2331 arch_irq_unlock (key=8) at /home/hasheddan/code/github.com/zephyrproject-rtos/zephyr/include/zephyr/arch/riscv/arch.h:338 338 __asm__ volatile ("csrs " RV_STATUS_CSR ", %0"
この時点から、インストラクションごとのステップ実行を開始できます。快適なデバッグをお楽しみください!