Программирование STM8
-
BlackKilkennyCat
- Собутыльник Кота
- Сообщения: 2905
- Зарегистрирован: Ср ноя 29, 2017 06:58:50
Re: Программирование STM8
Мне не понравился Code::Block.
- Реклама
Re: Программирование STM8
На Сахаре брал IAR for STM8 версии 3 с лекарством.
Астролябия-сама меряет, было бы что мерять!!!
-
BlackKilkennyCat
- Собутыльник Кота
- Сообщения: 2905
- Зарегистрирован: Ср ноя 29, 2017 06:58:50
Re: Программирование STM8
То есть, на вопрос заказчика о лицензионности можно сказать: а на сахаре с лекарством брал.
На вопрос радиолюбителя, где взять, точно также: а на сахаре было...
Пиратское - это отдельная тема. Далеко не всегда применимо и повторяемо.
На вопрос радиолюбителя, где взять, точно также: а на сахаре было...
Пиратское - это отдельная тема. Далеко не всегда применимо и повторяемо.
Re: Программирование STM8
Это незаконно!Asmodey писал(а):На Сахаре брал IAR for STM8 версии 3 с лекарством.
- Реклама
-
BlackKilkennyCat
- Собутыльник Кота
- Сообщения: 2905
- Зарегистрирован: Ср ноя 29, 2017 06:58:50
Re: Программирование STM8
бесконечный цикл, потому и не происходит. после While() выполняется лишь одна строка, которая здесь на условие цикла не влияет.
Для того, чтобы выполнялось много, надо
while()
{
....
....
....
}
Для того, чтобы выполнялось много, надо
while()
{
....
....
....
}
Re: Программирование STM8
Точно, увидел что нет скобок, поставил, все заработало.
Решил сразу же отписаться, а вы уже ответили .
Спасибо вам.
Ну а вообще, куда порекомендуете мне перекочевать ? Тема то про STM8.
А то начнут помидорами закидывать.
Решил сразу же отписаться, а вы уже ответили .
Спасибо вам.
Ну а вообще, куда порекомендуете мне перекочевать ? Тема то про STM8.
А то начнут помидорами закидывать.
Re: Программирование STM8
[uquote="sergey.UA",url="/forum/viewtopic.php?p=3954967#p3954967"]У меня вот прога, и в консоли ничего не происходит.[/uquote]Умный компилятор такую "прогу" должен скомпилить во что-то вроде:
Что он и делает видимо. 
Добавлено after 2 minutes 6 seconds:
И не стоит в таких случаях вообще пользоваться float. Сами догадайтесь почему.
Код: Выделить всё
void main()
{
while (1) {}
}Добавлено after 2 minutes 6 seconds:
И не стоит в таких случаях вообще пользоваться float. Сами догадайтесь почему.
Re: Программирование STM8
Ну это же не МК, а 32 : 64 битная винда, ей должно быть пофиг на разрядность.
-
BlackKilkennyCat
- Собутыльник Кота
- Сообщения: 2905
- Зарегистрирован: Ср ноя 29, 2017 06:58:50
Re: Программирование STM8
jcxz, если точнее, то не слишком умный, а слишком оптимизированный, и не всегда опять же это хорошо, как в соседней ветке с ацп и флагами. А умный, по идее, должен учесть, а не влияет ли вызов чего-либо в условии на что-то ещё.
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: Программирование STM8
Учесть должен программист, а компилятор тупо оптимизировать всеми имеющимися способами.
-
BlackKilkennyCat
- Собутыльник Кота
- Сообщения: 2905
- Зарегистрирован: Ср ноя 29, 2017 06:58:50
Re: Программирование STM8
о чём и речь.
Re: Программирование STM8
[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]Программист должен писать код так, чтобы его работоспособность не зависела от уровня оптимизации. Если это не так, то - код кривой. И компилятор в этом не виноват.
Причём тут "разрядность"?
Добавлено after 5 minutes 12 seconds:
[uquote="BlackKilkennyCat",url="/forum/viewtopic.php?p=3954993#p3954993"]и не всегда опять же это хорошо, как в соседней ветке с ацп и флагами.[/uquote]Программист должен писать код так, чтобы его работоспособность не зависела от уровня оптимизации. Если это не так, то - код кривой. И компилятор в этом не виноват.
-
BlackKilkennyCat
- Собутыльник Кота
- Сообщения: 2905
- Зарегистрирован: Ср ноя 29, 2017 06:58:50
Re: Программирование STM8
jcxz, это очень неверное утверждение. Компиляторы и оптимизаторы не богами создавались, они далеки от идеала и лажают достаточно часто для того, чтобы всё время проверять в листинге, что они там натворили и следить за ихними баг-листами. Например: https://sourceforge.net/p/sdcc/bugs/ всего 3 тысячи раз компилятор не виноват?
Re: Программирование STM8
[uquote="BlackKilkennyCat",url="/forum/viewtopic.php?p=3955103#p3955103"]jcxz, это очень неверное утверждение. Компиляторы и оптимизаторы не богами создавались, они далеки от идеала и лажают достаточно часто для того, чтобы всё время проверять в листинге, что они там натворили и следить за ихними баг-листами. Например: https://sourceforge.net/p/sdcc/bugs/ всего 3 тысячи раз компилятор не виноват?[/uquote]В чём неверное? Вы считаете, что если работоспособность программы зависит от уровня оптимизации - это нормально написанная программа???
Про баги компиляторов я ничего не говорил и они тут не при чём. Я говорил о качестве написанного программистом кода, а не о компиляторе.
Про баги компиляторов я ничего не говорил и они тут не при чём. Я говорил о качестве написанного программистом кода, а не о компиляторе.
-
BlackKilkennyCat
- Собутыльник Кота
- Сообщения: 2905
- Зарегистрирован: Ср ноя 29, 2017 06:58:50
Re: Программирование STM8
работоспособность нормальной программы может зависеть от уровня оптимизации из-за неидеальности оптимизатора и компилятора.
Качество написанного программистом кода при этом может не играть роли.
Мне попадались варианты, когда a += 1; a = a + 1; inc(a); компилировалось по-разному, и при разных уровнях оптимизации опять по-разному.
Насколько мне ещё качественней надо написать обычный инкремент обычной переменной, чтобы быть уверенным, что в ассемблере я увижу то же самое, как бы сам это написал, если бы писал в нём?
Однажды мне пришлось просто плюнуть и вставить вставку на асме в сишный код, потому что оптимизатор XC8 упорно не хотел сдвиг оформлять в сдвиг, он писал муть деления, что в итоге делало мою программу неработоспособной. Не думаю, что она была некачественной.
Качество написанного программистом кода при этом может не играть роли.
Мне попадались варианты, когда a += 1; a = a + 1; inc(a); компилировалось по-разному, и при разных уровнях оптимизации опять по-разному.
Насколько мне ещё качественней надо написать обычный инкремент обычной переменной, чтобы быть уверенным, что в ассемблере я увижу то же самое, как бы сам это написал, если бы писал в нём?
Однажды мне пришлось просто плюнуть и вставить вставку на асме в сишный код, потому что оптимизатор XC8 упорно не хотел сдвиг оформлять в сдвиг, он писал муть деления, что в итоге делало мою программу неработоспособной. Не думаю, что она была некачественной.
Re: Программирование STM8
jcxz, ну вы же, по поводу использования float, имели ввиду завышенную размерность переменной ?
Re: Программирование STM8
[uquote="BlackKilkennyCat",url="/forum/viewtopic.php?p=3955146#p3955146"]работоспособность нормальной программы может зависеть от уровня оптимизации из-за неидеальности оптимизатора и компилятора.[/uquote]Ещё раз - я говорю только о работе программиста, не компилятора.
Считаем что компилятор идеальный - работает без ошибок. Если при идеальном компиляторе работа кода скомпилённого с оптимизацией и без отличается (не по быстродействию само собой разумеется! а по выполняемому функционалу), то код скорей всего кривой.
[uquote="BlackKilkennyCat",url="/forum/viewtopic.php?p=3955146#p3955146"]Однажды мне пришлось просто плюнуть и вставить вставку на асме в сишный код, потому что оптимизатор XC8 упорно не хотел сдвиг оформлять в сдвиг, он писал муть деления, что в итоге делало мою программу неработоспособной. Не думаю, что она была некачественной.[/uquote]Если она становилась неработоспособной, потому что это был критичный по времени исполнения участок, и при делении не хватало производительности, то да - с конкретным кодом всё ок. (вопрос тогда скорее к выбранному алгоритму работы или к выбранному МК).
Но если это не так, и неработоспособность возникала не из-за нехватки времени на вычисления - то скорей всего код кривой.
Если Вы пишете:
то код должен работать вне зависимости от того какие в результате получатся команды: сделает (x<<2) компилятор сдвигом или умножением или вообще 3 сложения туда впендюрит.
Добавлено after 3 minutes 27 seconds:
[uquote="sergey.UA",url="/forum/viewtopic.php?p=3955158#p3955158"]jcxz, ну вы же, по поводу использования float, имели ввиду завышенную размерность переменной ?[/uquote]
Нет конечно. Я по поводу использования float для счётчика цикла. Подумайте - сколько раз выполнится ваш цикл?
Внимательно подумайте.
Считаем что компилятор идеальный - работает без ошибок. Если при идеальном компиляторе работа кода скомпилённого с оптимизацией и без отличается (не по быстродействию само собой разумеется! а по выполняемому функционалу), то код скорей всего кривой.
[uquote="BlackKilkennyCat",url="/forum/viewtopic.php?p=3955146#p3955146"]Однажды мне пришлось просто плюнуть и вставить вставку на асме в сишный код, потому что оптимизатор XC8 упорно не хотел сдвиг оформлять в сдвиг, он писал муть деления, что в итоге делало мою программу неработоспособной. Не думаю, что она была некачественной.[/uquote]Если она становилась неработоспособной, потому что это был критичный по времени исполнения участок, и при делении не хватало производительности, то да - с конкретным кодом всё ок. (вопрос тогда скорее к выбранному алгоритму работы или к выбранному МК).
Но если это не так, и неработоспособность возникала не из-за нехватки времени на вычисления - то скорей всего код кривой.
Если Вы пишете:
Код: Выделить всё
int x = ...;
...
return x << 2;Добавлено 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
[uquote="jcxz",url="/forum/viewtopic.php?p=3955188#p3955188"]Считаем что компилятор идеальный - работает без ошибок. Если при идеальном компиляторе работа кода скомпилённого с оптимизацией и без отличается (не по быстродействию само собой разумеется! а по выполняемому функционалу), то код скорей всего кривой.[/uquote]
Компилятор не идеален, какой практический смысл считать его идеальным? Он не такой.
Работа кода с оптимизатором и без всегда будет отличаться, притом в зависимости от настроек оптимизатора и код при этом не будет кривой. Отличия могут привести к неправильной работе.
Ну, если конечно называть код кривым из-за того, что программист не знал об особенностях именно этой версии компилятора, тогда конечно, код кривой. У микрочипа тогда весь код кривой, особенно на ранних версиях XC8.
Нормальный разработчик всегда описывает свойства проекта, и настройки компилятора обязательно.
Добавлено after 3 minutes 7 seconds:
что касается float в цикле, то: а) здесь счётчика нет; б) всё равно можно, если учитывать особенности.
Компилятор не идеален, какой практический смысл считать его идеальным? Он не такой.
Работа кода с оптимизатором и без всегда будет отличаться, притом в зависимости от настроек оптимизатора и код при этом не будет кривой. Отличия могут привести к неправильной работе.
Ну, если конечно называть код кривым из-за того, что программист не знал об особенностях именно этой версии компилятора, тогда конечно, код кривой. У микрочипа тогда весь код кривой, особенно на ранних версиях XC8.
Нормальный разработчик всегда описывает свойства проекта, и настройки компилятора обязательно.
Добавлено after 3 minutes 7 seconds:
что касается float в цикле, то: а) здесь счётчика нет; б) всё равно можно, если учитывать особенности.
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: Программирование STM8
[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]Я частенько ответственный код тремя разными компиляторами собираю. Много интересного про свой код узнаёшь.
[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]Я частенько ответственный код тремя разными компиляторами собираю. Много интересного про свой код узнаёшь.


