Сторінка ембеддера - Саморобний відладчик для ARM (j-link v5)

Для багатьох любителів, найболючіше в переході на нову процесорну архітектуру -необхідність мати залізяки для заливання коду в камінь і для налагодження його там. Ну зізнайтеся, ви хотіли програтися з АРМами, але думаючи – а як же це диво запрограмувати зупиняла вас у цій світлій намірі і далі справа не йшла!

У цій статті пропоную вам сконструювати клон відладчика j-link v5 фірми Keil. Клон називається mt-link.

ембеддера

J-link – класичний налагоджувач для АРМів. Це справжній швидкий відладчик, а не виріб типу Wiggler'a. Максимальна швидкість шини – 12МГц. Мені, наприклад, за швидкості 1МГц працювати цілком комфортно. AvrDragon на тій же частоті і поруч не валявся, гальма.

Докладніше про характеристики відладчиків можна почитати у талмудах типу http://ftp.iar.se/WWWfiles/jlink/J-Link_J-TraceARM-2.pdf.

Я наведу найважливіше з нього – стандартне розпинання JTAG'a (вид на роз'єм відладчика):

відладчик

Нагадаю вам, що клонування відладчиків – заняття неблагородне! Робити це можна лише з некомерційною метою як дослідження, ітп. Я не несу жодної відповідальності за те, що ви зробите з матеріалами цієї статті.

Я ж особисто зібрав клон виключно в некомерційних дослідницьких та освітніх цілях.

Виготовлення

Тут все як завжди – робимо хустку, паяємо деталі. Хустка досить складна, розрахована на заводське виробництво, але викрутитися можна. Я ж викрутився )

Беремо схему тут:

Вона ж, тільки в p-cad.

Ну і плата в p-cad'і:

І, про всяк випадок, прошивка:

Для того, щоб переглянути P-CAD файли, ви можете сказати P-CAD Viewer - він безкоштовний і знайти його в інтернеті - не проблема.

Робимо хустку. Дуже пощастило, що уP-CAD Viewer'е цілком адекватна друкарка та плату для фоторезиста роздрукувати таки можна.

саморобний

Як видно, головна деталька – at91sam7s64, в наявності типова проблема курки та яйця. І її, на щастя, тут вирішено!

Контролери at91sam7 мають USB завантажувач - досить тільки встромити USB роз'єм у комп'ютер, завантажити з сайту атмела (http://atmel.com, якщо хтось не здогадався) пакет at91-isp, встановити її запустити SAM-PROG, що входить до комплекту.

Тепер – як запустити завантажувач?

Для цього потрібно:

Все, контролер повинен виявиться і буде готовим до програмування.

Якщо ви користуєтеся IAR'ом, то запустіть:

C:\Program Files\IAR Systems\Embedded Workbench 5.4\arm\bin\jlink.exe

Програма оновить прошивку налагоджувача до поточної версії. У ній також можна перевірити роботу деяких висновків ( напишіть команду “?”, вам все розпишуть ).

Все, з arm7 мусить працювати. Якщо ви припускаєте працювати з cortex, то доведеться ще зайти на

та скачати звідти “Software and documentation pack V4.11m”. При установці потрібно буде дозволити замінити DLL іару.

Все, кортекс на JTAG'e тепер теж підтримується!

Результати

Відладчик був використаний з LPC1756 (Cortex-M3, якщо хтось не в курсі). Я порівняв його з оригінальним J-LINK IAR v5.4. Звичайно, немає жодної різниці.

Звичайно, людська думка не стоїть на місці, вже є схеми та прошивки аж до восьмої версії відладчика. Знайти їх можна тут:

Я не збирав, але якщо ви зберете, прошу поділитися.

Мій порив зробити MT-link помер після того, як з'ясувалося, що на ARM стає Linux, а прошивати можна через COM/Ethernet.

А ось для AVR'ів життя змушує робити USB програматор: - (Тепер ось думаю який =)

Ті арми на які стає лінукс - це вже не ембедед, це компи) Та й не так часто вони і потрібні. З приводу програматора для АВР нічого сказати не можу - сам юзаю дракона)

Так, компи))) Але таки приємно: сунув флешку - бачить; сунув SD-карту - бачить; навіть USB гвинт на 500Гб сунув - теж бачить. Для ембеддіда вони таки підходять, якщо не ставити лінукс, а писати висмоктувати. Хоча зазвичай і меги вистачає, бо серйозно я цим не займаюся.

А цей MT-Link 5.0 з кортексами під Keil працюватиме через JTAG?

Так, у кейлі має працювати — це клон сеггерівського лінка.

Сергію, а ви можете порадити якийсь найбільш перспективний ARM процесор для освоєння? Хочеться щоб була ефективність пристойна порівняно з AVR, та головне найбільша безглючність. Дивився на STM32 Cortex-M3, вони начебто нічого, але говорять поки криві і є глюки в периферії, є зараз AT91SAM7S32 і LPC2134, але ядро ​​SAM7 не дуже спритне. Як бачу, ви вибрали Cortex-M3 від LPC, які на користь цього були аргументи? Як враження від праці?

Взагалі, мені дуже не подобається вираз «процесор для освоєння». Процесор повинен вибиратися під конкретне завдання.

У лпцшних кортексів дуже розвинена переферія, випробувана на lpc2000, ерати практично порожні, частота дуже висока - 100МГц, ну і для мого конкретного завдання він підійшов, тому його і використав.

Починати освоювати контролери я рекомендую з 8-бітних авр/піків - там більше специфічних граблів.

Ну з 8 бітними МК я вже працював, але тут для одного завдання швидкості стало не вистачати, довелося урізати алгоритм і потік даних. Тому хочу освоїти більш потужну архітектуру.

Ну не знаю, я не згоден. Вибирати процесор під конкретне завдання - їх занадтобагато, і всі вони в чомусь, але різні. Не знаю, може я один такий, але тоді доведеться кожні півроку вчити нову архітектуру, що затратно під силу і за часом. А потім перейти не так то легко. Потрібен софт, відладники, бібліотеки, операційки та багато чого ще... Дорого виходить. Цікаво звичайно так, поколупати трохи. Хіба не в цьому плюс контролерів? Один (Ну не один, але й не все одразу) знаєш, круто на ньому програмуєш нічого зайвого не вчиш. Я зараз: 1) Пишу для змагань проект під новий для мене PIC 2) Розгрібаю по роботі в інституті проц ATmega 644 3) Почав освоювати STM8/Намагаюсь хоч якось почати STM32

При цьому на комп'ютері гори всяких MpLab'ів, IAR'ів, AVR Студій і таке інше. Не кажучи вже про Eagl, Proteus, Multisim…. Плюс для кожного свій програматор, різні мови програм...

З іншого боку, уявлення про все треба мати, а знати все не можна. Ну ось, що думав, те й сказав =))) Амінь! ))

Нова архітектура вчиться рівно за день (читання доки), і це далеко не завжди потрібно — адже виробник компілятора зробив це за нас. Якщо знаєш основні принципи — усі архітектури здаються схожими. Я особисто зовсім не відчуваю жодного дискомфорту під час переходу з архітектури на архітектуру.

А можна за допомогою цього відладчика скажемо залізти у відсоток до КПК? ЗИ А як із наступними версіями ARMів?

>А можна за допомогою цього відладчика скажемо залізти в проц до КПК? Можливо, тільки середовище має підтримувати цей відсоток.

>А як із наступними версіями ARMів? Підтримує всі арми з інтерфейсом JTAG, не підтримує SWD

Доброго вам дня. Скажіть, будь ласка, середовище H-JTAG з ним працюватиме? І ще: я так розумію МК серії LPC2xxx він підтримує?

>середовище H-JTAG з нимпрацюватиме? Не пробував, але винна.

>я так розумію МК серії LPC2xxx він підтримує? Безумовно і невідворотно.

Доброго вам дня. Ще одне питання: чи не пробували програмувати з-під Keil'a?

Ні, не куштував.

Доброго вам дня. У мене є такий відладчик — чудова штука, але нещодавно наткнувся на форумі електронікса на тему з апгрейду девайсу до сьомої версії. Ціна питання — 2 перемички та пів години часу на перепрошивку. Навіщо? щоб отримати SWD. Сенс у цьому, що кидаються 2 перемички від праці до роз'єму JTAG, тобто. у режимі JTAG обмін з таргетом йде через буфер, а режимі SWD безпосередньо, буфер вирубується. Спробував, запаяв перемички, замінив прошивку на 7-ю версію і тепер працюю тільки за SWD, дуже зручно - всього 4 дроти, та й то один просто для виміру живлення таргету. Робив поспіхом, тому не все пам'ятаю. Подробиці можна знайти на вказаному форумі у темі щось на кшталт «Китаєзу лінк».

Я в результаті купив китайський клон 8 версії, незабаром викладу огляд. Там є і SWD та SWO.

Подивився на ПП і злякався. Спектра бачити керма. 🙂

Дешевше купити 🙂 витрати не коштують тих грошей. всього 130 грн і буде вам шастя 🙂