កម្មវិធី AN13823 IEC 60730 ថ្នាក់ B សម្រាប់ LPC553x MCUs
ការណែនាំអ្នកប្រើប្រាស់
កម្មវិធី AN13823 IEC 60730 ថ្នាក់ B សម្រាប់ LPC553x MCUs
ថ្ងៃទី 0 ដល់ថ្ងៃទី 4 ខែមករា ឆ្នាំ 2023
កំណត់ចំណាំកម្មវិធី
ព័ត៌មានឯកសារ
ព័ត៌មាន | មាតិកា |
ពាក្យគន្លឹះ | LPC553x, AN13823, IEC 60730, LPC5536-EVK, IEC60730B |
អរូបី | គោលបំណងសំខាន់នៃចំណាំកម្មវិធីនេះគឺដើម្បីពន្លឿនការអភិវឌ្ឍន៍កម្មវិធីអតិថិជន និងដំណើរការវិញ្ញាបនប័ត្រសម្រាប់ផលិតផលដោយផ្អែកលើ LPC553x MCUs ។ |
សេចក្តីផ្តើម
ស្តង់ដារសុវត្ថិភាព IEC 60730 កំណត់វិធីសាស្ត្រសាកល្បង និងរោគវិនិច្ឆ័យ ដែលធានាបាននូវប្រតិបត្តិការប្រកបដោយសុវត្ថិភាពនៃផ្នែករឹង និងកម្មវិធីគ្រប់គ្រងដែលបានបង្កប់សម្រាប់ឧបករណ៍ប្រើប្រាស់ក្នុងផ្ទះ។
ដើម្បីសម្រេចបាននូវសុវត្ថិភាពមុខងារ វាចាំបាច់ក្នុងការដកចេញនូវរាល់ហានិភ័យនៃគ្រោះថ្នាក់ដែលប្រព័ន្ធដំណើរការខុសប្រក្រតីអាចបង្កឡើង។
ស្តង់ដារ IEC 60730 ចាត់ថ្នាក់ឧបករណ៍ដែលអាចអនុវត្តបានជាបីប្រភេទ៖
- ថ្នាក់ A: មិនមានបំណងពឹងផ្អែកទៅលើសុវត្ថិភាពនៃឧបករណ៍នោះទេ។
- ថ្នាក់ B: ដើម្បីការពារប្រតិបត្តិការមិនមានសុវត្ថិភាពនៃឧបករណ៍ដែលបានគ្រប់គ្រង
- ថ្នាក់ C: ដើម្បីការពារគ្រោះថ្នាក់ពិសេស
NXP ផ្តល់នូវបណ្ណាល័យ IEC 60730 ថ្នាក់ B សុវត្ថិភាព ដើម្បីជួយអ្នកផលិតនៃការគ្រប់គ្រងដោយស្វ័យប្រវត្តិនៅក្នុងទីផ្សារឧបករណ៍ប្រើប្រាស់ដ៏ធំបំពេញតាមបទប្បញ្ញត្តិនៃថ្នាក់ B IEC 60730 ។ បណ្ណាល័យគាំទ្រ IAR, Keil, និង MCUXpresso IDEs ។
អ្នកអាចបញ្ចូលប្រព័ន្ធគោលពីរនៃបណ្ណាល័យសុវត្ថិភាព NXP ទៅក្នុងកម្មវិធីកម្មវិធីរបស់អ្នក។ សម្រាប់ការអភិវឌ្ឍន៍កាន់តែងាយស្រួលនៃកម្មវិធី IEC60730B បណ្ណាល័យក៏ផ្តល់នូវអតីតampគម្រោង។ អតីតampឡេត្រូវបានចែកចាយតាមរយៈ ស្តង់ដារសុវត្ថិភាព IEC 60730 សម្រាប់ឧបករណ៍ប្រើប្រាស់ក្នុងផ្ទះ on nxp.com webគេហទំព័រ។គោលបំណងសំខាន់នៃចំណាំកម្មវិធីនេះគឺដើម្បីពន្លឿនការអភិវឌ្ឍន៍កម្មវិធីអតិថិជន និងដំណើរការវិញ្ញាបនប័ត្រសម្រាប់ផលិតផលដោយផ្អែកលើ LPC553x MCUs ។
បណ្ណាល័យ NXP IEC 60730 ថ្នាក់ B ត្រូវបានបញ្ចប់view
បណ្ណាល័យសុវត្ថិភាពរួមមានផ្នែកដែលពឹងផ្អែកលើស្នូល និងផ្នែកដែលពឹងផ្អែកលើគ្រឿងកុំព្យូទ័រ ការធ្វើតេស្តដោយខ្លួនឯងដូចបានរាយខាងក្រោម៖
- ផ្នែកដែលពឹងផ្អែកលើស្នូល
- ស៊ីភីយូចុះឈ្មោះការធ្វើតេស្ត
- ការធ្វើតេស្តប្រឆាំងកម្មវិធី CPU
- ការធ្វើតេស្តអង្គចងចាំអថេរ
- ការធ្វើតេស្តការចងចាំដែលមិនអាចផ្លាស់ប្តូរបាន។
- ការធ្វើតេស្តជង់ - ផ្នែកដែលពឹងផ្អែកលើគ្រឿងកុំព្យូទ័រ
- តេស្តនាឡិកា
- ការធ្វើតេស្តបញ្ចូល / លទ្ធផលឌីជីថល
- ការធ្វើតេស្តបញ្ចូល / លទ្ធផលអាណាឡូក
- តេស្តឃ្លាំមើល
តារាងទី 1. ការអនុលោមតាមស្តង់ដារ IEC 60730 ថ្នាក់ B
បណ្ណាល័យ NXP IEC 60730 ថ្នាក់ B | IEC 60730 | ||
សមាសភាគ | វិធីសាស្រ្ត | ធាតុ | បានអនុវត្ត |
ស៊ីភីយូចុះឈ្មោះ | នីតិវិធីធ្វើតេស្តចុះឈ្មោះស៊ីភីយូ សាកល្បងរាល់ការចុះឈ្មោះស៊ីភីយូ CM33 សម្រាប់លក្ខខណ្ឌជាប់គាំង។ | 1.1 ចុះឈ្មោះ | ហ.២៦៤ |
កម្មវិធីរាប់ | ដំណើរការតេស្តកម្មវិធីស៊ីភីយូ សាកល្បងការចុះឈ្មោះកម្មវិធីស៊ីភីយូ សម្រាប់លក្ខខណ្ឌជាប់គាំង។ ការធ្វើតេស្តការចុះឈ្មោះកម្មវិធីអាចត្រូវបានអនុវត្តម្តងបន្ទាប់ពីការកំណត់ MCU ឡើងវិញ និងអំឡុងពេលដំណើរការផងដែរ។ បង្ខំ CPU (លំហូរកម្មវិធី) ដើម្បីចូលប្រើអាសយដ្ឋានដែលត្រូវគ្នាដែលកំពុងសាកល្បងលំនាំ ដើម្បីផ្ទៀងផ្ទាត់មុខងាររាប់កម្មវិធី។ |
1.3 កម្មវិធីរាប់ | ហ.២៦៤ |
នាឡិកា | នីតិវិធីតេស្តនាឡិកាសាកល្បងលំយោលនៃខួរក្បាលសម្រាប់ប្រេកង់ខុស។ គោលការណ៍នៃការធ្វើតេស្តនាឡិកាគឺផ្អែកលើការប្រៀបធៀបនៃប្រភពនាឡិកាឯករាជ្យពីរ។ ប្រសិនបើទម្លាប់នៃការសាកល្បងរកឃើញការផ្លាស់ប្តូរសមាមាត្រប្រេកង់រវាងប្រភពនាឡិកា លេខកូដកំហុសបរាជ័យត្រូវបានត្រឡប់។ | 3. នាឡិកា | NA |
ការចងចាំមិនប្រែប្រួល | ការធ្វើតេស្តអង្គចងចាំដែលមិនអាចផ្លាស់ប្តូរបានគឺដើម្បីពិនិត្យមើលថាតើមានការផ្លាស់ប្តូរនៅក្នុងមាតិកាអង្គចងចាំ (នៅលើបន្ទះឈីប Flash) កំឡុងពេលដំណើរការកម្មវិធី។ វិធីសាស្រ្តឆែកស៊ុំជាច្រើន (សម្រាប់ឧample, CRC16) អាចត្រូវបានប្រើសម្រាប់គោលបំណងនេះ។ | 4.1 ការចងចាំមិនប្រែប្រួល |
ហ.២៦៤ |
ការធ្វើតេស្តអង្គចងចាំអថេរ | ពិនិត្យ RAM នៅលើបន្ទះឈីបសម្រាប់កំហុស DC ។ គ្រោងការណ៍ March C និង March X ត្រូវបានប្រើជាយន្តការគ្រប់គ្រង។ | 4.2 អង្គចងចាំអថេរ | ហ.២៦៤ |
ឌីជីថល តេស្តបញ្ចូល / លទ្ធផល |
មុខងារតេស្ត DIO ត្រូវបានរចនាឡើងដើម្បីពិនិត្យមើលមុខងារបញ្ចូល និងទិន្នផលឌីជីថល និងលក្ខខណ្ឌសៀគ្វីខ្លីរវាងម្ជុលដែលបានសាកល្បង និងវ៉ុលផ្គត់ផ្គង់។tage, ដី ឬម្ជុលនៅជាប់ស្រេចចិត្ត។ | 7.1 ឌីជីថល I/O | ហ.២៦៤ |
ការធ្វើតេស្តបញ្ចូល/ទិន្នផលអាណាឡូក (I/0) | ការធ្វើតេស្តពិនិត្យមើលចំណុចប្រទាក់បញ្ចូលអាណាឡូក និងតម្លៃយោងចំនួនបី៖ សេចក្តីយោងខ្ពស់ សេចក្តីយោងទាប និងកម្រិតសំឡេងtagអ៊ី ការធ្វើតេស្តបញ្ចូលអាណាឡូកគឺផ្អែកលើការបំប្លែងនៃធាតុបញ្ចូលអាណាឡូកចំនួនបីជាមួយនឹងវ៉ុលដែលបានស្គាល់tage តម្លៃ ហើយវាពិនិត្យមើលថាតើតម្លៃបំប្លែងសមនឹងដែនកំណត់ដែលបានបញ្ជាក់។ ជាធម្មតា ដែនកំណត់គួរតែមានប្រហែល 10% ជុំវិញតម្លៃយោងដែលចង់បាន។ | 7.2 អាណាឡូក I/O | ហ.២៦៤ |
បណ្ណាល័យ NXP IEC 60730 ថ្នាក់ B ឧampគម្រោង
សម្រាប់ការអភិវឌ្ឍន៍កាន់តែងាយស្រួលនៃកម្មវិធី IEC60730B បណ្ណាល័យផ្តល់នូវអតីតample ក្របខ័ណ្ឌគម្រោង បង្កើតឡើងនៅលើក្រុមប្រឹក្សាវាយតម្លៃ LPC553x ដែលខិតខំប្រឹងប្រែង ចូល NXP.com | NXP Semiconductors (LPC5536-EVK) ។ អ្នកត្រូវតែកំណត់រចនាសម្ព័ន្ធការកំណត់បណ្ណាល័យត្រឹមត្រូវសម្រាប់គម្រោងជាក់ស្តែង។3.1 ការរួមបញ្ចូលបណ្ណាល័យសុវត្ថិភាពទៅក្នុងកម្មវិធីអ្នកប្រើប្រាស់
សុវត្ថិភាព ឧampទម្លាប់របស់គម្រោងត្រូវបានបែងចែកទៅជាដំណើរការសំខាន់ពីរ៖ ការធ្វើតេស្តសុវត្ថិភាពមួយពេលដំណើរការមុន និងការធ្វើតេស្តសុវត្ថិភាពតាមកាលកំណត់។
រូបខាងក្រោមបង្ហាញពីដំណើរការសាកល្បងសុវត្ថិភាព។ដើម្បីរួមបញ្ចូលបណ្ណាល័យសុវត្ថិភាព NXP សូមអនុវត្តជំហានខាងក្រោម៖
- ទាញយកសុវត្ថិភាព exampគម្រោងពី nxp.com
- ការកំណត់ផ្នែករឹងដោយពិចារណាលើគ្រឿងកុំព្យូទ័រដែលប្រើសម្រាប់ការធ្វើតេស្តសុវត្ថិភាពដោយខ្លួនឯង។
- កំណត់រចនាសម្ព័ន្ធបណ្ណាល័យសុវត្ថិភាពយោងទៅតាមការរចនាផ្នែករឹងពិតប្រាកដ
- បើកមុខងារតេស្តសុវត្ថិភាពម្តងមួយៗនៅក្នុង safe_config.h
• សម្រាប់ការកែកំហុស វាជាការប្រសើរក្នុងការបិទការសាកល្បងពន្លឺ និងបិទជាមុនសិន
• ថែរក្សាការរំខាន ព្រោះការធ្វើតេស្តសុវត្ថិភាពមួយចំនួនមិនអាចរំខានបានទេ។ - បង្កើតកូដកម្មវិធីដោយផ្អែកលើសុវត្ថិភាព ឧampក្របខ័ណ្ឌគម្រោង
បណ្ណាល័យសុវត្ថិភាព LPC553x ឧampគម្រោងនៅក្នុងការអនុវត្ត
4.1 ដ្យាក្រាមប្លុកផ្នែករឹង
ម៉ូឌុលខាងក្រោមត្រូវបានប្រើសម្រាប់ការធ្វើតេស្តសុវត្ថិភាពដោយខ្លួនឯងតាមលំនាំដើមដូចបង្ហាញក្នុងរូបភាពខាងក្រោម៖តារាងទី 2. ម៉ូឌុល MCU សម្រាប់ការធ្វើតេស្តដោយខ្លួនឯងដោយសុវត្ថិភាព
វត្ថុសាកល្បងបណ្ណាល័យសុវត្ថិភាព | ម៉ូឌុល MCU |
តេស្តស៊ីភីយូ | LPC5536 CM33 ស្នូល |
តេស្តនាឡិកា | ស៊ីស្ទីក CTIMER0 |
តេស្តឃ្លាំមើល | អ្នកឃ្លាំមើល CTIMER0 |
ការធ្វើតេស្តអង្គចងចាំអថេរ | SRAM |
ការធ្វើតេស្តអង្គចងចាំដែលមិនអាចផ្លាស់ប្តូរបាន។ | ពន្លឺ |
តេស្ត I/O ឌីជីថល | GPIO ១ |
តេស្តអាណាឡូក I/O | ADC0 |
4.2 ការធ្វើតេស្តស៊ីភីយូ
4.2.1 ស៊ីភីយូចុះឈ្មោះការពិពណ៌នាការធ្វើតេស្ត
នីតិវិធីធ្វើតេស្តចុះឈ្មោះស៊ីភីយូ សាកល្បងរាល់ការចុះឈ្មោះស៊ីភីយូ CM33 សម្រាប់លក្ខខណ្ឌជាប់គាំង (លើកលែងតែកម្មវិធីរាប់បញ្ចូលកម្មវិធី)។ ការធ្វើតេស្តរាប់កម្មវិធីត្រូវបានអនុវត្តជាទម្លាប់សុវត្ថិភាពដាច់ដោយឡែក។ សំណុំនៃការធ្វើតេស្តនេះរួមបញ្ចូលទាំងការធ្វើតេស្តនៃការចុះឈ្មោះដូចខាងក្រោម:
- ការចុះបញ្ជីគោលបំណងទូទៅ៖
-R0-R12 - ចុះឈ្មោះទ្រនិចជង់៖
- MSP + MSPLIM (សុវត្ថិភាព / មិនមានសុវត្ថិភាព)
- PSP + PSPLIM (សុវត្ថិភាព / មិនមានសុវត្ថិភាព) - ការចុះឈ្មោះពិសេស៖
- APSR
- ការត្រួតពិនិត្យ (សុវត្ថិភាព / មិនមានសុវត្ថិភាព)
- PRIMASK (សុវត្ថិភាព / មិនមានសុវត្ថិភាព)
- FAULTMASK (សុវត្ថិភាព / មិនមានសុវត្ថិភាព)
- BASEPRI (សុវត្ថិភាព / មិនមានសុវត្ថិភាព) - តំណភ្ជាប់ចុះឈ្មោះ៖
- អិលអិល - ការចុះឈ្មោះ FPU៖
- FPSCR
- S0 - S31
មានសំណុំនៃការធ្វើតេស្តដែលត្រូវបានអនុវត្តម្តងបន្ទាប់ពី MCU ត្រូវបានកំណត់ឡើងវិញ និងអំឡុងពេលដំណើរការផងដែរ។ អ្នកអាចប្រើការកំណត់លំនាំដើមឡើងវិញនៃបណ្ណាល័យសុវត្ថិភាព LPC553x ឧampទោះជាយ៉ាងណាក៏ដោយ គម្រោងនេះ អ្នកត្រូវតែយកចិត្តទុកដាក់លើការរំខាន ដោយសារការធ្វើតេស្តចុះឈ្មោះស៊ីភីយូមួយចំនួនមិនអាចរំខានបានទេ។
- សាកល្បងសុវត្ថិភាពតែម្តង
– SafetyCpuAfterResetTest /* ការរំខានត្រូវតែបិទមួយរយៈ */
- FS_CM33_CPU_ចុះឈ្មោះ
– FS_CM33_CPU_NonStackedRegister
- FS_CM33_CPU_SPmain_S
– FS_CM33_CPU_SPmain_Limit_S
- FS_CM33_CPU_SPprocess_S
– FS_CM33_CPU_SPprocess_Limit_S
- FS_CM33_CPU_Primask_S
– FS_FAIL_CPU_PRIMASK
– FS_CM33_CPU_Special8PriorityLevels_S
- FS_CM33_CPU_Control
- FS_CM33_CPU_Float1
- FS_CM33_CPU_Float2 - ការធ្វើតេស្តសុវត្ថិភាពតាមកាលកំណត់
- SafetyCpuBackgroundTest /* តេស្តចុះឈ្មោះស៊ីភីយូរំខាន */
- FS_CM33_CPU_ចុះឈ្មោះ
– FS_CM33_CPU_NonStackedRegister
– FS_CM33_CPU_Control /* ការរំខានត្រូវតែបិទមួយរយៈ */
– FS_CM33_CPU_SPprocess_S /* ការរំខានត្រូវតែបិទមួយរយៈ */
4.3 ការធ្វើតេស្តប្រឆាំងកម្មវិធីស៊ីភីយូ
4.3.1 ការពិពណ៌នាអំពីការធ្វើតេស្តប្រឆាំងកម្មវិធីស៊ីភីយូ
នីតិវិធីសាកល្បងការចុះឈ្មោះកម្មវិធីស៊ីភីយូ សាកល្បងការចុះឈ្មោះកម្មវិធីស៊ីភីយូ សម្រាប់លក្ខខណ្ឌជាប់គាំង។ ផ្ទុយពីការចុះឈ្មោះ CPU ផ្សេងទៀត កម្មវិធីរាប់មិនអាចត្រូវបានបំពេញដោយគំរូសាកល្បងទេ។ វាចាំបាច់ក្នុងការបង្ខំស៊ីភីយូ (លំហូរកម្មវិធី) ដើម្បីចូលប្រើអាសយដ្ឋានដែលត្រូវគ្នាដែលកំពុងសាកល្បងលំនាំ ដើម្បីផ្ទៀងផ្ទាត់មុខងាររាប់កម្មវិធី។
ចំណាំថាការធ្វើតេស្តរាប់កម្មវិធីមិនអាចរំខានបានទេ។ការធ្វើតេស្តការចុះឈ្មោះកម្មវិធីអាចត្រូវបានអនុវត្តម្តងបន្ទាប់ពី MCU ត្រូវបានកំណត់ឡើងវិញ និងអំឡុងពេលដំណើរការផងដែរ។
- សាកល្បងសុវត្ថិភាពតែម្តង
- SafetyPcTest
- FS_CM33_PC_Test - ការធ្វើតេស្តសុវត្ថិភាពតាមកាលកំណត់
- SafetyIsrFunction> SafetyPcTest
- FS_CM33_PC_Test
4.4 ការធ្វើតេស្តអង្គចងចាំអថេរ
4.4.1 ការពិពណ៌នាការធ្វើតេស្តអង្គចងចាំអថេរ
ការធ្វើតេស្តអង្គចងចាំអថេរសម្រាប់ឧបករណ៍ដែលគាំទ្រពិនិត្យមើល RAM នៅលើបន្ទះឈីបសម្រាប់កំហុស DC ។
ផ្ទៃជង់កម្មវិធីក៏អាចត្រូវបានសាកល្បងផងដែរ។ គ្រោងការណ៍ March C និង March X ត្រូវបានប្រើជាយន្តការគ្រប់គ្រង។មុខងារគ្រប់គ្រងគឺខុសគ្នាសម្រាប់ការធ្វើតេស្តបន្ទាប់ពីការកំណត់ឡើងវិញ និងសម្រាប់ការធ្វើតេស្តពេលដំណើរការ។
ការធ្វើតេស្តបន្ទាប់ពីការកំណត់ឡើងវិញត្រូវបានធ្វើដោយមុខងារ FS_CM33_RAM_AfterReset () ។ មុខងារនេះត្រូវបានគេហៅថាម្តងបន្ទាប់ពីការកំណត់ឡើងវិញ នៅពេលដែលពេលវេលាប្រតិបត្តិមិនសំខាន់។ កក់ទុកទំហំអង្គចងចាំដោយឥតគិតថ្លៃសម្រាប់តំបន់បម្រុងទុក។ ប៉ារ៉ាម៉ែត្រទំហំប្លុកមិនអាចធំជាងទំហំនៃផ្ទៃបម្រុងទុកទេ។ មុខងារដំបូងពិនិត្យមើលផ្ទៃបម្រុងទុក បន្ទាប់មករង្វិលជុំចាប់ផ្តើម។ ប្លុកនៃអង្គចងចាំត្រូវបានចម្លងទៅតំបន់បម្រុងទុក ហើយទីតាំងរបស់ពួកគេត្រូវបានត្រួតពិនិត្យដោយការធ្វើតេស្តខែមីនារៀងៗខ្លួន។ ទិន្នន័យត្រូវបានចម្លងត្រឡប់ទៅផ្ទៃអង្គចងចាំដើមវិញ ហើយអាសយដ្ឋានពិតប្រាកដដែលមានទំហំប្លុកត្រូវបានធ្វើបច្ចុប្បន្នភាព។ វាត្រូវបានធ្វើម្តងទៀតរហូតដល់ប្លុកចុងក្រោយនៃអង្គចងចាំត្រូវបានសាកល្បង។ ប្រសិនបើរកឃើញកំហុស DC មុខងារនឹងត្រឡប់លំនាំបរាជ័យ។
ការធ្វើតេស្តពេលវេលាដំណើរការត្រូវបានធ្វើដោយមុខងារ FS_CM33_RAM_Runtime () ។ ដើម្បីសន្សំសំចៃពេលវេលា វាសាកល្បងតែផ្នែកមួយប៉ុណ្ណោះ (កំណត់ដោយ RAM_TEST_BLOCK_SIZE) នៃ SRAM ទាន់ពេល។ ខណៈពេលដែលការធ្វើតេស្តបន្ទាប់ពីការកំណត់ឡើងវិញពិនិត្យមើលប្លុកទាំងមូលនៃទំហំ RAM ដែលទាក់ទងនឹងសុវត្ថិភាព។ នៅក្នុងបណ្ណាល័យសុវត្ថិភាព LPC553x ឧample project, RAM_TEST_BLOCK_SIZE ត្រូវបានកំណត់រចនាសម្ព័ន្ធទៅ 0x4 វាមានន័យថា 32 bytes នៃ RAM នឹងត្រូវបានសាកល្បងក្នុងទម្រង់តេស្ត RAM ដែលកំពុងដំណើរការមួយ។
- សាកល្បងសុវត្ថិភាពតែម្តង
– SafetyRamAfterResetTest /* សាកល្បងទំហំ RAM ទាំងមូលនៃផ្នែក “.safety_ram” មុនពេលដំណើរការទម្លាប់សំខាន់។ */
- FS_CM33_RAM_AfterReset - ការធ្វើតេស្តសុវត្ថិភាពតាមកាលកំណត់
– SafetyIsrFunction(&g_sSafetyCommon, &g_sSafetyRamTest, &g_sSafetyRamStackTest) /* ប្រតិបត្តិក្នុង Systick ISR មិនអាចរំខានបានទេ */
- FS_CM33_RAM_ពេលរត់
4.4.2 ការកំណត់រចនាសម្ព័ន្ធការធ្វើតេស្តអង្គចងចាំអថេរ
ការកំណត់រចនាសម្ព័ន្ធនៃការធ្វើតេស្តអង្គចងចាំអថេរនៅក្នុង :ការកំណត់រចនាសម្ព័ន្ធនៃប្លុក RAM សុវត្ថិភាពគឺស្ថិតនៅក្នុង :
កំណត់ប្លុក SAFETY_RAM_BLOCK ជាមួយការតម្រឹម = 8
{ផ្នែក .safety_ram };
កន្លែងនៅក្នុង RAM_region {block SAFETY_RAM_BLOCK};
ចំណាំថាមានតែ .safety_ram ប៉ុណ្ណោះដែលត្រូវបានគ្របដណ្តប់ដោយការធ្វើតេស្តអង្គចងចាំអថេរ។ បន្ថែមអថេរទៅក្នុងផ្នែក .safety_ram ដោយដៃ ដូចបានបង្ហាញខាងក្រោមក្នុង main.c ។4.5 ការធ្វើតេស្តអង្គចងចាំដែលមិនអាចផ្លាស់ប្តូរបាន។
4.5.1 ការពិពណ៌នាការធ្វើតេស្តអង្គចងចាំមិនប្រែប្រួល
អង្គចងចាំដែលមិនអាចផ្លាស់ប្តូរបាននៅលើ LPC5536 MCU គឺជាពន្លឺនៅលើបន្ទះឈីប។ គោលការណ៍នៃការធ្វើតេស្តអង្គចងចាំដែលមិនអាចផ្លាស់ប្តូរបានគឺដើម្បីពិនិត្យមើលថាតើមានការផ្លាស់ប្តូរនៅក្នុងមាតិកាអង្គចងចាំកំឡុងពេលប្រតិបត្តិកម្មវិធីដែរឬទេ។ វិធីសាស្ត្រ Checksum ជាច្រើនអាចត្រូវបានប្រើសម្រាប់គោលបំណងនេះ។ checksum គឺជាក្បួនដោះស្រាយដែលគណនាហត្ថលេខានៃទិន្នន័យដែលដាក់ក្នុងអង្គចងចាំដែលបានសាកល្បង។ បន្ទាប់មកហត្ថលេខានៃប្លុកអង្គចងចាំនេះត្រូវបានគណនាតាមកាលកំណត់ ហើយប្រៀបធៀបជាមួយហត្ថលេខាដើម។
ហត្ថលេខាសម្រាប់អង្គចងចាំដែលបានកំណត់ត្រូវបានគណនាក្នុងដំណាក់កាលភ្ជាប់នៃកម្មវិធី។ ហត្ថលេខាត្រូវតែរក្សាទុកទៅក្នុងអង្គចងចាំដែលមិនអាចផ្លាស់ប្តូរបាន ប៉ុន្តែនៅក្នុងតំបន់ផ្សេងពីអ្វីដែល checksum ត្រូវបានគណនាសម្រាប់។ នៅក្នុងពេលដំណើរការ និងបន្ទាប់ពីការកំណត់ឡើងវិញ ក្បួនដោះស្រាយដូចគ្នាត្រូវតែត្រូវបានអនុវត្តនៅក្នុងកម្មវិធីដើម្បីគណនា checksum ។ លទ្ធផលត្រូវបានប្រៀបធៀប។ ប្រសិនបើពួកវាមិនស្មើគ្នា ស្ថានភាពកំហុសសុវត្ថិភាពកើតឡើង។
នៅពេលអនុវត្តបន្ទាប់ពីការកំណត់ឡើងវិញ ឬនៅពេលដែលមិនមានការរឹតបន្តឹងលើពេលវេលាប្រតិបត្តិ ការហៅមុខងារអាចមានដូចខាងក្រោម។
• សាកល្បងសុវត្ថិភាពតែម្តង
- SafetyFlashAfterResetTest
– FS_FLASH_C_HW16_K /* គណនា CRC នៃ Flash ទាំងមូល */
នៅក្នុងពេលដំណើរការកម្មវិធី និងជាមួយនឹងពេលវេលាកំណត់សម្រាប់ការអនុវត្ត កាកបាទក្រហមកម្ពុជាត្រូវបានគណនាតាមលំដាប់លំដោយ។ វាមានន័យថាប៉ារ៉ាម៉ែត្របញ្ចូលមានអត្ថន័យផ្សេងគ្នានៅក្នុងការប្រៀបធៀបជាមួយនឹងការហៅបន្ទាប់ពីកំណត់ឡើងវិញ។ ការអនុវត្តឧample មានដូចខាងក្រោម៖
• ការធ្វើតេស្តសុវត្ថិភាពតាមកាលកំណត់
- SafetyFlashRuntimeTest
– FS_FLASH_C_HW16_K /* គណនាប្លុក CRC តាមប្លុក */
- SafetyFlashTestHandling /* ប្រៀបធៀប CRC នៅពេលដែលប្លុក Flash ទាំងអស់ត្រូវបានគណនា។ */
4.5.2 ការកំណត់រចនាសម្ព័ន្ធការធ្វើតេស្តអង្គចងចាំមិនប្រែប្រួល
នៅក្នុងបណ្ណាល័យសុវត្ថិភាព LPC553x ឧample គម្រោង ការបែងចែកពន្លឺត្រូវបានបង្ហាញខាងក្រោមដូចដែលបានបញ្ជាក់នៅក្នុង Linker file . វត្ថុ fileស និង ត្រូវបានដាក់ក្នុងប្លុកពន្លឺសុវត្ថិភាព ដែលត្រូវបានត្រួតពិនិត្យដោយការធ្វើតេស្តអង្គចងចាំដែលមិនអាចផ្លាស់ប្តូរបាន។ អ្នកអាចដាក់វត្ថុបន្ថែម files ចូលទៅក្នុងតំបន់ SAFETY_FLASH_BLOCK Flash ដោយកែប្រែ Linker file តាម។មាន checksums ពីរដែលត្រូវប្រៀបធៀបក្នុងអំឡុងពេលដំណើរការ MCU ដើម្បីផ្ទៀងផ្ទាត់ថាតើមាតិកានៃទំហំពន្លឺដែលបានផ្តល់ឱ្យត្រូវបានកែប្រែ៖
- Checksum គណនាដោយ Linker នៅ Compiling/Linking
- Checksum គណនាដោយ MCU នៅពេលដំណើរការ
និយមន័យនៃទីតាំងដើម្បីដាក់លទ្ធផល checksum (គណនាជាមុនដោយឧបករណ៍ភ្ជាប់) គឺនៅក្នុង :
កំណត់និមិត្តសញ្ញា __FlashCRC_start__ = 0x0300; /* សម្រាប់ដាក់ checksum */
កំណត់និមិត្តសញ្ញា __FlashCRC_end__ = 0x030F; /* សម្រាប់ដាក់ checksum */
កំណត់តំបន់ CRC_region = mem៖ [ពី __FlashCRC_start__ ដល់ __FlashCRC_end__];
កំណត់ប្លុក CHECKSUM ជាមួយការតម្រឹម = 8 {ផ្នែក។ checksum }; កន្លែងនៅក្នុង CRC_region { ប្លុក CHECKSUM};
យក IAR IDE ឧទាហរណ៍ampនៅក្នុងការកំណត់ជម្រើសគម្រោង> សកម្មភាពបង្កើត> បន្ទាត់ពាក្យបញ្ជាក្រោយការកសាង។បន្ទាត់ពាក្យបញ្ជា៖
ielftool –fill 0xFF;c_checksumStart-c_checksumEnd +3 –checksum __checksum:2,crc16,0x0;c_checksumStart-c_checksumEnd +3 –verbose “$TARGET_PATH$” “$TARGET_PATH$”
Linker គណនា checksum ដើមនៃអាសយដ្ឋាន flash ពី _checksumStart ទៅ c_checksumEnd បន្ទាប់មកដាក់លទ្ធផល checksum ទៅជា _checksum ដែលស្ថិតនៅក្នុងប្លុក CHECKSUM ដែលកំណត់ដោយ Linker file.
និយមន័យនៃទំហំពន្លឺដែលបានបញ្ជាក់ដែលត្រូវពិនិត្យគឺស្ថិតនៅក្នុង :
កំណត់ប្លុក SAFETY_FLASH_BLOCK ជាមួយការតម្រឹម = 8, លំដាប់ថេរ { ផ្នែកដែលអានបានតែ checksum_start_mark, ផ្នែក .text object main.o, ផ្នែក .text object safety_cm33_lpc.o, ផ្នែក .rodata object safety_cm33_lpc.o, readonly section checksum_end_mark };
កន្លែងនៅក្នុង ROM_region { ប្លុក SAFETY_FLASH_BLOCK};
4.6 ការធ្វើតេស្តជង់
4.6.1 ការពិពណ៌នាការធ្វើតេស្តជង់
ការធ្វើតេស្តជង់គឺជាការធ្វើតេស្តបន្ថែម ដែលមិនបានបញ្ជាក់ដោយផ្ទាល់នៅក្នុងតារាងឧបសម្ព័ន្ធ H IEC60730 ទេ។
ទម្លាប់នៃការធ្វើតេស្តនេះត្រូវបានប្រើដើម្បីសាកល្បងលក្ខខណ្ឌលើសចំណុះ និងលំហូរក្រោមនៃជង់កម្មវិធី។ ការធ្វើតេស្តនៃកំហុសជាប់គាំងនៅក្នុងតំបន់អង្គចងចាំដែលកាន់កាប់ដោយជង់ត្រូវបានគ្របដណ្តប់ដោយការធ្វើតេស្តអង្គចងចាំអថេរ។ ការហៀរ ឬហូរចេញនៃជង់អាចកើតឡើង ប្រសិនបើជង់ត្រូវបានគ្រប់គ្រងមិនត្រឹមត្រូវ ឬដោយការកំណត់តំបន់ជង់ "ទាបពេក" សម្រាប់កម្មវិធីដែលបានផ្តល់ឱ្យ។
គោលការណ៍នៃការធ្វើតេស្តគឺដើម្បីបំពេញតំបន់ខាងក្រោមនិងខាងលើជង់ជាមួយនឹងលំនាំដែលគេស្គាល់។ តំបន់ទាំងនេះត្រូវតែកំណត់នៅក្នុងការកំណត់រចនាសម្ព័ន្ធតំណភ្ជាប់ fileរួមជាមួយនឹងជង់។ មុខងារចាប់ផ្តើមបន្ទាប់មកបំពេញតំបន់ទាំងនេះជាមួយនឹងគំរូរបស់អ្នក។ លំនាំត្រូវតែមានតម្លៃដែលមិនបង្ហាញនៅកន្លែងផ្សេងក្នុងកម្មវិធី។ គោលបំណងគឺដើម្បីពិនិត្យមើលថាតើលំនាំពិតប្រាកដនៅតែត្រូវបានសរសេរនៅក្នុងតំបន់ទាំងនេះ។ ប្រសិនបើវាមិនមែនទេ វាគឺជាសញ្ញានៃឥរិយាបទជង់មិនត្រឹមត្រូវ។ ប្រសិនបើវាកើតឡើង នោះតម្លៃត្រឡប់ FAIL ពីមុខងារសាកល្បងត្រូវតែដំណើរការជាកំហុសសុវត្ថិភាព។ការធ្វើតេស្តត្រូវបានអនុវត្តបន្ទាប់ពីការកំណត់ឡើងវិញនិងកំឡុងពេលដំណើរការកម្មវិធីតាមរបៀបដូចគ្នា។
- សាកល្បងសុវត្ថិភាពតែម្តង
- SafetyStackTestInit
– FS_CM33_STACK_Init /* សរសេរ STACK_TEST_PATTERN (0x77777777) ទៅ STACK_TEST_BLOCK */
- ការធ្វើតេស្តសុវត្ថិភាព
– FS_CM33_STACK_Test /* ពិនិត្យខ្លឹមសារនៃ STACK_TEST_BLOCK បានបរាជ័យ ប្រសិនបើតម្លៃមិនស្មើនឹង STACK_TEST_PATTERN (0x77777777)។ - ការធ្វើតេស្តសុវត្ថិភាពតាមកាលកំណត់
- ការធ្វើតេស្តសុវត្ថិភាព
– FS_CM33_STACK_Init /* សរសេរ STACK_TEST_PATTERN (0x77777777) ទៅ STACK_TEST_BLOCK */
- ការធ្វើតេស្តសុវត្ថិភាព
– FS_CM33_STACK_Test /* ពិនិត្យខ្លឹមសារនៃ STACK_TEST_BLOCK បរាជ័យ ប្រសិនបើតម្លៃមិនស្មើនឹង STACK_TEST_PATTERN (0x77777777)
4.6.2 ការកំណត់រចនាសម្ព័ន្ធការធ្វើតេស្តជង់
ការកំណត់រចនាសម្ព័ន្ធនៃការធ្វើតេស្តជង់គឺនៅក្នុង និងអ្នកភ្ជាប់ file 4.7 ការធ្វើតេស្តនាឡិកា
4.7.1 ការពិពណ៌នាអំពីការធ្វើតេស្តនាឡិកា
គោលការណ៍នៃការធ្វើតេស្តនាឡិកាគឺផ្អែកលើការប្រៀបធៀបនៃប្រភពនាឡិកាឯករាជ្យពីរ។
នៅក្នុងបណ្ណាល័យសុវត្ថិភាព LPC553x ឧample project, CTIMER0 និង Systick នៅលើ MCU LPC5536 ត្រូវបានប្រើជានាឡិកាឯករាជ្យពីរសម្រាប់ការធ្វើតេស្តនាឡិកាសុវត្ថិភាព វាមិនអាស្រ័យលើបន្ទះផ្នែករឹង LPC5536-EVK ទេ។
ទម្លាប់នៃការធ្វើតេស្តនាឡិកាត្រូវបានប្រតិបត្តិក្នុងការធ្វើតេស្តសុវត្ថិភាពតាមកាលកំណត់តែប៉ុណ្ណោះ។
- សាកល្បងសុវត្ថិភាពតែម្តង
- គ្មានការធ្វើតេស្តនាឡិកា - ការធ្វើតេស្តសុវត្ថិភាពតាមកាលកំណត់
- តេស្តនាឡិកាសុវត្ថិភាព
- តេស្តនាឡិកាសុវត្ថិភាព
4.7.2 ការកំណត់រចនាសម្ព័ន្ធការធ្វើតេស្តនាឡិកា
ដោយសារនាឡិកាឯករាជ្យពីរត្រូវបានទាមទារសម្រាប់ការធ្វើតេស្តនាឡិកានៅក្នុងបណ្ណាល័យសុវត្ថិភាព LPC553x exampគម្រោង៖
- កម្មវិធីកំណត់ម៉ោង SYSTICK មានប្រភពមកពី PLL0 150 M (ប្រភពពីគ្រីស្តាល់ 16 MHz ខាងក្រៅ)
- កម្មវិធីកំណត់ម៉ោង CTIMER0 មានប្រភពពីខាងក្នុង FRO_96M
ការកំណត់រចនាសម្ព័ន្ធលម្អិតនៃ Systick និង CTIMER0 ត្រូវបានបង្ហាញខាងក្រោម៖
- ការកំណត់រចនាសម្ព័ន្ធ Systick៖ SystickISR_Freq = 1000 Hz ដោយកំណត់តម្លៃផ្ទុកឡើងវិញ 150,000 ក្រោម 150 MHz core clock
- ការកំណត់រចនាសម្ព័ន្ធ CTIMER៖ CTIMER_Freq = 96 MHz ប្រភពពី 96 MHz FRO_96M នាឡិកា
- បញ្ជរ CTIMER ដែលរំពឹងទុកគួរតែជា CTIMER _Freq/SystickISR_Freq = 96 MHz / 1000 = 96,000
- នៅក្នុង Systick នីមួយៗរំខាន ISR រក្សាទុកតម្លៃរាប់ CTIMER
- នៅក្នុងពេលរត់ ខណៈពេល (1) រង្វិលជុំ សូមពិនិត្យមើល៖ (96,000 – 20 %) < CTIMER រំពឹងរាប់ < (96,000 + 20 %)
ការកំណត់រចនាសម្ព័ន្ធនៃការធ្វើតេស្តនាឡិកាគឺនៅក្នុង Safety_config.h ។
យោងតាមកម្មវិធីជាក់ស្តែង អ្នកអាចផ្លាស់ប្តូរឧទាហរណ៍ CTIMER សម្រាប់ការធ្វើតេស្តនាឡិកាសុវត្ថិភាពដោយកំណត់ម៉ាក្រូ REF_TIMER_USED ។ ដូចគ្នានេះផងដែរ អ្នកត្រូវតែកំណត់រចនាសម្ព័ន្ធ REF_TIMER_CLOCK_FREQUENCY យោងទៅតាមប្រេកង់នាឡិកាពិតប្រាកដ។ 4.8 ការធ្វើតេស្ត I/O ឌីជីថល
4.8.1 ការពិពណ៌នាការធ្វើតេស្ត I/O ឌីជីថល
នៅក្នុងបណ្ណាល័យសុវត្ថិភាព LPC553x ឧample គម្រោង GPIO P1_4 និង P1_17 នៅលើ LPC5536-EVK ត្រូវបានជ្រើសរើសសម្រាប់ការធ្វើតេស្ត I/O ឌីជីថលសុវត្ថិភាព ម្ជុលទាំងពីរនេះត្រូវបានភ្ជាប់ទៅបឋមកថា J10 នៅលើបន្ទះ LPC553x EVK ។
ទម្លាប់នៃការធ្វើតេស្ត I/O ឌីជីថលត្រូវបានបែងចែកទៅជាដំណើរការចម្បងពីរ៖ ការធ្វើតេស្តសុវត្ថិភាពមួយពេលដំណើរការជាមុន និងការធ្វើតេស្តសុវត្ថិភាពតាមកាលកំណត់ពេលដំណើរការ។
- សាកល្បងសុវត្ថិភាពតែម្តង
- តេស្តសុវត្ថិភាពឌីជីថល
- SafetyDigitalInputOutput_ShortSupplyTest
- SafetyDigitalInputOutput_ShortAdjTest - ការធ្វើតេស្តសុវត្ថិភាពតាមកាលកំណត់
- តេស្តសុវត្ថិភាពឌីជីថល
- SafetyDigitalInputOutput_ShortSupplyTest
4.8.2 ការកំណត់រចនាសម្ព័ន្ធតេស្ត I/O ឌីជីថល
ការកំណត់រចនាសម្ព័ន្ធនៃការធ្វើតេស្ត I/O ឌីជីថលគឺនៅក្នុង safe_test_items.c ។ការអនុវត្តការធ្វើតេស្ត I/O ឌីជីថលត្រូវតែសម្របទៅនឹងកម្មវិធីចុងក្រោយ។ សូមប្រយ័ត្នជាមួយការតភ្ជាប់ផ្នែករឹង និងការរចនា។ អ្នកអាចផ្លាស់ប្តូរ GPIO ដើម្បីសុវត្ថិភាព
ការធ្វើតេស្ត I/O ឌីជីថល ដោយកំណត់រចនាសម្ព័ន្ធ dio_safety_test_items[] នៅក្នុង safe_test_items.c. ក្នុងករណីភាគច្រើន ម្ជុលដែលបានសាកល្បង (ហើយជួនកាលក៏ជំនួយផងដែរ) ត្រូវតែកំណត់រចនាសម្ព័ន្ធឡើងវិញក្នុងអំឡុងពេលដំណើរការកម្មវិធី។ វាត្រូវបានណែនាំឱ្យប្រើម្ជុលដែលមិនប្រើសម្រាប់ការធ្វើតេស្ត I/O ឌីជីថល។
4.9 តេស្តអាណាឡូក I/O
4.9.1 ការពិពណ៌នាការធ្វើតេស្តអាណាឡូក I/O
នៅក្នុងបណ្ណាល័យសុវត្ថិភាព LPC553x ឧample project, P0_16/ADC0IN3B, P0_31/ADC0IN8A, និង P0_15/ADC0IN3A នៅលើ LPC5536-EVK ត្រូវបានជ្រើសរើសសម្រាប់ការធ្វើតេស្ត analog I/O សុវត្ថិភាព ពីព្រោះម៉ូឌុល ADC នៅលើ MCU LPC5536 មិនអនុញ្ញាតឱ្យភ្ជាប់ VREFH, VREFL ខាងក្នុងទៅ ADC ទេ។ បញ្ចូល។ វាចាំបាច់សម្រាប់អ្នកប្រើប្រាស់ដើម្បីភ្ជាប់សញ្ញាទាំងនេះ (សម្រាប់ការធ្វើតេស្តអាណាឡូក I/O) ជាមួយនឹងខ្សែហោះហើរដូចបានបង្ហាញខាងក្រោម។
- GND បានភ្ជាប់ទៅ P0_16/ADC0IN3B (J9-5) សម្រាប់ការធ្វើតេស្ត ADC VREFL
- 3.3 V បានភ្ជាប់ទៅ P0_31/ADC0IN8A (J9-31) សម្រាប់ការធ្វើតេស្ត ADC VREFH
- 1.65 V បានភ្ជាប់ទៅ P0_15/ADC0IN3A (J9-1) សម្រាប់ការធ្វើតេស្ត ADC Bandgap
ទម្លាប់នៃការធ្វើតេស្ត I/O អាណាឡូក ត្រូវបានបែងចែកជាពីរដំណើរការសំខាន់ៗ៖
- សាកល្បងសុវត្ថិភាពតែម្តង
- តេស្តសុវត្ថិភាពអាណាឡូក - ការធ្វើតេស្តសុវត្ថិភាពតាមកាលកំណត់
- តេស្តសុវត្ថិភាពអាណាឡូក
4.9.2 ការកំណត់រចនាសម្ព័ន្ធតេស្តអាណាឡូក I/O
ការប្រតិបត្តិនៃការធ្វើតេស្ត I/O អាណាឡូកត្រូវតែសម្របទៅនឹងកម្មវិធីចុងក្រោយ។ សូមប្រយ័ត្នជាមួយការតភ្ជាប់ផ្នែករឹង និងការរចនា។ អ្នកអាចផ្លាស់ប្តូរបណ្តាញ ADC សម្រាប់ការធ្វើតេស្តអាណាឡូក I/O សុវត្ថិភាពដោយកំណត់រចនាសម្ព័ន្ធ FS_CFG_AIO_CHANNELS_INIT និង
FS_CFG_AIO_CHANNELS_SIDE_INIT ក្នុង safety_config.h.
- FS_CFG_AIO_CHANNELS_INIT បង្ហាញលេខប៉ុស្តិ៍ ADC ។
- FS_CFG_AIO_CHANNELS_SIDE_INIT បង្ហាញផ្នែកខាងឆានែល ADC ។
ដូចបង្ហាញក្នុងរូបខាងលើ៖
- ធាតុទីមួយត្រូវគ្នាទៅនឹងការធ្វើតេស្ត ADC VREFL
- ធាតុទីពីរត្រូវគ្នាទៅនឹងការធ្វើតេស្ត ADC VREFH
- ធាតុទីបីត្រូវគ្នាទៅនឹងការធ្វើតេស្ត ADC Bandgap
សម្រាប់អតីតample, “3” នៅក្នុង FS_CFG_AIO_CHANNELS_INIT និង “1” នៅក្នុង
FS_CFG_AIO_CHANNELS_SIDE_INIT បង្ហាញថា ADC0 channel 3 side B ត្រូវបានជ្រើសរើសសម្រាប់ការធ្វើតេស្ត ADC VREFL។
4.10 ការធ្វើតេស្តឃ្លាំមើល
4.10.1 ការពិពណ៌នាអំពីការធ្វើតេស្តរបស់អង្គការឃ្លាំមើល
ការធ្វើតេស្តឃ្លាំមើលមិនត្រូវបានបញ្ជាក់ដោយផ្ទាល់នៅក្នុងតារាង IEC60730 - ឧបសម្ព័ន្ធ H នោះទេ ទោះជាយ៉ាងណាក៏ដោយ វាបំពេញផ្នែកខ្លះនៃតម្រូវការសុវត្ថិភាពយោងទៅតាម IEC 60730-1, IEC 60335, UL 60730 និង UL 1998 ។
ការធ្វើតេស្តឃ្លាំមើលផ្តល់នូវការសាកល្បងមុខងារកម្មវិធីកំណត់ម៉ោងឃ្លាំមើល។ ការធ្វើតេស្តត្រូវបានដំណើរការតែម្តងគត់បន្ទាប់ពីការកំណត់ឡើងវិញ។ ការធ្វើតេស្តបណ្តាលឱ្យកំណត់ WDOG ឡើងវិញ និងប្រៀបធៀបពេលវេលាកំណត់ជាមុនសម្រាប់ WDOG កំណត់ឡើងវិញទៅពេលវេលាពិត។នៅក្នុងបណ្ណាល័យសុវត្ថិភាព LPC553x ឧample project, watchdog ត្រូវបានសាកល្បងដោយប្រើជំហានដូចខាងក្រោមៈ
- បន្ទាប់ពីកំណត់ឡើងវិញ សូមបើកដំណើរការ watchdog និងបញ្ឈប់ការធ្វើឱ្យស្រស់តាមគោលបំណងដើម្បីកេះកម្មវិធីឃ្លាំមើលកំណត់ MCU ឡើងវិញ។
- បើកដំណើរការ CTIMER0 ដើម្បីវាស់រយៈពេលដែលវាត្រូវការសម្រាប់ការអស់ពេល និងកំណត់ឡើងវិញ។
- បន្ទាប់ពីការកំណត់ឡើងវិញរបស់ watchdog សូមបញ្ជាក់ថាការកំណត់ឡើងវិញនេះត្រូវបានបង្កឡើងដោយអ្នកឃ្លាំមើលដោយពិនិត្យមើលការចុះឈ្មោះ PMC->AOREG1។
- អាន CTIMER0 ដើម្បីទទួលបានពេលវេលាពិតប្រាកដនៃការអស់ពេលឃ្លាំមើល និងកំណត់ឡើងវិញ។
ប្រវត្តិនៃការពិនិត្យឡើងវិញ
តារាងខាងក្រោមសង្ខេបការកែប្រែចំពោះឯកសារនេះ។
តារាង 3. ប្រវត្តិនៃការពិនិត្យឡើងវិញ
លេខកែប្រែ | កាលបរិច្ឆេទ | ការផ្លាស់ប្តូរសំខាន់ៗ |
0 | ១៣-មករា-២២ | ការចេញផ្សាយជាសាធារណៈដំបូង |
ព័ត៌មានផ្លូវច្បាប់
6.1 និយមន័យ
សេចក្តីព្រាង - ស្ថានភាពព្រាងនៅលើឯកសារបង្ហាញថាខ្លឹមសារនៅតែស្ថិតក្រោមការកែប្រែផ្ទៃក្នុងview និងស្ថិតនៅក្រោមការយល់ព្រមជាផ្លូវការ ដែលអាចបណ្តាលឱ្យមានការកែប្រែ ឬបន្ថែម។ NXP Semiconductors មិនផ្តល់ការតំណាង ឬការធានាណាមួយអំពីភាពត្រឹមត្រូវ ឬពេញលេញនៃព័ត៌មានដែលរួមបញ្ចូលនៅក្នុងកំណែព្រាងនៃឯកសារ ហើយនឹងមិនទទួលខុសត្រូវចំពោះផលវិបាកនៃការប្រើប្រាស់ព័ត៌មាននោះទេ។
៩.២ ការបដិសេធ
ការធានា និងការទទួលខុសត្រូវមានកំណត់ — ព័ត៌មាននៅក្នុងឯកសារនេះត្រូវបានគេជឿថាមានភាពត្រឹមត្រូវ និងអាចទុកចិត្តបាន។ ទោះជាយ៉ាងណាក៏ដោយ NXP Semiconductors មិនផ្តល់ការតំណាង ឬការធានាណាមួយដែលបានបង្ហាញ ឬបង្កប់ន័យចំពោះភាពត្រឹមត្រូវ ឬពេញលេញនៃព័ត៌មាននោះទេ ហើយនឹងមិនទទួលខុសត្រូវចំពោះផលវិបាកនៃការប្រើប្រាស់ព័ត៌មាននោះទេ។ NXP Semiconductors មិនទទួលខុសត្រូវចំពោះខ្លឹមសារនៅក្នុងឯកសារនេះទេ ប្រសិនបើផ្តល់ដោយប្រភពព័ត៌មាននៅខាងក្រៅ NXP Semiconductors។
គ្មានព្រឹត្តិការណ៍ណាមួយដែល NXP Semiconductors ទទួលខុសត្រូវចំពោះការខូចខាតដោយប្រយោល ចៃដន្យ ការដាក់ទណ្ឌកម្ម ពិសេស ឬជាលទ្ធផល (រួមទាំង - ដោយគ្មានដែនកំណត់ ការបាត់បង់ប្រាក់ចំណេញ ការសន្សំដែលបាត់បង់ ការរំខានអាជីវកម្ម ការចំណាយទាក់ទងនឹងការដកចេញ ឬការជំនួសផលិតផល ឬថ្លៃការងារឡើងវិញ) ថាតើ ឬ ការខូចខាតបែបនេះមិនមែនផ្អែកលើការធ្វើទារុណកម្ម (រួមទាំងការធ្វេសប្រហែស) ការធានា ការបំពានកិច្ចសន្យា ឬទ្រឹស្តីច្បាប់ផ្សេងទៀតណាមួយឡើយ។
ទោះបីជាការខូចខាតណាមួយដែលអតិថិជនអាចកើតឡើងដោយហេតុផលណាមួយក៏ដោយ ទំនួលខុសត្រូវសរុបរបស់ NXP Semiconductors ចំពោះអតិថិជនចំពោះផលិតផលដែលបានពិពណ៌នានៅទីនេះ នឹងត្រូវកំណត់ដោយអនុលោមតាមលក្ខខណ្ឌនៃការលក់ពាណិជ្ជកម្មរបស់ NXP Semiconductors ។
សិទ្ធិធ្វើការផ្លាស់ប្តូរ - NXP Semiconductors រក្សាសិទ្ធិដើម្បីធ្វើការផ្លាស់ប្តូរព័ត៌មានដែលបានបោះពុម្ពផ្សាយនៅក្នុងឯកសារនេះ រួមទាំងការពិពណ៌នាអំពីផលិតផលដោយគ្មានដែនកំណត់ គ្រប់ពេលវេលា និងដោយគ្មានការជូនដំណឹងជាមុន។ ឯកសារនេះជំនួស និងជំនួសព័ត៌មានទាំងអស់ដែលបានផ្តល់មុនការបោះពុម្ពផ្សាយនៅទីនេះ។
ភាពស័ក្តិសមសម្រាប់ការប្រើប្រាស់ - ផលិតផល NXP Semiconductors មិនត្រូវបានរចនា អនុញ្ញាត ឬធានាឱ្យមានលក្ខណៈសមរម្យសម្រាប់ប្រើប្រាស់ក្នុងការគាំទ្រជីវិត ប្រព័ន្ធ ឬឧបករណ៍ដែលមានសារៈសំខាន់សម្រាប់ជីវិត ឬសុវត្ថិភាព ឬនៅក្នុងកម្មវិធីដែលការបរាជ័យ ឬដំណើរការខុសប្រក្រតីនៃផលិតផល NXP Semiconductors អាចរំពឹងទុកដោយហេតុផលថានឹងមានលទ្ធផលនៅក្នុង ការរងរបួសផ្ទាល់ខ្លួន ការស្លាប់ ឬទ្រព្យសម្បត្តិធ្ងន់ធ្ងរ ឬការខូចខាតបរិស្ថាន។ NXP Semiconductors និងអ្នកផ្គត់ផ្គង់របស់ខ្លួនមិនទទួលខុសត្រូវចំពោះការដាក់បញ្ចូល និង/ឬការប្រើប្រាស់ផលិតផល NXP Semiconductors នៅក្នុងឧបករណ៍ ឬកម្មវិធីនោះទេ ដូច្នេះការដាក់បញ្ចូល និង/ឬការប្រើប្រាស់បែបនេះគឺស្ថិតក្នុងហានិភ័យផ្ទាល់ខ្លួនរបស់អតិថិជន។
កម្មវិធី — កម្មវិធីដែលត្រូវបានពិពណ៌នានៅទីនេះសម្រាប់ផលិតផលណាមួយគឺសម្រាប់គោលបំណងបង្ហាញតែប៉ុណ្ណោះ។ NXP Semiconductors មិនធ្វើតំណាង ឬការធានាថាកម្មវិធីបែបនេះនឹងសាកសមសម្រាប់ការប្រើប្រាស់ដែលបានបញ្ជាក់ដោយមិនចាំបាច់ធ្វើតេស្ត ឬកែប្រែបន្ថែម។ អតិថិជនត្រូវទទួលខុសត្រូវចំពោះការរចនា និងប្រតិបត្តិការនៃកម្មវិធី និងផលិតផលរបស់ពួកគេដោយប្រើប្រាស់ផលិតផល NXP Semiconductors ហើយ NXP Semiconductors មិនទទួលខុសត្រូវចំពោះជំនួយណាមួយជាមួយកម្មវិធី ឬការរចនាផលិតផលរបស់អតិថិជនឡើយ។ វាជាទំនួលខុសត្រូវតែមួយគត់របស់អតិថិជនក្នុងការកំណត់ថាតើផលិតផល NXP Semiconductors គឺសមរម្យ និងសមនឹងកម្មវិធី និងផលិតផលរបស់អតិថិជនដែលបានគ្រោងទុក ក៏ដូចជាសម្រាប់កម្មវិធីដែលបានគ្រោងទុក និងការប្រើប្រាស់អតិថិជនភាគីទីបីរបស់អតិថិជនផងដែរ។ អតិថិជនគួរតែផ្តល់នូវការរចនា និងការការពារប្រតិបត្តិការសមស្រប ដើម្បីកាត់បន្ថយហានិភ័យ
ភ្ជាប់ជាមួយកម្មវិធី និងផលិតផលរបស់ពួកគេ។ NXP Semiconductors មិនទទួលយកទំនួលខុសត្រូវណាមួយដែលទាក់ទងនឹងលំនាំដើម ការខូចខាត ការចំណាយ ឬបញ្ហាដែលផ្អែកលើភាពទន់ខ្សោយ ឬលំនាំដើមណាមួយនៅក្នុងកម្មវិធី ឬផលិតផលរបស់អតិថិជន ឬកម្មវិធី ឬការប្រើប្រាស់ដោយអតិថិជនភាគីទីបីរបស់អតិថិជននោះទេ។ អតិថិជនមានទំនួលខុសត្រូវក្នុងការធ្វើតេស្តចាំបាច់ទាំងអស់សម្រាប់កម្មវិធី និងផលិតផលរបស់អតិថិជនដោយប្រើផលិតផល NXP Semiconductors ដើម្បីជៀសវាងការបរាជ័យនៃកម្មវិធី និងផលិតផល ឬនៃកម្មវិធី ឬប្រើប្រាស់ដោយអតិថិជនភាគីទីបីរបស់អតិថិជន។ NXP មិនទទួលយកការទទួលខុសត្រូវណាមួយក្នុងន័យនេះទេ។
ល័ក្ខខ័ណ្ឌនៃការលក់ពាណិជ្ជកម្ម - ផលិតផល NXP Semiconductors ត្រូវបានលក់តាមលក្ខខណ្ឌទូទៅនៃការលក់ពាណិជ្ជកម្ម ដូចដែលបានចុះផ្សាយនៅ http://www.nxp.com/profile/termsលុះត្រាតែមានការព្រមព្រៀងផ្សេងពីនេះក្នុងកិច្ចព្រមព្រៀងបុគ្គលដែលមានសុពលភាពជាលាយលក្ខណ៍អក្សរ។ ក្នុងករណីកិច្ចព្រមព្រៀងបុគ្គលត្រូវបានបញ្ចប់ មានតែលក្ខខណ្ឌនៃកិច្ចព្រមព្រៀងរៀងៗខ្លួនប៉ុណ្ណោះដែលត្រូវអនុវត្ត។ NXP Semiconductors សម្តែងការជំទាស់ចំពោះការអនុវត្តលក្ខខណ្ឌទូទៅរបស់អតិថិជនទាក់ទងនឹងការទិញផលិតផល NXP Semiconductors ដោយអតិថិជន។
ការត្រួតពិនិត្យការនាំចេញ - ឯកសារនេះក៏ដូចជាធាតុដែលបានពិពណ៌នានៅទីនេះអាចជាកម្មវត្ថុនៃបទប្បញ្ញត្តិត្រួតពិនិត្យការនាំចេញ។ ការនាំចេញអាចទាមទារការអនុញ្ញាតជាមុនពីអាជ្ញាធរមានសមត្ថកិច្ច។
ភាពស័ក្តិសមសម្រាប់ប្រើប្រាស់ក្នុងផលិតផលដែលមិនមានគុណភាពសម្រាប់រថយន្ត — លុះត្រាតែឯកសារទិន្នន័យនេះបញ្ជាក់យ៉ាងច្បាស់ថាផលិតផល NXP Semiconductors ជាក់លាក់នេះគឺមានលក្ខណៈសម្បត្តិគ្រប់គ្រាន់សម្រាប់យានយន្តនោះ ផលិតផលនេះមិនស័ក្តិសមសម្រាប់ការប្រើប្រាស់រថយន្តទេ។ វាមិនមានលក្ខណៈសម្បត្តិគ្រប់គ្រាន់ ឬត្រូវបានសាកល្បងដោយអនុលោមតាមការធ្វើតេស្តរថយន្ត ឬតម្រូវការកម្មវិធី NXP Semiconductors មិនទទួលខុសត្រូវចំពោះការរួមបញ្ចូល និង/ឬការប្រើប្រាស់ផលិតផលដែលមិនមានគុណភាពសម្រាប់រថយន្តនៅក្នុងឧបករណ៍ ឬកម្មវិធីរថយន្ត។
ក្នុងករណីដែលអតិថិជនប្រើប្រាស់ផលិតផលសម្រាប់ការរចនា និងប្រើប្រាស់ក្នុងកម្មវិធីរថយន្តទៅនឹងលក្ខណៈបច្ចេកទេស និងស្តង់ដាររថយន្ត អតិថិជន (ក) ត្រូវប្រើប្រាស់ផលិតផលដោយគ្មានការធានារបស់ NXP Semiconductors នៃផលិតផលសម្រាប់កម្មវិធីរថយន្ត ការប្រើប្រាស់ និងលក្ខណៈបច្ចេកទេស និង ( ខ) រាល់ពេលដែលអតិថិជនប្រើប្រាស់ផលិតផលសម្រាប់កម្មវិធីរថយន្តលើសពីលក្ខណៈបច្ចេកទេសរបស់ NXP Semiconductors ការប្រើប្រាស់បែបនេះត្រូវប្រឈមមុខនឹងហានិភ័យផ្ទាល់របស់អតិថិជន ហើយ (គ) អតិថិជននឹងសងសំណងទាំងស្រុងនូវ NXP Semiconductors សម្រាប់ការទទួលខុសត្រូវ ការខូចខាត ឬការទាមទារផលិតផលដែលបរាជ័យដែលបណ្តាលមកពីការរចនា និងការប្រើប្រាស់របស់អតិថិជន។ ផលិតផលសម្រាប់កម្មវិធីរថយន្តលើសពីការធានាស្តង់ដាររបស់ NXP Semiconductors និងផលិតផលជាក់លាក់របស់ NXP Semiconductors ។
ការបកប្រែ - កំណែដែលមិនមែនជាភាសាអង់គ្លេស (បកប្រែ) នៃឯកសារ រួមទាំងព័ត៌មានផ្លូវច្បាប់នៅក្នុងឯកសារនោះ គឺសម្រាប់ជាឯកសារយោងតែប៉ុណ្ណោះ។ កំណែជាភាសាអង់គ្លេសនឹងមានសុពលភាពក្នុងករណីមានភាពខុសគ្នារវាងកំណែដែលបានបកប្រែ និងភាសាអង់គ្លេស។
សន្តិសុខ - អតិថិជនយល់ថាផលិតផល NXP ទាំងអស់អាចទទួលរងនូវភាពងាយរងគ្រោះដែលមិនស្គាល់អត្តសញ្ញាណ ឬអាចគាំទ្រស្តង់ដារសុវត្ថិភាពដែលបានបង្កើតឡើង ឬលក្ខណៈជាក់លាក់ជាមួយនឹងដែនកំណត់ដែលគេស្គាល់។ អតិថិជនទទួលខុសត្រូវចំពោះការរចនា និងប្រតិបត្តិការនៃកម្មវិធី និងផលិតផលរបស់ខ្លួនពេញមួយវដ្តជីវិតរបស់ពួកគេ ដើម្បីកាត់បន្ថយឥទ្ធិពលនៃភាពងាយរងគ្រោះទាំងនេះលើកម្មវិធី និងផលិតផលរបស់អតិថិជន។ ទំនួលខុសត្រូវរបស់អតិថិជនក៏ពង្រីកដល់បច្ចេកវិទ្យាបើកចំហ និង/ឬកម្មសិទ្ធិផ្សេងទៀតដែលគាំទ្រដោយផលិតផល NXP សម្រាប់ប្រើប្រាស់ក្នុងកម្មវិធីរបស់អតិថិជន។ NXP មិនទទួលខុសត្រូវចំពោះភាពងាយរងគ្រោះណាមួយឡើយ។ អតិថិជនគួរតែពិនិត្យមើលការអាប់ដេតសុវត្ថិភាពពី NXP ជាទៀងទាត់ ហើយតាមដានដោយសមរម្យ។
អតិថិជនត្រូវជ្រើសរើសផលិតផលដែលមានលក្ខណៈពិសេសសុវត្ថិភាពដែលសមស្របបំផុតនឹងច្បាប់ បទប្បញ្ញត្តិ និងស្តង់ដារនៃកម្មវិធីដែលបានគ្រោងទុក ហើយធ្វើការសម្រេចចិត្តរចនាចុងក្រោយទាក់ទងនឹងផលិតផលរបស់ខ្លួន ហើយទទួលខុសត្រូវទាំងស្រុងចំពោះការអនុលោមតាមតម្រូវការច្បាប់ និយតកម្ម និងសុវត្ថិភាពទាំងអស់ទាក់ទងនឹងផលិតផលរបស់ខ្លួន ដោយមិនគិតពី នៃព័ត៌មាន ឬជំនួយដែលអាចត្រូវបានផ្តល់ដោយ NXP ។
NXP មានក្រុមឆ្លើយតបឧប្បត្តិហេតុសុវត្ថិភាពផលិតផល (PSIRT) (អាចទាក់ទងបាននៅ PSIRT@nxp.com) ដែលគ្រប់គ្រងការស៊ើបអង្កេត ការរាយការណ៍ និងការចេញផ្សាយដំណោះស្រាយចំពោះភាពងាយរងគ្រោះផ្នែកសុវត្ថិភាពនៃផលិតផល NXP ។
ពាណិជ្ជសញ្ញា ៧
សេចក្តីជូនដំណឹង៖ ម៉ាកដែលបានយោងទាំងអស់ ឈ្មោះផលិតផល ឈ្មោះសេវាកម្ម និងពាណិជ្ជសញ្ញា គឺជាកម្មសិទ្ធិរបស់ម្ចាស់រៀងៗខ្លួន។
NXP — ពាក្យ និងនិមិត្តសញ្ញា គឺជាពាណិជ្ជសញ្ញារបស់ NXP BV
AMBA, Arm, Arm7, Arm7TDMI, Arm9, Arm11, Artisan, big.LITTLE, Cordio, CoreLink, CoreSight, Cortex, DesignStart, DynamIQ, Jazelle, Keil, Mali, Mbed, Mbed Enabled, NEON, POP, RealView, SecurCore, Socrates, Thumb, TrustZone, ULINK, ULINK2, ULINK-ME, ULINK-PLUS, ULINKpro, μVision, Versatile — គឺជាពាណិជ្ជសញ្ញា ឬពាណិជ្ជសញ្ញាដែលបានចុះបញ្ជីរបស់ Arm Limited (ឬសាខារបស់ខ្លួន) នៅសហរដ្ឋអាមេរិក និង/ឬកន្លែងផ្សេងទៀត។ បច្ចេកវិទ្យាដែលពាក់ព័ន្ធអាចត្រូវបានការពារដោយប៉ាតង់ ការរក្សាសិទ្ធិ ការរចនា និងអាថ៌កំបាំងពាណិជ្ជកម្មណាមួយ។ រក្សាសិទ្ធិគ្រប់យ៉ាង។
សូមជ្រាបថា ការជូនដំណឹងសំខាន់ៗទាក់ទងនឹងឯកសារនេះ និងផលិតផលដែលបានពិពណ៌នានៅទីនេះ ត្រូវបានដាក់បញ្ចូលក្នុងផ្នែក 'ព័ត៌មានផ្លូវច្បាប់'។
© 2023 NXP BV
សម្រាប់ព័ត៌មានបន្ថែម សូមចូលទៅកាន់៖ http://www.nxp.com
រក្សាសិទ្ធិគ្រប់យ៉ាង។
កាលបរិច្ឆេទចេញផ្សាយ៖ ថ្ងៃទី ១៧ ខែមករា ឆ្នាំ ២០២២
អត្តសញ្ញាណឯកសារ៖ AN13823
ឯកសារ/ធនធាន
![]() |
កម្មវិធី NXP AN13823 IEC 60730 ថ្នាក់ B សម្រាប់ LPC553x MCUs [pdf] ការណែនាំអ្នកប្រើប្រាស់ កម្មវិធី AN13823 IEC 60730 Class B សម្រាប់ LPC553x MCUs, AN13823, IEC 60730 Class B Software for LPC553x MCUs, AN13823 IEC 60730 Class B Software |