U-Boot(ブートローダ)の作成方法
Linuxを起動する際に必要となるU-Bootの作り方について紹介します。DE0-Nano-SoCで用意されているパッケージをもとにしているので、比較的簡単にブートローダを作成することができます。
Linuxを起動する際に必要となるU-Bootの作り方について紹介します。DE0-Nano-SoCで用意されているパッケージをもとにしているので、比較的簡単にブートローダを作成することができます。
SMARTはYocto Projectで採用されているパッケージ管理システムです。Red Hat/CentOS/FedoraのDNFやYum、Debian/Ubuntuのapt-getのYocto版のような位置付けです。今回はオリジナルのSMARTからフォークして改良されたSMART2を使います。
組み込みLinuxが理解できれば、より一層の低省電力・省スペースの提案が可能になります。Raspberry Piの登場をきっかけに、初心者の方にも組み込みLinuxがより一層身近になりました。今回のこの講座を活かして、より多くの方に組み込みLinuxを使う上での基礎技術を学んでもらえればと思っています。
Cortex-M7もCortex-M3/M4と同じように低消費電力モードをサポートしています。基本はCortex-M3/M4と同じです。Cortex-M7にはWIC(ウェイクアップ割り込みコントローラ)を含むと3種類のスリープを持っていることになります。
AXI転送を行う際には、次に示す制限があります。バーストは、最大32バイト。バースト長さは、最大4転送。Strongly-orderedメモリまたはDeviceメモリの書き込みバーストの最大長は2転送です。Strongly-orderedメモリまたはDeviceメモリの読み出しは、常に1転送です。
Cortex-Aで採用されているユニフィケーションのポイント(Point of unification:PoU)と一貫性のポイント(Point of coherency :PoC)の考え方がCortex-M7でも採用されています。
データ・キャッシュにヒットする書き込みアクセスは、キャッシュRAMにデータを書き込みます。もし、メモリ領域が、Write-Throughにマークされているのであれば、書き込み動作はAXIMインターフェース上でも実行されて、外部メモリにも同じデータがストアされ、外部メモリとキャッシュの一貫性が保たれます。
Cortex-M7はハーバードキャッシュ(命令キャッシュとデータキャッシュ)を搭載しています。キャッシュのサイズはマイコンベンダーのオプションになっていて、命令キャッシュとデータキャッシュで各々4KB~64KBを選ぶことができます。
AXI(Advanced eXtensible Interface)プロトコルは、既にCortex-RやCortex-Aでは採用されており、高性能、高周波システム設計をサポートするプロトコルです。Cortex-Mシリーズでは、M7が初めて搭載しました。