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

 
 
> Не могу разобраться с линкером Keil и размещением векторов, bootloader и вектора прервыаний
fmdost
сообщение Jun 20 2017, 22:37
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 479
Регистрация: 8-05-07
Из: г. Ставрополь. Северный Кавказ. Россия
Пользователь №: 27 606



никак не могу передать управление из бутлоадера на основную программу начинающуюся с адреса 0x08002000. Тоесть, переходит из бутлоадера на адрес 0x08002000 исправно, а там в дизасемблере.
Цитата
0x08002000 0EE0 DCW 0x0EE0
0x08002002 2000 DCW 0x2000
0x08002004 2101 DCW 0x2101
0x08002006 0800 DCW 0x0800
0x08002008 3A89 DCW 0x3A89
0x0800200A 0800 DCW 0x0800
0x0800200C 38B1 DCW 0x38B1


В стартупе есть такие строчки
Цитата
0x8002100 LDR R0, =SystemInit
0x8002102 BLX R0
0x8002104 LDR R0, =__main
0x8002106 BX R0


ИЧСХ, в __main заходит, а SystemInit нет!

Если руками переставить "стрелочку" на 0x8002100 программа начинает работать корректно.
ЧЗНХ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
x893
сообщение Jun 20 2017, 23:45
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 333
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226



Цитата(fmdost @ Jun 21 2017, 01:37) *
никак не могу передать управление из бутлоадера на основную программу. Тоесть, переходит из бутлоадера на адрес 0x8002000 исправно, а там в дизасемблере

В стартупе есть такие строчки


ИЧСХ, в __main заходит, а SystemInit нет!

Если руками переставить "стрелочку" на 0x8002100 программа начинает работать корректно.
ЧЗНХ?

ЧЗНХ
почему переходит на 8002000 ?
8002000 = загрузить в указатель стэка
8002004 = адрес куда переходить, то есть на 8002101
Go to the top of the page
 
+Quote Post



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

 


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


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