Forum : Ride IDE
Post Information | Post |
---|---|
December 18, 2009 - 12:13pm
|
My software needs to use 64-bit integers and it causes problems when these are passed to functions. When I use 32-bit integers (unsigned int) everything works well. When i change them to uint64_t type two problems arise: 1. The debugger always shows only lower 32 bits of 64 integers. For example the folllowing code should set "temp64" variable to 0x1122334455667788 value but the debugger shows 0x55667788: uint64 temp64; temp64 = 0x1122334455667788LL; 2. When "Addr" variable of uint64_t type is passed to the function "ReadBlock" the "Addr" variable always equals to 0x20004DCC at the entry of the function instead of 0x00000000: u8 ReadBlock(u8 *buf, uint64_t Addr) if (ReadBlock(Buf, 0)) When "Addr" is uint32_t type, the function works ok: u8 ReadBlock(u8 *buf, uint32_t Addr) if (ReadBlock(Buf, 0)) Is it possible there is an error in the compiler or do i do something wrong ? |
Hi
Can you let us know which software you use.
Regards
Matloub
Oooops, I've just solved the problem no. 2. It was my mistake... I declared external function incorrectly:
extern u8 ReadBlock(u8 *buf, uint32_t Addr)
instead of:
extern u8 ReadBlock(u8 *buf, u64 Addr)
I'm sorry for the inconvenience.
However, the problem no. 1 persists (incorrect displaying of 64 bit integers)
I use Ride7 version 7.24.09.0251 and RKit 1.22.09.0254.