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

 
 
 
Reply to this topicStart new topic
> Из keil залить массив в LPC2478, Картинку хочу во флеш залить
Vldmr
сообщение Jan 2 2011, 18:43
Сообщение #1


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

Группа: Свой
Сообщений: 158
Регистрация: 5-02-07
Пользователь №: 25 055



С наступившим всех форумчан!
Господа, подскажите, пожалуйста, что можно сделать. Есть lpc2478 с подключённым lcd, в нём 512к флеш.
Хочу залить картинку чёрно-белую, 256 цветов. это где-то 131 кб, так что памяти хватает. Но кейл ругается когда я ему пытаюсь вставить массив типа char длинной 131.000 )))))) Что делать, как быть?
Как залить массив в контроллер?
Go to the top of the page
 
+Quote Post
zksystem
сообщение Jan 2 2011, 19:25
Сообщение #2


embedder
***

Группа: Свой
Сообщений: 264
Регистрация: 11-05-05
Из: Казань
Пользователь №: 4 911



Цитата(Vldmr @ Jan 3 2011, 00:43) *
кейл ругается когда я ему пытаюсь вставить массив типа char длинной 131.000 )))))) Что делать, как быть?
Как залить массив в контроллер?


const char[131000] = { bla, bla, bla.... };


--------------------
Мечты стареют куда быстрее мечтателей… Стивен Кинг. "Ловец снов"
Go to the top of the page
 
+Quote Post
bodja74
сообщение Jan 2 2011, 19:42
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984



1 Может масив определен в РАМе
2 Почитатьь сдесь как вариант http://electronix.ru/forum/index.php?showtopic=84316
3 Написать свой загрузчик ,раз такая пьянка sm.gif
Go to the top of the page
 
+Quote Post
Vldmr
сообщение Jan 3 2011, 03:59
Сообщение #4


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

Группа: Свой
Сообщений: 158
Регистрация: 5-02-07
Пользователь №: 25 055



Цитата(zksystem @ Jan 3 2011, 01:25) *
const char[131000] = { bla, bla, bla.... };

Так вот примерно на 19.000 компилятор пишет что всё, должен быть конец, };
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jan 3 2011, 06:10
Сообщение #5


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



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

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

Без static каждый раз константная переменная в функции создается заново при входе (звучит по-идиотски, конечно sm.gif)
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Jan 3 2011, 06:34
Сообщение #6


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



У Вас size_t 32-битный? ибо он определяет максимальное кол-во элементов массива array[size_t].


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jan 3 2011, 08:06
Сообщение #7


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Делаете ассемблерный файл, внутрь помещаете типа этого:

Код
    AREA   IMG, DATA, READONLY

    EXPORT img_start
    EXPORT img_end

img_start
    INCBIN image.bmp
img_end

    END


Файл подключаете к проекту
Можете подключать любые файлы с любой структурой
Go to the top of the page
 
+Quote Post
ar__systems
сообщение Jan 3 2011, 13:33
Сообщение #8


self made
****

Группа: Свой
Сообщений: 855
Регистрация: 7-03-09
Из: Toronto, Canada
Пользователь №: 45 795



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

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


А в GCC есть что-то аналогичное?
Go to the top of the page
 
+Quote Post
srg_co
сообщение Jan 3 2011, 16:38
Сообщение #9


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

Группа: Свой
Сообщений: 131
Регистрация: 22-03-05
Из: Краснодар
Пользователь №: 3 600



Цитата(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
Go to the top of the page
 
+Quote Post
Vldmr
сообщение Jan 4 2011, 09:53
Сообщение #10


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

Группа: Свой
Сообщений: 158
Регистрация: 5-02-07
Пользователь №: 25 055



Цитата(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

Обязательно попробую, спасибо!
Go to the top of the page
 
+Quote Post
Vldmr
сообщение Jan 4 2011, 22:02
Сообщение #11


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

Группа: Свой
Сообщений: 158
Регистрация: 5-02-07
Пользователь №: 25 055



UPD: Огромное спасибо, всё получилось на ура. Способ с Init-файлом просто отличный: один раз можно залить большой масссив данных, а потом при отладке не нужно его перезаливать во флеш. Заливка прошивки получается сильно быстрее.
Go to the top of the page
 
+Quote Post

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

 


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


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