Перейти к содержанию
    

Из keil залить массив в LPC2478

С наступившим всех форумчан!

Господа, подскажите, пожалуйста, что можно сделать. Есть lpc2478 с подключённым lcd, в нём 512к флеш.

Хочу залить картинку чёрно-белую, 256 цветов. это где-то 131 кб, так что памяти хватает. Но кейл ругается когда я ему пытаюсь вставить массив типа char длинной 131.000 )))))) Что делать, как быть?

Как залить массив в контроллер?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

кейл ругается когда я ему пытаюсь вставить массив типа char длинной 131.000 )))))) Что делать, как быть?

Как залить массив в контроллер?

 

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 Может масив определен в РАМе

2 Почитатьь сдесь как вариант http://electronix.ru/forum/index.php?showtopic=84316

3 Написать свой загрузчик ,раз такая пьянка :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Так вот примерно на 19.000 компилятор пишет что всё, должен быть конец, };

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так вот примерно на 19.000 компилятор пишет что всё, должен быть конец, };

А так...?

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

Без static каждый раз константная переменная в функции создается заново при входе (звучит по-идиотски, конечно :))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

    AREA   IMG, DATA, READONLY

    EXPORT img_start
    EXPORT img_end

img_start
    INCBIN image.bmp
img_end

    END

 

Файл подключаете к проекту

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Файл подключаете к проекту

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

 

А в GCC есть что-то аналогичное?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно попробовать так:

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

Обязательно попробую, спасибо!

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...