みつきんのメモ

組み込みエンジニアです。Interface誌で「Yocto Projectではじめる 組み込みLinux開発入門」連載中

risc-v

新着順 人気順

Yocto Project bitbake-setup環境でMilk-V Duo Sを移植 その4

はじめに シリーズ物 Yocto Project bitbake-setup環境でMilk-V Duo Sを移植 その1 Yocto Project bitbake-setup環境でMilk-V Duo Sを移植 その2 Yocto Project bitbake-setup環境でMilk-V Duo Sを移植 その3 今回カーネルを構築する。 環境構築 カーネルは…

Yocto Project bitbake-setup環境でMilk-V Duo Sを移植 その3

はじめに シリーズ物 Yocto Project bitbake-setup環境でMilk-V Duo Sを移植 その1 Yocto Project bitbake-setup環境でMilk-V Duo Sを移植 その2 今回はu-bootを構築する。 環境構築 u-bootは現状のmeta-riscv(YP5.3)のものをベースに作業する。 devtool mod…

Yocto Project bitbake-setup環境でMilk-V Duo Sを移植 その2

はじめに シリーズ物 Yocto Project bitbake-setup環境でMilk-V Duo Sを移植 その1 今回は最初のブートローダのであるFSBLを移植する。 YP5.1(styhead)以降ではmilkv-duosのマシン定義も削除され、レシピの内容もMilk-V Duo向けにハードコードされるようにな…

Yocto Project bitbake-setup環境でMilk-V Duo Sを移植 その1

はじめに 前回までYP5.0(scarthgap)のmeta-riscvにあるカーネルにMilk-V Duo S向けのデバイスツリーやdefconfigを移植してきた。 基本的にはmeta-riscvのlinux-milk-duo-devのレシピをベースにしているためベンダ固有のドライバなどが移植済みの古いカーネル…

YoctoProject Buildroot SDK V2のデバイスツリーをmeta-riscvの環境に移植する

はじめに Milk-V DUOシリーズ Yocto Project Milk-V DUO Sを動かす Milk-V DUO S Buildroot SDK V2を調べる ここまでの調査で、Scarthgapのmeta-riscvの環境に、Buildroot SDK V2に含まれているMilk-V DUO S向けのデバイスツリーを移植するのがてがたそうだ…

Milk-V DUO S Buildroot SDK V2を調べる

はじめに 前回 Scarthgapのmeta-riscvでMilk-V DUO Sをブートしたが、 Milk-V DUO向けの設定をそのまま使っていてハードウェアの最適化などは行われたいない状態だとわかった。 ちゃんとしたポーティングを行うためにオフィシャルなBSP環境であるBuildroot S…

Yocto Project Milk-V DUO Sを動かす

はじめに Milk-V DUO Sを買って放置していた。 scarthgapのmeta-riscvではmilkv-duosのMACHINEが定義されているので動作を確認してみる。 ハードウェアへの最適化などが行われていないようで、 ブートができるだけで本格的に使用することはできないと思われ…

YoctoProject LICHEE RV DOCKを動かす

はじめに SiPEED LICHEE RV DOCKが転がっている。 これにはAllwinner D1が搭載されている。meta-riscvのマシン定義にnezha-allwinner-d1があるので試してみる。 環境を構築する 作業環境 $ mkdir -p ~/work/yocto/nezha-kirkstone $ cd ~/work/yocto/nezha-k…

Yocto Project CROPSでmeta-riscvをビルドしてみる

はじめに "Yocto Project CROPSを使ってみる"を拝見して、、、Fedoraのpodmanでもできました。https://t.co/YGURc1j6hz— nb.o (@Nextremer_nb_o) February 9, 2022 私の記事を参考にして、meta-riscvをビルドしようとしたけどうまくいかないらしかったので試…

Longan nanoをUbuntu 18.04のPlatformIOでハロワ

はじめに Lチカが動いたのでシリアルでHello worldしてみる。 このハロワは失業と関係ない 今時の人たちはHello worldを「ハロワ」と略すらしい。 当時在籍した会社が潰れてハローワークにお世話になった経験がある筆者は、このワードからは悲壮感しか無い。…

Longan nanoをUbuntu 18.04のPlatformIOでLチカ

はじめに 安価なRISC-Vボードとして国内でも比較的入手が簡単なLongan nanoを入手した。 開発環境としては当ブログでもおなじみのPlatformIOに対応している。 国内で入手が容易なせいか日本語の情報も多いが、Windows環境での動作報告記事が多いので、ここで…

ベアメタルのHiFIve1 Rev.BでHello world

はじめに 前回ベアメタルでLチカは動いたので、今度はシリアルを動かす。 ホストPCの環境はUbuntu 18.04 UARTのポート HiFive1 Rev.BをPCに接続すると/dev/ttyACM0と/dev/ttyACM1が見えるようになる。 この内/dev/ttyACM0はデバッグコンソールとして使える。…

ベアメタルでHiFIve1 Rev.Bを動かす

はじめに PlatformIOでHiFive1 Rev.Bを動かすで下記のように書いたので ベアメタルで動かしてみる。 標準のライブラリやヘッダは使っていないので、リンカスクリプトとスタートアップを書けば、 ベアメタルでもこのまま動くはず。 リンカスクリプト リンカス…

PlatformIOでHiFive1 Rev.Bをデバッグする

はじめに 前回はPlatformIOでLチカの実行までしたので、デバッグ方法調べる。 pio debug 特にplatform.iniを書き換えたりする必要もなく次のコマンドでデバッグを開始できる。 $ pio debug --interface=gdb Warning! Please install `99-platformio-udev.rul…

PlatformIOでHiFive1 Rev.Bを動かす

はじめに HiFive Rev.Bを入手したのでまずはPlatformIOでLチカする。 プロジェクトの作成 次のコマンドを実行し、PlatformIOのプロジェクトを作成する。 $ platformio init --board hifive1-revb 無印とはブートアドレスが異なるので、ボードもhifive1-revb…

RISC-Vのベアメタル入門(自分用) 割り込み(CLINT)編 その2

はじめに 追記しました(3/28) 題名がもうなんだかわからなくなってきたが、とりあえずCLINT編の続き。 前回、michaeljclark/riscv-probeの割り込みベクタとハンドラの部分を調査した。 実際にこの部分を動かしているサンプルであるprobe.cを実行してみたとこ…

RISC-Vのベアメタル入門(自分用) 割り込み(CLINT)編

はじめに RISC-VというかFE310の割り込み周りについて勉強する。 取っ掛かりとしてはここが分かりやすかった。 割り込みの種類 RISC-V ISAではグローバル割り込み(global interrupt)とローカル割り込み(local interrupt)が定義されている。 HART(HARdware Th…

RISC-Vのベアメタル入門(自分用) UART編

はじめに 前回動かした環境でUARTを動かしてみる。 具体的には、またdwelch67/sifive_samplesを写経する。 UARTのレジスタ構成 SiFive FE310-G000 Manual v2p3から抜粋する。 UARTレジスタ 必要なレジスタは7つ。 注意する点としては、txdataのところにこん…

RISC-Vのベアメタル入門(自分用)

はじめに PlatformIOなどを使用すれば、なんちゃってベアメタルプログラミングは簡単に始められるが、 そこに至るまでの知識が全く足りていないため少しだけ掘り下げてみる。 今回のターゲットはSiFiveのHiFive1(のエミュレータ)。 ツールチェイン HiFive1に…

RISC-V QEMU

はじめに RISC-VのQEMUを動かしてみる。 依存パッケージのインストール $ sudo apt-get install gcc libc6-dev pkg-config bridge-utils uml-utilities zlib1g-dev libglib2.0-dev autoconf automake libtool libsdl1.2-dev ビルド ここを参考にビルド $ git…