3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

お題は不問!Qiita Engineer Festa 2023で記事投稿!

[tang nano 9k] picorvを動かしてみた

Last updated at Posted at 2023-07-13

環境

  1. windows11
  2. wsl2
    • make用

使用ツール

  1. Tang nano 9k
  2. Gowin ide
  3. picoRV32のクロスコンパイラ
    • xpack-riscv-none-embed-gcc-8.2.0-3.1-linux-x64.tgz
    • ここからとれます(xpack-riscv-none-embed-gcc-8.2.0-3.1-linux-x64.tgz)
  4. teraterm
  5. picorv等のソースコード: https://github.com/sipeed/TangNano-9K-example/tree/main

1. 事前準備

  1. リポジトリを適当な場所にcloneする。
  2. TangNano-9K-example\picotiny\project\picotiny.gprjをgowin ideで開く
  3. Project->Configuration->Place&Route->Dual-Purpose PinUse MSPI as regular IOにチェック
  4. 左側下部にあるバーからProcessタブに移動してPlace & Routeを右クリック、表示されるClean & Return Allをクリックして実行
  5. teratermを起動
  6. シリアルを選択して設定から115200を選択し通信開始
  7. 適当なCOMポートを指定して以下のコマンドをTangNano-9K-example\picotinyで実行
python .\sw\pico-programmer.py .\example-fw-flash.v COM??
  1. tang nano 9kのリセットボタンS1を押して離す
Read program with 11760 bytes
  - Waiting for reset -
    ...

この表示が出たら成功です。

Total sectors 3
Total pages 46
Flashing 1 / 3
Flashing 2 / 3
Flashing 3 / 3

Flashing completed
  1. teratermにCommand>やメニューが表示される

以上が公式チュートリアルの内容でした。これをもとにメニューの中身を書き換えます。

2. 独自のコマンドの追加

先ほどのexample-fw-flash.vに相当するものを自作します。fwディレクトリ内のcファイルを編集してクロスコンパイルします。

  1. (例)全部のledを一度に点灯させるコマンドを作成します。以下のようにcaseを1つだけfw/fw-flash/firmware.cに追加しました。
case '7':
                GPIO0->OUT ^= 0x0000003f;
                break;
  1. xpack-riscv-none-embed-gcc-8.2.0-3.1-linux-x64.tgzを解凍
    tar -xvzf /mnt/c/User---/xpack-riscv-none-embed-gcc-8.2.0-3.1-linux-x64.tgz
  2. Makefile内のコンパイラの位置を修正 (ここではopt下に解凍したため以下のようになります)
    RISCV_PATH ?= /opt/xPacks/riscv-none-embed-gcc/8.2.0-3.1
  3. makeを実行
  4. 先ほどのpythonコマンドのvファイルをfw-flash.vのパスに置き換えて実行します。そこからの操作は先ほどと変わりません。
  5. teratermに表示されるメニューが先ほどから変化していたら成功です。

各所の画像

  • (python ./sw/----で書き込んだ後に)teratermでシリアルを選択。
    スクリーンショット 2023-07-13 110122.png

  • 設定からシリアルポートを選択
    スクリーンショット 2023-07-13 110343.png

  • 115200を選択
    スクリーンショット 2023-07-13 110350.png

  • [7]を追加してみました。
    aaaaaaaaaaaaaaa.png

すべてのledの点灯を操作できています。

注意

  • pcから取り外すと全部リセットされるので取り外した後もう一度実行したいときはgowinでplace&routeからpython ./sw/--, s1ボタンを押して離して, teratermを開く, をもう一度しないといけません。

参考資料

3
0
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
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?