2013-10-16 36 views
1

如何將64位值傳遞給vxworks控制檯中的函數?如何在vxworks shell中傳遞64位值

比如這個作品:

[C INTERP]->tickSet 0x1fffff 
value = 2097151 = 0x1fffff 

鑑於此:

[C INTERP]->tick64Set 0xfffffffff 
C interp: '0xfffffffff' is not a valid integer value. 

沒有。

回答

3

您可以添加「ULL」來表示它是一個無符號長隆:

-> 0xfffffffff 
C interp: '0xfffffffff' is not a valid integer value. 
-> 0xfffffffffull 
value = 68719476735 = 0xfffffffff 
-> 
+0

乾杯。那幾乎就在那裏,儘管來自所述函數調用的返回值仍然看起來不太正確。我假設這可能只是沒有正確處理它的shell:' - > tick64Set 0x123456789ull value = 591751049 = 0x23456789' - 它似乎已經斬斷了最重要的字節。 – mjs

+0

是的,外殼正在截斷返回。你可以通過運行這個函數來判斷是否傳遞了正確的參數:void printTickLib() { UINT64 tick64 = 0; ULONG tick32 = 0; tick64 = tick64Get(); tick32 = tickGet(); (「Tick 64%llu(0x%llx)Tick32%lu(0x%0x)\ n」,tick64,tick64,tick32,tick32); } ' – mjs