Карма: 2
Рейтинг сообщений: 6
Зарегистрирован: Сб сен 21, 2013 21:56:24 Сообщений: 37 Откуда: Madrid, España
Рейтинг сообщения:0
Когда-то давно пробовал работать в mikroC. И даже многое получалось. И вот недавно снова потребовалось сделать несложную прошивку. И тут при попытке прошить контроллер выдается сообщение, что hex файл больше, чем память контроллера. При этом контроллер точно такой же, под который писалась прошивка, и в Proteus всё работает нормально. Сторонние hex файлы зашиваются нормально, проблемы только с файлами, скомпилированными в mikroC. Не могу понять, в чем же дело. Прошивал программатором PICkit (точнее его клоном).
В Протеусе всё работает, но выдает сообщение "Program or eeprom has invalid addres"
Когда-то был довольно большой проект на PIC18F4520 - 32К практически под завязку. Все работало, но потребовалось изменить несколько констант в таблице (ничего не дописывалось, а только циферки менял) - после этого хоть и компилировалось без ошибок, но прошивка стала абсолютно не рабочей!!! Пришлось в срочном порядке переводить проект на хайтек. Больше я с микросями не связываюсь...
Карма: 2
Рейтинг сообщений: 6
Зарегистрирован: Сб сен 21, 2013 21:56:24 Сообщений: 37 Откуда: Madrid, España
Рейтинг сообщения:0
Решил для чистоты эксперимента взять один из примеров, идущих вместе с компилятором, и скомпилировать его, вообще ничего не меняя. Собрал схему на том МК, под который пример написан - всё то же самое. Полагаю, дело тут в самом микроС.
Открыта удобная площадка с выгодными ценами, поставляющая весь ассортимент продукции, производимой компанией MEAN WELL – от завоевавших популярность и известных на рынке изделий до новинок. MEAN WELL.Market предоставляет гарантийную и сервисную поддержку, удобный подбор продукции, оперативную доставку по России.
На сайте интернет-магазина посетители смогут найти обзоры, интересные статьи о применении, максимальный объем технических сведений.
Продукция MOSO предназначена в основном для индустриальных приложений, использует инновационные решения на основе более 200 собственных патентов для силовой электроники и соответствует международным стандартам. LED-драйверы MOSO применяются в системах наружного освещения разных отраслей, включая промышленность, сельское хозяйство, транспорт и железную дорогу. В ряде серий реализована возможность дистанционного контроля и программирования работы по заданному сценарию. Разберем решения MOSO
подробнее>>
Евгений Александров
Заголовок сообщения: Re: Снова mikroC
Добавлено: Пт мар 09, 2018 21:45:20
Первый раз сказал Мяу!
Карма: 2
Рейтинг сообщений: 6
Зарегистрирован: Сб сен 21, 2013 21:56:24 Сообщений: 37 Откуда: Madrid, España
Рейтинг сообщения:0
Перебросил проект на XC8, всё заработало, в любом случае спасибо за помощь
Есть такая интересная вещь с МикроСи. Пишу, компилирую для пик18, объем порядка 8 кб. Если оптимизатор включен, то программу глючит и сбоит. Если оптимизатор кода установлен как зеро, проблем нет вовсе. Компилятор настоящий, полноразмерный и приобретенный. Объемов места в принципе хватает, и в оптимизаторе нет жесткой необходимости. Но все же. Хочется знать почему? Если кто встречался с таким, скажите плиз в чем дело. Очередной глюк Микроси или я в чем-то не прав?
на счет конкретной реализации microC не скажу, но с подобными проблемами (влияние оптимизатора) не раз сталкивался сам, и не раз помогал другим разобраться: во всех известных мне случаях оптимизатор был не виноват, а виноват был программсит, который не до конца понимал, как работает оптимизатор. то есть программист писал код, который НЕ ДОЛЖЕН БЫЛ работать, а то, что ОН РАБОТАЛ БЕЗ ОПТИМИЗАТОРА, было побочным эффектом.
я не отрицаю возможность наличия багов в компиляторе, но пока что не встречал ни одного случая, когда баг на самом деле был бы обнаружен кем-то из местных форумчан (и не только местных)
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
не встречал ни одного случая, когда баг на самом деле был бы обнаружен кем-то из местных форумчан
Ну значит уже встретили. И GCC у меня сам себя собирал неправильно при включенной оптимизации для конкретного AMD (уже не помню точно какого). Багрепорт был подтвержден. И в SDCC пару багов точно находил до версии 3.5, после которой заметно лучше код стал.
Я сижу на микроС и действительно приходиться бодаться с оптимизатором, закоментировал выдачу метки в уарт и он сволоч часть кода выкинул. Я долго понять не мог че за полтергейст.
Ну что ж. Мои подозрения оправдываются. Компиляторы тоже не боги пишут, а вполне обычные люди и им свойственно ошибаться. Ну а что касается ошибок моих, ну так и это нахожу даже в хорошо и давно работающих проектах. Нахожу, исправляю, снова нахожу. Оптимизатор разумеется самый лучше тот, который в голове у автора проекта. Без помощи оптимизации работает, а все остальное от лукавого. Спасибо откликнувшимся.
самое интересное, что "глючный" код мы так и не увидели, и вынуждены заочно согласиться с автором вопроса, что виноват оптимизатор/компилятор, а не он.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Извините ребята, но программа представляет весьма специфический и глубоко коммерческий продукт и не подлежит оглашению в инете. Да и занимает кроме всего прочего 43 страницы мелким шрифтом на формате А4. Если нет оптимизатора, то все отлично работает, а если включить любой, даже минимальный уровень оптимизации, то вдруг где-то перестает работать. Есть основания, что все-таки глючит компилятор. Я сам не готов сказать, где именно глючит, поскольку система работает автономно и системы сохранения состояния регистров процессора на момент формирования ошибки не имеет согласно технического задания.
Это типа на МикроСи нельзя сделать нормальный продукт? Да ладно. Пишет не язык а человек. Язык всего лишь инструмент и не более, способ реализации. И меня МикроСи устраивает, и получаемый продукт и его надежность устраивает моих клиентов. И им откровенно наплевать, на чем я пишу.
Ну почему нельзя, я же делаю. По поводу оптимизатора тут двоякое мнение т. е. 50% это косяк того кто пишет код так как в некоторых случаях оптимизатор считает код не идеальным и в некоторых случаях он действительно прав. У меня есть код который без оптимизации вообще не работает. А с другой стороны не зря придумали директиву Volatile
Да это не баг совсем, если var=0; и до if (var) { оно не меняется, то действительно if (var) { нет смысла обрабатывать. Я так выкидываю участки кода когда они мне на данный момент не нужны.
И когда же вы все наиграетесь этим микроси и перейдете на нормальный продукт???
А многим этот продукт кажется вполне нормальным. Библиотек куча, в хелпе примеров море, которые просто копируешь и всё сразу работает. Да и при желании можно лицензию купить стоил относительно не дорого, это вам не IAR который хрен купишь
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения