Я хотел спосить, зачем компилятор генерит несколько копий кода, когда работает только одна копия и остальной код просто не нужен!
Ты какие то обрывки представил, без обьяснений, что по твоему мнению, является копией и что не выолняется, вот все, что есть на данный момент.
Чтобы Вы не говорили, что он остальной код крысячит!
Старая песня о главном - “компилятор глючный”.
В ноуте всё интересное, за компом сейчас. Попозже выложу. Хотя я не уверен, что мне кто-то ответит что-то вразумительное, но может мне и это поможет. Пока пауза до понедельника, отдыхать нужно, бапки капнули, можно и нужно отдыхать.)
Основываясь на том, что ты картинку вставить не можешь без помощи, ожиидать от тебя что то одекваттное в ближайщем будующем не приходится, ладно, отдыхай.
А ты сАшипками пишешь, пеЙсатель!)
Мне можно.
Тебе нет.
Забей!
Хорошо, отметь, что вопрос решен.
Пока не решён.)
Если ТС не понял решения, это еще не означает, что вопрос не решен.
Сегодня скомпилил вообще пустой майн, раздезил и… там все эти HALовские процедуры и функции присутствуют. Выходит, что компилятор зачем-то оставляет даже те функции, на которые нет точек входа = не используются, простыми словами. Надо пробовать опции оптимизации.
А кто и как обновляет кубик? С наших йп кубик не обновляеццо, использовать волшебные три буквы @@@ , верно?
Ну не просто так же прога из двух строк занимает килобайты-мегабайты ?
Ну я так понимаю, что все кортексы (втч. и xMega32) стартуют примерно одинаково:
копируется что-то из флешь в память, потом какая-то область памяти заполняется нулями, инициализируются системные переменные, выбирается тактовый генератор, инициализируются пины и всё остальное и стартует майн. Но в теле кода вне зависимости от архитектуры камня (1хх или 4хх) присутствуют куски кода, мало того, что нет точек входа, эти куски просто не выполняют ничего, к примеру пуш-поп-ретурн.
Вот и вопрос = зачем это делает компилятор?
Может, речь идет о таблице прерываний?
Уася, ты путаешь вектора прерываний с AVR. На кортексах не прАкатит финт ушами , ибо указатели, вида DWORD ссылаются на конкретные вектора функций, тобишь типа RETI , как на AVR = нуникАтит… Более того, код, который выполняется в векторе имеет совершенно другой приоритет, и (как нистранно) другие инструкции. Там вообще всё сильно сложнее, чем в AVR. На этом и многие “ломаются”, так как простота кодинга на пердуине ну никак не соизмерима с тем “гемором” , который имеет место быть на кортексах…
Вы – как героиня Маркеса, розами какаете?
Я думал, мы тут про процессоры и языки программирования разговор разговариваем, ан нет. Ну как снег раскрасить я знаю, но мне бы про кортексы и их нюансы…
Что заставило Вас такое подумать в “тупой теме” в разделе ЧЧ?