# Persistent RAM - ADL\_MEM\_UNINIT

**URL:** <https://forum.sierrawireless.com/t/persistent-ram-adl-mem-uninit/3836>\
**Category:** Development tools\
**Created:** [November 6, 2009, 4:42pm UTC](https://forum.sierrawireless.com/t/persistent-ram-adl-mem-uninit/3836 "2009-11-06T16:42:38Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![awneil](https://avatars.discourse-cdn.com/v4/letter/a/49beb7/32.png) [@awneil](https://forum.sierrawireless.com/u/awneil)\
**Post date:** [November 6, 2009, 4:42pm UTC](https://forum.sierrawireless.com/t/persistent-ram-adl-mem-uninit/3836/1 "2009-11-06T16:42:38Z")

</div>

This is a fairly recent introduction - SDK 2.10 with firmware 7.2, according to [viewtopic.php?f=19&t=2679&p=9781&hilit=ADL\_MEM\_UNINIT#p9781](http://www.wavecom.com/modules/movie/scenes/forums/viewtopic.php?f=19&t=2679&p=9781&hilit=ADL_MEM_UNINIT#p9781)

But it’s actually just a macro:

```auto
#define ADL_MEM_UNINIT ( _X ) _X __attribute__ ((section("UNINIT")));
```

So my question is: if I were to define that “manually” (or just apply the section attribute “manually”) in an SDK before v2.10 and/or firmware before R7.2, would it work?

---

<div class="post-metadata">

**Author:** ![awneil](https://avatars.discourse-cdn.com/v4/letter/a/49beb7/32.png) [@awneil](https://forum.sierrawireless.com/u/awneil)\
**Post date:** [July 21, 2010, 4:40pm UTC](https://forum.sierrawireless.com/t/persistent-ram-adl-mem-uninit/3836/2 "2010-07-21T16:40:40Z")

</div>

> [@awneil](#):
>
> So my question is: if I were to define that “manually” (or just apply the section attribute “manually”) in an SDK before v2.10 and/or firmware before R7.2, would it work?

And my answer is: No. 😢

The appropriate entries appear in the map file, but variables defined with this attribute are zeroed when the unit (re)starts.

So my question now is: what else is additionally required to get this to work in an SDK before v2.10 and/or firmware before R7.2❓  
(specifically, v6.63g)

Is it just a matter of getting the linker script (and whatever else) right, or does it actually rely upon features within the firmware itself?

---

<div class="post-metadata">

**Author:** ![blackyblack](https://avatars.discourse-cdn.com/v4/letter/b/2acd7d/32.png) [@blackyblack](https://forum.sierrawireless.com/u/blackyblack)\
**Post date:** [July 22, 2010, 4:51am UTC](https://forum.sierrawireless.com/t/persistent-ram-adl-mem-uninit/3836/3 "2010-07-22T04:51:28Z")

</div>

I think it is a matter of linker section with attribute “do not initialize” (for IAR compiler). For GCC there should be another linker script options. And also you sholud know where in memory to place this section and mark your variables to put them into that section.

---

<div class="post-metadata">

**Author:** ![awneil](https://avatars.discourse-cdn.com/v4/letter/a/49beb7/32.png) [@awneil](https://forum.sierrawireless.com/u/awneil)\
**Post date:** [July 22, 2010, 5:45am UTC](https://forum.sierrawireless.com/t/persistent-ram-adl-mem-uninit/3836/4 "2010-07-22T05:45:14Z")

</div>

Yes, all that is happening - but the “persistent” data does not “persist”

---

<div class="post-metadata">

**Author:** ![awneil](https://avatars.discourse-cdn.com/v4/letter/a/49beb7/32.png) [@awneil](https://forum.sierrawireless.com/u/awneil)\
**Post date:** [July 22, 2010, 6:32am UTC](https://forum.sierrawireless.com/t/persistent-ram-adl-mem-uninit/3836/5 "2010-07-22T06:32:56Z")

</div>

I think I need to modify gcc.lkopt - but how does one do that?

It seems to be automatically generated…

See: [viewtopic.php?f=108&t=5049](https://forum.sierrawireless.com/viewtopic.php?f=108&t=5049)

---

<div class="post-metadata">

**Author:** ![blackyblack](https://avatars.discourse-cdn.com/v4/letter/b/2acd7d/32.png) [@blackyblack](https://forum.sierrawireless.com/u/blackyblack)\
**Post date:** [July 23, 2010, 4:56am UTC](https://forum.sierrawireless.com/t/persistent-ram-adl-mem-uninit/3836/6 "2010-07-23T04:56:38Z")

</div>

Why don’t you use OS higher than R7.2? 🙂

---

<div class="post-metadata">

**Author:** ![awneil](https://avatars.discourse-cdn.com/v4/letter/a/49beb7/32.png) [@awneil](https://forum.sierrawireless.com/u/awneil)\
**Post date:** [July 23, 2010, 5:46am UTC](https://forum.sierrawireless.com/t/persistent-ram-adl-mem-uninit/3836/7 "2010-07-23T05:46:10Z")

</div>

Because the upgrade is not an option in this particular case!

---

<div class="post-metadata">

**Author:** ![daav](https://sea1.discourse-cdn.com/flex025/user_avatar/forum.sierrawireless.com/daav/32/2767_2.png) [@daav](https://forum.sierrawireless.com/u/daav)\
**Post date:** [July 27, 2010, 2:40pm UTC](https://forum.sierrawireless.com/t/persistent-ram-adl-mem-uninit/3836/8 "2010-07-27T14:40:43Z")

</div>

I answered on how to use a custom link script.

However, I’m afraid this won’t be enough…  
Indeed, as soon as you use Developer Studio, the generated linker script always contains the uninitialized area, even for applications built on top of “old” OS versions.  
It’s not only a matter of link, but also updates implemented at Firmware/OS level to take care of this area…

---

<div class="post-metadata">

**Author:** ![awneil](https://avatars.discourse-cdn.com/v4/letter/a/49beb7/32.png) [@awneil](https://forum.sierrawireless.com/u/awneil)\
**Post date:** [August 2, 2010, 2:07pm UTC](https://forum.sierrawireless.com/t/persistent-ram-adl-mem-uninit/3836/9 "2010-08-02T14:07:46Z")

</div>

> [@daav](#):
>
> I answered on how to use a custom link script.

Here: [How to customise gcc.lkopt ?](https://forum.sierrawireless.com/t/how-to-customise-gcc-lkopt/4578/1) - thanks!

---

<div class="post-metadata">

**Author:** ![awneil](https://avatars.discourse-cdn.com/v4/letter/a/49beb7/32.png) [@awneil](https://forum.sierrawireless.com/u/awneil)\
**Post date:** [August 3, 2010, 6:56pm UTC](https://forum.sierrawireless.com/t/persistent-ram-adl-mem-uninit/3836/10 "2010-08-03T18:56:44Z")

</div>

See [https://forum.sierrawireless.com/t/whats-wrong-with-this-linker-script/4598/1](https://forum.sierrawireless.com/t/whats-wrong-with-this-linker-script/4598/1) for problems with the Linker script.
