ステップバイステップ！リアルタイムOSを評価ボードへ移植    ～ TOPPERS/ASP3をNXP FRDM-MCXN947へ～ 第1回 

## 本記事について 

リアルタイムOSを市販のマイコン評価ボードに移植する手順をステップバイステップでポイント毎に動作を確認しながら、説明します。移植するリアルタイムOSはTOPPERS/ASP3です。 

下記構成で複数回に分けての投稿を予定しています。 

:::note info
本記事の投稿予定

[第0回 本記事の趣旨、TOPPERS/ASP3と評価ボードの説明](https://qiita.com/Debuggy_24/items/0b42d50c4744238bb3a1) 

第1回 準備　ハードウェアの入手、ツールのインストールなど 

[第2回 とりあえず動くものを移植](https://qiita.com/Debuggy_24/items/25e21b8b8d02fe614e4b) 

第3回 細部の作り込み1	クロックの設定 

第4回 細部の作り込み2	UARTドライバ 

[第5回 細部の作り込み3 タイマドライバ (ティックレス対応)](https://qiita.com/Debuggy_24/items/d80dfc71ce9398b1466c) 
:::
 
今回(第1回)は移植にあたっての準備について説明します。 

 

## 評価ボードの入手 

 

評価ボードのWebページの[「購入オプション」](https://www.nxp.jp/design/design-center/development-boards-and-designs/FRDM-MCXN947)の項目から購入手続きをすすめることができます。 

 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3817840/277475a7-3818-0328-cc94-4d109cdfacbf.png)

 

代理店からの注文の、Mouser、DigiKey、チップワンストップなどの通販でも購入できます。 

筆者はMouserで購入しました。 

 

## 開発に使用するPCについて 

本シリーズの記事の開発はWindows上で行います。 

 

## TOPPERS/ASP3を入手する 

下記のTOPPERS/ASP3カーネル簡易パッケージのダウンロードページからTOPPERS/ASP3をダウンロードしてください。簡易パッケージとはターゲットごとに必要なソースコードを一つにまとめたものです。 

 

[TOPPERS/ASP3　カーネル簡易パッケージのダウンロード](https://www.toppers.jp/asp3-e-download.html) 

 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3817840/0867f568-1637-2fe0-52e4-e279a677695b.png)

 

「この中からどれを選べばいい？」と思われるかもしれません。 

以下のようなかんで選んでください。 

 

1. 同じコアのパッケージ 

2. 似たようなアーキテクチャのMCU 

 

(2)にあてはまるものがない場合は(1)のみで選びます。 

今回の移植ターゲットFRDM-MCXN947に実装されているMCXN947(Cortex-M33)はLPCシリーズと似ているのでLPC55S69EVK簡易パッケージを選択しました。 

 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3817840/46a6fc12-af57-5b51-deba-637e03da82ed.png)


 

ダウンロードしたファイルを任意のフォルダへコピーして圧縮ファイルを解凍するとasp3フォルダが生成されます。
以降、本記事では<b>c:\toppers</b>に解凍したものとして説明します。他のフォルダで作業する場合は読み替えてください。 

 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3817840/7e563f93-441d-bacf-4537-982bf7d2e70a.png)

## 開発環境 

TOPPERS/ASP3のasp3\doc\user.txtに「3.1　開発環境の準備」について書かれています。 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3817840/81640b76-bac2-dde3-97b7-a50268ce51af.png)

 

GNU Makeとクロス開発環境は後述するXpresso IDEに含まれます。(画像の①) 

cfgとtecsgen (画像の③)は簡易パッケージには既に含まれているので、あらたに何かをする必要はありません。 

rubyについてはRubyのインストールの項で説明します。 

　 

 

## Rubyのインストール 

RubyInstaller for WindowsのダウンロードページからRubyのインストーラをダウンロードしてインストールします。 

 

[RubyInstaller for Windows](https://rubyinstaller.org/downloads/archives/) 

 

開発環境の項のuser.txtに記されているバージョンのrubyをインストールすることをお薦めします。今回は2.6.8-1(x64)をダウンロードしてインストールしました。 

 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3817840/27258b08-f8d6-ae4a-5a9d-bbb5f0d90047.png)

 

インストールが完了すると、パスが通っているのでコマンドプロンプトからrubyコマンドが実行できます。ruby -vを実行してrubyのバージョンを確認します。 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3817840/06fd8f40-2262-64f2-2d1c-3e0ceddbe432.png)

 

## MCUXpresso IDEのインストール 

 

[NXP社のWebページ](https://www.nxp.jp/design/design-center/software/development-software/mcuxpresso-software-and-tools-/mcuxpresso-integrated-development-environment-ide:MCUXpresso-IDE)からMCUXpresso IDEをダウンロードしてインストールしてください。 

 

 

## FRDM-MCUXN947のMCUXpresso SDKのインストール 

下記手順でSDKをインストールします。 

1. https://mcuxpresso.nxp.com/en を開き、「Select Development Board」をクリック 
NXPアカウントにサインインしてください。(必要に応じてアカウントを作成する必要があります。)  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3817840/f8561b49-4149-0651-afb7-4845ea36de36.png)


2. Boards ⇒ MCUX 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3817840/0f8d464d-fe07-7df7-d751-50d7191a9b85.png)


3. FRDM-MCXN947を選択後、BULD SDKを押す 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3817840/051de42a-bea7-8e4a-e0f5-19898bcf2a0b.png)


 

4. SDK_xxxxxx_FRDM-MCXN947の項のDownloadを押すとSDKファイルをダウンロードします。 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3817840/9f03d488-7e08-2560-a6ea-6f51d6ebc48b.png)


 

5. MCUXpresso IDEを起動後、Installed SDKsへダウンロードしたファイルをドラッグ＆ドロップすることでインストールします。 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3817840/0079f8be-e737-4e17-d74f-8267721d0eb9.png)


 



 

 

## NXPのサンプルプログラムを動作させる 

評価ボードFRDM-MCXN947向けのサンプルプログラムを動作させます。 

サンプルプログラムを動作させる目的は、開発環境が正しくセットアップできているかの確認とハードウェアへプログラムをライトできることを確認するためです。 

また、TOPPERS/ASP3の移植では、サンプルプログラムのレジスタ設定値などを参考に実装していきます。 
MCUXpresso IDEを開き、次のSDK exampleをワークスペースへ追加します。
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3817840/d1513e0d-d7bc-f82b-a0b0-556134e3ea1c.png)


 

<b>hello_world : </b>
　シリアル出力のサンプル。UARTドライバ作成の参考にします。(第4回で説明予定) 

<b>led_blinky: </b>
　LEDが動作することの確認とMCUの各種設定の参考にします。 (第3回で使用予定) 

 

各サンプルプログラムのdoc/readme.mdを参考にサンプルプログラムを動作させます。 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3817840/bde2c28f-15b8-5f93-b2e3-2ed6a0485fd1.png)


以上で「第１回 準備」は終了です。ハードウェアや開発環境の準備を行いました。 

「[第2回 とりあえず動くものを移植](https://qiita.com/Debuggy_24/items/25e21b8b8d02fe614e4b)」へ続きます。