This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: HAL register write problem


I got it done! All registers should cast like this:
        ((volatile cyg_uint8 *) (XXX + 0xXX))
        ((volatile cyg_uint8 *) (XXX + 0xXX))
        ((volatile cyg_uint8 *) (XXX + 0xXX))
        ((volatile cyg_uint16 *) (XXX + 0xXX))

I only parenthesized the 16 bit register, and that was the problem.
In original pid codes, all registers are 8-bits, so it ok if all defined
this way:
((volatile cyg_uint8 *) XXX + 0xXX)
...
Is it because of the alignment?

Anyway, I should have tried this earlier :-)
Thanks to all helped me!!

jeremy



jeremy wrote:
>
> 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)

>>At a guess, you were probably intending to write

>#define CYG_DEVICE_SERIAL_RS232_UART_UBRDIV \
    ((volatile cyg_uint16 *) (CYG_DEVICE_SERIAL_RS232_UART_BASE + 0x14))

>>because adding 0x14 to something cast to a pointer to a 16-bit type
will
>>increment it by 2*0x14=0x28 bytes.

>>Jifl
--
>>Red Hat, Rustat House, Clifton Road, Cambridge, UK. Tel: +44 (1223)
271062
>>Un cheval, pas du glue. Pas du cheval, beaucoup du glue. || Opinions




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]