AzureRTOSプロジェクトのポーティング方法 RX66N編

# AzureRTOSのルネサス RXファミリ類似デバイスへのポーティング手順

## 背景
ルネサスの32bit RXファミリにはRX66NやRX72MなどRX72Nの派生製品と呼ばれる類似MCUグループがある。
現時点（2021/12/28）では、AzureRTOSにRX66NやRX72Mは対応していない。
一方で対応済みのRX72NからプロジェクトをポーティングすることでRX66N,RX72Mでも対応できる。
この方法を紹介する。

:::note warn
RX66N以外へのデバイスにも本手順でポーティング可能ですが、デバイスのメモリ容量等に応じて本記事に無い追加設定が必要な可能性があります。
:::


# 手順
RX72NのAzureRTOSプロジェクトをRX66Nプロジェクトにポーティングする手順を説明する

## Step1 RX72NでAzureRTOSのプロジェクトを作成する

プロジェクトを作る方法は２種類ある。

ボード選択で**”Custom board”を選択するか”RX72N Envision Kit"**を選択するか。
**オススメはRX72N Envision Kitを選択する。**
（この場合、プロジェクト作成のステップで選択できるAzureRTOSのサンプルプロジェクトの選択肢が増える）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233064/989b51d8-2462-f697-c575-d27400e2763d.png)



### RX72N Envision Kitの場合

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233064/44ee1290-ce1c-91b1-5c1b-ba1aa16f3241.png)


RTOSプロジェクト設定を選択する画面で”IoT Embedded SDK Sample project”を選ぶ。
これだとAzureRTOSでAzure IoT Hubに接続するサンプルプロジェクトが生成できる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233064/0e678594-1420-3931-1566-e94ff48bb969.png)



### Custom boardの場合
まずはRX72NのAzureRTOS対応のデバイスでプロジェクトを作成する
この方法だとAzure IoT Hubに接続するプロジェクトを０から作る必要がある。
（AzureRTOSがプロジェクトに入るだけ。。）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233064/71f55fd2-d197-74cc-3dce-82fdffd70dcf.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233064/8607f766-e953-8de2-9af3-19014f8afcc9.png)

そのままプロジェクトを作成すれば良い。


## Step2 RX72Nで作ったプロジェクトのセクション設定をチェック
デバイスをRX66Nに変えるとセクション設定が初期化されるので、手作業で設定する必要がある。（後のステップ）
そのために、設定すべきセクション設定を確認しておく

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233064/2bbbf1e6-db9d-e1c7-59b2-5687457f08cd.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233064/cc3528cf-3ef8-5c77-ba99-2593d356c505.png)


※RX72N Envision kitでプロジェクト生成した時点でスクリーンショットを取り、RX66Nに変更した

## Step3 RX66NにMCUを変更する
プロジェクトのスマートコンフィグレータを起動する

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233064/e17a48bd-ef5f-728c-5eed-347dd0ffa90f.png)


ボードタブからMCUをRX66Nに変更する

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233064/f804bda3-80e9-de97-bb84-108ccf4c6bf6.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233064/9d918969-b730-16b4-daf5-ac8e11e6de06.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233064/8eb18e72-d50b-9b61-fc72-1a205e641c1f.png)


以降表示される画面はデフォルトのまま"次へ"を押してデバイス選択を完了

## Step4 クロックの設定
デフォルトではエラー状態になっているはずなので、なっている場合はRX66Nにあったクロック設定にする。

![MicrosoftTeams-image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233064/c4ad1886-ba96-2464-a2ad-d08aa8be4879.png)



## Step5 RX66NのBSPを生成する

そのままだとBSPがRX72Nのものになっている。
RX66N用にするためスマートコンフィグレータの”コード生成”を一度押す

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233064/3beadb0f-539d-3ff4-0e04-3aa19f272703.png)


BSPがRX66Nになる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233064/d4ab8c09-ccfe-e8d8-85a2-f68871b9ea23.png)


## Step6 RX66Nのセクション設定を行う

RX66Nにデバイス変更するとAzureRTOS用のセクション定義が消える。。。
赤丸部のものを手動で復元（修正）する。
※Step2の状態にする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233064/9edbf4c2-1e07-ae1d-701d-a7ad750c167b.png)


以上で完了です。