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

lpc2378 и ETHERNET RAM

В проекте используется lpc2378. Ни ETHERNET ни USB не используется.

Возможно ли использовать ETHERNET RAM (16 kB) и USB RAM (8 KB) как обычную ОЗУ?

Если да, то как это сделать?

Для разработки используется keil + GCC, как я понимаю надо править LinkerScript.ld, но я не понял как указать для секции DATA два участка памяти. Какие будут мысли по этому поводу?

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


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

В проекте используется lpc2378. Ни ETHERNET ни USB не используется.

Возможно ли использовать ETHERNET RAM (16 kB) и USB RAM (8 KB) как обычную ОЗУ?

Не забудьте посмотреть ERRATA, там есть ограничения и особенности.

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


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

В проекте используется lpc2378. Ни ETHERNET ни USB не используется.

Возможно ли использовать ETHERNET RAM (16 kB) и USB RAM (8 KB) как обычную ОЗУ?

Если да, то как это сделать?

Для разработки используется keil + GCC, как я понимаю надо править LinkerScript.ld, но я не понял как указать для секции DATA два участка памяти. Какие будут мысли по этому поводу?

 

Использовать можно, только GPDMA не имеет доступа к Ethernet RAM. Кейлом не пользуюсь. Самый простой вариант, если нужно там размещать большие буфера, то можно сделать вот так, и контроллировать все в ручную:

 

int main()

{

DWORD *pBuf = 0x7FE00000; // указатель на буфер в памяти Ethernet

DWORD Data;

 

*pBuf = 0x01020304;

 

Data = *pBuf; // Data = 0x01020304

}

Изменено пользователем Vitaliy_ARM

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


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

Самый простой вариант...

Самый простой - сказать линкеру, что у него два блока RAM - пусть линкует.

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


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

Самый простой - сказать линкеру, что у него два блока RAM - пусть линкует.

 

вот я и спрашиваю, как это объяснить линкеру.

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


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

Самый простой - сказать линкеру, что у него два блока RAM - пусть линкует.

 

Уважаемый Игорь, тема конечно старая, но действительно: как объяснить линкёру что у него два блока RAM? В частности в файле .xcl это можно оформить. (использую IAR)

Изменено пользователем TanT

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


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

Как объяснить линкёру что у него два блока RAM? В частности в файле .xcl это можно оформить. (использую IAR)

-DRAMSTART=40000040

-DRAMEND=40007FDF

-DETHRAMSTART=7FE00000

-DETHRAMEND=7FE03FFF

-Z(DATA)DATA_I,DATA_Z,DATA_N=RAMSTART-RAMEND,ETHRAMSTART-ETHRAMEND

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


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

IAR 5xx

lpc23xxx.icf

 

...

define symbol __region_USB_DMA_RAM_start__ = 0x7FD00000;

define symbol __region_USB_DMA_RAM_end__ = 0x7FD01FFF;

define region USB_DMA_RAM_region= mem:[from __region_USB_DMA_RAM_start__ to __region_USB_DMA_RAM_end__];

 

define symbol __region_EMAC_DMA_RAM_start__ = 0x7FE00000;

define symbol __region_EMAC_DMA_RAM_end__ = 0x7FE03FFF;

define region EMAC_DMA_RAM_region= mem:[from __region_EMAC_DMA_RAM_start__ to __region_EMAC_DMA_RAM_end__];

 

do not initialize { section USB_DMA_RAM }; // не инициализировать - это если нужно...

do not initialize { section EMAC_DMA_RAM };

 

place in USB_DMA_RAM_region

{ readwrite data section USB_DMA_RAM };

place in EMAC_DMA_RAM_region

{ readwrite data section EMAC_DMA_RAM };

 

 

 

в файле *.с

 

#pragma segment="USB_DMA_RAM"

#pragma location="USB_DMA_RAM"

#pragma data_alignment=4

long buffer[2048]; // 8192 байт

 

или

 

char buffer[8192]; // 8192 байт

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


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

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

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

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

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

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

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

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

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

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