MochiOS@仮想ファイルシステムの作成part4

MochiOS@仮想ファイルシステムの作成part4

前提知識無しで作るなんちゃって仮想ファイルシステムpart4。

開発日記です。独り言です。

これまでのあらすじ

part 内容
0 仮想ファイルシステムを作りたい宣言をする。
1 ざっくり仮想ファイルシステムの機能を決める。
が、機能呼出し先の仮想ファイルシステムのタスクIDをどう取得するかという問題に気付く。
2 カーネルにタスク名登録機能を実装した。
これでタスク名からタスクIDを取得する事が出来る様になるハズ、なので試したいが試す方法が無い事に気付き、ログ出力タスクの開発を宣言する。
3 ログ出力の為に使うvsnprintf()の仕様を調べる。

とりあえず確認できた。

vsnprintf()の仕様調査や実装方法、リアルのお仕事の多忙さやハワイ旅行などで苦戦しつつ、漸くタスク名「LOG」からタスクIDを取得し、そのタスクIDへログ出力メッセージを送信する事ができた。
ログ出力を確認したところ
ちょっと洒落てmlog起動時にロゴを出している。
基本的な動きは以下の通り。
mvfsmlogカーネル物理メモリ領域割当( VRAMアドレス )仮想アドレスタスク名登録( "LOG" )mlogロゴ画面出力タスクID取得( "LOG" )タスクIDログ出力( "main.c:115 mvfs start!" )※ログ画面出力mvfsmlogカーネル
※ファイル名main.cと行数115はvsnprintf()により書式変換している。

仮想ファイルシステム開発に戻る

思い起こすと、私は仮想ファイルシステムの開発をしようとしていて、part1でこんなシーケンスを考えていた。
(ビデオは一旦ログ出力で占有する事にしたので、シーケンスの登場人物ビデオドライバをシリアルポートドライバに変更した)
ユーザプロセスmvfsシリアルポートドライバmount( "/serial" )open( "/serial" )open( "/serial" )read()read()レジスタ読込みwrite()write()レジスタ書込みclose()close()unmount( "/serial" )ユーザプロセスmvfsシリアルポートドライバ
無事、タスク名によってタスクIDを取得できるようになり、メッセージ通信ができるようになったので、次回からメッセージの設計をするよ!

コメント

このブログの人気の投稿

プライバシーポリシー

git@よく使うコマンド早見表