はじめに 2017年3月、Raspberry Pi2に搭載しているARM Cortex-A7の特権レベルで動作するプログラムの作成方法について調べました。 ARMのシステム制御コプロセッサ(CP15)は、プロセッサが実装している機能のステータス参照や制御を行うものです。CP15を操作するほとんどの命令は、特権レベルで実行しなければなりません。 Linuxが動作している場合は、次のようになります。 非特権モード : アプリケーション用の動作モードで、ハードウェアに直接アクセスできません 特権モード : カーネル用の動作モードで、あらゆるハードウェアにアクセスできます すなわち、Linux上の一般的なアプリケーションソフトは特権レベルの命令を使用できません。特権レベルで動作するプログラムは、カーネルに組み込むことになりそうです。 カーネルとカーネルモジュール 私は、Linuxのカーネルのソース
![Raspberry Piでカーネルモジュールを作成 | ある計算機屋さんの手帳](https://cdn-ak-scissors.b.st-hatena.com/image/square/007620e632d20431ace222f225e60cb35e4689b2/height=288;version=1;width=512/http%3A%2F%2Fmy-web-site.iobb.net%2F~yuki%2Fwp-content%2Fuploads%2F2017%2F03%2F201703_cpu-mode0-kernel-150x150.jpg)