কীভাবে "বেসিক" মাইক্রোকন্ট্রোলারগুলি থেকে এআরএম কর্টেক্সে স্থানান্তর করবেন?


22

বিভিন্ন নির্মাতারা - ৮০৫১, পিআইসি, এবং এভিআর - এর 8-বিট কোরগুলির সাথে আমার অনেক বছরের অভিজ্ঞতা রয়েছে এবং আমি এখন একটি কর্টেক্স এম0 পেয়েছি figure বিশেষত এটি একটি , তবে আমি আশা করি আমরা এর চেয়ে আরও সাধারণ হতে পারি।

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

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

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


আপনি নির্মাতার কাছ থেকে প্রসেসরের জন্য প্রকৃত ডেটা শীট / ব্যবহারকারীর ম্যানুয়াল পেয়ে থাকলে আপনি কী বর্ণনা করেছেন তা থেকে আমি বলতে পারি না। এটি আপনাকে একটি ভাল সামগ্রিক চিত্র এবং বিশদ দেয়। আপনার লিঙ্ক করা সাইটের যে কোনও একটি চিত্র থেকে এটি এনএক্সপি প্রসেসরের মতো দেখাচ্ছে। প্রস্তুতকারকের অংশ নম্বরটি দেখুন এবং তাদের সাইটে প্রসেসরের ডকুমেন্টেশন সন্ধান করুন। এআরএম এর সাইট আর্ম :: প্রোডাক্ট / প্রসেসর / কর্টেক্স- এম / কর্টেক্স- এম0.এফপিও রয়েছে
ডিজিটালনিজা

এটি ফিরে পেতে দেরি জন্য দুঃখিত; আমি অন্যান্য প্রকল্প নিয়ে ব্যস্ত ছিলাম। অভিজ্ঞতার কন্ঠের জন্য @ অ্যাডামকে ধন্যবাদ।
অ্যারোনডি

এবং কীভাবে এটি সম্পর্কে চিন্তাভাবনা করা যায় তার সংক্ষিপ্ত বিবরণ এবং পিন কনফিগারেশন মুদ্রণ সম্পর্কে নোটকে ধন্যবাদ @ রিচার্ড আমি আপনাকে উভয় upvated।
অ্যারোনডি

আপনি যদি চূড়ান্ত দামের কিছু প্রয়োজনীয়তা পান তবে তা ছাড়া আপনি আর ফিরে যেতে পারবেন না । এবং তারপরেও আপনি প্রলুব্ধ হবেন, যেহেতু বেশ কয়েকটি ধুলা সস্তা কর্টেক্স-এম রয়েছে।
রোনান পাইক্সিও

উত্তর:


40

আমি এভিআর পাশাপাশি এআরএম কর্টেক্স-এম 3 / এম 4 / আর 4-ভিত্তিক এমসিইউতে কাজ করেছি। আমি মনে করি আমি কিছু সাধারণ পরামর্শ দিতে পারি। এটি ধরে নিবে আপনি সমাবেশে না, সি তে প্রোগ্রামিং করছেন।

সিপিইউ আসলে সহজ অংশ। বেসিক সি ডাটা টাইপগুলি বিভিন্ন আকারের হবে, তবে আপনি যেভাবেই হোক uint8 / 16 / 32_t ব্যবহার করছেন, তাই না? :-) এবং এখন সমস্ত পূর্ণসংখ্যার প্রকারগুলি যথাযথভাবে দ্রুত হওয়া উচিত, 32-বিট (ইন্ট) দ্রুততম হওয়া উচিত। আপনার সম্ভবত কোনও এফপিইউ নেই, তাই ভাসা এবং ডাবলগুলি এড়ানো চালিয়ে যান।

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

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

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

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

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

বাধা সম্পর্কে আপনার দুটি জিনিস জানতে হবে - আপনি কীভাবে এগুলি সক্ষম ও অক্ষম করবেন এবং কীভাবে আপনি বাধা ভেক্টরগুলি কনফিগার করেন। এভিআর-জিসিসি আপনার জন্য আইএসআর () ম্যাক্রোগুলির সাহায্যে দ্বিতীয়টি করে, তবে অন্যান্য আর্কিটেকচারে আপনাকে নিজে কোনও রেজিস্ট্রারে ফাংশন ঠিকানা লিখতে হতে পারে।

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

জটিলতার মাত্রা দেখে ভয় পাবেন না। এই "বেসিক" মাইক্রোকন্ট্রোলাররা আপনাকে যা জানা দরকার তা ইতিমধ্যে আপনাকে শিখিয়েছে। আপনার যদি আমার কিছু পরিষ্কার করার দরকার হয় তবে দয়া করে আমাকে জানান।


4
ভাল উত্তর. ডিএমএ পেরিফেরিয়ালগুলি দেখার জন্য আরেকটি বিষয় লক্ষ্য রাখতে হবে যা আমার অভিজ্ঞতায় জটিল এবং আন্ডার-ডকুমেন্টেড ইন্টারফেসগুলিতে ঝোঁক করে।
ডগ ম্যাকক্লিয়ান

3
"এবং এখন সমস্ত পূর্ণসংখ্যার প্রকার সমান দ্রুত হওয়া উচিত" " আসলে, সি-তে পূর্ণসংখ্যার প্রচারের নিয়মের কারণে 8/16-বিট প্রকারের ব্যবহারের ফলে প্রচুর চিহ্ন / শূন্য এক্সটেনশান হতে পারে এবং ফ্ল্যাশ মেমরি কম থাকলে সমস্যা হতে পারে। সুতরাং যদি রেখার জন্য র‌্যাম থাকে তবে এটি আরও 32-বিট প্রকার বা কমপক্ষে স্ট্যাক ভেরিয়েবলগুলির জন্য পছন্দ int/ int_leastN_Tপ্রকারগুলি ব্যবহার করার জন্য অর্থ প্রদান করতে পারে ।
ব্যবহারকারী 694733

আমার মন্তব্যে ভুল করেছে। আমি বলতে চাই; int_fastN_tপ্রকার নয়, প্রকারের ব্যবহার করুন int_leastN_t
ব্যবহারকারী 694733

@ ব্যবহারকারী 4৯473৩৩: আমার ইচ্ছা সি স্ট্যান্ডার্ডটি কোডটিকে কোনও পূর্ণসংখ্যার জন্য জিজ্ঞাসা করার অনুমতি দেয় যা মেমোরিতে একটি নির্দিষ্ট আকার ধারণ করে এবং একটি নির্দিষ্ট পরিসরের মধ্যে মানগুলিতে পরিচালনা করতে পারে, তবে সেই ব্যাপ্তির বাইরে যাওয়ার সময় looseিলে .ালাভাবে নির্দিষ্ট শব্দার্থক শব্দগুলির সাথে। এআরএম এর মতো কোনও কিছুর উপরে, মেমরির সঞ্চিত মানগুলির তুলনায় একটি int16_tপ্রায়শই দ্রুত হবে int32_tতবে স্ট্যান্ডার্ডটির প্রয়োজন হয় যে প্ল্যাটফর্মগুলিতে যেখানে int17 বিট বা তার চেয়ে বড় রয়েছে, int16_t x=32767; x+=2;অবশ্যই xকোড -32-তে সাইন-এক্সটেনশন নির্দেশিকা প্রয়োজন মোড়ানো আচরণ ব্যবহার করবেন না।
সুপারক্যাট

@ সুপের্যাট সি স্ট্যান্ডার্ডের জন্য কেবল স্বাক্ষরযুক্ত প্রকারের জন্য মোড়ানো আচরণের প্রয়োজন। স্বাক্ষরিত ধরণের জন্য যেকোন মোড়ক ইউবি, বিভিন্ন সম্ভাব্য উপস্থাপনার কারণে of সুতরাং x+=2, 16-বিট প্রকারের জন্য নির্দেশনা ব্যবহার করা আইনী হবে, কারণ সংকলক ধারণা করতে পারে যে মানটি মোড়বে না, এবং সুতরাং এটি ব্যবহার করা পর্যবেক্ষণযোগ্য আচরণকে পরিবর্তন করতে পারে না। তবে আমি মনে করি যে এআরএমের 16-বিট এডিডি নির্দেশনা নেই যা এটি সম্ভব করবে। (আমি ভুল হতে পারি, এআরএম নির্দেশিকা সেট সম্পর্কে আমার জ্ঞানটি তেমন ভাল নয়))
ব্যবহারকারী 694733

8

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

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

উদাহরণস্বরূপ, কর্টেক্স-এম0 এআরএম এর ওয়েবসাইটে বর্ণিত হয়েছে

এআরএম-সম্পর্কিত বইগুলির একটি তালিকা রয়েছে যা বিভিন্ন ধরণের চাহিদা এবং আগ্রহের বিষয়গুলি সরবরাহ করে।

অবশেষে, নির্দিষ্ট নির্মাতার ডেটাশিট রয়েছে। এম 0, সাইপ্রস, এনএক্সপি এবং এসটি মাইক্রোলেক্ট্রনিক্স কর্টেক্স-এম 0 এর উপর ভিত্তি করে রিয়েল পার্টসের অনেকগুলি উত্পাদনকারী মাত্র তিনটি।

(এবং না, আমি এআরএমের পক্ষে কাজ করি না এবং কখনই করি না))


1
এটি একটি দুর্দান্ত জেনেরিক উত্তর যা কিছু কর্টেক্স-এম0 ডক্সের লিঙ্কের চেয়ে বেশি কিছু করে না, যা আমি নিশ্চিত যে ওপি তার নিজেরাই খুঁজে পেতে পারে।
জে কার্লসন

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

8

একটি বড় পার্থক্য হ'ল বিক্রেতা সরবরাহিত গ্রন্থাগারগুলির ব্যবহার। পিআইসি, অ্যাটমেলস ইত্যাদির জন্য, বেসিক লাইব্রেরিগুলি (জিপিও, টাইমার, অ্যাডিসি ইত্যাদির জন্য) বেশিরভাগ বিকাশকারী ব্যবহার করেননি। আমার অভিজ্ঞতা হিসাবে, লোকেরা (সর্বাধিক) তাদের নিজস্ব কোড লেখার সময় গাইড হিসাবে ব্যবহার করবে।

যাইহোক, এআরএম সহ, গ্রন্থাগারগুলি প্রায় সর্বদা ব্যবহৃত হয়। "স্ট্যান্ডার্ড" সিএমএসআইএস রয়েছে যা নির্মাতাদের অনুসরণ করার পরামর্শ দেওয়া হয়। বেশিরভাগই করেন। এটি কোড বহনযোগ্যতায় (বিভিন্ন এআরএম এবং নির্মাতাদের মধ্যে) সহায়তা করে এবং আপনার কোড গঠনের জন্য একটি "প্রমিত" পদ্ধতি দেয়। লোকেরা লাইব্রেরির ক্রিয়াকলাপগুলি দেখতে এবং বোঝার অভ্যস্ত হয়ে যায়।

নিশ্চিতভাবেই এমন কিছু বিকাশকারী রয়েছে যা রেজিস্টারগুলিতে সরাসরি অ্যাক্সেস করে তবে তারা আউটলির :)

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

জিপিআইওকে উদাহরণ হিসাবে ব্যবহার করতে, আরম্ভের ফাংশনটি পরিচালনা করে:

  • দিকনির্দেশ (ইন বা আউট)
  • pullups / pulldowns
  • ওপেন সংগ্রাহক / পুশ-পুল
  • হার হার
  • প্রভৃতি

বিকল্পগুলি দেখে আপনি দেখতে পাচ্ছেন কী সম্ভব। এবং অবশ্যই, আপনি শিখবেন কীভাবে এই বিকল্পগুলি ইনস ফাংশনে পাস করবেন!

ঠিক আছে, এখন আমি এটি বলেছি যে, আমি দেখতে পাচ্ছি যে আপনার নির্দিষ্ট এআরএমের সিএমএসআইএস-অনুবর্তী লাইব্রেরি নেই। পরিবর্তে, তাদের মালিকানার এসডিকে ডাউনলোডের জন্য উপলব্ধ K আমি তাদের এসডিকে ডক্স সন্ধান করা শুরু করব।

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

এআরএম মজাদার! আমি আর ফিরে তাকাতে পারিনি।


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

আহ, @ টিক্রোসলে, আপনি অবশ্যই সঠিক আমি কেবল বেসিক পেরিফেরিয়ালগুলি দ্বারা আচ্ছাদিত কার্যকারিতা: জিপিও, টাইমারস, অ্যাডিসি, ইত্যাদি উল্লেখ করার চেষ্টা করছিলাম
বিটস্যাক

আমি সম্মত হই, আমি সাধারণত জিপিআইও, টাইমারস, ঘড়ি এবং ইউআরটি আর / ডাব্লু সরাসরি প্রবেশ করি। আমি কখনও কখনও তাদের লাইব্রেরি কলগুলিতে আই 2 সি, এসপিআই, এডিসি এবং ইউআরটি সেটআপ ব্যবহার করি তবে সবসময় না। প্রচুর রেজিস্টার, আপনি পিক কথা বলছেন কিনা (এবং বিশেষত পিআইসি 32) বা এআরএম।
tcrosley

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

@ জয়কার্লসন ধন্যবাদ! এই উত্তরে আপনার সম্পাদনা প্রত্যাখ্যান করা হয়েছে কারণ আমরা অন্যান্য ব্যক্তির পোস্টগুলিকে এত তাৎপর্যপূর্ণভাবে পরিবর্তন করার কথা না। তবে এটি সত্যিই ভাল তথ্য ছিল! আমি আপনাকে এটি নিজের উত্তর হিসাবে পোস্ট করার পরামর্শ দিচ্ছি, সুতরাং এটি লোককে সাহায্য করবে এবং
উন্নত হবে

5

চলার জন্য ভাল সময়; 8-বিট দ্রুত মারা যাচ্ছে; আপনি যখন একটি STM32F103 (উদাহরণস্বরূপ) দিয়ে একটি M 5 বোর্ড কিনতে পারবেন যা একটি বরং সক্ষম 32-বিট এআরএম মাইক্রোকন্ট্রোলার (ইউএসবি সহ এমনকি!), কোনও সন্দেহ নেই যে সময়গুলি পরিবর্তিত হয়েছে।

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

এর অর্থ এই নয় যে আপনি কম্পাইলারগুলি (এবং বিশেষত লঙ্কার এবং মেকফিলস) আপনার কাছে অস্পষ্ট ত্রুটিগুলি বারফিংয়ের সাথে আপনার মাথা ঝুঁকানোর জন্য কিছু সময় ব্যয় করবেন তবে তারা সবই ছাড়িয়ে যায়।

এআরএমগুলি কীভাবে কাজ করে (যেমন এআরএম সিপিইউ বইগুলি) আপনার সাহসগুলি ঘন এবং খুব আকর্ষণীয় নয় ততদিন পর্যন্ত আপনার সত্যিকারের অনুকূলিতকরণ প্রয়োজন (এবং আপনি যখন 32 বিট রেজিস্ট্রার এবং আপনার পিএলএল পাবেন তখন আপনি কতটা অবাক হয়ে যাবেন? d সিপিইউ ঘড়িটি 100mhz অঞ্চলে)।

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

একবার আপনি 32-বিট রেজিস্টার এবং 32-বিট ডেটা বাসের প্রস্থ এবং যে কোনও জিনিস অন চিপ উপলভ্য করতে চেয়েছিলেন সে বিশ্বে আপনি কখনই 8-বিট সিপিইউতে ফিরে যেতে চাইবেন না; মূলত "এটাকে সহজ করে নেওয়া" এবং কোড লেখার পক্ষে দক্ষতার চেয়ে আরও স্পষ্টীয় হওয়ার জন্য প্রায়শই কোনও জরিমানা থাকে না।

যাইহোক ... পেরিফেরিয়ালস ... আরে এবং ঘষে।

আপনি নিশ্চয়ই আধুনিক এমসিইউগুলিতে খেলতে এক টন স্টাফ পেয়ে যাবেন এবং এটির বেশিরভাগ চমত্কার অভিনব জিনিস; আপনি প্রায়শই এভিআর, পিআইসি এবং 8051 অন-চিপ পেরিফেরিয়াল ছাড়িয়েও পরিশীলনের একটি পৃথিবী খুঁজে পান।

একটি প্রোগ্রামেবল টাইমার? নাহ, আট আছে! , DMA? প্রোগ্রামেবল অগ্রাধিকার এবং বিস্ফোরণ মোড এবং চেইন মোড এবং অটো-রিলোড এবং .. এবং .. এবং ... সহ প্রায় 12 টি চ্যানেল কীভাবে

I2c? I2S? কয়েক ডজন পিন ম্যাক্সিং বিকল্প? অন-চিপ ফ্ল্যাশটি পুনরায় প্রোগ্রাম করার পনেরোটি উপায়? নিশ্চিত!

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

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

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

ভাল লাইব্রেরি এবং বিকাশ সরঞ্জাম (যেমন দ্রুত সংকলন + একটি সঠিক ডিবাগার সহ ডিবাগ চক্র) এবং কার্যকারী উদাহরণ কোড প্রকল্পগুলির একটি বিশাল সেট আজকাল আপনার এআরএম এমসিইউ পছন্দের জন্য একেবারে গুরুত্বপূর্ণ cruc দেখে মনে হচ্ছে বেশিরভাগ বিক্রেতার কাছে এখন সস্তা মূল্যায়ন বোর্ড রয়েছে (

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

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

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


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

4

আমি এভিআর থেকে এসেছি এবং এখন সাধারণত এসটিএম 32 (কর্টেক্স-এম) এর সাথে লেগে আছি। শুরুর জন্য আমি যা প্রস্তাব করি তা এখানেই রয়েছে এবং আমি যখন শুরু করি তখন আমার নিজের সমস্যাগুলি প্রতিফলিত করে:

  1. একটি ডিবাগার সহ একটি বোর্ড পান, বা কমপক্ষে একটি JTAG সংযোগকারী (এবং তারপরে একটি JTAG ডিবাগার কিনুন)। চারপাশে অনেক সস্তা রয়েছে এবং আপনি এটি ব্যবহার করে প্রচুর সময় সাশ্রয় করবেন ।

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

  3. "একটি ভাল আইডিই" প্রস্তুতকারকের সিএমএসআইএস শিরোনাম সেটআপ করা উচিত। এটি মূলত নিবন্ধক মানচিত্র যা প্লেইন সংখ্যা এবং পয়েন্টারের পরিবর্তে ভেরিয়েবলের নাম সহ সি / সি ++ প্রোগ্রামগুলি সহজে লেখার অনুমতি দেয়।

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

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

  6. কোড হিসাবে আপনি শিখুন। একবারে সবকিছু ছিটিয়ে দেওয়ার চেষ্টা করবেন না, কারণ এটি সত্যিই বেশ জটিল। আমি ক্লক ট্রি (এপিবি, এএইচবি, ইত্যাদি বাস) এবং কীভাবে ঘড়ি এবং ঘড়ির ডিভাইডারগুলি ইন্টারঅ্যাক্ট করে তা শিখতে শুরু করব। তারপরে আমি দেখতে চাইছি কোথায় আইডিই আপনার ডিভাইসের জন্য লিঙ্কার স্ক্রিপ্ট এবং স্টার্টআপ কোড সঞ্চয় করে । লিঙ্কার স্ক্রিপ্টটি আপনি মেমরিটিকে কীভাবে সংগঠিত করেন (যেখানে র‌্যাম, ফ্ল্যাশ, আইএসআর ভেক্টর টেবিল ইত্যাদি) pretty স্টার্টআপ স্ক্রিপ্টটি আপনার প্রোগ্রাম সেট আপ করে (গ্লোবাল ভেরিয়েবল ইনিশিয়েলাইজারগুলি ফ্ল্যাশ থেকে র্যামে অনুলিপি করার মতো জিনিস)। কিছু আইডিইগুলির এএসএম-তে স্টার্টআপ স্ক্রিপ্ট থাকে এবং কিছু সি-তে থাকে কখনও কখনও আপনি নিজের পছন্দ মতো ভাষাতে গুগল করতে পারেন one

  7. ডিবাগারটি ASAP তে যান। শুরুতে ভুল করা আপনার নিজের চেয়ে আলাদা ক্রমে কিছু স্টাফ (সাধারণত হার্ডওয়্যার ইনিশিয়ালাইজেশন) করে ভুল করা সাধারণ। এটি কখনও কখনও এমন কোনও আইএসআর ব্যতিক্রম শুরু করে যা আপনাকে while(1);অসীম লুপে (সেই আইএসআরের জন্য ডিফল্ট বাস্তবায়ন) দেয় যা আপনার প্রোগ্রামটি থামিয়ে দেয় এবং কোনও ডিবাগার দিয়েও এটি সনাক্ত করা শক্ত hard কোনও ডিবাগার ছাড়াই কল্পনা করুন।

  8. একটি ডিবাগার সম্পর্কে কথা বলার পরে, ইউআরটি খুব বেশি চলে যাওয়ার চেষ্টা করুন, তারপরে এটি পড়তে সিরিয়াল-ইউএসবি অ্যাডাপ্টার ব্যবহার করুন। printf()ডিবাগিং সর্বদা দরকারী :-)


3

আমি 8051, AVR, বা PIC তে খুব বেশি কাজ করি না not তবে সম্প্রতি আমি প্রসেসরের এআরএম কর্টেক্স এমএক্স লাইনের দিকে তাকাতে শুরু করেছি। সুতরাং আমি আপনাকে ৮০৫১, এভিআর বা পিআইসি থেকে রূপান্তরের বিষয়ে অনেক কিছুই বলতে পারি না, তবে বেশিরভাগই কোনও শিক্ষানবিসের দৃষ্টিকোণ থেকে।

এআরএম-কর্টেক্স M-এম 4 প্রসেসরটি হার্ভার্ড আর্কিটেকচারের উপর ভিত্তি করে, এইভাবে পৃথক ডেটা এবং নির্দেশনা বাস রয়েছে। নীচে একটি উচ্চ স্তরের চিত্র রয়েছে।

এখানে চিত্র বর্ণনা লিখুন

এই সপ্তাহে এনএক্সপি রেপ্রেসেন্টিভগুলি আমাদের সুবিধা পরিদর্শন করবে। আমি কোনও এনএক্সপি এআরএম-কর্টেক্স এমএক্স সংস্থানগুলির জন্য তাদের সাথে চেক করব এবং তাদের এখানে পোস্ট করব। ফ্রীস্কেল হয়েছে Kinetis কম পাওয়ার 32 বিট মাইক্রোকন্ট্রোলার (MCUs) এ ARM® Cortex®-এম কোর ভিত্তিক , আমি বুঝতে তারাও এআরএম প্রসেসর শেখার অনুরূপ গাইড আছে। দুর্ভাগ্যক্রমে আমি তাদের নিয়ে গবেষণা করিনি।


তথ্যসূত্র:

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