ការណែនាំអ្នកប្រើប្រាស់កម្មវិធី NXP AN14120 Debugging Cortex-M
សេចក្តីផ្តើម
ឯកសារនេះពិពណ៌នាអំពីការចងក្រងឆ្លងគ្នា ការដាក់ពង្រាយ និងការបំបាត់កំហុសកម្មវិធីសម្រាប់ i.MX 8M Family, i.MX 8ULP និង i.MX 93 Cortex-M processor ដោយប្រើ Microsoft Visual Studio Code ។
បរិស្ថានកម្មវិធី
ដំណោះស្រាយអាចត្រូវបានអនុវត្តទាំងនៅលើ Linux និង Windows host ។ សម្រាប់កំណត់ចំណាំកម្មវិធីនេះ កុំព្យូទ័រវីនដូត្រូវបានសន្មតថាមិនចាំបាច់ទេ។
ការចេញផ្សាយ Linux BSP 6.1.22_2.0.0 ត្រូវបានប្រើនៅក្នុងកំណត់ចំណាំកម្មវិធីនេះ។ រូបភាពដែលបានបង្កើតឡើងខាងក្រោមត្រូវបានប្រើ៖
- i.MX 8M Mini៖ imx-image-full-imx8mmevk.wic
- i.MX 8M Nano៖ imx-image-full-imx8mnevk.wic
- i.MX 8M Plus៖ imx-image-full-imx8mpevk.wic
- i.MX 8ULP៖ imx-image-full-imx8ulpevk.wic
- i.MX 93៖ imx-image-full-imx93evk.wic
សម្រាប់ជំហានលម្អិតអំពីរបៀបបង្កើតរូបភាពទាំងនេះ សូមមើលមគ្គុទ្ទេសក៍របស់អ្នកប្រើ i.MX Linux (ឯកសារ IMXLUG) និង i.MX Yocto Project User's Guide (ឯកសារ IMXLXYOCTOUG)។
ប្រសិនបើ Windows PC ត្រូវបានប្រើប្រាស់ សូមសរសេររូបភាពដែលបានបង្កើតជាមុននៅលើកាត SD ដោយប្រើ Win32 Disk Imager (https:// win32diskimager.org/) ឬ Balena Etcher (https://etcher.balena.io/). ប្រសិនបើកុំព្យូទ័រ Ubuntu ត្រូវបានប្រើប្រាស់ សូមសរសេររូបភាពដែលបានបង្កើតជាមុននៅលើកាត SD ដោយប្រើពាក្យបញ្ជាខាងក្រោម៖
$ sudo dd if=.wic of=/dev/sd bs=1M status=progress conv=fsync
ចំណាំ៖ ពិនិត្យភាគថាសកម្មវិធីអានកាតរបស់អ្នក ហើយជំនួស sd ជាមួយនឹងភាគថាសដែលត្រូវគ្នា។ ១.២
ការដំឡើងផ្នែករឹង និងឧបករណ៍
- កញ្ចប់អភិវឌ្ឍន៍៖
- NXP i.MX 8MM EVK LPDDR4
- NXP i.MX 8MN EVK LPDDR4
- NXP i.MX 8MP EVK LPDDR4
- NXP i.MX 93 EVK សម្រាប់ 11 × 11 mm LPDDR4 – NXP i.MX 8ULP EVK LPDDR4
- កាត Micro SD៖ SanDisk Ultra 32-GB Micro SDHC I Class 10 ត្រូវបានប្រើសម្រាប់ការពិសោធន៍បច្ចុប្បន្ន។
- ខ្សែ Micro-USB (i.MX 8M) ឬ Type-C (i.MX 93) សម្រាប់ច្រកបំបាត់បញ្ហា។
- ការស៊ើបអង្កេតលើបញ្ហា SEGGER J-Link ។
តម្រូវការជាមុន
មុនពេលចាប់ផ្តើមបំបាត់កំហុស តម្រូវការជាមុនជាច្រើនត្រូវតែបំពេញដើម្បីឱ្យមានបរិយាកាសបំបាត់កំហុសដែលបានកំណត់រចនាសម្ព័ន្ធត្រឹមត្រូវ។
ម៉ាស៊ីនកុំព្យូទ័រ - ការតភ្ជាប់បំបាត់កំហុសបន្ទះ i.MX
ដើម្បីបង្កើតការតភ្ជាប់បំបាត់បញ្ហាផ្នែករឹង សូមអនុវត្តជំហានខាងក្រោម៖
- ភ្ជាប់បន្ទះ i.MX ទៅកុំព្យូទ័រម៉ាស៊ីនតាមរយៈឧបករណ៍ភ្ជាប់ DEBUG USB-UART និង PC USB ដោយប្រើខ្សែ USB ។ ប្រព័ន្ធប្រតិបត្តិការ Windows រកឃើញឧបករណ៍សៀរៀលដោយស្វ័យប្រវត្តិ។
- នៅក្នុងកម្មវិធីគ្រប់គ្រងឧបករណ៍ នៅក្រោមច្រក (COM & LPT) ស្វែងរកច្រក USB Serial Port (COM) ពីរឬបួនដែលបានតភ្ជាប់។ ច្រកមួយត្រូវបានប្រើសម្រាប់សារបំបាត់កំហុសដែលបង្កើតដោយស្នូល Cortex-A ហើយមួយទៀតគឺសម្រាប់ស្នូល Cortex-M ។ មុនពេលកំណត់ច្រកត្រឹមត្រូវដែលត្រូវការ សូមចាំថា:
- [i.MX 8MP, i.MX 8ULP, i.MX 93]៖ មានច្រកចំនួនបួនដែលមាននៅក្នុង Device Manger ។ ច្រកចុងក្រោយគឺសម្រាប់ការបំបាត់កំហុស Cortex-M ហើយច្រកទីពីរទៅចុងក្រោយគឺសម្រាប់ការបំបាត់កំហុស Cortex-A ដោយរាប់ច្រកបំបាត់កំហុសតាមលំដាប់ឡើង។
- [i.MX 8MM, i.MX 8MN]៖ មានច្រកពីរដែលមាននៅក្នុងកម្មវិធីគ្រប់គ្រងឧបករណ៍។ ច្រកទីមួយគឺសម្រាប់បំបាត់កំហុស Cortex-M ហើយច្រកទីពីរគឺសម្រាប់បំបាត់កំហុស Cortex-A ដោយរាប់ច្រកបំបាត់កំហុសតាមលំដាប់ឡើង។
- បើកច្រកបំបាត់កំហុសត្រឹមត្រូវដោយប្រើកម្មវិធីត្រាប់តាមស្ថានីយសៀរៀលដែលអ្នកពេញចិត្ត (សម្រាប់ឧample PuTTY) ដោយកំណត់ប៉ារ៉ាម៉ែត្រដូចខាងក្រោមៈ
- ល្បឿនដល់ 115200 bps
- 8 ប៊ីតទិន្នន័យ
- 1 ឈប់ប៊ីត (115200, 8N1)
- គ្មានភាពស្មើគ្នា
- ភ្ជាប់ USB ស៊ើបអង្កេតបំបាត់កំហុស SEGGER ទៅម៉ាស៊ីន បន្ទាប់មកភ្ជាប់ SEGGER JTAG ឧបករណ៍ភ្ជាប់ទៅបន្ទះ i.MX JTAG ចំណុចប្រទាក់។ ប្រសិនបើបន្ទះ i.MX JTAG ចំណុចប្រទាក់មិនមានឧបករណ៍ភ្ជាប់ដែលបានណែនាំទេ ការតំរង់ទិសត្រូវបានកំណត់ដោយការតម្រឹមខ្សែក្រហមទៅនឹងម្ជុលលេខ 1 ដូចក្នុងរូបភាពទី 1 ។
ការកំណត់រចនាសម្ព័ន្ធ VS កូដ
ដើម្បីទាញយក និងកំណត់រចនាសម្ព័ន្ធ VS Code សូមអនុវត្តជំហានខាងក្រោម៖
- ទាញយក និងដំឡើងកំណែចុងក្រោយបំផុតនៃ Microsoft Visual Studio Code ពីផ្លូវការ webគេហទំព័រ។ ក្នុងករណីប្រើប្រាស់ Windows ជាម៉ាស៊ីន OS សូមជ្រើសរើសប៊ូតុង "ទាញយកសម្រាប់ Windows" ពីទំព័រមេ Visual Studio Code ។
- បន្ទាប់ពីដំឡើង Visual Studio Code សូមបើកវា ហើយជ្រើសរើសផ្ទាំង "Extensions" ឬចុចបន្សំ Ctrl + Shift + X ។
- នៅក្នុងរបារស្វែងរកដែលខិតខំប្រឹងប្រែង វាយ MCUXpresso សម្រាប់ VS Code ហើយដំឡើងផ្នែកបន្ថែម។ ផ្ទាំងថ្មីលេចឡើងនៅផ្នែកខាងឆ្វេងនៃបង្អួច VS Code ។
ការកំណត់រចនាសម្ព័ន្ធផ្នែកបន្ថែម MCUXpresso
ដើម្បីកំណត់រចនាសម្ព័ន្ធផ្នែកបន្ថែម MCUXpresso សូមអនុវត្តជំហានខាងក្រោម៖
- ចុចផ្ទាំងផ្នែកបន្ថែម MCUXpresso ពីរបារចំហៀងខាងឆ្វេង។ ពី QUICKSTART PANEL ចុច
បើកកម្មវិធីដំឡើង MCUXpresso ហើយផ្តល់ការអនុញ្ញាតសម្រាប់ការទាញយកកម្មវិធីដំឡើង។ - បង្អួចកម្មវិធីដំឡើងនឹងលេចឡើងក្នុងរយៈពេលខ្លី។ ចុច MCUXpresso SDK Developer ហើយនៅលើ SEGGER JLink បន្ទាប់មកចុចប៊ូតុងដំឡើង។ កម្មវិធីដំឡើងដំឡើងកម្មវិធីដែលត្រូវការសម្រាប់បណ្ណសារ ខ្សែសង្វាក់ឧបករណ៍ ការគាំទ្រ Python Git និងការស៊ើបអង្កេតបំបាត់កំហុស
បន្ទាប់ពីដំឡើងកញ្ចប់ទាំងអស់ ត្រូវប្រាកដថា J-Link probe ត្រូវបានភ្ជាប់ទៅម៉ាស៊ីនកុំព្យូទ័រ។ បន្ទាប់មក ពិនិត្យមើលថាតើការស៊ើបអង្កេតនេះក៏មាននៅក្នុងផ្នែកបន្ថែម MCUXpresso នៅក្រោម DEBUG PROBES ដែរ។ viewដូចបង្ហាញក្នុងរូប
នាំចូល MCUXpresso SDK
អាស្រ័យលើបន្ទះអ្វីដែលអ្នកកំពុងដំណើរការ បង្កើត និងទាញយក SDK ជាក់លាក់ពី NXP official webគេហទំព័រ។ សម្រាប់កំណត់សម្គាល់កម្មវិធីនេះ SDKs ខាងក្រោមត្រូវបានសាកល្បង៖
- SDK_2.14.0_EVK-MIMX8MM
- SDK_2.14.0_EVK-MIMX8MN
- SDK_2.14.0_EVK-MIMX8MP
- SDK_2.14.0_EVK-MIMX8ULP
- SDK_2.14.0_MCIMX93-EVK
ដើម្បីកសាងអតីតample សម្រាប់ i.MX 93 EVK សូមមើលរូបភាពទី 7៖
- ដើម្បីនាំចូលឃ្លាំង MCUXpresso SDK ក្នុង VS Code សូមអនុវត្តជំហានខាងក្រោម៖
- បន្ទាប់ពីទាញយក SDK សូមបើក Visual Studio Code ។ ចុចផ្ទាំង MCUXpresso ពីជ្រុងខាងឆ្វេង ហើយពង្រីកឃ្លាំងដែលបានដំឡើង និងគម្រោង views.
- ចុចលើ Import Repository ហើយជ្រើសរើស LOCAL ARCHIVE។ ចុច Browse… ដែលត្រូវនឹងកន្លែងផ្ទុកឯកសារ ហើយជ្រើសរើសប័ណ្ណសារ SDK ដែលបានទាញយកថ្មីៗនេះ។
- ជ្រើសរើសផ្លូវដែលបណ្ណសារត្រូវបានពន្លា ហើយបំពេញក្នុងវាលទីតាំង។
- វាលឈ្មោះអាចត្រូវបានទុកចោលតាមលំនាំដើម ឬអ្នកអាចជ្រើសរើសឈ្មោះផ្ទាល់ខ្លួន។
- ពិនិត្យ ឬដោះធីក បង្កើតឃ្លាំង Git ដោយផ្អែកលើតម្រូវការរបស់អ្នក ហើយបន្ទាប់មកចុច នាំចូល។
នាំចូលអតីតampកម្មវិធី le
នៅពេលដែល SDK ត្រូវបាននាំចូល វាបង្ហាញនៅក្រោម ឃ្លាំងដែលបានដំឡើង view.
ដើម្បីនាំចូលអតីតampកម្មវិធីពីឃ្លាំង SDK សូមអនុវត្តជំហានដូចខាងក្រោមៈ
- ចុច Import Example ពីប៊ូតុង Repository ពី PROJECTS view.
- ជ្រើសរើសឃ្លាំងពីបញ្ជីទម្លាក់ចុះ។
- ជ្រើសរើសខ្សែសង្វាក់ឧបករណ៍ពីបញ្ជីទម្លាក់ចុះ។
- ជ្រើសរើសបន្ទះគោលដៅ។
- ជ្រើសរើស demo_apps/hello_world exampពីបញ្ជីជ្រើសរើសគំរូ។
- ជ្រើសរើសឈ្មោះសម្រាប់គម្រោង (លំនាំដើមអាចត្រូវបានប្រើ) ហើយកំណត់ផ្លូវទៅកាន់ទីតាំងគម្រោង។
- ចុចបង្កើត។
- អនុវត្តជំហានខាងក្រោមសម្រាប់តែ i.MX 8M Family ប៉ុណ្ណោះ។ នៅក្រោមគម្រោង viewពង្រីកគម្រោងនាំចូល។ ចូលទៅកាន់ផ្នែកការកំណត់ ហើយចុចលើ mcuxpresso-tools.json file.
a. បន្ថែម "ចំណុចប្រទាក់": "JTAGនៅក្រោម "បំបាត់កំហុស" > "segger"
b. សម្រាប់ i.MX 8MM សូមបន្ថែមការកំណត់ដូចខាងក្រោម៖ “ឧបករណ៍”៖ “MIMX8MM6_M4” នៅក្រោម “បំបាត់កំហុស” > “segger”
c. សម្រាប់ i.MX 8MN សូមបន្ថែមការកំណត់ដូចខាងក្រោម៖ “ឧបករណ៍”៖ “MIMX8MN6_M7” ក្រោម “បំបាត់កំហុស” > “segger”
d. សម្រាប់ i.MX 8MP សូមបន្ថែមការកំណត់ដូចខាងក្រោម៖
"ឧបករណ៍"៖ "MIMX8ML8_M7" នៅក្រោម "បំបាត់កំហុស" > "segger"
កូដខាងក្រោមបង្ហាញពីអតីតample សម្រាប់ផ្នែក "បំបាត់កំហុស" i.MX8 MP បន្ទាប់ពីការកែប្រែខាងលើនៃ mcuxpresso-tools.json ត្រូវបានអនុវត្ត៖
បន្ទាប់ពីនាំចូលអតីតample កម្មវិធីដោយជោគជ័យ វាត្រូវតែអាចមើលឃើញនៅក្រោមគម្រោង view. ប្រភពគម្រោងផងដែរ។ files អាចមើលឃើញនៅក្នុងផ្ទាំង Explorer (Ctrl + Shift + E) ។
ការកសាងកម្មវិធី
ដើម្បីបង្កើតកម្មវិធី សូមចុចរូបតំណាង Build Selected ខាងឆ្វេង ដូចបង្ហាញក្នុងរូបភាពទី 9 ។
រៀបចំក្តារសម្រាប់បំបាត់កំហុស
ដើម្បីប្រើ JTAG សម្រាប់ការបំបាត់កំហុសកម្មវិធី Cortex-M មានតម្រូវការជាមុនមួយចំនួនអាស្រ័យលើវេទិកា៖
- សម្រាប់ i.MX 93
ដើម្បីគាំទ្រ i.MX 93 បំណះសម្រាប់ SEGGER J-Link ត្រូវតែត្រូវបានដំឡើង៖ SDK_MX93_3RDPARTY_PATCH.zip។
ចំណាំ៖ បំណះនេះត្រូវតែប្រើ ទោះបីជាវាត្រូវបានដំឡើងពីមុនក៏ដោយ។ បន្ទាប់ពីការទាញយកបានបញ្ចប់ សូមពន្លាប័ណ្ណសារ ហើយចម្លងថតឧបករណ៍ និង JLinkDevices.xml file ទៅ C:\Program Files\SEGGER\JLink ។ ប្រសិនបើកុំព្យូទ័រលីនុចត្រូវបានប្រើ ផ្លូវគោលដៅគឺ /opt/SEGGER/JLink ។- ការបំបាត់កំហុស Cortex-M33 ខណៈពេលដែលមានតែ Cortex-M33 កំពុងដំណើរការ
នៅក្នុងរបៀបនេះ ប្តូររបៀបចាប់ផ្ដើម SW1301[3:0] ត្រូវតែកំណត់ទៅ [1010]។ បន្ទាប់មករូបភាព M33 អាចត្រូវបានផ្ទុកដោយផ្ទាល់ និងបំបាត់កំហុសដោយប្រើប៊ូតុងបំបាត់កំហុស។ សម្រាប់ព័ត៌មានលម្អិត សូមមើលផ្នែកទី 5 ។
ប្រសិនបើលីនុចដែលកំពុងដំណើរការលើ Cortex-A55 ត្រូវការស្របជាមួយ Cortex-M33 មានវិធីពីរយ៉ាងក្នុងការបំបាត់កំហុស Cortex-M33៖ - ការបំបាត់កំហុស Cortex-M33 ខណៈពេលដែល Cortex-A55 ស្ថិតនៅក្នុង U-Boot
ដំបូងចម្លង sdk20-app.bin file (មានទីតាំងនៅក្នុងថត armgcc/debug) ដែលបានបង្កើតក្នុងផ្នែកទី 3 ចូលទៅក្នុងភាគថាសចាប់ផ្ដើមនៃកាត SD ។ ចាប់ផ្ដើមក្តារហើយបញ្ឈប់វានៅក្នុង U-Boot ។ នៅពេលដែលកុងតាក់ចាប់ផ្ដើមត្រូវបានកំណត់រចនាសម្ព័ន្ធដើម្បីចាប់ផ្ដើម Cortex-A លំដាប់ចាប់ផ្ដើមមិនចាប់ផ្តើម Cortex-M ទេ។ វាត្រូវតែត្រូវបានចាប់ផ្តើមដោយដៃដោយប្រើពាក្យបញ្ជាខាងក្រោម។ ប្រសិនបើ Cortex-M មិនត្រូវបានចាប់ផ្តើម JLink បរាជ័យក្នុងការតភ្ជាប់ទៅស្នូល។
- ចំណាំ៖ ប្រសិនបើប្រព័ន្ធមិនអាចត្រូវបានបំបាត់កំហុសជាធម្មតាទេ សូមព្យាយាមចុចខាងស្តាំលើគម្រោងក្នុង MCUXpresso សម្រាប់ VS
សរសេរកូដហើយជ្រើសរើស "ភ្ជាប់ដើម្បីបំបាត់កំហុសគម្រោង"។ - ការបំបាត់កំហុស Cortex-M33 ខណៈពេលដែល Cortex-A55 ស្ថិតនៅក្នុងលីនុច
Kernel DTS ត្រូវតែត្រូវបានកែប្រែដើម្បីបិទ UART5 ដែលប្រើម្ជុលដូចគ្នានឹង JTAG ចំណុចប្រទាក់។
ប្រសិនបើ Windows PC ត្រូវបានប្រើប្រាស់ នោះងាយស្រួលបំផុតគឺត្រូវដំឡើង WSL + Ubuntu 22.04 LTS ហើយបន្ទាប់មកដើម្បីចម្លង DTS ។
បន្ទាប់ពីការដំឡើង WSL + Ubuntu 22.04 LTS សូមបើកម៉ាស៊ីន Ubuntu ដែលដំណើរការលើ WSL ហើយដំឡើងកញ្ចប់ដែលត្រូវការ៖
ឥឡូវនេះ ប្រភពខឺណែលអាចទាញយកបាន៖
ដើម្បីបិទឧបករណ៍ភ្ជាប់ UART5 សូមស្វែងរកថ្នាំង lpuart5 នៅក្នុង linux-imx/arch/arm64/boot/ dts/freescale/imx93-11×11-evk.dts file ហើយជំនួសស្ថានភាពយល់ព្រមដោយបិទ៖
ចងក្រង DTS ឡើងវិញ៖
ចម្លង linux-imx/arch/arm64/boot/dts/freescale/imx93 11×11-evk.dtb ដែលទើបបង្កើតថ្មី file នៅលើភាគថាសចាប់ផ្ដើមនៃកាតអេសឌី។ ចម្លង hello_world.elf file (មានទីតាំងនៅក្នុងថត armgcc/debug) ដែលបានបង្កើតក្នុងផ្នែកទី 3 ចូលទៅក្នុងភាគថាសចាប់ផ្ដើមនៃកាត SD ។ ចាប់ផ្ដើមក្តារនៅក្នុងលីនុច។ ដោយសារ boot ROM មិនចាប់ផ្តើម Cortex-M នៅពេលដែល Cortex-A boots CortexM ត្រូវតែចាប់ផ្តើមដោយដៃ។
ចំណាំ៖ the hello_ world.elf file ត្រូវតែដាក់ក្នុងថត /lib/firmware ។
- ការបំបាត់កំហុស Cortex-M33 ខណៈពេលដែលមានតែ Cortex-M33 កំពុងដំណើរការ
- សម្រាប់ i.MX 8M
ដើម្បីគាំទ្រ i.MX 8M Plus បំណះសម្រាប់ SEGGER J-Link ត្រូវតែត្រូវបានដំឡើង៖
iar_segger_support_patch_imx8mp.zip ។
បន្ទាប់ពីការទាញយកបានបញ្ចប់ សូមពន្លាប័ណ្ណសារ ហើយចម្លងថតឧបករណ៍ និងឯកសារ
JLinkDevices.xml file ពីថត JLink ទៅ C:\Program Files\SEGGER\JLink ។ ប្រសិនបើកុំព្យូទ័រលីនុច
ត្រូវបានប្រើ ផ្លូវគោលដៅគឺ /opt/SEGGER/JLink ។- ការបំបាត់កំហុស Cortex-M ខណៈពេលដែល Cortex-A ស្ថិតនៅក្នុង U-Boot
ក្នុងករណីនេះគ្មានអ្វីពិសេសត្រូវធ្វើទេ។ ចាប់ផ្ដើមក្តារនៅក្នុង U Boot ហើយលោតទៅផ្នែកទី 5 ។ - ការបំបាត់កំហុស Cortex-M ខណៈពេលដែល Cortex-A ស្ថិតនៅក្នុងលីនុច
ដើម្បីដំណើរការ និងបំបាត់កំហុសកម្មវិធី Cortex-M ស្របជាមួយលីនុចដែលកំពុងដំណើរការនៅលើ Cortex-A នាឡិកាជាក់លាក់ត្រូវតែត្រូវបានចាត់តាំង និងបម្រុងទុកសម្រាប់ Cortex-M ។ វាត្រូវបានធ្វើឡើងពីក្នុង U-Boot ។ បញ្ឈប់ក្តារនៅក្នុង U-Boot ហើយដំណើរការពាក្យបញ្ជាខាងក្រោម៖
- ការបំបាត់កំហុស Cortex-M ខណៈពេលដែល Cortex-A ស្ថិតនៅក្នុង U-Boot
- សម្រាប់ i.MX 8ULP
ដើម្បីគាំទ្រ i.MX 8ULP បំណះសម្រាប់ SEGGER J-Link ត្រូវតែត្រូវបានដំឡើង៖ SDK_MX8ULP_3RDPARTY_PATCH.zip។
ចំណាំ៖ បំណះនេះត្រូវតែប្រើទោះបីជាវាត្រូវបានដំឡើងពីមុនក៏ដោយ។
បន្ទាប់ពីទាញយករួច ពន្លាប័ណ្ណសារ ហើយចម្លងថតឧបករណ៍ និង JLinkDevices.xml file ទៅ C:\Program Files\SEGGER\JLink ។ ប្រសិនបើកុំព្យូទ័រលីនុចត្រូវបានប្រើ ផ្លូវគោលដៅគឺ /opt/SEGGER/JLink ។ សម្រាប់ i.MX 8ULP ដោយសារអង្គភាព Upower បង្កើត flash.bin ដោយប្រើ m33_image នៅក្នុង "VSCode" repo របស់យើងជាមុនសិន។ រូបភាព M33 អាចរកបាននៅក្នុង {CURRENT REPO}\armgcc\debug\sdk20-app.bin។ សូមមើលផ្នែកទី 6 ពីការចាប់ផ្តើមជាមួយ MCUX presso SDK សម្រាប់ EVK-MIMX8ULP និង EVK9-MIMX8ULP នៅក្នុង SDK_2_xx_x_EVK-MIMX8ULP/docs អំពីរបៀបបង្កើតរូបភាព flash.bin ។
ចំណាំ៖ ប្រើរូបភាព M33 នៅក្នុង VSCode repo សកម្ម។ បើមិនដូច្នោះទេកម្មវិធីមិនភ្ជាប់ត្រឹមត្រូវទេ។ ចុចកណ្ដុរស្ដាំហើយជ្រើសរើស "ភ្ជាប់" ។
កំពុងដំណើរការ និងបំបាត់កំហុស
បន្ទាប់ពីចុចប៊ូតុងបំបាត់កំហុស សូមជ្រើសរើសការកំណត់រចនាសម្ព័ន្ធគម្រោងបំបាត់កំហុស ហើយវគ្គបំបាត់កំហុសចាប់ផ្តើម។
នៅពេលដែលវគ្គបំបាត់កំហុសចាប់ផ្តើម ម៉ឺនុយដែលបានកំណត់ត្រូវបានបង្ហាញ។ ម៉ឺនុយបំបាត់កំហុសមានប៊ូតុងសម្រាប់ចាប់ផ្តើមការប្រតិបត្តិរហូតដល់ចំណុចឈប់ដំណើរការ ផ្អាកការប្រតិបត្តិ បោះជំហានទៅមុខ ឈានជើងចូល បោះជំហានចេញ ចាប់ផ្ដើមឡើងវិញ និងបញ្ឈប់។
ដូចគ្នានេះផងដែរ យើងអាចមើលឃើញអថេរក្នុងស្រុក ចុះឈ្មោះតម្លៃ មើលកន្សោមមួយចំនួន និងពិនិត្យមើលការហៅទូរសព្ទ និងចំណុចបំបែក
នៅក្នុងកម្មវិធីរុករកខាងឆ្វេង។ តំបន់មុខងារទាំងនេះស្ថិតនៅក្រោមផ្ទាំង "រត់ និងបំបាត់កំហុស" ហើយមិនមែននៅក្នុង MCUXpresso ទេ។
សម្រាប់ VS Code ។
ចំណាំអំពីកូដប្រភពនៅក្នុងឯកសារ
Example កូដដែលបង្ហាញក្នុងឯកសារនេះមានសិទ្ធិរក្សាសិទ្ធិ និង BSD-3-Clause ដូចខាងក្រោម៖
រក្សាសិទ្ធិ 2023 NXP ការចែកចាយឡើងវិញ និងការប្រើប្រាស់ក្នុងទម្រង់ប្រភព និងប្រព័ន្ធគោលពីរ ដោយមានឬគ្មានការកែប្រែ ត្រូវបានអនុញ្ញាត ផ្តល់លក្ខខណ្ឌដូចខាងក្រោមត្រូវបានបំពេញ៖
- ការចែកចាយឡើងវិញនៃកូដប្រភពត្រូវតែរក្សាការជូនដំណឹងអំពីការរក្សាសិទ្ធិខាងលើ បញ្ជីលក្ខខណ្ឌ និងការបដិសេធខាងក្រោម។
- ការចែកចាយឡើងវិញក្នុងទម្រង់គោលពីរត្រូវតែបង្កើតឡើងវិញនូវការជូនដំណឹងអំពីការរក្សាសិទ្ធិខាងលើ បញ្ជីនៃលក្ខខណ្ឌ និងការមិនទទួលខុសត្រូវខាងក្រោមនៅក្នុងឯកសារ និង/ឬសម្ភារៈផ្សេងទៀតត្រូវតែផ្តល់ជូនជាមួយនឹងការចែកចាយ។
- ទាំងឈ្មោះអ្នករក្សាសិទ្ធិនិងឈ្មោះអ្នកចូលរួមរបស់វាមិនអាចត្រូវបានប្រើដើម្បីគាំទ្រឬផ្សព្វផ្សាយផលិតផលដែលបានមកពីកម្មវិធីនេះដោយគ្មានការអនុញ្ញាតជាលាយលក្ខណ៍អក្សរជាមុន។
កម្មវិធីនេះត្រូវបានផ្តល់ដោយអ្នកកាន់កាប់សិទ្ធិអ្នកនិពន្ធ និងអ្នករួមវិភាគទាន "ដូចមាន" និងការធានាណាមួយដែលបញ្ជាក់ ឬដោយប្រយោល រួមទាំង ប៉ុន្តែមិនកំណត់ចំពោះ ការធានាដោយអត្ថប្រយោជន៏នៃ merchantability . ក្នុងករណីណាក៏ដោយ អ្នកកាន់កាប់សិទ្ធិថតចម្លង ឬអ្នករួមចំណែកត្រូវទទួលខុសត្រូវចំពោះការខូចខាតដោយផ្ទាល់ ប្រយោល ឧប្បត្តិហេតុ ពិសេស គំរូ ឬការខូចខាតជាផលវិបាក (រួមទាំង ប៉ុន្តែមិនកំណត់ចំពោះការខូចខាត ការប្រើប្រាស់នីតិវិធី ទិន្នន័យ ឬប្រាក់ចំណេញ; ឬការរំខានអាជីវកម្ម) ទោះបីជាបណ្តាលមកពី និងលើទ្រឹស្ដីទំនួលខុសត្រូវណាមួយ ទោះជានៅក្នុងកិច្ចសន្យា ទំនួលខុសត្រូវយ៉ាងតឹងរ៉ឹង ឬការធ្វើទារុណកម្ម (រួមទាំងការធ្វេសប្រហែស ឬបើមិនដូច្នេះទេ) ដែលកើតឡើងនៅក្នុងវិធីណាក៏ដោយ នៃការប្រើប្រាស់នៅពេលក្រោយនេះ ភាពងាយរងគ្រោះនៃការខូចខាតបែបនេះ
ព័ត៌មានផ្លូវច្បាប់
និយមន័យ
សេចក្តីព្រាង - ស្ថានភាពព្រាងនៅលើឯកសារបង្ហាញថាខ្លឹមសារនៅតែមាន
នៅក្រោមការកែប្រែផ្ទៃក្នុង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 Semiconductors ត្រូវបានលក់តាមលក្ខខណ្ឌទូទៅនៃការលក់ពាណិជ្ជកម្ម ដូចដែលបានចុះផ្សាយនៅhttps://www.nxp.com/profile/លក្ខខណ្ឌ លុះត្រាតែមានការយល់ព្រមផ្សេងពីនេះក្នុងកិច្ចព្រមព្រៀងបុគ្គលដែលមានសុពលភាព។ ក្នុងករណីកិច្ចព្រមព្រៀងបុគ្គលត្រូវបានបញ្ចប់ មានតែលក្ខខណ្ឌនៃកិច្ចព្រមព្រៀងរៀងៗខ្លួនប៉ុណ្ណោះដែលត្រូវអនុវត្ត។ 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 B.V. — NXP B.V. មិនមែនជាក្រុមហ៊ុនប្រតិបត្តិការទេ ហើយវាមិនចែកចាយ ឬលក់ផលិតផលទេ។
ឯកសារ/ធនធាន
![]() |
កម្មវិធីបំបាត់កំហុស NXP AN14120 Cortex-M [pdf] ការណែនាំអ្នកប្រើប្រាស់ i.MX 8ULP, i.MX 93, AN14120 Debugging Cortex-M Software, AN14120, Debugging Cortex-M Software, Cortex-M Software, Software |