اقتراحات للغة الأنسب (الأفضل) لبرمجة النظام المدمج؟[مغلق]

StackOverflow https://stackoverflow.com/questions/649197

  •  19-08-2019
  •  | 
  •  

سؤال

إنني أتطلع إلى إجراء ترميز مضمن لجهاز يبلغ سرعته حوالي 20 ميجا هرتز، ويحتوي على ذاكرة وصول عشوائي (RAM) سعة 6 ميجابايت، ومعالج ARM32.هل يمكن لأي شخص أن يقترح اللغة الأفضل/الأنسب لبرمجة النظام المدمج؟أنا أخذ بعين الاعتبار:

  • لوا
  • TinyPy
  • ج
  • جافا مي
  • ج #
  • اقترح شخص ما جافا سكريبت

أي اقتراحات؟شكرًا

تحرير - يبدو أن C وLua هما الفائزان.هتاف جميعا!

تحرير - لا يمثل الوقت الفعلي مشكلة، بل إن ذاكرة الوصول العشوائي/وحدة المعالجة المركزية المحدودة هي التي تملي الأشياء.

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

المحلول

لدي تستخدم Lua على معالج ARM OMAP.يتيح تكامل Lua الوثيق مع لغة C الانتقال إلى المعدن متى شئت، كما أن حجمه الصغير يجعله مناسبًا لمجموعة واسعة من المنصات.لقد قمت بتطوير واجهة المستخدم الخاصة بالبرنامج الثابت الخاص بي في Lua على جهاز Mac الخاص بي، ثم قمت بنقلها إلى النظام الأساسي المضمن دون أي تغييرات.

على الرغم من أن معالج OMAP كان قويًا بما يكفي لتشغيل لغات أخرى مثل Java أو Python، إلا أنني لم أكن أعرف ما هي الأجهزة التي كنت أستهدفها عندما بدأت تشغيل التعليمات البرمجية.كان لوا رهانًا آمنًا.

نصائح أخرى

إذا كنت تقوم بتطوير الجهاز من الصفر أو التواصل مباشرة مع الأجهزة الطرفية غير القياسية، فإن لغة C هي حقًا الطريقة الوحيدة للذهاب.

إذا كان لديك بالفعل نظام تشغيل مضمن أو يمكنك نقله دون صعوبة، فقد يكون لديك مرونة أكبر في إضافة إحدى لغات البرمجة النصية الأكثر.C# غير وارد إلا إذا كنت تستخدم WinCE، ومن ثم سيتم تقييدك باستخدام .NET Micro.

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

من المحتمل أن يكون C هو أفضل رهان لموارد وحدة المعالجة المركزية المحدودة هذه.

سأميل إلى استخدام لغة C بشكل مستقيم، ولكن بعد ذلك كنت أكتب لغة C منذ ما يقرب من 30 عامًا.يبدو أن Lua وTinyPy جديدان للغاية وتجريبيان بالنسبة لي؛يجب أن تكون الأجهزة المدمجة قوية جدًا.

لدى Java ME نقاط جيدة.لا أعرف شيئًا عن C# في العالم المضمن.

من المهم تحديد ما تتوقع أن يفعله هذا الجهاز.هل هو نوع من تطبيق التحكم؟هل يجب عليها تنفيذ الخوارزميات؟ماذا عن دعم النقطة العائمة؟واجهات المستخدم الرسومية؟هل الأداء مهم؟هل تخطط لاستخدام نظام التشغيل؟

تعد الإجابة على هذه الأسئلة شرطًا أساسيًا لاختيار لغة البرمجة.

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

من المؤكد أن لغة C هي اللغة الأكثر استخدامًا في الأنظمة المدمجة.ويبدو أيضًا أنها اللغة الأكثر تحدثًا بشكل عام http://www.langpop.com/

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

بدون ترتيب معين، تعد Lua وJavaScript وTCL جميعها مناسبة تمامًا للتضمين.لقد كانت Lua هي الأسهل بالنسبة لي للتضمين.جافا سكريبت قد يكون الأسرع.يتمتع الثلاثة جميعًا بتعامل جيد مع التعليمات البرمجية غير الموثوق بها، ولكن TCL هي الأكثر قوة، على سبيل المثال، يمكن للتعليمات البرمجية غير الموثوقة تشغيل تعليمات برمجية غير موثوقة (إذا كانت موثوقة للقيام بهذا القدر).

ما لم يكن لديك نظام RTOS متاح يدعم مجموعة متنوعة من اللغات البديلة، فإن C أو C++ (اعتمادًا على سلسلة المترجم الخاص بك) هو الطريق الصحيح.

من المرجح أن يتم تحديد قرارك من خلال الأدوات المتاحة لهذا المعالج.

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

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

ج الأفضل

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