NXP MCUXpressoを使ってみる
NXP純正IDEであるMCUXpresso
MCUXpressoの触りだけでも知りたかったので、少々トライした記録である。
環境
秋月電子で購入可能なLPC11U35が搭載されたボードを利用。安価だったためこれを選択。Windows10上でMCUXpressoを使う。
MCUXpressoダウンロード
ここからダウンロードできる。NXPのアカウントが必要だった(はず)。
準備
SDKなどを使うのが通常のようだが、LPC11U35については、MCUXpressoで使えるのか不明であった。その代わりに、ここのResourcesにあったサンプルソースコードをインポートする方法をとった。
「Open Projects from File System」を選び、
「Archive」をクリックし、さきほどDownloadしたサンプルコードのzipファイルを選ぶ。サンプルコードとなる”s_demo”(メインプログラム)とLibrary2つを選択し「Finish」をクリック。インポート後は下記のようになる。
テスト環境
本ボードに接続されたボタンを押したら、ボード内のLEDが点灯することを実現する。
ボタンはGPIO0_22に接続されている(LEDはGPIO0_7に接続)。ピン配置については、秋月電子の本ボードのリンク先(説明書、データーシート)も参照。
コード作成準備
さきほどのs_demoをコピーして作るのが簡単。下記メニューのCopy&Paste。
ここでは、Paste時に「btn_led」というプロジェクト名をつけた。
ライブラリとして、先ほどのインポート時のライブラリが含まれていることを確認。
コード
main.cを下記のように修正。
#ifdef __USE_CMSIS
#include "LPC11Uxx.h"
#endif
#include <cr_section_macros.h>
#include <NXP/crp.h>
#include "gpio.h"
// p0.7 is connected to LED3 on LPC11U35 QSB Board
#define LED_PORT 0 // Port for led
#define LED_BIT 7 // Bit on port for led
#define LED_ON 1 // Level to set port to turn on led
#define LED_OFF 0 // Level to set port to turn off led
// Variable to store CRP value in. Will be placed automatically
// by the linker when "Enable Code Read Protect" selected.
// See crp.h header for more information
__CRP const unsigned int CRP_WORD = CRP_NO_CRP ;
int main(void) {
// Initialize GPIO
GPIOInit();
// Set LED pin as output
GPIOSetDir(LED_PORT, LED_BIT, 1 );
// Set 20 pin of port 0 as input
GPIOSetDir(0, 20, 0);
GPIOSetBitValue( LED_PORT, LED_BIT, LED_OFF );
while (1) {
if (!GPIOGetPinValue(0, 20)) {
GPIOSetBitValue( LED_PORT, LED_BIT, LED_ON );
} else {
GPIOSetBitValue( LED_PORT, LED_BIT, LED_OFF );
}
}
}
GPIO制御関数は、サンプルコード及びライブラリ内にあったgpio.c/hを参照した。なお、変数「CRP_WORD」は必要のようだ(削除するとBuildできない)。
ビルド
バイナリ作成
本ボードをMass Storageとして認識させ、プログラムを転送するには、bin形式が必要。「Create binary」をクリック。
さらに、チェックサムを付加する必要があるらしい。コマンドプロンプトから付加する。
F:\Workspace\NXP\proj\btn_led\Debug>checksum -p lpc11u35 -d btn_led.bin
Written checksum 0xefffed0d at offset 0x1c in file btn_led.bin
Previous value 0xefffed0d at offset 0x1c in file btn_led.bin
ボードへコピー
ここの説明にあるとおり、ボードのSW1とSW2とを押し、SW1を押したままSW2を話すと、ボードがUSB Mass Storageとして認識される。
「firmware.bin」を削除し、さきほどの「btn_led.bin」をコピーする。
実験
Author And Source
この問題について(NXP MCUXpressoを使ってみる), 我々は、より多くの情報をここで見つけました https://qiita.com/infinite1oop/items/640cdb09b4ff493c8d90著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .