タグ

RISC-Vに関するmakaya2のブックマーク (9)

  • 40円RISC-Vマイコン(CH32V003)をArduino IDEでLチカをしてみました

    秋月電子さんに新商品のマイコンが入荷したようです。1個40円の32ビットRISC-Vマイコン CH32V003J4M6 [通販コード:118062]です。あまりの安さとSOP8の可愛さで気になってしまいます。開発環境は公式のものもあるのですが、Arduino IDEもサポートしているようです。今回はお手軽なArduino IDEでセットアップをしてみます。 他にも1個50円のCH32V003F4P6 [通販コード:118061]もあり、こちらはピン数も多く高機能のようですが、まずはSOP8で扱いやすそうなCH32V003J4M6で試してみます。マイコンに書き込むためのツールのWCH-LinkEエミュレータ [通販コード:118065]も販売されていましたのでこちらも購入しました。 マイコンで簡単な回路を作ってみる CH32V003J4M6はSOP8なのでピン間隔も1.27mmと広く表面実装

    40円RISC-Vマイコン(CH32V003)をArduino IDEでLチカをしてみました
  • たった1万円台のRISC-V CPU搭載&Linuxの動作に対応したお手頃コンピューターボード「BeagleV」

    現代のコンピューターのほとんどがx86やARMといったクローズドなアーキテクチャを採用する中で、プロセッサ業界に革新をもたらす鍵として注目されているのが、オープンソースの命令セット・RISC-Vです。そんなRISC-Vを搭載し、Linuxの動作にも対応した119ドル(約1万2400円)のコンピューターボード「BeagleV」が発表されました。 BeagleV https://beagleboard.org/static/beagleV/beagleV.html x86やARMはプロセッサのアーキテクチャとして多くのシェアを勝ち取っていますが、利用するためには高額なライセンス料を支払う必要があり、プロセッサ市場への新規事業者の参入障壁となる点などが問題視されてきました。オープンソースのRISC-Vは誰でも無料で利用できるため、普及すれば他業界や研究機関によるプロセッサ開発の垣根を下げ、安価な

    たった1万円台のRISC-V CPU搭載&Linuxの動作に対応したお手頃コンピューターボード「BeagleV」
  • RISC-V OSを作ろう (6) ~ セマフォ - VA Linux エンジニアブログ

    はじめに セマフォ セマフォ管理データ構造 セマフォ取得とセマフォ解放 事をする哲学者 実装してみる 動かしてみよう 最後に おまけ 執筆者 : 高橋 浩和 ※ 「RISC-V OSを作ろう」連載記事一覧はこちら ※ 「RISC-V OS」のコードはgithubにて公開しています。 はじめに 今回はタスクを協調動作させるための仕組みとして、セマフォによる同期機構を実現します。 セマフォ 今回はバイナリセマフォを実装します*1。 排他制御したい資源*2に対応したセマフォを定義します。 セマフォを取得したタスクのみ、そのセマフォに対応付けられた資源を操作可能という決まりを導入します。 これによりセマフォを取得したタスクは、独占的に資源を操作することができます。 セマフォの取得に失敗したタスクは、セマフォが解放されるまで待つ必要があります。 セマフォ管理データ構造 セマフォ状態を管理するデータ

    RISC-V OSを作ろう (6) ~ セマフォ - VA Linux エンジニアブログ
  • RISC-V OSを作ろう (5) ~ 時限待ち - VA Linux エンジニアブログ

    はじめに 実装方針 タスク状態 時限待ち要求 タイマハンドラの仕事 アイドル状態 動かしてみよう 最後に おまけ 執筆者 : 高橋 浩和 はじめに 今回はセマフォ機能を説明することを考えていましたが、少し順番を変更し、先にタスクの時限待ちの機能を実現することにしました。 タスクの時限待ちの機能は、指定時間だけタスクをスケジューリング対象から外す機能です。 実装方針 タスクが明示的に要求することにより、自タスクを時限待ち状態にできるようにします。このとき時限待ち状態でいる時間を指定できるようにします。 タスクスケジューラは時限待ち状態のタスク以外から実行権を与えるタスクを選択するようにします。 タイマハンドラには、指定された時間を経過した時限待ち状態のタスクの時限待ちを解除させます。 タスク状態 タスクの時限待ち機能を実現するために、タスクの状態として2つの状態を導入します。 タスク状態はT

    RISC-V OSを作ろう (5) ~ 時限待ち - VA Linux エンジニアブログ
  • RISC-V OSを作ろう (4) ~ タイムシェアリングスケジューリング - VA Linux エンジニアブログ

    はじめに 実装方針 タスクスケジューラ タイマハンドラ入口 タイムスライス タスク起動時の工夫 動かしてみよう 最後に 執筆者 : 高橋 浩和 ※ 「RISC-V OSを作ろう」連載記事一覧はこちら ※ 「RISC-V OS」のコードはgithubにて公開しています。 はじめに 今回はタイムシェアリングスケジューリング機能を実装します。 タイマ割り込みを契機にタスクスケジューラを起動することにより実現します。 実装方針 今まではタスクコンテキストからの明示的なタスクスケジューラ呼び出しのみであったため、タスクスケジューラを呼び出すタスクと、タスクスケジューラにより実行権を与えられるタスクは異なっていても、どちらもタスクコンテストでした。 今回はタイマハンドラのコンテキストからタスクスケジューラを呼び出し、タイマハンドラが終了せずにタスクスケジューラによって選択されたタスクに実行権が与えられ

    RISC-V OSを作ろう (4) ~ タイムシェアリングスケジューリング - VA Linux エンジニアブログ
  • RISC-V OSを作ろう (3) ~ 割り込み - VA Linux エンジニアブログ

    はじめに RISC-Vの割り込み機能 割り込み発生時の動作 割り込み禁止 タイマ割り込み機能を実装する RISC-Vのタイマ割り込み トラップベクタの登録 割り込みスタック タイマハンドラの用意 タイマ割り込みを発生させてみよう タスクをゆっくり動かしてみる 最後に おまけ 執筆者 : 高橋 浩和 はじめに 今回は、RISC-V OSに割り込み機能を追加します。今回は割り込みハンドラを動作させるところまで実装します。 割り込みは、CPU上でタスク等が実行している命令とは関係なく非同期に発生します。 割り込みが発生すると、OSは発生した割り込みの種別に対応した割り込みハンドラを呼び出します。 割り込みとよく似たものに、CPU上でタスク等が実行している命令が要因となって発生する例外があります。 例外の扱いについては別の機会に説明したいと思います。 RISC-Vの割り込み機能 今回実装するOSで

    RISC-V OSを作ろう (3) ~ 割り込み - VA Linux エンジニアブログ
  • RISC-V OSを作ろう (2) ~ タスク切り替え - VA Linux エンジニアブログ

    はじめに マルチタスク RISC-Vアーキテクチャにおけるタスクコンテキスト 関数呼び出し タスク切り替え関数の方針 タスク切り替え関数を実装しよう タスク切り替え タスクの初期化 最初のタスクの起動 デバッグ文 タスク切り替え関数を動かしてみよう タスクスケジューラの用意 タスクスケジューラを動かしてみよう 最後に おまけ 執筆者 : 高橋 浩和 はじめに 前回はbootプログラムが動くところまできました。今回は、複数のタスクが切り替わりながら並列動作できる仕組みを作ります。 まだ割り込み機能は無いので、タスクからスケジューラを明示的に呼び出すことにより、別のタスクへ切り替えてもらうという仕組みにします。 マルチタスク それぞれのタスクは、あたかも自分がCPUを専有しているかのようにプログラムを実行することができます。 各タスクに仮想的なCPUを割り当てることにより実現します。仮想的なC

    RISC-V OSを作ろう (2) ~ タスク切り替え - VA Linux エンジニアブログ
  • RISC-V OSを作ろう (1) ~ブート処理 - VA Linux エンジニアブログ

    はじめに 環境の用意 ブートプログラムを作る 動かしてみる コンパイル QEMU上で起動 GDBで制御 最後に おまけ 執筆者 : 高橋 浩和 ※ 「RISC-V OSを作ろう」連載記事一覧はこちら ※ 「RISC-V OS」のコードはgithubにて公開しています。 はじめに RISC-VはMIPSアーキテクチャの流れを汲む正統派?のRISC CPUです。命令セットはシンプルですが、既存のメジャーなCPUのアーキテクチャと大きな違いがあるわけではありません。 Linux上で利用できるRISC-Vツール群も揃ってきたので、それらを使ってRISC-V用の小さなOSを実装してみようと思います。 最初は欲張らずに単純な実装を目指すことにします。 シングルコアのみサポート 64bitモードを使用 マルチタスキングを実現 タイムシェアリングスケジューリングを実装 割り込みネストは無し 保護機能は使わ

    RISC-V OSを作ろう (1) ~ブート処理 - VA Linux エンジニアブログ
  • Chiselで簡単なRISC-Vを作った話 - ハードウェアの気になるあれこれ

    今年のGWの自分宿題としてものすごく簡単なRISC-Vを作っていました。 ツイッター見てる方はご覧になってたかもしれませんが、GW中に一応riscv-tests位ならPASSするものが出来ています。 今回はその後にVivadoで合成してみた結果も取ることが出来たのでそれも含めて紹介をしてみようと思います。 Chiselで作るオレオレRISC-V ディレクトリの構成 ブロック図 外部インターフェース リード ライト テスト環境 テスト環境のディレクトリ構成 テストの実行 RTLの生成 Ultra96上で合成 リソース使用量 タイミング 作ってみての感想 Chiselで作るオレオレRISC-V そんなわけで作ったRISC-V(適当にdirvという名前になってます)のスペックを。 こんな感じです。(これはgithubのREADMEをほぼそのまま載っけてます) RV32I Machine mode

  • 1