<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: program counter &amp; reset vector in 8-bit Microcontrollers</title>
    <link>https://community.nxp.com/t5/8-bit-Microcontrollers/program-counter-reset-vector/m-p/143698#M6670</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Thank you, rocco and Daniel.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;I realize now that the initial content at $FFFE,$FFFF are set at the time of programing the flash memory by some kind of progrmmer, and are determined&amp;nbsp;by&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "DC.W&amp;nbsp; Startup&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Reset"&lt;/DIV&gt;&lt;DIV&gt;after programming the chip and power off the chip, the content of Reset vector still keep its value as being programmed.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Now,&amp;nbsp;my remain question is about the content of&amp;nbsp;PC. PC is in CPU, not in flash memory, so it is&amp;nbsp;impossible to set its value&amp;nbsp;as progrmming the chip.&amp;nbsp; If each time powering on the chip generates a Reset condition, then it is understandable that the content at $FFFE,$FFFF will be&amp;nbsp;loaded to PC. But it is hard for me to&amp;nbsp;understand that&amp;nbsp;the assumption is reasonable.&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp; Thanks&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; zen&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 25 Aug 2007 17:47:33 GMT</pubDate>
    <dc:creator>zen</dc:creator>
    <dc:date>2007-08-25T17:47:33Z</dc:date>
    <item>
      <title>program counter &amp; reset vector</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/program-counter-reset-vector/m-p/143695#M6667</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp; I am a HC08 beginner.&amp;nbsp; I wonder how the contents of Program Counter and RESET Vector ($FFFE,$FFFF)&amp;nbsp;are set at the beging of a program.&amp;nbsp; Below is where the question stems from.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp; I&amp;nbsp;created a project with CW.&amp;nbsp;In the automatic created file "&amp;nbsp;INCLUDE 'derivative.inc" has this&amp;nbsp;code:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ROMStart:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; equ&amp;nbsp;&amp;nbsp; $00008000&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;INT_RESET:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;equ&amp;nbsp;&amp;nbsp; $0000FFFE&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;in the automatic created&amp;nbsp;main.asm has this code:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;; Include derivative-specific definitions&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INCLUDE 'derivative.inc'&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; export symbols&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XDEF _Startup&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ABSENTRY _Startup&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; variable/data section&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ORG&amp;nbsp;&amp;nbsp;&amp;nbsp; RAMStart&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Insert your data definition here&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ExampleVar: DS.B&amp;nbsp;&amp;nbsp; 1&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TEMP1: EQU $0040&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; code section&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ORG&amp;nbsp;&amp;nbsp;&amp;nbsp; ROMStart&lt;/DIV&gt;&lt;DIV&gt;_Startup:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LDHX&amp;nbsp;&amp;nbsp; #RAMEnd+1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; initialize the stack pointer&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TXS&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLI&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; enable interrupts&lt;/DIV&gt;&lt;DIV&gt;mainLoop:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Insert your code here&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NOP&lt;/DIV&gt;&lt;DIV&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;When simulating this program&amp;nbsp;in CW, I found that&amp;nbsp;both the contents of PC (program counter) and $FFFE,$FFFF are 8000.&amp;nbsp; I wonder how&amp;nbsp;&lt;STRONG style=": ; color: #FF3300;"&gt;each&lt;/STRONG&gt; content&amp;nbsp;of the two is set?&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Thanks!&lt;/DIV&gt;&lt;DIV&gt;zen&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 25 Aug 2007 11:47:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/program-counter-reset-vector/m-p/143695#M6667</guid>
      <dc:creator>zen</dc:creator>
      <dc:date>2007-08-25T11:47:05Z</dc:date>
    </item>
    <item>
      <title>Re: program counter &amp; reset vector</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/program-counter-reset-vector/m-p/143696#M6668</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Hi Zen,&lt;BR /&gt;&lt;BR /&gt;The RESET vector, $FFFe:#FFFF, is in flash memory, and is programmed to point to the starting address of your code when you program your flash memory.&lt;BR /&gt;&lt;BR /&gt;Then, as the chip comes out of RESET, the contents of $FFFE:$FFFF are copied into the program counter, to cause you program to start execution at the starting address of your code.&lt;BR /&gt;&lt;BR /&gt;Hope that helps.&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 25 Aug 2007 15:31:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/program-counter-reset-vector/m-p/143696#M6668</guid>
      <dc:creator>rocco</dc:creator>
      <dc:date>2007-08-25T15:31:23Z</dc:date>
    </item>
    <item>
      <title>Re: program counter &amp; reset vector</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/program-counter-reset-vector/m-p/143697#M6669</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;DIV&gt;if the question is where the 0xfffe bytes come from, then look further down the main.asm.&lt;BR /&gt;&lt;BR /&gt;For absolute assembly projects with no device init support,&lt;BR /&gt;is the reset vector set further down in main.asm&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;DIV class="msg_source_code"&gt;&lt;DIV class="text_smallest"&gt;Code: end of main.asm&lt;BR /&gt;&lt;/DIV&gt;&lt;PRE&gt;            ORG   $FFFA            DC.W  spurious          ;            DC.W  spurious          ; SWI            DC.W  _Startup          ; Reset&lt;/PRE&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;Daniel&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Oct 2020 08:44:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/program-counter-reset-vector/m-p/143697#M6669</guid>
      <dc:creator>CompilerGuru</dc:creator>
      <dc:date>2020-10-29T08:44:26Z</dc:date>
    </item>
    <item>
      <title>Re: program counter &amp; reset vector</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/program-counter-reset-vector/m-p/143698#M6670</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Thank you, rocco and Daniel.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;I realize now that the initial content at $FFFE,$FFFF are set at the time of programing the flash memory by some kind of progrmmer, and are determined&amp;nbsp;by&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "DC.W&amp;nbsp; Startup&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Reset"&lt;/DIV&gt;&lt;DIV&gt;after programming the chip and power off the chip, the content of Reset vector still keep its value as being programmed.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Now,&amp;nbsp;my remain question is about the content of&amp;nbsp;PC. PC is in CPU, not in flash memory, so it is&amp;nbsp;impossible to set its value&amp;nbsp;as progrmming the chip.&amp;nbsp; If each time powering on the chip generates a Reset condition, then it is understandable that the content at $FFFE,$FFFF will be&amp;nbsp;loaded to PC. But it is hard for me to&amp;nbsp;understand that&amp;nbsp;the assumption is reasonable.&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp; Thanks&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; zen&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 25 Aug 2007 17:47:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/program-counter-reset-vector/m-p/143698#M6670</guid>
      <dc:creator>zen</dc:creator>
      <dc:date>2007-08-25T17:47:33Z</dc:date>
    </item>
    <item>
      <title>Re: program counter &amp; reset vector</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/program-counter-reset-vector/m-p/143699#M6671</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;From a reference book, I find that, power-on does create a reset, called Power-on Reset, POR, the result is that PC is loaded with the content of Reset&amp;nbsp;vector.&amp;nbsp;It should be where your porgram begins.&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 25 Aug 2007 21:46:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/program-counter-reset-vector/m-p/143699#M6671</guid>
      <dc:creator>zen</dc:creator>
      <dc:date>2007-08-25T21:46:59Z</dc:date>
    </item>
  </channel>
</rss>

