Why does ram addressing start at 0x00010000? Topic is solved

If you have a simple question and just want an answer.
MFlamer
Member++
Posts: 19
Joined: Wed Jan 14, 2015 2:17 am

Why does ram addressing start at 0x00010000?

Post by MFlamer »

There must be a good reason..... Sure would be nice to have an address fit in 16b without having to mask in that extra bit. 

Thanks!

View Solution
User avatar
infiniteimprobability
Verified
XCore Legend
Posts: 1164
Joined: Thu May 27, 2010 10:08 am

Post by infiniteimprobability »

I beleive it's a simple way of catching null pointers - any memory accesses without that bit set will throw an exception.

There are lots addressing modes that allow you to fit branches/loads/stores into 16 or 32b instructions efficiently using the Data Pointer / Program Counter, constant pool or immediate etc..

 

Engineer at XMOS
User avatar
Bianco
XCore Expert
Posts: 754
Joined: Thu Dec 10, 2009 6:56 pm

Post by Bianco »

From 0 tot 64k is the boot ROM memory space