Interface編集部
2021年2月 特集 7日目第2章アセンブリ言語で書いたLチカ・プログラムを動かしてみる
HiFive1ボードでRISC Vアセンブリ・プログラミング
動画1 RISC V搭載ボードでこのようにアセンブラ・プログラミングを試せます
■やり方
ここではWindowsでの実行手順を解説します.
●ダウンロード
次のウェブ・サイトからgcc用のツールチェーンをダウンロードします.
https://www.sifive.com/software
GNU Embedded Toolchain — v2020.04.1の下にあるUbuntuをクリックします.
氏名などの必要事項を入力し,「Submit」ボタンをクリックするとダウンロードできます.
ダウンロードした次のファイルを解凍します.
パス名が長すぎるとエラーになるため,Cドライブ直下などで行います.
riscv64-unknown-elf-gcc-8.3.0-2020.04.0-x86_64-w64-mingw32.zip
●アセンブラ
上で解凍した中にbinフォルダがあります.この中にある
riscv64-unknown-elf-gcc
riscv64-unknown-elf-objcopy
を使用します.必要であれば,binフォルダにパスを通します.
●アセンブリ・ファイルの用意
本誌のP105のリスト6をテキスト・エディタなどで打ち込み,アセンブリのソース・ファイルを作ります.
●変換
▲アセンブル
riscv64-unknown-elf-gcc -o bar.out -march=rv32g -mabi=ilp32 -Ttext 0x20010000 -nostdlib -nostartfiles bar.s
▲HEXファイルへ変換
riscv64-unknown-elf-objcopy -O srec bar.out bar.hex
●書き込み
マイコン・ボードHiFive1はPCにつなぐと,自動的にストレージ・デバイスとして認識されます(ドライバが必要な場合がある).
ここに,上記のbar.hexファイルをドラッグ・アンド・ドロップするだけで,書き込みは完了します.
書き込み完了後,自動的にマイコン・ボードが再起動し,書き込んだプログラムが実行されます.
●誤記訂正
103ページ左列において,次のような誤記がありました.訂正いたします.
<誤>
arm-none-eabi-gcc -o led_a32.out -mcpu=cortex-a72 -nostdlib-nostartfiles -Ttext 0x81000 led_a32.s
<正>
arm-none-eabi-gcc -o led_a32.out -mcpu=cortex-a72 -nostdlib -nostartfiles -Ttext 0x81000 led_a32.s