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

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
BlackKilkennyCat
Собутыльник Кота
Сообщения: 2905
Зарегистрирован: Ср ноя 29, 2017 06:58:50

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

Сообщение BlackKilkennyCat »

Мне не понравился Code::Block.
Реклама
Аватара пользователя
Asmodey
Друг Кота
Сообщения: 6322
Зарегистрирован: Сб янв 28, 2006 22:47:24

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

Сообщение Asmodey »

На Сахаре брал IAR for STM8 версии 3 с лекарством.
Астролябия-сама меряет, было бы что мерять!!!
Реклама
BlackKilkennyCat
Собутыльник Кота
Сообщения: 2905
Зарегистрирован: Ср ноя 29, 2017 06:58:50

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

Сообщение BlackKilkennyCat »

То есть, на вопрос заказчика о лицензионности можно сказать: а на сахаре с лекарством брал.
На вопрос радиолюбителя, где взять, точно также: а на сахаре было...
Пиратское - это отдельная тема. Далеко не всегда применимо и повторяемо.
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

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

Сообщение Мурик »

Asmodey писал(а):На Сахаре брал IAR for STM8 версии 3 с лекарством.
Это незаконно!
Реклама
Эиком - электронные компоненты и радиодетали
sergey.UA
Потрогал лапой паяльник
Сообщения: 357
Зарегистрирован: Вс янв 11, 2015 20:33:32

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

Сообщение sergey.UA »

Коллеги, подскажите.
В какую тему обратится, здесь на радио коте, по вопросам С и Visual Studio ?
У меня вот прога, и в консоли ничего не происходит.
Изображение
Реклама
BlackKilkennyCat
Собутыльник Кота
Сообщения: 2905
Зарегистрирован: Ср ноя 29, 2017 06:58:50

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

Сообщение BlackKilkennyCat »

бесконечный цикл, потому и не происходит. после While() выполняется лишь одна строка, которая здесь на условие цикла не влияет.
Для того, чтобы выполнялось много, надо
while()
{
....
....
....
}
Реклама
sergey.UA
Потрогал лапой паяльник
Сообщения: 357
Зарегистрирован: Вс янв 11, 2015 20:33:32

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

Сообщение sergey.UA »

Точно, увидел что нет скобок, поставил, все заработало.
Решил сразу же отписаться, а вы уже ответили .
Спасибо вам. :)
Ну а вообще, куда порекомендуете мне перекочевать ? Тема то про STM8.
А то начнут помидорами закидывать.
jcxz
Мудрый кот
Сообщения: 1727
Зарегистрирован: Вт авг 15, 2017 10:51:13

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

Сообщение jcxz »

[uquote="sergey.UA",url="/forum/viewtopic.php?p=3954967#p3954967"]У меня вот прога, и в консоли ничего не происходит.[/uquote]Умный компилятор такую "прогу" должен скомпилить во что-то вроде:

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

void main()
{
  while (1) {}
}
Что он и делает видимо. :dont_know:

Добавлено after 2 minutes 6 seconds:
И не стоит в таких случаях вообще пользоваться float. Сами догадайтесь почему.
sergey.UA
Потрогал лапой паяльник
Сообщения: 357
Зарегистрирован: Вс янв 11, 2015 20:33:32

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

Сообщение sergey.UA »

Ну это же не МК, а 32 : 64 битная винда, ей должно быть пофиг на разрядность.
BlackKilkennyCat
Собутыльник Кота
Сообщения: 2905
Зарегистрирован: Ср ноя 29, 2017 06:58:50

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

Сообщение BlackKilkennyCat »

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

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

Сообщение VladislavS »

Учесть должен программист, а компилятор тупо оптимизировать всеми имеющимися способами.
BlackKilkennyCat
Собутыльник Кота
Сообщения: 2905
Зарегистрирован: Ср ноя 29, 2017 06:58:50

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

Сообщение BlackKilkennyCat »

о чём и речь.
jcxz
Мудрый кот
Сообщения: 1727
Зарегистрирован: Вт авг 15, 2017 10:51:13

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

Сообщение jcxz »

[uquote="sergey.UA",url="/forum/viewtopic.php?p=3954989#p3954989"]Ну это же не МК, а 32 : 64 битная винда, ей должно быть пофиг на разрядность.[/uquote]
Причём тут "разрядность"?

Добавлено after 5 minutes 12 seconds:
[uquote="BlackKilkennyCat",url="/forum/viewtopic.php?p=3954993#p3954993"]и не всегда опять же это хорошо, как в соседней ветке с ацп и флагами.[/uquote]Программист должен писать код так, чтобы его работоспособность не зависела от уровня оптимизации. Если это не так, то - код кривой. И компилятор в этом не виноват.
BlackKilkennyCat
Собутыльник Кота
Сообщения: 2905
Зарегистрирован: Ср ноя 29, 2017 06:58:50

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

Сообщение BlackKilkennyCat »

jcxz, это очень неверное утверждение. Компиляторы и оптимизаторы не богами создавались, они далеки от идеала и лажают достаточно часто для того, чтобы всё время проверять в листинге, что они там натворили и следить за ихними баг-листами. Например: https://sourceforge.net/p/sdcc/bugs/ всего 3 тысячи раз компилятор не виноват?
jcxz
Мудрый кот
Сообщения: 1727
Зарегистрирован: Вт авг 15, 2017 10:51:13

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

Сообщение jcxz »

[uquote="BlackKilkennyCat",url="/forum/viewtopic.php?p=3955103#p3955103"]jcxz, это очень неверное утверждение. Компиляторы и оптимизаторы не богами создавались, они далеки от идеала и лажают достаточно часто для того, чтобы всё время проверять в листинге, что они там натворили и следить за ихними баг-листами. Например: https://sourceforge.net/p/sdcc/bugs/ всего 3 тысячи раз компилятор не виноват?[/uquote]В чём неверное? Вы считаете, что если работоспособность программы зависит от уровня оптимизации - это нормально написанная программа??? :shock:
Про баги компиляторов я ничего не говорил и они тут не при чём. Я говорил о качестве написанного программистом кода, а не о компиляторе.
BlackKilkennyCat
Собутыльник Кота
Сообщения: 2905
Зарегистрирован: Ср ноя 29, 2017 06:58:50

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

Сообщение BlackKilkennyCat »

работоспособность нормальной программы может зависеть от уровня оптимизации из-за неидеальности оптимизатора и компилятора.
Качество написанного программистом кода при этом может не играть роли.

Мне попадались варианты, когда a += 1; a = a + 1; inc(a); компилировалось по-разному, и при разных уровнях оптимизации опять по-разному.
Насколько мне ещё качественней надо написать обычный инкремент обычной переменной, чтобы быть уверенным, что в ассемблере я увижу то же самое, как бы сам это написал, если бы писал в нём?
Однажды мне пришлось просто плюнуть и вставить вставку на асме в сишный код, потому что оптимизатор XC8 упорно не хотел сдвиг оформлять в сдвиг, он писал муть деления, что в итоге делало мою программу неработоспособной. Не думаю, что она была некачественной.
sergey.UA
Потрогал лапой паяльник
Сообщения: 357
Зарегистрирован: Вс янв 11, 2015 20:33:32

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

Сообщение sergey.UA »

jcxz, ну вы же, по поводу использования float, имели ввиду завышенную размерность переменной ?
jcxz
Мудрый кот
Сообщения: 1727
Зарегистрирован: Вт авг 15, 2017 10:51:13

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

Сообщение jcxz »

[uquote="BlackKilkennyCat",url="/forum/viewtopic.php?p=3955146#p3955146"]работоспособность нормальной программы может зависеть от уровня оптимизации из-за неидеальности оптимизатора и компилятора.[/uquote]Ещё раз - я говорю только о работе программиста, не компилятора.
Считаем что компилятор идеальный - работает без ошибок. Если при идеальном компиляторе работа кода скомпилённого с оптимизацией и без отличается (не по быстродействию само собой разумеется! а по выполняемому функционалу), то код скорей всего кривой.

[uquote="BlackKilkennyCat",url="/forum/viewtopic.php?p=3955146#p3955146"]Однажды мне пришлось просто плюнуть и вставить вставку на асме в сишный код, потому что оптимизатор XC8 упорно не хотел сдвиг оформлять в сдвиг, он писал муть деления, что в итоге делало мою программу неработоспособной. Не думаю, что она была некачественной.[/uquote]Если она становилась неработоспособной, потому что это был критичный по времени исполнения участок, и при делении не хватало производительности, то да - с конкретным кодом всё ок. (вопрос тогда скорее к выбранному алгоритму работы или к выбранному МК).
Но если это не так, и неработоспособность возникала не из-за нехватки времени на вычисления - то скорей всего код кривой. :dont_know:

Если Вы пишете:

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

int x = ...;
...
return x << 2;
то код должен работать вне зависимости от того какие в результате получатся команды: сделает (x<<2) компилятор сдвигом или умножением или вообще 3 сложения туда впендюрит.

Добавлено after 3 minutes 27 seconds:
[uquote="sergey.UA",url="/forum/viewtopic.php?p=3955158#p3955158"]jcxz, ну вы же, по поводу использования float, имели ввиду завышенную размерность переменной ?[/uquote]
Нет конечно. Я по поводу использования float для счётчика цикла. Подумайте - сколько раз выполнится ваш цикл?
Внимательно подумайте.
BlackKilkennyCat
Собутыльник Кота
Сообщения: 2905
Зарегистрирован: Ср ноя 29, 2017 06:58:50

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

Сообщение BlackKilkennyCat »

[uquote="jcxz",url="/forum/viewtopic.php?p=3955188#p3955188"]Считаем что компилятор идеальный - работает без ошибок. Если при идеальном компиляторе работа кода скомпилённого с оптимизацией и без отличается (не по быстродействию само собой разумеется! а по выполняемому функционалу), то код скорей всего кривой.[/uquote]
Компилятор не идеален, какой практический смысл считать его идеальным? Он не такой.
Работа кода с оптимизатором и без всегда будет отличаться, притом в зависимости от настроек оптимизатора и код при этом не будет кривой. Отличия могут привести к неправильной работе.
Ну, если конечно называть код кривым из-за того, что программист не знал об особенностях именно этой версии компилятора, тогда конечно, код кривой. У микрочипа тогда весь код кривой, особенно на ранних версиях XC8.

Нормальный разработчик всегда описывает свойства проекта, и настройки компилятора обязательно.

Добавлено after 3 minutes 7 seconds:
что касается float в цикле, то: а) здесь счётчика нет; б) всё равно можно, если учитывать особенности.
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

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

Сообщение VladislavS »

[uquote="BlackKilkennyCat",url="/forum/viewtopic.php?p=3955416#p3955416"]Компилятор не идеален, какой практический смысл считать его идеальным? Он не такой.[/uquote]Ошибки в компиляторах были, есть и будут. Но их количество не так велико, чтобы оказывать влияние на среднестатистические проекты. Код надо писать с рассчётом, что компилятор всё сделает по стандарту. Подвергать тестированию. А если не сделал, то исправлять компилятор.

[uquote="BlackKilkennyCat",url="/forum/viewtopic.php?p=3955416#p3955416"]Работа кода с оптимизатором и без всегда будет отличаться, притом в зависимости от настроек оптимизатора и код при этом не будет кривой.[/uquote]Только в скорости.

[uquote="BlackKilkennyCat",url="/forum/viewtopic.php?p=3955416#p3955416"]Отличия могут привести к неправильной работе.[/uquote]Вот это и есть кривой код.

[uquote="BlackKilkennyCat",url="/forum/viewtopic.php?p=3955416#p3955416"]Ну, если конечно называть код кривым из-за того, что программист не знал об особенностях именно этой версии компилятора, тогда конечно, код кривой. У микрочипа тогда весь код кривой, особенно на ранних версиях XC8.[/uquote]Ну вот и ответ, почему они RIP. Дали бы нормальный компилятор и средства отладки, может ещё и порыпались бы.

[uquote="BlackKilkennyCat",url="/forum/viewtopic.php?p=3955416#p3955416"]Нормальный разработчик всегда описывает свойства проекта, и настройки компилятора обязательно.[/uquote]Я частенько ответственный код тремя разными компиляторами собираю. Много интересного про свой код узнаёшь.
Ответить

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