[U-Boot] Strange data behaviour
Remco Poelstra
remco.poelstra at duran-audio.com
Tue Feb 17 12:55:36 CET 2009
Hi,
I'm trying to get my LPC2468 based board to work. I've some problems
with the external memory databus.
I would like to know the settings of internal registers to see whether
I've initialized them correctly, so I tried making a function that
prints the content over the serial link. I'm still in the lowlevel_init
function, so I do not have the U-boot puts functions available.
I wrote the following function to convert a long to a HEX string:
-------------------
void print_long(unsigned long data) {
char i;
char
hex_data[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
for(i=0; i<8; i++) {
while((U0LSR & (1<<5)) == 0); /* Wait for empty U0THR */
// U0THR = hex_data[(0xDEADBEEF>>i*4)&0xF];
U0THR = hex_data[(0xDEADBEEF>>4)&0xF];
}
}
---------------
When I run it likes this I get 8 E's. Which is what I expect. When I run
it with the commented-out line, I get back 8 0x0's. So it seems that the
output is only correct when it is constant.
Does anyone have a clue on why that is?
Kind regards,
Remco Poelstra
More information about the U-Boot
mailing list