اطلاعیه

Collapse
No announcement yet.

مشکل در دیباگ کردن stm32f103

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل در دیباگ کردن stm32f103

    با سلام خدمت اساتید
    بنده مدتی پیش کارم رو با برد دیسکاوری F4 شروع کردم، که در اون دیباگ به راحتی در محیط کیل انجام میشه
    اخیرا به دلیل ملاحظات قیمتی هدربرد stm32f103ret شرکت رو خریدم ولی نمی تونم برنامه ام رو دیباگ کنم، پروگرام میشه ها! دیباگ نمیشه
    با ST_Link روی برد دیسکاوری هم امتحان کردم، مجدد پروگرام میشه اما در دیباگ مشکل دارم
    لطفا من رو راهنمایی کنید. (تنظیم درست دیپ سوئیچ؟لزوم فشردن کلید ریست؟ و یا تنظیمات اشتباه؟)
    پیغام های خطای محیط دیباگ
    کد:
    **JLink Warning: T-bit of XPSR is 0 but should be 1. Changed to 1.
     
    ***JLink Error: CPU is not halted
    **JLink Warning: CPU could not be halted
    ***JLink Error: Can not read register 15 (R15) while CPU is running
    ***JLink Error: Can not read register 16 (XPSR) while CPU is running
    ***JLink Error: Can not read register 0 (R0) while CPU is running
    ***JLink Error: Can not read register 1 (R1) while CPU is running
    ***JLink Error: Can not read register 2 (R2) while CPU is running
    ***JLink Error: Can not read register 3 (R3) while CPU is running
    ***JLink Error: Can not read register 4 (R4) while CPU is running
    ***JLink Error: Can not read register 5 (R5) while CPU is running
    ***JLink Error: Can not read register 6 (R6) while CPU is running
    ***JLink Error: Can not read register 7 (R7) while CPU is running
    ***JLink Error: Can not read register 8 (R8) while CPU is running
    ***JLink Error: Can not read register 9 (R9) while CPU is running
    ***JLink Error: Can not read register 10 (R10) while CPU is running
    ***JLink Error: Can not read register 11 (R11) while CPU is running
    ***JLink Error: Can not read register 12 (R12) while CPU is running
    ***JLink Error: Can not read register 13 (R13) while CPU is running
    ***JLink Error: Can not read register 14 (R14) while CPU is running
    ***JLink Error: Can not read register 15 (R15) while CPU is running
    ***JLink Error: Can not read register 16 (XPSR) while CPU is running
    ***JLink Error: Can not read register 17 (MSP) while CPU is running
    ***JLink Error: Can not read register 18 (PSP) while CPU is running
    ***JLink Error: Can not read register 20 (CFBP) while CPU is running
    تصویر ست آپ سخت افزاری من
    تصویر محیط دیباگ(مشاهده میشه که در بهترین حالت تنها یک بار حلقه while بی نهایت اجرا شده)
    تصویر تنظیمات کیل1
    تصویر تنظیمات کیل2
    تصویر تنظیمات کیل3

    #2
    پاسخ : مشکل در دیباگ کردن stm32f103

    سلام
    به نظرم دوتا مشکل عمده می تونی داشته باشی :
    1- تنظیم ناصحیح کلیدهای بوت 0 و 1 هست(احتمال داره دستگاه بعد از راه اندازی مجدد به حالت دریافت فایل از طریق سریال میره)
    2- توی منوی تنظمیات شما jlink رو به صورت swd پیکربندی کردید در صورتی که کانکشن jlink باید باشه ه نظرم.(تصویر 3 قسمت پورت)

    دیدگاه


      #3
      پاسخ : مشکل در دیباگ کردن stm32f103

      طبق گفته دوستمون کانکشن رو به J-LINK تغییر بده
      همچنین بگین که از کدوم کتابخانه برا برنامه نویسی استفاده کردین HAL یا CMSIS ،
      در تصویر شماره 4 میکرو رو فول اریز کنین

      دیدگاه


        #4
        پاسخ : مشکل در دیباگ کردن stm32f103

        نوشته اصلی توسط dostajn نمایش پست ها
        سلام
        به نظرم دوتا مشکل عمده می تونی داشته باشی :
        1- تنظیم ناصحیح کلیدهای بوت 0 و 1 هست(احتمال داره دستگاه بعد از راه اندازی مجدد به حالت دریافت فایل از طریق سریال میره)
        2- توی منوی تنظمیات شما jlink رو به صورت swd پیکربندی کردید در صورتی که کانکشن jlink باید باشه ه نظرم.(تصویر 3 قسمت پورت)
        ممنون اما کلید های بوت هدربرد جدید اینجوری هستن، کلید بوت صفر، برای اجرای کد حتما باید روشن باشه و برای پروگرام کردن حتما پایین باشه(اگه بالا باشه در حین پروگرام،باید کلید ریست رو فشرد تا پروگرام بشه، اینی که من میگم درسته؟ اگه بخوام تو حالت دیباگ استفاده کنم، باید چه تغییری در وضعیت کلید ها بدم؟



        ضمنا کلا وقتی PORT رو از SW به JTAG تغییر دادم کلا حتی دیگه پروگرام هم نمیشه و خطا میده که دستگاهی با پورت JTAG یافت نشد، در نتیجه نمیشه دیباگ هم کرد

        دلیل: ادغام دو پست برای جلوگیری از اسپم

        نوشته اصلی توسط mohammadne نمایش پست ها
        طبق گفته دوستمون کانکشن رو به J-LINK تغییر بده
        همچنین بگین که از کدوم کتابخانه برا برنامه نویسی استفاده کردین HAL یا CMSIS ،
        در تصویر شماره 4 میکرو رو فول اریز کنین
        کانفیک رو با CUBE انجام دادم و خب کتابخانه HAL
        با تغییر به JTAG کلا حتی پروگرام هم نمیشه...
        کد:
        JLink info:
        ------------
        DLL: V4.98e, compiled May  5 2015 11:00:52
        Firmware: J-Link ARM V8 compiled Nov 28 2014 13:44:46
        Hardware: V8.00
        S/N : 58004321
        Feature(s) : RDI, FlashBP, FlashDL, JFlash, GDB
         
        * JLink Info: Could not measure total IR len. TDO is constant high.
        * JLink Info: STM32Fxxxx: Cannot attach to CPU. Trying connect under reset.
        **JLink Warning: RESET (pin 15) high, but should be low. Please check target hardware.
        * JLink Info: Could not measure total IR len. TDO is constant high.
        Error: Flash Download failed  -  Target DLL has been cancelled
        جدیدترین ویرایش توسط abavi4; ۰۰:۱۹ ۱۳۹۵/۰۶/۱۰.

        دیدگاه


          #5
          پاسخ : مشکل در دیباگ کردن stm32f103

          اگر با کوب کانفیگ میکنی پورت دیباگ رو داخلس انتخاب کن وگرنه غیر فعالش میکنه، وضعیت پین boot0 همیشه باید زمین باش الی وقتی که میخای با usart پروگرام کنی

          دیدگاه


            #6
            پاسخ : مشکل در دیباگ کردن stm32f103

            سلام
            احست حالا شد. همیشه محبت بفرمایید توی فروم بپرسید. الان سریعتر هم بچه ها دارن بهت مشاوره میدن.
            نوشته اصلی توسط abavi4 نمایش پست ها
            ...
            ضمنا کلا وقتی PORT رو از SW به JTAG تغییر دادم کلا حتی دیگه پروگرام هم نمیشه و خطا میده که دستگاهی با پورت JTAG یافت نشد، در نتیجه نمیشه دیباگ هم کرد
            SWD سرعتش بالا نیست؟ 1 مگ بهتر نیست؟

            دیدگاه


              #7
              پاسخ : مشکل در دیباگ کردن stm32f103

              توی تب Debug مدل Connect رو بزار روی Under Reset (توی Keil منظورمه) .

              دیدگاه


                #8
                پاسخ : مشکل در دیباگ کردن stm32f103

                نوشته اصلی توسط mohammadne نمایش پست ها
                اگر با کوب کانفیگ میکنی پورت دیباگ رو داخلس انتخاب کن وگرنه غیر فعالش میکنه، وضعیت پین boot0 همیشه باید زمین باش الی وقتی که میخای با usart پروگرام کنی
                طبق صفحه 197 رفرنس منوال priority رو 4 تنظیم کردم و فعالش کردم debug monitor رو در Cube MX
                عکس
                اما باز هم نتونستم دیباگ کنم
                دیپ سوئیچ بوت صفر وقتی زمین باشه میکرو می تونه از روی حافظه فلش خودش برنامه رو اجرا کنه و برای پروگرام کردن در این حالت باید لحظه ای دکمه ریست رو فشرد، درست میگم؟

                دلیل: ادغام دو پست برای جلوگیری از اسپم

                نوشته اصلی توسط روح الامین نمایش پست ها
                سلام
                احست حالا شد. همیشه محبت بفرمایید توی فروم بپرسید. الان سریعتر هم بچه ها دارن بهت مشاوره میدن.

                SWD سرعتش بالا نیست؟ 1 مگ بهتر نیست؟
                حق با شماست، سرعتش رو روی یک مگ تنظیم کردم، اما دوستان فرمودن به جای SW از JTAG استفاده کنم، اگرچه توی حالت JTAG حتی نمی تونم پروگرام کنم و به همین خاطر مجدد در حالت SW قرار دادم

                دلیل: ادغام دو پست برای جلوگیری از اسپم

                نوشته اصلی توسط my circuit2 نمایش پست ها
                توی تب Debug مدل Connect رو بزار روی Under Reset (توی Keil منظورمه) .
                این کارو انجام دادم، ممنون
                اما باز هم نتونستم دیباگ کنم!

                دیدگاه


                  #9
                  پاسخ : مشکل در دیباگ کردن stm32f103

                  خیلی برام جالبه.
                  شما می تونید پروگرم کنید. درسته؟ برنامه هم کار میکنه؟ از چه پایه هایی از میکرو استفاده میکنید توی برنامه تون؟
                  راستی سخت افزار رو چک کن. از پایه های روی میکرو تا کانکتور IDC رو چک کن. ببین Vcc و دو پین SWD و GND سالم تا کانکتور IDC رفته.
                  جدیدترین ویرایش توسط روح الامین; ۱۰:۵۹ ۱۳۹۵/۰۶/۱۱.

                  دیدگاه


                    #10
                    پاسخ : مشکل در دیباگ کردن stm32f103

                    نوشته اصلی توسط روح الامین نمایش پست ها
                    خیلی برام جالبه.
                    شما می تونید پروگرم کنید. درسته؟ برنامه هم کار میکنه؟ از چه پایه هایی از میکرو استفاده میکنید توی برنامه تون؟
                    راستی سخت افزار رو چک کن. از پایه های روی میکرو تا کانکتور IDC رو چک کن. ببین Vcc و دو پین SWD و GND سالم تا کانکتور IDC رفته.
                    بله من بدون مشکل پروگرام می کنم، برنامه هم کار میکنه، پورت های مورد استفاده هم بدین شرح هست
                    کد:
                    /*  GPIO input on PA0*/        
                    /*  ADC Single Channel on PC0*/        
                    /*  ESP8266 UART2 TX->PA2, RX->PA3*/                
                    /*  Serial to USB Converter    UART1 TX->PA9, RX->PA10*/                
                    /*  SIM900 UART3 TX->PB10, RX->PB11*/
                    (از روزی که تاپیک رو زدم برنامه های متفاوتی نوشتم که خب همه شون کار می کنه، این پورت ها که نوشتم مربوط به برنامه آخری هست که با ست آپ سخت افزاری پست اول متفاوته!)

                    سخت افزار رو هم چک کردم و متاسفانه مشکل از سخت افزار نبود، و همه چی اوکی بود!
                    جدیدترین ویرایش توسط abavi4; ۰۹:۱۴ ۱۳۹۵/۰۶/۱۳.

                    دیدگاه


                      #11
                      پاسخ : مشکل در دیباگ کردن stm32f103

                      ممنون از دوستان عزیزی که به بنده کمک کردند، با راهنمایی شما به این پی بردم که ایراد کارم بیش از اونچه که عملیاتی باشه، مفهومی هست
                      کلا ناامید شدم از دیباگ و واسه همین از مبدل TTL به USB استفاده کردم
                      اما ناگاه! ایده ای به ذهنم رسید که با تغییر مناسب پین ها در نرم افزار Cube MX تونستم این مشکل رو حل کنم و برای اینکه اگر دوست دیگری این مشکل رو داشت، با دیدن این تاپیک مرتفع بشه فایل کانفیگ اصلاحی نرم افزار Cube MX خودم رو که در نهایت تونستم دیباگ کنم، اینجا قرار میدم.
                      تصویر کانفیگ اصلاحی نرم افزار Cube MX
                      فایل کانفیگ اصلاحی نرم افزار Cube MX
                      فقط جسارتا حمل بر بی ادبی نباشه، و فقط برای اینکه فرد دیگری به خطا نیفته میگم که نکاتی که دوستان ذکر کردن ( که صد البته بسیار ارزشمند هست) و در اینجا نقل قول می کنم، ربطی به رفع این مشکل خاص نداره

                      نوشته اصلی توسط dostajn نمایش پست ها
                      سلام
                      توی منوی تنظمیات شما jlink رو به صورت swd پیکربندی کردید در صورتی که کانکشن jlink باید باشه ه نظرم.(تصویر 3 قسمت پورت)
                      نوشته اصلی توسط mohammadne نمایش پست ها
                      در تصویر شماره 4 میکرو رو فول اریز کنین
                      نوشته اصلی توسط روح الامین نمایش پست ها
                      SWD سرعتش بالا نیست؟ 1 مگ بهتر نیست؟
                      نوشته اصلی توسط my circuit2 نمایش پست ها
                      توی تب Debug مدل Connect رو بزار روی Under Reset (توی Keil منظورمه) .
                      بازم ممنون از شما دوستانی که لطف کردین و کمک کردین
                      جدیدترین ویرایش توسط abavi4; ۱۰:۰۲ ۱۳۹۵/۰۶/۱۳.

                      دیدگاه


                        #12
                        پاسخ : مشکل در دیباگ کردن stm32f103

                        نوشته اصلی توسط abavi4 نمایش پست ها
                        ممنون از دوستان عزیزی که به بنده کمک کردند، با راهنمایی شما به این پی بردم که ایراد کارم بیش از اونچه که عملیاتی باشه، مفهومی هست
                        کلا ناامید شدم از دیباگ و واسه همین از مبدل TTL به USB استفاده کردم
                        اما ناگاه! ایده ای به ذهنم رسید که با تغییر مناسب پین ها در نرم افزار Cube MX تونستم این مشکل رو حل کنم و برای اینکه اگر دوست دیگری این مشکل رو داشت، با دیدن این تاپیک مرتفع بشه فایل کانفیگ اصلاحی نرم افزار Cube MX خودم رو که در نهایت تونستم دیباگ کنم، اینجا قرار میدم.
                        تصویر کانفیگ اصلاحی نرم افزار Cube MX
                        فایل کانفیگ اصلاحی نرم افزار Cube MX
                        سلام
                        خوشحالم که مشکلتون حل شد( من الان پست رو دیدم)
                        اگه امکان داره بیشتز توضیح بدین که مشکل از کجا بوده.
                        بنده الان cube ندارم ولی از روی عکس شما چه تغییراتی اعمال کردین؟ توی کدوم قسمت؟
                        تنها حدسی که زدم اینه که شاید شما پین های swd رو به صورت نرم افزاری غیر فعال کرده بودین!

                        دیدگاه

                        لطفا صبر کنید...
                        X