ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
19 апреля
971618
Nikolay_Po (19.01.2020 13:00 - 19:28, просмотров: 5045)
[РЕШЕНО]Коллеги, помогите с STM32F1xx и тулчейном! Как оно должно работать? Как запускается чип, как инициализируется перед запуском main? Какие файлы, библиотеки необходимы для gcc-arm-noneabi? http://caxapa.ru/971259.html
Всем спасибо! С инициализацией стека разобрался. Указатель стека инициализируется содержимым стартового адреса. Нашёл, где он определяется, убедился, что со стороны тулчейна порядок. Проблема была в не верном состоянии вывода BOOT0 - чип запускался неоттуда, соответственно, указатель стека инициализировался совсем не тем, чем должен был. Cовсем коротко: где должен инициализироваться адрес стека после Reset? Нужно разобраться, как запускается чип и размотать код ассемблера - где там инициализация положения стека? И как правильно запускать чип, чтобы исполнение шло с вектора Reset и не было сюрпризов. Как происходит отладка? Есть ли отличия между запуском отладки и запуском без отладчика? Что такое arm semohosting? В свете обнаружившейся проблемы, см. ссылку, не могу найти решения - нужно знать много нюансов, если не жалко времени, поделитесь. Сам погружаюсь, но не успеваю охватить всё, а работа встала. -=- Как я понимаю, нужны:
  • Тулчейн для целевой системы ARM
  • Код запуска, Си или ассемблер, который содержит процедуры старта чипа и некоторые системные функции, необходимые стандартным библиотекам
  • Заголовочные файлы, содержащие определения коротких функций, определения типов и прочее архитектуро-зависимое. Обычно в совокупности с файлом startup, см. пункт выше
  • стандартные библиотеки для выбранной архитектуры и типа процессора, например, ARM Cortex-M3
  • ARM semihosting - если нужны расширенные фнукции отладки, например, вывод в консоль. Или ещё для чего?