Программирование STM8

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Программирование STM8

Сообщение oleg110592 »

[uquote="nuisance",url="/forum/viewtopic.php?p=3720882#p3720882"]Где вообще про них рассказывается?[/uquote]
Обычно в документации к компилятору. Но тут странная ошибка:
WIN execution failed
типа виндовс не может запустить exe файл компилятора (cxstm8.exe).
Cosmic установлен стандартным путем? Т.е. скачан с сайта, установлен, потом запрос лицензии, французы присылают бесплатную лицензию, которую надо указать...
Начать можно было бы с создания простого проекта - в STVD хороший визард создания проекта. Там нужно потом только добавить заголовочный файл от производителя.
Пример, вижу для stm8 touchsensing - вполне возможно надо скачать посвежее версию с родного сайта, у меня Cosmic эти оба примера нормально компилирует:
https://www.st.com/en/embedded-software ... h-lib.html
Аватара пользователя
Asmodey
Друг Кота
Сообщения: 6184
Зарегистрирован: Сб янв 28, 2006 22:47:24

Re: Программирование STM8

Сообщение Asmodey »

Отмечусь в теме чтобы не потерять.
Астролябия-сама меряет, было бы что мерять!!!
nuisance
Родился
Сообщения: 6
Зарегистрирован: Чт апр 07, 2016 09:44:42

Re: Программирование STM8

Сообщение nuisance »

[uquote="oleg110592",url="/forum/viewtopic.php?p=3721014#p3721014"]Cosmic установлен стандартным путем? Т.е. скачан с сайта, установлен, потом запрос лицензии, французы присылают бесплатную лицензию, которую надо указать...[/uquote]
Скачан стандартно. С родного сайта. Лицензия и всё такое... Установлен, не по умолчанию, а по моему усмотрению (в смысле путей установки).
Новые воркспейсы и проекты (пустые) создаёт и компилирует без ошибок.
Но я подумал, что в процессе ковыряния своими кривыми руками (мозгами) обязательно что-нибудь сломаю :) и тогда захочется откатить как было. Вот и скачал с родного сайта демо прогу, которая поставляется с дискавери. Пытаюсь её откомпилировать, чтобы, по мере надобности залить обратно.
В ходе экспериментов понял, что сначала надо освоить рабочую среду. Почитал мануал на Космик, но про ошибку с кодом 2 ничего не нашёл. Понял, что надо копать глубже, а вот где копать не знаю :(
Спасибо за совет. Попробую скачать новую версию заливки. О результатах сообщу.
Но вопрос про теорию остаётся открытым.

Добавлено after 53 minutes 2 seconds:
Скачал. Там приложение для STM8S207K6, а у меня на дискавери стоит STM8S105C6.
Это принципиально?
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Программирование STM8

Сообщение oleg110592 »

[uquote="nuisance",url="/forum/viewtopic.php?p=3721911#p3721911"]Скачал. Там приложение для STM8S207K6, а у меня на дискавери стоит STM8S105C6.
Это принципиально?[/uquote]
Работать скорее всего не будет, но для проверки правильности компиляции сгодится.
Скачал пример "Project discover" - Cosmic нормально компилирует, без ошибок. Если что, Cosmic установил в корень диска C:\ в папку C:\COSMIC.
Аватара пользователя
Asmodey
Друг Кота
Сообщения: 6184
Зарегистрирован: Сб янв 28, 2006 22:47:24

Re: Программирование STM8

Сообщение Asmodey »

Как при отладке в IAR в окне кода вывести зеленую стрелочку, указывающую, какая строка программы выполняется после каждого шага? В окошке дизассемблера стрелочка есть, а в окне кода нет.
Астролябия-сама меряет, было бы что мерять!!!
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Программирование STM8

Сообщение VladislavS »

Нужно скомпилировать с добавлением отладочной информации.
Аватара пользователя
Asmodey
Друг Кота
Сообщения: 6184
Зарегистрирован: Сб янв 28, 2006 22:47:24

Re: Программирование STM8

Сообщение Asmodey »

Да, действительно, поставил в настройках проекта галку "Generate debug information" и стрелочка появилась :)

VladislavS, благодарю.
Астролябия-сама меряет, было бы что мерять!!!
Аватара пользователя
Asmodey
Друг Кота
Сообщения: 6184
Зарегистрирован: Сб янв 28, 2006 22:47:24

Re: Программирование STM8

Сообщение Asmodey »

Еще пара вопросов появились. Как я выяснил методом тыка, отладка в железе работает только в конфигурации "Release", а не "Debug", как казалось бы и должно быть. Для чего тогда Debug? Для отладки в симуляторе?

Второе. Пошаговая отладка в IAR работает нормально, программа-мигалка блинкает если прогонять программу по шагам нажатием кнопки "Step over". При нажатии на кнопку "Go" ничего не происходит, светодиод постоянно светиться и не мигает... Хотя, если много раз нажимать последовательно "Go" и "Break" видно, как стрелочка в окне кода останавливается на рандомных строчках программы в цикле while в блоке main, и светодиод после остановки программы либо светиться, либо нет, в зависимости от того на какой строчке произошла остановка.

И, светодиод во время выполнения отладки не мигает, но светиться как-то тускло, а когда останавливаешь зажигается немного ярче. Похоже что он мигает, но с очень большой частотой. Такое впечатление, что отладчик игнорирует задержки. Один раз мне удалось тыканьем в кнопки заставить светодиод мигать в режиме отладки, но не помню как я этого добился.

Микроконтроллер STM8S103F3P, код мигалки под спойлером взят из интернета.
Спойлер#include <stdint.h>

#define __IO volatile

typedef struct GPIO_struct
{
__IO uint8_t ODR;
__IO uint8_t IDR;
__IO uint8_t DDR;
__IO uint8_t CR1;
__IO uint8_t CR2;
}
GPIO_TypeDef;

#define GPIOB_BaseAddress 0x5005
#define GPIOB ((GPIO_TypeDef *) GPIOB_BaseAddress)

static void delay(uint32_t t)
{
while(t--) {}
}

int main(void)
{
GPIOB->DDR |= (1 << 5);
GPIOB->ODR |= (1 << 5);
while(1)
{
GPIOB->ODR |= (1 << 5);
delay(100000UL);
GPIOB->ODR &= ~(1 << 5);
delay(100000UL);
}
}
Астролябия-сама меряет, было бы что мерять!!!
Аватара пользователя
GARMIN
Держит паяльник хвостом
Сообщения: 953
Зарегистрирован: Вс дек 02, 2012 16:58:33
Откуда: от туда
Контактная информация:

Re: Программирование STM8

Сообщение GARMIN »

Проверьте настройки в обоих конфигурациях, они независимые. Отладка прекрасно работает в обоих случаях.
Задержки может игнорировать из-за оптимизации компилятора. Иои уберите оптимизацию, или используйте volatile переменную в функции задержки.
Аватара пользователя
Asmodey
Друг Кота
Сообщения: 6184
Зарегистрирован: Сб янв 28, 2006 22:47:24

Re: Программирование STM8

Сообщение Asmodey »

Квалификатор volatile не помог, а после настроек оптимизации задержки стали работать, а светодиодик моргать. На самом высоком уровне оптимизации МК отказывался отрабатывать задержки при оптимизации по скорости. Ну да ладно, работает при оптимизации по размеру, и хорошо. Для меня обычно важнее бывает утрамбовать прошивку по размеру, чем оптимизировать ее по скорости выполнения. GARMIN, спасибо.

P.S. кстати, задержки не только в отладке не работали. И без отладки прошивка не хотела работать как нужно.
Астролябия-сама меряет, было бы что мерять!!!
Аватара пользователя
GARMIN
Держит паяльник хвостом
Сообщения: 953
Зарегистрирован: Вс дек 02, 2012 16:58:33
Откуда: от туда
Контактная информация:

Re: Программирование STM8

Сообщение GARMIN »

Просто задержки делаются совсем по другому.
С миллисекундным таймером и без циклов ожидания.
Тогда другие функции будут работать во время ожидания таймера в одной.
А у вас полная блокировка процессора на время ожидания.
Аватара пользователя
Asmodey
Друг Кота
Сообщения: 6184
Зарегистрирован: Сб янв 28, 2006 22:47:24

Re: Программирование STM8

Сообщение Asmodey »

Ну да, delay - несомненное зло. Но сейчас я курю stm8 с самого начала, и мне бы чего побыстрее, на скорую руку, чтобы освоиться со средой программирования, программатором, самим микроконтроллером и его начальной инициализацией. До таймеров когда еще доберусь. Кстати, оптимизация по скорости выполнения скорее всего устранила задержки решив, что они зря жрут машинные циклы :)))
Астролябия-сама меряет, было бы что мерять!!!
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: Программирование STM8

Сообщение Eddy_Em »

Asmodey, может поможет: куча моих сниппетов на STM8.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
Asmodey
Друг Кота
Сообщения: 6184
Зарегистрирован: Сб янв 28, 2006 22:47:24

Re: Программирование STM8

Сообщение Asmodey »

Eddy_Em, а можно чуть более подробную информацию по этому проекту https://github.com/eddyem/STM8_samples/ ... r/Makefile ? Это генератор шума или генератор функций? Управляется по uart или можно кнопки, энкодеры и дисплей прикрутить. Контроллер как я понял STM8S105?
Астролябия-сама меряет, было бы что мерять!!!
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: Программирование STM8

Сообщение Eddy_Em »

Asmodey, это шим-генератор всяких разных сигналов. Я думал было игрушку сделать музыкальную, но забил.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
Asmodey
Друг Кота
Сообщения: 6184
Зарегистрирован: Сб янв 28, 2006 22:47:24

Re: Программирование STM8

Сообщение Asmodey »

А она умеет что-то делать в уже имеющемся виде? Хотелось бы разобрать какой-нибудь готовый проект для лучшего усваивания инфы по stm8, и вот этот Ваш приглянулся :)
Астролябия-сама меряет, было бы что мерять!!!
nanocat
Родился
Сообщения: 2
Зарегистрирован: Чт июн 16, 2016 03:10:05

Re: Программирование STM8

Сообщение nanocat »

Кто-нибудь сталкивался с невозможностью прошивки STM8 с aliexpress?
Заказал с aliexpress 10 штук STM8S105K4T6. Запаял в плату и не прошивается. Программатор просто не может связаться с микрокнтроллером.
Запаял вместо него другой STM8S105K4T6, но приобретенный в ЧипДипе. И этот чип видится и перепрошивается. Запаял прежний и опять не работает!

Есть у меня еще китайская плата с тем же STM8S105K4T6. Решил с ней поработать. Подключился к ней - все работает. Выпаял из платы чип, запаял несколько из купленной партии с алэкспресса. И ни один не работает!
По схемотехнике абсолютно точно все в порядке. Напряжения в норме на Vcap конденсатор 1 мкф.

В начале этой темы DrWatson отписался
1) "Чистый" микроконтроллер всегда стартует с загрузчика.
Может у новых МК отключен swim?
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Программирование STM8

Сообщение oleg110592 »

[uquote="nanocat",url="/forum/viewtopic.php?p=3730892#p3730892"]Напряжения в норме на Vcap конденсатор 1мкф[/uquote]
на Vcap напряжение 1.8В ?
на всякий, утилитка командной строки для прошивки stm8 под виндовс:
https://github.com/sensics/IR-Board-Pro ... /stm8flash
не самая свежая - опция -u может не работать, примеры командной строки для stm8s003f3:

Код: Выделить всё

stm8flash -cstlinkv2 -pstm8s003?3 -u
stm8flash -cstlinkv2 -pstm8s003?3 -s flash -w tru-la-la.hex
stm8flash -cstlinkv2 -pstm8s003?3 -s eeprom -w tru-la-la_ee.bin
stm8flash -cstlinkv2 -pstm8s003?3 -s opt -w rop.bin
исходники утилиты и информация:
https://github.com/vdudouyt/stm8flash
nanocat
Родился
Сообщения: 2
Зарегистрирован: Чт июн 16, 2016 03:10:05

Re: Программирование STM8

Сообщение nanocat »

[uquote="oleg110592",url="/forum/viewtopic.php?p=3730918#p3730918"]на Vcap напряжение 1.8В ?[/uquote]Да. В том то и дело, что в одной и той же обвязке stm8 из ЧипДип работают, а те что с aliexpress не работают
[uquote="oleg110592",url="/forum/viewtopic.php?p=3730918#p3730918"]на всякий, утилитка командной строки для прошивки stm8 под виндовс:[/uquote]То же не помогает. Кстати, как можно натянуть на эту программу графический интерфейс? Или это в двух словах не объяснить?
Аватара пользователя
Z_h_e
Собутыльник Кота
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Re: Программирование STM8

Сообщение Z_h_e »

Попробуйте нажать кнопку RESET или что-там есть, дать команду прошиться и тут же RSET отпустить. У меня как-то 103 так заработал, может случайно. Возможно в китайских МК прошивка сразу после старта отключает SWIM.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Ответить

Вернуться в «Разные вопросы по МК»