MisHel64 писал(а):программатор отдельно но совместимый с этой платкой?
программатору все равно с чем совмещаться. главное, чтобы нужные ноги у камня были выведены. универсальный китайский stlink, купленный на али, у меня и с stm8 работает и с stm32. в том числе и на отладке.
глянул цены, за 170 руб нынче такой на али можно купить.
установил STVD + cosmic
беру примеры с сайта ST типа ADC example - не компилируется
потому как у ST включается файл stm8s.h, а у космика таких нет
под какой компилятор ST делает свои примеры?
есть ли где описание библиотек cosmic?
чем STDV лучше чем IDEA от COSMIC?
Я бы посоветовал все же попробовать IAR вместо связки STVD + cosmic. И начинать лучше не с примеров от ST, а с учебных ресурсов, коих пруд-пруди. Блога Марка Стивенса, например, где по stm8s много толковых материалов.
Оригинальный стлинк и не оригинальный по функционалу слабо отличимы. Дешевый китайский клон делает апдейт прошивки с сайта st так же, как и оригинал.
По поводу космиков и иже с ними, тут еще стоит смотреть не только на техническую сторону, но и на идеологическую. Для STM8 это не будет иметь решающего значения, но после, наверняка, захочется покопаться и с STM32, а там у космика уже не так все радужно. Мало того, что ST переписала до полной несовместимости стандартные библиотеки с появлением STM32CubeMX, так последний про существование космиков вообще, похоже, ничего не знает. В то же время, IAR имеет полную поддержку и для STM8 и для STM32. Согласитесь, иметь одну среду для разработки под AVR, STM8, STM32, MSP430 и всяких прочих редкоземельных МК имеет больше плюсов, чем использование отдельного уникального тулчейна для каждого семейства.
Еще IAR для STM8 имеет очень удобные библиотеки для работы с битовыми полями. Настолько удобные, что это может считаться одним из решающих преимуществ перед всеми остальными средам разработки.
Спасибо за разъяснения
По возможностям отладки IAR равнозначен STVD?
Просто последний произвелен ST как и мой програматор, важно уточнит
Насчет одного фреймворка для stm8 и stm32 сильный аргумент
Тем более я уже обратил внимание на полное отличие семантики работы с перефирийными регистрами
У космика биты в регистрах вообще не описаны (iostm8sxxx.h)
У stm в их переферийно библиотеке как то иначе и все ругают
У iar по своему
Хотел stm32 на кейле делать, но теперь подумаю
Я не сравнивал STVD с IARом с точностью до миллиметра, но сама по себе отладка в IAR вполне на уровне. Спецификации на STLINK открытые, драйвера стандартные. Ничто не мешает стороннему софту использовать все фичи заложенные ST. А вот то, что сама ST к собственным средствам разработки относится с некоторой прохладцей -- это многие замечают.
получилось у меня замигать светодиодом на STM8S103F3P6
сделал платку TSOP-DIP для втыкания в макетку и кроме МК напаял туда два конденсатора на VDD и VCAP и разъем для STLINK
сделал как рекомендовали на IAR
теперь возникает вопрос - где найти описание регистров и бит STM8 для IAR?
откуда все эти мнемоники как в примере ниже?
Эти регистры появятся понятными для компилятора, когда будет приделан файл хедеров типа "#include "iostm8s103f3.h" - там они все расписаны и определены.
Правда, многие считают, что это не самое удобное определение регистров. У других это сделано через указатели на структуры типа PD->CR1 |= ~(C10). Но для этого нужны другие хедеры, а где их брать - не знаю. Говорят, в SPL такое есть, но это на любителя.
Я уже год пользуюсь хедером, полученным от одного примера для STM8. Допиливаю его потихоньку. Там регистры указаны как поля структур, и есть удобный битовый доступ к I/O ножкам. Выкладываю его сюда для оборзения https://drive.google.com/file/d/0B47R5o ... sp=sharing
P.S. Работаю напрямую с регистрами, никаких прокладок.
header stm8s.h действительно лежит в SPL (всю SPL тянуть к себе в проект не нужно).
C10 совершенно не понятно, с нормальным header и автодополнение в иар работает:
SPL тут: http://www.st.com/web/en/catalog/tools/PF258009#
к стати подобные header используются в STM32 - удобно будет переходить
axillent писал(а):Немного запутался)
Есть хидеры самого IAR, есть SPL, есть третье стороны, с чем лучше работать?
Как включить автодополнение в IAR?
Какой хидер подключишь в проект, тот и будет работать. Посмотри содержание, попробуй понять, с каким тебе будет проще.
Автодополнение у меня работает после компиляции проекта (F7).
В SPL header от производителя микроконтроллеров, выбор очевиден.
В иаре набираю "GPIOD->" подсказка всплывает автоматом, ничего не включал
Принудительно включить - нажать CTRL+пробел
oleg110592 писал(а):В SPL header от производителя микроконтроллеров, выбор очевиден.
Позволю себе не согласится. Работать с битовыми структурами заголовочных файлов от IAR удобнее и нагляднее.
Например, установка бита в регистре таймера с иаровскими заголовками будет выглядеть так:
Причем, зная название определения, в случае иаровских заголовков я просто пишу туда значение. С стмовсими заголовками нужно смотреть по даташиту смещение, чтобы попасть значением туда.
В общем, имеющий глаза увидит, какой выбор очевиден. Для всех остальных ситуация не столь благостная. Руководствоваться штампами, что раз от производителя, значит лучшее, весьма неоднозначная практика.
2 axill: пользоваться записями вида TIM4_CR1_bit.OPM=1 немного коряво. Подключите заголовочный файл iostm8s103f3.h, где все битовые структуры имеют простые имена и ваша запись станет выглядеть, как TIM4_CR1_OPM = 1; Иаровские дифайны имеют четкое соответствие даташиту и если смекнуть, как они образуются, то часто можно и не лазить в заголовочный файл, а прямо из даташита на камень "угадывать" нужное опеределение для использования в коде.
а если использовать не IAR, а например SDCC для STM8, тоже использовать хидер от IAR?
В stm8s.h есть #ifdef _RAISONANCE, #ifdef _COSMIC для SDCC народ уже добавил...
Файл stm8s.h всегда доступен на сайте производителя и в наличии всегда свежая версия.
В IAR хидерах почему то до сих пор брешь в векторах:
Где вектора EXTI и пр.?
Забавно что в примерах IAR присутствует #include "stm8s.h".
TIM4_CR1_OPM = 1;, а если написать TIM4_CR1_OPM = 100500; что будет? А STM32 и STM8 выглядит как именно установка бита: TIM4->CR1 |= TIM_CR1_OPM; - имхо нагляднее и переносимо в добавок
Последний раз редактировалось oleg110592 Вс май 17, 2015 15:46:45, всего редактировалось 1 раз.