শখের বন্ধুত্বপূর্ণ মাইক্রোকন্ট্রোলারে র‌্যামের নির্দেশাবলী কার্যকর করুন


12

আমার একটি প্রকল্প মাইক্রোকন্ট্রোলার মধ্যে সংরক্ষণ করা হয়নি এমন একটি প্রোগ্রাম চালাতে সক্ষম হওয়ায় ব্যাপক উপকৃত হবে (তবে পরিবর্তে এটি কোনও এসডি কার্ডে সঞ্চিত রয়েছে)।

সুতরাং, আমি এমন একটি ডিভাইস খুঁজছি যা আমাকে এসডি কার্ড থেকে র্যামে কোডটি লোড করতে এবং তারপরে র্যাম থেকে কোডটি কার্যকর করতে দেয়। বর্তমানে, আমার কাছে কেবল পিককিট 2 এর সাথে উপস্থিত প্রোগ্রামার রয়েছে, তাই আমি পিআইসিদের সাথে থাকতে পছন্দ করি।

কেউ কি জানেন যে কোনটি, যদি কোনও, পিআইসিগুলি এটি করতে পারে? যদি কোনও পিসিই এর পক্ষে সক্ষম না হয় তবে কয়েকটি আলাদা মাইক্রো কন্ট্রোলার কী এটি এর জন্য কাজ করবে? সাধারণত একটি রুটিবোর্ডের সামঞ্জস্যপূর্ণ প্যাকেজে উপলব্ধ।


2
হু? ... র‌্যাম থেকে ঠিক কীসের জন্য আপনাকে কার্যকর করতে হবে? এবং 'স্ট্যাটিক' বলতে কী বোঝ? আপনি আসলে স্ব পরিবর্তনকারী কোডটি লেখার চেষ্টা করছেন না? আপনি কি গতিশীল মেমরি বরাদ্দের অভাব সম্পর্কে কথা বলছেন? ওরফে নো মলোক?
চিহ্নিত করুন

2
@ মার্ক আমি কোনও বাহ্যিক ডিভাইস, যেমন একটি এসডি কার্ড থেকে কোনও প্রোগ্রাম লোড করতে এবং এটি সম্পাদন করতে সক্ষম হতে চাই। আমি আমার পোস্টে আরও ভাল করে ব্যাখ্যা করার চেষ্টা করব।
পোনকডুডল

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

উত্তর:


5

কয়েকটি পিআইসি রয়েছে যা আপনাকে বাহ্যিক প্রোগ্রামের মেমরি যুক্ত করতে দেয়। আমি এটি কখনই করি নি তবে অ্যাপ্লিকেশন নোটস এএন 869 এবং এএন 778 এ কীভাবে বাহ্যিক স্মৃতি প্রয়োগ করতে হবে তার আরও তথ্য রয়েছে has


11

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

এই পদ্ধতির গতির ব্যয়ে আপনাকে নমনীয়তা দেয়।

নির্বাচনের জন্য প্রচুর বিকল্প রয়েছে: মাইক্রোকন্ট্রোলারদের জন্য উচ্চ-স্তরের ভাষা দোভাষী / সংকলকগুলির সমীক্ষা


1
আপনার নিজস্ব ডিএসএল রোল করুন। এই বিকল্পটি আমাকে প্রস্তাবিত সমস্ত সমাধানগুলির মধ্যে সর্বাধিক আবেদন করে।
আমোস

6

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

এমএসপি ৪৩০ প্রসেসরগুলি তাদের র‌্যাম স্পেস থেকে কোড চালাতে পারে তবে আপনার 16k র‌্যাম স্পেস সহ F5438 এর মতো কিছু দরকার হবে - 128 বাইটে কোড চালানো আসলেই কোনও বিকল্প নয়!

যদি কোনও প্রসেসরের একটি বাহ্যিক বাস থাকে তবে আপনি কোড স্পেসে র‌্যাম লাগাতে পারেন। প্রসেসরের আর্কিটেকচারটি এক্সিকিউশন মেমোরিতে ডেটা লেখার অনুমতি না দিলে আপনাকে দুটি মেমরি অঞ্চলে র‌্যাম ম্যাপ করতে আপনাকে কিছু অতিরিক্ত যুক্তি যুক্ত করতে হতে পারে।

আমি ৮০৫১ ভিত্তিক সিস্টেমে র্যাম থেকে কোড রান করেছি তবে এর অর্থ এই যে র‌্যামটি প্রোগ্রামিংয়ের জন্য এক্সটারন মেমরি স্পেসে এবং তারপরে এক্সিকিউশনের জন্য কোডে স্পেসে ফিরে ম্যাপ করতে হয়েছিল। লোডার / মনিটর প্রোগ্রাম মেমরি ব্যাংক স্যুইচিং এবং লোডিং পরিচালনা করে। দয়া করে কোডটি জিজ্ঞাসা করবেন না - আমি প্রায় 30 বছর আগে এটি করেছি এবং এটি দীর্ঘদিন থেকে হারিয়ে গেছে (এবং পিএল / এম -51 তে লিখিত)


5

নিম্ন এবং মাঝারি পরিসরের কোনও পিআইসি তাদের মেমরি আর্কিটেকচারের কারণে র‍্যাম থেকে কার্যকর করতে পারে না।

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

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

আমি মোটামুটি নিশ্চিত যে এমপিএস ৪৩০ এছাড়াও এটি করতে সক্ষম হওয়া উচিত তবে আমি নিজে কখনও এটি করি নি।


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

5

প্রোপেলার তার প্রোগ্রামটি বাহ্যিক স্টোরেজ থেকে লোড করে।


1
সাধারণত প্রোপেলার চিপটি 32 কে ইপ্রোম (24LC256) থেকে বুট করা হয় তবে এর পরিবর্তে এসডি কার্ড থেকে বুট করার একটি উপায় এখানে রয়েছে: গ্যাজেটগ্যাংস্টার
45- ডিজাইনার-

3

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



3

যেমন অন্যান্য পোস্টার লিখেছেন, আপনি 8 বা 16-বিট পিআইসিতে র‌্যাম থেকে চালনা করতে পারবেন না কারণ তারা হার্ভার্ড আর্কিটেকচার (পৃথক কোড এবং ডেটা স্পেস) ব্যবহার করে। কোনও এসডি কার্ডটি বন্ধ করে কোনও প্রোগ্রাম লোড করা এবং কোড মেমোরিতে ফ্ল্যাশ করা व्यावहारिक কিনা তা নির্ভর করে আপনি কত ঘন ঘন এটি করছেন তা নির্ভর করে।

আপনি যদি এমন কোনও ওএসের মতো গতিশীল পরিবেশ তৈরি করার চেষ্টা করছেন যা ক্রমাগত প্রোগ্রামগুলিকে ওভারলাই করে চলেছে, তবে না। তবে আমার ক্ষেত্রে আমার একটি প্রোগ্রাম রয়েছে যা 2 জিবি এসডি কার্ডের বাইরে চালকদের লোড করে দেয়। PIC24FJ256GB110 এর নূন্যতম 10,000 মুছা / লেখার চক্র রয়েছে। এমনকি যদি এটি প্রতিদিন পাঁচবার করা হয়ে থাকে তবে ফ্ল্যাশটি সর্বনিম্ন 5/2 বছর অবধি চলে।

(দ্রষ্টব্য: 10,000 চিত্রটি ন্যূনতম Typ আট ঘন্টা ধরে - এবং এটি এখনও এক বছর স্থায়ী হতে পারে))


2

আমার স্কুলে আমরা প্রোগ্রামগুলি লোড করতে এবং চালানোর জন্য বহিরাগত র‌্যাম সহ এইচসি 11 বা এইচসি 12 প্রসেসর ব্যবহার করেছি ... তবে আমি বোর্ডগুলি / কিটটির নামটি ভুলে গেছি :( যে কোনও ক্ষেত্রেই, ফ্রিস্কেল এইচসি (এস) -লাইন এমসিইউগুলির ঠিকানা র‌্যাম এবং রমকে একইভাবে দেয় , যাতে আপনি র‌্যামে কোড লোড করতে এবং এটি সম্পাদন করতে পারেন।

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


1

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


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

0

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

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


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