Здравствуйте! Не подскажите, каким образом компилятор в STM32CubeIDE сопоставляет метки функций (systemInit, например) в startup-файле и заголовочные файлы? Просто проходится по всем заголовочным файлам, указанным в "include" и в исходных файлах?

Комментарии: 61

  1. Ogurezzz

    Считай, что файл.h вставляет текст файла файл.h вместо этой строки

    • Unsupported

      да не "считай", а так и есть. это же директива препроцессора как и всякий , и т.п.

    • Andrey

      Дак это-то понятно) Попробовал подключить SPL и CMSIS в STM32CubeIDE. Были траблы, но заработало. Но обнаружил, что контроллер работает от внутреннего генератора по дефолту, хотя настроена работа от внешнего. Заметил, что systemInit вообще не вызывается. Хотя и в стартапе он есть, и заголовочник от SPL с исходником имеются То есть, по стартапу он воспринимает systemInit как weak, и пропускает его

      • Unsupported

        Вообще-то все инициализации из main() вызываются

        • Andrey

          Нет В стартапе systenInit() от CMSIS от SPL вызывается из стартап-ассемблеровского файла

          • Unsupported

            Нет? Давно не заглядывал. Надо будет утром посмотреть

            • Andrey

              Да просто сегодня весь день с этим ковырялся( Мэйн вызывается из стартапа таким-же образом

              • Unsupported

                А, spl. Я обычно hal использую И там вроде бы настройка rcc из main вызывается

              • Linxuil

                Выше было обсуждение, загуглите. Из стартапа функция main() не вызывается

Не нашли ответ?

Вам также может быть интересно