Arlleex 183 28 июля Опубликовано 28 июля · Жалоба 26 минут назад, jcxz сказал: Странно... А почему так? У вас же для второй (большой) структуры нету переопределения имени секции (в исходнике). Тогда почему компилятор её в ".bss.BootInfo" пихает? А не в дефолтную ".bss". Нету переопределения. Но обратите внимание - тот мап для LTO, а значит он должен некое полное имя использовать для секции. Иначе как ему узнать, кому этот символ действительно принадлежит? При LTO ведь нет никаких отдельных объектников - все мясорубится в один файл со своим представлением. 26 минут назад, jcxz сказал: Или в Кейл у вас стоит какой-то ключ типа: "для каждого объекта задавать свою именованную секцию"? Такой ключ есть только для функций. Не для любых объектов, насколько мне известно 26 минут назад, jcxz сказал: Может тогда проблема в том, что имена секций ".bss.bootInfo" vs ".bss.BootInfo" - отличаются только регистром буков? И линковщик, не различая регистра, пытается компоновать их обе в регион RAM1. Скорее всего так и есть, ибо действительно не различает, видимо. В этом и есть косяк, скорее всего. 26 минут назад, jcxz сказал: А если скажем: для первой структуры задать имя секции, отличающееся от ".bss.BootInfo" не только регистром буков? Смена имени секции в определении структуры и в скрипте, разумеется, все лечит. Собирается правильно BootInfo 0x20000000 Data 12 boot.o(.bss.bootInfoARLLEEX) [Anonymous Symbol] 0x20000000 Section 0 boot.o(.bss.bootInfoARLLEEX) BootInfo 0x20000034 Data 16 flash.o(.bss.BootInfo) __tagsym$$used.0 0x20000034 Number 0 flash.o(.bss.BootInfo) [Anonymous Symbol] 0x20000034 Section 0 flash.o(.bss.BootInfo) BootInfo 0x20000044 Data 44 can_bootloader.o(.bss.BootInfo) [Anonymous Symbol] 0x20000044 Section 0 can_bootloader.o(.bss.BootInfo) P.S. Вот еще. Разумеется, можно написать в скрипте RAM1 0x20000000 UNINIT 16 { boot.o (.bss.bootInfo) // вместо *(.bss.bootInfo) } и в map-файле все будет ок, и проект правильно соберется BootInfo 0x20000000 Data 12 boot.o(.bss.bootInfo) [Anonymous Symbol] 0x20000000 Section 0 boot.o(.bss.bootInfo) BootInfo 0x20000044 Data 44 can_bootloader.o(.bss.BootInfo) [Anonymous Symbol] 0x20000044 Section 0 can_bootloader.o(.bss.BootInfo) но тогда при LTO проект собираться будет, но не правильно, ибо для LTO нет информации об именах конкретных объектников Цитата .\linkerscript.sct(9): warning: L6314W: No section matches pattern boot.o(.bss.bootInfo). (нужный мне BootInfo, несмотря на атрибут размещения в секции, разместился хрен пойми где в ОЗУ - не там где надо). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Harbinger 10 29 июля Опубликовано 29 июля · Жалоба 18 часов назад, Arlleex сказал: Это да... но у кейла официально некоммерческая лицензия (типа, скачал - поставил - компилируй) бесплатная до размера образа прошивки 32кБ. Не только эта. Для некоторых кортексов (STM32x0, Nuvoton-ов на ядре M0/M23) бесплатная без ограничений (лицензии выкуплены производителями МК). Плюс "community edition". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 183 29 июля Опубликовано 29 июля · Жалоба В общем, закрыли мое дело сегодня (у них это так называется - дело). Написали, мол, у вас некоммерческая лицензия, поэтому просят писать на форум по кейлу. Хе-хе. Ну и ладно. На форум я тоже как бы написал - да только пока никто не ответил. Поживем - увидим. Хотя, даже не удивлюсь, если злобный дядя решит все-таки покопаться с вопросом и в одной из следующих ревизий мы увидим что-то в духе "поправили линковщик"))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 240 29 июля Опубликовано 29 июля · Жалоба 38 минут назад, Arlleex сказал: В общем, закрыли мое дело сегодня (у них это так называется - дело). Написали, мол, у вас некоммерческая лицензия, поэтому просят писать на форум по кейлу. Ну собственно - как я и предполагал. 39 минут назад, Arlleex сказал: Хотя, даже не удивлюсь, если злобный дядя решит все-таки покопаться с вопросом и в одной из следующих ревизий мы увидим что-то в духе "поправили линковщик"))) Ёж - птица гордая! Пока не пнёшь - не полетит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться