BLE Temperature Service Mobile and Ubiquitous Computing Module Birkbeck College

Dependencies:   DS1820

Committer:
gkroussos
Date:
Sun Mar 08 19:42:20 2015 +0000
Revision:
0:dd0fea342ad2
BLE Temperature Service ; Mobile and Ubiquitous Computing Module; Birkbeck College

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gkroussos 0:dd0fea342ad2 1 #ifndef NRF_SVC__
gkroussos 0:dd0fea342ad2 2 #define NRF_SVC__
gkroussos 0:dd0fea342ad2 3
gkroussos 0:dd0fea342ad2 4 #ifdef SVCALL_AS_NORMAL_FUNCTION
gkroussos 0:dd0fea342ad2 5 #define SVCALL(number, return_type, signature) return_type signature
gkroussos 0:dd0fea342ad2 6 #else
gkroussos 0:dd0fea342ad2 7
gkroussos 0:dd0fea342ad2 8 #ifndef SVCALL
gkroussos 0:dd0fea342ad2 9 #if defined (__CC_ARM)
gkroussos 0:dd0fea342ad2 10 #define SVCALL(number, return_type, signature) return_type __svc(number) signature
gkroussos 0:dd0fea342ad2 11 #elif defined (__GNUC__)
gkroussos 0:dd0fea342ad2 12 #define SVCALL(number, return_type, signature) \
gkroussos 0:dd0fea342ad2 13 _Pragma("GCC diagnostic ignored \"-Wreturn-type\"") \
gkroussos 0:dd0fea342ad2 14 _Pragma("GCC diagnostic ignored \"-Wunused-function\"") \
gkroussos 0:dd0fea342ad2 15 __attribute__((naked)) static return_type signature \
gkroussos 0:dd0fea342ad2 16 { \
gkroussos 0:dd0fea342ad2 17 __asm( \
gkroussos 0:dd0fea342ad2 18 "svc %0\n" \
gkroussos 0:dd0fea342ad2 19 "bx r14" : : "I" (number) : "r0" \
gkroussos 0:dd0fea342ad2 20 ); \
gkroussos 0:dd0fea342ad2 21 }
gkroussos 0:dd0fea342ad2 22 #elif defined (__ICCARM__)
gkroussos 0:dd0fea342ad2 23 #define PRAGMA(x) _Pragma(#x)
gkroussos 0:dd0fea342ad2 24 #define SVCALL(number, return_type, signature) \
gkroussos 0:dd0fea342ad2 25 PRAGMA(swi_number = number) \
gkroussos 0:dd0fea342ad2 26 __swi return_type signature;
gkroussos 0:dd0fea342ad2 27 #else
gkroussos 0:dd0fea342ad2 28 #define SVCALL(number, return_type, signature) return_type signature
gkroussos 0:dd0fea342ad2 29 #endif
gkroussos 0:dd0fea342ad2 30 #endif // SVCALL
gkroussos 0:dd0fea342ad2 31
gkroussos 0:dd0fea342ad2 32 #endif // SVCALL_AS_NORMAL_FUNCTION
gkroussos 0:dd0fea342ad2 33 #endif // NRF_SVC__