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

 
 
> Как создать переменную с фиксированным адресом, Cortex-M3 проект в RVDS 3.1
-=Sergei=-
сообщение Aug 27 2008, 05:22
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 339
Регистрация: 26-10-04
Пользователь №: 985



Как создать переменную с фиксированным адресом, т.е. что бы некоторому регистру в области периферии была сопоставлена переменная с адресом этого регистра ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sergeeff
сообщение Aug 27 2008, 08:29
Сообщение #2


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

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Например так:

typedef void (*pMyFun)(void);

pMyFun MyFun = (pMyFun)0xaaaabbbb;

Вызов:
MyFun();
Go to the top of the page
 
+Quote Post
-=Sergei=-
сообщение Aug 27 2008, 09:03
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 339
Регистрация: 26-10-04
Пользователь №: 985



Цитата(sergeeff @ Aug 27 2008, 12:29) *
Например так:

typedef void (*pMyFun)(void);

pMyFun MyFun = (pMyFun)0x08000000;

Вызов:
MyFun();



То что нужно но не сработало sad.gif((

в резултате получися acм
MOV r4,0x08000000
BLX r4

а BLX умеет переходить только +16М, а надо +138М

Т.е. опишу что мне нужно.
Есть ядро КортехМ3, стартует с адреса 0х0000 0000,
в памяти с адреса 0х0000 0000 + 4096 лежит загрузочное ПЗУ , в которой будет лежать программа по перваоначальной инициализации микроконтроллера, после чего управление должно перейти на программу записанную пользователем во флеш, флеш память начинается с 0х0800 0000.

Сейчас мне нужно в загручояном ПЗУ сдеть переход на флеш память.
Вопрос как мне из ПЗУ передать управление во флеш, если между ними ~138М ничего нет.

Цитата(-=Sergei=- @ Aug 27 2008, 12:55) *
То что нужно но не сработало sad.gif((

в резултате получися acм
MOV r4,0x08000000
BLX r4

а BLX умеет переходить только +16М, а надо +138М

Т.е. опишу что мне нужно.
Есть ядро КортехМ3, стартует с адреса 0х0000 0000,
в памяти с адреса 0х0000 0000 + 4096 лежит загрузочное ПЗУ , в которой будет лежать программа по перваоначальной инициализации микроконтроллера, после чего управление должно перейти на программу записанную пользователем во флеш, флеш память начинается с 0х0800 0000.

Сейчас мне нужно в загручояном ПЗУ сдеть переход на флеш память.
Вопрос как мне из ПЗУ передать управление во флеш, если между ними ~138М ничего нет.



Сорри изменение, сработало, может перейти однако, немного надо было еще scatter файл подправить.
Спасибо.
Go to the top of the page
 
+Quote Post



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

 


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


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