سؤال

لقد الخبرة في القيام سطح المكتب و برمجة الويب لبضع سنوات.أود أن الانتقال إلى القيام ببعض تضمين نظام البرمجة.بعد طرح السؤال الأول, أتسائل الذي الأجهزة / البرمجيات IDE يجب أن تبدأ في...

أو...لا يهم ؟

والتي تطوير منصة هو أسهل لتعلم برنامج (تأخذ في الاعتبار من IDE الاستخدام)?

واحد الذي هو أسهل التصحيح إذا كان هناك شيء يذهب على نحو خاطئ ؟

هدفي هو التعرف "كيف IO منافذ العمل ، قيود الذاكرة/متطلبات ث.وربما الترحيل ، إجراءات خدمة المقاطعة." أنه من الأفضل أن تعلم واحدة التي سوف تستخدم في وقت لاحق, أو ارتفاع مستوى مفهوم يجب أن تحمل أكثر من أن معظم الصغرى تحكم ؟

وذلك بفضل!

تحديث: كيف هذا dev kit كبداية ؟ التعليق ؟ اقتراح ؟

هل كانت مفيدة؟

المحلول

شخصيا أنصح أحد ARM Cortex-M3 بناء متحكم.ارتفاع-قوة الذراع النوى هي شعبية جدا ، وهذه إصدارات منخفضة الطاقة من الممكن جدا أن تقلع في المساحة التي لا تزال تناثرت مع الملكية 8/16 بت النوى.هنا هو المقال الأخير في هذا الموضوع: ARM Cortex-M3 و التقارب بين MCU السوق.

على اردوينو تحظى بشعبية كبيرة للحصول على الهاوي. اتميل's الطرفية مكتبة أمر شائع إلى حد ما عبر المعالج أنواع.لذلك ، فإنه على نحو سلس لاحق الانتقال من AVR إلى الذراع.

أنا لا أقصد أن يدعي أن الذراع هو أفضل من AVR أو أي الأخرى الأساسية.اختيار MCU التجارية المنتج عادة ما يأتي إلى الأجهزة الطرفية و السعر ، تليها البرمجية الموجودة في قاعدة وأدوات التطوير.الى جانب ذلك ، ميكروكنترولر العامة كثيرا أبسط بكثير من جهاز كمبيوتر سطح المكتب.هكذا, انها حقا ليس من الصعب أن تتحرك شكل واحد إلى آخر بعد أن تحصل على تعليق منه.

أيضا, النظر في FreeRTOS إذا كنت مهتما في الوقت الحقيقي نظام التشغيل (RTOS) التنمية.هو مفتوح المصدر يحتوي على نزهة لطيفة من خلال ما RTOS وكيف أنها نفذت واحدة.في الواقع ، المشي من خلال المثال حتى يستهدف AVR.


أدوات تطوير النظم المضمنة يمكن أن تكون مكلفة جدا.ومع ذلك ، هناك غالبا ما تكون مفتوحة المصدر البدائل أكثر انفتاحا النوى مثل الذراع AVR.على سبيل المثال ، انظر WinARM و WinAVR مشاريع.

هذه الأداة سلاسل تستند إلى دول مجلس التعاون الخليجي وبالتالي فهي متاحة أيضا (و أسهل للاستخدام IMHO) على غير منصات ويندوز.إذا كنت معتادا على استخدام دول مجلس التعاون الخليجي ، ثم أنت تعرف أن هناك وفرة من "IDE" التي تتناسب مع ذوقك من EMACS و السادس (المفضلة) إلى الكسوف.

في العروض التجارية يمكن أن توفر لك الكثير من الصداع الحصول على الإعداد.ومع ذلك ، فإن اختيار واحد سوف نعتمد كثيرا على الأجهزة المستهدفة والميزانية.أيضا, بعض الأجهزة الدعم المباشر التصحيح USB في حين أن البعض الآخر قد يتطلب الثمن JTAG محول.


روابط أخرى:


منخفضة التكلفة Cortex-M3 المجالس:


اردوينو جديد للاستفادة من ARM Cortex-M3 بدلا من متحكم AVR.

نصائح أخرى

بالنظر إلى أن لديك بالفعل خبرة في البرمجة ، فقد ترغب في التفكير في الحصول على Arduino ومسح البرامج الثابتة للقيام بأشياء خاصة بك مع AVR Studio + WinAVR. يمنحك Arduino نقطة انطلاق جيدة في فهم الجانب الإلكتروني منه. إن إخراج Arduino Bootloader من شأنه أن يمنحك إمكانية الوصول بشكل أفضل إلى أحواض Atmel.

للحصول على الأهداف التي تحددها ، أوصي أيضًا باستكشاف أجهزة كمبيوتر سطح المكتب بشكل أعمق من خلال برمجة X86. يمكنك إنشاء kernel نظام التشغيل x86 ، على سبيل المثال.

ARM هي أكثر الهندسة المعمارية المدمجة على نطاق واسع وتغطي مجموعة هائلة من الأجهزة من بائعين متعددين ومجموعة واسعة من التكاليف. ومع ذلك ، هناك اختلافات كبيرة بين أجهزة ARM7 و 9 و 11 و Cortex - وخاصة القشرة. ومع ذلك ، إذا كان الدخول إلى الأنظمة المضمنة بشكل احترافي هو هدفك ، فإن تجربة الذراع ستخدمك جيدًا.

تعتبر بنيات 8 بت أسهل بشكل عام في الاستخدام ، ولكنها في كثير من الأحيان محدودة للغاية في كل من سعة الذاكرة والسرعات الأساسية. أيضًا لأنها بسيطة في الاستخدام ، من السهل نسبيًا الحصول على مهارات 8 بت ، لذلك فهي مهارة أقل جاذبية لصاحب العمل المحتمل لأنه من السهل الوفاء داخليًا أو مع موظفين أقل خبرة (وبالتالي أقل تكلفة).

ومع ذلك ، إذا كانت هذه هواية بدلاً من مهنة ، فإن التكلفة المنخفضة للأجزاء والألواح والأدوات ، وسهولة الاستخدام قد تجعل 8 بتات جذابة. أود أن أقترح AVR ببساطة لأنه مدعوم من قبل أدوات AVR-GCC المجانية. يتم دعم حوالي 8 بت الأهداف من قبل SDCC ، وهو برنامج التحويل البرمجي C مفتوح المصدر آخر. أعتقد أن Zilog تجعل برنامج التحويل البرمجي Z8 متاحًا مجانًا ، ولكن قد تحتاج إلى دفع ثمن أجهزة التصحيح (على الرغم من أن هذا غير مكلف نسبيًا). يوفر العديد من بائعي الأدوات التجارية إصدارات محدودة بحجم الرموز من أدواتهم للتقييم والاستخدام غير التجاري ، ولكن احذر معظم أصحاب الأخطاء يحتاجون إلى أجهزة متخصصة قد تكون باهظة الثمن ، على الرغم من أنه يمكنك في بعض الحالات أن تبنيها بنفسك إذا كنت بحاجة فقط إلى وظائف أساسية و سرعات منخفضة.

كل ما تفعله ألق نظرة على www.embedded.com. إذا اخترت ARM ، فقد استخدمت WinArm بنجاح في المشاريع التجارية ، على الرغم من أنها ليست مبنية على الراحة! تتوفر قائمة جيدة من موارد الذراع هنا. لـ AVR بالتأكيد تحقق من www.avrfreaks.net

أود فقط أن أوصي بقطع غيار الموافقة المسبقة عن علم microchip (على الأقل تلك المنخفضة) للمشاريع الحساسة للغاية للتكلفة حيث يكون المزيج المحيطي مناسبًا للتطبيق ؛ ليس لتعلم الأنظمة المضمنة. الموافقة المسبقة عن علم هي علامة تجارية أكثر من كونها بنية ، وتختلف النطاقات المختلفة PIC12 و 16 و 18 و 24 و PIC32 تمامًا عن بعضها البعض ، لذا فإن التعلم على أحدهم لا يقف بالضرورة في وضع جيد لاستخدام آخر - غالبًا ما تحتاجه لشراء أدوات جديدة! ومع ذلك ، قد يكون DSPIC الذي يعتمد على بنية PIC24 اختيارًا جيدًا إذا أردت الحصول على بعض تجربة DSP البسيطة في نفس الوقت.

في جميع الحالات ، تحقق من توفر البروتوكول المبرمج (خاصةً إذا كان دعم C ++ متطلبًا) والتكلفة ، ومتطلبات أجهزة تصحيح الأخطاء ، لأن هذه في كثير من الأحيان ستكون أغلى الأجزاء من dev-kit ، غالبًا ما تكون الألواح والأجزاء هي الجزء الأقل تكلفة.

أصدرت Texas Instruments مجموعة تطوير مثيرة للاهتمام للغاية بسعر منخفض للغاية: أداة تطوير EZ430-Chronos يحتوي على MSP430 مع عرض ومستشعرات مختلفة في ساعة رياضية ، بما في ذلك مبرمج تصحيح USB ونقطة الوصول إلى راديو USB مقابل 50 دولار

يوجد ايضا ويكي يحتوي الكثير والكثير من المعلومات.

فعلت مسبقا أنشأت اقتراح stackexchange لمجموعة EZ430-Chronos.

مهما فعلت ، تأكد من حصولك على بيئة تطوير جيدة. أنا لست من محبي أدوات تطوير MicroChip على الرغم من أنني أحب متحكمهم (لقد تم حرقها عدة مرات بواسطة MPLAB + ICD ، والكثير من المتاعب والخلل الوظيفي). DSPs من سلسلة 2800 من TI جيدة جدًا ولديها بيئة تطوير C ++ المستندة إلى Eclipse والتي يمكنك الحصول عليها مقابل <100 دولار أمريكي (احصل 28335) - رابط اتصالات الأخطاء هو قوي حقًا ؛ IDE جيدة على الرغم من أنني أعطوها من حين لآخر.

في مكان ما هناك ICs ولوحات أفضل ؛ أنا لست على دراية بالمناظر الطبيعية المدمجة في متحكم ، لكن ليس لدي الكثير من الصبر على IDEs الفقيرة مع سلسلة أدوات برمجيات أخرى يتعين علي معرفة كيفية التغلب على جميع الأخطاء.

يوصي البعض الذراع. أوصي بذلك ، ليس كمنصة أولى للتعلم ، ولكن كمنصة ثانية. ARM معقدة بعض الشيء كمنصة لتعلم التفاصيل ذات المستوى المنخفض للمدمج ، لأن رمز بدء التشغيل ومتطلبات التهيئة أكثر تعقيدًا من العديد من micros الأخرى. لكن ARM هو لاعب كبير في السوق المدمجة ، مما يستحق التعلم. لذلك أوصي به كمنصة ثانية للتعلم.

سيكون Atmel AVR مفيدًا لتعلم العديد من الضروريات المضمنة ، لأسباب رئيسية 3:

  1. الهندسة المعمارية مباشرة إلى الأمام
  2. جيد مجموعات التطوير المتاحة ، مع البرامج التعليمية
  3. منتدى المعجبين مع العديد من الموارد

micros أخرى مع مجموعات التنمية يمكن أن تكون جيدة أيضًا - مثل MSP430- على الرغم من أنهم قد لا يكون لديهم مثل هذا المنتدى المعجبين. يعد استخدام مجموعة التطوير وسيلة جيدة للذهاب ، حيث يتم توجيهها نحو الصعود السريع مع Micro ، وتعزيز التعلم الفعال. من المحتمل أن يكون لديهم البرامج التعليمية الموجهة نحو البدء بسرعة.

حسنًا ، أفترض أن مجموعات التطوير وبرامجها التعليمية من المرجح أن تتلألأ على أشياء مثل محولات التشغيل ورمز بدء التشغيل ، لصالح الحصول على رمزك لتخفيف LED في أقرب وقت ممكن. ولكن قد يكون ذلك وسيلة جيدة للبدء ، ويمكنك استكشاف سلسلة الأحداث من "Power-On" إلى "Code Running" في وتيرتك.

أنا لست من عشاق الصور ، على الأقل PIC16S ، بسبب الهندسة المعمارية. انها ليست صديقة جدا c. وبنوك الذاكرة مؤلمة.

هذا نوع من السؤال الصعب للإجابة عليه لأن إجابتك المثالية تعتمد كثيرًا على ما يهمك بالتعلم.

إذا كان هدفك هو مجرد الغوص قليلاً في الأعمال الداخلية لأنظمة الحوسبة ، فإنني أوصي بك تقريبًا بالتخلي عن المسار المدمج والتقاط كتاب عن كتابة وحدة Kernel Linux. اكتب شيئًا بسيطًا يقرأ مستشعر درجة الحرارة قبالة SMBUS أو شيء من هذا القبيل.

إذا نظرتك إلى الدخول في تطوير التطبيقات المدمجة في المستوى العالي ، وتنزيل نظام Android SDK ، فيمكنك رمزًا في Java تحت Eclipse وحتى لديه محاكي لطيف.

إذا نظرتك إلى الدخول إلى مساحة متحكم "حقيقية" وإلقاء نظرة على برمجة النظام منخفض المستوى ، فإنني أوصي بأن تبدأ في بنية بسيطة للغاية مثل AVR أو الموافقة المسبقة عن علم ، شيء بدون MMU.

الغوص في الأرض الوسطى ، على سبيل المثال ذراع مع MMU ونوع من نظام التشغيل هو أنه سيكون Linux أو غير ذلك سيكون صدمة بعض الشيء ، حيث بدون خلفية برمجة النظام وتواصل الأجهزة ، أعتقد أن الانتقال سيكون صعبًا للغاية إذا كنت تخطط للقيام بالكثير بخلاف كتابة تطبيقات بسيطة للغاية ، فإن زر العد يضغط أو ما شابه.

إنه أمر مهم ، فأنت بحاجة إلى اكتساب خبرة تدريجياً بدءًا من أنظمة أبسط. لاحظ أنه بأكثر من أبسط ، لا أقصد أقل قوة ، أعني سهولة الاستخدام ، وسهولة الإعداد وما إلى ذلك. في هذا الوريد ، أوصي بما يلي (ليس لدي أي مصلحة في أي من المنتجات ، لقد وجدتها الأفضل):

لقد بدأت في استخدام واحد من هذه (لوحة المطورين Mbed). كانت نقاط البيع الكبيرة بالنسبة لي هو أنه يمكنني الترميز في C أو C ++ ، واتصال مباشرة فيسوب وبيئة تطوير عبر الإنترنت (لا يوجد أي تثبيت أدوات محلي مطلوب على الإطلاق!).

http://mbed.org/

مربع افتتاح Afer لمدة خمس دقائق كان لدي عينة من برنامج Blinky ("Hello World" لعالم Emedded) الذي يدير ما يلي:

#include "mbed.h"

DigitalOut myled(LED1);

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

هذا هو! أعلاه هو البرنامج الكامل!

إنه يعتمد على ذراع القشرة M3 ، سريع والكثير من الذاكرة للمشاريع المدمجة (100 ميجا هرتز ، 256 كيلو فلاش و 32 كيلو رام). تحتوي أدوات DEV عبر الإنترنت على مكتبة جيدة جدًا والكثير من الأمثلة ، وهناك منتدى نشط للغاية. الكثير من المساعدة على توصيل الأجهزة للاضطراب وما إلى ذلك

على الرغم من أن لدي الكثير من الخبرة في الأنظمة المدمجة (ARM 7/9 ، Renases M8/16/32 ، Coldfire ، Zilog ، PIC ، إلخ) ، ما زلت وجدت هذا نظامًا سهلاً منعشًا للوصول إليه أثناء وجود قدرة خطيرة.

بعد أن ألعب معها في البداية على لوح أساسي أساسي ، اشتريت لوحة قاعدة من هؤلاء الرجال: http://www.embeddedartists.com/products/lpcxpresso/xpr_base.php؟phpsessid=lj20urpsh9isa0c8ddcfmmn207. هذا يحتوي على كومة من أجهزة الإدخال/الإخراج (بما في ذلك OLED Miniture و 3Axis التسارع). من نفس الموقع ، اشتريت أيضًا إحدى لوحات معالجات LCPEXPRESSO وهي رخيصة وأقل قوة/ذاكرة من MBED ولكنها مثالية للوظائف الأصغر (لا تزال تضرب حماقة من معالجات الموافقة المسبقة عن علم/ATMEGA). يدعم اللوحة الأساسية كلاً من LCPExpresso و MBed. شراء لوحة معالج LCPEXPRESS أيضًا جعلت ME ME a JTAG Debugger و Dev Envoronment غير متصل (Code Red's GCC/Eclipse المستندة إلى DEV). هذا أكثر تعقيدًا من بيئة Debed Dev عبر الإنترنت ، ولكنه تقدم منطقي بعد اكتساب التغذية مع mbed.

بالإشارة إلى نقطتي الأصلية noite إلى أن وحدة تحكم MBED أكثر قدرة من وحدة تحكم LPCEXPRESSO ولكنها أبسط بكثير في الاستخدام والتعلم.

أستخدم Microchips Pic's ، وهو ما بدأت عليه ، لقد استمرت بشكل أساسي بسبب 123 مشاريع متحكم في كتاب Evil Genius. لقد أخذت فصلًا دراسيًا للمعالجات الدقيقة في المدرسة للحصول على شهادتي وتعلمت قليلاً عن المقاطعات والتوقيت والأشياء ، وقد ساعد ذلك في طن مع صائدي الدقيقة. أفترض أن بعض المبرمجين الآخرين وما إلى ذلك قد يكون أفضل/أسهل ، ولكن مقابل 36 دولارًا لـ Pickit1 ، فأنا رخيصة جدًا لشراء واحدة أخرى ... وبصراحة دون استخدامهم لا أعرف ما إذا كانت أسهل/أفضل ، أحبني وأوصي به كل فرصة أحصل عليها ، واستغرق الأمر مني إلى الأبد أن أنظر إليه حقًا ، لكنني تمكنت من برمجة لوحة أخرى خارج اللوح مع ICSP أخيرًا. لا أعرف ما الذي يفعله المبرمجون الآخرون ، لكن هذا هو أجمل شيء من 5 واجهة سلكية وأنت مبرمج. لا يمكن التغلب على ذلك بعصا ...

لقد استخدمت واحدة فقط من هؤلاء.

The Freescale هي شريحة رائعة. لقد استخدمت رقائق HC-شيء لسنوات لمشاريع صغيرة. التحذير الوحيد هو أنني لن أتطرق إلى حامل الترميز المضمّن بقطب 10 أقدام. يمكنك العثور على القليل من المجمعين ومجمعات C (لا أتذكر اسم آخر مرة استخدمتها) التي تقوم بالمهمة على ما يرام. كان Codewarrior كبيرًا ومربكًا وبغض النظر عن مقدار ما عرفته عن بنية الرقائق ويبدو أن برمجة C دائمًا تجعل الأمور أكثر صعوبة. إذا كنت قد استخدمت Codewarrior على جهاز Mac في الأيام الخوالي واعتقد أن CW أنيق ، حسنًا ، فهذا ليس من هذا القبيل على الإطلاق. CW مضمونة تبدو متشابه بشكل غامض ، لكنه يعمل بشكل مختلف جدا ، وليس جيدا.

برنامج التحويل البرمجي لخط الأوامر بشكل عام بخير. يحصل المهنيون الذين يمكنهم التخلص من Big Bucks على بيئات تنمية باهظة الثمن ، وأنا متأكد من أنهم يجعلون الأمور أفضل ، ولكن بدون ذلك لا يزال أفضل بكثير من كتابة رمز التجميع لجهاز كمبيوتر سطح المكتب في عام 1990 ، وبطريقة ما تمكنا من القيام بذلك بشكل جيد . :-)

لا ، لا يهم إذا كنت ترغب في تعلم كيفية برمجة جهاز مضمن. ولكن عليك أن تعرف تدفق من أين تبدأ وأين تذهب بعد ذلك. لأن هناك العديد من المرتبات الدقيقة هناك ولا تعرف أي واحد للاختيار. من الأفضل أن يكون لديك خريطة طريق قبل البدء.

في رأيي ، يجب أن تبدأ - أي لوحة AVR (لوحات ATMEGA 328P- Arduino أو لوحات AVR) ثم يجب عليك الذهاب إلى ARM MICRO -Controller - First Do Arm Cortex TDMI ثم Arm Cortex M3 Board. وهذا سيعطيك عرضًا شاملًا بعد ذلك يمكنك اختيار أي لوحة اعتمادًا على نوع المشروع الذي تعمل وما هي متطلباتك.

اقرأ المزيد عن on- doafco.com

يمكنك يعتبر أ روبارد. الآن ، قد هذا المجلس ليس كن ما تبحث عنه من حيث متحكم ، ولكنه يتمتع بميزة القدرة على تشغيل النوافذ أو DOS وبالتالي أنت يستطع استخدم أدوات تطوير Microsoft .NET أو حتى C/C ++ لتتجول مع أشياء مثل servos أو أجهزة الاستشعار أو حتى ، ما هيك ، بناء روبوت! انها في الواقع ممتعة نوعا ما.

هناك أيضا محور عصبي, ، الذي يحتوي على معالج ATMEGA640.

في كلتا الحالتين ، يجب أن تساعدك كلا المجالسين على تحقيق هدفك.

آسف لتركيز الروبوتات ، فقط شيء مهتم به واعتقد أنه قد يساعدك أيضًا.

أستخدم الصور ، لكنني أفكر في Arduino إذا اخترت اليوم. لكن من أهدافك:

  • كيف تعمل منافذ IO
  • قيود/متطلبات الذاكرة
  • إجراءات خدمة المقاطعة

أتساءل عما إذا كنت أفضل رهان هو مجرد اختراق kernel Linux؟

بي بي سي ميكرو بت

https://en.wikipedia.org/wiki/Micro_bit

هذا اللوحة الصغيرة الرخيصة (~ 20 جنيه) كان من قبل Arm Holdings كجهاز تعليمي ، وتم منح 1 مليون وحدة مجانًا للطلاب في المملكة المتحدة.

أنه يحتوي على قشرة الذراع M0 ، أصغر قلب ذراع على الإطلاق.

أوصي به كوحة السيطرة الدقيقة الأولى نظرًا لتوافرها الواسع والتكلفة المنخفضة والبساطة وحقيقة أنها تقدم لك بنية ARM ، والتي تتوفر أيضًا العديد من المجالس المتقدمة للتطبيقات الأكثر خطورة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top