MPLAB® XC8 C Compiler Version 2.41 Nòt lage pou AVR® MCU
Manyèl Pwopriyetè a
MPLAB XC8 C lojisyèl devlopman konpilatè
DOKIMAN SA A GENYEN ENFÒMASYON ENPÒTAN KI GENYEN AK KOMPILÈ MPLAB XC8 C A LÈ YO YO VIZE APARÈY MICROCHIP AVR.
TANPRI LI LI AVAN KOURI LOGICIEL SA A. GADE NÒT PUBLIKE MPLAB XC8 C KONPILÈ A POU DOKIMAN PIC SI W AP ITILIZE KONPILÈ A POU APARÈY PIC 8-BIT.
Plis paseview
1.1. Entwodiksyon
Version sa a nan Microchip MPLAB® XC8 C konpilatè a gen plizyè nouvo karakteristik ak repare ensèk.
1.2. Dat Konstwi
Dat ofisyèl konstriksyon vèsyon konpilatè sa a se 8 fevriye 2023.
1.3. Vèsyon Previous
Vèsyon konpilatè MPLAB XC8 C anvan an te 2.40 bati sou 3 jiyè 2022.
1.4. Manyèl sekirite fonksyonèl
Yon Manyèl Sekirite Fonksyonèl pou konpilatè MPLAB XC yo disponib nan pake dokiman an lè ou achte yon lisans sekirite fonksyonèl.
1.5. Lisans eleman ak vèsyon
Zouti MPLAB XC8 C Compiler pou AVR MCU yo ekri epi distribye anba Lisans Piblik Jeneral GNU (GPL) ki vle di kòd sous li yo distribiye gratis epi yo disponib pou piblik la.
Kòd sous la pou zouti anba GNU GPL ka telechaje separeman ak Microchip la websit. Ou gendwa li GNU GPL nan fichye ki nonmen ki sitiye sou-anyè enstalasyon license.txt avr/doc. Ou ka jwenn yon diskisyon jeneral sou prensip ki kache nan GPL la.
Kòd sipò yo bay pou fichye header yo, scripts linker yo, ak bibliyotèk egzekite yo se kòd propriétaires epi yo pa kouvri anba GPL la.
Konpilateur sa a se yon aplikasyon GCC vèsyon 5.4.0, binutils vèsyon 2.26, epi li sèvi ak avr-libc vèsyon 2.0.0.
1.6. Kondisyon sistèm
Konpilateur MPLAB XC8 C a ak lojisyèl lisans li itilize yo disponib pou yon varyete sistèm operasyon, ki gen ladan vèsyon 64-bit sa ki annapre yo: Edisyon pwofesyonèl Microsoft® Windows® 10; Ubuntu® 18.04; ak macOS® 10.15.5. Binè pou Windows yo te siyen kòd. Binè pou macOS yo te siyen kòd ak notarye. MPLAB XC Network License Server disponib pou yon varyete sistèm operasyon 64-bit, ki gen ladan Microsoft Windows 10 ak pi wo a; Ubuntu 18.04 ak pi wo a; oswa macOS 10.15 ak pi wo a. Sèvè a ka fonksyone tou sou plizyè lòt sistèm opere tankou Windows Server, distribisyon Linux, tankou Oracle® Enterprise Linux® ak Red Hate Enterprise Linux ansanm ak ansyen vèsyon sistèm opere ki sipòte yo. Sepandan, MPLAB XC Network License Server pa teste sou sistèm operasyon sa yo. MPLAB XC Network License Server ka kouri sou Virtual Machines nan OS sipòte lè l sèvi avèk yon lisans machin vityèl pou lisans rezo (SW006021-VM). Tout vèsyon 32-bit nan sèvè rezo MPLAB XC yo sispann apati vèsyon 3.00.
Aparèy Sipòte
Konpilateur sa a sipòte tout aparèy AVR MCU 8-bit ki disponib nan moman lage a. Gade (nan anyè konpilatè a) pou yon lis tout aparèy ki sipòte. Fichye sa yo lis tou
avr_chipinfo.html paramèt bit konfigirasyon doc pou chak aparèy.
1.7. Edisyon ak Amelyorasyon Lisans
Konpilateur MPLAB XC8 ka aktive kòm yon pwodwi ki gen lisans (PRO) oswa ki pa gen lisans (gratis). Ou bezwen achte yon kle deklanchman pou lisansye du ou. Yon lisans pèmèt pou yon pi wo nivo optimize konpare ak pwodwi gratis la. Yon konpilatè ki pa gen lisans ka opere endefiniman san yon lisans. Yo dwe aktive yon konpilatè MPLAB XC8 pou sekirite fonksyonèl ak yon lisans sekirite fonksyonèl ki te achte nan men Microchip. Konpilateur a pa pral opere san lisans sa a. Yon fwa aktive, ou ka chwazi nenpòt nivo optimize epi sèvi ak tout karakteristik du yo. Version sa a MPLAB XC Fonksyonèl Sekirite Konpilatè sipòte Lisans Sèvè Rezo a.
Gade dokiman Enstalasyon ak Lisans MPLAB XC C Compilers (DS50002059) pou enfòmasyon sou kalite lisans ak enstalasyon konpilatè a ak yon lisans.
1.8. Enstalasyon ak Aktivasyon
Gade tou seksyon Pwoblèm ak Limitasyon Migrasyon yo pou jwenn enfòmasyon enpòtan sou dènye manadjè lisans ki enkli nan du sa a.
Si w ap itilize MPLAB IDE, asire w ou enstale dènye MPLAB X IDE vèsyon 5.0 oswa pita anvan ou enstale zouti sa a. Kite IDE a anvan ou enstale du a. Kouri (Windows), (Linux) oswa (macOS) .exe .run .app aplikasyon enstalasyon konpilatè a, pa egzanp epi swiv enstriksyon ki sou ekran an. XC8-1.00.11403-windows.exe Anyè enstalasyon default rekòmande. Si w ap itilize Linux, ou dwe enstale du a lè l sèvi avèk yon tèminal ak soti nan yon kont rasin. Enstale lè l sèvi avèk yon kont macOS ak privilèj administratè.
Aktivasyon kounye a fèt separeman nan enstalasyon an. Gade dokiman License Manager for MPLAB® XC C Compilers (DS52059) pou plis enfòmasyon.
Si w chwazi pou w kouri konpilatè a anba lisans evalyasyon an, w ap resevwa yon avètisman kounye a pandan konpilasyon lè w nan 14 jou apre fen peryòd evalyasyon w la. Yo bay menm avètisman an si w rive nan 14 jou apre abònman HPA w fini.
XC Network License Server se yon enstalatè separe epi li pa enkli nan enstalasyon konpilatè a pou yon sèl itilizatè.
Manadjè Lisans XC kounye a sipòte itinérance lisans rezo k ap flote. Vize pou itilizatè mobil, karakteristik sa a pèmèt yon lisans k ap flote ale nan rezo a pou yon kout peryòd de tan. Sèvi ak karakteristik sa a, ou ka dekonekte nan rezo a epi toujou sèvi ak konpilatè MPLAB XC ou a. Gade dosye doc enstalasyon XCLM pou plis enfòmasyon sou karakteristik sa a.
MPLAB X IDE gen ladann yon fenèt Lisans (Zouti > Lisans) pou jere itinérance vizyèlman.
1.8.1. Rezoud Pwoblèm Enstalasyon
Si w gen difikilte pou w enstale konpilatè a anba nenpòt nan sistèm operasyon Windows yo, eseye sijesyon sa yo.
Kouri enstale a kòm yon administratè.
Mete otorizasyon aplikasyon enstale a nan 'Kontwòl konplè'. (Dwa klike sou fichye a, chwazi Pwopriyete, tab Sekirite, chwazi itilizatè, edite.)
Mete otorizasyon katab tanporè a nan 'Kontwòl konplè'.
Pou detèmine kote katab tan an, tape %temp% nan lòd Kouri (Kle logo Windows + R).
Sa a pral louvri yon dyalòg eksploratè fichye ki montre anyè sa a epi li pral pèmèt ou detèmine chemen katab sa a.
1.9. Dokimantasyon konpilatè
Gid itilizatè yo ka louvri nan paj HTML ki louvri nan navigatè w la lè w klike sou bouton èd ble a nan tablodbò MPLAB X IDE, jan sa endike nan ekran an.
Si w ap bati pou sib AVR 8-bit, MPLAB® XC8 C Compiler Itilizatè Gid pou AVR® MCU a gen enfòmasyon sou opsyon konpilatè sa yo ak karakteristik ki aplikab pou achitekti sa a.
1.10. Sipò pou kliyan
Microchip akeyi rapò sou ensèk, sijesyon oswa kòmantè konsènan vèsyon konpilatè sa a. Tanpri dirije nenpòt rapò ensèk oswa demann karakteristik atravè Sistèm Sipò.
Mizajou Dokimantasyon yo
Pou vèsyon sou entènèt ak ajou nan dokiman MPLAB XC8, tanpri vizite dokiman teknik sou entènèt Microchip la. websit. Nouvo dokiman AVR oswa mete ajou nan vèsyon sa a:
- MPLAB® XC8 C Konpilatè Gid Itilizatè pou AVR® MCU (revizyon G)
- AVR® GNU Toolchain to MPLAB® XC8 Migration Guide (revizyon A)
- Gid Itilizatè Hexmate (revizyon B)
AVR® GNU Toolchain to MPLAB® XC8 Migration Guide dekri chanjman ki fèt nan kòd sous ak opsyon bati ki ta ka nesesè si w deside emigre yon pwojè ki baze sou C soti nan AVR 8-bit GNU Toolchain nan Microchip MPLAB XC8 C Compiler la. Gid Referans Bibliyotèk Estanda Inifye Microchip la dekri konpòtman ak koòdone ak fonksyon Bibliyotèk Estanda Inifye Microchip la, ansanm ak itilizasyon kalite bibliyotèk yo ak makro yo. Kèk nan enfòmasyon sa yo te genyen anvan nan MPLAB® XC8 C Compiler Guide Utilisateur pou AVR® MCU. Enfòmasyon bibliyotèk espesifik pou aparèy yo toujou genyen nan gid konpilatè sa a.
Si w ap kòmanse kòmanse ak aparèy 8-bit ak MPLAB XC8 C Compiler la, MPLAB® XC8 Gid Itilizatè a pou Enjenyè Embedded – AVR® MCUs (DS50003108) gen enfòmasyon sou konfigirasyon pwojè nan MPLAB X IDE ak ekri kòd pou ou. premye pwojè MPLAB XC8 C. Gid sa a kounye a distribye ak du a.
Gid Itilizatè Hexmate a fèt pou moun k ap kouri Hexmate kòm yon aplikasyon otonòm.
Ki Nouvo
Sa ki annapre yo se nouvo karakteristik AVR-sib, konpilatè a sipòte kounye a. Nimewo vèsyon an nan soutit yo endike premye vèsyon konpilatè a pou sipòte karakteristik ki swiv yo.
3.1. Vèsyon 2.41
Sipò Bootrow (XC8-3053) Konpilatè a pral mete kontni nenpòt seksyon ak yon prefiks nan adrès.bootrow 0x860000 nan fichye HEX la. Seksyon sa yo itilize pou memwa BOOTOW, ki fèt pou estoke kle ak lòt enfòmasyon an sekirite ki ta dwe sèlman aksesib a yon bootloader.
Eliminasyon retounen redondants (XC8-3048) Konpilatè a pral kounye a elimine enstriksyon redondants nan fonksyon ret ak yon so ke lè yo itilize scripts linker koutim. Sa a se yon optimize menm jan ak sa ki te fèt anvan, men li kounye a fèt sou tout seksyon òfelen yo, menm si yo itilize yon script lyen koutim epi pi bon plan alokasyon an pa nan jwe. Chanjman kalite tan (XC8-2982, 2932) Kalite bibliyotèk estanda C99 la, te chanje soti nan yon time_t nan yon kalite, ki bay amelyorasyon gwosè kòd nan kèk fonksyon long long ki gen rapò ak tan, tankou. san siyen long mktime()
Nouvo nop (XC8-2946, 2945) Yo te ajoute makro a nan. Makro sa a mete yon non-NOP() nop operasyon enstriksyon nan pwodiksyon an.
Mizajou nan XCLM (XC8-2944) Yo te mete ajou manadjè lisans yo itilize ak konpilatè a e kounye a, li pi reponn lè w tcheke detay lisans konpilatè a.
Trampapèl oline (XC8-2760) Konpilatè a kapab kounye a fè ranplasman enstriksyon apèl long fòm ak apèl relatif ki pi kout lè fòm relatif enstriksyon yo ta nòmalman pa nan ranje destinasyon yo. Nan sitiyasyon sa a, du a pral eseye ranplase ak enstriksyon yo rele rcall yon enstriksyon ki pral 'trampoline' ekzekisyon nan adrès ki nesesè a, pou egzanpample: jmp
rcall tramp_foo ;te rele foo
...
rcall tramp_foo
...
tramp_foo:
jmp foo
Optimizasyon sa a, ansanm ak optimize koule pwogram ki sanble, kontwole pa opsyon -mrelax la.
3.2. Vèsyon 2.40
Nouvo sipò sipò disponib kounye a pou pati AVR sa yo: AT90PWM3, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR64EA28, AVR64EA32, AVR64DD48, AVRXNUMXDDXNUMX
Amelyore abstraksyon pwosedi yo te amelyore zouti optimize abstraksyon pwosedi (PA) pou kòd ki gen yon enstriksyon apèl fonksyon (/ ) ka itilize. Sa a pral sèlman pran plas rele rcall si pile a pa itilize pou pase agiman ni pou jwenn valè retounen nan fonksyon an. Pile a itilize lè w ap rele yon fonksyon ki gen yon lis agiman varyab oswa lè w ap rele yon fonksyon ki pran plis agiman pase gen rejis ki deziyen pou objektif sa a. Karakteristik sa a ka dezaktive lè l sèvi avèk opsyon an, oswa abstraksyon pwosedi a ka dezaktive nèt pou yon fichye objè oswa fonksyon lè w itilize- ak, respektivman, oswa lè w itilize atribi a (spesifye) selektivman ak fonksyon.
mno-pa-outline-calls -mno-pa-on-file -mno-pa-on-function nopa Kòd kouvèti makro Konpilatè a kounye a defini makro a si yo espesifye yon opsyon valab __nopa __CODECOV -mcodecov.
Opsyon rezèvasyon memwa Chofè a pral aksepte kounye a opsyon xc8-cc -mreserve=space@start:end lè y ap bati pou objektif AVR yo. Opsyon sa a rezève seri memwa ki espesifye nan espas memwa done oswa pwogram nan, sa ki anpeche linker a peple kòd oswa objè nan zòn sa a. Smarter smart IO Yo te fè plizyè amelyorasyon nan fonksyon Smart IO yo, ki gen ladan ajisteman jeneral nan kòd debaz printf la, trete spesifik konvèsyon %n la kòm yon variant endepandan, lyen nan woutin pop yo sou demann, lè l sèvi avèk kalite done ki pi kout kote sa posib pou manyen. Agiman fonksyon IO, ak faktè komen kòd nan lajè jaden ak manyen presizyon. Sa ka lakòz siyifikatif kòd ak ekonomi done, osi byen ke ogmante vitès ekzekisyon IO.
3.3. Version 2.39 (Fonksyonèl Sekirite Release)
Lisans Sèvè Rezo Version sa a MPLAB XC8 Functional Safety Compiler sipòte Lisans Sèvè Rezo a.
3.4. Vèsyon 2.36
Okenn.
3.5. Vèsyon 2.35
Nouvo sipò sipò disponib pou pati AVR sa yo: ATTINY3224, ATTINY3226, ATTINY3227, AVR64DD14, AVR64DD20, AVR64DD28, ak AVR64DD32.
Amelyore chanje kontèks Nouvo opsyon -mcall-isr-prologues chanje fason fonksyon entèwonp sove rejis sou antre ak fason rejis sa yo retabli lè woutin entèwonp la fini. Li travay nan yon fason ki sanble ak opsyon -mcall-prologues, men sèlman afekte fonksyon entèwonp (ISRs).
Menm plis amelyore chanjman kontèks Nouvo opsyon -mgas-isr-prologues kontwole kòd chanjman kontèks ki te pwodwi pou ti woutin sèvis entèwonp yo. Lè yo aktive, karakteristik sa a pral fè moun k ap asanble a eskane ISR pou itilizasyon enskri epi sove rejis yo itilize sa yo sèlman si sa nesesè.
Kat konfigirasyon flash Gen kèk aparèy nan fanmi AVR DA ak AVR DB gen yon SFR (eg FLMAP) ki espesifye ki seksyon 32k memwa pwogram yo pral trase nan memwa done yo. Nouvo - mconst-data-in-config-mapped-progmem opsyon an ka itilize pou fè linker a mete tout done konst-kalifye nan yon seksyon 32k epi otomatikman inisyalize rejis SFR ki enpòtan an pou asire ke done sa yo trase nan memwa done a. espas, kote yo pral jwenn aksè pi efikas.
Bibliyotèk Estanda Inifye Microchip Tout konpilatè MPLAB XC pral pataje yon Bibliyotèk Estanda Inifye Microchip, ki disponib kounye a ak lage MPLAB XC8 sa a. MPLA# XC8 C Konpilatè Gid Itilizatè pou AVO MCU pa gen ladan dokimantasyon pou fonksyon estanda sa yo ankò. Kounye a ou ka jwenn enfòmasyon sa yo nan Gid Referans Bibliyotèk Estanda Inifye Microchip. Remake byen ke kèk fonksyonalite avr-libc te defini deja pa disponib ankò. (Gade fonksyonalite Lila.)
Smart I0 Kòm yon pati nan nouvo bibliyotèk inifye yo, fonksyon I0 nan fanmi printf ak scanf yo kounye a fèt sou fason pou chak bati, dapre fason yo itilize fonksyon sa yo nan pwogram nan. Sa a ka redwi anpil resous yo itilize pa yon pwogram.
Opsyon asistans Smart ICI Lè w ap analize apèl nan fonksyon I0 entelijan (tankou enprime f () oswa scanf ()), konpilatè a pa ka toujou detèmine nan fòma fisèl la oswa dedwi apati agiman spesifikatè konvèsyon sa yo mande pou apèl la. Précédemment, du a toujou pa fè okenn sipozisyon epi asire ke 10 fonksyon konplètman fonksyonèl yo te lye nan imaj pwogram final la. Yo te ajoute yon nouvo opsyon - msmart-io-format = fmt pou itilizatè a ka enfòme konpilatè a sou espesifikasyon konvèsyon yo itilize pa fonksyon I0 entelijan ki gen itilizasyon anbigwi, sa ki anpeche 10 woutin ki twò long yo te lye. (Gade Opsyon smart-io-format pou plis detay.)
Mete seksyon koutim Anvan sa, opsyon -W1, –section-start te sèlman mete seksyon espesifye a nan adrès yo mande a lè script linker la te defini yon seksyon pwodiksyon ak menm non an. Lè sa a pa t 'ka a, seksyon an te plase nan yon adrès ki te chwazi pa Linker la ak opsyon an te esansyèlman inyore. Koulye a, opsyon a pral onore pou tout seksyon koutim, menm si script linker la pa defini seksyon an. Remake byen, sepandan, ke pou seksyon estanda, tankou . tèks,. bss oswa . done, alokateur ki pi bon an ap toujou gen kontwòl konplè sou plasman yo, epi opsyon an pa pral gen okenn efè. Sèvi ak opsyon -ton, -Tsection=addr, jan sa dekri nan gid itilizatè a.
3.6. Vèsyon 2.32
Stack Guidance Disponib avèk yon lisans konpilateur PRO, yo ka itilize karakteristik pile konpilatè a pou estime pwofondè maksimòm nenpòt pil itilize pa yon pwogram. Li konstwi ak analize graf apèl yon pwogram, detèmine itilizasyon pil chak fonksyon, epi li pwodui yon rapò, kote yo ka dedwi pwofondè pil pwogram lan itilize. Karakteristik sa a pèmèt atravè opsyon nan liy kòmand -mchp-stack-usage. Yon rezime sou itilizasyon pil yo enprime apre ekzekisyon an. Yon rapò detaye pile disponib nan kat la file, ki ka mande nan fason nòmal la.
Nouvo sipò sipò disponib pou pati AVR sa yo: ATTINY427, ATTINY424, ATTINY426, ATTINY827, ATTINY824, ATTINY826, AVR32DB32, AVR64DB48, AVR64DB64, AVR64DB28, AVR32DB28, AVR64DB32, AVR32DB48, AVR16DB28 Sipò pou aparèy ki retire sipò pa disponib ankò pou pati AVR sa yo: AVR16DA32, AVR16DA48 ak, AVRXNUMXDAXNUMX.
3.7. Vèsyon 2.31
Okenn.
3.8. Vèsyon 2.30
Nouvo opsyon pou anpeche inisyalizasyon done Yon nouvo opsyon chofè -mno-data-init anpeche inisyalizasyon done ak netwaye seksyon bss yo. Li travay pa siprime pwodiksyon done kopi yo epi fè senbòl bss klè nan asanble a files, ki pral nan vire anpeche enklizyon de woutin sa yo pa Linker la.
Optimize amelyore Yo te fè yon kantite amelyorasyon optimize, tankou retire enstriksyon retounen redondants, retire kèk so apre yon enstriksyon sote-si-bit-is, ak amelyore abstraksyon pwosedi ak kapasite pou repete pwosesis sa a. Opsyon adisyonèl disponib kounye a pou kontwole kèk nan optimize sa yo, espesyalman -f seksyon-ankr, ki pèmèt aksè nan objè estatik yo dwe fè parapò ak yon senbòl; -mpa-iterations=n, ki pèmèt kantite iterasyon abstraksyon pwosedi yo dwe chanje soti nan default 2; ak, -mpa-callcost-shortcall, ki fè abstraksyon pwosedi pi agresif, nan espwa ke linker a ka detann apèl long. Dènye opsyon sa a ka ogmante gwosè kòd si sipozisyon ki kache yo pa reyalize.
Nouvo sipò sipò disponib pou pati AVR sa yo: AVR16DA28, AVR16DA32, AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR128, AVR28DA128, AVR32DA128, AVR48, AVR128 VR64DB5272. Sipò Sipò pou aparèy retrè pa disponib ankò pou pati AVR sa yo: ATA5790, ATA5790, ATA5791N, ATA5795, ATA6285, ATA6286, ATA6612, ATA6613C, ATA6614C, ATA6616Q, ATA6617Q, ATA664251CXNUMX, ATAXNUMXC, ATAXNUMXC.
3.9. Version 2.29 (Fonksyonèl Sekirite Release)
Header file pou konpilatè entegre Pou asire ke konpilatè a ka konfòme yo ak espesifikasyon lang tankou MISRA, la header file, ki otomatikman enkli pa , te mete ajou. Tèt sa a gen pwototip pou tout fonksyon ki entegre yo, tankou builtin_avr_nop ( ) ak builtin avr delay_cycles () . Gen kèk entegre yo ka pa konfòme MISRA; sa yo ka omisyon lè w ajoute defineXCSTRICT_MISRA nan liy kòmand konpilatè a. Yo te mete ajou entegre yo ak deklarasyon yo pou yo itilize kalite lajè fiks yo.
3.10. Vèsyon 2.20
Nouvo sipò sipò disponib pou pati AVR sa yo: ATTINY1624, ATTINY1626, ak ATTINY1627.
Pi bon alokasyon pi bon anfòm (BFA) nan konpilatè a te amelyore pou seksyon yo asiyen nan yon lòd ki pèmèt pi bon optimize. BFA a kounye a sipòte espas adrès ki gen non ak pi byen okipe inisyalizasyon done yo.
Amelyore abstraksyon pwosedi yo kounye a fèt optimize abstraksyon pwosedi sou plis sekans kòd. Sitiyasyon anvan yo kote optimize sa a te ka ogmante gwosè kòd yo te adrese lè yo fè kòd optimize a okouran de pwosesis koleksyon fatra linker la.
Absans AVR Assembler AVR Assembler la pa enkli nan distribisyon sa a ankò.
3.11. Version 2.19 (Fonksyonèl Sekirite Release)
Okenn.
3.12. Vèsyon 2.10
Kouvèti Kòd Lage sa a gen ladan yon karakteristik kouvèti kòd ki fasilite analiz de nan ki pwen kòd sous pwojè a te egzekite. Sèvi ak opsyon -mcodecov=ram pou pèmèt li. Apre ekzekisyon pwogram nan sou pyès ki nan konpitè ou, enfòmasyon sou kouvèti kòd yo pral rasanble nan aparèy la, epi sa a ka transfere ak parèt pa MPLAB X IDE a atravè yon plugin kouvèti kòd. Gade dokiman IDE pou jwenn enfòmasyon sou plugin sa a. Yo ka itilize #pragma nocodecov pou eskli fonksyon ki vin apre yo nan analiz kouvèti asirans lan. Idealman pragma a ta dwe ajoute nan kòmansman an file pou ekskli tout sa file soti nan analiz kouvèti asirans lan. Altènativman, _attribute_ ((nocodecov)) ka itilize pou eskli yon fonksyon espesifik nan analiz kouvèti asirans lan.
Deskripsyon aparèy files Yon nouvo aparèy file yo rele avr_chipinfo . html sitiye nan anyè docs nan distribisyon an du. Sa a file lis tout aparèy ki sipòte pa du a. Klike sou yon non aparèy, epi li pral ouvri yon paj ki montre tout konfigirasyon ki pèmèt yo mete/valè doulè pou aparèy sa a, ak ansyen.amples. Abstraksyon pwosedi
Optimisasyon pwosedi abstrè, ki ranplase blòk komen nan kòd asanble ak apèl nan yon kopi ekstrè nan blòk sa a, yo te ajoute nan du a. Sa yo fèt pa yon aplikasyon separe, ki se otomatikman envoke pa du a lè w ap chwazi nivo 2, 3 oswa s optimize. Optimize sa yo diminye gwosè kòd, men yo ka diminye vitès ekzekisyon ak debogaj kòd. Abstraksyon pwosedi ka enfim nan pi wo nivo optimize lè l sèvi avèk opsyon -mno-pa, oswa yo ka aktive nan pi ba nivo optimize (sijè a lisans ou) lè l sèvi avèk -mpa. Li ka enfim pou yon objè file lè l sèvi avèk -mno-pa-on-file=filenon, oswa enfim pou yon fonksyon lè l sèvi avèk -mno-pa-on-function=fonksyon. Anndan kòd sous ou a, abstraksyon pwosedi yo ka enfim pou yon fonksyon lè w itilize atribi ( (nopa) ) ak definisyon fonksyon an, oswa lè w itilize nopa, ki elaji nan atribi ( (nopa, noinline) ) epi konsa anpeche fonksyon inlining pran plas. epi gen abstraksyon nan kòd inline.
Lock bit sipò nan pragma #pragma konfigirasyon an ka itilize kounye a pou presize bit yo fèmen AVR kòm byen ke lòt bit yo konfigirasyon. Tcheke avr_chipinfo la. html file (mansyone pi wo a) pou pè anviwònman/valè yo itilize ak pragma sa a. Nouvo sipò sipò disponib pou pati sa yo: AVR28DAl28, AVR64DAl28, AVR32DA 128, ak AVR48DA 128.
3.13. Vèsyon 2.05
Plis Bits pou lajan ou Vèsyon macOS nan du sa a ak manadjè lisans se kounye a yon aplikasyon 64-bit. Sa a pral asire ke du a pral enstale ak kouri san avètisman sou dènye vèsyon macOS.
Objè konst nan memwa pwogram Konpilatè a kapab kounye a mete objè konst-kalifye nan memwa Flash pwogram nan, olye ke yo genyen sa yo ki sitiye nan RAM. Konpilatè a te modifye pou done mondyal ki kalifye yo estoke nan memwa flash pwogram yo epi yo ka jwenn aksè dirèk ak endirèkteman done sa yo lè l sèvi avèk enstriksyon memwa pwogram ki apwopriye yo. Nouvo karakteristik sa a aktive pa default men yo ka enfim lè l sèvi avèk opsyon -mno-const-data-in-progmem. Pou achitekti avrxmega3 ak avrtiny, karakteristik sa a pa obligatwa epi li toujou enfim, paske memwa pwogram nan trase nan espas adrès done pou aparèy sa yo.
Estanda pou gratis vèsyon san lisans (gratis) nan konpilatè sa a kounye a pèmèt optimize jiska e ki gen ladan nivo 2. Sa a pral pèmèt yon pwodiksyon ki sanble, byenke pa idantik, ak sa ki te deja posib lè l sèvi avèk yon lisans Standard.
Byenveni AVRASM2 Asanble AVRASM2 pou aparèy 8-bit kounye a enkli nan enstalasyon konpilatè XC8 la. Asanble sa a pa itilize pa konpilatè XC8 la, men li disponib pou pwojè ki baze sou sous asanble ekri alamen.
Nouvo sipò sipò disponib pou pati sa yo: ATMEGA1608, ATMEGA1609, ATMEGA808, ak ATMEGA809.
3.14. Vèsyon 2.00
Chofè tèt-nivo Yon nouvo chofè, ki rele xc8-cc, chita kounye a pi wo pase avr-gcc chofè a ak chofè xc8 la, epi li ka rele du apwopriye a ki baze sou seleksyon an nan aparèy la sib. Chofè sa a aksepte opsyon GCC-style, ki swa tradui pou oswa pase nan konpilatè a ke yo te egzekite. Chofè sa a pèmèt yon seri opsyon ki sanble ak semantik ki sanble yo dwe itilize ak nenpòt ki sib AVR oswa PIC e konsa se fason ki rekòmande yo envoke du a. Si sa nesesè, yo ka rele ansyen chofè avr-gcc la dirèkteman lè l sèvi avèk opsyon ansyen style li te aksepte nan vèsyon pi bonè yo.
Entèfas C komen Konpilatè sa a kapab kounye a konfòme yo ak Entèfas C komen MPLAB, sa ki pèmèt kòd sous yo pi fasil transfè atravè tout konpilateur MPLAB XC. Opsyon -mext=cci mande karakteristik sa a, ki pèmèt lòt sentaks pou anpil ekstansyon lang.
Nouvo chofè bibliyotekè Yon nouvo chofè bibliyotekè pozisyone pi wo pase ansyen bibliyotekè PIC libr ak AVR avr-ar bibliyotekè a. Chofè sa a aksepte opsyon GCC-achiv-style, ki swa tradui pou oswa pase nan bibliyotekè ke yo te egzekite a. Nouvo chofè a pèmèt yon seri opsyon ki sanble ak semantik ki sanble yo dwe itilize pou kreye oswa manipile nenpòt bibliyotèk PIC oswa AVR. file e se konsa fason rekòmande pou envoke bibliyotekè a. Si sa nesesè pou pwojè eritaj, yo ka rele bibliyotekè anvan an dirèkteman lè l sèvi avèk opsyon ansyen style li te aksepte nan vèsyon pi bonè yo.
Pwoblèm Migrasyon
Sa ki anba la yo se karakteristik ki kounye a okipe yon fason diferan pa du a. Chanjman sa yo ka mande pou modifikasyon nan kòd sous ou a si pòtaj kòd nan vèsyon sa a konpilatè. Nimewo vèsyon an nan soutit yo endike premye vèsyon konpilatè a pou sipòte chanjman ki vin apre yo.
4.1. Vèsyon 2.41
Fonksyon fma ki pa kòrèk yo retire (XC8-2913) Fonksyon familyal fma 99 nan bibliyotèk estanda C0 ( ) pa t kalkile yon miltipliye-addisyon ak presizyon enfini nan yon sèl awondi, men olye yo te akimile erè awondi ak chak operasyon. Fonksyon sa yo te retire nan bibliyotèk yo bay la.
4.2. Vèsyon 2.40
Okenn.
4.3. Version 2.39 (Fonksyonèl Sekirite Release)
Okenn.
4.4. Version 2.36 Okenn.
4.5. Vèsyon 2.35
Manyen de baz fisèl yo (XC8-2420) Pou asire konsistans ak lòt konpilatè XC yo, fonksyon fisèl XC8 yo, tankou strtol () elatriye, p ap eseye konvèti yon fisèl antre si baz espesifye a pi gwo pase 36. epi yo pral pito mete errno nan EINVAL. Estanda C a pa presize konpòtman fonksyon yo lè valè baz sa a depase.
Optimize vitès ki pa apwopriye Optimizasyon abstrè pwosedi yo te pèmèt lè w ap chwazi optimize nivo 3 (-03). Optimize sa yo redwi gwosè kòd nan depans lan nan vitès kòd, kidonk pa ta dwe fèt. Pwojè ki sèvi ak nivo optimize sa a ta ka wè diferans ki genyen nan gwosè kòd ak vitès ekzekisyon lè yo bati ak lage sa a.
Fonksyonalite bibliyotèk Kòd pou anpil nan fonksyon bibliyotèk estanda C yo kounye a soti nan Bibliyotèk Estanda Inifye Microchip a, ki ka montre yon konpòtman diferan nan kèk sikonstans konpare ak sa ansyen bibliyotèk avr-libc te bay la. Pou egzanpample, li pa nesesè ankò pou konekte nan bibliyotèk 1printf flt (opsyon -1printf_flt) pou vire sou fòma. I0 sipò pou spécificateurs float-fòma. Entelijan an I0 karakteristik nan Bibliyotèk Estanda Inifye Microchip fè opsyon sa a redondants. Anplis de sa, itilizasyon woutin sifiks _P pou fonksyon fisèl ak memwa (egzanp strcpy_P ( ) elatriye.) ki opere sou fisèl konst nan flash pa nesesè ankò. Woutin estanda C yo (egzanp strcpy ) ap travay kòrèkteman ak done sa yo lè karakteristik konst-data-in-program-memory la aktive.
4.6. Vèsyon 2.32
Okenn.
4.7. Vèsyon 2.31
Okenn.
4.8. Vèsyon 2.30
Okenn.
4.1. Version 2.29 (Fonksyonèl Sekirite Release)
Okenn.
4.2. Vèsyon 2.20
Chanje layout DFP Konpilatè a kounye a sipoze yon Layout diferan itilize pa DFPs (Pake Fanmi Aparèy). Sa a pral vle di ke yon DFP ki pi gran ta ka pa travay ak lage sa a, ak konpilatè ki pi ansyen yo pa pral kapab sèvi ak dènye DFP yo.
4.3. Version 2.19 (Fonksyonèl Sekirite Release)
Okenn.
4.4. Vèsyon 2.10
Okenn
4.5. Vèsyon 2.05
Objè konst nan memwa pwogram Remake byen ke pa default, objè ki kalifye yo pral mete ak aksè nan memwa pwogram (jan sa dekri Hue). Sa a pral afekte gwosè ak vitès ekzekisyon pwojè ou a, men li ta dwe diminye itilizasyon RAM. Karakteristik sa a ka enfim, si sa nesesè, lè l sèvi avèk opsyon -mnoconst-data-in-progmem.
4.6. Vèsyon 2.00
Fyouz konfigirasyon Fyouz konfigirasyon aparèy yo kapab kounye a pwograme lè l sèvi avèk yon pragma konfigirasyon ki te swiv pa pè mete-valè pou presize eta fuse a, pa egzanp.
#pragma konfigirasyon WDTON = SET
#pragma konfigirasyon BODLEVEL = BODLEVEL_4V3
Objè absoli ak fonksyon Kounye a ka mete objè ak fonksyon yo nan adrès espesifik nan memwa lè l sèvi avèk spesifikatè CCI (adrès), pou egzanp.ample:
#enkli
int foobar_at (0x800100);
char __at(0x250) getID(int offset) { … }
Agiman pou spécificateur sa a dwe yon konstan ki reprezante adrès kote yo pral mete premye byte oswa enstriksyon an. Adrès RAM yo endike lè w itilize yon konpanse nan 0x800000. Pèmèt CCI pou itilize karakteristik sa a.
Nouvo sentaks fonksyon entèwonp Konpilatè a kounye a aksepte spécificateur CCI _interrupt (num) pou endike ke fonksyon C yo se moun kap okipe entèwonp. Espesifikatè a pran yon nimewo entèwonp, pou egzanpample:
#enkli
void __interrupt(SPI_STC_vect_num) spi_Isr(void) { … }
Pwoblèm fiks yo
Sa ki anba la yo se koreksyon ki te fè nan konpilatè a. Sa yo ta ka ranje ensèk nan kòd la pwodwi oswa chanje operasyon an nan konpilatè a sa ki te gen entansyon oswa espesifye nan gid itilizatè a. Nimewo vèsyon an nan soutit yo endike premye vèsyon konpilatè a ki genyen koreksyon pou pwoblèm ki vin apre yo. Etikèt ki mete parantèz yo nan tit la se idantifikasyon pwoblèm sa a nan baz done swiv la. Sa yo ka itil si ou bezwen kontakte sipò.
Remake byen ke kèk pwoblèm espesifik aparèy yo korije nan Pake Fanmi Aparèy (DFP) ki asosye ak aparèy la. Gade Manadjè pake MPLAB la pou jwenn enfòmasyon sou chanjman ki fèt nan DFP yo epi pou telechaje dènye pake yo.
5.1. Vèsyon 2.41
Pwoblèm Dongle sou Ventura (XC8-3088) Dongle yo te itilize pou lisans konpilatè a pa te byen li sou hôtes macOS Ventura, sa ki lakòz echèk lisans. Chanjman nan manadjè lisans XCLM korije pwoblèm sa a.
Endikasyon ki pa kòrèk nan alokasyon memwa (XC8-2925) Eseye pou asiyen SIZE_MAX byte (oswa yon valè ki toupre sa a) nan memwa lè l sèvi avèk fonksyon jesyon memwa bibliyotèk estanda yo (malloc () et al) mal reyisi. Li pa t 'pran an kont ke bytes siplemantè yo te bezwen anplis blòk la mande lè w ap itilize aplikasyon an senp dinamik alokasyon memwa. Yon pwent NULL pral kounye a retounen epi errno mete nan ENOMEM nan sitiyasyon sa yo.
Fonksyon fma ki pa kòrèk yo retire (XC8-2913) Bibliyotèk estanda C99 fma ( ) -fonksyon fanmi ( ) pa t kalkile yon miltipliye-addisyon ak presizyon enfini nan yon sèl awondi, men olye yo te akimile erè awondi ak chak operasyon. Fonksyon sa yo te retire nan bibliyotèk yo bay la.
Move manyen konvèsyon fisèl (XC8-2921, XC8-2652) Lè yon 'sekans sijè' pou konvèsyon pa strtod Cr te gen sa ki te parèt yon nimewo k ap flote nan fòma eksponansyèl epi te gen yon karaktè inatandi apre karaktè e/E a, Lè sa a, kote endptr yo te bay, li te asiyen yon adrès ki te lonje dwèt sou karaktè a apre e/E a, tandiske li ta dwe lonje dwèt sou karaktè e/E a li menm, depi sa pa te konvèti. Pou egzanpample, strtod ("100exx", &ep) ta dwe retounen 100.00 epi mete ep pou lonje dwèt sou pati "exx" fisèl la, tandiske fonksyon an te retounen valè kòrèk la men mete ep pou lonje dwèt sou pati "xx" fisèl la. .
5.2. Vèsyon 2.40
Twò rilaks (XCS-2876) Lè w ap itilize opsyon -mrelax a, du a pa t 'allocation kèk seksyon ansanm, sa ki lakòz gwosè kòd mwens optimal. Sa a te ka rive ak kòd ki te itilize nouvo bibliyotèk MUSL yo oswa ak senbòl fèb.
Karakteristik kat pa enfim jan sa endike nan avètisman (XC8-2875) Karakteristik const-data-in-config-mappedprogmem depann sou karakteristik const-data-in-progmem ke yo aktive. Si karakteristik const-data-inconfig-mapped-progmem la te aktive klèman lè l sèvi avèk opsyon an epi karakteristik const-data-inprogmem la te enfim, etap lyen an echwe, malgre yon mesaj avètisman ki di konst-data-in-con fig- Karakteristik mapped-progmem te otomatikman enfim, ki pa t kòrèk nèt. Karakteristik const-data-in-config-mapped-progmem kounye a konplètman enfim nan sitiyasyon sa a.
DFP chanje pou jwenn aksè kòrèkteman nan NVMCTRL (XC8-2848) Kòd demaraj exécution ki te itilize pa aparèy AVR64EA yo pa t 'pran an kont ke rejis NVMCTRL la te anba Pwoteksyon Chanjman Konfigirasyon (CCP) epi li pa t' kapab mete I0 SFR nan paj la te itilize pa konst-data-in-configmapped-progmem. karakteristik du du. Chanjman ki fèt nan AVR-Ex_DFP vèsyon 2.2.55 pral pèmèt kòd demaraj exécuter la kòrèkteman ekri nan rejis sa a.
Chanjman DFP pou evite kat jeyografik flash (XC8-2847) Yo te aplike yon solisyon pou yon pwoblèm ak karakteristik aparèy kat kat yo rapòte nan AVR128DA28/32/48/64 Silisyòm Errata (D580000882). Karakteristik konpile konst-data-in-config-mapped-progmem pa pral aplike pa default pou aparèy ki afekte yo, epi chanjman sa a ap parèt nan AVR-Dx_DFP vèsyon 2.2.160.
Bati erè ak sinhf oswa coshf (XC8-2834) Tantativ pou itilize fonksyon bibliyotèk sinhf () oswa coshf () te lakòz yon erè lyen, ki dekri yon referans ki pa defini. Fonksyon ki manke a referans kounye a te enkli nan distribisyon an du.
Bati erè ak nopa (XC,8-2833) Sèvi ak atribi nopa a ak yon fonksyon ki te espesifye non asanblaj li lè l sèvi avèk asm ( ) te deklanche mesaj erè nan men moun k ap asanble a. Konbinezon sa a pa posib.
Echèk fonksyon varyadik ak agiman konsèy (XC8-2755, XC8-2731) Fonksyon ki gen yon kantite agiman varyab espere endikasyon 24-bit (tip memx) yo dwe pase nan lis agiman varyab la lè karakteristik konst-data-in-progmem la aktive. Agiman ki te endikasyon sou memwa done yo te pase kòm objè 16-bit, sa ki lakòz echèk kòd lè yo te finalman li. Lè karakteristik constdata-in-progmem la aktive, tout agiman endikasyon 16-bit yo kounye a konvèti nan endikasyon 24-bit.
Fonksyon bibliyotèk strtoxxx echwe (XC8-2620) Lè karakteristik const-data-in-progmem te aktive, paramèt endptr nan fonksyon bibliyotèk strtoxxx yo pa te mete ajou byen pou agiman fisèl sous ki pa nan memwa pwogram lan.
Avètisman pou jete envalid (XC8-2612) Konpilatè a pral kounye a bay yon erè si karakteristik const-in-progmem aktive epi adrès yon literal fisèl klèman jete nan espas adrès done (depoze kalifikasyon konst la), pou egzanp.ample, (uint 8_t *) "Bonjou mond!". Yon avètisman se yon pwoblèm si adrès la ta ka pa valab lè yon konsèy done konst yo jete klèman nan espas adrès done.
Plasman objè konst ki pa inisyalize (XC8-2408) Objè ki pa inisyalize konst ak konst temèt pa t ap mete nan memwa pwogram nan sou aparèy ki kat tout oswa yon pati nan memwa pwogram yo nan espas adrès done yo. Pou aparèy sa yo, objè sa yo yo mete kounye a nan memwa pwogram, ki fè operasyon yo konsistan ak lòt aparèy.
5.3. Version 2.39 (Fonksyonèl Sekirite Release)
Okenn.
5.4. Vèsyon 2.36
Erè lè w ap retade (XC8-2774) Chanjman minè nan optimize mòd gratis default yo te anpeche konstan plisman ekspresyon operand nan fonksyon reta entegre yo, sa ki lakòz yo te trete kòm ki pa konstan ak deklanche erè a: builtin avr delay_cycles espere yon konstan nonb antye relatif tan konpile.
5.5. Vèsyon 2.35
Alokasyon kontigu lè l sèvi avèk _at (XC8-2653) Alokasyon kontigu nan plizyè kote objè nan yon seksyon ki gen menm non ak lè l sèvi avèk _at ( ) pa t travay kòrèkteman. Pou egzanpample:
const char arr1 [] __attribute__((seksyon (".mysec"))) __at (0x500) = {0xAB, 0xCD};
const char arr2 [] __attribute__((seksyon (".mysec"))) = {0xEF, 0xFE};
ta dwe mete arr2 imedyatman apre arr1.
Espesifye adrès kòmanse seksyon (XC8-2650) The Opsyon -W1, –section-start te an silans echwe pou mete seksyon yo nan adrès kòmanse nominasyon an. Pwoblèm sa a te fikse pou nenpòt seksyon ki gen non koutim; sepandan, li p ap travay pou okenn seksyon estanda, tankou . tèks oswa . bss, ki dwe mete lè l sèvi avèk yon opsyon -W1, -T.
Linker aksidan lè ap detann (XC8-2647) Lè optimize -mrelax la te aktive epi te gen kòd oswa seksyon done ki pa t 'anfòm nan memwa ki disponib, linker la te fè aksidan. Koulye a, nan yon sikonstans konsa, mesaj erè yo bay pito.
Pa gen okenn-tonbe-tounen (XC8-2646) The –Opsyon nofallback pa te kòrèkteman aplike, ni dokimante. Sa a kapab kounye a dwe chwazi asire ke du a pa pral tonbe tounen nan yon anviwònman optimize pi ba si konpilatè a pa gen lisans, epi li pral olye bay yon erè.
Optimize vitès ki pa apwopriye (X03-2637) Optimizasyon abstrè pwosedi yo te pèmèt lè w ap chwazi optimize nivo 3 (-03). Optimize sa yo redwi gwosè kòd nan depans lan nan vitès kòd, kidonk pa ta dwe fèt.
Move EEPROM aksè (XC8-2629) A Woutin eeprom_read_block pa t travay kòrèkteman sou aparèy Xmega lè opsyon -mconst-data-in-progmem te aktive (ki se eta default), sa ki lakòz memwa EEPROM pa t li kòrèkteman.
Alokasyon memwa envalid (XC8-2593, XC8-2651) Lè a -Ttext oswa -Tdata opsyon linker (pa egzanpample te pase nan lè l sèvi avèk yon opsyon chofè -vl) espesifye, orijin ki koresponn tèks / done rejyon an te mete ajou; sepandan, adrès la fen pa te ajiste kòmsadwa, ki te kapab mennen nan rejyon an depase ranje memwa aparèy sib la.
Aksidan ak fonksyon twòp atribiye (XC8-2580) Konpilatè a te fè aksidan si yo te deklare yon fonksyon lè l sèvi avèk plis pase youn nan atribi entèwonp, siyal oswa nmi, pa egzanp, atribi (( signal , enterrupt ) ).
Kòd entèwonp ATtiny ki pa valab (XC8-2465) Lè bati pou aparèy ATtiny ak optimize yo te enfim (-00), fonksyon entèwonp yo ka te deklanche operatand soti nan mesaj asanblaj.
Opsyon yo pa pase nan (XC8-2452) Lè w ap itilize opsyon a ak plizyè opsyon linker ki separe ak vigil, se pa tout opsyon linker yo te pase nan linker la.
Erè li endirèkteman nan memwa pwogram nan (X03-2450) Nan kèk ka, konpilatè a te pwodui yon erè entèn (insn ki pa rekonèt) lè li te li yon valè de byte ki soti nan yon konsèy nan memwa pwogram.
5.6. Vèsyon 2.32
Dezyèm aksè nan bibliyotèk echwe (XC8-2381) Envoke vèsyon an Windows nan xc8-ar la. .exe bibliyotèk achiv yon dezyèm fwa pou jwenn aksè nan yon achiv bibliyotèk ki egziste deja ka echwe ak yon pa kapab chanje non mesaj erè.
5.7. Vèsyon 2.31
Konpilateur san rezon echèk (XC8-2367) Lè w ap kouri sou platfòm Windows ki te gen anyè tanporè sistèm lan mete sou yon chemen ki enkli yon pwen '.' karaktè, konpilatè a ka echwe pou pou egzekite.
5.8. Vèsyon 2.30
Etikèt mondyal yo mal plase apre deskripsyon (XC8-2299) Kòd asanble ki ekri alamen ki mete etikèt mondyal yo nan sekans asanble ki dekonpoze pa pwosedi abstrè yo ta ka pa t kòrèkteman repositionne.
Yon aksidan ap detann (XC8-2287) Sèvi ak opsyon -mrelax la te ka lakòz linker a aksidan lè optimize detant so ke yo te eseye retire enstriksyon ret ki pa te nan fen yon seksyon.
Aksidan lè optimize etikèt kòm valè (XC8-2282) Kòd lè l sèvi avèk "Etikèt kòm valè" ekstansyon lang GNU C yo te ka lakòz optimize abstraksyon pwosedi yo aksidan, ak yon seri VMA Deskripsyon ki kouvri erè.
Pa tèlman konst (XC8-2271) Pwototip yo pou st rstr ( ) ak lòt fonksyon soti nan pa presize kalifikasyon konst ki pa estanda a sou pwent fisèl yo retounen lè karakteristik -mconst-data-inprogmem dezaktive. Remake byen ke ak aparèy avrxmega3 ak avrtiny, karakteristik sa a aktive pou tout tan.
Inisyalize pèdi (XC8-2269) Lè plis pase yon sèl varyab nan yon inite tradiksyon te plase nan yon seksyon (itilize _section oswa _attribute_ ( (seksyon) )), epi premye varyab sa yo te inisyalize zewo oswa pa t gen yon inisyalize, inisyalize pou lòt varyab nan menm inite tradiksyon an ki te plase. nan menm seksyon an te pèdi.
5.1. Version 2.29 (Fonksyonèl Sekirite Release)
Okenn.
5.2. Vèsyon 2.20
Erè ak kòmandman long (XC8-1983) Lè w ap itilize yon sib AVR, konpilatè a ka sispann ak a file pa jwenn erè, si liy lòd la te trè gwo epi li te genyen karaktè espesyal tankou quotes, backslash, elatriye.
Seksyon rodata ki pa asiyen (XC8-1920) Linker AVR a echwe pou pou bay memwa pou seksyon rodata koutim lè bati pou achitekti avrxmega3 ak avrtiny, ki kapab lakòz erè sipèpoze memwa.
5.3. Vèsyon 2.19 (Fonksyonèl Sekirite Liberasyon)
Okenn.
5.4. Vèsyon 2.10
Echèk demenajman (XC8-1891) Alokatè ki pi bon an te kite 'twou' memwa nan ant seksyon apre detant linker. Akote de fragmentation memwa, sa a te ogmante posiblite pou gen echèk demenajman linker ki gen rapò ak so PC-relatif oswa apèl vin soti nan ranje.
Enstriksyon ki pa transfòme pa detant (XC8-1889) Linker detant pa t rive pou enstriksyon so oswa apèl ki gen sib yo vin rive si yo rilaks.
Manke fonksyonalite (XC8E-388) Plizyè definisyon soti nan , tankou clock_div_t ak clock_prescale set () , pa te defini pou aparèy, tankou ATmega324PB, ATmega328PB, ATtiny441, ak ATtiny841.
Makro ki manke yo Makro preprosesè _XC8_MODE_, _XC8_VERS ION, _XC, ak _XC8 pa te defini otomatikman pa du a. Sa yo disponib kounye a.
5.5. Vèsyon 2.05
Erè konpilatè entèn (XC8-1822) Lè w ap bati anba Windows, yo ka gen yon erè entèn nan konpilatè lè w ap optimize kòd.
RAM debòde pa detekte (XC8-1800, XC8-1796) Pwogram ki depase RAM disponib pa te detekte pa du a nan kèk sitiyasyon, sa ki lakòz yon echèk kòd ègzekutabl.
Omisyon memwa flash (XC8-1792) Pou aparèy avrxmega3 ak avrtiny, MPLAB X ka kite pati memwa flash la pa pwograme. IDE.
Si w pa egzekite prensipal (XC8-1788) Nan kèk sitiyasyon kote pwogram nan pa te gen okenn varyab mondyal defini, kòd la demaraj ègzekutabl pa t 'soti ak fonksyon prensipal la ( ) pa janm te rive jwenn.
Enfòmasyon sou memwa ki pa kòrèk (XC8-1787) Pou aparèy avrxmega3 ak avrtiny, pwogram avr-size te rapòte ke done lekti sèlman te konsome RAM olye pou yo memwa pwogram lan.
Lekti memwa pwogram ki pa kòrèk (XC8-1783) Pwojè konpile pou aparèy ki gen memwa pwogram trase nan espas adrès done yo epi ki defini objè lè l sèvi avèk makro/atribi PROGMEM yo ta ka li objè sa yo nan move adrès la.
Erè entèn ak atribi (XC8-1773) Yon erè entèn ki te fèt si ou te defini objè pointeur ak la
_at () oswa atribi () tokens nan ant non konsèy la ak kalite dereferans, pou egzanpample, char *
_nan (0x800150) cp; Kounye a gen yon avètisman si yo jwenn kòd sa a.
Si w pa egzekite prensipal (XC8-1780, XC8-1767, XC8-1754) Sèvi ak varyab EEPROM oswa defini fyouz lè l sèvi avèk pragma konfigirasyon an ta ka lakòz inisyalizasyon done kòrèk ak / oswa fèmen ekzekisyon pwogram nan nan kòd la demaraj ègzekutabl, anvan yo rive nan prensipal ( ) .
Fuse erè ak aparèy ti (XC8-1778, XC8-1742) Aparèy attiny4/5/9/10/20/40 yo te gen yon longè fuzib ki pa kòrèk espesifye nan header yo. files ki mennen nan erè linker lè w ap eseye bati kòd ki defini fusibles.
Segmantasyon fay (XC8-1777) Yo korije yon fay segmentasyon tanzantan.
Asanble aksidan (XC8-1761) Avr-as assembler a ta ka fè aksidan lè konpilatè a te kouri anba Ubuntu 18.
Objè yo pa netwaye (XC8-1752) Objè ki dire depo estatik ki pa inisyalize yo ta ka pa te otorize pa kòd demaraj la ègzekutabl.
Espesifikasyon aparèy konfli inyore (XC8-1749) Konpilateur a pa t 'genere yon erè lè plizyè opsyon spesifikasyon aparèy yo te itilize epi endike aparèy diferan.
Koripsyon memwa pa pil (XC8-1748) The _heap_start senbòl yo te mete mal, sa ki lakòz posiblite pou varyab òdinè yo te pèvèti pa pil la.
Erè deplasman Linker (XC8-1739) Yon erè demenajman linker ta ka te emèt lè kòd te genyen yon rjmp oswa rcall ak yon sib egzakteman 4k byte lwen.
5.6. Vèsyon 2.00
Okenn.
Pwoblèm li te ye
Sa ki anba la yo se limit nan operasyon konpilatè a. Sa yo ka restriksyon jeneral kodaj, oswa devyasyon nan enfòmasyon ki nan manyèl itilizatè a. Etikèt ki mete parantèz yo nan tit la se idantifikasyon pwoblèm sa a nan baz done swiv la. Sa a ka benefisye si ou bezwen kontakte sipò. Atik sa yo ki pa gen etikèt yo se limit ki dekri modi operandi e ki gen anpil chans pou yo rete an vigè pou tout tan.
6.1. MPLAB X IDE Entegrasyon
MPLAB IDE entegrasyon Si yo dwe itilize Konpilateur nan MPLAB IDE, Lè sa a, ou dwe enstale MPLAB IDE anvan ou enstale Konpilateur.
6.2. Jenerasyon Kòd
Segfault ak opsyon seksyon-ankr (XC8-3045) Pwogram ki defini fonksyon ak lis agiman varyab epi ki sèvi ak opsyon -fsection-anchors te kapab deklanche yon erè entèn konpilatè: Fay Segmantasyon.
Debug enfòmasyon ki pa senkronize (XC8-2948) Lè optimize detant linker retresi enstriksyon (pa egzanpample apèl pou rcall enstriksyon), liy sous pou adrès kat ka pa rete nan senkronizasyon lè gen plis pase yon operasyon retresi ki fèt nan yon seksyon.
Nan egzanp ki anba aample, genyen de apèl pou foo ki fini détendue pou apèl relatif.
Echèk alokasyon memwa PA (XC8-2881) Lè w ap itilize optimiseur abstraksyon pwosedi yo, linker a ka rapòte erè alokasyon memwa lè gwosè kòd la tou pre kantite memwa pwogram ki disponib sou aparèy la, menmsi pwogram nan ta dwe kapab anfòm espas ki disponib la.
Pa tèlman entelijan Smart-I0 (XC8-2872) Karakteristik entelijan-io konpilatè a pral jenere kòd ki valab men ki pa pi bon pou fonksyon snprint f si karakteristik konst-data-in-progmem la te enfim oswa si aparèy la gen tout flash li yo trase nan memwa done.
Menm mwens entelijan Smart-I0 (XC8-2869) Karakteristik smart-io konpilatè a pral jenere kòd ki valab men ki pa pi bon lè yo tou de itilize opsyon -flto ak -fno-builtin.
Plasman done ki pa pi bon pou lekti sèlman (XC8-2849) Linker la kounye a pa okouran de seksyon memwa APPCODE ak APPDATA, ni divizyon [Pa Lekti-Pandan-Ekri-Pandan-Ekri nan kat memwa a. Kòm yon rezilta, gen yon ti chans pou linker a ka asiyen done sèlman pou lekti nan yon zòn memwa ki pa apwopriye. Chans pou done mal plase ogmante si fonksyon const-data-in-progmem la aktive, sitou si fonksyon const-data-in-config-mapped-progmem yo aktive tou. Karakteristik sa yo ka enfim si sa nesesè.
Objè file pwosesis lòd (XC8-2863) Lòd nan ki objè yo files yo pral trete pa linker a ta ka diferan selon itilizasyon optimize abstraksyon pwosedi (opsyon -mpa). Sa a ta sèlman afekte kòd ki defini fonksyon fèb atravè modil miltip.
Erè Linker ak absoli (XC8-2777) Lè yon objè te fè absoli nan yon adrès nan kòmansman an nan RAM ak objè ki pa inisyalize yo te defini tou, yon erè linker ka deklanche.
Kout idantite reveye (XC8-2775) Pou aparèy ATA5700/2, rejis PHIDO/1 yo defini sèlman kòm 16 bit lajè, olye ke 32 bit lajè.
Linker aksidan lè w ap rele senbòl (XC8-2758) Linker a ka fè aksidan si yo itilize opsyon chofè -mrelax lè kòd sous la rele yon senbòl ki te defini lè l sèvi avèk opsyon linker -cc., –de f sym.
Inisyalizasyon kòrèk (XC8-2679) La se yon diferans ki genyen ant kote valè inisyal yo pou kèk objè mondyal/estatik ki gwosè byte yo mete nan memwa done ak kote yo pral jwenn aksè nan varyab yo nan tan exécution.
Move apèl fonksyon endirèk (XC8-2628) Nan kèk ka, apèl fonksyon ki fèt atravè yon pwent fonksyon ki estoke kòm yon pati nan yon estrikti ka echwe.
strtof retounen zewo pou flote egzadesimal (XC8-2626) Fonksyon bibliyotèk strtof et al ak scanf ( ) et al, ap toujou konvèti yon nimewo ègzadesimal k ap flote ki pa presize yon ekspozan a zewo. Pou egzanpample:
strtof ("Oxl", &endptr);
pral retounen valè 0, pa mwen.
Mesaj konseye pile ki pa kòrèk (XC8-2542, XC8-2541) Nan kèk ka, avètisman konseye pile a konsènan repetisyon oswa pil endetèmine yo itilize (petèt atravè itilizasyon alloca()) pa emèt.
Echèk ak kòd entèwonp kopi (XC8-2421) Kote plis pase yon fonksyon entèwonp gen menm kò a, du a ta ka gen pwodiksyon an pou yon fonksyon entèwonp rele lòt la. Sa a pral lakòz tout rejis apèl yo te sove san nesesite, epi entèwonp yo pral pèmèt menm anvan epilòg la nan moun k ap okipe entèwonp aktyèl la te kouri, ki ta ka mennen nan echèk kòd.
Move pwodiksyon ak chemen DFP ki pa valab (XC8-2376) Si yo envoke konpilatè a ak yon chemen DFP ki pa valab ak yon 'spec' file egziste pou aparèy la chwazi a, konpilatè a pa rapòte pake fanmi aparèy ki manke a epi olye li chwazi 'espèks' la. file, ki ta ka mennen nan yon pwodiksyon envalid. 'Espèk la' files ta ka pa ajou ak DFP distribye yo epi yo te fèt pou itilize ak tès konpilatè entèn yo sèlman.
Sipèpoze memwa pa detekte (XC8-1966) Konpilatè a pa detekte sipèpoze memwa objè ki fèt absoli nan yon adrès (via _at ( )) ak lòt objè lè l sèvi avèk seksyon ( ) spesifikatè epi ki lye nan menm adrès la.
Echèk ak fonksyon bibliyotèk ak _memx (XC8-1763) Yo rele fonksyon flote libgcc ak yon agiman nan espas adrès memx la ka echwe. Remake byen ke woutin bibliyotèk yo rele nan kèk operatè C, kidonk, pou egzanpample, kòd sa a afekte:
retounen regFloatVar > memxFloatVar;
Limite aplikasyon libgcc (AVRTC-731) Pou pwodwi ATTiny4/5/9/10/20/40, aplikasyon estanda bibliyotèk C / Matematik nan libgcc trè limite oswa li pa prezan.
Limit memwa pwogram (AVRTC-732) Chèn zouti a sipòte imaj memwa pwogram ki depase 128 kb; sepandan, gen kèk ka avòtman linker san detant epi san yon mesaj erè itil olye ke jenere souch fonksyon obligatwa yo lè yo itilize opsyon -mre lax la.
Limit espas non (AVRTC-733) Chèn zouti a sipòte espas adrès yo nonmen, sijè a limit ki mansyone nan seksyon gid itilizatè a Kalifikasyon Espesyal Kalite.
Zòn tan yo fonksyon bibliyotèk yo asime GMT epi yo pa sipòte zòn lè lokal yo, kidonk lè lokal ( ) ap retounen menm lè ak gmtime ( ) , pou egzanp.ample.
file:///Applications/microchip/xc8/v2.41/docs/Readme_XC8_for_AVR.htm
Dokiman / Resous
![]() |
MICROCHIP MPLAB XC8 C lojisyèl devlopman konpilateur [pdfManyèl Pwopriyetè a MPLAB XC8 C, MPLAB XC8 C lojisyèl devlopman konpilatè, lojisyèl devlopman konpilatè, lojisyèl devlopman, lojisyèl |