جی تگ چیست؟
پروتکل جی تگ به اختصار Joint Test Action Group استانداری است که توسط شرکتهای کلیدی تولید کننده PCB و IC تهیه و تدوین گردیده و در سال ۱۹۹۰ به عنوان استاندارد در IEEE با شماره IEEE 1149.1-1990 به ثبت رسیده است.
در این استاندارد سخت افزار و نرم افزار مورد نیاز برای فعال کردن قابلیت تست و ارتباط با دنیای خارج از آی سی ها و میکروکنترلرها از طریق پروتکل جی تگ ارائه شده است.
JTAG یک پروتکل ارتباطی می باشد که توسط تعدادی از شرکت های وابسطه به سازمان IEEE و تحت استاندارد آن به ثبت رسیده است.
در پروتکل JTAG دسترسی کامل به CPU و حافظه ها فراهم می باشد, و شما می توانید داده های پردازش شده یا در حال پردازش توسط آن ها را مشاهده کنید, شما می توانید داده را در حافظه ها بنویسید یا از آن ها بخوانید. در این پروتکل, امکانات زیادی در اختیار شما گذاشته شده است.
پروتکل جی تگ چه اهدافی را دنبال میکنند
اشکال زدایی در پروتکل جی تگ
اگرچه برنامه های اولیه JTAG برای اشکال زدایی و تست تراشه به روی برد نوشته شده بود ، در اینجا استاندارد JTAG برای کمک به تست دستگاه ، برد و تست سیستم ، تشخیص و و اشکالزدایی طراحی شده است. امروزه از JTAG به عنوان اصلی ترین وسیله دسترسی به زیر بلوک های مدارهای مجتمع استفاده می شود ، و آن را به مکانیزم ضروری برای اشکال زدایی در سیستم های جاسازی شده تبدیل می کند که ممکن است کانال ارتباطی با قابلیت اشکال زدایی دیگر نداشته باشد.
در بیشتر سیستم ها ، اشکال زدایی مبتنی بر JTAG. از اولین دستورالعمل پس از تنظیم مجدد پردازنده ، در دسترس است و به آن کمک می کند تا با توسعه نرم افزار boot اولیه که قبل از تنظیم هر چیزی اجرا می شود ، کمک کند
. یک شبیه ساز درون مدار (یا به عبارت دقیق تر “آداپتور JTAG”) از JTAG به عنوان مکانیسم ارسال و دریافت برای دسترسی به ماژول های اشکال زدایی درون تراشه در داخل CPU هدف استفاده می کند.
این ماژول ها به توسعه دهندگان نرم افزار اجازه می دهند تا نرم افزار سیستم تعبیه شده را در صورت لزوم مستقیماً در سطح دستورالعمل دستگاه یا (به طور معمول) از نظر کد منبع زبان سطح بالا اشکال زدایی کنند.
پشتیبانی اشکال زدایی نرم افزار سیستم برای بسیاری از توسعه دهندگان نرم افزار دلیل اصلی علاقه مند شدن به JTAG است.
بسیاری از معماری های سیلیکون مانند PowerPC ، MIPS ، ARM ، x86 یک اشکال زدایی کامل نرم افزار ، ردیابی دستورالعمل و زیرساخت ردیابی داده ها را در اطراف پروتکل اساسی JTAG ایجاد کردند.
تصویب استاندارد JTAG به جابجایی محیط های اشکال زدایی محور JTAG کمک می کند تا از طرح های اولیه پردازنده خاص استفاده کنند. پردازنده ها به طور معمول می توانند متوقف شوند ، تک پله شوند و یا آزادانه به کار روند. می توان نقاط شکست کد را هم برای کد در RAM (که اغلب با استفاده از دستورالعمل مخصوص ماشین) و هم در ROM / فلش تنظیم می شود. نقاط شکست داده اغلب به صورت بارگیری عمده اطلاعات در RAM در دسترس است.
بسیاری از سخت افزارها برای اشکال زدایی در حالت افلاین هستند ، اما بعضی از آنها به دیباگ ها اجازه می دهند تا بدون نیاز به متوقف کردن هسته اصلی برای اشکال زدایی ، به رجیسترها و باسهای داده دسترسی پیدا کنند.
بعضی از ابزارهای زنجیره ای می توانند از ماژول های ARM Embedded Trace Macrocell (ETM) یا اجرای معادل آن در معماری های دیگر استفاده کنند تا فعالیت اشکال زدایی (یا ردیابی) در رویدادهای سخت افزاری پیچیده را انجام دهند ، مانند یک آنالیزور منطقی که برای نادیده گرفتن هفت دسترسی اول به یک رجیستری از یک زیرمجموعه خاص است. .
گاهی اوقات توسعه دهندگان FPGA همچنین از JTAG برای توسعه ابزارهای اشکال زدایی استفاده می کنند.
همان تکنیک های JTAG که برای اشکال زدایی نرم افزار در حال اجرا در داخل یک CPU استفاده می شود ، می تواند به اشکالزدایی سایر بلوک های طراحی دیجیتال در داخل FPGA کمک کند.
به عنوان مثال ، دستورالعمل های سفارشی JTAG را می توان در اختیار رجیسترهای خواندنی از مجموعه های سیگنال های دلخواه در داخل FPGA قرار داد ، و برای رفتارهایی که در عملیاتکارکرد مدار قابل رویت نیستند استفاده کرد . به همین ترتیب ، نوشتن چنین ثبت هایی می تواند قابلیت کنترل را فراهم کند که در غیر این صورت در دسترس نیست.
ذخیره سیستم عامل و تغیرات نرم افزاری در پروتکل جی تگ
JTAG به سخت افزار برنامه نویس دستگاه اجازه می دهد تا داده ها را به حافظه داخلی غیر فرار دستگاه (به عنوان مثال CPLD ها) منتقل کند. برخی از برنامه نویسان دستگاه برای برنامه نویسی و همچنین اشکال زدایی در دستگاه دارای دو هدف هستند. در مورد FPGA ، دستگاههای حافظه فرار نیز می توانند از طریق پورت JTAG ، بطور معمول در حین کار توسعه برنامه ریزی شوند. علاوه بر این ، قابلیت نظارت داخلی (دما ، ولتاژ و جریان) از طریق درگاه JTAG قابل دسترسی است.
از برنامه نویسان JTAG برای نوشتن نرم افزار و داده در حافظه فلش نیز استفاده می شود. این کار معمولاً با استفاده از دسترسی به داده های باس دیتا مانند پردازنده استفاده می شود ، و بعضی اوقات توسط CPU انجام می شود ، اما در موارد دیگر تراشه های حافظه
آزمایش اشکال زدای سخت افزاری در پروتکل جی تگ
فن آوری اسکن سخت افزاری JTAG به بسیاری از سیگنال های منطقی یک مدار مجتمع پیچیده ، از جمله پین های دستگاه ، دسترسی دارد.
سیگنال هاردر رجیسترها و ثبات (BSR) که از طریق TAP قابل دسترسی است ، نمایش داده می شوند.پروتکل جی تگامکان را می دهد تا تست و همچنین کنترل حالت های سیگنال ها برای آزمایش و اشکال زدایی را انجام دهید. بنابراین ، هر دو ایراد نرم افزاری و سخت افزاری (ساخت) ممکن است واقع شده و یک دستگاه عملیاتی نیز کنترل شود.
زنجیره اسکن سخت افزاری JTAG هنگامی که با خودآزمایی داخلی (BIST) همراه است ، یک راه حل کم هزینه را برای آزمایش یک IC برای خطاهای کوتاه ، باز شده و خطاهای منطقی فراهم می کند. مکانیسم اسکن معمولاً به تشخیص یا آزمایش زمانبندی ، دما یا سایر خطاهای عملیاتی پویا که ممکن است رخ دهد کمک نمی کند.
معماری سخت افزاری پین های پورت JTAG
هر وسیله ای که با استاندارد Jtag سازگار باشد لازم است تا پین های زیر را داشته باشد :
چهار پین نخست برای ارتباط لازم است ولی پین آخر می تواند اختیاری باشد.
Clock ورودی که جدا از clock سیستم می باشد. | Test Clock Input | TCK |
از طریق این پورت دیتا به وسیله سازگار با Jtag وارد می شود. | Test Data In | TDI |
از طریق این پورت داده ها از وسیله سازگار با Jtag خارج می گردد. | Test Data Out | TDO |
از طریق این پورت حالتهای مختلف تست که در استاندارد مذکور ذکر شده انتخاب می شود. | Test Mode Select | TMS |
این پین امکان راه اندازی غیر همزمان TAP Controller را فراهم می کند. | Test Reset Input |
معرفی 4 پایه اصلی برای ارتباط با سخت افزار از طریق رابط JTAG و پروتکل جی تگ
1- TCK (Test Clock Input) : Clock ورودی, این پالس برای همزمانی میان دستگاه مورد تست و پروگرامر JTAG می باشد.
2- TDI -&-Test Data In : از طریق این پایه, داده از پروگرامر به دستگاه در حال تست وارد می شود.
3- TDO -&-Test Data Out : از طریق این پایه, داده از دستگاه مورد تست به پروگرامر ارسال می شود.
4- TMS -&-Test Mode Select : از طریق این پورت حالت های مختلف تست انتخاب می شود.
نکته : هر وسیله ای که با استاندارد JTAG سازگار باشد لازم است تا پین های نامبرده شده در بالا را داشته باشد.
همچنین در این میان دو پایه دیگر نیز وجود دارد:
5- TRST -&-Test Reset Input : این پایه از پروگرامر به ریست دستگاه متصل می شود و قبل از شروع کار آن را بازنشانی می کند.
6- JTAGSEL -&-TJAG SELECT : برای راه اندازی پروتکل JTAG, این پایه باید یک شود.
پروگرام چندین ایسی توسط پروتکل جی تگ
بزارید با یه مثال توضیح بدم فرض کنید یه برد زدین روی بردتون دو تا ایسی متفاوت وجود داره یکی FPGA یکی دیگه STM32Fx حالا میخواید برنامه هاتون رو روش پروگرام کنید اینجا ایده ای که به ذهن اکثریت ما میاد اینکه برای هرکدومشون یه سوکت پروگرام بزاریم و در نهایت به صورت مجزا هر کدومشون رو پروگرام کنیم اما یه راه حل ساده تری هم هست که اگه از این طریق سخت افزاها رو متصل کرده باشید دیگه نیاز به استفاده از روش اول نخواهید داشت و در نهایت توسط یه سوکت قابلیت پروگرام کردن چندین برد رو خواهید داشت.
سوالی که پیش میاد اینکه آیا خودش به صورت خودکار ایسی ها رو میشناسه و پروگرام میکنه؟ خیر بلکه باید از طریق نرم افزار هر کدوم از ایسی ها رو مشخص کنید و در نهایت برنامه مربوط به سخت افزار رو آپلود کنید.
کنترل کننده سخت افزاری JTAG:
شما برای برقرای ارتباط با وسیله سازگار با JTAG نیاز به استفاده از یک کنترل کننده سخت افزاری دارید که یا به صورت کارت در داخل کامپیوتر قرار می گیرد و یا اینکه از پروگرامر برای ایجاد ارتباط استفاده می کند.
وسیله سازگار با JTAG باید به تمام آدرس های حافظه فلش و سیگنال های کنترل و دیتا متصل باشد.لزومی ندارد که سخت افزار شما سازگار با استانداردهای Jtag باشد چرا که دستگاه شما دیتا را از کنترل کننده سخت افزاری دریافت نموده و از آن جهت که به تمام فلش دسترسی دارد آن را جای مورد نظر می نویسد.
در صورتی که رایانه شما فاقد پورت پارالل است شما نیاز به یک برد رابط usb به lpt دارید این بردها انواع مختلفی دارند و دارای سرعت های مختلف هستند و معمولا برای جی تگ عمومی استفاده می شوند .
:: سخت افزار JTAG اختصاصی برای پردازنده و اف پی جی ها و میکرو کنترلها
برای اتصال میکروکنترلر ARM به کامپیوتر از طریق واسط JTAG به یک سخت افزار نیاز دارید
, این سخت افزار مطابق شرح زیر است:
:: کابل ارتباطی JTAG
کابل ارتباطی وظیفه اتصال دستگاه مورد تست را به پروگرامر به عهده دارد, معمولا پروگرامر از طریق یک کابل دیگر به پورت سریال یا موازی کامپیوتر متصل می شود. سخت افزار JTAG وظیفه کنترل داده های ارسالی و دریافتی و مراقبت از کامپیوتر در برابر خطاهای شخصی را به عهده دارد
:: نرم افزار JTAG
وظیفه نرم افزار در پروتکل جی تگ تبدیل کدهای دریافتی به علائم نمایشی و کدهای قابل فهم برای انسان می باشد.
یک نرم افزار ساده و کاربردی برای راه اندازی واسط JTAG نرم افزار رایگان HJTAG است .
نکته : کانکتور تعبیه شده برای اتصال کابل JTAG باید مشابه کانکتور تعبیه شده بر روی برد باشد, تا در اتصال سیم ها مشکلی به وجود نیاید. در صورتی که پایه های پورت LPT را روبروی خود بگیرید, شماره پایه ها در کنار آن ها نوشته شده است.
نکته : به دلیل اختلاف منطقی در سطح پالس ریست, استفاده از ترانزیستور و مقاومت الزامی است.
نکته : شما باید جامپر Jselect را نیز در برد میکروکنترلر ARM متصل کنید. به طور ساده تر شما باید پایه JTAGSEL را در میکروکنترلر ARM به مثبت تغذیه میکرو متصل کنید.
سپس پروگرامر را به پورت LPT متصل کنید و نرم افزار H-JTAG را اجرا کنید. در صورتی که سخت افزار پروگرامر درست باشد, در پنجره HJTAG نام هسته استفاده شده در میکرو به نمایش در می آید.
نکته : در صورتی که با پیغام خطایی با موضوع H-JTAG Server روبرو شدید, به منوی Settings بروید و بعد از انتخاب گزینهPort Setting در پنجره باز شده اولین مورد را انتخاب کنید. البته در صورتی که کامپیوتر شما بیش از یک پورت دارد, گزینه های بعدی را نیز به ترتیب انتخاب و آزمایش کنید.
هم اکنون از منوی Felasher گزینه Start h-Felasher را انتخاب کنید, و بر روی گزینه Check کلیک کنید تا میکرو شناسایی شود, سپس فایلی با پسوند Hex یا Bin را انتخاب کنید. حال می توانید با زدن گزینه Program برنامه را از کامپیوتر به میکرو منتقل کنید.
جی تگ در تلفن های همراه و پروتکل جی تگ
گاهی اوقات به هنگام برنامه ریزی (اپدیت-فلش) گوشی بدلیل برنامه ریزی اشتباه یا قطعی برق یا سیم ارتیاطی در زمان نوشتن فلش، این حافظه تخریب می گردد که به اصطلاح از این اشکال به عنوان خرابی Flash نام برده می شود. در این حالت گوشی هیچ نرم افزاری را دریافت نکرده و بدون استفاده می گردد(بریک) برای برطرف نمودن این اشکال تنها یک راه حل وجود دارد.
در صورتی که سیستم عامل گوشی شما خراب شده باشد، با هیچ نرم افزار نمی توانید آن را نصب کنید و یا حتی هیچ راهی برای ریست CPU گوشی شما وجود ندارد به همین دلیل بهترین راه حل استفاده از پروتکل جی تگ است.
در دنیای دیجیتال امروزه تعداد گوشی های هوشمند اندروید و آیفون روز به روز در حال افزایش می باشد و شرکت های سازنده ی این گوشی ها هر روز برنامه ها و سیستم عامل ها را بروزرسانی می کنند اما برخی از کاربران برای دریافت این آپدیت ها دچار مشکل می شوند و این مشکلات می تواند ناشی از قطع برق و یا نوسانات اینترنت باشد که بروزرسانی درست انجام نشود به همین دلیل گوشی در حالت بریک می ماند و سیستم عامل گوشی آسیب می بیند برای حل این مشکل می توانید از استاندارد پروتکل جی تگ استفاده کنید که این قابلیت به شما کمک می کند مجددا سیستم عامل گوشی خود را راه اندازی کنید.
-از انجایی که نمیتوان با در آوردن IC Flash دوباره آن را برنامه ریزی کرد و همچنین به علت عدم توانایی و مهارت و در بعضی ازمدلها بخاطر وجود رزین(چسب ) امکان جابجایی IC از PCB وجود ندارد نیاز به ابزاری هست که بتواند به صورت مستقیم CPU و IC FLASH را شناسایی و اقدام به بازنویسی نرم افزار مربوطه نماید
باکس جی تگ از یک اینتر فیس همراه با سوکت 20 پین بهره می برد که البته 11 پین NC و 1 پین GND هست و 9پین استاندارد هم وجود دارد که به شرح زیر می باشد
1
حداقل اتصالات پین های جی تگ
معماری پورت در JTAGهر وسیله ای که با استاندارد Jtag همخوانی دارد میبایست پین های زیر را داشته باشد.
(Test Reset Input)
این سگنال امکان راه اندازی غیز همزمان TAP Controller را فراهم میسازد.
Test Clock Input)TCK:این پایه برای تولید پالس همزمانی استفاده می شود.
-(Test Data Input)TDI:از طریق این پایه داده از پروگرمر وارد میکرو می شود.
-(Test Data Output)TDO:این پایه داده را از میکروکنترلر به پروگرمر منتقل می کند.
-(Time Mode Select)TMS:از طریق این پایه حالت های مختلف تست انتخاب می شود.
-(Test Reset Input)TRST:این پایه به پایه ریست میکرو متصل می شود و قبل از شروع کار آن را ریست می کند.
جی تگ ای سیو خودروها
پروتکل جی تگ برای خواندن دیتای داخلی ای سی یا ایپرام راستفاده میشود و قابلیت نوشتن را نیز به کاربر میدهد که در مواقعی مانند عملیات ریمپ با Jtag جی تگ کردن ایسیو دیتا را خوانده و بعد ریمپ کردن فایل bin انرا را بر روی ایسیو میریزند.البته در حال حاضر تعمیر کاران ای سیو به علت نداشتن اطلاعات لازم از پورتها میکرو و پشتیبانی جیتگ کار خود را دشوار کرده اند. در این موارد تعمیکاران ایس فلش را از بر جدا کرده و با پروگرمر مجدد ایس را پروگرام میکنند .که این کار در مجموع غلط است.
چه زمانی از J-TAG درای سیو خودروهااستفاده میشود:
1- اگر برد ecu به هر دلیلی اسیب ببیند و ما نتوانیم از طریق پورت OBD2 با میکروکنترلر ارتباط برقرار کنیم(جهت دانلود و یا گزینه های دیگر) از گزینه جیتگ استفاده میشود.
2- در بعضی مواقع مانند ریمپ ، خارج کردن آی سی میکرکنترلر کاری بس دشوار میباشد در این مواقع میتوانید از جانگشن های (سوارخ)جیتگ استفاده کرده و دیتاهارا از ای سی را لود یا پروگرام کرد.
جی تگ مودمهای خانگی
در صورتی که فرم ور مودم خراب شود و مودم از حات بوت خارج نشود نیاز است که برنامه بوت مودم از طریق پورت جی تگ دوباره به روی ای سی فلش پروگرام شود. درصورت تعویض ای سی فلش نیز این امر باید انجام شود.پس در اینجا میبینیم که واقعا پروتکل جی تگ چه کمک بزرگی به تعمیر کاران می کند.
پروتکل جی تگ در ستاب باکسهای خانگی (dvb-s,dvb-t)
دستگاهای گیرنده دیجیتال تقریبا 80 درصد رسیور ها که امروزه در بازار موجود می باشند دارای CPU از نوع ST می باشند و عمدتا از نوع :STI5518 STI5516 STI5512STI5500وتمامی این CPU ها سازگار با JTAG می باشند، یعنی در داخل این CPU هاTAP Controller و Register های مربوط موجود می باشد.
در نتیجه 5 پین مذکور در بالا در آنها موجود می باشد.فقط مهم پیدا کردن آنهاست که آن هم از Data Sheet CPU ها قابل استخراج می باشد.
خب بینیم که برای برقرای ارتباط به چه چیزهای نیاز داریم
- یک کامپیوتر مجهز به پورت lpt
- نرم افزای که از طریق یک اینتر فیس با دستگاه ارتباط برقرار کند.
- یک رابط یا اینتر فیس برای انتقال داده به کامپیوترکامپیوتر
مورد مورد نرم افزار هم معمولا از JKEY استفاده می شود البته استفاده از آن هم فوت و فن های خودش را دارد به عنوان مثال لازم است تا با داشتن اطلاعاتی راجع به نوع و مارک فلش موجود در دستگاهتان آن را در صورت عدم وجود برای برنامه معرفی کنید.
می رسیم به واسط یا اینتر فیسام روزه اینترفیس های ساخته شده توسط شرکتهای مختلف موجود می باشد که قابل خرید می باشند از جمله معتبرترین آنها FLASH LINK می باشد که ساخت شرکت ST یعنی شرکت تولید کننده CPU های STI .
به صورت آماتوری نیز مدل های مختلفی ارائه شده است که معمولا البته با امکانات کمتر نسبت به مدل های فروشی.راحت ترین راه اماتوریش استفاده از 5 تا مقاومت 100 اهمی که پایه های جی تگ به پورت وصل میکنه فقط طول سیمهای ارتباطی بیشتر از 20 سانت نشه من تست گرفتم خیلی راحت جواب میده.
یک موضوع راجع به پورت JTAG در پردازنده های ST
پین های زوج یعنی 2 و 4 و 6 و 8 و 10 و 12 و14 و16 و 18 و 20 به گراند متصل می شوند.پین های 1 و 7 بدون استفاده پین 3 گزارش خطاپین 5 آنالیز cpuپین 9 TMSپین 11 TCKپین 13 TDIپین 15 TDOپین 17 متصل به مدار ریست کننده دستگاهپین 19 TRSTنکته: در مورد CPU های STI یک یا دو پین نیز وجود دارد که تعیین می کند آیا سیستم از روی فلش بوت شود یا از روی لینک بیرونی یا DCUبنابراین لازم است تا به هنگام استفاده از Jtag وضعیت این پهنا برسی شود.در cpu های STI5518 این پین شماره 115 cpu است که باید به گراند متصل شود تا سیستم کنترل را به TAP Controller واگذار نماید.در cpu های STI5500 این پین شماره 27 cpu است که باید low نگه داشته شود.
در CPU های STI5515 :Pin 109 : TRSTPin 110 : TMSPin 111 : TDOPin 112 : TDIPin 113 : TCKPin 115 : Boot_From_Rom or DCUدر CPU های STI5500 :Pin 186 : TDIPin 187 : TMSPin 188 : TCKPin 189 : TDOPin 190 : TRSTPin 27 : BRM1/Boot From Romدر CPU های STI5512 :J1 TRSTJ3 TDOJ4 TDIJ2 TMSH3 TCKJ19 & J20
پروتکل جی تگ در میکرو کنترلهای arm, avr
Signal | Pin | Pin | Signal |
---|---|---|---|
TCK | 1 | 2 | GND |
TDO | 3 | 4 | VTref |
TMS | 5 | 6 | nSRST |
Vcc | 7 | 8 | (nTRST) |
TDI | 9 | 10 | GND |
پروگرامر و دیباگر AVR با رابط USB قیمت پایینی داشته و امکان تامین توان برای قطعه ای که به آن متصل است را نیز دارد. در صورتی که نیاز به استفاده از ویژگی تامین توان این پروگرامر نداشته و ترجیح می دهید از منبع خارجی استفاده کنید،
JTAG ICE یک دیباگر(اشکال زدا) و پروگرامر برای AVR studio می باشد، دارای رابط JTAG بوده و از تمامی میکروکنترلرهای AVR 8bit با ساختار RISC پشتیبانی می کند.
پروتکل جی تگ در ارم های mst و رابط بین SWD
وقتی میگیم که SWD در حال حاضر میتونه ARM Cortex رو پشتیبانی کنه حتما یه خبرایی توی خود نرم افزار و سخت افزارش هست.
SWD شامل 3 پین به نام های SWDIO و SWDCLK و RESET و البته یه پین دیگه به نام GND هست که از طریق این پین ها میتونیم با تراشه مورد نظرمون ارتباط برقرار کنیم به جرات میتونم بگم هر سخت افزاری که درست کنید و یا بخرید که این پین ها رو داشته باشه به راحتی میتونید سخت افزارتون رو راه اندازی کنید( این از لحاظ سخت افزاریش)
خب حالا چطور میشه که فرایند پروگرام روی تراشه صورت میگیره؟
به سادگی، دقیقا نرم افزار هایی که کار آپلود کد رو میکنند بخشی به اسم SWD دارند به طور مثال برای ایسی های شرکت ST، نرم افزار و سخت افزاری هست به نام STLINK که دقیقا همین قابلیت پروگرام و دیباگ رو به شما میده البته همونطوری که گفتم برای این کار حتما نیاز به نصب درایور دارید پس لطفا این درایور رو جدی بگیرید.
نتیجه گیری
- SWD در حال حاضر برای پروگرام و دیباگ ARM های سری CORTEX استفاده میشه.
- SWD تنها از سه سیم برای پروگرام و دیباگ استفاده میکنه که به SWDIO و SWDCLK و RESET معروف هستند .
- SWD از لحاظ هزینه مقرون به صرفه است.
- سرعت SWD حدودا به 50Mhz میرسه
- JTAG صرفا برای پروگرام و دیباگ ARM ها نیست بلکه میشه گفت تقریبا برای تمامی ایسی ها و FPGA ها و CPLD و ASIC ها استفاده میشه و یا به عبارت بهتر میشه گفت هر نوع تراشه دیجیتال رو میتونه پروگرام کنه.
- JTAG برای پروگرام و دیباگ کردن از 4 سیم استفاده میکنه.
- JTAG از لحاظ هزینه نسبت به SWD مقداری گرونتره اما کاربردیتره.
- JTAG قابلیت پروگرام و دیباگ چندین ایسی رو به صورت سری داره که این قابلیت توی SWD امکان پذیر نیست.
- JTAG از لحاظ ساخت قدمی تر از SWD هست و خانواده های ARM7 و ARM9 رو شامل میشه که SWD این امکان رو نداره.
- سرعت JTAG حدودا به 100Mhz میرسه
- تنها نقطه ضعفی که میشه از JTAG گرفت، اینکه بگیم پایه های مورد استفادش بیشتر از SWD هست همین و بس.
کلام اخر در رابطه با پروتکل جی تگ
اکثر محیط های توسعه برای نرم افزار تعبیه شده شامل پشتیبانی از پروتکل جی تگ JTAG هستند.
به طور کلی ، سه منبع از چنین نرم افزاری وجود دارد:
- فروشندگان تراشه ابزارهایی را تهیه می کنند که معمولاً به آداپتور JTAG مورد نیازشان نیاز دارند.به عنوان مثال می توان به فروشندگان FPGA مانند Xilinx و Altera ، Atmel برای خطوط تولید AVR8 و AVR32 و تگزاس ابزارز برای بیشتر محصولات DSP و میکرو آن اشاره کرد.چنین ابزارهایی بسیار برجسته هستند و ممکن است تنها گزینه واقعی برای تراشه های بسیار تخصصی مانند FPGA و DSP باشد. ابزارهای نرم افزاری پایین دستی ممکن است به صورت رایگان ارائه شوند.
- فروشندگان ابزار ممکن است آنها را ، معمولاً در رابطه با فروشندگان متعدد تراشه ، برای پشتیبانی از توسعه کراس پلتفرم ، تهیه کنند. محصولات مستقر در ARM دارای بازار ثروتمندی ثروتمند هستند و تعدادی از این فروشندگان به سیستم عامل های غیر ARM مانند MIPS و PowerPC گسترش یافته اند. فروشندگان ابزار گاهی اوقات محصولات خود را در اطراف نرم افزارهای رایگان مانند GCC و GDB می سازند ، با پشتیبانی از رابط کاربری گرافیکی غالباً از Eclipse. آداپتورهای JTAG گاهی به همراه بسته های پشتیبانی فروخته می شوند.
- ابزارهای منبع آزاد وجود دارند. همانطور که گفته شد ، GCC و GDB هسته اصلی یک ابزار خوب را تشکیل می دهند و محیط های GUI برای پشتیبانی از آنها وجود دارد.همه چنین نرم افزاری تمایل به پشتیبانی از اشکال زدایی اساسی دارند: متوقف کردن ، متوقف کردن ، پله تک ، نقاط شکست ، مرور ساختار داده و غیره. ابزارهای تجاری تمایل دارند ابزاری مانند شبیه سازهای بسیار دقیق و آنالیز ردیابی را ارائه دهند ، که در حال حاضر به عنوان منبع باز در دسترس نیست.