2014年03月31日

2014: LPCXpresso 7.1.0 出る。 Windows XP 無保証。

まだインストールしていないけど、
かいつまむと、:D
こんな感じ、

(1) Eclipseが最新のケプラー(SR2 and CDT 8.3)になった。
(2) gcc をLauncpad の最新版にした。
(3) インデクサの不具合を修理した。:D
(4) 最適化のデフォルトが「-Og」になった。
(5) バイナリにチェックサムを書き込む方法が増えた。(未確認)
(6) Redlibもvprintf()の整数バージョンを持つようになった。

最大の注目点は、
この版から、もうWindows XPは動作保証対象外となったこと。
動作チェックもしないとしている。
XPを使い続ける人は古い版を残しておいた方が無難なのかも。

あと「-flto」オプションは一つ前の版から可能になったけど効果のほどは
ちょっと謎。
デバッグできなくなるので使い勝手もいまひとつかもしれない。


http://www.lpcware.com/content/forum/lpcxpresso-latest-release
http://www.lpcware.com/lpcxpresso/downloads/windows
posted by Copyright (C) avrin All Rights Reserved. at 00:00| Comment(0) | TrackBack(0) | LPCXpresso | このブログの読者になる | 更新情報をチェックする

2013年09月30日

LPCXpresso6 出る 2013

LPCXpresso6 出る 2013
LPCXpresso home
http://lpcware.com/lpcxpresso/home
LPCXpresso Forum
http://lpcware.com/lpcxpresso/forum

Code RedがNXPに買収されてから初のLPCXpresso IDEがリリースされた。
バージョンはv.6.0.2。
以下の様に制限が緩い方にシフトしたのは好感が持てる。

大所は、FLASH容量制限が256kbyteに拡張され、C++プロジェクト対応になったこと。

* エディション:
LPCXpressoは、Freeエディション(無料)とProエディション(有料)に分かれた。
ProエディションはFLASH容量無制限とメールでのサポート等。
Proエディション:
FLASH容量制限なしのLPCXpressoの価格は52,000円
http://store.kagi.com/cgi-bin/store.cgi?storeID=6FJPK_LIVE&lang=en&destination=node%2F1005190

以下は、Freeエディション(無料版)の話。
ダウンロード時の登録不要:
http://lpcware.com/lpcxpresso/downloads/windows
但し、そのままではFLASH容量制限が8kbyteとなる。
FLASH容量制限を増量: 
アクティベーションすればFLASH容量256kbyteまで使える。
以前は、ダウンロード用とフォーラム用でそれぞれ登録が必要だったが、
フォーラム用のログイン情報に統一された模様。
http://lpcware.comにユーザ登録が必要。
新機能:
C++プロジェクトに対応。
LPC-Link2使用時にマルチコア・デバッグ対応。(LPC4300等)
ステートマシン(Red state)機能追加。
ARM7/ARM9にフル対応。
	例えば、LPC2388プロジェクトもWizardで生成できる。
LPC-Link2/CMSIS-DAP対応。
LPCOpen v2に対応。
v.6.0.2のリリースノートから:
LPC12xx + LPC-Link2は未サポート。将来対応予定。
LPC-Link2使用時にエラーメッセージが出る。将来改善予定。
その他:
FreeRTOSのプロジェクトWizard(LPX176x)は消滅。将来対応しなくもないという状況。


Red Suite / LPCXpresso FAQ
http://support.code-red-tech.com/CodeRedWiki/CodeRedFAQ

posted by Copyright (C) avrin All Rights Reserved. at 00:00| Comment(2) | TrackBack(0) | LPCXpresso | このブログの読者になる | 更新情報をチェックする

2013年07月29日

LPCOpen Platform: LPC1114FN28/MyARM基板, CQ LPC11U35基板でSimple Scheduler

LPCOpen Platform: LPC1114FN28/MyARM基板, CQ LPC11U35基板でSimple Scheduler
* はじまり
* デモ内容
* LPCXpressoで簡単コンパイルとデバッグ
* make で簡単コンパイルと実行
* Download CQ MyARM LPC1114FN28
* Download CQ LPC11U35
* 使い方:LPCXpressoでコンパイル
* 使い方:makeでコンパイル
* ポイント
* LPC1114FN28 LPCOpenライブラリの構成
* ファイル群のライセンス
* C.R.P.、ベクター・チェックサムへの配慮
* ソースコード・リポジトリ


* はじまり
myarm-lpc1114fn28.jpg 
トラ技の付録のマイコン(LPC1114FN28/ARM Cortex-M0)基板と、LPCOpen Platformライブラリを使って、
簡単プロジェクトを作ってみた。

参考:
 LPC1114FN28 MyArm基板 ピン割り付け表
LPC1100 日本語ユーザーマニュアル(PDF) [LPC1100]

* デモ内容
1,シンプルスケジューラ
2,LEDホアンホアン :D
3,UART 送受信 (リングバッファ(注5)or ポーリング) 115200bps
3, ChaNさんのxprintfでUART出力
動作内容は、ここのシンプル・スケジューラ部分と同じです。
実質的には、このページの内容をLPCOpen Platformベースにした感じです。
Arduinoにある様なmillis()関数とdelay_ms()/delay()関数も作ったよ。

* LPCXpressoで簡単コンパイルとデバッグ
LPCXpressoのプロジェクトに取り込むだけで、瞬時に動作します。 (3分以内保証(爆)

* make で簡単コンパイルと実行
LPCXpressoがなくても、arm-none-eabi-gccコンパイラに実行パスが通っていれば、
コマンドラインでもコンパイル可能です。(DOS窓/Cygwin/MinGW/LinuxでもOK)

* Download CQ LPC11U35
デモ内容、コンパイル方法等は下記、CQ MyARM LPC1114N28と全く同じです。
v01: 2014/03
    LPCOpen Platform v2.00a ベース。
    LPCXpresso v7以降を推奨。
    arm-none-eabi-gcc v4.8以降を推奨。
    1, LPCOpenライブラリのコンパイルエラー・バグを修正。
    準備中

* Download CQ MyARM LPC1114
v05: 2014/03
    LPCOpen Platform v2.00a ベース。
    LPCXpresso v7以降を推奨。
    arm-none-eabi-gcc v4.8以降を推奨。
    1, LPCOpenライブラリのコンパイルエラー・バグを修正。
    
v04: 2013/08:
    LPCOpen Platform v1.03 ベース。
    LPCXpresso v5以降を推奨。
    arm-none-eabi-gcc v4.6以降を推奨。
    lpc1114fn28-lpcopen-basic-2013-08-v04.zip
     1, 「Resetボタンを押さないとDebug開始できない」のを修正。 :D
        Bootloader端子 PIO0_1がCLOCKOUTモードになっていたのが原因なので、orz
        PIO0_1(UserButton)をGPIO入力モード、プルアップ有効にして解決。
     2, LPCOpen v1.03が持つタイマー・ライブラリのバグを修正。 
       LPC11XX Timer Initialization Issue
       http://www.lpcware.com/content/bugtrackerissue/lpc11xx-timer-initialization-issue#comment-1023376

v03: 2013/08:
    lpc1114fn28-lpcopen-basic-2013-08-v03.zip
    1, SPIのピン機能割りあてがおかしかったのを修正。
    2, IOCON設定の見直し。

v02: 2013/07:
  最初の版
  lpc1114fn28-lpcopen-basic-2013-07-v02.zip

* 使い方:LPCXpressoでコンパイル
LPCXpresso v5のワークスペースに取り込みます。
Import:
File - Import...
General - Existing Projects into Workspace - Next
Select archive file: - Browse... でダウンロードしたzipファイルを指定。
Finishで取り込み完了。
Build:lpc1114fn28-lpcopen-basic」(デモ・プロジェクト)をコンパイル・実行します。
(LPCOpenライブラリは自動でコンパイルされます)
Debug:
debugボタンを押せばデバッグ開始します。
(注):
「ビルド構成」については「Debugビルド」のみ設定してあります。
「Releaseビルド」は、ほとんど未設定なのでコンパイルできません。
必要なら「Debugビルド」にならって適当に設定してください。

* 使い方:makeでコンパイル
LPCXpressoを使わない場合です。

zipファイルを解凍し、DOS窓を開いて「lpc1114fn28-lpcopen-basic」フォルダで、
* m.bat は 「make」を実行
* mc.bat は「make clean」を実行
* mm.bat は「make clean 後に make 」を実行
* w.bat  は Flash書込み
LPCOpenライブラリは自動でコンパイルされます。
Linux系の場合は単に「make」「make clean」で。:D
カレントフォルダに「target_lpc1114fn28.*」という名前で一連のファイル(*.elf,*.hex等)が生成されます。
「lpcsp.ini」内のCOM番号を自分用に修正し、ボードを書込みモード(注3)にした後、
「w.bat」実行でHEXファイルが書き込まれます。その後、リセットボタンSW1を押します。

* ポイント
Scheduler:
スタック・サイズが小さいとハングアップします。:D
デモでは大丈夫そうな値に設定してあります。 xD
LPCXpressoの場合、デモ・プロジェクトのコンパイルオプション「Symbols」に
SCHEDULER_TASK_NUM_MAX=4 (タスク数)
SCHEDULER_TASK_STACK_SIZE_EACH=200 (スタックサイズ)
が定義してあります。
makeの場合、「src/Makefile」内に同様の定義があります。
最適化オプション:
コンパイル時の最適化は、デフォルトで全て「-Os」(サイズ最小)になっているので、
デバッグ時は「-O1」程度にしたほうが良いかもしれません。

* LPC1114FN28 LPCOpenライブラリv2.00aの構成
以下のv1.03系よりシンプルになりました。
Downloadファイル参照

* LPC1114FN28 LPCOpenライブラリv1.03の構成
LPCOpen Platform群は、多数のLPCマイコンを同一の上位関数群で使える様にするライブラリです。
ここでは、LPC1114FN28マイコン用に必要なファイル群だけで構成しました。
トラ技の付録のマイコン(LPC1114FN28)基板用の「ボード・ライブラリ」を作ったことになります。
今のところ動作確認したのは、上記デモで使った「ポート制御」と「UART機能」、「SPI」だけです。
LPC1114FN28のベースファミリ:
名前を見ると「LPC11U14」が近そうだけど、実は「LPC11C24」の方がペリフェラルの構成としては近いので、
これをベースにしました。
また、ペリフェラルの定義としては、
board_cq_myarm_1114fn28\lpc_core\lpc_chip\chip_11xx\chip.h
内に表があります。従って、「CHIP_LPC11CXX」という定義がベースになります。
ペリフェラル機能割り当て(IOCON系):
どのピンで、どのペリフェラル機能を有効にするかを設定しているのは、
board_cq_myarm_1114fn28\lpc_core\lpc_board\boards_11xx\cq_myarm_1114fn28\
sysinit_cq_myarm_1114fn28.c 内の、
STATIC const PINMUX_GRP_T pinmuxing[] = {...};
というテーブルです。
更に、
board_cq_myarm_1114fn28\lpc_core\lpc_board\boards_11xx\cq_myarm_1114fn28\
board_cq_myarm_1114fn28.c 内の、「Board_XX_Init()関数」でも一部設定されています。

* ファイル群のライセンス
スタートアップ・コードも含め、ライセンス上、全て再配布可能なファイル構成にしてあります。
CMSISコアライブラリ(注1)を除いて、改変、及び再配布が可能(注2)です。

* C.R.P.、ベクター・チェックサムへの配慮
LPCマイコン特有の上記機能に対し、適度な配慮がしてあるので、(注4)
気にする必要がないようになっています。(^^)/
C.R.P.:
参考:
LPCXpresso: C.R.P 対応系
LPCXpresso IDEでコードサイズを圧縮する その1 〜 CRPを無効して300-400バイト節約する 〜
C.R.P.のマジックワードは、設定済みなのでいじる必要はありません。(注6)
C.R.P.のせいで出来てしまう無駄領域を有効に使う(注7)には関数の先頭に「__AFTER_VETCT2」を付けます。
( "after_vectors.h"をインクルードします。 具体例は、src/drv/systick.c 参照)
ベクター・チェックサム対応:
参考: ARM: ベクタチェックサム、lpc1768 スタートアップコード関連 
ベクター・チェックサムは、一般的な書き方をする限り「不変」になるように、
リンカスクリプト、スタートアップコードに工夫がしてあるので気にする必要はありませんが、(注4)
HEXやBINのあるフォルダで、「vect2hex.exe」を実行すればチェック出来るようにしてあります。
「LPCXpresso IDEからの書込み」を使わずに「make」を使う場合は、
たまに「vect2hex.exe」で確認した方がよいかもしれません。(^^;

* ソースコード・リポジトリ
lpc1114fn28-lpcopen-basic  
lpc_chip_11cxx_lib
board_cq_myarm_1114fn28



(注1)CMSISコアライブラリは、再配布のみ明示的に許可されている。
     改変は普通しないけど :D
(注2)MIT/BSD/Apache、LPCOpen Platformのライセンス。
(注3)SW1とSW2を同時に押して、SW1を離してから、SW2を離す。
(注4)完ぺきかどうかは、アレだけど。:D
(注5)UARTのリングバッファ関数は受信時のみ使用。
(注6)よく分らない場合は、何もしなくてよいです。
(注7)配置できる容量は、0x2fb番地までです。Debug/*.lst ファイルの先頭近辺を参照。
      最適化オプションによって、この領域のコードサイズがあふれる場合があるので注意が必要。




参考:
LPCOpenを使う その1
〜LPCOpenのサポート状況の確認 & LPCXpresso LPC11U14プロジェクトのインポートとビルド〜
http://www.nxp-lpc.com/lpc_software/lpcopen/note/note1.html

LPCXpressoのノート
http://www.nxp-lpc.com/lpc_boards/lpcxpresso/note/

「インテルHEXフォーマット」のファイルをLPCXpressoで出力する
https://www.facebook.com/notes/nxpfan/%E3%82%A4%E3%83%B3%E3%83%86%E3%83%ABhex%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92lpcxpresso%E3%81%A7%E5%87%BA%E5%8A%9B%E3%81%99%E3%82%8B/227452474049180
posted by Copyright (C) avrin All Rights Reserved. at 00:00| Comment(0) | TrackBack(0) | LPCXpresso | このブログの読者になる | 更新情報をチェックする

2013年07月19日

LPCXpresso、買収されちゃった! 2013

LPCXpresso、買収されちゃった! 2013
なんと、2013/05/01 にLPCXpressoを作っている、CodeRedがNXPに買収されちゃいました!
http://www.nxp.com/news/press-releases/2013/05/nxp-acquires-code-red-technologies.html

LPCXpressoとRedSuite製品は、全部凍結されちゃいました。
http://support.code-red-tech.com/CodeRedWiki/RedSuiteFuture

フォーラムはここに、移動しちゃった!
http://www.lpcware.com/forums/lpcxpresso/lpcxpresso-forum
フォーラムの技術スタッフが増員された様です。

で、今後、新しい製品群に移行していくようです。

多分、LPC800系で出てきた、ペリフェラルをマッピングするGUIツールが統合されるんじゃないかと
予測しておきます。

LPCXpressoのユーザーとしては、買収前よりも使用制限を厳しくしないでほしい。
買収した方も、元取らないとアレだから、無料ユーザーに厳しく、有料ユーザからは
もっと金取る(爆 ビジネスモデルに移行してしまう可能性もある。 orz

どうなることやら。 orz orz

posted by Copyright (C) avrin All Rights Reserved. at 00:00| Comment(0) | TrackBack(0) | LPCXpresso | このブログの読者になる | 更新情報をチェックする

2013年06月02日

LPCXpresso5(eclipse/cdt)が壊れちゃってる件 2013

LPCXpresso5(eclipse/cdt)が壊れちゃってる件 2013
* はじまり
久しぶりにLPCXpresso5(eclise/cdt) / v5.2.4を使ってみた。
あららら?
orz orz

* ビルド関係の動きが壊れてる orz
1. ファイルを全く変更していないのに、常にフルビルドがかかる。orz
   Properties - C/C++ Build - Behaviour - Workbench Build Behaviour
   の、「Clean」のチェックをはずしたら、微妙に挙動が変わるものの、ほとんど同じ orz。
2. ファイルを変更したのに(ヘッダファイル含む)、全くビルドがかからない。orz orz

こんなビルドツール使いたくない !!  orz 

3. 上に加えて、Debug開始ボタンを押すと、必ずフルビルドがかかる。
   お〜〜〜〜〜〜い !!!  orz 

4. しょうがないので、make target を増設してみたが、やっぱり挙動が壊れてる orz。
   ただし、コマンドラインで直接LPCXpressoが生成したmakefileを実行すると
   大丈夫そうなので(詳細は未追求)、eclipse/cdt システムが破綻している様だ。


cdtのバージョンが上がって、ビルド関係のオプションが微妙に増えているのも確かだけど、
ちょっとヒドイなこれは...

orz


ということで、
驚異のccacheコンパイルを超高速にする
を適用して若干緩和されるものの... orz

posted by Copyright (C) avrin All Rights Reserved. at 00:00| Comment(0) | LPCXpresso | このブログの読者になる | 更新情報をチェックする