Я только начал вникать в мир микроконтроллеров ARM Cortex-M и решил не использовать существующую плату разработки или простую в использовании IDE, а сразу заняться этими вещами, так что У меня есть STM32F103, припаянный к макетной плате, и теперь я пытаюсь заставить все работать с помощью встроенной в gcc-arm Toolchain от Launchpad. После тяжелого времени чтения руководств по сценариям компоновщика и тому подобному, я теперь написал свой собственный сценарий компоновщика и код запуска, который в основном ничего не делает, кроме копирования раздела .data из ПЗУ в ОЗУ, обнуления .bss, а затем вызова SystemInit () из стандартной периферийной библиотеки ST, чтобы выполнить базовую инициализацию uC и, наконец, вызвать main ().
Теперь, из нескольких найденных мной руководств по разработке Cortex M-3, я увидел, что они используют флаг -nostartfiles для компоновщика, но Теперь мне интересно: нужно ли мне в этом случае инициализировать newlib? Или мне лучше использовать стартовые файлы по умолчанию из GCC / newlib и drop -nostartfiles? Но в этом случае мне все равно придется выполнить некоторую инициализацию, например, скопировать .data в ОЗУ и настроить векторную таблицу, для которой требуется собственный скрипт компоновщика. Так где же мне это сделать?
И я даже не хочу думать о C ++!
Итак, каков рекомендуемый способ инициализации такого микроконтроллера на базе Cortex-M3 и его libc (не считая периферийных устройств)?
Заранее спасибо!