+
+                               SPI_Init(SPI_SPEED_FCPU_DIV_2 | SPI_ORDER_MSB_FIRST | SPI_SCK_LEAD_FALLING | SPI_SAMPLE_TRAILING | SPI_MODE_MASTER);
+                       }
+
+                       /** Sends a byte to the currently selected dataflash IC, and returns a byte from the dataflash.
+                        *
+                        *  \param[in] Byte  Byte of data to send to the dataflash
+                        *
+                        *  \return Last response byte from the dataflash
+                        */
+                       static inline uint8_t Dataflash_TransferByte(const uint8_t Byte) ATTR_ALWAYS_INLINE;
+                       static inline uint8_t Dataflash_TransferByte(const uint8_t Byte)
+                       {
+                               return SPI_TransferByte(Byte);
+                       }
+
+                       /** Sends a byte to the currently selected dataflash IC, and ignores the next byte from the dataflash.
+                        *
+                        *  \param[in] Byte  Byte of data to send to the dataflash
+                        */
+                       static inline void Dataflash_SendByte(const uint8_t Byte) ATTR_ALWAYS_INLINE;
+                       static inline void Dataflash_SendByte(const uint8_t Byte)
+                       {
+                               SPI_SendByte(Byte);
+                       }
+
+                       /** Sends a dummy byte to the currently selected dataflash IC, and returns the next byte from the dataflash.
+                        *
+                        *  \return Last response byte from the dataflash
+                        */
+                       static inline uint8_t Dataflash_ReceiveByte(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT;
+                       static inline uint8_t Dataflash_ReceiveByte(void)
+                       {
+                               return SPI_ReceiveByte();