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

 
 
> Запуск кода из внешней памяти
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
Ответов
Obam
сообщение Sep 19 2017, 19:38
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663



Ещё "бензинчику" добавлю (; загрузка в R0 адреса SystemInit ничего не вызовет.
Внешняя память то какая: flash? ram?


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
inventor
сообщение Sep 20 2017, 06:53
Сообщение #3


Знающий
****

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



Цитата(Obam @ Sep 19 2017, 22:38) *
Ещё "бензинчику" добавлю (; загрузка в R0 адреса SystemInit ничего не вызовет.
Внешняя память то какая: flash? ram?

RAM
контроллер миландр
ну так что мне нужно сделать, по шагам?

THUMB

; Reset Handler
PUBWEAK Reset_Handler
SECTION .text:CODE:NOROOT:REORDER(2)
Reset_Handler
LDR R0, =SystemInit
BLX R0
LDR R0, =__iar_program_start
BX R0


вот так начинается программа
скрипт линкера такой:

CODE
/*###ICF### Section handled by ICF editor, don't touch! ****/
/*-Editor annotation file-*/
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */
/*-Specials-*/
define symbol __ICFEDIT_intvec_start__ = 0x00000000;

/*-Memory Regions-*/
define symbol __ICFEDIT_region_ROM_start__ = 0x00000000;
define symbol __ICFEDIT_region_ROM_end__ = 0x0001ffff;

/* Внутренняя память */
define symbol __ICFEDIT_region_SRAM_start__ = 0x20000000;
define symbol __ICFEDIT_region_SRAM_end__ = 0x20007fff;

/* Внешняя память */
define symbol __ICFEDIT_region_XRAM_start__= 0x60200000;
define symbol __ICFEDIT_region_XRAM_end__ = (0x60200000 + 0x00040000 - 1);

/* Стек и куча */
define symbol __ICFEDIT_size_cstack__ = 0x2000;
define symbol __ICFEDIT_size_heap__ = 0x4000;

/**** End of ICF editor section. ###ICF###*/

define memory mem with size = 4G;
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
define region SRAM_region = mem:[from __ICFEDIT_region_SRAM_start__ to __ICFEDIT_region_SRAM_end__];
define region XRAM_region = mem:[from __ICFEDIT_region_XRAM_start__ to __ICFEDIT_region_XRAM_end__];


define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };

initialize by copy { readwrite };
do not initialize { section .noinit };

keep { section .intvec };
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };

place in ROM_region { readonly };
place in SRAM_region { readwrite,
block CSTACK,
block HEAP};


/* place in XRAM_region {readwrite}; */
//place in RAM_region{ block HEAP };

Go to the top of the page
 
+Quote Post
Integro
сообщение Sep 20 2017, 07:04
Сообщение #4


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

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



Цитата(inventor @ Sep 20 2017, 09:53) *
RAM
контроллер миландр
ну так что мне нужно сделать, по шагам?


миландр, этого мало, какой?
RAM, интерфейс?

вкратце, если SRAM подключена по штатному интерфейсу и память будет замаплена на адреса рабочего пространства, то проблем не должно быть.
- Обычно в файлах startup.c (.S) вызывается SystemInit там нужно включить инициализацию RAM
- Дальше, зная адреса RAM, добавляем в линкер скрип регион RAM, распологаем там стек

UPD: долго печатал)
Go to the top of the page
 
+Quote Post
inventor
сообщение Sep 20 2017, 07:15
Сообщение #5


Знающий
****

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



Цитата(Integro @ Sep 20 2017, 10:04) *
миландр, этого мало, какой?
RAM, интерфейс?

вкратце, если SRAM подключена по штатному интерфейсу и память будет замаплена на адреса рабочего пространства, то проблем не должно быть.
- Обычно в файлах startup.c (.S) вызывается SystemInit там нужно включить инициализацию RAM
- Дальше, зная адреса RAM, добавляем в линкер скрип регион RAM, распологаем там стек

UPD: долго печатал)

там еще такое, чтобы внешняя памят заработала
я настраивают выводы для работы с интерфейсом внешней памяти
то есть какие выводы будут шиной данных, какие шиной адреса
а какие управляющие, и кроме этого настраиваю memory region
и задаю число циклов ожидание и пр.
эта функция, как я понимаю, должна быть вызвана до все этих ремапов?

понятно, не видел собщение предыдущее
такой еще вопрос: в SystemInit инициализацию Ram делать
напрямую обращаясь к регистрам или вызываьт функции (использовать стек и пр) ?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- inventor   Запуск кода из внешней памяти   Sep 19 2017, 16:18
- - dimka76   Вы даже марку контроллера не упомянули. А так вам...   Sep 19 2017, 18:28
|- - golf2109   Цитата(Obam @ Sep 19 2017, 21:38) Ещё ...   Sep 20 2017, 01:24
|- - Forger   Цитата(inventor @ Sep 20 2017, 09:53) ну ...   Sep 20 2017, 06:58
|- - 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
- - VladislavS   Значит так. Процессор ваш имеет 128 Кбайт Flash и ...   Sep 20 2017, 09:12
|- - 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 - 06:31
Рейтинг@Mail.ru


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