Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопросы по IAR EWARM 4.30
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Romanello
Здравствуйте.

Подскажите пожалуйста, как в EWARM 4.30 настроить множители процессора, шины (для LPC2292), и как настроить J-LINK, а то в Keil это было просто, но сейчас пришлось перейти на IAR и не могу разобраться
DIM
Цитата(Romanello @ Jul 13 2005, 12:02)
Здравствуйте.

Подскажите пожалуйста, как в EWARM 4.30 настроить множители процессора, шины (для LPC2292), и как настроить J-LINK, а то в Keil это было просто, но сейчас пришлось перейти на IAR и не могу разобраться
*

по поводу J-LINK: Project->Options->Debugger - выбираем что надо. Ниже настраиваем его самого.

Ну а процессор настраиваестся в самом коде программы
Romanello
Я и спрашивал как настроить процессор, есть ли у кого кусок кода с комментариями. А по поводу J-Link - там можно выбрать частоту авто или ручную, но ручная не работает больше чем на 8000 мгц - это означает, что я не могу отлаживать программы для на частоте процессора больше чем 8000 мгц или что то другое?
DIM
Цитата(Romanello @ Jul 13 2005, 14:04)
Я и спрашивал как настроить процессор, есть ли у кого кусок кода с комментариями. А по поводу J-Link - там можно выбрать частоту авто или ручную, но ручная не работает больше чем на 8000 мгц - это означает, что я не могу отлаживать программы для на частоте процессора больше чем 8000 мгц или что то другое?
*

второе - это частота тактов JTAG, и отлаживать можно еще как.
первое- конкретно про этот камень не могу сказать, но LPC2106 по даташиту был настроен за пол дня. Настроить PLL и делители, и так далее.
VladislavS
Цитата(Romanello @ Jul 13 2005, 12:02)
Подскажите пожалуйста, как в EWARM 4.30 настроить множители процессора, шины (для LPC2292), и как настроить J-LINK, а то в Keil это было просто, но сейчас пришлось перейти на IAR и не могу разобраться
*


Как настроить множители смотри в примерах идущих с компилятором.
\IAR_ARM_4.30a\arm\src\examples\Philips\ По аналогии для своего проца делай.
Еще в документации IAR это все подробно расписано. А J-Link, по большому счету, и настраиваить не надо, просто выбрать из списка и все.
Romanello
Спасибо
Muxa
Цитата
\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);
}

ё... форматирование свалилось sad.gif
это работает cheers.gif
удачи!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.