Gradient 1 23 апреля, 2020 Опубликовано 23 апреля, 2020 · Жалоба Столкнулся с такой проблемой. 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 и он не правильно делает инициализацию? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 23 апреля, 2020 Опубликовано 23 апреля, 2020 · Жалоба 6 minutes ago, Gradient said: это может длиться мин 10-15 У вас место конденсаторов ионисторы что-ли стоят? Ну закоротите пинцетом. И вы приёмо-сдадочные испытания не проводите вообще? Хотя бы элементарный прогон, который бы сразу выявил эту проблему. Или ваше устройство сразу со стола к заказчику поехало без корпуса? В который раз замечаю, что у вас проблемы с линкером. И в который раз вы, видимо, невнимательно читаете документацию. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gradient 1 23 апреля, 2020 Опубликовано 23 апреля, 2020 · Жалоба я вам уже писал куда вам пойти... ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 23 апреля, 2020 Опубликовано 23 апреля, 2020 · Жалоба 2 hours ago, Gradient said: я вам уже писал куда вам пойти... ;) Что поделать, если вы упорно совершаете одни и те же ошибки. Вам бы сказать спасибо, что вам помогают. Примите чужую помощь, если собственных мозгов не хватает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gradient 1 23 апреля, 2020 Опубликовано 23 апреля, 2020 · Жалоба Помогайте плиз где то в другом месте. Если вы внимательно читали и Вам не изменяет память - я Вас лично несколько раз уже просил больше мне не "помогать". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 23 апреля, 2020 Опубликовано 23 апреля, 2020 · Жалоба 1 minute ago, Gradient said: я Вас лично несколько раз уже просил больше мне не "помогать". Но вам. похоже, нравится дискутировать со мной. Иначе бы вы просто промолчали и проигнорировали меня. А я - видя потерю интереса, больше бы не писал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gradient 1 23 апреля, 2020 Опубликовано 23 апреля, 2020 · Жалоба Нет.. не нравится, вы только мешаете и гадите в темах. Вы бесполезный тролль, и я не хочу чтоб вы в моей теме что-то писали и портили. Так Вам более понятно? Уходите... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 23 апреля, 2020 Опубликовано 23 апреля, 2020 · Жалоба @Gradient, я понимаю, что людей судят по себе. Но не так уж ты плох. И вовсе ты не гадишь везде, где попало. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gradient 1 23 апреля, 2020 Опубликовано 23 апреля, 2020 · Жалоба Тычь своему папе... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
pyroman 2 23 апреля, 2020 Опубликовано 23 апреля, 2020 · Жалоба Может я не прав, но, вроде, у нелицензионной IAR для AVR ограничение на размер кода в 32 кБ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 26 23 апреля, 2020 Опубликовано 23 апреля, 2020 · Жалоба не знаю, как для IAR/AVR, но если порыться в каталоге с IAR можно найти исходник стартап-кода на ASM, прикомпоновать его к проекту, и в опции проекта "debug" метку начала кода для отладки сменить с "main" на этот reset_code (не помню как оно именуется, см. первую метку в инит-коде). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 23 апреля, 2020 Опубликовано 23 апреля, 2020 · Жалоба 2 часа назад, k155la3 сказал: но если порыться в каталоге с IAR можно найти исходник стартап-кода на ASM, прикомпоновать его к проекту Сколько геморроя, лишь бы не открывать окно дизассемблера, в котором можно поставить точку останова на вектор сброса одним легким движением. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gradient 1 24 апреля, 2020 Опубликовано 24 апреля, 2020 · Жалоба Да, нашел! Файл "segment_init.с" строка 55 /* Initialize the INITTAB pointer. */ Следует исправить: InitTable = __segment_begin("INITTAB"); InitTable = (SegmentInitBlockPtr_Type) __segment_begin("INITTAB"); И всё снова как новое! Спасибо парни... спасли. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться