MPLAB-XでPIC24FJ64GA004用FreeRTOSを構築

FreeRTOSのDemoにあるPIC24FJ128GA010用のFreeRTOSをベースにPIC24FJ64GA004用のFreeRTOSを構築してみました
ソースはこちらからダウンロードしました、ダウンロードしたファイルを解凍してDemo\Common と Demo\PIC24_MPLAB、Sourceディレクトリの内容を使います。

Step1.

MPLAB-Xで プロジェクト Demo\PIC24_MPLAB\RTOSDemo_PIC24_dsPIC を開きます

Step2.

Projectsのプロパティで Conf:[Default]を選択し、DeviceをPIC24FJ64GA004に変更します

Step3.

Clean and build project を実行するとエラーがたくさん出るのでエラーメッセージで最初のエラーにある
In file included from ./FreeRTOSConfig.h:73:0,
というところをクリックしてFreeRTOSConfig.hを開き
#include <p24FJ128GA010.h> → #include <p24FJ64GA004.h>に変更してから
もう一度 Clean and build project を実行するとbuildが完了します。

これでPIC24FJ64GA004で動作するFreeRTOSが出来るので次にターゲットボードに合わせてハードウェアの初期化を設定します

(FreeRTOSが使うハードウェアリソース)

FreeRTOSが使うのはタイマー割り込みです、デフォルトはport.cで下記のようにTimer 1割り込みになっています
#define configTICK_INTERRUPT_HANDLER _T1Interrupt
つまり、「Timer 1 はFreeRTOSで予約済み」なので他の用途には使えません。

(FreeRtosConfig.hの修正)

#define configTICK_RATE_HZ ( ( TickType_t ) 1000 )
これはFreeRTOSがタスクを切り替える時間です、デフォルトでは 1000Hz=1mS になっています値が大きいほど素早い応答が可能になりますがオーバーヘッドも大きくなるのでPIC24Fの性能としては1000~10000Hz(1mS~0.1mS)程度が無難でしょう。

#define configCPU_CLOCK_HZ ( ( unsigned long ) 16000000 ) /* Fosc / 2 */
こちらはターゲットボードのシステムクロックと同じになるようにします

次にMPLAB Code Configurator V3 を使ってターゲットボードに合わせたハードウェア設定をおこないます

Code configuratorの使い方についてここでは説明しません、Code Configuratorを使ってハードウェア初期化部分を生成するとプロジェクトツリーに MCC Generated Files という項目が追加されるのでmain.cを編集して初期化関数を追加します。

( main.c にコードコンフィギュレータが生成した初期化関数を追加する)

まず #include “mcc_generated_files/mcc.h” をインクルードファイル記述部に追加します

次に main()関数の最初を次のように変更します

//prvSetupHardware();
SYSTEM_Initialize();

以上でターゲットボードに合わせたハードウェア初期化部分の設定は終わりで、後は必要に応じてタスクの記述を削除・編集・追加していけばOKです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)