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

 
 
> как разместить массив 32кБ в SRAM, AT91SAM3U4E {IAR}
*rust*
сообщение Mar 21 2011, 07:43
Сообщение #1


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

Группа: Участник
Сообщений: 109
Регистрация: 19-01-11
Пользователь №: 62 335



Добрый день, господа!

Среда IAR, проц. AT91SAM3U4E. Пытаюсь создать массив 32кБ (unsigned char). Пишет, что места нет, хотя проект пустой. AT91SAM3U4E содержит всего 52кБ в двух SRAM.
Пытался создать два массива по 16кБ, подумав что компилятор не может разместить целый массив 32кБ сразу в двух SRAM, но все повторилось, пишет нет места.
Error[Lp011]: section placement failed: unable to allocate space for sections/blocks with a total estimated minimum size of 0x8c0c bytes in
<[0x20080000-0x20083fff]> (total uncommitted space 0x4000).
Needed:
[0x20080000-0x20083fff]: 0x8c0c minimum (size: 0x4000)

Как решить этот вопрос?

Может вопрос не совсем по адресу и мне нужно на ветку с IAR, тогда прошу уважаемых модераторов перекинуть топик туда.

Спасибо!

Сообщение отредактировал IgorKossak - Mar 21 2011, 08:47
Причина редактирования: Перенёс
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
*rust*
сообщение Mar 22 2011, 19:47
Сообщение #2


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

Группа: Участник
Сообщений: 109
Регистрация: 19-01-11
Пользователь №: 62 335



Цитата
Вообще-то в трех.


Очевидно Вы имеете в виду 4кБ SRAM от NFC. Да согласен, 52кБ это с учетом SRAM от контроллера NAND flesh.
Если я правильно понимаю SRAM0 содержит 32кб, а SRAM1 16кБ. Поправьте меня если я не прав.

Цитата
Смотрите, что у вас написано в скрипте линкера для SRAM0 - он пытается уложить данные в 16Кб SRAM1.
И проект явно не совсем пустой - 0xc0c байт данных помимо массива.


В проекте присутствовали две строки для вывода через DBGU, я их закоментил и все уложилось. Т.е получается, что невозможно создать буфер на 32кБ, целиком, т.к. он сможет поместиться только в SRAM0, но при резервировании даже одной переменной размер данных вылетает за предел памяти.

Хорошо, почему тогда не получается создать два массива по 16кБ? Как явным образом указать компилятору поместить первым массив в конец SRAM0, а вторым полностью занять SRAM1?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Mar 22 2011, 20:44
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(*rust* @ Mar 22 2011, 22:47) *
Очевидно Вы имеете в виду 4кБ SRAM от NFC. Да согласен, 52кБ это с учетом SRAM от контроллера NAND flesh.
Если я правильно понимаю SRAM0 содержит 32кб, а SRAM1 16кБ. Поправьте меня если я не прав.

Все правильно.

Цитата(*rust* @ Mar 22 2011, 22:47) *
Как явным образом указать компилятору поместить первым массив в конец SRAM0, а вторым полностью занять SRAM1?

Посмотрите мануал на линкер. К сожалению, я не пользуюсь IAR'ом, поэтому подсказать не могу.
Go to the top of the page
 
+Quote Post



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

 


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


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