_REV在Sys实现,还是得要调用固件库,方便兼容MDK/GCC两家编译器
This commit is contained in:
parent
ba51c2b068
commit
1739720eb1
36
Sys.cpp
36
Sys.cpp
|
@ -559,3 +559,39 @@ void TSys::Trace(int times) const
|
|||
}
|
||||
//#endif
|
||||
}
|
||||
|
||||
/******************************** REV ********************************/
|
||||
|
||||
uint _REV(uint value) { return __REV(value); }
|
||||
ushort _REV16(ushort value) { return __REV16(value); }
|
||||
|
||||
/*#if defined ( __CC_ARM )
|
||||
__asm uint _REV(uint value)
|
||||
{
|
||||
rev16 r0, r0
|
||||
bx lr
|
||||
}
|
||||
|
||||
__asm ushort _REV16(ushort value)
|
||||
{
|
||||
rev16 r0, r0
|
||||
bx lr
|
||||
}
|
||||
|
||||
#elif defined ( __GNUC__ )
|
||||
uint32_t __REV(uint32_t value)
|
||||
{
|
||||
uint32_t result = 0;
|
||||
|
||||
__ASM volatile ("rev %0, %1" : "=r" (result) : "r" (value));
|
||||
return(result);
|
||||
}
|
||||
|
||||
uint32_t __REV16(uint16_t value)
|
||||
{
|
||||
uint32_t result = 0;
|
||||
|
||||
__ASM volatile ("rev16 %0, %1" : "=r" (result) : "r" (value));
|
||||
return(result);
|
||||
}
|
||||
#endif*/
|
||||
|
|
6
Sys.h
6
Sys.h
|
@ -115,6 +115,12 @@ extern TSys Sys; //创建一个全局的Sys对象 会在main函数之前执行
|
|||
//#include "Time.h"
|
||||
#include "Interrupt.h"
|
||||
|
||||
//extern uint32_t __REV(uint32_t value);
|
||||
//extern uint32_t __REV16(uint16_t value);
|
||||
|
||||
uint _REV(uint value);
|
||||
ushort _REV16(ushort value);
|
||||
|
||||
#endif //_Sys_H_
|
||||
|
||||
/*
|
||||
|
|
36
Type.cpp
36
Type.cpp
|
@ -714,39 +714,3 @@ void ByteArray::Write(UInt64 value, int index)
|
|||
{
|
||||
Copy(index, (byte*)&value, sizeof(UInt64));
|
||||
}
|
||||
|
||||
/******************************** REV ********************************/
|
||||
|
||||
//uint _REV(uint value) { return __REV(value); }
|
||||
//ushort _REV16(ushort value) { return __REV16(value); }
|
||||
|
||||
#if defined ( __CC_ARM )
|
||||
__asm uint _REV(uint value)
|
||||
{
|
||||
rev16 r0, r0
|
||||
bx lr
|
||||
}
|
||||
|
||||
__asm ushort _REV16(ushort value)
|
||||
{
|
||||
rev16 r0, r0
|
||||
bx lr
|
||||
}
|
||||
|
||||
#elif defined ( __GNUC__ )
|
||||
uint32_t __REV(uint32_t value)
|
||||
{
|
||||
uint32_t result=0;
|
||||
|
||||
__ASM volatile ("rev %0, %1" : "=r" (result) : "r" (value) );
|
||||
return(result);
|
||||
}
|
||||
|
||||
uint32_t __REV16(uint16_t value)
|
||||
{
|
||||
uint32_t result=0;
|
||||
|
||||
__ASM volatile ("rev16 %0, %1" : "=r" (result) : "r" (value) );
|
||||
return(result);
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue