মাইক্রোকন্ট্রোলারের জন্য আপনার কতটা ফ্ল্যাশ / র‌্যাম দরকার তা আপনি কীভাবে নির্ধারণ করবেন?


24

ধরা যাক আপনি কিছু পরিচিত কার্যকারিতা সহ এম্বেড প্রকল্প শুরু করছেন। আপনি যখন একটি মাইক্রোকন্ট্রোলার নির্বাচন করেন তখন আপনি কতটা র‌্যামের প্রয়োজন তা নির্বাচন করবেন ?

আপনি কি প্রথমে কোনও বিকাশকারী বোর্ড ব্যবহার করেন এবং আপনার প্রকল্পটি কোড করেন এবং তারপরে আপনি কত স্মৃতি ব্যবহার করেছেন তা দেখুন এবং তারপরে একটি উপযুক্ত মাইক্রোকন্ট্রোলার নির্বাচন করুন যা সেই মেমরিটির সাথে খাপ খায়?

আপনি কি কোনও প্রোটোটাইপের জন্য কোনও মৌমাছির মাইক্রোকন্ট্রোলার বেছে নিয়েছেন এবং একটি কার্যকরী পণ্য থাকার পরে স্কেল ডাউন করবেন?

আপনি কি এমন কিছু বাছাই করেছেন যা আপনি নিশ্চিত হন যে যথেষ্ট হবে এবং আপনি যদি স্থান ছাড়িয়ে যান, তবে কেবলমাত্র একটি উচ্চতর মেমরি ঘনত্বের জন্য আপগ্রেড করুন, আপনি কেবল বিদ্যমান মাইক্রোকন্ট্রোলারটি রেখেছেন?

ভাল অনুশীলন হিসাবে বিবেচনা করা হয় কি?


আমার কাছে মনে হয় যে কোনও তথ্য তাত্ত্বিক দৃষ্টিভঙ্গি থেকে, কার্য স্পেসিফিকেশন থেকে র‌্যামের প্রয়োজনীয়তাটি প্রস্থের (মাত্রিক যুক্তি শৈলীর) অর্ডারের মধ্যে অনুমান করা সম্ভব হবে। হুম ...
লিন্ডন হোয়াইট

আপনি যদি গ্রন্থাগারগুলি ব্যবহার করেন তবে আপনি তাদের মেমরির পদচিহ্নগুলি গবেষণা করতে পারেন। আপনার নিজের কোড সহ আপনাকে অভিজ্ঞতার সাথে যেতে হবে। নতুন প্রকল্পটি পুরানোগুলির সাথে তুলনা করুন এবং নির্ধারণ করুন যে আপনি এটির চেয়ে বড় বা আরও ছোট হতে চান।
jwsc

উত্তর:


20

শখের প্রকল্পগুলির জন্য ব্যক্তিগতভাবে আমি ডান পাদদেশ সহ পরিবারের সবচেয়ে শক্তিশালী মাইক্রোকন্ট্রোলার ব্যবহার করার ঝোঁক। আমি তখন পিসিবি বিকাশ করি, কিছু কোড লিখি এবং একটি প্রোটোটাইপ তৈরি করি।

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

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

তবে উত্পাদনের উদ্দেশ্যে এটি আপনাকে প্রতিটি ইউনিট থেকে মোটামুটি পরিমাণ শেভ করতে দেয়।


আমার ব্যক্তিগত প্রকল্পগুলির জন্য আমি একই ধরণের পদ্ধতির ব্যবহার করতে চাই। আমার সাথে একই পদ্ধতিতে ক্রাইপসের অফিসে। এটি ভুল নয়, এটি কাজ করে, তবে এর চেয়ে আরও ভাল উপায়গুলি কী আছে .. ইনপুটটির প্রশংসা করুন!
efox29

"আসল" পরিবেশে অবশ্যই আরও ভাল উপায় থাকবে, আসুন অন্য উত্তরের জন্য অপেক্ষা করুন!
ডেভিড

Absatively। একটি বড় স্যান্ডবক্সে বিকাশ করুন এবং পরে কেটে দিন। আপনি যে সময়টি সাশ্রয় করবেন তা বিকাশের জন্য প্রতি মাইক্রোকন্ট্রোলারের জন্য অতিরিক্ত $ 4 ব্যয় করার চেয়ে বেশি। এটি শখের স্তরের স্টাফের চেয়ে বেশি কাজ করে - এবং বাস্তবে আরও গুরুত্বপূর্ণ more ছবি 12 এর পরিবর্তে একজনের পরিবর্তে বৃহত্তর নিয়ামকের কাছে শিফটের জন্য অপেক্ষা করছে !!
স্কট সিডম্যান

13

অবশ্যই, একক হোমমেড প্রোটোটাইপের জন্য সমস্ত সামঞ্জস্যপূর্ণ মাইক্রোগুলির মধ্যে সবচেয়ে শক্তিশালী দিয়ে শুরু করা এবং পরে স্কেল ডাউন করা ভাল প্রস্তাবনা হতে পারে।

তবে আপনি যদি কোনও উদ্ধৃতি জিততে চান তবে যে কোনও কিছু বাস্তবায়নের জন্য আপনার অর্থ দেওয়ার আগে আপনাকে আপনার গ্রাহককে একটি মূল্য বলতে হবে ।

অতএব, ভাল অনুশীলন হ'ল আপনি প্রোগ্রামিং শুরু করার আগে এক ধরণের স্পেসিফিকেশন লিখে রাখুন । আপনি কী করতে চান তা আপনি জানেন এবং আপনি কীভাবে এটি করতে যাচ্ছেন তা লিখতে হবে।

এই "কীভাবে" সফ্টওয়্যার ডিজাইন সম্পর্কে চিন্তাভাবনা, যেমন প্রশ্নের উত্তর দেওয়াও অন্তর্ভুক্ত করে:

  • আপনার কি অপারেটিং সিস্টেমের দরকার? কোনটি? এটি কি সংস্থান প্রয়োজন?
  • আপনি কি একটি স্তরযুক্ত আর্কিটেকচার পেতে চান? এর জন্য ইন্টারফেস দরকার, যা র‍্যাম গ্রাস করতে পারে
  • আপনার উদ্দেশ্যে ইতিমধ্যে কোন লাইব্রেরি উপলব্ধ এবং দরকারী / প্রয়োজনীয় এবং তাদের কতটুকু স্মৃতি দরকার (একটি ভাল গ্রন্থাগারের ডকুমেন্টেশন এটি কমপক্ষে একটি রেফারেন্স বিল্ডের ভিত্তিতে জবাব দেয়)?
  • আপনার নিজের ড্রাইভার এবং আপনার প্রয়োগের জন্য আপনার কোন কাঠামো এবং ভেরিয়েবলগুলি প্রয়োগ করতে হবে?

এই সমস্ত মানগুলির সংমিশ্রণ আপনাকে মোটামুটি অনুমান দেয়। আপনার বিশ্লেষণ কতটা বিশদ, এবং এটি আপনার অভিজ্ঞতার উপর নির্ভর করে: আপনি কতটা বিশ্বাস করতে পারেন :-)
আপনার অনুমানের কমপক্ষে 30..50% এর একটি মার্জিন যুক্ত করা অবশ্যই একটি ভাল ধারণা।

আপনার পণ্যটি শেষ হয়ে গেলে এবং আপনার প্রায় 80..90% র‌্যাম ব্যবহার হয়ে গেলে আপনি নিশ্চিত হতে পারেন যে আপনার নির্বাচনটি সঠিক ছিল - কমপক্ষে র‌্যাম সম্পর্কিত।


2
পুনরায়: "80..90% র্যাম ব্যবহৃত হচ্ছে"। স্ট্যান্ডার্ড অনুশীলন হ'ল ভবিষ্যতের আপগ্রেড এবং বাগ ফিক্সগুলি সামঞ্জস্য করতে আপনি কেবলমাত্র CPU এবং মেমরি উভয়ই সর্বাধিক 50% ব্যবহার করেন তা নিশ্চিত করা।
ডঙ্ক

1
@ ডাঙ্ক: ব্যবসায় নির্ভর করে। মোটরগাড়িগুলিতে, এসওপিতে সমস্ত সংস্থার 80% (সিপিইউ, র‌্যাম, ফ্ল্যাশ) সাধারণত গৃহীত হয়। উদাহরণস্বরূপ, সস্তা কনজিউমার ইলেক্ট্রনিক্স এটি আরও বেশি হতে পারে: মাত্র ২-৩ বছরের জীবনকাল সহ কোনও সিস্টেমে আপগ্রেড হওয়ার সম্ভাবনা কতটা?
মাইক

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

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

3
আপনি 80% লক্ষ্য বা 50% লক্ষ্য অর্জন করতে চান তা আপনার গ্রাহকের উপর নির্ভর করবে। একটি নির্দিষ্ট স্পেক এবং শুধুমাত্র বাগ ফিক্সগুলির প্রয়োজন সহ, 80% ঠিক আছে। অবিশ্বাস্য স্পেক, প্রত্যাশিত বৈশিষ্ট্য ক্রাইপ এবং এটির জন্য আপনাকে যথেষ্ট হেডরুমের জন্য অতিরিক্ত অর্থ প্রদান করতে পারে এমন একটি বিশাল পরিমাণের মার্জিন। আমরা একবারে আমাদের প্রয়োজনীয় যতগুলি মাইক্রো-কন্ট্রোলার 2x ক্রয় করে শেষ করেছি এবং আমাদের প্রয়োজনীয় কার্য সম্পাদন করতে পর্যাপ্ত পরিমাণে ঘুরতে পারে এমনগুলি নির্বাচন করেছি, এটি আরও শক্তিশালী চিপের জন্য পিসিবি পুনরায় নকশার চেয়ে অনেক সস্তা ছিল।
বুথ

3

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

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

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

হ্যাঁ, সময় লাগে। হ্যাঁ সমস্ত হুপের মধ্য দিয়ে ঝাঁপিয়ে পড়া দরকার কারণ হার্ডওয়্যারটি তৈরির পরে এটি পরিবর্তন করা সত্যিই শক্ত।


কোড লাইনগুলি কোড মেমরিতে রূপান্তর করার সূত্রটি আমরা কোথায় খুঁজে পাব?
EasyOhm

এটি কোনটি আপনি কোন ভাষা এবং সংকলক ব্যবহার করেন তার উপর নির্ভর করে। আপনি যদি এসেমব্লার ব্যবহার করেন তবে একটি লাইন মোটামুটি একটি শব্দের মেমরির সমান (আপনার চিপের শব্দের আকার যাই হোক না কেন)। আপনি যদি সি ব্যবহার করেন তবে এটি প্রায় 3-5 টি শব্দ একটি লাইন হতে পারে এবং আপনি যদি সি ++ বা আরও জটিল কিছু ব্যবহার করেন তবে এটি আরও অনেক বেশি হতে পারে। করণীয় হ'ল সর্বোত্তম বিষয় হল সেই ভাষায় লিখিত কয়েকটি প্রোগ্রাম সংকলন করা এবং গড় পাওয়ার জন্য কোড লাইনগুলিকে কোড মেমরির সাথে তুলনা করা।
ডাকারন

2

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

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

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

(এগিল পদ্ধতির আরেকটি সুবিধা হ'ল এটি সফ্টওয়্যার এবং ইলেকট্রনিক বিকাশকে সমান্তরালভাবে সম্পাদনের অনুমতি দেয়, অ্যালট্রনিক্স ডিজাইনটি বৈশিষ্ট্য বোর্ডগুলির সেটকে সংহত করার জন্য এবং প্রাসঙ্গিক ইএমসি এবং অন্যান্য কঠিন স্টাফ একইসাথে করার মতো অনুশীলন হিসাবে কাজ করে প্রোটোপ অ্যাসেমব্লিতে অ্যাপ্লিকেশন সফ্টওয়্যার তৈরি করা হচ্ছে Some

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.