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

 
 
> xmega +extern sram, Как заставить си работать с переменными в ex sram
ведущий_специали...
сообщение Sep 25 2010, 09:45
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 24-11-07
Пользователь №: 32 645



Вобщем собрал отладочную платку с 512 кило SRAM. Подключил все как положено по EBI, поставил 2 573х... Вобщем все работает как надо. То есть стандартный апнот от атмела всяко пашет.
пишу тестовую прогу:
так записываю
for (i = 0; i < video_memory; i++)
{
buff[i]=color;
ch=0xff;
__far_mem_write(i+SRAM_ADDR,ch);
i++;
cl=0х00;
__far_mem_write(i+SRAM_ADDR,cl);
}

color = 0;
так читаю
for ( i = 0; i <video_memory; i++)
{
color=__far_mem_read(i+SRAM_ADDR)<<8;
i++;
color=color + __far_mem_read(i+SRAM_ADDR);
ili9320_WriteData(color);
Clr_nWr;
Set_nWr;

}
Set_Cs;
}
все работает идеально.
Собственно вопрос. Как заставить компилятор работать с переменными во внешней памяти. Типа
u16 buff[20000];
ну и собственно запись чтение в этот буфер.
Сразу оговорюсь в настройках проекта в system ставил галку enable external sram. Memory model ставил HUGE.
Просто чутка недопонял в 3х пунктах
RAM ROM Non volatile
В RAM я так понял ставим стандартный адрес внутренней срам с адреса 0х2000 длиной в 0х1000(4 кило)
в ROM я ничего не пишу, не знаю что
в Non Volatile - (я так понял это внешняя срам) я прописал соответственно 512 кило срам.
Просьба не обсмеивать мои предположения ( в настройках иар лазил редко да и подключение срам внешней делаю в первый раз).
Щас компилер понимает запись типа u16 buff[20000];
ошибка не вызывается о переполнении, но там всегда 00, что туда ни пиши. То же самое наблюдается с остальными переменными.
То есть запись типа а=0хffff при проверки к примеру той же записью в жк выдается черной точкой(00) хотя передача функе напрямую обходя переменную работает.
Подскажите пожалуйста что не так.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 26th June 2025 - 05:04
Рейтинг@Mail.ru


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