Moderadores: 51, guest2003, Renie, gpenga
proex escreveu:Esse delay na primeira linha do Main é pra dar tempo para a interface Jtag tomar conta do chip.
Se não tiver esse delay muitas vezes o jtag nao consegue parar o chip pra inicializar o debuger.
.
fabim escreveu:nossa, achei que só micoxipe tinha a mainha<<<.
alguns NXPITOS tambem tem..
mais isso é pra 21XX ?
Tipo o LPC2368 tem a interface Jtag dedicada, e não compartilhada com mais nadegas.
Ou mesmo assim, a cpu deve desabilitar alguma coisa?
Abraços
fabim escreveu:Pessoal, estava sofrendo bagarai com um bug que não encontrava de forma alguma.
Algumas vezes ao inicializar o arm, conforme constatei, ele engolia caroço na setagem dos pinos para o lcd, e algumas outras coisas.
Desconfiei da mão, e fiz a setagem do PLL manualmente conforme APP´s da nxp, e o problema se manteve.
Lembrei, ou acho que tinha lembrado, que o proex havia me dito que é bom logo apos o main colocar um delay longo, de segundo pra cima...
Fiz dois delays de 900mS em laço, um após o outro e os problemas acabaram.
Se o startup´s ja tem a rotininha que espera o pll estabilizar, e mesmo fazendo na unha é o mesmo procedimento.
Porque depois de colocar os delays, os problemas acabaram ?
Abraços
Fabim
void SystemInit(void)
{
// --- enable and connect the PLL (Phase Locked Loop) ---
// a. set multiplier and divider
SCB_PLLCFG = MSEL | (1<<PSEL1) | (0<<PSEL0);
// b. enable PLL
SCB_PLLCON = (1<<PLLE);
// c. feed sequence
SCB_PLLFEED = PLL_FEED1;
SCB_PLLFEED = PLL_FEED2;
// d. wait for PLL lock (PLOCK bit is set if locked)
[b]while (!(SCB_PLLSTAT & (1<<PLOCK)));[/b]
// e. connect (and enable) PLL
SCB_PLLCON = (1<<PLLE) | (1<<PLLC);
// f. feed sequence
SCB_PLLFEED = PLL_FEED1;
SCB_PLLFEED = PLL_FEED2;
// --- setup and enable the MAM (Memory Accelerator Module) ---
// a. start change by turning of the MAM (redundant)
MAM_MAMCR = 0;
SCB_EXTPOLAR= 0x04;
SCB_EXTINT = 0x04;
// b. set MAM-Fetch cycle to 3 cclk as recommended for >40MHz
MAM_MAMTIM = MAM_FETCH;
// c. enable MAM
MAM_MAMCR = MAM_MODE;
// --- set VPB speed ---
SCB_VPBDIV = VPBDIV_VAL;
// --- map INT-vector ---
SCB_MEMMAP = MEMMAP_USER_FLASH_MODE;
}
proex escreveu:Djalma, esse delay só é usado durante o desenvolvimento, depois de definido o programa, tira-se esse delay.
proex escreveu:Djalma, esse delay só é usado durante o desenvolvimento, depois de definido o programa, tira-se esse delay.
Djalma Toledo Rodrigues escreveu:proex escreveu:Djalma, esse delay só é usado durante o desenvolvimento, depois de definido o programa, tira-se esse delay.
Entendido Proex
mas, de qualquer forma, qual a causa, porque isso acontece ?
DJ
Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante