head

2016年3月12日土曜日

LPCXpresso IDE インストール編


少し前に作業した。
NXP社のLPCXpresso IDE 8.1.0 インストール
LPC810で、ファーム書込み / Lチカなど試してみたいと思います。



# 準備、(覚えている範囲で 抜けがあるかもしれません。)
# download
https://www.lpcware.com/lpcxpresso/download

# 参考, install , Activation など
LPC810(2) 〜 LPCXpressoを使う(1)
http://mits-whisper.info/post/81547764577/lpc8102-lpcxpresso%E3%82%92%E4%BD%BF%E3%81%861

http://suzuki-soft.jp/ucon-board/lpc810/lpc810-tool-install/

*) Activationは、
初期のコードサイズが8kの制限を拡張できました。
ROM= 8K 以下の容量であれば不要みたいです。


#ライブラリのインポート 作業フォルダにコピー、
パス例:
C:\nxp\LPCXpresso_8.1.0_597\lpcxpresso\Examples\Legacy\NXP\LPC800
NXP_LPC8xx_SampleCodeBundle.zip を解凍しておきます。

import
[File] -[import], Existing Project into Workspace を選択
CMSIS_CORE_LPC8xx
lpc800_driver_lib

ビルドしておきます。

# Lチカ
# Blinky を作業フォルダにコピー
例:work/Blinky

import
[File] -[import], Existing Project into Workspace を選択

Select root directory=
C:\nxp\work\Blinky

[Finish]おす

# 設定

project- 右クリック [Properties] - Project References
CMSIS_CORE_LPC8xx
lpc800_driver_lib

をチェック


# [C/C++ Build] - MCU setting - LPC8xx
LPC810 を選択。

# [C/C++ Build] -Settings- Build steps

通常ビルドすると、hex出力されませんので、処理追加します。
post-build steps を追加。
改行されていますが、文節は[;]などで連結が必要だったりルールに注意です。

arm-none-eabi-size "${BuildArtifactFileName}";
arm-none-eabi-objcopy -O ihex "${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.hex";

# code : main.c
LPC810でLED 配線する為に
PIO 0_1に書き換えてます。
#ifdef __USE_CMSIS
#include "LPC8xx.h"
#endif
#include "type.h"
#include "lpc8xx_clkconfig.h"
#include "lpc8xx_gpio.h"
#include "lpc8xx_mrt.h"
extern uint32_t mrt_counter;
#define mLed 1
void SwitchMatrix_Init()
{
/* Enable SWM clock */
LPC_SYSCON->SYSAHBCLKCTRL |= (1<<7);
/* Pin Assign 8 bit Configuration */
/* none */
/* Pin Assign 1 bit Configuration */
/* SWCLK */
/* SWDIO */
/* RESET */
LPC_SWM->PINENABLE0 = 0xffffffb3UL;
}
/* Main Program */
int main (void) {
uint32_t regVal;
//SwitchMatrix_Init();
SystemCoreClockUpdate();
/* Config CLKOUT, mostly used for debugging. */
regVal = LPC_SWM->PINASSIGN8 & ~( 0xFF << 16 );
LPC_SWM->PINASSIGN8 = regVal | ( 12 << 16 ); /* P0.12 is CLKOUT, ASSIGN(23:16). */
CLKOUT_Setup( CLKOUTCLK_SRC_MAIN_CLK );
#if 0
regVal = LPC_SWM->PINASSIGN0 & ~( (0xFF << 0) | (0xFF << 8) );
LPC_SWM->PINASSIGN0 = regVal | ( (2 << 0) | (3 << 8) ); /* P0.2 is UART0 TX, ASSIGN(7:0); P0.3 is UART0 RX. ASSIGN(15:8). */
#endif
/* Enable AHB clock to the GPIO domain. */
LPC_SYSCON->SYSAHBCLKCTRL |= (1<<6);
/* Set port p0.7 to output */
// GPIOSetDir( 0, 7, 1 );
GPIOSetDir( 0, mLed, 1 );
init_mrt(0x8000);
while (1) /* Loop forever */
{
/* I/O configuration and LED setting pending. */
if ( (mrt_counter > 0) && (mrt_counter <= 200) )
{
// GPIOSetBitValue( 0, 7, 0 );
GPIOSetBitValue( 0, mLed, 0 );
}
if ( (mrt_counter > 200) && (mrt_counter <= 400) )
{
// GPIOSetBitValue( 0, 7, 1 );
GPIOSetBitValue( 0, mLed, 1 );
//GPIOSetBitValue( 0, 0, 1 );
}
else if ( mrt_counter > 1200 )
{
mrt_counter = 0;
}
}
}
pinOut


# Build, 約 2.5KB程度
Building target: Blinky.axf
Invoking: MCU Linker
arm-none-eabi-gcc -nostdlib -L"C:\nxp\work\CMSIS_CORE_LPC8xx\Debug" -L"C:\nxp\work\lpc800_driver_lib\Debug" -Xlinker -Map="Blinky.map" -Xlinker --gc-sections -mcpu=cortex-m0 -mthumb -T "Blinky_Debug.ld" -o "Blinky.axf"  ./src/cr_startup_lpc8xx.o ./src/crp.o ./src/main.o   -llpc800_driver_lib -lCMSIS_CORE_LPC8xx
Finished building target: Blinky.axf

make --no-print-directory post-build
Performing post-build steps
arm-none-eabi-size "Blinky.axf";arm-none-eabi-objcopy -O ihex "Blinky.axf" "Blinky.hex";
   text   data    bss    dec    hex filename
   2372      4    132   2508    9cc Blinky.axf



# 書込み ,Flash Magic で書込みます。

# ハマリどころ
ビルドエラーは、post-build steps の記述ミスや、
書き込んで、正常動作しない場合は、 MCU setting の設定が消去されていたり
再度 LPC810に設定など修正 がありました。

# Lチカできました
上段の写真、電池BOXから 電源供給。

# まとめ
推奨は開発環境は 開発ボードで、
マイコン単体での、書込みは効率も悪い気がしました。
LPC810は ビルド面の情報も少なく、苦労ぎみでしたが、
コードを少ないROM容量内に収める事ができれば
小型のデバイス開発面では、選択肢としてはアリかと思います。


# 参考の記事
https://m.facebook.com/notes/nxpfan/lpc810-dip8_arm%E3%83%9E%E3%82%A4%E3%82%B3%E3%83%B3-lpcxpresso%E3%81%A7l%E3%83%81%E3%82%AB-led%E7%82%B9%E6%BB%85%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E5%8B%95%E3%81%8B%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B/298643523596741/


# 関連の記事
RGB LED +LPC810 小型ランプ
http://knaka0209.blogspot.jp/2016/02/LED8mm-5.html
LPC810のオンラインコンパイラで書込み編、Lチカも
http://knaka0209.blogspot.jp/2015/11/LPC810-1.html


# 関連のまとめ:IoT な電子工作まとめ
http://knaka0209.blogspot.jp/2015/11/iot-matome.html



0 件のコメント:

コメントを投稿

google colaboratory お試し編 、GPUも使える機械学習の環境構築

前回続き、機械学習の関連となります。 開発環境まわりの内容となり。先人様の情報を元に調査しました。 google colab(google colaboratory) を試してみました。機械学習系の いくつかのライブラリがインストール済みで、 クラウド上で、ある程度機械学...

AD-parts

Shop
Bluetooth搭載
ベース基板

Social