NXP Cortex M3アーキテクチャへの移行を計画していますが、既存の開発ツールの間で少し迷っています。
Keilは高価であり、それが価値があるかどうかはわかりません。コンパイラを試してみた人は誰でもアドバイスできますか?
このコンパイラーhttp://www.code-red-tech.com/red-suite-2.phpを見つけました。良いと思われ、高価ではありません。それを試してみたか、それについて知っている人は私にもっと情報を与えることができますか?
NXP Cortex M3アーキテクチャへの移行を計画していますが、既存の開発ツールの間で少し迷っています。
Keilは高価であり、それが価値があるかどうかはわかりません。コンパイラを試してみた人は誰でもアドバイスできますか?
このコンパイラーhttp://www.code-red-tech.com/red-suite-2.phpを見つけました。良いと思われ、高価ではありません。それを試してみたか、それについて知っている人は私にもっと情報を与えることができますか?
回答:
私は最近、暇なときにSTM32(Cortex M3)で遊んでおり、GCCのCodeSourceryディストリビューションを使用しています。
過去にARM microsでプロとして仕事をしたことがある同僚から、IARツールチェーンには満足していると言われましたが、コストやCortexのサポート方法はわかりません。
Linux用のCodeSourcery(Lite)クロスコンパイラーを使用して、TI Stellaris Microcontrollersをプログラムします。Cortex-M3で動作します。それらは完全に無料で、WindowsおよびLinux用のバイナリがあります。
インストールする簡単なレシピ(Debian / Ubuntu)は次のとおりです。
ツールチェーンをダウンロードします(どのバージョンでも可能ですが、私はこれを使用します)
Javaランタイム環境のインストール(いまいましいインストーラー用)
sudo apt-get install sun-java6-jre ia32-libs
インストール
chmod 755 arm-2009q3-68-arm-none-eabi.bin
./arm-2009q3-68-arm-none-eabi.bin -i console
PATHにクロスコンパイラbinディレクトリを追加します
echo 'export PATH=$PATH:~/CodeSourcery/Sourcery_G++_Lite/bin/' >> ~/.bashrc
. ~/.bashrc
コードをロードしてデバッグするには、OpenOCDとgdbまたはGUIのいずれかが必要です。
JTAGアダプターも必要です。
これらのいずれか(MBED開発者ボード)の使用を開始しました。私にとって大きなセールスポイントは、CまたはC ++でコーディングでき、USBを介した簡単な接続と、洗練されたオンライン開発環境(ローカルツールのインストールは一切不要)でした。
5分間のオープニングボックス次のプログラムを実行するサンプルの点滅プログラム(埋め込み世界の「ハローワールド」)がありました。
#include "mbed.h"
DigitalOut myled(LED1);
int main()
{
while(1)
{
myled = 1;
wait(0.2);
myled = 0;
wait(0.2);
}
}
それでおしまい!上記は完全なプログラムです!
ARM Cortex M3に基づいており、組み込みプロジェクト用の高速で十分なメモリ(100MHz、256kフラッシュ、32k RAM)です。オンライン開発ツールには非常に優れたライブラリと多数の例があり、非常に活発なフォーラムがあります。MBEDなどへのデバイスの接続に関する豊富なヘルプ
組み込みシステム(ARM 7/9、Renases M8 / 16/32、Coldfire、Zilog、PICなど)の経験が豊富にありますが、真剣な機能を持ちながら、これを手に入れるのに非常に簡単なシステムであることがわかりました。
最初に基本的なブレッドボードで遊んだ後、これらの人からベースボードを購入しました:http ://www.embeddedartists.com/products/lpcxpresso/xpr_base.php?PHPSESSID=lj20urpsh9isa0c8ddcfmmn207。これには多数のI / Oデバイス(ミニチュアOLEDおよび3軸加速度計を含む)があります。同じサイトから、LCPExpressoプロセッサボードの1つを購入しました。これは、MBEDよりも安価で電力/メモリは少ないですが、小規模なジョブには最適です(依然としてPIC / Atmegaプロセッサのがらくたを叩きます)。ベースボードは、LCPExpressoとMBEDの両方をサポートします。LCPExpressプロセッサボードを購入すると、付属のJTAGデバッガとオフライン開発環境(Code RedのGCC / Eclipseベースの開発キット)も手に入れました。これは、オンラインMBED開発環境よりもはるかに複雑ですが、MBEDで経験を積んだ後の論理的な進歩です。
私の元々のポイントを参考にすると、MBEDコントローラーはLPCExpressoコントローラーよりもはるかに高い能力を持っていますが、使用と学習ははるかに簡単です。
コードソースリライトが良いか、emdebianを使用してください。または、独自のロールを作成する場合は、完全なCまたはgccライブラリが必要な場合を除き、非常に簡単です。最初は、thumb2対応のコンパイラは必要ありません。thumbは、必要なツールチェーンを検索するときに使用します。
llvmはもう1つの優れたものです(llvm-gccではなくclangを使用してください!!)親指エミュレーター(thumbulator.blogspot.com)で作業しているときに親指側にバグが見つかりましたが、すぐに修正されました。llvmの最大の利点は、デフォルトではクロスコンパイラであり、余分な作業や構築経験が必要ないことです。次の数年で、クロスコンパイル/埋め込みのために、gccをさらに深く掘り下げてgccを渡します。
lpcxpressoボードで一度code-redツールを試してみましたが、最終的にはcode-redを絶対に使用せず、lpcをブラックリストに載せるかどうかについて議論しています。ymmv。有料ツールを使用する必要がある場合は、アームによって購入され、パッケージの一部がrvctコンパイラであるため、私はkeilを使用します。もちろん、ライトソースの制限を満たさない場合、またはサポートを受けることを選択した場合、コードソースは有料の家でもあります。gccは、すべてのコンパイラの中で最も優れたサポートを提供します。少し前に、メタウェアとアームのツールを試してみたところ、コードの品質が向上する限りgccが吹き飛ばされました。gccは上下します。3.xの一部のバージョンは4.xよりも優れたコードを生成しますが、各リリースで改善されているようには見えません。 /ありません。
If you have to use a pay for tool I would go with keil only because they were bought by arm
-Keilコンパイラを試しましたか?少なくともKeil 8051ツールには感心していません。GCCベースの競合やLLVM / ClangスイートのIMHOと比較すると、恐竜のように感じます。
Yagarto + Eclipse + J-link eduデバッガーを使用します。(Gnuツールチェーン)
ここ数日、OS XでEFM32Gマイクロ用に完全にセットアップされたCodeSourcery GNUツールチェーンを入手しました。それだけの価値がありました。私が試した多くのGUIベースのデバッガー(ほとんどがEclipseベース)と比較して。Makefile、GCC、およびGDBは夢の実現です。加えて、それはすべて私のLinuxまたはMac端末から動作します。
唯一の問題は、ボードに組み込まれたJ-Linkアダプターです。J-LinkのWindowsおよびLinux GDBServerプログラムはクローズドソースです。さらに悪いことに、Linuxバージョンははるかに遅れています。そのため、GDBが機能するためには、GDBServerを実行することを唯一の目的とするWindows VMWareイメージを実行する必要があります(Linuxが壊れているため)。
ああ、正しく動作しないことに加えて、J-LinkのLinuxベースのGDBサーバーは127.0.0.1にバインドし、それを宛先とするパケットのみをリッスンします。そのため、リモートマシンから接続するには、iptablesと転送をいじる必要があります。ばかばかしい; セガーは彼らの行為をまとめる必要があります。
QtCreatorとGNU Tools ARM Embeddedを使用しています。うまくいく。
利点:
短所:
すべてが正しくセットアップされたら、クリックしてコード内にブレークポイントを作成し、「デバッグ」ボタンをクリックします。約5秒でブレークポイントでコンパイル、フラッシュ、実行、一時停止します(同時にArduinoの「IDE」に戻らなければならない場合は怒ります)。
別のARMチップであるCortex-M0ベースのnRF51822でこれを設定する方法のチュートリアルを作成しています。
CooCoxツールを使用しています。優れていますが、無料で使用でき、コードサイズに制限はありません。 http://www.coocox.org/
arm-eabi-gccを使用し、summon arm toolchain scriptを介してインストールされたツールチェーンをインストールします。このスクリプトは、ARMでベアメタル作業を行うための環境を設定します。その無料でオープンソース、そしてそれはすべて私にとって確実に必要でした。私もこれにIARを使用しましたが、はるかに友好的なデバッグを行うことができ、IDEの方法で物事を行うことができるという点で確かに優れていますが、他の理由がない限り、全体的にはgccに慣れています誰にでも費用を正当化する必要はありません。
(私はgdbを何かに使用する方法を実際に試したことはありませんが、デバッガーを使用したり、デバッガーを使用したりすることに慣れていないため、そのビットを判断する資格があるかどうかはわかりません)
Emprog ThunderBenchを使用します。おそらく私が今まで使った中で最高です。
私が一番気に入っているのは、同時にC / C ++ ARM cortexコンパイラー、デバッガー、IDEであることです。