<?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>How I can change the starting address in monitor mode</title><link>https://community.arm.com/developer/tools-software/tools/f/keil-forum/13684/how-i-can-change-the-starting-address-in-monitor-mode</link><description> Problem: 
I would like to change Reset address (0x0000) to 
another one (0x800000) in the MONITOR Mode, because in 
our hardware RAM starts at this address. 
I am able to load my program into RAM using bootstrap mode 
and my MONITOR, but I am unable</description><dc:language>en-US</dc:language><generator>Telligent Community 10</generator><item><title>RE: How I can change the starting address in monitor mode</title><link>https://community.arm.com/thread/37166?ContentTypeID=1</link><pubDate>Tue, 24 Oct 2000 11:06:15 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:79690277-cb04-4495-baa5-af57172136d0</guid><dc:creator>Keil Support</dc:creator><description>&lt;p&gt;In uVision2:&lt;br /&gt;
&lt;br /&gt;
1. In &lt;b&gt;&lt;i&gt;Project Options-Target Options&lt;/i&gt;&lt;/b&gt;: un-check the &lt;b&gt;Use on-chip RAM&lt;/b&gt; and &lt;b&gt;Use on-chip ROM&lt;/b&gt; check boxes.&lt;br /&gt;
&lt;br /&gt;
2. In &lt;b&gt;&lt;i&gt;Project Options-Target Options&lt;/i&gt;&lt;/b&gt;: under &lt;b&gt;External Memory&lt;/b&gt; enter the appropriate ROM range and RAM range.  ROM will probably be starting at 0x80000 (for a length of 0x8000) and RAM will probably start at 0x88000 (for a length of 0x8000).&lt;br /&gt;
&lt;br /&gt;
3. In &lt;b&gt;&lt;i&gt;Project Options-L166 Misc&lt;/i&gt;&lt;/b&gt;: enter 0x80000 for the &lt;b&gt;Interrupt Vector Table Address&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
4. Be sure to include the &lt;b&gt;START167.A66&lt;/b&gt; startup file in your project.&lt;br /&gt;
&lt;br /&gt;
Rebuild your project and take a look at the MAP file.  You should see everything in the correct place.&lt;br /&gt;
&lt;br /&gt;
I tried this with the &lt;b&gt;HELLO&lt;/b&gt; example program.  Following is the MAP file output from that build.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;
MEMORY MAP OF MODULE:  Hello (HELLO)


START     STOP      LENGTH    TYPE  RTYP  ALIGN  TGR  GRP  COMB  CLASS   SECTION NAME
=====================================================================================
00FA00H   00FBFFH   000200H   ---   ---   ---    ---  ---  ---   * SYSTEM STACK *
00FC00H   00FC1FH   000020H   DATA  ---   BYTE   ---  ---  ---   *REG*   ?C_MAINREGISTERS
080000H   080003H   000004H   ---   ---   ---    ---  ---  ---   * INTVECTOR TABLE *
080004H   080005H   000002H   XDATA REL   WORD   ---  ---  GLOB  ---     ?C_INITSEC
080006H   080045H   000040H   DATA  REL   WORD   ---    2  PUBL  NCONST  ?NC??PRNFMT
080046H   080052H   00000DH   DATA  REL   BYTE   ---    2  PUBL  NCONST  ?NC?HELLO
080054H   080171H   00011EH   CODE  REL   WORD   ---  ---  PRIV  ICODE   ?C_STARTUP_CODE
080172H   080475H   000304H   CODE  REL   WORD   ---    1  PUBL  NCODE   ?C_LIB_CODE
080476H   0804A7H   000032H   CODE  REL   WORD   ---    1  PRIV  NCODE   ?PR?PUTCHAR
0804A8H   0804CDH   000026H   CODE  REL   WORD   ---    1  PUBL  NCODE   ?PR?HELLO
088000H   0881FFH   000200H   DATA  REL   WORD   ---    3  PUBL  NDATA   ?C_USERSTACK
&lt;/pre&gt;
&lt;br /&gt;
Note that the system stack and the main register bank are located in on-chip memory.  This is REQUIRED.  This memory  is accessed using DPP3 which must always be set to a value of 3 (so you can access the SFRs).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Keil Support&lt;/b&gt;&lt;br /&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>