chiark / gitweb /
force inline
authorBernhard <bkubicek@x201.(none)>
Mon, 28 Nov 2011 20:51:44 +0000 (21:51 +0100)
committerBernhard <bkubicek@x201.(none)>
Mon, 28 Nov 2011 20:51:44 +0000 (21:51 +0100)
Marlin/MarlinSerial.cpp
Marlin/MarlinSerial.h
Marlin/temperature.h

index 6cf47eafe337f530fe9e30b295b1c659481bb07b..d1ec0fec97d45f0e8e309fbb800563e165b0270b 100644 (file)
@@ -32,6 +32,7 @@
 #if defined(UBRRH) || defined(UBRR0H) || defined(UBRR1H) || defined(UBRR2H) || defined(UBRR3H)
 
 #include "MarlinSerial.h"
+#include "Marlin.h"
 
 
 
@@ -41,7 +42,7 @@
 #endif
 
 
-inline void store_char(unsigned char c)
+FORCE_INLINE void store_char(unsigned char c)
 {
   int i = (unsigned int)(rx_buffer.head + 1) % RX_BUFFER_SIZE;
 
index 9ff07912b9305650541ac54b8496c5edbc30bcce..6bc9ffb26ae6c0a7a9ade88199242e7d93d5fd1c 100644 (file)
@@ -24,6 +24,8 @@
 
 #include <inttypes.h>
 #include <Stream.h>
+#define  FORCE_INLINE __attribute__((always_inline)) inline
+
 
 
 // Define constants and variables for buffering incoming serial data.  We're
@@ -55,12 +57,12 @@ class MarlinSerial //: public Stream
     int read(void);
     void flush(void);
     
-    inline int available(void)
+    FORCE_INLINE int available(void)
     {
       return (unsigned int)(RX_BUFFER_SIZE + rx_buffer.head - rx_buffer.tail) % RX_BUFFER_SIZE;
     }
     
-    inline void write(uint8_t c)
+    FORCE_INLINE void write(uint8_t c)
     {
       while (!((UCSR0A) & (1 << UDRE0)))
         ;
@@ -69,7 +71,7 @@ class MarlinSerial //: public Stream
     }
     
     
-    inline void checkRx(void)
+    FORCE_INLINE void checkRx(void)
     {
       if((UCSR0A & (1<<RXC0)) != 0) {
         unsigned char c  =  UDR0;
@@ -94,27 +96,27 @@ class MarlinSerial //: public Stream
     
   public:
     
-    inline void write(const char *str)
+    FORCE_INLINE void write(const char *str)
     {
       while (*str)
         write(*str++);
     }
 
 
-    inline void write(const uint8_t *buffer, size_t size)
+    FORCE_INLINE void write(const uint8_t *buffer, size_t size)
     {
       while (size--)
         write(*buffer++);
     }
 
-    inline void print(const String &s)
+    FORCE_INLINE void print(const String &s)
     {
       for (int i = 0; i < s.length(); i++) {
         write(s[i]);
       }
     }
     
-    inline void print(const char *str)
+    FORCE_INLINE void print(const char *str)
     {
       write(str);
     }
index 3f38c81a9aa3f8cdb7b5afe46f6893ba3a57bce9..13a0e0c1f5f14c47a36a23a5d28e6f9f8726c823 100644 (file)
@@ -62,7 +62,7 @@ extern float Kp,Ki,Kd,Kc;
 FORCE_INLINE float degHotend0(){  return analog2temp(current_raw[TEMPSENSOR_HOTEND_0]);};\r
 FORCE_INLINE float degHotend1(){  return analog2temp(current_raw[TEMPSENSOR_HOTEND_1]);};\r
 FORCE_INLINE float degBed() {  return analog2tempBed(current_raw[TEMPSENSOR_BED]);};\r
-inline float degHotend(uint8_t extruder){  \r
+FORCE_INLINE float degHotend(uint8_t extruder){  \r
   if(extruder == 0) return analog2temp(current_raw[TEMPSENSOR_HOTEND_0]);\r
   if(extruder == 1) return analog2temp(current_raw[TEMPSENSOR_HOTEND_1]);\r
 };\r
@@ -74,7 +74,7 @@ inline float degTargetHotend(uint8_t extruder){
   if(extruder == 1) return analog2temp(target_raw[TEMPSENSOR_HOTEND_1]);\r
 };\r
 \r
-inline float degTargetBed() {   return analog2tempBed(target_raw[TEMPSENSOR_BED]);};\r
+FORCE_INLINE float degTargetBed() {   return analog2tempBed(target_raw[TEMPSENSOR_BED]);};\r
 \r
 FORCE_INLINE void setTargetHotend0(const float &celsius) \r
 {  \r
@@ -84,27 +84,27 @@ FORCE_INLINE void setTargetHotend0(const float &celsius)
   #endif //PIDTEMP\r
 };\r
 FORCE_INLINE void setTargetHotend1(const float &celsius) {  target_raw[TEMPSENSOR_HOTEND_1]=temp2analog(celsius);};\r
-inline float setTargetHotend(const float &celcius, uint8_t extruder){  \r
+FORCE_INLINE float setTargetHotend(const float &celcius, uint8_t extruder){  \r
   if(extruder == 0) setTargetHotend0(celcius);\r
   if(extruder == 1) setTargetHotend1(celcius);\r
 };\r
-inline void setTargetBed(const float &celsius)     {  target_raw[TEMPSENSOR_BED     ]=temp2analogBed(celsius);};\r
+FORCE_INLINE void setTargetBed(const float &celsius)     {  target_raw[TEMPSENSOR_BED     ]=temp2analogBed(celsius);};\r
 \r
 FORCE_INLINE bool isHeatingHotend0() {return target_raw[TEMPSENSOR_HOTEND_0] > current_raw[TEMPSENSOR_HOTEND_0];};\r
 FORCE_INLINE bool isHeatingHotend1() {return target_raw[TEMPSENSOR_HOTEND_1] > current_raw[TEMPSENSOR_HOTEND_1];};\r
-inline float isHeatingHotend(uint8_t extruder){  \r
+FORCE_INLINE float isHeatingHotend(uint8_t extruder){  \r
   if(extruder == 0) return target_raw[TEMPSENSOR_HOTEND_0] > current_raw[TEMPSENSOR_HOTEND_0];\r
   if(extruder == 1) return target_raw[TEMPSENSOR_HOTEND_1] > current_raw[TEMPSENSOR_HOTEND_1];\r
 };\r
-inline bool isHeatingBed() {return target_raw[TEMPSENSOR_BED] > current_raw[TEMPSENSOR_BED];};\r
+FORCE_INLINE bool isHeatingBed() {return target_raw[TEMPSENSOR_BED] > current_raw[TEMPSENSOR_BED];};\r
 \r
 FORCE_INLINE bool isCoolingHotend0() {return target_raw[TEMPSENSOR_HOTEND_0] < current_raw[TEMPSENSOR_HOTEND_0];};\r
 FORCE_INLINE bool isCoolingHotend1() {return target_raw[TEMPSENSOR_HOTEND_1] < current_raw[TEMPSENSOR_HOTEND_1];};\r
-inline float isCoolingHotend(uint8_t extruder){  \r
+FORCE_INLINE float isCoolingHotend(uint8_t extruder){  \r
   if(extruder == 0) return target_raw[TEMPSENSOR_HOTEND_0] < current_raw[TEMPSENSOR_HOTEND_0];\r
   if(extruder == 1) return target_raw[TEMPSENSOR_HOTEND_1] < current_raw[TEMPSENSOR_HOTEND_1];\r
 };\r
-inline bool isCoolingBed() {return target_raw[TEMPSENSOR_BED] < current_raw[TEMPSENSOR_BED];};\r
+FORCE_INLINE bool isCoolingBed() {return target_raw[TEMPSENSOR_BED] < current_raw[TEMPSENSOR_BED];};\r
 \r
 void disable_heater();\r
 void setWatch();\r