Romanello 0 13 июля, 2005 Опубликовано 13 июля, 2005 · Жалоба Здравствуйте. Подскажите пожалуйста, как в EWARM 4.30 настроить множители процессора, шины (для LPC2292), и как настроить J-LINK, а то в Keil это было просто, но сейчас пришлось перейти на IAR и не могу разобраться Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DIM 0 13 июля, 2005 Опубликовано 13 июля, 2005 · Жалоба Здравствуйте. Подскажите пожалуйста, как в EWARM 4.30 настроить множители процессора, шины (для LPC2292), и как настроить J-LINK, а то в Keil это было просто, но сейчас пришлось перейти на IAR и не могу разобраться <{POST_SNAPBACK}> по поводу J-LINK: Project->Options->Debugger - выбираем что надо. Ниже настраиваем его самого. Ну а процессор настраиваестся в самом коде программы Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Romanello 0 13 июля, 2005 Опубликовано 13 июля, 2005 · Жалоба Я и спрашивал как настроить процессор, есть ли у кого кусок кода с комментариями. А по поводу J-Link - там можно выбрать частоту авто или ручную, но ручная не работает больше чем на 8000 мгц - это означает, что я не могу отлаживать программы для на частоте процессора больше чем 8000 мгц или что то другое? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DIM 0 13 июля, 2005 Опубликовано 13 июля, 2005 · Жалоба Я и спрашивал как настроить процессор, есть ли у кого кусок кода с комментариями. А по поводу J-Link - там можно выбрать частоту авто или ручную, но ручная не работает больше чем на 8000 мгц - это означает, что я не могу отлаживать программы для на частоте процессора больше чем 8000 мгц или что то другое? <{POST_SNAPBACK}> второе - это частота тактов JTAG, и отлаживать можно еще как. первое- конкретно про этот камень не могу сказать, но LPC2106 по даташиту был настроен за пол дня. Настроить PLL и делители, и так далее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 14 июля, 2005 Опубликовано 14 июля, 2005 · Жалоба Подскажите пожалуйста, как в EWARM 4.30 настроить множители процессора, шины (для LPC2292), и как настроить J-LINK, а то в Keil это было просто, но сейчас пришлось перейти на IAR и не могу разобраться <{POST_SNAPBACK}> Как настроить множители смотри в примерах идущих с компилятором. \IAR_ARM_4.30a\arm\src\examples\Philips\ По аналогии для своего проца делай. Еще в документации IAR это все подробно расписано. А J-Link, по большому счету, и настраиваить не надо, просто выбрать из списка и все. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Romanello 0 14 июля, 2005 Опубликовано 14 июля, 2005 · Жалоба Спасибо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Muxa 0 5 августа, 2005 Опубликовано 5 августа, 2005 · Жалоба \IAR_ARM_4.30a\arm\src\examples\Philips\ По аналогии для своего проца делай вот именно... для lpc там сплошные ошибки пример установки pll (lpc2129): #include <inarm.h> #include <iolpc2129.h> #define PLOCK 0x0400 void PLLinit(void){ PLLCON = 1; // Enable the PLL PLLFEED = 0xAA; PLLFEED = 0x55; PLLCFG = 0x23; //M=3(x4),P=1(/2) PLLfreq = 235.9296 Mhz, CCLK = 58,9824 Mhz PLLFEED = 0xAA; PLLFEED = 0x55; while(!(PLLSTAT & PLOCK)); // Wait for PLL to lock PLLCON = 3; // Enable & connct the PLL PLLFEED = 0xAA; PLLFEED = 0x55; } пример инициализации проца. с питание сам посмотри, я выкл. те устройства, которые мне не нужны. ADC не отключился, его надо ещё выключать через всои регистры (эррата). вообще посмотри эрраты. в кремнии ош. море #define PTIM0 1 #define PTIM1 2 #define PURT0 3 #define PURT1 4 #define PPWM0 5 #define PI2C 7 #define PSPI0 8 #define PRTC 9 #define PSPI1 10 #define PAD 12 #define PCAN1 13 #define PCAN2 14 #define OSCILLATOR_CLOCK_FREQUENCY 14745600 typedef unsigned char U8; /* 8 bit unsigned UPGRADE*/ typedef unsigned short U16; /* 16 bit unsigned */ typedef unsigned long U32; /* 32 bit unsigned */ void CPUinit(void){ U32 x; // Управление питанием ---------------------------------------------------------> // Выключаем питание неиспользуемых устройств: ТIMER1, UART1, PWM, RTC, SPI1, ADC, CAN2 PCONP &= ~((1<<PTIM1)|(1<<PURT1)|(1<<PPWM0)|(1<<PRTC)|(1<<PSPI1)|(1<<11)|(1<<PAD)|(1<<PCAN2)); // Установка карты памяти обработчика исключений -------------------------------> #pragma segment = "INTVEC" // проверка размещения сегмента INTVEC if (( void * )0x00000000UL == __segment_begin( "INTVEC" )){ MEMMAP = 1; // flash mode }else{ // Отладка в ram MEMMAP = 2; } //Init MAM & Flash memory fetch-------------------------------------------------> MAMCR = 0; //0 - запрет акселератора перед изменением тайминга. x = getprocessorClockFreq(); // Текущая частота процессора if(x < 20000000) MAMTIM = 1; if(x >= 20000000 && x < 40000000) MAMTIM = 2; if(x > 40000000) MAMTIM = 3; // для частот больше 40МГц, период обращения к памяти не меньше 3 cclock MAMCR = 2; //10 - MAM functions fully enabled // Установка частоты шины переферийных устройств,- полная скорость pclk = cclck VPBDIV = 1; //01: VPB bus clock is the same as the processor clock. // VPBDIV = 2; //10: VPB bus clock is 1/2 of the processor clock. // Установка портов GPIO -------------------------------------------------------> //GPIO init // P0.15:8 - GPIO P0.7:4 SPI I2C UART // 0000 0000 0000 0000 0001 0101 0101 0000 PINSEL0=0x1550; // P0.31:16-GPIO P0.25 - CAN1RX ??? - непонятно пока // 0000 0000 0000 0100 0000 0000 0000 0000 PINSEL1=0x00040000; //IODIR in binary 0111 1101 0010 1010 1001 0100 1101 0001 IO0DIR = 0x7D2A94DD; IO1DIR = 0; // Все линии на ввод IO0CLR = 0x78000000; // СБРОС СВЕТОДИОДОВ } U32 getprocessorClockFreq(void){ if((PLLCON & 0x3) == 0x3) // если PLL подключён (PLLC & PLLE = 1), то множитель = MSEL + 1 return (((PLLCFG & 0x1F) + 1) * OSCILLATOR_CLOCK_FREQUENCY); return OSCILLATOR_CLOCK_FREQUENCY; } /*-------------------------------------------------------------------------------------------------------------------------------*/ U32 getperipheralClockFreq(void){ U8 c; do{ // Для кремния ревизии А, эррата VPBDIV.1 от 2005 May 2 c = VPBDIV & 0x03; }while((VPBDIV & 0x03) != c); switch (c) { case 1: c = 1; break; case 2: c = 2; break; default: c = 4; } return getprocessorClockFreq() / ((U32)c); } ё... форматирование свалилось :( это работает :cheers: удачи! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться