割込み処理の諸概念 割込みハンドラ:割込み要因ごとに定義された 処理ルーチン デフォルトハンドラ:汎用的な割込みハンドラ (最低限の処理のみ実行) 割込みベクタ:割込み要因を表す番号 割込みベクタテーブル:割込み要因ごとにその ハンドラの先頭アドレスを格納した表 プログラマブル割込みコントローラ 最高優先度 エアバック センサ 高優先度 コアCPU PIC 割込み ブレーキセンサ 中優先度 割込み ハンドラ 燃料レベル センサ 低優先度 実時間 クロック ハードタイマとソフトタイマ PIT コアCPU 割込み 周期設定 タイマ 割込み サービス ルーチン 起動 ワーカ タスク カウント ダウン ソフトタイマ テーブル カウント 処理 カウント 処理 カウント 処理 タイマテーブルのソート ソートされていないタイマテーブル 18 17 12 23 5 9 14 6 11 30 2 7 8 ソートされたタイマテーブル 2 5 6 7 8 9 11 12 14 17 18 23 30 2 3 1 1 1 1 2 1 2 3 1 5 7 タイミングホイール クロック ダイアル タイムスロット タイムスロット タイムスロット タイムスロット 起動 起動 処理 起動 処理 タイムスロット タイムスロット 処理 タイムスロット 処理 タイムスロット 処理 処理 階層的タイミングホイール 0 クロック 100m秒 ダイアル 200m秒 切替え 0 1秒 2秒 クロック ダイアル 切替え 0 1分 2分 300m秒 3分 400m秒 4分 500m秒 分単位 タイムスロット 600m秒 700m秒 800m秒 58秒 900m秒 59秒 100m秒単位 タイムスロット 秒単位 タイムスロット 内部断片化と外部断片化 ブロックサイズ=32 A= malloc(120) free(D) B= malloc(20) E=malloc(40) 割り当て失敗 C= malloc(50) D= malloc(32) free(B) コンパクション(外部断片化の解消) E= malloc(40) ⇒ コンパクション起動(移動ブロックへのアクセス不可) メモリブロックの割当て メモリプール方式 32 50 128 通常のソフトウェアの開発環境 コンパイラ エディタ デバッガ 標準ライブラリ 汎用オペレーティングシステム 開発環境 汎用CPU 開発ソフトウェア 標準ライブラリ 汎用オペレーティングシステム 実行環境 サーバーCPU 組込みソフトウェアの開発環境 コンパイラ エディタ デバッガ 標準ライブラリ 汎用オペレーティングシステム 開発環境 汎用CPU 開発ソフトウェア(ROM) 特化されたライブラリ リアルタイム組込みOS 実行環境 専用CPU(開発中?) テストとデバグ テスト開始 テスト実行 OK? Yes No 原因究明 対策実施 テストへの反映 十分? デ バ グ Yes テスト終了 No ターゲットデバグエージェント クロスプラットフォーム開発環境 e.g. 開発ホスト: Linux ターゲットシステム: Andoroid ホストシステム上でのソースレベルデバッグに必要な情 報を提供するターゲットデバグエージェント ・メモリ、レジスタのR/W ・ブレークポイントの設定・削除 ・シングルステップ実行 ・ホストデバッガとの通信 ターゲットデバグエージェント ターゲットプログラム ・実行制御のための書換え デバグエージェント ・参照、変更 ・ホストとの通信 ホストデバッガ ・デバッガインタフェース ・高級言語インタフェース ・ユーザインタフェース
© Copyright 2025 ExpyDoc