Thanks for testing first of all!

That sounds strange, I even see that you just did just the read test,
which is basically:

void flashpage_rwwee_read(int page, void *data)
{
    assert(page < (int)FLASHPAGE_RWWEE_NUMOF);

    memcpy(data, flashpage_rwwee_addr(page), FLASHPAGE_SIZE);
}

Is the RWWEE displayed info correct for the SAMD:

RWWEE Flash start addr: 0x00400000
RWWEE Number of pages:  8

I will get the datasheet now and check if there is some difference not
obvious from the include files.

Cheers,
Federico


Il giorno mar 29 gen 2019 alle ore 22:50 Kees Bakker <k...@sodaq.com>
ha scritto:
>
> Hey Federico,
>
> Thanks for doing the flashpage stuff.
> I have some SODAQ boards, basically all SAMD21, that I use
> to run the flashpage test.
> Unfortunately, the test program crashes for read_rwwee
>
> main(): This is RIOT! (Version: 2019.04-devel-16-gc2c6f-sam_rwee_support)
> ROM flash read write test
>
> Please refer to the README.md for further information
>
> Flash start addr:       0x00000000
> Page size:              256
> Number of pages:        1024
> RWWEE Flash start addr: 0x00400000
> RWWEE Number of pages:  8
>  > read_rwwee 0
>
> Context before hardfault:
>     r0: 0x20000c24
>     r1: 0x00400000
>     r2: 0x00000100
>     r3: 0x00000000
>    r12: 0xffffffff
>     lr: 0x0000381b
>     pc: 0x00003f78
>    psr: 0x21000000
>
> Misc
> EXC_RET: 0xfffffffd
> Attempting to reconstruct state for debugging...
> In GDB:
>    set $pc=0x3f78
>    frame 0
>    bt
>
> ISR stack overflowed by at least 8 bytes.
>
> What can that be?
> -- Kees
>
> On 28-01-19 04:32, Federico Pellegrin wrote:
> > Hi Marian,
> > Sure, no problem. I just created a PR at
> > https://github.com/RIOT-OS/RIOT/pull/10884
> >
> > As it was still very early and uncertain how to structure I've started
> > like this, but indeed maybe easier to keep track directly as a PR.
> >
> > Thanks!
> > Federico
> >
> >
> > Il giorno dom 27 gen 2019 alle ore 13:08 Marian Buschsieweke
> > <marian.buschsiew...@ovgu.de> ha scritto:
> >> Hi,
> >>
> >> do you mind to create a pull request for it? This imho would make 
> >> discussion of the code easier. You can add [WIP] in the title to highlight 
> >> it's work in progress.
> >>
> >> Cheers,
> >> Marian
> >>
> >> Am 27. Januar 2019 11:44:21 MEZ schrieb Federico Pellegrin 
> >> <f...@evolware.org>:
> >>> Hi,
> >>> I did a mostly working (please see below for why mostly!) scratch of
> >>> the implementation and put it here for now:
> >>> https://github.com/fedepell/RIOT/commit/3b9de66ce0a9d722460c3b236ef67835df91cd90
> >>>
> >>> I tested it and it is working on my saml21-xpro board. I can write on
> >>> the 8KBs of RWWEE memory and read it and see that it is still there
> >>> after rebooting and stuff. I took care to make it compile also on
> >>> saml11 (define names are different) although I cannot test this. As
> >>> you will see the code is mostly a copy & paste of the standard
> >>> flashpage, with a bunch of different defines used (for base adresses
> >>> and registers).
> >>> As I presumed in previous emails, it looks kinda ugly to me, but I'm
> >>> not sure we could reuse totally the code without a major refactoring
> >>> or by making many if-s in the common code (even asserts would depend
> >>> on if we are using RWWEE or not) to keep them united (and therefore
> >>> less performant). Please give it a look and let me know what do you
> >>> think!
> >>>
> >>>
> >>> As for "mostly working" what is still puzzling me is that the code
> >>> seems to have some kind of alignment issue or so (although I take care
> >>> of using aligned memory structures are required) since if I add/remove
> >>> some statement it may then just hang or generate a hardfault. It is
> >>> quite puzzling me since I tried to rule out all possibilities but
> >>> cannot get it working. But maybe it's just that I'm stubbornly doing
> >>> this from some time and I need to detach from it mentally for a while
> >>> ;) But since I have to go out in a while I wanted to commit it so if
> >>> someone wants to give it a look in the meantime, mostly refering to
> >>> the structural question of how to implement it, it is there on github.
> >>> And maybe someone has a general suggestion about this maybe-alignment
> >>> issue from previous experience!
> >>>
> >>> Thanks!
> >>>
> >>> Cheers,
> >>> Federico
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> Il giorno sab 26 gen 2019 alle ore 05:46 Federico Pellegrin
> >>> <f...@evolware.org> ha scritto:
> >>>>
> >>>>   Hi Dylan and Oleg,
> >>>>   Thanks for the feedback!
> >>>>
> >>>>   Sorry I meant kilobyte indeed, but always write it wrong, both the k-s
> >>>>   (should be K I see now) and b-s ;)
> >>>>
> >>>>   Regarding implementation:
> >>>>
> >>>>   To make it interrupt driven I guess it would be quite more a radical
> >>>>   change, so I would look at least for now for a blocking one, which
> >>>>   basically makes it just an additional flash area no different than the
> >>>>   main one.
> >>>>
> >>>>   About doing it similar to eeprom what I see, API wise, is that the
> >>>>   eeprom one you link (and eeprom in general) is not page based, while
> >>>>   the flash one (and also the RWWEE since the interface is the same) is
> >>>>   page based. So you need always to work with pages (erase especially).
> >>>>   So I would see it more indeed like the flashpage itself indeed. That's
> >>>>   why my doubts on having it separate or not, since mostly what changes
> >>>>   in the code would be the start offset, various limits now #defines
> >>>>   (such as FLASHPAGE_NUMOF) and some flags when accessing the CPU (ie
> >>>>   using NVMCTRL_CTRLA_CMD_RWWEEER instead of NVMCTRL_CTRLA_CMD_ER)
> >>>>
> >>>>
> >>>>   Cheers,
> >>>>   Federico
> >>>>
> >>>>   Il giorno ven 25 gen 2019 alle ore 09:21 Dylan Laduranty
> >>>>   <dylanladura...@gmail.com> ha scritto:
> >>>>>   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
> >>
> >> --
> >> Via mobile phone
> >> _______________________________________________
> >> 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
>
> _______________________________________________
> 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