MICROCHIP MPLAB XC8 C Software Compiler
ИН ҲУҶҶАТ МАЪЛУМОТҲОИ МУҲИМИ ТАЪРИБ КАРДАНИ MPLAB XC8 C-ро дарбар мегирад, ки ҲАНГОМИ ҲАДАФ ДОДАНИ ДАСТГӮҲҲОИ MICROCHIP AVR.
ИЛТИМОС ПЕШ АЗ КОР НАМУДАНИ ИН НАРМОМАРО ХОНЕД. БА ҚАЙДҲОИ БАРНОМАИ MPLAB XC8 C БАРОИ ҲУҶҶАТИ PIC БИНЕД, АГАР ШУМО АЗ ТАРБИЯ БАРОИ ДАСТГОҲҲОИ 8-БИТИ PIC истифода мебаред.
Барview
Муқаддима
Ин нашри компилятори Microchip MPLAB® XC8 C дорои якчанд хусусиятҳои нав, ислоҳи хатоҳо ва дастгирии дастгоҳи нав мебошад.
Санаи сохтан
Санаи расмии сохтани ин версияи компилятор 3 июли соли 2022 мебошад.
Версияи қаблӣ
Версияи қаблии компилятори MPLAB XC8 C 2.39 буд, компилятори функсионалии бехатарӣ, ки 27 январи соли 2022 сохта шудааст. Компилятори қаблии стандартӣ версияи 2.36 буд, ки 27 январи соли 2022 сохта шудааст.
Дастур оид ба бехатарии функсионалӣ
Ҳангоми харидани литсензияи бехатарии функсионалӣ Дастур оид ба бехатарии функсионалӣ барои тартибдиҳандаҳои MPLAB XC дар бастаи ҳуҷҷатҳо мавҷуд аст.
Литсензияҳо ва версияҳои компонентҳо
Compiler MPLAB® XC8 C барои абзорҳои AVR MCUs дар доираи GNU General Public License (GPL) навишта ва паҳн карда мешаванд, ки ин маънои онро дорад, ки рамзи сарчашмаи он озодона паҳн ва дастрас аст. Рамзи сарчашмаи асбобҳо дар зери GNU GPL метавонад аз Microchip алоҳида зеркашӣ карда шавад 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; Ubuntu 18.04; ва macOS 10.15.5. Бинарӣ барои Windows бо рамз имзо шудаанд. Бинарҳои барои mac OShave бо рамз имзо ва нотариус тасдиқ карда шудаанд.
Агар шумо сервери литсензияи шабакавиро иҷро кунед, барои ҷойгир кардани сервери литсензия танҳо компютерҳое истифода мешаванд, ки системаҳои оператсионии аз ҷониби компиляторҳо дастгирӣшаванда мебошанд. Аз версияи xclm 2.0, сервери литсензияи шабакавӣ метавонад дар платформаи Microsoft Windows Server насб карда шавад, аммо сервери литсензия лозим нест, ки дар версияи сервери системаи оператсионӣ кор кунад.
Дастгоҳҳо дастгирӣ
Ин компилятор ҳамаи дастгоҳҳои 8-битии AVR MCU-ро, ки дар вақти нашр маълуманд, дастгирӣ мекунад. Барои рӯйхати ҳамаи дастгоҳҳои дастгирӣшаванда (дар феҳристи ҳуҷҷатҳои компилятор) нигаред. Инхо fileс инчунин танзимоти битҳои конфигуратсияро барои ҳар як дастгоҳ номбар мекунад.
Нашрияҳо ва такмилдиҳии литсензия
Компилятори MPLAB XC8 метавонад ҳамчун маҳсулоти литсензияшуда (PRO) ё белитсензия (озод) фаъол карда шавад. Шумо бояд калиди фаъолсозиро барои литсензияи компилятори худ харед. Литсензия имкон медиҳад, ки дар муқоиса бо маҳсулоти Free сатҳи баландтар оптимизатсия карда шавад. Компилятори беиҷозатнома метавонад ба муддати номуайян бидуни иҷозатнома кор кунад.
Компилятори бехатарии функсионалии MPLAB XC8 бояд бо иҷозатномаи бехатарии функсионалии аз Microchip харидашуда фаъол карда шавад. Компилятор бе ин иҷозатнома кор намекунад. Пас аз фаъол шудан, шумо метавонед ҳама гуна сатҳи оптимизатсияро интихоб кунед ва тамоми хусусиятҳои компиляторро истифода баред. Ин нашри MPLAB XC Compiler Safety Functional License Server Network -ро дастгирӣ мекунад.
Барои маълумот дар бораи намудҳои иҷозатнома ва насби компилятор бо иҷозатнома ба ҳуҷҷати Насбкунӣ ва литсензиякунии MPLAB XC C Compilers (DS50002059) нигаред.
Насбкунӣ ва фаъолсозӣ
Барои маълумоти муҳим дар бораи менеҷери литсензияи охирин, ки ба ин компилятор дохил карда шудааст, инчунин ба бахшҳои Масъалаҳои Муҳоҷират ва Маҳдудиятҳо нигаред.
Агар MPLAB IDE-ро истифода баред, пеш аз насб кардани ин асбоб ҳатман версияи охирини MPLAB X IDE 5.0 ё дертарро насб кунед. Пеш аз насб кардани компилятор IDE-ро тарк кунед. Замимаи насбкунандаи компилятори .exe (Windows), .run (Linux) ё барнома (macOS) -ро иҷро кунед, масалан XC8-1.00.11403-windows.exe ва дастурҳои дар экран бударо иҷро кунед.
Феҳристи насби пешфарз тавсия дода мешавад. Агар шумо Linux-ро истифода баред, шумо бояд компиляторро бо истифода аз терминал ва аз ҳисоби реша насб кунед. Бо истифода аз ҳисоби macOS бо имтиёзҳои администратор насб кунед.
Фаъолсозӣ ҳоло барои насбкунӣ алоҳида анҷом дода мешавад. Барои маълумоти бештар ба ҳуҷҷати менеҷери иҷозатнома барои MPLAB® XC C Compilers (DS52059) нигаред.
Агар шумо интихоб кунед, ки компиляторро таҳти иҷозатномаи арзёбӣ иҷро кунед, шумо ҳоло ҳангоми тартиб додан дар давоми 14 рӯзи ба охир расидани давраи арзёбӣ огоҳӣ хоҳед гирифт. Ҳамин гуна огоҳӣ дода мешавад, агар шумо дар давоми 14 рӯз пас аз ба итмом расидани обунаи HPA-и худ бошед.
Сервери литсензияи шабакавии XC як насбкунандаи алоҳида аст ва ба насбкунандаи компилятори ягонаи корбар дохил карда нашудааст.
Менеҷери иҷозатномаи XC ҳоло роуминги литсензияҳои шабакаи шинокунандаро дастгирӣ мекунад. Ин хусусият ба корбарони мобилӣ нигаронида шудааст, ки ба литсензияи шинокунанда имкон медиҳад, ки дар муддати кӯтоҳ аз шабака хориҷ шавад. Бо истифода аз ин хусусият, шумо метавонед аз шабака ҷудо шавед ва ҳоло ҳам компилятори MPLAB XC-и худро истифода баред. Барои маълумоти бештар дар бораи ин хусусият ба папкаи ҳуҷҷати насби XCLM нигаред. MPLAB X IDE дорои равзанаи Литсензияҳо (Асбобҳо > Иҷозатномаҳо) барои идоракунии визуалӣ роуминг аст.
Ҳалли масъалаҳои насб
Агар шумо ҳангоми насб кардани компилятор дар ҳама гуна системаҳои оператсионии Windows мушкилот дошта бошед, тавсияҳои зеринро санҷед.
- Насбро ҳамчун администратор иҷро кунед.
- Иҷозатҳои барномаи насбкунандаро ба "Назорати пурра" таъин кунед. (Тугмаи ростро клик кунед file, Хусусиятҳо, ҷадвали Амният, корбарро интихоб кунед, таҳрир кунед.)
- Иҷозатҳои ҷузвдони муваққатиро ба "Назорати пурра!
Барои муайян кардани ҷойгиршавии ҷузвдони temp, % temp% -ро ба фармони Иҷро кунед (калиди логотипи Windows + R). Ин кушода мешавад file муколамаи Explorer, ки он директорияро нишон медиҳад ва ба шумо имкон медиҳад, ки роҳи он папкаро муайян кунед.
Ҳуҷҷатҳои компилятор
Дастурҳои корбарии компиляторро метавон аз саҳифаи HTML, ки дар браузери шумо ҳангоми пахш кардани тугмаи кабуди кӯмак дар панели MPLAB X IDE кушода мешавад, тавре ки дар скриншот нишон дода шудааст, кушоед.
Агар шумо барои ҳадафҳои 8-битии AVR сохта истода бошед, дастури корбари MPLAB® XC8 C Compiler барои AVR® MCU дорои маълумот дар бораи он имконоти компилятор ва хусусиятҳои ба ин меъморӣ дахл дорад.
Дастгирии муштариён
Microchip гузоришҳо, пешниҳодҳо ё шарҳҳоро дар бораи ин версияи компилятор истиқбол мекунад. Лутфан ҳама гуна гузоришҳои хатогиҳо ё дархостҳои хусусиятро тавассути системаи дастгирӣ равона кунед.
Навсозии ҳуҷҷатҳо
Барои версияҳои онлайн ва муосири ҳуҷҷатҳои MPLAB XC8, лутфан ба Ҳуҷҷатҳои техникии онлайни Microchip муроҷиат кунед. webсайт.
Ҳуҷҷатҳои нав ё навшудаи AVR дар ин нашрия:
- Эъломияи ҳуқуқи муаллифии MUSL
- Насб ва литсензиядиҳии MPLAB XC C Compilers (нусхаи M)
- Дастури корбари MPLAB XC8 барои муҳандисони дарунсохт - AVR MCUs (нусхаи A)
- Дастури корбар MPLAB XC8 C Compiler барои AVR MCU (ревизияи F)
- Дастури истинод ба Китобхонаи ягонаи стандартии Microchip (нусхаи B)
Дастури истинод ба Китобхонаи ягонаи стандартии Microchip рафтор ва интерфейси функсияҳоеро, ки аз ҷониби Китобхонаи ягонаи стандартии Microchip муайян карда шудааст, инчунин истифодаи мақсадноки намудҳо ва макросҳои китобхона тавсиф мекунад. Баъзе аз ин маълумот қаблан дар дастури корбари MPLAB® XC8 C Compiler барои AVR® MCU мавҷуд буданд. Маълумоти китобхонаи мушаххаси дастгоҳ ҳоло ҳам дар ин дастури компилятор мавҷуд аст.
Агар шумо танҳо бо дастгоҳҳои 8-битӣ ва Compiler MPLAB XC8 C оғоз карда бошед, дастури корбари MPLAB® XC8 барои муҳандисони дарунсохт - AVR® MCUs (DS50003108) маълумот дар бораи таъсиси лоиҳаҳо дар MPLAB X IDE ва навиштани код дорад. барои аввалин лоиҳаи MPLAB XC8 C. Ин дастур ҳоло бо компилятор тақсим карда мешавад.
Дастури корбари Hamate ба феҳристи ҳуҷҷатҳо дар ин нашрия дохил карда шудааст. Ин дастур барои онҳое, ки Hamate-ро ҳамчун як барномаи мустақил кор мекунанд, пешбинӣ шудааст.
Чӣ чизи нав
Дар зер хусусиятҳои нави AVR-ҳадаф мавҷуданд, ки ҳоло компилятор дастгирӣ мекунад. Рақами версия дар зерсарлавҳаҳо версияи аввалини компиляторро барои дастгирии хусусиятҳои минбаъда нишон медиҳад.
Версияи 2.40
Дастгирии дастгоҳи нав Ҳоло дастгирӣ барои қисмҳои зерини AVR дастрас аст: AT90PWM3, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR64EA, AVR28.
Такмили абстраксияи мурофиавӣ Воситаи оптимизатсияи абстраксияи мурофиавӣ (PA) такмил дода шуд, то коди дорои дастури занги функсия (бозгашти занг)) мукаммал карда шавад. Ин танҳо дар сурате сурат мегирад, ки стек барои интиқоли аргументҳо ба функсия истифода нашавад ва арзиши бозгашт аз функсия истифода нашавад. Стек ҳангоми даъват кардани функсия бо рӯйхати аргументҳои тағирёбанда ё даъват кардани функсияе истифода мешавад, ки нисбат ба регистрҳои барои ин мақсад таъиншуда аргументҳои бештар мегирад. Ин хусусиятро бо истифода аз опсияи monk-pa-outline-cals ғайрифаъол кардан мумкин аст ё абстраксияи расмиро барои объект комилан ғайрифаъол кардан мумкин аст file ё бо истифода аз -monk-pa-on-file ва -mo.-pa-on-function мутаносибан, ё бо истифода аз атрибути nipa ( мушаххаскунандаи nipa) ба таври интихобӣ бо функсияҳо
Макроси фарогирии код Компилятор ҳоло макроси __CODECOV-ро муайян мекунад, агар варианти дурусти mcodecov муайян карда шуда бошад.
Опсияи захираи хотира Драйвери xc8-cc акнун ҳангоми сохтани ҳадафҳои AVR варианти -mreserve=space@start: end-ро қабул мекунад. Ин хосият диапазони хотираи муайяншударо дар фазои хотираи маълумот ё барнома нигоҳ медорад, ки пайвандкунанда аз пур кардани код ё объектҳо дар ин минтақа пешгирӣ мекунад.
IO оқилонатар Якчанд беҳбудиҳо ба функсияҳои Smart IO анҷом дода шуданд, аз ҷумла ислоҳи умумӣ ба коди асосии printf, коркарди мушаххаскунандаи табдили %n ҳамчун варианти мустақил, пайваст кардани реҷаҳои поп-и vararg мувофиқи дархост, бо истифода аз навъҳои кӯтоҳтари додаҳо, дар он ҷое, ки имконпазир аст, барои коркарди далелҳои функсияи IO , ва факторинги коди умумӣ дар паҳнои майдон ва коркарди дақиқ. Ин метавонад ба сарфаи назарраси код ва маълумот оварда расонад ва инчунин суръати иҷрои IO-ро зиёд кунад.
Версияи 2.39 (Варақаи бехатарии функсионалӣ)
Иҷозатномаи сервери шабакавӣ Ин нашри MPLAB XC8 Compiler бехатарии функсионалӣ иҷозатномаи сервери шабакавиро дастгирӣ мекунад.
Версияи 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) мебошанд, ки муайян мекунад, ки кадом қисмати 32к хотираи барнома ба хотираи додаҳо харита карда мешавад. Опсияи нав - mconst-data-in-config-mapped-proem метавонад истифода шавад, то пайвандкунанда ҳама маълумоти босифатро дар як бахши 32k ҷойгир кунад ва реестри дахлдори SFR-ро ба таври худкор оғоз кунад, то ин маълумот дар фазои хотираи додаҳо харита карда шавад. , ки ба он бештар самараноктар дастрас карда мешавад.
Китобхонаҳои ягонаи стандартии Microchip Ҳама компиляторҳои MPLAB XC китобхонаи ягонаи стандартии Microchip-ро мубодила хоҳанд кард, ки ҳоло бо ин версияи MPLAB XC8 дастрас аст. Дастури истифодабарандаи MPLAB® XC8 C Compiler/ё AVR® MCU дигар ҳуҷҷатҳоро барои ин функсияҳои стандартӣ дар бар намегирад. Ин маълумотро ҳоло дар дастури истинод ба китобхонаи стандартии Microchip пайдо кардан мумкин аст. Дар хотир доред, ки баъзе функсияҳои қаблан аз ҷониби avr-libc муайяншуда дигар дастрас нестанд. (Ба Китобхона нигаред):'. функсия…)
Smart IO Ҳамчун як қисми китобхонаҳои нави муттаҳидшуда, функсияҳои IO дар оилаҳои чоп ва скан ҳоло дар ҳар як сохтмон вобаста ба тарзи истифода шудани ин функсияҳо дар барнома фармоишӣ тавлид мешаванд. Ин метавонад захираҳои аз ҷониби барнома истифодашавандаро ба таври назаррас коҳиш диҳад.
Опсияи кӯмаки Smart IO Ҳангоми таҳлили зангҳо ба функсияҳои интеллектуалии IO (ба мисли printf () ё scanf () ), компилятор наметавонад ҳамеша аз сатри формат муайян кунад ё аз далелҳо он мушаххасоти табдилдиҳии аз ҷониби занг талабшуда хулоса барорад. Пештар, компилятор ҳамеша ҳеҷ гуна тахмине намекард ва кафолат медиҳад, ки функсияҳои пурраи IO ба тасвири ниҳоии барнома пайваст карда шудаанд. Варианти нав - msmart-io-format=fmt илова карда шуд, то ба ҷои он, ки компилятор метавонад аз ҷониби корбар дар бораи мушаххасоти табдилдиҳӣ, ки аз ҷониби функсияҳои интеллектуалии IO истифода мешаванд, огоҳ карда шавад, ки истифодаи онҳо номуайян аст ва аз пайвастшавии реҷаҳои аз ҳад дарози IO пешгирӣ мекунад. (Барои тафсилоти бештар ба Опсияи smart-io-format нигаред.)
Ҷойгир кардани қисмҳои фармоишӣ Пештар, опсияи -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, AVR32, AVR28DB64.
Дастгирии дастгоҳи бозпас гирифташуда барои қисмҳои зерини AVR дигар дастрас нест: AVR16DA28, AVR16DA32 ва, AVR16DA48.
Версияи 2.31
Ҳеҷ.
Версияи 2.30
Варианти нав барои пешгирӣ кардани оғозёбии додаҳо Опсияи нави драйвери -mno-data-ini t аз оғозкунии маълумот ва тозакунии бахшҳои bss пешгирӣ мекунад. Он тавассути пахш кардани баромади рамзҳои do_ copy_ маълумот ва d o_ clear_ bss дар ассамблея кор мекунад files, ки дар навбати худ аз ворид кардани он реҷаҳо аз ҷониби пайвандкунанда пешгирӣ мекунад.
Оптимизатсияи мукаммал. Як қатор такмилдиҳии оптимизатсия, аз ҷумла бартараф кардани дастурҳои баргардонидани зиёдатӣ, бартараф кардани баъзе ҷаҳишҳо пас аз дастури гузариш, агар каме бошад, ва абстраксияи мукаммали мурофиавӣ ва қобилияти такрор кардани ин раванд анҷом дода шуданд.
Имкониятҳои иловагӣ ҳоло барои идоракунии баъзе аз ин оптимизатсияҳо дастрасанд, махсусан лангарҳои фасли -f, ки имкон медиҳад дастрасии объектҳои статикӣ нисбат ба як аломат иҷро карда шавад; -mpai derations=n, ки имкон медиҳад, ки шумораи такрори абстраксияи мурофиавӣ аз 2 пешфарз иваз карда шавад; ва, -mpa- call cost- shortcall, ки абстраксияи процессуалии хашмгинтарро иҷро мекунад, ба умеди он, ки пайвандкунанда метавонад зангҳои дарозро ором кунад. Ин варианти охирин метавонад андозаи кодро афзоиш диҳад, агар пиндоштҳои асосӣ амалӣ нашаванд.
Дастгирии дастгоҳи нав Дастгирии қисмҳои зерини AVR дастрас аст: AVR16DA28, AVR16DA32,
AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR128DB28, AVR128DB32, AVR128DB48 ва AVR128DB.
Дастгирии дастгоҳи бозпас гирифташуда Дастгирӣ барои қисмҳои зерини AVR дигар дастрас нест: ATA5272, ATA5790, ATA5790N, ATA5791, ATA5795, ATA6285, ATA6286, ATA6612C, ATA6613C, ATA6614Q, ATA6616C, ATA6617, ва ATA664251.
Версияи 2.29 (Варақаи бехатарии функсионалӣ)
Сарлавҳа file барои дарунсохти компилятор Барои боварӣ ҳосил кардани он, ки компилятор метавонад ба мушаххасоти забон, ба монанди MISRA, мувофиқат кунад, сарлавҳа file, ки ба таври худкор аз ҷониби дохил карда мешавад , нав карда шуд. Ин сарлавҳа дорои прототипҳои ҳамаи функсияҳои дарунсохт, ба монанди _buil tin _avrnop () ва _buil tin_ avr delay_ cycles () . Баъзе дастгоҳҳои сохташуда метавонанд ба MISRA мувофиқат накунанд; онҳоро метавон бо иловаи муайян кардани _Xe_ STRICT_ MISRA ба сатри фармони компилятор хориҷ кард. Насбҳо ва эъломияҳои онҳо барои истифодаи намудҳои собит паҳншуда нав карда шуданд.
Версияи 2.20
Дастгирии дастгоҳи нав Дастгирӣ барои қисмҳои зерини AVR дастрас аст: ATTINY1624, ATTINY1626 ва ATTINY1627.
Тақсимоти беҳтарини мувофиқ Беҳтарин тақсимкунандаи мувофиқ (BFA) дар компилятор такмил дода шуд, то бахшҳо бо тартиб тақсим карда шаванд, ки ба оптимизатсияи беҳтар имкон медиҳанд. BFA ҳоло ҷойҳои суроғаҳои номбаршударо дастгирӣ мекунад ва оғозкунии маълумотро беҳтар идора мекунад.
Такмили абстраксияи мурофиавӣ Оптимизатсияи абстраксияи мурофиавӣ ҳоло дар пайдарпаии бештари кодҳо иҷро карда мешавад. Ҳолатҳои қаблӣ, ки ин оптимизатсия метавонад андозаи кодро зиёд кунад, тавассути огоҳ кардани коди оптимизатсия аз раванди ҷамъоварии партовҳои пайвандкунанда ҳал карда шуданд.
Набудани AVR Assembler AVR Assembler дигар ба ин тақсимот дохил карда нашудааст.
Версияи 2.19 (Варақаи бехатарии функсионалӣ)
Ҳеҷ.
Версияи 2.10
Фарогирии код Ин нашр хусусияти фарогирии кодро дар бар мегирад, ки ба таҳлили дараҷаи иҷро шудани рамзи сарчашмаи лоиҳа мусоидат мекунад. Барои фаъол кардани он хосият -mcodecov=ramро истифода баред. Пас аз иҷрои барнома дар сахтафзори шумо, иттилооти фарогирии код дар дастгоҳ ҷамъ карда мешавад ва онро метавон ба MPLAB X IDE тавассути плагини фарогирии код интиқол дод ва намоиш дод. Ба ҳуҷҷатҳои IDE нигаред, то маълумот дар бораи ин плагинро дастрас кардан мумкин аст. #pragma mcodecov метавонад барои хориҷ кардани функсияҳои минбаъда аз таҳлили фарогирӣ истифода шавад. Идеалӣ, прагма бояд дар аввали мақола илова карда шавад file ки ин пурра истисно карда шавад file аз таҳлили фарогирӣ. Интихобан, атрибут ( (mcodecov) ) метавонад барои хориҷ кардани функсияи мушаххас аз таҳлили фарогирӣ истифода шавад.
Тавсифи дастгоҳ files Дастгоҳи нав file avr chipinfo номида мешавад. html дар феҳристи ҳуҷҷатҳои тақсимоти компилятор ҷойгир аст. Ин file ҳамаи дастгоҳҳоеро, ки аз ҷониби компилятор дастгирӣ мешаванд, номбар мекунад. Номи дастгоҳро клик кунед ва он саҳифаеро мекушояд, ки дар он ҳамаи танзимоти битҳои конфигуратсияи иҷозатдодашуда/ҷуфтҳои арзиш барои ин дастгоҳ нишон дода мешаванд.amples.
Абстраксияи мурофиавӣ Ба компилятор оптимизатсияи абстраксияи мурофиавӣ, ки блокҳои умумии коди монтажро бо зангҳо ба нусхаи истихроҷи ин блок иваз мекунанд, илова карда шуданд. Инҳо аз ҷониби як барномаи алоҳида иҷро карда мешаванд, ки онро компилятор ҳангоми интихоби оптимизатсияи сатҳи 2, 3 ё дигар ба таври худкор даъват мекунад. Ин оптимизатсияҳо андозаи кодро кам мекунанд, аммо онҳо метавонанд суръати иҷро ва ислоҳи кодро кам кунанд.
Абстраксияи мурофиавӣ метавонад дар сатҳҳои баландтари оптимизатсия бо истифода аз имконоти -mno-pa ғайрифаъол карда шавад ё мумкин аст дар сатҳҳои оптимизатсияи поёнтар (бо иҷозатномаи шумо) бо истифода аз -mpa фаъол карда шавад. Онро барои объект ғайрифаъол кардан мумкин аст file бо истифода аз -mno-pa-on-file=fileном, ё барои функсия бо истифода аз -mno-pa дар функсияи = ғайрифаъол.
Дар дохили коди сарчашмаи шумо абстраксияи мурофиавиро барои функсия бо истифода аз _attribute_ ( (nopa)) бо таърифи функсия ё бо истифода аз _nopa, ки ба аттрибут ( ((nopa, noinline)) васеъ мешавад ва ба ин васила аз ба амал омадани функсияи дохилшавӣ монеъ мешавад, ғайрифаъол кардан мумкин аст. ва абстраксияи рамзи дохилшуда вуҷуд дорад.
Дастгирии битро дар прагма қулф кунед Конфигуратсияи #pragma акнун метавонад барои муайян кардани битҳои қулфи AVR ва инчунин битҳои дигари конфигуратсия истифода шавад. Маълумоти чипи avr-ро тафтиш кунед. html file (дар боло зикршуда) барои ҷуфтҳои танзимот/арзиш барои истифода бо ин прагма.
Дастгирии дастгоҳи нав Дастгирӣ барои қисмҳои зерин дастрас аст: AVR28DA128, AVR64DA128, AVR32DA128 ва AVR48DA128.
Версияи 2.05
Битҳои бештар барои пулатон Версияи macOS-и ин компилятор ва менеҷери иҷозатнома ҳоло як барномаи 64-бит мебошад. Ин кафолат медиҳад, ки компилятор дар версияҳои охирини macOS бе огоҳӣ насб ва кор мекунад.
Объектҳои Const дар хотираи барнома ҳоло компилятор метавонад объектҳои конститсификатсияро дар хотираи барномаи Flash ҷойгир кунад, на дар хотираи оперативӣ. Компилятор тавре тағир дода шудааст, ки маълумотҳои глобалии ба конст мувофиқ дар хотираи флеши барнома нигоҳ дошта шаванд ва ба ин додаҳо мустақиман ва ғайримустақим тавассути дастурҳои мувофиқи хотираи барнома дастрас карда шаванд. Ин хусусияти нав бо нобаёнӣ фаъол аст, аммо онро бо истифода аз имконоти -mno-const-data-in-progmem ғайрифаъол кардан мумкин аст. Барои меъмории avrxmega3 ва avrtiny, ин хусусият талаб карда намешавад ва ҳамеша ғайрифаъол аст, зеро хотираи барнома дар фазои суроғаи маълумот барои ин дастгоҳҳо харита шудааст.
Стандарт барои ройгон Версияҳои литсензиянашудаи (озод) ин компилятор ҳоло имкон медиҳанд, ки беҳсозии то сатҳи 2 ва аз он ҷумла.
Хуш омадед AVRASM2 Ассемблери AVRASM2 барои дастгоҳҳои 8-бит ҳоло ба насбкунандаи компилятори XC8 дохил карда шудааст. Ин ассемблер аз ҷониби компилятори XC8 истифода намешавад, аммо барои лоиҳаҳо дар асоси манбаи дастнависи васлкунӣ дастрас аст.
Дастгирии дастгоҳи нав Дастгирӣ барои қисмҳои зерин дастрас аст: ATMEGA1608, ATMEGA1609, ATMEGA808 ва ATMEGA809.
Версияи 2.00
Ронандаи сатҳи олӣ Драйвери нав, ки xc8-cc ном дорад, ҳоло дар болои драйвери қаблии avr-gcc ва драйвери xc8 нишастааст ва он метавонад дар асоси интихоби дастгоҳи мавриди ҳадаф компилятори мувофиқро даъват кунад. Ин драйвер вариантҳои услуби GCC-ро қабул мекунад, ки барои тарҷума ё ба компилятори иҷрошаванда интиқол дода мешаванд. Ин драйвер имкон медиҳад, ки маҷмӯи шабеҳи имконоти дорои семантикаи шабеҳ бо ҳама гуна ҳадафи AVR ё PIC истифода шавад ва аз ин рӯ роҳи тавсияшаванда барои даъват кардани компилятор мебошад. Агар лозим бошад, драйвери кӯҳнаи avr-gcc-ро метавон мустақиман бо истифода аз имконоти кӯҳна, ки дар версияҳои қаблии компилятор қабул карда буд, даъват кард.
Интерфейси умумии C Ин компилятор ҳоло метавонад ба Интерфейси MPLAB Common C мувофиқат кунад ва имкон медиҳад, ки коди сарчашма дар ҳама компиляторҳои 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 калонтар бошад ва ба ҷои он errno-ро ба EINVAL муқаррар мекунад. Стандарти C рафтори функсияҳоро ҳангоми зиёд шудани ин арзиши асосӣ муайян намекунад.
Оптимизатсияи суръати номуносиб Ҳангоми интихоби оптимизатсияи сатҳи 3 оптимизатсияи абстраксияи мурофиавӣ фаъол карда мешуд (-03). Ин оптимизатсияҳо андозаи кодро аз ҳисоби суръати код кам мекунанд, бинобар ин набояд иҷро карда шаванд. Лоиҳаҳое, ки ин сатҳи оптимизатсияро истифода мебаранд, ҳангоми сохта шудан бо ин версия метавонанд фарқияти андозаи код ва суръати иҷроро бубинанд.
Функсияи китобхона Рамзи бисёре аз функсияҳои стандартии китобхонаи C ҳоло аз Китобхонаи ягонаи стандартии Microchip гирифта шудааст, ки метавонад дар баъзе ҳолатҳо нисбат ба он ки китобхонаи собиқи avr-libc пешниҳод кардааст, рафтори гуногунро нишон диҳад. Барои мисолample, дигар лозим нест, ки пайванд дар китобхонаи lprintf_flt (-print _flt хосият) барои фаъол кардани дастгирии форматшудаи IO барои мушаххаскунандагони формати шинокунанда. Хусусиятҳои интеллектуалии IO Китобхонаи ягонаи стандартии Microchip ин хосиятро зиёдатӣ мегардонад. Илова бар ин, истифодаи реҷаҳои суффикси _p барои функсияҳои сатр ва хотира (масалан, strcpy_P () ва ғайра ..), ки дар сатри const дар флеш кор мекунанд, дигар лозим нест. Реҷаҳои стандартии C (масалан, strcpy ()) ҳангоми фаъол кардани хусусияти const-data-in-program-memory бо чунин маълумот дуруст кор мекунанд.
Версияи 2.32
Ҳеҷ.
Версияи 2.31
Ҳеҷ.
Версияи 2.30
Ҳеҷ.
Версияи 2.29 (Варақаи бехатарии функсионалӣ)
Ҳеҷ.
Версияи 2.20
Тарҳбандии DFP тағир дода шуд Компилятор ҳоло тарҳбандии дигареро, ки аз ҷониби DFPs (Бастаҳои оилавии дастгоҳ) истифода мешавад, дар назар дорад. Ин маънои онро дорад, ки DFP-и кӯҳна метавонад бо ин версия кор накунад ва мураттибони кӯҳна наметавонанд DFP-ҳои навтаринро истифода баранд.
Версияи 2.19 (Варақаи бехатарии функсионалӣ)
Ҳеҷ.
Версияи 2.10
Ҳеҷ
Версияи 2.05
Объектҳои Const дар хотираи барнома Дар хотир доред, ки ба таври нобаёнӣ объектҳои const-qualfiied дар хотираи барнома ҷойгир карда мешаванд ва дастрас карда мешаванд (тавре ки дар ин ҷо тавсиф шудааст). Ин ба андоза ва суръати иҷрои лоиҳаи шумо таъсир мерасонад, аммо бояд истифодаи RAM-ро кам кунад. Агар лозим бошад, ин хусусиятро бо истифода аз опсияи -mnoconst-da ta-in-progmem ғайрифаъол кардан мумкин аст.
Версияи 2.00
Принтерҳои конфигуратсия Пойтахтҳои конфигуратсияи дастгоҳ акнун метавонанд бо истифода аз прагмаи конфигуратсия барномарезӣ карда шаванд ва пас аз он ҷуфтҳои танзими арзиш барои муайян кардани ҳолати муҳофизаткунанда, масалан
#конфигуратсияи прагма WDT0N = SET
#конфигуратсияи прагма B0DLEVEL = B0DLEVEL_4V3
Объектҳо ва функсияҳои мутлақ Акнун объектҳо ва функсияҳоро метавон дар суроғаи мушаххаси хотира бо истифода аз мушаххаскунандаи CCI _at (адрес) ҷойгир кард, масаланample: #include int foobar at(Ox800100); char at(Ox250) get ID(int offset) { … } Аргументи ин мушаххаскунанда бояд доимӣ бошад, ки суроғаеро, ки дар он байт ё дастури аввал ҷойгир карда мешавад, ифода мекунад. Суроғаҳои RAM бо истифода аз ҷуброни 0x800000 нишон дода шудаанд. Барои истифодаи ин хусусият ба CCI имкон диҳед.
Синтаксиси нави функсияи қатъ Компилятор ҳоло мушаххаскунандаи қатъи CCI (num) -ро қабул мекунад, то нишон диҳад, ки функсияҳои C коркардкунандагони қатъ мебошанд. Муайянкунанда рақами қатъро мегирад, масаланample: #include қатъи беэътибор (SPI STC_ vect _num) spi Isr(боэътибор) {…}
Масъалаҳои ислоҳшуда
Дар зер ислоҳҳое ҳастанд, ки ба мураттиб ворид карда шудаанд. Инҳо метавонанд хатогиҳоро дар коди тавлидшуда ислоҳ кунанд ё кори компиляторро ба он чизе, ки дастури корбар пешбинӣ ё муайян кардааст, тағир диҳанд. Рақами версия дар зерсарлавҳаҳо версияи аввалини компиляторро нишон медиҳад, ки ислоҳи масъалаҳои минбаъдаро дар бар мегирад. Нишон(ҳо)-и қавс, ки дар сарлавҳа ҷойгир шудаанд, муайянкунии ин масъала дар пойгоҳи додаҳои пайгирӣ мебошанд. Инҳо метавонанд муфид бошанд, агар ба шумо лозим ояд, ки бо дастгирии дастгирӣ тамос гиред.
Дар хотир доред, ки баъзе масъалаҳои марбут ба дастгоҳ дар бастаи оилаи дастгоҳ (DFP), ки бо дастгоҳ алоқаманданд, ислоҳ карда мешаванд. Барои маълумот дар бораи тағиротҳо ба DFPs ва зеркашии бастаҳои охирин ба менеҷери бастаи MPLAB нигаред.
Версияи 2.40
Хеле ором (XCS-2876) Ҳангоми истифодаи опсияи -mrelax, компилятор баъзе бахшҳоро бо ҳам ҷудо намекард, ки дар натиҷа андозаи коди оптималӣ камтар мешавад. Ин метавонад бо коде рух дод, ки китобхонаҳои нави MUSL ё бо рамзҳои заиф истифода мешуд.
Хусусияти харитасозӣ, тавре ки дар огоҳӣ гуфта шудааст, ғайрифаъол карда нашудааст (XCS-2875) Хусусияти харҷ-маълумот-дар-конфигуратсияи mappedprogmem ба хусусияти фаъол кардани хароҷот-маълумот-дар-проем вобаста аст. Агар хусусияти cost-data-ipconfig-mapped-proem бо истифода аз ин хосият ба таври возеҳ фаъол карда шуда бошад ва хусусияти cost-data-inprogmem ғайрифаъол карда шуда бошад, қадами истинод ноком шуд, сарфи назар аз паёми огоҳӣ, ки нишон медиҳад, ки маълумоти манфии config-in-config-mapped- хусусияти proem ба таври худкор ғайрифаъол карда шуд, ки ин комилан дуруст набуд. Хусусияти const-data-in-config-mapped-proem ҳоло дар ин вазъият комилан ғайрифаъол аст.
DFP барои дастрасии дуруст ба NVMCTRL (XCS-2848) тағирот медиҳад Рамзи оғози вақти корӣ, ки аз ҷониби дастгоҳҳои AVR64EA истифода мешавад, ба назар нагирифт, ки реестри NVMCTRL таҳти ҳимояи тағирёбии конфигуратсия (CCP) қарор дорад ва қодир набуд, ки IO SFR-ро ба саҳифае, ки аз ҷониби compiler const-data-in configmapped-proem истифода мешавад, насб кунад. хусусият. Тағйироте, ки дар версияи AVR-Ex_DFP 2.2.55 анҷом дода шудааст, имкон медиҳад, ки рамзи оғози вақти корӣ ба ин реестр дуруст нависад.
Тағироти DFP барои пешгирӣ кардани харитасозии флеш (XCS-2847) Кори рафъи мушкилот бо хусусияти дастгоҳи харитасозии флеш дар AVR128DA28/32/48/64 Silicon Errata (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-бит (навъи _memo) дар рӯйхати аргументҳои тағирёбанда ҳангоми фаъол кардани хусусияти арзиши маълумот дар проем интиқол дода шаванд. Аргументҳое, ки ба хотираи додаҳо ишора мекарданд, ҳамчун объектҳои 16-битӣ интиқол дода мешуданд, ки ҳангоми хондани онҳо нокомии кодро ба вуҷуд меоварданд. Вақте ки хусусияти cons data-in-proem фаъол карда мешавад, ҳама далелҳои нишондиҳандаҳои 16-битӣ ҳоло ба нишондиҳандаҳои 24-бит табдил меёбанд. Функсияҳои китобхонаи strtoxxx ноком (XCS-2620) Вақте ки хусусияти const-data-in-proem фаъол карда шуд, параметри воридшавӣ дар функсияҳои китобхонаи strtoxxx барои далелҳои сатри манбаъ дар хотираи барнома дуруст нав карда нашуд.
Огоҳӣ оид ба пахши нодуруст (XCS-2612) Компилятор ҳоло хато содир мекунад, агар хусусияти арзиши дар проем фаъол бошад ва суроғаи сатри литерали ба таври возеҳ ба фазои суроғаи додаҳо (партофтани квалификатори const), масаланample, (uint8 t *) «Салом олам!». Огоҳӣ мушкилотест, ки агар суроға беэътибор бошад, вақте ки нишондиҳандаи маълумот ба таври возеҳ ба фазои суроғаи додаҳо интиқол дода мешавад.
Ҷойгиркунии объектҳои конститути ибтидоӣ (XCS-2408) Объектҳои ғайрифаъолнашуда const ва const v olatile дар хотираи барнома дар дастгоҳҳое ҷойгир карда нашуданд, ки ҳама ё як қисми хотираи барномаи онҳоро ба фазои суроғаи додаҳо харита мекунанд. Барои ин дастгоҳҳо, чунин объектҳо ҳоло дар хотираи барнома ҷойгир карда мешаванд, ки кори онҳоро бо дастгоҳҳои дигар мувофиқ мекунанд.
Версияи 2.39 (Варақаи бехатарии функсионалӣ)
Ҳеҷ.
Версияи 2.36
Хатогӣ ҳангоми таъхир (XCS-2774) Тағироти ночиз дар оптимизатсияи ҳолати пешфарзии Озод ҷилавгирии доимии ифодаҳои операндро ба функсияҳои таъхирнопазири дарунсохт пешгирӣ кард, ки дар натиҷа онҳо ҳамчун алоқаи бетаъхир ҳисобида мешаванд ва хатогиро ба вуҷуд меоранд: _buil tin avr delay_ cycles ac ompile интизор аст. доимии бутуни вақт.
Версияи 2.35
Тақсимоти пайваста бо истифода аз _at (XCS-2653) Ҷойгиркунии пайвастаи объектҳои сершумор дар қисмат бо ҳамон ном ва истифодаи дар () дуруст кор накард. Барои мисолample: constchararrl [ ] at tri butte ((секта дар(".misses"))) дар (Ox50 0 ) = {Oxo , Ox CD} ; cost char arr2[ ] at tri butte ((бахш(".my s eke"))) = {Oxen, Ox FE }; бояд arr2-ро фавран пас аз aril ҷойгир мекард.
Муайян кардани суроғаҳои оғози бахш (XCS-2650) Опсияи -Wal, -section-start бесадо натавонист бахшҳоро дар суроғаи оғози таъиншуда ҷойгир кунад. Ин масъала барои ҳама бахшҳои номбаршуда ҳал карда шудааст; аммо он барои ягон бахшҳои стандартӣ, ба монанди . матн ё. bss, ки бояд бо истифода аз имконоти -Wl, -T ҷойгир карда шавад.
Пайвасткунак ҳангоми истироҳат суқут мекунад (XCS-2647) Вақте ки оптимизатсияи -relax фаъол карда шуд ва бахшҳои код ё додаҳо ба хотираи дастрас мувофиқ набуданд, пайвандкунанда ба кор афтод. Ҳоло, дар чунин шароит, ба ҷои он паёмҳои хатогӣ дода мешаванд.
Дастрасии бад EEPROM (XCS-2629) Реҷаи блоки leproma _read_ дар дастгоҳҳои Мега дуруст кор накард, вақте ки опсияи -monist-data-in-proem фаъол карда шуд (ки ҳолати пешфарз аст), ки дар натиҷа хотираи EEPROM дуруст хонда намешавад.
Тақсими хотираи нодуруст (XCS-2593, XCS-2651) Вақте ки варианти пайвандкунандаи -Text ё -Tata (барои мисолample тавассути опсияи драйвери -Wl гузашт) муайян карда шудааст, пайдоиши матн/минтақаи додаҳои мувофиқ нав карда шуд; аммо, суроғаи ниҳоӣ мувофиқан тасҳеҳ карда нашудааст, ки ин метавонад ба минтақа аз доираи хотираи дастгоҳи мавриди ҳадаф зиёд шавад.
Рамзи қатъи ATtiny нодуруст (XCS-2465) Ҳангоми сохтани дастгоҳҳои Tatin ва оптимизатсияҳо ғайрифаъол карда шуданд (-00), функсияҳои танаффус метавонанд операндро берун аз диапазон паёмҳои ассемблер ба вуҷуд оваранд.
Опсияҳо аз тариқи гузаронида намешаванд (XCS-2452) Ҳангоми истифодаи варианти -Wl бо вариантҳои сершумори пайвандкунандаи бо вергул ҷудошуда, на ҳама имконоти пайвандкунанда ба пайвандкунанда интиқол дода мешуданд.
Хатогии бавосита хондани хотираи барнома (XCS-2450) Дар баъзе мавридҳо, компилятор ҳангоми хондани арзиши ду байт аз нишондиҳанда ба хотираи барнома хатои дохилӣ (insn шинохтанашаванда) содир кард.
Версияи 2.32
Дастрасии дуюм ба китобхона ноком шуд (XCS-2381) Даъвати версияи Windows-и xc8-ar. Бойгонии китобхонаи exe бори дуюм барои дастрасӣ ба бойгонии мавҷудаи китобхона бо сабаби тағир додани номи хатогӣ ноком шуда бошад.
Версияи 2.31
Нокомиҳои компилятори шарҳнашуда (XCS-2367) Ҳангоми кор дар платформаҳои Windows, ки феҳристи муваққатии система ба роҳе, ки нуқтаро дар бар мегирад, гузошта шуда буд'.' аломате бошад, компилятор шояд иҷро карда натавонист.
Версияи 2.30
Тамғакоғазҳои глобалӣ пас аз тавсифи нодуруст ҷойгир карда шудаанд (XCS-2299) Рамзи монтажи дастӣ навишташуда, ки тамғакоғазҳои глобалиро дар пайдарпаии ҷамъбаст ҷойгир мекунад, ки бо абстраксияи мурофиавӣ хориҷ карда шудаанд, шояд дуруст ҷойгир карда нашудаанд.
Суқути оромкунанда (XCS-2287) Истифодаи опсияи -merlad метавонад боиси вайрон шудани пайвандкунанда гардад, вақте ки оптимизатсияи релаксияи дум кӯшиш кард, дастури ретро, ки дар охири бахш набуд, хориҷ кунад.
Ҳангоми оптимизатсияи тамғакоғазҳо ҳамчун арзишҳо шикаст хӯрд (XCS-2282) Рамз бо истифода аз "Тағйирёбанда ҳамчун арзишҳо" забони GNU C метавонад боиси вайрон шудани оптимизатсияи абстраксияи мурофиавӣ гардад, ва диапазони VMA-и муқарраршуда хатои ислоҳро дар бар мегирад.
На он қадар доимӣ (XCS-2271) Прототипҳо барои оғоз () ва дигар вазифаҳо аз вақте ки хусусияти -monist-data inprogmem ғайрифаъол аст, дигар тахассуси арзиши ғайристандартиро дар нишондиҳандаҳои сатри баргардонида муайян накунед. Дар хотир доред, ки бо дастгоҳҳои avrxmega3 ва avertin, ин хусусият ба таври доимӣ фаъол аст.
Ташаббускунакҳои гумшуда (XCS-2269) Вақте ки дар як бахш зиёда аз як тағирёбанда дар воҳиди тарҷума ҷойгир карда шуд (бо истифода аз бахш ё атрибут ((қисмат))) ва аввалин чунин тағирёбанда ба сифр оғоз карда шуда буд ё инициализатор надошт, инициализаторҳо барои тағирёбандаҳои дигар дар як воҳиди тарҷума ки дар хамин участка гузошта шуда буданд, гум шуданд.
Версияи 2.29 (Варақаи бехатарии функсионалӣ)
Ҳеҷ.
Версияи 2.20
Хатогӣ бо фармонҳои дароз (XCS-1983) Ҳангоми истифодаи ҳадафи AVR, компилятор метавонад бо a file хато ёфт нашуд, агар сатри фармон хеле калон бошад ва дорои аломатҳои махсус, аз қабили нохунакҳо, хатҳои баръакс ва ғайра бошад.
Қисми таъиннашудаи ротата (XCS-1920) Пайвасткунаки AVR ҳангоми сохтани архитектураҳои avrxmega3 ва avrtiny хотираро барои қисмҳои фармоишии rodata таъин карда натавонист, ки эҳтимолан хатогиҳои такрори хотираро ба вуҷуд оварад.
Версияи 2.19 (Варақаи бехатарии функсионалӣ)
Ҳеҷ.
Версияи 2.10
Нокомиҳои интиқол (XCS-1891) Беҳтарин тақсимкунандаи мувофиқ ин буд, ки пас аз истироҳати пайвандкунанда дар байни бахшҳо сӯрохиҳои хотираро тарк мекард. Ба ғайр аз тақсимоти хотира, ин эҳтимолияти ба вуҷуд омадани нокомии кӯчонидани пайвандкунандаро дар робита бо ҷаҳишҳои нисбии компютер ё берун рафтани зангҳо афзоиш дод.
Дастурҳое, ки бо истироҳат табдил дода намешаванд (XCS-1889) Истироҳати пайвандкунанда барои ҷаҳидан ё дастурҳои занг, ки ҳадафҳои онҳо дар ҳолати оромӣ дастрас мешаванд, ба амал наомадааст.
Бедарак функсия (XCSE-388) Якчанд таърифҳо аз , ба монанди clock_ div_ t ва clock_prescale_set (), барои дастгоҳҳо, аз ҷумла ATmega324PB, ATmega328PB, ATtiny441 ва ATtiny841 муайян карда нашудаанд.
Макросҳои гумшуда macros_ xcs _MODE_, _xcs VERSION, _xc ва xcs аз ҷониби компилятор ба таври худкор муайян карда нашудаанд. Инҳо ҳоло дастрасанд.
Версияи 2.05
Хатои дохилии компилятор (XCS-1822) Ҳангоми сохтани Windows, хатогии дохилии компилятор ҳангоми оптимизатсияи код ба вуҷуд омада метавонад.
Зиёдшавии RAM ошкор нашудааст (XCS-1800, XCS-1796) Барномаҳое, ки аз RAM-и мавҷуда зиёданд, дар баъзе ҳолатҳо аз ҷониби компилятор муайян карда нашуданд, ки дар натиҷа коди иҷрошаванда ноком шуд.
Хотираи флешдор (XCS-1792) Барои дастгоҳҳои avrxmega3 ва avrtiny, қисмҳои хотираи флешдор мумкин аст аз ҷониби MPLAB X IDE барноманашуда монда бошанд.
Иҷро нашудани фармони асосӣ (XCS-1788) Дар баъзе ҳолатҳое, ки барнома ягон тағирёбандаҳои глобалиро муайян накардааст, рамзи оғози вақти корӣ берун нашуд ва ба функсияи асосӣ () ҳеҷ гоҳ расида нашуд.
Маълумоти нодурусти хотира (XCS-1787) Барои дастгоҳҳои avrxmega3 ва avrtiny, барномаи avr-андоза гузориш медод, ки маълумоти танҳо барои хондан ба ҷои хотираи барнома RAM-ро истеъмол мекунад.
Хониши нодурусти хотираи барнома (XCS-1783) Лоиҳаҳое, ки барои дастгоҳҳое тартиб дода шудаанд, ки хотираи барномавӣ дар фазои суроғаи додаҳо харита шудаанд ва объектҳоро бо истифода аз макро/атрибутҳои PROGMEM муайян мекунанд, шояд ин объектҳоро аз суроғаи нодуруст хонда бошанд.
Хатои дохилӣ бо атрибутҳо (XCS-1773) Агар шумо объектҳои ишоракунандаро бо
_at () ё attribute() аломатҳои дар байни номи ишоракунанда ва навъи истинодшуда, масаланample, char *
_at ( 0x80015 0) cp; Ҳоло огоҳӣ дода мешавад, агар чунин код дучор шавад.
Иҷро нашудани фармони асосӣ (XCS-1780, XCS-1767, XCS-1754) Истифодаи тағирёбандаҳои EEPROM ё муайян кардани муҳофизаткунанда бо истифода аз прагмаи конфигуратсия метавонад боиси оғози нодурусти додаҳо ва/ё иҷрои барнома дар коди оғозёбӣ, пеш аз расидан ба main () шуда бошад.
Хатогии сӯзишворӣ бо дастгоҳҳои хурд (XCS-1778, XCS-1742) Дастгоҳҳои attiny4/5/9/10/20/40 дорои дарозии нодурусти сӯзишворӣ дар сарлавҳаи онҳо буданд files, ки ба хатогиҳои пайвандкунанда ҳангоми кӯшиши сохтани код оварда мерасонанд, ки муҳофизаткунандаҳоро муайян мекунанд.
Хатогии сегментатсия (XCS-1777) Хатогии сегментатсияи фосилавӣ ислоҳ карда шуд.
Суқути ассемблер (XCS-1761) Вақте ки компилятор зери Ubuntu 18 кор мекард, ассемблери avr-as метавонад ба садама дучор шавад.
Объектҳо тоза карда нашудаанд (XCS-1752) Объектҳои давомнокии нигаҳдории статикии оғознашуда шояд тавассути коди оғозёбӣ тоза карда нашудаанд.
Мушаххасоти дастгоҳи мухолиф нодида гирифта шуд (XCS-1749) Вақте ки вариантҳои мушаххаси дастгоҳҳои гуногун истифода мешуданд ва дастгоҳҳои гуногунро нишон медоданд, компилятор хатогӣ тавлид намекард.
Коррупсияи хотира аз ҷониби тӯда (XCS-1748) Рамзи heap_ start нодуруст гузошта шуда буд, ки дар натиҷа имкони вайрон кардани тағирёбандаҳои оддӣ аз ҷониби тӯда мешавад.
Хатои кӯчонидани пайвандкунанда (XCS-1739) Хатогии кӯчонидани пайвандкунанда метавонад содир шавад, вақте ки код дорои rjmp ё rcall бо ҳадаф маҳз 4к байт дур бошад.
Версияи 2.00
Ҳеҷ.
Масъалаҳои маълум
Дар зер маҳдудиятҳо дар амалиёти компилятор мавҷуданд. Инҳо метавонанд маҳдудиятҳои умумии рамзгузорӣ бошанд, ё
инҳироф аз маълумоти дар дастури истифодабаранда мавҷудбуда. Нишон(ҳо)-и қавс, ки дар сарлавҳа ҷойгир шудаанд, муайянкунии ин масъала дар пойгоҳи додаҳои пайгирӣ мебошанд. Ин метавонад фоидаовар бошад, агар ба шумо лозим ояд, ки бо дастгирии дастгирӣ тамос гиред. Он ҷузъҳое, ки тамғакоғаз надоранд, маҳдудиятҳое мебошанд, ки амалиёти режимро тавсиф мекунанд ва эҳтимол ба таври доимӣ амал мекунанд.
Интегратсияи MPLAB X IDE
Интегратсияи MPLAB IDE Агар Compiler аз MPLAB IDE истифода шавад, пас шумо бояд пеш аз насб кардани Compiler MPLAB IDE насб кунед.
Тавлиди код
Нокомии тақсимоти хотираи PA (XCS-2881) Ҳангоми истифодаи оптимизаторҳои абстраксияи мурофиавӣ, пайвандкунанда метавонад хатогиҳои тақсимоти хотираро гузориш диҳад, вақте ки андозаи код ба ҳаҷми хотираи дастраси барнома дар дастгоҳ наздик аст, гарчанде ки барнома бояд ба фазои дастрас мувофиқат кунад.
На он қадар интеллектуалӣ Smart-IO (XCS-2872) Агар хусусияти coast-data-in-proem ғайрифаъол карда шуда бошад ё агар дастгоҳ тамоми флеши он дар хотираи додаҳо харита шуда бошад, хусусияти smart-io компилятор рамзи дуруст, вале зероптималӣ барои функсияи спринт тавлид мекунад.
Ҳатто камтар Smart-IO (XCS-2869) Хусусияти smart-io-и компилятор ҳангоми истифода шудани ҳарду вариантҳои tin -floe ва -fno-buil рамзи дуруст, вале нооптималӣ тавлид хоҳад кард.
Ҷойгиркунии маълумоти танҳо барои хондан (XCS-2849) Пайвасткунак дар айни замон аз бахшҳои хотираи APPCODE ва APPDATA ва на қисмҳои [Не-]Хондан-Ҳангоми Навиштан дар харитаи хотира огоҳ нест. Дар натиҷа, эҳтимоли кам вуҷуд дорад, ки пайвандкунанда метавонад маълумоти танҳо барои хонданро дар минтақаи номувофиқи хотира ҷудо кунад. Имконияти ҷойгиркунии маълумоти нодуруст дар сурати фаъол будани хусусияти coast-data-in-pragma меафзояд, хусусан агар хусусияти coast-data-in-config-mapped-proem низ фаъол бошад. Агар лозим бошад, ин хусусиятҳоро ғайрифаъол кардан мумкин аст.
Объект file Фармоиши коркард (XCS-2863) Тартиби дар кадом объектҳо files аз ҷониби пайвандкунанда коркард карда мешавад, метавонад вобаста ба истифодаи оптимизатсияи абстраксияи мурофиавӣ фарқ кунад (варианти -mpa). Ин танҳо ба коде таъсир мерасонад, ки функсияҳои заифро дар якчанд модул муайян мекунад.
Хатои пайвандкунанда бо мутлақ (XCS-2777) Ҳангоме ки объект дар суроға дар оғози RAM мутлақ шудааст ва объектҳои оғознашуда низ муайян карда шудаанд, хатогии пайвандкунанда метавонад оғоз шавад.
ID-ҳои кӯтоҳи бедоршавӣ (XCS-2775) Барои дастгоҳҳои ATA5700/2, регистрҳои PHID0/1 танҳо ҳамчун паҳнои 16 бит муайян карда мешаванд, на 32 бит васеъ.
Суқути пайвандкунанда ҳангоми занг задани аломат (XCS-2758) Пайвасткунак метавонад вайрон шавад, агар опсияи драйвери -merlad вақте истифода шавад, ки рамзи манбаъ аломатеро даъват мекунад, ки бо истифода аз опсияи пайвандкунандаи -Wl, -defsym муайян шудааст.
Оғозкунии нодуруст (XCS-2679) Байни ҷое ки арзишҳои ибтидоии баъзе объектҳои байт-ҳаҷми глобалӣ/статикӣ дар хотираи додаҳо ҷойгир карда мешаванд ва дар он ҷое, ки ба тағирёбандаҳо дар вақти корӣ дастрас мешаванд, ихтилоф вуҷуд дорад.
оғоз нодуруст маҷмӯи холӣ (XCS-2652) Дар ҳолатҳое, ки сатри мавзӯъ барои табдилдиҳӣ аз рӯи нишондодашуда () дорои он чизест, ки рақами шинокунанда дар формати экспоненсиалӣ аст ва пас аз аломати e аломати ғайричашмдошт мавҷуд аст, суроғаи холӣ, агар дода шавад, ба аломати пас аз он ишора мекунад. e ва на худи e. Барои мисолample: изҳор шудааст("хуй", холӣ); боиси холӣ ба аломати x мегардад.
Зангҳои ғайримустақими бад (XCS-2628) Дар баъзе мавридҳо, зангҳои функсионалии тавассути нишоннамои функсияе, ки ҳамчун қисми сохтор нигоҳ дошта мешаванд, метавонанд ноком шаванд.
strtof барои шиноварҳои шонздаҳӣ сифрро бармегардонад (XCS-2626) Функсияҳои китобхона strtof () ва дигарон ва scanf () ва дигарон ҳамеша рақами шонздаҳии шинокунандаро табдил медиҳанд, ки нишондиҳандаро ба
сифр. Барои мисолample: stator ("Ов", & холӣ); арзиши 0-ро бармегардонад, на 1.
Паёмнависии нодурусти мушовири стек (XCS-2542, XCS-2541) Дар баъзе мавридҳо, огоҳии мушовири стек дар бораи рекурсия ё стеки номуайяни истифодашуда (эҳтимолан тавассути истифодаи alloca()) бароварда намешавад.
Нокомӣ бо рамзи такрории қатъ (XCS-2421) Дар он ҷое, ки зиёда аз як функсияи танаффус як бадан доранд, компилятор метавонад баромади як функсияи танаффусро ба дигараш даъват кунад. Ин ба он оварда мерасонад, ки ҳамаи регистрҳои зангзадашуда безарур захира карда мешаванд ва қатъҳо ҳатто пеш аз ба кор андохтани эпилоги коркардкунандаи қатъшавии ҷорӣ фаъол мешаванд, ки ин метавонад ба шикасти код оварда расонад.
Объектҳои Const дар хотираи барнома нестанд (XCS-2408) Барои лоиҳаҳои avrxmega3 ва avertins объектҳои ғайримуқаррарӣ ба хотираи додаҳо ҷойгир карда мешаванд, гарчанде ки огоҳӣ нишон медиҳад, ки онҳо дар хотираи барнома ҷойгир шудаанд. Ин ба дастгоҳҳое таъсир намерасонад, ки хотираи барномавӣ дар фазои хотираи маълумот хариташуда надоранд ва ба ягон объекти оғозшуда таъсир намерасонад.
Баромади бад бо роҳи нодурусти DFP (XCS-2376) Агар компилятор бо роҳи нодурусти DFP ва 'spec' даъват карда шавад file барои дастгоҳи интихобшуда мавҷуд аст, компилятор дар бораи бастаи оилаи дастгоҳи мавҷудбуда хабар намедиҳад ва ба ҷои он 'spec' -ро интихоб мекунад file, ки он метавонад ба баромади беэътибор оварда расонад. "Мушаххасот" files шояд бо DFP-ҳои тақсимшуда мувоҷеҳ набошад ва танҳо барои истифода бо санҷиши дохилии компилятор пешбинӣ шуда буд.
Бархӯрди хотира ошкорнашуда (XCS-1966) Компилятор такрори хотираи объектҳои мутлақро дар суроға (тавассути дар ()) ва объектҳои дигар бо истифода аз мушаххаскунандаи қисм () ва ба ҳамон суроға пайвастшударо муайян намекунад.
Нокомӣ бо функсияҳои китобхона ва _meme (XCS-1763) Функсияҳои шинокунандаи лимбӣ бо аргумент дар фазои суроғаи _memo метавонанд ноком шаванд. Дар хотир доред, ки реҷаҳои китобхона аз баъзе операторҳои C даъват карда мешаванд, аз ин рӯ, масаланample, рамзи зерин таъсир мерасонад: баргардонидани regFloatVar > memxFloatVar;
Иҷрои маҳдуди лимбӣ (AVRTC-731) Барои маҳсулоти ATTiny4/5/9/10/20/40, татбиқи стандартии китобхонаи C / Math дар limbic хеле маҳдуд аст ё мавҷуд нест.
Маҳдудиятҳои хотираи барнома (AVRTC-732) Тасвирҳои хотираи барнома зиёда аз 128 кб аз ҷониби асбобҳо дастгирӣ карда мешаванд; аммо, ҳолатҳои маълуми қатъи пайвандак бе истироҳат ва бидуни паёми хатогии муфид ба ҷои тавлиди нотаҳои функсионалии зарурӣ ҳангоми истифода шудани опсияи -relax вуҷуд доранд.
Маҳдудиятҳои фазои ном (AVRTC-733) Фазои суроғаҳои номбаршуда аз ҷониби асбобҳо, бо назардошти маҳдудиятҳое, ки дар бахши дастури корбар зикр шудаанд, дастгирӣ карда мешаванд.
Минтақаҳои вақт Дар Функсияҳои китобхона GMT-ро дар назар доранд ва минтақаҳои вақти маҳаллиро дастгирӣ намекунанд, аз ин рӯ вақти маҳаллӣ () ҳамон вақт бо gummite (), масалан, бармегардадampле.
ДАСТГИРИИ МУШТОР
file:///Applications/microehip/xc8/v 2 .40/docs/Маро хонед_X C 8_ барои A VR. htm
Ҳуҷҷатҳо / Сарчашмаҳо
![]() |
MICROCHIP MPLAB XC8 C Software Compiler [pdf] Дастури соҳиби MPLAB XC8 C, MPLAB XC8 C Software Compiler, Software Compiler, Software |