Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить

Снова mikroC

Ср мар 07, 2018 14:43:13

Когда-то давно пробовал работать в mikroC. И даже многое получалось. :) И вот недавно снова потребовалось сделать несложную прошивку. И тут при попытке прошить контроллер выдается сообщение, что hex файл больше, чем память контроллера. При этом контроллер точно такой же, под который писалась прошивка, и в Proteus всё работает нормально. Сторонние hex файлы зашиваются нормально, проблемы только с файлами, скомпилированными в mikroC. Не могу понять, в чем же дело. Прошивал программатором PICkit (точнее его клоном).

В Протеусе всё работает, но выдает сообщение "Program or eeprom has invalid addres"

Re: Снова mikroC

Ср мар 07, 2018 22:29:26

Проект выложи.

Re: Снова mikroC

Чт мар 08, 2018 07:35:54

Когда-то давно пробовал работать в mikroC

Когда-то был довольно большой проект на PIC18F4520 - 32К практически под завязку. Все работало, но потребовалось изменить несколько констант в таблице (ничего не дописывалось, а только циферки менял) - после этого хоть и компилировалось без ошибок, но прошивка стала абсолютно не рабочей!!! Пришлось в срочном порядке переводить проект на хайтек. Больше я с микросями не связываюсь...

Re: Снова mikroC

Чт мар 08, 2018 11:53:03

Решил для чистоты эксперимента взять один из примеров, идущих вместе с компилятором, и скомпилировать его, вообще ничего не меняя. Собрал схему на том МК, под который пример написан - всё то же самое. Полагаю, дело тут в самом микроС.

Re: Снова mikroC

Чт мар 08, 2018 17:03:55

Ставьте ХС8

Re: Снова mikroC

Пт мар 09, 2018 21:45:20

Перебросил проект на XC8, всё заработало, в любом случае спасибо за помощь

Re: Снова mikroC

Пн сен 16, 2019 11:15:00

Есть такая интересная вещь с МикроСи. Пишу, компилирую для пик18, объем порядка 8 кб. Если оптимизатор включен, то программу глючит и сбоит. Если оптимизатор кода установлен как зеро, проблем нет вовсе. Компилятор настоящий, полноразмерный и приобретенный. Объемов места в принципе хватает, и в оптимизаторе нет жесткой необходимости. Но все же. Хочется знать почему?
Если кто встречался с таким, скажите плиз в чем дело. Очередной глюк Микроси или я в чем-то не прав?

Re: Снова mikroC

Пн сен 16, 2019 12:43:56

Экстрасенсы в отпуске....
Попробуйте написать в техподдержку продукта.

Re: Снова mikroC

Пн сен 16, 2019 13:07:50

на счет конкретной реализации microC не скажу, но с подобными проблемами (влияние оптимизатора) не раз сталкивался сам, и не раз помогал другим разобраться: во всех известных мне случаях оптимизатор был не виноват, а виноват был программсит, который не до конца понимал, как работает оптимизатор. то есть программист писал код, который НЕ ДОЛЖЕН БЫЛ работать, а то, что ОН РАБОТАЛ БЕЗ ОПТИМИЗАТОРА, было побочным эффектом.

я не отрицаю возможность наличия багов в компиляторе, но пока что не встречал ни одного случая, когда баг на самом деле был бы обнаружен кем-то из местных форумчан (и не только местных)

Re: Снова mikroC

Пн сен 16, 2019 13:51:56

не встречал ни одного случая, когда баг на самом деле был бы обнаружен кем-то из местных форумчан

Ну значит уже встретили. И GCC у меня сам себя собирал неправильно при включенной оптимизации для конкретного AMD (уже не помню точно какого). Багрепорт был подтвержден. И в SDCC пару багов точно находил до версии 3.5, после которой заметно лучше код стал.

Re: Снова mikroC

Пн сен 16, 2019 13:59:40

ПростоНуб писал(а):Ну значит уже встретили
хорошо, отмечу у себя в блокнотике и буду гордиться :)

Re: Снова mikroC

Пн сен 16, 2019 21:35:31

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

Re: Снова mikroC

Пн сен 16, 2019 22:41:41

Ну что ж. Мои подозрения оправдываются. Компиляторы тоже не боги пишут, а вполне обычные люди и им свойственно ошибаться.
Ну а что касается ошибок моих, ну так и это нахожу даже в хорошо и давно работающих проектах. Нахожу, исправляю, снова нахожу. Оптимизатор разумеется самый лучше тот, который в голове у автора проекта. Без помощи оптимизации работает, а все остальное от лукавого. Спасибо откликнувшимся.

Re: Снова mikroC

Вт сен 17, 2019 08:50:35

самое интересное, что "глючный" код мы так и не увидели, и вынуждены заочно согласиться с автором вопроса, что виноват оптимизатор/компилятор, а не он.

Re: Снова mikroC

Вт сен 17, 2019 11:16:57

Извините ребята, но программа представляет весьма специфический и глубоко коммерческий продукт и не подлежит оглашению в инете. Да и занимает кроме всего прочего 43 страницы мелким шрифтом на формате А4.
Если нет оптимизатора, то все отлично работает, а если включить любой, даже минимальный уровень оптимизации, то вдруг где-то перестает работать. Есть основания, что все-таки глючит компилятор. Я сам не готов сказать, где именно глючит, поскольку система работает автономно и системы сохранения состояния регистров процессора на момент формирования ошибки не имеет согласно технического задания.

Re: Снова mikroC

Ср сен 18, 2019 05:48:58

И когда же вы все наиграетесь этим микроси и перейдете на нормальный продукт???

Re: Снова mikroC

Ср сен 18, 2019 06:27:43

Это типа на МикроСи нельзя сделать нормальный продукт? Да ладно. Пишет не язык а человек. Язык всего лишь инструмент и не более, способ реализации. И меня МикроСи устраивает, и получаемый продукт и его надежность устраивает моих клиентов. И им откровенно наплевать, на чем я пишу.

Re: Снова mikroC

Ср сен 18, 2019 07:56:33

Ну почему нельзя, я же делаю. По поводу оптимизатора тут двоякое мнение т. е. 50% это косяк того кто пишет код так как в некоторых случаях оптимизатор считает код не идеальным и в некоторых случаях он действительно прав. У меня есть код который без оптимизации вообще не работает. А с другой стороны не зря придумали директиву Volatile

Re: Снова mikroC

Ср сен 18, 2019 08:46:29

alex_, напомнило баг оптимизатора в SDCC 3.5 (или 3.6).
Код:
volatile int var;
...
void some_function(void) {
  var=0;
...
  if (var) {
    ...
  }
}

Оптимизатор радостно удалял if со всем содержимым, искренне считая, что var в этом месте всегда нулевой )))

Re: Снова mikroC

Ср сен 18, 2019 09:44:33

Да это не баг совсем, если var=0; и до if (var) { оно не меняется, то действительно if (var) { нет смысла обрабатывать. Я так выкидываю участки кода когда они мне на данный момент не нужны.

Добавлено after 13 minutes 36 seconds:
И когда же вы все наиграетесь этим микроси и перейдете на нормальный продукт???

А многим этот продукт кажется вполне нормальным. Библиотек куча, в хелпе примеров море, которые просто копируешь и всё сразу работает. Да и при желании можно лицензию купить стоил относительно не дорого, это вам не IAR который хрен купишь :(
Ответить