MICROCHIP MPLAB XC8 C কম্পাইলার সফটওয়্যার
মাইক্রোচিপ AVR ডিভাইসগুলিকে লক্ষ্য করার সময় এই নথিতে MPLAB XC8 C কম্পাইলারের সাথে সম্পর্কিত গুরুত্বপূর্ণ তথ্য রয়েছে৷
এই সফ্টওয়্যারটি চালানোর আগে দয়া করে পড়ুন৷ আপনি যদি 8-বিট পিক ডিভাইসের জন্য কম্পাইলার ব্যবহার করেন তবে PIC ডকুমেন্টের জন্য MPLAB XC8 C কম্পাইলার রিলিজ নোটগুলি দেখুন।
ওভারview
ভূমিকা
মাইক্রোচিপ MPLAB® XC8 C কম্পাইলারের এই রিলিজে বেশ কিছু নতুন বৈশিষ্ট্য, বাগ ফিক্স এবং নতুন ডিভাইস সমর্থন রয়েছে।
বিল্ড তারিখ
এই কম্পাইলার সংস্করণের অফিসিয়াল বিল্ড তারিখ হল 3 জুলাই 2022।
পূর্ববর্তী সংস্করণ
পূর্ববর্তী MPLAB XC8 C কম্পাইলার সংস্করণটি ছিল 2.39, একটি কার্যকরী নিরাপত্তা কম্পাইলার, যা 27 জানুয়ারী 2022-এ নির্মিত হয়েছিল। পূর্ববর্তী স্ট্যান্ডার্ড কম্পাইলারটি ছিল 2.36 সংস্করণ, যা 27 জানুয়ারী 2022-এ নির্মিত হয়েছিল।
কার্যকরী নিরাপত্তা ম্যানুয়াল
MPLAB XC কম্পাইলারদের জন্য একটি কার্যকরী নিরাপত্তা ম্যানুয়াল ডকুমেন্টেশন প্যাকেজে পাওয়া যায় যখন আপনি একটি কার্যকরী নিরাপত্তা লাইসেন্স ক্রয় করেন।
উপাদান লাইসেন্স এবং সংস্করণ
AVR MCUs টুলের জন্য MPLAB® XC8 C কম্পাইলার GNU জেনারেল পাবলিক লাইসেন্স (GPL) এর অধীনে লেখা এবং বিতরণ করা হয় যার অর্থ হল এর সোর্স কোড অবাধে বিতরণ করা হয় এবং জনসাধারণের কাছে উপলব্ধ। GNU GPL-এর অধীনে টুলের সোর্স কোড মাইক্রোচিপ থেকে আলাদাভাবে ডাউনলোড করা যেতে পারে webসাইট আপনি GNU GPL পড়তে পারেন file নাম আপনার ইনস্টল ডিরেক্টরির সাবডিরেক্টরি অবস্থিত। GPL এর অন্তর্নিহিত নীতিগুলির একটি সাধারণ আলোচনা এখানে পাওয়া যেতে পারে। হেডারের জন্য সাপোর্ট কোড দেওয়া হয়েছে files, লিঙ্কার স্ক্রিপ্ট, এবং রানটাইম লাইব্রেরি হল মালিকানা কোড এবং GPL এর আওতায় নেই।
এই কম্পাইলারটি GCC সংস্করণ 5.4.0, binutils সংস্করণ 2.26 এর একটি বাস্তবায়ন এবং avr-libc সংস্করণ 2.0.0 ব্যবহার করে।
সিস্টেমের প্রয়োজনীয়তা
MPLAB XC8 C কম্পাইলার এবং এটি যে লাইসেন্সিং সফ্টওয়্যারটি ব্যবহার করে তা বিভিন্ন অপারেটিং সিস্টেমের জন্য উপলব্ধ, যার মধ্যে নিম্নলিখিতগুলির 64-বিট সংস্করণ রয়েছে: Microsoft Windows 10-এর পেশাদার সংস্করণ; উবুন্টু 18.04; এবং macOS 10.15.5। উইন্ডোজের জন্য বাইনারি কোড-সাইন করা হয়েছে। ম্যাক ওএসের জন্য বাইনারিগুলি কোড-স্বাক্ষরিত এবং নোটারাইজ করা হয়েছে।
আপনি যদি একটি নেটওয়ার্ক লাইসেন্স সার্ভার চালান, শুধুমাত্র কম্পাইলার দ্বারা সমর্থিত অপারেটিং সিস্টেম সহ কম্পিউটারগুলি লাইসেন্স সার্ভার হোস্ট করতে ব্যবহার করা যেতে পারে। xclm সংস্করণ 2.0 অনুযায়ী, নেটওয়ার্ক লাইসেন্স সার্ভারটি মাইক্রোসফ্ট উইন্ডোজ সার্ভার প্ল্যাটফর্মে ইনস্টল করা যেতে পারে, তবে লাইসেন্স সার্ভারটিকে অপারেটিং সিস্টেমের সার্ভার সংস্করণে চালানোর প্রয়োজন নেই।
ডিভাইস সমর্থিত
এই কম্পাইলারটি মুক্তির সময় পরিচিত সমস্ত 8-বিট AVR MCU ডিভাইস সমর্থন করে। সমস্ত সমর্থিত ডিভাইসের তালিকার জন্য (কম্পাইলারের ডক ডিরেক্টরিতে) দেখুন। এইগুলো files প্রতিটি ডিভাইসের জন্য কনফিগারেশন বিট সেটিংসও তালিকাভুক্ত করে।
সংস্করণ এবং লাইসেন্স আপগ্রেড
MPLAB XC8 কম্পাইলার একটি লাইসেন্সপ্রাপ্ত (PRO) বা লাইসেন্সবিহীন (ফ্রি) পণ্য হিসাবে সক্রিয় করা যেতে পারে। আপনার কম্পাইলার লাইসেন্স করার জন্য আপনাকে একটি অ্যাক্টিভেশন কী কিনতে হবে। একটি লাইসেন্স বিনামূল্যে পণ্যের তুলনায় উচ্চ স্তরের অপ্টিমাইজেশনের জন্য অনুমতি দেয়। লাইসেন্সবিহীন কম্পাইলার লাইসেন্স ছাড়াই অনির্দিষ্টকালের জন্য পরিচালিত হতে পারে।
একটি MPLAB XC8 ফাংশনাল সেফটি কম্পাইলার অবশ্যই মাইক্রোচিপ থেকে কেনা একটি কার্যকরী নিরাপত্তা লাইসেন্স সহ সক্রিয় করতে হবে। কম্পাইলার এই লাইসেন্স ছাড়া কাজ করবে না. একবার সক্রিয় হয়ে গেলে, আপনি যেকোনো অপ্টিমাইজেশান স্তর নির্বাচন করতে পারেন এবং সমস্ত কম্পাইলার বৈশিষ্ট্যগুলি ব্যবহার করতে পারেন। MPLAB XC ফাংশনাল সেফটি কম্পাইলারের এই রিলিজ নেটওয়ার্ক সার্ভার লাইসেন্স সমর্থন করে।
লাইসেন্সের ধরন এবং লাইসেন্স সহ কম্পাইলারের ইনস্টলেশন সম্পর্কিত তথ্যের জন্য MPLAB XC C কম্পাইলার ইনস্টল এবং লাইসেন্সিং (DS50002059) নথিটি দেখুন।
ইনস্টলেশন এবং অ্যাক্টিভেশন
এই কম্পাইলারের সাথে অন্তর্ভুক্ত সর্বশেষ লাইসেন্স ম্যানেজার সম্পর্কে গুরুত্বপূর্ণ তথ্যের জন্য মাইগ্রেশন সমস্যা এবং সীমাবদ্ধতা বিভাগগুলিও দেখুন।
যদি MPLAB IDE ব্যবহার করেন, তাহলে এই টুলটি ইনস্টল করার আগে সর্বশেষ MPLAB X IDE সংস্করণ 5.0 বা তার পরে ইনস্টল করতে ভুলবেন না। কম্পাইলার ইনস্টল করার আগে IDE ছেড়ে দিন। .exe (Windows), .run (Linux) বা অ্যাপ (macOS) কম্পাইলার ইনস্টলার অ্যাপ্লিকেশন চালান, যেমন XC8-1.00.11403-windows.exe এবং স্ক্রিনে নির্দেশাবলী অনুসরণ করুন।
ডিফল্ট ইনস্টলেশন ডিরেক্টরি সুপারিশ করা হয়. আপনি যদি লিনাক্স ব্যবহার করেন তবে আপনাকে অবশ্যই একটি টার্মিনাল ব্যবহার করে এবং একটি রুট অ্যাকাউন্ট থেকে কম্পাইলার ইনস্টল করতে হবে। প্রশাসকের বিশেষাধিকার সহ একটি macOS অ্যাকাউন্ট ব্যবহার করে ইনস্টল করুন।
সক্রিয়করণ এখন ইনস্টলেশনের জন্য আলাদাভাবে বাহিত হয়। আরও তথ্যের জন্য MPLAB® XC C কম্পাইলার (DS52059) এর জন্য ডকুমেন্ট লাইসেন্স ম্যানেজার দেখুন।
আপনি যদি মূল্যায়ন লাইসেন্সের অধীনে কম্পাইলার চালানো বেছে নেন, তাহলে আপনার মূল্যায়নের মেয়াদ শেষ হওয়ার 14 দিনের মধ্যে আপনি এখন সংকলনের সময় একটি সতর্কতা পাবেন। আপনি যদি আপনার HPA সদস্যতা শেষ হওয়ার 14 দিনের মধ্যে থাকেন তবে একই সতর্কতা জারি করা হয়।
XC নেটওয়ার্ক লাইসেন্স সার্ভার একটি পৃথক ইনস্টলার এবং একক-ব্যবহারকারী কম্পাইলার ইনস্টলারে অন্তর্ভুক্ত নয়।
XC লাইসেন্স ম্যানেজার এখন ভাসমান নেটওয়ার্ক লাইসেন্সের রোমিং সমর্থন করে। মোবাইল ব্যবহারকারীদের লক্ষ্য করে, এই বৈশিষ্ট্যটি একটি ভাসমান লাইসেন্সকে অল্প সময়ের জন্য নেটওয়ার্ক বন্ধ করার অনুমতি দেয়। এই বৈশিষ্ট্যটি ব্যবহার করে, আপনি নেটওয়ার্ক থেকে সংযোগ বিচ্ছিন্ন করতে পারেন এবং এখনও আপনার MPLAB XC কম্পাইলার ব্যবহার করতে পারেন৷ এই বৈশিষ্ট্য সম্পর্কে আরও জানতে XCLM ইনস্টলের ডক ফোল্ডারটি দেখুন। MPLAB X IDE-তে দৃশ্যমানভাবে রোমিং পরিচালনা করার জন্য একটি লাইসেন্স উইন্ডো (সরঞ্জাম > লাইসেন্স) অন্তর্ভুক্ত।
ইনস্টলেশন সমস্যা সমাধান
আপনি যদি উইন্ডোজ অপারেটিং সিস্টেমের অধীনে কম্পাইলার ইনস্টল করতে অসুবিধা অনুভব করেন তবে নিম্নলিখিত পরামর্শগুলি চেষ্টা করুন।
- প্রশাসক হিসাবে ইনস্টল চালান।
- ইনস্টলার অ্যাপ্লিকেশনের অনুমতিগুলি 'সম্পূর্ণ নিয়ন্ত্রণে' সেট করুন। (রাইট-ক্লিক করুন file, বৈশিষ্ট্য নির্বাচন করুন, নিরাপত্তা ট্যাব, ব্যবহারকারী নির্বাচন করুন, সম্পাদনা করুন।)
- টেম্প ফোল্ডারের অনুমতিগুলি "সম্পূর্ণ নিয়ন্ত্রণে সেট করুন!
টেম্প ফোল্ডারের অবস্থান নির্ধারণ করতে, রান কমান্ডে %temp% টাইপ করুন (উইন্ডোজ লোগো কী + আর)। এটি একটি খুলবে file এক্সপ্লোরার ডায়ালগ সেই ডিরেক্টরিটি দেখাচ্ছে এবং আপনাকে সেই ফোল্ডারের পথ নির্ধারণ করতে দেবে।
কম্পাইলার ডকুমেন্টেশন
MPLAB X IDE ড্যাশবোর্ডে নীল সাহায্য বোতামে ক্লিক করার সময় আপনার ব্রাউজারে খোলে HTML পৃষ্ঠা থেকে কম্পাইলারের ব্যবহারকারীর নির্দেশিকাগুলি খোলা যেতে পারে, যেমন স্ক্রিনশটে নির্দেশ করা হয়েছে।
আপনি যদি 8-বিট AVR টার্গেটের জন্য তৈরি করেন, তাহলে AVR® MCU-এর জন্য MPLAB® XC8 C কম্পাইলার ব্যবহারকারীর নির্দেশিকাতে সেই কম্পাইলার বিকল্প এবং এই আর্কিটেকচারের জন্য প্রযোজ্য বৈশিষ্ট্যগুলির তথ্য রয়েছে।
কাস্টমার সাপোর্ট
মাইক্রোচিপ এই কম্পাইলার সংস্করণ সম্পর্কিত বাগ রিপোর্ট, পরামর্শ বা মন্তব্যকে স্বাগত জানায়। যেকোন বাগ রিপোর্ট বা বৈশিষ্ট্য অনুরোধ সমর্থন সিস্টেমের মাধ্যমে নির্দেশ করুন.
ডকুমেন্টেশন আপডেট
MPLAB XC8 ডকুমেন্টেশনের অনলাইন এবং আপ-টু-ডেট সংস্করণের জন্য, অনুগ্রহ করে মাইক্রোচিপের অনলাইন প্রযুক্তিগত ডকুমেন্টেশন দেখুন webসাইট
এই রিলিজে নতুন বা আপডেট করা AVR ডকুমেন্টেশন:
- MUSL কপিরাইট বিজ্ঞপ্তি
- MPLAB XC C কম্পাইলার ইনস্টল এবং লাইসেন্সিং (রিভিশন M)
- এমবেডেড ইঞ্জিনিয়ারদের জন্য MPLAB XC8 ব্যবহারকারীর নির্দেশিকা - AVR MCUs (রিভিশন A)
- AVR MCU এর জন্য MPLAB XC8 C কম্পাইলার ব্যবহারকারীর নির্দেশিকা (রিভিশন F)
- মাইক্রোচিপ ইউনিফাইড স্ট্যান্ডার্ড লাইব্রেরি রেফারেন্স গাইড (সংশোধন B)
মাইক্রোচিপ ইউনিফাইড স্ট্যান্ডার্ড লাইব্রেরি রেফারেন্স গাইড মাইক্রোচিপ ইউনিফাইড স্ট্যান্ডার্ড লাইব্রেরি দ্বারা সংজ্ঞায়িত ফাংশনগুলির আচরণ এবং ইন্টারফেস বর্ণনা করে, সেইসাথে লাইব্রেরির প্রকার এবং ম্যাক্রোগুলির উদ্দেশ্যযুক্ত ব্যবহার। এই তথ্যগুলির মধ্যে কিছু পূর্বে AVR® MCU-এর জন্য MPLAB® XC8 C কম্পাইলার ব্যবহারকারীর নির্দেশিকাতে অন্তর্ভুক্ত ছিল। ডিভাইস-নির্দিষ্ট লাইব্রেরির তথ্য এখনও এই কম্পাইলার গাইডে রয়েছে।
আপনি যদি সবেমাত্র 8-বিট ডিভাইস এবং MPLAB XC8 C কম্পাইলার দিয়ে শুরু করেন, MPLAB® XC8 User!'s Guide for Embedded Engineers – AVR® MCUs (DS50003108) এর কাছে MPLAB X IDE-এ প্রজেক্ট সেট আপ করা এবং কোড লেখার তথ্য রয়েছে। আপনার প্রথম MPLAB XC8 C প্রকল্পের জন্য। এই গাইডটি এখন কম্পাইলারের সাথে বিতরণ করা হয়েছে।
এই রিলিজে ডক্স ডিরেক্টরিতে হ্যামেট ব্যবহারকারীর নির্দেশিকা অন্তর্ভুক্ত করা হয়েছে। এই নির্দেশিকাটি যারা হ্যামেট একটি স্বতন্ত্র অ্যাপ্লিকেশন হিসাবে চালাচ্ছেন তাদের জন্য।
নতুন কি
নিম্নলিখিতগুলি নতুন AVR-টার্গেট বৈশিষ্ট্য যা কম্পাইলার এখন সমর্থন করে৷ উপশিরোনামের সংস্করণ নম্বরটি অনুসরণকারী বৈশিষ্ট্যগুলিকে সমর্থন করার জন্য প্রথম কম্পাইলার সংস্করণ নির্দেশ করে।
সংস্করণ 2.40
নতুন ডিভাইস সমর্থন নিম্নলিখিত AVR অংশগুলির জন্য সমর্থন এখন উপলব্ধ: AT90PWM3, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR64, AVR28, AVR64 এবং AVR32
উন্নত পদ্ধতিগত বিমূর্ততা পদ্ধতিগত বিমূর্ততা (PA) অপ্টিমাইজেশান টুলটি উন্নত করা হয়েছে যাতে একটি ফাংশন কল নির্দেশ (কল রিকল ) ) সম্বলিত কোডটি রূপরেখা করা যায়। এটি তখনই ঘটবে যখন স্ট্যাকটি আর্গুমেন্ট পাস করতে বা ফাংশন থেকে রিটার্ন মান পেতে ব্যবহার না করা হয়। একটি পরিবর্তনশীল যুক্তি তালিকা সহ একটি ফাংশন কল করার সময় বা এই উদ্দেশ্যে মনোনীত রেজিস্টারের চেয়ে বেশি আর্গুমেন্ট লাগে এমন একটি ফাংশন কল করার সময় স্ট্যাক ব্যবহার করা হয়। এই বৈশিষ্ট্যটি সন্ন্যাসী-পা-আউটলাইন-কল বিকল্পটি ব্যবহার করে অক্ষম করা যেতে পারে, বা কোনও বস্তুর জন্য পদ্ধতিগত বিমূর্ততা সম্পূর্ণরূপে নিষ্ক্রিয় করা যেতে পারে file অথবা ব্যবহার করে ফাংশন -monk-pa-on-file এবং -মো.-পা-অন-ফাংশন যথাক্রমে, অথবা ফাংশনের সাথে বেছে বেছে নিপা অ্যাট্রিবিউট (নিপা স্পেসিফায়ার) ব্যবহার করে
কোড কভারেজ ম্যাক্রো কম্পাইলার এখন ম্যাক্রো __CODECOV সংজ্ঞায়িত করে যদি একটি বৈধ mcodecov বিকল্প নির্দিষ্ট করা থাকে।
মেমরি রিজার্ভেশন বিকল্প AVR টার্গেট তৈরি করার সময় xc8-cc ড্রাইভার এখন -mreserve=space@start: end বিকল্পটি গ্রহণ করবে। এই বিকল্পটি ডেটা বা প্রোগ্রাম মেমরি স্পেসে নির্দিষ্ট মেমরি রেঞ্জ সংরক্ষণ করে, লিঙ্কারকে এই এলাকায় কোড বা বস্তুগুলিকে পপুলেট করা থেকে বাধা দেয়।
স্মার্ট স্মার্ট আইও স্মার্ট আইও ফাংশনে বেশ কিছু উন্নতি করা হয়েছে, যার মধ্যে প্রিন্টএফ কোর কোডে সাধারণ টুইক, %n রূপান্তর স্পেসিফায়ারকে একটি স্বাধীন বৈকল্পিক হিসাবে বিবেচনা করা, চাহিদা অনুযায়ী ভারার্গ পপ রুটিনে লিঙ্ক করা, IO ফাংশন আর্গুমেন্ট পরিচালনার জন্য যেখানে সম্ভব ছোট ডেটা টাইপ ব্যবহার করা। , এবং ক্ষেত্রের প্রস্থ এবং নির্ভুলতা পরিচালনায় সাধারণ কোড ফ্যাক্টরিং। এর ফলে উল্লেখযোগ্য কোড এবং ডেটা সাশ্রয় হতে পারে, সেইসাথে IO-এর সঞ্চালনের গতি বৃদ্ধি করতে পারে।
সংস্করণ 2.39 (কার্যকরী নিরাপত্তা প্রকাশ)
নেটওয়ার্ক সার্ভার লাইসেন্স MPLAB XC8 ফাংশনাল সেফটি কম্পাইলারের এই রিলিজ নেটওয়ার্ক সার্ভার লাইসেন্স সমর্থন করে।
সংস্করণ 2.36
কোনোটিই নয়।
সংস্করণ 2.35
নতুন ডিভাইস সমর্থন নিম্নলিখিত AVR অংশগুলির জন্য সমর্থন উপলব্ধ: ATTINY3224, ATTINY3226, ATTINY3227, AVR64DD14, AVR64DD20, AVR64DD28, এবং AVR64DD32৷
উন্নত প্রসঙ্গ স্যুইচিং নতুন -mcall-isr-prologues বিকল্পটি পরিবর্তন করে যে কীভাবে ইন্টারাপ্ট ফাংশন এন্ট্রিতে রেজিস্টার সংরক্ষণ করে এবং কীভাবে সেই নিবন্ধগুলি পুনরুদ্ধার করা হয় যখন ইন্টারাপ্ট রুটিন শেষ হয়। এটি -mcall-prologues বিকল্পের অনুরূপভাবে কাজ করে, কিন্তু শুধুমাত্র ইন্টারাপ্ট ফাংশন (ISRs) কে প্রভাবিত করে।
আরও উন্নত প্রসঙ্গ স্যুইচিং নতুন -mgas-isr-prologues বিকল্পটি ছোট বাধা পরিষেবার রুটিনের জন্য উত্পন্ন কনটেক্সট ইচ কোড নিয়ন্ত্রণ করে। সক্রিয় করা হলে, এই বৈশিষ্ট্যটি রেজিস্টার ব্যবহারের জন্য সংযোজনকারীকে ISR স্ক্যান করতে হবে এবং প্রয়োজন হলে শুধুমাত্র এই ব্যবহৃত নিবন্ধগুলি সংরক্ষণ করতে হবে।
কনফিগারযোগ্য ফ্ল্যাশ ম্যাপিং AVR DA এবং AVR DB পরিবারের কিছু ডিভাইসে একটি SFR (যেমন FLMAP) থাকে যা নির্দিষ্ট করে যে প্রোগ্রাম মেমরির কোন 32k সেকশনকে ডেটা মেমরিতে ম্যাপ করা হবে। নতুন – mconst-data-in-config-mapped-proem বিকল্পটি লিঙ্কারকে একটি 32k বিভাগে সমস্ত কনস যোগ্য ডেটা রাখার জন্য ব্যবহার করা যেতে পারে এবং এই ডেটাটি ডেটা মেমরি স্পেসে ম্যাপ করা হয়েছে তা নিশ্চিত করতে স্বয়ংক্রিয়ভাবে প্রাসঙ্গিক SFR রেজিস্টার শুরু করতে পারে। , যেখানে এটি আরও কার্যকরভাবে অ্যাক্সেস করা হবে।
মাইক্রোচিপ ইউনিফাইড স্ট্যান্ডার্ড লাইব্রেরি সমস্ত MPLAB XC কম্পাইলার একটি মাইক্রোচিপ ইউনিফাইড স্ট্যান্ডার্ড লাইব্রেরি ভাগ করবে, যা এখন MPLAB XC8 এর এই রিলিজের সাথে উপলব্ধ। MPLAB® XC8 C কম্পাইলার ব্যবহারকারীর নির্দেশিকা/অথবা AVR® MCU-তে আর এই স্ট্যান্ডার্ড ফাংশনের ডকুমেন্টেশন অন্তর্ভুক্ত নেই। এই তথ্যটি এখন মাইক্রোচিপ ইউনিফাইড স্ট্যান্ডার্ড লাইব্রেরি রেফারেন্স গাইডে পাওয়া যাবে। উল্লেখ্য যে avr-libc দ্বারা পূর্বে সংজ্ঞায়িত কিছু কার্যকারিতা আর উপলব্ধ নেই। (লাইব্রের দেখুন):'। কার্যকারিতা...)
স্মার্ট আইও নতুন ইউনিফাইড লাইব্রেরির অংশ হিসেবে, প্রিন্ট এবং স্ক্যান ফ্যামিলিতে আইও ফাংশনগুলি এখন প্রতিটি বিল্ডে কাস্টম তৈরি করা হয়, এই ফাংশনগুলি কীভাবে প্রোগ্রামে ব্যবহার করা হয় তার উপর ভিত্তি করে। এটি একটি প্রোগ্রাম দ্বারা ব্যবহৃত সংস্থানগুলিকে উল্লেখযোগ্যভাবে হ্রাস করতে পারে।
স্মার্ট আইও সহায়তা বিকল্প স্মার্ট আইও ফাংশনগুলির কলগুলি বিশ্লেষণ করার সময় (যেমন printf () বা scanf () ), কম্পাইলার সর্বদা ফরম্যাট স্ট্রিং থেকে নির্ধারণ করতে পারে না বা কলের জন্য প্রয়োজনীয় রূপান্তর নির্দিষ্টকারীর আর্গুমেন্টগুলি থেকে অনুমান করতে পারে না। পূর্বে, কম্পাইলার সর্বদা কোন অনুমান করবে না এবং নিশ্চিত করবে যে সম্পূর্ণ কার্যকরী IO ফাংশনগুলি চূড়ান্ত প্রোগ্রাম চিত্রের সাথে সংযুক্ত ছিল। একটি নতুন – msmart-io-format=fmt বিকল্প যোগ করা হয়েছে যাতে কম্পাইলার পরিবর্তে স্মার্ট IO ফাংশন দ্বারা ব্যবহৃত রূপান্তর স্পেসিফায়ার সম্পর্কে ব্যবহারকারীকে অবহিত করতে পারে যার ব্যবহার অস্পষ্ট, অত্যধিক দীর্ঘ IO রুটিনগুলিকে লিঙ্ক করা থেকে বাধা দেয়। (আরো বিস্তারিত জানার জন্য স্মার্ট-আইও-ফরম্যাট বিকল্প দেখুন।)
কাস্টম বিভাগ স্থাপন পূর্বে, -Wl, -section-start অপশনটি শুধুমাত্র অনুরোধকৃত ঠিকানায় নির্দিষ্ট বিভাগটি স্থাপন করত যখন লিঙ্কার স্ক্রিপ্ট একই নামের একটি আউটপুট বিভাগকে সংজ্ঞায়িত করে। যখন এটি ছিল না, বিভাগটি লিঙ্কারের দ্বারা নির্বাচিত একটি ঠিকানায় স্থাপন করা হয়েছিল এবং বিকল্পটি মূলত উপেক্ষা করা হয়েছিল। এখন বিকল্পটি সমস্ত কাস্টম বিভাগের জন্য সম্মানিত হবে, এমনকি যদি লিঙ্কার স্ক্রিপ্ট বিভাগটি সংজ্ঞায়িত না করে। উল্লেখ্য, যাইহোক, মানক বিভাগের জন্য, যেমন . পাঠ্য,। bss বা ডেটা, সেরা ফিট বরাদ্দকারীর এখনও তাদের বসানোর উপর সম্পূর্ণ নিয়ন্ত্রণ থাকবে এবং বিকল্পটির কোন প্রভাব থাকবে না। ব্যবহারকারীর নির্দেশিকায় বর্ণিত -Wl, -Tsection=add বিকল্পটি ব্যবহার করুন।
সংস্করণ 2.32
স্ট্যাক গাইডেন্স একটি PRO কম্পাইলার লাইসেন্সের সাথে উপলব্ধ, কম্পাইলারের স্ট্যাক নির্দেশিকা বৈশিষ্ট্যটি একটি প্রোগ্রাম দ্বারা ব্যবহৃত যে কোনও স্ট্যাকের সর্বাধিক গভীরতা অনুমান করতে ব্যবহার করা যেতে পারে। এটি একটি প্রোগ্রামের কল গ্রাফ তৈরি করে এবং বিশ্লেষণ করে, প্রতিটি ফাংশনের স্ট্যাকের ব্যবহার নির্ধারণ করে এবং একটি প্রতিবেদন তৈরি করে, যা থেকে প্রোগ্রাম দ্বারা ব্যবহৃত স্ট্যাকের গভীরতা অনুমান করা যায়। এই বৈশিষ্ট্যটি -mchp-stack-usage কমান্ড-লাইন বিকল্পের মাধ্যমে সক্রিয় করা হয়েছে। স্ট্যাক ব্যবহারের একটি সারাংশ কার্যকর করার পরে মুদ্রিত হয়। একটি বিস্তারিত স্ট্যাক রিপোর্ট মানচিত্রে উপলব্ধ file, যা স্বাভাবিক উপায়ে অনুরোধ করা যেতে পারে।
নতুন ডিভাইস সমর্থন সমর্থন নিম্নলিখিত AVR অংশগুলির জন্য উপলব্ধ: ATTINY 427, ATTINY 424, ATTINY 426, ATTINY827, ATTINY824, ATTINY826, AVR32DB32, AVR64DB48, AVR64DB64, AVR64DB28, AVR32DB28, AVR64BDR,32, AVR32BR48
প্রত্যাহার করা ডিভাইস সমর্থন সমর্থন নিম্নলিখিত AVR অংশগুলির জন্য আর উপলব্ধ নেই: AVR16DA28, AVR16DA32 এবং, AVR16DA48৷
সংস্করণ 2.31
কোনোটিই নয়।
সংস্করণ 2.30
ডেটা প্রারম্ভিকতা রোধ করার জন্য নতুন বিকল্প একটি নতুন -mno-data-ini t ড্রাইভার বিকল্পটি ডেটা প্রারম্ভিকতা এবং bss বিভাগগুলি পরিষ্কার করা প্রতিরোধ করে। এটি সমাবেশে do_ copy_ data এবং d o_ clear_ bss চিহ্নের আউটপুট দমন করে কাজ করে files, যা ঘুরেফিরে লিঙ্কার দ্বারা সেই রুটিনগুলির অন্তর্ভুক্তি প্রতিরোধ করবে৷
বর্ধিত অপ্টিমাইজেশান অনেকগুলি অপ্টিমাইজেশান উন্নতি করা হয়েছে, যার মধ্যে রয়েছে অপ্রয়োজনীয় রিটার্ন নির্দেশাবলী অপসারণ, স্কিপ-ইফ-বিট-ইজ নির্দেশনা অনুসরণ করে কিছু জাম্প অপসারণ, এবং উন্নত পদ্ধতিগত বিমূর্ততা এবং এই প্রক্রিয়াটি পুনরাবৃত্তি করার ক্ষমতা।
এই অপ্টিমাইজেশানগুলির কিছু নিয়ন্ত্রণ করার জন্য অতিরিক্ত বিকল্পগুলি এখন উপলব্ধ, বিশেষত -f সেকশন অ্যাঙ্কর, যা একটি চিহ্নের সাপেক্ষে স্ট্যাটিক অবজেক্টের অ্যাক্সেস করতে দেয়; -mpai derations=n, যা ডিফল্ট 2 থেকে পদ্ধতিগত বিমূর্ততা পুনরাবৃত্তির সংখ্যা পরিবর্তন করতে দেয়; এবং, -mpa- কল খরচ- শর্টকল, যা আরও আক্রমনাত্মক পদ্ধতিগত বিমূর্ততা সম্পাদন করে, এই আশায় যে লিঙ্কার দীর্ঘ কলগুলি শিথিল করতে পারে৷ অন্তর্নিহিত অনুমানগুলি বাস্তবায়িত না হলে এই শেষ বিকল্পটি কোডের আকার বাড়াতে পারে।
নতুন ডিভাইস সমর্থন নিম্নলিখিত AVR অংশগুলির জন্য সমর্থন উপলব্ধ: AVR16DA28, AVR16DA32,
AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVRXNUMX
প্রত্যাহার করা ডিভাইস সমর্থন নিম্নলিখিত AVR অংশগুলির জন্য সমর্থন আর উপলব্ধ নেই: ATA5272, ATA5790, ATA5790N,ATA5791,ATA5795,ATA6285,ATA6286,ATA6612C,ATA6613C,ATA6614Q, ATA6616C, ATA6617C, ATA664251C, ATAXNUMXQ।
সংস্করণ 2.29 (কার্যকরী নিরাপত্তা প্রকাশ)
হেডার file কম্পাইলার বিল্ট-ইনগুলির জন্য কম্পাইলার মিসরা-এর মতো ভাষার স্পেসিফিকেশন মেনে চলতে পারে তা নিশ্চিত করতে হেডার file, যা স্বয়ংক্রিয়ভাবে দ্বারা অন্তর্ভুক্ত করা হয় , আপডেট করা হয়েছে. এই হেডারে সমস্ত অন্তর্নির্মিত ফাংশনের প্রোটোটাইপ রয়েছে, যেমন _buil tin _avrnop () এবং _buil tin_ avr delay_ cycles ()। কিছু বিল্ট-ইন MISRA অনুগত নাও হতে পারে; কম্পাইলার কমান্ড লাইনে _Xe_ STRICT_ MISRA সংজ্ঞায়িত করে এগুলি বাদ দেওয়া যেতে পারে। বিল্ট-ইন এবং তাদের ঘোষণাগুলি নির্দিষ্ট-প্রস্থের প্রকারগুলি ব্যবহার করার জন্য আপডেট করা হয়েছে।
সংস্করণ 2.20
নতুন ডিভাইস সমর্থন নিম্নলিখিত AVR অংশগুলির জন্য সমর্থন উপলব্ধ: ATTINY1624, ATTINY1626, এবং ATTINY1627৷
ভাল সেরা ফিট বরাদ্দ কম্পাইলারের সেরা ফিট বরাদ্দকারী (BFA) উন্নত করা হয়েছে যাতে বিভাগগুলিকে আরও ভাল অপ্টিমাইজেশনের অনুমতি দেওয়ার জন্য বরাদ্দ করা হয়। BFA এখন নামযুক্ত ঠিকানা স্পেস সমর্থন করে এবং ডাটা ইনিশিয়ালাইজেশন ভালোভাবে পরিচালনা করে।
উন্নত পদ্ধতিগত বিমূর্ততা পদ্ধতিগত বিমূর্ততা অপ্টিমাইজেশানগুলি এখন আরও কোড সিকোয়েন্সে সঞ্চালিত হয়। পূর্ববর্তী পরিস্থিতিতে যেখানে এই অপ্টিমাইজেশানটি কোডের আকার বাড়াতে পারে সেগুলি অপ্টিমাইজেশান কোডটিকে লিঙ্কারের আবর্জনা সংগ্রহের প্রক্রিয়া সম্পর্কে সচেতন করে সমাধান করা হয়েছে।
AVR অ্যাসেম্বলারের অনুপস্থিতি এই ডিস্ট্রিবিউশনের সাথে AVR অ্যাসেম্বলার আর অন্তর্ভুক্ত নয়।
সংস্করণ 2.19 (কার্যকরী নিরাপত্তা প্রকাশ)
কোনোটিই নয়।
সংস্করণ 2.10
কোড কভারেজ এই রিলিজে একটি কোড কভারেজ বৈশিষ্ট্য রয়েছে যা একটি প্রকল্পের সোর্স কোড কতটা কার্যকর করা হয়েছে তা বিশ্লেষণের সুবিধা দেয়। এটি সক্রিয় করতে -mcodecov=ram বিকল্পটি ব্যবহার করুন। আপনার হার্ডওয়্যারে প্রোগ্রামটি কার্যকর করার পরে, ডিভাইসে কোড কভারেজ তথ্য সংগ্রহ করা হবে এবং এটি একটি কোড কভারেজ প্লাগইনের মাধ্যমে MPLAB X IDE-এ স্থানান্তরিত এবং প্রদর্শিত হতে পারে। এই প্লাগইন সম্পর্কে তথ্য পেতে IDE ডকুমেন্টেশন দেখুন। #pragma mcodecov কভারেজ বিশ্লেষণ থেকে পরবর্তী ফাংশন বাদ দিতে ব্যবহার করা যেতে পারে। আদর্শভাবে প্রাগমা এর শুরুতে যোগ করা উচিত file যে সম্পূর্ণ বাদ দিতে file কভারেজ বিশ্লেষণ থেকে। বিকল্পভাবে, অ্যাট্রিবিউট ( (mcodecov) ) কভারেজ বিশ্লেষণ থেকে একটি নির্দিষ্ট ফাংশন বাদ দিতে ব্যবহার করা যেতে পারে।
ডিভাইসের বিবরণ files একটি নতুন ডিভাইস file avr chipinfo বলা হয়। html কম্পাইলার ডিস্ট্রিবিউশনের ডক্স ডিরেক্টরিতে অবস্থিত। এই file কম্পাইলার দ্বারা সমর্থিত সমস্ত ডিভাইসের তালিকা করে। একটি ডিভাইসের নামের উপর ক্লিক করুন, এবং এটি একটি পৃষ্ঠা খুলবে যেখানে সেই ডিভাইসের জন্য সমস্ত অনুমোদিত কনফিগারেশন বিট সেটিং/মান জোড়া দেখানো হবে, যেমনampলেস
পদ্ধতিগত বিমূর্ততা পদ্ধতিগত বিমূর্ততা অপ্টিমাইজেশান, যেটি ব্লকের একটি নিষ্কাশিত কপিতে কলের সাথে সমাবেশ কোডের সাধারণ ব্লকগুলিকে প্রতিস্থাপন করে, কম্পাইলারে যোগ করা হয়েছে। এগুলি একটি পৃথক অ্যাপ্লিকেশন দ্বারা সঞ্চালিত হয়, যা লেভেল 2, 3 বা অপ্টিমাইজেশন নির্বাচন করার সময় কম্পাইলার দ্বারা স্বয়ংক্রিয়ভাবে আহ্বান করা হয়। এই অপ্টিমাইজেশানগুলি কোডের আকার হ্রাস করে, তবে তারা কার্যকর করার গতি এবং কোড ডিবাগবিলিটি কমাতে পারে।
পদ্ধতিগত বিমূর্ততা -mno-pa বিকল্প ব্যবহার করে উচ্চতর অপ্টিমাইজেশান স্তরে নিষ্ক্রিয় করা যেতে পারে, বা -mpa ব্যবহার করে নিম্ন অপ্টিমাইজেশান স্তরে (আপনার লাইসেন্স সাপেক্ষে) সক্ষম করা যেতে পারে। এটি একটি বস্তুর জন্য নিষ্ক্রিয় করা যেতে পারে file -mno-pa-on- ব্যবহার করেfile=fileনাম, বা function= ফাংশনে -mno-pa ব্যবহার করে একটি ফাংশনের জন্য নিষ্ক্রিয়।
আপনার সোর্স কোডের ভিতরে, ফাংশনের সংজ্ঞার সাথে _attribute_ ( (nopa)) ব্যবহার করে বা _nopa ব্যবহার করে একটি ফাংশনের জন্য পদ্ধতিগত বিমূর্ততা নিষ্ক্রিয় করা যেতে পারে, যা অ্যাট্রিবিউট ( (nopa, noinline)) পর্যন্ত প্রসারিত হয় এবং এইভাবে ফাংশন ইনলাইন হতে বাধা দেয় এবং ইনলাইন কোডের বিমূর্ততা হচ্ছে।
প্রাগমাতে লক বিট সমর্থন #pragma কনফিগারেশনটি এখন AVR লক বিটগুলির পাশাপাশি অন্যান্য কনফিগারেশন বিটগুলি নির্দিষ্ট করতে ব্যবহার করা যেতে পারে। avr চিপ তথ্য পরীক্ষা করুন. html file (উপরে উল্লিখিত) এই প্রাগমার সাথে ব্যবহার করার জন্য সেটিং/মান জোড়ার জন্য।
নতুন ডিভাইস সমর্থন নিম্নলিখিত অংশগুলির জন্য সমর্থন উপলব্ধ: AVR28DA128, AVR64DA128, AVR32DA128, এবং AVR48DA128৷
সংস্করণ 2.05
আপনার টাকা জন্য আরো বিট এই কম্পাইলার এবং লাইসেন্স ম্যানেজারের macOS সংস্করণটি এখন একটি 64-বিট অ্যাপ্লিকেশন। এটি নিশ্চিত করবে যে কম্পাইলারটি ম্যাকওএসের সাম্প্রতিক সংস্করণগুলিতে সতর্কতা ছাড়াই ইনস্টল এবং চলবে।
প্রোগ্রাম মেমরিতে কনস্ট অবজেক্ট কম্পাইলার এখন কনস্ট-যোগ্য বস্তুগুলিকে প্রোগ্রাম ফ্ল্যাশ মেমরিতে রাখতে পারে, এগুলো RAM-তে থাকার পরিবর্তে। কম্পাইলারটি পরিবর্তন করা হয়েছে যাতে কনস্ট-যোগ্য বৈশ্বিক ডেটা প্রোগ্রাম ফ্ল্যাশ মেমরিতে সংরক্ষণ করা হয় এবং উপযুক্ত প্রোগ্রাম-মেমরি নির্দেশাবলী ব্যবহার করে এই ডেটা প্রত্যক্ষ ও পরোক্ষভাবে অ্যাক্সেস করা যায়। এই নতুন বৈশিষ্ট্যটি ডিফল্টরূপে সক্রিয় থাকে তবে -mno-const-data-in-progmem বিকল্পটি ব্যবহার করে নিষ্ক্রিয় করা যেতে পারে। avrxmega3 এবং avrtiny আর্কিটেকচারের জন্য, এই বৈশিষ্ট্যটির প্রয়োজন নেই এবং এটি সর্বদা নিষ্ক্রিয় থাকে, যেহেতু প্রোগ্রাম মেমরি এই ডিভাইসগুলির জন্য ডেটা ঠিকানা স্থানের মধ্যে ম্যাপ করা হয়।
বিনামূল্যে জন্য স্ট্যান্ডার্ড এই কম্পাইলারের লাইসেন্সবিহীন (বিনামূল্যে) সংস্করণগুলি এখন লেভেল 2 পর্যন্ত অপ্টিমাইজেশানের অনুমতি দেয়। এটি একটি স্ট্যান্ডার্ড লাইসেন্স ব্যবহার করে পূর্বে যা সম্ভব ছিল তার অনুরূপ, যদিও অভিন্ন নয়, আউটপুটকে অনুমতি দেবে।
AVRASM2 স্বাগতম 2-বিট ডিভাইসের জন্য AVRASM8 অ্যাসেম্বলার এখন XC8 কম্পাইলার ইনস্টলারে অন্তর্ভুক্ত করা হয়েছে। এই অ্যাসেম্বলারটি XC8 কম্পাইলার দ্বারা ব্যবহৃত হয় না, তবে হাতে লেখা সমাবেশ উত্সের উপর ভিত্তি করে প্রকল্পগুলির জন্য উপলব্ধ।
নতুন ডিভাইস সমর্থন নিম্নলিখিত অংশগুলির জন্য সমর্থন উপলব্ধ: ATMEGA1608, ATMEGA1609, ATMEGA808, এবং ATMEGA809৷
সংস্করণ 2.00
শীর্ষ-স্তরের ড্রাইভার একটি নতুন ড্রাইভার, যাকে বলা হয় xc8-cc, এখন পূর্ববর্তী avr-gcc ড্রাইভার এবং xc8 ড্রাইভারের উপরে বসে এবং এটি লক্ষ্য ডিভাইসের নির্বাচনের উপর ভিত্তি করে উপযুক্ত কম্পাইলারকে কল করতে পারে। এই ড্রাইভার GCC-শৈলী বিকল্পগুলি গ্রহণ করে, যেগুলি হয় অনুবাদ করা হয় বা সম্পাদিত কম্পাইলারের মাধ্যমে পাস করা হয়। এই ড্রাইভারটি অনুরূপ শব্দার্থবিদ্যা সহ বিকল্পগুলির একটি সেটকে যেকোন AVR বা PIC টার্গেটের সাথে ব্যবহার করার অনুমতি দেয় এবং এইভাবে কম্পাইলারটি চালু করার প্রস্তাবিত উপায়। প্রয়োজনে, পুরানো avr-gcc ড্রাইভারকে সরাসরি পুরানো-স্টাইলের বিকল্পগুলি ব্যবহার করে কল করা যেতে পারে যা এটি পূর্ববর্তী কম্পাইলার সংস্করণগুলিতে গৃহীত হয়েছিল।
সাধারণ সি ইন্টারফেস এই কম্পাইলারটি এখন MPLAB কমন সি ইন্টারফেসের সাথে সামঞ্জস্যপূর্ণ হতে পারে, যার ফলে সমস্ত MPLAB XC কম্পাইলার জুড়ে সোর্স কোড আরও সহজে পোর্ট করা যায়। -mext=cci বিকল্পটি অনেক ভাষার এক্সটেনশনের জন্য বিকল্প সিনট্যাক্স সক্রিয় করে এই বৈশিষ্ট্যটির জন্য অনুরোধ করে।
নতুন লাইব্রেরিয়ান ড্রাইভার একজন নতুন লাইব্রেরিয়ান ড্রাইভারকে পূর্ববর্তী PIC লাইব্রের লাইব্রেরিয়ান এবং AVR avr-ar লাইব্রেরিয়ানের উপরে রাখা হয়েছে। এই ড্রাইভার GCC-আর্কিভার-স্টাইল বিকল্পগুলি গ্রহণ করে, যেগুলি হয় অনুবাদ করা হয় বা লাইব্রেরিয়ানকে মৃত্যুদন্ড দেওয়া হয়। নতুন ড্রাইভার অনুরূপ শব্দার্থবিদ্যা সহ বিকল্পগুলির একটি সেটকে যেকোন PIC বা AVR লাইব্রেরি তৈরি বা ম্যানিপুলেট করার জন্য ব্যবহার করার অনুমতি দেয় file এবং এইভাবে গ্রন্থাগারিককে আহ্বান করার প্রস্তাবিত উপায়। যদি লিগ্যাসি প্রকল্পগুলির জন্য প্রয়োজন হয়, পূর্ববর্তী লাইব্রেরিয়ানকে সরাসরি পুরানো-স্টাইলের বিকল্পগুলি ব্যবহার করে ডাকা যেতে পারে যা এটি পূর্ববর্তী কম্পাইলার সংস্করণগুলিতে গৃহীত হয়েছিল।
মাইগ্রেশন সমস্যা
নিম্নলিখিত বৈশিষ্ট্যগুলি এখন কম্পাইলার দ্বারা ভিন্নভাবে পরিচালনা করা হয়। এই পরিবর্তনগুলির জন্য আপনার সোর্স কোডে পরিবর্তনের প্রয়োজন হতে পারে যদি এই কম্পাইলার সংস্করণে কোড পোর্ট করা হয়। উপশিরোনামের সংস্করণ নম্বরটি অনুসরণকারী পরিবর্তনগুলিকে সমর্থন করার জন্য প্রথম কম্পাইলার সংস্করণ নির্দেশ করে।
সংস্করণ 2.40
কোনোটিই নয়।
সংস্করণ 2.39 (কার্যকরী নিরাপত্তা প্রকাশ)
কোনোটিই নয়।
সংস্করণ 2.36
কোনোটিই নয়।
সংস্করণ 2.35
স্ট্রিং-টু বেস হ্যান্ডলিং (XCS-2420) অন্যান্য XC কম্পাইলারের সাথে সামঞ্জস্য নিশ্চিত করার জন্য, XC8 স্ট্রিং-টু ফাংশন, যেমন strtol () ইত্যাদি, আর একটি ইনপুট স্ট্রিং রূপান্তর করার চেষ্টা করবে না যদি নির্দিষ্ট করা বেসটি 36-এর থেকে বড় হয় এবং এর পরিবর্তে EINVAL-এ errno সেট করবে। এই বেস মান অতিক্রম করা হলে সি স্ট্যান্ডার্ড ফাংশনগুলির আচরণ নির্দিষ্ট করে না।
অনুপযুক্ত গতি অপ্টিমাইজেশান লেভেল 3 অপ্টিমাইজেশান (-03) নির্বাচন করার সময় পদ্ধতিগত বিমূর্ততা অপ্টিমাইজেশান সক্রিয় করা হচ্ছে। এই অপ্টিমাইজেশানগুলি কোডের গতির খরচে কোডের আকার হ্রাস করে, তাই করা উচিত ছিল না। এই অপ্টিমাইজেশান স্তর ব্যবহার করা প্রকল্পগুলি এই রিলিজের সাথে তৈরি করার সময় কোডের আকার এবং কার্যকর করার গতিতে পার্থক্য দেখতে পারে।
লাইব্রেরি কার্যকারিতা অনেক স্ট্যান্ডার্ড সি লাইব্রেরি ফাংশনের কোড এখন মাইক্রোচিপের ইউনিফাইড স্ট্যান্ডার্ড লাইব্রেরি থেকে এসেছে, যা কিছু পরিস্থিতিতে পূর্বের avr-libc লাইব্রেরির তুলনায় ভিন্ন আচরণ প্রদর্শন করতে পারে। প্রাক্তন জন্যampতাই, ফ্লোট-ফরম্যাট স্পেসিফায়ারের জন্য ফরম্যাট করা IO সমর্থন চালু করতে lprintf_flt লাইব্রেরিতে (-print _flt বিকল্প) লিঙ্ক করার আর প্রয়োজন নেই। মাইক্রোচিপ ইউনিফাইড স্ট্যান্ডার্ড লাইব্রেরির স্মার্ট আইও বৈশিষ্ট্যগুলি এই বিকল্পটিকে অপ্রয়োজনীয় করে তোলে। উপরন্তু, স্ট্রিং এবং মেমরি ফাংশনগুলির জন্য _p প্রত্যয়যুক্ত রুটিনগুলির ব্যবহার (যেমন strcpy_P () ইত্যাদি. যখন const-data-in-program-memory বৈশিষ্ট্য সক্রিয় থাকে তখন স্ট্যান্ডার্ড C রুটিন (যেমন strcpy ()) এই ধরনের ডেটার সাথে সঠিকভাবে কাজ করবে।
সংস্করণ 2.32
কোনোটিই নয়।
সংস্করণ 2.31
কোনোটিই নয়।
সংস্করণ 2.30
কোনোটিই নয়।
সংস্করণ 2.29 (কার্যকরী নিরাপত্তা প্রকাশ)
কোনোটিই নয়।
সংস্করণ 2.20
DFP লেআউট পরিবর্তন করা হয়েছে কম্পাইলার এখন DFPs (ডিভাইস ফ্যামিলি প্যাক) দ্বারা ব্যবহৃত একটি ভিন্ন লেআউট অনুমান করে। এর অর্থ হল একটি পুরানো DFP এই রিলিজের সাথে কাজ নাও করতে পারে এবং পুরানো কম্পাইলাররা সর্বশেষ DFP ব্যবহার করতে সক্ষম হবে না।
সংস্করণ 2.19 (কার্যকরী নিরাপত্তা প্রকাশ)
কোনোটিই নয়।
সংস্করণ 2.10
কোনোটিই নয়
সংস্করণ 2.05
প্রোগ্রাম মেমরিতে কনস্ট অবজেক্ট মনে রাখবেন যে ডিফল্টরূপে, const-যোগ্য বস্তুগুলিকে প্রোগ্রাম মেমরিতে রাখা হবে এবং অ্যাক্সেস করা হবে (যেমন এখানে বর্ণনা করা হয়েছে)। এটি আপনার প্রকল্পের আকার এবং সম্পাদনের গতিকে প্রভাবিত করবে, তবে RAM ব্যবহার কমাতে হবে। এই বৈশিষ্ট্যটি নিষ্ক্রিয় করা যেতে পারে, যদি প্রয়োজন হয়, -mnoconst- da ta-in-progmem বিকল্পটি ব্যবহার করে।
সংস্করণ 2.00
কনফিগারেশন ফিউজ ডিভাইস কনফিগারেশন ফিউজগুলি এখন একটি কনফিগারেশন প্র্যাগমা ব্যবহার করে প্রোগ্রাম করা যেতে পারে এবং ফিউজ অবস্থা নির্দিষ্ট করার জন্য সেটিং-ভ্যালু জোড়া দ্বারা অনুসরণ করা হয়, যেমন
#pragma কনফিগারেশন WDT0N = SET
#pragma কনফিগারেশন B0DLEVEL = B0DLEVEL_4V3
পরম বস্তু এবং ফাংশন অবজেক্ট এবং ফাংশন এখন মেমরির নির্দিষ্ট ঠিকানায় CCI _at (ঠিকানা) স্পেসিফায়ার ব্যবহার করে স্থাপন করা যেতে পারে, যেমনample: # অন্তর্ভুক্ত int foobar at(Ox800100); char at(Ox250) get ID(int offset) { … } এই স্পেসিফায়ারের আর্গুমেন্টটি অবশ্যই একটি ধ্রুবক হতে হবে যা ঠিকানাটি প্রতিনিধিত্ব করে যেখানে প্রথম বাইট বা নির্দেশটি স্থাপন করা হবে। RAM ঠিকানাগুলি 0x800000 অফসেট ব্যবহার করে নির্দেশিত হয়। এই বৈশিষ্ট্যটি ব্যবহার করতে CCI সক্ষম করুন৷
নতুন ইন্টারাপ্ট ফাংশন সিনট্যাক্স কম্পাইলার এখন সিসিআই ইন্টারাপ্ট (সংখ্যা) স্পেসিফায়ার গ্রহণ করে যে সি ফাংশনগুলি ইন্টারাপ্ট হ্যান্ডলার। স্পেসিফায়ার একটি ইন্টারাপ্ট নম্বর নেয়, যেমনample: # অন্তর্ভুক্ত void interrupt(SPI STC_ vect _num) spi Isr(void) { … }
স্থায়ী সমস্যা
নিম্নলিখিত সংশোধন করা হয়েছে যে কম্পাইলার করা হয়েছে. এগুলি জেনারেট করা কোডের বাগগুলি ঠিক করতে পারে বা ব্যবহারকারীর নির্দেশিকা দ্বারা উদ্দিষ্ট বা নির্দিষ্ট করা কম্পাইলারের ক্রিয়াকলাপকে পরিবর্তন করতে পারে। উপশিরোনামের সংস্করণ নম্বরটি নির্দেশ করে যে প্রথম কম্পাইলার সংস্করণটি অনুসরণ করা সমস্যার সমাধান রয়েছে। শিরোনামে বন্ধনীযুক্ত লেবেল (গুলি) হল ট্র্যাকিং ডাটাবেসে সেই সমস্যাটির সনাক্তকরণ। আপনি যদি সহায়তার সাথে যোগাযোগ করতে চান তবে এগুলি কার্যকর হতে পারে।
মনে রাখবেন যে ডিভাইসের সাথে সম্পর্কিত ডিভাইস ফ্যামিলি প্যাক (DFP) এ কিছু ডিভাইস-নির্দিষ্ট সমস্যা সংশোধন করা হয়েছে। DFP-এ করা পরিবর্তন এবং সর্বশেষ প্যাকগুলি ডাউনলোড করার জন্য MPLAB প্যাক ম্যানেজার দেখুন।
সংস্করণ 2.40
খুব শিথিল (XCS-2876) -mrelax বিকল্প ব্যবহার করার সময়, কম্পাইলার কিছু বিভাগ একসাথে বরাদ্দ করছিল না, যার ফলে কম অনুকূল কোড আকার ছিল। এটি নতুন MUSL লাইব্রেরি ব্যবহার করা কোড বা দুর্বল চিহ্নগুলির সাথে ঘটেছে৷
ম্যাপিং বৈশিষ্ট্যটি অক্ষম করা হয়নি যেমন সতর্কতায় বলা হয়েছে (XCS-2875) কস্ট-ডেটা-ইন-কনফিগ ম্যাপডপ্রোগমেম ফিচারটি কস্ট-ডেটা-ইন-প্রেম বৈশিষ্ট্যের উপর নির্ভরশীল। যদি cost-data-ipconfig-mapped-proem বৈশিষ্ট্যটি বিকল্পটি ব্যবহার করে স্পষ্টভাবে সক্রিয় করা হয় এবং cost-data-inprogmem বৈশিষ্ট্যটি নিষ্ক্রিয় করা হয়, তবে একটি সতর্ক বার্তা উল্লেখ করা সত্ত্বেও লিঙ্ক পদক্ষেপটি ব্যর্থ হয়েছে proem বৈশিষ্ট্য স্বয়ংক্রিয়ভাবে নিষ্ক্রিয় করা হয়েছে, যা সম্পূর্ণ সঠিক ছিল না। এই পরিস্থিতিতে const-data-in-config-mapped-proem বৈশিষ্ট্যটি এখন সম্পূর্ণরূপে নিষ্ক্রিয় করা হয়েছে।
সঠিকভাবে NVMCTRL (XCS-2848) অ্যাক্সেস করতে DFP পরিবর্তন হয় AVR64EA ডিভাইসগুলির দ্বারা ব্যবহৃত রানটাইম স্টার্টআপ কোডটি বিবেচনায় নেয়নি যে NVMCTRL রেজিস্টারটি কনফিগারেশন চেঞ্জ প্রোটেকশন (সিসিপি) এর অধীনে ছিল এবং কনস্ট-ডেটা-ইন কনফিগারেশন-প্রোএম কম্পাইলার দ্বারা ব্যবহৃত পৃষ্ঠায় IO SFR সেট করতে সক্ষম হয়নি। বৈশিষ্ট্য AVR-Ex_DFP সংস্করণ 2.2.55-এ করা পরিবর্তনগুলি রানটাইম স্টার্টআপ কোডটিকে এই রেজিস্টারে সঠিকভাবে লিখতে অনুমতি দেবে।
ফ্ল্যাশ ম্যাপিং এড়াতে DFP পরিবর্তন (XCS-2847) AVR128DA28/32/48/64 সিলিকন ইরাটা (DS80000882) এ রিপোর্ট করা ফ্ল্যাশ ম্যাপিং ডিভাইস বৈশিষ্ট্যের সাথে একটি সমস্যা সমাধানের জন্য কাজ করা হয়েছে। const-data-in-config-mapped-proem কম্পাইলার বৈশিষ্ট্যটি প্রভাবিত ডিভাইসগুলির জন্য ডিফল্টরূপে প্রয়োগ করা হবে না এবং এই পরিবর্তনটি AVR-Ex_DFP সংস্করণ 2.2.160-এ প্রদর্শিত হবে।
sinhf বা coshf দিয়ে ত্রুটি তৈরি করুন (XCS-2834) sinhf () বা coshf () লাইব্রেরি ফাংশন ব্যবহার করার প্রচেষ্টার ফলে একটি লিঙ্ক ত্রুটি দেখা দেয়, একটি অনির্ধারিত রেফারেন্স বর্ণনা করে। উল্লেখিত অনুপস্থিত ফাংশন এখন কম্পাইলার বিতরণে অন্তর্ভুক্ত করা হয়েছে।
nopa দিয়ে ত্রুটি তৈরি করুন (XCS-2833) একটি ফাংশনের সাথে nopa অ্যাট্রিবিউট ব্যবহার করে যার অ্যাসেম্বলারের নাম () হিসাবে ব্যবহার করে নির্দিষ্ট করা হয়েছে অ্যাসেম্বলার থেকে ট্রিগার করা ত্রুটির বার্তা। এই সমন্বয় সম্ভব নয়।
পয়েন্টার আর্গুমেন্ট সহ বিভিন্ন ফাংশন ব্যর্থতা (XCS-2755, XCS-2731) ভেরিয়েবল সংখ্যক আর্গুমেন্ট সহ ফাংশন 24-বিট (_মেমো টাইপ) পয়েন্টারগুলি পরিবর্তনশীল আর্গুমেন্ট তালিকায় পাস করার আশা করে যখন খরচ-ডেটা-ইন-প্রোম বৈশিষ্ট্যটি সক্রিয় থাকে। যে আর্গুমেন্টগুলি ডেটা মেমরির নির্দেশক ছিল সেগুলি 16-বিট অবজেক্ট হিসাবে পাস করা হয়েছিল, যখন সেগুলি শেষ পর্যন্ত পড়া হয় তখন কোড ব্যর্থতার কারণ হয়৷ যখন কনস ডেটা- ইন-প্রেম বৈশিষ্ট্য সক্রিয় করা হয়, তখন সমস্ত 16-বিট পয়েন্টার আর্গুমেন্ট এখন 24-বিট পয়েন্টারে রূপান্তরিত হয়। strtoxxx লাইব্রেরি ফাংশন ব্যর্থ (XCS-2620) যখন const-data-in-proem বৈশিষ্ট্য সক্রিয় করা হয়েছিল, তখন স্ট্রটক্সক্স লাইব্রেরি ফাংশনে এন্টার প্যারামিটারটি প্রোগ্রাম মেমরিতে না থাকা সোর্স স্ট্রিং আর্গুমেন্টের জন্য সঠিকভাবে আপডেট করা হয়নি।
অবৈধ কাস্টের জন্য সতর্কতা (XCS-2612) কম্পাইলার এখন একটি ত্রুটি জারি করবে যদি কস্ট-ইন-প্রোম বৈশিষ্ট্য সক্রিয় করা থাকে এবং একটি স্ট্রিং লিটারেলের ঠিকানাটি স্পষ্টভাবে ডেটা ঠিকানার স্থানে (কনস্ট কোয়ালিফায়ার ড্রপ করা হয়), যেমনample, (uint8 t *) "হ্যালো ওয়ার্ল্ড!"। একটি সতর্কতা ইস্যু হয় যদি ঠিকানাটি অবৈধ হতে পারে যখন একটি const ডেটা পয়েন্টার স্পষ্টভাবে ডেটা ঠিকানার স্থানে নিক্ষেপ করা হয়।
অপ্রবর্তিত কনস্ট অবজেক্টের বসানো (XCS-2408) Uninitialized const এবং const v olatile অবজেক্টগুলিকে এমন ডিভাইসগুলিতে প্রোগ্রাম মেমরিতে স্থাপন করা হয়নি যেগুলি তাদের প্রোগ্রাম মেমরির সমস্ত বা অংশকে ডেটা ঠিকানার জায়গায় ম্যাপ করে। এই ডিভাইসগুলির জন্য, এই ধরনের বস্তুগুলি এখন প্রোগ্রাম মেমরিতে স্থাপন করা হয়, যা তাদের অপারেশনকে অন্যান্য ডিভাইসের সাথে সামঞ্জস্যপূর্ণ করে তোলে।
সংস্করণ 2.39 (কার্যকরী নিরাপত্তা প্রকাশ)
কোনোটিই নয়।
সংস্করণ 2.36
বিলম্ব করার সময় ত্রুটি (XCS-2774) ডিফল্ট ফ্রি মোড অপ্টিমাইজেশানে ছোটখাটো পরিবর্তনগুলি অন্তর্নির্মিত ফাংশনগুলির বিলম্বে অপারেন্ড এক্সপ্রেশনগুলির অবিচ্ছিন্ন ভাঁজকে বাধা দেয়, যার ফলে সেগুলি অ-যোগাযোগ হিসাবে বিবেচিত হয় এবং ত্রুটিটিকে ট্রিগার করে: _buil tin avr delay_ চক্র প্রত্যাশা করে ac oppile সময় পূর্ণসংখ্যা ধ্রুবক।
সংস্করণ 2.35
_at (XCS-2653) ব্যবহার করে ধারাবাহিক বরাদ্দ একই নামের সাথে এবং () ব্যবহার করে একটি বিভাগে একাধিক বস্তুর স্থানগুলির ধারাবাহিক বরাদ্দ সঠিকভাবে কাজ করেনি। প্রাক্তন জন্যample: constchararrl [ ] at tri butte (sect on(“.misses”))) at (Ox50 0 ) = {Oxo , Ox CD} ; খরচ char arr2[ ] at tri butte ((section(“.my s eke”)))) = {Oxen, Ox FE}; aril এর পরপরই arr2 বসানো উচিত ছিল।
বিভাগ শুরুর ঠিকানা নির্দিষ্ট করা হচ্ছে (XCS-2650) -ওয়াল, -বিভাগ-শুরু বিকল্পটি নীরবে মনোনীত শুরু ঠিকানায় বিভাগ স্থাপন করতে ব্যর্থ হয়েছে। এই সমস্যাটি যেকোন কাস্টম-নামকৃত বিভাগের জন্য সংশোধন করা হয়েছে; যাইহোক, এটি কোনো স্ট্যান্ডার্ড বিভাগের জন্য কাজ করবে না, যেমন . পাঠ্য বা bss, যা একটি -Wl, -T বিকল্প ব্যবহার করে স্থাপন করা আবশ্যক।
শিথিল করার সময় লিঙ্কার ক্র্যাশ হয় (XCS-2647) যখন -রিলাক্স অপ্টিমাইজেশান সক্ষম করা হয়েছিল এবং সেখানে কোড বা ডেটা বিভাগ ছিল যা উপলব্ধ মেমরিতে মাপসই হয়নি, লিঙ্কারটি ক্র্যাশ হয়েছিল। এখন, এই ধরনের পরিস্থিতিতে, পরিবর্তে ত্রুটি বার্তা জারি করা হয়।
খারাপ EEPROM অ্যাক্সেস (XCS-2629) লেপ্রোমা _read_ ব্লক রুটিন মেগা ডিভাইসে সঠিকভাবে কাজ করেনি যখন -monist-data-in-proem বিকল্পটি সক্রিয় করা হয়েছিল (যা ডিফল্ট অবস্থা), ফলে EEPROM মেমরি সঠিকভাবে পড়া যাচ্ছে না।
অবৈধ মেমরি বরাদ্দ (XCS-2593, XCS-2651) যখন -টেক্সট বা -টাটা লিঙ্কার বিকল্প (উদাহরণস্বরূপample একটি -Wl ড্রাইভার বিকল্প ব্যবহার করে পাস করা হয়েছে) নির্দিষ্ট করা হয়েছে, সংশ্লিষ্ট পাঠ্য/ডেটা অঞ্চলের উত্স আপডেট করা হয়েছে; যাইহোক, শেষ ঠিকানাটি সেই অনুযায়ী সামঞ্জস্য করা হয়নি, যার ফলে অঞ্চলটি লক্ষ্য ডিভাইসের মেমরির সীমা ছাড়িয়ে যেতে পারে।
অবৈধ ATtiny ইন্টারাপ্ট কোড (XCS-2465) যখন Tatin ডিভাইসের জন্য তৈরি করা হয় এবং অপ্টিমাইজেশানগুলি নিষ্ক্রিয় করা হয় (-00), তখন ইন্টারাপ্ট ফাংশনগুলি পরিসীমা অ্যাসেম্বলার বার্তাগুলির বাইরে অপারেন্ডকে ট্রিগার করে থাকতে পারে।
বিকল্পগুলি পাস করা হচ্ছে না (XCS-2452) একাধিক, কমা-বিচ্ছিন্ন লিঙ্কার বিকল্পগুলির সাথে -Wl বিকল্পটি ব্যবহার করার সময়, সমস্ত লিঙ্কার বিকল্পগুলি লিঙ্কারের কাছে পাঠানো হচ্ছে না।
পরোক্ষভাবে প্রোগ্রাম মেমরি পড়ার ত্রুটি (XCS-2450) কিছু ক্ষেত্রে, একটি পয়েন্টার থেকে প্রোগ্রাম মেমরিতে একটি দুই বাইট মান পড়ার সময় কম্পাইলার একটি অভ্যন্তরীণ ত্রুটি (অপরিচিত insn) তৈরি করে।
সংস্করণ 2.32
লাইব্রেরির দ্বিতীয় অ্যাক্সেস ব্যর্থ (XCS-2381) xc8-ar-এর উইন্ডোজ সংস্করণটি আহ্বান করা হচ্ছে। exe লাইব্রেরি আর্কাইভার একটি বিদ্যমান লাইব্রেরি সংরক্ষণাগার অ্যাক্সেস করতে দ্বিতীয়বার ত্রুটি বার্তার নাম পরিবর্তন করতে অক্ষম হয়ে ব্যর্থ হতে পারে।
সংস্করণ 2.31
অব্যক্ত কম্পাইলার ব্যর্থতা (XCS-2367) যখন উইন্ডোজ প্ল্যাটফর্মে চলছে যেখানে সিস্টেম অস্থায়ী ডিরেক্টরিটি এমন একটি পাথে সেট করেছে যাতে একটি ডট' অন্তর্ভুক্ত থাকে।' অক্ষর, কম্পাইলার কার্যকর করতে ব্যর্থ হতে পারে।
সংস্করণ 2.30
বৈশ্বিক লেবেল রূপরেখার পরে ভুল স্থানান্তরিত হয়েছে (XCS-2299) হাতে লেখা অ্যাসেম্বলি কোড যা অ্যাসেম্বলি সিকোয়েন্সের মধ্যে গ্লোবাল লেবেল স্থাপন করে যা পদ্ধতিগত বিমূর্ততা দ্বারা ফ্যাক্টর করা হয় তা সঠিকভাবে পুনঃস্থাপন করা হয়নি।
একটি শিথিল ক্র্যাশ (XCS-2287) -মেরল্যাড বিকল্পটি ব্যবহার করার ফলে লিঙ্কারটি ক্র্যাশ হতে পারে যখন টেল জাম্প রিলাক্সেশন অপ্টিমাইজেশানগুলি ret নির্দেশনাকে অপসারণের চেষ্টা করেছিল যা একটি বিভাগের শেষে ছিল না।
মান হিসাবে লেবেল অপ্টিমাইজ করার সময় ক্র্যাশ (XCS-2282) কোড "মান হিসাবে লেবেল" ব্যবহার করে GNU C ভাষা এক্সটেনশন পদ্ধতিগত বিমূর্তকরণ অপ্টিমাইজেশনগুলিকে ক্র্যাশ করে, একটি আউটলাইনড VMA রেঞ্জ স্প্যান ফিক্সআপ ত্রুটি সহ।
এত কনস্ট নয় (XCS-2271) থেকে শুরু () এবং অন্যান্য ফাংশনের প্রোটোটাইপ -monist-data inprogmem বৈশিষ্ট্যটি নিষ্ক্রিয় থাকলে ফেরত স্ট্রিং পয়েন্টারগুলিতে অ-মানক খরচ যোগ্যতা আর নির্দিষ্ট করা হবে না। মনে রাখবেন যে avrxmega3 এবং avertin ডিভাইসগুলির সাথে, এই বৈশিষ্ট্যটি স্থায়ীভাবে সক্রিয় করা হয়েছে৷
হারিয়ে যাওয়া ইনিশিয়ালাইজার (XCS-2269) যখন একটি অনুবাদ ইউনিটে একাধিক ভেরিয়েবল একটি বিভাগে স্থাপন করা হয় (বিভাগ বা বৈশিষ্ট্য ব্যবহার করে ((বিভাগ))) এবং প্রথম এই ধরনের ভেরিয়েবলটি শূন্য শুরু করা হয়েছিল বা একটি ইনিশিয়ালাইজার ছিল না, একই অনুবাদ ইউনিটে অন্যান্য ভেরিয়েবলের জন্য ইনিশিয়ালাইজার একই বিভাগে স্থাপন করা হয়েছে যে হারিয়ে গেছে.
সংস্করণ 2.29 (কার্যকরী নিরাপত্তা প্রকাশ)
কোনোটিই নয়।
সংস্করণ 2.20
দীর্ঘ কমান্ডের সাথে ত্রুটি (XCS-1983) একটি AVR টার্গেট ব্যবহার করার সময়, কম্পাইলার একটি দিয়ে বন্ধ হয়ে থাকতে পারে file ত্রুটি পাওয়া যায় নি, যদি কমান্ড লাইনটি অত্যন্ত বড় এবং বিশেষ অক্ষর যেমন একটি উদ্ধৃতি, ব্যাকস্ল্যাশ ইত্যাদি থাকে।
আনঅ্যাসাইন করা রোডাটা বিভাগ (XCS-1920) AVR লিঙ্কার avrxmega3 এবং avrtiny আর্কিটেকচারের জন্য তৈরি করার সময় কাস্টম রোডাটা বিভাগের জন্য মেমরি বরাদ্দ করতে ব্যর্থ হয়েছে, সম্ভাব্যভাবে মেমরি ওভারল্যাপ ত্রুটি তৈরি করছে
সংস্করণ 2.19 (কার্যকরী নিরাপত্তা প্রকাশ)
কোনোটিই নয়।
সংস্করণ 2.10
স্থানান্তর ব্যর্থতা (XCS-1891) সেরা ফিট বরাদ্দকারী লিঙ্কার শিথিলকরণের পরে বিভাগগুলির মধ্যে মেমরির 'গর্ত' রেখেছিল। ফ্র্যাগমেন্টিং মেমরি ছাড়াও, এটি পিসি-রিলেটিভ জাম্প বা কল সীমার বাইরে হয়ে যাওয়ার সাথে সম্পর্কিত লিঙ্কার স্থানান্তর ব্যর্থ হওয়ার সম্ভাবনা বাড়িয়ে দেয়।
নির্দেশাবলী শিথিলকরণ দ্বারা রূপান্তরিত হয় না (XCS-1889) লিঙ্কার শিথিলতা জাম্প বা কল নির্দেশাবলীর জন্য ঘটেনি যার লক্ষ্য শিথিল হলে পৌঁছানো যায়।
অনুপস্থিত কার্যকারিতা (XCSE-388) থেকে বেশ কিছু সংজ্ঞা , যেমন clock_ div_t এবং clock_prescale_set (), ATmega324PB, ATmega328PB, ATtiny441, এবং ATtiny841 সহ ডিভাইসগুলির জন্য সংজ্ঞায়িত করা হয়নি।
অনুপস্থিত ম্যাক্রো প্রিপ্রসেসর ম্যাক্রো_ xcs _MODE_, _xcs VERSION, _xc, এবং xcs কম্পাইলার দ্বারা স্বয়ংক্রিয়ভাবে সংজ্ঞায়িত করা হয়নি। এগুলো এখন পাওয়া যাচ্ছে।
সংস্করণ 2.05
অভ্যন্তরীণ কম্পাইলার ত্রুটি (XCS-1822) উইন্ডোজের অধীনে বিল্ডিং করার সময়, কোড অপ্টিমাইজ করার সময় একটি অভ্যন্তরীণ কম্পাইলার ত্রুটি উত্পাদিত হতে পারে।
RAM ওভারফ্লো সনাক্ত করা যায়নি (XCS-1800, XCS-1796) যে প্রোগ্রামগুলি উপলব্ধ র্যামকে অতিক্রম করেছে সেগুলি কিছু পরিস্থিতিতে কম্পাইলার দ্বারা সনাক্ত করা যায়নি, যার ফলে একটি রানটাইম কোড ব্যর্থ হয়েছে।
বাদ দেওয়া ফ্ল্যাশ মেমরি (XCS-1792) avrxmega3 এবং avrtiny ডিভাইসের জন্য, MPLAB X IDE দ্বারা ফ্ল্যাশ মেমরির অংশগুলি অন-প্রোগ্রাম করা থাকতে পারে।
প্রধান কার্যকর করতে ব্যর্থ (XCS-1788) কিছু পরিস্থিতিতে যেখানে প্রোগ্রামটির কোনো গ্লোবাল ভেরিয়েবল সংজ্ঞায়িত করা হয়নি, রানটাইম স্টার্টআপ কোডটি প্রস্থান করেনি এবং প্রধান () ফাংশনটি কখনই পৌঁছায়নি।
ভুল মেমরি তথ্য (XCS-1787) avrxmega3 এবং avrtiny ডিভাইসের জন্য, avr-সাইজ প্রোগ্রামটি রিপোর্ট করছিল যে শুধুমাত্র পঠনযোগ্য ডেটা প্রোগ্রাম মেমরির পরিবর্তে RAM ব্যবহার করছে।
ভুল প্রোগ্রাম মেমরি রিড (XCS-1783) ডেটা অ্যাড্রেস স্পেসে ম্যাপ করা প্রোগ্রাম মেমরি সহ ডিভাইসগুলির জন্য সংকলিত প্রকল্পগুলি এবং PROGMEM ম্যাক্রো/অ্যাট্রিবিউট ব্যবহার করে অবজেক্টগুলিকে সংজ্ঞায়িত করে ভুল ঠিকানা থেকে এই অবজেক্টগুলি পড়তে পারে৷
গুণাবলী সহ অভ্যন্তরীণ ত্রুটি (XCS-1773) আপনি যদি পয়েন্টার অবজেক্টের সাথে সংজ্ঞায়িত করেন তাহলে একটি অভ্যন্তরীণ ত্রুটি ঘটেছে
_at() বা attribute() টোকেন পয়েন্টার নাম এবং dereferenced type এর মধ্যে, যেমনampলে, চর *
_at ( 0x80015 0) cp; এই ধরনের কোড সম্মুখীন হলে একটি সতর্কতা জারি করা হয়.
প্রধান কার্যকর করতে ব্যর্থ (XCS-1780, XCS-1767, XCS-1754) EEPROM ভেরিয়েবল ব্যবহার করা বা কনফিগার প্রাগমা ব্যবহার করে সংজ্ঞায়িত ফিউজগুলি মূল () এ পৌঁছানোর আগে, রানটাইম স্টার্টআপ কোডে ভুল ডেটা প্রাথমিককরণ এবং/অথবা লক আপ প্রোগ্রাম এক্সিকিউশনের কারণ হতে পারে।
ছোট ডিভাইসের সাথে ফিউজ ত্রুটি (XCS-1778, XCS-1742) attiny4/5/9/10/20/40 ডিভাইসগুলির হেডারে একটি ভুল ফিউজ দৈর্ঘ্য নির্দিষ্ট করা ছিল files যা ফিউজ সংজ্ঞায়িত কোড তৈরি করার চেষ্টা করার সময় লিঙ্কার ত্রুটির দিকে পরিচালিত করে।
সেগমেন্টেশন ফল্ট (XCS-1777) একটি বিরতিহীন সেগমেন্টেশন ত্রুটি সংশোধন করা হয়েছে৷
অ্যাসেম্বলার ক্র্যাশ (XCS-1761) উবুন্টু 18-এর অধীনে কম্পাইলার চালানোর সময় avr-as অ্যাসেম্বলার ক্র্যাশ হয়ে যেতে পারে।
বস্তু সাফ করা হয়নি (XCS-1752) রানটাইম স্টার্টআপ কোড দ্বারা শুরু না হওয়া স্ট্যাটিক স্টোরেজ সময়কাল অবজেক্টগুলি সাফ করা নাও হতে পারে।
বিরোধপূর্ণ ডিভাইস স্পেসিফিকেশন উপেক্ষা করা হয়েছে (XCS-1749) একাধিক ডিভাইস স্পেসিফিকেশন বিকল্প ব্যবহার করা এবং বিভিন্ন ডিভাইস নির্দেশ করার সময় কম্পাইলার একটি ত্রুটি তৈরি করছিল না।
গাদা দ্বারা মেমরি দুর্নীতি (XCS-1748) heap_ start চিহ্নটি ভুলভাবে সেট করা হয়েছিল, যার ফলে সাধারণ ভেরিয়েবলগুলি হিপ দ্বারা দূষিত হওয়ার সম্ভাবনা দেখা দেয়।
লিঙ্কার স্থানান্তর ত্রুটি (XCS-1739) একটি লিঙ্কার স্থানান্তর ত্রুটি নির্গত হতে পারে যখন কোডে একটি rjmp বা rcal থাকে যার লক্ষ্য ঠিক 4k বাইট দূরে থাকে৷
সংস্করণ 2.00
কোনোটিই নয়।
পরিচিত সমস্যা
নিম্নলিখিত কম্পাইলারের অপারেশন সীমাবদ্ধতা আছে. এই সাধারণ কোডিং সীমাবদ্ধতা হতে পারে, বা
ব্যবহারকারীর ম্যানুয়ালটিতে থাকা তথ্য থেকে বিচ্যুতি। শিরোনামে বন্ধনীযুক্ত লেবেল (গুলি) হল ট্র্যাকিং ডাটাবেসে সেই সমস্যাটির সনাক্তকরণ। আপনি যদি সহায়তার সাথে যোগাযোগ করতে চান তবে এটি উপকৃত হতে পারে। যে আইটেমগুলিতে লেবেল নেই সেগুলি হল সীমাবদ্ধতা যা মোড অপারেন্ডি বর্ণনা করে এবং যা স্থায়ীভাবে কার্যকর থাকতে পারে৷
MPLAB X IDE ইন্টিগ্রেশন
MPLAB IDE ইন্টিগ্রেশন যদি MPLAB IDE থেকে কম্পাইলার ব্যবহার করতে হয়, তাহলে কম্পাইলার ইনস্টল করার আগে আপনাকে অবশ্যই MPLAB IDE ইনস্টল করতে হবে।
কোড জেনারেশন
PA মেমরি বরাদ্দ ব্যর্থতা (XCS-2881) পদ্ধতিগত বিমূর্ততা অপ্টিমাইজার ব্যবহার করার সময়, লিঙ্কার মেমরি বরাদ্দ ত্রুটি রিপোর্ট করতে পারে যখন কোডের আকার ডিভাইসে উপলব্ধ প্রোগ্রাম মেমরির পরিমাণের কাছাকাছি হয়, যদিও প্রোগ্রামটি উপলব্ধ স্থানের সাথে মানানসই হতে পারে।
এত স্মার্ট স্মার্ট-আইও নয় (XCS-2872) কম্পাইলারের স্মার্ট-আইও বৈশিষ্ট্যটি স্প্রিন্ট ফাংশনের জন্য বৈধ কিন্তু উপ-অনুকূল কোড তৈরি করবে যদি উপকূল-ডেটা-ইন-প্রেম বৈশিষ্ট্যটি নিষ্ক্রিয় করা থাকে বা ডিভাইসটির সমস্ত ফ্ল্যাশ ডেটা মেমরিতে ম্যাপ করা থাকে।
এমনকি কম স্মার্ট Smart-IO (XCS-2869) কম্পাইলারের স্মার্ট-আইও বৈশিষ্ট্যটি বৈধ কিন্তু সাবঅপ্টিমাল কোড তৈরি করবে যখন -floe এবং -fno-buil টিন বিকল্প উভয়ই ব্যবহার করা হবে।
সাবঅপ্টিমাল রিড-অনলি ডেটা বসানো (XCS-2849) লিঙ্কার বর্তমানে APPCODE এবং APPDATA মেমরি বিভাগ সম্পর্কে সচেতন নয়, বা মেমরি মানচিত্রে [No-]Read-While-Write বিভাগ সম্পর্কেও সচেতন নয়। ফলস্বরূপ, লিঙ্কার মেমরির একটি অনুপযুক্ত এলাকায় শুধুমাত্র পঠনযোগ্য ডেটা বরাদ্দ করতে পারে এমন একটি ছোট সম্ভাবনা রয়েছে। উপকূল-ডেটা-ইন-প্রাগমা বৈশিষ্ট্য সক্রিয় থাকলে ডেটা ভুল স্থানান্তরিত হওয়ার সম্ভাবনা বৃদ্ধি পায়, বিশেষ করে যদি উপকূল-ডেটা-ইন-কনফিগ-ম্যাপড-প্রোম বৈশিষ্ট্যটিও সক্রিয় থাকে। প্রয়োজনে এই বৈশিষ্ট্যগুলি নিষ্ক্রিয় করা যেতে পারে।
অবজেক্ট file প্রসেসিং অর্ডার (XCS-2863) যে ক্রমে বস্তু fileলিংকারের দ্বারা s প্রক্রিয়া করা হবে পদ্ধতিগত বিমূর্ততা অপ্টিমাইজেশন (-mpa বিকল্প) ব্যবহারের উপর ভিত্তি করে ভিন্ন হতে পারে। এটি শুধুমাত্র কোডকে প্রভাবিত করবে যা একাধিক মডিউল জুড়ে দুর্বল ফাংশন সংজ্ঞায়িত করে।
পরম সহ লিঙ্কার ত্রুটি (XCS-2777) যখন RAM এর শুরুতে একটি ঠিকানায় একটি অবজেক্টকে পরম করা হয় এবং শুরু না করা বস্তুগুলিকেও সংজ্ঞায়িত করা হয়, তখন একটি লিঙ্কার ত্রুটি ট্রিগার হতে পারে।
শর্ট ওয়েক-আপ আইডি (XCS-2775) ATA5700/2 ডিভাইসের জন্য, PHID0/1 রেজিস্টারগুলিকে 16 বিট চওড়ার পরিবর্তে শুধুমাত্র 32 বিট প্রশস্ত হিসাবে সংজ্ঞায়িত করা হয়।
চিহ্ন কল করার সময় লিঙ্কার ক্র্যাশ (XCS-2758) লিঙ্কারটি ক্র্যাশ হতে পারে যদি -merlad ড্রাইভার বিকল্পটি ব্যবহার করা হয় যখন সোর্স কোড একটি প্রতীক কল করে যা -Wl, -defsym লিঙ্কার বিকল্প ব্যবহার করে সংজ্ঞায়িত করা হয়েছে।
ভুল সূচনা (XCS-2679) কিছু গ্লোবাল/স্ট্যাটিক বাইট-আকারের বস্তুর প্রাথমিক মানগুলি ডেটা মেমরিতে কোথায় রাখা হয়েছে এবং রানটাইমে ভেরিয়েবলগুলি কোথায় অ্যাক্সেস করা হবে তার মধ্যে একটি পার্থক্য রয়েছে।
ভুলভাবে শুরু করা সেট খালি (XCS-2652) দৃষ্টান্তে যেখানে বিবৃত () দ্বারা রূপান্তরের জন্য একটি বিষয়ের স্ট্রিংটিতে সূচক বিন্যাসে একটি ফ্লোটিং-পয়েন্ট সংখ্যা বলে মনে হচ্ছে এবং একটি ই অক্ষরের পরে একটি অপ্রত্যাশিত অক্ষর রয়েছে, তাহলে খালি ঠিকানা, যদি দেওয়া হয়, তাহলে অক্ষরটিকে নির্দেশ করবে e এবং e নিজেই নয়। প্রাক্তন জন্যample: বিবৃত ("hooey", খালি); x অক্ষরের দিকে ইশারা খালি হবে।
খারাপ পরোক্ষ ফাংশন কল (XCS-2628) কিছু ক্ষেত্রে, কাঠামোর অংশ হিসাবে সংরক্ষিত ফাংশন পয়েন্টারের মাধ্যমে করা ফাংশন কলগুলি ব্যর্থ হতে পারে।
strtof হেক্সাডেসিমেল ফ্লোটের জন্য শূন্য প্রদান করে (XCS-2626) লাইব্রেরি ফাংশন strtof () et al এবং scanf () et al, সর্বদা একটি হেক্সাডেসিমেল ফ্লোটিং-পয়েন্ট সংখ্যা রূপান্তর করবে যা একটি সূচক নির্দিষ্ট করে না
শূন্য প্রাক্তন জন্যample: stator ("পেঁচা", & খালি); মান 0 ফেরত দেবে, 1 নয়।
ভুল স্ট্যাক অ্যাডভাইজার মেসেজিং (XCS-2542, XCS-2541) কিছু কিছু ক্ষেত্রে, ব্যবহৃত পুনরাবৃত্ত বা অনির্ধারিত স্ট্যাক সম্পর্কিত স্ট্যাক উপদেষ্টা সতর্কতা (সম্ভবত alloca() ব্যবহারের মাধ্যমে) নির্গত হয় না।
ডুপ্লিকেট ইন্টারাপ্ট কোডের সাথে ব্যর্থতা (XCS-2421) যেখানে একাধিক ইন্টারাপ্ট ফাংশন একই বডি থাকে, সেখানে কম্পাইলারের একটি ইন্টারাপ্ট ফাংশনের জন্য অন্যটিকে কল করার আউটপুট থাকতে পারে। এর ফলে সমস্ত কল-ক্লোবারড রেজিস্টার অপ্রয়োজনীয়ভাবে সংরক্ষণ করা হবে, এবং বর্তমান ইন্টারাপ্ট হ্যান্ডলারের উপসংহার চালানোর আগেই ইন্টারাপ্টগুলি সক্রিয় করা হবে, যা কোড ব্যর্থতার দিকে নিয়ে যেতে পারে।
কনস্ট অবজেক্টগুলি প্রোগ্রাম মেমরিতে নেই (XCS-2408) avrxmega3 এবং avertins প্রকল্পের জন্য unidealized const অবজেক্টগুলি ডেটা মেমরিতে স্থাপন করা হয়, যদিও একটি সতর্কতা নির্দেশ করে যে সেগুলি প্রোগ্রাম মেমরিতে স্থাপন করা হয়েছে। এটি এমন ডিভাইসগুলিকে প্রভাবিত করবে না যেগুলির ডেটা মেমরি স্পেসে ম্যাপ করা প্রোগ্রাম মেমরি নেই, বা এটি আরম্ভ করা কোনো বস্তুকে প্রভাবিত করবে না।
অবৈধ DFP পাথের সাথে খারাপ আউটপুট (XCS-2376) যদি কম্পাইলারটিকে একটি অবৈধ DFP পাথ এবং একটি 'স্পেক' দিয়ে আহ্বান করা হয় file নির্বাচিত ডিভাইসের জন্য বিদ্যমান, কম্পাইলার অনুপস্থিত ডিভাইস ফ্যামিলি প্যাক রিপোর্ট করছে না এবং পরিবর্তে 'স্পেক' নির্বাচন করছে file, যা তখন একটি অবৈধ আউটপুট হতে পারে। 'বিশেষ' files বিতরণ করা DFP-এর সাথে আপ টু ডেট নাও হতে পারে এবং শুধুমাত্র অভ্যন্তরীণ কম্পাইলার পরীক্ষার সাথে ব্যবহারের উদ্দেশ্যে ছিল।
মেমরি ওভারল্যাপ সনাক্ত করা যায়নি (XCS-1966) কম্পাইলার একটি ঠিকানায় পরম তৈরি বস্তুর মেমরি ওভারল্যাপ সনাক্ত করছে না (এট () এর মাধ্যমে) এবং বিভাগ () স্পেসিফায়ার ব্যবহার করে অন্যান্য অবজেক্ট এবং যেগুলি একই ঠিকানার সাথে লিঙ্ক করা হয়েছে।
লাইব্রেরি ফাংশন এবং _meme (XCS-1763) এর সাথে ব্যর্থতা _memo অ্যাড্রেস স্পেসে একটি যুক্তি সহ লিম্বিক ফ্লোট ফাংশন বলা হয় ব্যর্থ হতে পারে। মনে রাখবেন যে লাইব্রেরি রুটিনগুলি কিছু সি অপারেটর থেকে কল করা হয়, তাই, প্রাক্তন জন্যample, নিম্নলিখিত কোড প্রভাবিত হয়: ফেরত regFloatVar > memxFloatVar;
সীমিত লিম্বিক বাস্তবায়ন (AVRTC-731) ATTiny4/5/9/10/20/40 পণ্যের জন্য, লিম্বিকে স্ট্যান্ডার্ড সি/ম্যাথ লাইব্রেরি বাস্তবায়ন খুবই সীমিত বা উপস্থিত নয়।
প্রোগ্রাম মেমরি সীমাবদ্ধতা (AVRTC-732) 128 kb এর বেশি প্রোগ্রাম মেমরির ছবি টুলচেন দ্বারা সমর্থিত; যাইহোক, -রিলাক্স বিকল্পটি ব্যবহার করা হলে প্রয়োজনীয় ফাংশন স্টাব তৈরি করার পরিবর্তে শিথিলতা ছাড়াই এবং সহায়ক ত্রুটি বার্তা ছাড়াই লিঙ্কার বাতিল হওয়ার ঘটনাগুলি পরিচিত।
নামের স্থানের সীমাবদ্ধতা (AVRTC-733) ব্যবহারকারীর নির্দেশিকা বিভাগে উল্লেখ করা সীমাবদ্ধতা সাপেক্ষে, নাম দেওয়া ঠিকানার স্থানগুলি টুলচেন দ্বারা সমর্থিত।
সময় অঞ্চল দ্য লাইব্রেরি ফাংশনগুলি GMT অনুমান করে এবং স্থানীয় সময় অঞ্চল সমর্থন করে না, এইভাবে স্থানীয় সময় () gummite (), প্রাক্তনের জন্য একই সময়ে ফিরে আসবেampলে
গ্রাহক সমর্থন
file:///Applications/microehipA VR এর জন্য /xc8/v 2 .40/docs/Read me_X C 8_ htm
দলিল/সম্পদ
![]() |
MICROCHIP MPLAB XC8 C কম্পাইলার সফটওয়্যার [পিডিএফ] মালিকের ম্যানুয়াল MPLAB XC8 C, MPLAB XC8 C কম্পাইলার সফটওয়্যার, কম্পাইলার সফটওয়্যার, সফটওয়্যার |