এর আগে এসেম্বলি স্তরের প্রোগ্রামিং ব্যবহার করে অনেক এম্বেড অ্যাপ্লিকেশন তৈরি করা হয়েছিল। তবে তারা বহনযোগ্যতা সরবরাহ করেনি। এই অসুবিধাটি বিভিন্ন উচ্চ-স্তরের ভাষার মতো সি, প্যাসকেল এবং সিওবিওএল এর আগমনের মধ্য দিয়ে কাটিয়ে উঠেছে। তবে এটি সি ভাষাই এম্বেড থাকা সিস্টেমগুলির জন্য ব্যাপক গ্রহণযোগ্যতা পেয়েছিল এবং এটি এখনও অবিরত রয়েছে। লিখিত সি কোডটি আরও নির্ভরযোগ্য, স্কেলেবল এবং পোর্টেবল এবং বাস্তবে বোঝার পক্ষে অনেক সহজ। এম্বেডেড সি প্রোগ্রামিং প্রতিটি এবং প্রতিটি অভ্যন্তরে প্রসেসরের ক্রিয়াকলাপ এম্বেড সিস্টেম আমরা আমাদের দৈনন্দিন জীবনে যেমন মোবাইল ফোন, ওয়াশিং মেশিন এবং ডিজিটাল ক্যামেরা জুড়ে চলে আসি। প্রতিটি প্রসেসর এম্বেড থাকা সফ্টওয়্যারটির সাথে যুক্ত। প্রথম এবং সর্বাগ্রে বিষয় হ'ল এম্বেড করা সফ্টওয়্যার যা এম্বেড থাকা সিস্টেমের কাজ করার সিদ্ধান্ত নেয়। এম্বেড করা সি ভাষাটি প্রায়শই ব্যবহৃত হয় মাইক্রোকন্ট্রোলার প্রোগ্রাম ।
সি ভাষা কী?
সি ভাষাটি ডেনিস রিচি ১৯69৯ সালে বিকাশ করেছিলেন It এটি এক বা একাধিক ফাংশনের সংগ্রহ এবং প্রতিটি ফাংশন একটি নির্দিষ্ট কাজ সম্পাদনের বিবৃতি সংগ্রহ।
সি ভাষা একটি মধ্য-স্তরের ভাষা কারণ এটি উচ্চ-স্তরের অ্যাপ্লিকেশন এবং নিম্ন-স্তরের অ্যাপ্লিকেশনগুলিকে সমর্থন করে। এম্বেড করা সি প্রোগ্রামিংয়ের বিশদটি যাওয়ার আগে আমাদের র্যাম মেমরি সংগঠন সম্পর্কে জানা উচিত।
সি ভাষার প্রধান বৈশিষ্ট্যগুলির মধ্যে নিম্নলিখিতগুলি অন্তর্ভুক্ত রয়েছে।
- সি ভাষা হ'ল সফটওয়্যার যা বিভিন্ন কীওয়ার্ড, ডেটা টাইপ, ভেরিয়েবল, কনস্ট্যান্টস ইত্যাদিসহ ডিজাইন করা is
- এম্বেডড সি একটি জেনেরিক শব্দ যা সিতে লিখিত একটি প্রোগ্রামিং ভাষায় দেওয়া হয়, যা একটি বিশেষ হার্ডওয়্যার আর্কিটেকচারের সাথে সম্পর্কিত।
- এম্বেড করা সি হ'ল কিছু অতিরিক্ত শিরোনাম ফাইল সহ সি ভাষায় এক্সটেনশন। এই শিরোলেখ ফাইলগুলি নিয়ামক থেকে নিয়ামকতে পরিবর্তিত হতে পারে।
- দ্য মাইক্রোকন্ট্রোলার 8051 # অন্তর্ভুক্ত ব্যবহৃত হয়।
একটি এম্বেডেড সি প্রোগ্রামিং কী
প্রতিটি এম্বেড থাকা সিস্টেম ভিত্তিক প্রকল্পগুলিতে, এম্বেড এম সি প্রোগ্রামিং মাইক্রোকন্ট্রোলার চালিত করতে এবং পছন্দসই ক্রিয়াগুলি সম্পাদন করতে মূল ভূমিকা পালন করে। বর্তমানে আমরা সাধারণত বেশ কয়েকটি বৈদ্যুতিন ডিভাইস যেমন মোবাইল ফোন, ওয়াশিং মেশিন, সুরক্ষা ব্যবস্থা, রেফ্রিজারেটর, ডিজিটাল ক্যামেরা ইত্যাদি ব্যবহার করি যা এই এমবেডেড ডিভাইসগুলির নিয়ন্ত্রণ একটি এম্বেডড সি প্রোগ্রামের সাহায্যে করা যেতে পারে। ডিজিটাল ক্যামেরায় উদাহরণস্বরূপ, আমরা কোনও ছবি ক্যাপচারের জন্য যদি কোনও ক্যামেরা বোতাম টিপুন তবে মাইক্রোকন্ট্রোলারটি ছবিটি ক্লিক করার পাশাপাশি এটি সঞ্চয় করার জন্য প্রয়োজনীয় ফাংশনটি সম্পাদন করবে।
এম্বেডেড সি প্রোগ্রামিং
এম্বেডেড সি প্রোগ্রামিং ফাংশনগুলির একটি সেট দিয়ে তৈরি করে যেখানে প্রতিটি ফাংশন একটি নির্দিষ্ট বিবরণের একটি সেট যা কিছু নির্দিষ্ট কার্য সম্পাদন করতে ব্যবহৃত হয়। উভয় এম্বেড করা সি এবং সি ভাষা একই এবং কিছু ভেরিয়েবল, অক্ষর সেট, কীওয়ার্ডস, ডেটা ধরণের, ভেরিয়েবলের ঘোষণাপত্র, অভিব্যক্তি, বিবৃতি ইত্যাদির মাধ্যমে কার্যকর হয়। এম্বেড করা সি প্রোগ্রাম লেখার সময় এই সমস্ত উপাদানগুলি মূল ভূমিকা পালন করে।
এম্বেড থাকা সিস্টেম ডিজাইনারদের প্রোগ্রাম লিখতে অবশ্যই হার্ডওয়্যার আর্কিটেকচার সম্পর্কে জানতে হবে। এই প্রোগ্রামগুলি বাহ্যিক ডিভাইসগুলি পর্যবেক্ষণ এবং নিয়ন্ত্রণে বিশিষ্ট ভূমিকা পালন করে। এগুলি মাইক্রোকন্ট্রোলারের অভ্যন্তরীণ আর্কিটেকচার যেমন সরাসরি বিঘ্নিত পরিচালনা, টাইমার, সিরিয়াল যোগাযোগ এবং অন্যান্য উপলভ্য বৈশিষ্ট্যগুলি পরিচালনা করে এবং ব্যবহার করে।
এম্বেড সিস্টেম প্রোগ্রামিং
যেমনটি আমরা আগে আলোচনা করেছি, এম্বেড থাকা সিস্টেমের ডিজাইনিং হার্ডওয়্যার এবং সফটওয়্যার ব্যবহার করে করা যেতে পারে। উদাহরণস্বরূপ, একটি সাধারণ এমবেডেড সিস্টেমে প্রসেসর হ'ল মূল মডিউল যা সিস্টেমের হৃদয়ের মতো কাজ করে। এখানে একটি প্রসেসর একটি মাইক্রোপ্রসেসর, ডিএসপি, মাইক্রোকন্ট্রোলার, সিপিএলডি এবং এফপিজিএ ছাড়া আর কিছুই নয়। এই সমস্ত প্রসেসর প্রোগ্রামেবল যাতে এটি ডিভাইসের কাজকে সংজ্ঞায়িত করে।
একটি এম্বেডেড সিস্টেম প্রোগ্রাম হার্ডওয়্যারটিকে ইনপুটগুলি এবং সেই অনুযায়ী নিয়ন্ত্রণ আউটপুটগুলি পরীক্ষা করতে দেয়। এই পদ্ধতিতে, এম্বেড করা প্রোগ্রামটি প্রসেসরের সরাসরি অভ্যন্তরীণ আর্কিটেকচার যেমন টাইমারস, ইন্টারপ্রেট হ্যান্ডলিং, আই / ও পোর্টস, সিরিয়াল যোগাযোগ ইন্টারফেস ইত্যাদি নিয়ন্ত্রণ করতে পারে may
সুতরাং এম্বেডেড সিস্টেম প্রোগ্রামিং প্রসেসরের পক্ষে খুব গুরুত্বপূর্ণ। এম্বেড থাকা সিস্টেমগুলির জন্য যেমন সি, সি ++, এসেম্বলি ল্যাঙ্গুয়েজ, জাভা, জাভা স্ক্রিপ্ট, ভিজ্যুয়াল বেসিক ইত্যাদির জন্য বিভিন্ন প্রোগ্রামিং ল্যাঙ্গুয়েজ উপলব্ধ রয়েছে তাই এই এম্বেডেড সিস্টেমটি তৈরি করার সময় এই প্রোগ্রামিং ল্যাঙ্গুয়েজ একটি গুরুত্বপূর্ণ ভূমিকা পালন করে তবে ভাষা নির্বাচন করা অত্যন্ত প্রয়োজনীয়।
একটি এম্বেডেড সি প্রোগ্রাম তৈরির পদক্ষেপ
নীচের মতো এম্বেড থাকা সি প্রোগ্রাম ডিজাইনে জড়িত বিভিন্ন পদক্ষেপ রয়েছে।
- মন্তব্য
- প্রসেসরের দিকনির্দেশনা
- পোর্ট কনফিগারেশন
- গ্লোবাল ভেরিয়েবল
- কোর ফাংশন / মূল ফাংশন
- পরিবর্তনশীল ঘোষণা
- প্রোগ্রামটির যুক্তি
মন্তব্য
প্রোগ্রামিং ভাষায়, মন্তব্যগুলি প্রোগ্রামটির কার্যকারিতা বর্ণনা করার জন্য অত্যন্ত প্রয়োজনীয়। মন্তব্যের কোডটি কার্যকর করা যায় না তবে প্রোগ্রাম ডকুমেন্টেশন সরবরাহ করতে ব্যবহৃত হয়। প্রোগ্রামটির কার্যকারিতা বোঝার জন্য, এটি প্রোগ্রামটির কার্যকারিতা বোঝার জন্য একটি সহজ পদ্ধতি তৈরি করবে। এম্বেড করা সিতে, মন্তব্যগুলি দুটি ধরণের যেমন একক লাইন এবং মূললাইন মন্তব্যগুলিতে উপলব্ধ।
এম্বেড করা সি প্রোগ্রামিং ল্যাঙ্গুয়েজে আমরা আমাদের কোডে এমন মন্তব্য রাখতে পারি যা পাঠককে কোডটি সহজেই বুঝতে সহায়তা করে।
সি = এ + বি / * দুটি ভেরিয়েবল যুক্ত করুন যার মান অন্য ভেরিয়েবল সি * /
একক লাইন মন্তব্য
সাধারণত, প্রোগ্রামিং ভাষার জন্য, একক-লাইন মন্তব্যগুলি প্রোগ্রামের একটি ভগ্নাংশকে স্পষ্ট করতে খুব কার্যকর। এই মন্তব্যগুলি একটি ডাবল স্ল্যাশ (//) দিয়ে শুরু হয় এবং এটি প্রোগ্রামিং ভাষার ভিতরে যে কোনও জায়গায় অবস্থিত হতে পারে। এটি ব্যবহার করে, একটি প্রোগ্রামের মধ্যে পুরো লাইন উপেক্ষা করা যেতে পারে।
মাল্টি-লাইন মন্তব্য
বহু-লাইন মন্তব্য প্রোগ্রামিং ভাষাতে একটি একক স্ল্যাশ (/) এবং একটি নক্ষত্র (/ *) দিয়ে শুরু হয় যা কোডের একটি ব্লককে ব্যাখ্যা করে। এই ধরণের মন্তব্য প্রোগ্রামিং ভাষার ভিতরে যে কোনও জায়গায় সাজানো যায় এবং প্রধানত কোনও প্রোগ্রামের মধ্যে কোডের পুরো ব্লকটিকে উপেক্ষা করার জন্য ব্যবহৃত হয়।
প্রসেসরের দিকনির্দেশনা
প্রোগ্রাম কোডের মধ্যে অন্তর্ভুক্ত রেখাগুলিকে প্রিপ্রসেসর নির্দেশিকা বলা হয় যা হ্যাশ প্রতীক (#) এর মাধ্যমে অনুসরণ করা যেতে পারে। এই লাইনগুলি প্রিপ্রোসেসর নির্দেশিকা তবে প্রোগ্রামেড বিবৃতি নয়।
রিয়েল কোড সংকলন শুরু হওয়ার আগে এবং নিয়মিত বিবৃতি দিয়ে কোনও কোড উত্পন্ন করার আগে এই নির্দেশগুলি সমাধান করার আগে কোডটি একটি প্রিপ্রসেসরের মাধ্যমে পরীক্ষা করা যায়। দুটি বিশেষ নির্দেশনা প্রোগ্রামিং ভাষার অভ্যন্তরে অত্যন্ত সহায়ক হলেও বেশ কয়েকটি বিশেষ প্রিপ্রোসেসর নির্দেশিকা উপলব্ধ রয়েছে
নীচের মত।
# অন্তর্ভুক্ত
# অন্তর্ভুক্ত
স্কিট এলইডি = পি 2 ^ 3
প্রধান ()
{
LED = 0x0ff ff
বিলম্ব ()
LED = 0x00
}
# নির্দিষ্ট
# অন্তর্ভুক্ত
# নির্ধারণ এলইডি P0
প্রধান ()
{
LED = 0x0ff ff
বিলম্ব ()
LED = 0x00
}
উপরের প্রোগ্রামে, # অন্তর্ভুক্ত নির্দেশিকা সাধারণত স্ট্যান্ডার্ড লাইব্রেরি যেমন অধ্যয়ন এবং হিসাবে ব্যবহার করতে ব্যবহৃত হয়। এইচটি ‘সি’ এর লাইব্রেরি ব্যবহার করে I / O ফাংশনগুলিকে অনুমতি দেওয়ার জন্য ব্যবহৃত হয়। # নির্দিষ্ট সংজ্ঞা সাধারণত ভেরিয়েবলগুলির সিরিজ বর্ণনা করতে ব্যবহৃত হয় এবং ম্যাক্রোর মতো নির্দিষ্ট নির্দেশের মধ্যে প্রক্রিয়াটি সম্পাদন করে মানগুলি বরাদ্দ করে।
পোর্ট কনফিগারেশন
মাইক্রোকন্ট্রোলারটিতে বেশ কয়েকটি বন্দর অন্তর্ভুক্ত থাকে যেখানে প্রতিটি বন্দরে আলাদা আলাদা পিন রয়েছে। এই পিনগুলি ইন্টারফেসিং ডিভাইসগুলি নিয়ন্ত্রণ করতে ব্যবহার করা যেতে পারে। এই পিনগুলির ঘোষণা কীওয়ার্ডগুলির সাহায্যে কোনও প্রোগ্রামের মধ্যে করা যেতে পারে। এম্বেড করা সি প্রোগ্রামের কীওয়ার্ডগুলি স্ট্যান্ডার্ড পাশাপাশি বিট, সিবিট, এসএফআরের মতো পূর্বনির্ধারিত যা কোনও প্রোগ্রামের মধ্যে বিট এবং একক পিনের জন্য ব্যবহৃত হয়।
নির্দিষ্ট কিছু কাজ করার জন্য সংরক্ষিত কিছু শব্দ রয়েছে। এই শব্দগুলি কীওয়ার্ড হিসাবে পরিচিত। এগুলি এম্বেডেড সি-তে আদর্শ এবং পূর্বনির্ধারিত মূলশব্দগুলি সর্বদা ছোট হাতের অক্ষরে লেখা থাকে। মূল প্রোগ্রামটি লেখার আগে এই কীওয়ার্ডগুলি সংজ্ঞায়িত করতে হবে। মূলশব্দগুলির মূল ফাংশনগুলিতে নিম্নলিখিতটি অন্তর্ভুক্ত রয়েছে।
# অন্তর্ভুক্ত
এসবিট এ = পি 2 ^ 2
এসএফআর 0x00 = PoRT0
বিট সি
প্রধান ()
{
…………… ..
…………… ..
}
sbit
এটি এক প্রকারের ডেটা টাইপ, যা কোনও এসএফআর নিবন্ধকের মধ্যে একক বিট অ্যাক্সেস করতে ব্যবহৃত হয়।
এই ডেটা প্রকারের বাক্য গঠনটি হ'ল: এসবিট ভেরিয়েবলের নাম = এসএফআর বিট
উদাহরণ: sbit a = P2 ^ 1
যদি আমরা p2.1 কে ‘a’ ভেরিয়েবল হিসাবে অর্পণ করি তবে আমরা প্রোগ্রামের যে কোনও জায়গায় p2.1 এর পরিবর্তে ‘a’ ব্যবহার করতে পারি, যা প্রোগ্রামটির জটিলতা হ্রাস করে।
বিট
এই ধরণের ডেটা টাইপটি মূলত 20h থেকে 2fh এর মতো এলোমেলো অ্যাক্সেস মেমরির বিট অ্যাড্রেসযোগ্য মেমরির জন্য ব্যবহৃত হয়।
এই ডেটা টাইপের বাক্য গঠন: বিট ভেরিয়েবলের নাম
উদাহরণ: বিট গ
এটি একটি ছোট ডেটা অঞ্চলে কিছুটা সিরিজ সেটিং যা মূলত কোনও কিছু মুখস্থ করার জন্য প্রোগ্রামের সাহায্যে ব্যবহৃত হয়।
এসএফআর
অতিরিক্ত নামের মাধ্যমে এসএফআর নিবন্ধের পেরিফেরিল বন্দরগুলি পেতে এই ধরণের ডেটা টাইপ ব্যবহার করা হয়। সুতরাং, সমস্ত এসএফআর নিবন্ধগুলির ঘোষণা মূলধনীতে করা যেতে পারে।
এই ডেটা প্রকারের বাক্য গঠনটি হল: এসএফআর নিবন্ধের জন্য এসএফআর ভেরিয়েবল নাম = এসএফআর ঠিকানা
উদাহরণ: এসএফআর পোর্ট0 = 0 × 80
যদি আমরা ‘পোর্ট0’ এর মতো 0 × 80 বরাদ্দ করি, তারপরে আমরা প্রোগ্রামিংয়ের ভাষায় প্রোগ্রামের অসুবিধা হ্রাস করতে যেখানেই পোর্ট 0 এর জায়গায় 0 × 80 ব্যবহার করতে পারি।
এসএফআর নিবন্ধন করুন
এসএফআর এর অর্থ বিশেষ ফাংশন রেজিস্টার। 8051 মাইক্রোকন্ট্রোলারটিতে এটিতে 256 বাইট সহ র্যাম মেমরি অন্তর্ভুক্ত রয়েছে, যা দুটি প্রধান উপাদানগুলিতে বিভক্ত: 128 বাইটের প্রথম উপাদানটি মূলত ডেটা সংরক্ষণ করার জন্য ব্যবহৃত হয় যেখানে 128 বাইটের অন্যান্য উপাদানটি মূলত এসএফআর রেজিস্টারে ব্যবহার করা হয়। সমস্ত পেরিফেরাল ডিভাইস যেমন টাইমার, কাউন্টার এবং আই / ও পোর্টগুলি এসএফআর নিবন্ধের মধ্যে সংরক্ষণ করা হয় এবং প্রতিটি উপাদানটিতে একটি ঠিকানা থাকে address
গ্লোবাল ভেরিয়েবল
মূল ফাংশনটি বিশ্বব্যাপী ভেরিয়েবল হিসাবে পরিচিত হওয়ার আগে যখন ভেরিয়েবল ঘোষণা করা হয়। এই ভেরিয়েবলটি প্রোগ্রামের মধ্যে যে কোনও ফাংশনে অনুমোদিত হতে পারে। গ্লোবাল ভেরিয়েবলের আয়ু মূলত প্রোগ্রামিংয়ের উপর নির্ভর করে যতক্ষণ না এটি শেষ হয়।
# অন্তর্ভুক্ত
স্বাক্ষরবিহীন int a, c = 10
প্রধান ()
{
……………
………… ..
}
কোর ফাংশন / মূল ফাংশন
যে কোনও প্রোগ্রাম চালানোর সময় মূল ফাংশনটি একটি কেন্দ্রীয় অংশ এবং এটি মূল ফাংশনটি দিয়ে সহজভাবে শুরু হয়। প্রতিটি প্রোগ্রাম কেবল একটি প্রধান ফাংশন কাজে লাগায় যেহেতু প্রোগ্রামটি যদি একটি বড় ফাংশনের উপরে অন্তর্ভুক্ত থাকে তবে পরের সংকলক প্রোগ্রামটির কার্য সম্পাদন শুরু করতে বিভ্রান্ত হবে।
# অন্তর্ভুক্ত
প্রধান ()
{
……………
………… ..
}
পরিবর্তনশীল ঘোষণা
ভেরিয়েবলের মতো নামটি মান সংরক্ষণের জন্য ব্যবহৃত হয় তবে প্রোগ্রামের মধ্যে ব্যবহারের আগে এই পরিবর্তনশীলটিকে প্রথমে ঘোষণা করা উচিত। ভেরিয়েবলের ঘোষণাপত্রে এর নামের পাশাপাশি একটি ডেটা টাইপও থাকে। এখানে, ডেটা টাইপ স্টোরেজ ডেটার উপস্থাপনা ছাড়া কিছুই নয়। এম্বেড করা সি প্রোগ্রামিংয়ে এটি চারটি মৌলিক ডেটা টাইপ যেমন মেমরির মধ্যে ডেটা সংরক্ষণের জন্য পূর্ণসংখ্যার, ভাসা, অক্ষর ব্যবহার করে। তথ্য প্রকারের আকারের পাশাপাশি পরিসীমা সংকলকটির উপর নির্ভর করে সংজ্ঞায়িত করা যেতে পারে।
ডেটা টাইপ ইন্টিজার, চরিত্র, ফ্লোট ইত্যাদি বিভিন্ন ধরণের ভেরিয়েবল ঘোষণার জন্য একটি বিস্তৃত সিস্টেমকে বোঝায় এমবেডেড সি সফ্টওয়্যারটিতে চারটি ডেটা টাইপ ব্যবহার করা হয় যা মেমরিতে ডেটা সংরক্ষণ করতে ব্যবহৃত হয়।
‘চর’ কোনও একক অক্ষর সংরক্ষণের জন্য ব্যবহৃত হয় ‘ইন্ট’ পূর্ণসংখ্যার মান সঞ্চয় করতে ব্যবহৃত হয় এবং যে কোনও নির্ভুলতা ভাসমান-পয়েন্ট মান সংরক্ষণ করতে ‘ফ্লোট’ ব্যবহার করা হয়। একটি 32-বিট মেশিনে বিভিন্ন ডেটা ধরণের আকার এবং ব্যাপ্তি নিম্নলিখিত সারণিতে দেওয়া আছে। বিভিন্ন শব্দের আকারের মেশিনে আকার এবং ব্যাপ্তি আলাদা হতে পারে।
- চর / স্বাক্ষরিত চর ডেটা টাইপের আকার 1 বাইট এবং এর পরিসীমা -128 থেকে +128 পর্যন্ত
- স্বাক্ষরবিহীন চর ডেটা টাইপের আকার 1 বাইট এবং এর ব্যাপ্তি 0 থেকে 255 পর্যন্ত
- ইন / স্বাক্ষরিত ডাটা টাইপের আকার 2 বাইট এবং এর পরিসীমা -32768 থেকে 32767 পর্যন্ত
- স্বাক্ষরবিহীন ইন ডাটা টাইপের আকার 2 বাইট এবং এর পরিসীমা 0 থেকে 65535 এর মধ্যে
প্রধান ()
{
স্বাক্ষরবিহীন ইন ক, খ, গ
}
একটি এম্বেডেড সি প্রোগ্রামের কাঠামোটি নীচে দেখানো হয়েছে।
- মন্তব্য
- প্রিপ্রোসেসর নির্দেশিকা
- গ্লোবাল ভেরিয়েবল
- প্রধান ফাংশন
{
- স্থানীয় পরিবর্তনশীল
- বিবৃতি
- ………… ..
- ………… ..
}
- মজা (1)
{
- স্থানীয় পরিবর্তনশীল
- বিবৃতি
- ………… ..
- ………… ..
}
প্রোগ্রামটির যুক্তি
প্রোগ্রামটির যুক্তি হ'ল লেনের একটি পরিকল্পনা যা প্রোগ্রামটির ক্রিয়াকলাপের পিছনে এবং অনুমানযোগ্য আউটপুটগুলিতে তত্ত্বে উপস্থিত হয়। এটি বিবৃতিটির ব্যাখ্যা দেয় অন্যথায় এম্বেড হওয়া প্রোগ্রামটি কেন কাজ করবে সে সম্পর্কিত তত্ত্ব এবং অন্যথায় সংস্থানসমূহের ক্রিয়াগুলির স্বীকৃত প্রভাব দেখায়।
মূল
{
LED = 0x0f
বিলম্ব (100)
LED = 0x00
বিলম্ব (100)
}
এম্বেডেড সি প্রোগ্রামের প্রধান ফ্যাক্টর
একটি এম্বেড থাকা সিস্টেম বিকাশের জন্য প্রোগ্রামিং ভাষা চয়ন করার সময় বিবেচনা করা উচিত প্রধান বিষয়গুলি:
প্রোগ্রাম আকার
প্রতিটি প্রোগ্রামিং ল্যাঙ্গুয়েজ কিছু মেমরি দখল করে থাকে যেখানে মাইক্রোকন্ট্রোলারের মতো এম্বেড হওয়া প্রসেসর এলোমেলো অ্যাক্সেস মেমরির একটি খুব কম পরিমাণ অন্তর্ভুক্ত করে।
প্রোগ্রামের গতি
প্রোগ্রামিংয়ের ভাষাটি খুব দ্রুত হওয়া উচিত, তাই যত তাড়াতাড়ি সম্ভব চালানো উচিত। এম্বেড হার্ডওয়ারের গতি হ্রাস করা উচিত নয় কারণ ধীর-চলমান সফ্টওয়্যারটির কারণে।
বহনযোগ্যতা
বিভিন্ন এম্বেড থাকা প্রসেসরের জন্য, অনুরূপ প্রোগ্রামগুলির সংকলন করা যেতে পারে।
- সরল বাস্তবায়ন
- সাধারণ রক্ষণাবেক্ষণ
- পঠনযোগ্যতা
সি প্রোগ্রাম এবং এম্বেডেড সি প্রোগ্রামের মধ্যে পার্থক্য
এম্বেড করা সি এবং সি প্রোগ্রামিংয়ের মধ্যে পার্থক্য আসলে অপারেটিং পরিবেশ এবং কিছু এক্সটেনশন বাদে বেশি নয়। এই প্রোগ্রামিং ল্যাঙ্গুয়েজগুলি আইএসও স্ট্যান্ডার্ড এবং প্রায় একই ধরণের সিনট্যাক্স, ফাংশন, ডেটা প্রকার ইত্যাদি রয়েছে C সি প্রোগ্রামিং এবং এম্বেডেড সি প্রোগ্রামিংয়ের মধ্যে প্রধান পার্থক্যগুলি নিম্নলিখিতগুলি অন্তর্ভুক্ত করে।
সি ভাষা | এম্বেড করা সি ভাষা |
সাধারণত, এই ভাষাটি ডেস্কটপ-ভিত্তিক অ্যাপ্লিকেশনগুলি বিকাশ করতে ব্যবহৃত হয়
| এম্বেডেড সি ভাষাটি মাইক্রোকন্ট্রোলার-ভিত্তিক অ্যাপ্লিকেশনগুলি বিকাশ করতে ব্যবহৃত হয়। |
সি ভাষা কোনও প্রোগ্রামিং ভাষার জন্য এক্সটেনশন নয়, তবে একটি সাধারণ-উদ্দেশ্য প্রোগ্রামিং ভাষা | এম্বেডেড সি হ'ল সি / প্রোগ্রামিং ভাষার একটি এক্সটেনশন যা বিভিন্ন বৈশিষ্ট্য যেমন আই / ও, ঠিকানা স্থির-পয়েন্ট গণিত, একাধিক-মেমরি অ্যাড্রেসিং ইত্যাদি including
|
এটি প্রকৃতির দেশীয় বিকাশের প্রক্রিয়া করে | এটি প্রকৃতির ক্রস বিকাশের প্রক্রিয়া করে |
এটি হার্ডওয়্যার আর্কিটেকচারের জন্য স্বাধীন | এটি মাইক্রোকন্ট্রোলার এবং অন্যান্য ডিভাইসের হার্ডওয়্যার আর্কিটেকচারের উপর নির্ভর করে |
সি ভাষার সংকলকগুলি অপারেটিং সিস্টেমের উপর নির্ভর করে | এম্বেড করা সি সংকলকগুলি ওএস স্বাধীন independent |
সি ভাষায়, স্ট্যান্ডার্ড সংকলকগুলি একটি প্রোগ্রাম চালানোর জন্য ব্যবহৃত হয় | এম্বেড করা সি ভাষায়, নির্দিষ্ট সংকলকগুলি ব্যবহৃত হয়। |
এই ভাষায় ব্যবহৃত জনপ্রিয় সংকলকরা হলেন জিসিসি, বোরল্যান্ড টার্বো সি, ইন্টেল সি ++ ইত্যাদি | এই ভাষায় ব্যবহৃত জনপ্রিয় সংকলকগুলি হ'ল কেইল, বিপোম ইলেকট্রনিক্স এবং সবুজ পাহাড় |
সি ভাষার বিন্যাসটি ফ্রি-ফর্ম্যাট | এর ফর্ম্যাটটি মূলত ব্যবহৃত ধরণের মাইক্রোপ্রসেসরের উপর নির্ভর করে। |
এই ভাষার অপ্টিমাইজেশন স্বাভাবিক | এই ভাষার অনুকূলকরণ একটি উচ্চ স্তর is |
এটি পরিবর্তন এবং পড়া খুব সহজ | এটি পরিবর্তন এবং পড়া সহজ নয় |
বাগ ফিক্সিং সহজ | এই ভাষার বাগ ফিক্সিং জটিল |
এম্বেড করা সি প্রোগ্রাম উদাহরণ
নীচে কয়েকটি সাধারণ এম্বেডেড সি প্রোগ্রামগুলির জন্য ব্যবহৃত হচ্ছে মাইক্রোকন্ট্রোলার-ভিত্তিক প্রকল্পগুলি ।
উদাহরণ -১
উদাহরণ -২
উদাহরণ -৩
উদাহরণ -4
সুবিধাদি
দ্য এম্বেডেড সি প্রোগ্রামিনের সুবিধা ছ নীচে অন্তর্ভুক্ত।
- এটা বুঝতে খুব সহজ।
- এটি নিয়মিত একই ধরণের কাজ সম্পাদন করে তাই অতিরিক্ত মেমরির মতো হার্ডওয়্যার পরিবর্তনের প্রয়োজন নেই অন্যথায় সঞ্চয় স্থান storage
- এটি একবারে কেবল একটি একক কার্য সম্পাদন করে
- এমবেডেড সিতে ব্যবহৃত হার্ডওয়ারের দাম সাধারণত এত কম থাকে।
- এম্বেড অ্যাপ্লিকেশনগুলি শিল্পগুলিতে অত্যন্ত উপযুক্ত are
- অ্যাপ্লিকেশন প্রোগ্রামটি বিকাশ করতে এটি কম সময় নেয়।
- এটি প্রোগ্রামটির জটিলতা হ্রাস করে।
- এটি যাচাই করা এবং বোঝা সহজ।
- এটি এক নিয়ামক থেকে অন্য নিয়ন্ত্রণযোগ্য port
অসুবিধা
দ্য এম্বেডেড সি প্রোগ্রামিংয়ের অসুবিধা নিম্নলিখিত অন্তর্ভুক্ত করুন।
- এক সময়ে এটি কেবল একটি কাজ সম্পাদন করে তবে বহু-কার্য সম্পাদন করতে পারে না
- আমরা যদি প্রোগ্রামটি পরিবর্তন করি তবে হার্ডওয়ারটিও পরিবর্তন করা দরকার
- এটি কেবলমাত্র হার্ডওয়্যার সিস্টেমকে সমর্থন করে।
- এটি একটি স্কেলিবিলিটি সমস্যা আছে
- এটিতে সীমিত মেমরির মতো বাধা রয়েছে অন্যথায় কম্পিউটারের সামঞ্জস্য।
এম্বেডেড সি প্রোগ্রামের অ্যাপ্লিকেশন
দ্য এমবেডেড সি প্রোগ্রামিংয়ের অ্যাপ্লিকেশন নিম্নলিখিত অন্তর্ভুক্ত করুন।
- এম্বেডেড সি প্রোগ্রামিং বিভিন্ন কাজে শিল্পগুলিতে ব্যবহৃত হয়
- অ্যাপ্লিকেশনগুলিতে ব্যবহৃত প্রোগ্রামিং ল্যাঙ্গুয়েজটি হাইওয়েতে স্পিড চেকার, ট্র্যাফিক লাইট নিয়ন্ত্রণ করা, স্ট্রিট লাইট নিয়ন্ত্রণ করা, গাড়ি ট্র্যাকিং, কৃত্রিম বুদ্ধিমত্তা, হোম অটোমেশন এবং অটো তীব্রতা নিয়ন্ত্রণ।
আমরা আশা করি যে আমরা প্রাথমিকের জন্য সহজ এবং সহজলভ্য উপায় সরবরাহে সফল হয়েছি providing এম্বেডেড সি প্রোগ্রামিং । এমবেডেড সি প্রোগ্রামিং বোঝা এমবেডেড ভিত্তিক প্রকল্পগুলি ডিজাইনের জন্য সবচেয়ে প্রয়োজনীয় পূর্বশর্ত। এগুলি ছাড়াও, এম্বেড করা সি প্রোগ্রামিং সম্পর্কে আরও ভাল বোঝাপড়া এবং সঠিক জ্ঞান শিক্ষার্থীদের একটি পুরস্কৃত ক্যারিয়ার নির্বাচনের ক্ষেত্রে প্রচুর পরিমাণে সহায়তা করে।
আমরা উত্সাহিত এবং আমাদের পাঠকদের মন্তব্য, পরামর্শ এবং মন্তব্য স্বাগত জানাই। অতএব, আপনি নীচের দেওয়া মন্তব্য বিভাগে এই নিবন্ধ সম্পর্কে আপনার প্রশ্ন এবং প্রতিক্রিয়া পোস্ট করতে পারেন। নীচের লিঙ্কটি অনুসরণ করুন সোলারলেস প্রকল্প