Gradient 0 Posted April 23, 2020 · Report post Столкнулся с такой проблемой. IAR для AVR, ver6.60.3 Процессор AT90CAN128 Пока писал и отлаживал код "на столе", устройство от питания не отключалось, работало стабильно и все были удивительно счастливы. Но пришел момент передачи заказчику... и тут началось. Устройство несколько раз вернули с комментарием "не запускается вообще". Стал разбираться. Оказалось, что плата может успешно стартовать, пока не разрядятся емкости на pcb и ram не очистится... это может длиться мин 10-15, поэтому сразу и не нашли. Далее стал искать почему. После полной разрядки, дебагер попадает на метку __dedug_break, код __low_level_init вроде выполняется, но в итоге процесс до вызова main() не доходит. Те переменные и объекты вероятно не инициализируются. Стал понемногу "отрезать" код из flash и после порога 32k всё вдруг заработало, стартует без проблем. Сейчас размер кода: 33 085 bytes of CODE memory (+ 16 range fill ) 3 368 bytes of DATA memory (+ 115 absolute ) 203 bytes of XDATA memory (+ 2 056 absolute ) 6 bytes of CONST memory 16 534 bytes of FARCODE memory Подскажите, где посмотреть и что с этим делать? Есть ли вероятность, что это баг IAR и он не правильно делает инициализацию? Quote Ответить с цитированием Share this post Link to post Share on other sites
haker_fox 0 Posted April 23, 2020 · Report post 6 minutes ago, Gradient said: это может длиться мин 10-15 У вас место конденсаторов ионисторы что-ли стоят? Ну закоротите пинцетом. И вы приёмо-сдадочные испытания не проводите вообще? Хотя бы элементарный прогон, который бы сразу выявил эту проблему. Или ваше устройство сразу со стола к заказчику поехало без корпуса? В который раз замечаю, что у вас проблемы с линкером. И в который раз вы, видимо, невнимательно читаете документацию. Quote Ответить с цитированием Share this post Link to post Share on other sites
Gradient 0 Posted April 23, 2020 · Report post я вам уже писал куда вам пойти... ;) Quote Ответить с цитированием Share this post Link to post Share on other sites
haker_fox 0 Posted April 23, 2020 · Report post 2 hours ago, Gradient said: я вам уже писал куда вам пойти... ;) Что поделать, если вы упорно совершаете одни и те же ошибки. Вам бы сказать спасибо, что вам помогают. Примите чужую помощь, если собственных мозгов не хватает. Quote Ответить с цитированием Share this post Link to post Share on other sites
Gradient 0 Posted April 23, 2020 · Report post Помогайте плиз где то в другом месте. Если вы внимательно читали и Вам не изменяет память - я Вас лично несколько раз уже просил больше мне не "помогать". Quote Ответить с цитированием Share this post Link to post Share on other sites
haker_fox 0 Posted April 23, 2020 · Report post 1 minute ago, Gradient said: я Вас лично несколько раз уже просил больше мне не "помогать". Но вам. похоже, нравится дискутировать со мной. Иначе бы вы просто промолчали и проигнорировали меня. А я - видя потерю интереса, больше бы не писал. Quote Ответить с цитированием Share this post Link to post Share on other sites
Gradient 0 Posted April 23, 2020 · Report post Нет.. не нравится, вы только мешаете и гадите в темах. Вы бесполезный тролль, и я не хочу чтоб вы в моей теме что-то писали и портили. Так Вам более понятно? Уходите... Quote Ответить с цитированием Share this post Link to post Share on other sites
haker_fox 0 Posted April 23, 2020 · Report post @Gradient, я понимаю, что людей судят по себе. Но не так уж ты плох. И вовсе ты не гадишь везде, где попало. Quote Ответить с цитированием Share this post Link to post Share on other sites
Gradient 0 Posted April 23, 2020 · Report post Тычь своему папе... Quote Ответить с цитированием Share this post Link to post Share on other sites
pyroman 0 Posted April 23, 2020 · Report post Может я не прав, но, вроде, у нелицензионной IAR для AVR ограничение на размер кода в 32 кБ? Quote Ответить с цитированием Share this post Link to post Share on other sites
k155la3 0 Posted April 23, 2020 · Report post не знаю, как для IAR/AVR, но если порыться в каталоге с IAR можно найти исходник стартап-кода на ASM, прикомпоновать его к проекту, и в опции проекта "debug" метку начала кода для отладки сменить с "main" на этот reset_code (не помню как оно именуется, см. первую метку в инит-коде). Quote Ответить с цитированием Share this post Link to post Share on other sites
Сергей Борщ 0 Posted April 23, 2020 · Report post 2 часа назад, k155la3 сказал: но если порыться в каталоге с IAR можно найти исходник стартап-кода на ASM, прикомпоновать его к проекту Сколько геморроя, лишь бы не открывать окно дизассемблера, в котором можно поставить точку останова на вектор сброса одним легким движением. Quote Ответить с цитированием Share this post Link to post Share on other sites
Gradient 0 Posted April 24, 2020 · Report post Да, нашел! Файл "segment_init.с" строка 55 /* Initialize the INITTAB pointer. */ Следует исправить: InitTable = __segment_begin("INITTAB"); InitTable = (SegmentInitBlockPtr_Type) __segment_begin("INITTAB"); И всё снова как новое! Спасибо парни... спасли. Quote Ответить с цитированием Share this post Link to post Share on other sites