Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Среда для STM8
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > STM8
Страницы: 1, 2
fmdost
Давно не занимался. Какая среда нынче на острие? Какую посоветуете?
Спсб.
vovanse
Например IAR. Мне удобно, что одна среда для всех контроллеров, которые использую.
_Pasha
цельнотянутый софт не является кошерным ввиду наличия свинских генов в продукте rolleyes.gif
uriy
Я использую IAR.
Остальные для STM8 мне кажутся еще хуже.
Harbinger
STVD+Raisonance.
Пытаюсь освоить связку Code::Blocks+SDCC, пока что фигня получается, из-за отсутствия описания особенностей работы с STM8 в доках SDCC.
Эдди
Пользуюсь geany, как и для всего остального. Компиляю sdcc, прошиваю stm8flash. Никаких сторонних библиотек за ненадобностью не использую.
_Pasha
Цитата(Эдди @ Oct 12 2015, 08:38) *
Пользуюсь geany, как и для всего остального.

+100500
тоже 2 года назад пришел к geany и больше никуда не тянет.
разве что плагинов самописных еще не делал.

Цитата(Harbinger @ Oct 12 2015, 08:34) *
STVD+Raisonance.
Пытаюсь освоить связку Code::Blocks+SDCC, пока что фигня получается, из-за отсутствия описания особенностей работы с STM8 в доках SDCC.

Берите шаблон мейкфайла. забудете весь кодблокс как страшный сон
CODE
CPU = stm8s003
F_CPU=16000000


TARGETNAME = trm_v2
TARGET = $(TARGETNAME).hex
DBG =
DBG += --debug

LIBS =
CC = sdcc
PROG = stm8flash -c stlink -p $(CPU) -w
READ = stm8flash -c stlink -p $(CPU) -v
ASM = sdasstm8
CFLAGS = -mstm8 --std-sdcc99 -I./inc -DSTM8S003 $(DBG)
LFLAGS = -mstm8 -lstm8.lib
#LFLAGS += -out-fmt-elf
#LFLAGS += --out-fmt-s19
AFLAGS =
#GDB = sdcdb -cpu $(CPU) -X $(F_CPU)
GDB = sstm8 -t stm8s003 -X 16M <dbg.cmd


#http://stackoverflow.com/questions/1139271/makefiles-with-source-files-in-different-directories
FILES = main.c
#FILES +=

.PHONY: begin clean all default prog read debug

default: begin $(TARGET)
all: default
OBJECTS = $(patsubst %.c, %.rel, $(FILES))
HEADERS = $(wildcard *.h)

%.rel: %.c $(HEADERS)
$(CC) $(CFLAGS) -c $< -o $@

.PRECIOUS: $(TARGET) $(OBJECTS)

$(TARGET): $(OBJECTS)
$(CC) $(LFLAGS) $(OBJECTS) -Wall $(LIBS) -o $@
begin:
echo $(OBJECTS)
clean:
-rm -f Release/*.*
-rm -f Debug/*.*
-rm -f *.rel
-rm -f *.asm
-rm -f *.lst
-rm -f *.rst
-rm -f *.sym
-rm -f *.lk
-rm -f *.mem
-rm -f *.map
-rm -f $(TARGET)

prog: $(TARGET)
$(PROG) $(TARGET)
read:
$(READ) $(TARGET)

debug: $(TARGET)
# python debugger.py $(TARGETNAME).cdb $(FILES)
$(GDB)


он конечно тупой, есть и другие варианты. Но работает.
с симулятором на случай легкого юнит-теста работает через командный файл
Serhiy_UA
Цитата(Эдди @ Oct 12 2015, 08:38) *
Пользуюсь geany, как и для всего остального. Компиляю sdcc, прошиваю stm8flash. Никаких сторонних библиотек за ненадобностью не использую.

Используете geany под WinXP или под Linux?
Как к geany подключить компилятор sdcc и где его взять?
Тоже заинтересовался вопросом применения geany для всего остального, могли бы сказать, где еще Вы его применяете, на сколько успешно?
По поводу библиотек, не совсем понял, о чем речь...
_Pasha
Цитата(Serhiy_UA @ Oct 12 2015, 14:51) *
Используете geany под WinXP или под Linux?
Как к geany подключить компилятор sdcc и где его взять?
Тоже заинтересовался вопросом применения geany для всего остального, могли бы сказать, где еще Вы его применяете, на сколько успешно?
По поводу библиотек, не совсем понял о чем речь...

просто "все остальное" концентрируется вокруг нескольких вещей, а именно
*Makefile
*Debugger а именно командные файлы. К сожалению, в sdcc нет swim-gdb. отладку нужно писать.
*python scripts - вспомогательные штучки для автогенерации всего что только можно автоматизировать
*Geany plugins - это уже для тех кто психанул и нырнул в GTK с головой. Хотя, ничего там сложного и нету...
Serhiy_UA
Цитата(_Pasha @ Oct 12 2015, 14:33) *
...Берите шаблон мейкфайла...

Шаблон интересен, главное, что рабочий, Спасибо!
Все-таки это для Linux, так? Обычно там я применяю shell-команды из оболочки sh. А python scripts - это уже более продвинутая альтернатива?
Но параллельно меня интересует и WinХР, там для МК я обычно применял IAR и Keil...

arhiv6
А в Geany можно прикрутить отладку МК? Я как раз на выходных ставил Geany в попытке настроить (правда для работы с MSP430). Как редактор неплох вроде. Но вот как прикрутить к нему отладчик с возможностью остановки в коде не нашёл... Кто нибудь может пример настройки дать?
Эдди
Цитата(Serhiy_UA @ Oct 12 2015, 14:51) *
Используете geany под WinXP или под Linux?

Под линукс, естественно! Кто ж из-под игровой прошивки работает?
Цитата
Как к geany подключить компилятор sdcc и где его взять?

Что значит "подключить"? Все есть в настройках. Только нафиг "подключать"? У меня открыта консолька на втором мониторе, где я и запускаю всякие make && make load.
Цитата
Тоже заинтересовался вопросом применения geany для всего остального, могли бы сказать, где еще Вы его применяете, на сколько успешно?

Для прикладнухи (С, Octave, bash), веб-сервисов (С, жабоскрипт, html), под STM32 тоже в geany код пишу (+libopencm3).
Цитата
По поводу библиотек, не совсем понял, о чем речь...

Я имел в виду всякую ненужную дрянь вроде SPL.
AHTOXA
Я недавно допиливал одну унаследованную программу для stm8. Взял sdcc, Eclipse, написал makefile, и получил привычную для себя, кроссплатформенную среду программирования. sdcc для stm8, конечно, слабоват (почти не оптимизирует, не умеет выкидывать неиспользуемые функции), но - работает.
_Pasha
Кто сталкивался. Почему stm8flash пишет прошивку в stm8s и она после этого не подымается, в то время как с stvd все нормально? Я что-то не инициализирую?
кста, после верификации или чтения - тоже
aleksandr-zh
как я понимаю, самым наислабейшим местом в использовании stm8 является отсутствие (прикольно звучит!) адекватных сред разработки...
3й год присматриваюсь, но как начинаю искать что-то "ми-ми-ми" - сразу облом и "аля допили драчовым напильником" sm.gif
_Pasha
ну я ж предлагаю - давайте сделаем питоновую отладку для сабжа
никто не ведется rolleyes.gif я-то доберусь до нее. но когда? незнаю.
Эдди
Цитата(aleksandr-zh @ Oct 18 2015, 22:24) *
отсутствие (прикольно звучит!) адекватных сред разработки...

Что за чушь? Тот же Geany — отличная вещь!
aleksandr-zh
и что к ней прикручивать?
я уже лет 10 понимаю среду как ГОТОВУЮ связку редактор + компилятор.
а все фразы "а это мы тут скачаем, а потмо вот через это мы к ней прикрутим то, немного красных глаз и мы даже сможем в этом работать" для меня от лукавого
какой компилятор к этому прикрутить? а как отлаживать? а как загружать? всё ручками, как в далёких 80-90?... брр
_Pasha
Цитата(aleksandr-zh @ Oct 19 2015, 08:08) *
и что к ней прикручивать?
я уже лет 10 понимаю среду как ГОТОВУЮ связку редактор + компилятор.
а все фразы "а это мы тут скачаем, а потмо вот через это мы к ней прикрутим то, немного красных глаз и мы даже сможем в этом работать" для меня от лукавого
какой компилятор к этому прикрутить? а как отлаживать? а как загружать? всё ручками, как в далёких 80-90?... брр

Вы же пишите как в далеких 80-90 а не говорите компу на командно-матерном диалекте: "Сделай отэта. Быстро!"
чем отличается одна писанина от другой?
AHTOXA
Цитата(aleksandr-zh @ Oct 19 2015, 10:08) *
я уже лет 10 понимаю среду как ГОТОВУЮ связку редактор + компилятор.

У меня противоположное понимание. Я понимаю среду как привычную мне среду разработки, полностью настроенную под мои нужды, с прикрученными к ней компилятором, отладчиком и прочими вспомогательными средствами. Благодаря такому подходу при переключении на новый контроллер я не должен изучать "новую готовую среду", а могу сразу работать, как мне привычно.
aleksandr-zh
Хорошо. Это халивар - вопрос веры. Вернёмся, если не против, к stm8 sm.gif

ладно. С редактором почти определились.
Как там дела обстоят с компиляторами? есть Си, Паскаль? Сойдёт и (ненавистный некоторым) Бейсик. Я начинал с Паскаля, потом пришлось в аля-Бейсике (точнее, смеси Паскаля+Си) писать. Что есть приятного на рынке?
для PIC - полно! Для АВР - еще больше выбора. Как у stm8 с этим?
Эдди
У stm8 очень плохо: единственный свободный компилятор — sdcc, больше ничем под линуксом на него прошивочку не собрать ☹
С другой стороны, это понятно: ведь gcc для восьмибиток — дикость какая-то (хотя, для отмелей есть avr-gcc)!
aleksandr-zh
Хорошо, а в Винде что практичного есть?
чтобы с рюшечками и котиками, ой, с готовыми библиотеками для ходового: lcd 1602, 1wire, spi и soft uart. как минимум. а то мне, старею и ленюсь, с нуля это писать как-то вломы...
scifi
Яр для стм8 можно использовать с ограничением размера кода 8 Кбайт безвозмездно, то есть даром. Для стм8 это довольно щедрое ограничение biggrin.gif
zltigo
QUOTE (AHTOXA @ Oct 19 2015, 09:05) *
У меня противоположное понимание. Я понимаю среду как привычную мне среду разработки, полностью настроенную под мои нужды, с прикрученными к ней компилятором, отладчиком и прочими вспомогательными средствами. Благодаря такому подходу при переключении на новый контроллер я не должен изучать "новую готовую среду", а могу сразу работать, как мне привычно.

Да, все именно так. Всякие "среды" от производителей, желающих подсадить чайников на свой контроллер или компилятор, - сразу в топку.



QUOTE (aleksandr-zh @ Oct 19 2015, 17:08) *
старею и ленюсь...

Тогда на пенсию, или на саночки и в лес.
ибо поиски "готовой" ерунды, которая пишется второй раз уж точно буквально левой ногой, означает только то, что ничего Вы ни разу такого вообще НИ РАЗУ не писали, только сляпывали из всяких "библиотек".
_Pasha
Цитата(zltigo @ Oct 19 2015, 18:00) *
Всякие "среды" от производителей

Но не только. В последнее время меня сильно умиляют два брата-мутанта, имярек Эклипс и Нетбинс. Такое впечатление, что там не индексация идет а мешки с цементом грузятся. rolleyes.gif
zltigo
QUOTE (_Pasha @ Oct 19 2015, 18:06) *
Но не только. В последнее время меня сильно умиляют два брата-мутанта, имярек Эклипс и Нетбинс. Такое впечатление, что там не индексация идет а мешки с цементом грузятся. rolleyes.gif

За второй не скажу, а с первым открытость сыграла злую шутку - вместо того, что-бы производители занимались некоторыми плагинами, они по понятной шкурной причине начали растаскивать его по разным "своим" веткам с одной единственной целью быть ОТЛИЧНЫМИ от других. Нафиг такое sad.gif.


_Pasha
Цитата(_Pasha @ Oct 18 2015, 21:58) *
Кто сталкивался. Почему stm8flash пишет прошивку в stm8s и она после этого не подымается, в то время как с stvd все нормально? Я что-то не инициализирую?
кста, после верификации или чтения - тоже

Классно мы живем, короче. Неужели никто не пользуется?
В общем, нужно строчку, там где вызывается reset - вынести за пределы операции записи, ибо там в ОЗУ первые 5f байт все равно затираются по неведомым пока причинам, вследствие чего read on the fly невозможен.
все это касается stlink 1
main.c
Код
if(pgm->reset)
{
// Restarting core (if applicable)
pgm->reset(pgm);
}

вот это нужно поместить перед return 0; из мэйна.
aleksandr-zh
Цитата(zltigo @ Oct 19 2015, 18:00) *
ибо поиски "готовой" ерунды, которая пишется второй раз уж точно буквально левой ногой, означает только то, что ничего Вы ни разу такого вообще НИ РАЗУ не писали, только сляпывали из всяких "библиотек".

а наш zltigo - телепат... то мысли читает, то ауру чистит, то предлагает поддержку ПО в микроволновках делать...

удачи, коллега.
scifi
Цитата(aleksandr-zh @ Oct 20 2015, 12:28) *
а наш zltigo - телепат... то мысли читает, то ауру чистит, то предлагает поддержку ПО в микроволновках делать...

Вы тоже заметили? biggrin.gif
zltigo
QUOTE (aleksandr-zh @ Oct 20 2015, 12:28) *
а наш zltigo - телепат... то мысли читает...

Мысли не читаю. Но их полное отсутствие в пустых головах распознаю безошибочно.
QUOTE
...то ауру чистит, то предлагает поддержку ПО в микроволновках делать...

Эти Ваши бредовые галлюцинации комментированию вообще не подлежат.
_Pasha
Цитата(_Pasha @ Oct 20 2015, 10:51) *
Неужели никто не пользуется?

я тут пытаюсь допилить stm8flash чтобы поднять консоль по типу как это делается в stm32,
т.е. берем байт в ОЗУ, например по адресу 0x3ff который в stm8s гарантированно под возвратом из main()
пишем туда и ждем пока он обнулится уже средствами swim
блин smile3046.gif все заготовлено, и байт обнуляется.
кроме того, что чтение блока единичной длины явно не работает.
шо ж делать?
неспроста там функция чтения одиночного байта не реализована.

_Pasha
Цитата(_Pasha @ Oct 20 2015, 13:20) *
блин smile3046.gif

yeah.gif
УРА, заработало!
http://sharaga.org/index.php?showtopic=24408
подробно будет пока там.
И здесь, т.е. регистрироваться на Шараге не обязательно.
beer.gif
Эдди
А чего зип, а не нормальный форк на гитхабе? А то может что-нибудь полезное будет - автор бы стащил к себе (да и просто пулл-реквесты проще слать же)!
_Pasha
Цитата(Эдди @ Oct 20 2015, 18:57) *
А чего зип, а не нормальный форк на гитхабе? А то может что-нибудь полезное будет - автор бы стащил к себе (да и просто пулл-реквесты проще слать же)!

да пусть тащит. зачем множить сущности?
я туда полноценный дебаггер положу rolleyes.gif когда будет готов.
Главное, что механизм работает.
AHTOXA
Цитата(_Pasha @ Oct 20 2015, 12:51) *
Классно мы живем, короче. Неужели никто не пользуется?

Я пользуюсь, у меня всё запускается.
Цитата(_Pasha @ Oct 20 2015, 12:51) *
все это касается stlink 1

А, у меня второй.

ЗЫ. Про отладку и питон совсем ничего не понял sad.gif
Harbinger
Кстати, на ST-Link v2 таки есть смысл перейти. Там разница косметическая.
_Pasha
Цитата(AHTOXA @ Oct 20 2015, 19:31) *
А, у меня второй.

А. Ну у меня первый из дискавери под рукой. И нужно это было сделать сегодня.

Цитата(AHTOXA @ Oct 20 2015, 19:31) *
ЗЫ. Про отладку и питон совсем ничего не понял sad.gif


я хотел вначале повторить то что делает stm8flash на основе pyUSB, потом заскучал от кол-ва писанины
теперь получается проще сделать питоновский модуль из того, что уже работает с stlink 1 и 2 -
будет простенький класс с open close read write + специфик дебажные методы
т.е. это какбы бэкенд.
а верхний уровень, собственно дебаг - пишется на питоне легко и быстро. Вот только неохота с мутным cdb разбираться sad.gif

это все в предположении, что нормального дебаггера sdcdb под stm8 так и не будет sm.gif и гнаться за прикручиванием бекэнда к нему нет смысла.

Еще из замеченных косяков- stm8flash под stlink1 на малине не работает. Еще не понял почему.
А вот 2 - работает без проблем. Stm32 отлаживаю через st-util
А я уже разбаловался - пошел прилег с вайфаем и кручу отладку sm.gif
AHTOXA
Цитата(_Pasha @ Oct 20 2015, 21:47) *
я хотел вначале повторить то что делает stm8flash на основе pyUSB,

Ага, я уже почитал по ссылке на(в) шараге. Хорошая штука, попробую при случае.
Цитата(_Pasha @ Oct 20 2015, 21:47) *
Еще из замеченных косяков- stm8flash под stlink1 на малине не работает. Еще не понял почему.

Первый вообще под линуксом работает с трудом. Там реализовали работу через какое-то кривое подмножество mass storage, линуксовые драйвера от этого дуреют.
А вот второй уже нормально сделан, и с ним проблем нет.
_Pasha
http://sharaga.org/index.php?s=&showto...st&p=158937

Робкая попытка допилить до stlinkv2 оказалась сопряжена с тучей загадок, что после чего делать, а главное-зачем.
В общем, такой себе полуфабрикат, с надеждой на коллективный разум. Потому чЬто работает оно через раз rolleyes.gif
AHTOXA
А чем оно отличается от оригинала? (Я пользую оригинал на st-linkV2, вроде работает, поэтому интересуюсь.)
Или это конкретно под малинку?
---
UPD: Ага, посмотрел. Тут добавлена отладочная консоль. Очень интересно, надо будет попробовать...
_Pasha
под малиной сразу не пошло. нужно в мейкфайл добавить ключ
-fsigned-char
если не зафорсить, то у тамошнего гцц по умолчанию unsigned, а это
источник многих малиновых граблей
_Pasha
Цитата(_Pasha @ Oct 20 2015, 19:47) *
Еще из замеченных косяков- stm8flash под stlink1 на малине не работает. Еще не понял почему.

вот потому и не работал, что char того этого. unsigned.
Эдди
Цитата(_Pasha @ May 4 2016, 20:57) *
char того этого

Кто ж нонче пишет "int", "char" и т.п., если нужно, скажем, int32_t, int8_t и т.п.?
Тупо char можно лишь для строковых переменных писать — там пофиг на знаковость...
_Pasha
Цитата(Эдди @ May 5 2016, 14:17) *
Кто ж нонче пишет "int", "char" и т.п., если нужно, скажем, int32_t, int8_t и т.п.?
Тупо char можно лишь для строковых переменных писать — там пофиг на знаковость...

Оявасумоляю. ОНИ пишут. Да и вообще, совать exact width депопало--- моветон wink.gif
Эдди
Цитата(_Pasha @ May 5 2016, 14:56) *
совать exact width депопало--- моветон wink.gif

Это вы, батенька, не перелопачивали с 32-битной на 64-битную архитектуру сервер обмена данными, который использует бинарные пакеты — структуру вроде
Код
struct{
  ...
  int var1;
  char var2;
...
}

Вот где жесть и моветон! Я уж не говорю о том, что пропущены всякие прагмы для явного выравнивания данных.
_Pasha
Цитата(Эдди @ May 5 2016, 15:47) *
Это вы, батенька, не перелопачивали с 32-битной на 64-битную архитектуру сервер обмена данными, который использует бинарные пакеты — структуру вроде
Код
struct{
  ...
  int var1;
  char var2;
...
}

Вот где жесть и моветон! Я уж не говорю о том, что пропущены всякие прагмы для явного выравнивания данных.

Неее, такое лопатил. rolleyes.gif
В структурах обмена как раз exact то шо нада.
А вот если миръ не сбрендилъ совсем (а?), то скоро могут появиться достойные средства для *_fast*_t и такого же *least*_t
Эдди
Цитата
А вот если миръ не сбрендилъ совсем (а?), то скоро могут появиться достойные средства для *_fast*_t и такого же *least*_t

А зачем? gcc и так справляется с оптимизацией! Жаль, sdcc далек от этого... Но, увы, пот тот же stm8 кроме sdcc компиляторов свободных нет ☹
Эдди
Цитата(Harbinger @ May 6 2016, 08:29) *

Он не свободный: кода нет, да еще и только под мастдайку бинарник выложен. Туфта какая-то, одним словом!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.