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

 
 
> STM32 bootloader и FreeRtos, После перехода из бутлоудера FreeRtos попадает в HardFaultException
Aleksandr Barano...
сообщение Nov 10 2010, 15:22
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 169
Регистрация: 31-08-05
Из: New York
Пользователь №: 8 118



Здравствуйте.
У меня evaluation kit с процессором STM32F103 с FreeRtos. Среда - IAR541.
FreeRtos устойчиво работает, если ее загрузить с адреса 0x8003000 и запустить. Если с адреса 0x8000000 загрузить лоудер, который ничего не делает кроме перехода на FreeRtos - FreeRtos доходит до vTaskStartScheduler(); и попадает в HardFaultException. Если вместо FreeRtos записать простую программу мигания светодиодом - все прекрасно работает.
Вот код функции перехода:
CODE
static bool jump_to( unsigned char* dest )
{
void (*prog_start)(void);

if (( *(unsigned long*)dest & 0x3FFF8000 ) == 0x20000000 ) // looks like a stack pointer?
{
__disable_interrupt();
SysTick->CTRL &= 0;
prog_start = (void(*)(void))*(unsigned long*)(dest + 4); // load program start address
__MSR_MSP( *(unsigned long*)dest ); // load user stack
prog_start(); // now jump
}
return ( false );
}


Значение dest - 0x8003000.

Функцию я е написал на основе примера из библиотеки STM32.
Что я упустил?

Сообщение отредактировал Aleksandr Baranov - Nov 10 2010, 15:23


--------------------
ASB
Go to the top of the page
 
+Quote Post



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

 


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


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