កម្មវិធីចងក្រង MICROCHIP MPLAB XC8 C
ឯកសារនេះមានព័ត៌មានសំខាន់ៗដែលទាក់ទងនឹងឧបករណ៍ចងក្រង MPLAB XC8 C នៅពេលកំណត់គោលដៅឧបករណ៍មីក្រូជីប AVR ។
សូមអានវាមុនពេលដំណើរការកម្មវិធីនេះ។ សូមមើលការចេញផ្សាយការចងក្រង MPLAB XC8 សម្រាប់ឯកសារ PIC ប្រសិនបើអ្នកកំពុងប្រើឧបករណ៍ចងក្រងសម្រាប់ឧបករណ៍ PIC 8 ប៊ីត។
ជាងview
សេចក្តីផ្តើម
ការចេញផ្សាយកម្មវិធីចងក្រង Microchip MPLAB® XC8 C នេះមានលក្ខណៈពិសេសថ្មីៗជាច្រើន ការជួសជុលកំហុស និងការគាំទ្រឧបករណ៍ថ្មី។
កាលបរិច្ឆេទសាងសង់
កាលបរិច្ឆេទបង្កើតជាផ្លូវការនៃកំណែចងក្រងនេះគឺថ្ងៃទី 3 ខែកក្កដា ឆ្នាំ 2022។
កំណែមុន។
កំណែកម្មវិធីចងក្រង MPLAB XC8 C ពីមុនគឺ 2.39 ដែលជាកម្មវិធីចងក្រងសុវត្ថិភាពមុខងារដែលបានបង្កើតឡើងនៅថ្ងៃទី 27 ខែមករា ឆ្នាំ 2022។ កម្មវិធីចងក្រងស្តង់ដារមុនគឺកំណែ 2.36 ដែលបានសាងសង់នៅថ្ងៃទី 27 ខែមករា ឆ្នាំ 2022។
សៀវភៅណែនាំសុវត្ថិភាពមុខងារ
សៀវភៅណែនាំសុវត្ថិភាពមុខងារសម្រាប់អ្នកចងក្រង MPLAB XC មាននៅក្នុងកញ្ចប់ឯកសារ នៅពេលអ្នកទិញអាជ្ញាប័ណ្ណសុវត្ថិភាពមុខងារ។
អាជ្ញាប័ណ្ណសមាសភាគ និងកំណែ
MPLAB® XC8 C Compiler សម្រាប់ឧបករណ៍ AVR MCUs ត្រូវបានសរសេរ និងចែកចាយក្រោម GNU General Public License (GPL) ដែលមានន័យថា ប្រភពកូដរបស់វាត្រូវបានចែកចាយដោយសេរី និងអាចរកបានជាសាធារណៈ។ កូដប្រភពសម្រាប់ឧបករណ៍នៅក្រោម GNU GPL អាចត្រូវបានទាញយកដាច់ដោយឡែកពី Microchip webគេហទំព័រ។ អ្នកអាចអាន GNU GPL នៅក្នុង file បានដាក់ឈ្មោះថតរងនៃថតដំឡើងរបស់អ្នក។ ការពិភាក្សាទូទៅអំពីគោលការណ៍ដែលស្ថិតនៅក្រោម GPL អាចត្រូវបានរកឃើញនៅទីនេះ។ លេខកូដជំនួយត្រូវបានផ្តល់ជូនសម្រាប់បឋមកថា files, linker scripts, និង runtime libraries គឺជាកូដកម្មសិទ្ធិ និងមិនត្រូវបានគ្របដណ្តប់ក្រោម GPL ទេ។
កម្មវិធីចងក្រងនេះគឺជាការអនុវត្តន៍ GCC កំណែ 5.4.0, binutils កំណែ 2.26 និងប្រើ avr-libc កំណែ 2.0.0 ។
តម្រូវការប្រព័ន្ធ
កម្មវិធីចងក្រង MPLAB XC8 C និងកម្មវិធីផ្តល់អាជ្ញាប័ណ្ណដែលវាប្រើប្រាស់មានសម្រាប់ប្រព័ន្ធប្រតិបត្តិការជាច្រើន រួមទាំងកំណែ 64 ប៊ីតដូចខាងក្រោម៖ ការបោះពុម្ពវិជ្ជាជីវៈរបស់ Microsoft Windows 10; អ៊ូប៊ុនទូ 18.04; និង macOS 10.15.5 ។ Binaries សម្រាប់ Windows ត្រូវបានចុះហត្ថលេខាដោយកូដ។ ប្រព័ន្ធគោលពីរសម្រាប់ mac OS ត្រូវបានចុះហត្ថលេខាដោយកូដ និងកំណត់ចំណាំ។
ប្រសិនបើអ្នកកំពុងដំណើរការម៉ាស៊ីនមេអាជ្ញាប័ណ្ណបណ្តាញ មានតែកុំព្យូទ័រដែលមានប្រព័ន្ធប្រតិបត្តិការដែលគាំទ្រដោយអ្នកចងក្រងប៉ុណ្ណោះដែលអាចត្រូវបានប្រើដើម្បីបង្ហោះម៉ាស៊ីនមេអាជ្ញាប័ណ្ណ។ ចាប់ពី xclm កំណែ 2.0 ម៉ាស៊ីនមេអាជ្ញាប័ណ្ណបណ្តាញអាចត្រូវបានដំឡើងនៅលើវេទិកា Microsoft Windows Server ប៉ុន្តែម៉ាស៊ីនមេអាជ្ញាប័ណ្ណមិនចាំបាច់ដំណើរការលើកំណែម៉ាស៊ីនមេនៃប្រព័ន្ធប្រតិបត្តិការទេ។
បានគាំទ្រឧបករណ៍
កម្មវិធីចងក្រងនេះគាំទ្រឧបករណ៍ AVR MCU 8 ប៊ីតទាំងអស់ដែលគេស្គាល់នៅពេលចេញផ្សាយ។ សូមមើល (នៅក្នុងថតឯកសាររបស់អ្នកចងក្រង) សម្រាប់បញ្ជីឧបករណ៍ដែលគាំទ្រទាំងអស់។ ទាំងនេះ files ក៏រាយបញ្ជីការកំណត់រចនាសម្ព័ន្ធប៊ីតសម្រាប់ឧបករណ៍នីមួយៗផងដែរ។
កំណែ និងការអាប់ដេតអាជ្ញាប័ណ្ណ
កម្មវិធីចងក្រង MPLAB XC8 អាចត្រូវបានធ្វើឱ្យសកម្មជាផលិតផលដែលមានអាជ្ញាប័ណ្ណ (PRO) ឬគ្មានអាជ្ញាប័ណ្ណ (ឥតគិតថ្លៃ) ។ អ្នកត្រូវទិញសោធ្វើឲ្យសកម្មដើម្បីផ្តល់អាជ្ញាប័ណ្ណអ្នកចងក្រងរបស់អ្នក។ អាជ្ញាប័ណ្ណអនុញ្ញាតឱ្យមានកម្រិតខ្ពស់នៃការបង្កើនប្រសិទ្ធភាពធៀបនឹងផលិតផលឥតគិតថ្លៃ។ កម្មវិធីចងក្រងដែលគ្មានអាជ្ញាប័ណ្ណអាចដំណើរការដោយគ្មានកំណត់ដោយគ្មានអាជ្ញាប័ណ្ណ។
ឧបករណ៍ចងក្រងសុវត្ថិភាពមុខងារ MPLAB XC8 ត្រូវតែត្រូវបានធ្វើឱ្យសកម្មជាមួយនឹងអាជ្ញាប័ណ្ណសុវត្ថិភាពមុខងារដែលបានទិញពី Microchip ។ កម្មវិធីចងក្រងនឹងមិនដំណើរការដោយគ្មានអាជ្ញាប័ណ្ណនេះទេ។ នៅពេលដែលបានធ្វើឱ្យសកម្ម អ្នកអាចជ្រើសរើសកម្រិតបង្កើនប្រសិទ្ធភាពណាមួយ ហើយប្រើមុខងារចងក្រងទាំងអស់។ ការចេញផ្សាយនេះនៃ MPLAB XC Functional Safety Compiler គាំទ្រអាជ្ញាប័ណ្ណម៉ាស៊ីនមេបណ្តាញ។
សូមមើលឯកសារដំឡើង និងផ្តល់អាជ្ញាប័ណ្ណ MPLAB XC C Compilers (DS50002059) សម្រាប់ព័ត៌មានអំពីប្រភេទអាជ្ញាប័ណ្ណ និងការដំឡើងកម្មវិធីចងក្រងដែលមានអាជ្ញាប័ណ្ណ។
ការដំឡើងនិងការធ្វើឱ្យសកម្ម
សូមមើលផងដែរ ផ្នែកបញ្ហាការធ្វើចំណាកស្រុក និងដែនកំណត់សម្រាប់ព័ត៌មានសំខាន់ៗអំពីអ្នកគ្រប់គ្រងអាជ្ញាបណ្ណចុងក្រោយបង្អស់ដែលរួមបញ្ចូលជាមួយកម្មវិធីចងក្រងនេះ។
ប្រសិនបើប្រើ MPLAB IDE ត្រូវប្រាកដថាដំឡើង MPLAB X IDE កំណែ 5.0 ឬថ្មីជាងនេះ មុនពេលដំឡើងឧបករណ៍នេះ។ ចាកចេញពី IDE មុនពេលដំឡើងកម្មវិធីចងក្រង។ ដំណើរការកម្មវិធីដំឡើងកម្មវិធីចងក្រងកម្មវិធី .exe (Windows), .run (Linux) ឬកម្មវិធី (macOS) ឧទាហរណ៍ XC8-1.00.11403-windows.exe ហើយធ្វើតាមការណែនាំនៅលើអេក្រង់។
បញ្ជីដំឡើងលំនាំដើមត្រូវបានណែនាំ។ ប្រសិនបើអ្នកកំពុងប្រើលីនុច អ្នកត្រូវតែដំឡើងកម្មវិធីចងក្រងដោយប្រើស្ថានីយ និងពីគណនីឫស។ ដំឡើងដោយប្រើគណនី macOS ដែលមានសិទ្ធិជាអ្នកគ្រប់គ្រង។
ការធ្វើឱ្យសកម្មឥឡូវនេះត្រូវបានអនុវត្តដោយឡែកពីគ្នាទៅនឹងការដំឡើង។ សូមមើលកម្មវិធីគ្រប់គ្រងអាជ្ញាប័ណ្ណឯកសារសម្រាប់MPLAB® XC C Compilers (DS52059) សម្រាប់ព័ត៌មានបន្ថែម។
ប្រសិនបើអ្នកជ្រើសរើសដំណើរការកម្មវិធីចងក្រងក្រោមអាជ្ញាប័ណ្ណវាយតម្លៃ ឥឡូវនេះអ្នកនឹងទទួលបានការព្រមានក្នុងអំឡុងពេលចងក្រង នៅពេលដែលអ្នកស្ថិតនៅក្នុងរយៈពេល 14 ថ្ងៃនៃចុងបញ្ចប់នៃរយៈពេលវាយតម្លៃរបស់អ្នក។ ការព្រមានដូចគ្នានេះត្រូវបានចេញប្រសិនបើអ្នកក្នុងរយៈពេល 14 ថ្ងៃបន្ទាប់ពីការបញ្ចប់នៃការជាវ HPA របស់អ្នក។
ម៉ាស៊ីនមេអាជ្ញាប័ណ្ណបណ្តាញ XC គឺជាកម្មវិធីដំឡើងដាច់ដោយឡែក ហើយមិនត្រូវបានរួមបញ្ចូលនៅក្នុងកម្មវិធីដំឡើងកម្មវិធីចងក្រងអ្នកប្រើតែមួយទេ។
ឥឡូវនេះ កម្មវិធីគ្រប់គ្រងអាជ្ញាប័ណ្ណ XC គាំទ្រការរ៉ូមីងនៃអាជ្ញាប័ណ្ណបណ្តាញអណ្តែតទឹក។ ផ្តោតលើអ្នកប្រើប្រាស់ទូរស័ព្ទ មុខងារនេះអនុញ្ញាតឱ្យអាជ្ញាប័ណ្ណបណ្តែតដើម្បីបិទបណ្តាញក្នុងរយៈពេលខ្លី។ ដោយប្រើមុខងារនេះ អ្នកអាចផ្តាច់ចេញពីបណ្តាញ ហើយនៅតែប្រើកម្មវិធីចងក្រង MPLAB XC របស់អ្នក។ សូមមើលថតឯកសារនៃការដំឡើង XCLM សម្រាប់បន្ថែមលើមុខងារនេះ។ MPLAB X IDE រួមបញ្ចូលបង្អួចអាជ្ញាប័ណ្ណ (ឧបករណ៍ > អាជ្ញាប័ណ្ណ) ដើម្បីគ្រប់គ្រងការរ៉ូមីងដោយមើលឃើញ។
ការដោះស្រាយបញ្ហាការដំឡើង
ប្រសិនបើអ្នកជួបប្រទះការលំបាកក្នុងការដំឡើងកម្មវិធីចងក្រងនៅក្រោមប្រព័ន្ធប្រតិបត្តិការវីនដូណាមួយ សូមសាកល្បងការណែនាំខាងក្រោម។
- ដំណើរការដំឡើងជាអ្នកគ្រប់គ្រង។
- កំណត់ការអនុញ្ញាតរបស់កម្មវិធីដំឡើងទៅ 'ការគ្រប់គ្រងពេញលេញ' ។ (ចុចកណ្ដុរស្ដាំលើ fileជ្រើសរើសលក្ខណសម្បត្តិ ផ្ទាំងសុវត្ថិភាព ជ្រើសរើសអ្នកប្រើប្រាស់ កែសម្រួល។)
- កំណត់ការអនុញ្ញាតនៃថតឯកសារទៅជា "ការគ្រប់គ្រងពេញលេញ!
ដើម្បីកំណត់ទីតាំងនៃ Temp Folder វាយ %temp% ទៅក្នុងពាក្យបញ្ជា Run (Windows logo key + R)។ នេះនឹងបើក ក file ប្រអប់ explorer បង្ហាញថតនោះ ហើយនឹងអនុញ្ញាតឱ្យអ្នកកំណត់ផ្លូវនៃថតនោះ។
ឯកសារចងក្រង
ការណែនាំរបស់អ្នកប្រើរបស់អ្នកចងក្រងអាចត្រូវបានបើកពីទំព័រ HTML ដែលបើកនៅក្នុងកម្មវិធីរុករករបស់អ្នក នៅពេលចុចប៊ូតុងជំនួយពណ៌ខៀវនៅក្នុងផ្ទាំងគ្រប់គ្រង MPLAB X IDE ដូចដែលបានបង្ហាញនៅក្នុងរូបថតអេក្រង់។
ប្រសិនបើអ្នកកំពុងបង្កើតគោលដៅ AVR 8 ប៊ីត មគ្គុទ្ទេសក៍អ្នកចងក្រង MPLAB® XC8 C សម្រាប់ AVR® MCU មានព័ត៌មានអំពីជម្រើសចងក្រងទាំងនោះ និងលក្ខណៈពិសេសដែលអាចអនុវត្តបានចំពោះស្ថាបត្យកម្មនេះ។
ជំនួយអតិថិជន
Microchip ស្វាគមន៍របាយការណ៍កំហុស ការផ្ដល់យោបល់ ឬយោបល់ទាក់ទងនឹងកំណែចងក្រងនេះ។ សូមដឹកនាំរបាយការណ៍កំហុស ឬសំណើលក្ខណៈពិសេសតាមរយៈប្រព័ន្ធជំនួយ។
ការធ្វើបច្ចុប្បន្នភាពឯកសារ
សម្រាប់ឯកសារ MPLAB XC8 កំណែអនឡាញ និងចុងក្រោយបំផុត សូមចូលទៅកាន់ឯកសារបច្ចេកទេសអនឡាញរបស់ Microchip webគេហទំព័រ។
ឯកសារ AVR ថ្មី ឬបានធ្វើបច្ចុប្បន្នភាពនៅក្នុងការចេញផ្សាយនេះ៖
- ការជូនដំណឹងអំពីការរក្សាសិទ្ធិ MUSL
- ការដំឡើង និងអាជ្ញាប័ណ្ណ MPLAB XC C Compilers (កំណែ M)
- MPLAB XC8 User!s Guide for Embedded Engineers – AVR MCUs (ការកែប្រែ A)
- MPLAB XC8 C Compiler User!s Guide for AVR MCU (revision F)
- មគ្គុទ្ទេសក៍យោងបណ្ណាល័យស្តង់ដារបង្រួបបង្រួម Microchip (ការកែប្រែ B)
មគ្គុទ្ទេសក៍យោងបណ្ណាល័យស្តង់ដារបង្រួបបង្រួម Microchip ពិពណ៌នាអំពីអាកប្បកិរិយា និងចំណុចប្រទាក់ទៅនឹងមុខងារដែលបានកំណត់ដោយបណ្ណាល័យស្តង់ដារបង្រួបបង្រួមមីក្រូឈីប ក៏ដូចជាការប្រើប្រាស់គោលបំណងនៃប្រភេទបណ្ណាល័យ និងម៉ាក្រូ។ ព័ត៌មានមួយចំនួនពីមុនមាននៅក្នុង MPLAB® XC8 C Compiler User!s Guide for AVR® MCU ។ ព័ត៌មានបណ្ណាល័យសម្រាប់ឧបករណ៍ជាក់លាក់នៅតែមាននៅក្នុងការណែនាំចងក្រងនេះ។
ប្រសិនបើអ្នកទើបតែចាប់ផ្តើមជាមួយឧបករណ៍ 8 ប៊ីត និង MPLAB XC8 C Compiler មគ្គុទ្ទេសក៍ MPLAB® XC8 User!s សម្រាប់វិស្វករបង្កប់ - AVR® MCUs (DS50003108) មានព័ត៌មានស្តីពីការបង្កើតគម្រោងនៅក្នុង MPLAB X IDE និងការសរសេរកូដសម្រាប់គម្រោង MPLAB XC8 C ដំបូងរបស់អ្នក។ ការណែនាំនេះត្រូវបានចែកចាយជាមួយកម្មវិធីចងក្រង។
មគ្គុទ្ទេសក៍របស់អ្នកប្រើ Hamate ត្រូវបានបញ្ចូលក្នុងថតឯកសារនៅក្នុងការចេញផ្សាយនេះ។ មគ្គុទ្ទេសក៍នេះត្រូវបានបម្រុងទុកសម្រាប់អ្នកដែលកំពុងដំណើរការ Hamate ជាកម្មវិធីឯករាជ្យ។
តើមានអ្វីថ្មី។
ខាងក្រោមនេះគឺជាលក្ខណៈពិសេស AVR-target ថ្មីដែលកម្មវិធីចងក្រងឥឡូវនេះគាំទ្រ។ លេខកំណែនៅក្នុងចំណងជើងរងបង្ហាញពីកំណែចងក្រងដំបូងដើម្បីគាំទ្រលក្ខណៈពិសេសដែលធ្វើតាម។
កំណែ 2.40
ការគាំទ្រឧបករណ៍ថ្មី។ ឥឡូវនេះការគាំទ្រមានសម្រាប់ផ្នែក AVR ខាងក្រោម៖ AT90PWM3, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR64EA28, AVR64EA32, AVR64EA48
ធ្វើឱ្យប្រសើរឡើងនូវដំណើរការអរូបី ឧបករណ៍បង្កើនប្រសិទ្ធភាពអរូបីតាមនីតិវិធី (PA) ត្រូវបានធ្វើឱ្យប្រសើរឡើង ដូច្នេះកូដដែលមានការណែនាំអំពីការហៅមុខងារ (ការហៅទូរស័ព្ទឡើងវិញ)) អាចត្រូវបានគូសបញ្ជាក់។ វានឹងកើតឡើងលុះត្រាតែជង់មិនត្រូវបានប្រើដើម្បីឆ្លងកាត់អាគុយម៉ង់ ឬទទួលបានតម្លៃត្រឡប់ពីអនុគមន៍។ ជង់ត្រូវបានប្រើនៅពេលហៅមុខងារដែលមានបញ្ជីអាគុយម៉ង់អថេរ ឬនៅពេលហៅមុខងារដែលយកអាគុយម៉ង់ច្រើនជាងការចុះឈ្មោះដែលបានកំណត់សម្រាប់គោលបំណងនេះ។ លក្ខណៈពិសេសនេះអាចត្រូវបានបិទដោយប្រើជម្រើសការហៅរបស់ព្រះសង្ឃ - ប៉ា - គ្រោង - ឬការអរូបីតាមនីតិវិធីអាចត្រូវបានបិទទាំងស្រុងសម្រាប់វត្ថុមួយ។ file ឬមុខងារដោយប្រើ-monk-pa-on-file និង -mo.-pa-on-function រៀងៗខ្លួន ឬដោយប្រើគុណលក្ខណៈ nipa (nipa specifier) ជ្រើសរើសដោយមុខងារ
ម៉ាក្រូគ្របដណ្តប់កូដ ឥឡូវនេះកម្មវិធីចងក្រងកំណត់ម៉ាក្រូ __CODECOV ប្រសិនបើជម្រើស mcodecov ត្រឹមត្រូវត្រូវបានបញ្ជាក់។
ជម្រើសនៃការកក់អង្គចងចាំ កម្មវិធីបញ្ជា xc8-cc ឥឡូវនេះនឹងទទួលយកជម្រើស -mreserve=space@start: end នៅពេលបង្កើតសម្រាប់គោលដៅ AVR។ ជម្រើសនេះរក្សាទុកជួរអង្គចងចាំដែលបានបញ្ជាក់នៅក្នុងទិន្នន័យ ឬទំហំអង្គចងចាំកម្មវិធី ដោយការពារអ្នកភ្ជាប់ពីការបញ្ចូលកូដ ឬវត្ថុនៅក្នុងតំបន់នេះ។
IO ឆ្លាតវៃជាង ការកែលម្អជាច្រើនត្រូវបានធ្វើឡើងចំពោះមុខងារ Smart IO រួមទាំងការកែប្រែទូទៅចំពោះកូដស្នូល printf ដោយចាត់ទុកកម្មវិធីបញ្ជាក់ការបំប្លែង %n ជាវ៉ារ្យ៉ង់ឯករាជ្យ ដោយភ្ជាប់ក្នុងទម្រង់ការ pop vararg តាមតម្រូវការ ដោយប្រើប្រភេទទិន្នន័យខ្លីជាង ដែលអាចធ្វើទៅបានសម្រាប់ដោះស្រាយអាគុយម៉ង់មុខងារ IO និងកំណត់កូដទូទៅនៅក្នុងទទឹងវាល និងការគ្រប់គ្រងភាពជាក់លាក់។ នេះអាចបណ្តាលឱ្យមានលេខកូដសំខាន់ៗ និងការសន្សំទិន្នន័យ ក៏ដូចជាបង្កើនល្បឿនប្រតិបត្តិរបស់ IO ។
កំណែ 2.39 (ការចេញផ្សាយសុវត្ថិភាពមុខងារ)
អាជ្ញាប័ណ្ណម៉ាស៊ីនមេបណ្តាញ ការចេញផ្សាយនេះនៃ MPLAB XC8 Functional Safety Compiler គាំទ្រអាជ្ញាប័ណ្ណម៉ាស៊ីនមេបណ្តាញ។
កំណែ 2.36
គ្មាន។
កំណែ 2.35
ការគាំទ្រឧបករណ៍ថ្មី។ ការគាំទ្រមានសម្រាប់ផ្នែក AVR ខាងក្រោម៖ ATTINY3224, ATTINY3226, ATTINY3227, AVR64DD14, AVR64DD20, AVR64DD28, និង AVR64DD32។
ការប្តូរបរិបទប្រសើរឡើង ជម្រើស -mcall-isr-prologues ថ្មីផ្លាស់ប្តូររបៀបដែលមុខងាររំខានរក្សាទុកការចុះឈ្មោះនៅលើធាតុចូល និងរបៀបដែលការចុះឈ្មោះទាំងនោះត្រូវបានស្ដារឡើងវិញនៅពេលដែលទម្លាប់រំខានត្រូវបានបញ្ចប់។ វាដំណើរការតាមរបៀបស្រដៀងគ្នាទៅនឹងជម្រើស -mcall-prologues ប៉ុន្តែប៉ះពាល់ដល់មុខងាររំខាន (ISRs) ប៉ុណ្ណោះ។
សូម្បីតែការផ្លាស់ប្តូរបរិបទដែលប្រសើរឡើងជាងមុន ជម្រើស -mgas-isr-prologues ថ្មីគ្រប់គ្រងបរិបទកូដរមាស់ដែលបានបង្កើតសម្រាប់ទម្លាប់សេវាកម្មរំខានតូចៗ។ នៅពេលបើកដំណើរការ មុខងារនេះនឹងអោយអ្នកដំឡើងស្កេន ISR សម្រាប់ចុះឈ្មោះប្រើប្រាស់ ហើយរក្សាទុកតែការចុះឈ្មោះដែលបានប្រើទាំងនេះប្រសិនបើចាំបាច់។
ការគូសផែនទីពន្លឺដែលអាចកំណត់បាន។ ឧបករណ៍មួយចំនួននៅក្នុងគ្រួសារ AVR DA និង AVR DB មាន SFR (ឧ. FLMAP) ដែលបញ្ជាក់ថាតើផ្នែក 32k នៃអង្គចងចាំកម្មវិធីណាមួយនឹងត្រូវបានគូសវាសទៅក្នុងអង្គចងចាំទិន្នន័យ។ ជម្រើសថ្មី - mconst-data-in-config-mapped-proem អាចត្រូវបានប្រើដើម្បីឱ្យអ្នកភ្ជាប់ដាក់ទិន្នន័យដែលមានលក្ខណៈសម្បត្តិគ្រប់គ្រាន់នៅក្នុងផ្នែក 32k ហើយចាប់ផ្តើមការចុះឈ្មោះ SFR ពាក់ព័ន្ធដោយស្វ័យប្រវត្តិ ដើម្បីធានាថាទិន្នន័យនេះត្រូវបានគូសផែនទីទៅក្នុងទំហំអង្គចងចាំទិន្នន័យ ដែលវានឹងត្រូវបានចូលប្រើកាន់តែមានប្រសិទ្ធភាព។
បណ្ណាល័យស្តង់ដារបង្រួបបង្រួមមីក្រូឈីប អ្នកចងក្រង MPLAB XC ទាំងអស់នឹងចែករំលែកបណ្ណាល័យស្តង់ដារបង្រួបបង្រួម Microchip ដែលឥឡូវនេះមានជាមួយនឹងការចេញផ្សាយ MPLAB XC8 នេះ។ MPLAB® XC8 C Compiler User Guide/ឬ AVR® MCU លែងរួមបញ្ចូលឯកសារសម្រាប់មុខងារស្តង់ដារទាំងនេះទៀតហើយ។ ឥឡូវនេះ ព័ត៌មាននេះអាចត្រូវបានរកឃើញនៅក្នុង មគ្គុទ្ទេសក៍យោងបណ្ណាល័យស្តង់ដារបង្រួបបង្រួមរបស់ Microchip ។ ចំណាំថាមុខងារមួយចំនួនដែលបានកំណត់ពីមុនដោយ avr-libc មិនមានទៀតទេ។ (សូមមើល Librar):' ។ មុខងារ...)
ក្រុមហ៊ុន Smart IO ជាផ្នែកនៃបណ្ណាល័យបង្រួបបង្រួមថ្មី មុខងារ IO នៅក្នុងគ្រួសារបោះពុម្ព និងស្កែនឥឡូវនេះត្រូវបានបង្កើតផ្ទាល់ខ្លួននៅលើការស្ថាបនានីមួយៗ ដោយផ្អែកលើរបៀបដែលមុខងារទាំងនេះត្រូវបានប្រើប្រាស់នៅក្នុងកម្មវិធី។ វាអាចកាត់បន្ថយធនធានដែលបានប្រើដោយកម្មវិធីយ៉ាងច្រើន។
ជម្រើសជំនួយ Smart IO នៅពេលវិភាគការហៅទៅកាន់មុខងារ IO ឆ្លាតវៃ (ដូចជា printf() ឬ scanf ()) អ្នកចងក្រងមិនអាចកំណត់ពីទម្រង់ខ្សែអក្សរ ឬសន្និដ្ឋានពីអាគុយម៉ង់ដែលឧបករណ៍បញ្ជាក់ការបំប្លែងដែលទាមទារដោយការហៅនោះទេ។ ពីមុន អ្នកចងក្រងតែងតែមិនធ្វើការសន្មត់ ហើយធានាថាមុខងារ IO ដែលមានមុខងារពេញលេញត្រូវបានភ្ជាប់ទៅក្នុងរូបភាពកម្មវិធីចុងក្រោយ។ ជម្រើសថ្មី – msmart-io-format=fmt ត្រូវបានបន្ថែម ដូច្នេះអ្នកចងក្រងអាចត្រូវបានជូនដំណឹងដោយអ្នកប្រើប្រាស់នៃកម្មវិធីបញ្ជាក់ការបំប្លែងដែលប្រើដោយមុខងារ IO ឆ្លាតវៃ ដែលការប្រើប្រាស់មានភាពមិនច្បាស់លាស់ ការពារទម្លាប់ IO យូរហួសពីការភ្ជាប់។ (សូមមើល smart-io-format Option សម្រាប់ព័ត៌មានលម្អិតបន្ថែម។ )
ការដាក់ផ្នែកផ្ទាល់ខ្លួន ពីមុនជម្រើស -Wl, –section-start បានដាក់តែផ្នែកដែលបានបញ្ជាក់នៅអាសយដ្ឋានដែលបានស្នើសុំ នៅពេលដែលស្គ្រីប linker កំណត់ផ្នែកលទ្ធផលដែលមានឈ្មោះដូចគ្នា។ នៅពេលនោះមិនមែនជាករណីនោះទេ ផ្នែកត្រូវបានដាក់នៅអាសយដ្ឋានដែលបានជ្រើសរើសដោយអ្នកភ្ជាប់ ហើយជម្រើសនេះត្រូវបានគេមិនអើពើជាសំខាន់។ ឥឡូវនេះជម្រើសនឹងត្រូវបានផ្តល់កិត្តិយសសម្រាប់ផ្នែកផ្ទាល់ខ្លួនទាំងអស់ ទោះបីជាស្គ្រីបតំណភ្ជាប់មិនកំណត់ផ្នែកក៏ដោយ។ ទោះជាយ៉ាងណាក៏ដោយ ចំណាំថាសម្រាប់ផ្នែកស្តង់ដារ ដូចជា . អត្ថបទ, ។ bss ឬ . ទិន្នន័យ អ្នកបែងចែកសមល្អបំផុតនឹងនៅតែមានការគ្រប់គ្រងពេញលេញលើការដាក់របស់ពួកគេ ហើយជម្រើសនឹងមិនមានឥទ្ធិពលទេ។ ប្រើជម្រើស -Wl, -Tsection=add ដូចដែលបានពិពណ៌នានៅក្នុងការណែនាំរបស់អ្នកប្រើ។
កំណែ 2.32
ការណែនាំអំពីជង់ អាចរកបានជាមួយនឹងអាជ្ញាប័ណ្ណចងក្រង PRO លក្ខណៈពិសេសការណែនាំជង់របស់អ្នកចងក្រងអាចត្រូវបានប្រើដើម្បីប៉ាន់ប្រមាណជម្រៅអតិបរមានៃជង់ណាមួយដែលប្រើដោយកម្មវិធី។ វាបង្កើត និងវិភាគក្រាហ្វការហៅរបស់កម្មវិធី កំណត់ការប្រើប្រាស់ជង់នៃមុខងារនីមួយៗ និងបង្កើតរបាយការណ៍ ដែលជម្រៅនៃជង់ដែលប្រើដោយកម្មវិធីអាចត្រូវបានសន្និដ្ឋាន។ មុខងារនេះត្រូវបានបើកតាមរយៈជម្រើសបន្ទាត់ពាក្យបញ្ជា -mchp-stack-usage ។ សេចក្តីសង្ខេបនៃការប្រើប្រាស់ជង់ត្រូវបានបោះពុម្ពបន្ទាប់ពីការប្រតិបត្តិ។ របាយការណ៍ជង់លម្អិតមាននៅក្នុងផែនទី fileដែលអាចត្រូវបានស្នើសុំតាមវិធីធម្មតា។
ការគាំទ្រឧបករណ៍ថ្មី។ អាចរកបានសម្រាប់ផ្នែក AVR ខាងក្រោម៖ ATTINY 427, ATTINY 424, ATTINY 426, ATTINY827, ATTINY824, ATTINY826, AVR32DB32, AVR64DB48, AVR64DB64, AVR64DB28, AVR32DB28, AVR64DB32
ការគាំទ្រឧបករណ៍ដែលបានដកថយ ការគាំទ្រ លែងមានសម្រាប់ផ្នែក AVR ខាងក្រោមទៀតហើយ៖ AVR16DA28, AVR16DA32 និង, AVR16DA48។
កំណែ 2.31
គ្មាន។
កំណែ 2.30
ជម្រើសថ្មីដើម្បីការពារការចាប់ផ្តើមទិន្នន័យ ជម្រើសកម្មវិធីបញ្ជា -mno-data-ini t ថ្មីរារាំងការចាប់ផ្តើមទិន្នន័យ និងការសម្អាតផ្នែក bss ។ វាដំណើរការដោយការទប់ស្កាត់លទ្ធផលនៃទិន្នន័យ do_ copy_ និងនិមិត្តសញ្ញា d o_ clear_ bss នៅក្នុងការជួបប្រជុំគ្នា files ដែលនឹងរារាំងការរួមបញ្ចូលទម្លាប់ទាំងនោះដោយអ្នកភ្ជាប់។
ការធ្វើឱ្យប្រសើរការបង្កើនប្រសិទ្ធភាពការកែលម្អការបង្កើនប្រសិទ្ធភាពមួយចំនួនត្រូវបានធ្វើឡើង រួមទាំងការដកចេញនូវការណែនាំត្រឡប់មកវិញដែលលែងត្រូវការ ការដកចេញនូវការលោតមួយចំនួនបន្ទាប់ពីការណែនាំរំលងប្រសិនបើប៊ីត និងធ្វើឱ្យប្រសើរឡើងនូវដំណើរការអរូបី និងសមត្ថភាពក្នុងការធ្វើម្តងទៀតនូវដំណើរការនេះ។
ឥឡូវនេះជម្រើសបន្ថែមមានដើម្បីគ្រប់គ្រងការបង្កើនប្រសិទ្ធភាពមួយចំនួន ជាពិសេសយុថ្កាផ្នែក -f ដែលអនុញ្ញាតឱ្យចូលប្រើវត្ថុឋិតិវន្តដែលត្រូវបានអនុវត្តទាក់ទងទៅនឹងនិមិត្តសញ្ញាមួយ។ -mpai derations=n ដែលអនុញ្ញាតឱ្យចំនួននៃការធ្វើឡើងវិញអរូបីនៃនីតិវិធីត្រូវបានផ្លាស់ប្តូរពីលំនាំដើមនៃ 2; និង -mpa- call cost- shortcall ដែលអនុវត្តការអរូបីតាមនីតិវិធីកាន់តែឈ្លានពាន ដោយសង្ឃឹមថា linker អាចបន្ធូរបន្ថយការហៅយូរ។ ជម្រើសចុងក្រោយនេះអាចបង្កើនទំហំកូដ ប្រសិនបើការសន្មត់មូលដ្ឋានមិនត្រូវបានសម្រេច។
ការគាំទ្រឧបករណ៍ថ្មី។ ការគាំទ្រមានសម្រាប់ផ្នែក AVR ខាងក្រោម៖ AVR16DA28, AVR16DA32,
AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR128DB28, AVR128DB32, AVR128DB48, និង AVR128DB64
ការគាំទ្រឧបករណ៍ដែលបានដក ការគាំទ្រលែងមានសម្រាប់ផ្នែក AVR ខាងក្រោមទៀតហើយ៖ ATA5272, ATA5790, ATA5790N, ATA5791,ATA5795,ATA6285,ATA6286,ATA6612C,ATA6613C,ATA6614Q, ATA6616C, ATA6617C664251 និង ATA
កំណែ 2.29 (ការចេញផ្សាយសុវត្ថិភាពមុខងារ)
បឋមកថា file សម្រាប់កម្មវិធីចងក្រងភ្ជាប់មកជាមួយ ដើម្បីធានាថាកម្មវិធីចងក្រងអាចអនុលោមតាមលក្ខណៈជាក់លាក់នៃភាសាដូចជា MISRA ។ ក្បាល fileដែលត្រូវបានរួមបញ្ចូលដោយស្វ័យប្រវត្តិដោយ , ត្រូវបានធ្វើបច្ចុប្បន្នភាព។ បឋមកថានេះមានគំរូដើមសម្រាប់មុខងារដែលភ្ជាប់មកជាមួយទាំងអស់ ដូចជា _buil tin _avrnop () និង _buil tin_ avr delay_ cycles () ។ ការភ្ជាប់មកជាមួយមួយចំនួនប្រហែលជាមិនអនុលោមតាម MISRA ទេ។ ទាំងនេះអាចត្រូវបានលុបចោលដោយបន្ថែមការកំណត់ _Xe_ STRICT_ MISRA ទៅបន្ទាត់ពាក្យបញ្ជាចងក្រង។ ការភ្ជាប់មកជាមួយ និងការប្រកាសរបស់ពួកគេត្រូវបានធ្វើបច្ចុប្បន្នភាពដើម្បីប្រើប្រភេទទទឹងថេរ។
កំណែ 2.20
ការគាំទ្រឧបករណ៍ថ្មី។ ការគាំទ្រមានសម្រាប់ផ្នែក AVR ខាងក្រោម៖ ATTINY1624, ATTINY1626, និង ATTINY1627។
ការបែងចែកសមល្អបំផុតកាន់តែប្រសើរ អ្នកបែងចែកសមល្អបំផុត (BFA) នៅក្នុងកម្មវិធីចងក្រងត្រូវបានធ្វើឱ្យប្រសើរឡើង ដូច្នេះផ្នែកត្រូវបានបែងចែកតាមលំដាប់ដែលអនុញ្ញាតឱ្យមានការបង្កើនប្រសិទ្ធភាពកាន់តែប្រសើរ។ ឥឡូវនេះ BFA គាំទ្រចន្លោះអាសយដ្ឋានដែលមានឈ្មោះ និងគ្រប់គ្រងការចាប់ផ្តើមទិន្នន័យបានប្រសើរជាងមុន។
ធ្វើឱ្យប្រសើរឡើងនូវដំណើរការអរូបី ការបង្កើនប្រសិទ្ធភាពអរូបីតាមនីតិវិធីឥឡូវនេះត្រូវបានអនុវត្តលើលំដាប់កូដបន្ថែមទៀត។ ស្ថានភាពពីមុនដែលការបង្កើនប្រសិទ្ធភាពនេះអាចបង្កើនទំហំកូដត្រូវបានដោះស្រាយដោយការធ្វើឱ្យកូដបង្កើនប្រសិទ្ធភាពដឹងពីដំណើរការប្រមូលសំរាមរបស់អ្នកភ្ជាប់។
អវត្ដមាននៃ AVR Assembler AVR Assembler មិនត្រូវបានរួមបញ្ចូលជាមួយនឹងការចែកចាយនេះទៀតទេ។
កំណែ 2.19 (ការចេញផ្សាយសុវត្ថិភាពមុខងារ)
គ្មាន។
កំណែ 2.10
Code Coverage ការចេញផ្សាយនេះរួមបញ្ចូលទាំងលក្ខណៈពិសេសគ្របដណ្តប់កូដដែលសម្របសម្រួលការវិភាគអំពីវិសាលភាពដែលកូដប្រភពរបស់គម្រោងត្រូវបានប្រតិបត្តិ។ ប្រើជម្រើស -mcodecov=ram ដើម្បីបើកវា។ បន្ទាប់ពីដំណើរការកម្មវិធីនៅលើ Hardware របស់អ្នក ព័ត៌មានអំពីការគ្របដណ្តប់កូដនឹងត្រូវបានរួមបញ្ចូលនៅក្នុងឧបករណ៍ ហើយវាអាចត្រូវបានផ្ទេរទៅ និងបង្ហាញដោយ MPLAB X IDE តាមរយៈកម្មវិធីជំនួយការគ្របដណ្តប់កូដ។ សូមមើលឯកសារ IDE សម្រាប់ព័ត៌មានអំពីកម្មវិធីជំនួយនេះអាចទទួលបាន។ #pragma mcodecov អាចត្រូវបានប្រើដើម្បីមិនរាប់បញ្ចូលមុខងារជាបន្តបន្ទាប់ពីការវិភាគលើការគ្របដណ្តប់។ តាមឧត្ដមគតិ pragma គួរតែត្រូវបានបន្ថែមនៅដើមដំបូងនៃ file ដើម្បីដកចេញទាំងស្រុងនោះ។ file ពីការវិភាគគ្របដណ្តប់។ ម៉្យាងទៀត គុណលក្ខណៈ ( (mcodecov) ) អាចត្រូវបានប្រើដើម្បីដកមុខងារជាក់លាក់មួយចេញពីការវិភាគលើការគ្របដណ្តប់។
ការពិពណ៌នាឧបករណ៍ files ឧបករណ៍ថ្មី។ file ហៅថា avr chipinfo ។ html មានទីតាំងនៅក្នុងថតឯកសារនៃការចែកចាយអ្នកចងក្រង។ នេះ។ file រាយឧបករណ៍ទាំងអស់ដែលគាំទ្រដោយកម្មវិធីចងក្រង។ ចុចលើឈ្មោះឧបករណ៍ ហើយវានឹងបើកទំព័រដែលបង្ហាញការកំណត់ការកំណត់/តម្លៃប៊ីតដែលអនុញ្ញាតទាំងអស់សម្រាប់ឧបករណ៍នោះជាមួយនឹងឧ.amples ។
អរូបីតាមនីតិវិធី ការបង្កើនប្រសិទ្ធភាពអរូបីតាមនីតិវិធី ដែលជំនួសប្លុកទូទៅនៃកូដជួបប្រជុំគ្នាជាមួយនឹងការហៅទៅកាន់ច្បាប់ចម្លងដែលបានស្រង់ចេញនៃប្លុកនោះត្រូវបានបន្ថែមទៅកម្មវិធីចងក្រង។ ទាំងនេះត្រូវបានអនុវត្តដោយកម្មវិធីដាច់ដោយឡែក ដែលត្រូវបានហៅដោយស្វ័យប្រវត្តិដោយអ្នកចងក្រង នៅពេលជ្រើសរើសកម្រិត 2, 3 ឬបង្កើនប្រសិទ្ធភាព។ ការបង្កើនប្រសិទ្ធភាពទាំងនេះកាត់បន្ថយទំហំកូដ ប៉ុន្តែវាអាចកាត់បន្ថយល្បឿននៃការប្រតិបត្តិ និងការបំបាត់កំហុសកូដ។
អរូបីតាមនីតិវិធីអាចត្រូវបានបិទនៅកម្រិតបង្កើនប្រសិទ្ធភាពខ្ពស់ដោយប្រើជម្រើស -mno-pa ឬអាចត្រូវបានបើកនៅកម្រិតបង្កើនប្រសិទ្ធភាពទាប (អាស្រ័យលើអាជ្ញាប័ណ្ណរបស់អ្នក) ដោយប្រើ -mpa ។ វាអាចត្រូវបានបិទសម្រាប់វត្ថុមួយ។ file ការប្រើប្រាស់ -mno-pa-on-file=fileឈ្មោះ ឬបិទសម្រាប់អនុគមន៍ដោយប្រើ -mno-pa on function= function។
នៅក្នុងកូដប្រភពរបស់អ្នក ការអរូបីតាមនីតិវិធីអាចត្រូវបានបិទសម្រាប់មុខងារមួយដោយប្រើ _attribute_ ((nopa)) ជាមួយនឹងនិយមន័យនៃមុខងារ ឬដោយប្រើ _nopa ដែលពង្រីកទៅ attribute ((nopa, noinline)) ហើយដូច្នេះការពារមុខងារ inlining ពីការកើតឡើង ហើយមាន abstraction នៃកូដក្នុងជួរ។
ចាក់សោការគាំទ្រប៊ីតនៅក្នុង pragma ការកំណត់រចនាសម្ព័ន្ធ #pragma ឥឡូវនេះអាចត្រូវបានប្រើដើម្បីបញ្ជាក់ប៊ីតចាក់សោ AVR ក៏ដូចជាប៊ីតកំណត់រចនាសម្ព័ន្ធផ្សេងទៀត។ ពិនិត្យមើលព័ត៌មានបន្ទះឈីប avr ។ html file (បានរៀបរាប់ខាងលើ) សម្រាប់ការកំណត់/តម្លៃគូដែលត្រូវប្រើជាមួយការអនុវត្តនេះ។
ការគាំទ្រឧបករណ៍ថ្មី។ ការគាំទ្រមានសម្រាប់ផ្នែកខាងក្រោម៖ AVR28DA128, AVR64DA128, AVR32DA128, និង AVR48DA128។
កំណែ 2.05
ប៊ីតច្រើនទៀតសម្រាប់ប្រាក់ដុល្លាររបស់អ្នក។ កំណែ macOS នៃកម្មវិធីចងក្រង និងកម្មវិធីគ្រប់គ្រងអាជ្ញាប័ណ្ណនេះ ឥឡូវនេះជាកម្មវិធី 64 ប៊ីត។ វានឹងធានាថាកម្មវិធីចងក្រងនឹងដំឡើង និងដំណើរការដោយគ្មានការព្រមានលើកំណែថ្មីនៃ macOS ។
Const objects in program memory ឥឡូវនេះអ្នកចងក្រងអាចដាក់វត្ថុដែលមានលក្ខណៈសម្បត្តិគ្រប់គ្រាន់នៅក្នុងកម្មវិធី Flash memory ជាជាងអោយវត្ថុទាំងនេះស្ថិតនៅក្នុង RAM។ កម្មវិធីចងក្រងត្រូវបានកែប្រែ ដូច្នេះទិន្នន័យសកលដែលមានលក្ខណៈសម្បត្តិគ្រប់គ្រាន់ត្រូវបានរក្សាទុកក្នុងអង្គចងចាំពន្លឺរបស់កម្មវិធី ហើយទិន្នន័យនេះអាចចូលប្រើដោយផ្ទាល់ និងដោយប្រយោលដោយប្រើការណែនាំកម្មវិធី-អង្គចងចាំសមស្រប។ មុខងារថ្មីនេះត្រូវបានបើកតាមលំនាំដើម ប៉ុន្តែអាចត្រូវបានបិទដោយប្រើជម្រើស -mno-const-data-in-progmem។ សម្រាប់ស្ថាបត្យកម្ម avrxmega3 និង avrtiny មុខងារនេះមិនត្រូវបានទាមទារទេ ហើយតែងតែត្រូវបានបិទ ដោយសារអង្គចងចាំកម្មវិធីត្រូវបានគូសវាសទៅក្នុងទំហំអាសយដ្ឋានទិន្នន័យសម្រាប់ឧបករណ៍ទាំងនេះ។
ស្តង់ដារដោយឥតគិតថ្លៃ កំណែដែលគ្មានអាជ្ញាប័ណ្ណ (ឥតគិតថ្លៃ) នៃកម្មវិធីចងក្រងនេះឥឡូវនេះអនុញ្ញាតឱ្យបង្កើនប្រសិទ្ធភាពរហូតដល់កម្រិត 2។ វានឹងអនុញ្ញាតឱ្យមានលទ្ធផលស្រដៀងគ្នា ទោះបីជាមិនដូចគ្នាក៏ដោយ ប៉ុន្តែអ្វីដែលអាចធ្វើទៅបានពីមុនដោយប្រើអាជ្ញាប័ណ្ណស្តង់ដារ។
សូមស្វាគមន៍ AVRASM2 ឧបករណ៍ដំឡើង AVRASM2 សម្រាប់ឧបករណ៍ 8 ប៊ីតឥឡូវនេះត្រូវបានរួមបញ្ចូលនៅក្នុងកម្មវិធីដំឡើងកម្មវិធីចងក្រង XC8 ។ ឧបករណ៍ដំឡើងនេះមិនត្រូវបានប្រើដោយអ្នកចងក្រង XC8 ទេ ប៉ុន្តែមានសម្រាប់គម្រោងដោយផ្អែកលើប្រភពដំឡើងដែលសរសេរដោយដៃ។
ការគាំទ្រឧបករណ៍ថ្មី។ ការគាំទ្រមានសម្រាប់ផ្នែកខាងក្រោម៖ ATMEGA1608, ATMEGA1609, ATMEGA808, និង ATMEGA809។
កំណែ 2.00
អ្នកបើកបរកម្រិតកំពូល កម្មវិធីបញ្ជាថ្មីដែលហៅថា xc8-cc ឥឡូវនេះស្ថិតនៅពីលើកម្មវិធីបញ្ជា avr-gcc មុន និងកម្មវិធីបញ្ជា xc8 ហើយវាអាចហៅទៅកម្មវិធីចងក្រងដែលសមស្របដោយផ្អែកលើការជ្រើសរើសឧបករណ៍គោលដៅ។ កម្មវិធីបញ្ជានេះទទួលយកជម្រើសរចនាប័ទ្ម GCC ដែលត្រូវបានបកប្រែសម្រាប់ ឬឆ្លងកាត់ទៅកាន់កម្មវិធីចងក្រងដែលកំពុងដំណើរការ។ កម្មវិធីបញ្ជានេះអនុញ្ញាតឱ្យសំណុំនៃជម្រើសស្រដៀងគ្នាដែលមានអត្ថន័យស្រដៀងគ្នាដើម្បីប្រើជាមួយគោលដៅ AVR ឬ PIC ហើយដូច្នេះគឺជាវិធីដែលត្រូវបានណែនាំដើម្បីហៅកម្មវិធីចងក្រង។ ប្រសិនបើចាំបាច់ កម្មវិធីបញ្ជា avr-gcc ចាស់អាចត្រូវបានហៅដោយផ្ទាល់ដោយប្រើជម្រើសរចនាប័ទ្មចាស់ដែលវាបានទទួលយកនៅក្នុងកំណែចងក្រងមុន។
ចំណុចប្រទាក់ C ទូទៅ ឥឡូវនេះកម្មវិធីចងក្រងនេះអាចអនុលោមតាម MPLAB Common C Interface ដែលអនុញ្ញាតឱ្យកូដប្រភពត្រូវបានបញ្ជូនកាន់តែងាយស្រួលឆ្លងកាត់អ្នកចងក្រង MPLAB XC ទាំងអស់។ ជម្រើស -mext=cci ស្នើសុំលក្ខណៈពិសេសនេះ ដោយបើកវាក្យសម្ព័ន្ធជំនួសសម្រាប់ផ្នែកបន្ថែមភាសាជាច្រើន។
អ្នកបើកបរបណ្ណារក្សថ្មី។ កម្មវិធីបញ្ជាបណ្ណារក្សថ្មីត្រូវបានដាក់នៅខាងលើបណ្ណារក្សបណ្ណាល័យ PIC មុន និងបណ្ណារក្ស AVR avr-ar ។ កម្មវិធីបញ្ជានេះទទួលយកជម្រើសរចនាប័ទ្ម GCC-archiver ដែលត្រូវបានបកប្រែសម្រាប់ ឬឆ្លងកាត់ទៅបណ្ណារក្សដែលកំពុងដំណើរការ។ កម្មវិធីបញ្ជាថ្មីអនុញ្ញាតឱ្យសំណុំនៃជម្រើសស្រដៀងគ្នាដែលមានអត្ថន័យស្រដៀងគ្នា ត្រូវបានប្រើដើម្បីបង្កើត ឬរៀបចំបណ្ណាល័យ PIC ឬ AVR file ដូច្នេះហើយ គឺជាវិធីណែនាំក្នុងការហៅបណ្ណារក្ស។ ប្រសិនបើត្រូវការសម្រាប់គម្រោងកេរដំណែល បណ្ណារក្សមុនអាចត្រូវបានហៅដោយផ្ទាល់ដោយប្រើជម្រើសរចនាប័ទ្មចាស់ដែលវាបានទទួលយកនៅក្នុងកំណែចងក្រងមុន។
បញ្ហាចំណាកស្រុក
ខាងក្រោមនេះគឺជាលក្ខណៈពិសេសដែលឥឡូវត្រូវបានដោះស្រាយខុសគ្នាដោយអ្នកចងក្រង។ ការផ្លាស់ប្តូរទាំងនេះអាចតម្រូវឱ្យមានការកែប្រែកូដប្រភពរបស់អ្នក ប្រសិនបើការបញ្ជូនកូដទៅកាន់កំណែចងក្រងនេះ។ លេខកំណែនៅក្នុងចំណងជើងរងបង្ហាញពីកំណែចងក្រងដំបូងដើម្បីគាំទ្រការផ្លាស់ប្តូរដែលធ្វើតាម។
កំណែ 2.40
គ្មាន។
កំណែ 2.39 (ការចេញផ្សាយសុវត្ថិភាពមុខងារ)
គ្មាន។
កំណែ 2.36
គ្មាន។
កំណែ 2.35
ការគ្រប់គ្រងខ្សែអក្សរទៅមូលដ្ឋាន (XCS-2420) ដើម្បីធានាបាននូវភាពស៊ីសង្វាក់គ្នាជាមួយនឹងកម្មវិធីចងក្រង XC ផ្សេងទៀត មុខងារខ្សែអក្សរ XC8 ដូចជា sttol () ជាដើម។ នឹងមិនព្យាយាមបំប្លែងខ្សែអក្សរបញ្ចូលទៀតទេ ប្រសិនបើមូលដ្ឋានដែលបានបញ្ជាក់មានទំហំធំជាង 36 ហើយនឹងជំនួសមកវិញនូវ errno ទៅ EINVAL ។ ស្តង់ដារ C មិនបញ្ជាក់ពីឥរិយាបទនៃមុខងារនៅពេលដែលតម្លៃគោលនេះត្រូវបានលើស។
ការបង្កើនប្រសិទ្ធភាពល្បឿនមិនសមរម្យ ការបង្កើនប្រសិទ្ធភាពអរូបីតាមនីតិវិធីកំពុងត្រូវបានបើកនៅពេលជ្រើសរើសការបង្កើនប្រសិទ្ធភាពកម្រិត 3 (-03)។ ការបង្កើនប្រសិទ្ធភាពទាំងនេះកាត់បន្ថយទំហំកូដដោយចំណាយលើល្បឿនកូដ ដូច្នេះមិនគួរត្រូវបានអនុវត្តទេ។ គម្រោងដែលប្រើកម្រិតបង្កើនប្រសិទ្ធភាពនេះអាចនឹងឃើញភាពខុសគ្នាក្នុងទំហំកូដ និងល្បឿនប្រតិបត្តិនៅពេលបង្កើតឡើងជាមួយនឹងការចេញផ្សាយនេះ។
មុខងារបណ្ណាល័យ កូដសម្រាប់មុខងារបណ្ណាល័យ C ស្តង់ដារជាច្រើនឥឡូវនេះបានមកពីបណ្ណាល័យស្តង់ដារបង្រួបបង្រួមរបស់ Microchip ដែលអាចបង្ហាញអាកប្បកិរិយាខុសៗគ្នាក្នុងកាលៈទេសៈមួយចំនួនបើប្រៀបធៀបទៅនឹងអ្វីដែលផ្តល់ដោយអតីតបណ្ណាល័យ avr-libc ។ សម្រាប់អតីតample, វាលែងចាំបាច់ក្នុងការភ្ជាប់ក្នុងបណ្ណាល័យ lprintf_flt (-print _flt option) ដើម្បីបើកការគាំទ្រ IO ដែលបានធ្វើទ្រង់ទ្រាយសម្រាប់អ្នកបញ្ជាក់ទម្រង់អណ្តែត។ លក្ខណៈពិសេស IO ដ៏ឆ្លាតវៃនៃបណ្ណាល័យស្តង់ដារបង្រួបបង្រួម Microchip ធ្វើឱ្យជម្រើសនេះមិនអាចខ្វះបាន។ លើសពីនេះ ការប្រើប្រាស់ទម្លាប់បច្ច័យ _p សម្រាប់មុខងារខ្សែអក្សរ និងអង្គចងចាំ (ឧ. strcpy_P () etc.. ) ដែលដំណើរការលើខ្សែអក្សរ const ក្នុង flash គឺលែងចាំបាច់ទៀតហើយ។ ទម្លាប់ C ស្តង់ដារ (ឧទាហរណ៍ strcpy()) នឹងដំណើរការបានត្រឹមត្រូវជាមួយទិន្នន័យបែបនេះ នៅពេលដែលមុខងារ const-data-in-program-memory ត្រូវបានបើក។
កំណែ 2.32
គ្មាន។
កំណែ 2.31
គ្មាន។
កំណែ 2.30
គ្មាន។
កំណែ 2.29 (ការចេញផ្សាយសុវត្ថិភាពមុខងារ)
គ្មាន។
កំណែ 2.20
បានផ្លាស់ប្តូរប្លង់ DFP ឥឡូវនេះកម្មវិធីចងក្រងសន្មតថាប្លង់ផ្សេងគ្នាដែលប្រើដោយ DFPs (កញ្ចប់គ្រួសារឧបករណ៍)។ នេះនឹងមានន័យថា DFP ចាស់ប្រហែលជាមិនដំណើរការជាមួយនឹងការចេញផ្សាយនេះទេ ហើយអ្នកចងក្រងចាស់នឹងមិនអាចប្រើ DFPs ចុងក្រោយបង្អស់បានទេ។
កំណែ 2.19 (ការចេញផ្សាយសុវត្ថិភាពមុខងារ)
គ្មាន។
កំណែ 2.10
គ្មាន
កំណែ 2.05
Const វត្ថុនៅក្នុងអង្គចងចាំកម្មវិធី ចំណាំថាតាមលំនាំដើម វត្ថុដែលមានលក្ខណៈ const-qualfiied នឹងត្រូវបានដាក់ និងចូលប្រើក្នុងអង្គចងចាំកម្មវិធី (ដូចដែលបានពិពណ៌នានៅទីនេះ) ។ វានឹងប៉ះពាល់ដល់ទំហំ និងល្បឿនប្រតិបត្តិនៃគម្រោងរបស់អ្នក ប៉ុន្តែគួរតែកាត់បន្ថយការប្រើប្រាស់ RAM។ មុខងារនេះអាចត្រូវបានបិទ ប្រសិនបើចាំបាច់ ដោយប្រើជម្រើស -mnoconst- da ta-in-progmem ។
កំណែ 2.00
ហ្វុយស៊ីប ការកំណត់រចនាសម្ព័ន្ធ ឥឡូវនេះ fuses ការកំណត់រចនាសម្ព័ន្ធឧបករណ៍អាចដាក់កម្មវិធីដោយប្រើ config pragma អមដោយ set-value pairs ដើម្បីបញ្ជាក់ស្ថានភាព fuse ឧ.
#pragma config WDT0N = SET
#pragma config B0DLEVEL = B0DLEVEL_4V3
វត្ថុនិងមុខងារដាច់ខាត ឥឡូវនេះ វត្ថុ និងមុខងារអាចត្រូវបានដាក់នៅអាសយដ្ឋានជាក់លាក់នៅក្នុងអង្គចងចាំ ដោយប្រើឧបករណ៍បញ្ជាក់ CCI _at (អាសយដ្ឋាន) សម្រាប់ឧ។ampលេ៖ #រួមបញ្ចូល int foobar នៅ (Ox800100); char at(Ox250) get ID(int offset) { … } អាគុយម៉ង់ទៅកាន់អ្នកបញ្ជាក់នេះត្រូវតែជាថេរដែលតំណាងឱ្យអាសយដ្ឋានដែលបៃដំបូង ឬការណែនាំនឹងត្រូវបានដាក់។ អាសយដ្ឋាន RAM ត្រូវបានចង្អុលបង្ហាញដោយប្រើអុហ្វសិត 0x800000 ។ បើកដំណើរការ CCI ដើម្បីប្រើមុខងារនេះ។
វាក្យសម្ព័ន្ធមុខងាររំខានថ្មី។ ឥឡូវនេះកម្មវិធីចងក្រងទទួលយកកម្មវិធីបញ្ជាក់ CCI interrupt (num) ដើម្បីបង្ហាញថាមុខងារ C គឺជាអ្នកដោះស្រាយការរំខាន។ អ្នកបញ្ជាក់យកលេខរំខាន ឧទាហរណ៍ampលេ៖ #រួមបញ្ចូល void interrupt(SPI STC_ vect _num) spi Isr(void) { … }
បញ្ហាថេរ
ខាងក្រោមនេះគឺជាការកែតម្រូវដែលត្រូវបានធ្វើឡើងចំពោះអ្នកចងក្រង។ ទាំងនេះអាចជួសជុលកំហុសនៅក្នុងកូដដែលបានបង្កើត ឬផ្លាស់ប្តូរប្រតិបត្តិការរបស់អ្នកចងក្រងទៅជាអ្វីដែលមានបំណង ឬបញ្ជាក់ដោយការណែនាំរបស់អ្នកប្រើប្រាស់។ លេខកំណែនៅក្នុងចំណងជើងរងបង្ហាញពីកំណែចងក្រងដំបូងដែលមានការជួសជុលសម្រាប់បញ្ហាដែលកើតឡើង។ ស្លាកសញ្ញាតង្កៀបនៅក្នុងចំណងជើងគឺជាការកំណត់អត្តសញ្ញាណបញ្ហានៅក្នុងមូលដ្ឋានទិន្នន័យតាមដាន។ ទាំងនេះអាចមានប្រយោជន៍ ប្រសិនបើអ្នកត្រូវការទាក់ទងផ្នែកជំនួយ។
ចំណាំថាបញ្ហាជាក់លាក់នៃឧបករណ៍មួយចំនួនត្រូវបានកែតម្រូវនៅក្នុងកញ្ចប់គ្រួសារឧបករណ៍ (DFP) ដែលភ្ជាប់ជាមួយឧបករណ៍។ សូមមើលកម្មវិធីគ្រប់គ្រងកញ្ចប់ MPLAB សម្រាប់ព័ត៌មានអំពីការផ្លាស់ប្តូរដែលបានធ្វើឡើងចំពោះ DFPs និងដើម្បីទាញយកកញ្ចប់ចុងក្រោយបំផុត។
កំណែ 2.40
សម្រាកពេក (XCS-2876) នៅពេលប្រើជម្រើស -mrelax កម្មវិធីចងក្រងមិនបែងចែកផ្នែកមួយចំនួនរួមគ្នាទេ ដែលបណ្តាលឱ្យមានទំហំកូដតិចជាងមុន។ វាអាចកើតឡើងជាមួយនឹងកូដដែលបានប្រើបណ្ណាល័យ 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-proem ត្រូវបានបិទដោយស្វ័យប្រវត្តិ ដែលមិនត្រឹមត្រូវទាំងស្រុង។ មុខងារ const-data-in-config-mapped-proem ឥឡូវនេះត្រូវបានបិទទាំងស្រុងក្នុងស្ថានភាពនេះ។
ការផ្លាស់ប្តូរ DFP ដើម្បីចូលប្រើ NVMCTRL (XCS-2848) បានត្រឹមត្រូវ លេខកូដចាប់ផ្ដើមពេលដំណើរការដែលប្រើដោយឧបករណ៍ AVR64EA មិនបានគិតពីការចុះឈ្មោះ NVMCTRL ស្ថិតនៅក្រោមការការពារការផ្លាស់ប្តូរការកំណត់រចនាសម្ព័ន្ធ (CCP) ហើយមិនអាចកំណត់ IO SFR ទៅទំព័រដែលប្រើដោយមុខងារចងក្រង const-data-in configmapped-proem នោះទេ។ ការផ្លាស់ប្តូរដែលបានធ្វើឡើងនៅក្នុង AVR-Ex_DFP កំណែ 2.2.55 នឹងអនុញ្ញាតឱ្យកូដចាប់ផ្តើមពេលដំណើរការដើម្បីសរសេរឱ្យបានត្រឹមត្រូវទៅការចុះឈ្មោះនេះ។
ការផ្លាស់ប្តូរ DFP ដើម្បីជៀសវាងការធ្វើផែនទីពន្លឺ (XCS-2847) ការងារដោះស្រាយសម្រាប់បញ្ហាជាមួយមុខងារឧបករណ៍គូសផែនទីពន្លឺដែលបានរាយការណ៍នៅក្នុង AVR128DA28/32/48/64 Silicon Errata (DS80000882) ត្រូវបានអនុវត្ត។ មុខងារចងក្រង const-data-in-config-mapped-proem នឹងមិនត្រូវបានអនុវត្តតាមលំនាំដើមសម្រាប់ឧបករណ៍ដែលរងផលប៉ះពាល់ទេ ហើយការផ្លាស់ប្តូរនេះនឹងបង្ហាញនៅក្នុង AVR-Ex_DFP កំណែ 2.2.160។
បង្កើតកំហុសជាមួយ sinhf ឬ coshf (XCS-2834) ការព្យាយាមប្រើមុខងារបណ្ណាល័យ sinhf() ឬ coshf() បណ្តាលឱ្យមានកំហុសតំណ ដោយពណ៌នាអំពីឯកសារយោងដែលមិនបានកំណត់។ មុខងារដែលបាត់ដែលបានយោងឥឡូវនេះត្រូវបានរួមបញ្ចូលនៅក្នុងការចែកចាយកម្មវិធីចងក្រង។
បង្កើតកំហុសជាមួយ nopa (XCS-2833) ការប្រើប្រាស់គុណលក្ខណៈ nopa ជាមួយនឹងមុខងារដែលមានឈ្មោះ assembler របស់វាដែលបានបញ្ជាក់ដោយប្រើ () បង្កសារកំហុសពី assembler ។ ការរួមបញ្ចូលគ្នានេះមិនអាចទៅរួចទេ។
ការបរាជ័យមុខងារ Variadic ជាមួយអាគុយម៉ង់ទ្រនិច (XCS-2755, XCS-2731) មុខងារដែលមានចំនួនអថេរនៃអាគុយម៉ង់រំពឹងថា 24-bit (_memo type) pointers នឹងត្រូវបានឆ្លងកាត់នៅក្នុងបញ្ជីអាគុយម៉ង់អថេរ នៅពេលដែលមុខងារ cost-data-in-proem ត្រូវបានបើក។ អាគុយម៉ង់ដែលជាចង្អុលទៅអង្គចងចាំទិន្នន័យកំពុងត្រូវបានបញ្ជូនជាវត្ថុ 16 ប៊ីត ដែលបណ្តាលឱ្យបរាជ័យកូដនៅពេលពួកគេអាននៅទីបំផុត។ នៅពេលដែលមុខងារ cons data- in-proem ត្រូវបានបើក អាគុយម៉ង់ទ្រនិច 16-bit ទាំងអស់ឥឡូវនេះត្រូវបានបំប្លែងទៅជា 24-bit pointers។ មុខងារបណ្ណាល័យ strtoxxx បរាជ័យ (XCS-2620) នៅពេលដែលមុខងារ const-data-in-proem ត្រូវបានបើក ប៉ារ៉ាម៉ែត្របញ្ចូលក្នុងមុខងារបណ្ណាល័យ strtoxxx មិនត្រូវបានធ្វើបច្ចុប្បន្នភាពត្រឹមត្រូវសម្រាប់អាគុយម៉ង់ខ្សែប្រភពដែលមិនមាននៅក្នុងអង្គចងចាំកម្មវិធីទេ។
ការជូនដំណឹងសម្រាប់ការចាក់មិនត្រឹមត្រូវ (XCS-2612) ឥឡូវនេះ កម្មវិធីចងក្រងនឹងចេញកំហុសមួយ ប្រសិនបើមុខងារ cost-in-proem ត្រូវបានបើក ហើយអាសយដ្ឋាននៃខ្សែអក្សរត្រូវបានបញ្ជូនយ៉ាងច្បាស់ទៅកាន់ទំហំអាសយដ្ឋានទិន្នន័យ (ទម្លាក់គុណវុឌ្ឍិ const) ឧទាហរណ៍ample, (uint8 t *) “ជំរាបសួរពិភពលោក!” ។ ការព្រមានគឺមានបញ្ហាប្រសិនបើអាសយដ្ឋានអាចនឹងមិនត្រឹមត្រូវ នៅពេលដែលទ្រនិចទិន្នន័យ const ត្រូវបានបញ្ជូនយ៉ាងច្បាស់ទៅកាន់ទំហំអាសយដ្ឋានទិន្នន័យ។
ការដាក់វត្ថុ const ដែលមិនបានចាប់ផ្តើម (XCS-2408) Unitialized const និង const v olatile objects មិនត្រូវបានដាក់ក្នុងអង្គចងចាំកម្មវិធីនៅលើឧបករណ៍ដែលគូសផែនទីទាំងអស់ ឬផ្នែកនៃអង្គចងចាំកម្មវិធីរបស់ពួកគេទៅក្នុងចន្លោះអាសយដ្ឋានទិន្នន័យ។ សម្រាប់ឧបករណ៍ទាំងនេះ ឥឡូវនេះ វត្ថុបែបនេះត្រូវបានដាក់ក្នុងអង្គចងចាំកម្មវិធី ដែលធ្វើឱ្យប្រតិបត្តិការរបស់វាស្របជាមួយនឹងឧបករណ៍ផ្សេងទៀត។
កំណែ 2.39 (ការចេញផ្សាយសុវត្ថិភាពមុខងារ)
គ្មាន។
កំណែ 2.36
កំហុសនៅពេលពន្យាពេល (XCS-2774) ការផ្លាស់ប្តូរតិចតួចនៅក្នុងលំនាំដើម ការបង្កើនប្រសិទ្ធភាពរបៀបឥតគិតថ្លៃបានរារាំងការបត់ថេរនៃកន្សោម operand ទៅនឹងមុខងារដែលបានភ្ជាប់មកជាមួយការពន្យារពេល ដែលបណ្តាលឱ្យពួកវាត្រូវបានចាត់ទុកថាជា noncontacts និងបង្កឱ្យមានកំហុស៖ _buil tin avr delay_ cycles expects ac ompile time integer.
កំណែ 2.35
ការបែងចែកជាប់គ្នាដោយប្រើ _at (XCS-2653) ការបែងចែកជាប់គ្នានៃកន្លែងវត្ថុជាច្រើននៅក្នុងផ្នែកដែលមានឈ្មោះដូចគ្នា និងការប្រើប្រាស់នៅ () មិនដំណើរការត្រឹមត្រូវ។ សម្រាប់អតីតample: constchararrl [ ] នៅ tri butte ((sect on(“.misses”))) នៅ (Ox50 0) = {Oxo , Ox CD} ; cost char arr2[ ] នៅ tri butte ((section(“.my s eke”))) = {Oxen, Ox FE }; គួរតែត្រូវបានដាក់ arr2 ភ្លាមៗបន្ទាប់ពី aril ។
បញ្ជាក់អាសយដ្ឋានចាប់ផ្តើមផ្នែក (XCS-2650) ជម្រើស -Wal, –section-start បានបរាជ័យដោយស្ងៀមស្ងាត់ក្នុងការដាក់ផ្នែកនៅអាសយដ្ឋានចាប់ផ្តើមដែលបានតែងតាំង។ បញ្ហានេះត្រូវបានជួសជុលសម្រាប់ផ្នែកដែលមានឈ្មោះផ្ទាល់ខ្លួន។ ទោះយ៉ាងណាក៏ដោយ វានឹងមិនដំណើរការសម្រាប់ផ្នែកស្តង់ដារណាមួយ ដូចជា . អត្ថបទឬ។ bss ដែលត្រូវតែដាក់ដោយប្រើជម្រើស -Wl, -T ។
Linker គាំងនៅពេលសម្រាក (XCS-2647) នៅពេលដែលការបង្កើនប្រសិទ្ធភាព -relax ត្រូវបានបើក ហើយមានផ្នែកកូដ ឬទិន្នន័យដែលមិនសមនឹងអង្គចងចាំដែលមាននោះ តំណភ្ជាប់បានគាំង។ ឥឡូវនេះ ក្នុងកាលៈទេសៈបែបនេះ សារកំហុសត្រូវបានចេញជំនួសវិញ។
ការចូលប្រើ EEPROM មិនល្អ (XCS-2629) ទម្លាប់ប្លុក leproma _read_ មិនដំណើរការត្រឹមត្រូវនៅលើឧបករណ៍ Mega នៅពេលដែលជម្រើស -monist-data-in-proem ត្រូវបានបើក (ដែលជាស្ថានភាពលំនាំដើម) ដែលបណ្តាលឱ្យអង្គចងចាំ EEPROM មិនត្រូវបានអានត្រឹមត្រូវ។
ការបែងចែកអង្គចងចាំមិនត្រឹមត្រូវ (XCS-2593, XCS-2651) នៅពេលដែលជម្រើស -Text ឬ -Tata linker (សម្រាប់ឧample បានឆ្លងកាត់ដោយប្រើជម្រើសកម្មវិធីបញ្ជា -Wl) ត្រូវបានបញ្ជាក់ ប្រភពដើមនៃតំបន់អត្ថបទ/ទិន្នន័យដែលត្រូវគ្នាត្រូវបានធ្វើបច្ចុប្បន្នភាព។ ទោះយ៉ាងណាក៏ដោយ អាសយដ្ឋានបញ្ចប់មិនត្រូវបានកែតម្រូវតាមនោះ ដែលអាចនាំទៅដល់តំបន់លើសពីជួរអង្គចងចាំរបស់ឧបករណ៍គោលដៅ។
លេខកូដរំខាន ATtiny មិនត្រឹមត្រូវ (XCS-2465) នៅពេលបង្កើតឧបករណ៍ Tatin ហើយការបង្កើនប្រសិទ្ធភាពត្រូវបានបិទ (-00) មុខងាររំខានអាចបណ្តាលឱ្យដំណើរការហើយចេញពីសារក្រុមដំឡើងជួរ។
ជម្រើសមិនត្រូវបានឆ្លងកាត់ (XCS-2452) នៅពេលប្រើជម្រើស -Wl ជាមួយនឹងជម្រើសតំណភ្ជាប់ជាច្រើនដែលបំបែកដោយសញ្ញាក្បៀស មិនមែនជម្រើសតំណភ្ជាប់ទាំងអស់ត្រូវបានបញ្ជូនទៅអ្នកភ្ជាប់នោះទេ។
កំហុសក្នុងការអានអង្គចងចាំកម្មវិធីដោយប្រយោល (XCS-2450) ក្នុងករណីខ្លះ កម្មវិធីចងក្រងបង្កើតកំហុសខាងក្នុង (មិនអាចស្គាល់ insn) នៅពេលអានតម្លៃពីរបៃពីទ្រនិចទៅអង្គចងចាំកម្មវិធី។
កំណែ 2.32
ការចូលប្រើបណ្ណាល័យទីពីរបរាជ័យ (XCS-2381) ការហៅកំណែ Windows នៃ xc8-ar ។ បណ្ណសារបណ្ណាល័យ exe ជាលើកទីពីរ ដើម្បីចូលប្រើបណ្ណសារបណ្ណាល័យដែលមានស្រាប់ អាចនឹងបរាជ័យ ដោយសារមិនអាចប្តូរឈ្មោះសារកំហុសបាន។
កំណែ 2.31
ការបរាជ័យក្នុងការចងក្រងដែលមិនអាចពន្យល់បាន (XCS-2367) នៅពេលដំណើរការលើប្រព័ន្ធប្រតិបត្តិការ Windows ដែលមានថតបណ្ដោះអាសន្នប្រព័ន្ធកំណត់ទៅផ្លូវដែលរួមបញ្ចូលចំណុច'។' តួអក្សរ អ្នកចងក្រងអាចបរាជ័យក្នុងការប្រតិបត្តិ។
កំណែ 2.30
ស្លាកសកលត្រូវបានដាក់ខុសបន្ទាប់ពីការគូសបញ្ជាក់ (XCS-2299) កូដការជួបប្រជុំដែលសរសេរដោយដៃដែលដាក់ស្លាកសកលនៅក្នុងលំដាប់នៃការជួបប្រជុំគ្នាដែលត្រូវបានដកចេញដោយអរូបីតាមនីតិវិធី ប្រហែលជាមិនត្រូវបានកំណត់ទីតាំងត្រឹមត្រូវទេ។
ការគាំងបន្ធូរអារម្មណ៍ (XCS-2287) ការប្រើជម្រើស -merlad អាចបណ្តាលឱ្យ linker គាំងនៅពេលដែលការបង្កើនប្រសិទ្ធភាពការបន្ធូរបន្ថយការលោតកន្ទុយព្យាយាមដកចេញការណែនាំដែលមិនមែននៅចុងបញ្ចប់នៃផ្នែកមួយ។
គាំងនៅពេលបង្កើនប្រសិទ្ធភាពស្លាកជាតម្លៃ (XCS-2282) កូដដែលប្រើ "Labels as values" ផ្នែកបន្ថែមភាសា GNU C អាចនឹងបណ្តាលឱ្យការបង្កើនប្រសិទ្ធភាពអរូបីតាមនីតិវិធីត្រូវគាំង ដោយមានកំហុសក្នុងការជួសជុលជួរ VMA ដែលបានគ្រោងទុក។
មិនដូច្នេះទេ (XCS-2271) គំរូសម្រាប់ចាប់ផ្តើម () និងមុខងារផ្សេងទៀតពី លែងបញ្ជាក់គុណវុឌ្ឍិតម្លៃមិនស្តង់ដារលើទ្រនិចខ្សែដែលបានត្រឡប់វិញនៅពេលមុខងារ-monist-data inprogmem ត្រូវបានបិទ។ ចំណាំថាជាមួយនឹងឧបករណ៍ avrxmega3 និង avertin មុខងារនេះត្រូវបានបើកជាអចិន្ត្រៃយ៍។
កម្មវិធីចាប់ផ្ដើមដែលបាត់បង់ (XCS-2269) នៅពេលដែលអថេរច្រើនជាងមួយនៅក្នុងឯកតាការបកប្រែត្រូវបានដាក់ក្នុងផ្នែកមួយ (ដោយប្រើផ្នែក ឬគុណលក្ខណៈ ((ផ្នែក))) ហើយអថេរនោះដំបូងគឺសូន្យ ឬមិនមានការចាប់ផ្តើម នោះកម្មវិធីចាប់ផ្តើមសម្រាប់អថេរផ្សេងទៀតនៅក្នុងឯកតាបកប្រែដូចគ្នាដែលត្រូវបានដាក់ក្នុងផ្នែកដូចគ្នាត្រូវបានបាត់បង់។
កំណែ 2.29 (ការចេញផ្សាយសុវត្ថិភាពមុខងារ)
គ្មាន។
កំណែ 2.20
កំហុសជាមួយពាក្យបញ្ជាវែង (XCS-1983) នៅពេលប្រើគោលដៅ AVR កម្មវិធីចងក្រងអាចឈប់ជាមួយ a file រកមិនឃើញកំហុស ប្រសិនបើបន្ទាត់ពាក្យបញ្ជាមានទំហំធំខ្លាំង និងមានតួអក្សរពិសេសដូចជា សម្រង់ សញ្ញាសម្គាល់ ជាដើម។
ផ្នែក rodata ដែលមិនបានកំណត់ (XCS-1920) កម្មវិធីភ្ជាប់ AVR បានបរាជ័យក្នុងការកំណត់អង្គចងចាំសម្រាប់ផ្នែក rodata ផ្ទាល់ខ្លួន នៅពេលសាងសង់សម្រាប់ស្ថាបត្យកម្ម avrxmega3 និង avrtiny ដែលអាចបង្កើតកំហុសត្រួតគ្នានៃអង្គចងចាំ
កំណែ 2.19 (ការចេញផ្សាយសុវត្ថិភាពមុខងារ)
គ្មាន។
កំណែ 2.10
ការបរាជ័យនៃការផ្លាស់ប្តូរទីតាំង (XCS-1891) អ្នកបែងចែកសមល្អបំផុតគឺទុក 'រន្ធ' នៃការចងចាំនៅចន្លោះផ្នែកបន្ទាប់ពីការបន្ធូរបន្ថយតំណភ្ជាប់។ ក្រៅពីការបំបែកអង្គចងចាំ នេះបង្កើនលទ្ធភាពនៃការបរាជ័យនៃការផ្លាស់ប្តូរទីតាំងរបស់តំណភ្ជាប់ដែលទាក់ទងនឹងការលោតដែលទាក់ទងនឹងកុំព្យូទ័រ ឬការហៅចេញក្រៅជួរ។
ការណែនាំមិនផ្លាស់ប្តូរដោយការសម្រាក (XCS-1889) ការបន្ធូរបន្ថយ Linker មិនបានកើតឡើងសម្រាប់ការលោត ឬហៅការណែនាំដែលគោលដៅអាចទៅដល់បាន ប្រសិនបើសម្រាក។
បាត់ មុខងារ (XCSE-388) និយមន័យជាច្រើនពី ដូចជា clock_ div_ t និង clock_prescale_set () មិនត្រូវបានកំណត់សម្រាប់ឧបករណ៍ រួមទាំង ATmega324PB, ATmega328PB, ATtiny441 និង ATtiny841។
បាត់ម៉ាក្រូ preprocessor macro_ xcs _MODE_, _xcs VERSION, _xc, និង xcs មិនត្រូវបានកំណត់ដោយស្វ័យប្រវត្តិដោយកម្មវិធីចងក្រងទេ។ ទាំងនេះគឺឥឡូវនេះ។
កំណែ 2.05
កំហុសក្នុងការចងក្រងខាងក្នុង (XCS-1822) នៅពេលបង្កើតនៅក្រោម Windows កំហុសក្នុងការចងក្រងខាងក្នុងអាចនឹងត្រូវបានបង្កើតឡើងនៅពេលបង្កើនប្រសិទ្ធភាពកូដ។
RAM លើសមិនត្រូវបានរកឃើញ (XCS-1800, XCS-1796) កម្មវិធីដែលលើសពី RAM ដែលអាចប្រើបានមិនត្រូវបានរកឃើញដោយអ្នកចងក្រងក្នុងស្ថានភាពមួយចំនួន ដែលបណ្តាលឱ្យមានការបរាជ័យកូដពេលដំណើរការ។
អង្គចងចាំពន្លឺដែលបានលុប (XCS-1792) សម្រាប់ឧបករណ៍ avrxmega3 និង avrtiny ផ្នែកនៃអង្គចងចាំពន្លឺអាចត្រូវបានទុកចោលដោយមិនមានកម្មវិធីដោយ MPLAB X IDE ។
បរាជ័យក្នុងការប្រតិបត្តិមេ (XCS-1788) នៅក្នុងស្ថានភាពមួយចំនួនដែលកម្មវិធីមិនមានអថេរសកលដែលបានកំណត់ កូដចាប់ផ្តើមពេលដំណើរការមិនចេញទេ ហើយមុខងារចម្បង () មិនត្រូវបានទៅដល់ទេ។
ព័ត៌មានអង្គចងចាំមិនត្រឹមត្រូវ (XCS-1787) សម្រាប់ឧបករណ៍ avrxmega3 និង avrtiny កម្មវិធីទំហំ avr កំពុងរាយការណ៍ថាទិន្នន័យបានតែអានកំពុងប្រើប្រាស់ RAM ជំនួសឱ្យអង្គចងចាំកម្មវិធី។
ការអានអង្គចងចាំកម្មវិធីមិនត្រឹមត្រូវ (XCS-1783) គម្រោងដែលបានចងក្រងសម្រាប់ឧបករណ៍ដែលមានអង្គចងចាំកម្មវិធីដែលបានគូសផែនទីទៅក្នុងចន្លោះអាសយដ្ឋានទិន្នន័យ ហើយដែលកំណត់វត្ថុដោយប្រើម៉ាក្រូ/គុណលក្ខណៈ PROGMEM ប្រហែលជាបានអានវត្ថុទាំងនេះពីអាសយដ្ឋានខុស។
កំហុសខាងក្នុងជាមួយគុណលក្ខណៈ (XCS-1773) កំហុសខាងក្នុងបានកើតឡើងប្រសិនបើអ្នកបានកំណត់វត្ថុទ្រនិចជាមួយនឹង
_at () ឬ attribute() tokens នៅចន្លោះឈ្មោះទ្រនិច និងប្រភេទ dereferenced សម្រាប់ exampឡេ, char *
_at ( 0x80015 0) cp; ឥឡូវនេះការព្រមានត្រូវបានចេញប្រសិនបើកូដបែបនេះត្រូវបានជួបប្រទះ។
បរាជ័យក្នុងការប្រតិបត្តិមេ (XCS-1780, XCS-1767, XCS-1754) ការប្រើអថេរ EEPROM ឬកំណត់ fuses ដោយប្រើ config pragma អាចបណ្តាលឱ្យមានការចាប់ផ្តើមទិន្នន័យមិនត្រឹមត្រូវ និង/ឬបិទដំណើរការកម្មវិធីនៅក្នុង runtime startup code មុនពេលឈានដល់ main () ។
កំហុស Fuse ជាមួយឧបករណ៍តូចៗ (XCS-1778, XCS-1742) ឧបករណ៍ attiny4/5/9/10/20/40 មានប្រវែង fuse មិនត្រឹមត្រូវដែលបានបញ្ជាក់នៅក្នុងបឋមកថារបស់ពួកគេ files ដែលនាំឱ្យមានកំហុសតំណភ្ជាប់នៅពេលព្យាយាមបង្កើតកូដដែលកំណត់ fuses ។
កំហុសផ្នែក (XCS-1777) កំហុសនៃការបែងចែកជាបន្តបន្ទាប់ត្រូវបានកែតម្រូវ។
ការគាំងក្រុមប្រមូលផ្តុំ (XCS-1761) ឧបករណ៍ដំឡើង avr-as អាចគាំងនៅពេលដែលកម្មវិធីចងក្រងត្រូវបានដំណើរការក្រោមអ៊ូប៊ុនទូ 18 ។
វត្ថុមិនត្រូវបានសម្អាត (XCS-1752) វត្ថុរយៈពេលផ្ទុកឋិតិវន្តដែលមិនទាន់បង្កើតអាចមិនត្រូវបានសម្អាតដោយលេខកូដចាប់ផ្ដើមពេលដំណើរការទេ។
មិនអើពើការបញ្ជាក់ឧបករណ៍ដែលមានជម្លោះ (XCS-1749) កម្មវិធីចងក្រងមិនបានបង្កើតកំហុសទេ នៅពេលដែលជម្រើសជាក់លាក់នៃឧបករណ៍ជាច្រើនត្រូវបានប្រើប្រាស់ និងចង្អុលបង្ហាញឧបករណ៍ផ្សេងៗ។
ខូចការចងចាំដោយហ៊ា (XCS-1748) និមិត្តសញ្ញា heap_ start កំពុងត្រូវបានកំណត់មិនត្រឹមត្រូវ ដែលបណ្តាលឱ្យមានលទ្ធភាពនៃអថេរធម្មតាត្រូវបានខូចដោយ heap ។
កំហុសក្នុងការផ្លាស់ទីលំនៅរបស់ Linker (XCS-1739) កំហុសផ្លាស់ប្តូរទីតាំងរបស់ linker អាចត្រូវបានបញ្ចេញនៅពេលដែលកូដមាន rjmp ឬ rcall ដែលមានគោលដៅពិតប្រាកដ 4k bytes ឆ្ងាយ។
កំណែ 2.00
គ្មាន។
បញ្ហាដែលគេស្គាល់
ខាងក្រោមនេះគឺជាដែនកំណត់ក្នុងប្រតិបត្តិការរបស់អ្នកចងក្រង។ ទាំងនេះអាចជាការរឹតបន្តឹងការសរសេរកូដទូទៅ ឬ
គម្លាតពីព័ត៌មានដែលមាននៅក្នុងសៀវភៅណែនាំរបស់អ្នកប្រើ។ ស្លាកសញ្ញាតង្កៀបនៅក្នុងចំណងជើងគឺជាការកំណត់អត្តសញ្ញាណបញ្ហានៅក្នុងមូលដ្ឋានទិន្នន័យតាមដាន។ វាអាចមានប្រយោជន៍ ប្រសិនបើអ្នកត្រូវការទាក់ទងផ្នែកជំនួយ។ ធាតុទាំងនោះដែលមិនមានស្លាកគឺជាការកំណត់ដែលពណ៌នាអំពីរបៀប operandi ហើយដែលទំនងជានៅមានប្រសិទ្ធភាពជាអចិន្ត្រៃយ៍។
ការរួមបញ្ចូល MPLAB X IDE
ការរួមបញ្ចូល MPLAB IDE ប្រសិនបើ Compiler នឹងត្រូវប្រើពី MPLAB IDE នោះអ្នកត្រូវតែដំឡើង MPLAB IDE មុនពេលដំឡើង Compiler ។
ការបង្កើតកូដ
ការបរាជ័យក្នុងការបែងចែកអង្គចងចាំ PA (XCS-2881) នៅពេលប្រើកម្មវិធីបង្កើនប្រសិទ្ធភាពអរូបីតាមនីតិវិធី អ្នកភ្ជាប់អាចរាយការណ៍ពីកំហុសក្នុងការបែងចែកអង្គចងចាំ នៅពេលដែលទំហំកូដជិតនឹងចំនួនអង្គចងចាំកម្មវិធីដែលមាននៅលើឧបករណ៍ ទោះបីជាកម្មវិធីគួរតែអាចបំពេញទំហំដែលអាចប្រើបានក៏ដោយ។
Smart-IO (XCS-2872) មិនសូវឆ្លាតទេ មុខងារ smart-io របស់កម្មវិធីចងក្រងនឹងបង្កើតកូដត្រឹមត្រូវ ប៉ុន្តែអនុភាពល្អបំផុតសម្រាប់មុខងារ sprint ប្រសិនបើមុខងារ coast-data-in-proem ត្រូវបានបិទ ឬប្រសិនបើឧបករណ៍មាន flash ទាំងអស់របស់វាដែលត្រូវបានគូសវាសទៅក្នុងអង្គចងចាំទិន្នន័យ។
សូម្បីតែ Smart-IO (XCS-2869) មុខងារ smart-io របស់អ្នកចងក្រងនឹងបង្កើតកូដត្រឹមត្រូវ ប៉ុន្តែល្អបំផុតនៅពេលដែលជម្រើសសំណប៉ាហាំង -floe និង -fno-buil ត្រូវបានប្រើទាំងពីរ។
ការដាក់ទិន្នន័យបានតែអានល្អបំផុត (XCS-2849) បច្ចុប្បន្ន អ្នកភ្ជាប់មិនដឹងពីផ្នែកអង្គចងចាំ APPCODE និង APPDATA ឬផ្នែក [No-]Read-While-Write នៅក្នុងផែនទីអង្គចងចាំទេ។ ជាលទ្ធផល មានឱកាសតិចតួចដែលអ្នកភ្ជាប់អាចបែងចែកទិន្នន័យបានតែអាននៅក្នុងតំបន់អង្គចងចាំដែលមិនសមស្រប។ ឱកាសនៃទិន្នន័យមិនត្រឹមត្រូវកើនឡើង ប្រសិនបើមុខងារ coast-data-in-pragma ត្រូវបានបើក ជាពិសេសប្រសិនបើមុខងារ coast-data-in-config-mapped-proem ត្រូវបានបើកផងដែរ។ មុខងារទាំងនេះអាចត្រូវបានបិទប្រសិនបើចាំបាច់។
វត្ថុ file លំដាប់ដំណើរការ (XCS-2863) លំដាប់នៃវត្ថុ files នឹងត្រូវបានដំណើរការដោយអ្នកភ្ជាប់អាចខុសគ្នាដោយផ្អែកលើការប្រើប្រាស់ការបង្កើនប្រសិទ្ធភាពអរូបីតាមនីតិវិធី (-mpa option)។ វានឹងប៉ះពាល់តែកូដដែលកំណត់មុខងារខ្សោយនៅទូទាំងម៉ូឌុលច្រើន។
កំហុសតំណភ្ជាប់ជាមួយដាច់ខាត (XCS-2777) នៅពេលដែលវត្ថុមួយត្រូវបានធ្វើឡើងដាច់ខាតនៅអាសយដ្ឋាននៅដើម RAM ហើយវត្ថុដែលមិនទាន់បានកំណត់ក៏ត្រូវបានកំណត់ផងដែរ កំហុសនៃតំណភ្ជាប់អាចត្រូវបានបង្កឡើង។
លេខសម្គាល់ការភ្ញាក់ខ្លី (XCS-2775) សម្រាប់ឧបករណ៍ ATA5700/2 ការចុះឈ្មោះ PHID0/1 ត្រូវបានកំណត់ត្រឹមតែទទឹង 16 ប៊ីត ជាជាង 32 ប៊ីត។
Linker គាំងនៅពេលហៅនិមិត្តសញ្ញា (XCS-2758) តំណភ្ជាប់អាចគាំងប្រសិនបើជម្រើសកម្មវិធីបញ្ជា -merlad ត្រូវបានប្រើនៅពេលដែលកូដប្រភពហៅនិមិត្តសញ្ញាដែលត្រូវបានកំណត់ដោយប្រើជម្រើស -Wl, –defsym linker ។
ការចាប់ផ្តើមមិនត្រឹមត្រូវ (XCS-2679) មានភាពមិនស្របគ្នារវាងតម្លៃដំបូងសម្រាប់វត្ថុដែលមានទំហំបៃបៃជាសកល/ឋិតិវន្តមួយចំនួនត្រូវបានដាក់ក្នុងអង្គចងចាំទិន្នន័យ និងកន្លែងដែលអថេរនឹងត្រូវបានចូលប្រើនៅពេលដំណើរការ។
ចាប់ផ្តើមកំណត់ទទេមិនត្រឹមត្រូវ (XCS-2652) ក្នុងករណីដែលខ្សែអក្សរប្រធានបទសម្រាប់ការបំប្លែងដោយបានចែង () មានអ្វីដែលហាក់ដូចជាលេខអណ្តែតក្នុងទម្រង់អិចស្ប៉ូណង់ស្យែល ហើយមានតួអក្សរដែលមិនរំពឹងទុកបន្ទាប់ពីតួអក្សរ អ៊ី នោះអាសយដ្ឋានទទេ ប្រសិនបើបានផ្តល់នឹងចង្អុលទៅតួអក្សរបន្ទាប់ពី អ៊ី មិនមែន អ៊ី នោះទេ។ សម្រាប់អតីតample: បានបញ្ជាក់ថា ("hooey", ទទេ); នឹងនាំឱ្យចង្អុលទៅតួអក្សរ x ទទេ។
ការហៅមុខងារប្រយោលមិនល្អ (XCS-2628) ក្នុងករណីខ្លះ ការហៅមុខងារដែលបានធ្វើឡើងតាមរយៈទ្រនិចមុខងារដែលរក្សាទុកជាផ្នែកនៃរចនាសម្ព័ន្ធអាចនឹងបរាជ័យ។
strtof ត្រឡប់សូន្យសម្រាប់អណ្តែតលេខគោលដប់ប្រាំមួយ (XCS-2626) បណ្ណាល័យមានមុខងារ strtof() et al និង scanf() et al នឹងតែងតែបំប្លែងលេខអណ្តែតលើលេខគោលដប់ប្រាំមួយ ដែលមិនបញ្ជាក់និទស្សន្តទៅជា
សូន្យ។ សម្រាប់អតីតample: stator("សត្វទីទុយ", &ទទេ); នឹងត្រឡប់តម្លៃ 0 មិនមែន 1 ទេ។
ការផ្ញើសារទីប្រឹក្សាជង់មិនត្រឹមត្រូវ (XCS-2542, XCS-2541) ក្នុងករណីខ្លះ ការព្រមានរបស់ទីប្រឹក្សាជង់ទាក់ទងនឹងការបង្កើតឡើងវិញ ឬជង់មិនកំណត់ដែលបានប្រើ (អាចតាមរយៈការប្រើប្រាស់ alloca()) មិនត្រូវបានបញ្ចេញទេ។
បរាជ័យជាមួយលេខកូដរំខានស្ទួន (XCS-2421) ប្រសិនបើមុខងាររំខានច្រើនជាងមួយមានតួដូចគ្នា អ្នកចងក្រងអាចមានលទ្ធផលសម្រាប់មុខងាររំខានមួយហៅទៅមួយទៀត។ វានឹងនាំឱ្យការចុះឈ្មោះដែលបានហៅចូលទាំងអស់ត្រូវបានរក្សាទុកដោយមិនចាំបាច់ ហើយការរំខាននឹងត្រូវបានបើក សូម្បីតែមុនពេលការផ្សាយរបស់អ្នកដោះស្រាយការរំខានបច្ចុប្បន្នបានដំណើរការ ដែលអាចនាំឱ្យមានការបរាជ័យកូដ។
Const វត្ថុមិននៅក្នុងអង្គចងចាំកម្មវិធី (XCS-2408) សម្រាប់គម្រោង avrxmega3 និង avertins វត្ថុ const unidealized ត្រូវបានដាក់ចូលទៅក្នុងអង្គចងចាំទិន្នន័យ ទោះបីជាការព្រមានបង្ហាញថាពួកវាត្រូវបានដាក់ក្នុងអង្គចងចាំកម្មវិធីក៏ដោយ។ វានឹងមិនប៉ះពាល់ដល់ឧបករណ៍ដែលមិនមានអង្គចងចាំកម្មវិធីដែលបានគូសផែនទីទៅក្នុងទំហំអង្គចងចាំទិន្នន័យនោះទេ ហើយក៏មិនប៉ះពាល់ដល់វត្ថុណាមួយដែលត្រូវបានចាប់ផ្តើមនោះទេ។
លទ្ធផលមិនល្អជាមួយនឹងផ្លូវ DFP មិនត្រឹមត្រូវ (XCS-2376) ប្រសិនបើកម្មវិធីចងក្រងត្រូវបានហៅដោយផ្លូវ DFP មិនត្រឹមត្រូវ និង 'លក្ខណៈពិសេស' file មានសម្រាប់ឧបករណ៍ដែលបានជ្រើសរើស អ្នកចងក្រងមិនរាយការណ៍អំពីកញ្ចប់គ្រួសារឧបករណ៍ដែលបាត់ទេ ហើយជំនួសមកវិញដោយជ្រើសរើស 'លក្ខណៈពិសេស' fileដែលអាចនាំឱ្យមានលទ្ធផលមិនត្រឹមត្រូវ។ 'លក្ខណៈពិសេស' files អាចនឹងមិនទាន់សម័យជាមួយ DFPs ដែលបានចែកចាយ ហើយត្រូវបានបម្រុងទុកសម្រាប់ប្រើជាមួយនឹងការធ្វើតេស្ដចងក្រងខាងក្នុងប៉ុណ្ណោះ។
អង្គចងចាំត្រួតលើគ្នាមិនត្រូវបានរកឃើញ (XCS-1966) កម្មវិធីចងក្រងមិនបានរកឃើញការត្រួតលើគ្នានៃអង្គចងចាំនៃវត្ថុដែលបានធ្វើឡើងដាច់ខាតនៅអាសយដ្ឋានមួយ (តាមរយៈនៅ ()) និងវត្ថុផ្សេងទៀតដោយប្រើផ្នែក () បញ្ជាក់ ហើយដែលត្រូវបានភ្ជាប់ទៅអាសយដ្ឋានដូចគ្នា។
ការបរាជ័យជាមួយមុខងារបណ្ណាល័យ និង _meme (XCS-1763) ហៅថា មុខងារអណ្តែត limbic ជាមួយនឹងអាគុយម៉ង់ក្នុងចន្លោះអាសយដ្ឋាន _memo អាចនឹងបរាជ័យ។ ចំណាំថាទម្លាប់បណ្ណាល័យត្រូវបានហៅពីប្រតិបត្តិករ C មួយចំនួន ដូច្នេះឧទាហរណ៍ampដូច្នេះ កូដខាងក្រោមត្រូវបានប៉ះពាល់៖ ត្រឡប់ regFloatVar > memxFloatVar;
ការអនុវត្ត limbic មានកំណត់ (AVRTC-731) សម្រាប់ផលិតផល ATTiny4/5/9/10/20/40 ការអនុវត្តបណ្ណាល័យ C/Math ស្តង់ដារនៅក្នុង limbic មានកម្រិត ឬមិនមាន។
ដែនកំណត់នៃការចងចាំកម្មវិធី (AVRTC-732) រូបភាពអង្គចងចាំកម្មវិធីលើសពី 128 kb ត្រូវបានគាំទ្រដោយ toolchain ។ ទោះយ៉ាងណាក៏ដោយ មានករណីដែលគេស្គាល់ថា linker aborts ដោយគ្មានការបន្ធូរបន្ថយ និងដោយគ្មានសារកំហុសមានប្រយោជន៍ ជាជាងបង្កើត stubs មុខងារដែលត្រូវការ នៅពេលដែលជម្រើស -relax ត្រូវបានប្រើ។
ដាក់ឈ្មោះដែនកំហិត (AVRTC-733) ចន្លោះអាស័យដ្ឋានដែលមានឈ្មោះត្រូវបានគាំទ្រដោយ toolchain ដែលស្ថិតនៅក្រោមដែនកំណត់ដែលបានរៀបរាប់នៅក្នុងផ្នែកណែនាំរបស់អ្នកប្រើ ការកំណត់ប្រភេទពិសេស។
តំបន់ពេលវេលា នេះ។ មុខងារបណ្ណាល័យសន្មតថា GMT និងមិនគាំទ្រតំបន់ម៉ោងក្នុងស្រុក ដូច្នេះម៉ោងក្នុងស្រុក () នឹងត្រឡប់ពេលវេលាដូចគ្នាជាមួយ gummite () សម្រាប់ឧ។ampលេ
ជំនួយអតិថិជន
file///Applications/microehip/xc8/v 2 .40/docs/Read me_X C 8_ សម្រាប់ A VR ។ htm
ឯកសារ/ធនធាន
![]() |
កម្មវិធីចងក្រង MICROCHIP MPLAB XC8 C [pdf] សៀវភៅណែនាំរបស់ម្ចាស់ MPLAB XC8 C, MPLAB XC8 C Compiler Software, កម្មវិធីចងក្រង, កម្មវិធី |