এমসিইউ প্রোগ্রামিংয়ের জন্য আরটিওস বনাম বেয়ার মেটালের সুবিধা?


11

দয়া করে নোট করুন: এই প্রশ্নটিতে দুটি আরটিওস উল্লেখ করা হয়েছে তবে এটি আরও জেনেরিক এবং সম্ভবত এম্বেড করা আরটিওসগুলির জন্য সি কোড লিখেছেন এমন কেউ এবং তার এমসিইউগুলিতে সরাসরি তাদের সফ্টওয়্যারটি চালিয়েছিল বলে উত্তর দেওয়া যেতে পারে।

আমি এম্বেড করা আরটিওএস এবং আরও অ্যাপ্লিকেশন লেখার বিষয়ে আরও জানতে আগ্রহী। আমি বর্তমানে দিকে তাকিয়ে রইলাম Embox এবং সংঘাত কারণ তারা ওপেন সোর্স, আধুনিক সক্রিয় হন এবং চমৎকার ডকুমেন্টেশন আছে বলে মনে হচ্ছে। আমার লক্ষ্যটির দুটি পর্যায় রয়েছে: প্রথম ধাপে এই ওএসগুলি কীভাবে কোনও এমসিইউতে সংকলন করা যায় এবং ফ্ল্যাশ করা যায় তা নির্ধারণ করা (সম্ভবত এভিআর বা এআরএম)। দ্বিতীয় পর্যায়টি তখন একটি সাধারণ সি প্রোগ্রাম (মূলত একটি মাথাবিহীন ডেমন) লিখতে হয় যা সময়ের সাথে সাথে "শখের অ্যাপ্লিকেশন" হিসাবে বিকশিত হয়। আমি তখনই এই প্রোগ্রামটিকে একই এমসিইউতে ফ্ল্যাশ / মোতায়েন করব, যার মাধ্যমে এমবক্স / আরআইওটি এবং এর উপরে থাকা আমার অ্যাপ্লিকেশন সমন্বিত একটি অ্যাপস্ট্যাক সফলভাবে মোতায়েন করব।

চূড়ান্তভাবে মৃতপ্রায় দিকে পরিচালিত কোনও রাস্তায় নামার আগে আমি এই নিবন্ধটি জুড়েই হোঁচট খেয়েছি যা সি / এস্যাসেবলারে লেখা এবং এমসিইউগুলিতে কেন রিয়েল-টাইম অ্যাপ্লিকেশনগুলি সত্যই তাদের নীচে আরটিওসগুলির প্রয়োজন হবে না তা ব্যাখ্যা করার বেশ ভাল কাজ করে does ।

সুতরাং এখন আমি সত্যিই বিভ্রান্ত হয়েছি, এবং কম্পিউটিং তত্ত্ব সম্পর্কে আমার কিছু মৌলিক বোঝার বিষয়ে প্রশ্ন করছি। আমি অনুমান করি যে আমি প্রথম স্থানে এমবক্স / আরআইওটি ব্যবহার করব কিনা তা সিদ্ধান্ত নেওয়ার চেষ্টা করছি

  • অবশ্যই থাকুন এবং উভয় ওএস + অ্যাপের এমসিইউতে একটি "অ্যাপ স্ট্যাক" দিয়ে যান; অথবা
  • নিবন্ধটির সতর্কতাটি মনোযোগ দিন এবং কেবলমাত্র একটি এমসিইউ দিয়ে আমার অ্যাপ্লিকেশন "বেয়ার মেটাল" চালাচ্ছেন

স্পষ্টতই, পূর্বেরটি আরও কাজ করে, এবং সেই পথে যাওয়ার জন্য ভাল কারণ / পরিশোধের আরও ভাল কারণ ছিল। সুতরাং আমি জিজ্ঞাসা করছি: এমসিইউ / সি অ্যাপ্লিকেশন বিকাশকারীদের এই (এবং অনুরূপ) এম্বেড করা আরটিওসগুলি দেওয়া প্রকৃত সুবিধাগুলি কী কী ? আরটিওএস ব্যবহার করে (সম্ভবত চাকাটি পুনরায় উদ্ভাবন না করে) আমার সি অ্যাপ্লিকেশনগুলি কোন নির্দিষ্ট বৈশিষ্ট্যগুলি থেকে উপকৃত হতে পারে? আরটিওএস খনন করে এবং খালি ধাতব দ্বারা কী হারিয়ে গেছে?

আমি এখানে কংক্রিটের উদাহরণ চাইছি, আপনি আরটিওসেসের উইকিপিডিয়া প্রবেশে যাওয়ার সময় যে মিডিয়া হাইপ পাবেন তা নয় ;-)


3
যদি এটি আরটিওএস কী অফার করে তাও আপনার কাছে পরিষ্কার না হয় তবে আপনি কেন তাদের জন্য আবেদন লিখতে আগ্রহী? আরটিওএস আপনাকে উপকৃত করবে কি না তা সম্পূর্ণরূপে আপনি কী অর্জন করার চেষ্টা করছেন তার উপর নির্ভর করে। যা বলেছিল, দৌড়ানোর আগে আপনাকে অবশ্যই হাঁটতে শিখতে হবে। খালি ধাতু জন্য প্রোগ্রাম, এবং আপনি সমস্যার মধ্যে দৌড়ে এবং তাদের সমাধান হিসাবে, আপনি সত্যিই সুবিধা এবং অসুবিধা কি শিখতে হবে।
উইসনেম

আপনাকে ধন্যবাদ @ ওয়াটসিসনাম (+1) - এটি দুর্দান্ত পরামর্শ এবং আমি সম্ভবত এটি আপনাকে গ্রহণ করব। তবে আমি মনে করি না যে এটি কোনও অযৌক্তিকভাবে পেরেছে, আরটিওসগুলি যা প্রস্তাব দেয় তা নিয়ে এখনও আগ্রহী হ'ল, যদিও আমি মাসগুলি / বছর প্রয়োজনের বাইরে চলে যাই। আমার ধারণা, আমি পুরো ছবিটি 30,000 ফুট দৃশ্যে সামনে দেখতে চাই। আবার ধন্যবাদ!
স্মিথ

উত্তর:


11

মাইক্রোকন্ট্রোলার প্রোগ্রামগুলি বেশ কয়েকটি কাজ করে । ধরা যাক আপনি একটি কম্পিউটার নিয়ন্ত্রিত টেলিস্কোপ মাউন্ট তৈরি করতে চেয়েছিলেন। কাজগুলি হবে:

  • ইউএসবি সিরিয়াল বাফার থেকে ইনপুটটির নতুন বাইট পুনরুদ্ধার করুন।
  • আমরা একটি সম্পূর্ণ আদেশ পেয়েছি কিনা তা পরীক্ষা করুন।
  • যদি তা হয় তবে এই আদেশটি কার্যকর করুন।
  • বর্তমান দূরবীন অবস্থানের জন্য সেন্সরগুলি পড়ুন।
  • মোটরগুলির পরবর্তী ধাপটি নিয়ন্ত্রণ করতে সঠিক আউটপুট সেট করুন।

এটি এমন কোনও কাজের জন্য মোটামুটি সাধারণ সেট যা আপনি মাইক্রোকন্ট্রোলার ব্যবহার করেন এবং অসীম লুপটি পরিচালনা করা বেশ সহজ, যেমন:

while(TRUE) {
  uint8_t input = readUsbBuffer();
  parseCommand(input);
  readSensors();
  setMotors();
}

আপনি যদি বৈশিষ্ট্যগুলি যুক্ত করা এবং যুক্ত করা চালিয়ে যান তবে শেষ পর্যন্ত আপনি এমন সাধারণ সমস্যাগুলি শুরু করতে শুরু করেন যাগুলির জন্য বিমূর্ততা তৈরি করতে চান:

  • আপনার বাফার উপচে পড়েছে, সুতরাং আপনি নিশ্চিত করতে চান যে সেই কাজটি ওভারফ্লো হওয়ার আগেই অন্যান্য কাজগুলিতে বাধা সৃষ্টি করতে পারে।
  • যখন কিছুই প্রয়োজন হয় না তখন আপনি ঘুমিয়ে ব্যাটারি সঞ্চয় করতে চান।
  • আপনি নিশ্চিত করতে চান যে সমস্ত কাজ ন্যায্য শট পায়। যদি readSensorsখুব বেশি সময় নেয় তবে আপনি এটিকে বাধা দিতে এবং পরে এটিতে ফিরে আসতে সক্ষম হতে চান।
  • আপনি অন্যকে প্রভাবিত না করে কেবল একটি কাজ পুনরায় সেট করতে সক্ষম হতে চান।
  • আপনি অন্য কোনও কাজ না করার জন্য একটি কাজে মেমরি ফাঁস বা অন্য বাগ চান bu
  • আপনি বিভিন্ন কাজকে বিভিন্ন অগ্রাধিকার দিতে সক্ষম হতে চান।
  • আপনি একটি অবিশ্বস্ত কাজ স্যান্ডবক্স সক্ষম করতে চান।
  • আপনি বিভিন্ন হারে কার্য সম্পাদন করতে সক্ষম হতে চান। সম্ভবত আপনার সেন্সরগুলি প্রতি সেকেন্ডে কেবল 10 বার পড়া যেতে পারে, তবে আপনি প্রতি সেকেন্ডে 100 বার মোটর স্টেপ চালাতে চান।

এই আইটেমগুলির মধ্যে একটি বা দুটি অপেক্ষাকৃত সহজে ম্যানুয়ালি হ্যান্ডেল করা যায়। আপনার যদি এই ধরণের সমস্যা প্রায়শই পর্যাপ্ত থাকে যা আপনি তাদের লাইব্রেরিতে সাধারণীকরণ শুরু করেন তবে আপনি মূলত একটি আরটিওএস পুনরায় উদ্ভাবন করেছেন। যদি আপনার প্রোগ্রামটির টাস্ক ম্যানেজমেন্ট যথেষ্ট জটিল হয়, এমনকি আপনি যদি অফ-দ্য শেল্ফ আরটিওএস ব্যবহার না করেন তবে অবশেষে আপনি কোনওটি খারাপভাবে পুনর্বহাল করবেন।

তবে আমার অভিজ্ঞতায় আপনি যে লাইনের আরটিওএস চান সেখানে লাইনটি খুব কাছে যেখানে আপনি মাইক্রোকন্ট্রোলারের পরিবর্তে মাইক্রোপ্রসেসর চান। যদি আপনি নিজের ফার্মওয়্যারটি জটিল হওয়ার প্রত্যাশা করেন তবে শুরু থেকেই মাইক্রোপ্রসেসর রুটে যাওয়া ভাল।


এটি একটি দুর্দান্ত বিশ্লেষণ এবং সত্যই এটি আমার জন্য পরিষ্কার করে দিয়েছে। আপনি যা বলছেন তাতে আমি একমত নই, তবে @ অ্যাটসবির উত্তর দিয়ে আমি আরও সম্মত। বিশেষত যদি লক্ষ্যটি আমার নিজস্ব দক্ষতাগুলি শিখছে / উন্নতি করে। কোনও প্রোডাকশন সিস্টেমে, সম্ভবত কোনও সিওটিএস পণ্য বা আরটিএলিনাক্সের চেয়ে ভাল, তবে কিছু ভুল হয়ে যাওয়ার পরে সেই পণ্যটি নিম্ন স্তরের ডিবাগ করতে সক্ষম হতে আমি ব্যক্তিগতভাবে কিছু কোড লিখেছি যা সেই তালিকায় যতবার সময় করতে পারে তেমন লিখতে হবে would সম্ভব.
স্যাম হাম্মামি

7

আমি এআরএম কর্টেক্স-এম0 এর জন্য আমার নিজস্ব সমবায় মাল্টি-থ্রেডিং গ্রন্থাগার লিখেছি।

এটি সবেমাত্র কয়েকটি পৃষ্ঠার কোড ছিল এবং এর প্রথম সংস্করণটি লিখতে এবং ডিবাগ করতে এক দিনের বেশি সময় নেয় নি।

নিজের-রোলের বড় সুবিধা হ'ল আপনি কোডটি জানেন এবং আপনি এটি চিপগুলিতে পোর্ট করতে পারেন যা আরটিওএস সমর্থন না করে। এছাড়াও, আপনি "এ এবং বি বৈশিষ্ট্যগুলি একই সাথে ব্যবহার করার চেষ্টা করব কি এটি ক্রাশ হবে?" এই জাতীয় প্রশ্নগুলি নিয়ে কম সময় ব্যয় করবেন? যেহেতু আপনি কোডটি লিখেছেন, আপনি উত্তরটি জানেন।

আরটিওএস থেকে প্রাপ্ত থ্রেডিং হ'ল প্রধান জিনিস এবং এটি নিজেকে বাস্তবায়ন করার মতো বড় বিষয় না বলে প্রমাণিত হয়। এটি বিরল যে আপনার আরটিওএসের অনেকগুলি বৈশিষ্ট্য প্রয়োজন need তবে আপনি যদি নিজের প্রয়োজনীয়তাগুলি ক্রাঙ্ক করেন এবং এটি আপনার হয়ে যায় তবে একটি আরটিওএস ব্যবহার করুন।


ধন্যবাদ @ অ্যাস্টবাই! এই উত্তরটি আমাকে সত্যিই বেয়ার মেটালটিতে আরও শিখতে সময় বিনিয়োগের উপযুক্ত কিনা তা সিদ্ধান্ত নিতে আমাকে সহায়তা করেছিল। পাই এর জন্য বেয়ার মেটালটিতে একটি জিপিআইও লাইব্রেরির পরিমাণের পরিমাণটি আমি লিখেছি এবং এখনই মনে হয় এটি আরও এক বা দুটি ধাপ এগিয়ে নিয়ে যাওয়ার সময়। ধন্যবাদ!
স্যাম হাম্মামি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.