watari開発 – Advent201905 –
stage5: 機能リスト 開発に着手する前に何を作るのかフワッと決めておこう。 大きな仕事であれば、「フワッとデザイン」から「シッカリデザイン」に落とし込んでその中で機能を詰めていったり(トップダウン的なアプローチ)、困っているところから着手して最後に画面を当て込む(ボトムアップ的なアプローチ)が […]
未知との出会いとワクワクを。
stage5: 機能リスト 開発に着手する前に何を作るのかフワッと決めておこう。 大きな仕事であれば、「フワッとデザイン」から「シッカリデザイン」に落とし込んでその中で機能を詰めていったり(トップダウン的なアプローチ)、困っているところから着手して最後に画面を当て込む(ボトムアップ的なアプローチ)が […]
stage4: 想い どんなものを作るのかは決まったし、具体的にどんな機能にするのかを考えていくか。と思ったけど、今日は少し本線から外れてエモい話を載せておこう。これはプロダクトを開発する時にブレない、諦めないための信念のようなものだ。偏執的であればあるほど良いらしい。 事業の構築が先か、想いが先か […]
stage3: シンプルで普遍的な解決策 シンプルなこと 今回取り扱うのが 旅の状況や楽しさを伝えるための既存ツールの役不足 or めんどくささ もう少し要素分解すると 楽しさが伝えられない ブログのようなまとめてのアウトプットはコストが高い twitterのようなアウトプットは断片的な共有になって […]
stage 2: 選択と集中 前回、旅における個人的な「痛み」を探した。 旅の状況や楽しさを伝えるための既存ツールの役不足 or めんどくささ 情報収集めんどくさい 旅をして、その旅が資産になって、また旅にいける。になってない 一度に全てを満たすように動くのはとても大変だ。そのため、一極集中で限りな […]
アドベントカレンダー開始 qiitaとかに書いてもいいのだけど、ブログ持っているのでこちらでやろう。ということでアドベントカレンダー開始です。 テーマ: 「プロダクト開発」 会社作ってから4年くらい経っている。最初はwebサービスを作っていたがなんか違うと思ってやめてから受託開発をずっとしている。あ […]
Step12 外部割込みを実装する ようやく最終stepにきた。長い道のりだった。最後のテーマは外部割込み。シリアルから1文字受信割込みと、コマンド応答スレッドを作成する。 割込みとスレッド step6とstep8で利用したgets()はビジーループによりシリアルの受信待ちをしている。そのため常にC […]
Step11 タスク間通信を実装する これまでのstepでアプリケーション・プログラムをスレッドとして並行動作させ、メモリ管理を行なってきた。今回はこのスレッド間での情報のやり取りを実現するためにタスク間通信を実装していく。 タスク間通信 組込みOSでは、高速性やリアルタイム性の観点から、デバイス・ […]
Step10 OSのメモリ管理 OSの役割 コンピュータの資源を管理し、複数のタスクに効率的に割り当てること と言えるだろう。 KOZOSでは処理をタスクとして分割するためにスレッドという仕組みを用意した。スレッドの実行時間は CPU時間 という資源を割り当てていることになる。 コンピューターの3大 […]
Step9 優先度スケジューリング 延長戦 kozosファイルの修正が終わったのでシステムコールの追加を行なっていく。 システム・コールの追加 syscall.hの修正では、kozosファイルで利用していた構造体の定義を追加したり、kz_run()のパラメータに優先度を渡せるように修正を行う。 sy […]
Step9 優先度スケジューリング 後半戦 step8の前半戦でラウンドロビン方式から優先度スレッドにする必要がある。というのを理解した。またアイドル・スレッドというのを何も処理がない時(優先度が最も低い状態の処理として)実装するのが必要そうである。 さっそくやっていこう。 優先度の実装 以下のファ […]