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

 
 
> STM32 Cortex-M4 - ремап адресов для внешней программы, Как? И стоит ли вообще?
VHEMaster
сообщение Dec 25 2015, 06:16
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 28-08-15
Пользователь №: 88 191



И снова, доброго времени суток! Просто запустить внешнюю программу из под SDRAM мне оказалось мало.
Есть адрес SDRAM: 0x8000 0000 - 0x807F FFFF
И есть адрес внутренней флешки со всем нужным API (типа BIOS): 0x0800 0000 - 0x081F FFFF

Собственно, внешней ОЗУ много, и камень STM32F429 весьма серьёзен, хотелось бы сделать многозадачную ОС на RTOS с поддержкой запуска внешних приложений. Проблема следующая:
Как сделать ремап адресов в этой внешней программе?
Допустим, есть виртуальная память, которая ремапится следующим образом:
0x0000 0000 - 0x000F FFFF в 0x8000 0000 - 0x800F FFFF- память программ
0x0010 0000 - 0x001F FFFF в 0x8010 0000 - 0x801F FFFF - оперативная память данной программы

Да, понятно, что нужно прописать нечто вроде следующего:
if ((Address >= 0x00000) && (Address <= 0xFFFFF))
STM32Address = 0x80000000 + (Address - 0x00000);


Проблема в том, что для каждой переменной прописывать такую строку крайне долго и мучительно. Особенно для внутренних функций данной программы.

"Вообще, зачем нужен конкретный ремап? Почему бы в линкере не сделать нужные адреса самостоятельно?"
Проблема в том, что одна и та же программа может быть запущена несколько раз. Калькулятор, на худой пример. Ну или данное адресное пространство уже может быть занято другой программой.

Вот как сделать так, чтобы можно было сделать этакое "виртуальное адресное пространство?"

Ну и задача... Использую CooCox CoIDE и GCC компилятор.

Сообщение отредактировал VHEMaster - Dec 25 2015, 06:19
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- VHEMaster   STM32 Cortex-M4 - ремап адресов для внешней программы   Dec 25 2015, 06:16
- - scifi   Цитата(VHEMaster @ Dec 25 2015, 09:16) Во...   Dec 25 2015, 06:46
|- - VHEMaster   Цитата(scifi @ Dec 25 2015, 08:46) некото...   Dec 25 2015, 06:59
|- - scifi   Цитата(VHEMaster @ Dec 25 2015, 09:59) А ...   Dec 25 2015, 07:28
|- - VHEMaster   Цитата(scifi @ Dec 25 2015, 09:28) Кстати...   Dec 25 2015, 07:31
|- - scifi   Цитата(VHEMaster @ Dec 25 2015, 10:31) Ка...   Dec 25 2015, 07:55
|- - VHEMaster   Цитата(scifi @ Dec 25 2015, 09:55) Ну и ч...   Dec 25 2015, 07:59
|- - Uuftc   Цитата(VHEMaster @ Dec 25 2015, 10:59) Ок...   Dec 25 2015, 16:10
|- - mantech   Цитата(Uuftc @ Dec 25 2015, 19:10) * смот...   Dec 25 2015, 19:27
- - mantech   Цитата(VHEMaster @ Dec 25 2015, 09:16) Во...   Dec 25 2015, 07:26
- - Genadi Zawidowski   Загрузчикам нет необходимости что-то дизассемблиро...   Dec 25 2015, 19:49
|- - mantech   Цитата(Genadi Zawidowski @ Dec 25 2015, 22...   Dec 25 2015, 20:25
|- - Uuftc   Цитата(mantech @ Dec 25 2015, 23:25) Расп...   Dec 26 2015, 01:39
- - scifi   Вот тут обсуждение загрузчика ELF для STM32. Товар...   Dec 26 2015, 06:29
|- - mantech   Цитата(scifi @ Dec 26 2015, 09:29) сконфи...   Dec 26 2015, 09:43
- - VHEMaster   Мне на форуме easyelectronics посоветовали взять д...   Dec 26 2015, 09:53
- - Uuftc   Цитата(VHEMaster @ Dec 26 2015, 12:53) Ка...   Dec 26 2015, 18:40
- - AlexandrY   Цитата(VHEMaster @ Dec 26 2015, 11:53) Мн...   Dec 26 2015, 20:18


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

 


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


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