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

 
 
 
Reply to this topicStart new topic
> NiosII и бооооольшие переменные, можно ли объявить массив больше 64к?
torik
сообщение Apr 6 2011, 09:30
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 113
Регистрация: 1-11-05
Пользователь №: 10 359



Обявляю массив:

Код
const char img1jpg[86894] = {
    0xFF, 0xD8, 0xFF, 0xE0, 0x00, 0x10, 0x4A, 0x46, 0x49, 0x46, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01,
    0x00, 0x01, 0x00, 0x00, 0xFF, 0xE1, 0x3E, 0x79, 0x45, 0x78, 0x69, 0x66, 0x00, 0x00, 0x49, 0x49,
.....


};


Это типа картинка, jpeg. При распаковке, похоже, возникает проблема из-за того, что переменная более 64к.

Нет ли где какой галочки в настройках, чтобы победить подобную проблему?






--------------------
Быть. torizin-liteha@yandex.ru
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Apr 6 2011, 09:36
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



может, переполнение стека? переменная локальная? попробуйте через malloc память выделить

хотя по идее, инициализированный массив должен в .data лежать. надо промежуточный ассемблер глянуть
Go to the top of the page
 
+Quote Post
torik
сообщение Apr 6 2011, 09:51
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 113
Регистрация: 1-11-05
Пользователь №: 10 359



Код
хотя по идее, инициализированный массив должен в .data лежать. надо промежуточный ассемблер глянуть

А как тут глянуть, куда он, в самом деле, переменную пихнул?


--------------------
Быть. torizin-liteha@yandex.ru
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Apr 6 2011, 09:56
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(torik @ Apr 6 2011, 16:51) *
А как тут глянуть, куда он, в самом деле, переменную пихнул?

objdump сделайте (где-то в настройках опция есть, а может и по умолчанию генерит). в файлике с расширением .objdump есть вся инфа
Go to the top of the page
 
+Quote Post
alexPec
сообщение Apr 6 2011, 09:56
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



Цитата(torik @ Apr 6 2011, 13:30) *
Обявляю массив:

Код
const char img1jpg[86894] = {
    0xFF, 0xD8, 0xFF, 0xE0, 0x00, 0x10, 0x4A, 0x46, 0x49, 0x46, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01,
    0x00, 0x01, 0x00, 0x00, 0xFF, 0xE1, 0x3E, 0x79, 0x45, 0x78, 0x69, 0x66, 0x00, 0x00, 0x49, 0x49,
.....


};


Это типа картинка, jpeg. При распаковке, похоже, возникает проблема из-за того, что переменная более 64к.

Нет ли где какой галочки в настройках, чтобы победить подобную проблему?


У меня тоже беда была с большим массивом, правда не проверял на предмет гранц 64к. Массив был 245к. Разбираться не стал в чем дело, сделал через malloc- все стало ок. Но он заполнялся в прецессе работы.
Go to the top of the page
 
+Quote Post
torik
сообщение Apr 6 2011, 10:13
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 113
Регистрация: 1-11-05
Пользователь №: 10 359



У меня большой массив - это jpeg картинка, которую я тупо вставляю в текст через hex-редактор... Как это будет выглядеть через malloc? Наверное, никак.
А проблема тем временем решилась - оказывается, я в .h файле указывал совершенно другой (меньший) размер массива. Поправил, все стало на место.


--------------------
Быть. torizin-liteha@yandex.ru
Go to the top of the page
 
+Quote Post
alexadmin
сообщение Apr 6 2011, 14:49
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 572
Регистрация: 17-11-05
Из: СПб, Россия
Пользователь №: 10 965



удалено
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 03:06
Рейтинг@Mail.ru


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