<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.arm.com/utility/feedstylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>OnChip ERAM and External RAM access from C51</title><link>https://community.arm.com/developer/tools-software/tools/f/keil-forum/21669/onchip-eram-and-external-ram-access-from-c51</link><description> 
I am using AT89C5131 uC with hardwaired external 32K RAM from
address 0x0000 to 0x07fff. I am able to read/write OnChip 1K RAM and
External connected RAM by toggling EXTRAM Bit in AUXR register. 

 
I wanted to declare huge amount of varaiables in both</description><dc:language>en-US</dc:language><generator>Telligent Community 10</generator><item><title>RE: OnChip ERAM and External RAM access from C51</title><link>https://community.arm.com/thread/48092?ContentTypeID=1</link><pubDate>Wed, 02 May 2007 10:57:31 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:13e31f2a-f876-4296-892f-95d29b7b9d4a</guid><dc:creator>doubt that my ISP Al Bradford</dc:creator><description>&lt;p&gt;&lt;p&gt;
Steve;&lt;br /&gt;
I&amp;#39;m not familar with your device and it&amp;#39;s addressing modes. If you
are accessing the memory with instructions that will decode to the
MOVX instruction, I suggest that you look at the absolute accessing
macros defined in the absacc.h include file. Search the User&amp;#39;s Guide
for absacc.h.&lt;br /&gt;
Bradford&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: OnChip ERAM and External RAM access from C51</title><link>https://community.arm.com/thread/99167?ContentTypeID=1</link><pubDate>Wed, 02 May 2007 09:47:15 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:db63d4c2-f8d2-4ef7-b484-fb0e4f170ee9</guid><dc:creator>Andy Neil</dc:creator><description>&lt;p&gt;&lt;p&gt;
The question was why do you specifically want to use &lt;b&gt;_at_&lt;/b&gt;,
rather than let the tools do the locating?&lt;/p&gt;

&lt;p&gt;
&lt;i&gt;&amp;quot;Like data (for Direct Memory), xdata(External Memory) keil may
be having keyword to access ERAM.&amp;quot;&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
&amp;quot;XDATA&amp;quot; should not be thought of as &amp;quot;External Memory&amp;quot;.&lt;br /&gt;
Yes, that&amp;#39;s how the term originated way back with the first Intel
8051 - when it always was literally external to the chip - but many
modern derivatives have on-chip XRAM.&lt;/p&gt;

&lt;p&gt;
Instead, just think of &amp;quot;XDATA&amp;quot; as &amp;quot;memory accessed with the
&lt;b&gt;MOVX&lt;/b&gt; instruction&amp;quot;&lt;/p&gt;

&lt;p&gt;
&amp;quot;ERAM&amp;quot; is probably just a name for &amp;quot;On-chip XRAM&amp;quot; - check the
&lt;b&gt;Datasheet&lt;/b&gt;&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: OnChip ERAM and External RAM access from C51</title><link>https://community.arm.com/thread/75062?ContentTypeID=1</link><pubDate>Wed, 02 May 2007 09:27:31 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:d5f77771-c5b0-41df-a07d-307b5ea94f16</guid><dc:creator>Steve Allen</dc:creator><description>&lt;p&gt;&lt;p&gt;
Basically I am planning to use both ERAM (1K) and External RAM
(32K)for static dynamically change Que algorithams, and also in my
program two interrupt ISR will access RAM locations on address
bases.&lt;/p&gt;

&lt;p&gt;
Like data (for Direct Memory), xdata(External Memory) keil may be
having keyword to access ERAM.&lt;/p&gt;

&lt;p&gt;
I don&amp;#39;t know. Keil Guru&amp;#39;s please help me??&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: OnChip ERAM and External RAM access from C51</title><link>https://community.arm.com/thread/88311?ContentTypeID=1</link><pubDate>Wed, 02 May 2007 07:36:57 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:d799df4e-08ba-4306-ba45-5982bdf301d9</guid><dc:creator>erik  malund</dc:creator><description>&lt;p&gt;&lt;p&gt;
&lt;i&gt;Why do you want to use the _at_ keyword?&lt;/i&gt;&lt;br /&gt;
I do (by other means) when using SILabs chips.&lt;/p&gt;

&lt;p&gt;
This allow &amp;#39;sorting&amp;#39; of variables so that the most frequently
accessed ones are in the faster internal RAM.&lt;/p&gt;

&lt;p&gt;
However, instead of using the _at_, which ever so easily lead to
errors (overlap), what I do is to declare all RAM in an assembler
module and have a .h module with all the extenals decalrations to
it.&lt;/p&gt;

&lt;p&gt;
Erik&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: OnChip ERAM and External RAM access from C51</title><link>https://community.arm.com/thread/88309?ContentTypeID=1</link><pubDate>Wed, 02 May 2007 07:36:18 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:1c013880-eec0-41d1-8940-80b53b21cb3a</guid><dc:creator>Andy Neil</dc:creator><description>&lt;p&gt;&lt;p&gt;
3) Use XDATA banking?&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: OnChip ERAM and External RAM access from C51</title><link>https://community.arm.com/thread/50692?ContentTypeID=1</link><pubDate>Wed, 02 May 2007 07:32:50 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:8f94ce03-66f8-489d-8f2e-f80bfad0a030</guid><dc:creator>erik  malund</dc:creator><description>&lt;p&gt;&lt;p&gt;
&lt;i&gt;I wanted to declare huge amount of varaiables in both the
RAMs&lt;/i&gt;&lt;br /&gt;
you have two choices&lt;br /&gt;
1) let the 1k be the permanent &amp;#39;bottom&amp;#39; of the RAM&lt;br /&gt;
2) have a separate routine read_internal_ram()&lt;/p&gt;

&lt;p&gt;
Erik&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: OnChip ERAM and External RAM access from C51</title><link>https://community.arm.com/thread/50691?ContentTypeID=1</link><pubDate>Tue, 01 May 2007 18:38:11 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:9fd39688-eecf-4ca6-ba21-0f477f2f5b79</guid><dc:creator>Andy Neil</dc:creator><description>&lt;p&gt;&lt;p&gt;
Why do you want to use the &lt;b&gt;_at_&lt;/b&gt; keyword?&lt;/p&gt;

&lt;p&gt;
Why don&amp;#39;t you just leave allocating the addresses to the tools -
especially if you have a &amp;quot;huge amount&amp;quot; of variables?!&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>