Не могу понять то ли я ничего не понимаю то ли проблема с LPC3250
Есть такой код
CODE
int main(void)
{
P3_OUTP_CLR_bit.GPO_20=1;
P3_OUTP_SET_bit.GPO_19=1;
FLASHCLK_CTRL_bit.SLC_NAND_ENA=0;
FLASHCLK_CTRL_bit.SLC_MLC_SEL=1;
// CE controlled by NAND controller
MLC_CEH = 1;
// unlocks the access to MLC NAND Timing register
MLC_LOCK_PR = 0xA25E;
MLC_ICR = 4;
MLC_LOCK_PR = 0xA25E;
MLC_TIME_REG =( 3UL << 0 ) | // Write pulse width (tWP)
( 2UL << 4 ) | // Write high hold time (tWH)
( 3UL << 8 ) | // Read pulse width (tRP)
( 2UL << 12) | // Read high hold time (tREH)
( 4UL << 16) | // Read high to high impedance (tRHZ)
( 2UL << 19) | // Read/Write high to busy (tWB/tRB)
( 5UL << 24); // nCE low to dout valid (tCEA)
}
// main loop
while(1)
{
};
}
{
P3_OUTP_CLR_bit.GPO_20=1;
P3_OUTP_SET_bit.GPO_19=1;
FLASHCLK_CTRL_bit.SLC_NAND_ENA=0;
FLASHCLK_CTRL_bit.SLC_MLC_SEL=1;
// CE controlled by NAND controller
MLC_CEH = 1;
// unlocks the access to MLC NAND Timing register
MLC_LOCK_PR = 0xA25E;
MLC_ICR = 4;
MLC_LOCK_PR = 0xA25E;
MLC_TIME_REG =( 3UL << 0 ) | // Write pulse width (tWP)
( 2UL << 4 ) | // Write high hold time (tWH)
( 3UL << 8 ) | // Read pulse width (tRP)
( 2UL << 12) | // Read high hold time (tREH)
( 4UL << 16) | // Read high to high impedance (tRHZ)
( 2UL << 19) | // Read/Write high to busy (tWB/tRB)
( 5UL << 24); // nCE low to dout valid (tCEA)
}
// main loop
while(1)
{
};
}
и когда начинаю отладку через J-link в IRAM (bootmap=1) после ресета вижу во всех регистрах MLC число 0х07, даже в которых такого значения по определению быть не может (например регистр MLC_CEH=0x07). При работе кода который выше значения в регистрах котроллера MLC не меняються, причем вся остальная перефирия работает UARTы принимают и передают и т.д.