Maxim Integrated / OneWire

Dependents:   MAXREFDES131_Qt_Demo MAX32630FTHR_iButton_uSD_Logger MAX32630FTHR_DS18B20_uSD_Logger MAXREFDES130_131_Demo ... more

Revision:
46:afe466c96069
Parent:
40:590791ecac1c
Child:
52:4cba20c21941
--- a/OneWire_Masters/GPIO/owlink.s	Wed Apr 06 09:10:22 2016 -0500
+++ b/OneWire_Masters/GPIO/owlink.s	Wed Apr 06 10:06:06 2016 -0500
@@ -6,6 +6,27 @@
 #define PROC_CYCLES_PER_LOOP (2 + PIPELINE_REFILL_PROC_CYCLES)
 #define LOOPS_PER_US (PROC_CLOCK_MHZ / PROC_CYCLES_PER_LOOP) // Number of loop passes for a 1 us delay
 #define LOOPS_REMOVED_TUNING (OVERHEAD_TUNING / PROC_CYCLES_PER_LOOP)
+
+// LABEL macro
+#ifdef TOOLCHAIN_GCC_ARM
+#define LABEL(x) x:
+#else // TOOLCHAIN_IAR or TOOLCHAIN_ARM_STD
+#define LABEL(x) x
+#endif
+
+// EXPORT_LABEL macro
+#ifdef TOOLCHAIN_GCC_ARM
+#define EXPORT_LABEL(x) .global x
+#else // TOOLCHAIN_IAR or TOOLCHAIN_ARM_STD
+#define EXPORT_LABEL(x) EXPORT x
+#endif
+
+// THUMB_FUNC macro
+#ifdef TOOLCHAIN_GCC_ARM
+#define THUMB_FUNC .thumb_func
+#else // TOOLCHAIN_IAR or TOOLCHAIN_ARM_STD
+#define THUMB_FUNC
+#endif
  
 #if defined TOOLCHAIN_IAR 
   SECTION owlink : CODE
@@ -17,31 +38,18 @@
 #endif
 
 // void ow_usdelay(unsigned int time_us)
-#ifdef TOOLCHAIN_GCC_ARM
-.thumb_func
-  .global ow_usdelay
-ow_usdelay:
-#else // TOOLCHAIN_IAR or TOOLCHAIN_ARM_STD
-  EXPORT ow_usdelay
-ow_usdelay
-#endif
+  THUMB_FUNC
+  EXPORT_LABEL(ow_usdelay)
+LABEL(ow_usdelay)
   cmp R0, #0 // Return if time_us equals zero
   beq return
   mov R1, #LOOPS_PER_US
   mul R0, R0, R1
   sub R0, R0, #LOOPS_REMOVED_TUNING
-#ifdef TOOLCHAIN_GCC_ARM
-loop:
-#else // TOOLCHAIN_IAR or TOOLCHAIN_ARM_STD
-loop
-#endif
+LABEL(loop)
   subs R0, R0, #1
   bne loop
-#ifdef TOOLCHAIN_GCC_ARM
-return:
-#else // TOOLCHAIN_IAR or TOOLCHAIN_ARM_STD
-return
-#endif
+LABEL(return)
   bx R14
   
 #ifdef TOOLCHAIN_GCC_ARM