The only difference between RWWEE and regular flash is that they implemented separate NVM controller for the RWWEE, so you can access it without blocking the main flash (and without blocking program execution if it is executed from flash).
 
As for now, RIOT uses blocking flashpage driver (https://github.com/RIOT-OS/RIOT/blob/master/cpu/sam0_common/periph/flashpage.c#L118), so there will be no difference between using RWWEE and main flash at all. To utilize RWWEE advantage, driver must be interrupt-based.

In all other aspects, there's no difference between RWWEE and main flash. If you need EEPROM emulation, same wear-leveling and read-modify-write algorithms should be implemented.

P.S. STM32L0 and STM32L4 with dual bank NVM have the same functionality — both banks can be read or one bank read and another bank written simultaneously. See AN4767 for details — https://www.st.com/content/ccc/resource/technical/document/application_note/group0/ab/6a/0f/b7/1a/84/40/c3/DM00230416/files/DM00230416.pdf/jcr:content/translations/en.DM00230416.pdf
-- 
Sincerely yours,
Oleg Artamonov
+7 (916) 631-34-90
www.unwds.com
 
 
 
25.01.2019, 11:21, "Dylan Laduranty" <dylanladura...@gmail.com>:
Hello Federico,
 
IIRC, this flash can be use as a virtual EEPROM. Maybe It would be better to write a eeprom driver (like STM32 [1]) rather than add it to the flashpage driver ?
I also think this memory is 8KB for SAML21J18 (not 8Kb), which is a lot :)
 
As a side note: SAML21 also have 8KB of Low Power SRAM in addition to its 32 KB of SRAM
 
I've never played with these additional memories but I'll be happy to help.
 
Cheers,
Dylan
 
[1] https://github.com/RIOT-OS/RIOT/blob/master/cpu/stm32_common/periph/eeprom.c
 
Le mer. 23 janv. 2019 à 14:27, Federico Pellegrin <f...@evolware.org> a écrit :
Hi,
Working on SAML21 based project it came to my attention also the
presence of an 8Kb additional flash that is called "Read-While-Write"
(or RWWEE in the datasheet) that, as far as I understood, can be
programmed and read in a very similar way to the normal flash. This is
currently not supported anyhow in RIOT as far as I see. This is also
present in other SAM chips (a grep on the RIOT sam0 common includes
tells me saml21, samd21 and samr30).

Well it's just 8Kb (in saml21 case) but a customer is asking about it ;)

Before starting to fiddle with code I was wondering if any of you
already saw this or had intention to work on or had problems with this
or.... any information would be great :)

On the other side I would also be interested in an opinion if the
access to this facility should eventually be kept totally separate
from the current (with some possible code redundancy, but with the
possibility no to include it into a project) or could be integrated
into the current flashpage driver (bringing some complication of the
logic of the current code)

Thanks!

Cheers,
Federico
_______________________________________________
devel mailing list
devel@riot-os.org
https://lists.riot-os.org/mailman/listinfo/devel


--
Dylan Laduranty
,

_______________________________________________
devel mailing list
devel@riot-os.org
https://lists.riot-os.org/mailman/listinfo/devel

_______________________________________________
devel mailing list
devel@riot-os.org
https://lists.riot-os.org/mailman/listinfo/devel

Reply via email to