組み込みソフトウェア/ハードウェア開発における技術力の向上、改善・最適化などを幅広く支援する“組み込み開発エキスパート”のための情報フォーラム
組み込みソフトウェア/ハードウェア開発における技術力の向上、改善・最適化などを幅広く支援する“組み込み開発エキスパート”のための情報フォーラム
カーネルはLinuxシステムの中核をなす重要なソフトウエア部品です。Linuxを使いこなすためには,カーネルの動作や仕組みに対する理解が欠かせません。本連載では,Linuxカーネルの役割とその仕組みを体系的に紹介します。 第1回 カーネルの機能とその利用法 第2回 プログラムとプロセス 第3回 プロセス・スケジューリング 第4回 プロセス・メモリー管理 第5回 カーネル・メモリー管理 第6回 割り込み管理 第7回 ファイル・システム(前編) 第8回 ファイル・システム(中編) 第9回 ファイル・システム(後編) 第10回 ファイル名の文字コード 第11回 デバイス・ドライバ 第12回 ソケット・インタフェース 第13回 IPとルーティング 第14回 TCPとUDP 第15回 パケット・フィルタリングとQoS機能 第16回 排他制御機構 第17回 モジュール機構 第18回 カーネルの起動処理
プリエンプション(英: preemption)は、マルチタスクのコンピュータシステムが実行中のタスクを一時的に中断する動作であり、基本的にそのタスク自体の協力は不要で、後でそのタスクを再実行するという意味も含む。このような動作をコンテキストスイッチと呼ぶ。通常、保護されたタスクか、システムの一部であるプリエンプティブスケジューラが行う。それらは、システム内の他のタスクに割り込み、後でそれらタスクを再開させることができる。「プリエンプト」とは「先取りする、差し替える」の意。 どんなシステム設計でも、プリエンプション不可能な操作が存在する。それは通常カーネルの機能や割り込み処理であり、それらを完了まで実行できるようにしておかないと、競合状態が発生しやすくなり、デッドロックを誘発する。タスクがカーネル機能を処理中は、スケジューラがプリエンプションできないようにすることで、システムの反応性を若干犠
2005-09-25 μITRONのようなマルチタスク環境でC++を使う場合、静的なオブジェクトの操作や、クラスのメンバ変数の操作では排他制御が必要になることが多いと思います。しかし、参照やポインタを引数として受け取る関数や、クラスのメンバ関数を、何でもかんでも排他制御しようとすると、大きなオーバーヘッドになってしまいます。 そんなとき、volatile修飾子による多重定義が役に立ちます。volatile修飾子は、構文上はconst修飾子と対等の関係にありますから、volatile参照やvolatileポインタに対して関数を多重定義することもできますし、volatileメンバ関数を定義することもできます。 具体的な例として、オブジェクトの値を入れ替えるためのswap関数について考えてみましょう。標準C++ライブラリが提供しているstd::swap関数は、原則としてマルチタスク環境にには対応
1. プロセッサ実行ステート 2. ステートの移行 THUMBステートへの移行 ARMステートへの移行 3. メモリフォーマット 4. 命令長 5. データの型 6. 実行モード 7. レジスタ 7.1. ARMステート時のレジスタセット 7.2. THUMBステート時のレジスタセット 7.3. ARM,THUMB 各ステート時のレジスタセットの関係 7.4. 上位レジスタへのアクセス(THUMBステート時) 8. ステータスレジスタ 8.1. コンディションコード 8.2. 制御ビット 9. 例外 9.1. 例外発生時の動作 9.2. 例外処理からの復帰時の動作 9.3. 例外処理の開始と終了のまとめ 9.4. FIQ 9.5. IRQ 9.6. アボート 9.7. ソフトウェア割り込み 9.8. 未定義命令 9.9. 例外ベクタ 9.10. 例外の優先順位 10. 割り込み遅延時間 1
ウォッチドッグタイマー (watchdog timer) は、コンピュータシステムにおいて定期的に発動することで、システムが機能し続けていることを確認させるためのタイマーである。 ウォッチドッグタイマー情報を示すwdctlのスクリーンショット メインのプログラムがハングアップなどの不正な状態に陥ってしまい、規則的なウォッチドッグ操作(「犬をなでる」とも呼ばれる「サービスパルス」の書き込み)が行なわれなかった(タイムアウト)場合に、例外処理が実行される。例外処理は、ハングアップしたシステムを正常動作に戻すことを目的としてシステムをリセットする場合が多いが、電源切断によりシステムを強制停止させるものや電源を切断した後に再投入するものもある。 確実さのため、ハードウェアに組み込まれることも多いが、ソフトウェアで実装することが必ずしも無意味ではない。「ハードウェア的には健全に見えるが、ソフトウェア
組み込みソフトウェア/ハードウェア開発における技術力の向上、改善・最適化などを幅広く支援する“組み込み開発エキスパート”のための情報フォーラム
Web業界の方に「組み込み系ソフトウェア」「家電系ソフトウェア」という話しをすると途端に表情に?マークが浮かび、会話がかみ合わなくなることがある。先日id:amachangと飲みながらそんな話しをしていたので、組み込みソフトの世界について、Web業界・PC業界の方にもわかりやすく説明してみたい。折しも就職活動が激化する時期でもあるので、組み込みソフトウェア業界ってものがいったい何を指すのかよくわからん、という学生の諸君の参考にでもなればと思う。 そんなものにもOSが 自宅にあるルーターやDVDレコーダー、テレビ、カーナビ。普段なんの気なしに使っているけど、実は中をあけてみると、WindowsだのLinuxだのといったOSが入っていることがほとんど。でも起動するときにWindowsのロゴマークとか出ないのは、単に出ないようにしているだけ。ものすごい極端に言えば、メディアプレイヤーしか使えない
「建築様式」の意味で、コンピュータでは基本設計を指します。 マイコンでは、次のような項目が含まれます。 データ・ビット幅 アドレス空間とバンク構成 命令セットとアドレシング・モード 資源の割り当て(メモリやレジスタなど) パイプライン構成 内部バス構成 キャッシュ・メモリ構成 バンク構成は、アドレス空間を多面的に管理するものです。 アドレシングは、リード/ライトするデータのアドレスを指定する方法で、次のようなものがあります。
プレステでゲームを作っています。 せっかくなのでHPを作ろうと思ったのですが、 すでに多くのホームページが公開されていました。 というわけで、別の方向に突っ走ることにしました。 このページはプレステでのプログラミングについて、 最初の一歩とアセンブラという、相反することをまとめています。 中間がないので、何かを作るようになったら、 別のホームページを参考にしてください。 たぶん1998年中には、ゲーム制作に関するページは公開しません。 いろいろと事情があるので、そっち方面は期待しないでください。 [表紙] ・目次だよ [すぱんだ] ...プレステでプログラミング 1999-12-20更新 [R3000特訓講座] ...1週間で覚えるR3000 1998-03-19更新 [R3000の常識] ...R3000アセンブラの基礎知識 1997-03-03更新 [R3000命令表] ...お約束の
C/C++ 使いの人々は,malloc/free を妄信していませんか ? デフォルトの new/delete で満足していませんか ? とりあえず,自前でメモリ管理をちゃんとしてるんだから,何となく早くなるんじゃないか,と安心してませんか ? 対照的に GC が付いた言語の使い手達は,自前でメモリ管理をするなんて時代遅れ,と思ってはいませんか ? エライ人達ががんばって超スゴーな GC のアルゴリズムを実装してくれるはず,と GC を妄信していませんか ? 私がそうでした.メモリ管理をなめてました.甘甘の大甘ちゃんでした. ボスが以前, 「メモリの使い方まで,ちゃんと理論的にしていかないと駄目だ」 とおっしゃっていたのですが,私は 「う〜ん,でもなぁ… メモリなんていう低水準な部分は,完全に OS とかコンパイラとかの実装依存だし,どうしようもないんじゃないのかなぁ… まさか,全部一か
この記事には複数の問題があります。改善やノートページでの議論にご協力ください。 出典がまったく示されていないか不十分です。内容に関する文献や情報源が必要です。(2016年4月) マークアップをスタイルマニュアルに沿った形に修正する必要があります。(2016年4月) 出典検索?: "プログラマブル・カウンタ" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL プログラマブル・カウンタ(英: Programmable Counter)とは電子回路の一つで、任意の回数の入力信号変化を計数することができるカウンタ。 プログラマブル・カウンタは、通常2つのレジスタから構成される。1つは入力パルスがある度に1ずつ増加する回路を持つもので、もう1つは前者をクリアする値を保持しておくものである。CPUがこれらのレジスタ
2005-08-18 「C++では、デストラクタは原則としてvirtualを付けて仮想関数にしておくこと。仮想でないデストラクタは継承できないことを意味する」との主張をよく目にすることがあります。今回は、組み込み環境でもそうした主張を鵜呑みにしてもよいかどうかについて、お話したいと思います。 確かに正攻法のオブジェクト指向プログラミングをやろうとすればその通りなのですが、仮想デストラクタというのはインスタンスを動的に生成することを前提としています。ご存知の通り、組み込みでは動的なメモリ管理は極力避ける傾向にありますから、ちょっと事情が違ってくるようです。 組み込みでは、ほとんどのクラスのインスタンスは、安易にnewで生成することはないと思います。newで生成することはあっても、どちらかといえば例外的な存在なのではないでしょうか?もしそうであれば、問答無用で仮想デストラクタを使用することは得
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く