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

 
 
> Внешняя SRAM, Выбор скорости
zorromen
сообщение Nov 22 2006, 22:50
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 322
Регистрация: 13-12-05
Пользователь №: 12 147



Вапрос таков...Какая должно Быть время доступа к внешней SRAM...чтобы без проблемм работать на 16Mhz...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Spider
сообщение Mar 13 2007, 05:27
Сообщение #2


В поисках истины
***

Группа: Свой
Сообщений: 431
Регистрация: 7-01-06
Из: Россия
Пользователь №: 12 923



Вот что видно в мапе:
Код
Memory Configuration

Name             Origin             Length             Attributes
text             0x00000000         0x00020000         xr
data             0x00800060         0x0000ffa0         rw !x
eeprom           0x00810000         0x00010000         rw !x
*default*        0x00000000         0xffffffff

Linker script and memory map

Address of section .data set to 0x800100
LOAD C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm128.o
                0x0080ffff                __heap_end = 0x80ffff


И ещё далее по тексту вот так:
Код
.data           0x00800100       0xcc load address 0x0000a6f0
                0x00800100                PROVIDE (__data_start, .)
*(.data)
.data          0x00800100        0xc at.o
.data          0x0080010c       0x1a common.o
                0x00800110                MainBufferWr_Rx
                0x0080010c                rtc
.data          0x00800126       0x48 main.o
.data          0x0080016e       0x20 ppp.o
.data          0x0080018e        0x2 tcp.o
                0x0080018e                TCP_Socket
.data          0x00800190        0x1 mmc.o
.data          0x00800191       0x2d logger.o
.data          0x008001be        0xa ff.o
.data          0x008001c8        0x4 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(rand.o)
*(.gnu.linkonce.d*)
                0x008001cc                . = ALIGN (0x2)
                0x008001cc                _edata = .
                0x008001cc                PROVIDE (__data_end, .)

.bss            0x008001cc     0x13d6
                0x008001cc                PROVIDE (__bss_start, .)
*(.bss)
.bss           0x008001cc        0xc common.o
                0x008001d5                TimerIntCounter
                0x008001cd                UART0_RxBufferRd
                0x008001cf                UART1_RxBufferRd
                0x008001ce                UART0_RxBufferWr
                0x008001d7                LastResetReason
                0x008001d1                MainBufferWr_Tx
                0x008001d3                MainBufferRd_Rx
                0x008001cc                GPSModeSet
                0x008001d0                UART1_RxBufferWr
                0x008001d6                WatchdogCounter
.bss           0x008001d8        0x2 icmp.o
                0x008001d8                ICMP_Header
.bss           0x008001da        0x4 ppp.o
                0x008001da                CodeHeader
                0x008001dc                PPPHeader
.bss           0x008001de        0x4 tcp.o
                0x008001e0                TCP_TmpPort
                0x008001de                TCP_Header
.bss           0x008001e2        0x2 udp.o
                0x008001e2                UDP_Header
.bss           0x008001e4        0x2 mmc.o
.bss           0x008001e6      0x899 logger.o
.bss           0x00800a7f        0xc time.o
.bss           0x00800a8b        0x4 ff.o
*(COMMON)
COMMON         0x00800a8f        0x5 at.o
                0x00800a8f                AT
COMMON         0x00800a94      0x642 common.o
....


Что скажете? ХЕЛП!
Go to the top of the page
 
+Quote Post
aesok
сообщение Mar 13 2007, 10:44
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Код
И ещё далее по тексту вот так:[code]
.data           0x00800100       0xcc load address 0x0000a6f0
                0x00800100                PROVIDE (__data_start, .)
*(.data)
.data          0x00800100        0xc at.o
.data          0x0080010c       0x1a common.o
    ....


Секция дата расположена по адресу 0x00800100, а не нужном вам 0x00801100. Опция линкера "-Tdata" работает только для контроллеров, у которых внутренняя RAM начинается с адреса 0x60 (AT90S8515), и не работает для тех у которых начинается с 0x100 (ATmega128, ...) или 0x200(ATmega1280, ...). Для них используйте в опцию "--section-start .data=..." - она делает тоже самое и работает всегда.

В LDFLAG вам нужно заменить "-Tdata=0x801100" на "--section-start,.data=0x801100".



Анатолий.
Go to the top of the page
 
+Quote Post
Spider
сообщение Mar 13 2007, 11:46
Сообщение #4


В поисках истины
***

Группа: Свой
Сообщений: 431
Регистрация: 7-01-06
Из: Россия
Пользователь №: 12 923



Цитата(aesok @ Mar 13 2007, 13:44) *
Код
И ещё далее по тексту вот так:[code]
.data           0x00800100       0xcc load address 0x0000a6f0
                0x00800100                PROVIDE (__data_start, .)
*(.data)
.data          0x00800100        0xc at.o
.data          0x0080010c       0x1a common.o
    ....


Секция дата расположена по адресу 0x00800100, а не нужном вам 0x00801100. Опция линкера "-Tdata" работает только для контроллеров, у которых внутренняя RAM начинается с адреса 0x60 (AT90S8515), и не работает для тех у которых начинается с 0x100 (ATmega128, ...) или 0x200(ATmega1280, ...). Для них используйте в опцию "--section-start .data=..." - она делает тоже самое и работает всегда.

В LDFLAG вам нужно заменить "-Tdata=0x801100" на "--section-start,.data=0x801100".
Анатолий.

Кусочек мэйк файла:
Код
## Linker flags
LDFLAGS = $(COMMON)
LDFLAGS += -Wl,-u,vfprintf -Wl,-Map=ppp.map
LDFLAGS += -Wl,-section-start=.data=0x801100,--defsym=__heap_end=0x80ffff

Кусочек мапа:
Код
Linker script and memory map

Address of section .data set to 0x800100
LOAD C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm128.o
Address of section .data set to 0x801100
                0x0080ffff                __heap_end = 0x80ffff

....

.data           0x00801100       0xd0 load address 0x0000abb0
                0x00801100                PROVIDE (__data_start, .)
*(.data)
.data          0x00801100        0xc at.o
.data          0x0080110c       0x1a common.o

Ща буду пробовать что получилось.
Go to the top of the page
 
+Quote Post
Spider
сообщение Mar 13 2007, 12:32
Сообщение #5


В поисках истины
***

Группа: Свой
Сообщений: 431
Регистрация: 7-01-06
Из: Россия
Пользователь №: 12 923



Получилась полная фигня.
Берём и начинаем отлаживать JTAG'ом. Видим, что все переменные лежат >=0x1100 адресах, но в то же время их начальные значения:
Код
unsigned char str[]="Test";
JTAG'ом видны во внутреней памяти. Если же обратиться к переменной, то возвращается значение из внешней памяти, где конечно же помойка. Запись опять же идёт во внешнюю память. Короче прикольно как-то. Это я что-то не так делаю? Кстати. Если эмулировать AVRStudio Emulator'ом, то всё как надо.
Go to the top of the page
 
+Quote Post
aesok
сообщение Mar 14 2007, 14:48
Сообщение #6


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(Alexey Belyaev @ Mar 13 2007, 12:32) *
Получилась полная фигня.
Берём и начинаем отлаживать JTAG'ом. Видим, что все переменные лежат >=0x1100 адресах, но в то же время их начальные значения:
Код
unsigned char str[]="Test";
JTAG'ом видны во внутреней памяти.


В какой внутреней памяти: в RAM или FLASH? По каким адресам?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- zorromen   Внешняя SRAM   Nov 22 2006, 22:50
- - defunct   Цитата(zorromen @ Nov 22 2006, 22:50) Вап...   Nov 23 2006, 00:04
|- - =GM=   Цитата(zorromen @ Nov 22 2006, 19:50) Воп...   Nov 23 2006, 16:36
|- - defunct   Цитата(=GM= @ Nov 23 2006, 16:36) Зачем н...   Nov 23 2006, 18:07
|- - singlskv   Цитата(defunct @ Nov 23 2006, 18:07) Свой...   Nov 23 2006, 18:22
|- - =GM=   Цитата(defunct @ Nov 23 2006, 15:07) Цита...   Nov 23 2006, 20:14
|- - defunct   Цитата(=GM= @ Nov 23 2006, 20:14) Минимал...   Nov 24 2006, 00:52
|- - =GM=   Цитата(defunct @ Nov 23 2006, 21:52) Цита...   Nov 24 2006, 14:04
|- - defunct   Цитата(=GM= @ Nov 24 2006, 14:04) Не, сме...   Nov 24 2006, 16:10
|- - =GM=   Цитата(defunct @ Nov 24 2006, 13:10) Дост...   Nov 24 2006, 16:55
|- - defunct   Цитата(=GM= @ Nov 24 2006, 16:55) Зато он...   Nov 25 2006, 02:34
||- - =GM=   Цитата(defunct @ Nov 24 2006, 23:34) Цита...   Nov 26 2006, 13:49
||- - defunct   Цитата(=GM= @ Nov 26 2006, 13:49) Но даже...   Nov 27 2006, 14:02
||- - =GM=   Цитата(defunct @ Nov 27 2006, 11:02) Цита...   Nov 27 2006, 17:41
|- - I_AM_WINER   Реально пользуем память 55 нс с полным временем 3 ...   Jan 31 2007, 22:55
|- - Alexey Belyaev   Цитата(I_AM_WINER @ Feb 1 2007, 01:55) А ...   Feb 2 2007, 06:52
- - zorromen   Тогда ставим более конкретный вапрос ... мега 162 ...   Nov 23 2006, 19:21
- - zorromen   Я сандалил W24257-70L но он не шел на 16мгц а толь...   Nov 23 2006, 21:33
|- - Nanobyte   Цитата(zorromen @ Nov 23 2006, 22:33) ......   Nov 24 2006, 00:35
- - zorromen   Ура...нарыл память с 35нс доступом...думаю теперь ...   Nov 24 2006, 07:53
- - ps1x   Я конечно не очень разбираюсь в памяти для АВР, но...   Nov 24 2006, 14:26
- - Alexey Belyaev   ребят, не пинайте больно если что не так, но у мен...   Jan 30 2007, 15:00
|- - defunct   Цитата(Alexey Belyaev @ Jan 30 2007, 14:0...   Jan 30 2007, 15:42
|- - Alexey Belyaev   Цитата(defunct @ Jan 30 2007, 18:42) Цита...   Jan 31 2007, 13:06
- - Alexey Belyaev   В общем проблема у меня. Ресетится устройство. Пон...   Mar 10 2007, 16:41
|- - aesok   Цитата(Alexey Belyaev @ Mar 10 2007, 16:4...   Mar 10 2007, 17:41
- - zorromen   Привет...Вот собрал макет на меге162 16 МГц ... па...   Mar 11 2007, 11:51
- - zorromen   Вчера решил проверить осциллографом сигналы ... вы...   Mar 12 2007, 11:41
|- - SasaVitebsk   Цитата(zorromen @ Mar 12 2007, 12:41) Вче...   Mar 12 2007, 12:14
|- - Alexey Belyaev   Цитата(aesok @ Mar 14 2007, 17:48) В како...   Mar 15 2007, 05:41
- - zorromen   Привет ... я заметил интересную весч ... что ноги ...   Mar 14 2007, 12:05
- - zorromen   Ахтунг ... Ша я обнаружил интересный факт ... Ноги...   Mar 14 2007, 15:39
|- - =GM=   Цитата(zorromen @ Mar 14 2007, 12:39) Ахт...   Mar 14 2007, 19:10
- - Handler   Извените за ламерские вопросы, но все таки хочеть...   Apr 20 2007, 20:19
|- - Nanobyte   Цитата(Handler @ Apr 20 2007, 21:19) ... ...   Apr 20 2007, 20:32
- - Alexey Belyaev   А можно вернуться к моим папугаям? В смысле могу л...   Apr 25 2007, 20:42
- - IgorKossak   Цитата(Alexey Belyaev @ Apr 25 2007, 20:4...   Apr 27 2007, 11:35
- - Alexey Belyaev   Цитата(IgorKossak @ Apr 27 2007, 15:35) В...   Apr 27 2007, 13:18
- - aesok   Цитата(Alexey Belyaev @ Apr 27 2007, 14:1...   Apr 27 2007, 13:25
- - IgorKossak   Цитата(Alexey Belyaev @ Apr 27 2007, 13:1...   Apr 27 2007, 14:18


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

 


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


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