Полная версия этой страницы:
Среда для STM8
fmdost
Oct 11 2015, 23:45
Давно не занимался. Какая среда нынче на острие? Какую посоветуете?
Спсб.
vovanse
Oct 12 2015, 02:45
Например IAR. Мне удобно, что одна среда для всех контроллеров, которые использую.
_Pasha
Oct 12 2015, 03:08
цельнотянутый софт не является кошерным ввиду наличия свинских генов в продукте
Я использую IAR.
Остальные для STM8 мне кажутся еще хуже.
Harbinger
Oct 12 2015, 05:34
STVD+Raisonance.
Пытаюсь освоить связку Code::Blocks+SDCC, пока что фигня получается, из-за отсутствия описания особенностей работы с STM8 в доках SDCC.
Пользуюсь geany, как и для всего остального. Компиляю sdcc, прошиваю stm8flash. Никаких сторонних библиотек за ненадобностью не использую.
_Pasha
Oct 12 2015, 11:33
Цитата(Эдди @ 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, 11:51
Цитата(Эдди @ Oct 12 2015, 08:38)
Пользуюсь geany, как и для всего остального. Компиляю sdcc, прошиваю stm8flash. Никаких сторонних библиотек за ненадобностью не использую.
Используете
geany под WinXP или под Linux?
Как к
geany подключить компилятор
sdcc и где его взять?
Тоже заинтересовался вопросом применения
geany для всего остального, могли бы сказать, где еще Вы его применяете, на сколько успешно?
По поводу библиотек, не совсем понял, о чем речь...
_Pasha
Oct 12 2015, 12:01
Цитата(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
Oct 12 2015, 12:46
Цитата(_Pasha @ Oct 12 2015, 14:33)
...Берите шаблон мейкфайла...
Шаблон интересен, главное, что рабочий, Спасибо!
Все-таки это для Linux, так? Обычно там я применяю shell-команды из оболочки sh. А python scripts - это уже более продвинутая альтернатива?
Но параллельно меня интересует и WinХР, там для МК я обычно применял IAR и Keil...
arhiv6
Oct 12 2015, 12:50
А в 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
Oct 12 2015, 14:58
Я недавно допиливал одну унаследованную программу для stm8. Взял sdcc, Eclipse, написал makefile, и получил привычную для себя, кроссплатформенную среду программирования. sdcc для stm8, конечно, слабоват (почти не оптимизирует, не умеет выкидывать неиспользуемые функции), но - работает.
_Pasha
Oct 18 2015, 18:58
Кто сталкивался. Почему stm8flash пишет прошивку в stm8s и она после этого не подымается, в то время как с stvd все нормально? Я что-то не инициализирую?
кста, после верификации или чтения - тоже
aleksandr-zh
Oct 18 2015, 19:24
как я понимаю, самым наислабейшим местом в использовании stm8 является отсутствие (прикольно звучит!) адекватных сред разработки...
3й год присматриваюсь, но как начинаю искать что-то "ми-ми-ми" - сразу облом и "аля допили драчовым напильником"
_Pasha
Oct 18 2015, 19:32
ну я ж предлагаю - давайте сделаем питоновую отладку для сабжа
никто не ведется
я-то доберусь до нее. но когда? незнаю.
Цитата(aleksandr-zh @ Oct 18 2015, 22:24)
отсутствие (прикольно звучит!) адекватных сред разработки...
Что за чушь? Тот же Geany — отличная вещь!
aleksandr-zh
Oct 19 2015, 05:08
и что к ней прикручивать?
я уже лет 10 понимаю среду как ГОТОВУЮ связку редактор + компилятор.
а все фразы "а это мы тут скачаем, а потмо вот через это мы к ней прикрутим то, немного красных глаз и мы даже сможем в этом работать" для меня от лукавого
какой компилятор к этому прикрутить? а как отлаживать? а как загружать? всё ручками, как в далёких 80-90?... брр
_Pasha
Oct 19 2015, 05:58
Цитата(aleksandr-zh @ Oct 19 2015, 08:08)
и что к ней прикручивать?
я уже лет 10 понимаю среду как ГОТОВУЮ связку редактор + компилятор.
а все фразы "а это мы тут скачаем, а потмо вот через это мы к ней прикрутим то, немного красных глаз и мы даже сможем в этом работать" для меня от лукавого
какой компилятор к этому прикрутить? а как отлаживать? а как загружать? всё ручками, как в далёких 80-90?... брр
Вы же пишите как в далеких 80-90 а не говорите компу на командно-матерном диалекте: "Сделай отэта. Быстро!"
чем отличается одна писанина от другой?
AHTOXA
Oct 19 2015, 06:05
Цитата(aleksandr-zh @ Oct 19 2015, 10:08)
я уже лет 10 понимаю среду как ГОТОВУЮ связку редактор + компилятор.
У меня противоположное понимание. Я понимаю среду как привычную мне среду разработки, полностью настроенную под мои нужды, с прикрученными к ней компилятором, отладчиком и прочими вспомогательными средствами. Благодаря такому подходу при переключении на новый контроллер я не должен изучать "новую готовую среду", а могу сразу работать, как мне привычно.
aleksandr-zh
Oct 19 2015, 06:12
Хорошо. Это халивар - вопрос веры. Вернёмся, если не против, к stm8
ладно. С редактором почти определились.
Как там дела обстоят с компиляторами? есть Си, Паскаль? Сойдёт и (ненавистный некоторым) Бейсик. Я начинал с Паскаля, потом пришлось в аля-Бейсике (точнее, смеси Паскаля+Си) писать. Что есть приятного на рынке?
для PIC - полно! Для АВР - еще больше выбора. Как у stm8 с этим?
У stm8 очень плохо: единственный свободный компилятор — sdcc, больше ничем под линуксом на него прошивочку не собрать ☹
С другой стороны, это понятно: ведь gcc для восьмибиток — дикость какая-то (хотя, для отмелей есть avr-gcc)!
aleksandr-zh
Oct 19 2015, 14:08
Хорошо, а в Винде что практичного есть?
чтобы с рюшечками и котиками, ой, с готовыми библиотеками для ходового: lcd 1602, 1wire, spi и soft uart. как минимум. а то мне, старею и ленюсь, с нуля это писать как-то вломы...
Яр для стм8 можно использовать с ограничением размера кода 8 Кбайт безвозмездно, то есть даром. Для стм8 это довольно щедрое ограничение
zltigo
Oct 19 2015, 15:00
QUOTE (AHTOXA @ Oct 19 2015, 09:05)
У меня противоположное понимание. Я понимаю среду как привычную мне среду разработки, полностью настроенную под мои нужды, с прикрученными к ней компилятором, отладчиком и прочими вспомогательными средствами. Благодаря такому подходу при переключении на новый контроллер я не должен изучать "новую готовую среду", а могу сразу работать, как мне привычно.
Да, все именно так. Всякие "среды" от производителей, желающих подсадить чайников на свой контроллер или компилятор, - сразу в топку.
QUOTE (aleksandr-zh @ Oct 19 2015, 17:08)
старею и ленюсь...
Тогда на пенсию, или на саночки и в лес.
ибо поиски "готовой" ерунды, которая пишется второй раз уж точно буквально левой ногой, означает только то, что ничего Вы ни разу такого вообще НИ РАЗУ не писали, только сляпывали из всяких "библиотек".
_Pasha
Oct 19 2015, 15:06
Цитата(zltigo @ Oct 19 2015, 18:00)
Всякие "среды" от производителей
Но не только. В последнее время меня сильно умиляют два брата-мутанта, имярек Эклипс и Нетбинс. Такое впечатление, что там не индексация идет а мешки с цементом грузятся.
zltigo
Oct 19 2015, 15:16
QUOTE (_Pasha @ Oct 19 2015, 18:06)
Но не только. В последнее время меня сильно умиляют два брата-мутанта, имярек Эклипс и Нетбинс. Такое впечатление, что там не индексация идет а мешки с цементом грузятся.
За второй не скажу, а с первым открытость сыграла злую шутку - вместо того, что-бы производители занимались некоторыми плагинами, они по понятной шкурной причине начали растаскивать его по разным "своим" веткам с одной единственной целью быть ОТЛИЧНЫМИ от других. Нафиг такое
.
_Pasha
Oct 20 2015, 07:51
Цитата(_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
Oct 20 2015, 09:28
Цитата(zltigo @ Oct 19 2015, 18:00)
ибо поиски "готовой" ерунды, которая пишется второй раз уж точно буквально левой ногой, означает только то, что ничего Вы ни разу такого вообще НИ РАЗУ не писали, только сляпывали из всяких "библиотек".
а наш zltigo - телепат... то мысли читает, то ауру чистит, то предлагает поддержку ПО в микроволновках делать...
удачи, коллега.
Цитата(aleksandr-zh @ Oct 20 2015, 12:28)
а наш zltigo - телепат... то мысли читает, то ауру чистит, то предлагает поддержку ПО в микроволновках делать...
Вы тоже заметили?
zltigo
Oct 20 2015, 09:55
QUOTE (aleksandr-zh @ Oct 20 2015, 12:28)
а наш zltigo - телепат... то мысли читает...
Мысли не читаю. Но их полное отсутствие в пустых головах распознаю безошибочно.
QUOTE
...то ауру чистит, то предлагает поддержку ПО в микроволновках делать...
Эти Ваши бредовые галлюцинации комментированию вообще не подлежат.
_Pasha
Oct 20 2015, 10:20
Цитата(_Pasha @ Oct 20 2015, 10:51)
Неужели никто не пользуется?
я тут пытаюсь допилить stm8flash чтобы поднять консоль по типу как это делается в stm32,
т.е. берем байт в ОЗУ, например по адресу 0x3ff который в stm8s гарантированно под возвратом из main()
пишем туда и ждем пока он обнулится уже средствами swim
блин
все заготовлено, и байт обнуляется.
кроме того, что чтение блока единичной длины явно не работает.
шо ж делать?
неспроста там функция чтения одиночного байта не реализована.
_Pasha
Oct 20 2015, 15:37
Цитата(_Pasha @ Oct 20 2015, 13:20)
блин
УРА, заработало!
http://sharaga.org/index.php?showtopic=24408подробно будет пока там.
И здесь, т.е. регистрироваться на Шараге не обязательно.
А чего зип, а не нормальный форк на гитхабе? А то может что-нибудь полезное будет - автор бы стащил к себе (да и просто пулл-реквесты проще слать же)!
_Pasha
Oct 20 2015, 16:00
Цитата(Эдди @ Oct 20 2015, 18:57)
А чего зип, а не нормальный форк на гитхабе? А то может что-нибудь полезное будет - автор бы стащил к себе (да и просто пулл-реквесты проще слать же)!
да пусть тащит. зачем множить сущности?
я туда полноценный дебаггер положу
когда будет готов.
Главное, что механизм работает.
AHTOXA
Oct 20 2015, 16:31
Цитата(_Pasha @ Oct 20 2015, 12:51)
Классно мы живем, короче. Неужели никто не пользуется?
Я пользуюсь, у меня всё запускается.
Цитата(_Pasha @ Oct 20 2015, 12:51)
все это касается stlink 1
А, у меня второй.
ЗЫ. Про отладку и питон совсем ничего не понял
Harbinger
Oct 20 2015, 16:46
Кстати, на ST-Link v2 таки есть смысл перейти. Там разница косметическая.
_Pasha
Oct 20 2015, 16:47
Цитата(AHTOXA @ Oct 20 2015, 19:31)
А, у меня второй.
А. Ну у меня первый из дискавери под рукой. И нужно это было сделать сегодня.
Цитата(AHTOXA @ Oct 20 2015, 19:31)
ЗЫ. Про отладку и питон совсем ничего не понял
я хотел вначале повторить то что делает stm8flash на основе pyUSB, потом заскучал от кол-ва писанины
теперь получается проще сделать питоновский модуль из того, что уже работает с stlink 1 и 2 -
будет простенький класс с open close read write + специфик дебажные методы
т.е. это какбы бэкенд.
а верхний уровень, собственно дебаг - пишется на питоне легко и быстро. Вот только неохота с мутным cdb разбираться
это все в предположении, что нормального дебаггера sdcdb под stm8 так и не будет
и гнаться за прикручиванием бекэнда к нему нет смысла.
Еще из замеченных косяков- stm8flash под stlink1 на малине не работает. Еще не понял почему.
А вот 2 - работает без проблем. Stm32 отлаживаю через st-util
А я уже разбаловался - пошел прилег с вайфаем и кручу отладку
AHTOXA
Oct 20 2015, 18:03
Цитата(_Pasha @ Oct 20 2015, 21:47)
я хотел вначале повторить то что делает stm8flash на основе pyUSB,
Ага, я уже почитал по ссылке на(в) шараге. Хорошая штука, попробую при случае.
Цитата(_Pasha @ Oct 20 2015, 21:47)
Еще из замеченных косяков- stm8flash под stlink1 на малине не работает. Еще не понял почему.
Первый вообще под линуксом работает с трудом. Там реализовали работу через какое-то кривое подмножество mass storage, линуксовые драйвера от этого дуреют.
А вот второй уже нормально сделан, и с ним проблем нет.
http://sharaga.org/index.php?s=&showto...st&p=158937Робкая попытка допилить до stlinkv2 оказалась сопряжена с тучей загадок, что после чего делать, а главное-зачем.
В общем, такой себе полуфабрикат, с надеждой на коллективный разум. Потому чЬто работает оно через раз
А чем оно отличается от оригинала? (Я пользую оригинал на st-linkV2, вроде работает, поэтому интересуюсь.)
Или это конкретно под малинку?
---
UPD: Ага, посмотрел. Тут добавлена отладочная консоль. Очень интересно, надо будет попробовать...
под малиной сразу не пошло. нужно в мейкфайл добавить ключ
-fsigned-char
если не зафорсить, то у тамошнего гцц по умолчанию unsigned, а это
источник многих малиновых граблей
Цитата(_Pasha @ Oct 20 2015, 19:47)
Еще из замеченных косяков- stm8flash под stlink1 на малине не работает. Еще не понял почему.
вот потому и не работал, что char того этого. unsigned.
Цитата(_Pasha @ May 4 2016, 20:57)
char того этого
Кто ж нонче пишет "int", "char" и т.п., если нужно, скажем, int32_t, int8_t и т.п.?
Тупо char можно лишь для строковых переменных писать — там пофиг на знаковость...
Цитата(Эдди @ May 5 2016, 14:17)
Кто ж нонче пишет "int", "char" и т.п., если нужно, скажем, int32_t, int8_t и т.п.?
Тупо char можно лишь для строковых переменных писать — там пофиг на знаковость...
Оявасумоляю. ОНИ пишут. Да и вообще, совать exact width депопало--- моветон
Цитата(_Pasha @ May 5 2016, 14:56)
совать exact width депопало--- моветон
Это вы, батенька, не перелопачивали с 32-битной на 64-битную архитектуру сервер обмена данными, который использует бинарные пакеты — структуру вроде
Код
struct{
...
int var1;
char var2;
...
}
Вот где жесть и моветон! Я уж не говорю о том, что пропущены всякие прагмы для явного выравнивания данных.
Цитата(Эдди @ May 5 2016, 15:47)
Это вы, батенька, не перелопачивали с 32-битной на 64-битную архитектуру сервер обмена данными, который использует бинарные пакеты — структуру вроде
Код
struct{
...
int var1;
char var2;
...
}
Вот где жесть и моветон! Я уж не говорю о том, что пропущены всякие прагмы для явного выравнивания данных.
Неее, такое лопатил.
В структурах обмена как раз exact то шо нада.
А вот если миръ не сбрендилъ совсем (а?), то скоро могут появиться достойные средства для *_fast*_t и такого же *least*_t
Цитата
А вот если миръ не сбрендилъ совсем (а?), то скоро могут появиться достойные средства для *_fast*_t и такого же *least*_t
А зачем? gcc и так справляется с оптимизацией! Жаль, sdcc далек от этого... Но, увы, пот тот же stm8 кроме sdcc компиляторов свободных нет ☹
Harbinger
May 6 2016, 05:29
Цитата(Harbinger @ May 6 2016, 08:29)
Он не свободный: кода нет, да еще и только под мастдайку бинарник выложен. Туфта какая-то, одним словом!
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.