Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 30.07.2015
Сообщений: 25
Записей в блоге: 2

Настройка FreeRTOS для STM32F207 IAR

05.10.2017, 16:56. Показов 3950. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем добрый день
Настраиваю FreeRTOS
Компилятор никаких ошибок не выдаёт.
Задачи создаются делаю такую проверку
C
1
2
3
4
if(pdTRUE != xTaskCreate(vTask1, (char *) "Task1", configMINIMAL_STACK_SIZE, NULL, 1, NULL ) )
{
  while(1);
}
Но заходя в vTaskStartScheduler() доходит до vPortStartFirstTask()

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
vPortStartFirstTask
    /* Use the NVIC offset register to locate the stack. */
    ldr r0, =0xE000ED08
    ldr r0, [r0]
    ldr r0, [r0]
    /* Set the msp back to the start of the stack. */
    msr msp, r0
    /* Call SVC to start the first task, ensuring interrupts are enabled. */
    cpsie i
    cpsie f
    dsb
    isb
    svc 0
 
    END
После чего попадает в HardFault_Handler

В настройке я руководствовался ссылка
Я брал заведомо настроенный, пустой проект. Настройки связанные с ядром при подключении FreeRTOS не менял
Если нужно выкладываю проект

Подскажите что может быть?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.10.2017, 16:56
Ответы с готовыми решениями:

FreeRTOS+LwIP на TE-STM32F207
Доброго времени суток, такая ситуация: необходимо плату использовать как определенный сетевой узел который будет одновременно общяться с...

STM32F207+SPI3+FreeRTOS - принимает ноль [РЕШЕНО]
Сначала несколько слов описания. Работаю с MAX6675, выдаёт 16битное слово, которое собсно и нужно вычитать, осцилом вижу, что MAX что то...

freertos+CubeMX+IAR
С наступающими дорогие коллеги! Прошу просвятить если не трудно по такому вопросу ибо в сети нашел только множество подобных вопросов и...

7
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
05.10.2017, 17:30
во первых смотри на размер стека
при малом стеке туда
Цитата Сообщение от ЕгорЮрьевич Посмотреть сообщение
HardFault_Handler
и попадаем

Добавлено через 1 минуту
стек не вот этот
Цитата Сообщение от ЕгорЮрьевич Посмотреть сообщение
configMINIMAL_STACK_SIZE
а стек в который выделяется всей программе
0
 Аватар для _SayHello
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
05.10.2017, 20:50
Лучший ответ Сообщение было отмечено ЕгорЮрьевич как решение

Решение

ЕгорЮрьевич, в файл FreeRTOSConfig.h добавьте в конце
C++
1
2
3
#define xPortSysTickHandler SysTick_Handler
#define xPortPendSVHandler PendSV_Handler
#define vPortSVCHandler SVC_Handler
У вас вроде нету
1
0 / 0 / 0
Регистрация: 30.07.2015
Сообщений: 25
Записей в блоге: 2
06.10.2017, 11:16  [ТС]
Добавил,
Цитата Сообщение от _SayHello Посмотреть сообщение
#define xPortSysTickHandler SysTick_Handler
#define xPortPendSVHandler PendSV_Handler
#define vPortSVCHandler SVC_Handler
Закомментировал в stm32f2xx_it.c, так как выдавало ошибку...
Всё заработало. Спасибо!!!

Скажите есть ещё какие нибудь изменения, прерываний или ещё чего нибудь что может понадобиться до настроить?

По поводу
Цитата Сообщение от ValeryS Посмотреть сообщение
стек который выделяется всей программе
я к сожалению нашёл только кучу configTOTAL_HEAP_SIZE ( ( size_t ) ( 17 * 1024 ) ) ...
0
 Аватар для _SayHello
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
06.10.2017, 11:23
ЕгорЮрьевич, не, вроде остальное не трогаю, нормально работает
1
0 / 0 / 0
Регистрация: 30.07.2015
Сообщений: 25
Записей в блоге: 2
06.10.2017, 12:58  [ТС]
Большое спасибо.
0
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
06.10.2017, 17:12
Цитата Сообщение от ЕгорЮрьевич Посмотреть сообщение
configTOTAL_HEAP_SIZE
это куча для RTOS
я имел ввиду главный стек
вот например кусок моего файла startup_stm32f103xb.s
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Stack_Size      EQU     0x200
 
                AREA    STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem       SPACE   Stack_Size
__initial_sp
 
 
; <h> Heap Configuration
;   <o>  Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>
 
Heap_Size      EQU     0x200
 
                AREA    HEAP, NOINIT, READWRITE, ALIGN=3
это для Keil для IAR должно быть что то похожее

в зависимости от менеджера памяти для кучи RTOS используется или стек или куча или еще как
вчера наткнулся на такую бяку
использовал heap_5.c(впервые ) и программа падала,
заменил на heap_4.c и все пошло
1
0 / 0 / 0
Регистрация: 30.07.2015
Сообщений: 25
Записей в блоге: 2
07.10.2017, 21:53  [ТС]
Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.10.2017, 21:53
Помогаю со студенческими работами здесь

STM32 + IAR + FreeRTOS, писать на C или C++
Пишу для STM32 на IAR. Всегда писал на чистом С, т.к. учился в основном на примерах в интернете, а они там почти все на C. Теперь берусь...

stm32f107vc + ethernet + freertos + IAR + lwIP
Добрый день всем. Взял я пример вот с этого сайта. catethysis.ru/stm32-lan8720-freertos-iar/ У меня точно такая же платка. (как я...

STM32F4 - USB Host+FreeRTOS под IAR виснет
Плата F4Dyscovery. Пишу в IAR. Написал простенький MP3 плеер - читает с USB флешки MP3 файл и играет его через аппаратный декодер...

FreeRTOS и настройка апаратных прерываний
Доброго времени суток, уважаемые форумчане !!!!!! Работаю с STM32F100RB, FriiRTOS V7.1.0 Подскажите,пожалуйста, как нужно настроить...

Как скомпилировать в IAR для работы FreeRTOS в LPC1778?
Имеется код вот отсюда http://microsin.ru/content/view/1304/44/ int main( void ) { xTaskCreate( vTask1,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru