Jump to content
    

Файлы инициализации контролера для запуска 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

Share this post


Link to post
Share on other sites

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

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

#include "system_stm32f10x.h"

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

void init_HW(void)
{
  SystemInit();
}

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

 

 

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...