एआरएम कोर्टेक्स-एम 3 विकास उपकरण?


36

मैं NXP कॉर्टेक्स एम 3 वास्तुकला की ओर पलायन करने की योजना बना रहा हूं और मैं अस्तित्ववादी विकास साधनों के बीच थोड़ा खो गया हूं।

Keil महंगा है और मुझे नहीं पता कि यह इसके लायक है या नहीं। जिसने भी कुछ संकलक की कोशिश की है वह कोई सलाह दे सकता है?

मुझे यह कंपाइलर http://www.code-red-tech.com/red-suite-2.php अच्छा और महंगा नहीं लगा। जो कोई भी इसे करने की कोशिश करता है या इसके बारे में जानता है वह मुझे और जानकारी दे सकता है?


यह LPCXpresso बोर्डों के साथ आपूर्ति की गई कंपाइलर है, और ग्रहण आईडीई के साथ gcc का उपयोग करती है। राउली क्रॉसवर्क्स टूल ज्यादा बेहतर हैं।
लियोन हेलर

2
किस तरह से वे बेहतर हैं? मैं पूछ रहा हूं क्योंकि मेरे पास LPCXpresso बोर्ड है और उपकरण अच्छी तरह से काम करने लगते हैं इसलिए मैं सोच रहा हूं कि अन्य उपकरण कैसे बेहतर हैं?
जॉन बर्टन

क्या हम इसे सीडब्ल्यू नहीं बना सकते?
स्टीवनव

2012 में Microsoft Visual Studio 2012 ARM को 1st क्लास टार्गेट के रूप में समर्थन करने के बाद अधिकांश रिक्वायर्डिटी पर पुनर्विचार करना चाहिए।

छोटी परियोजनाओं के लिए, केइल कंपाइलर का परीक्षण संस्करण मुफ्त है।
साइमन रिक्टर

जवाबों:


17

मैं अपने खाली समय में हाल ही में एसटीएम 32 (भी कोर्टेक्स एम 3) के साथ खेल रहा हूं और जीसीसी के कोडस्कोररी वितरण का उपयोग कर रहा हूं, जिसने बहुत अच्छा काम किया है।

अतीत में पेशेवर रूप से एआरएम माइक्रोस के साथ काम कर चुके एक सहकर्मी ने मुझे बताया कि वह IAR टूलकिन से संतुष्ट थे, हालांकि मुझे नहीं पता कि कॉर्टेक्स का समर्थन मूल्य कैसा है या कैसा है।


1
IAR कंपाइलर्स में विशेषज्ञता वाली कंपनी है जहां तक ​​मैं बता सकता हूं। मैं उन्हें काम पर उपयोग करता हूं और उनके पास कुछ भत्ते, और कुछ नुकसान हैं। मुझे लगता है कि उनका समर्थन बहुत उत्कृष्ट है, हालांकि, हम MSP430 का उपयोग करते हैं, लेकिन वे मेरे द्वारा देखे जाने वाले प्रत्येक प्रोसेसर को कवर करते हैं।
कोर्तुक

16

मैं TI स्टेलारिस माइक्रोकंट्रोलर्स को प्रोग्राम करने के लिए लिनक्स के लिए कोडसॉररी (लाइट) क्रॉस-कंपाइलर्स का उपयोग करता हूं । वे किसी भी कोर्टेक्स-एम 3 के साथ काम करते हैं। वे पूरी तरह से स्वतंत्र हैं, विंडोज और लिनक्स के लिए बायनेरिज़ के साथ।

यहाँ एक संक्षिप्त नुस्खा (डेबियन / Ubuntu) स्थापित करने के लिए है:

टूलचेन डाउनलोड करें (कोई भी संस्करण करेगा, लेकिन मैं इसका उपयोग करता हूं)

जावा रनटाइम पर्यावरण स्थापित करें (शापित इंस्टॉलर के लिए)

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 में क्रॉस कंपाइलर बिन डायरेक्टरी जोड़ें

echo 'export PATH=$PATH:~/CodeSourcery/Sourcery_G++_Lite/bin/' >> ~/.bashrc 
. ~/.bashrc 

कोड और डिबग लोड करने के लिए, आपको OpenOCD और या तो gdb या GUI में से एक की आवश्यकता होगी ।

आपको JTAG एडाप्टर की भी आवश्यकता होगी ।


मैं अपनी एक कक्षा में स्टेलारिस एलएम -3 एस 6965 देव किट के साथ कोडस्कोररी टूल का भी उपयोग करता हूं। हमारे विकी (टूलकिन से लिंक) यहां है: क्लेमोर.इन्गिनेयर.गवसु.ड्यू / ईग्रेक्स 326/… (मैकओएस एक्स नीचे दिए गए निर्देशों को भी देखें।) किट उनके जीयूआई उपकरण के समय-सीमित डेमो के साथ आता है, लेकिन कमांड लाइन उपकरण सीमित नहीं हैं।
केविन वर्मियर

9

मैंने इनमें से एक (MBED डेवलपर बोर्ड) का उपयोग शुरू कर दिया है। मेरे लिए बड़े विक्रय बिंदु यह थे कि मैं सी या सी ++ में कोड लगा सकता था, सीधा कनेक्शन विज़ यूएसबी और एक चालाक ऑन-लाइन विकास वातावरण (कोई भी स्थानीय उपकरण स्थापना आवश्यक नहीं!)।

http://mbed.org/

पाँच मिनट एफ़र ओपनिंग बॉक्स मैं एक नमूना ब्लिंक प्रोग्राम (ईमेड वर्ल्ड की 'हैलो वर्ल्ड') निम्नलिखित चल रहा था:

#include "mbed.h"

DigitalOut myled(LED1);

int main()
{
    while(1)
    {
        myled = 1;
        wait(0.2);
        myled = 0;
        wait(0.2);
    }
}

बस! ऊपर पूरा कार्यक्रम है!

यह एआरएम कोर्टेक्स एम 3 पर आधारित है, एम्बेडेड प्रोजेक्ट्स के लिए तेज और बहुत सारी मेमोरी (100mhz, 256k फ्लैश और 32k रैम)। ऑनलाइन देव टूल्स में एक बहुत अच्छी लाइब्रेरी है और बहुत सारे उदाहरण हैं और एक बहुत ही सक्रिय फोरम है। उपकरणों को MBED आदि से जोड़ने में बहुत मदद

भले ही मुझे एम्बेडेड सिस्टम (ARM 7/9, Renases M8 / 16/32, Coldfire, Zilog, PIC आदि) के साथ बहुत अनुभव है, फिर भी मुझे गंभीर क्षमता होने के साथ पकड़ पाने के लिए यह एक ताज़ा आसान प्रणाली मिली।

शुरू में एक बुनियादी ब्रेडबोर्ड पर इसके साथ खेलने के बाद मैंने इन लोगों से एक आधार बोर्ड खरीदा: http://www.embeddedartists.com/products/lpcxpresso/xpr_base.php?PHPSESSID=lj20urpsps9isa0c8ddcfmmn207। इसमें I / O डिवाइसों का ढेर (एक मिनिमम OLED और 3axis एक्सेलेरोमीटर सहित) है। उसी साइट से मैंने LCPExpresso प्रोसेसर बोर्ड में से एक खरीदा, जो कि MBED की तुलना में सस्ता, कम पावर / मेमोरी वाला है, लेकिन छोटी नौकरियों के लिए एकदम सही है (अभी भी PIC / Atmega प्रोसेसर से बाहर बकवास करता है)। आधार बोर्ड LCPExpresso और MBED दोनों का समर्थन करता है। LCPExpress प्रोसेसर बोर्ड की खरीद ने मुझे एक संलग्न JTAG डिबगर और एक ऑफलाइन देव एनवर्जन (कोड रेड का GCC / ग्रहण आधारित देव किट) भी दिया। यह ऑनलाइन MBED देव वातावरण की तुलना में बहुत अधिक जटिल है, लेकिन MBED के साथ अनुभव प्राप्त करने के बाद एक तार्किक प्रगति है।

मेरे मूल बिंदु नोइट के संदर्भ में कि MBED कंट्रोलर LPCExpresso कंट्रोलर की तुलना में बहुत अधिक सक्षम है, लेकिन BUT का उपयोग करना और उसके साथ सीखना अधिक सरल है।


एडम ग्रीन की उत्कृष्ट gcc4mbed परियोजना भी है जो आपको ऑफ़लाइन संकलन करने की अनुमति देती है (बड़े कोड आकार पर): github.com/adamgreen/gcc4mbed
केविन चेन

9

कोड सॉर्सेरी लाइट अच्छा है, या एंबेडियन का उपयोग करें। या अपना खुद का रोल करें, यह बहुत आसान है जब तक आपको पूर्ण सी या जीसीसी लाइब्रेरी की आवश्यकता नहीं होती है तब भी यह संभव है लेकिन थोड़ा कठिन है। सबसे पहले आपको एक थंब 2 सक्षम कंपाइलर की आवश्यकता नहीं होगी, जैसा कि आप अपनी पसंद के टूलकिन को खोजने के लिए करेंगे।

llvm एक और अच्छा है (clang not llvm-gcc !!) का उपयोग करें, मुझे पता है कि आर्म साइड हर समय बेहतर हो रहा है, संस्करण 27 ने एक विशेष परीक्षण के लिए वर्तमान gcc की तुलना में तेजी से कोड का उत्पादन किया। मुझे अपने अंगूठे के एमुलेटर (thumbulator.blogspot.com) पर काम करते समय अंगूठे की तरफ एक बग मिला, जो तुरंत ठीक हो गया था। Llvm के बारे में सबसे अच्छी बात यह है कि यह डिफ़ॉल्ट रूप से एक क्रॉस कंपाइलर है, कोई अतिरिक्त काम या भवन अनुभव की आवश्यकता नहीं है। अगले कुछ वर्षों में मैंने उन्हें क्रॉस कंपाइलिंग / एम्बेडेड के लिए gcc में और पासिंग gcc में गहरी कटिंग करते हुए देखा।

मैंने एक बार lpcxpresso बोर्ड के साथ कोड-रेड टूल की कोशिश की, अंतिम परिणाम यह है कि मैं निश्चित रूप से कोड-लाल का उपयोग नहीं कर रहा हूं और बहस कर रहा हूं कि क्या एलपीजी को भी ब्लैकलिस्ट किया जाए। YMMV। यदि आपको उपकरण के लिए एक भुगतान का उपयोग करना है तो मैं केवल काइल के साथ जाऊंगा क्योंकि वे हाथ से खरीदे गए थे और पैकेज का हिस्सा आरवीटी संकलक है। बेशक कोड सार्केरी एक पे-हाउस है, भले ही आप लाइट की सीमाओं को पूरा न करें या समर्थन प्राप्त करने के लिए चुनें, क्योंकि यह सभी संकलक के द्वारा सबसे अच्छा समर्थन है। बहुत समय पहले नहीं जब मैं उन्हें मेटवेयर और हाथ के औजारों को आज़माने में सक्षम था, जहाँ तक उत्पादित कोड की गुणवत्ता के कारण जीसीसी को उड़ा दिया। gcc ऊपर और नीचे के कुछ संस्करणों में 3.x से बेहतर कोड का उत्पादन करता है। वे प्रत्येक रिलीज़ पर सुधार नहीं करते हैं, लेकिन उन्होंने कोड किया या शायद कोड sourcery ने thumb2 समर्थन को बहुत पहले नहीं जोड़ा, जो कि 3.x संस्करणों में नहीं आता है। / अभ्यस्त है


If you have to use a pay for tool I would go with keil only because they were bought by arm- क्या आपने केइल कंपाइलर्स ट्राई किया है? मैं केइल 8051 टूल से कम से कम प्रभावित नहीं हुआ हूं। वे जीसीसी आधारित प्रतियोगिता या एलएलवीएम / क्लेंग सूट, आईएमएचओ की तुलना में डायनासोर की तरह महसूस करते हैं।
मोर्टन जेन्सेन

8

मैं ARM और MSP430 विकास के लिए राउली सॉफ्टवेयर का उपयोग करता हूं:

http://www.rowley.co.uk

उत्कृष्ट है। कोर्टेक्स-एम 3 समर्थित है।


1
मैं परीक्षण संस्करण की कोशिश कर रहा हूं और मुझे लगता है कि यह मेरी पसंद होगी। यह पूरी तरह से प्रलेखित है और बहुत महंगा नहीं है (150 डॉलर के लिए व्यक्तिगत लाइसेंस)
mba7

राउली टूलसेट महान है और समर्थन उत्कृष्ट है।
रेडियन


5

मैं अपने एआरएम विकास के लिए IAR संकलक / डिबग श्रृंखला का उपयोग करके बहुत अच्छी सफलता प्राप्त की है । वे एंबेडेड सी ++ पर्यावरण (जो कुछ दुर्लभ लगता है) के साथ अपेक्षाकृत स्थिर विकास उपकरण प्रदान करते हैं। - आपके कोडबेस आकार के आधार पर, वे अपने टूल के कोड-साइज़ सीमित संस्करणों के साथ शानदार हार्डवेयर / सॉफ्टवेयर "किकस्टार्ट किट" भी प्रदान करते हैं।


4

IAR उत्कृष्ट है, और यदि आप छोटे प्रोजेक्ट्स कर रहे हैं तो एक मुफ्त 32K कोड-साइज़ सीमित किकस्टार्ट संस्करण है। आकार उन्नयन हालांकि मुझे विश्वास है कि थोड़ा महंगा है। वे अच्छी उदाहरण परियोजनाओं के टन के साथ आते हैं, आमतौर पर प्रत्येक प्रोसेसर परिवार के लिए कई।


2
हां, उन्होंने मेरे स्कूल को अच्छी तरह से काट दिया, 95% कीमत में कटौती के बाद भी यह हजारों में था।
कोर्तुक

4

मैंने पिछले कुछ दिन बिताए थे जब कोडसॉररी जीएनयू टूलचैन पूरी तरह से ओएस एक्स पर ईएफएम 32 जी माइक्रो के लिए स्थापित किया गया था। यह इसके लायक था। GUI-आधारित कई डिबगर्स की तुलना में मैंने कोशिश की है (ज्यादातर ग्रहण-आधारित); Makefiles, GCC और GDB एक सपना सच हो रहे हैं; प्लस यह सब मेरे लिनक्स या मैक टर्मिनल से काम करता है।

एकमात्र हिस्सा जो बेकार है वह जे-लिंक एडाप्टर है जिसे बोर्ड में बनाया गया है। J-Link का विंडोज और लिनक्स GDBServer प्रोग्राम बंद स्रोत है। इससे भी बदतर, लिनक्स संस्करण बहुत पीछे है। इसलिए GDB को काम करने के लिए, मुझे एक Windows VMWare छवि को चलाना है जिसका एकमात्र उद्देश्य GDBServer को चलाना है (क्योंकि लिनक्स एक टूट गया है)।

ओह, और सही ढंग से काम नहीं करने के शीर्ष पर, जे-लिंक का लिनक्स-आधारित जीडीबी सर्वर 127.0.0.1 से बांधता है और केवल उस पैकेट को सुनता है जो कि भाग्य के रूप में है; तो iptables के साथ खिलवाड़ और अग्रेषण को दूरस्थ मशीन से कनेक्ट करने के लिए आवश्यक है। हास्यास्पद; सेगर को अपने एक्ट को एक साथ लाने की जरूरत है।


मैं मानता हूं कि लिनक्स पर एक शाही दर्द है, लेकिन मुझे लगता है कि आप इसे LD_LIBRARY_PATH का उपयोग करके काम कर सकते हैं। इसके अलावा आप बाइंडिंग एड्रेस इश्यू को ठीक कर सकते हैं, या तो SSH फॉरवर्ड का उपयोग करके, या नेटवर्क कॉल को लपेटने और नेटवर्क एड्रेस को बदलने के लिए LD_PRELOAD या इसी तरह का उपयोग करके। लेकिन यह दयनीय है जब उपकरण जो महंगे हैं, एसटी-लिंक जैसे सस्ते से काम करना कठिन है, जिसके लिए पूरी तरह से खुले ड्राइवरों को रिवर्स इंजीनियर किया गया है।
क्रिस स्ट्रैटन

4

मैं QtCreator और GNU टूल्स ARM एंबेडेड का उपयोग करता हूं। अच्छा काम करता है।

लाभ:

  • पूरी तरह से मुक्त (और खुला स्रोत)
  • QtCreator काम कोड पूरा करने, प्रतीक हाइपरलिंक्स, रीफैक्टरिंग, आदि के साथ एक महान आधुनिक C ++ IDE है।
  • QtCreator नंगे धातु डिबगिंग का समर्थन करता है (हाँ - आप ग्राफिकल रूप से ब्रेकपॉइंट्स, स्टेप कोड और चर का निरीक्षण कर सकते हैं)। (अपने MCU के लिए JTAG या SWD लिंक की आवश्यकता है, लेकिन यह लगभग उतना कठिन नहीं था जितना मैंने सोचा था।)
  • ग्रहण या ग्रहण-आधारित नहीं।

नुकसान:

  • बरमेटल समर्थन बहुत नया है और मेरे पास इसके साथ कुछ मुद्दे थे - अंततः QtCreator मेलिंग सूची पर लेखक की उत्कृष्ट मदद से उबरें।
  • हो सकता है कि केइल या कोड रेड की तुलना में सेट करना थोड़ा कठिन हो।

जब सब कुछ सही ढंग से सेट हो जाता है तो मैं अपने कोड में एक ब्रेकपॉइंट बनाने के लिए क्लिक कर सकता हूं, और फिर "डीबग" बटन पर क्लिक कर सकता हूं। यह लगभग 5 सेकंड में ब्रेकपॉइंट पर संकलन, फ्लैश, निष्पादित, और विराम देगा (साथ ही अगर आप कभी भी Arduino "IDE" पर वापस जाना है तो आप क्रोध करेंगे)।

मैं एक और एआरएम चिप के साथ इसे कैसे स्थापित किया जाए, इसके लिए एक ट्यूटोरियल पर काम कर रहा हूं - कॉर्टेक्स-एम0 आधारित nRF51822।


5
यह संभव है कि उत्तर को और अधिक उपयोगी बनाने के लिए आप जो कुछ पसंद करते हैं, उसके बारे में थोड़ा और विस्तार करें।
पीटर जे

आप एक मोटी रूपरेखा प्रस्तुत कर सकते हैं ??
स्कॉट सीडमैन

2

मैं CooCox टूल का उपयोग करता हूं, यह उत्कृष्ट है लेकिन उपयोग करने के लिए स्वतंत्र है, किसी भी कोड-आकार तक सीमित नहीं है। http://www.coocox.org/


1

मैं आर्म-एगबी-जीसीसी और टूलचिन का उपयोग करता हूं जो कि समन आर्म टूलचैन स्क्रिप्ट के माध्यम से इसे स्थापित करता है । स्क्रिप्ट एआरएम पर नंगे धातु का काम करने के लिए पर्यावरण की स्थापना करती है। इसका स्वतंत्र और खुला स्रोत और वह सब और मेरे लिए काफी मज़बूती से काम किया है। मैंने इसके लिए IAR का भी उपयोग किया है, और यह निश्चित रूप से बेहतर है कि यह आपको बहुत अधिक अनुकूल डिबगिंग करने और IDE तरीके से काम करने के लिए देता है, लेकिन पूरी तरह से मैं gcc के साथ अधिक सहज महसूस करता हूं, अगर कोई अन्य कारण नहीं है क्योंकि मैं किसी को भी खर्च का औचित्य साबित करने की जरूरत नहीं है।

(मैंने वास्तव में काम नहीं किया है कि किसी भी चीज़ के लिए gdb का उपयोग कैसे किया जाए, लेकिन Ive का उपयोग वास्तव में कभी भी डिबगर का उपयोग करने या किसी भी तरह उपलब्ध होने के लिए नहीं किया गया है, इसलिए मुझे यकीन नहीं है कि मैं उस बिट को जज करने के लिए योग्य हूं।)


1

मैं Emprog ThunderBench का उपयोग करता हूं । यह उत्कृष्ट है, शायद सबसे अच्छा जो मैंने कभी इस्तेमाल किया है।

मुझे जो सबसे ज्यादा पसंद है वह यह है कि यह एक ही समय में, एक सी / सी ++ एआरएम कॉर्टेक्स कंपाइलर , एक डीबगर और एक आईडीई है।


1
अब तक एक और GCC + ग्रहण संयोजन जैसा दिखता है।
क्रिस स्ट्रैटन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.