He diseñado una placa que utiliza el ATSAMA5D225C-D1M (Corteza A5). He copiado principalmente el esquema de la ATSAMA5D27-SOM1.
Estoy utilizando un adaptador J-LINK PRO.
Estoy utilizando el marco de software de atmel y GCC para probar mi nueva placa.
Puedo paso a paso el depurador hasta llegar a pmc_switch_mck_to_slck()
void pmc_switch_mck_to_slck(void)
{
/* Select Slow Clock as input clock for PCK and MCK */
PMC->PMC_MCKR = (PMC->PMC_MCKR & ~PMC_MCKR_CSS_Msk) | PMC_MCKR_CSS_SLOW_CLK;
while (!(PMC->PMC_SR & PMC_SR_MCKRDY));
_pmc_mck = 0;
}
después de lo cual el depurador me dice
pmc_switch_mck_to_slck () at ../../drivers/peripherals/pmc.c:973
973 PMC->PMC_MCKR = (PMC->PMC_MCKR & ~PMC_MCKR_CSS_Msk) | PMC_MCKR_CSS_SLOW_CLK;
(gdb)
0xdeadbeee in ?? ()
(gdb) s
Cannot find bounds of current function
Entonces, ¿qué significa que todos los registros devuelvan 0xdeadbeee o 0xdeadbeef? ¿Me estoy perdiendo alguna definición de trampa?
¿Qué tipo de causas debo buscar en el problema de conmutación del reloj? ¿Ajuste del depurador o problema de hardware?