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

 
 
 
Reply to this topicStart new topic
> Нужна помощь для работы с внешней памятью в LPC-H2294 Olimex
dedyur
сообщение Jun 29 2011, 07:00
Сообщение #1





Группа: Новичок
Сообщений: 6
Регистрация: 25-05-11
Пользователь №: 65 264



Не могли бы Вы помочь информацией об использовании платы LPC-H2294 Olimex.
Я испытываю трудности с внешней памятью и флешью.
Есть ли описание или готовые листинги взаимодействия с ней?
То, что приводится в сопроводительной документации на сайте Olimex не совсем понятно - в части теста RAM половина функций не прописана.
Можно ли каким-то образом настроить IAR, чтобы Linker автоматически размещал переменные в область внешней ОЗУ?
Какую настройку ЕMC требуется для этого прописать в коде инициализации и есть ли необходимость в конкретном положении переключателей на плате для этого?

Спасибо за помощь.
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Jun 29 2011, 08:03
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Цитата(dedyur @ Jun 29 2011, 03:00) *
Не могли бы Вы помочь информацией об использовании платы LPC-H2294 Olimex.
Я испытываю трудности с внешней памятью и флешью.
Есть ли описание или готовые листинги взаимодействия с ней?
То, что приводится в сопроводительной документации на сайте Olimex не совсем понятно - в части теста RAM половина функций не прописана.
Можно ли каким-то образом настроить IAR, чтобы Linker автоматически размещал переменные в область внешней ОЗУ?
Какую настройку ЕMC требуется для этого прописать в коде инициализации и есть ли необходимость в конкретном положении переключателей на плате для этого?

Спасибо за помощь.

Не представляю как это сделать. Чтоб поместить данные в RAM, надо дрыгать ножками аддресса, данных, WR, CS и так далее.
Каким образом линкер сделает эту работу вместо контроллера?


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
dedyur
сообщение Jun 29 2011, 08:30
Сообщение #3





Группа: Новичок
Сообщений: 6
Регистрация: 25-05-11
Пользователь №: 65 264



Т.е. получается все взаимодействие возможно только с использованием указателей на адреса памяти после инициализации EMC?
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Jun 29 2011, 08:52
Сообщение #4


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

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Можно. Не пугайте человека. Конкретные действия не подскажу. Надо указать линкеру, что у него есть область ОЗУ по определенным адресам. С ИАРом давно не работал.


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Jun 29 2011, 12:36
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Цитата(Dron_Gus @ Jun 29 2011, 04:52) *
Можно. Не пугайте человека. Конкретные действия не подскажу. Надо указать линкеру, что у него есть область ОЗУ по определенным адресам. С ИАРом давно не работал.

Точно, вспомнил - в gcc startup file все согласно линкер файлу загружает, пока до main() дойдет.


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jun 29 2011, 14:04
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (dedyur @ Jun 29 2011, 10:30) *
после инициализации EMC?

Ну и допишите в startup инициализацию EMC. В IAR можно дописать инициализацию и в специально для подобных случаев предназначенную hook функцию __low_level_init().
После этого это уже "обычная" память.



--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
SPACUM
сообщение Jun 29 2011, 18:12
Сообщение #7


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

Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531



Цитата(dedyur @ Jun 29 2011, 11:00) *
Можно ли каким-то образом настроить IAR,


В IARe объявляется в файле .icf приблизительно так:
define symbol __region_SDRAM_RAM_start__ = 0xA0000000;
define symbol __region_SDRAM_RAM_end__ = 0xA3FFFFFF;
define region SDRAM_region= mem:[from __region_SDRAM_RAM_start__ to __region_SDRAM_RAM_end__];
А вот применения SDRAM_region нигде не нашел. Тоже интересуюсь.

Пришлось использовать Rowley CrossWorks там объявляется в flash_placement.xml, а используется так:
__attribute__((section (".screen")))unsigned long SCRN[640 * 480];


--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
Go to the top of the page
 
+Quote Post

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

 


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


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