From mboxrd@z Thu Jan 1 00:00:00 1970 From: Remco Poelstra Date: Tue, 17 Feb 2009 12:55:36 +0100 Subject: [U-Boot] Strange data behaviour Message-ID: <499AA5B8.7030805@duran-audio.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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