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