Browse Source

make the linker information work... add an inline to ignore warning..

symbols defined by the linker script are all treated as addresses, so
we need to get the address, and cast it to an integer for the length
case..

The return value must be used, but as we init early on, we don't need
to check it, so just hide the error w/ an inline function..
mbed-sx1276
John-Mark Gurney 3 years ago
parent
commit
a070e6802b
2 changed files with 19 additions and 3 deletions
  1. +9
    -3
      strobe_rng_init.c
  2. +10
    -0
      strobe_rng_init.h

+ 9
- 3
strobe_rng_init.c View File

@@ -2,9 +2,15 @@

#include <strobe_rng_init.h>

extern uint8_t rng_save;
/*
* Note: rng_save is really REAL_RNG_SAVE_LEN, BUT, we want to use the
* uninitalized SRAM after it as entropy.
*/
extern uint8_t rng_save[2*1048];
extern int rng_save_len;

#define REAL_RNG_SAVE_LEN ((int)&rng_save_len)

void
strobe_rng_init(void)
{
@@ -15,11 +21,11 @@ strobe_rng_init(void)
* On first boot, SRAM is uninitialized and randomness from
* it is used. On reset, the previously saved state is used.
*/
strobe_seed_prng(&rng_save, 2*1024);
strobe_seed_prng(rng_save, 2*1024);

/*
* Save entropy for next reset.
*/
r = strobe_randomize(&rng_save, rng_save_len);
r = strobe_randomize(rng_save, REAL_RNG_SAVE_LEN);
(void)r;
}

+ 10
- 0
strobe_rng_init.h View File

@@ -1,2 +1,12 @@
#include <strobe.h>

void strobe_rng_init(void);

static inline void
bare_strobe_randomize(uint8_t *ptr, ssize_t len)
{
int r;

r = strobe_randomize(ptr, len);
(void)r;
}

Loading…
Cancel
Save