From mboxrd@z Thu Jan 1 00:00:00 1970 From: "jeremy" To: Subject: [ECOS] HAL register write problem Date: Thu, 18 Jan 2001 14:07:00 -0000 Message-id: <000e01c08183$65c3bf00$7c6509c0@viatech.com> X-SW-Source: 2001-01/msg00318.html My platform is Samsung KS32C50100, which operates in big-endian mode. I got some problem with writing to register using HAL_WRITE function. For example, in plf_stub.c where I put the UART initialization function in, Here I write some initialize value to UART control registers, HAL_WRITE_UINT8 (CYG_DEVICE_SERIAL_RS232_UART_UTXBUF, 0x0); HAL_WRITE_UINT8 (CYG_DEVICE_SERIAL_RS232_UART_URXBUF, 0x0); HAL_WRITE_UINT16(CYG_DEVICE_SERIAL_RS232_UART_UBRDIV, 0x280); The first two lines for writing 8-bits registers works fine. But the last line doesn't write anything into the 16-bits register. I defined that 16-bits register like this in the first part of the program: #define CYG_DEVICE_SERIAL_RS232_UART_UBRDIV \ ((volatile cyg_uint16 *) CYG_DEVICE_SERIAL_RS232_UART_BASE + 0x14) I tried to write it as a word register by HAL_WRITE_UINT32, doesn't work either, Only works when I use HAL_WRITE_UINT8, but this way only writes in 0x80 instead of 0x280. So the only way I can write it is to use arm ldr instruction in vectors.S, which is not good because I'll have more 16&32 bits registers to write. Can anyone help me with this? Thanks a lot! Chien-Yu