отладка для stm8, stm8flash допиливание |
Здравствуйте, гость ( Вход | Регистрация )
отладка для stm8, stm8flash допиливание |
20.10.2015, 17:35
Сообщение
#1
|
|
тот самый Группа: Мод Сообщений: 13629 Регистрация: 24.11.2009 Из: Харьковская обл., UA Пользователь №: 25 |
Привет.
Начало тут http://electronix.ru/forum/index.php?s=&am...t&p=1374082 Кладу начальный вариант чуть доработанного флешера stm8flash.zip ( 162,97 килобайт ) Кол-во скачиваний: 58 на рассмотрение публики и для замечаний и предложений Плюхи: 1. Сброс проца по выходу. Ващета надо ключом, но пока безусловно. 2. Консольный режим для debug_printf Подробнее 2.1. Где-то в мейкфайле включаем -DDBGLEVEL=1 0 - ничего не выводит остальные градации на усмотрение 2.2.А в это время где-то в хедерах Код #if defined(DBGLEVEL) && (DBGLEVEL != 0) extern void __debug(const char messg[]); #define debug(n) __debug(n) #else #define debug(n) #endif 2.3. А в это время где-то в коде Код #if defined(DBGLEVEL) && (DBGLEVEL != 0) #define CON_SYMB (*(volatile char *)0x3FF) void __debug(const char messg[]) { const char *p = messg; while(*p) { CON_SYMB = *p++; while(CON_SYMB) idle(); // не забываем объявить тело суперлупа } } #endif 2.4. Соображения, почему 0x03FF при вызове main() SDCC - он же ж тупой, и это хорошо, поскольку он декрементировал стек на 2 ящетаю, шо ето прекрасно. 2.5. Что мы хотим этим всем сказать. Все (или почти все) знают как работает дебажный printf под ITM у stm32 Теперь и у нас такая же фича, т.е. 2.5.1. Записали байт в 0x03ff 2.5.2. Подождали пока его обнулят извне 2.5.3. Повторили сколько нужно. 3. Юзабилити Код $ ./stm8flash Usage: ./stm8flash [-d address][-c programmer] [-p partno] [-s memtype] [-b bytes] [-r|-w|-v] <filename> Additional option -d - open debug console for use in swim and poll one byte at specified address $ ./stm8flash -c stlink -p stm8s003 -d 03ff Determine FLASH area Now we in console mode ready to poll address 0x 3FF. Press any key to exit ddebug is enabled.debug is enabled.debug is enabled.n *Canceled* Нелинуксоидов просьба не беспокоить кстати, никогда не писал под макось. как там keypressed() сделать? Форк грязный, медленный, но работает. Велкам на Эльх или сюда для предложений куда его допилить. 4.Неустранимые вещи: 4.1. операции wotf rotf останавливают cpu. Таким образом, на быстродействие это все влияет не лучшим образом. вернее, с rotf еще можно пошаманить, избавиться от лишних записей в обслуге debug module еще забыл. добавил в валидные расширения hex-формата кроме *.ihx родной обычный *.hex, ибо это одуреть можно... ihx... |
|
|
21.10.2015, 7:56
Сообщение
#2
|
|
посіпака Хунти Группа: Мод Сообщений: 20016 Регистрация: 21.11.2009 Из: Vinnitsa Пользователь №: 11 |
ihx == Intel HeX.
|
|
|
21.10.2015, 8:44
Сообщение
#3
|
|
тот самый Группа: Мод Сообщений: 13629 Регистрация: 24.11.2009 Из: Харьковская обл., UA Пользователь №: 25 |
ihx == Intel HeX. ага, типа hex традиционно не Intel HeX --- попробовал самый тяжкий printf() - всего-то 2кб весит. Можно вообще без зазрения совести юзать. Это вам не АВР с тесными штанишками. надо по debuglevel включать тяжесть оного. зато как приятно, когда вообще ничего нет - а консоль ужо есть, скорость поднятия прерываний и прочего близка к скорости света |
|
|
10.11.2015, 10:08
Сообщение
#4
|
|
тот самый Группа: Мод Сообщений: 13629 Регистрация: 24.11.2009 Из: Харьковская обл., UA Пользователь №: 25 |
Цитата при вызове main() SDCC - он же ж тупой, и это хорошо, поскольку он декрементировал стек на 2 оказалось, что он ни разу не тупой. просто создавать или нет переменную для возврата из main() он решает исходя из погоды на Марсе. т.е. при появлении подозрительного вывода нужно это место зарезервировать Код int main(void) { volatile int dummy; // далее по коду } дурдом т.е. sdcc обнаружил, что до возврата дело не дойдет, unreachable code написал. но в прошлом проекте - было то же самое. хто ж оттуда выходит... а переменную таки создал |
|
|
20.11.2015, 9:10
Сообщение
#5
|
|
тот самый Группа: Мод Сообщений: 13629 Регистрация: 24.11.2009 Из: Харьковская обл., UA Пользователь №: 25 |
Не покидает желание запустить сабжа на малине.
Код $uname -a Linux raspberry 3.10.19+ #1 PREEMPT Tue Dec 3 19:11:42 MSK 2013 armv6l GNU/Linux запустил под gdb обнаружил пренеприятнейшую вещь Код while((c = getopt (argc, argv, "r:w:v:nc:p:s:b:d:")) != -1) { оказалось что этот парсер по концовке выдает с = 0xFF и в Код switch(с) он вываливался в default: и соответственно пишет usage тратата и exit -1это говорит о том, что какого-то хера в тамошнем gcc char у нас по умолчанию unsigned это пиздец. Сколько еще глюкавых программ из-за этого дебилизма - можно только догадываться. подправил на signed char c - уже зашевелилось |
|
|
17.3.2016, 16:27
Сообщение
#6
|
|
Активный участник Группа: Спамеры Сообщений: 6871 Регистрация: 28.2.2015 Пользователь №: 1190 |
Паш, говорят, космик стал нахаляву
Может, нуево уже, этот сдцц? Цитата New Cosmic CXSTM8 C-compiler completes free and unlimited development toolchain Highly featured compiler supports entire STM8 family up to 128KB, with no restrictions on code size Design-start investment cut to just $8 for STM8S-DISCOVERY kit hardware Хотя третий пункт какой-то подозрительный Сообщение отредактировал Mr.Yuran - 17.3.2016, 16:29 |
|
|
17.3.2016, 19:02
Сообщение
#7
|
|
тот самый Группа: Мод Сообщений: 13629 Регистрация: 24.11.2009 Из: Харьковская обл., UA Пользователь №: 25 |
stm8 как таковые интересуют только в виде stm8s003. А для этого ведь все есть. Почти все. Осталось таки посидеть с вопросами шустроты консоли, допилить stm8flash для stlinkv2 и чтобы на малине все работало автор похоже подзабил на свое детище. и к тому же космик от нормального Си без "плюшечек" еще дальше чем сдцц. Т.е. там тупая копипаста не проходит. |
|
|
3.5.2016, 21:45
Сообщение
#8
|
|
тот самый Группа: Мод Сообщений: 13629 Регистрация: 24.11.2009 Из: Харьковская обл., UA Пользователь №: 25 |
В общем, решил я задачку для stlinkv2 Гемора оказалось больше чем дофига. куча особенностей всяких. задолбало Еще остался глюк. Подопытный камень как-то строго через раз пишет. Раз стартует, раз - болт Если не победю - выложу уже так как есть. |
|
|
4.5.2016, 7:39
Сообщение
#9
|
|
тот самый Группа: Мод Сообщений: 13629 Регистрация: 24.11.2009 Из: Харьковская обл., UA Пользователь №: 25 |
|
|
|
7.5.2016, 13:07
Сообщение
#10
|
|
Активный участник Группа: шизо Сообщений: 1464 Регистрация: 17.1.2010 Из: Винница Пользователь №: 84 |
Паша, или мож., кто другой в курсе - какое у STM8S быстродействие, т. е. сколько MIPS, или сишных команд в секунду?
Как-то я прикидывал, у меня получалось порядка 1,5 MIPS на 16 МГц. Поэтому я был уверен, что максимальное быстродействие STM8 сильно ниже такового у AVR. Потом мне кто-то сказал, что STM8 намного быстрее 1,5 MIPS. Кто-нить проверял время исполнения программ? |
|
|
7.5.2016, 14:49
Сообщение
#11
|
|
тот самый Группа: Мод Сообщений: 13629 Регистрация: 24.11.2009 Из: Харьковская обл., UA Пользователь №: 25 |
20DMIPS @ 24 MHz
вроде так у них написано то бишь 13.3 на 16-ти производительность ниже чем у авр, по идее, зато есть деление за 17 тактов и маленький контекст задачи. их сложно сравнивать |
|
|
7.5.2016, 16:11
Сообщение
#12
|
|
Активный участник Группа: Пользователи Сообщений: 10937 Регистрация: 19.4.2011 Пользователь №: 345 |
А что, мипсы - это сишные команды? От это твою мать...!
Если, все-таки, миллионы команд за секунду, то глянув в документацию и разглядев, за сколько тактов выполняется команда, может снизойти просветление мозгов. Що, так и написано, DMIPS? Сообщение отредактировал ViKo - 7.5.2016, 16:12 |
|
|
7.5.2016, 22:07
Сообщение
#13
|
|
тот самый Группа: Мод Сообщений: 13629 Регистрация: 24.11.2009 Из: Харьковская обл., UA Пользователь №: 25 |
А что, мипсы - это сишные команды? От это твою мать...! Если, все-таки, миллионы команд за секунду, то глянув в документацию и разглядев, за сколько тактов выполняется команда, может снизойти просветление мозгов. Що, так и написано, DMIPS? Цитата 0,29 DMips/Mhz – similar to some well known 16-bit CPU performance – 16Mips at 16MHz в первоисточнике. http://www.emcu.it/STM8/STM-STM8.pdf т.е. кто то гдето ошибается. но мне эти цифры ни о чем не говорят. я точно знаю, что можно делать на них а что нельзя, - оценивая систему в целом, как и большинство себе подобных. |
|
|
8.5.2016, 2:37
Сообщение
#14
|
|
Активный участник Группа: шизо Сообщений: 1464 Регистрация: 17.1.2010 Из: Винница Пользователь №: 84 |
Спасибо, это уже кое-что.
Цитата А что, мипсы - это сишные команды? Не-а. Кста, Ваш вопрос подтверждает одну мою догадку. |
|
|
8.5.2016, 8:11
Сообщение
#15
|
|
Активный участник Группа: Пользователи Сообщений: 10937 Регистрация: 19.4.2011 Пользователь №: 345 |
|
|
|
19.5.2016, 9:05
Сообщение
#16
|
|
Активный участник Группа: шизо Сообщений: 1464 Регистрация: 17.1.2010 Из: Винница Пользователь №: 84 |
Да на здоровье . Но это Ваша догадка. В мою Вы даже близко не попали.
|
|
|
19.5.2016, 9:14
Сообщение
#17
|
|
Активный участник Группа: Спамеры Сообщений: 6871 Регистрация: 28.2.2015 Пользователь №: 1190 |
А я был неприятно удивлен, сколько команд (и тактов) нужно СМ3 для цикла while(pause--){}
После МСПшки, где ещё пару нопов нужно свтавить, чтобы 5 тактов на круг Сообщение отредактировал Mr.Yuran - 19.5.2016, 9:15 |
|
|
19.5.2016, 10:08
Сообщение
#18
|
|
Активный участник Группа: шизо Сообщений: 1464 Регистрация: 17.1.2010 Из: Винница Пользователь №: 84 |
А СМ3 - это что?
И сколько тактов получилось на 1 цикл? |
|
|
19.5.2016, 10:14
Сообщение
#19
|
|
Активный участник Группа: Спамеры Сообщений: 6871 Регистрация: 28.2.2015 Пользователь №: 1190 |
|
|
|
19.5.2016, 10:38
Сообщение
#20
|
|
Активный участник Группа: Пользователи Сообщений: 10937 Регистрация: 19.4.2011 Пользователь №: 345 |
|
|
|
Текстовая версия | Сейчас: 28.3.2024, 14:56 |