কেবলমাত্র ব্লক-ওয়াইজ মুছে ফেলা যায় এমন ফ্ল্যাশের সাহায্যে আমি কীভাবে বর্ধনীয় আপডেটগুলি করব?


11

দৃশ্যপট

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

প্রশ্ন

তার মানে কি আমি কোনও ডিফারেনশিয়াল ( ডেল্টা ) আপডেট করতে পারি না ? আমার কি সবসময় পুরো নিয়ামক মেমরিটি আপডেট করতে হয় (বা কমপক্ষে যথেষ্ট অংশ)?

আমি সমস্ত কিছু ফ্ল্যাশ করার প্রয়োজনটিকে কমাতে এবং যতটা সম্ভব ডিভাইসটিকে ব্রিকিংয়ের ঝুঁকিপূর্ণ করতে চাই। বাতাসের উপর মাইক্রোকন্ট্রোলারগুলি ফ্ল্যাশ করার সময় কি বিদ্যমান কৌশলগুলি রয়েছে?


আপনার ব্যয় বা সর্বনিম্ন ঝুঁকির হারের জন্য আরও গুরুত্বপূর্ণ কী?
বেনস কৌলিক্স

আমার মনে হয় @ বেনসকোলিকস দুজনের মধ্যে সঠিক ভারসাম্য খুঁজে পাবেন। সর্বোপরি একটি ইটের ঝুঁকিও একটি (ওজনযুক্ত) ব্যয়।
হেলমার

উত্তর:


8

এর সহজ উত্তর হ্যাঁ - আপনি উচ্চ নির্ভরযোগ্যতা চাইলে আপনার বুটলোডার এবং A / B কোড চিত্রগুলিকে সমর্থন করতে পর্যাপ্ত ব্লক দরকার। নতুন চিত্রটি সক্রিয় করার আগে আপনি পুরো জিনিসটি লিখতে পারেন, এটি যাচাই করতে পারেন এবং সম্ভাব্য পুনরায় চেষ্টা করতে পারেন।

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

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

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

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


6

আমি সমস্ত কিছু ফ্ল্যাশ করার প্রয়োজনটিকে কমাতে এবং যতটা সম্ভব ডিভাইসটিকে ব্রিকিংয়ের ঝুঁকিপূর্ণ করতে চাই। বাতাসের উপর মাইক্রোকন্ট্রোলারগুলি ফ্ল্যাশ করার সময় কি বিদ্যমান কৌশলগুলি রয়েছে?

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

এটি মনে রেখে, আপনি উভয় চিত্র আপডেট করার সময় পরিধান-সমকরণের আলগোরিদিমগুলি ব্যবহার করতে পারেন। এই জাতীয় অ্যালগরিদমের কোডটি মোট স্টোরেজের প্রায় 10-15% লাগতে পারে তবে এটি ডিভাইসের জীবনকাল বাড়ানোর ক্ষেত্রে এটি ভাল।

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

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

( টেকটারেজেট.কম: সমতলকরণ পরিধান করুন )


6

ফ্রিস্কেল সেমিকন্ডাক্টর তাদের কিনেটিস মাইক্রোকন্ট্রোলারদের জন্য ওভার-দ্য-এয়ার ফার্মওয়্যার আপগ্রেডের একটি শক্তিশালী উপায় বর্ণনা করে ।

একে বলা হয়: প্রোগ্রাম ফ্ল্যাশ মেমোরি অদলবদল

ফ্ল্যাশ মেমরি স্বাপ ব্যবহার করে সিস্টেমগুলি using

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

সুবিধাদি

  • প্রোগ্রামিং এর সহজ। অ্যাপ্লিকেশন সর্বদা স্মৃতি মানচিত্রে নিম্ন ব্লকের বাইরে কার্যকর করে।
  • শক্তি হ্রাস সহনীয়।
  • কোনও বুটলোডার প্রয়োজন নেই। মূল অ্যাপ্লিকেশন শুরু হতে দেরি নেই।
  • মাল্টি-টাস্কিং ওএসের জন্য ভাল। সর্বনিম্ন আবেদন ডাউনটাইম। মাল্টি-টাস্কিং সিস্টেমে অ্যাপ্লিকেশনটির নতুন অনুলিপি আপডেট করার জন্য পটভূমি কাজ চলাকালীন মূল অ্যাপ্লিকেশন কার্যগুলি চালিয়ে যাওয়া সম্ভব possible
  • কোডের ব্যাকআপ কপি। জ্ঞাত কার্যকারী অ্যাপ্লিকেশনটিতে ফিরে যাওয়া সম্ভব।

অসুবিধেও

  • ব্যাকআপ অনুলিপি সঞ্চয় করতে অতিরিক্ত ফ্ল্যাশ মেমরি স্থান প্রয়োজন।

আপনি ব্লকগুলি আপডেট করতে পারেন এবং তারপরে এগুলি স্যুপ করতে পারেন।

আপডেটের সময় মেমরি অদলবদর্শন করা হয়

লিঙ্কযুক্ত নথিতে বিশদ বিবরণ রয়েছে।

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


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