реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Файлы инициализации контролера для запуска scmRTOS
abutorin
сообщение Sep 11 2012, 19:09
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 3-09-12
Пользователь №: 73 374



Добрый вечер.
Требуется ваша помощь.
Смог запустить 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 ( 11.2 килобайт ) Кол-во скачиваний: 22
 
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Sep 12 2012, 04:24
Сообщение #2


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



startup_stm32f10x_md.S не пойдёт, он не вызывает конструкторы.
Можете сделать так - добавьте в проект system_stm32f10x.c, а в sysinit.cpp добавьте
Код
#include "system_stm32f10x.h"

и исправьте функцию
Код
void init_HW(void)
{
  SystemInit();
}


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
abutorin
сообщение Sep 12 2012, 07:24
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 3-09-12
Пользователь №: 73 374



Спасибо за быстрый ответ. Попробую вечером сделать. Но в данном случае получится что сначала инициализируется тактовая частота из файла sysinit.cpp а потом она переопределяется вызовом SystemInit(); ?
Я догадываюсь что это будет занимат микросекунда, но всеже хочется не заставлять контроллер делать лишнюю работу.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Sep 12 2012, 09:09
Сообщение #4


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



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


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


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
abutorin
сообщение Sep 12 2012, 10:36
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 3-09-12
Пользователь №: 73 374



Понял, спасибо за совет.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 23:06
Рейтинг@Mail.ru


Страница сгенерированна за 0.02006 секунд с 7
ELECTRONIX ©2004-2016