Maxim Integrated / OneWire

Dependents:   MAXREFDES131_Qt_Demo MAX32630FTHR_iButton_uSD_Logger MAX32630FTHR_DS18B20_uSD_Logger MAXREFDES130_131_Demo ... more

Revision:
31:7c684e49fa8f
Parent:
30:fdd7a0f82f2f
Child:
40:590791ecac1c
--- a/OneWire_Masters/GPIO/owlink.s	Tue Mar 29 15:40:58 2016 +0000
+++ b/OneWire_Masters/GPIO/owlink.s	Tue Mar 29 16:36:12 2016 -0500
@@ -1,27 +1,44 @@
-PROC_CLOCK_MHZ EQU 24 ; Processor clock in MHz
-OVERHEAD_TUNING EQU 21 ; Fraction where OverheadTime(us) = OVERHEAD_TUNING / PROC_CLOCK_MHZ
-; Make PROC_CLOCK_MHZ and OVERHEAD_TUNING divisible by PROC_CYCLES_PER_LOOP for best results
+#define PROC_CLOCK_MHZ 24 // Processor clock in MHz
+#define OVERHEAD_TUNING 21 // Fraction where OverheadTime(us) = OVERHEAD_TUNING / PROC_CLOCK_MHZ
+// Make PROC_CLOCK_MHZ and OVERHEAD_TUNING divisible by PROC_CYCLES_PER_LOOP for best results
 
-PIPELINE_REFILL_PROC_CYCLES EQU 1 ; ARM specifies 1-3 cycles for pipeline refill following a branch
-PROC_CYCLES_PER_LOOP EQU (2 + PIPELINE_REFILL_PROC_CYCLES)
-LOOPS_PER_US EQU (PROC_CLOCK_MHZ / PROC_CYCLES_PER_LOOP) ; Number of loop passes for a 1 us delay
-LOOPS_REMOVED_TUNING EQU (OVERHEAD_TUNING / PROC_CYCLES_PER_LOOP)
+#define PIPELINE_REFILL_PROC_CYCLES 1 // ARM specifies 1-3 cycles for pipeline refill following a branch
+#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)
  
-#ifdef TOOLCHAIN_IAR 
+#if defined TOOLCHAIN_IAR 
   SECTION owlink : CODE
-#else
+#elif defined TOOLCHAIN_ARM_STD
   AREA owlink, CODE
+#else // TOOLCHAIN_GCC_ARM
+  .syntax unified
+  .section .text
 #endif
 
-; void ow_usdelay(unsigned int time_us)
+// 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
   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
   subs R0, R0, #1
   bne loop
   bx R14
   
-  END
\ No newline at end of file
+#ifdef TOOLCHAIN_GCC_ARM
+  .end
+#else // TOOLCHAIN_IAR or TOOLCHAIN_ARM_STD
+  END
+#endif
\ No newline at end of file