Mpempe akwụkwọ mpịakọta MPLAB® XC8 C 2.41 ndetu mwepụta maka AVR® MCU
Akwụkwọ ntuziaka onye nwe
MPLAB XC8 C Compiler Development Software
AKWỤKWỌ a nwere ozi dị mkpa gbasara MPLAB XC8 C COMPILER MGBE A NA-ECHICHE MICROCHIP AVR ngwaọrụ.
Biko GỤỌ YA TUPU YA ATỤTA SOFTWARE A. Hụ ndetu Mwepụta MPLAB XC8 C maka akwụkwọ foto ma ọ bụrụ na ị na-eji ihe nchịkọta maka ngwaọrụ 8-Bit PIC.
gafereview
1.1. Okwu mmalite
Mwepụta nke Microchip MPLAB® XC8 C compiler nwere ọtụtụ atụmatụ ọhụrụ yana ndozi ahụhụ.
1.2. Ụbọchị owuwu
Ụbọchị nrụpụta ọrụ nke ụdị mkpokọta a bụ 8 Febrụwarị 2023.
1.3. Ụdị gara aga
Ụdị nchịkọta MPLAB XC8 C gara aga bụ 2.40 wuru na 3 Julaị 2022.
1.4. Akwụkwọ ntuziaka nchekwa ọrụ
Akwụkwọ ntuziaka nchekwa na-arụ ọrụ maka ndị nchịkọta MPLAB XC dị na ngwugwu akwụkwọ mgbe ịzụrụ ikike nchekwa na-arụ ọrụ.
1.5. Ikikere akụrụngwa na ụdị
A na-ede ma kesaa MPLAB XC8 C Compiler maka ngwa AVR MCU n'okpuru GNU General Public License (GPL) nke pụtara na koodu isi mmalite ya na-ekesa n'efu ma dị maka ọha.
Enwere ike ibudata koodu mmalite maka ngwaọrụ n'okpuru GNU GPL iche na Microchip's websaịtị. Ị nwere ike ịgụ GNU GPL n'ime faịlụ aha ya bụ nke dị na subdirectory nke ịwụnye license.txt avr/doc directory. Enwere ike ịhụ mkparịta ụka izugbe nke ụkpụrụ na-adabere na GPL ebe a.
Koodu nkwado enyere maka faịlụ nkụnye eji isi mee, scripts linker, na ọba akwụkwọ oge bụ koodu nwe na ekpuchighị ya n'okpuru GPL.
Onye nchịkọta a bụ mmejuputa ụdị GCC 5.4.0, binutils ụdị 2.26, ma na-eji avr-libc ụdị 2.0.0.
1.6. System chọrọ
Mpempe akwụkwọ MPLAB XC8 C na ngwa inye ikike ọ na-eji dị maka sistemụ arụmọrụ dị iche iche, gụnyere ụdị 64-bit nke ndị a: Mbipụta ndị ọkachamara nke Microsoft® Windows® 10; Ubuntu® 18.04; yana macOS® 10.15.5. Ebinyela aha ọnụọgụ abụọ maka Windows koodu. Ebinyela ọnụọgụ abụọ maka macOS koodu yana notary. Ihe nkesa ikike netwọkụ MPLAB XC dị maka sistemụ arụmọrụ 64-bit dị iche iche, gụnyere Microsoft Windows 10 na karịa; Ubuntu 18.04 na n'elu; ma ọ bụ macOS 10.15 na karịa. Ihe nkesa ahụ nwekwara ike ịgba ọsọ na sistemụ arụmọrụ ndị ọzọ gụnyere Windows Server, Linux nkesa, dị ka Oracle® Enterprise Linux® na Red Hate Enterprise Linux yana ụdị ochie nke sistemụ arụmọrụ akwadoro. Agbanyeghị, anaghị anwale sava ikike netwọkụ MPLAB XC na sistemụ arụmọrụ ndị a. Enwere ike ịgba ihe nkesa ikike netwọkụ MPLAB XC na igwe mebere nke OS akwadoro site na iji ikike igwe mebere maka ikikere netwọkụ (SW006021-VM). Ụdị 32-bit niile nke MPLAB XC Network Server kwụsịrị site na ụdị 3.00.
Ngwa akwadoro
Ngwakọta a na-akwado ngwaọrụ 8-bit AVR MCU niile dị n'oge ewepụtara. Hụ (na ndekọ ndekọ aha) maka ndepụta ngwaọrụ niile akwadoro. Faịlụ ndị a depụtakwara
avr_chipinfo.html doc nhazi ntọala bit maka ngwaọrụ ọ bụla.
1.7. Mbipụta na nkwalite ikike
Enwere ike ịgbanye ihe nchịkọta MPLAB XC8 dị ka ngwaahịa nwere ikike (PRO) ma ọ bụ nke enweghị ikike (N'efu). Ịkwesịrị ịzụta igodo ịgbalite iji nye ndị nchịkọta gị ikike. Akwụkwọ ikike na-enye ohere maka nkwalite dị elu ma e jiri ya tụnyere ngwaahịa efu. Enwere ike ịrụ ọrụ nchịkọta na-enweghị ikike na-enweghị ikike. Ekwesịrị iji ikike nchekwa arụ ọrụ zụtara na Microchip rụọ ọrụ MPLAB XC8 nchekwa nchekwa ọrụ. Onye nchịkọta agaghị arụ ọrụ na-enweghị ikike a. Ozugbo arụnyere ya ọrụ, ị nwere ike họrọ ọkwa nkwalite ọ bụla wee jiri atụmatụ mkpokọta niile. Mwepụta a nke MPLAB XC Ọrụ Safety Compiler na-akwado ikike nkesa netwọkụ.
Hụ akwụkwọ ntinye na inye ikike MPLAB XC C Compilers (DS50002059) maka ozi gbasara ụdị ikike na ntinye akwụkwọ ikike.
1.8. Nwụnye na ịgbalite
Hụkwa ngalaba Okwu Mbugharị na oke oke maka ozi dị mkpa gbasara onye njikwa ikike kachasị ọhụrụ gụnyere ya na mkpokọta a.
Ọ bụrụ na ị na-eji MPLAB IDE, jide n'aka na ịwụnye ụdị MPLAB X IDE 5.0 kachasị ọhụrụ ma ọ bụ karịa tupu ịwụnye ngwa a. Kwụsị IDE tupu ịwụnye ihe nchịkọta. Gbaa (Windows), (Linux) ma ọ bụ (macOS) .exe .run .app compiler installer ngwa, dịka ma soro ntuziaka dị na ihuenyo. XC8-1.00.11403-windows.exe A na-atụ aro ndekọ nrụnye ndabara. Ọ bụrụ na ị na-eji Linux, ị ga-etinyerịrị ihe nchịkọta site na iji ọnụ yana site na akaụntụ mgbọrọgwụ. Wụnye site na iji akaụntụ macOS nwere ikike nchịkwa.
A na-arụ ọrụ ugbu a iche iche maka nrụnye. Hụ onye njikwa ikike akwụkwọ maka MPLAB® XC C Compilers (DS52059) maka ozi ndị ọzọ.
Ọ bụrụ n’ịhọrọ ịme ihe mkpokọ n’okpuru ikike nyocha, ị ga-enweta ịdọ aka ná ntị n’oge mkpokọta mgbe ịnọ n’ime ụbọchị iri na anọ nke ngwụcha oge nleba anya gị. A na-enye otu ịdọ aka ná ntị ahụ ma ọ bụrụ na ịnọ n'ime ụbọchị iri na anọ nke njedebe nke ndenye aha HPA gị.
Ihe nkesa ikike netwọkụ XC bụ ihe nrụnye dị iche ma etinyeghị ya na nwụnye otu onye ọrụ.
Onye njikwa ikike XC na-akwado ịkwọgharị ikikere netwọkụ na-efegharị efegharị. Ezubere maka ndị na-eji ekwentị mkpanaaka, njirimara a na-enye ohere ka ịpụ na netwọkụ maka obere oge. N'iji njirimara a, ị nwere ike ịkwụsị na netwọk ma ka na-eji ihe nchịkọta MPLAB XC gị. Hụ nchekwa doc nke XCLM install maka ihe ndị ọzọ gbasara njirimara a.
MPLAB X IDE gụnyere windo ikike (Ngwaọrụ> Akwụkwọ ikike) iji jikwaa mkpagharị anya.
1.8.1. Na-edozi nsogbu nwụnye
Ọ bụrụ na ị na-enweta ihe isi ike ịwụnye compiler n'okpuru sistemụ arụmọrụ Windows ọ bụla, nwaa aro ndị a.
Gbaa wụnye dị ka onye nchịkwa.
Tọọ ikike nke ngwa installer ka ọ bụrụ 'njikwa zuru oke'. (Pịa aka nri faịlụ, họrọ Properties, Security tab, họrọ onye ọrụ, dezie.)
Tọọ ikike nke nchekwa temp ka ọ bụrụ 'njikwa zuru oke'.
Iji chọpụta ebe nchekwa temp, pịnye % temp% n'ime iwu Run (igodo logo Windows + R).
Nke a ga-emepe mkparịta ụka onye nyocha faịlụ na-egosi ndekọ ahụ ma nye gị ohere ikpebi ụzọ nchekwa ahụ.
1.9. Akwụkwọ nchịkọta
Enwere ike imepe ntuziaka onye ọrụ nchịkọta site na ibe HTML nke na-emepe na ihe nchọgharị gị mgbe ịpị bọtịnụ enyemaka na-acha anụnụ anụnụ dị na MPLAB X IDE dashboard, dị ka egosiri na nseta ihuenyo.
Ọ bụrụ na ị na-ewu maka ebumnuche 8-bit AVR, MPLAB® XC8 C Compiler User's Guide for AVR® MCU nwere ozi gbasara nhọrọ na njirimara ndị ahụ na-achịkọta ndị metụtara ụkpụrụ ụlọ a.
1.10.Nkwado ndị ahịa
Microchip na-anabata mkpesa ahụhụ, ntụnye ma ọ bụ nkwupụta gbasara ụdị mkpokọta a. Biko duzie mkpesa ahụhụ ọ bụla ma ọ bụ arịrịọ atụmatụ site na Sistemụ Nkwado.
Mmelite akwụkwọ
Maka ụdị akwụkwọ MPLAB XC8 n'ịntanetị na nke ọhụrụ, biko gaa na akwụkwọ nka nka na ntanetị Microchip. websaịtị. Akwụkwọ AVR ọhụrụ ma ọ bụ emelitere na mwepụta a:
- Ntuziaka onye ọrụ MPLAB® XC8 C maka AVR® MCU (nyocha G)
- AVR® GNU Toolchain gaa na MPLAB® XC8 Ntuziaka Mbugharị (ntụgharị A)
- Ntuziaka onye ọrụ Hexmate (nyocha B)
AVR® GNU Toolchain to MPLAB® XC8 Migration Guide na-akọwa mgbanwe na koodu isi mmalite na iwu nhọrọ nke enwere ike ịchọrọ ma ị kpebie ịkwaga ọrụ dabere na C site na AVR 8-bit GNU Toolchain gaa na Microchip MPLAB XC8 C Compiler. Akwụkwọ ntuziaka nrụtụ aka nke Microchip Unified Standard Library na-akọwa omume na nlegharị anya n'ọrụ ndị Microchip Unified Standard Library kọwapụtara, yana ebumnuche ebumnuche nke ụdị ọba akwụkwọ na nnukwu. Ụfọdụ ozi a dịbu na MPLAB® XC8 C Compiler User's Guide maka AVR® MCU. Ozi ọba akwụkwọ akọwapụtara ngwaọrụ ka dị n'ime ntuziaka nchịkọta akụkọ a.
Ọ bụrụ na ị na-amalite site na ngwaọrụ 8-bit yana MPLAB XC8 C Compiler, ntuziaka onye ọrụ MPLAB® XC8 maka ndị injinia agbakwunyere - AVR® MCUs (DS50003108) nwere ozi na ịtọlite ọrụ na MPLAB X IDE na koodu ederede maka ọrụ MPLAB XC8 C mbụ gị. A na-ekesa ntuziaka a na onye nchịkọta.
Ezubere ntuziaka onye ọrụ Hexmate maka ndị na-agba Hexmate ka ngwa kwụụrụ onwe ya.
Kedu nke pụtara ọhụrụ
Ihe ndị a bụ atụmatụ atụmatụ AVR ọhụrụ nke ndị nchịkọta na-akwado ugbu a. Nọmba mbipute dị na isi okwu nta a na-egosi ụdị nchịkọta mbụ iji kwado atụmatụ ndị na-esote.
3.1. Ụdị 2.41
Nkwado Bootrow (XC8-3053) Onye nchịkọta ga-etinye ọdịnaya nke ngalaba ọ bụla nwere prefix na.bootrow adreesị 0x860000 na faịlụ HEX. A na-eji akụkụ ndị a maka ebe nchekwa BOOTROW, nke emebere maka nchekwa igodo na ozi ndị ọzọ echekwara nke kwesịrị ịnweta naanị bootloader.
Mwepụ nlọghachi azụ (XC8-3048) Onye nchịkọta ga-ewepụ ugbu a ntụziaka na-adịghị arụ ọrụ na ọrụ ret na-awụ elu ọdụ mgbe ejiri scripts njikọ omenala. Nke a bụ nkwalite yiri nke a rụrụ na mbụ, mana a na-eme ya ugbu a na ngalaba niile nke ụmụ mgbei, ọ bụrụgodị na ejiri edemede njikọ omenala eme ihe yana atụmatụ oke nke dabara adaba adịghị n'egwuregwu. Ụdị oge mgbanwe (XC8-2982, 2932) Ụdị ọba akwụkwọ ọkọlọtọ C99, agbanweela site na time_t gaa n'ụdị, nke na-enye nkwalite nha koodu na ụfọdụ ogologo ọrụ ogologo oge metụtara oge, dị ka. ogologo mktime na-edeghị akwụkwọ ()
New nop (XC8-2946, 2945) agbakwunyela nnukwu ihe na. Macro a na-etinye no-NOP() ntụziaka ọrụ nop n'ime mmepụta.
Nwelite na XCLM (XC8-2944) Onye njikwa ikike eji ya na mkpokọta emelitere ma na-anabata nke ọma ugbu a mgbe ị na-elele nkọwa ikike nke mkpokọta.
Trampoku olined (XC8-2760) Onye nchịkọta ihe nwere ike ugbu a dochie ntuziaka oku ogologo ogologo yana oku ikwu dị mkpụmkpụ mgbe ụdị ntuziaka ahụ na-adịkarị na-agaghị aga ebe ha na-aga. N'ọnọdụ dị otú a, onye nchịkọta ga-anwa iji ntuziaka dochie anya ịkpọ oku ntụziaka nke ga-trampoline' ogbugbu gaa na adreesị achọrọ, maka example: jmp
akpọ tramp_foo ;a na-akpo foo
…
akpọ tramp_foo
…
tramp_foo:
jmp foo
A na-achịkwa njikarịcha a, yana njikarịcha usoro mmemme yiri nke a, site na nhọrọ -mrelax.
3.2. Ụdị 2.40
Nkwado ngwaọrụ ọhụrụ dị ugbu a maka akụkụ AVR ndị a: AT90PWM3, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR64DD28E AVR64EA32.
Ngwa abstraction usoro emelitere ngwa ọrụ njikarịcha usoro (PA) ka enwere ike were koodu nwere ntuziaka oku ọrụ (/). Nke a ga-eme naanị oku oku ma ọ bụrụ na ejighị ngwugwu ahụ nyefee arụmụka ma ọ bụ nweta uru nloghachi site na ọrụ ahụ. A na-eji nchịkọta ahụ mgbe a na-akpọ ọrụ nwere ndepụta arụmụka agbanwe agbanwe ma ọ bụ mgbe a na-akpọ ọrụ na-ewe arụmụka karịa ka enwere ndekọ ahaziri maka nke a. Enwere ike gbanyụọ njirimara a site na iji nhọrọ, ma ọ bụ abstraction usoro nwere ike gbanyụọ kpamkpam maka faịlụ ma ọ bụ ọrụ ihe site na iji - na, otu, ma ọ bụ site na iji njirimara (kpọmkwem) họrọ ya na ọrụ.
mno-pa-outline-oku -mno-pa-on-file -mno-pa-on-function nopa Koodu mkpuchi macro Onye nchịkọta na-akọwapụta nnukwu macro ma ọ bụrụ na ezigbo nhọrọ bụ __nopa __CODECOV -mcodecov akọwapụtara.
Nhọrọ ndokwa ebe nchekwa Onye ọkwọ ụgbọ ala ga-anabata xc8-cc -mreserve=space@start:nhọrọ ngwụcha mgbe a na-ewu maka ebumnuche AVR. Nhọrọ a na-edobere oke ebe nchekwa akọwapụtara na data ma ọ bụ ohere ebe nchekwa mmemme, na-egbochi onye njikọ ibipụta koodu ma ọ bụ ihe dị na mpaghara a. Smarter smart IO emela ọtụtụ ndozi na ọrụ Smart IO, gụnyere tweaks izugbe na koodu printf, na-emeso nkọwa ngbanwe%n dị ka ihe dị iche iche nwere onwe ya, na-ejikọ usoro mgbasa ozi dị iche iche na-achọ, na-eji ụdị data dị mkpụmkpụ ebe enwere ike ijikwa arụmụka ọrụ IO, yana imepụta koodu nkịtị na mpaghara aka. Nke a nwere ike ibute koodu dị mkpa na nchekwa data, yana ịbawanye ọsọ igbu nke IO.
3.3. Ụdị 2.39 (Mwepụta Nchekwa na-arụ ọrụ)
Ikikere nkesa netwọkụ Mwepụta a nke MPLAB XC8 Ọrụ Safety Compiler na-akwado ikike nkesa netwọkụ.
3.4. Ụdị 2.36
Ọ dịghị.
3.5. Ụdị 2.35
Nkwado ngwaọrụ ọhụrụ dị maka akụkụ AVR ndị a: ATTINY3224, ATTINY3226, ATTINY3227, AVR64DD14, AVR64DD20, AVR64DD28, na AVR64DD32.
Ngbanwe ọnọdụ ọnọdụ emelitere Nhọrọ -mcall-isr-prologues ọhụrụ na-agbanwe ka ọrụ nkwụsịtụ si echekwa ndekọ na ntinye yana otu esi eweghachi ndekọ ndị ahụ mgbe usoro nkwụsịtụ kwụsịrị. Ọ na-arụ ọrụ n'otu aka ahụ na nhọrọ -mcall-prologues, mana ọ na-emetụta naanị ọrụ nkwụsịtụ (ISRs).
Ọbụna ngbanwe ọnọdụ gburugburu ka emelitere Nhọrọ -mgas-isr-prologues ọhụrụ na-ejikwa koodu mgbanwe ọnọdụ emepụtara maka obere usoro nkwụsịtụ ọrụ. Mgbe enyere ya aka, njirimara a ga-enwe onye na-ezukọta nyochaa ISR maka ojiji ndekọ ma chekwaa naanị ndekọ ndị a ejiri ma ọ bụrụ na achọrọ ya.
Maapụ flash enwere ike ịhazi Ụfọdụ ngwaọrụ dị na ezinụlọ AVR DA na AVR DB nwere SFR (dịka FLMAP) nke na-akọwapụta akụkụ 32k nke ebe nchekwa mmemme ga-edobe n'ime ebe nchekwa data. Enwere ike iji nhọrọ ọhụrụ - mconst-data-in-config-mapped-progmem mee ka onye njikọ tinye data niile const-qualified data n'otu akụkụ 32k wee malite na-akpaghị aka na-edebanye aha SFR dị mkpa iji hụ na e debere data a n'ime ebe nchekwa data, ebe a ga-enweta ya nke ọma.
Ọbá akwụkwọ ọkọlọtọ Microchip Unified Unified All MPLAB XC ga-ekekọrịta ọbá akwụkwọ ọkọlọtọ Microchip, nke dị ugbu a na ntọhapụ nke MPLAB XC8 a. Ntuziaka onye ọrụ MPLA# XC8 C Compiler maka AVO MCU anaghịzi agụnye akwụkwọ maka ọrụ ọkọlọtọ ndị a. Enwere ike ịhụ ozi a ugbu a na ntuziaka nrụtụ aka ọbá akwụkwọ dị n'otu nke Microchip. Rịba ama na ụfọdụ ọrụ avr-libc kọwaburu na mbụ adịkwaghị. (Lee ọrụ Lila.)
Smart I0 Dị ka akụkụ nke ọba akwụkwọ ọhụrụ ejikọtara ọnụ, ọrụ I0 na ezinụlọ printf na scanf bụzi ahaziri nke ọma na ụlọ ọ bụla, dabere na otu esi eji ọrụ ndị a na mmemme. Nke a nwere ike belata nke ukwuu akụrụngwa nke mmemme na-eji.
Nhọrọ enyemaka Smart ICI Mgbe ị na-enyocha oku na ọrụ smart I0 (dị ka ebipụta f () ma ọ bụ scanf ()), onye nchịkọta enweghị ike ikpebi mgbe niile site na eriri usoro ma ọ bụ wepụta n'arụmụka ndị nkọwa ntụgharị nke oku chọrọ. Na mbụ, onye nchịkọta agaghị eme mgbe niile na-eche echiche ma hụ na ejikọtara ọrụ 10 na-arụ ọrụ nke ọma na foto mmemme ikpeazụ. Ọhụrụ – msmart-io-format=fmt nhọrọ ka agbakwunyere ka onye ọrụ nwee ike ịgwa onye na-achịkọta ihe nkọwa ntụgharị nke ọrụ smart I0 ejiri ya mee ihe nke ojiji ya enweghị mgbagwoju anya, na-egbochi ogologo usoro 10 ogologo karịa njikọ. (Lee nhọrọ usoro smart-io maka nkọwa ndị ọzọ.)
Ịtụkwasị ngalaba omenala Na mbụ, nhọrọ -W1, -ngalaba-mmalite na-etinye naanị ngalaba akọwapụtara na adreesị achọrọ mgbe edemede njikọ kọwara ngalaba mmepụta nwere otu aha ahụ. Mgbe nke ahụ na-abụghị nke ahụ, etinyere ngalaba ahụ na adreesị nke onye na-ejikọta ya họọrọ ma leghaara nhọrọ ahụ anya. Ugbu a, a ga-asọpụrụ nhọrọ ahụ maka ngalaba omenala niile, ọbụlagodi ma ọ bụrụ na edemede njikọ akọwaghị ngalaba ahụ. Rịba ama, Otú ọ dị, na maka ngalaba ọkọlọtọ, dị otú ahụ. ederede,. bss ma ọ bụ . data, ihe kacha mma dabara adaba ka ga-enwe njikwa zuru oke na ntinye ha, na nhọrọ agaghị enwe mmetụta ọ bụla. Jiri nhọrọ -ton, -Tsection=addr, dị ka akọwara na ntuziaka onye ọrụ.
3.6. Ụdị 2.32
Ntuziaka nchịkọta dị na ikike nchịkọta PRO, njirimara nduzi nchịkọta nchịkọta nwere ike iji chọpụta omimi kachasị nke nchịkọta ọ bụla nke mmemme na-eji. Ọ na-ewu ma na-enyocha eserese oku nke mmemme, na-ekpebi oke ojiji nke ọrụ ọ bụla, wee wepụta akụkọ, nke enwere ike ịmata omimi nke ngwugwu mmemme a na-eji. Agbanyere atụmatụ a site na nhọrọ ahịrị iwu -mchp-stack-usage. A na-ebipụta nchịkọta nke ojiji ngwugwu ka emechara ya. Akụkọ nchịkọta zuru ezu dị na maapụ file, nke enwere ike ịrịọ n'ụzọ ọ bụla.
Nkwado ngwaọrụ ọhụrụ dị maka akụkụ AVR ndị a: ATTINY427, ATTINY424, ATTINY426, ATTINY827, ATTINY824, ATTINY826, AVR32DB32, AVR64DB48, AVR64DB64, AVR64DB28, AVR32DB28, na AVR64DB32 na AVR32DB48. Nkwado ngwaọrụ eweghachitere adịkwaghị maka akụkụ AVR ndị a: AVR16DA28, AVR16DA32 na, AVR16DA48.
3.7. Ụdị 2.31
Ọ dịghị.
3.8. Ụdị 2.30
Nhọrọ ọhụrụ iji gbochie mmalite data Nhọrọ ọkwọ ụgbọala ọhụrụ -mno-data-init na-egbochi mmalite nke data na ikpochapụ akụkụ bss. Ọ na-arụ ọrụ site n'ịkwụsị mmepụta nke do copy data ma mee akara ngosi bss doro anya na mgbakọ files, nke ga-egbochi ntinye nke usoro ndị ahụ site na njikọ njikọ.
Nkwalite nkwalite enwere ọtụtụ nkwalite nkwalite, gụnyere mwepụ nke ntuziaka nloghachi na-adịghị arụ ọrụ, mwepụ nke ụfọdụ jumps na-eso nkuzi skip-if-bit-bụ, yana mma abstraction usoro na ikike ịmegharị usoro a. Nhọrọ ndị ọzọ dị ugbu a iji jikwaa ụfọdụ n'ime njikarịcha ndị a, kpọmkwem -f ngalaba-arịlịka, nke na-enye ohere ịnweta ihe ndị kwụ ọtọ n'ihe metụtara otu akara; -mpa-iterations=n, nke na-enye ohere ịgbanwe ọnụọgụ abstraction nke usoro site na ndabara nke 2; na, -mpa-callcost-shortcall, nke na-eme ihe ike karịa abstraction usoro, na-atụ anya na onye njikọ nwere ike izuike ogologo oku. Nhọrọ ikpeazụ a nwere ike ịbawanye nha koodu ma ọ bụrụ na emezughị echiche ndị dị n'okpuru.
Nkwado ngwaọrụ ọhụrụ dị maka akụkụ AVR ndị a: AVR16DA28, AVR16DA32, AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR128DA28 AVR128DB32, AVR128DB48 na AVR128DB64. Nkwado nkwado na-akwado ngwa ngwa maka AVR na-esote: Ata5272, Ata5790, Ata5790, Ata5791, Ata5795, Ata6285c, Ata6286c, na ATA6612.
3.9. Ụdị 2.29 (Mwepụta Nchekwa na-arụ ọrụ)
nkụnye eji isi mee file maka ihe arụrụ n'ụkọkọta iji hụ na onye nchịkọta nwere ike kwekọrịtara na nkọwa asụsụ dị ka MISRA, nkụnye eji isi mee file, nke na-akpaghị aka gụnyere , emelitere. nkụnye eji isi mee nwere ụdị maka ọrụ arụrụ arụ niile, dị ka builtin_avr_nop ( ) na builtin avr delay_cycles () . Ụfọdụ arụnyere nwere ike ọ gaghị akwado MISRA; enwere ike ịhapụ ihe ndị a site n'ịgbakwunye definitionXCSTRICT_MISRA na ahịrị iwu nchịkọta. Emelitela ihe arụnyere n'ime ya na nkwupụta ha ka iji ụdị obosara etinyere.
3.10. Ụdị 2.20
Nkwado ngwaọrụ ọhụrụ dị maka akụkụ AVR ndị a: ATTINY1624, ATTINY1626, na ATTINY1627.
Oke kacha mma dabara adaba kacha mma nke kacha mma (BFA) na mkpokọta ka ekenye ngalaba n'usoro na-enye ohere kacha mma. BFA na-akwado oghere adreesị aha ya na ijikwa mmalite data nke ọma.
Abstraction usoro emelitere A na-eme njikarịcha abstraction nke usoro n'usoro koodu karịa. Ọnọdụ ndị gara aga ebe njikarịcha a nwere ike ịbawanye nha koodu ka agbadoro anya site na ime ka koodu njikarịcha mara maka usoro nchịkọta mkpofu njikọ.
Enweghi onye na-agbakọ AVR AVR Assembler esokwaghị na nkesa a.
3.11. Ụdị 2.19 (Mwepụta Nchekwa na-arụ ọrụ)
Ọ dịghị.
3.12. Ụdị 2.10
Mkpuchi Usoro Ntọhapụ a gụnyere njirimara mkpuchi koodu nke na-eme ka nyocha nke ókè etinyere koodu isi mmalite ọrụ. Jiri nhọrọ -mcodecov=ram mee ya. Mgbe emechara mmemme na ngwaike gị, a ga-achịkọta ozi mkpuchi koodu na ngwaọrụ ahụ, yana MPLAB X IDE nwere ike ibufe ya ma gosipụta ya site na ngwa mgbakwunye koodu. Hụ akwụkwọ IDE maka ozi gbasara ngwa mgbakwunye a nwere ike nweta. Enwere ike iji #pragma nocodecov wepụ ọrụ ndị na-esote na nyocha mkpuchi. Kwesịrị itinye pragma na mmalite nke file ewepu nke ahụ dum file site na nyocha mkpuchi. N'aka nke ọzọ, enwere ike iji _attribute_ (nocodecov) ) wepụ otu ọrụ na nyocha mkpuchi.
Nkọwa ngwaọrụ files Ngwaọrụ ọhụrụ file akpọ avr_chipinfo . html dị na akwụkwọ ndekọ aha nke nkesa mkpokọta. Nke a file depụtara ngwaọrụ niile nke ndị nchịkọta na-akwado. Pịa aha ngwaọrụ, ma ọ ga-emepe ibe na-egosi ihe mgbu nhazi ọ bụla nke nwere ike ime maka ngwaọrụ ahụ, yana ex.amples. Abstraction nke usoro
agbakwunyela usoro njikarịcha abstraction, nke na-eji oku na-edochi ihe mgbochi koodu mgbakọ na-emekarị na nchikọta ahụ. A na-eme ihe ndị a site na ngwa iche iche, nke ndị nchịkọta na-akpọ ya na-akpaghị aka mgbe ị na-ahọrọ nkwalite ọkwa 2, 3 ma ọ bụ s. Nkwalite ndị a na-ebelata nha koodu, mana ha nwere ike ibelata ọsọ ogbugbu yana mwepu koodu. Enwere ike gbanyụọ abstraction nke usoro na ọkwa kachasị elu site na iji nhọrọ -mno-pa, ma ọ bụ nwee ike ịme ya na ọkwa njikarịcha dị ala (n'okpuru ikike gị) site na iji -mpa. Enwere ike gbanyụọ ya maka ihe file iji -mno-pa-on-file=fileaha, ma ọ bụ nwee nkwarụ maka ọrụ site na iji -mno-pa-on-function=ọrụ. N'ime koodu isi mmalite gị, enwere ike gbanyụọ abstraction usoro maka otu ọrụ site na iji njirimara (nopa) na nkọwa ọrụ, ma ọ bụ site na iji nopa, nke na-agbasawanye ka àgwà ((nopa, noinline)) ma si otú a na-egbochi ọrụ inlining na-eme na enwere abstraction nke koodu inlined.
Nkwado obere mkpọchi na pragma Enwere ike iji nhazi #pragma ugbu a kọwaa bits mkpọchi AVR yana nhazi nhazi ndị ọzọ. Lelee avr_chipinfo. html file (akpọtụrụ n'elu) maka ụzọ abụọ ntọala/ụru iji jiri pragma a. Nkwado ngwaọrụ ọhụrụ dị maka akụkụ ndị a: AVR28DAl28, AVR64DAl28, AVR32DA 128, na AVR48DA 128.
3.13. Ụdị 2.05
More bits maka ego gị Ụdị macOS nke mkpokọta na njikwa ikike bụ ngwa 64-bit ugbu a. Nke a ga-ahụ na onye nchịkọta ga-arụnye ma na-agba ọsọ na-enweghị ịdọ aka ná ntị na ụdị macOS na nso nso a.
Const ihe na ebe nchekwa mmemme Onye nchịkọta nwere ike tinye ihe ndị tozuru oke na mmemme Flash ebe nchekwa, kama ịnwe ihe ndị a na RAM. Emezigharịrị onye nchịkọta ihe ka echekwara data zuru ụwa ọnụ ruru eru na ebe nchekwa mmemme yana enwere ike nweta data a ozugbo na n'ụzọ na-edoghị anya site na iji ntuziaka mmemme-ebe nchekwa kwesịrị ekwesị. Enyere atụmatụ ọhụrụ a site na ndabara mana enwere ike gbanyụọ ya site na iji nhọrọ -mno-const-data-in-progmem. Maka avrxmega3 na avrtiny architectures, a naghị achọ njirimara a ma nwee nkwarụ mgbe niile, ebe ọ bụ na a na-edepụta ebe nchekwa mmemme n'ime oghere adreesị data maka ngwaọrụ ndị a.
Ụdị nke enweghị ikike (Free) n'efu nke nchịkọta a na-enye ohere ịkwalite ruo yana gụnyere ọkwa 2. Nke a ga-enye ohere nke yiri ya, ọ bụ ezie na ọ bụghị otu, mmepụta na ihe enwere ike na mbụ site na iji ikikere Standard.
Nabata AVRASM2 AVRASM2 maka ngwaọrụ 8-bit abanyela ugbu a na nrụnye ihe nchịkọta XC8. Onye na-achịkọta XC8 anaghị eji mgbakọ a, mana ọ dị maka ọrụ dabere na isi mmalite ọgbakọ ejiri aka dee.
Nkwado ngwaọrụ ọhụrụ dị maka akụkụ ndị a: ATMEGA1608, ATMEGA1609, ATMEGA808, na ATMEGA809.
3.14. Ụdị 2.00
Ọkwọ ụgbọala dị elu Ọkwọ ụgbọala ọhụrụ, nke a na-akpọ xc8-cc, na-anọdụ ugbu a karịa onye ọkwọ ụgbọ ala avr-gcc gara aga na onye ọkwọ ụgbọ ala xc8, ọ nwere ike ịkpọ onye nchịkọta kwesịrị ekwesị dabere na nhọrọ nke ngwaọrụ ezubere iche. Ọkwọ ụgbọala a na-anabata nhọrọ ụdị GCC, nke a na-atụgharị maka ma ọ bụ bufee ya na onye nchịkọta a na-egbu. Onye ọkwọ ụgbọ ala a na-enye ohere ka ejiri ụdị nhọrọ ndị yiri ya nwere semantics na ebumnuche AVR ma ọ bụ PIC ọ bụla ma bụrụkwa ụzọ akwadoro ịkpọku onye nchịkọta. Ọ bụrụ na achọrọ ya, enwere ike ịkpọ onye ọkwọ ụgbọ ala ochie avr-gcc ozugbo site na iji nhọrọ ụdị ochie ọ nabatara na ụdị mkpokọta mbụ.
Interface C nkịtị Nke a na-achịkọta nwere ike dabara na MPLAB Common C Interface, na-enye ohere ka ọ dị mfe ibufe koodu isi mmalite n'ofe MPLAB XC niile. Nhọrọ -mext=cci na-arịọ atụmatụ a, na-eme ka syntax ọzọ dị maka ọtụtụ ndọtị asụsụ.
Onye ọkwọ ụgbọ ala ọhụrụ edobere onye ọkwọ ụgbọ akwụkwọ ọhụrụ n'elu onye na-agụ akwụkwọ PIC gara aga yana onye na-agụ akwụkwọ AVR avr-ar. Ọkwọ ụgbọala a na-anabata nhọrọ ụdị GCC-archiver, nke a na-atụgharị maka ma ọ bụ bufee onye na-agụ akwụkwọ a na-egbu. Onye ọkwọ ụgbọ ala ọhụrụ ahụ na-enye ohere ka e jiri ụdị nhọrọ ndị yiri ya na semantics mepụta ma ọ bụ jikwaa ọba akwụkwọ PIC ma ọ bụ AVR ọ bụla. file ma otu a bụ ụzọ akwadoro ịkpọ onye na-agụ akwụkwọ. Ọ bụrụ na achọrọ ya maka ọrụ nketa, enwere ike ịkpọ onye na-agụ akwụkwọ gara aga ozugbo site na iji nhọrọ ụdị ochie ọ nabatara na nsụgharị ndị nnakọta mbụ.
Okwu Mbugharị
Ihe ndị a bụ njirimara nke ndị nchịkọta na-ahazi ugbu a dị iche iche. Mgbanwe ndị a nwere ike ịchọ mgbanwe na koodu isi mmalite gị ma ọ bụrụ na ibuga koodu na ụdị mkpokọta a. Nọmba mbipute dị na isi okwu nta a na-egosi ụdị mkpokọta mbụ iji kwado mgbanwe ndị na-esochi.
4.1. Ụdị 2.41
Ewepụrụ ọrụ fma na-ezighi ezi (XC8-2913) Ọbá akwụkwọ ọkọlọtọ C99 fma 0 -ọrụ ezinụlọ ( ) agụghị ọtụtụ-gbakwunye na enweghị ngwụcha nkenke na otu okirikiri, mana kama chịkọbara njehie okirikiri na ọrụ ọ bụla. Ewepụla ọrụ ndị a n'ọbá akwụkwọ ewepụtara.
4.2. Ụdị 2.40
Ọ dịghị.
4.3. Ụdị 2.39 (Mwepụta Nchekwa na-arụ ọrụ)
Ọ dịghị.
4.4. Ụdị 2.36 Ọ dịghị.
4.5. Ụdị 2.35
Ijikwa eriri-na bases (XC8-2420) Iji hụ na ịdị n'otu na ndị nchịkọta XC ndị ọzọ, eriri XC8-na-arụ ọrụ, dị ka strtol () wdg, agaghịzi anwa ịgbanwe eriri ntinye ma ọ bụrụ na ntọala akọwapụtara buru ibu karịa 36 ma ga-edobe errno na EINVAL. Ọkọlọtọ C anaghị akọwapụta omume nke ọrụ ahụ mgbe uru ntọala a gafere.
Nkwalite ọsọ ọsọ na-ekwesịghị ekwesị A na-eme ka njikarịcha abstraction usoro mgbe ị na-ahọrọ njikarịcha ọkwa 3 (-03). Ngosipụta ndị a na-ebelata nha koodu na-efu nke ọsọ koodu, yabụ na ekwesighi ime ya. Ọrụ ndị na-eji ọkwa nkwalite a nwere ike ịhụ ọdịiche dị na nha koodu yana ọsọ igbu mgbe ejiri ntọhapụ a rụọ ya.
Ọrụ ụlọ akwụkwọ Koodu maka ọtụtụ ọrụ ọba akwụkwọ ọkọlọtọ C si ugbu a sitere na Microchip's Unified Standard Library, nke nwere ike igosipụta omume dị iche iche n'ọnọdụ ụfọdụ ma e jiri ya tụnyere nke ọbá akwụkwọ avr-libc mbụ nyere. Maka example, ọ dịghịzi mkpa ijikọ na 1printf flt ọba akwụkwọ (-1printf_flt nhọrọ) ka ịgbanwuo formatted I0 nkwado maka nkọwapụta usoro n'elu mmiri. The smart I0 atụmatụ nke Microchip Unified Standard Library na-eme ka nhọrọ a ghara ịdị irè. Na mgbakwunye, iji usoro suffixed _P maka eriri na ọrụ ebe nchekwa (dịka strcpy_P ( ) wdg..) nke na-arụ ọrụ na eriri const na flash adịghịzi mkpa. Ọkọlọtọ C na-eme usoro (dịka strcpy) ga-arụ ọrụ nke ọma na ụdị data ahụ mgbe agbanyere njirimara nchekwa const-data-in-program-memory.
4.6. Ụdị 2.32
Ọ dịghị.
4.7. Ụdị 2.31
Ọ dịghị.
4.8. Ụdị 2.30
Ọ dịghị.
4.1. Ụdị 2.29 (Mwepụta Nchekwa na-arụ ọrụ)
Ọ dịghị.
4.2. Ụdị 2.20
Gbanwee okirikiri nhọrọ ukwuu DFP Ndị nchịkọta ugbu a na-ewere nhazi dị iche nke DFPs (Ngwungwu Ezinụlọ Ngwaọrụ na-eji). Nke a ga-apụta na DFP merela agadi nwere ike ọ gaghị arụ ọrụ na ntọhapụ a, ndị na-achịkọta ndị okenye agaghị enwe ike iji DFP ọhụrụ.
4.3. Ụdị 2.19 (Mwepụta Nchekwa na-arụ ọrụ)
Ọ dịghị.
4.4. Ụdị 2.10
Ọ dịghị
4.5. Ụdị 2.05
Ihe eji eme ihe na ebe nchekwa mmemme Rụba ama na a ga-edobe ihe ndị tozuru oke na ndabara ma nweta ya na ebe nchekwa mmemme (dị ka akọwara hue). Nke a ga-emetụta nha na ọsọ mmezu nke ọrụ gị, mana kwesịrị ibelata ojiji RAM. Enwere ike gbanyụọ njirimara a, ọ bụrụ na achọrọ ya, na-eji nhọrọ -mnoconst-data-in-progmem.
4.6. Ụdị 2.00
Nhazi fuses Enwere ike hazie fiusi nhazi ngwaọrụ ugbu a site na iji config pragma sochiri ọnụọgụ ntọala-uru iji kọwaa steeti fuse, dịka ọmụmaatụ.
#pragma config WDTON = SET
#pragma config BODLEVEL = BODLEVEL_4V3
Ihe zuru oke na ọrụ Enwere ike idowe ihe na ọrụ ugbu a na adreesị akọwapụtara na ebe nchekwa site na iji nkọwapụta CCI (adreesị), maka ex.ampLe:
#gụnye
int foobar_at (0x800100);
char __at (0x250) getID (int offset) {… }
Arụmụka na nkọwapụta a ga-abụrịrị nke na-anọchi anya adreesị ebe a ga-etinye byte ma ọ bụ ntụziaka nke mbụ. A na-egosi adreesị RAM site na iji nkwụsị nke 0x800000. Kwado CCI ka o jiri njirimara a.
syntax ọrụ nkwụsị ọhụrụ Onye nchịkọta ugbu a na-anabata nkọwapụta CCI _interrupt (num) iji gosi na ọrụ C bụ ndị na-akwụsị ọrụ. Nkọwapụta na-ewere nọmba nkwụsịtụ, maka exampLe:
#gụnye
efu __interrupt(SPI_STC_vect_num) spi_Isr(ihe efu) { … }
Okwu edoziri
Ndị na-esonụ bụ mmezi emere ndị nchịkọta. Ndị a nwere ike idozi ahụhụ dị na koodu emepụtara ma ọ bụ gbanwee ọrụ nke mkpokọta ka nke e bu n'obi ma ọ bụ akọwapụtara ya site na ntuziaka onye ọrụ. Nọmba mbipute dị na isi okwu nta a na-egosi ụdị nchịkọta mbụ nwere ndozi maka okwu ndị na-esote. Akara akara (s) nwere bracketed na aha bụ njirimara nke ahụ na nchekwa data nsochi. Ndị a nwere ike ịba uru ma ọ bụrụ na ịchọrọ ịkpọtụrụ nkwado.
Rịba ama na a na-edozi ụfọdụ ihe gbasara ngwaọrụ na ngwugwu Family Pack (DFP) jikọtara na ngwaọrụ ahụ. Hụ Onye njikwa ngwugwu MPLAB maka ozi gbasara mgbanwe emere na DFP yana budata ngwugwu ọhụrụ.
5.1. Ụdị 2.41
Okwu Dongle na Ventura (XC8-3088) Dongles ejiri iji nye ikike nchịkọta akụkọ nwere ike ghara ịgụta nke ọma na ndị ọbịa macOS Ventura, na-ebute ọdịda ikike ikike. Mgbanwe e mere onye njikwa ikike XCLM dozie nsogbu a.
Ngosipụta nke oke ebe nchekwa ezighi ezi (XC8-2925) Mgbalị ikenye SIZE_MAX bytes (ma ọ bụ uru dị nso nke a) nke ebe nchekwa site na iji ọrụ njikwa ebe nchekwa ọba akwụkwọ (malloc () et al) gara nke ọma. Ọbụghị n'uche na a chọrọ mgbakwunye bytes na mgbakwunye na ngọngọ a rịọrọ mgbe ị na-eji mmejuputa oke ebe nchekwa dị ike dị mfe. A ga-eweghachite ihe nrịbama NULL ugbu a wee tọọ errno na ENOMEM n'ọnọdụ ndị dị otú ahụ.
Ewepụrụ ọrụ fma ezighi ezi (XC8-2913) Ọbá akwụkwọ ọkọlọtọ C99 fma ( ) -ọrụ ezinụlọ ( ) agụghị ọtụtụ-gbakwunye na enweghị ngwụcha nkenke na otu okirikiri, mana kama chịkọbara njehie okirikiri na ọrụ ọ bụla. Ewepụla ọrụ ndị a n'ọbá akwụkwọ ewepụtara.
Ijikwa mgbanwe eriri na-adịghị mma (XC8-2921, XC8-2652) Mgbe 'usoro isiokwu' maka ntụgharị site na strtod Cr nwere ihe yiri ka ọ bụ nọmba na-ese n'elu mmiri n'ụdị nkọwa na enwere àgwà a na-atụghị anya ya mgbe e / E agwa, mgbe ahụ, ebe e nyere endptr, e kenyere ya adreesị nke nwere ya na-arụtụ aka na njirimara mgbe e / E gasịrị, ebe ọ ga-abụrịrị na ọ na-atụ aka na e / E n'onwe ya, ebe ọ bụ na agbanwebeghị ya. Maka example, strtod ("100exx", & ep) kwesịrị ịlaghachi 100.00 wee tọọ ep ka ọ rụtụ aka na akụkụ "exx" nke eriri ahụ, ebe ọrụ ahụ na-eweghachite uru ziri ezi mana ịtọ ep iji rụtụ aka na akụkụ "xx" nke eriri ahụ.
5.2. Ụdị 2.40
Ọ zuru oke (XCS-2876) Mgbe ị na-eji nhọrọ -mrelax, onye nchịkọta anaghị ekenye akụkụ ụfọdụ ọnụ, na-ebute oke koodu kacha mma. Nke a nwere ike ịbụ na koodu ejirila ọbaakwụkwọ MUSL ọhụrụ ma ọ bụ akara na-adịghị ike mee.
Agbanyụrụ atụmatụ eserese dịka ekwuru na ịdọ aka na ntị (XC8-2875) Njirimara const-data-in-config-mappedprogmem dabere na njirimara const-data-in-progmem a na-eme. Ọ bụrụ na arụnyere njirimara const-data-inconfig-mapped-progmem n'ụzọ doro anya site na iji nhọrọ yana njirimara const-data-inprogmem nwere nkwarụ, usoro njikọ ahụ dara, n'agbanyeghị ozi ịdọ aka ná ntị na-ekwupụta na njirimara const-data-in-con fig-mapped-progmem nwere nkwarụ na-akpaghị aka, nke na-abụghị nke zuru oke. Njirimara const-data-in-config-mapped-progmem nwere nkwarụ ugbu a n'ọnọdụ a.
DFP gbanwere iji nweta NVMCTRL (XC8-2848) nke ọma Koodu mmalite mmalite oge nke ngwaọrụ AVR64EA ji eme ihe eburughị n'uche na ndebanye aha NVMCTRL dị n'okpuru Configuration Change Protection (CCP) na enweghị ike ịtọ I0 SFR na ibe nke const-data-in-configmapped-progmem compiler feature eji. Mgbanwe emere na ụdị AVR-Ex_DFP 2.2.55 ga-ekwe ka koodu mmalite oge ojiri dee nke ọma na ndebanye aha a.
DFP na-agbanwe iji zere maapụ flash (XC8-2847) arụ ọrụ maka nsogbu nwere njiri ngwaọrụ eserese flash a kọrọ na AVR128DA28/32/48/64 Silicon Errata (D580000882) emejuputala ya. Agaghị etinye atụmatụ mkpokọta const-data-in-config-mapped-progmem na ndabara maka ngwaọrụ emetụtara, mgbanwe a ga-apụta na ụdị AVR-Dx_DFP 2.2.160.
Jiri sinhf ma ọ bụ coshf wuo njehie (XC8-2834) Mgbalị iji sinhf () ma ọ bụ coshf () ọrụ ọba akwụkwọ butere mperi njikọ, na-akọwa ntụnyere enweghị nkọwa. Ọrụ na-efu efu etinyerela na nkesa mkpokọta.
Jiri nopa wuo mperi (XC,8-2833) Iji njirimara nopa nwere ọrụ nwere aha onye na-achịkọta ya akọwapụtara site na iji asm ( ) kpalitere ozi njehie sitere na onye na-agbakọta. Ngwakọta a agaghị ekwe omume.
Ọdịda ọrụ dị iche iche nwere arụmụka nrụtụ aka (XC8-2755, XC8-2731) Ọrụ ndị nwere ọnụọgụ arụmụka na-atụ anya ka 24-bit (ụdị memx) ga-agafe na ndepụta arụmụka agbanwe mgbe arụrụ ọrụ const-data-in-progmem. A na-agafe arụmụka ndị na-atụ aka na ebe nchekwa data dị ka ihe 16-bit, na-akpata ọdịda koodu mgbe agụchara ha. Mgbe agbanyere njirimara constdata-in-progmem, arụmụka 16-bit niile ka agbanweela ka ọ bụrụ ntụnye 24-bit.
Ọbá akwụkwọ strtoxxx adịghị arụ ọrụ (XC8-2620) Mgbe agbanyere njirimara const-data-in-progmem, emeliteghị paramita endptr na ọrụ ọba akwụkwọ strtoxxx nke ọma maka arụmụka eriri isi iyi adịghị na ebe nchekwa mmemme.
Nti mkpu maka ihe nkedo na-ezighi ezi (XC8-2612) Onye nchịkọta ahụ ga-ewepụta njehie ma ọ bụrụ na agbanyere njirimara const-in-progmem ma tụba adreesị nke eriri nkịtị n'ụzọ doro anya na oghere adreesị data (na-atụba const qualifier), maka ex.ample, (uint 8_t *) "Ndewo Ụwa!". Ịdọ aka ná ntị bụ okwu ma ọ bụrụ na adreesị ahụ nwere ike ghara ịdị irè mgbe atụpụrụ ihe nrịbama data const na oghere adreesị data.
Ndokwa nke ihe ndị na-amaghị ama (XC8-2408) A naghị etinye const na const ihe na-agbanwe agbanwe na ebe nchekwa mmemme na ngwaọrụ ndị na-esepụta ihe niile ma ọ bụ akụkụ nke ebe nchekwa mmemme ha n'ime oghere adreesị data. Maka ngwaọrụ ndị a, a na-etinye ihe ndị dị otú ahụ na ebe nchekwa mmemme, na-eme ka ọrụ ha kwekọọ na ngwaọrụ ndị ọzọ.
5.3. Ụdị 2.39 (Mwepụta Nchekwa na-arụ ọrụ)
Ọ dịghị.
5.4. Ụdị 2.36
Njehie mgbe ị na-egbu oge (XC8-2774) Obere mgbanwe na ndabara ọnọdụ n'efu gbochiri mpịachi nke okwu operand mgbe niile na ọrụ arụrụ n'egbu oge, na-eme ka a na-emeso ha dị ka ndị na-adịghị adịgide adịgide na ịkpalite njehie: builtin avr delay_cycles na-atụ anya ikpokọta oge integer mgbe niile.
5.5. Ụdị 2.35
Oke na-aga n'ihu site na iji _at (XC8-2653) Nkesa na-aga n'ihu nke ọtụtụ ihe na mpaghara nwere otu aha yana iji _at () arụghị ọrụ nke ọma. Maka exampLe:
const char arr1[] __attribute__ ((ngalaba (“.mysec”))) __at (0x500) = {0xAB, 0xCD};
const char arr2[] __attribute__ ((ngalaba (“.mysec”))) = {0xEF, 0xFE};
kwesiri idowe arr2 ozugbo arr1 gachara.
Na-akọwapụta adreesị mmalite ngalaba (XC8-2650) The -W1, -nhọrọ mmalite-ngalaba na-enweghi ike idobe ngalaba na adreesị mmalite ahọpụtara. Edozila okwu a maka ngalaba aha ahaziri iche; Otú ọ dị, ọ gaghị arụ ọrụ maka ngalaba ọkọlọtọ ọ bụla, dị ka . ederede ma ọ bụ . bss, nke a ga-etinyerịrị site na iji nhọrọ -W1, -T.
Njikọ na-akụda mgbe ị na-atụrụ ndụ (XC8-2647) Mgbe nkwalite -mrelax na-enyere aka na enwere koodu ma ọ bụ akụkụ data nke na-adabaghị na ebe nchekwa dị, njikọ ahụ dara. Ugbu a, n'ọnọdụ dị otu a, a na-ewepụta ozi njehie kama.
Ọ dịghị-ada ada-azụ (XC8-2646) The Emejuputaghị nhọrọ nofallback nke ọma, ma ọ bụ detuo ya n'akwụkwọ. Enwere ike họrọ nke a ugbu a iji hụ na onye nchịkọta agaghị ada azụ na ntọala njikarịcha dị ala ma ọ bụrụ na enweghị ikike nke mkpokọta, kama ọ ga-ewepụta njehie.
Nkwalite ọsọ ọsọ na-ekwesịghị ekwesị (X03-2637) A na-eme ka njikarịcha abstraction usoro mgbe ị na-ahọrọ njikarịcha ọkwa 3 (-03). Ngosipụta ndị a na-ebelata nha koodu na-efu nke ọsọ koodu, yabụ na ekwesighi ime ya.
EEPROM ọjọọ ohere (XC8-2629) Ndị usoro eeprom_read_block arụghị ọrụ nke ọma na ngwaọrụ Xmega mgbe agbanyere nhọrọ -mconst-data-in-progmem (nke bụ ọnọdụ ndabara), na-ebute ebe nchekwa EEPROM anaghị agụ nke ọma.
Oke ebe nchekwa na-ezighi ezi (XC8-2593, XC8-2651) Mgbe -Ttext ma ọ bụ -Tdata nhọrọ njikọ (maka example gafere site na iji nhọrọ ọkwọ ụgbọ ala -vl) akọwapụtara, emelitere ederede/data mpaghara kwekọrọ; Otú ọ dị, emezighị adreesị njedebe nke ọma, nke nwere ike ime ka mpaghara ahụ gafere ebe nchekwa ngwaọrụ ezubere iche.
Ọkụkụ nwere ọrụ agbakwunyere karịa (XC8-2580) Ngwakọta ahụ dara ma ọ bụrụ na ekwuputala ọrụ site na iji ihe karịrị otu nkwụsịtụ, mgbama ma ọ bụ nmi njirimara, dịka njirimara ( ( (sign , interrupt)).
Koodu nkwụsịtụ ATtiny ezighi ezi (XC8-2465) Mgbe a na-ewu ụlọ maka ngwaọrụ ATtiny yana nkwalite ahụ kwụsịrị (-00), ọrụ nkwụsịtụ nwere ike ịkpalitela operand na-enweghị ozi ndị na-achịkọta ihe.
Nhọrọ anaghị agafe (XC8-2452) Mgbe ị na-eji nhọrọ ahụ nwere otutu, nhọrọ njikọ ndị kewapụrụ rịkọm, ọ bụghị nhọrọ niile nke njikọ ka a na-agafe na onye na-ejikọta ya.
Njehie na-agụ ebe nchekwa mmemme na-apụtaghị ìhè (X03-2450) N'ụfọdụ oge, onye nchịkọta ewepụtala njehie dị n'ime (insn na-enweghị ike ịmata) mgbe ị na-agụ uru byte abụọ site na ntụnye gaa na ebe nchekwa mmemme.
5.6. Ụdị 2.32
Ugboro abụọ ohere nke Ọbá akwụkwọ daa (XC8-2381) Na-akpọ ụdị Windows nke xc8-ar. Ebe nchekwa ọbá akwụkwọ .exe nke ugboro abụọ iji nweta ebe nchekwa ọbá akwụkwọ dị nwere ike daa na enweghị ike ịnyegharị ozi njehie aha.
5.7. Ụdị 2.31
Nchịkọta enweghị nkọwa ọdịda (XC8-2367) Mgbe ị na-agba ọsọ na nyiwe Windows nwere usoro ndekọ nwa oge ka edobere na ụzọ nke gụnyere ntụpọ '.' agwa, onye nchịkọta ihe nwere ike ghara ime ya.
5.8. Ụdị 2.30
Edobere aha aha ụwa niile ka emechara ya (XC8-2299) Koodu mgbakọ ejiri aka dee nke na-edobe akara mba ụwa n'ime usoro nzụkọ nke ewepụtara site na abstraction usoro nwere ike ọ gaghị edogharị ya nke ọma.
Okuku izu ike (XC8-2287) Iji nhọrọ -mrelax nwere ike ime ka onye njikọ ahụ daa mgbe njikarịcha ntụrụndụ ọdụ na-awụlikwa elu nwara iwepu nkuzi ret na-anọghị na njedebe nke ngalaba.
Ọkụkụ mgbe ị na-ebuli akara dị ka ụkpụrụ (XC8-2282) Koodu iji “Labels as values” ndọtị asụsụ GNU C nwere ike ime ka njikarịcha abstraction usoro daa, yana nso nso VMA akọwapụtara na-agafe njehie ndozi.
Ọ bụghị otú ahụ const (XC8-2271) Ụdị maka st rstr () na ọrụ ndị ọzọ sitere na akọwakwaghị qualifier const na-abụghị ọkọlọtọ na ihe nrịbama eriri eweghachiri mgbe njirimara -mconst-data-inprogmem nwere nkwarụ. Rịba ama na site na avrxmega3 na avrtiny ngwaọrụ, a na-akwado njirimara a kpamkpam.
Ndị mbido furu efu (XC8-2269) Mgbe karịa A na-etinye otu mgbanwe na ngalaba ntụgharị na ngalaba (iji _section ma ọ bụ _attribute_ ((ngalaba))), na nke mbụ mgbanwe dị otú ahụ bụ efu ebido ma ọ bụ na-enweghị ihe mmalite, ihe mmalite maka mgbanwe ndị ọzọ na otu nsụgharị nke etinyere n'otu akụkụ ahụ efunahụ.
5.1. Ụdị 2.29 (Mwepụta Nchekwa na-arụ ọrụ)
Ọ dịghị.
5.2. Ụdị 2.20
Njehie nwere ogologo iwu (XC8-1983) Mgbe ị na-eji ebumnuche AVR, onye nchịkọta nwere ike jiri a file Ahụghị mperi, ma ọ bụrụ na ahịrị iwu ahụ buru oke ibu ma nwee mkpụrụedemede pụrụ iche dị ka nhụta, azụ azụ, wdg.
Ngalaba rodata ekenyeghị ya (XC8-1920) Onye na-ahụ maka AVR anaghị ekenye ebe nchekwa maka ngalaba rodata omenala mgbe a na-ewu ụlọ maka avrxmega3 na avrtiny architectures, nwere ike iwepụta njehie nkpuchi ebe nchekwa.
5.3. Ụdị 2.19 (Mwepụta Nchekwa na-arụ ọrụ)
Ọ dịghị.
5.4. Ụdị 2.10
Ọdịda mbugharị (XC8-1891) Onye na-ekenye ihe kachasị mma na-ahapụ ebe nchekwa 'oghere' n'etiti ngalaba mgbe izu ike njikọ. Wezụga ebe nchekwa na-ekewa, nke a mụbara ohere nke enwere ọdịda mbugharị njikọ metụtara pc- ikwu jumps ma ọ bụ oku na-apụ apụ.
Ntuziaka na-agbanweghị site na ntụrụndụ (XC8-1889) Ntụrụndụ Linker emeghị maka ịwụ elu ma ọ bụ ntụziaka ịkpọ oku nke ebumnuche ya ga-enwe ike iru ma ọ bụrụ na izu ike.
Na-efu efu arụmọrụ (XC8E-388) Ọtụtụ nkọwa si , dị ka clock_div_t na clock_prescale set () , ka akọwapụtaghị maka ngwaọrụ, gụnyere ATmega324PB, ATmega328PB, ATtiny441, na ATtiny841.
Macros efu Ndị nchịkọta anaghị akọwapụta Macros preprocessor _XC8_MODE_, _XC8_VERS ION, _XC, na _XC8 ozugbo. Ndị a dị ugbu a.
5.5. Ụdị 2.05
Njehie mkpokọta mkpokọta (XC8-1822) Mgbe ị na-ewu n'okpuru Windows, enwere ike ịmepụta njehie n'ime mkpokọta mgbe ị na-ebuli koodu.
Achọpụtaghị oke oke RAM (XC8-1800, XC8-1796) Mmemme karịrị nke RAM dịnụ achọpụtaghị ihe ndị na-achịkọta ihe n'ọnọdụ ụfọdụ, butere ọdịda koodu ojiri oge.
Ebe nchekwa flash ewepụrụ (XC8-1792) Maka avrxmega3 na avrtiny ngwaọrụ, ọ ga-abụ na MPLAB X ahapụla akụkụ nke ebe nchekwa ọkụ na-emeghị ya. IDE.
Ọdịda ime isi (XC8-1788) N'ọnọdụ ụfọdụ ebe mmemme ahụ enweghị mgbanwe zuru ụwa ọnụ akọwapụtara, koodu mmalite mmalite anaghị apụ apụ na isi ( ) arụghị ọrụ.
Ozi ebe nchekwa ezighi ezi (XC8-1787) Maka ngwaọrụ avrxmega3 na avrtiny, mmemme avr-size na-akọ na naanị data ọgụgụ na-eri RAM kama ebe nchekwa mmemme.
Ebe nchekwa mmemme ezighi ezi (XC8-1783) Ọrụ achịkọtara maka ngwaọrụ nwere ebe nchekwa mmemme etinyere n'ime oghere adreesị data yana nke na-akọwapụta ihe site na iji nnukwu/àgwà PROGMEM nwere ike gụọ ihe ndị a site na adreesị na-ezighi ezi.
Njehie dị n'ime nwere njirimara (XC8-1773) Njehie dị n'ime mere ma ọ bụrụ na ị kọwapụtara ihe nrịbama na ihe
_at () ma ọ bụ àgwà() akara dị n'etiti aha pointer na ụdị ewepụrụ, maka ex.ample, chara*
_na (0x800150) cp; A na-enye ịdọ aka ná ntị ugbu a ma ọ bụrụ na enwetara koodu dị otú ahụ.
Ọdịda ime isi (XC8-1780, XC8-1767, XC8-1754) Iji mgbanwe EEPROM ma ọ bụ ịkọwapụta fuses site na iji config pragma nwere ike butere mmalite data ezighi ezi na/ma ọ bụ kpochie mmemme mmemme na koodu mmalite mmalite, tupu erute isi ().
Njehie fuse na obere ngwaọrụ (XC8-1778, XC8-1742) Ngwa attiny4/5/9/10/20/40 nwere ogologo fiusi na-ezighi ezi akọwapụtara na nkụnye eji isi mee ha. files nke na-eduga na njehie njikọ mgbe ị na-agbalị ịmepụta koodu nke akọwapụtara fuses.
Nkebi mmejọ (XC8-1777) Emeziela mmejọ nkebi na-adịte aka.
Mkpọkpọ okuku (XC8-1761) Onye na-agbakọta avr-as nwere ike ịdaba mgbe a na-agbakọ mkpokọta n'okpuru Ubuntu 18.
Ihe anaghị ekpochapụ (XC8-1752) Ihe na-adịru oge nchekwa na-enweghị aha nwere ike ọ gaghị ekpochapụ ya site na koodu mmalite mmalite.
Elegharala nkọwapụta ngwaọrụ na-emegiderịta onwe ya anya (XC8-1749) Onye nchịkọta anaghị ewepụta njehie mgbe ejiri ọtụtụ nhọrọ nkọwa ngwaọrụ wee gosi ngwaọrụ dị iche iche.
Nrụrụ ebe nchekwa site na ikpo (XC8-1748) The A na-edobe akara _heap_start na-ezighi ezi, na-ebute ohere nke ikpochapu mebie mgbanwe nkịtị.
Njehie mbugharị Linker (XC8-1739) Enwere ike ịwepụta njehie mbugharị njikọ mgbe koodu nwere rjmp ma ọ bụ kpọọ oku nwere ebumnuche 4k dịpụrụ adịpụ.
5.6. Ụdị 2.00
Ọ dịghị.
Okwu ndị amaara
Ndị a bụ oke n'ime ọrụ onye nchịkọta. Ndị a nwere ike ịbụ mmachi nzuzo n'ozuzu, ma ọ bụ ndịiche sitere na ozi dị n'ime akwụkwọ ntuziaka onye ọrụ. Akara akara (s) nwere bracketed na aha bụ njirimara nke okwu ahụ na nchekwa data nsochi. Nke a nwere ike ịba uru ma ọ bụrụ na ịchọrọ ịkpọtụrụ nkwado. Ihe ndị ahụ na-enweghị akara bụ oke na-akọwa modi operandi na nke nwere ike ịdị na-arụ ọrụ ruo mgbe ebighị ebi.
6.1. MPLAB X IDE Njikọta
MPLAB IDE Mwekota Ọ bụrụ na a ga-eji Compiler site na MPLAB IDE, ị ga-etinyerịrị MPLAB IDE tupu ịwụnye Compiler.
6.2. Usoro Ọgbọ
Segfault na nhọrọ ngalaba-arịlịka (XC8-3045) Mmemme kọwapụtara ọrụ na ndepụta arụmụka agbanwe agbanwe yana nke na-eji nhọrọ -fsection-anchors nwere ike kpalitela njehie nchịkọta ihe dị n'ime: mmejọ nkebi.
Ozi nbibi esighị na mmekọrịta (XC8-2948) Mgbe njikarịcha ntụrụndụ njikọ na-ebelata ntuziaka (maka exampna oku ịkpọ oku ntuziaka), ahịrị isi okwu maka eserese eserese nwere ike ọ gaghị adị na mmekọrịta mgbe enwere ihe karịrị otu ọrụ mbelata na-eme na ngalaba.
N'okpuru examplee, enwere oku abụọ na foo nke na-ejedebe n'oku maka oku ikwu.
Ọdịda oke ebe nchekwa PA (XC8-2881) Mgbe ị na-eji ihe nrụnye abstraction nke usoro, onye njikọ ahụ nwere ike kọọ njehie oke ebe nchekwa mgbe nha koodu dị nso na ọnụọgụ ebe nchekwa mmemme dị na ngwaọrụ ahụ, n'agbanyeghị na mmemme ahụ kwesịrị inwe ike dabara na oghere dị.
Ọ bụghị smart smart-I0 (XC8-2872) Njirimara smart-io nke onye nchịkọta ga-ewepụta koodu ziri ezi mana nke kachasị mma maka ọrụ snprint f ma ọ bụrụ na njirimara const-data-in-progmem nwere nkwarụ ma ọ bụ ọ bụrụ na ngwaọrụ ahụ nwere maapụ ọkụ ya niile na ebe nchekwa data.
Ọbụlagodi obere smart-I0 (XC8-2869) Njirimara smart-io nke onye nchịkọta ga-ewepụta koodu ziri ezi mana nke kachasị mma mgbe ejiri nhọrọ -flto na -fno-builtin mee ihe.
Ndobe data naanị ọgụgụ kacha mma (XC8-2849) Onye njikọ ahụ amabeghị akụkụ ebe nchekwa APPCODE na APPDATA, ma ọ bụ nkewa [Ọ dịghị-agụ-Mgbe-Dee nkewa na map ebe nchekwa. N'ihi ya, enwere obere ohere na onye na-ejikọta ya nwere ike ịkenye data naanị ọgụgụ na ebe nchekwa na-adịghị mma. Ohere nke data ezighi ezi na-abawanye ma ọ bụrụ na agbanyere njirimara const-data-in-progmem, ọkachasị ma ọ bụrụ na akwadokwara njirimara const-data-in-config-mapped-progmem. Enwere ike gbanyụọ atụmatụ ndị a ma achọrọ ya.
Ihe file usoro nhazi (XC8-2863) Usoro nke ihe files ga-ahazi site na onye njikọ nwere ike ịdị iche dabere na iji njikarịcha abstraction usoro (-mpa nhọrọ). Nke a ga-emetụta naanị koodu nke na-akọwa ọrụ adịghị ike n'ofe ọtụtụ modul.
Njehie njikọ nwere zuru oke (XC8-2777) Mgbe emechara ihe zuru oke na adreesị mmalite nke RAM na kọwakwara ihe ndị na-amaghị aha, enwere ike ịkpalite njehie njikọ.
NJ mkpirisi ịkpọte (XC8-2775) Maka ngwaọrụ ATA5700/2, a na-akọwa naanị ndekọ PHIDO/1 dị ka obosara 16 bit, karịa 32bit n'obosara.
Njikọ njikọ mgbe akara oku (XC8-2758) Onye njikọ ahụ nwere ike daa ma ọ bụrụ na-eji nhọrọ ọkwọ ụgbọ ala -mrelax mgbe koodu isi mmalite na-akpọ akara nke akọwara site na iji nhọrọ -cc., -de f sym linker.
Mmalite ezighi ezi (XC8-2679) N'ebe ahụ bụ ihe dị iche n'etiti ebe a na-etinye ụkpụrụ mbụ maka ụfọdụ ihe gbasara ụwa / static byte na ebe nchekwa data yana ebe a ga-enweta mgbanwe ndị ahụ na oge ojiri gaa.
Oku ọrụ na-apụtaghị ìhè (XC8-2628) N'ụfọdụ oge, oku ọrụ emere site na ntụnye ọrụ echekwara dị ka akụkụ nke nhazi nwere ike ịda.
strtof weghachiri efu maka hexadecimal floats (XC8-2626) Ọbá akwụkwọ ahụ na-arụ ọrụ strtof et al na scanf ( ) et al, na-agbanwe mgbe ọ bụla ọnụọgụ hexadecimal na-ese n'elu mmiri nke na-akọwapụtaghị ihe mgbapụ ka ọ bụrụ efu. Maka exampLe:
strtof ("Oxl", & endptr);
ga-eweghachi uru 0, ọ bụghị m.
Ozi onye ndụmọdụ nchịkọta ezighi ezi (XC8-2542, XC8-2541) N'ọnọdụ ụfọdụ, ịdọ aka ná ntị nchịkọta nchịkọta gbasara nlọghachi azụ ma ọ bụ nchịkọta enweghị njedebe ejiri (ikekwe site na iji alloca()) adịghị ewepụta.
Ọdịda na koodu nkwụsịtụ oyiri (XC8-2421) Ebe ihe karịrị otu ọrụ nkwụsịtụ nwere otu ahụ, onye nchịkọta nwere ike nweta nsonaazụ maka otu ọrụ nkwụsịtụ kpọọ nke ọzọ. Nke a ga-eme ka echekwara ndekọ niile akpọchiri akpọchi na-enweghị isi, a ga-eme ka nkwụsịtụ ahụ kwụsị ọbụna tupu epilogue nke onye na-egbochi nkwụsịtụ ugbu a agbaala, nke nwere ike ibute ọdịda koodu.
Mmepụta ọjọọ nwere ụzọ DFP na-ezighi ezi (XC8-2376) Ọ bụrụ na ejiri ụzọ DFP na-ezighi ezi na 'spec' kpọọ onye nchịkọta ihe. file dị maka ngwaọrụ ahọpụtara, onye nchịkọta anaghị akọ mkpọ ezinụlọ na-efu efu kama họrọ 'spec' file, nke nwere ike bute nsonaazụ na-ezighi ezi. Ihe 'spec' files nwere ike ọ gaghị adị ọhụrụ na DFP nke kesara ma e bu n'obi jiri naanị nyocha mkpokọta ime.
Achọpụtaghị mgbakwụnye ebe nchekwa (XC8-1966) Onye na-achịkọta anaghị achọpụta mgbakwụnye ebe nchekwa nke ihe emere zuru oke na adreesị (site na _at ()) na ihe ndị ọzọ site na iji ngalaba () nkọwa na nke ejikọtara na otu adreesị ahụ.
Ọdịda na ọrụ ọba akwụkwọ yana _memx (XC8-1763) A na-akpọ ọrụ float libgcc nwere arụmụka dị na oghere adreesị memx nwere ike ịda. Rịba ama na a na-akpọ usoro ọbá akwụkwọ site n'aka ụfọdụ ndị na-arụ ọrụ C, ya mere, maka examplee, koodu a na-emetụta:
laghachi regFloatVar> memxFloatVar;
Mmejuputa libgcc nwere oke (AVRTC-731) Maka ngwaahịa ATTiny4/5/9/10/20/40, mmejuputa ọba akwụkwọ ọkọlọtọ C / Math na libgcc nwere oke ma ọ bụ adịghị.
Oke ebe nchekwa mmemme (AVRTC-732) Ihe oyiyi ebe nchekwa ihe mmemme karịrị 128 kb bụ nke ngwá ọrụ na-akwado; Otú ọ dị, e nwere ihe ndị ama ama nke linker aborts na-enweghị ntụrụndụ na-enweghị ozi njehie na-enyere aka kama ịmepụta stubs ọrụ achọrọ mgbe a na-eji nhọrọ -mre lax.
Oke oghere aha (AVRTC-733) Ngwa ngwa na-akwado oghere adreesị akpọrọ, dabere na mmachi akpọtụrụ na ngalaba ntuziaka onye ọrụ, ụdị iru eru pụrụ iche.
Mpaghara oge The Ọrụ ọba akwụkwọ na-ewere GMT na anaghị akwado mpaghara oge mpaghara, yabụ oge mpaghara ( ) ga-alaghachi n'otu oge gmtime (), maka ex.ample.
file:///Applications/microchip/xc8/v2.41/docs/Readme_XC8_for_AVR.htm
Akwụkwọ / akụrụngwa
![]() |
MICROCHIP MPLAB XC8 C Compiler Development Software [pdf] Akwụkwọ ntuziaka onye nwe MPLAB XC8 C, MPLAB XC8 C Compiler Development Software, Compiler Development Software, Software Development, Software |