APS Lab
/
STM32F4_SmartMesh_QSL
SmartMesh QSL for STM32F4 version
Fork of COG-AD4050_QSL by
dn_endianness.c@1:b909b8399252, 2018-07-12 (annotated)
- 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?
User | Revision | Line number | New 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 |