এম্বেড থাকা সফ্টওয়্যার বাজারে সি কেন আধিপত্য বজায় রাখে? [বন্ধ]


14

এখন প্রায় সবাই দোয়া করবেন:

পারফরম্যান্স !

ঠিক আছে, সি অ্যাথলেটিক কোড লিখতে অনুমতি দেয়। তবে এমন আরও কিছু ভাষা রয়েছে যা এতদূর করতে পারে! এবং আধুনিক সংকলকগুলির অপ্টিমাইজ করার ক্ষমতা দুর্দান্ত। নেই সি কিছু সুবিধার অন্য কোন ভাষা আছে যা আছে? অথবা ডোমেনে আরও নমনীয় যন্ত্রের প্রয়োজন নেই?


1
: FWIW, Arduino সঙ্গে C # এর নিয়ন্ত্রণ করা যায় arduino.cc/playground/Interfacing/Csharp
FrustratedWithFormsDesigner

@ ফ্রাস্ট্রেটেড: হ্যাঁ, তবে এটি একটি উদাহরণ এবং বেশিরভাগ লোকেরা ডিভাইস তৈরি করছে আরডুইনো ব্যবহার করছে।
এড এস



1
@ ডান04, বিস্তৃত ক্ষেত্রে, এটি আসলে কোনও সমস্যা ছিল না। টেক্সাস ইন্সট্রুমেন্টস ডিফেন্স সিস্টেমস এবং ইলেকট্রনিক্স গ্রুপের একটি 6DOF সিমুলেশন গ্রুপ 1988 সালের দিকে একটি সামান্য পরীক্ষা করেছিল until ততক্ষণে তারা ফরটারনে তাদের সমস্ত সিমুলেশন সম্পন্ন করত। এটি পাস্কলে একটি লেখার চেষ্টা করেছিল, এটি দেখার জন্য এটি কীভাবে খারাপ হবে। তারা আবিষ্কার করেছে যে পাস্কল তাদের একটি ছোট্ট পারফরম্যান্স হিট দিয়েছে, তবে এটির তুলনায় নির্ভরযোগ্যতা এবং আরও ডিবাগিংয়ের স্বাচ্ছন্দ্য। কৌতুকপূর্ণভাবে, তারা দেখতে পেল যে পাস্কালের দৃ strong় প্রকারের পরীক্ষা করা খুব ভাল জিনিস। (এবং হ্যাঁ, তারা অ্যারে করছিল))
জন আর স্ট্রোহম

উত্তর:


41

এখন প্রায় সবাই দোয়া করবেন:

কর্মক্ষমতা!

এটি এর অংশ; শুরু করার জন্য সীমিত সংস্থানযুক্ত ডিভাইসগুলিতে ডিটারমিনিস্টিক রিসোর্সের ব্যবহার গুরুত্বপূর্ণ, তবে অন্যান্য কারণও রয়েছে।

  1. নিম্ন স্তরের হার্ডওয়্যার এপিআই এর সরাসরি অ্যাক্সেস।
  2. আপনি এই ডিভাইসের সিংহভাগের জন্য একটি সি সংকলক খুঁজে পেতে পারেন। আমার অভিজ্ঞতায় এটি কোনও উচ্চ স্তরের ভাষার ক্ষেত্রে সত্য নয়।
  3. সি (রানটাইম এবং আপনার উত্পন্ন এক্সিকিউটেবল) "ছোট"। কোডটি চলতে আপনাকে সিস্টেমে একগুচ্ছ জিনিস লোড করতে হবে না।
  4. হার্ডওয়্যার এপিআই / ড্রাইভার সম্ভবত সি বা সি ++ এ লেখা হবে।

14
সংকলকগুলির উপলব্ধতা +1। ফিরে যখন আমরা সমাবেশে সমস্ত লিখছিলাম, প্রথম জেনার সংকলকগুলি godশ্বর-প্রেরণ।
ক্রিস্টোফার বিবস

8
+1, আমি মনে করি যে নির্বিচারে সংস্থান ব্যবহার সবচেয়ে গুরুত্বপূর্ণ কারণগুলির মধ্যে একটি। কোনও ডিশ ওয়াশারে সমস্ত ধরণের অভিনব আবর্জনা সংগ্রহ করার জন্য আপনার প্রচুর স্মৃতি নেই।
ব্যবহারকারী 281377

4
"নির্বিচারক সংস্থান ব্যবহারের" জন্যও +1। অনেক এম্বেড থাকা সিস্টেমে, এই প্রয়োজনীয়তা এমনকি গতিশীল মেমরির বরাদ্দের ব্যবহারকেও বাদ দেয়। অন্যান্য অনেক ভাষা গতিশীল মেমোরি বরাদ্দের উপর প্রচুরভাবে নির্ভর করে (সি ++ এর অনেকগুলি উপকারী দিকও গতিশীল মেমরির প্রয়োজন)।
মাইকেল বুড়

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

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

18

সি একটি সিপিইউ মডেল করার জন্য ডিজাইন করা হয়েছিল, কারণ সি কেবলমাত্র সমাবেশের ভাষা লেখার পরিবর্তে প্ল্যাটফর্মগুলিতে ইউনিক্স পোর্টেবল করতে তৈরি করা হয়েছিল।

এর অর্থ হ'ল সি প্রোগ্রামগুলি প্রোগ্রামিং ল্যাঙ্গুয়েজের পাশাপাশি এমন প্রোগ্রামগুলির জন্য কার্যকরভাবে কাজ করে যা প্রকৃত সিপিইউয়ের খুব কাছাকাছি একটি বিমূর্ত স্তর থাকা প্রয়োজন, যা এম্বেডড হার্ডওয়্যারগুলির ক্ষেত্রে।

দ্রষ্টব্য: সি প্রায় 1970 এর নকশা করা হয়েছিল এবং তখন সিপিইউগুলি সহজ ছিল।


3
+1 টি এই হ 'ল কারণ। সম্ভবত লোকেরা আরও উন্নততর উচ্চ স্তরের ভাষা ডিজাইন করার চেষ্টা করেছে যা আধুনিক প্রসেসরের বৈশিষ্ট্যগুলি ক্যাপচার করে, তবে কেউ এর জন্য কোনও ভাষা ডিজাইন করেনি।
কেন ব্লুম

2
@ ভাইনস, সি একটি বড় রানটাইম লাইব্রেরি সহ একটি ছোট্ট ভাষা। এই সমস্ত রানটাইম লাইব্রেরিতে করা যেতে পারে। এটি কেবলমাত্র সি সি লাইব্রেরিতে স্বয়ংক্রিয়ভাবে স্থানান্তরিত হবে না তাই এটি প্ল্যাটফর্ম নির্দিষ্ট।

3
+1 টি। সি এর জন্য তৈরি করা হয়েছিল এবং প্রারম্ভিকভাবে পিডিপি -7 এ ব্যবহৃত হয়েছিল, এতে 18 বিট শব্দের সর্বাধিক 64 কিলোওয়ার্ড ছিল। আরও অনেক "আধুনিক" ভাষাগুলির সেই ধরণের জায়গাতে আরও বেশি অসুবিধা হয়। বিশেষত ইউনিক্সের মতো কোনও ওএস লেখার জন্য।
গ্রেফ্যাড

2
@ গ্রেফ্যাড: তাই না। ইউনিক্সের উৎপত্তি PDP-7 এ হয়েছিল, তবে সি তা হয়নি। দ্য সি প্রোগ্রামিং ল্যাঙ্গুয়েজের উপস্থাপনাটি থেকে উদ্ধৃত করার জন্য : "সি ডেনিস রিচি, ডিইসি পিডিপি -11-তে ইউনিক্স অপারেটিং সিস্টেমের জন্য প্রাথমিকভাবে ডিজাইন করেছিলেন এবং প্রয়োগ করেছিলেন।"
জেরি কফিন

1
@ ভাইনস: যদিও ভাষায় থ্রেডিংয়ের জন্য সরাসরি সমর্থনের বিষয়টি বিবেচনা করা অবশ্যই যুক্তিসঙ্গত (সিএফ, সমকালীন সি), একটি ক্যাশের মূল অংশটি হ'ল এটি প্রোগ্রামার বা ভাষার অংশে কোনও হস্তক্ষেপ ছাড়াই জিনিসগুলিকে দ্রুততর করে তোলে ।
জেরি কফিন

11

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

এবং ভিএম / ব্যাখ্যামূলক ভাষার সহজ বৈশিষ্ট্যগুলি সাধারণত সম্ভব হয় না এবং বাস্তবায়নের বাইরে চলে যায়, যেমন আবর্জনা সংগ্রহ।


3
"জাভা এবং সি / সি ++ উভয়ই" - আমি আশা করি আপনি "তিনটি: জাভা সি এবং সি ++" বোঝাতে পেরেছেন, যেহেতু সি এবং সি ++ ভিন্ন ভাষা।
BЈовић

1
@ বিঃ: কয়েক বছর পরে উত্তরটি নিশ্চিত করতে যে হ্যাঁ, আমি তিনটিই বোঝাতে চাইছি। এই সংজ্ঞাটি অনুসরণ করেই আমি উভয়কেই স্বাক্ষরিত করেছিলাম: "দুটি বা ততোধিক জিনিসের প্রত্যেককে অন্তর্ভুক্ত করার বিষয়টি বোঝাতে এবং চাপ দেওয়ার জন্য একটি ফাংশন শব্দ হিসাবে ব্যবহৃত হয়েছিল" (দুই বা আরও বেশি জিনিস) :-)
সেলিব্রেডর

10

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


1
সত্যিই কি কখনও এমন হয় না যে আপনার সেই কার্যকারিতাটি প্রয়োজন এবং নিজেকে পুনরায় উদ্ভাবন করা উচিত? উদাহরণস্বরূপ, switchএস সহ নির্মিত বড় স্টেট মেশিনগুলি ভয়াবহ এবং ক্লাস হায়ারারচিগুলি দিয়ে তৈরি একই মেশিনগুলি দুর্দান্ত এবং রক্ষণাবেক্ষণযোগ্য।
দ্রাক্ষালতা

1
@ ভাইনস - আপনার সাধারণত ইনপুটগুলির সংজ্ঞায়িত সেট থাকে, সুইচ-এ নির্মিত রাষ্ট্রীয় মেশিনগুলি / মই যদি 'পর্দার আড়ালে' পলিমারফিক কলগুলিতে যাদুবিদ্যার উত্তরাধিকারের চেয়ে আরও স্পষ্ট এবং ডকুমেন্টযোগ্য হয়।
মার্টিন বেকেট

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

3
পিন 27 বেশি হলে কী হয় তা সন্ধান করুন। বিকল্প 1, "কেস পিন 27:" অনুসন্ধান করুন বিকল্পটি 2 টি রানার সময় 27 টি পিনের জন্য নির্ধারিত পিনের জন্য কোন পিনের জন্য ডাকা হবে তা আবিষ্কার করার জন্য ফ্যান্টারের মানচিত্রে একটি পুনরাবৃত্তিকে চিহ্নিত করুন। প্রচুর ওও কোড সহ সমস্যাটি হ'ল এটি পড়ার একমাত্র উপায় এটি মূলত চালানো। কোনও রান টাইম ডিবাগিং বা এমন কোনও কনসোল না থাকা কোনও প্ল্যাটফর্মে যার অর্থ কাগজে বা আপনার মাথায় কোডটি চিহ্নিত করা।
মার্টিন বেকেট

2
এই আলোচনার জন্য সামান্য স্পর্শকাতর, এখানে একটি এমডি যুক্তির যুক্তি রয়েছে (এর আরও প্রারম্ভিক সংস্করণ switch, আপনি বলতে পারেন) এখনও অনেক এম্বেড থাকা অ্যাপ্লিকেশনগুলিতে ব্যবহৃত হয়। ডিবাগ করা সহজ, যাচাই করা সহজ।
গীকোসৌর

9

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

আজকাল, আপনি 16-বিট এমবেডেড মাইক্রোকন্ট্রোলারের সাথে একই বা বৃহত্তর কম্পিউটার পাওয়ারটি পেতে পারেন যা চারক ডলার বা তার চেয়ে কম একক পরিমাণে বিল্ট-ইন র্যাম এবং আই / ও কন্ট্রোলার সহ অন্তর্ভুক্ত রয়েছে। একটি 32-বিট মাইক্রোকন্ট্রোলারের দাম হতে পারে এক ডলার বা আরও দুটি।

আমি যখন এই ছোট্ট ছেলেদের প্রোগ্রামিং করছি, আমি যে বোর্ডগুলিতে বসি সেগুলি ডিজাইনিং না করার সময় আমি 90% সময়টি করি তখন আমি প্রসেসরটি কী করতে চলেছে তা কল্পনা করতে পছন্দ করি। যদি আমি এসেম্বলারের মধ্যে পর্যাপ্ত পরিমাণে প্রোগ্রাম করতে পারি তবে আমি এটি করতাম।

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


1
কিছু এম্বেড থাকা অ্যাপ্লিকেশনগুলির জন্য, এটি "ডলার বা আরও দুটি" খুব তাৎপর্যপূর্ণ। কেউ তাদের গাড়ীর দামের প্রভাব লক্ষ্য করছে না, তবে তারা তাদের তাপস্থাপক বা সিডি প্লেয়ারের উপর পড়বে।
ডেভিড থর্নলি

3
@ ডেভিড থর্নলি, হ্যাঁ, সম্পূর্ণরূপে সম্মত হন, এজন্য আমি বর্তমানে বিভিন্ন ক্লায়েন্টের জন্য একই সময়ে 8, 16 এবং 32-বিট মাইক্রো নিয়ে প্রকল্পগুলি পেয়েছি। (ছোট ডিভাইসগুলির সাথে যাওয়ার জন্য বিদ্যুত ব্যবহারের আর একটি কারণ))
tcrosley

1
পিন গণনার চেয়ে প্রসেসরের ব্যয় দ্বারা দাম কম নির্ধারিত হয়। বোর্ডগুলি চিপের চেয়ে অনেক বেশি ব্যয়বহুল।
Yttrill

7

এটি সম্পূর্ণরূপে আধিপত্য পায় না কারণ সংকলকগুলির উন্নতি হয়েছে এবং হার্ডওয়ারের কার্যকারিতা বৃদ্ধি পেয়ে সি ++ ক্রমবর্ধমানভাবে ব্যবহৃত হচ্ছে। তবে সি এখনও কয়েকটি কারণে খুব জনপ্রিয়;

  1. প্রশস্ত সমর্থন। খুব সুন্দর প্রতিটি চিপ বিক্রেতা এসি সংকলক সরবরাহ করে এবং কোনও উদাহরণ কোড এবং ড্রাইভার সম্ভবত সি তে লেখা হবে। সি ++ সংকলকগুলি ক্রমবর্ধমান সাধারণ, তবে প্রদত্ত চিপের জন্য কোনও ডেড শংসাপত্র নয় এবং এগুলি প্রায়শই বাগিগিয়ার হয়। আপনি আরও জানেন যে কোনও এম্বেড ইঞ্জিনিয়ার সিতে কাজ করতে সক্ষম হবে। এটি শিল্পের লিঙ্গুয়া ফ্র্যাঙ্কা।

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

  3. ফাইলের আকার। সি ++ আরও বড় হতে থাকে। অবশ্যই এসটিএল ব্যবহার করে যে কোনও কিছু বড় হবে। সাধারণত প্রোগ্রাম আকার এবং মেমরি পদচিহ্ন উভয় ক্ষেত্রে।

  4. রক্ষনশীলতা। এটি একটি খুব রক্ষণশীল শিল্প। আংশিক কারণ ব্যর্থতার ব্যয়গুলি প্রায়শই বেশি হয় এবং ডিবাগিং প্রায়শই অ্যাক্সেসযোগ্য হয়, আংশিক কারণ এটি পরিবর্তনের প্রয়োজন হয় না। একটি ছোট এম্বেড প্রকল্পের জন্য সি কাজটি ভাল করে।


11
দেখুন, এটি # 3 যা প্রায় C ++ এর আশেপাশে সর্বাধিক প্রচলিত একটি রূপকথার মধ্যে রয়েছে। সিতে 5 স্বতন্ত্র প্রকারের জন্য একটি প্রকার-নিরাপদ ধারক লিখুন এবং আপনি 5 টি স্বতন্ত্র ধরণের একটি একক এসটিএল ধারক ব্যবহার করার মতো কমপক্ষে "ফোলা" তৈরি করেছেন। সি প্রোগ্রামাররা অস্বচ্ছ ধরণের (অকার্যকর *) পাত্রে লিখে এটি ঘিরে রাখে। এটির সাথে STL টেমপ্লেটটি তুলনা করা বিভাগের ত্রুটি। যদিও স্বীকার করতে হবে যে সি এর চেয়ে বেশি পছন্দ করা সবচেয়ে সাধারণ একটি "কারণ"
এডওয়ার্ড স্ট্রেঞ্জ

আমি সম্পূর্ণরূপে সম্মত হই যে সিতে সম্পূর্ণ কার্যকারিতাটির প্রতিলিপি তৈরি করতে আপনি সি ++ এর মতো একই পদচিহ্নটি দিয়ে শেষ করেন। গ এর 'সুবিধা' হ'ল এটি আপনাকে নির্বাচনী হতে দেয়। যে কোনও উল্লেখযোগ্য প্রকল্পে আমি সি ++ ব্যবহার করতে পছন্দ করব তবে কখনও কখনও লক্ষ্যযুক্ত হার্ডওয়্যার এমন একটি পয়েন্টে সীমাবদ্ধ থাকে যেখানে এটি ব্যবহারিক নয়। বলেছিলেন যে # 1 সত্যিই আমার অভিজ্ঞতার প্রধান কারণ।
লুক গ্রাহাম

6

এম্বেড থাকা সিস্টেমগুলির জন্য, বড় জিনিসটি হল পারফরম্যান্স । তবে আপনি যেমন বলেছিলেন, কেন সি এবং অন্য কোনও পারফরম্যান্ট ভাষা নয়?

এখনও অবধি অনেকেই সংকলকের প্রাপ্যতার কথা উল্লেখ করেছেন, কিন্তু কেউ বিকাশকারীদের প্রাপ্যতার কথা উল্লেখ করেনি । আরও অনেক বিকাশকারী ওসিএএমএল এর চেয়ে সি ইতিমধ্যে জানে।

এই তিনটি বিগ।


6

এম্বেডেড সফ্টওয়্যারটি খুব আলাদা।

একটি ডেস্কটপ অ্যাপ্লিকেশনে, বিমূর্ততা এবং গ্রন্থাগারগুলি আপনাকে প্রচুর বিকাশের সময় সাশ্রয় করে। আপনার কাছে অন্য কোনও দম্পতি র‌্যামের গিগাবাইট বা 2 গিগা বাইট বা 2 + গিগাহার্টজ 64৪-বিট সিপিইউ কোরের অন্য কোনও দম্পতি নিক্ষেপ করার বিলাসিতা রয়েছে এবং অন্য কেউ (ব্যবহারকারী) সেই হার্ডওয়্যারটির জন্য অর্থ প্রদান করছেন। অ্যাপটি কোন সিস্টেমে চলবে তা আপনি জানেন না।

এম্বেড থাকা প্রকল্পে, সংস্থানগুলি প্রায়শই খুব সীমাবদ্ধ থাকে। একটি প্রকল্পে আমি (পিআইসি 17 এক্স-সিরিজ প্রসেসর) কাজ করেছি হার্ডওয়্যারটিতে প্রোগ্রামের মেমরির 2 কেওয়ার্ডস, 8 স্তরের (ইন-হার্ডওয়্যার) স্ট্যাক এবং 192 বাইট (<0.2 কেবি) র‌্যাম ছিল। বিভিন্ন আই / ও পিনের বিভিন্ন ক্ষমতা ছিল এবং আপনি হার্ডওয়্যার রেজিস্টারগুলিতে লিখিতভাবে প্রয়োজনীয়ভাবে হার্ডওয়্যারটি কনফিগার করেছিলেন। ডিবাগিং একটি অসিলোস্কোপ এবং যুক্তি-বিশ্লেষক জড়িত।

এম্বেড থাকা অবস্থায়, বিমূর্ততা প্রায়শই পথে চলে যায় এবং আপনার নেই এমন সংস্থানগুলি (এবং ব্যয়) পরিচালনা করবে। যেমন বেশিরভাগ এম্বেড থাকা সিস্টেমে কোনও ফাইল সিস্টেম থাকে না। মাইক্রোওয়েভ ওভেনগুলি এমবেডেড সিস্টেম। গাড়ির ইঞ্জিন নিয়ন্ত্রক। কিছু বৈদ্যুতিক টুথব্রাশ। কিছু গোলমাল বাতিল করা হেডফোন।

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

অ্যাবস্ট্রাকশন এবং পর্দার আড়ালে থাকা 'যাদু' (যেমন একটি আবর্জনা সংগ্রহকারী) ডেস্কটপ অ্যাপ্লিকেশনগুলির জন্য দুর্দান্ত। ময়লা সংগ্রহকারীরা মেমরি ফাঁসের পিছনে তাড়া করতে আপনাকে প্রচুর সময় সাশ্রয় করে, যখন মেমরিটি গতিশীলভাবে বরাদ্দ করা যায়।

তবে রিয়েল-টাইম এম্বেড থাকা বিশ্বে আমাদের জানতে এবং নিয়ন্ত্রণ করা দরকার যে জিনিসগুলি কতক্ষণ সময় নেয়, কখনও কখনও ন্যানোসেকেন্ডে নেমে যায় এবং কোনও সমস্যার জন্য আরও কয়েক দম্পতি র‌্যাম বা দ্রুত সিপিইউ ফেলে দিতে পারে না। একটি সাধারণ উদাহরণ: যখন ডিউটি ​​চক্রটি নিয়ন্ত্রণের মাধ্যমে এলইডিগুলির সফটওয়্যারটি ম্লান করে দেওয়া হয় (সিপিইউতে কেবলমাত্র এলইডিগুলির নিয়ন্ত্রণ বা বন্ধ ছিল) তখন প্রসেসরের পক্ষে 100 মিমি অবধি আবর্জনা সংগ্রহ করা ঠিক হবে না কারণ প্রদর্শনটি দৃশ্যমানভাবে প্রদর্শিত হবে উজ্জ্বল ফ্ল্যাশ বা বাইরে যান।

আরও অনুমানমূলক উদাহরণ হ'ল একটি ইঞ্জিন নিয়ন্ত্রক যা স্পার্ক-প্লাগগুলিতে সরাসরি গুলি চালায়। যদি সেই সিপিইউ কাজটি বন্ধ করে দেয় এবং 50 মিমি ধরে আবর্জনা সংগ্রহ করে, ইঞ্জিনটি এক মুহুর্তের জন্য কেটে যাবে বা ভুল ক্র্যাঙ্কশ্যাফট অবস্থানে আগুন লাগিয়ে দেয়, সম্ভাব্যভাবে ইঞ্জিনটি স্টল করে (পাস করার সময়?) বা যান্ত্রিকভাবে ক্ষতিগ্রস্থ হত। আপনি কাউকে হত্যা করতে পারেন।


এটি যেমন সি এর সাথে অপ্রাসঙ্গিক ঠিক তেমনি সত্য - আপনি যে সমস্যাটি উল্লেখ করেন তা হ'ল জিসির আচরণ ... সি ++ এর কোনও জিসি নেই, এবং কী জানেন? আমি ব্যক্তিগতভাবে এটি লাইন-মন্তব্য এবং কঠোর প্রকারের সুরক্ষা =) এর কারণে ব্যবহার করি
দ্রাক্ষালতাগুলি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.