Usable/contributable memory map?

39 views
Skip to first unread message

Paul Sokolovsky

unread,
Jul 14, 2015, 5:44:58 PM7/14/15
to esp82...@googlegroups.com
Hello,

This tries to elaborate on idea from Angus' last mail - of having
memory map documentation which would supersede previously available
memory maps, and thus would motivate people to contribute to it, and
not to older memory map wikis. Of course, to supersede, it would need
to contain all the info from previous wikis.

There's page
http://esp8266-re.foogod.com/w/index.php/Memory_Regions_(IoT_RTOS_SDK_0.9.9) ,
but that suffix looks strange - it cannot be the case that GPIO area
has one address in "IoT_RTOS_SDK_0.9.9", and another address in some
other SDK, right? Glancing over that page however explains where 0.9.9
comes from - the large share of vertical size of that page, and what
makes it hard to read, is cross-references to function/addresses in
that SDK.

But that means that it's almost impossible to contribute to that page
unless someone uses 0.9.9 RTOS SDK (and as discussed elsewhere, chances
that an average random person uses it are low).

Cross-referencing is important and useful device in RE, but any chance
to have an easy to use and contribute page which concentrates on Memory
Map, and uses cross-references as a scalable aid to those means?


Thanks,
Paul mailto:pmi...@gmail.com

Alex Stewart

unread,
Jul 15, 2015, 2:47:22 PM7/15/15
to Paul Sokolovsky, esp82...@googlegroups.com
For clarification, the current "memory regions" page is under the "IoT RTOS SDK 0.9.9" area because it is specifically just an accounting of "what memory locations that version of the SDK accesses", and contains lots of notes (such as which functions access which locations) which is entirely specific to that version of that SDK.  It also doesn't include any information about other portions of memory (IRAM, IROM, user RAM, etc) which the SDK code itself doesn't actually touch.  I created it mainly as a way to keep track and cross-reference things for myself while I'm pulling apart the SDK code..

It was always my intention that we should have a more general memory map (under the "Platform" section of the site) with exactly what you're talking about:  Pulling all the information together from all the other sources out there into a cohesive map that covers everything, and is not specific to any particular SDK/etc.  I just haven't had a chance to create that yet..

So yes, I'm all in favor of this, if somebody's willing to put together a new page for it (we can use the "IoT RTOS SDK 0.9.9" page as a start, and just remove all the SDK-specific info which doesn't belong in a more general-purpose memory map, then start adding in other things from other sources as appropriate)..

--Alex


--
You received this message because you are subscribed to the Google Groups "esp8266-re" group.
To unsubscribe from this group and stop receiving emails from it, send an email to esp8266-re+...@googlegroups.com.
To post to this group, send email to esp82...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/esp8266-re/20150715004455.11f0643c%40x230.
For more options, visit https://groups.google.com/d/optout.

Paul Sokolovsky

unread,
Jul 15, 2015, 3:18:21 PM7/15/15
to Alex Stewart, esp82...@googlegroups.com
Hello,

On Wed, 15 Jul 2015 11:47:21 -0700
Alex Stewart <foo...@gmail.com> wrote:

> For clarification, the current "memory regions" page is under the
> "IoT RTOS SDK 0.9.9" area because it is specifically just an
> accounting of "what memory locations that version of the SDK
> accesses", and contains lots of notes (such as which functions access
> which locations) which is entirely specific to that version of that
> SDK. It also doesn't include any information about other portions of
> memory (IRAM, IROM, user RAM, etc) which the SDK code itself doesn't
> actually touch. I created it mainly as a way to keep track and
> cross-reference things for myself while I'm pulling apart the SDK
> code..
>
> It was always my intention that we should have a more general memory
> map (under the "Platform" section of the site) with exactly what

Nice, thanks! Btw, what's "Hardware" page is for? It takes whole slot
in left-side nav pane, but is empty. How "Hardware" differs from
"Platform".

> you're talking about: Pulling all the information together from all
> the other sources out there into a cohesive map that covers
> everything, and is not specific to any particular SDK/etc. I just
> haven't had a chance to create that yet..
>
> So yes, I'm all in favor of this, if somebody's willing to put
> together a new page for it (we can use the "IoT RTOS SDK 0.9.9" page
> as a start, and just remove all the SDK-specific info which doesn't
> belong in a more general-purpose memory map, then start adding in
> other things from other sources as appropriate)..

+1

>
> --Alex
>

[]


--
Best regards,
Paul mailto:pmi...@gmail.com

Alex Stewart

unread,
Jul 15, 2015, 6:36:31 PM7/15/15
to Paul Sokolovsky, esp82...@googlegroups.com
Btw, what's "Hardware" page is for? It takes whole slot
in left-side nav pane, but is empty. How "Hardware" differs from
"Platform".

Well, I'd kinda envisioned that the "Hardware" section would be for things having to do with the physical construction of the chips or the corresponding modules (i.e. some of the work that folks out there have already done in terms of figuring out the components and schematics that go into the different varieties of ESP module, or maybe figuring out undocumented information about electrical characteristics (e.g. are the ESP8266 GPIOs actually 5V tolerant or not?, etc)

(Of course, I haven't personally done any of that sort of stuff (yet), and I haven't gotten around to going out and collecting what info there is elsewhere on the net on it yet either, so that section is kinda empty at the moment.)

"Platform" on the other hand, was intended for "how the software talks to the hardware".. for example, memory layout and IO port mappings, etc.

At least that was my original idea..  It should be said I really just threw together the basic site layout so there would be something there when I was first setting things up.. I'm not opposed to changing how we organize things if it turns out these categories don't make sense or aren't as useful as other ways of laying things out..

--Alex

Angus Gratton

unread,
Jul 16, 2015, 12:43:48 AM7/16/15
to Alex Stewart, Paul Sokolovsky, esp82...@googlegroups.com
Hi everyone,

I wanted to make some additions to the memory map page, so I imported
the github wiki version here and then made some minor additions:

http://esp8266-re.foogod.com/wiki/Platform:Memory_Map


Angus

Paul Sokolovsky

unread,
Jul 16, 2015, 5:30:10 AM7/16/15
to Alex Stewart, esp82...@googlegroups.com
Hello,

On Wed, 15 Jul 2015 11:47:21 -0700
Alex Stewart <foo...@gmail.com> wrote:

[]

> actually touch. I created it mainly as a way to keep track and
> cross-reference things for myself while I'm pulling apart the SDK
> code..

That's nice, but then it's just another one-man's personal-notes
wiki. It's ok, but matter, everyone's got their own, and there's no
incentive to contribute to somebody else's notes if you've got yours.
But commits like this:
https://github.com/SuperHouse/esp-open-rtos/commit/e0e7814856e3b828ddc29f9ae10c9381848d2baf#diff-04c6e90faac2675aa89e2176d2eec7d8L103
show that people treat your wiki as more than just somebody's personal
notes (as they replace links to generally known wiki with useful
content to your wiki). That's responsibility ;-). You may not care
whether your wiki is maintained, but other people do.

Summing up: next time when you got a few minutes to either describe
random one-in-a-thousand function or to structure wiki better and port
content from other wikis/blogs, you know what other people think about
that ;-). (And you're of course right to expect other people to help
with that, except see above for personal-notes-wikis - until you uncast
your wiki from that status, it'll always be a leap of faith for
somebody else to do it).

Alex Stewart

unread,
Jul 16, 2015, 1:52:58 PM7/16/15
to Angus Gratton, Paul Sokolovsky, esp82...@googlegroups.com
Cool, thanks Angus!

We should probably merge/reconcile the "SPI Flash ROM layout" sections with http://esp8266-re.foogod.com/wiki/SPI_Flash_Format (which I had originally put under the "OTP ROMs" section of the site, but perhaps arguably makes more sense under "Platform")..

--Alex

Paul Sokolovsky

unread,
Jul 16, 2015, 3:45:42 PM7/16/15
to Alex Stewart, Angus Gratton, esp82...@googlegroups.com
Hello,

On Thu, 16 Jul 2015 10:52:58 -0700
Alex Stewart <foo...@gmail.com> wrote:

> Cool, thanks Angus!
>
> We should probably merge/reconcile the "SPI Flash ROM layout"
> sections with http://esp8266-re.foogod.com/wiki/SPI_Flash_Format
> (which I had originally put under the "OTP ROMs" section of the site,
> but perhaps arguably makes more sense under "Platform")..

It should be also noted that the above page doesn't really describe
"SPI Flash format" from platform's port of view. It describes it in
large part from point of view of optional, non-opensource (buggy?)
vendor 2nd-stage boot-loader. From the point of view of platform, that
bootloader (boot.bin) is just an arbitrary application, and there can
be different 2nd stage bootloaders, each with its own partitioning
scheme (and indeed, there're, e.g.
http://richard.burtons.org/2015/05/18/rboot-a-new-boot-loader-for-esp8266/)

So, it would be nice to clearly separate (by having different pages)
platform Flash ROM partitioning (roughly Boot mode 1 on that page),
from anything else.

>
> --Alex
>
> On Wed, Jul 15, 2015 at 9:43 PM, Angus Gratton <g...@projectgus.com>
> wrote:
>
> > Hi everyone,
> >
> > I wanted to make some additions to the memory map page, so I
> > imported the github wiki version here and then made some minor
> > additions:
> >
> > http://esp8266-re.foogod.com/wiki/Platform:Memory_Map
> >
> >
> > Angus
> >



Paul Sokolovsky

unread,
Jul 16, 2015, 4:54:04 PM7/16/15
to Angus Gratton, esp82...@googlegroups.com
Hello,
Thanks Angus. To join the party, I added some extra data from my fork:
https://github.com/pfalcon/esp8266-wiki/wiki/Memory-Map/_compare/5087dddf1d05ee7329448862f28e9d06f7a38817...74264922d350f714379903faa82bbb5a5c938f78

I stopped at adding 2nd block at the same base address: original wiki
says 60000D00h is I2C, and I saw ADC-related functions poke there
too (references provided). How could that be? Maybe SAR ADC is accessed
via I2C?..

>
>
> Angus
Reply all
Reply to author
Forward
0 new messages