मैं एक STMicroelectronics STM32F072B- डिस्को "डिस्कवरी" बोर्ड के साथ MDK- लाइट संस्करण 5.23 का उपयोग कर रहा हूं और मैं डिस्कवरी नमूनों द्वारा प्रदान किए गए फ्लैश उदाहरण का उपयोग करने का प्रयास कर रहा हूं।
मैंने अन्य उदाहरणों के लिए इस बोर्ड और टूलचिन का उपयोग किया है और मैंने कुछ एसपीआई और जीपीआईओ कोड काम किए हैं। आईडीई एक विजेता की तरह काम करता है। हालांकि, इस विशेष परियोजना के लिए मैं कोड का निर्माण कर सकता हूं और इसे रीसेट बटन डाउनलोड और उपयोग करके चला सकता हूं। जैसे ही मैं HAL_FLASHEx_Erase () दिनचर्या का उपयोग करता हूं, मैं प्रोजेक्ट पर डीबगर का उपयोग नहीं कर सकता। एक बार जब मैं उस दिनचर्या को अंजाम देता हूं, तो IDE एक डायलॉग "एक्सेस टारगेट नहीं कर सकता है। शट डाउन डिबग सत्र।"
इसके लायक क्या है, मुझे पता है कि यह एक प्रोग्रामिंग त्रुटि नहीं है क्योंकि अगर मैं कोड डाउनलोड करता हूं और फिर रीसेट बटन दबाकर कोड निष्पादित करता हूं तो यह काम करेगा। मैंने टीआई बोर्ड के साथ इसी डिबगर का उपयोग किया है और यह फ्लैश प्रोग्राम को चलाने और फ्लैश रूटीन को निष्पादित करने में सक्षम था। मुझे पूरा यकीन है कि मैं फ़्लैश के उस हिस्से को नहीं मिटा रहा हूँ जहाँ कोड संग्रहीत है, इसलिए ऐसा नहीं है।
अगर मैं मेन लाइन में इस लाइन पर कदम रखता हूँ
if (HAL_FLASHEx_Erase(&EraseInitStruct, &PageError) != HAL_OK)
तब यह डीबग सत्र को छोड़ देता है। अगर मैं इसके बजाय एक ही पंक्ति में कदम रखता हूं और फिर फ्लैश इरेज रूटीन में प्रत्येक कॉल पर कदम रखता हूं, तो यह काम करेगा और अंततः रूटीन से हट जाएगा और मैं बाकी कोड को डीबग कर सकता हूं।