Перейти к содержанию
    

Файлы инициализации контролера для запуска scmRTOS

Добрый вечер.

Требуется ваша помощь.

Смог запустить scmRTOS на контроллере STM32F103xx с использованием инициализационных файлов (sysinit.cpp и startup.c) которые шли с примерами. Как я понял там устанавливается одна частота процессора и ее особо не поменаешь.

Теперь есть желание запустить тот же проект с использованием инициалиационных файлов поставляемых от ST (startup_stm32f10x_md.S и system_stm32f10x.c). Для начала как я понял нужно переименовать обработчики прерываний (названия из файлов поставляемых с scmRTOS): PendSVC_ISR и SystemTimer_ISR. Это сделал в startup файле. Проект компилируется но результата нет. Долгими поисками и выяснениями склонился к мысли что просто не выключены эти самые прерывания. В документации так и не смог найти как же все это включить. Прошу сильно не пинать, опыта пока в данной теме маловато. Подскажите в каком направлении копать.

К топику приложил все файлы в исходном состоянии.

P.S. Файлы смог прикрепить только в архиве все вместе.

system_init.tar.gz

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

startup_stm32f10x_md.S не пойдёт, он не вызывает конструкторы.

Можете сделать так - добавьте в проект system_stm32f10x.c, а в sysinit.cpp добавьте

#include "system_stm32f10x.h"

и исправьте функцию

void init_HW(void)
{
  SystemInit();
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за быстрый ответ. Попробую вечером сделать. Но в данном случае получится что сначала инициализируется тактовая частота из файла sysinit.cpp а потом она переопределяется вызовом SystemInit(); ?

Я догадываюсь что это будет занимат микросекунда, но всеже хочется не заставлять контроллер делать лишнюю работу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет, вы же удалите весь код инициализации из sysinit.cpp. Там останется только вызов SystemInit().

 

 

Или сделайте ещё проще - совсем удалите из проекта sysinit.cpp, а в startup.c замените init_HW() на SystemInit().

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...