Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Ответ: (+)

Отправлено Aleksey_n 17 мая 2008 г. 11:48
В ответ на: Доки читаем. Вобщем инит контроллера идет до инициализации всяких переменных и ramfunc. Ну и в xcl указать RAM где лежит. отправлено DASM 17 мая 2008 г. 11:34

Это понятно - в коде при старте есть код:


#ifdef XSDRAM_INIT
// assign GPIO to EMC
MODE0_0 = 0xFFFFFFFF;
MODE0_1 = 0x000FFFFF;
MODE1_0 = 0x00000000;
MODE1_1 = 0x00000000;
// enable EMC clk
// disable fractional divider
EMCESR0_bit.ESR_EN = EMCESR1_bit.ESR_EN = 0;
// release reset of the EMC
EMCRES = 1;
// Init SDRAM controller and memory
EMCCONTROL = 1; // Enable EMC
EMCDYNAMICREADCONFIG = 1; // Command delayed strategy, using AHBHCLKDELAY
EMCMISC = 0;
EMCDYNAMICRASCAS_bit.CAS = 2;
EMCDYNAMICRASCAS_bit.RAS = 2;
EMCDYNAMICRP = P2C(SDRAM_TRP);
EMCDYNAMICRAS = P2C(SDRAM_TRAS);
EMCDYNAMICSREX = P2C(SDRAM_TXSR);
EMCDYNAMICAPR = SDRAM_TAPR;
EMCDYNAMICDAL = SDRAM_TDAL+P2C(SDRAM_TRP);
EMCDYNAMICWR = SDRAM_TWR;
EMCDYNAMICRC = P2C(SDRAM_TRC);
EMCDYNAMICRFC = P2C(SDRAM_TRFC);
EMCDYNAMICXSR = P2C(SDRAM_TXSR);
EMCDYNAMICRRD = P2C(SDRAM_TRRD);
EMCDYNAMICMRD = SDRAM_TMRD;
EMCDYNAMICCONFIG = 0x0000680; // 13 row, 9 - col, SDRAM
// JEDEC General SDRAM Initialization Sequence
// DELAY to allow power and clocks to stabilize ~100 us
// NOP
EMCDYNAMICCONTROL = 0x4183;
Dly_us(200);
// PALL
EMCDYNAMICCONTROL_bit.SDRAMINI = 2;
EMCDYNAMICREFRESH = 1;
for(volatile Int32U i= 128; i; --i); // > 128 clk
EMCDYNAMICREFRESH = P2C(SDRAM_REFRESH) >> 4;
// COMM
EMCDYNAMICCONTROL_bit.SDRAMINI = 1;
// Burst 8, Sequential, CAS-2
volatile unsigned long Dummy = *(volatile unsigned short *)(SDRAM_BASE_ADDR | (0x23UL << 12));
// NORM
EMCDYNAMICCONTROL = 0x4000;
EMCDYNAMICCONFIG_bit.BUF_EN = 1;
#endif // XSDRAM_INIT


т.е. получается что при старте у меня контроллер уже инициализирован, остается только прописать диапазон внешней памяти в линкер и должно все работать:?

-DRAMSTART=0x30000000
-DRAMEND=0x32000000



Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 387:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru