MICROCHIP MPLAB XC8 C Compiler ဆော့ဝဲလ် 

MICROCHIP MPLAB XC8 C Compiler ဆော့ဝဲလ်

ဤစာရွက်စာတမ်းတွင် MICROCHIP AVR စက်ပစ္စည်းများကို ပစ်မှတ်ထားသည့်အခါ MPLAB XC8 C စုစည်းမှုဆိုင်ရာ အရေးကြီးအချက်အလက်များ ပါရှိသည်။
ဤဆော့ဖ်ဝဲလ်ကို မလုပ်ဆောင်မီ ၎င်းကိုဖတ်ပါ။ အကယ်၍ သင်သည် 8-BIT PIC PIC Devices များအတွက် Compiler ကိုအသုံးပြုနေပါက PIC Document အတွက် MPLAB XC8 C compiler ထုတ်ဝေမှုမှတ်စုများကို ကြည့်ပါ။

မာတိကာ ပုန်း

ကျော်view

နိဒါန်း

Microchip MPLAB® XC8 C compiler ၏ ဤထွက်ရှိမှုတွင် အင်္ဂါရပ်အသစ်များ၊ ချွတ်ယွင်းချက်ပြင်ဆင်မှုများနှင့် စက်ပစ္စည်းပံ့ပိုးမှုအသစ်များစွာပါရှိသည်။

တည်ဆောက်မည့်ရက်စွဲ

ဤ compiler ဗားရှင်း၏တရားဝင်တည်ဆောက်ရက်စွဲသည် 3 ဇူလိုင် 2022 ဖြစ်သည်။

ယခင်ဗားရှင်း

ယခင် MPLAB XC8 C compiler ဗားရှင်းသည် 2.39 ဖြစ်ပြီး၊ 27၊ 2022 ဇန်န၀ါရီ 2.36 တွင် တည်ဆောက်ထားသော functional safety compiler ဖြစ်သည်။ ယခင် standard compiler သည် ဗားရှင်း 27 ဖြစ်ပြီး 2022 ဇန်နဝါရီ XNUMX တွင် တည်ဆောက်ခဲ့သည်။

Functional Safety Manual

လုပ်ငန်းဆိုင်ရာဘေးကင်းရေးလိုင်စင်ကို သင်ဝယ်ယူသောအခါ MPLAB XC စုစည်းမှုများအတွက် လုပ်ဆောင်ချက်ဆိုင်ရာ ဘေးကင်းရေးလက်စွဲစာအုပ်ကို စာရွက်စာတမ်းအထုပ်တွင် ရနိုင်ပါသည်။

အစိတ်အပိုင်းလိုင်စင်များနှင့် ဗားရှင်းများ

AVR MCUs ကိရိယာများအတွက် MPLAB® XC8 C Compiler ကို GNU အထွေထွေအများပြည်သူလိုင်စင် (GPL) အောက်တွင် ရေးသားပြီး ဖြန့်ဝေထားသောကြောင့် ၎င်း၏အရင်းအမြစ်ကုဒ်ကို လွတ်လပ်စွာဖြန့်ဝေပြီး အများသူငှာရရှိနိုင်သည်ဟု ဆိုလိုသည်။ GNU GPL အောက်ရှိ ကိရိယာများအတွက် အရင်းအမြစ်ကုဒ်ကို Microchip မှ သီးခြားဒေါင်းလုဒ်လုပ်နိုင်ပါသည်။ website. GNU GPL ကိုသင်ဖတ်နိုင်သည်။ file သင်၏ install directory ၏ subdirectory တွင်တည်ရှိသည်ဟုအမည်ပေးသည်။ GPL ၏ အခြေခံမူများဆိုင်ရာ ယေဘုယျ ဆွေးနွေးချက်ကို ဤနေရာတွင် တွေ့နိုင်ပါသည်။ ခေါင်းစီးအတွက် ပံ့ပိုးကုဒ် files၊ linker scripts နှင့် runtime libraries များသည် ကိုယ်ပိုင်ကုဒ်များဖြစ်ပြီး GPL အောက်တွင် အကျုံးမဝင်ပါ။

ဤ compiler သည် GCC ဗားရှင်း 5.4.0၊ binutils ဗားရှင်း 2.26 နှင့် avr-libc ဗားရှင်း 2.0.0 ကို အသုံးပြုထားသည်။

စနစ်လိုအပ်ချက်များ

MPLAB XC8 C compiler နှင့် ၎င်းအသုံးပြုသော လိုင်စင်ဆော့ဖ်ဝဲလ်သည် အောက်ပါ 64-bit ဗားရှင်းများအပါအဝင် လည်ပတ်မှုစနစ်အမျိုးမျိုးအတွက် ရနိုင်သည်- Microsoft Windows 10 ၏ ပရော်ဖက်ရှင်နယ်ထုတ်ဝေမှုများ၊ Ubuntu 18.04; နှင့် macOS 10.15.5. Windows အတွက် Binaries များကို ကုဒ်-လက်မှတ်ထိုးထားသည်။ mac OS အတွက် Binaries များကို ကုဒ်လက်မှတ်ထိုးပြီး မှတ်တမ်းတင်ထားသည်။

အကယ်၍ သင်သည် ကွန်ရက်လိုင်စင်ဆာဗာကို အသုံးပြုနေပါက၊ ကွန်ပလီဆာမှ ​​ပံ့ပိုးပေးသည့် လည်ပတ်မှုစနစ်ပါရှိသော ကွန်ပျူတာများကိုသာ လိုင်စင်ဆာဗာကို လက်ခံကျင်းပရန် အသုံးပြုနိုင်သည်။ xclm ဗားရှင်း 2.0 အရ၊ ကွန်ရက်လိုင်စင်ဆာဗာကို Microsoft Windows Server ပလပ်ဖောင်းပေါ်တွင် ထည့်သွင်းနိုင်သော်လည်း လိုင်စင်ဆာဗာသည် လည်ပတ်မှုစနစ်၏ ဆာဗာဗားရှင်းပေါ်တွင် လုပ်ဆောင်ရန် မလိုအပ်ပါ။

ထောက်ပံ့ပစ္စည်းများ

ဤ compiler သည် ထွက်ရှိချိန်တွင် သိထားသော 8-bit AVR MCU စက်အားလုံးကို ပံ့ပိုးပေးပါသည်။ ပံ့ပိုးပေးထားသော စက်များအားလုံး၏စာရင်းအတွက် (compiler ၏ doc directory တွင်) ကြည့်ပါ။ ဒါတွေ files စက်တစ်ခုစီအတွက် configuration bit ဆက်တင်များကိုလည်း စာရင်းပြုစုပါ။

ထုတ်ဝေမှုများနှင့် လိုင်စင်အဆင့်မြှင့်တင်မှုများ

MPLAB XC8 compiler ကို လိုင်စင်ရ (PRO) သို့မဟုတ် လိုင်စင်မဲ့ (အခမဲ့) ထုတ်ကုန်အဖြစ် အသက်သွင်းနိုင်ပါသည်။ သင်၏ compiler ကိုလိုင်စင်ရယူရန် activation key တစ်ခုဝယ်ယူရန်လိုအပ်သည်။ လိုင်စင်တစ်ခုသည် အခမဲ့ ထုတ်ကုန်နှင့် နှိုင်းယှဉ်ပါက ပိုမို ကောင်းမွန်အောင် လုပ်ဆောင်နိုင်စေပါသည်။ လိုင်စင်မဲ့ compiler သည် လိုင်စင်မရှိဘဲ ရက်အကန့်အသတ်မရှိ လုပ်ဆောင်နိုင်သည်။

MPLAB XC8 Functional Safety compiler သည် Microchip မှဝယ်ယူထားသော functional safety လိုင်စင်ဖြင့် အသက်သွင်းရပါမည်။ ဤလိုင်စင်မရှိဘဲ compiler သည် အလုပ်လုပ်မည်မဟုတ်ပါ။ စဖွင့်ပြီးသည်နှင့်၊ သင်သည် မည်သည့် optimization အဆင့်ကိုမဆို ရွေးချယ်နိုင်ပြီး compiler အင်္ဂါရပ်အားလုံးကို အသုံးပြုနိုင်သည်။ MPLAB XC Functional Safety Compiler သည် Network Server License ကို ပံ့ပိုးပေးပါသည်။
လိုင်စင်အမျိုးအစားများနှင့် လိုင်စင်ဖြင့် ကွန်ပလီကိုတပ်ဆင်ခြင်းဆိုင်ရာ အချက်အလက်အတွက် MPLAB XC C Compilers (DS50002059) တပ်ဆင်ခြင်းနှင့် လိုင်စင်ပေးခြင်း စာရွက်စာတမ်းကို ကြည့်ပါ။

တပ်ဆင်ခြင်းနှင့် အသက်သွင်းခြင်း။

ဤ compiler တွင်ပါရှိသော နောက်ဆုံးပေါ်လိုင်စင်မန်နေဂျာအကြောင်း အရေးကြီးအချက်အလက်များအတွက် ရွှေ့ပြောင်းနေထိုင်မှုပြဿနာများနှင့် ကန့်သတ်ချက်များ ကဏ္ဍများကို ကြည့်ပါ။
MPLAB IDE ကိုအသုံးပြုပါက၊ ဤကိရိယာကိုမထည့်သွင်းမီ နောက်ဆုံးပေါ် MPLAB X IDE ဗားရှင်း 5.0 သို့မဟုတ် နောက်ပိုင်းတွင် ထည့်သွင်းရန်သေချာပါစေ။ compiler ကိုမထည့်သွင်းမီ IDE မှထွက်ပါ။ .exe (Windows)၊ .run (Linux) သို့မဟုတ် အက်ပ် (macOS) compiler installer အပလီကေးရှင်း၊ ဥပမာ XC8-1.00.11403-windows.exe ကိုဖွင့်ပြီး စခရင်ပေါ်ရှိ လမ်းညွှန်ချက်များကို လိုက်နာပါ။
ပုံသေတပ်ဆင်မှုလမ်းညွှန်ကို အကြံပြုထားသည်။ သင်သည် Linux ကိုအသုံးပြုနေပါက၊ သင်သည် terminal နှင့် root အကောင့်ကိုအသုံးပြု၍ compiler ကိုထည့်သွင်းရပါမည်။ စီမံခန့်ခွဲသူအခွင့်အရေးများနှင့်အတူ macOS အကောင့်ကို အသုံးပြု၍ ထည့်သွင်းပါ။

တပ်ဆင်ခြင်းအတွက် အသက်သွင်းခြင်းကို သီးခြားလုပ်ဆောင်နေပြီဖြစ်သည်။ နောက်ထပ်အချက်အလက်များအတွက် MPLAB® XC C Compilers (DS52059) အတွက် စာရွက်စာတမ်းလိုင်စင်မန်နေဂျာကို ကြည့်ပါ။

အကယ်၍ သင်သည် အကဲဖြတ်ခွင့်လိုင်စင်အောက်တွင် စုစည်းမှုကို လုပ်ဆောင်ရန် ရွေးချယ်ပါက၊ သင်သည် သင်၏အကဲဖြတ်မှုကာလ ကုန်ဆုံးပြီး 14 ရက်အတွင်း စုစည်းမှုအတွင်း သတိပေးချက် ရရှိမည်ဖြစ်သည်။ သင်၏ HPA စာရင်းသွင်းမှု ပြီးဆုံးသည့်နေ့မှ 14 ရက်အတွင်း အကယ်၍ သင်သည် အလားတူသတိပေးချက်ကို ထုတ်ပြန်ပါသည်။

XC Network License Server သည် သီးခြားထည့်သွင်းသူဖြစ်ပြီး single-user compiler installer တွင် မပါဝင်ပါ။

ယခု XC လိုင်စင်မန်နေဂျာသည် ရေပေါ်ကွန်ရက်လိုင်စင်များကို roaming လုပ်နိုင်ပါပြီ။ မိုဘိုင်းလ်အသုံးပြုသူများအတွက် ရည်ရွယ်၍ ဤလုပ်ဆောင်ချက်သည် ရေပေါ်လိုင်စင်အား ကွန်ရက်ကို အချိန်တိုအတွင်း ထွက်သွားစေရန် ခွင့်ပြုပေးပါသည်။ ဤအင်္ဂါရပ်ကိုအသုံးပြုခြင်းဖြင့် သင်သည် ကွန်ရက်မှချိတ်ဆက်မှုကိုဖြတ်တောက်နိုင်ပြီး သင်၏ MPLAB XC စုစည်းမှုကို ဆက်လက်အသုံးပြုနိုင်မည်ဖြစ်သည်။ ဤအင်္ဂါရပ်အပေါ် ပိုမိုသိရှိနိုင်စေရန် XCLM ထည့်သွင်းမှု၏ doc ဖိုင်တွဲကို ကြည့်ပါ။ MPLAB X IDE တွင် အမြင်အာရုံဖြင့် roaming ကို စီမံခန့်ခွဲရန် လိုင်စင်များ ဝင်းဒိုး (Tools > Licenses) ပါဝင်သည်။

တပ်ဆင်ခြင်းဆိုင်ရာ ပြဿနာများကို ဖြေရှင်းခြင်း။

Windows operating systems တစ်ခုခုအောက်တွင် compiler ကို install လုပ်ရာတွင် အခက်အခဲများကြုံတွေ့ရပါက အောက်ပါအကြံပြုချက်များကို စမ်းကြည့်ပါ။

  • အက်ဒမင်အဖြစ် install လုပ်ပါ။
  • ထည့်သွင်းသူအပလီကေးရှင်း၏ခွင့်ပြုချက်များကို 'အပြည့်အဝထိန်းချုပ်မှု' သို့သတ်မှတ်ပါ။ (ညာဖက်ကလစ်နှိပ်ပါ။ fileProperties ကိုရွေးချယ်ပါ၊ လုံခြုံရေးတက်ဘ်၊ အသုံးပြုသူကိုရွေးချယ်ပါ၊ တည်းဖြတ်ပါ။)
  • Temp folder ၏ခွင့်ပြုချက်များကို “Full Control!

temp folder ၏တည်နေရာကိုဆုံးဖြတ်ရန်၊ Run command (Windows logo key + R) တွင် %temp% ဟုရိုက်ထည့်ပါ။ ဒီတစ်ခုဖွင့်မယ်။ file အဆိုပါလမ်းညွှန်ကိုပြသသည့် explorer ဒိုင်ယာလော့ဂ်သည် သင့်အား ထိုဖိုင်တွဲ၏လမ်းကြောင်းကို ဆုံးဖြတ်နိုင်စေမည်ဖြစ်သည်။

Compiler Documentation

စခရင်ရှော့တွင်ဖော်ပြထားသည့်အတိုင်း MPLAB X IDE ဒက်ရှ်ဘုတ်ရှိ အပြာရောင်အကူအညီခလုတ်ကိုနှိပ်သည့်အခါ compiler ၏အသုံးပြုသူ၏လမ်းညွှန်ချက်များကို သင့်ဘရောက်ဆာတွင်ဖွင့်ထားသည့် HTML စာမျက်နှာမှဖွင့်နိုင်သည်။

Compiler Documentation
အကယ်၍ သင်သည် 8-bit AVR ပစ်မှတ်များအတွက် တည်ဆောက်နေပါက၊ MPLAB® XC8 C Compiler User's Guide for AVR® MCU တွင် အဆိုပါ compiler ရွေးချယ်မှုများနှင့် ဤဗိသုကာနှင့် သက်ဆိုင်သည့် အင်္ဂါရပ်များဆိုင်ရာ အချက်အလက်များ ပါရှိသည်။

ဖောက်သည်ပံ့ပိုးမှု

Microchip သည် ဤ compiler ဗားရှင်းနှင့်ပတ်သက်သည့် bug အစီရင်ခံစာများ၊ အကြံပြုချက်များ သို့မဟုတ် မှတ်ချက်များကို ကြိုဆိုပါသည်။ ကျေးဇူးပြု၍ ပံ့ပိုးမှုစနစ်မှတစ်ဆင့် ချို့ယွင်းချက်အစီရင်ခံစာများ သို့မဟုတ် လုပ်ဆောင်ချက်တောင်းဆိုမှုများကို ညွှန်ကြားပါ။

စာရွက်စာတမ်းမွမ်းမံမှုများ

MPLAB XC8 စာရွက်စာတမ်းများ၏ အွန်လိုင်းနှင့် နောက်ဆုံးပေါ်ဗားရှင်းများအတွက်၊ ကျေးဇူးပြု၍ Microchip ၏ အွန်လိုင်းနည်းပညာဆိုင်ရာ စာရွက်စာတမ်းများကို ဝင်ရောက်ကြည့်ရှုပါ။ website.

ဤထုတ်ဝေမှုတွင် အသစ် သို့မဟုတ် မွမ်းမံထားသော AVR စာရွက်စာတမ်းများ-

  • MUSL မူပိုင်ခွင့် အသိပေးချက်
  • MPLAB XC C Compilers (ပြင်ဆင်ချက် M) ကို ထည့်သွင်းခြင်းနှင့် လိုင်စင်ပေးခြင်း
  • မြှုပ်သွင်းအင်ဂျင်နီယာများအတွက် MPLAB XC8 အသုံးပြုသူ!s လမ်းညွှန် - AVR MCUs (ပြင်ဆင်ချက် A)
  • MPLAB XC8 C Compiler အသုံးပြုသူ!s လမ်းညွှန် AVR MCU (တည်းဖြတ် F)
  • Microchip ပေါင်းစည်းထားသော Standard Library ရည်ညွှန်းချက် လမ်းညွှန် (ပြင်ဆင်မှု B)

Microchip ပေါင်းစည်းထားသော Standard Library ရည်ညွှန်းလမ်းညွှန်သည် Microchip Unified Standard Library မှ သတ်မှတ်ထားသော လုပ်ဆောင်ချက်များနှင့် အင်တာဖေ့စ်အမူအကျင့်များအပြင် စာကြည့်တိုက်အမျိုးအစားများနှင့် မက်ခရိုများကို ရည်ရွယ်အသုံးပြုခြင်းတို့ကို ဖော်ပြပါသည်။ ဤအချက်အလက်အချို့ကို ယခင်က AVR® MCU အတွက် MPLAB® XC8 C Compiler User!s Guide တွင် ပါရှိသည်။ စက်ပစ္စည်းအလိုက် စာကြည့်တိုက်အချက်အလက်ကို ဤ compiler လမ်းညွှန်တွင် ပါရှိပါသည်။

အကယ်၍ သင်သည် 8-bit စက်ပစ္စည်းများနှင့် MPLAB XC8 C Compiler ဖြင့် စတင်လုပ်ကိုင်နေပါက၊ Embedded Engineers အတွက် MPLAB® XC8 User!s Guide - AVR® MCUs (DS50003108) တွင် MPLAB X IDE တွင် ပရောဂျက်များထည့်သွင်းခြင်းနှင့် ကုဒ်ရေးသားခြင်းဆိုင်ရာ အချက်အလက်များ ရှိပါသည်။ သင်၏ပထမဆုံး MPLAB XC8 C ပရောဂျက်အတွက်။ ဤလမ်းညွှန်ချက်ကို ယခု compiler ဖြင့် ဖြန့်ဝေထားပါသည်။

Hamate အသုံးပြုသူ၏လမ်းညွှန်ချက်ကို ဤထုတ်ဝေမှုတွင် docs directory တွင် ထည့်သွင်းထားပါသည်။ ဤလမ်းညွှန်ချက်သည် Hamate သီးသန့်အပလီကေးရှင်းတစ်ခုအဖြစ် အသုံးပြုနေသူများအတွက် ရည်ရွယ်ပါသည်။

ဘာထူးသလဲ

အောက်ပါတို့သည် ယခု compiler ကို ပံ့ပိုးပေးသည့် AVR-ပစ်မှတ် အင်္ဂါရပ်များ ဖြစ်သည်။ ခေါင်းစဉ်ခွဲများရှိ ဗားရှင်းနံပါတ်သည် လိုက်နာရမည့်အင်္ဂါရပ်များကို ပံ့ပိုးရန် ပထမဆုံး compiler ဗားရှင်းကို ညွှန်ပြသည်။

ဗားရှင်း 2.40

စက်အသစ်ပံ့ပိုးမှု အောက်ပါ AVR အစိတ်အပိုင်းများအတွက် ပံ့ပိုးမှုကို ယခုရရှိနိုင်ပါပြီ- AT90PWM3, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR64EA28, AVR64EA32,
ပိုမိုကောင်းမွန်သော လုပ်ထုံးလုပ်နည်း abstraction လုပ်ထုံးလုပ်နည်း abstraction (PA) optimization tool ကို မြှင့်တင်ထားပြီး function call instruction (call recall )) ပါရှိသော ကုဒ်ကို ဖော်ပြနိုင်စေရန်။ လုပ်ဆောင်ချက်မှ တန်ပြန်တန်ဖိုးကို မရယူဘဲ stack မှ arguments များကို pass သို့မဟုတ် ပြန်ရယူရန် အသုံးမပြုပါက ၎င်းသည် ဖြစ်ပေါ်လာမည်ဖြစ်သည်။ မပြောင်းလဲနိုင်သော အငြင်းအခုံစာရင်းတစ်ခုပါရှိသော လုပ်ဆောင်ချက်တစ်ခုကို ခေါ်ဆိုသည့်အခါ သို့မဟုတ် ဤရည်ရွယ်ချက်အတွက် သတ်မှတ်ထားသော မှတ်ပုံတင်များထက် ပိုမိုများပြားသော အကြောင်းပြချက်များယူသည့် လုပ်ဆောင်ချက်ကို ခေါ်ဆိုသည့်အခါ stack ကို အသုံးပြုသည်။ ဤအင်္ဂါရပ်ကို ရဟန်း-ပ-ပ-ကောက်ကြောင်း-ခေါ်ဆိုမှုရွေးချယ်စရာကို အသုံးပြု၍ ပိတ်နိုင်သည်၊ သို့မဟုတ် လုပ်ထုံးလုပ်နည်းဆိုင်ရာ သုတ်သင်ရှင်းလင်းမှုကို အရာဝတ္ထုတစ်ခုအတွက် လုံးဝပိတ်ထားနိုင်သည်။ file သို့မဟုတ် -monk-pa-on- ကို အသုံးပြု၍ လုပ်ဆောင်ခြင်း၊file နှင့် -mo.-pa-on-function အသီးသီး သို့မဟုတ် nipa attribute (nipa specifier) ​​ကို လုပ်ဆောင်ချက်များဖြင့် ရွေးချယ်ခြင်းဖြင့်၊

ကုဒ်အကျုံးဝင်သောမက်ခရို ကွန်ပလီကေးရှင်းသည် တရားဝင် mcodecov ရွေးချယ်မှုကို သတ်မှတ်ထားပါက ယခုအခါ macro __CODECOV ကို သတ်မှတ်ပေးပါသည်။

Memory ကြိုတင်မှာယူမှု ရွေးချယ်မှု xc8-cc ဒရိုက်ဘာသည် AVR ပစ်မှတ်များကိုတည်ဆောက်သည့်အခါ -mreserve=space@start: အဆုံးရွေးချယ်မှုကို ယခုလက်ခံပါမည်။ ဤရွေးချယ်မှုသည် ဒေတာ သို့မဟုတ် ပရိုဂရမ်မှတ်ဉာဏ်နေရာရှိ သတ်မှတ်ထားသော မှတ်ဉာဏ်အကွာအဝေးကို သိမ်းဆည်းထားပြီး၊ လင့်ခ်ကို ဤဧရိယာရှိ ကုဒ် သို့မဟုတ် အရာဝတ္တုများ မဖြည့်သွင်းခြင်းမှ ကာကွယ်ပေးသည်။

ထက်မြက်မြက်မြက် IO IO လုပ်ဆောင်ချက်ဆိုင်ရာ အငြင်းပွားမှုများကို ကိုင်တွယ်ရန် ဖြစ်နိုင်သည့် တိုတောင်းသော ဒေတာအမျိုးအစားများကို ကိုင်တွယ်ရန် ဖြစ်နိုင်သည့် ဒေတာအမျိုးအစားများကို အသုံးပြု၍ တိုတောင်းသောဒေတာအမျိုးအစားများကို အသုံးပြု၍ Smart IO လုပ်ဆောင်ချက်များတွင် %n ပြောင်းလဲခြင်း specifier အား သီးခြားမူကွဲတစ်ခုအဖြစ် သီးခြားကွဲလွဲသည့်ပုံစံအဖြစ် ကုသခြင်းအပါအဝင် Smart IO လုပ်ဆောင်ချက်များတွင် တိုးတက်မှုများစွာ ပြုလုပ်ထားပါသည်။ နှင့် အကွက်အကျယ်နှင့် တိကျစွာ ကိုင်တွယ်မှုတွင် ဘုံကုဒ်ကို ကိန်းဂဏာန်းထည့်သွင်းခြင်း။ ၎င်းသည် သိသာထင်ရှားသော ကုဒ်နှင့် ဒေတာကို ချွေတာနိုင်သည့်အပြင် IO ၏ လုပ်ဆောင်မှုအမြန်နှုန်းကို တိုးစေသည်။

ဗားရှင်း 2.39 (Functional Safety Release)

ကွန်ရက်ဆာဗာလိုင်စင် MPLAB XC8 Functional Safety Compiler သည် Network Server License ကို ပံ့ပိုးပေးပါသည်။

ဗားရှင်း 2.36

တစ်ခုမှ

ဗားရှင်း 2.35

စက်အသစ်ပံ့ပိုးမှု အောက်ပါ AVR အစိတ်အပိုင်းများအတွက် ပံ့ပိုးမှုရရှိနိုင်ပါသည်- ATTINY3224၊ ATTINY3226၊ ATTINY3227၊ AVR64DD14၊ AVR64DD20၊ AVR64DD28 နှင့် AVR64DD32။

အကြောင်းအရာပြောင်းခြင်းကို ပိုမိုကောင်းမွန်စေပါသည်။ -mcall-isr-prologues ရွေးချယ်မှုအသစ်သည် အနှောက်အယှက်ဖြစ်စေသည့် လုပ်ဆောင်ချက်များကို ထည့်သွင်းမှုတွင် မှတ်ပုံတင်မှုများကို မည်ကဲ့သို့ သိမ်းဆည်းပုံနှင့် အနှောင့်အယှက် ပုံမှန်အစီအစဉ်ကို ရပ်ဆိုင်းသည့်အခါ ယင်းစာရင်းများကို ပြန်လည်ရယူပုံတို့ကို ပြောင်းလဲပေးသည်။ ၎င်းသည် -mcall-prologues ရွေးချယ်မှုတွင် အလားတူနည်းလမ်းဖြင့် လုပ်ဆောင်သော်လည်း ကြားဖြတ်လုပ်ဆောင်ချက်များ (ISRs) များကိုသာ အကျိုးသက်ရောက်သည်။

ပိုမိုကောင်းမွန်သော အကြောင်းအရာပြောင်းခြင်းပင် -mgas-isr-prologues ရွေးချယ်မှုအသစ်သည် အနှောက်အယှက်ဖြစ်စေသော ဝန်ဆောင်မှုလုပ်ရိုးလုပ်စဉ်များအတွက် ထုတ်ပေးသည့် ယားယံမှုဆိုင်ရာ ကုဒ်ကို ထိန်းချုပ်သည်။ ဖွင့်ထားသောအခါ၊ ဤအင်္ဂါရပ်သည် မှတ်ပုံတင်အသုံးပြုမှုအတွက် ISR ကို စကင်န်ဖတ်ပြီး လိုအပ်ပါက ဤအသုံးပြုထားသော မှတ်ပုံတင်မှုများကိုသာ သိမ်းဆည်းမည်ဖြစ်သည်။

ပြင်ဆင်သတ်မှတ်နိုင်သော flash mapping AVR DA နှင့် AVR DB မိသားစုရှိ အချို့သောစက်ပစ္စည်းများတွင် မည်သည့် 32k အပိုင်းကို ဒေတာမှတ်ဉာဏ်တွင် မြေပုံပြုလုပ်မည်ကို သတ်မှတ်ပေးသည့် SFR (ဥပမာ FLMAP) ရှိသည်။ - mconst-data-in-config-mapped-proem ရွေးချယ်မှုအသစ်ကို 32k အပိုင်းတစ်ခုတွင် cons အရည်အချင်းပြည့်မီသောဒေတာအားလုံးကို လင့်ခ်တစ်ခုထားရှိရန်နှင့် ဤဒေတာကို ဒေတာမှတ်ဉာဏ်နေရာသို့ မြေပုံဆွဲထားကြောင်း သေချာစေရန် သက်ဆိုင်ရာ SFR မှတ်ပုံတင်ခြင်းကို အလိုအလျောက်စတင်လုပ်ဆောင်နိုင်သည် ပိုမိုထိရောက်စွာ ဝင်ရောက်နိုင်မည်ဖြစ်သည်။

Microchip ပေါင်းစည်းထားသော စံပြစာကြည့်တိုက်များ MPLAB XC စုစည်းမှုအားလုံးသည် ယခု MPLAB XC8 ထုတ်ဝေမှုနှင့်အတူ ရရှိနိုင်သည့် Microchip စုစည်းထားသော Standard Library ကို မျှဝေမည်ဖြစ်သည်။ MPLAB® XC8 C Compiler အသုံးပြုသူ၏ လမ်းညွှန်/သို့မဟုတ် AVR® MCU တွင် ဤစံလုပ်ဆောင်ချက်များအတွက် စာရွက်စာတမ်းများ မပါဝင်တော့ပါ။ ဤအချက်အလက်ကို Microchip စုစည်းထားသော Standard Library ရည်ညွှန်းလမ်းညွှန်တွင် ယခုတွေ့ရှိနိုင်ပါသည်။ avr-libc မှ ယခင်က သတ်မှတ်ထားသော လုပ်ဆောင်ချက်အချို့ကို မရနိုင်တော့ကြောင်း သတိပြုပါ။ (Librar ကိုကြည့်ပါ)။ လုပ်ဆောင်နိုင်စွမ်း...)

စမတ် IO ပေါင်းစည်းထားသည့် စာကြည့်တိုက်အသစ်များ၏ တစ်စိတ်တစ်ပိုင်းအနေဖြင့်၊ ပရင့်ထုတ်ခြင်းနှင့် စကင်ဖတ်မိသားစုများရှိ IO လုပ်ဆောင်ချက်များကို ပရိုဂရမ်တွင် ဤလုပ်ဆောင်ချက်များကို အသုံးပြုပုံပေါ်အခြေခံ၍ တည်ဆောက်မှုတစ်ခုစီတွင် စိတ်ကြိုက်ဖန်တီးပေးထားပါသည်။ ၎င်းသည် ပရိုဂရမ်တစ်ခုမှ အသုံးပြုသည့် အရင်းအမြစ်များကို သိသိသာသာ လျှော့ချနိုင်သည်။
Smart IO အကူအညီ ရွေးချယ်မှု စမတ် IO လုပ်ဆောင်ချက်များ (ဥပမာ printf () သို့မဟုတ် scanf () ကဲ့သို့) ခေါ်ဆိုမှုများကို ခွဲခြမ်းစိတ်ဖြာသောအခါတွင် ကွန်ပလော်သည် ဖော်မတ်စာတန်းမှ အမြဲမဆုံးဖြတ်နိုင် သို့မဟုတ် ခေါ်ဆိုမှုလိုအပ်သော ပြောင်းလဲခြင်းဆိုင်ရာ သတ်မှတ်ပေးသည့် အကြောင်းပြချက်များမှ ကောက်ချက်မချနိုင်ပါ။ ယခင်က၊ compiler သည် အမြဲတမ်း ယူဆချက်မပြဘဲ အပြည့်အဝ လုပ်ဆောင်နိုင်သော IO လုပ်ဆောင်ချက်များကို နောက်ဆုံးပရိုဂရမ်ပုံတွင် ချိတ်ဆက်ထားကြောင်း သေချာစေပါသည်။ - msmart-io-format=fmt ရွေးချယ်ခွင့်အသစ်ကို ပေါင်းထည့်လိုက်သောကြောင့် ကွန်ပြူလာအား စမတ် IO လုပ်ငန်းဆောင်တာများမှ အသုံးပြုသည့် ပြောင်းလဲခြင်းအသေးစိတ်အချက်အလက်များကို အသုံးပြုသူမှ အသိပေးနိုင်စေရန်၊ အသုံးပြုမှုမှာ ရှင်းရှင်းလင်းလင်းဖြစ်ပြီး အလွန်ရှည်လျားသော IO လုပ်ရိုးလုပ်စဉ်များကို ချိတ်ဆက်ခြင်းမှ ကာကွယ်ပေးပါသည်။ (အသေးစိတ်အချက်အလက်များအတွက် smart-io-format Option ကို ကြည့်ပါ။)

စိတ်ကြိုက်အပိုင်းများ နေရာယူခြင်း။ ယခင်က၊ -Wl၊ –section-start option သည် linker script မှ အမည်တူ အထွက်အပိုင်းတစ်ခုကို သတ်မှတ်သောအခါတွင် သတ်မှတ်ထားသော အပိုင်းကို တောင်းဆိုထားသော လိပ်စာတွင်သာ ထားရှိခဲ့ပါသည်။ ထိုသို့မဟုတ်သောအခါ၊ ကဏ္ဍအား ချိတ်ဆက်သူမှ ရွေးချယ်ထားသော လိပ်စာတစ်ခု၌ ထားရှိခဲ့ပြီး ရွေးချယ်မှုကို အခြေခံအားဖြင့် လျစ်လျူရှုခဲ့သည်။ linker script သည် ကဏ္ဍကို မသတ်မှတ်ထားသော်လည်း ယခု ရွေးချယ်မှုအား စိတ်ကြိုက်ကဏ္ဍများအားလုံးအတွက် ဂုဏ်ပြုမည်ဖြစ်သည်။ သို့သော် စံအပိုင်းများအတွက်၊ ထိုကဲ့သို့သော . စာသား၊ bss သို့မဟုတ် . ဒေတာ၊ အသင့်တော်ဆုံး ခွဲဝေပေးသူသည် ၎င်းတို့၏ နေရာချထားမှုအပေါ် အပြည့်အဝ ထိန်းချုပ်နိုင်ဆဲဖြစ်ပြီး ရွေးချယ်မှုမှာ အကျိုးသက်ရောက်မှု ရှိမည်မဟုတ်ပါ။ အသုံးပြုသူ၏လမ်းညွှန်တွင်ဖော်ပြထားသည့်အတိုင်း -Wl, -Tsection=add option ကိုသုံးပါ။

ဗားရှင်း 2.32

Stack လမ်းညွှန် PRO compiler လိုင်စင်ဖြင့် ရရှိနိုင်သည်၊ ပရိုဂရမ်တစ်ခုမှအသုံးပြုသည့် မည်သည့် stack ၏ အများဆုံးအနက်ကို ခန့်မှန်းရန် စုစည်းမှု၏ stack လမ်းညွှန်အင်္ဂါရပ်ကို အသုံးပြုနိုင်သည်။ ၎င်းသည် ပရိုဂရမ်တစ်ခု၏ ခေါ်ဆိုမှုဂရပ်ကို တည်ဆောက်ပြီး ပိုင်းခြားစိတ်ဖြာကာ၊ လုပ်ဆောင်ချက်တစ်ခုစီ၏ အစုအပုံအသုံးပြုမှုကို ဆုံးဖြတ်ကာ ပရိုဂရမ်အသုံးပြုသည့် အစုအပုံများ၏ အတိမ်အနက်ကို ကောက်ချက်ချနိုင်သည့် အစီရင်ခံစာကို ထုတ်ပေးပါသည်။ ဤအင်္ဂါရပ်ကို -mchp-stack-usage command-line ရွေးချယ်မှုမှတစ်ဆင့် ဖွင့်ထားသည်။ လုပ်ဆောင်ပြီးနောက် stack အသုံးပြုမှု၏ အကျဉ်းချုပ်ကို ပုံနှိပ်သည်။ အသေးစိတ်အစုအစည်းအစီရင်ခံစာကို မြေပုံတွင် ရနိုင်ပါသည်။ fileပုံမှန်နည်းလမ်းဖြင့် တောင်းဆိုနိုင်ပါသည်။

စက်အသစ်ပံ့ပိုးမှု ပံ့ပိုးမှု အောက်ပါ AVR အစိတ်အပိုင်းများအတွက် ရနိုင်သည်- ATTINY 427၊ ATTINY 424၊ ATTINY 426၊ ATTINY827၊ ATTINY824၊ ATTINY826၊ AVR32DB32၊ AVR64DB48၊ AVR64DB64၊ AVR64DB28၊ AVR32DB28

ပြန်ရုတ်သိမ်းထားသော စက်ပံ့ပိုးမှု ပံ့ပိုးမှု အောက်ပါ AVR အစိတ်အပိုင်းများအတွက် မရနိုင်တော့ပါ- AVR16DA28၊ AVR16DA32 နှင့် AVR16DA48။

ဗားရှင်း 2.31

တစ်ခုမှ

ဗားရှင်း 2.30

ဒေတာစတင်ခြင်းအား တားဆီးရန် ရွေးချယ်မှုအသစ် -mno-data-ini t driver ရွေးချယ်မှုအသစ်သည် ဒေတာစတင်ခြင်းနှင့် bss ကဏ္ဍများကို ရှင်းလင်းခြင်းတို့ကို တားဆီးပေးသည်။ ၎င်းသည် စုစည်းမှုတွင် do_ copy_ data နှင့် d o_ clear_ bss သင်္ကေတများ၏ output ကို ဖိနှိပ်ခြင်းဖြင့် အလုပ်လုပ်သည် files၊ ၎င်းသည် linker မှ ထိုလုပ်ရိုးလုပ်စဉ်များ ပါဝင်မှုကို တားဆီးပေးသည်။

ပိုမိုကောင်းမွန်အောင် ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်း မလိုအပ်သော ပြန်ပေးလမ်းညွှန်ချက်များကို ဖယ်ရှားခြင်း၊ skip-if-bit-is ညွှန်ကြားချက်နောက်တွင် ခုန်ခြင်းအချို့ကို ဖယ်ရှားခြင်းနှင့် လုပ်ထုံးလုပ်နည်းပိုင်းကို မြှင့်တင်ခြင်းနှင့် ဤလုပ်ငန်းစဉ်ကို ထပ်လောင်းလုပ်ဆောင်နိုင်မှုတို့ အပါအဝင် ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်း တိုးတက်မှုများစွာကို ပြုလုပ်ထားပါသည်။

သင်္ကေတတစ်ခုနှင့် ဆက်စပ်၍ တည်ငြိမ်အရာဝတ္တုများကို ဝင်ရောက်ကြည့်ရှုခွင့်ပေးသည့် အထူးသဖြင့် ဤကောင်းမွန်အောင်လုပ်ဆောင်မှုအချို့ကို ထိန်းချုပ်ရန်အတွက် ထပ်လောင်းရွေးချယ်စရာများကို ယခုရရှိနိုင်ပါပြီ။ -mpai derations=n၊ လုပ်ထုံးလုပ်နည်းဆိုင်ရာ abstraction ထပ်ကာထပ်ကာ အရေအတွက်ကို ပုံသေ 2 မှ ပြောင်းခွင့်ပြုသည့်၊ နှင့်၊ -mpa- call cost- shortcall သည် ပိုမိုပြင်းထန်သော procedural abstraction ကိုလုပ်ဆောင်ပေးသည့် linker သည် ရှည်လျားသောခေါ်ဆိုမှုများကို ဖြေလျှော့နိုင်မည်ဟုမျှော်လင့်ချက်ဖြင့်၊ အရင်းခံယူဆချက်များကို သဘောမပေါက်ပါက ဤနောက်ဆုံးရွေးချယ်မှုသည် ကုဒ်အရွယ်အစားကို တိုးမြှင့်နိုင်သည်။

စက်အသစ်ပံ့ပိုးမှု အောက်ပါ AVR အစိတ်အပိုင်းများအတွက် ပံ့ပိုးမှုရရှိနိုင်ပါသည်- AVR16DA28၊ AVR16DA32၊
AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR128DB28, AVR128DB32, AVR128DB48, နှင့် AVR128DB

ပြန်ရုတ်သိမ်းထားသော စက်ပံ့ပိုးမှု အောက်ပါ AVR အစိတ်အပိုင်းများအတွက် ပံ့ပိုးမှုကို မရနိုင်တော့ပါ- ATA5272၊ ATA5790၊ ATA5790N၊ATA5791၊ATA5795၊ATA6285၊ATA6286၊ATA6612C၊ATA6613C၊ATA6614Q၊ ATA6616C၊ ATA6617C664251 နှင့် ATAXNUMX

ဗားရှင်း 2.29 (Functional Safety Release)

ခေါင်းစီး file compiler built-in အတွက် compiler သည် MISRA ကဲ့သို့သော ဘာသာစကား သတ်မှတ်ချက်များနှင့်အညီ ဆောင်ရွက်နိုင်စေရန်၊ ခေါင်းစီး fileအလိုအလျောက်ပါဝင်သည့်၊ , အပ်ဒိတ်လုပ်ထားသည်။ ဤခေါင်းစီးတွင် _buil tin _avrnop () နှင့် _buil tin_ avr နှောင့်နှေး_ သံသရာ () ကဲ့သို့ တည်ဆောက်ထားသော လုပ်ဆောင်ချက်အားလုံးအတွက် ရှေ့ပြေးပုံစံများ ပါရှိသည်။ အချို့သော built-in များသည် MISRA နှင့် ကိုက်ညီမှု မရှိနိုင်ပါ။ သတ်မှတ်ထားသော _Xe_ STRICT_ MISRA ကို compiler command line သို့ ထည့်ခြင်းဖြင့် ၎င်းတို့ကို ချန်လှပ်နိုင်ပါသည်။ ပုံသေအကျယ်အမျိုးအစားများကိုအသုံးပြုရန်အတွက် built-in နှင့် ၎င်းတို့၏ကြေငြာချက်များကို အပ်ဒိတ်လုပ်ထားပါသည်။

ဗားရှင်း 2.20

စက်အသစ်ပံ့ပိုးမှု အောက်ပါ AVR အစိတ်အပိုင်းများအတွက် ပံ့ပိုးမှုရရှိနိုင်ပါသည်- ATTINY1624၊ ATTINY1626 နှင့် ATTINY1627။

အသင့်တော်ဆုံး ခွဲဝေပေးတာ ပိုကောင်းပါတယ်။ စုစည်းမှုတွင် အကောင်းဆုံး ကိုက်ညီမှု ခွဲဝေပေးသူ (BFA) ကို ပိုမိုကောင်းမွန်အောင် ပြုလုပ်ထားသောကြောင့် အပိုင်းများကို ခွဲဝေချထားပေးခြင်းသည် ပိုမိုကောင်းမွန်သော ပိုမိုကောင်းမွန်အောင် ပြုလုပ်ခြင်းကို ခွင့်ပြုပါသည်။ ယခုအခါ BFA သည် အမည်ပေးထားသော လိပ်စာနေရာများကို ပံ့ပိုးပေးပြီး ဒေတာအစပျိုးခြင်းကို ပိုမိုကောင်းမွန်စွာ ကိုင်တွယ်နိုင်ပါပြီ။

ပိုမိုကောင်းမွန်သော လုပ်ထုံးလုပ်နည်း abstraction လုပ်ထုံးလုပ်နည်း abstraction optimizations များကို နောက်ထပ် code sequence များတွင် လုပ်ဆောင်နေပြီဖြစ်သည်။ ချိတ်ဆက်သူ၏ အမှိုက်စုဆောင်းခြင်းလုပ်ငန်းစဉ်ကို ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်းကုဒ်ကို သိရှိစေခြင်းဖြင့် ဤပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်းမှ ကုဒ်အရွယ်အစား တိုးလာနိုင်သည့် ယခင်အခြေအနေများကို ကိုင်တွယ်ဖြေရှင်းခဲ့သည်။

AVR Assembler မရှိခြင်း။ AVR Assembler သည် ဤဖြန့်ဖြူးမှုတွင် မပါဝင်တော့ပါ။

ဗားရှင်း 2.19 (Functional Safety Release)

တစ်ခုမှ

ဗားရှင်း 2.10

ကုဒ်အကျုံးဝင်မှု ဤထုတ်ဝေမှုတွင် ပရောဂျက်တစ်ခု၏ အရင်းအမြစ်ကုဒ်ကို လုပ်ဆောင်သည့်အတိုင်းအတာအထိ ခွဲခြမ်းစိတ်ဖြာမှုကို လွယ်ကူချောမွေ့စေသည့် ကုဒ်လွှမ်းခြုံမှုအင်္ဂါရပ်တစ်ခု ပါဝင်သည်။ ၎င်းကိုဖွင့်ရန် option -mcodecov=ram ကိုသုံးပါ။ သင်၏ ဟာ့ဒ်ဝဲပေါ်တွင် ပရိုဂရမ်ကို အကောင်အထည်ဖော်ပြီးနောက်၊ ကုဒ်လွှမ်းခြုံမှု အချက်အလက်ကို စက်အတွင်း စုစည်းထားမည်ဖြစ်ပြီး ၎င်းကို ကုဒ်အကျုံးဝင်သည့် ပလပ်အင်တစ်ခုမှတစ်ဆင့် MPLAB X IDE သို့ လွှဲပြောင်းပြီး ပြသနိုင်ပါသည်။ ဤပလပ်အင်ဆိုင်ရာ အချက်အလက်များအတွက် IDE စာရွက်စာတမ်းကို ကြည့်ပါ။ လွှမ်းခြုံသုံးသပ်မှုမှ နောက်ဆက်တွဲလုပ်ဆောင်ချက်များကို ဖယ်ထုတ်ရန် #pragma mcodecov ကို အသုံးပြုနိုင်သည်။ အကောင်းဆုံးကတော့ pragma ကို အစမှာ ထည့်သင့်တယ်။ file တစ်ခုလုံးကိုဖယ်ထုတ်ရန် file လွှမ်းခြုံသုံးသပ်ချက်မှ။ တနည်းအားဖြင့်၊ ရည်ညွှန်းချက် ( (mcodecov) ) ကို လွှမ်းခြုံမှုခွဲခြမ်းစိတ်ဖြာမှုမှ သီးခြားလုပ်ဆောင်ချက်တစ်ခုကို ဖယ်ထုတ်ရန် အသုံးပြုနိုင်သည်။

စက်ပစ္စည်းဖော်ပြချက် files စက်အသစ် file avr chipinfo ဟုခေါ်သည်။ html သည် compiler distribution ၏ docs directory တွင် တည်ရှိသည်။ ဒီ file compiler မှပံ့ပိုးပေးထားသော စက်ပစ္စည်းအားလုံးကို စာရင်းပြုစုသည်။ စက်ပစ္စည်းအမည်ကို ကလစ်နှိပ်ပါ၊ ၎င်းသည် ၎င်းစက်ပစ္စည်းအတွက် ခွင့်ပြုနိုင်သော ဖွဲ့စည်းမှုပုံစံဘစ်ဆက်တင်/တန်ဖိုးအတွဲများအားလုံးကို ပြသသည့် စာမျက်နှာကို ဖွင့်လိမ့်မည်၊amples

လုပ်ထုံးလုပ်နည်း abstraction ထိုဘလောက်၏ ထုတ်ယူထားသောမိတ္တူသို့ ခေါ်ဆိုမှုများဖြင့် ဘုံအစုအဝေးများ၏ ကုဒ်များကို အစားထိုးသည့် ကျင့်ထုံးဆိုင်ရာ ဆန်းကြယ်သော ပိုမိုကောင်းမွန်အောင်လုပ်ဆောင်မှုများကို ကွန်ပလီယာတွင် ထည့်သွင်းထားသည်။ အဆင့် 2၊ 3 သို့မဟုတ် ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်းကို ရွေးချယ်သည့်အခါ ၎င်းတို့ကို compiler မှ အလိုအလျောက် ခေါ်ဆိုသည့် သီးခြားအပလီကေးရှင်းတစ်ခုမှ လုပ်ဆောင်သည်။ ဤကောင်းမွန်အောင်လုပ်ဆောင်မှုများသည် ကုဒ်အရွယ်အစားကို လျှော့ချပေးသော်လည်း ၎င်းတို့သည် လုပ်ဆောင်မှုအမြန်နှုန်းနှင့် ကုဒ်အမှားရှာနိုင်စွမ်းကို လျှော့ချနိုင်သည်။
-mno-pa ရွေးချယ်မှုအား အသုံးပြု၍ ပိုမိုကောင်းမွန်အောင်လုပ်ဆောင်မှုအဆင့်များတွင် လုပ်ထုံးလုပ်နည်းဆိုင်ရာ abstraction ကို ပိတ်နိုင်သည် သို့မဟုတ် -mpa ကို အသုံးပြု၍ ပိုမိုကောင်းမွန်အောင်လုပ်ဆောင်မှုအဆင့်များ (သင့်လိုင်စင်နှင့် သက်ဆိုင်သော) အောက်ပိုင်းများတွင် ဖွင့်နိုင်သည်။ အရာဝတ္ထုတစ်ခုအတွက် ၎င်းကို ပိတ်ထားနိုင်သည်။ file -mno-pa-on- သုံးပြီး၊file=file-mno-pa on function= function ကိုသုံးခြင်းဖြင့် လုပ်ဆောင်ချက်တစ်ခုအတွက် အမည် သို့မဟုတ် ပိတ်ထားပါ။
သင့်အရင်းအမြစ်ကုဒ်အတွင်းတွင် လုပ်ဆောင်ချက်၏အဓိပ္ပါယ်ဖွင့်ဆိုချက်ဖြင့် _attribute_ ((nopa)) ကိုအသုံးပြုခြင်းဖြင့်၊ သို့မဟုတ် attribute (((nopa၊ noinline)) သို့ ချဲ့ထွင်ထားသည့် _nopa ကိုအသုံးပြုခြင်းဖြင့် လုပ်ဆောင်ချက်တစ်ခုအတွက် procedural abstraction ကို disable လုပ်ထားနိုင်ပြီး၊ ထို့ကြောင့် function inlining မဖြစ်စေရန် ကာကွယ်ပေးပါသည်။ inlined code ၏ abstraction ရှိပါသည်။
pragma တွင် bit support ကို လော့ခ်ချပါ။ ယခု #pragma config ကို AVR သော့ခတ်ဘစ်များနှင့် အခြားဖွဲ့စည်းမှုဘစ်များကို သတ်မှတ်ရန် ယခုအသုံးပြုနိုင်ပါပြီ။ avr ချစ်ပ်အချက်အလက်ကို စစ်ဆေးပါ။ html file ဤပရမ်မာဖြင့် အသုံးပြုရန် ဆက်တင်/တန်ဖိုးအတွဲများအတွက် (အထက်တွင်ဖော်ပြထားသည်)။
စက်အသစ်ပံ့ပိုးမှု အောက်ပါအစိတ်အပိုင်းများအတွက် ပံ့ပိုးမှုရရှိနိုင်ပါသည်- AVR28DA128၊ AVR64DA128၊ AVR32DA128 နှင့် AVR48DA128။

ဗားရှင်း 2.05

သင့်ဒေါ်လာအတွက် နောက်ထပ်နည်းနည်းများ ဤ compiler နှင့် လိုင်စင်မန်နေဂျာ၏ macOS ဗားရှင်းသည် ယခုအခါ 64-bit အပလီကေးရှင်းတစ်ခုဖြစ်သည်။ ၎င်းသည် compiler သည် macOS ၏ လတ်တလောဗားရှင်းများတွင် သတိပေးချက်မပါဘဲ ထည့်သွင်းပြီး အလုပ်လုပ်မည်ဖြစ်ကြောင်း သေချာစေမည်ဖြစ်သည်။
ပရိုဂရမ်မမ်မိုရီတွင် const အရာဝတ္ထုများကို စုစည်းမှု compiler သည် ယခု RAM တွင်ရှိသော အရာများကို ထားရှိခြင်းထက် ပရိုဂရမ် Flash memory တွင် const အရည်အချင်းပြည့်မီသော အရာများကို ထားရှိနိုင်ပြီဖြစ်သည်။ compiler သည် const-qualified global data ကို program flash memory တွင် သိမ်းဆည်းထားနိုင်စေရန်နှင့် သင့်လျော်သော program-memory ညွှန်ကြားချက်များကို အသုံးပြု၍ ဤဒေတာကို တိုက်ရိုက်နှင့် သွယ်ဝိုက်သောနည်းဖြင့် ဝင်ရောက်ကြည့်ရှုနိုင်ပါသည်။ ဤအင်္ဂါရပ်အသစ်ကို မူရင်းအတိုင်း ဖွင့်ထားသော်လည်း -mno-const-data-in-progmem ရွေးချယ်မှုကို အသုံးပြု၍ ပိတ်နိုင်သည်။ avrxmega3 နှင့် avrtiny ဗိသုကာများအတွက်၊ ဤအင်္ဂါရပ်ကို မလိုအပ်ဘဲ အမြဲတမ်းပိတ်ထားသည်၊၊ ပရိုဂရမ်မှတ်ဉာဏ်ကို ဤစက်ပစ္စည်းများအတွက် ဒေတာလိပ်စာနေရာကို မြေပုံဆွဲထားသောကြောင့်၊
အခမဲ့စံနှုန်း ဤ compiler ၏ လိုင်စင်မဲ့ (အခမဲ့) ဗားရှင်းများသည် ယခုအခါ အဆင့် 2 အထိ နှင့် အပါအဝင် ပိုမိုကောင်းမွန်အောင် လုပ်ဆောင်မှုများကို ခွင့်ပြုထားပါသည်။ ၎င်းသည် Standard လိုင်စင်ကို အသုံးပြု၍ ယခင်ဖြစ်နိုင်ချေကို တူညီခြင်းမရှိသော်လည်း အလားတူထုတ်ပေးမှုကို ခွင့်ပြုပါမည်။
AVRASM2 မှကြိုဆိုပါတယ်။ 2-bit စက်ပစ္စည်းများအတွက် AVRASM8 တပ်ဆင်သူသည် ယခု XC8 compiler installer တွင် ထည့်သွင်းထားပါသည်။ ဤစုဝေးကိရိယာကို XC8 compiler မှအသုံးမပြုသော်လည်း လက်ရေးဖြင့်ရေးသားထားသော စုဝေးမှုရင်းမြစ်အပေါ်အခြေခံ၍ ပရောဂျက်များအတွက် ရနိုင်ပါသည်။
စက်အသစ်ပံ့ပိုးမှု အောက်ပါအစိတ်အပိုင်းများအတွက် ပံ့ပိုးမှုရရှိနိုင်ပါသည်- ATMEGA1608၊ ATMEGA1609၊ ATMEGA808 နှင့် ATMEGA809။

ဗားရှင်း 2.00

ထိပ်တန်းယာဉ်မောင်း xc8-cc ဟုခေါ်သော ဒရိုင်ဘာအသစ်သည် ယခုအခါ ယခင် avr-gcc ဒရိုက်ဘာနှင့် xc8 ဒရိုက်ဘာအထက်တွင်ရှိပြီး ပစ်မှတ်ကိရိယာ၏ရွေးချယ်မှုအပေါ်အခြေခံ၍ သင့်လျော်သော compiler ကိုခေါ်ဆိုနိုင်သည်။ ဤဒရိုင်ဘာသည် လုပ်ဆောင်နေသည့် စုစည်းမှုသို့ ဘာသာပြန် သို့မဟုတ် ဘာသာပြန်ထားသည့် သို့မဟုတ် လုပ်ဆောင်နေသည့် GCC စတိုင်ရွေးချယ်မှုများကို လက်ခံသည်။ ဤဒရိုင်ဘာသည် AVR သို့မဟုတ် PIC ပစ်မှတ်တစ်ခုနှင့် ဆင်တူသော ဝေါဟာရအသုံးအနှုန်းများပါရှိသော အလားတူရွေးချယ်မှုအစုအဝေးကို ခွင့်ပြုထားပြီး ထို့ကြောင့် compiler ကို ခေါ်ဆိုရန်အတွက် အကြံပြုထားသည့်နည်းလမ်းဖြစ်သည်။ လိုအပ်ပါက၊ အစောပိုင်း compiler ဗားရှင်းများတွင် လက်ခံထားသော ပုံစံဟောင်းရွေးချယ်မှုများကို အသုံးပြုကာ အဟောင်း avr-gcc ဒရိုက်ဘာကို တိုက်ရိုက်ခေါ်ဆိုနိုင်သည်။

အသုံးများသော C Interface ဤ compiler သည် ယခု MPLAB Common C Interface နှင့် ကိုက်ညီပြီး အရင်းအမြစ်ကုဒ်ကို MPLAB XC compilers များအားလုံးတွင် ပိုမိုလွယ်ကူစွာ သယ်ဆောင်နိုင်စေပါသည်။ -mext=cci ရွေးချယ်မှုသည် ဤအင်္ဂါရပ်ကို တောင်းဆိုသည်၊ ဘာသာစကား တိုးချဲ့မှုများစွာအတွက် သမရိုးကျ အလှည့်အပြောင်းကို ဖွင့်ပေးသည်။

စာကြည့်တိုက်မှူးအသစ် စာကြည့်တိုက်မှူးအသစ်ယာဉ်မောင်းသည် ယခင် PIC စာကြည့်တိုက်မှူးနှင့် AVR avr-ar စာကြည့်တိုက်မှူးတို့ထက် နေရာယူထားသည်။ ဤဒရိုင်ဘာသည် GCC-archiver-စတိုင်ရွေးချယ်စရာများကို လက်ခံသည် ဒရိုင်ဘာအသစ်သည် PIC သို့မဟုတ် AVR စာကြည့်တိုက်ကို ဖန်တီးရန် သို့မဟုတ် ကြိုးကိုင်ရန် အသုံးပြုရန် တူညီသော အဓိပ္ပါယ်ဖွင့်ဆိုချက်ပါသည့် အလားတူရွေးချယ်ခွင့်များကို ခွင့်ပြုသည် file ထို့ကြောင့် စာကြည့်တိုက်မှူးကို ဖိတ်ခေါ်ရန် အကြံပြုထားသော နည်းလမ်းဖြစ်သည်။ အမွေအနှစ်ပရောဂျက်များအတွက် လိုအပ်ပါက၊ အစောပိုင်း compiler ဗားရှင်းများတွင် လက်ခံထားသော ပုံစံဟောင်းရွေးချယ်မှုများကို အသုံးပြုကာ ယခင်စာကြည့်တိုက်မှူးကို တိုက်ရိုက်ခေါ်ဆိုနိုင်ပါသည်။

ရွှေ့ပြောင်းနေထိုင်ခြင်းကိစ္စများ

အောက်ပါတို့သည် ယခု compiler မှ ကွဲပြားစွာ ကိုင်တွယ်လုပ်ဆောင်သော အင်္ဂါရပ်များဖြစ်သည်။ ကုဒ်ကို ဤ compiler ဗားရှင်းသို့ ပို့ပါက ဤပြောင်းလဲမှုများသည် သင့်အရင်းအမြစ်ကုဒ်ကို ပြုပြင်ပြောင်းလဲရန် လိုအပ်နိုင်ပါသည်။ ခေါင်းစဉ်ခွဲများရှိ ဗားရှင်းနံပါတ်သည် နောက်ဆက်တွဲပြောင်းလဲမှုများကို ပံ့ပိုးရန် ပထမဆုံး compiler ဗားရှင်းကို ညွှန်ပြသည်။

ဗားရှင်း 2.40

တစ်ခုမှ

ဗားရှင်း 2.39 (Functional Safety Release)

တစ်ခုမှ

ဗားရှင်း 2.36

တစ်ခုမှ

ဗားရှင်း 2.35

string-to bases များကို ကိုင်တွယ်ခြင်း (XCS-2420) အခြားသော XC compilers များနှင့် ကိုက်ညီမှုရှိစေရန်၊ Strtol () စသည်တို့ကဲ့သို့ XC8 string-to functions များသည် base သတ်မှတ်ထားသော 36 ထက် ပိုကြီးပါက input string ကို ပြောင်းရန် ကြိုးပမ်းတော့မည် မဟုတ်ဘဲ errno ကို EINVAL သို့ သတ်မှတ်ပေးမည်ဖြစ်သည်။ ဤအခြေခံတန်ဖိုးကို ကျော်လွန်သွားသောအခါတွင် C စံနှုန်းသည် လုပ်ဆောင်ချက်များ၏ အပြုအမူကို မသတ်မှတ်ထားပေ။

မသင့်လျော်သော အမြန်နှုန်းကို ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်း။ အဆင့် 3 ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်း (-03) ကိုရွေးချယ်သည့်အခါ လုပ်ထုံးလုပ်နည်းဆိုင်ရာ စိတ်ကူးစိတ်သန်း ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်းကို ဖွင့်ထားသည်။ အဆိုပါ ပိုမိုကောင်းမွန်အောင်ပြုလုပ်မှုများသည် ကုဒ်အမြန်နှုန်းကို အသုံးပြု၍ ကုဒ်အရွယ်အစားကို လျှော့ချပေးသောကြောင့် လုပ်ဆောင်ခြင်းမပြုသင့်ပါ။ ဤအဆင့်မြှင့်တင်မှုအဆင့်ကို အသုံးပြုထားသော ပရောဂျက်များသည် ဤထုတ်ဝေမှုဖြင့် တည်ဆောက်သောအခါတွင် ကုဒ်အရွယ်အစားနှင့် လုပ်ဆောင်မှုအမြန်နှုန်းတို့တွင် ကွဲပြားမှုများကို မြင်တွေ့နိုင်သည်။

စာကြည့်တိုက်လုပ်ဆောင်နိုင်စွမ်း စံ C စာကြည့်တိုက် လုပ်ဆောင်ချက်များစွာအတွက် ကုဒ်သည် ယခင် avr-libc စာကြည့်တိုက်မှ ပံ့ပိုးပေးထားသည့် အခြေအနေများနှင့် နှိုင်းယှဉ်ပါက အချို့သောအခြေအနေများတွင် ကွဲပြားသောအမူအကျင့်များကို ပြသနိုင်စေသည့် Microchip ၏ စုစည်းထားသော Standard Library မှ လာပါသည်။ ဟောင်းအတွက်ampfloat-format specifiers များအတွက် ဖော်မတ်လုပ်ထားသော IO ပံ့ပိုးမှုကိုဖွင့်ရန် lprintf_flt စာကြည့်တိုက် (-print _flt ရွေးချယ်မှု) တွင် လင့်ခ်ချိတ်ရန် မလိုအပ်တော့ပါ။ Microchip Unified Standard Library ၏ စမတ်ကျသော IO အင်္ဂါရပ်များသည် ဤရွေးချယ်မှုကို မလိုအပ်တော့ပါ။ ထို့အပြင်၊ flash ရှိ const strings များပေါ်တွင်လည်ပတ်နေသော string နှင့် memory functions (ဥပမာ strcpy_P () etc. ) အတွက် _p ၏ နောက်ဆက်တွဲလုပ်ရိုးလုပ်စဉ်များကို အသုံးပြုရန်မလိုအပ်တော့ပါ။ const-data-in-program-memory အင်္ဂါရပ်ကို ဖွင့်ထားသောအခါ ပုံမှန် C လုပ်ရိုးလုပ်စဉ်များ (ဥပမာ strcpy ()) သည် ထိုဒေတာနှင့် မှန်ကန်စွာ အလုပ်လုပ်ပါမည်။

ဗားရှင်း 2.32

တစ်ခုမှ

ဗားရှင်း 2.31

တစ်ခုမှ

ဗားရှင်း 2.30

တစ်ခုမှ

ဗားရှင်း 2.29 (Functional Safety Release)

တစ်ခုမှ

ဗားရှင်း 2.20

DFP အပြင်အဆင်ကို ပြောင်းထားသည်။ ယခု compiler သည် DFPs (Device Family Packs) မှ အသုံးပြုသည့် မတူညီသော အပြင်အဆင်ကို ယူဆပါသည်။ ၎င်းသည် အဟောင်းဖြစ်သော DFP သည် ဤထုတ်ဝေမှုတွင် အလုပ်မလုပ်တော့ဘဲ၊ ကွန်ပြူတာအဟောင်းများသည် နောက်ဆုံးထွက် DFP များကို အသုံးမပြုနိုင်တော့ဟု ဆိုလိုပါသည်။

ဗားရှင်း 2.19 (Functional Safety Release)

တစ်ခုမှ

ဗားရှင်း 2.10

တစ်ခုမှ

ဗားရှင်း 2.05

ပရိုဂရမ်မှတ်ဉာဏ်တွင် အရာဝတ္ထုများကို စုစည်းပါ။ ပုံမှန်အားဖြင့်၊ const-qualfiied အရာဝတ္ထုများကို ပရိုဂရမ်မှတ်ဉာဏ်တွင် ထားရှိမည်ဖြစ်ပြီး (ဤနေရာတွင် ဖော်ပြထားသည့်အတိုင်း) ဝင်ရောက်ကြည့်ရှုမည်ကို သတိပြုပါ။ ၎င်းသည် သင့်ပရောဂျက်၏ အရွယ်အစားနှင့် လုပ်ဆောင်မှုအမြန်နှုန်းအပေါ် သက်ရောက်မှုရှိသော်လည်း RAM အသုံးပြုမှုကို လျှော့ချသင့်သည်။ လိုအပ်ပါက -mnoconst- da ta-in-progmem ရွေးချယ်မှုကို အသုံးပြု၍ ဤအင်္ဂါရပ်ကို ပိတ်နိုင်သည်။

ဗားရှင်း 2.00

ဖွဲ့စည်းမှုစနစ် fuses စက်ပစ္စည်းဖွဲ့စည်းမှုပုံစံ fuses များသည် fuse state ကိုသတ်မှတ်ရန်အတွက် ယခုအချိန်တွင် config pragma ကိုအသုံးပြု၍ ပရိုဂရမ်ပြုလုပ်နိုင်ပြီဖြစ်ပြီး၊ ဥပမာ၊
#pragma config WDT0N = SET
#pragma config B0DLEVEL = B0DLEVEL_4V3
ပကတိအရာဝတ္ထုများနှင့် လုပ်ဆောင်ချက်များ ဥပမာ CCI _at (address) specifier ကို အသုံးပြု၍ အရာဝတ္ထုများနှင့် လုပ်ဆောင်ချက်များကို မမ်မိုရီအတွင်း သတ်မှတ်ထားသော လိပ်စာတွင် ထားရှိနိုင်ပါပြီ။ample: #ပါဝင်ပါသည်။ int foobar at(Ox800100); char at(Ox250) get ID(int offset) { … } ဤသတ်မှတ်သတ်မှတ်မှု၏ အကြောင်းပြချက်သည် ပထမ byte သို့မဟုတ် ညွှန်ကြားချက်ကို ထားရှိမည့်လိပ်စာကို ကိုယ်စားပြုသည့် ကိန်းသေတစ်ခု ဖြစ်ရပါမည်။ 0x800000 အော့ဖ်ဆက်ကို အသုံးပြု၍ RAM လိပ်စာများကို ညွှန်ပြသည်။ ဤအင်္ဂါရပ်ကိုအသုံးပြုရန် CCI ကိုဖွင့်ပါ။
ကြားဖြတ်လုပ်ဆောင်ချက် အထားအသိုအသစ် C လုပ်ဆောင်ချက်များသည် interrupt handlers ဖြစ်ကြောင်းညွှန်ပြရန်အတွက် CCI interrupt (num) specifier ကို ယခု compiler မှ လက်ခံပါသည်။ ဥပမာအားဖြင့် သတ်မှတ်ပေးသူသည် ကြားဖြတ်နံပါတ်တစ်ခုကို ယူသည်။ample: #ပါဝင်ပါသည်။ void interrupt(SPI STC_ vect _num) spi Isr(ပျက်ပြယ်) { … }

ပုံသေကိစ္စများ

အောက်ပါတို့သည် compiler အတွက် ပြင်ဆင်မှုများ ပြုလုပ်ထားပါသည်။ ၎င်းတို့သည် ထုတ်လုပ်ထားသော ကုဒ်တွင် အမှားအယွင်းများကို ပြင်ဆင်နိုင်သည် သို့မဟုတ် အသုံးပြုသူ၏လမ်းညွှန်မှ ရည်ရွယ်ထားသည့် သို့မဟုတ် သတ်မှတ်ထားသည့် စုစည်းမှုစနစ်၏ လုပ်ဆောင်ချက်ကို ပြောင်းလဲနိုင်သည်။ ခေါင်းစဉ်ခွဲများရှိ ဗားရှင်းနံပါတ်သည် နောက်ဆက်တွဲပြဿနာများအတွက် ပြင်ဆင်မှုများပါရှိသော ပထမဆုံး compiler ဗားရှင်းကို ညွှန်ပြသည်။ ခေါင်းစဉ်ရှိ ကွင်းပိတ်တပ်ထားသော အညွှန်း(များ)သည် ခြေရာခံ ဒေတာဘေ့စ်ရှိ ပြဿနာ၏ သက်သေခံချက်ဖြစ်သည်။ ပံ့ပိုးကူညီမှုထံ ဆက်သွယ်ရန် လိုအပ်ပါက ၎င်းတို့သည် အသုံးဝင်နိုင်ပါသည်။

စက်နှင့်ဆက်စပ်နေသော Device Family Pack (DFP) တွင် အချို့သော စက်ပစ္စည်းဆိုင်ရာ ပြဿနာများကို ပြုပြင်ထားကြောင်း သတိပြုပါ။ DFPs များတွင် ပြုလုပ်ထားသော အပြောင်းအလဲများနှင့် နောက်ဆုံးထွက်ပက်ကေ့ခ်ျများကို ဒေါင်းလုဒ်လုပ်ရန် အချက်အလက်များအတွက် MPLAB Pack Manager ကို ကြည့်ပါ။

ဗားရှင်း 2.40

စိတ်လျှော့လွန်းသည် (XCS-2876) -mrelax option ကိုအသုံးပြုသောအခါ၊ compiler သည် အချို့သောအပိုင်းများကို အတူတကွ ခွဲဝေပေးခြင်းမရှိသောကြောင့် အကောင်းဆုံးကုဒ်အရွယ်အစားများ နည်းပါးသွားပါသည်။ MUSL စာကြည့်တိုက်အသစ် သို့မဟုတ် အားနည်းသော သင်္ကေတများဖြင့် အသုံးပြုသော ကုဒ်ဖြင့် ၎င်းသည် ဖြစ်ပေါ်နိုင်သည်။
သတိပေးချက် (XCS-2875) တွင်ဖော်ပြထားသည့်အတိုင်း မြေပုံဆွဲခြင်းအင်္ဂါရပ်ကို ပိတ်မထားပါ cost-data-in-config mappedprogmem အင်္ဂါရပ်သည် ဖွင့်ထားသည့် cost-data-in-proem အင်္ဂါရပ်ပေါ်တွင် မူတည်ပါသည်။ အကယ်၍ cost-data-ipconfig- mapped-proem အင်္ဂါရပ်ကို ရွေးချယ်ခွင့်ကို အသုံးပြု၍ တိကျပြတ်သားစွာ ဖွင့်ထားကာ cost-data-inprogmem အင်္ဂါရပ်ကို ပိတ်ထားပါက၊ cons data- in-config-mapped- ဟုသတိပေးစာတစ်စောင် ဖော်ပြထားသော်လည်း လင့်ခ်အဆင့် မအောင်မြင်ပါ။ ပရိုမ်အင်္ဂါရပ်သည် လုံးလုံးမမှန်ပါ။ ယခုအခြေအနေတွင် const-data-in-config-mapped-proem အင်္ဂါရပ်ကို အပြည့်အဝ ပိတ်ထားသည်။
NVMCTRL (XCS-2848) ကို မှန်မှန်ကန်ကန် အသုံးပြုနိုင်ရန် DFP ပြောင်းလဲမှုများ AVR64EA စက်များအသုံးပြုသည့် runtime startup code သည် NVMCTRL မှတ်ပုံတင်ခြင်းကို Configuration Change Protection (CCP) အောက်တွင်ရှိနေကြောင်း ထည့်သွင်းစဉ်းစားခြင်းမရှိသည့်အပြင် IO SFR ကို const-data-in configmapped-proem compiler မှအသုံးပြုသည့်စာမျက်နှာသို့ သတ်မှတ်၍မရပါ။ ထူးခြားချက်။ AVR-Ex_DFP ဗားရှင်း 2.2.55 တွင် ပြုလုပ်ထားသော အပြောင်းအလဲများသည် runtime startup ကုဒ်ကို ဤမှတ်ပုံတင်တွင် မှန်ကန်စွာရေးနိုင်စေမည်ဖြစ်သည်။
flash mapping (XCS-2847) ကိုရှောင်ရှားရန် DFP အပြောင်းအလဲများ AVR128DA28/32/48/64 Silicon Errata (DS80000882) တွင် အစီရင်ခံတင်ပြထားသော flash mapping device အင်္ဂါရပ်နှင့် ပြဿနာတစ်ခုအတွက် အလုပ်ဝိုင်းကို စတင်လိုက်ပါပြီ။ const-data-in-config-mapped-proem စုစည်းမှုအင်္ဂါရပ်ကို ထိခိုက်သည့်စက်ပစ္စည်းများအတွက် မူရင်းအတိုင်းအသုံးပြုမည်မဟုတ်ပါ၊ ဤပြောင်းလဲမှုသည် AVR-Ex_DFP ဗားရှင်း 2.2.160 တွင် ပေါ်လာမည်ဖြစ်သည်။
sinhf သို့မဟုတ် coshf (XCS-2834) ဖြင့် အမှားတည်ဆောက်ခြင်း sinhf() သို့မဟုတ် coshf() စာကြည့်တိုက်လုပ်ဆောင်ချက်များကို အသုံးပြုရန် ကြိုးစားခြင်းသည် သတ်မှတ်မထားသော ကိုးကားချက်ကို ဖော်ပြသည့် လင့်ခ်အမှားအယွင်းတစ်ခု ဖြစ်ပေါ်ခဲ့သည်။ ရည်ညွှန်းထားသော ပျောက်ဆုံးနေသော လုပ်ဆောင်ချက်ကို ယခုအခါ စုစည်းမှုဖြန့်ဝေမှုတွင် ထည့်သွင်းလိုက်ပါပြီ။
nopa (XCS-2833) ဖြင့် အမှားများကို တည်ဆောက်ပါ () အဖြစ်အသုံးပြု၍ သတ်မှတ်ပေးထားသော စည်းဝေးသူအမည်ပါရှိသော လုပ်ဆောင်ချက်တစ်ခုဖြင့် nopa attribute ကိုအသုံးပြုခြင်းဖြင့် assembler မှ error messages များကို အစပျိုးပေးသည်။ ဤပေါင်းစပ်မှု မဖြစ်နိုင်ပါ။
ညွှန်ပြချက်များနှင့် ကွဲပြားသော လုပ်ဆောင်မှု ချို့ယွင်းချက် (XCS-2755၊ XCS-2731) ကုန်ကျစရိတ်-ဒေတာ-in-proem အင်္ဂါရပ်ကို ဖွင့်ထားသောအခါ ပြောင်းလဲနိုင်သော အငြင်းအခုံစာရင်းတွင် ပြောင်းလဲနိုင်သော အငြင်းအခုံအရေအတွက်တစ်ခုရှိ လုပ်ဆောင်ချက်များသည် 24-bit (_memo အမျိုးအစား) ညွှန်ပြချက်များကို ပေးဆောင်ရန် မျှော်လင့်ပါသည်။ ဒေတာမှတ်ဉာဏ်သို့ ညွှန်ပြသည့် အငြင်းအခုံများကို 16-ဘစ်အရာဝတ္ထုများအဖြစ် ဖြတ်သန်းနေပြီး နောက်ဆုံးတွင် ၎င်းတို့ကိုဖတ်သည့်အခါ ကုဒ်ပျက်ကွက်မှုကို ဖြစ်စေသည်။ cons data- in-proem လုပ်ဆောင်ချက်ကို ဖွင့်ထားသောအခါ၊ 16-bit pointers arguments အားလုံးကို 24-bit pointers အဖြစ်သို့ ပြောင်းလဲသွားပါပြီ။ strtoxxx စာကြည့်တိုက် လုပ်ဆောင်ချက်များ ပျက်ကွက်ခြင်း (XCS-2620) const-data-in-proem အင်္ဂါရပ်ကို ဖွင့်ထားသောအခါ၊ ပရိုဂရမ်မှတ်ဉာဏ်တွင် မရှိသော ရင်းမြစ်စာကြောင်းဆိုင်ရာ အကြောင်းပြချက်များအတွက် strtoxxx စာကြည့်တိုက်လုပ်ဆောင်ချက်များတွင် ထည့်သွင်းပါရာမီတာကို မှန်ကန်စွာ မွမ်းမံမွမ်းမံခဲ့သည်။
မမှန်ကန်သောကာစ်များအတွက် သတိပေးချက်များ (XCS-2612) Cost-in-proem အင်္ဂါရပ်ကို ဖွင့်ထားလျှင် ကွန်ပြူတာသည် အမှားအယွင်းတစ်ခုကို ထုတ်ပေးမည်ဖြစ်ပြီး၊ ဥပမာအားဖြင့် စာကြောင်းတစ်ကြောင်း၏ လိပ်စာကို ဒေတာလိပ်စာနေရာ (const qualifier ကို ချပေးသည်)၊ ဥပမာ၊ample၊ (uint8 t*) “Hello World!” const data pointer ကို data address space သို့ ပြတ်သားစွာ ကာစ်လုပ်သောအခါ လိပ်စာသည် မမှန်ကန်ပါက သတိပေးချက်သည် ပြဿနာဖြစ်သည်။
မစဥ်းစားနိုင်သော const အရာဝတ္ထုများ နေရာချထားခြင်း (XCS-2408) Unitialized const နှင့် const v olatile အရာဝတ္ထုများကို ၎င်းတို့၏ ပရိုဂရမ်မှတ်ဉာဏ်၏ အစိတ်အပိုင်းအားလုံး သို့မဟုတ် အစိတ်အပိုင်းအားလုံးကို ဒေတာလိပ်စာနေရာသို့ မြေပုံဆွဲထားသည့် စက်ပစ္စည်းများတွင် ပရိုဂရမ်မှတ်ဉာဏ်တွင် ထည့်သွင်းထားခြင်းမရှိပါ။ ဤစက်ပစ္စည်းများအတွက်၊ ဤအရာဝတ္ထုများကို ပရိုဂရမ်မှတ်ဉာဏ်တွင် ယခုထည့်သွင်းထားပြီး ၎င်းတို့၏လုပ်ဆောင်ချက်ကို အခြားစက်ပစ္စည်းများနှင့် ကိုက်ညီအောင်ပြုလုပ်ထားသည်။

ဗားရှင်း 2.39 (Functional Safety Release)

တစ်ခုမှ

ဗားရှင်း 2.36

နှောင့်နှေးနေချိန်တွင် အမှားအယွင်း (XCS-2774) မူရင်း အခမဲ့မုဒ် ပိုမိုကောင်းမွန်အောင်လုပ်ဆောင်မှုများရှိ အသေးစားပြောင်းလဲမှုများသည် နှောင့်နှေးနေသော built-in လုပ်ဆောင်ချက်များသို့ operand စကားရပ်များကို အဆက်မပြတ်ခေါက်ခြင်းမှ တားဆီးထားသောကြောင့် ၎င်းတို့ကို အဆက်အသွယ်မရှိသူများအဖြစ် သတ်မှတ်ခံရပြီး အမှားအယွင်းဖြစ်တတ်သည်- _buil tin avr နှောင့်နှေးမှု သံသရာများ ac ompile မျှော်လင့်သည် time integer ကိန်းသေ။

ဗားရှင်း 2.35

_at (XCS-2653) ကို အသုံးပြု၍ ဆက်တိုက်ခွဲဝေခြင်း အမည်တူနှင့် () တွင် အသုံးပြုနေသည့် ကဏ္ဍတစ်ခုရှိ အရာဝတ္ထုအများအပြားကို ဆက်တိုက်ခွဲဝေပေးခြင်းသည် မှန်ကန်စွာ အလုပ်မလုပ်ပါ။ ဟောင်းအတွက်ample: constchararrl [ ] at tri butte ((sect on(“.misses”))) at (Ox50 0) = {Oxo , Ox CD} ; char arr2[ ] at tri butte ((အပိုင်း(“.my s eke”))) = {Oxen, Ox FE }; Aril ပြီးပြီးချင်း Arr2 ကို ထားသင့်ပါတယ်။
အပိုင်းအစလိပ်စာများကို သတ်မှတ်ခြင်း (XCS-2650) -Wal၊ –section-start option သည် အမည်စာရင်းတင်ထားသော စတင်သည့်လိပ်စာတွင် အပိုင်းများကို တိတ်တဆိတ်ထားရန် ပျက်ကွက်နေပါသည်။ ဤပြဿနာကို စိတ်ကြိုက်အမည်ပေးထားသည့် ကဏ္ဍများအတွက် ပြင်ဆင်ပြီးပါပြီ။ သို့သော်လည်း၊ . ကဲ့သို့သော မည်သည့်စံအပိုင်းများအတွက်မှ အလုပ်မဖြစ်ပါ။ စာသား သို့မဟုတ် . bss ကို -Wl, -T option ကို အသုံးပြု၍ ထားရှိရပါမည်။
(XCS-2647) ဖြေလျှော့သည့်အခါ Linker ပျက်သွားသည် -relax optimization ကိုဖွင့်ပြီး ရရှိနိုင်သော memory တွင် မကိုက်ညီသော ကုဒ် သို့မဟုတ် ဒေတာအပိုင်းများ ရှိနေသောအခါ လင့်ခ်သည် ပျက်သွားသည်။ ယခု ဤကဲ့သို့သော အခြေအနေမျိုးတွင် အမှားအယွင်း မက်ဆေ့ချ်များကို ထုတ်ပေးပါသည်။
မကောင်းသော EEPROM အသုံးပြုခွင့် (XCS-2629) -monist-data-in-proem ရွေးချယ်မှုကို ဖွင့်ထားသောအခါ (ပုံသေအခြေအနေဖြစ်သည့်)၊ EEPROM မမ်မိုရီကို မှန်ကန်စွာဖတ်မရသောအခါ leproma _read_ ပိတ်ဆို့သည့် ပုံမှန်အစီအစဉ်သည် Mega စက်များတွင် မှန်ကန်စွာအလုပ်မလုပ်ပါ။
မမှန်ကန်သော မှတ်ဉာဏ်ခွဲဝေမှု (XCS-2593၊ XCS-2651) -Text သို့မဟုတ် -Tata linker option (ဥပမာample -Wl driver option ကိုအသုံးပြု၍ ဖြတ်သန်းသွားသည်) ကိုသတ်မှတ်ထားပြီး၊ သက်ဆိုင်ရာ စာသား/ဒေတာဒေသမူလကို အပ်ဒိတ်လုပ်ထားသည်။ သို့သော်၊ အဆုံးလိပ်စာကို လိုက်လျောညီထွေမဖြစ်အောင် ချိန်ညှိထားခြင်းမရှိသောကြောင့် ပစ်မှတ်ကိရိယာ၏ မှတ်ဉာဏ်အကွာအဝေးထက် ကျော်လွန်သည့်နေရာကို ဖြစ်ပေါ်စေနိုင်သည်။
မမှန်ကန်သော ATtiny ကြားဖြတ်ကုဒ် (XCS-2465) Tatin စက်ပစ္စည်းများအတွက် တည်ဆောက်ခြင်းနှင့် ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်းများကို ပိတ်လိုက်သောအခါ (-00)၊ ကြားဖြတ်လုပ်ဆောင်ချက်များသည် အပိုင်းအခြားစုစည်းသူမက်ဆေ့ချ်များမှ လည်ပတ်လုပ်ဆောင်မှုကို အစပျိုးစေနိုင်ပါသည်။
ရွေးချယ်စရာများ (XCS-2452) ကော်မာ-ခြားထားသော လင့်ခ်ဂါရွေးချယ်စရာများစွာဖြင့် -Wl ရွေးချယ်မှုကို အသုံးပြုသောအခါ၊ လင့်ခ်ပေးရွေးချယ်စရာများအားလုံးကို လင့်ခ်ကိရိယာသို့ လွှဲပြောင်းပေးမည်မဟုတ်ပါ။
ပရိုဂရမ်မှတ်ဉာဏ်ကို သွယ်ဝိုက်၍ဖတ်ခြင်း အမှားအယွင်း (XCS-2450) အချို့သောအခြေအနေများတွင်၊ ကွန်ပြူတာသည် pointer တစ်ခုမှ program memory သို့ two byte value ကိုဖတ်သောအခါ အတွင်းပိုင်းအမှား (unrecognizable insn) ကိုထုတ်ပေးသည်။

ဗားရှင်း 2.32

စာကြည့်တိုက်၏ ဒုတိယဝင်ရောက်ခွင့် မအောင်မြင်ပါ (XCS-2381) xc8-ar ၏ Windows ဗားရှင်းကို ခေါ်ဆိုခြင်း။ exe စာကြည့်တိုက် archiver သည် လက်ရှိ စာကြည့်တိုက် archive ကို ဝင်ရောက်ရန် ဒုတိယ အကြိမ်တွင် အမှားအယွင်း မက်ဆေ့ချ်ကို အမည်ပြောင်းနိုင်ခြင်း မရှိခဲ့ပါ။

ဗားရှင်း 2.31

မရှင်းပြနိုင်သော စုစည်းမှု ချို့ယွင်းချက်များ (XCS-2367) စနစ်ယာယီလမ်းညွှန်ပါရှိသော Windows ပလပ်ဖောင်းများတွင် အလုပ်လုပ်သည့်အခါ အစက်ပါသည့်လမ်းကြောင်းသို့ သတ်မှတ်သည်။' ဇာတ်ကောင်၊ compiler သည် execute ပျက်ကွက်သွားနိုင်သည်။

ဗားရှင်း 2.30

(XCS-2299) ကိုဖော်ပြပြီးနောက် ကမ္ဘာလုံးဆိုင်ရာ အညွှန်းများ နေရာလွဲမှားသွားသည် လုပ်ထုံးလုပ်နည်း abstraction ဖြင့် ပိုင်းခြားထားသော အစုအဝေးအတွင်း ဂလိုဘယ်တံဆိပ်များကို ထားရှိပေးသည့် လက်ဖြင့်ရေးထားသော စည်းဝေးပွဲကုဒ်များကို မှန်ကန်စွာ ပြန်လည်နေရာချထားခြင်း ဖြစ်နိုင်သည်။
လျှော့ပေါ့ပျက်ကျမှု (XCS-2287) -merlad option ကိုအသုံးပြုခြင်းဖြင့် tail jump relaxation optimizations သည် အပိုင်းတစ်ခု၏အဆုံးတွင်မဟုတ်သော ret instruction ကိုဖယ်ရှားရန် ကြိုးပမ်းသောအခါ linker ပျက်သွားနိုင်သည်။
အညွှန်းများကို တန်ဖိုးများအဖြစ် ပိုမိုကောင်းမွန်အောင်ပြုလုပ်သောအခါ ပျက်စီးသွားသည် (XCS-2282) “Labels as values” GNU C ဘာသာစကား တိုးချဲ့မှုကို အသုံးပြုထားသော ကုဒ်သည် အကြမ်းဖျင်းဖော်ပြထားသော VMA အပိုင်းအခြားကို ပြုပြင်မှုအမှားအယွင်းဖြင့် လုပ်ထုံးလုပ်နည်း abstraction optimizations ပျက်သွားနိုင်သည်။
Const (XCS-2271) မဟုတ်ပါ။ starts() နှင့် အခြားလုပ်ဆောင်ချက်များအတွက် ရှေ့ပြေးပုံစံများ -monist-data inprogmem အင်္ဂါရပ်ကို ပိတ်လိုက်သောအခါတွင် ပြန်ပေးထားသော စာကြောင်းညွှန်ပြချက်များတွင် စံမဟုတ်သော ကုန်ကျစရိတ်အရည်အချင်းသတ်မှတ်ချက်ကို မသတ်မှတ်တော့ပါ။ avrxmega3 နှင့် avertin စက်ပစ္စည်းများဖြင့် ဤအင်္ဂါရပ်ကို အပြီးအပိုင် ဖွင့်ထားကြောင်း သတိပြုပါ။
ပျောက်ဆုံးသွားသော ကနဦးစနစ်များ (XCS-2269) ဘာသာပြန်ယူနစ်တစ်ခုတွင် တစ်ခုထက်ပိုသော ကိန်းရှင်တစ်ခုကို ကဏ္ဍတစ်ခုတွင် ထားရှိသောအခါ (ကဏ္ဍ သို့မဟုတ် ရည်ညွှန်းချက် ((ကဏ္ဍ))))၊ ကဏ္ဍတစ်ခုတွင် ထားရှိသည့်အခါ၊ ပထမထိုကိန်းရှင်သည် သုညအစပြုခြင်း သို့မဟုတ် အစဦးပြုခြင်းမရှိပါက၊ တူညီသောဘာသာပြန်ယူနစ်ရှိ အခြားကိန်းရှင်များအတွက် ကနဦးအစပြုမှုများ၊ တူညီသောအပိုင်းတွင် ထားရှိခဲ့သော ပျောက်ဆုံးသွားခဲ့သည်။

ဗားရှင်း 2.29 (Functional Safety Release)

တစ်ခုမှ

ဗားရှင်း 2.20

ရှည်လျားသောအမိန့်တော်များဖြင့် အမှားအယွင်း (XCS-1983) AVR ပစ်မှတ်ကို အသုံးပြုသောအခါ၊ စုစည်းမှုသည် ရပ်တန့်သွားနိုင်သည်။ file အကယ်၍ command line သည် အလွန်ကြီးမားပြီး အထူးစာလုံးများဖြစ်သည့် quotes၊ backslashes စသည်တို့ပါ၀င်ပါက error မတွေ့ပါ။
သတ်မှတ်မထားသော ရိုဒေတာအပိုင်း (XCS-1920) avrxmega3 နှင့် avrtiny ဗိသုကာများ တည်ဆောက်ရာတွင် စိတ်ကြိုက် rodata ကဏ္ဍများအတွက် Memory ကို သတ်မှတ်၍ မရပါ၊၊ မမ်မိုရီ ထပ်နေသော အမှားအယွင်းများကို ထုတ်လုပ်နိုင်သည်

ဗားရှင်း 2.19 (Functional Safety Release)

တစ်ခုမှ

ဗားရှင်း 2.10

နေရာပြောင်းရွှေ့မှု မအောင်မြင်မှုများ (XCS-1891) အသင့်တော်ဆုံး ခွဲဝေပေးသူမှာ လင့်ခ်ကို ပြေလျော့ပြီးနောက် အပိုင်းများကြားတွင် မှတ်ဉာဏ် 'အပေါက်များ' ချန်ထားခြင်းဖြစ်သည်။ မမ်မိုရီကို အပိုင်းပိုင်းခွဲခြင်းအပြင်၊ ၎င်းသည် pc-relative jumps သို့မဟုတ် ဖုန်းခေါ်ဆိုမှုများနှင့်ပတ်သက်သော linker များနေရာပြောင်းခြင်းဆိုင်ရာ ချို့ယွင်းချက်များရှိနိုင်ခြေကို တိုးစေသည်။
အပန်းဖြေခြင်းဖြင့် မပြောင်းလဲသော ညွှန်ကြားချက်များ (XCS-1889) လျှော့ပေါ့ထားလျှင် ပစ်မှတ်များ လက်လှမ်းမမီနိုင်သည့် ခုန်ချခြင်း သို့မဟုတ် ခေါ်ဆိုရန် ညွှန်ကြားချက်များအတွက် လင့်ခ်ကို ပြေလျော့စေခြင်း မဖြစ်ပေါ်ပါ။
ပျောက်နေသည်။ လုပ်ဆောင်နိုင်စွမ်း (XCSE-388) အဓိပ္ပါယ်များစွာထဲမှ ATmega324PB၊ ATmega328PB၊ ATtiny441 နှင့် ATtiny841 အပါအဝင် စက်ပစ္စည်းများအတွက် clock_ div_ t နှင့် clock_prescale_set () ကဲ့သို့ သတ်မှတ်မထားပါ။
မက်ခရိုများ ပျောက်နေသည်။ preprocessor macros_ xcs _MODE_၊ _xcs VERSION၊ _xc နှင့် xcs တို့ကို compiler မှ အလိုအလျောက် သတ်မှတ်မထားပါ။ ဒါတွေကို အခုရရှိနိုင်ပါပြီ။

ဗားရှင်း 2.05

အတွင်းပိုင်းစုစည်းမှု အမှားအယွင်း (XCS-1822) Windows အောက်တွင်တည်ဆောက်သောအခါ၊ ကုဒ်ကိုအကောင်းဆုံးဖြစ်အောင်ပြုလုပ်သောအခါအတွင်းပိုင်း compiler အမှားတစ်ခုဖြစ်ပေါ်လာနိုင်သည်။
RAM ပြည့်လျှံမှုကို မတွေ့ပါ (XCS-1800၊ XCS-1796) ရနိုင်သော RAM ထက်ကျော်လွန်သော ပရိုဂရမ်များကို အချို့သောအခြေအနေများတွင် compiler မှ ရှာမတွေ့သဖြင့် runtime code ပျက်ကွက်သွားပါသည်။
ချန်လှပ်ထားသည့် flash memory (XCS-1792) avrxmega3 နှင့် avrtiny စက်များအတွက်၊ flash memory ၏ အစိတ်အပိုင်းများကို MPLAB X IDE မှ ပရိုဂရမ်မထားရှိဘဲ ထားသွားနိုင်သည်။
ပင်မ (XCS-1788) ကို လုပ်ဆောင်ရန် ပျက်ကွက်ခြင်း ပရိုဂရမ်တွင် ကမ္ဘာလုံးဆိုင်ရာ ကိန်းရှင်များ သတ်မှတ်မထားသော အချို့အခြေအနေများတွင်၊ runtime startup code သည် ထွက်မသွားဘဲ main () function သည် ဘယ်သောအခါမှ မရောက်ပါ။
မမ်မိုရီအချက်အလက် မမှန်ကန်ပါ (XCS-1787) avrxmega3 နှင့် avrtiny စက်ပစ္စည်းများအတွက်၊ avr-size ပရိုဂရမ်သည် ပရိုဂရမ်မမ်မိုရီအစား ဖတ်သာဒေတာကို RAM သုံးစွဲနေကြောင်း သတင်းပို့နေသည်။
ပရိုဂရမ် မန်မိုရီ မမှန်ကန်ပါ (XCS-1783) ဒေတာလိပ်စာနေရာသို့ မြေပုံဆွဲထားသော ပရိုဂရမ်မမ်မိုရီပါသည့် စက်ပစ္စည်းများအတွက် စုစည်းထားသော ပရောဂျက်များသည် PROGMEM macro/attribute ကို အသုံးပြု၍ အရာဝတ္ထုများကို လိပ်စာမှားဖတ်မိခြင်း ဖြစ်နိုင်သည်။
ရည်ညွှန်းချက်များဖြင့် အတွင်းပိုင်း အမှားအယွင်း (XCS-1773) ညွှန်ပြသည့်အရာဝတ္ထုများကို သင်သတ်မှတ်ထားလျှင် အတွင်းပိုင်းအမှားအယွင်းဖြစ်သွားသည်။
_at() သို့မဟုတ် attribute() ညွှန်ပြသူအမည်နှင့် ကိုးကားထားသော အမျိုးအစားကြားရှိ တိုကင်များ ဥပမာ၊ample၊ char *
_at( 0x80015 0) cp; ထိုသို့သောကုဒ်များတွေ့ရှိပါက ယခုသတိပေးချက်ထုတ်ပြန်ထားသည်။
ပင်မ (XCS-1780၊ XCS-1767၊ XCS-1754) ကို လုပ်ဆောင်ရန် ပျက်ကွက်ခြင်း EEPROM variables များကိုအသုံးပြုခြင်း သို့မဟုတ် config pragma ကိုအသုံးပြု၍ fuses များသတ်မှတ်ခြင်းသည် main () သို့မရောက်ရှိမီ ဒေတာအစပျိုးခြင်းတွင် မှားယွင်းသောဒေတာနှင့်/သို့မဟုတ် program execution တို့ကို သော့ခတ်စေနိုင်ပါသည်။
သေးငယ်သော စက်ကိရိယာများဖြင့် ဖျစ်အမှား (XCS-1778၊ XCS-1742) attiny4/5/9/10/20/40 စက်ပစ္စည်းများတွင် ၎င်းတို့၏ ခေါင်းစီးတွင် သတ်မှတ်ထားသော fuse length မမှန်ပါ။ files ကိုသတ်မှတ်ထားသော fuses များသတ်မှတ်ထားသောကုဒ်ကိုတည်ဆောက်ရန်ကြိုးစားသောအခါ linker အမှားများကိုဖြစ်ပေါ်စေသည်။
ပိုင်းခြားခြင်းအမှား (XCS-1777) အဆက်မပြတ် အပိုင်းခွဲခြင်းအမှားကို ပြုပြင်ပြီးပါပြီ။
စုဝေးသူ ပျက်ကျခြင်း (XCS-1761) Ubuntu 18 အောက်တွင် compiler ကို run သောအခါ avr-as assembler ပျက်သွားနိုင်သည်။
မရှင်းလင်းသော အရာများ (XCS-1752) အစပျိုးထားသည့် တည်ငြိမ်သော သိုလှောင်မှုကြာချိန် အရာဝတ္ထုများကို runtime startup ကုဒ်ဖြင့် မရှင်းလင်းနိုင်ပါ။
ကွဲလွဲနေသော စက်ပစ္စည်းသတ်မှတ်ချက်ကို လျစ်လျူရှုထားသည် (XCS-1749) စက်ပစ္စည်း သတ်မှတ်ချက် ရွေးချယ်စရာများစွာကို အသုံးပြုပြီး မတူညီသော စက်ပစ္စည်းများကို ညွှန်ပြသောအခါတွင် စုစည်းမှုသည် အမှားအယွင်းတစ်ခု မဖြစ်ပေါ်ခဲ့ပါ။
အမှိုက်ပုံဖြင့် မှတ်ဉာဏ်ဖောက်ပြန်ခြင်း (XCS-1748) heap_ start သင်္ကေတကို မှားယွင်းစွာသတ်မှတ်ထားသောကြောင့် သာမာန်ကိန်းရှင်များကို အမှိုက်ပုံမှ ပျက်စီးသွားစေနိုင်သည်။
Linker နေရာပြောင်းခြင်း အမှားအယွင်း (XCS-1739) ကုဒ်တွင် rjmp သို့မဟုတ် rcall အတိအကျ 4k bytes အကွာအဝေးတွင် ပစ်မှတ်တစ်ခုပါရှိသော လင့်ခ်ကို ရွှေ့ပြောင်းရာတွင် အမှားအယွင်းတစ်ခု ထွက်လာနိုင်သည်။

ဗားရှင်း 2.00

တစ်ခုမှ

သိပြီးသားကိစ္စများ

အောက်ပါတို့သည် compiler ၏လုပ်ဆောင်မှုတွင် ကန့်သတ်ချက်များဖြစ်သည်။ ၎င်းတို့သည် ယေဘူယျ ကုဒ်ကန့်သတ်ချက်များ ဖြစ်နိုင်သည်၊ သို့မဟုတ်
အသုံးပြုသူ၏လက်စွဲတွင်ပါရှိသောအချက်အလက်များမှသွေဖည်ခြင်း။ ခေါင်းစဉ်ရှိ ကွင်းပိတ်တပ်ထားသော အညွှန်း(များ)သည် ခြေရာခံ ဒေတာဘေ့စ်ရှိ ပြဿနာ၏ သက်သေခံချက်ဖြစ်သည်။ အကူအညီလိုအပ်ပါက ၎င်းသည် အကျိုးရှိနိုင်ပါသည်။ အညွှန်းမပါသော အရာများသည် မုဒ် operandi ကို ဖော်ပြသည့် ကန့်သတ်ချက်များဖြစ်ပြီး အပြီးအပိုင် အကျိုးသက်ရောက်နိုင်ဖွယ်ရှိသည်။

MPLAB X IDE ပေါင်းစပ်မှု

MPLAB IDE ပေါင်းစပ်မှု အကယ်၍ Compiler ကို MPLAB IDE မှအသုံးပြုမည်ဆိုပါက၊ Compiler မထည့်သွင်းမီ MPLAB IDE ကို ထည့်သွင်းရပါမည်။

ကုဒ်မျိုးဆက်

PA မှတ်ဉာဏ်ခွဲဝေမှု မအောင်မြင်ခြင်း (XCS-2881) ပရိုဂရမ်သည် ရနိုင်သောနေရာနှင့် အံကိုက်ဖြစ်သင့်သော်လည်း ပရိုဂရမ်ကုဒ်အရွယ်အစားသည် စက်ရှိရရှိနိုင်သည့် ပရိုဂရမ်မှတ်ဉာဏ်ပမာဏနှင့် နီးကပ်နေချိန်တွင် ချိတ်ဆက်သူသည် မှတ်ဉာဏ်ခွဲဝေမှုဆိုင်ရာ အမှားအယွင်းများကို အစီရင်ခံနိုင်ပါသည်။
Smart-IO (XCS-2872) သည် အလွန်စမတ်ကျသည်မဟုတ်ပါ Coast-data-in-proem အင်္ဂါရပ်ကို ပိတ်ထားပါက သို့မဟုတ် စက်တွင် ၎င်း၏ flash အားလုံးကို ဒေတာမှတ်ဉာဏ်တွင် ပုံဖော်ထားခြင်းရှိ၊
စမတ်ကျတဲ့ Smart-IO (XCS-2869)၊ -floe နှင့် -fno-buil tin ရွေးချယ်မှုများ နှစ်ခုလုံးကို အသုံးပြုသောအခါတွင် ကွန်ပလီလာ၏ smart-io အင်္ဂါရပ်သည် မှန်ကန်သော်လည်း သင့်လျော်သောကုဒ်ကို ထုတ်ပေးလိမ့်မည်။
အကောင်းဆုံးဖတ်ရန်-သီးသန့် ဒေတာနေရာချထားမှု (XCS-2849) ချိတ်ဆက်ပေးသူသည် လောလောဆယ်တွင် APPCODE နှင့် APPDATA မမ်မိုရီကဏ္ဍများ၊ သို့မဟုတ် မန်မိုရီမြေပုံရှိ [No-]Read-While-Write အပိုင်းများကို သတိမပြုမိပါ။ ရလဒ်အနေဖြင့်၊ ချိတ်ဆက်အသုံးပြုသူသည် မသင့်လျော်သော မမ်မိုရီဧရိယာတွင် ဖတ်ရှုရန်-သီးသန့်ဒေတာကို ခွဲဝေပေးနိုင်မည့် အခွင့်အလမ်း အနည်းငယ်ရှိသည်။ အထူးသဖြင့် coast-data-in-config-mapped-proem အင်္ဂါရပ်ကိုလည်း ဖွင့်ထားပါက coast-data-in-pragma အင်္ဂါရပ်ကို ဖွင့်ထားလျှင် ဒေတာနေရာမှားနိုင်ခြေ တိုးလာပါသည်။ လိုအပ်ပါက ဤအင်္ဂါရပ်များကို ပိတ်ထားနိုင်ပါသည်။
အရာဝတ္ထု file ဆောင်ရွက်ဆဲအမိန့် (XCS-2863) အရာဝတ္ထု၌ အစဉ်လိုက် fileလုပ်ထုံးလုပ်နည်း abstraction optimizations (-mpa ရွေးချယ်မှု) ကို အသုံးပြုမှုအပေါ် အခြေခံ၍ ချိတ်ဆက်သူမှ ကွဲပြားနိုင်သည်။ ၎င်းသည် module များစွာရှိ အားနည်းသော လုပ်ဆောင်ချက်များကို သတ်မှတ်ပေးသည့် code ကိုသာ သက်ရောက်မှုရှိမည်ဖြစ်သည်။
အကြွင်းမဲ့ (XCS-2777) ဖြင့် ချိတ်ဆက်သူ အမှား RAM ၏အစတွင် လိပ်စာတစ်ခု၌ အရာဝတ္တုတစ်ခုကို အကြွင်းမဲ့ပြုလုပ်ပြီး နှင့် အစပြုမထားသော အရာဝတ္ထုများကိုလည်း သတ်မှတ်သတ်မှတ်လိုက်သောအခါ၊ ချိတ်ဆက်ကိရိယာအမှားတစ်ခု ဖြစ်ပေါ်နိုင်သည်။
တိုတောင်းသော နိုးထခြင်း ID များ (XCS-2775) ATA5700/2 စက်များအတွက်၊ PHID0/1 မှတ်ပုံတင်မှုများကို 16 bits ကျယ်သည်ထက် 32 bits ကျယ်သည်ဟုသာ သတ်မှတ်သည်။
သင်္ကေတ (XCS-2758) ခေါ်ဆိုသောအခါ လင့်ခ်သည် ပျက်စီးသွားသည် အရင်းအမြစ်ကုဒ်သည် -Wl၊ –defsym လင့်ခ်ကို အသုံးပြု၍ သတ်မှတ်ထားသော သင်္ကေတတစ်ခုကို ခေါ်သောအခါ လင့်ခ်ကိရိယာသည် ပျက်သွားနိုင်သည်။
စတင်ခြင်း မှားယွင်းနေသည် (XCS-2679) အချို့သော global/static byte-အရွယ်ရှိ အရာဝတ္ထုများအတွက် ကနဦးတန်ဖိုးများကို ဒေတာမှတ်ဉာဏ်တွင် ထားရှိသည့်နေရာနှင့် runtime တွင် variable များကို ဝင်ရောက်မည့်နေရာကြားတွင် ကွဲလွဲမှုရှိပါသည်။
မှားယွင်းစွာ စတင်ခဲ့သည် (XCS-2652) ဖော်ပြထားသည့် () ဖြင့် ပြောင်းလဲခြင်းအတွက် အကြောင်းအရာစာကြောင်းတစ်ကြောင်းတွင် အထပ်ကိန်းဖော်မတ်ရှိ ဖောမတ်နံပါတ်ပုံပေါ်သည့်အရာများ ပါရှိပြီး e စာလုံးနောက်တွင် မမျှော်လင့်ထားသော အက္ခရာတစ်ခု ရှိနေသောအခါတွင်၊ ပေးထားသည့် လိပ်စာအလွတ်သည် နောက်မှ စာလုံးကို ညွှန်ပြမည်ဖြစ်သည်။ e နှင့် e ကိုယ်တိုင်မဟုတ်ပါ။ ဟောင်းအတွက်ample: ဖော်ပြထားသည်("ဟူး"၊ ဗလာ); x အက္ခရာကို ညွှန်ပြရာတွင် အချည်းနှီးဖြစ်သွားလိမ့်မည်။
မကောင်းသောသွယ်ဝိုက်လုပ်ဆောင်ချက်ခေါ်ဆိုမှုများ (XCS-2628) အချို့သောအခြေအနေများတွင်၊ တည်ဆောက်မှုတစ်ခု၏တစ်စိတ်တစ်ပိုင်းအဖြစ် သိမ်းဆည်းထားသော လုပ်ဆောင်ချက်ညွှန်ပြမှုမှတစ်ဆင့် လုပ်ဆောင်သည့် ခေါ်ဆိုမှုများသည် ပျက်သွားနိုင်သည်။
strtof သည် ဆယ်ဂဏန်းမမျှောများအတွက် သုညကို ပြန်ပေးသည် (XCS-2626) စာကြည့်တိုက်သည် strtof() et al နှင့် scanf() et al တို့ကို လုပ်ဆောင်ပေးသည်၊၊ ထပ်ကိန်းတစ်ခုမှ မသတ်မှတ်ပေးသော ဆဋ္ဌမဂဏန်းမျှော့နံပါတ်ကို အမြဲတမ်းပြောင်းပေးပါမည်။
သုည ဟောင်းအတွက်ample- stator("ဇီးကွက်"၊ &ဗလာ); 0 မဟုတ်ဘဲ 1 တန်ဖိုးကို ပြန်ပေးပါလိမ့်မယ်။
မမှန်ကန်သော stack အကြံပေးစာတိုပေးပို့ခြင်း (XCS-2542၊ XCS-2541) အချို့သောအခြေအနေများတွင်၊ အသုံးပြုထားသော ထပ်တလဲလဲ သို့မဟုတ် မသတ်မှတ်ထားသော stack နှင့် ပတ်သက်သော stack advisor သတိပေးချက် (alloca()) ကိုအသုံးပြုခြင်းအားဖြင့် ဖြစ်နိုင်သည် ကို ထုတ်လွှတ်ခြင်းမရှိပါ။
ထပ်နေသော အနှောင့်အယှက်ကုဒ် (XCS-2421) ဖြင့် ပျက်ကွက်ခြင်း တစ်ခုထက်ပိုသော interrupt function သည် တူညီသောကိုယ်ထည်ရှိပါက compiler သည် interrupt function တစ်ခုအတွက် output ကို အခြားတစ်ခုသို့ ခေါ်နိုင်သည်။ ၎င်းသည် မလိုအပ်ဘဲ ခေါ်ဆိုထားသော မှတ်ပုံတင်များအားလုံးကို သိမ်းဆည်းခြင်းကို ဖြစ်ပေါ်စေမည်ဖြစ်ပြီး၊ လက်ရှိ ကြားဖြတ်ကိုင်တွယ်သူ၏ epilogue မလည်ပတ်မီတွင်ပင် ကြားဖြတ်အနှောက်အယှက်များကို ဖွင့်ထားမည်ဖြစ်ပြီး၊ ၎င်းသည် ကုဒ်ချို့ယွင်းမှုကို ဖြစ်စေနိုင်သည်။
ပရိုဂရမ်မှတ်ဉာဏ်တွင် မရှိသော အရာဝတ္ထုများကို စုစည်းခြင်း (XCS-2408) avrxmega3 နှင့် avertins ပရောဂျက်များအတွက် unidealized const အရာဝတ္ထုများကို ပရိုဂရမ်မန်မိုရီတွင် ထားရှိထားကြောင်း သတိပေးချက်တစ်ခုမှ ညွှန်ပြသော်လည်း ဒေတာမှတ်ဉာဏ်တွင် ထည့်သွင်းထားသည်။ ၎င်းသည် ဒေတာမှတ်ဉာဏ်နေရာသို့ မြေပုံဆွဲထားသော ပရိုဂရမ်မမ်မိုရီမပါသော စက်ပစ္စည်းများကို ထိခိုက်စေမည်မဟုတ်သည့်အပြင် ကနဦးပြုလုပ်ထားသည့် မည်သည့်အရာဝတ္တုကိုမျှ ထိခိုက်မည်မဟုတ်ပါ။
မမှန်ကန်သော DFP လမ်းကြောင်း (XCS-2376) ဖြင့် အထွက်မကောင်းပါ မမှန်ကန်သော DFP လမ်းကြောင်းနှင့် 'သတ်မှတ်ချက်' ဖြင့် compiler ကို ခေါ်ဆိုပါက၊ file ရွေးချယ်ထားသော စက်ပစ္စည်းအတွက် ရှိနေပြီး၊ စုစည်းသူသည် ပျောက်ဆုံးနေသော စက်ပစ္စည်း မိသားစုထုပ်ကို အစီရင်ခံခြင်းမရှိပဲ 'spec' ကို ရွေးချယ်ခြင်းအစား၊ fileထို့နောက် မမှန်ကန်သော အထွက်ကို ဖြစ်ပေါ်စေနိုင်သည်။ 'သတ်မှတ်ချက်'၊ files သည် ဖြန့်ဝေထားသော DFPs များနှင့် အပ်ဒိတ်မဖြစ်နိုင်ဘဲ internal compiler testing တွင်သာ အသုံးပြုရန် ရည်ရွယ်ထားသည်။
မမ်မိုရီ ထပ်နေမှုကို မတွေ့ပါ (XCS-1966) ကွန်ပြူတာသည် လိပ်စာတစ်ခု (ရှိ ())) နှင့် အပိုင်း () သတ်မှတ်ဖော်ပြချက်နှင့် တူညီသောလိပ်စာသို့ ချိတ်ဆက်ထားသည့် လိပ်စာကို အသုံးပြုထားသည့် အကြွင်းမဲ့ပြုလုပ်ထားသည့် အရာဝတ္ထုများ၏ မမ်မိုရီထပ်နေမှုကို မတွေ့ပါ။
စာကြည့်တိုက်လုပ်ဆောင်ချက်များနှင့် _meme (XCS-1763) တွင် ပျက်ကွက်ခြင်း _memo လိပ်စာနေရာရှိ အငြင်းအခုံတစ်ခုဖြင့် limbic float လုပ်ဆောင်ချက်များ ပျက်သွားနိုင်သည်။ ဒစ်ဂျစ်တိုက်လုပ်ရိုးလုပ်စဉ်များကို အချို့ C အော်ပရေတာများမှ ခေါ်ဝေါ်ကြသည်၊ ဥပမာ၊ ဥပမာampအောက်ဖော်ပြပါ ကုဒ်ကို ထိခိုက်သည်- regFloatVar > memxFloatVar သို့ ပြန်သွားရန်။
ကန့်သတ် limbic အကောင်အထည်ဖော်မှု (AVRTC-731) ATTiny4/5/9/10/20/40 ထုတ်ကုန်များအတွက်၊ limbic တွင် စံ C/Math စာကြည့်တိုက် အကောင်အထည်ဖော်မှုသည် အလွန်အကန့်အသတ် သို့မဟုတ် ရှိနေပါသည်။
ပရိုဂရမ်မှတ်ဉာဏ်ကန့်သတ်ချက်များ (AVRTC-732) 128 kb ထက်ကျော်လွန်သော ပရိုဂရမ်မှတ်ဉာဏ်ပုံများကို toolchain မှပံ့ပိုးပေးပါသည်။ သို့သော်၊ -relax option ကိုအသုံးပြုသောအခါ လိုအပ်သည့်လုပ်ဆောင်ချက် stubs များကိုထုတ်ပေးမည့်အစား၊ အပန်းဖြေခြင်းမရှိဘဲ linker ပျက်ကျခြင်းများနှင့် အထောက်အကူဖြစ်စေသော error message မပါဘဲ linker များ ပျက်သွားခြင်းများကို သိရှိထားသောဥပမာများရှိပါသည်။
နေရာကန့်သတ်ချက်များ (AVRTC-733) အမည် အမည်ပေးထားသည့် လိပ်စာနေရာများကို toolchain မှ ပံ့ပိုးပေးထားပြီး၊ သုံးစွဲသူ၏ လမ်းညွှန်ကဏ္ဍတွင် ဖော်ပြထားသော ကန့်သတ်ချက်များကြောင့် အထူးအမျိုးအစား အရည်အချင်းစစ်များ။
အချိန်ဇုန်များ ဟိ စာကြည့်တိုက်လုပ်ဆောင်ချက်များသည် GMT ဟုယူဆပြီး ဒေသစံတော်ချိန်ဇုန်များကို မပံ့ပိုးပါ၊ ထို့ကြောင့် ဒေသစံတော်ချိန် () သည် ဥပမာအားဖြင့် gummite() နှင့် တူညီသောအချိန်ကို ပြန်သွားပါမည်။ampလဲ့

ဖောက်သည်ပံ့ပိုးမှု

file///Applications/microehip/xc8/v 2 .40/docs/Read me_X C 8_ VR အတွက်။ htm

စာရွက်စာတမ်းများ / အရင်းအမြစ်များ

MICROCHIP MPLAB XC8 C Compiler ဆော့ဝဲလ် [pdf] ပိုင်ရှင်လက်စွဲ
MPLAB XC8 C, MPLAB XC8 C Compiler Software, Compiler Software, Software

ကိုးကား

မှတ်ချက်တစ်ခုချန်ထားပါ။

သင့်အီးမေးလ်လိပ်စာကို ထုတ်ပြန်မည်မဟုတ်ပါ။ လိုအပ်သောအကွက်များကို အမှတ်အသားပြုထားသည်။ *