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

 
 
> Внутренний загрузчик STM32L0, запуск из программы
veteq
сообщение May 19 2015, 12:56
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 5-12-06
Пользователь №: 23 160



Есть микроконтроллер STML051, надо внутри тела программы запустить внутренний загрузчик ST. В памяти есть место для записи определеного маркера по которому будет происходить сравнение при сбросе 0x200017F0.
При сбросе проц прыгает в Reboot_Loader и через некоторое время ресетится... В чем может быть проблема?

стартап файл:
CODE
Reset_Handler

/* Bootloader jumping */
ldr r0, =0x200017F0
ldr r1, =0xDEADBEEF
ldr r2, [r0, #0]
str r0, [r0, #0]
cmp r2, r1
beq Reboot_Loader


LDR R0, =SystemInit
BLX R0
LDR R0, =__iar_program_start
BX R0


файл загрузчика:
CODE
RSEG CODE:CODE(2)
THUMB

PUBLIC Reboot_Loader


Reboot_Loader
LDR R0, =0x40021034 ; RCC_APB2ENR (+0x34)
LDR R1, =0x00000001 ; ENABLE SYSCFG CLOCK
STR R1, [R0, #0]
LDR R0, =0x40010000 ; SYSCFG_CFGR1 (+0x00)
LDR R1, =0x00000001 ; MAP ROM AT ZERO

STR R1, [R0, #0]
LDR R0, =0x1FF00000 ; ROM BASE (STM32L051)
LDR R1, [R0, #0] ; SP @ +0
MOV SP, R1
LDR R0, [R0, #4] ; PC @ +4
BX R0

END
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 22:31
Рейтинг@Mail.ru


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