SmartMesh QSL for STM32F4 version

Fork of COG-AD4050_QSL by APS Lab

Committer:
APS_Lab
Date:
Thu Jul 12 09:19:12 2018 +0000
Revision:
1:b909b8399252
Parent:
0:8ca1e814a851
SmartMesh for STM32F4 version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
APS_Lab 0:8ca1e814a851 1 /*
APS_Lab 0:8ca1e814a851 2 Copyright (c) 2016, Dust Networks. All rights reserved.
APS_Lab 0:8ca1e814a851 3
APS_Lab 0:8ca1e814a851 4 Port of the endianness module to the NUCLEO-L053R8.
APS_Lab 0:8ca1e814a851 5
APS_Lab 0:8ca1e814a851 6 \license See attached DN_LICENSE.txt.
APS_Lab 0:8ca1e814a851 7 */
APS_Lab 0:8ca1e814a851 8
APS_Lab 0:8ca1e814a851 9 #include "dn_endianness.h"
APS_Lab 0:8ca1e814a851 10
APS_Lab 0:8ca1e814a851 11 //=========================== variables =======================================
APS_Lab 0:8ca1e814a851 12
APS_Lab 0:8ca1e814a851 13 //=========================== prototypes ======================================
APS_Lab 0:8ca1e814a851 14
APS_Lab 0:8ca1e814a851 15 //=========================== public ==========================================
APS_Lab 0:8ca1e814a851 16
APS_Lab 0:8ca1e814a851 17 void dn_write_uint16_t(uint8_t* ptr, uint16_t val){
APS_Lab 0:8ca1e814a851 18 // STM32L0 is a little-endian platform
APS_Lab 0:8ca1e814a851 19 ptr[0] = (val>>8) & 0xff;
APS_Lab 0:8ca1e814a851 20 ptr[1] = (val>>0) & 0xff;
APS_Lab 0:8ca1e814a851 21 }
APS_Lab 0:8ca1e814a851 22
APS_Lab 0:8ca1e814a851 23 void dn_write_uint32_t(uint8_t* ptr, uint32_t val){
APS_Lab 0:8ca1e814a851 24 // STM32L0 is a little-endian platform
APS_Lab 0:8ca1e814a851 25 ptr[0] = (val>>24) & 0xff;
APS_Lab 0:8ca1e814a851 26 ptr[1] = (val>>16) & 0xff;
APS_Lab 0:8ca1e814a851 27 ptr[2] = (val>>8) & 0xff;
APS_Lab 0:8ca1e814a851 28 ptr[3] = (val>>0) & 0xff;
APS_Lab 0:8ca1e814a851 29 }
APS_Lab 0:8ca1e814a851 30
APS_Lab 0:8ca1e814a851 31 void dn_read_uint16_t(uint16_t* to, uint8_t* from){
APS_Lab 0:8ca1e814a851 32 // STM32L0 is a little-endian platform
APS_Lab 0:8ca1e814a851 33 *to = 0;
APS_Lab 0:8ca1e814a851 34 *to |= (from[1]<<0);
APS_Lab 0:8ca1e814a851 35 *to |= (from[0]<<8);
APS_Lab 0:8ca1e814a851 36 }
APS_Lab 0:8ca1e814a851 37
APS_Lab 0:8ca1e814a851 38 void dn_read_uint32_t(uint32_t* to, uint8_t* from){
APS_Lab 0:8ca1e814a851 39 // STM32L0 is a little-endian platform
APS_Lab 0:8ca1e814a851 40 *to = 0;
APS_Lab 0:8ca1e814a851 41 *to |= ( ((uint32_t)from[3])<<0 );
APS_Lab 0:8ca1e814a851 42 *to |= ( ((uint32_t)from[2])<<8 );
APS_Lab 0:8ca1e814a851 43 *to |= ( ((uint32_t)from[1])<<16);
APS_Lab 0:8ca1e814a851 44 *to |= ( ((uint32_t)from[0])<<24);
APS_Lab 0:8ca1e814a851 45 }
APS_Lab 0:8ca1e814a851 46
APS_Lab 0:8ca1e814a851 47 //=========================== private =========================================
APS_Lab 0:8ca1e814a851 48
APS_Lab 0:8ca1e814a851 49 //=========================== helpers =========================================
APS_Lab 0:8ca1e814a851 50