MPLAB® XC8 C ማጠናከሪያ ሥሪት 2.41 የመልቀቂያ ማስታወሻዎች ለAVR® MCU
የባለቤት መመሪያ
MPLAB XC8 ሲ ማጠናከሪያ ልማት ሶፍትዌር
ይህ ሰነድ የማይክሮ ቺፕ ኤቭአር መሳሪያዎችን ዒላማ በሚያደርግበት ጊዜ ከMPlab XC8 C ማሰባሰቢያ ጋር የተገናኘ ጠቃሚ መረጃ ይዟል።
ይህን ሶፍትዌር ከማሄድዎ በፊት እባክዎ ያንብቡት። ለሥዕል ሰነዱ የMPLAB XC8 C ማሰባሰቢያ መልቀቂያ ማስታወሻዎችን ይመልከቱ ለ 8-ቢት የሥዕል መሳሪያዎች ማጠናከሪያውን እየተጠቀሙ ከሆነ።
አልቋልview
1.1. መግቢያ
ይህ የማይክሮቺፕ MPLAB® XC8 C ማጠናከሪያ ልቀት በርካታ አዳዲስ ባህሪያትን እና የሳንካ ጥገናዎችን ይዟል።
1.2. የግንባታ ቀን
የዚህ የአቀናባሪ እትም ይፋዊ የግንባታ ቀን ፌብሩዋሪ 8 2023 ነው።
1.3. ያለፈው ስሪት
የቀድሞው የMPLAB XC8 C ማጠናከሪያ ስሪት 2.40 በጁላይ 3 2022 ላይ ተገንብቷል።
1.4. ተግባራዊ የደህንነት መመሪያ
ተግባራዊ የደህንነት ፍቃድ ሲገዙ ለMPLAB XC ማቀናበሪያ የሚሆን የተግባር ደህንነት መመሪያ በሰነድ ፓኬጅ ውስጥ ይገኛል።
1.5. የአካል ክፍሎች ፍቃዶች እና ስሪቶች
የMPLAB XC8 C Compiler ለAVR MCUs መሳሪያዎች በጂኤንዩ አጠቃላይ የህዝብ ፍቃድ (ጂ.ፒ.ኤል.ኤል) ስር ተጽፈው ይሰራጫሉ ይህም ማለት የምንጭ ኮድ በነጻ የሚሰራጭ እና ለህዝብ የሚገኝ ነው።
በጂኤንዩ ጂፒኤል ስር ያሉ የመሳሪያዎች ምንጭ ኮድ ከማይክሮ ቺፕስ ተለይቶ ሊወርድ ይችላል። webጣቢያ. የእርስዎን የመጫኛ ፍቃድ.txt avr/doc ማውጫ ንዑስ ማውጫ በተሰየመው ፋይል ውስጥ የጂኤንዩ ጂፒኤልን ማንበብ ይችላሉ። ለጂፒኤልኤል መሰረታዊ መርሆዎች አጠቃላይ ውይይት እዚህ ሊገኝ ይችላል።
የድጋፍ ኮድ ለርዕስ ፋይሎች፣ አገናኝ ስክሪፕቶች እና የአሂድ ጊዜ ቤተ-መጻሕፍት የባለቤትነት ኮድ ናቸው እና በጂፒኤል አይሸፈኑም።
ይህ አቀናባሪ የጂሲሲ ስሪት 5.4.0፣ binutils ስሪት 2.26፣ እና avr-libc ስሪት 2.0.0ን ይጠቀማል።
1.6. የስርዓት መስፈርቶች
የMPLAB XC8 C ማጠናከሪያ እና የሚጠቀመው የፈቃድ ሶፍትዌሮች ለተለያዩ ኦፕሬቲንግ ሲስተሞች ይገኛሉ፣የሚከተሉትን ባለ 64-ቢት ስሪቶች ጨምሮ፡ የ Microsoft® Windows® 10 ፕሮፌሽናል እትሞች። ኡቡንቱ® 18.04; እና macOS® 10.15.5. ለዊንዶውስ ሁለትዮሽ በኮድ ተፈርሟል። የMacOS ሁለትዮሽዎች በኮድ የተፈረሙ እና ኖተሪ ተደርገዋል። የMPLAB XC አውታረ መረብ ፍቃድ አገልጋይ ማይክሮሶፍት ዊንዶውስ 64 እና ከዚያ በላይን ጨምሮ ለተለያዩ 10-ቢት ኦፕሬቲንግ ሲስተሞች ይገኛል። ኡቡንቱ 18.04 እና ከዚያ በላይ; ወይም macOS 10.15 እና ከዚያ በላይ። አገልጋዩ እንደ ዊንዶውስ አገልጋይ፣ ሊኑክስ ስርጭቶች፣ እንደ Oracle® Enterprise Linux® እና Red Hate Enterprise Linux እና እንዲሁም የቆዩ የስርዓተ ክወና ስሪቶችን ጨምሮ በተለያዩ ኦፕሬቲንግ ሲስተሞች ሊሄድ ይችላል። ሆኖም የMPLAB XC አውታረ መረብ ፍቃድ አገልጋይ በእነዚህ ኦፕሬቲንግ ሲስተሞች ላይ አልተሞከረም። የMPLAB XC አውታረ መረብ ፍቃድ አገልጋይ በቨርቹዋል ማሽኖች በሚደገፈው ስርዓተ ክወና ለኔትወርክ ፍቃዶች (SW006021-VM) በመጠቀም ሊሰራ ይችላል። ሁሉም የMPLAB XC አውታረ መረብ አገልጋይ 32-ቢት ስሪቶች ከስሪት 3.00 ጀምሮ ይቋረጣሉ።
መሣሪያዎች ይደገፋሉ
ይህ አቀናባሪ በሚለቀቅበት ጊዜ ያሉትን ሁሉንም ባለ 8-ቢት AVR MCU መሳሪያዎች ይደግፋል። ለሁሉም የሚደገፉ መሳሪያዎች ዝርዝር (በአቀናባሪው ማውጫ ውስጥ) ይመልከቱ። እነዚህ ፋይሎችም ይዘረዝራሉ
avr_chipinfo.html ሰነድ ውቅር ቢት ቅንብሮች ለእያንዳንዱ መሣሪያ።
1.7. እትሞች እና የፍቃድ ማሻሻያዎች
የMPLAB XC8 አቀናባሪ እንደ ፈቃድ (PRO) ወይም ያለፈቃድ (ነጻ) ምርት ሆኖ ሊነቃ ይችላል። ለአቀናባሪዎ ፈቃድ ለመስጠት የማግበር ቁልፍ መግዛት ያስፈልግዎታል። ፍቃድ ከፍሪ ምርቱ ጋር ሲነፃፀር ከፍተኛ የማመቻቸት ደረጃን ይፈቅዳል። ያለፈቃድ አቀናባሪ ያለፍቃድ ላልተወሰነ ጊዜ ሊሠራ ይችላል። የMPLAB XC8 ተግባራዊ ደህንነት ማጠናከሪያ ከማይክሮ ቺፕ በተገዛ ተግባራዊ የደህንነት ፍቃድ መንቃት አለበት። አቀናባሪው ያለዚህ ፍቃድ አይሰራም። አንዴ ከነቃ በኋላ ማንኛውንም የማመቻቸት ደረጃ መምረጥ እና ሁሉንም የማጠናከሪያ ባህሪያትን መጠቀም ይችላሉ። ይህ የMPLAB XC የተግባር ደህንነት ማጠናከሪያ ልቀት የአውታረ መረብ አገልጋይ ፍቃድን ይደግፋል።
የመጫኛ እና ፍቃድ የMPLAB XC C Compilers (DS50002059) ሰነዱን ይመልከቱ የፍቃድ አይነቶች እና የማጠናቀቂያው ጭነት ፍቃድ።
1.8. ተከላ እና ማግበር
ከዚህ ማጠናከሪያ ጋር ስለተካተቱት የቅርብ ጊዜ የፍቃድ ስራ አስኪያጅ ጠቃሚ መረጃ ለማግኘት የስደት ጉዳዮችን እና ገደቦችን ክፍል ይመልከቱ።
MPLAB IDE የሚጠቀሙ ከሆነ ይህን መሳሪያ ከመጫንዎ በፊት የቅርብ ጊዜውን የMPLAB X IDE ስሪት 5.0 ወይም ከዚያ በኋላ መጫንዎን ያረጋግጡ። ማቀናበሪያውን ከመጫንዎ በፊት አይዲኢውን ያቁሙ። (Windows)፣ (Linux) ወይም (macOS) .exe .run .app compiler installer መተግበሪያን ያሂዱ፣ ለምሳሌ በማያ ገጹ ላይ ያሉትን መመሪያዎች ይከተሉ። XC8-1.00.11403-windows.exe ነባሪው የመጫኛ ማውጫ ይመከራል። ሊኑክስን እየተጠቀሙ ከሆነ ማጠናከሪያውን ተርሚናል በመጠቀም እና ከስር አካውንት መጫን አለብዎት። ከአስተዳዳሪ መብቶች ጋር የ macOS መለያን በመጠቀም ጫን።
ማግበር አሁን ለመጫን በተናጠል ይከናወናል. ለተጨማሪ መረጃ የ MPLAB® XC C Compilers (DS52059) የፍቃድ አስተዳዳሪን ይመልከቱ።
አጠናቃሪውን በግምገማ ፍቃድ ለማስኬድ ከመረጡ፣ የግምገማ ጊዜዎ ካለቀ በ14 ቀናት ውስጥ ሲሆኑ አሁን በማጠናቀር ጊዜ ማስጠንቀቂያ ይደርስዎታል። የ HPA ምዝገባዎ ካለቀ በ14 ቀናት ውስጥ ከሆነ ተመሳሳይ ማስጠንቀቂያ ይሰጣል።
የኤክስሲ ኔትወርክ ፍቃድ አገልጋዩ የተለየ ጫኝ ነው እና በአንድ ተጠቃሚ ኮምፕሌር ጫኚ ውስጥ አልተካተተም።
የኤክስሲ ፍቃድ አስተዳዳሪ አሁን ተንሳፋፊ የአውታረ መረብ ፈቃዶችን መንቀሳቀስ ይደግፋል። በሞባይል ተጠቃሚዎች ላይ ያተኮረ ይህ ባህሪ ተንሳፋፊ ፍቃድ ለአጭር ጊዜ ከአውታረ መረብ እንዲጠፋ ይፈቅዳል። ይህንን ባህሪ በመጠቀም ከአውታረ መረቡ ጋር ያለውን ግንኙነት ማቋረጥ እና አሁንም የእርስዎን MPLAB XC ማጠናከሪያ መጠቀም ይችላሉ። በዚህ ባህሪ ላይ ለበለጠ መረጃ የ XCLM ጭነት የሰነድ ማህደርን ይመልከቱ።
MPLAB X IDE ዝውውርን በእይታ ለማስተዳደር የፍቃዶች መስኮት (መሳሪያዎች > ፍቃዶች) ያካትታል።
1.8.1. የመጫኛ ችግሮችን መፍታት
በማናቸውም የዊንዶውስ ኦፐሬቲንግ ሲስተሞች ስር ማቀናበሪያውን መጫን ላይ ችግሮች ካጋጠሙዎት የሚከተሉትን ምክሮች ይሞክሩ።
መጫኑን እንደ አስተዳዳሪ ያሂዱ።
የመጫኛውን መተግበሪያ ፈቃዶች ወደ 'ሙሉ ቁጥጥር' ያዘጋጁ። (ፋይሉን በቀኝ ጠቅ ያድርጉ ፣ ባሕሪያት ፣ ሴኪዩሪቲ ትርን ይምረጡ ፣ ተጠቃሚን ይምረጡ ፣ ያርትዑ።)
የTemp አቃፊ ፍቃዶችን ወደ 'ሙሉ ቁጥጥር' ያቀናብሩ።
የቴምፕ ማህደሩን ቦታ ለማወቅ % temp% ን ወደ Run ትዕዛዝ (የዊንዶውስ አርማ ቁልፍ + R) ያስገቡ።
ይሄ ያንን ማውጫ የሚያሳይ የፋይል አሳሽ ንግግር ይከፍታል እና የአቃፊውን ዱካ እንዲወስኑ ያስችልዎታል።
1.9. የማጠናከሪያ ሰነድ
በቅጽበታዊ ገጽ እይታው ላይ እንደሚታየው በMPLAB X IDE ዳሽቦርድ ውስጥ ሰማያዊውን የእርዳታ ቁልፍ ሲጫኑ የአቀናባሪው ተጠቃሚ መመሪያዎች በአሳሽዎ ውስጥ ከሚከፈተው የኤችቲኤምኤል ገጽ ሊከፈቱ ይችላሉ።
ለ 8-ቢት AVR ኢላማዎች እየገነቡ ከሆነ፣ የMPLAB® XC8 C የማጠናከሪያ የተጠቃሚ መመሪያ ለ AVR® MCU በእነዚያ የማጠናከሪያ አማራጮች እና በዚህ አርክቴክቸር ላይ ተፈፃሚነት ያላቸውን ባህሪያት መረጃ ይዟል።
1.10. የደንበኞች ድጋፍ
ማይክሮቺፕ ይህን የአቀናባሪ ስሪት በተመለከተ የሳንካ ሪፖርቶችን፣ ጥቆማዎችን ወይም አስተያየቶችን ይቀበላል። እባክዎ ማንኛውንም የሳንካ ሪፖርቶችን ወይም የባህሪ ጥያቄዎችን በድጋፍ ሥርዓቱ በኩል ይምሩ።
የሰነድ ዝማኔዎች
በመስመር ላይ እና ወቅታዊ ለሆኑ የMPLAB XC8 ሰነዶች፣ እባክዎን የማይክሮቺፕን የመስመር ላይ ቴክኒካል ዶክመንቴሽን ይጎብኙ። webጣቢያ. በዚህ ልቀት ውስጥ አዲስ ወይም የዘመነ የኤቪአር ሰነድ፡-
- MPLAB® XC8 C የማጠናከሪያ የተጠቃሚ መመሪያ ለAVR® MCU (ክለሳ G)
- AVR® GNU Toolchain ወደ MPLAB® XC8 የፍልሰት መመሪያ (ክለሳ ሀ)
- የHexmate የተጠቃሚ መመሪያ (ክለሳ ለ)
የAVR® GNU Toolchain ወደ MPLAB® XC8 የፍልሰት መመሪያ በምንጭ ኮድ ላይ የተደረጉ ለውጦችን ይገልፃል እና በC ላይ የተመሰረተ ፕሮጀክትን ከAVR 8-bit GNU Toolchain ወደ ማይክሮቺፕ MPLAB XC8 C Compiler ለማዛወር ከወሰኑ ሊያስፈልጉ የሚችሉ አማራጮችን ይገልፃል። የማይክሮ ቺፕ የተዋሃደ መደበኛ ቤተ መፃህፍት ማመሳከሪያ መመሪያ በማይክሮ ቺፕ የተዋሃደ ስታንዳርድ ቤተ መፃህፍት የተገለጹትን ተግባራት ባህሪ እና በይነገጽ እንዲሁም የቤተ-መጻህፍት ዓይነቶችን እና ማክሮዎችን ለመጠቀም የታሰበበትን ሁኔታ ይገልጻል። ከእነዚህ መረጃዎች ውስጥ ጥቂቶቹ ቀደም ሲል በMPLAB® XC8 C የማጠናከሪያ የተጠቃሚ መመሪያ ለAVR® MCU ውስጥ ይገኙ ነበር። መሳሪያ-ተኮር የቤተ-መጽሐፍት መረጃ አሁንም በዚህ የማጠናከሪያ መመሪያ ውስጥ አለ።
ገና በ8-ቢት መሳሪያዎች እና በMPLAB XC8 C Compiler እየጀመርክ ከሆነ የMPLAB® XC8 የተጠቃሚ መመሪያ ለተካተቱ መሐንዲሶች – AVR® MCUs (DS50003108) በMPLAB X IDE ውስጥ ፕሮጀክቶችን ስለማዋቀር እና ኮድ ለመጻፍ መረጃ አለው። የመጀመሪያው MPLAB XC8 C ፕሮጀክት. ይህ መመሪያ አሁን ከአቀነባባሪው ጋር ተሰራጭቷል።
የHexmate ተጠቃሚ መመሪያ Hexmate ን እንደ ራሱን የቻለ መተግበሪያ ላሉ ሰዎች የታሰበ ነው።
ምን አዲስ ነገር አለ
የሚከተሉት አቀናባሪው አሁን የሚደግፋቸው አዲስ የኤቪአር-ዒላማ ባህሪያት ናቸው። በንዑስ አርዕስቶች ውስጥ ያለው የስሪት ቁጥር የሚከተሉትን ባህሪያት ለመደገፍ የመጀመሪያውን የአቀናባሪ ስሪት ያሳያል።
3.1. ስሪት 2.41
የቡትሮው ድጋፍ (XC8-3053) አቀናባሪው የማንኛውም ክፍሎችን ይዘት ቅድመ ቅጥያ በ.bootrow አድራሻ 0x860000 በHEX ፋይል ውስጥ ያስቀምጣል። እነዚህ ክፍሎች ለቡት ጫኚ ብቻ ተደራሽ መሆን ያለባቸው ቁልፎችን እና ሌሎች አስተማማኝ መረጃዎችን ለማከማቸት የተቀየሱት ለ BOOTROW ማህደረ ትውስታ ያገለግላሉ።
ተደጋጋሚ መመለሻ ማጥፋት (XC8-3048) ብጁ አገናኝ ስክሪፕቶች ጥቅም ላይ በሚውሉበት ጊዜ አቀናባሪው ከጅራት ዝላይ ጋር በ ret ተግባራት ውስጥ ተደጋጋሚ መመሪያዎችን ያስወግዳል። ይህ ከዚህ ቀደም ከተሰራው ጋር ተመሳሳይ የሆነ ማመቻቸት ነው፣ ነገር ግን አሁን በሁሉም ወላጅ አልባ ክፍሎች ላይ ነው የሚሰራው፣ ምንም እንኳን ብጁ አገናኝ ስክሪፕት ጥቅም ላይ ቢውል እና በጣም ጥሩው የሚመጥን ምደባ እቅድ በጨዋታው ላይ ባይሆንም። የሰዓት አይነት ለውጥ (XC8-2982፣ 2932) የC99 መደበኛ ቤተ መፃህፍት አይነት፣ ከ time_t ወደ አይነት ተለውጧል፣ ይህም ከተወሰነ ጊዜ ጋር በተያያዙ ረጅም ረጅም ተግባራት ላይ የኮድ መጠን ማሻሻያዎችን ይሰጣል፣ ለምሳሌ። ያልተፈረመ ረጅም mktime()
አዲስ ኖፕ (XC8-2946፣ 2945) ማክሮው ተጨምሯል። ይህ ማክሮ ምንም-NOP() ያስገባል nop ክወና መመሪያ ወደ ውፅዓት.
ወደ XCLM (XC8-2944) አዘምን ከአቀናባሪው ጋር ጥቅም ላይ የዋለው የፍቃድ አስተዳዳሪ ተዘምኗል እና አሁን የአቀናባሪውን የፍቃድ ዝርዝሮች ሲፈተሽ የበለጠ ምላሽ ይሰጣል።
Trampኦሊንድ ጥሪዎች (XC8-2760) የመመሪያዎቹ አንጻራዊ ቅርጾች በመደበኛነት ከመድረሻ ክልላቸው ውጭ ሲሆኑ አቀናባሪው የረጅም ጊዜ የጥሪ መመሪያዎችን በአጭር አንጻራዊ ጥሪዎች መተካት ይችላል። በዚህ ሁኔታ፣ አቀናባሪው መመሪያን ለመጥራት በመመሪያው ለመተካት ይሞክራል።ampየ oline' አፈፃፀም ወደሚፈለገው አድራሻ፣ ለምሳሌampለ፡ jmp
ጥሪ tramp_fo ;fo ይባላል
…
ጥሪ tramp_ፉ
…
tramp_ፉ፡
jmp foo
ይህ ማመቻቸት, ከተመሳሳይ የፕሮግራም ፍሰት ማመቻቸት ጋር, በ -mrelax አማራጭ ቁጥጥር ይደረግበታል.
3.2. ስሪት 2.40
አዲስ የመሳሪያ ድጋፍ ለሚከተሉት የኤቪአር ክፍሎች አሁን ይገኛል፡ AT90PWM3፣ AVR16DD14፣ AVR16DD20፣ AVR16DD28፣ AVR16DD32፣ AVR32DD14፣ AVR32DD20፣ AVR32DD28፣ AVR32DD32፣ AVR64DD28፣ AVR64DD32፣ AVR64DD48፣XNUMXEAVR
የተሻሻለ የሥርዓት ማጠቃለያ የሥርዓት ማጠቃለያ (PA) ማበልጸጊያ መሣሪያ ተሻሽሏል ስለዚህም የተግባር የጥሪ መመሪያ (/ ) የያዘ ኮድ ጥቅም ላይ ሊውል ይችላል። ይህ የሚካሄደው የጥሪ ጥሪ የሚሆነው ቁልል ነጋሪ እሴቶችን ለማለፍ ወይም ከተግባሩ የመመለሻ ዋጋ ለማግኘት ካልሆነ ብቻ ነው። ቁልል ጥቅም ላይ የሚውለው ከተለዋዋጭ የመከራከሪያ ነጥብ ጋር አንድ ተግባር ሲጠራ ወይም ለዚህ ዓላማ ከተመደቡ መመዝገቢያዎች የበለጠ ክርክሮችን የሚወስድ ተግባር ሲደውሉ ነው። ይህ ባህሪ አማራጩን በመጠቀም ሊሰናከል ይችላል፣ ወይም የሥርዓት ማጠቃለያ ሙሉ ለሙሉ ለአንድ ነገር ፋይል ወይም ተግባር በ- እና፣ በቅደም ተከተል፣ ወይም ባህሪውን (የተለየ) ከተግባራት ጋር በመጠቀም ሊሰናከል ይችላል።
mno-pa-outline-ጥሪዎች -mno-pa-on-file -mno-pa-on-function nopa Code cover macro ማክሮ ማክሮ የሚሰራው አማራጭ __nopa __CODECOV -mcodecov ከተገለጸ አሁን ማክሮውን ይገልፃል።
የማህደረ ትውስታ ማስያዣ አማራጭ ነጂው አሁን ለኤቪአር ኢላማዎች ሲገነባ xc8-cc -mreserve=space@start:end የሚለውን አማራጭ ይቀበላል። ይህ አማራጭ በመረጃው ወይም በፕሮግራሙ የማህደረ ትውስታ ቦታ ላይ የተወሰነውን የማህደረ ትውስታ ወሰን ያስቀምጣል፣ ይህም ማገናኛ በዚህ አካባቢ ያሉትን ኮድ ወይም ነገሮች እንዳይሞላ ይከላከላል። ብልጥ ብልጥ IO በ Smart IO ተግባራት ላይ በርካታ ማሻሻያዎች ተደርገዋል፣ በ printf ኮር ኮድ ላይ አጠቃላይ ማስተካከያዎችን፣ የ%n ልወጣን ልዩ እንደ ገለልተኛ ተለዋጭ በመመልከት፣ በፍላጎት የቫራርግ ፖፕ ልማዶችን በማገናኘት፣ ለአያያዝ አጫጭር የመረጃ አይነቶችን በመጠቀም የ IO ተግባር ነጋሪ እሴቶች፣ እና የጋራ ኮድ በመስክ ስፋት እና በትክክለኛ አያያዝ። ይህ ወሳኝ ኮድ እና የውሂብ ቁጠባን ሊያስከትል ይችላል, እንዲሁም የ IO አፈፃፀም ፍጥነት ይጨምራል.
3.3. ስሪት 2.39 (ተግባራዊ የደህንነት መለቀቅ)
የአውታረ መረብ አገልጋይ ፍቃድ ይህ የMPLAB XC8 ተግባራዊ ደህንነት ማጠናከሪያ የአውታረ መረብ አገልጋይ ፍቃድን ይደግፋል።
3.4. ስሪት 2.36
ምንም።
3.5. ስሪት 2.35
አዲስ የመሳሪያ ድጋፍ ለሚከተሉት የኤቪአር ክፍሎች: ATTINY3224, ATTINY3226, ATTINY3227, AVR64DD14, AVR64DD20, AVR64DD28 እና AVR64DD32 ይገኛል.
የተሻሻለ አውድ መቀየር አዲሱ -mcall-isr-prologues አማራጭ የማቋረጥ ተግባራት በመግቢያው ላይ መዝገቦችን እንዴት እንደሚያስቀምጡ እና የማቋረጥ መደበኛ ስራው ሲያልቅ እነዚያ መዝገቦች እንዴት እንደሚመለሱ ይለውጣል። ከ -mcall-prologues አማራጭ ጋር ተመሳሳይ በሆነ መንገድ ይሰራል፣ ነገር ግን የማቋረጫ ተግባራትን (ISRs) ብቻ ነው የሚነካው።
ይበልጥ የተሻሻለ አውድ መቀየር አዲሱ -mgas-isr-prologues አማራጭ ለአነስተኛ የአቋራጭ አገልግሎት ልማዶች የሚፈጠረውን የአውድ መቀየሪያ ኮድ ይቆጣጠራል። ይህ ባህሪ ሲነቃ ተሰብሳቢው ለመመዝገቢያ አገልግሎት ISR ን እንዲቃኝ እና አስፈላጊ ከሆነ እነዚህን ያገለገሉ መዝገቦችን ብቻ ያስቀምጣል።
ሊዋቀር የሚችል የፍላሽ ካርታ ስራ በAVR DA እና AVR DB ቤተሰብ ውስጥ ያሉ አንዳንድ መሳሪያዎች ኤስኤፍአር (ለምሳሌ FLMAP) ያላቸው ሲሆን ይህም 32k የፕሮግራም ማህደረ ትውስታ በመረጃ ማህደረ ትውስታ ውስጥ እንደሚካተት ይገልጻል። አዲሱ - mconst-data-in-config-mapped-progmem አማራጭ አገናኙን ሁሉንም const-qualified data በአንድ 32k ክፍል ውስጥ እንዲያስቀምጥ እና ይህ መረጃ በመረጃ ማህደረ ትውስታ ውስጥ መቀረጹን ለማረጋገጥ አስፈላጊውን የ SFR ምዝገባ በራስ-ሰር ማስጀመር ይቻላል ቦታ፣ ይበልጥ ውጤታማ በሆነ መንገድ የሚደረስበት።
የማይክሮ ቺፕ የተዋሃዱ መደበኛ ቤተ-መጻሕፍት ሁሉም የMPLAB XC አቀናባሪዎች የማይክሮ ቺፕ የተዋሃደ መደበኛ ቤተ-መጽሐፍት ይጋራሉ፣ ይህም አሁን በዚህ የMPLAB XC8 ልቀት ይገኛል። የMPLA# XC8 C የማጠናከሪያ የተጠቃሚ መመሪያ ለ AVO MCU ከአሁን በኋላ ለእነዚህ መደበኛ ተግባራት ሰነዶችን አያካትትም። ይህ መረጃ አሁን በማይክሮ ቺፕ የተዋሃደ መደበኛ ቤተ መፃህፍት ማመሳከሪያ መመሪያ ውስጥ ይገኛል። ከዚህ ቀደም በ avr-libc የተገለጹ አንዳንድ ተግባራት ከአሁን በኋላ እንደማይገኙ ልብ ይበሉ። (የሊላ ተግባርን ተመልከት።)
Smart I0 እንደ አዲሱ የተዋሃዱ ቤተ-መጻሕፍት አካል፣ እነዚህ ተግባራት በፕሮግራሙ ውስጥ እንዴት ጥቅም ላይ እንደሚውሉ ላይ በመመስረት፣ በሕትመት እና ስካንፍ ቤተሰቦች ውስጥ ያሉ የI0 ተግባራት አሁን በእያንዳንዱ ግንባታ ላይ በብጁ ፈጥረዋል። ይህ በፕሮግራሙ ጥቅም ላይ የሚውሉትን ሀብቶች በከፍተኛ ሁኔታ ሊቀንስ ይችላል።
የስማርት ICI እገዛ አማራጭ ወደ ብልጥ I0 ተግባራት (እንደ ማተም f () ወይም ስካፍ () ያሉ) ጥሪዎችን ሲመረምር አቀናባሪው ሁልጊዜ ከቅርጸቱ ሕብረቁምፊው ሊወስን ወይም በጥሪው የሚፈለጉትን የልወጣ መግለጫዎች ከክርክር መረዳት አይችልም። ከዚህ በፊት አቀናባሪው ሁል ጊዜ ምንም ግምት አይሰጥም እና ሙሉ በሙሉ የሚሰሩ 10 ተግባራት ከመጨረሻው የፕሮግራም ምስል ጋር መገናኘታቸውን ያረጋግጣል። አዲስ – msmart-io-format=fmt አማራጭ ታክሏል አቀናባሪው በምትኩ በስማርት I0 ተግባራት የሚጠቀሙባቸውን የልወጣ መግለጫዎች በተጠቃሚው እንዲያውቁት አጠቃቀማቸው አሻሚ ነው፣ ይህም ከመጠን በላይ ረጅም 10 አሰራሮች እንዳይገናኙ ይከላከላል። (ለተጨማሪ ዝርዝሮች የስማርት-io-ቅርጸት አማራጭን ይመልከቱ።)
ብጁ ክፍሎችን ማስቀመጥ ከዚህ በፊት -W1, -ክፍል-ጅምር አማራጩ የተገለጸውን ክፍል በተጠየቀው አድራሻ ላይ ያስቀመጠው አገናኝ ስክሪፕት ተመሳሳይ ስም ያለው የውጤት ክፍል ሲገልጽ ብቻ ነው. ይህ በማይሆንበት ጊዜ ክፍሉ በአገናኝ በተመረጠው አድራሻ ላይ ተቀምጧል እና ምርጫው በመሠረቱ ችላ ተብሏል. ምንም እንኳን የአገናኝ ስክሪፕቱ ክፍሉን ባይገልጽም አሁን አማራጩ ለሁሉም ብጁ ክፍሎች ይከበራል። ይሁን እንጂ ለመደበኛ ክፍሎች እንደዚያው ልብ ይበሉ. ጽሑፍ፣ . ቢኤስኤስ ወይም . መረጃ፣ በጣም ጥሩው የተመጣጣኝ አመዳደብ አሁንም በአቀማመጣቸው ላይ ሙሉ ቁጥጥር ይኖረዋል፣ እና አማራጩ ምንም ውጤት አይኖረውም። በተጠቃሚው መመሪያ ላይ እንደተገለጸው -ton, -Tsection=addr አማራጭን ይጠቀሙ።
3.6. ስሪት 2.32
የቁልል መመሪያ ከPRO ማጠናከሪያ ፈቃድ ጋር ይገኛል፣ የአቀናባሪው ቁልል መመሪያ ባህሪ በፕሮግራሙ ጥቅም ላይ የሚውለውን የቁልል ጥልቀት ለመገመት ሊያገለግል ይችላል። የፕሮግራሙን የጥሪ ግራፍ ይገነባል እና ይመረምራል፣ የእያንዳንዱን ተግባር የቁልል አጠቃቀም ይወስናል እና ሪፖርት ያዘጋጃል ይህም በፕሮግራሙ ጥቅም ላይ የዋለውን የቁልል ጥልቀት መገመት ይቻላል። ይህ ባህሪ በ -mchp-stack-usage ትዕዛዝ-መስመር አማራጭ በኩል ነቅቷል። የቁልል አጠቃቀም ማጠቃለያ ከአፈፃፀም በኋላ ታትሟል። ዝርዝር ቁልል ሪፖርት በካርታው ላይ ይገኛል። file, በተለመደው መንገድ ሊጠየቅ ይችላል.
አዲስ የመሳሪያ ድጋፍ ለሚከተሉት የኤቪአር ክፍሎች ይገኛል፡ ATTINY427፣ ATTINY424፣ ATTINY426፣ ATTINY827፣ ATTINY824፣ ATTINY826፣ AVR32DB32፣ AVR64DB48፣ AVR64DB64፣ AVR64DB28 እና 32DBR የተመለሰ መሳሪያ ድጋፍ ለሚከተሉት AVR ክፍሎች ድጋፍ አይገኝም፡ AVR28DA64፣ AVR32DA32 እና፣ AVR48DA16።
3.7. ስሪት 2.31
ምንም።
3.8. ስሪት 2.30
የውሂብ ማስጀመርን ለመከላከል አዲስ አማራጭ አዲስ -mno-data-init ሾፌር አማራጭ የውሂብ መጀመርን እና የ BS ክፍሎችን ማጽዳት ይከላከላል. የሚሠራው የዶ ኮፒ ዳታውን ውጤት በማፈን እና በመገጣጠም ውስጥ ግልጽ የሆኑ የ bss ምልክቶችን በማድረግ ነው። files, ይህም በተራው እነዚያን የዕለት ተዕለት ተግባራት በአገናኝ እንዳይካተት ይከላከላል.
የተሻሻሉ ማሻሻያዎች በርካታ የማሻሻያ ማሻሻያዎች ተደርገዋል፣ ይህም በተደጋጋሚ የመመለሻ መመሪያዎችን ማስወገድ፣ አንዳንድ መዝለሎችን ስኪፕ-ቢ-ቢት-ነውን መመሪያን ተከትሎ መወገድ እና የተሻሻለ የሥርዓት ማጠቃለያ እና ይህንን ሂደት የመድገም ችሎታ። ከእነዚህ ማመቻቸቶች መካከል አንዳንዶቹን ለመቆጣጠር ተጨማሪ አማራጮች አሁን ይገኛሉ፣በተለይ -f ክፍል-መልሕቅ፣ይህም የማይንቀሳቀሱ ነገሮች ከአንድ ምልክት አንፃር እንዲከናወኑ ያስችላል። -mpa-iterations=n፣ ይህም የሥርዓት ረቂቅ ድግግሞሾችን ቁጥር ከነባሪው 2 ለመቀየር ያስችላል። እና -mpa-callcost-shortcall፣ይህም የበለጠ ኃይለኛ የሂደት ረቂቅን የሚያከናውን ፣አገናኙ ረጅም ጥሪዎችን ለማዝናናት ተስፋ በማድረግ። መሰረታዊ ግምቶች ካልተፈጸሙ ይህ የመጨረሻው አማራጭ የኮድ መጠን ሊጨምር ይችላል.
አዲስ የመሳሪያ ድጋፍ ለሚከተሉት የኤቪአር ክፍሎች ይገኛል፡ AVR16DA28፣ AVR16DA32፣ AVR16DA48፣ AVR32DA28፣ AVR32DA32፣ AVR32DA48፣ AVR64DA28፣ AVR64DA32፣ AVR64DA48፣ AVR64DA64፣ AVR128DA28፣ የተመለሰ መሳሪያ ድጋፍ ለሚከተሉት የኤቪአር ክፍሎች ATA128 ፣ ATA32 ፣ ATA128N ፣ ATA48 ፣ ATA128 ፣ ATA64 ፣ ATA5272 ፣ ATA5790C ፣ ATA5790C ፣ ATA5791Q ፣ ATA5795 ATA6285
3.9. ስሪት 2.29 (ተግባራዊ የደህንነት መለቀቅ)
ራስጌ file ለአቀነባባሪ አብሮገነብ ውስጥ እንደ MISRA ካሉ የቋንቋ ዝርዝሮች ጋር መጣጣሙን ለማረጋገጥ፣ ራስጌ file, ይህም በራስ-ሰር በ ፣ ተዘምኗል። ይህ ራስጌ እንደ Buildin_avr_nop ( ) እና ውስጠ ግንቡ አቭር delay_cycles () ላሉ ሁሉም ውስጠ-ግንቡ ተግባራት ፕሮቶታይፖችን ይዟል። አንዳንድ አብሮ የተሰሩ የMISRA ታዛዥ ላይሆኑ ይችላሉ። እነዚህ መግለፅ የሚቻለው የ‹‹‹ExpressXCSTRICT_MISRA››ን በማከል ወደ ሰብሳቢው ትዕዛዝ መስመር ነው። አብሮ የተሰሩት እና መግለጫዎቻቸው ቋሚ ስፋት ያላቸውን አይነቶች ለመጠቀም ተዘምነዋል።
3.10. ስሪት 2.20
አዲስ የመሳሪያ ድጋፍ ለሚከተሉት የኤቪአር ክፍሎች ድጋፍ አለ፡ ATTINY1624፣ ATTINY1626 እና ATTINY1627።
የተሻለ የተስተካከለ ድልድል በአቀነባባሪው ውስጥ ያለው ምርጥ የአካል ብቃት እንቅስቃሴ (ቢኤፍኤ) ተሻሽሏል ስለዚህም ክፍሎቹ የተሻለ ማመቻቸትን በሚፈቅድ ቅደም ተከተል እንዲመደቡ ተደርጓል። BFA አሁን የተሰየሙ የአድራሻ ቦታዎችን ይደግፋል እና የውሂብ ጅምርን በተሻለ ሁኔታ ይቆጣጠራል።
የተሻሻለ የሥርዓት ማጠቃለያ የሥርዓት ረቂቅ ማሻሻያዎች አሁን በበርካታ የኮድ ቅደም ተከተሎች ላይ ይከናወናሉ። ይህ ማመቻቸት የኮድ መጠን ሊጨምር የሚችልባቸው ቀደምት ሁኔታዎች የማመቻቸት ኮድ የአገናኝን የቆሻሻ አሰባሰብ ሂደት እንዲያውቅ በማድረግ መፍትሄ ተሰጥቷል።
የኤቪአር ሰብሳቢ አለመኖር የAVR ሰብሳቢው ከአሁን በኋላ ከዚህ ስርጭት ጋር አልተካተተም።
3.11. ስሪት 2.19 (ተግባራዊ የደህንነት መለቀቅ)
ምንም።
3.12. ስሪት 2.10
የኮድ ሽፋን ይህ ልቀት የፕሮጀክት ምንጭ ኮድ ምን ያህል እንደተፈፀመ ለመተንተን የሚያመች የኮድ ሽፋን ባህሪን ያካትታል። እሱን ለማንቃት -mcodecov=ram የሚለውን ተጠቀም። ፕሮግራሙ በሃርድዌርዎ ላይ ከተፈጸመ በኋላ የኮድ ሽፋን መረጃ በመሳሪያው ውስጥ ይሰበሰባል፣ እና ይህ በMPLAB X IDE በኮድ ሽፋን ፕለጊን ሊተላለፍ እና ሊታይ ይችላል። በዚህ ፕለጊን ላይ መረጃ ለማግኘት የ IDE ሰነድን ይመልከቱ። ቀጣይ ተግባራትን ከሽፋን ትንታኔ ለማግለል #ፕራግማ ኖኮድኮቭ ጥቅም ላይ ሊውል ይችላል። በሐሳብ ደረጃ ፕራግማ በ መጀመሪያ ላይ መጨመር አለበት file ያንን ሙሉ ለሙሉ ለማግለል file ከሽፋን ትንታኔ. በአማራጭ፣ _attribute_ (nocodecov)) አንድን የተወሰነ ተግባር ከሽፋን ትንታኔ ለማስቀረት ጥቅም ላይ ሊውል ይችላል።
የመሣሪያ መግለጫ files አዲስ መሣሪያ file avr_chipinfo ይባላል። html በማቀናበሪያ ስርጭቱ የሰነዶች ማውጫ ውስጥ ይገኛል። ይህ file በአቀነባባሪው የሚደገፉ ሁሉንም መሳሪያዎች ይዘረዝራል። የመሳሪያውን ስም ጠቅ ያድርጉ እና ለዚያ መሳሪያ ሁሉንም የተፈቀደ የውቅር ቢት መቼት / ዋጋ ያለው ህመም የሚያሳይ ገጽ ይከፍታል ፣ampሌስ. የሂደት ረቂቅ
የሂደት አብስትራክት ማሻሻያዎች፣የማህበረሰቡን ኮድ የጋራ ብሎኮች የሚተካው ወደዚያ ብሎክ ወደተወጣው ቅጂ የሚደረጉ ጥሪዎች ወደ ማጠናከሪያው ተጨምረዋል። እነዚህ የሚከናወኑት በተለየ አፕሊኬሽን ነው፣ እሱም ደረጃ 2፣ 3 ወይም s ማትባቶችን በሚመርጡበት ጊዜ በአቀናባሪው በራስ-ሰር ይጠራል። እነዚህ ማሻሻያዎች የኮድ መጠንን ይቀንሳሉ፣ ነገር ግን የማስፈጸሚያ ፍጥነት እና የኮድ ማረም ሊቀንስ ይችላል። የሥርዓት ማጠቃለያ አማራጭ -mno-paን በመጠቀም በከፍተኛ የማመቻቸት ደረጃዎች ሊሰናከል ይችላል ወይም ዝቅተኛ የማመቻቸት ደረጃዎች (ፈቃድዎ የሚወሰን) -mpa በመጠቀም ሊነቃ ይችላል። ለአንድ ነገር ሊሰናከል ይችላል file በመጠቀም -mno-pa-on-file=fileስም፣ ወይም ለአንድ ተግባር ተሰናክሏል -mno-pa-on-function = ተግባርን በመጠቀም። በምንጭ ኮድዎ ውስጥ የሥርዓት ማጠቃለያ ለአንድ ተግባር ማሰናከል ይቻላል (nopa) ) ከተግባሩ ፍቺ ጋር ወይም ኖፓ በመጠቀም ወደ መለያ ((ኖፓ፣ ኖይንላይን) የሚሰፋ እና በዚህም የተግባር ውስጠ-ግንኙነት እንዳይከሰት ይከላከላል። እና የተሰለፈ ኮድ ረቂቅ አለ።
የቁልፍ ቢት ድጋፍ በፕራግማ የ#pragma config አሁን የAVR መቆለፊያ ቢትዎችን እና ሌሎች የውቅረት ቢትዎችን ለመለየት ጥቅም ላይ ሊውል ይችላል። avr_chipinfoን ያረጋግጡ። html file (ከላይ የተጠቀሰው) ቅንጅት/ዋጋ ጥንዶች ከዚህ ፕራግማ ጋር ለመጠቀም። አዲስ የመሳሪያ ድጋፍ ለሚከተሉት ክፍሎች AVR28DAl28፣ AVR64DAl28፣ AVR32DA 128 እና AVR48DA 128 ይገኛል።
3.13. ስሪት 2.05
ለባክህ ተጨማሪ ቢት የዚህ አቀናባሪ እና የፍቃድ አስተዳዳሪ የማክኦኤስ ስሪት አሁን ባለ 64-ቢት መተግበሪያ ነው። ይህ አቀናባሪው ያለ ማስጠንቀቂያ መጫኑን እና በቅርብ ጊዜ የ macOS ስሪቶች ላይ መስራቱን ያረጋግጣል።
በፕሮግራም ማህደረ ትውስታ ውስጥ ያሉ ዕቃዎችን ማቀናበር አሁን በ RAM ውስጥ ከመቀመጥ ይልቅ const-ብቁ የሆኑ ነገሮችን በፕሮግራሙ ፍላሽ ማህደረ ትውስታ ውስጥ ማስቀመጥ ይችላል። ኮንስ ቲ-ብቃት ያለው አለምአቀፍ መረጃ በፕሮግራም ፍላሽ ሜሞሪ ውስጥ እንዲከማች ማጠናከሪያው ተስተካክሏል እና ይህ መረጃ ተገቢውን የፕሮግራም-ሜሞሪ መመሪያዎችን በመጠቀም በቀጥታ እና በተዘዋዋሪ ማግኘት ይቻላል ። ይህ አዲስ ባህሪ በነባሪነት ነቅቷል ነገር ግን -mno-const-data-in-progmem አማራጭን በመጠቀም ሊሰናከል ይችላል። ለ avrxmega3 እና avrtiny architectures ይህ ባህሪ አያስፈልግም እና ሁልጊዜም ይሰናከላል፣ ምክንያቱም የፕሮግራም ማህደረ ትውስታ ለእነዚህ መሳሪያዎች በመረጃ አድራሻ ቦታ ላይ ተቀርጿል።
መደበኛ የነጻ ፍቃድ የሌላቸው (ነጻ) የዚህ ማጠናቀሪያ ስሪቶች አሁን እስከ ደረጃ 2 ድረስ ማመቻቸትን ይፈቅዳሉ እና XNUMX ን ጨምሮ። ይህ ምንም እንኳን ተመሳሳይ ባይሆንም መደበኛ ፍቃድን በመጠቀም ከዚህ በፊት ወደነበረው ውፅዓት ይፈቅዳል።
እንኳን በደህና መጡ AVRASM2 ባለ 2-ቢት መሳሪያዎች AVRASM8 ሰብሳቢ አሁን በXC8 ኮምፕሌተር ጫኚ ውስጥ ተካትቷል። ይህ ሰብሳቢ በXC8 አቀናባሪ ጥቅም ላይ አይውልም፣ ነገር ግን በእጅ በተጻፈ የመሰብሰቢያ ምንጭ ላይ ለተመሠረቱ ፕሮጀክቶች ይገኛል።
አዲስ የመሣሪያ ድጋፍ ለሚከተሉት ክፍሎች ATMEGA1608፣ ATMEGA1609፣ ATMEGA808 እና ATMEGA809 ይገኛል።
3.14. ስሪት 2.00
ከፍተኛ ደረጃ ሹፌር አዲስ አሽከርካሪ xc8-cc ተብሎ የሚጠራው አሁን ከቀድሞው avr-gcc ሾፌር እና ከ xc8 ሾፌር በላይ ተቀምጧል እና በታለመው መሳሪያ ምርጫ መሰረት ተገቢውን አጠናቃሪ መደወል ይችላል። ይህ አሽከርካሪ የGCC አይነት አማራጮችን ይቀበላል፣ እነሱም ተተርጉመዋል ወይም እየተሰራ ላለው አጠናቃሪ ይተላለፋሉ። ይህ ሾፌር ተመሳሳይ የትርጉም አማራጮችን ከማንኛውም የAVR ወይም PIC ኢላማ ጋር ለመጠቀም ያስችላል እና ስለዚህ አቀናባሪውን ለመጥራት ይመከራል። ካስፈለገ፣ የድሮው avr-gcc ነጂ በቀደሙት የአቀናባሪ ስሪቶች የተቀበለውን የድሮ ቅጥ አማራጮችን በመጠቀም በቀጥታ ሊጠራ ይችላል።
የጋራ ሲ በይነገጽ ይህ አቀናባሪ አሁን ከMPLAB Common C በይነገጽ ጋር መጣጣም ይችላል፣ይህም የምንጭ ኮድ በሁሉም የMPLAB XC አቀናባሪዎች ላይ በቀላሉ እንዲተላለፍ ያስችለዋል። የ -mext=cci አማራጭ ለብዙ ቋንቋ ቅጥያዎች ተለዋጭ አገባብ በማንቃት ይህንን ባህሪ ይጠይቃል።
አዲስ የቤተ-መጻህፍት ሹፌር አዲስ የቤተ-መጻህፍት ሹፌር ከቀድሞው የPIC ቤተመፃህፍት ባለሙያ እና ከ AVR avr-ar ቤተ-መጻህፍት በላይ ተቀምጧል። ይህ ሹፌር የGCC-archiver-style አማራጮችን ይቀበላል፣ እነሱም ተተርጉመዋል ወይም እየተፈፀመ ላለው የቤተ-መጻህፍት ባለሙያ ይተላለፋሉ። አዲሱ ሹፌር ማንኛውንም የPIC ወይም AVR ቤተ-መጽሐፍት ለመፍጠር ወይም ለማቀናበር ከተመሳሳይ የትርጉም ትምህርት ጋር ተመሳሳይ አማራጮችን ይፈቅዳል። file እና ስለዚህ የቤተመጽሐፍት ባለሙያውን ለመጥራት የሚመከር መንገድ ነው። ለቆዩ ፕሮጀክቶች አስፈላጊ ከሆነ፣ የቀደመው የቤተ-መጻህፍት ባለሙያ በቀደሙት የአቀናባሪ ስሪቶች ውስጥ የተቀበለውን የድሮ-ቅጥ አማራጮችን በመጠቀም በቀጥታ ሊጠራ ይችላል።
የስደት ጉዳዮች
የሚከተሉት ባህሪያት አሁን በተለየ ሁኔታ በአቀናባሪው የተያዙ ናቸው። ኮድ ወደዚህ ማቀናበሪያ ስሪት ካስተላለፉ እነዚህ ለውጦች ወደ ምንጭ ኮድዎ ማሻሻያ ሊፈልጉ ይችላሉ። በንዑስ ርዕሶች ውስጥ ያለው የስሪት ቁጥር የሚከተሉትን ለውጦች ለመደገፍ የመጀመሪያውን የአቀናባሪውን ስሪት ያሳያል።
4.1. ስሪት 2.41
ትክክል ያልሆኑ የfma ተግባራት ተወግደዋል (XC8-2913) የC99 መደበኛ ቤተ-መጽሐፍት fma 0 -የቤተሰብ ተግባራት ( ) ማባዛት-መደመር ወሰን በሌለው ትክክለኛነት ለአንድ ዙር አላሰላም፣ ይልቁንም በእያንዳንዱ ክዋኔ የተከማቸ የማጠጋጋት ስህተቶች። እነዚህ ተግባራት ከቀረበው ቤተ-መጽሐፍት ተወግደዋል።
4.2. ስሪት 2.40
ምንም።
4.3. ስሪት 2.39 (ተግባራዊ የደህንነት መለቀቅ)
ምንም።
4.4. ስሪት 2.36 የለም.
4.5. ስሪት 2.35
የሕብረቁምፊ-ወደ መሠረቶች አያያዝ (XC8-2420) ከሌሎች የXC አቀናባሪዎች ጋር መጣጣምን ለማረጋገጥ እንደ strtol () ወዘተ ያሉ የXC8 ሕብረቁምፊ-ወደ ተግባራት፣ የተገለጸው መሠረት ከ36 በላይ ከሆነ የግቤት ሕብረቁምፊን ለመቀየር አይሞክርም። እና በምትኩ errnoን ወደ EINVAL ያስቀምጣል። ይህ የመሠረት እሴት ሲያልፍ የC ደረጃው የተግባሮቹን ባህሪ አይገልጽም።
ተገቢ ያልሆነ የፍጥነት ማሻሻያዎች ደረጃ 3 ማሻሻያዎችን (-03) በሚመርጡበት ጊዜ የሂደት ማጠቃለያ ማትባቶች ነቅተዋል። እነዚህ ማሻሻያዎች በኮድ ፍጥነት ወጪ የኮድ መጠንን ይቀንሳሉ፣ ስለዚህ መከናወን አልነበረበትም። ይህንን የማመቻቸት ደረጃ የሚጠቀሙ ፕሮጀክቶች በዚህ ልቀት ሲገነቡ የኮድ መጠን እና የአፈፃፀም ፍጥነት ልዩነቶችን ሊመለከቱ ይችላሉ።
የቤተ መፃህፍት ተግባራዊነት የብዙዎቹ መደበኛ ሲ ቤተ-መጽሐፍት ተግባራት ኮድ አሁን የመጣው ከማይክሮቺፕ የተዋሃደ መደበኛ ቤተ-መጽሐፍት ነው፣ ይህም በአንዳንድ ሁኔታዎች በቀድሞው avr-libc ቤተ-መጽሐፍት ከቀረበው ጋር ሲነጻጸር የተለየ ባህሪ ሊያሳይ ይችላል። ለ example፣ ቅርጸት የተሰራለትን ለማብራት ከ1printf flt ቤተ-መጽሐፍት (-1printf_flt አማራጭ) ውስጥ ማገናኘት አስፈላጊ አይሆንም። I0 ለተንሳፋፊ-ቅርጸት መግለጫዎች ድጋፍ. ብልህ I0 የማይክሮ ቺፕ የተዋሃደ መደበኛ ቤተ መፃህፍት ባህሪያት ይህንን አማራጭ ከመደበኛ በላይ ያደርገዋል። በተጨማሪም፣ ለሕብረቁምፊ እና የማስታወሻ ተግባራት (ለምሳሌ strcpy_P () ወዘተ...) በ const strings ላይ በፍላሽ የሚሰሩ የ_P ቅጥያ ልማዶችን መጠቀም አያስፈልግም። የኮንስት-ውሂብ-ውስጥ-ፕሮግራም-ማህደረ ትውስታ ባህሪ ሲነቃ የመደበኛ C ልማዶች (ለምሳሌ strcpy) ከእንደዚህ አይነት ውሂብ ጋር በትክክል ይሰራሉ።
4.6. ስሪት 2.32
ምንም።
4.7. ስሪት 2.31
ምንም።
4.8. ስሪት 2.30
ምንም።
4.1. ስሪት 2.29 (ተግባራዊ የደህንነት መለቀቅ)
ምንም።
4.2. ስሪት 2.20
የዲኤፍፒ አቀማመጥ ተለውጧል አቀናባሪው አሁን በDFPs (የመሣሪያ ቤተሰብ ፓኬጆች) ጥቅም ላይ የሚውል የተለየ አቀማመጥ ይወስዳል። ይህ ማለት አንድ የቆየ DFP ከዚህ ልቀት ጋር ላይሰራ ይችላል፣ እና የቆዩ አቀናባሪዎች የቅርብ ጊዜዎቹን DFPs መጠቀም አይችሉም ማለት ነው።
4.3. ስሪት 2.19 (ተግባራዊ የደህንነት መለቀቅ)
ምንም።
4.4. ስሪት 2.10
ምንም
4.5. ስሪት 2.05
በፕሮግራም ማህደረ ትውስታ ውስጥ ያሉ ዕቃዎችን ያስተውሉ በነባሪ ፣ ብቃት ያላቸው ነገሮች በፕሮግራም ማህደረ ትውስታ ውስጥ ይቀመጣሉ (እንደተገለጸው ቀለም)። ይህ የፕሮጀክትዎን መጠን እና የአፈፃፀም ፍጥነት ይነካል፣ ነገር ግን የ RAM አጠቃቀምን መቀነስ አለበት። ይህ ባህሪ አስፈላጊ ከሆነ -mnoconst-data-in-progmem አማራጭን በመጠቀም ሊሰናከል ይችላል።
4.6. ስሪት 2.00
የማዋቀር ፊውዝ የመሳሪያው ውቅር ፊውዝ አሁን ውቅር ፕራግማ በመጠቀም ፕሮግራም ሊደረግ ይችላል፣ በመቀጠልም የማዋቀር-እሴት ጥንዶች የፊውዝ ሁኔታን ለመለየት፣ ለምሳሌ
#ፕራግማ ውቅር WDTON = አዘጋጅ
#ፕራግማ ማዋቀር BODLEVEL = BODLEVEL_4V3
ፍጹም ነገሮች እና ተግባራት ነገሮች እና ተግባራት አሁን CCI (አድራሻ) ገላጭን በመጠቀም በማህደረ ትውስታ ውስጥ በልዩ አድራሻ ሊቀመጡ ይችላሉ፣ ለምሳሌampላይ:
#ያካትቱ
int foobar_at (0x800100);
ቻር__አት(0x250) getID(int offset) { … }
የዚህ ገላጭ ክርክር መሆን አለበት። የመጀመሪያው ባይት ወይም መመሪያ የሚቀመጥበትን አድራሻ የሚወክል ቋሚ። የ RAM አድራሻዎች 0x800000 ማካካሻ በመጠቀም ይጠቁማሉ። ይህንን ባህሪ ለመጠቀም CCI ን ያንቁ።
አዲስ የማቋረጥ ተግባር አገባብ አቀናባሪው አሁን የC ተግባራት ማቋረጥ ተቆጣጣሪዎች መሆናቸውን ለማመልከት የ CCI _interrupt (num) ገላጭ ይቀበላል። ገላጩ የአቋራጭ ቁጥር ይወስዳል፣ ለምሳሌampላይ:
#ያካትቱ
ባዶ __ማቋረጥ(SPI_STC_vect_num) spi_Isr( ባዶ) { … }
ቋሚ ጉዳዮች
የሚከተሉት በአቀነባባሪው ላይ የተደረጉ እርማቶች ናቸው። እነዚህ በተፈጠረው ኮድ ውስጥ ያሉ ስህተቶችን ሊያስተካክሉ ወይም የአቀናባሪውን አሠራር በተጠቃሚው መመሪያ ወደታሰበው ወይም ወደተገለጸው ሊለውጡ ይችላሉ። በንዑስ አርዕስቶች ውስጥ ያለው የስሪት ቁጥር ለቀጣዮቹ ጉዳዮች ማስተካከያዎችን የያዘውን የመጀመሪያውን አጠናቃሪ ስሪት ያሳያል። በርዕሱ ውስጥ ያሉት በቅንፍ የተቀመጡ መለያዎች የችግሩ መታወቂያ በክትትል ዳታቤዝ ውስጥ ነው። ድጋፍን ማግኘት ከፈለጉ እነዚህ ጠቃሚ ሊሆኑ ይችላሉ።
አንዳንድ መሣሪያ-ተኮር ችግሮች ከመሣሪያው ጋር በተገናኘው በመሣሪያ ቤተሰብ ጥቅል (DFP) ውስጥ እንደተስተካከሉ ልብ ይበሉ። በDFPs ላይ የተደረጉ ለውጦችን መረጃ ለማግኘት እና የቅርብ ጊዜዎቹን ጥቅሎች ለማውረድ የMPLAB ጥቅል አስተዳዳሪን ይመልከቱ።
5.1. ስሪት 2.41
የዶንግሌ ጉዳዮች በ Ventura (XC8-3088) Dongles ላይ ለአቀናባሪው ፈቃድ ለመስጠት ያገለገለው በ macOS Ventura አስተናጋጆች ላይ በትክክል አልተነበበም ፣ ይህም የፍቃድ አሰጣጥ ውድቀቶችን አስከትሏል። በXCLM ፍቃድ አስተዳዳሪ ላይ የተደረጉ ለውጦች ይህንን ችግር ያስተካክላሉ።
የማህደረ ትውስታ ምደባ ትክክል ያልሆነ ምልክት (XC8-2925) መደበኛውን የቤተ መፃህፍት ማህደረ ትውስታ አስተዳደር ተግባራትን (malloc () et al) በመጠቀም SIZE_MAX ባይት (ወይም ከዚህ ጋር የሚቀራረብ እሴት) ለመመደብ መሞከር በስህተት ተሳክቶል። ቀላል ተለዋዋጭ ማህደረ ትውስታ ምደባ አተገባበርን ሲጠቀሙ ከተጠየቀው እገዳ በተጨማሪ ተጨማሪ ባይት እንደሚያስፈልግ ግምት ውስጥ አላስገባም። NULL ጠቋሚ አሁን ይመለሳል እና ስህተት ወደ ENOMEM እንደዚህ ባሉ ሁኔታዎች ይቀናበራል።
ትክክል ያልሆኑ የኤፍኤምኤ ተግባራት ተወግደዋል (XC8-2913) የC99 መደበኛ ላይብረሪ fma () -የቤተሰብ ተግባራት () ) ማባዛት-መደመር ወሰን በሌለው ትክክለኛነት ለአንድ ዙር አላሰላም፣ ይልቁንም በእያንዳንዱ ክዋኔ የተከማቸ የማጠጋጋት ስህተቶች። እነዚህ ተግባራት ከቀረበው ቤተ-መጽሐፍት ተወግደዋል።
የሕብረቁምፊ ልወጣን መጥፎ አያያዝ (XC8-2921፣ XC8-2652) በ strtod Cr ለመለወጥ 'ርዕሰ ጉዳይ ቅደም ተከተል' በአርቢ ቅርጸት ተንሳፋፊ-ነጥብ ቁጥር ሲይዝ እና ከኢ/ኢ ቁምፊ በኋላ ያልተጠበቀ ቁምፊ ሲኖር፣ ከዚያም endptr በቀረበበት አድራሻ ተመድቦለታል። ከኢ/ኢ በኋላ ወደ ገፀ ባህሪው ይጠቁማል፣ እሱ ግን ወደ ኢ/ኢ ባህሪው ራሱ መጠቆም ነበረበት፣ ያ ስላልተለወጠ። ለ example, strtod ("100exx", &ep) 100.00 መመለስ አለበት እና ep ወደ የሕብረቁምፊው "exx" ክፍል ለመጠቆም ያቀናብሩ, ተግባሩ ግን ትክክለኛውን እሴት እየመለሰ ነበር ነገር ግን ep ወደ "xx" የሕብረቁምፊ ክፍል ለማመልከት ያቀናብሩ. .
5.2. ስሪት 2.40
በጣም ዘና ያለ (XCS-2876) የ -mrelax አማራጩን በሚጠቀሙበት ጊዜ አቀናባሪው አንዳንድ ክፍሎችን በአንድ ላይ አልመደበም ነበር፣ በዚህም ምክንያት ያነሰ ጥሩ የኮድ መጠኖች። ይህ ምናልባት አዲሱን የ MUSL ቤተ-መጻሕፍት በሚጠቀም ኮድ ወይም ደካማ ምልክቶችን በመጠቀም ሊሆን ይችላል።
በማስጠንቀቂያ (XC8-2875) ላይ እንደተገለፀው የካርታ ስራ ባህሪ አልተሰናከለም የconst-data-in-config-mappedprogmem ባህሪው በሚነቃው የኮንስት-ውሂብ-ውስጥ-ፕሮግራም ባህሪ ላይ የተመሰረተ ነው። የconst-data-inconfig-mapped-progmem ባህሪው አማራጩን ተጠቅሞ በግልፅ ከነቃ እና የኮንስት-ውሂብ-in-progmem ባህሪው ከተሰናከለ፣የኮንስት-ውሂብ-in-con fig- የማስጠንቀቂያ መልእክት ቢሰጥም የማገናኛ እርምጃው አልተሳካም። የካርታ-ፕሮግራም ባህሪ በራስ-ሰር ተሰናክሏል፣ ይህም ሙሉ በሙሉ ትክክል አልነበረም። የ const-data-in-config-mapped-progmem ባህሪ አሁን በዚህ ሁኔታ ሙሉ በሙሉ ተሰናክሏል።
NVMCTRL (XC8-2848) በትክክል ለመድረስ DFP ይቀየራል በAVR64EA መሳሪያዎች ጥቅም ላይ የዋለው የሩጫ ጊዜ ማስጀመሪያ ኮድ የNVMCTRL መመዝገቢያ በውቅረት ለውጥ ጥበቃ (CCP) ስር መሆኑን እና I0 SFR ን በ const-data-in-configmapped-progmem ወደ ሚጠቀመው ገጽ ማቀናበር አልቻለም የሚለውን ግምት ውስጥ አላስገባም። የማጠናከሪያ ባህሪ. በAVR-Ex_DFP ስሪት 2.2.55 ላይ የተደረጉ ለውጦች የአሂድ ማስጀመሪያ ኮድ በዚህ መዝገብ ላይ በትክክል እንዲጽፍ ያስችለዋል።
DFP ለማስወገድ ለውጦች የፍላሽ ካርታ (XC8-2847) በ AVR128DA28/32/48/64 Silicon Errata (D580000882) ላይ በተዘገበው የፍላሽ-ካርታ መሣሪያ ባህሪ ላይ ለችግሩ መፍትሄ ተተግብሯል። የconst-data-in-config-mapped-progmem compiler ባህሪ ለተጎዱ መሳሪያዎች በነባሪነት አይተገበርም፣ እና ይህ ለውጥ በAVR-Dx_DFP ስሪት 2.2.160 ላይ ይታያል።
በግንባታ ስህተት በ sinhf ወይም coshf (XC8-2834) የ sinhf () ወይም coshf () ቤተ መፃህፍት ተግባራትን ለመጠቀም የተደረገው ሙከራ የአገናኝ ስህተት አስከትሏል ይህም ያልተገለጸ ማጣቀሻን ይገልፃል። የተጠቀሰው የጎደለ ተግባር አሁን በአቀነባባሪ ስርጭት ውስጥ ተካቷል።
በ nopa (XC,8-2833) ስህተቶችን ይገንቡ የ nopa ባህሪን በመጠቀም asm ( )ን በመጠቀም የአሰባሳቢ ስሙን ከተገለጸ ተግባር ጋር መጠቀም ከተሰበሰበው የስህተት መልዕክቶችን ቀስቅሷል። ይህ ጥምረት የማይቻል ነው.
የተለዋዋጭ ተግባር አለመሳካት በጠቋሚ ነጋሪ እሴቶች (XC8-2755፣ XC8-2731) የተለዋዋጭ ነጋሪ እሴት ያላቸው ተግባራት የconst-data-in-progmem ባህሪው ሲነቃ በተለዋዋጭ ነጋሪ እሴት ዝርዝር ውስጥ ባለ 24-ቢት (ሜምክስ ዓይነት) ጠቋሚዎች እንዲተላለፉ ይጠብቃሉ። የመረጃ ማህደረ ትውስታ ጠቋሚ የሆኑ ክርክሮች እንደ ባለ 16-ቢት ነገሮች እየተላለፉ ነበር, ይህም በመጨረሻ ሲነበብ የኮድ ውድቀት ፈጥሯል. የ constdata-in-progmem ባህሪው ሲነቃ ሁሉም ባለ 16-ቢት ጠቋሚዎች ነጋሪ እሴቶች አሁን ወደ 24-ቢት ጠቋሚዎች ተለውጠዋል።
strtoxxx የቤተ-መጽሐፍት ተግባራት እየተሳኩ ነው (XC8-2620) የconst-data-in-progmem ባህሪ ሲነቃ በ strtoxxx ቤተ-መጽሐፍት ውስጥ ያለው የ endptr መለኪያ በፕሮግራም ማህደረ ትውስታ ውስጥ ላልሆኑ የምንጭ ሕብረቁምፊ ክርክሮች በትክክል አልተዘመነም።
ልክ ላልሆኑ ቀረጻዎች ማንቂያዎች (XC8-2612) የኮንስት-ውስጥ ፕሮግራም ባህሪ ከነቃ እና የሕብረቁምፊው አድራሻ በቀጥታ ወደ የውሂብ አድራሻ ቦታ (የኮንስት ማሟያውን መጣል) ከተጣለ አቀናባሪው አሁን ስህተት ያወጣል።ample, (uint 8_t *) "ሰላም አለም!" የኮንስት ዳታ ጠቋሚ ወደ ዳታ አድራሻ ቦታ በግልጽ ሲጣል አድራሻው የማይሰራ ከሆነ ማስጠንቀቂያ ሊሰጥ ይችላል።
ያልታወቁ የኮንስት ዕቃዎች አቀማመጥ (XC8-2408) ያልተፈጠሩ ኮንስት እና ኮንስት ተለዋዋጭ ነገሮች ሁሉንም የፕሮግራማቸውን ማህደረ ትውስታን በሙሉ ወይም በከፊል ወደ የውሂብ አድራሻ ቦታ በሚያሳዩ መሳሪያዎች ላይ በፕሮግራም ማህደረ ትውስታ ውስጥ አልተቀመጡም. ለእነዚህ መሳሪያዎች, እንደነዚህ ያሉ ነገሮች አሁን በፕሮግራም ማህደረ ትውስታ ውስጥ ተቀምጠዋል, ይህም አሠራራቸው ከሌሎች መሳሪያዎች ጋር የሚጣጣም ነው.
5.3. ስሪት 2.39 (ተግባራዊ የደህንነት መለቀቅ)
ምንም።
5.4. ስሪት 2.36
ሲዘገይ ስህተት (XC8-2774) በነባሪው ላይ ያሉ ጥቃቅን ለውጦች የነጻ ሁነታ ማመቻቸት የኦፔራ አገላለጾችን ወደ አብሮገነብ ተግባራት መዘግየት የማያቋርጥ መታጠፍ ከልክለዋል፣ በዚህም ምክንያት እንደ ቋሚ ያልሆኑ ተደርገው እንዲታዩ እና ስህተቱን እንዲቀሰቀስ አድርጓል፡ builtin avr delay_cycles የሰዓት ኢንቲጀር የማያቋርጥ ይጠብቃል።
5.5. ስሪት 2.35
ቀጣይነት ያለው ድልድል _at (XC8-2653) በመጠቀም ተመሳሳይ ስም ባለው ክፍል ውስጥ እና _at ()ን በመጠቀም የበርካታ ነገሮች ቦታዎች ተከታታይ ምደባ በትክክል አልሰራም። ለ exampላይ:
const ቻር arr1 [] __ባህሪ__((ክፍል (“.mysec”))) __at (0x500) = {0xAB, 0xCD};
const ቻር arr2 [] __ባህሪ__((ክፍል (“.mysec”))) = {0xEF፣ 0xFE};
ከ arr2 በኋላ ወዲያውኑ arr1 ማስቀመጥ ነበረበት.
የክፍል መጀመሪያ አድራሻዎችን በመግለጽ (XC8-2650) የ -W1፣ -ሴክሽን-ጅምር አማራጭ በተመረጠው አድራሻ ላይ ክፍሎችን ማስቀመጥ በፀጥታ አልቻለም። ይህ ጉዳይ ለማንኛውም ብጁ-ስም ክፍሎች ተስተካክሏል; ሆኖም ግን, ለማንኛውም መደበኛ ክፍሎች አይሰራም, ለምሳሌ . ጽሑፍ ወይም. bss, ይህም -W1, -T አማራጭን በመጠቀም መቀመጥ አለበት.
ዘና ባለበት ጊዜ ሊንከር ይበላሻል (XC8-2647) -mrelax ማመቻቸት ሲነቃ እና ካለው ማህደረ ትውስታ ጋር የማይጣጣሙ ኮድ ወይም ዳታ ክፍሎች ሲኖሩ ፣ ማገናኛው ተበላሽቷል። አሁን፣ እንደዚህ ባለ ሁኔታ፣ በምትኩ የስህተት መልእክቶች ይወጣሉ።
ምንም የማይወድቅ-ተመለስ (XC8-2646) የ -nofallback አማራጭ በትክክል አልተተገበረም ወይም አልተመዘገበም። ይህ አሁን ሊመረጥ የሚችለው ማቀናበሪያው ያለፈቃድ ከሆነ ወደ ዝቅተኛ የማመቻቸት መቼት እንደማይወድቅ እና በምትኩ ስህተት እንደሚፈጥር ለማረጋገጥ ነው።
ተገቢ ያልሆኑ የፍጥነት ማሻሻያዎች (X03-2637) ደረጃ 3 ማሻሻያዎችን (-03) በሚመርጡበት ጊዜ የሂደት ማጠቃለያ ማትባቶች ነቅተዋል። እነዚህ ማሻሻያዎች በኮድ ፍጥነት ወጪ የኮድ መጠንን ይቀንሳሉ፣ ስለዚህ መከናወን አልነበረበትም።
መጥፎ EEPROM መዳረሻ (XC8-2629) የ የ-mconst-data-in-progmem አማራጩ ሲነቃ (ነባሪው ሁኔታ ነው) በ Xmega መሳሪያዎች ላይ የ eeprom_read_block መደበኛ ስራ በትክክል አልሰራም, በዚህም ምክንያት የ EEPROM ማህደረ ትውስታ በትክክል አይነበብም.
ልክ ያልሆነ የማህደረ ትውስታ ድልድል (XC8-2593፣ XC8-2651) መቼ -Ttext ወይም -Tdata አገናኝ አማራጭ (ለምሳሌampየ -vl ነጂ አማራጭን በመጠቀም ማለፍ) ይገለጻል ፣ ተዛማጅ ጽሑፍ / የውሂብ ክልል አመጣጥ ዘምኗል። ነገር ግን የመጨረሻው አድራሻ በዚህ መሰረት አልተስተካከለም, ይህም ክልሉ ከታለመው መሳሪያ ማህደረ ትውስታ መጠን በላይ እንዲያልፍ ሊያደርግ ይችላል.
ከመጠን በላይ በተሰጠው ተግባር (XC8-2580) ብልሽት ማቋረጫ፣ ሲግናል ወይም nmi ባህሪያትን በመጠቀም አንድ ተግባር ከታወጀ አቀናባሪው ተበላሽቷል፣ ለምሳሌ አይነታ ((ሲግናል፣ማቋረጥ))።
ልክ ያልሆነ ATtiny ማቋረጥ ኮድ (XC8-2465) ለATtiny መሳሪያዎች ሲገነቡ እና ማመቻቸት ተሰናክሏል (-00)፣ የማቋረጥ ተግባራት ኦፔራ እና ከክልል ሰብሳቢ መልእክቶች ውጭ ቀስቅሰው ሊሆን ይችላል።
ያልተላለፉ አማራጮች (XC8-2452) አማራጩን ከበርካታ፣ በነጠላ ሰረዝ የተለዩ የአገናኝ አማራጮችን ሲጠቀሙ፣ ሁሉም የአገናኝ አማራጮች ወደ ማገናኛው አልተላለፉም።
የፕሮግራም ማህደረ ትውስታን (X03-2450) በተዘዋዋሪ የማንበብ ስህተት በአንዳንድ አጋጣሚዎች አቀናባሪው ሁለት ባይት እሴትን ከአመልካች ወደ ፕሮግራም ማህደረ ትውስታ ሲያነቡ ውስጣዊ ስህተት (የማይታወቅ insn) ፈጥሯል።
5.6. ስሪት 2.32
ሁለተኛ መዳረሻ ቤተ-መጽሐፍት አልተሳካም (XC8-2381) የ xc8-ar የዊንዶውስ ስሪት በመጥራት ላይ። .exe የላይብረሪ መዝገብ ቤት ለሁለተኛ ጊዜ ያለውን የቤተ-መጻህፍት መዝገብ ለማግኘት የስህተት መልእክት መሰየም ባለመቻሉ ተስኖት ሊሆን ይችላል።
5.7. ስሪት 2.31
ያልተገለፀ አቀናባሪ አለመሳካቶች (XC8-2367) ሲስተሙ ጊዜያዊ ዳይሬክተሩ ነጥቡን ወደ ሚያካትት ዱካ የተቀናበሩ የዊንዶው መድረኮች ላይ ሲሰሩ። ቁምፊ፣ አቀናባሪው መፈፀም አቅቶት ሊሆን ይችላል።
5.8. ስሪት 2.30
ዓለም አቀፋዊ መለያዎች ከተዘረዘሩ በኋላ (XC8-2299) ተሳስተዋል በእጅ የተጻፈ የመሰብሰቢያ ኮድ አለምአቀፍ መለያዎችን በስብሰባ ቅደም ተከተሎች ውስጥ የሚያስቀምጠው በሂደት ረቂቅ ተብራርቷል በትክክል ተቀይሮ ላይሆን ይችላል።
ዘና የሚያደርግ ብልሽት (XC8-2287) የጭራ ዝላይ የመዝናኛ ማመቻቸት በክፍሉ መጨረሻ ላይ ያልነበሩትን የሬት መመሪያዎችን ለማስወገድ ሲሞከር -mrelax የሚለውን አማራጭ በመጠቀም ማገናኛው እንዲሰበር አድርጎት ሊሆን ይችላል።
መለያዎችን እንደ እሴቶች ሲያሻሽሉ ብልሽት (XC8-2282) የ‹‹Labels as values› ጂኤንዩ ሲ ቋንቋ ቅጥያ በመጠቀም ኮድ የሥርዓት አብስትራክት ማሻሻያዎችን እንዲበላሽ ምክንያት ሊሆን ይችላል፣ በተዘረዘረው VMA ክልል የመጠገን ስህተት ነው።
እንዲህ አይደለም const (XC8-2271) የ st rstr () እና ሌሎች ተግባራት ከ -mconst-data-inprogmem ባህሪው ሲሰናከል መደበኛ ያልሆነውን የኮንስት ማሟያ በተመለሱ የሕብረቁምፊ ጠቋሚዎች ላይ አይግለጽ። በ avrxmega3 እና avrtiny መሳሪያዎች ይህ ባህሪ በቋሚነት የነቃ መሆኑን ልብ ይበሉ።
የጠፉ ማስጀመሪያ (XC8-2269) ሲበዛ በትርጉም ክፍል ውስጥ አንድ ተለዋዋጭ በአንድ ክፍል ውስጥ ተቀምጧል ( _ክፍል ወይም _ባህሪ_ (ክፍል) በመጠቀም) ፣ እና የመጀመሪያው እንደዚህ ያለ ተለዋዋጭ ዜሮ ጅምር ነበር ወይም ጀማሪ አልነበረውም ፣ በተመሳሳይ የትርጉም ክፍል ውስጥ ለተቀመጡ ሌሎች ተለዋዋጮች ጀማሪዎች። በተመሳሳይ ክፍል ውስጥ ጠፍተዋል.
5.1. ስሪት 2.29 (ተግባራዊ የደህንነት መለቀቅ)
ምንም።
5.2. ስሪት 2.20
ከረጅም ትዕዛዞች ጋር ስህተት (XC8-1983) የAVR ዒላማን ሲጠቀሙ፣ አቀናባሪው ቆሞ ሊሆን ይችላል። file ስህተት አልተገኘም, የትእዛዝ መስመሩ እጅግ በጣም ትልቅ ከሆነ እና ልዩ ቁምፊዎችን ከያዘ እንደ ጥቅሶች, የኋላ ሽፋኖች, ወዘተ.
ያልተመደበ የሮዳታ ክፍል (XC8-1920) የAVR አገናኝ ለ avrxmega3 እና avrtiny architectures ሲገነባ ለብጁ የሮዳታ ክፍሎች ማህደረ ትውስታን መመደብ አልቻለም፣ ይህም የማህደረ ትውስታ መደራረብ ስህተቶችን ሊያመጣ ይችላል።
5.3. ስሪት 2.19 (ተግባራዊ የደህንነት መለቀቅ)
ምንም።
5.4. ስሪት 2.10
የማዛወር አለመሳካቶች (XC8-1891) በጣም ጥሩው የሚመጥን አመዳደብ የማስታወሻ ‹ቀዳዳዎች›ን ከአገናኝ ዘና በኋላ በክፍሎች መካከል ትቶ ነበር። ከማህደረ ትውስታ መሰባበር ባሻገር፣ ከፒሲ አንጻራዊ መዝለሎች ወይም ጥሪዎች ከክልል ውጪ የሚሆኑ ጥሪዎችን በሚመለከት የአገናኝ ማዛወር ውድቀቶችን የመኖር እድልን ጨምሯል።
በመዝናኛ ያልተለወጡ መመሪያዎች (XC8-1889) ሊንከር ዘና ማለት ዘና ከተባለ ኢላማው ሊደረስበት የሚችል ለመዝለል ወይም የጥሪ መመሪያዎች አልተፈጠረም።
የጠፋ ተግባራዊነት (XC8E-388) በርካታ ትርጓሜዎች ከ እንደ clock_div_t እና clock_prescale set () ያሉ፣ ATmega324PB፣ ATmega328PB፣ ATtiny441 እና ATtiny841 ን ጨምሮ ለመሣሪያዎች አልተገለጹም።
ማክሮዎች ይጎድላሉ ቅድመ ፕሮሰሰር ማክሮዎች _XC8_MODE_፣ _XC8_VERS ION፣ _XC እና _XC8 በአቀነባባሪው በቀጥታ አልተገለፁም። እነዚህ አሁን ይገኛሉ።
5.5. ስሪት 2.05
የውስጥ ማጠናከሪያ ስህተት (XC8-1822) በዊንዶውስ ስር በሚገነቡበት ጊዜ ኮድን ሲያሻሽሉ የውስጥ ማቀናበሪያ ስህተት ሊፈጠር ይችላል።
የ RAM ብዛት አልተገኘም (XC8-1800፣ XC8-1796) ካለው RAM በላይ የሆኑ ፕሮግራሞች በአንዳንድ ሁኔታዎች በአቀናባሪው ስላልተገኙ፣ ይህም የሩጫ ጊዜ ኮድ ውድቀት አስከትሏል።
የተተወ ፍላሽ ማህደረ ትውስታ (XC8-1792) ለ avrxmega3 እና avrtiny መሳሪያዎች፣ የፍላሽ ማህደረ ትውስታው ክፍሎች በMPLAB X ፕሮግራም ሳይዘጋጁ ቀርተው ሊሆን ይችላል። አይዲኢ
ዋናውን (XC8-1788) ማስፈጸም አለመቻል በአንዳንድ ሁኔታዎች ፕሮግራሙ ዓለም አቀፋዊ ተለዋዋጮች በሌሉባቸው ሁኔታዎች፣ የሩጫ ጊዜ ማስጀመሪያ ኮድ አልወጣም እና ዋናው () ተግባሩ በጭራሽ አልደረሰም።
የተሳሳተ የማህደረ ትውስታ መረጃ (XC8-1787) ለ avrxmega3 እና avrtiny መሳሪያዎች፣ የ avr-size ፕሮግራም ተነባቢ-ብቻ መረጃ ከፕሮግራም ማህደረ ትውስታ ይልቅ RAM እየበላ መሆኑን ሪፖርት እያደረገ ነበር።
የተሳሳተ የፕሮግራም ማህደረ ትውስታ ንባብ (XC8-1783) በመረጃ አድራሻ ቦታ ላይ የፕሮግራም ማህደረ ትውስታ ለተሰየመባቸው መሳሪያዎች እና የፕሮጀክት ማክሮ/ባህሪን በመጠቀም ዕቃዎችን የሚወስኑ ፕሮጄክቶች እነዚህን ነገሮች ከተሳሳተ አድራሻ አንብበው ሊሆን ይችላል።
ውስጣዊ ስህተት ከባህሪያት (XC8-1773) ጠቋሚ ነገሮችን ከገለጽክ ውስጣዊ ስህተት ተከስቷል።
_በ() ወይም አይነታ() በጠቋሚ ስም እና በተጠቀሰው አይነት መካከል ያሉ ቶከኖች፣ ለምሳሌampሌ፣ ቻር *
_በ (0x800150) ሲፒ; እንደዚህ አይነት ኮድ ካጋጠመ አሁን ማስጠንቀቂያ ተሰጥቷል።
ዋናውን (XC8-1780፣ XC8-1767፣ XC8-1754) ማስፈጸም አለመቻል የEEPROM ተለዋዋጮችን መጠቀም ወይም የ config pragmaን በመጠቀም ፊውዝ መግለፅ በዋናው () ላይ ከመድረሱ በፊት ትክክል ያልሆነ የውሂብ ማስጀመሪያ እና/ወይም የፕሮግራም አፈፃፀምን በሂደት ማስጀመሪያ ኮድ ተቆልፎ ሊሆን ይችላል።
ፊውዝ ስህተት በትናንሽ መሳሪያዎች (XC8-1778፣ XC8-1742) የ attiny4/5/9/10/20/40 መሳሪያዎቹ በራሳቸው አርዕስት ላይ የተገለጸ የተሳሳተ የ fuse ርዝመት ነበራቸው fileፊውዝ የሚወስን ኮድ ለመገንባት በሚሞከርበት ጊዜ ወደ ማገናኛ ስህተቶች የሚመራ።
መከፋፈል ስህተት (XC8-1777) የሚቆራረጥ ክፍልፋይ ስህተት ተስተካክሏል።
ሰብሳቢ ብልሽት (XC8-1761) አቀናባሪው በኡቡንቱ 18 ስር ሲሰራ የ avr-as assembler ወድቆ ሊሆን ይችላል።
ያልተጸዱ ነገሮች (XC8-1752) ያልታወቀ የማይንቀሳቀስ የማከማቻ ጊዜ የሚቆዩ ነገሮች በአሂድ ማስጀመሪያ ኮድ ያልተጸዱ ሊሆኑ ይችላሉ።
የሚጋጭ የመሣሪያ ዝርዝር መግለጫ ችላ ተብሏል (XC8-1749) ብዙ የመሣሪያ ዝርዝር አማራጮች ጥቅም ላይ ሲውሉ እና የተለያዩ መሳሪያዎችን ሲጠቁሙ አቀናባሪው ስህተት እየፈጠረ አልነበረም።
የማህደረ ትውስታ መበላሸት በክምር (XC8-1748) የ የ_heap_start ምልክት በስህተት እየተዘጋጀ ነበር፣ይህም ምክንያት ተራ ተለዋዋጮች በክምር ሊበላሹ ይችላሉ።
የአገናኝ ማዛወር ስህተት (XC8-1739) ኮድ rjmp ሲይዝ ወይም ዒላማው በትክክል በ4k ባይት ሲጠራ የአገናኝ ማዛወር ስህተት ሊወጣ ይችላል።
5.6. ስሪት 2.00
ምንም።
የታወቁ ጉዳዮች
የሚከተሉት በአቀነባባሪው አሠራር ውስጥ ያሉ ገደቦች ናቸው. እነዚህ አጠቃላይ የኮድ ገደቦች ወይም በተጠቃሚው መመሪያ ውስጥ ካለው መረጃ መዛባት ሊሆኑ ይችላሉ። በርዕሱ ውስጥ በቅንፍ (ቶች) ውስጥ ያሉት መለያዎች በክትትል ዳታቤዝ ውስጥ የችግሩ መታወቂያ ናቸው። ድጋፍን ማነጋገር ከፈለጉ ይህ ጠቃሚ ሊሆን ይችላል። እነዚያ መለያዎች የሌላቸው እቃዎች ሞዲ ኦፔራንዲን የሚገልጹ እና በቋሚነት በስራ ላይ ሊቆዩ የሚችሉ ገደቦች ናቸው።
6.1. MPLAB X አይዲኢ ውህደት
MPLAB አይዲኢ integration Compiler ከMPLAB IDE ጥቅም ላይ የሚውል ከሆነ ኮምፕሌተርን ከመጫንዎ በፊት MPLAB IDE መጫን አለብዎት።
6.2. ኮድ ማመንጨት
Segfault ከሴክሽን-መልሕቅ አማራጮች (XC8-3045) ተግባራትን ከተለዋዋጭ ነጋሪ እሴት ዝርዝሮች ጋር የሚገልጽ እና የ -fsection-anchors አማራጭን የሚጠቀም ፕሮግራም የውስጥ ማጠናከሪያ ስህተት አስነስቶ ሊሆን ይችላል፡ የመከፋፈል ስህተት።
የማረም መረጃ አልተመሳሰለም (XC8-2948) የአገናኝ ዘና ማመቻቸት መመሪያዎችን ሲቀንስ (ለምሳሌampመመሪያን ለመጥራት ጥሪ) በአንድ ክፍል ውስጥ ከአንድ በላይ የመቀነስ ክዋኔ ሲኖር የካርታ ስራዎችን ለመጥራት የምንጭ መስመር ሳይመሳሰል ላይቆይ ይችላል።
ከዚህ በታች ባለው የቀድሞample፣ ለአንፃራዊ ጥሪዎች ዘና ብለው የሚጨርሱ ሁለት ጥሪዎች ወደ foo አሉ።
PA የማህደረ ትውስታ ድልድል አለመሳካት (XC8-2881) የሂደት አብስትራክሽን አመቻቾችን ሲጠቀሙ፣ ምንም እንኳን ፕሮግራሙ ካለው ቦታ ጋር መጣጣም ቢችልም የኮድ መጠን በመሳሪያው ላይ ካለው የፕሮግራም ማህደረ ትውስታ መጠን ጋር ሲቃረብ ማገናኛው የማህደረ ትውስታ ድልድል ስህተቶችን ሪፖርት ሊያደርግ ይችላል።
በጣም ብልጥ አይደለም Smart-I0 (XC8-2872) የኮንስት-ዳታ-በፕሮግራም ባህሪው ከተሰናከለ ወይም መሣሪያው ሁሉንም ፍላሽ በመረጃ ማህደረ ትውስታ ውስጥ ከተቀየረ የኮምፒዩተሩ ስማርት-አዮ ባህሪ ትክክለኛ ነገር ግን ለ snprint f ተግባር ንዑስ-ምርጥ ኮድ ያመነጫል።
ያነሰ ብልህ ስማርት-አይ0 (XC8-2869) የ -flto እና -fno-builtin አማራጮች ሁለቱም ጥቅም ላይ ሲውሉ የአቀናባሪው ስማርት-አዮ ባህሪ ትክክለኛ ግን ንዑስ ኮድ ይፈጥራል።
እጅግ በጣም ጥሩ ተነባቢ-ብቻ ውሂብ አቀማመጥ (XC8-2849) ማገናኛው በአሁኑ ጊዜ ስለ APPCODE እና APPDATA ማህደረ ትውስታ ክፍሎች፣ ወይም [ምንም-ማንበብ-እያለ-መፃፍ-ማስታወሻ ክፍሎችን አያውቅም። በውጤቱም፣ ማገናኛው ተነባቢ-ብቻ ውሂብን በማይመች የማህደረ ትውስታ ቦታ ላይ የመመደብ እድሉ ትንሽ ነው። የconst-data-in-progmem ባህሪው ከነቃ፣በተለይ የኮንስት-ውሂብ-በማዋቀር-ካርታ-ፕሮግራም ባህሪው ከነቃ፣የተሳሳተ ውሂብ የማግኘት እድሉ ይጨምራል። አስፈላጊ ከሆነ እነዚህ ባህሪያት ሊሰናከሉ ይችላሉ.
ነገር file የማስኬጃ ቅደም ተከተል (XC8-2863) የነገሮች ቅደም ተከተል files የሚካሄደው በአገናኝ መንገዱ በሂደት ረቂቅ ማሻሻያዎችን (-mpa አማራጭ) አጠቃቀም ላይ በመመስረት ሊለያይ ይችላል። ይህ በበርካታ ሞጁሎች ውስጥ ደካማ ተግባራትን የሚገልጽ ኮድ ብቻ ነው የሚነካው።
የአገናኝ ስህተት ከፍፁም (XC8-2777) በ RAM መጀመሪያ ላይ አንድ ነገር ፍጹም በሆነ አድራሻ ከተሰራ እና ያልታወቁ ነገሮችም ሲገለጹ የአገናኝ ስህተት ሊፈጠር ይችላል።
አጭር የማንቂያ መታወቂያዎች (XC8-2775) ለ ATA5700/2 መሳሪያዎች የPHIDO/1 መዝገቦች ከ16 ቢት ስፋት ይልቅ በ32 ቢት ስፋት ብቻ ይገለፃሉ።
ምልክት ሲደውሉ የሊንከር ብልሽት (XC8-2758) ምንጩ ኮድ -cc., -de f sym linker አማራጭን በመጠቀም የተገለጸ ምልክት ሲጠራ -mrelax ነጂ አማራጭ ጥቅም ላይ ከዋለ ማገናኛው ሊበላሽ ይችላል።
ትክክል ያልሆነ ጅምር (XC8-2679) እዚያ ለአንዳንድ አለምአቀፍ/የማይንቀሳቀሱ ባይት መጠን ያላቸው ነገሮች የመጀመሪያ እሴቶች በመረጃ ማህደረ ትውስታ ውስጥ የሚቀመጡበት እና ተለዋዋጮቹ በሂደት ላይ በሚገኙበት መካከል ያለው ልዩነት ነው።
መጥፎ ቀጥተኛ ያልሆኑ የተግባር ጥሪዎች (XC8-2628) በአንዳንድ አጋጣሚዎች፣ እንደ መዋቅር አካል በሆነ የተግባር ጠቋሚ በኩል የተደረጉ የተግባር ጥሪዎች ሊሳኩ ይችላሉ።
strtof ለሄክሳዴሲማል ተንሳፋፊ (XC8-2626) ዜሮን ይመልሳል የቤተ መፃህፍቱ ተግባራት strtof et al እና scanf ( ) et al፣ ሁልጊዜም ገላጭን የማይገልጽ ሄክሳዴሲማል ተንሳፋፊ ነጥብ ቁጥርን ወደ ዜሮ ይቀይራል። ለ exampላይ:
strtof ("Oxl", & endptr);
እሴቱን 0 ይመልሳል እንጂ አይ.
ትክክል ያልሆነ ቁልል አማካሪ መልእክት (XC8-2542፣ XC8-2541) በአንዳንድ አጋጣሚዎች የቁልል አማካሪ ማስጠንቀቂያ ስለ ድግግሞሽ ወይም ጥቅም ላይ ያልዋለ ቁልል (ምናልባትም በአሎካ() አጠቃቀም በኩል አይወጣም።
በተባዛ የማቋረጥ ኮድ (XC8-2421) አለመሳካት ከአንድ በላይ የማቋረጫ ተግባር አንድ አይነት አካል ካላቸው፣ ማቀናበሪያው ለአንድ የማቋረጫ ተግባር ሌላውን ለመጥራት ውጤቱ ሊኖረው ይችላል። ይህ ሁሉንም በጥሪ የተዘጉ መዝገቦችን ሳያስፈልግ እንዲቆጥቡ ያደርጋል፣ እና ማቋረጦች የሚነቁት የአሁኑ ማቋረጥ ተቆጣጣሪው ገለጻ ከመጀመሩ በፊት ነው፣ ይህም ወደ ኮድ ውድቀት ሊያመራ ይችላል።
የተሳሳተ የዲኤፍፒ መንገድ (XC8-2376) ያለው መጥፎ ውጤት አቀናባሪው ትክክል ባልሆነ የዲኤፍፒ መንገድ እና 'spec' ከተጠራ file ለተመረጠው መሣሪያ አለ፣ አቀናባሪው የጎደለውን መሣሪያ የቤተሰብ ጥቅል ሪፖርት አያደርግም እና በምትኩ 'spec'ን እየመረጠ አይደለም። fileወደ ልክ ያልሆነ ውጤት ሊያመራ ይችላል። 'ስፔክ' files ከተከፋፈሉት DFPs ጋር ወቅታዊ ላይሆን ይችላል እና ከውስጥ ማጠናከሪያ ሙከራ ጋር ብቻ ለመጠቀም የታሰቡ ናቸው።
የማህደረ ትውስታ መደራረብ አልተገኘም (XC8-1966) ማጠናቀቂያው በአድራሻ (በ _at ()) እና በክፍል () ገላጭ እና ከተመሳሳዩ አድራሻ ጋር የተገናኙ ዕቃዎችን ፍፁም የተደረጉ ነገሮችን የማስታወሻ መደራረብ እያጣራ አይደለም።
በቤተ መፃህፍት ተግባራት እና _memx (XC8-1763) አለመሳካት libgcc ተንሳፋፊ ተግባራት ተብሎ የሚጠራው በmemx አድራሻ ቦታ ላይ ካለው ክርክር ጋር ሊሳካ ይችላል። የቤተ መፃህፍቱ ልማዶች ከአንዳንድ የC ኦፕሬተሮች እንደሚጠሩ ልብ ይበሉ፣ ስለዚህ፣ ለምሳሌample፣ የሚከተለው ኮድ ተጎድቷል፡-
መመለስ regFloatVar> memxFloatVar;
የተወሰነ የlibgcc ትግበራ (AVRTC-731) ለATTiny4/5/9/10/20/40 ምርቶች፣ በlibgcc ውስጥ ያለው መደበኛ የC/Math ላይብረሪ ትግበራ በጣም የተገደበ ነው ወይም የለም።
የፕሮግራም የማስታወስ ገደቦች (AVRTC-732) ከ 128 ኪ.ባ በላይ የሆኑ የፕሮግራም ትውስታ ምስሎች በመሳሪያው ሰንሰለት ይደገፋሉ; ሆኖም ግን የ-mre lax አማራጭ ጥቅም ላይ በሚውልበት ጊዜ የሚፈለጉትን የተግባር ፍንጮችን ከማመንጨት ይልቅ ዘና ያለ እና አጋዥ የሆነ የስህተት መልእክት ሳይኖር ሊንክነር ፅንስ ማስወረድ የሚታወቅባቸው አጋጣሚዎች አሉ።
የቦታ ገደቦች (AVRTC-733) የተሰየሙ የአድራሻ ቦታዎች በመሳሪያ ሰንሰለቱ ይደገፋሉ፣ በተጠቃሚው መመሪያ ክፍል ውስጥ በተጠቀሱት ገደቦች መሠረት ልዩ ዓይነት ብቃቶች።
የሰዓት ዞኖች The የቤተ መፃህፍት ተግባራት GMT ን ይወስዳሉ እና የአካባቢ የሰዓት ሰቆችን አይደግፉም ፣ ስለሆነም የአካባቢ ሰዓት () ከ gmtime () ጋር በተመሳሳይ ጊዜ ይመለሳል ፣ ለምሳሌampለ.
file:///Applications/microchip/xc8/v2.41/docs/Readme_XC8_for_AVR.htm
ሰነዶች / መርጃዎች
![]() |
MICROCHIP MPLAB XC8 C የማጠናከሪያ ልማት ሶፍትዌር [pdf] የባለቤት መመሪያ MPLAB XC8 C፣ MPLAB XC8 C Compiler Development Software፣ Compiler Development Software፣ Development Software፣ Software |