|
Непонятные ошибки при компиляции, Непонятные ошибки при компиляции |
|
|
|
May 7 2013, 20:29
|
Участник

Группа: Участник
Сообщений: 32
Регистрация: 22-01-13
Пользователь №: 75 284

|
Здравствуйте, пишу значит для STMF4 в коксе, столкнулся с необъяснимыми ошибками вида "Error: offset out of range" на казалось бы совсем нормальных местах (см. скриншот и приложенный код). Возможно кто сталкивался с таким да поможет или хотя бы намекните что это может быть?
Эскизы прикрепленных изображений
|
|
|
|
|
 |
Ответов
|
May 8 2013, 06:37
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 8-05-13
Пользователь №: 76 761

|
Всем привет, я новичок на этом форуме и являюсь причиной описанного в данной теме (попросил друга выложить), сразу извиняюсь за не подготовку вопроса должным образом, а если по теме, то.. Отрабатывал инициализацию и работу в отдельных проектах SPI,DMA,GPIO,EXTILine0, по отдельности усе работает  ,если собрать до кучи SPI,DMA,GPIO, то тоже нормально работает, добавляю EXTILine0, вылетает эта ошибка, если же при этом убрать SPI, то вновь работает, и подобные заклинания в непонятной зависимости влияют на проект в целом с этой стороны. Чуть раньше было такое, когда объявления типа "GPIO_InitTypeDef GPIO_InitStructure" и "DMA_InitTypeDef DMA_InitStructure" были "вверху проекта", для всех функций (глобальные) - та же ошибка, шаманил, шаманил и перенес их в каждую функцию отдельно, в голове мысль "разницы не должно быть" и это настораживает, но факт, что помогло  . В консоли CooCox увидел "-Os" и "-flto" описанные Вами выше, но что это такое и как с этим бороться не имею и представлений, не могли бы Вы мне разъяснить, заранее спасибо  . P.S. Если нужно, в целях прозрачности понимания могу очистить проект от неиспользуемого кода и мусора и выложить)).
|
|
|
|
|
May 8 2013, 07:00
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Добро пожаловать. Для начала отключите -flto. Если поможет - обновляйте компилятор или так и оставьте с отключенной. Оптимизация свежая, все может быть. Если не поможет, читайте дальше. QUOTE (Zol'berg @ May 8 2013, 09:37)  и подобные заклинания в непонятной зависимости влияют на проект Хорошо бы посмотреть на этот ассемблерный файл. Добавьте в ключи компилятора -save-temps и найдите этот файл. QUOTE (Zol'berg @ May 8 2013, 09:37)  были "вверху проекта", для всех функций (глобальные) - та же ошибка, шаманил, шаманил и перенес их в каждую функцию отдельно, в голове мысль "разницы не должно быть" и это настораживает, но факт, что помогло  . Если вы не понимаете разницы между глобальными и автоматическими переменными, то это действительно шаманство. А авторы "примеров" к "библиотекам" ее тоже, похоже, не понимают. Их примеры - отличный образец как сделать быстрое железо медленным. QUOTE (Zol'berg @ May 8 2013, 09:37)  В консоли CooCox увидел "-Os" и "-flto" описанные Вами выше, но что это такое и как с этим бороться не имею и представлений Ройтесь по менюшкам, ищите галочки или выпадающие списки с такими или похожими названиями (-flto может называться Link-time optimization). Эти опции связаны с оптимизацией.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
May 8 2013, 08:42
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 8-05-13
Пользователь №: 76 761

|
Цитата(Сергей Борщ @ May 8 2013, 10:00)  Если вы не понимаете разницы между глобальными и автоматическими переменными, то это действительно шаманство. А авторы "примеров" к "библиотекам" ее тоже, похоже, не понимают. Их примеры - отличный образец как сделать быстрое железо медленным. Глобальные и локальные переменные мне знакомы, работают по разному, но суть одна-в том, что работать должно и так и так ( и глобальные для всех функций инициализации и локальные - в каждой функции свои), а по поводу "медленных примеров", я не только/только начал изучение STM32, для меня и C нов, т.к. ранее работал с AVR на ассемблере! А как сделать быстрее, писать конфигурацию прямо в регистры? В моем проекте инициализацию можно провести медленно. Но есть другой вопрос, уже наверное не по теме : как добиться быстрой работы с портами, ассемблерные вставки? Так не могу найти описания этих самых команд для STM32F4! Может есть темы на эту тему?))
|
|
|
|
Сообщений в этой теме
allsettingsdone Непонятные ошибки при компиляции May 7 2013, 20:29    Сергей Борщ QUOTE (Zol'berg @ May 8 2013, 11:42) ... May 8 2013, 09:04     Zol'berg Спасибо за развернутый ответ, ценю!!! ... May 8 2013, 11:12      Сергей Борщ QUOTE (Zol'berg @ May 8 2013, 14:12) ... May 8 2013, 11:30 Genadi Zawidowski Уточняю - не намёками а прямо: -O0 совместно с -fl... May 8 2013, 07:20 Zol'berg Порылся в CooCox везде, по поводу -flto ничего не ... May 8 2013, 08:08 Сергей Борщ QUOTE (Zol'berg @ May 8 2013, 11:08) ... May 8 2013, 08:19
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|