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

 
 
 
Reply to this topicStart new topic
> Выделение области памяти в Cyclone V ARM, Cyclone V, ARM, RAM
RLC
сообщение Mar 26 2015, 08:58
Сообщение #1


Участник
*

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



Необходимо из имеющейся RAM выделить область памяти недоступную для создания кучи. Вот не найду где такое написано. в NIOS это можно было сделать bsp_editorом а как в SoC это сделать, где прочитать? использую gcc компилятор бареметал приложение.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Mar 26 2015, 09:29
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Ну самое простое это в программе забабахать переменную нужного размера, она ляжет в РАМ и будет не давать это место никому.

uint8_t MyData[1024]; //выделяет килобайт памяти

uint8_t *DataP = MyData; - указатель на начало куска
*(int32_t *)DataP = 10; - так можно туда инты пихать

можно
uitn32_t *DataIP = (int32_t *)DataP ;
*DataIP++ = 15;
*DataIP++ = 16;



Так же если в линк скрипте должны быть такие воpмозности. Выделить регион и какие-то данные в него запихать или оставить его чистым...

Или вам эта память нужна вне проца?
Go to the top of the page
 
+Quote Post
RLC
сообщение Mar 26 2015, 11:55
Сообщение #3


Участник
*

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



Цитата
Или вам эта память нужна вне проца?

Мне надо будет туда из программы писать по адресам. Поэтому хочется что бы я мог указывать кусок памяти(с точностью до байта) разрешённый для размещения в ней стека и кучи. Соответственно в остальную я буду писать.

Сообщение отредактировал RLC - Mar 26 2015, 12:13
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Mar 26 2015, 14:11
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Ну так вроде в линкере это и указывается.
Там должна быть возможность задания регионов, и должно быть возможно указывать в какой регион что пихается...

Обычно правда делают наоборот
Выделяют кусок памяти куда хотят писать, а остальное отдают под стэк и под кучу. Это же вещи для которых памяти много не бывает. Так что лучше в них сгрузить все что осталось, когда под необходимое уже место выделили.

В этой концепции создание огромного массива - как раз займет сколько надо памяти, оставив что осталось под кучу.
Go to the top of the page
 
+Quote Post
RLC
сообщение Mar 26 2015, 14:33
Сообщение #5


Участник
*

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



нашел не в линкере, а в mkimage: mkimage.exe -A arm -T standalone -C none -a 0x100040 -e 0 -n "baremetal image" -d BIN IMG
В общем можно через него. Ну разобрался, Спасибо.
Go to the top of the page
 
+Quote Post

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

 


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


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