Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Из keil залить массив в LPC2478
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Vldmr
С наступившим всех форумчан!
Господа, подскажите, пожалуйста, что можно сделать. Есть lpc2478 с подключённым lcd, в нём 512к флеш.
Хочу залить картинку чёрно-белую, 256 цветов. это где-то 131 кб, так что памяти хватает. Но кейл ругается когда я ему пытаюсь вставить массив типа char длинной 131.000 )))))) Что делать, как быть?
Как залить массив в контроллер?
zksystem
Цитата(Vldmr @ Jan 3 2011, 00:43) *
кейл ругается когда я ему пытаюсь вставить массив типа char длинной 131.000 )))))) Что делать, как быть?
Как залить массив в контроллер?


const char[131000] = { bla, bla, bla.... };
bodja74
1 Может масив определен в РАМе
2 Почитатьь сдесь как вариант http://electronix.ru/forum/index.php?showtopic=84316
3 Написать свой загрузчик ,раз такая пьянка sm.gif
Vldmr
Цитата(zksystem @ Jan 3 2011, 01:25) *
const char[131000] = { bla, bla, bla.... };

Так вот примерно на 19.000 компилятор пишет что всё, должен быть конец, };
ViKo
Цитата(Vldmr @ Jan 3 2011, 08:59) *
Так вот примерно на 19.000 компилятор пишет что всё, должен быть конец, };

А так...?
Код
static const char image[131000] = {bla, bla, bla ...};

Без static каждый раз константная переменная в функции создается заново при входе (звучит по-идиотски, конечно sm.gif)
demiurg_spb
У Вас size_t 32-битный? ибо он определяет максимальное кол-во элементов массива array[size_t].
AlexandrY
Делаете ассемблерный файл, внутрь помещаете типа этого:

Код
    AREA   IMG, DATA, READONLY

    EXPORT img_start
    EXPORT img_end

img_start
    INCBIN image.bmp
img_end

    END


Файл подключаете к проекту
Можете подключать любые файлы с любой структурой
ar__systems
Цитата(AlexandrY @ Jan 3 2011, 06:06) *
Делаете ассемблерный файл, внутрь помещаете типа этого:

Файл подключаете к проекту
Можете подключать любые файлы с любой структурой


А в GCC есть что-то аналогичное?
srg_co
Цитата(zksystem @ Jan 3 2011, 01:25) *
const char[131000] = { bla, bla, bla.... };


Можно попробовать так:
1. Конвертим картинку в HEX
BIN2HEX /Oxxxx /4 file_name.ext file_name.hex
2. Создаем файл Flash.ini со следующим содержимым
LOAD file_name.hex
3. В настройках проекта закладка "Utilities" в поле "Init file" указываете файл Flash.ini. При загрузке кода в проц, зальётся ваш файл по адресам указанным в HEX. Если полностью флэш проца не стирать, file_name.ext останется во флэше, главное выбрать адреса в которые гарантированно ничего другого записываться не будет.

В этом случае, доступ к данным можно осуществить по ссылке типа unsigned int blockaddress = 0xNNNNNNNN
Vldmr
Цитата(srg_co @ Jan 3 2011, 22:38) *
Можно попробовать так:
1. Конвертим картинку в HEX
BIN2HEX /Oxxxx /4 file_name.ext file_name.hex
2. Создаем файл Flash.ini со следующим содержимым
LOAD file_name.hex
3. В настройках проекта закладка "Utilities" в поле "Init file" указываете файл Flash.ini. При загрузке кода в проц, зальётся ваш файл по адресам указанным в HEX. Если полностью флэш проца не стирать, file_name.ext останется во флэше, главное выбрать адреса в которые гарантированно ничего другого записываться не будет.

В этом случае, доступ к данным можно осуществить по ссылке типа unsigned int blockaddress = 0xNNNNNNNN

Обязательно попробую, спасибо!
Vldmr
UPD: Огромное спасибо, всё получилось на ура. Способ с Init-файлом просто отличный: один раз можно залить большой масссив данных, а потом при отладке не нужно его перезаливать во флеш. Заливка прошивки получается сильно быстрее.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.