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

 
 
> Запуск кода из внешней памяти
inventor
сообщение Sep 19 2017, 16:18
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748



подскажите мне вот что
имеется арм контроллер
в котором ест 48 килобайт памяти
этого мало для моих задач, я подцепил 4 Мбайт внешней памяти
и хочу что бы старт начался из нее, а не из внутренней SRAM
и чтобы стек там же располагался
как мне это правильно сделать
чтобы стек так же расположить во внешней памяти?

вот у меня есть файлstartup_MYCPU.s
где есть вызов LDR R0, =SystemInit
что я должен сделать внутри System Init
кроме настройки внешней шины адреса, данных, управления?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
VladislavS
сообщение Sep 20 2017, 09:12
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 475
Регистрация: 14-04-05
Из: Москва
Пользователь №: 4 140



Значит так. Процессор ваш имеет 128 Кбайт Flash и 48 Кбайт RAM на ядре Cortex-M.
1. Пишете загрузчик, который выполняется из внутренней Flash при старте. В нём инициализируете внешнюю память и копируете в неё из какой-то внешней флэшки основной код полностью.
Затем передаёте управление основной программе
Код
#define APPLICATION_ADDRESS  0xXXXXXXXX
typedef void(*pFunction)(void);
uint32_t app_jump_address = *( uint32_t*) (APPLICATION_ADDRESS + 4);   //извлекаем адрес перехода из вектора Reset
pFunction Jump_To_Application = (pFunction)app_jump_address;                  
__set_MSP(*(__IO uint32_t*) APPLICATION_ADDRESS);                   //устанавливаем стек приложения                                          
Jump_To_Application();


2. Основная программа ничего не знает о том что её откуда-то скопировали. Её задача только перенаправить на себя таблицу векторов прерываний.
Код
  #pragma section = ".intvec"
  SCB->VTOR = (uint32_t) __section_begin(".intvec");

А стек я бы расположил всё же во внутренней RAM процессора. 48 кБ для стека это дофига вообще. Да и быстрее эта память обычно.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- inventor   Запуск кода из внешней памяти   Sep 19 2017, 16:18
- - dimka76   Вы даже марку контроллера не упомянули. А так вам...   Sep 19 2017, 18:28
- - Obam   Ещё "бензинчику" добавлю (; загрузка в R...   Sep 19 2017, 19:38
|- - golf2109   Цитата(Obam @ Sep 19 2017, 21:38) Ещё ...   Sep 20 2017, 01:24
|- - inventor   Цитата(Obam @ Sep 19 2017, 22:38) Ещё ...   Sep 20 2017, 06:53
|- - Forger   Цитата(inventor @ Sep 20 2017, 09:53) ну ...   Sep 20 2017, 06:58
|- - Integro   Цитата(inventor @ Sep 20 2017, 09:53) RAM...   Sep 20 2017, 07:04
|- - inventor   Цитата(Integro @ Sep 20 2017, 10:04) мила...   Sep 20 2017, 07:15
|- - Integro   Цитата(inventor @ Sep 20 2017, 10:15) эта...   Sep 20 2017, 07:24
- - inventor   неицинициализированные данные я там могу расположи...   Sep 20 2017, 06:58
|- - Forger   Цитата(inventor @ Sep 20 2017, 09:58) 198...   Sep 20 2017, 07:02
|- - Forger   Я бы не стал мудрить с полным переносом кода во вн...   Sep 20 2017, 07:17
- - scifi   Ещё интересный вопрос, где хранится код программы ...   Sep 20 2017, 07:40
|- - Forger   Для толстых проектов обычно ставят внешнюю FLASH (...   Sep 20 2017, 07:48
||- - scifi   Цитата(Forger @ Sep 20 2017, 10:48) Для т...   Sep 20 2017, 07:50
|- - inventor   Цитата(scifi @ Sep 20 2017, 10:40) Кстати...   Sep 20 2017, 07:50
|- - scifi   Цитата(inventor @ Sep 20 2017, 10:50) это...   Sep 20 2017, 07:59
|- - jcxz   Цитата(scifi @ Sep 20 2017, 14:59) И за ч...   Sep 20 2017, 08:33
|- - inventor   Цитата(jcxz @ Sep 20 2017, 11:33) Автор в...   Sep 20 2017, 08:40
|- - Forger   Цитата(inventor @ Sep 20 2017, 11:40) ну ...   Sep 20 2017, 09:05
|- - Forger   Цитата(VladislavS @ Sep 20 2017, 12:12) В...   Sep 20 2017, 09:21
|- - jcxz   Цитата(VladislavS @ Sep 20 2017, 16:12) З...   Sep 20 2017, 09:42
||- - VladislavS   Цитата(Forger @ Sep 20 2017, 12:21) Добав...   Sep 20 2017, 10:00
||- - Forger   Цитата(VladislavS @ Sep 20 2017, 13:00) С...   Sep 20 2017, 10:07
||- - jcxz   Цитата(VladislavS @ Sep 20 2017, 17:00) А...   Sep 20 2017, 10:22
||- - inventor   Цитата(jcxz @ Sep 20 2017, 13:22) Недавно...   Sep 20 2017, 11:15
||- - Forger   Цитата(inventor @ Sep 20 2017, 14:15) в 4...   Sep 20 2017, 11:31
|||- - inventor   Цитата(Forger @ Sep 20 2017, 14:31) Но чт...   Sep 20 2017, 12:47
|||- - aaarrr   Цитата(inventor @ Sep 20 2017, 15:47) про...   Sep 20 2017, 13:07
|||- - Forger   Цитата(inventor @ Sep 20 2017, 15:47) мне...   Sep 20 2017, 13:11
|||- - jcxz   Цитата(inventor @ Sep 20 2017, 19:47) про...   Sep 20 2017, 16:52
|||- - Forger   Цитата(jcxz @ Sep 20 2017, 19:52) Работод...   Sep 20 2017, 17:07
|||- - inventor   Цитата(jcxz @ Sep 20 2017, 19:52) Работод...   Sep 20 2017, 18:27
||- - VladislavS   Цитата(inventor @ Sep 20 2017, 14:15) во ...   Sep 20 2017, 12:35
||- - Obam   Цитата(inventor @ Sep 20 2017, 15:15) у и...   Sep 20 2017, 13:09
|- - inventor   Цитата(VladislavS @ Sep 20 2017, 12:12) З...   Sep 20 2017, 11:02
|- - VladislavS   Цитата(inventor @ Sep 20 2017, 14:02) щас...   Sep 20 2017, 11:07
- - inventor   ну вобщем разобрался последний вопрос: ЦитатаWarn...   Sep 20 2017, 13:50
- - VladislavS   Цитата(inventor @ Sep 20 2017, 16:50) в ч...   Sep 20 2017, 13:55
- - aaarrr   Цитата(inventor @ Sep 20 2017, 16:50) то ...   Sep 20 2017, 13:55
|- - inventor   Цитата(aaarrr @ Sep 20 2017, 16:55) Вы же...   Sep 20 2017, 14:00
|- - Forger   Цитата(inventor @ Sep 20 2017, 16:58) так...   Sep 20 2017, 14:06
|- - inventor   Цитата(Forger @ Sep 20 2017, 17:06) Назов...   Sep 20 2017, 14:26
|- - Forger   Цитата(inventor @ Sep 20 2017, 17:26) это...   Sep 20 2017, 14:34
- - Forger   Цитатато есть насколько это критично? В этом проек...   Sep 20 2017, 13:57
- - Obam   Цитата(inventor @ Sep 20 2017, 17:50) про...   Sep 20 2017, 19:41


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

 


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


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