در مقاله “پروگرامر Sis-Link ساخت پروگرامر ARM و AVR: دگردیسی” توضیح دادیم که چطور پروگرامر st-Link خود را به پروگرامر حرفهای sis-Link تبدیل کنید! پروگرامر sis-link علاوه بر پروگرامر کردن انواع میکروکنترلرهای ARM قادر به برنامهریزی میکروکنترلر های AVR نیز هست، در این مقاله بررسی خواهیم کرد که چطور میتوانید از پروگرامر sis-link بهصورت مستقیم در نرمافزار keil استفاده کنیدو به کمک آن علاوه بر پروگرام کردن میکروکنترلر را دیباگ کنید. با سیسوگ همراه باشید.
چرا نرمافزار Keil
البته در پستهای آینده استفاده از پروگرامر sis-link را در دیگر نرمافزار ARM آموزش میدهیم، اما در این پست قصد داریم نحوه استفاده از پروگرامر دیباگر sis-link را در نرمافزار Keil آموزش بدهیم، فرقی نمیکند کنه از چه ورژن نرمافزار keil استفاده میکنید از ورژن 4 به بعد این نرمافزار از Cmsis-DAP پشتیبانی میکند، پس از sis-link هم پشتیبانی میکند! شما با استفاده از sis-link هم قادر به برنامهریزی (پروگرام کردن) و هم خطایابی (دیباگ کردن) برنامه خودخواهید بود.
توجه داشته باشید که علاوه بر میکروکنترلر های خانواده ST شما قادر به پروگرام و خطایابی دیگر میکروکنترلر ها نیز هستید، برای روشن شدن بهتر این موضوع ما در این آموزش از میکروکنترلر LPC1768 محصول شرکت NXP استفاده خواهیم کرد. پروژه مربوطه رو در انتهای مطلب در بخش دانلودها میتوانید دانلود کنید.
توضیح برنامه تست
برنامه تست درواقع سادهترین حالت ممکن یک برنامه است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #include <LPC17xx.h> void delay_ms(unsigned int ms) { unsigned int i,j; for(i=0;i<ms;i++) for(j=0;j<20000;j++); } int main(void) { SystemInit(); //Clock and PLL configuration LPC_PINCON->PINSEL4 = 0x000000; //Configure the PORT2 Pins as GPIO; LPC_GPIO2->FIODIR = 0xffffffff; //Configure the PORT2 pins as OUTPUT; while(1) { LPC_GPIO2->FIOSET = 0xffffffff; // Make all the Port pins as high delay_ms(100); LPC_GPIO2->FIOCLR = 0xffffffff; // Make all the Port pins as low delay_ms(100); } } |
در برنامه فوق بعد از انجام تنظیمات اولیه کلاک که توسط تابع SystemInit انجام میشود، تمام پایهها از پورت GPIO2 بهصورت خروجی تعریف میشوند و بعد هر 100 میلیثانیه یک بار صفر و یک میشوند درواقع حالت چشمکزن را به وجود میآورد.
اتصال سخت افزاری پروگرامر sis-link
قبل از اعمال هرگونه تنظیمات، لازم که اتصال فیزیکی پروگرامر و میکروکنترلر برقرار شود، این اتصال بهصورت یک به یک خواهد بود، درواقع برای پروگرام کردن و خطایابی با استفاده از رابط swd تنها نیاز به 2 پایه به اسمهای swdio و swclk بیشتر نیست و سیگنال زمین هم برای همپتانسیل کردن حتماً باید متصل شود ولی پایههای Reset و 3.3 کاملاً اختیاری هستند و اگر هم متصل نباشند اتفاق خاصی نمیافتد.
تنظیمات پروگرامر در نرمافزار Keil
انجام تنظیمات پروگرامر sis-link کار سختی نیست، ابتدا از منوی Project زیر منوی Options For Target را انتخاب کنید:
در پنجره بازشده زبانه Debug را انتخاب کنید و از لیست کشویی گزینه CMSIS-DAP را انتخاب کنید و بر روی کلید Settings کلیک نمایید:
در پنجره تنظیمات بازشده، ابتدا نوع پروگرامر را Sisoog-Link انتخاب کنید و گزینه پورت را بر روی SW قرار دهید، چنانچه پروگرامر به برد LPC1768 متصل شده باشد و برد روشن باشد، باید IDCODE هسته پردازنده در قسمت SW Device همانند تصویر زیر به نمایش درآید. این بدان معناست که پروگرامر به میکروکنترلر متصل شده است.
بعدازآن به همان پنجره به سربرگ Flash Download بروید، و گزینه Reset and Run را تیک بزنید.
خوب تمام شد، بر روی کلید Ok کلیک کنید؛ تا تنظیمات اعمال شود.
برای پروگرام کردن تنها کافی است که از منوی Flash گزینه Download را انتخاب کنید:
و برای خطایابی و دیباگ تنها کافی است که از منوی Debug گزینه Start/Stop Debug را انتخاب کنید تا برنامه در حالت خطایابی قرار بگیرد:
لطفا نظرات خود را با ما به اشتراک بگذارید?
با سلام
cmsis-dap آیا فقط از SWD پشتیبانی می کند ؟ یا از رابط JTAG هم روی ST LINK های سفید پشتیبانی می کند ؟
سلام دوست عزیز – خیر قابلیت پشتیبانی از jtagرو هم داره
سلام.
میخوام یه STM32L052R8 رو با Sis-Link پروگرام کنم ولی میگه not a genuine st device abort connection در حالی که قبل تغییر پروگرامر روی همین چیپ همچین اروری نمیداد.
سلام علیکم.
استاد دو مدل st link هست.
کدوم رو باید تهیه کنیم(بنده قصد پروگرام lpc 1768 رو دارم)
ST-LINK V2
پروگرامر کوچک ST-Link V2
هر دو مدل کار میکنن – من روی هر دو جواب گرفتم – ولی توصیه میکنم اولی رو بگیرید کیفیت بهتری داره
سلام
ممنون از مطالب خیلی خوب سایتتون فقط چرا لینک های دانلود از کار افتادن ؟ چنتا از پست هارو هم امتحان کردم ولی نتونستم دانلود کنم
سلام دوست عزیز ؛ ظاهرا مشکلی توی سرویس دانلودمون وجود داره که داریم سعی میکنم مشکل رو برطرف کنیم