|
Запуск кода из внешней памяти |
|
|
|
 |
Ответов
|
Sep 20 2017, 06:53
|
Знающий
   
Группа: Свой
Сообщений: 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 };
|
|
|
|
|
Sep 20 2017, 07:04
|

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

|
Цитата(inventor @ Sep 20 2017, 09:53)  RAM контроллер миландр ну так что мне нужно сделать, по шагам? миландр, этого мало, какой? RAM, интерфейс? вкратце, если SRAM подключена по штатному интерфейсу и память будет замаплена на адреса рабочего пространства, то проблем не должно быть. - Обычно в файлах startup.c (.S) вызывается SystemInit там нужно включить инициализацию RAM - Дальше, зная адреса RAM, добавляем в линкер скрип регион RAM, распологаем там стек UPD: долго печатал)
|
|
|
|
|
Sep 20 2017, 07:15
|
Знающий
   
Группа: Свой
Сообщений: 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 делать напрямую обращаясь к регистрам или вызываьт функции (использовать стек и пр) ?
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|