MICROCHIP MPLAB XC8 C lojisyèl konpilateur 

MICROCHIP MPLAB XC8 C lojisyèl konpilateur

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

Entwodiksyon

Version sa a nan Microchip MPLAB® XC8 C konpilatè a gen plizyè karakteristik nouvo, korije ensèk, ak sipò nouvo aparèy.

Dat Konstwi

Dat ofisyèl konstriksyon vèsyon konpilatè sa a se 3 jiyè 2022.

Previous Version

Vèsyon MPLAB XC8 C anvan an te 2.39, yon konpilatè sekirite fonksyonèl, ki te bati sou 27 janvye 2022. Konpilatè estanda anvan an te vèsyon 2.36, ki te bati sou 27 janvye 2022.

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.

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 distribye gratis epi yo disponib pou piblik la. Kòd sous la pou zouti anba GNU GPL ka telechaje separeman ak Microchip la websit. Ou ka li GNU GPL nan file yo rele ki sitiye sou-anyè nan anyè enstalasyon ou a. Ou ka jwenn yon diskisyon jeneral sou prensip ki kache nan GPL la. Kòd sipò bay pou header la files, scripts linker, ak bibliyotèk kouri 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.

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 mac OS te siyen kòd ak notarye.

Si w ap kouri yon sèvè lisans rezo, sèlman òdinatè ki gen sistèm opere ki sipòte pa konpilateur yo ka itilize pou òganize sèvè lisans lan. Apati vèsyon xclm 2.0, sèvè lisans rezo a ka enstale sou yon platfòm Microsoft Windows Server, men sèvè lisans lan pa bezwen kouri sou yon vèsyon sèvè nan sistèm operasyon an.

Aparèy Sipòte

Konpilateur sa a sipòte tout aparèy AVR MCU 8-bit li te ye nan moman lage a. Gade (nan anyè doc compilateur a) pou yon lis tout aparèy ki sipòte. Sa yo files tou lis konfigirasyon bit paramèt pou chak aparèy.

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 konpilateur 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.

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 .exe (Windows), .run (Linux) oswa app (macOS) aplikasyon pou enstale konpilatè a, pa egzanp XC8-1.00.11403-windows.exe epi swiv enstriksyon ki sou ekran an.
Anyè enstalasyon default la 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 peryòd tan kout. 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.

Rezoud Pwoblèm Enstalasyon

Si ou gen difikilte pou enstale du 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 file, chwazi Pwopriyete, Sekirite tab, 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 file dyalòg eksploratè ki montre anyè sa a epi li pral pèmèt ou detèmine chemen katab sa a.

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.

Dokimantasyon konpilatè
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.

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:

  • Avi sou copyright MUSL
  • Enstale ak Lisans MPLAB XC C Konpilateur (revizyon M)
  • Gid Itilizatè MPLAB XC8 pou Enjenyè Embedded - AVR MCUs (revizyon A)
  • MPLAB XC8 C Konpilatè Itilizatè Gid pou AVR MCU (revizyon F)
  • Gid Referans Bibliyotèk Estanda Inifye Microchip (revizyon B)

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 User!s Guide for AVR® MCU. Enfòmasyon bibliyotèk espesifik pou aparèy yo toujou genyen nan gid konpilatè sa a.

Si w ap fèk kòmanse ak aparèy 8-bit ak MPLAB XC8 C Compiler la, MPLAB® XC8 User!s Guide for Embedded Engineers – AVR® MCUs (DS50003108) gen enfòmasyon sou mete kanpe pwojè nan MPLAB X IDE ak ekri kòd. pou premye pwojè MPLAB XC8 C ou a. Gid sa a kounye a distribye ak du a.

Gid Itilizatè Hamate a te enkli nan anyè docs nan lage sa a. Gid sa a fèt pou moun kap kouri Hamate 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 an pou sipòte karakteristik ki swiv yo.

Vèsyon 2.40

Nouvo sipò aparèy Sipò disponib kounye a pou pati AVR sa yo: AT90PWM3, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR64EA28, AVR64EA32EA64, ak AVR48EAXNUMXEAXNUMX.
Amelyore abstrè pwosedi Zouti optimize pwosedi abstrè (PA) la amelyore pou kòd ki gen yon enstriksyon apèl fonksyon (call rappel) ka dekri. Sa a pral fèt sèlman 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 monk-pa-outline-calls la, oswa abstraksyon pwosedi ka enfim nèt pou yon objè. file oswa fonksyone lè l sèvi avèk -monk-pa-on-file ak -mo.-pa-on-fonction respektivman, oswa lè w itilize atribi nipa ( nipa specifier ) selektivman ak fonksyon

Kouvèti kòd makro Konpilatè a kounye a defini makro a __CODECOV si yo espesifye yon opsyon mcodecov ki valab.

Opsyon rezèvasyon memwa Chofè xc8-cc a pral kounye a aksepte opsyon -mreserve=space@start:end lè bati pou sib AVR. Opsyon sa a rezève seri memwa espesifye nan espas memwa done oswa pwogram, sa ki anpeche linker a peple kòd oswa objè nan zòn sa a.

Pi entelijan IO entelijan Yo te fè plizyè amelyorasyon nan fonksyon Smart IO yo, ki gen ladan ajisteman jeneral nan kòd debaz printf la, trete %n konvèsyon specifier kòm yon varyant endepandan, lyen nan woutin pòp vararg sou demann, lè l sèvi avèk kalite done ki pi kout kote sa posib pou jere 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.

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.

Vèsyon 2.36

Okenn.

Vèsyon 2.35

Nouvo sipò aparèy Gen sipò ki 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 yo sove rejis yo 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 kontèks chanje Nouvo opsyon -mgas-isr-prologues kontwole kontèks itch kòd ki te pwodwi pou ti woutin sèvis entèwonp. 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è.

Configurable kat kat flash Kèk aparèy nan fanmi AVR DA ak AVR DB gen yon SFR (egzanp FLMAP) ki presize ki seksyon 32k memwa pwogram ki pral trase nan memwa done yo. Nouvo - mconst-data-in-config-mapped-proem opsyon ka itilize pou fè linker la mete tout done ki kalifye nan yon seksyon 32k epi otomatikman inisyalize rejis SFR ki enpòtan an pou asire ke done sa yo trase nan espas memwa done yo. , kote li 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. Gid Itilizatè MPLAB® XC8 C Compilateur/oswa AVR® MCU pa gen 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 Bibliyotèk):'. fonksyonalite...)

Smart IO Kòm yon pati nan nouvo bibliyotèk inifye yo, fonksyon IO nan fanmi enprime ak eskanè yo kounye a se koutim pwodwi sou chak bati, ki baze sou fason yo itilize fonksyon sa yo nan pwogram nan. Sa a ka redwi anpil resous yo itilize pa yon pwogram.
Smart IO opsyon asistans Lè w ap analize apèl nan fonksyon IO entelijan (tankou printf () oswa scanf () ), konpilatè a pa ka toujou detèmine apati kòd fòma a oswa dedwi nan agiman sa yo spesifikatè konvèsyon yo mande pou apèl la. Précédemment, du a toujou pa fè okenn sipozisyon epi asire ke fonksyon IO 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 IO entelijan ki gen itilizasyon anbigwi, sa ki anpeche woutin IO ki twò long yo te lye. (Gade Opsyon smart-io-format pou plis detay.)

Mete seksyon koutim Anvan sa, opsyon -Wl, –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 -Wl, -Tsection=ajoute, jan sa dekri nan gid itilizatè a.

Vèsyon 2.32

Pile konsèy Disponib avèk yon lisans du PRO, yo ka itilize karakteristik gid konpilatè a pou estime pwofondè maksimòm nenpòt pil ke yon pwogram itilize. Li konstwi ak analize graf apèl nan yon pwogram, detèmine itilizasyon pil chak fonksyon, epi pwodui yon rapò, ki soti nan ki pwofondè pil yo itilize pa pwogram nan ka dedwi. 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ò aparèy ki disponib pou pati AVR sa yo: ATTINY 427, ATTINY 424, ATTINY 426, ATTINY827, ATTINY824, ATTINY826, AVR32DB32, AVR64DB48, AVR64DB64, AVR64DB28, AVR32DB28, AVR64DB32, AVR32, ak.

Sipò sipò aparèy retire pa disponib ankò pou pati AVR sa yo: AVR16DA28, AVR16DA32 ak, AVR16DA48.

Vèsyon 2.31

Okenn.

Vèsyon 2.30

Nouvo opsyon pou anpeche inisyalizasyon done Yon nouvo opsyon chofè -mno-data-ini t anpeche inisyalizasyon done ak netwaye seksyon bss yo. Li travay pa siprime pwodiksyon done do_ copy_ ak senbòl d o_ clear_ bss 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 lank, ki pèmèt aksè nan objè estatik yo dwe fè parapò ak yon senbòl; -mpai derations=n, ki pèmèt kantite iterasyon abstraksyon pwosedi yo dwe chanje soti nan default 2; epi, -mpa- call cost- 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ò aparèy Sipò disponib pou pati AVR sa yo: AVR16DA28, AVR16DA32,
AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR128DB28, AVR128DB32, AVR128DB48, ak AVR128DB64.

Sipò pou aparèy retrè Sipò pa disponib ankò pou pati AVR sa yo: ATA5272, ATA5790, ATA5790N, ATA5791, ATA5795, ATA6285, ATA6286, ATA6612C, ATA6613C, ATA6614Q, ATA6616C, ATA6617C, ak ATA664251C.

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 yo pou tout fonksyon ki entegre yo, tankou _buil tin _avrnop () ak _buil tin_ avr delay_ cycles () . Gen kèk entegre yo ka pa konfòme MISRA; sa yo ka omisyon lè w ajoute defini _Xe_ STRICT_ MISRA nan liy lòd konpilatè a. Konstriksyon yo ak deklarasyon yo te mete ajou pou itilize kalite lajè fiks yo.

Vèsyon 2.20

Nouvo sipò aparèy Gen sipò ki disponib pou pati AVR sa yo: ATTINY1624, ATTINY1626, ak ATTINY1627.

Pi bon alokasyon anfòm Yo te amelyore alokasyon ki pi bon an (BFA) nan konpilatè a pou ke seksyon yo resevwa lajan 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 abstrè pwosedi Optimizasyon yo abstraksyon pwosedi yo kounye a fèt 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ò.

Version 2.19 (Fonksyonèl Sekirite Release)

Okenn.

Vèsyon 2.10

Kouvèti Kòd Lage sa a gen ladan yon karakteristik kouvèti kòd ki fasilite analiz 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. #pragma mcodecov ka itilize 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, atribi a ((mcodecov)) ka itilize pou eskli yon fonksyon espesifik nan analiz kouvèti asirans lan.

Deskripsyon aparèy files Yon nouvo aparèy file 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 non yon aparèy, epi li pral ouvri yon paj ki montre tout konfigirasyon bit ki pèmèt/pèrè valè 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 optimize. Optimize sa yo diminye gwosè kòd, men yo ka diminye vitès ekzekisyon ak debogaj kòd.
Abstraksyon pwosedi yo ka enfim nan pi wo nivo optimize lè l sèvi avèk opsyon -mno-pa, oswa yo ka aktive nan nivo optimize ki pi ba (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 sou fonksyon = fonksyon.
Anndan kòd sous ou a, abstraksyon pwosedi ka enfim pou yon fonksyon lè w itilize _attribute_ ((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 Konfigirasyon #pragma a kapab kounye a itilize pou presize Bits fèmen AVR yo ansanm ak lòt Bits konfigirasyon yo. Tcheke enfòmasyon avr chip la. html file (mansyone pi wo a) pou pè anviwònman/valè yo itilize ak pragma sa a.
Nouvo sipò aparèy Sipò disponib pou pati sa yo: AVR28DA128, AVR64DA128, AVR32DA128, ak AVR48DA128.

Vèsyon 2.05

Plis Bits pou lajan ou Vèsyon macOS konpilateur ak manadjè lisans sa a 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 konst yo estoke nan memwa flash pwogram yo epi yo ka jwenn aksè dirèkteman ak endirèkteman done sa yo lè l sèvi avèk enstriksyon ki apwopriye pou memwa pwogram 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.
Standard pou gratis Vèsyon ki pa gen lisans (gratis) nan du 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 Creole.
Byenveni AVRASM2 Asanble AVRASM2 pou aparèy 8-bit yo enkli kounye a 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ò aparèy Sipò disponib pou pati sa yo: ATMEGA1608, ATMEGA1609, ATMEGA808, ak ATMEGA809.

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 aparèy sib la. 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 Konpilateur sa a kapab kounye a konfòme yo ak MPLAB Common C Interface, sa ki pèmèt kòd sous yo dwe 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 du. Nimewo vèsyon an nan soutit yo endike premye vèsyon an pou sipòte chanjman ki vin apre yo.

Vèsyon 2.40

Okenn.

Version 2.39 (Fonksyonèl Sekirite Release)

Okenn.

Vèsyon 2.36

Okenn.

Vèsyon 2.35

Manyen nan baz fisèl (XCS-2420) Pou asire konsistans ak lòt konpilatè XC, fonksyon XC8 string-to, tankou strtol () elatriye, p ap eseye konvèti yon fisèl antre ankò 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 lyen nan bibliyotèk lprintf_flt (-print _flt opsyon) pou vire sou fòma sipò IO pou spécificateurs float-format. Karakteristik IO entelijan 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 const 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.

Vèsyon 2.32

Okenn.

Vèsyon 2.31

Okenn.

Vèsyon 2.30

Okenn.

Version 2.29 (Fonksyonèl Sekirite Release)

Okenn.

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.

Version 2.19 (Fonksyonèl Sekirite Release)

Okenn.

Vèsyon 2.10

Okenn

Vèsyon 2.05

Objè Const nan memwa pwogram lan Remake byen ke pa default, objè ki kalifye yo pral mete ak jwenn aksè nan memwa pwogram nan (jan sa dekri isit la) . Sa a pral afekte gwosè ak vitès ekzekisyon pwojè ou a, men li ta dwe diminye itilizasyon RAM. Yo ka enfim karakteristik sa a, si sa nesesè, lè l sèvi avèk opsyon -mnoconst- da ta-in-progmem.

Vèsyon 2.00

Konfigirasyon fusibles 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 WDT0N = SET
#pragma konfigirasyon B0DLEVEL = B0DLEVEL_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 _at (adrès), pa egzanp.ample: #include int foobar at (Ox800100); char at(Ox250) get ID(int offset) { … } Agiman pou spesifikatè sa a dwe yon konstan ki reprezante adrès kote yo pral plase 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 entèwonp (num) pou endike ke fonksyon C yo se moun kap okipe entèwonp. Espesifikatè a pran yon nimewo entèwonp, pou egzanpample: #include anile entèwonp (SPI STC_ vect _num) spi Isr (anile) { … }

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 swiv 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.

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 yo pa enfim jan sa endike nan avètisman (XCS-2875) Karakteristik cost-data-in-config mappedprogmem depann de karakteristik pri done-in-proem ke yo te aktive. Si karakteristik cost-data-ipconfig-mapped-proem te aktive klèman lè l sèvi avèk opsyon an epi si karakteristik cost-data-inprogmem la te enfim, etap lyen an echwe, malgre yon mesaj avètisman ki di ke dezavantaj done-in-config-mapped- karakteristik proem yo te otomatikman enfim, ki pa t kòrèk nèt. Karakteristik const-data-in-config-mapped-proem kounye a konplètman enfim nan sitiyasyon sa a.
DFP chanje pou jwenn aksè kòrèkteman nan NVMCTRL (XCS-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 IO SFR a nan paj la te itilize pa konpilatè a konst-data-in configmapped-proem. karakteristik. 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 kat (XCS-2847) Yo te aplike yon solisyon pou yon pwoblèm ak karakteristik nan aparèy kat kat yo rapòte nan AVR128DA28/32/48/64 Silisyòm Errata (DS80000882). Karakteristik konpilateur const-data-in-config-mapped-proem pa pral aplike pa default pou aparèy ki afekte yo, epi chanjman sa a ap parèt nan AVR-Ex_DFP vèsyon 2.2.160.
Bati erè ak sinhf oswa coshf (XCS-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 (XCS-2833) Sèvi ak atribi nopa a ak yon fonksyon ki te espesifye non asanblaj li yo lè l sèvi avèk kòm () mesaj erè deklanche soti nan asanble a. Konbinezon sa a pa posib.
Echèk fonksyon varyadik ak agiman konsèy (XCS-2755, XCS-2731) Fonksyon ki gen yon kantite agiman varyab espere 24-bit (tip _memo) endikasyon yo dwe pase nan lis agiman varyab la lè karakteristik pri-data-in-proem 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è dezavantaj done-in-proem karakteristik yo aktive, tout agiman endikasyon 16-bit yo kounye a konvèti nan endikasyon 24-bit. Fonksyon bibliyotèk strtoxxx echèk (XCS-2620) Lè yo te aktive fonksyon konst-data-in-proem, paramèt antre 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 (XCS-2612) Konpilatè a pral kounye a bay yon erè si karakteristik pri-an-proem yo aktive epi adrès yon literal fisèl klèman jete nan espas adrès done (depoze kalifikasyon konst la), pou egzanp.ample, (uint8 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 (XCS-2408) Objè konst ak konstv olatil ki pa inisyalize yo pa t ap mete nan memwa pwogram nan sou aparèy ki mete 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, sa ki fè operasyon yo konsistan ak lòt aparèy.

Version 2.39 (Fonksyonèl Sekirite Release)

Okenn.

Vèsyon 2.36

Erè lè yo retade (XCS-2774) Chanjman minè nan optimize mòd gratis yo te anpeche konstan plisman ekspresyon operand nan fonksyon reta entegre yo, sa ki lakòz yo trete yo kòm non kontak ak deklanche erè a: _buil tin avr delay_ cycles espere ac ompile tan konstan nonb antye relatif.

Vèsyon 2.35

Alokasyon kontigu lè l sèvi avèk _at (XCS-2653) Alokasyon kontigu nan plizyè kote objè nan yon seksyon ki gen menm non ak lè l sèvi avèk nan () pa t travay kòrèkteman. Pou egzanpample: constchararrl [ ] at tri butte ((sect on (".misses"))) at (Ox50 0 ) = {Oxo , Ox CD} ; cost char arr2[ ] at tri butte ((section(“.my s eke”))) = {Oxen, Ox FE }; ta dwe mete arr2 imedyatman apre aril.
Espesifye adrès kòmanse seksyon (XCS-2650) Opsyon -Wal, -section-start la 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 -Wl, -T.
Linker fè aksidan lè w ap detann (XCS-2647) Lè optimize -relax la te pèmèt 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.
Move aksè EEPROM (XCS-2629) Woutin blòk leproma _read_ pa t travay kòrèkteman sou aparèy Mega lè yo te aktive opsyon -monist-data-in-proem (ki se eta default), sa ki lakòz memwa EEPROM pa t li kòrèkteman.
Alokasyon memwa envalid (XCS-2593, XCS-2651) Lè opsyon -Text oswa -Tata linker (pa egzanpample te pase nan lè l sèvi avèk yon opsyon chofè -Wl) 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.
Kòd entèwonp ATtiny ki pa valab (XCS-2465) Lè bati pou aparèy Tatin ak optimize yo te enfim (-00), fonksyon entèwonp yo ka te deklanche operatand soti nan mesaj asanblaj.
Opsyon yo pa pase nan (XCS-2452) Lè w ap itilize opsyon -Wl la 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 (XCS-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.

Vèsyon 2.32

Dezyèm aksè nan bibliyotèk echwe (XCS-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è.

Vèsyon 2.31

Echèk konpilatè san rezon (XCS-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.

Vèsyon 2.30

Etikèt mondyal yo mal plase apre deskripsyon (XCS-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 (XCS-2287) Sèvi ak opsyon -merlad 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è (XCS-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 (XCS-2271) Pwototip yo pou kòmanse () ak lòt fonksyon soti nan pa presize kalifikasyon pri ki pa estanda a sou pwent fisèl yo retounen lè karakteristik -monist-data inprogmem la dezaktive. Remake byen ke ak aparèy avrxmega3 ak avertin, karakteristik sa a aktive pou tout tan.
Inisyalize pèdi (XCS-2269) Lè yo te mete plis pase yon varyab nan yon inite tradiksyon nan yon seksyon (itilize seksyon oswa atribi ((seksyon))), epi premye varyab sa a te inisyalize zewo oswa pa t gen yon inisyalize, inisyalize pou lòt varyab nan menm inite tradiksyon an. ki te mete nan menm seksyon an te pèdi.

Version 2.29 (Fonksyonèl Sekirite Release)

Okenn.

Vèsyon 2.20

Erè ak kòmandman long (XCS-1983) Lè w ap itilize yon sib AVR, du ka sispann ak yon 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 (XCS-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.

Version 2.19 (Fonksyonèl Sekirite Release)

Okenn.

Vèsyon 2.10

Echèk demenajman (XCS-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 yo pa transfòme pa detant (XCS-1889) Linker detant pa t 'rive pou so oswa rele enstriksyon ki gen objektif vin rive jwenn si rilaks.
Manke fonksyonalite (XCSE-388) Plizyè definisyon soti nan , tankou clock_ div_ t ak clock_prescale_set (), yo pa te defini pou aparèy, tankou ATmega324PB, ATmega328PB, ATtiny441, ak ATtiny841.
Makro ki manke yo Makro preprosesè yo_ xcs _MODE_, _xcs VERSION, _xc, ak xcs pa te otomatikman defini pa du a. Sa yo disponib kounye a.

Vèsyon 2.05

Erè konpilatè entèn (XCS-1822) Lè w ap bati anba Windows, yo ka pwodui yon erè du entèn lè w ap optimize kòd.
RAM debòde pa detekte (XCS-1800, XCS-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 (XCS-1792) Pou aparèy avrxmega3 ak avrtiny, MPLAB X IDE ka kite pati memwa flash la pa pwograme.
Echèk pou egzekite prensipal (XCS-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 rive jwenn.
Enfòmasyon sou memwa ki pa kòrèk (XCS-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 (XCS-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 (XCS-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 (0x80015 0) cp; Kounye a gen yon avètisman si yo jwenn kòd sa a.
Si w pa egzekite prensipal (XCS-1780, XCS-1767, XCS-1754) Sèvi ak varyab EEPROM oswa defini fuse 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 ti aparèy (XCS-1778, XCS-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 (XCS-1777) Yon fay segmentation tanzantan te korije.
Asanble aksidan (XCS-1761) Avr-as assembler a ta ka fè aksidan lè konpilatè a te kouri anba Ubuntu 18.
Objè yo pa netwaye (XCS-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 (XCS-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 (XCS-1748) Senbòl heap_ kòmanse yo te mete mal, sa ki lakòz posiblite pou varyab òdinè yo te pèvèti pa pil la.
Erè deplasman Linker (XCS-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.

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 mòd operandi epi ki gen anpil chans pou yo rete an vigè pou tout tan.

Entegrasyon MPLAB X IDE

MPLAB IDE entegrasyon Si yo dwe itilize Konpilateur nan MPLAB IDE, Lè sa a, ou dwe enstale MPLAB IDE anvan ou enstale Konpilateur.

Jenerasyon Kòd

Echèk alokasyon memwa PA (XCS-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-IO (XCS-2872) Karakteristik smart-io konpilatè a pral jenere kòd ki valab men ki pa pi bon pou fonksyon Sprint la si karakteristik kòt-data-in-proem la te enfim oswa si aparèy la gen tout flash li yo trase nan memwa done.
Menm mwens entelijan Smart-IO (XCS-2869) Karakteristik smart-io konpilatè a pral jenere kòd ki valab men ki pa pi bon lè yo tou de itilize opsyon fèblan -floe ak -fno-buil.
Plasman done ki pa pi bon pou lekti sèlman (XCS-2849) Linker la kounye a pa okouran de seksyon memwa APPCODE ak APPDATA, ni divizyon [Non-]Li-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 karakteristik kòt-data-in-pragma yo aktive, sitou si karakteristik coast-data-in-config-mapped-proem la aktive tou. Karakteristik sa yo ka enfim si sa nesesè.
Objè file pwosesis lòd (XCS-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 (XCS-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 (XCS-2775) Pou aparèy ATA5700/2, rejis PHID0/1 yo defini sèlman kòm 16 bit lajè, olye ke 32 bit lajè.
Linker aksidan lè w ap rele senbòl (XCS-2758) Linker a ka fè aksidan si opsyon chofè -merlad yo itilize lè kòd sous la rele yon senbòl ki te defini lè l sèvi avèk opsyon linker -Wl, –defsym.
Inisyalizasyon kòrèk (XCS-2679) Gen 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 an.
te kòmanse mal mete vid (XCS-2652) Nan ka kote yon seri sijè pou konvèsyon pa deklare () gen sa ki parèt yon nimewo k ap flote nan fòma eksponansyèl epi gen yon karaktè inatandi apre yon karaktè e, Lè sa a, adrès vid la, si li bay, pral montre karaktè a apre. e a epi li pa e li menm. Pou egzanpample: stated ("hooey", vid); sa pral lakòz vid montre karaktè x la.
Move apèl fonksyon endirèk (XCS-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 (XCS-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 an.
zewo. Pou egzanpample: stator ("Owl", & vid); pral retounen valè a 0, pa 1.
Mesaj konseye pile ki pa kòrèk (XCS-2542, XCS-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 (XCS-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.
Objè Const ki pa nan memwa pwogram (XCS-2408) Pou pwojè avrxmega3 ak avertins yo mete objè konst ki pa ideyal yo nan memwa done, menm si yon avètisman sijere ke yo te mete yo nan memwa pwogram lan. Sa a pa pral afekte aparèy ki pa gen memwa pwogram trase nan espas memwa done a, ni li pral afekte nenpòt objè ki inisyalize.
Move pwodiksyon ak chemen DFP ki pa valab (XCS-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 (XCS-1966) Konpilatè a pa detekte sipèpoze memwa objè ki fèt absoli nan yon adrès (via nan ()) ak lòt objè lè l sèvi avèk spesifikatè seksyon () epi ki lye nan menm adrès la.
Echèk ak fonksyon bibliyotèk ak _meme (XCS-1763) Yo rele fonksyon flote limbik ak yon agiman nan espas adrès _memo a 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 limbic (AVRTC-731) Pou pwodwi ATTiny4/5/9/10/20/40, aplikasyon estanda bibliyotèk C / Matematik nan limbic 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 sikonstans li te ye nan avòtman linker san detant epi san yon mesaj erè itil olye ke jenere souch fonksyon yo mande yo lè yo itilize opsyon -relax.
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 La fonksyon bibliyotèk yo asime GMT epi yo pa sipòte zòn lè lokal yo, kidonk lè lokal () ap retounen menm lè ak gummite (), pou egzanp.ample.

SIPÒ KLIYAN

file:///Applications/microehip/xc8/v 2 .40/docs/Li m_X C 8_ pou yon VR. htm

Dokiman / Resous

MICROCHIP MPLAB XC8 C lojisyèl konpilateur [pdfManyèl Pwopriyetè a
MPLAB XC8 C, MPLAB XC8 C lojisyèl du, lojisyèl du, lojisyèl

Referans

Kite yon kòmantè

Adrès imel ou p ap pibliye. Jaden obligatwa yo make *