Форум РадиоКот https://radiokot.ru/forum/ |
|
Интерфейсы программирования и/или отладки МК в чем отличия?! https://radiokot.ru/forum/viewtopic.php?f=62&t=97413 |
Страница 1 из 1 |
Автор: | PICmaker [ Сб ноя 30, 2013 21:14:06 ] |
Заголовок сообщения: | Интерфейсы программирования и/или отладки МК в чем отличия?! |
Всем доброго времени суток! Есть желание (пока только теория ![]() 1. Какими способами (как вариант режимами) заносится машинный код в STM32 контроллеры, и через какой интерфейс контроллера это делается 2 что из себя предствляет устройство программирования и или отладки в этом случае (самодельное, серийно выпускаемое разными фирмами или только автором МК или автором ПО) 3 как реализована поддержка устройства программирования и или отладки со стороны ПК- система и ПО видит это как ком-порт или как специфический девайс или как еще что-нибудь. В каком режиме оно управляется (например если компорт то как uart или bit-bnang или еще как ?!) Опишу ситуацию из-за которой так поробно спрашиваю- как я понял у stm'а 2 интерфейса для загрузки ПО- SWD (про него тоже отдельно скажите, пожалуйста) и JTAG. Производитель контроллера предлагает свой отладичк st-link (идет и в модуле discovery и как отдельное устройство), производители некоторых платных сред разработки выпускают свой шнур- j-link. Про JTAG- этот интерфейс стандартный вроде. и данные по нему передаются в одинаковом формате для всех устройств. Так? Непонятно почему тогда разные фирмы клепают JTAG отладчики для разных архитектрур и они работают только с своей утилитой и своим типом микросхем- вот например http://marsohod.org/index.php/prodmbftdi. Если джтаг одтнаков то почему каждый программатор работает только со своей комплектной софтиной - avr-jtag только с мк avr и avr-studio, st-link только c st-link и софтом кот. его понимает, а вариант для плис (см. ссылку) только с этими плис и ТОЛЬКО с прогой которая написана автором программатора, и да же не другим софтом для той же плис. Короче, в чем разница между jtag'ами разных контроллеров, jtag программаторами и софтом этих программаторов. Интерфейс-то ОДИН ИТОТ ЖЕ?!. возможно что я не прав в своих утверждениях. расскажите что и как с этими интерфейсами. |
Автор: | coredumped [ Сб ноя 30, 2013 22:44:25 ] |
Заголовок сообщения: | Re: Интерфейсы программирования и/или отладки МК в чем отлич |
Кратко 1. Программирование flash можно произвести через: - JTAG - SWD - любой интерфейс, который поддерживается встроенным а ПЗУ STM32 бутлоадером. У разных семейств STM32 бутлоадеры и интерфейсы отличаются, UART есть у всех. 2. Отладчики программаторы: - ST-Link - детище ST. Интерфейс USB. Поддерживает JTAG и SWD - подробности на сайте ST. Стоит оригинал около $50 Поддерживает только чипы ST - STM32 и STM8. Есть клоны, а также "стыренный" бутлоадер, что позволяет просто-запросто собрать свой, ничем не отличающийся от оригинала ![]() - Segger J-Link - целое семейство отладчиков. Также поддерживают JTAG и SWD в отличии от ST-Link умеют практически все известные ARM. Интерфейс USB, но есть и эзернет (J-Link Pro). Цена оригинала зависит от лицензии, и мягко говоря - не гуманна (до тысячи $). Имеются вполне работоспособные клоны и генераторы лицензий ![]() - ARM ULink - самый крутой отладчик от ARM. Умеет все. Цена не гуманна, как и у Segger. - проект Open OCD - программный отладчик поддерживающий целую кучу "железа". Название говорит само за себя - халява. Но, по сравнению с фирменными отладчиками - тормоз, хотя это не есть большая проблема. Подробнее - на сайте. Мой совет - клон J-Link или ST-Link (если не планируете осваивать МК не от ST). Лучший софт, особенно отладчик - Keil. Так считает много людей, и я с ними согласен. Кокос - не пользовал, но народ много его пользует и не жалуется. ИАР (мое мнение) полное говно - обрыгался от интерфейса, тормоз и глюкало, постоянно вис в отладке, отправлен фтопку. Цитата: Если джтаг одтнаков то почему каждый программатор работает только со своей комплектной софтиной - avr-jtag только с мк avr и avr-studio, st-link только c st-link и софтом кот. его понимает Это из-за жлобства. На самом деле JTAG - это интерфейс, а ядра все разные, соответственно наборы регистров другие. По идее JTAG адаптер может быть один, а вот софт уже под каждую платформу свой. Только хочется продавать софт и свои адаптеры. Жлобство оно и есть. Особенно продвинулись Atmel - 1000$ за их сраный AVR-One это просто нет слов... И это г-но только под AVR. Что касается JTAG vs SWD. ARM Cortex имеет JTAG больше как дань стандартизации. SWD более быстрый и продвинутый, его и следует пользовать, к тому же требует всего 2 линии (не считая земли, конечно), а JTAG - 4, что для малоногих контроллеров может стать проблемой. Будут еще вопросы - вэлкам, отвечу. У меня есть оригинальный ST-Link, его самодельный урезанный клон, клон J-Link Pro. Последний особенно удобен в удаленной отладке через сеть - часто пользуюсь. |
Автор: | PICmaker [ Вс дек 01, 2013 18:22:03 ] |
Заголовок сообщения: | Re: Интерфейсы программирования и/или отладки МК в чем отлич |
Благодарю за ответ. Встроенный в пзу STM32 бутлоадер прошивается туда через Jtag или SWD. Так? Как я понял существует 2 варианта життагов/свд схем.- 1на спецмикросхеме (как вариант просто МК) который определяется ПО на ПК как определенное спец. устрйство. 2Или как com/lpt (не важно напрямую или через USB-конвертер) в режиме ножкодрыганья с дополнительной несложной обвязкой. Причем: в случае 1 ПОразработки определяет наличие именно предусмотренного устройства- например Keil умеет работать с ST-link b , и будет с ним работать, а например с J-link работать не будет, поскольку такое устройство не запрограммитровано в Keil. Потому что работа с самим "программатором" уже специфична на строне ПК. в случае 2 ПО должно уметь шить в режиме ножкодрыганья, а значит знать какие ножки применяемого порта пк за какие сигналы интерфейса прошивания отвечают и как ими дрыгать. вроде бы все просто- спаять преобразователь уровней с уровней порта в уровни мк, но затык в том что ПО, особенно то что имеет дело с "официальными" отладчиками, работать через ножкодрыганье НЕ умеет. (прокатит если есть сторонняя утилита для прошивания флеш МК таким способом) Более старые микроконтроллеры (например PIC16, AVR 8bit) имеют простую реализацию сигналов прошивки и поэтому есть схемы и ПО для ножкодрыганья. SWD используется только в ST? Если нет то ситуация с ним та же что и с Jtag? Были ли попытки реализовать SWD через битбанг? (это так, для интереса, ST-link и так существует) С софтом понятно- эклипс, кокос, кеил- дальше выбор из того, в чем повезет. http://www.terraelectronica.ru/news_made.php?ID=52 - терраэлектрониковский клон st-link, можно как они собрать самому ( coredumped писал(а): а также "стыренный" бутлоадер, - прошивка самого st-link?)Поправте меня если что. сделаю оговорку- купить готовый (копию/оригинал) за нормальные деньги или собрать самодельный отладчик/прошивальщик для любой одной архитектуры или нескольких я не боюсь, здесь я просто пытаюсь логически разобраться в зависимостях инструметнов разработчика, да и самого разработчика, ![]() |
Автор: | coredumped [ Вс дек 01, 2013 19:09:00 ] |
Заголовок сообщения: | Re: Интерфейсы программирования и/или отладки МК в чем отлич |
Бутлоадер залит во внутреннее ПЗУ заводом при производстве. Чтоб запустить его нужно ногу boot0 соединить с питанием. Насайте ST есть дока и прога. Лично я ни разу не пользовался, тк имею небольшую кучку отладчиков - на все случаи жизни(работа такая...) SWD - это изобретение ARM, и есть во всех Cortex, не только у ST. Вот ссылка на форум с обсуждением клонирования ST-Link и еще статья со схемой и печаткой. Я себе сделал свой вариант платы, только SWD. Можете не сомневаться, прошивочка 100% работоспособная. Что касается битбангов - то это тоже возможно, я уже писал раньше о проекте OpenOCD. К Keil можно подключить любой программатор, если у него есть соотв. драйвер. Опять же гуглим о OpenOCD + Keil - есть несколько решений. Для старта с STM32 рекомендую купить отладочную плату из серии STM32 Discovery - есть совсем недорогие (~10$). Из плюсов - на этой плате установлен ST-Link V2, которым можно отлаживать как саму плату, так и внешние устройства (есть разъемчик). Для старта - самое оно! Потом уже разживетесь ST-Link или клоном. Клон, кмк, покупать неэтично. Ладно, сделать для себя, пойдя на сделку с совестью в связи с нашей нищетой, а вот платить людям, которые воруют и наживаются на этом не стоит. К тому-ж фирменный ST-Link стоит не космических денег (~50$). А стоимость Discovery ваще минимальна - детальки установленные на ней, у нас будут стоить дороже собранной платы ![]() |
Автор: | PICmaker [ Вс дек 01, 2013 20:08:07 ] |
Заголовок сообщения: | Re: Интерфейсы программирования и/или отладки МК в чем отлич |
coredumped писал(а): купить отладочную плату из серии STM32 Discovery - есть совсем недорогие (~10$). Из плюсов - на этой плате установлен ST-Link V2, которым можно отлаживать как саму плату, так и внешние устройства (есть разъемчик). Для старта - самое оно! Потом уже разживетесь ST-Link или клоном. Согласен! тоже думаю пойти по этому пути ![]() |
Автор: | reidfix [ Пт дек 27, 2013 14:55:19 ] |
Заголовок сообщения: | Re: Интерфейсы программирования и/или отладки МК в чем отлич |
Есть и еще один путь: собрать простенкий программатор ST-LINK/V2 самому: Самодельный ST-LINK/V2, МК в программаторе прошивается юартом. Преимущество в том, что там есть еще и поддержка STM8 и для программирования внешних и самостоятельно разработанных плат намного удобнее. Бортовой дискаверский СТ-ЛИНК для внешних МК тоже использовать можно но не совсем безопасно, там нету даже ESD-защиты(встречал пару случаев выхода его из строя). |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |