<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://hades.mech.northwestern.edu//index.php?action=history&amp;feed=atom&amp;title=NU32v2%3A_A_Detailed_Look_at_Programming_the_PIC32</id>
	<title>NU32v2: A Detailed Look at Programming the PIC32 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://hades.mech.northwestern.edu//index.php?action=history&amp;feed=atom&amp;title=NU32v2%3A_A_Detailed_Look_at_Programming_the_PIC32"/>
	<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=NU32v2:_A_Detailed_Look_at_Programming_the_PIC32&amp;action=history"/>
	<updated>2026-04-09T18:42:20Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.9</generator>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=NU32v2:_A_Detailed_Look_at_Programming_the_PIC32&amp;diff=23700&amp;oldid=prev</id>
		<title>Lynch at 11:17, 16 January 2016</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=NU32v2:_A_Detailed_Look_at_Programming_the_PIC32&amp;diff=23700&amp;oldid=prev"/>
		<updated>2016-01-16T11:17:59Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:17, 16 January 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-deletedline diff-side-deleted&quot;&gt;&lt;div&gt;&#039;&#039;&#039;THIS PAGE REFERS TO A PRE-RELEASE VERSION OF THE NU32 BOARD.  FOR INFORMATION&lt;del class=&quot;diffchange diffchange-inline&quot;&gt; AND&lt;/del&gt; SAMPLE CODE RELATED TO THE PRODUCTION VERSION (2016 AND LATER), AND TO THE CORRESPONDING BOOK &quot;EMBEDDED COMPUTING AND MECHATRONICS WITH THE PIC32 MICROCONTROLLER,&quot; VISIT [[NU32|THE NU32 PAGE]].&#039;&#039;&#039;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;div&gt;&#039;&#039;&#039;THIS PAGE REFERS TO A PRE-RELEASE VERSION OF THE NU32&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; PIC32 DEVELOPMENT&lt;/ins&gt; BOARD.  FOR INFORMATION&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;,&lt;/ins&gt; SAMPLE CODE&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, AND VIDEOS&lt;/ins&gt; RELATED TO THE PRODUCTION VERSION (2016 AND LATER), AND TO THE CORRESPONDING BOOK &quot;EMBEDDED COMPUTING AND MECHATRONICS WITH THE PIC32 MICROCONTROLLER,&quot; VISIT [[NU32|THE NU32 PAGE]].&#039;&#039;&#039;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;After you have [[NU32v2: Starting a New Project and Putting it on the NU32v2|programmed your PIC32 for the first time]] and verified that you can create a new project, compile it, and run it on your NU32v2, it is useful to take a step back and understand the basics of the programming process, beginning with a PIC32 fresh from the factory.  We will do that on this page. We will begin by discussing the virtual memory map of the PIC32.  To discuss the virtual memory map, it is useful to know &#039;&#039;hexadecimal&#039;&#039; (hex, or base 16) notation, where each digit of a hex number takes one of 16 values, 0...9, A...F.  Since 16 = 2^4, a single hex digit represents four digits of a number written in binary (base 2).  The table below gives examples.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;After you have [[NU32v2: Starting a New Project and Putting it on the NU32v2|programmed your PIC32 for the first time]] and verified that you can create a new project, compile it, and run it on your NU32v2, it is useful to take a step back and understand the basics of the programming process, beginning with a PIC32 fresh from the factory.  We will do that on this page. We will begin by discussing the virtual memory map of the PIC32.  To discuss the virtual memory map, it is useful to know &#039;&#039;hexadecimal&#039;&#039; (hex, or base 16) notation, where each digit of a hex number takes one of 16 values, 0...9, A...F.  Since 16 = 2^4, a single hex digit represents four digits of a number written in binary (base 2).  The table below gives examples.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lynch</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=NU32v2:_A_Detailed_Look_at_Programming_the_PIC32&amp;diff=23699&amp;oldid=prev</id>
		<title>Lynch at 11:17, 16 January 2016</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=NU32v2:_A_Detailed_Look_at_Programming_the_PIC32&amp;diff=23699&amp;oldid=prev"/>
		<updated>2016-01-16T11:17:05Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:17, 16 January 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-deletedline diff-side-deleted&quot;&gt;&lt;div&gt;&#039;&#039;&#039;THIS PAGE REFERS TO A PRE-RELEASE VERSION OF THE NU32 BOARD.  FOR INFORMATION AND SAMPLE CODE RELATED TO THE PRODUCTION VERSION (2016 AND LATER), AND TO THE CORRESPONDING BOOK &quot;EMBEDDED COMPUTING AND MECHATRONICS WITH THE PIC32 MICROCONTROLLER, VISIT [[NU32|THE NU32 PAGE]].&#039;&#039;&#039;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;div&gt;&#039;&#039;&#039;THIS PAGE REFERS TO A PRE-RELEASE VERSION OF THE NU32 BOARD.  FOR INFORMATION AND SAMPLE CODE RELATED TO THE PRODUCTION VERSION (2016 AND LATER), AND TO THE CORRESPONDING BOOK &quot;EMBEDDED COMPUTING AND MECHATRONICS WITH THE PIC32 MICROCONTROLLER,&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&quot;&lt;/ins&gt; VISIT [[NU32|THE NU32 PAGE]].&#039;&#039;&#039;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;After you have [[NU32v2: Starting a New Project and Putting it on the NU32v2|programmed your PIC32 for the first time]] and verified that you can create a new project, compile it, and run it on your NU32v2, it is useful to take a step back and understand the basics of the programming process, beginning with a PIC32 fresh from the factory.  We will do that on this page. We will begin by discussing the virtual memory map of the PIC32.  To discuss the virtual memory map, it is useful to know &#039;&#039;hexadecimal&#039;&#039; (hex, or base 16) notation, where each digit of a hex number takes one of 16 values, 0...9, A...F.  Since 16 = 2^4, a single hex digit represents four digits of a number written in binary (base 2).  The table below gives examples.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;After you have [[NU32v2: Starting a New Project and Putting it on the NU32v2|programmed your PIC32 for the first time]] and verified that you can create a new project, compile it, and run it on your NU32v2, it is useful to take a step back and understand the basics of the programming process, beginning with a PIC32 fresh from the factory.  We will do that on this page. We will begin by discussing the virtual memory map of the PIC32.  To discuss the virtual memory map, it is useful to know &#039;&#039;hexadecimal&#039;&#039; (hex, or base 16) notation, where each digit of a hex number takes one of 16 values, 0...9, A...F.  Since 16 = 2^4, a single hex digit represents four digits of a number written in binary (base 2).  The table below gives examples.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lynch</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=NU32v2:_A_Detailed_Look_at_Programming_the_PIC32&amp;diff=23698&amp;oldid=prev</id>
		<title>Lynch at 11:16, 16 January 2016</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=NU32v2:_A_Detailed_Look_at_Programming_the_PIC32&amp;diff=23698&amp;oldid=prev"/>
		<updated>2016-01-16T11:16:45Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:16, 16 January 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;div&gt;&#039;&#039;&#039;THIS PAGE REFERS TO A PRE-RELEASE VERSION OF THE NU32 BOARD.  FOR INFORMATION AND SAMPLE CODE RELATED TO THE PRODUCTION VERSION (2016 AND LATER), AND TO THE CORRESPONDING BOOK &quot;EMBEDDED COMPUTING AND MECHATRONICS WITH THE PIC32 MICROCONTROLLER, VISIT [[NU32|THE NU32 PAGE]].&#039;&#039;&#039;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;After you have [[NU32v2: Starting a New Project and Putting it on the NU32v2|programmed your PIC32 for the first time]] and verified that you can create a new project, compile it, and run it on your NU32v2, it is useful to take a step back and understand the basics of the programming process, beginning with a PIC32 fresh from the factory.  We will do that on this page. We will begin by discussing the virtual memory map of the PIC32.  To discuss the virtual memory map, it is useful to know &#039;&#039;hexadecimal&#039;&#039; (hex, or base 16) notation, where each digit of a hex number takes one of 16 values, 0...9, A...F.  Since 16 = 2^4, a single hex digit represents four digits of a number written in binary (base 2).  The table below gives examples.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;After you have [[NU32v2: Starting a New Project and Putting it on the NU32v2|programmed your PIC32 for the first time]] and verified that you can create a new project, compile it, and run it on your NU32v2, it is useful to take a step back and understand the basics of the programming process, beginning with a PIC32 fresh from the factory.  We will do that on this page. We will begin by discussing the virtual memory map of the PIC32.  To discuss the virtual memory map, it is useful to know &#039;&#039;hexadecimal&#039;&#039; (hex, or base 16) notation, where each digit of a hex number takes one of 16 values, 0...9, A...F.  Since 16 = 2^4, a single hex digit represents four digits of a number written in binary (base 2).  The table below gives examples.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lynch</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=NU32v2:_A_Detailed_Look_at_Programming_the_PIC32&amp;diff=20266&amp;oldid=prev</id>
		<title>NickMarchuk: /* The PIC32 Bootloader and Bootloader App */</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=NU32v2:_A_Detailed_Look_at_Programming_the_PIC32&amp;diff=20266&amp;oldid=prev"/>
		<updated>2011-02-14T23:20:55Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;The PIC32 Bootloader and Bootloader App&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:20, 14 February 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 173:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 173:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;* The NU32v2 bootloader project, written in MPLAB Assembly, with a &quot;hello_world&quot; type blinking LED example tacked on, is provided here: [[Media:NU32v2_pic32bootloader_source.zip|PIC32 code]].&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;* The NU32v2 bootloader project, written in MPLAB Assembly, with a &quot;hello_world&quot; type blinking LED example tacked on, is provided here: [[Media:NU32v2_pic32bootloader_source.zip|PIC32 code]].&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-deletedline diff-side-deleted&quot;&gt;&lt;div&gt;* The NU32v2_serial_bootloader app source code, written in Processing, is provided here: [[Media:NU32v2_serial_bootloader_source.zip|PIC32 code]].&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;div&gt;* The NU32v2_serial_bootloader app source code, written in Processing, is provided here: [[Media:NU32v2_serial_bootloader_source.zip|PIC32 code]].&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; &#039;&#039;&#039;New for Feb 14 2011- Should crash less. Email Nick if you repeatedly get Error # in the message area.&#039;&#039;&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-deletedline diff-side-deleted&quot;&gt;&lt;div&gt;* The Mac OSX executable version of the bootloader app is here: [[Media:NU32v2_serial_bootloader_osx.zip|NU32v2 serial bootloader for OSX]].&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;div&gt;* The Mac OSX executable version of the bootloader app is here: [[Media:NU32v2_serial_bootloader_osx.zip|NU32v2 serial bootloader for OSX]].&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; &#039;&#039;&#039;New for Feb 14 2011- Should crash less. Email Nick if you repeatedly get Error # in the message area.&#039;&#039;&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;The NU32v2_serial_bootloader app allows the user to navigate to and select a .hex file.  No other file type selection is allowed.  The app also creates a button for each available serial COM port when the app loads, so the NU32v2 board must be powered up and the USB cable must be plugged in before the app is run.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;The NU32v2_serial_bootloader app allows the user to navigate to and select a .hex file.  No other file type selection is allowed.  The app also creates a button for each available serial COM port when the app loads, so the NU32v2 board must be powered up and the USB cable must be plugged in before the app is run.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>NickMarchuk</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=NU32v2:_A_Detailed_Look_at_Programming_the_PIC32&amp;diff=19879&amp;oldid=prev</id>
		<title>Lynch: /* The PIC32 Bootloader and Bootloader App */</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=NU32v2:_A_Detailed_Look_at_Programming_the_PIC32&amp;diff=19879&amp;oldid=prev"/>
		<updated>2011-01-26T10:05:32Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;The PIC32 Bootloader and Bootloader App&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 10:05, 26 January 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 179:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 179:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;The NU32v2_serial_bootloader app allows the user to navigate to and select a .hex file.  No other file type selection is allowed.  The app also creates a button for each available serial COM port when the app loads, so the NU32v2 board must be powered up and the USB cable must be plugged in before the app is run.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;The NU32v2_serial_bootloader app allows the user to navigate to and select a .hex file.  No other file type selection is allowed.  The app also creates a button for each available serial COM port when the app loads, so the NU32v2 board must be powered up and the USB cable must be plugged in before the app is run.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-deletedline diff-side-deleted&quot;&gt;&lt;div&gt;&#039;&#039;&#039;Note about serial communication:&#039;&#039;&#039;  The NU32v2 board has an [http://www.ftdichip.com/Products/ICs/FT232R.htm FT232RL] built on to allow for easy communication over USB with your computer &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;using&lt;/del&gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;an&lt;/del&gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;RS232&lt;/del&gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;connection&lt;/del&gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;on&lt;/del&gt; the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;PIC32&lt;/del&gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;end&lt;/del&gt;.  The communication is viewable as a &quot;virtual com port&quot; on your computer using the driver provided by FTDI.  This chip provides an easy way for your computer and the NU32v2 to communicate, for bootloading, debugging, and general communication.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;div&gt;&#039;&#039;&#039;Note about serial communication:&#039;&#039;&#039;  The NU32v2 board has an [http://www.ftdichip.com/Products/ICs/FT232R.htm FT232RL] built on to allow for easy communication over USB with your computer&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;.&lt;/ins&gt;  &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;This&lt;/ins&gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;chip&lt;/ins&gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;translates&lt;/ins&gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;between&lt;/ins&gt; the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;PIC&#039;s&lt;/ins&gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;UART (RS-232) and your PC&#039;s USB protocol&lt;/ins&gt;.  The communication is viewable as a &quot;virtual com port&quot; on your computer using the driver provided by FTDI.  This chip provides an easy way for your computer and the NU32v2 to communicate, for bootloading, debugging, and general communication.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;= Creating a .hex File Using MPLAB =&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;= Creating a .hex File Using MPLAB =&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lynch</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=NU32v2:_A_Detailed_Look_at_Programming_the_PIC32&amp;diff=19878&amp;oldid=prev</id>
		<title>Lynch: /* What Happens When the PIC Is Reset */</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=NU32v2:_A_Detailed_Look_at_Programming_the_PIC32&amp;diff=19878&amp;oldid=prev"/>
		<updated>2011-01-26T10:01:55Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;What Happens When the PIC Is Reset&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 10:01, 26 January 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 142:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 142:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;When the PIC is reset, it goes to the reset address 0xBFC00000, which is the location of the boot flash, and executes the code there.  The (assembly version of the) code that typically sits there, which is put there by a PIC programmer device, can be found in [[Media:NU32v2-crt0.S|pic32-libs/c/startup/crt0.S]].  This code takes care of some initialization tasks, then calls the code for the program you have written, which typically resides in the KSEG0 program flash memory block.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;When the PIC is reset, it goes to the reset address 0xBFC00000, which is the location of the boot flash, and executes the code there.  The (assembly version of the) code that typically sits there, which is put there by a PIC programmer device, can be found in [[Media:NU32v2-crt0.S|pic32-libs/c/startup/crt0.S]].  This code takes care of some initialization tasks, then calls the code for the program you have written, which typically resides in the KSEG0 program flash memory block.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-deletedline diff-side-deleted&quot;&gt;&lt;div&gt;With the NU32v2, we have a &quot;bootloader&quot; program that executes upon reset.  This program was placed in &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;boot&lt;/del&gt; flash by a programmer.  More on the bootloader below.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;div&gt;With the NU32v2, we have a &quot;bootloader&quot; program that executes upon reset.  This program was placed in &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the PIC&#039;s&lt;/ins&gt; flash&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; memory&lt;/ins&gt; by a programmer&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; device&lt;/ins&gt;.  More on the bootloader below.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;&amp;lt;!--&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;&amp;lt;!--&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;&#039;&#039;&#039;Give examples of what might be there, e.g., when programming with a programmer, or when the bootloader is on.&#039;&#039;&#039;  Say something about the crt0 code.  Defining _on_reset() to do anything time critical before crt0 finishes executing.  one function of crt0 is to fill statically allocated arrays with zeros in RAM, or to copy from flash to RAM any statically allocated initialized arrays.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;&#039;&#039;&#039;Give examples of what might be there, e.g., when programming with a programmer, or when the bootloader is on.&#039;&#039;&#039;  Say something about the crt0 code.  Defining _on_reset() to do anything time critical before crt0 finishes executing.  one function of crt0 is to fill statically allocated arrays with zeros in RAM, or to copy from flash to RAM any statically allocated initialized arrays.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lynch</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=NU32v2:_A_Detailed_Look_at_Programming_the_PIC32&amp;diff=19877&amp;oldid=prev</id>
		<title>Lynch: /* What Happens When the PIC Is Reset */</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=NU32v2:_A_Detailed_Look_at_Programming_the_PIC32&amp;diff=19877&amp;oldid=prev"/>
		<updated>2011-01-26T10:00:53Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;What Happens When the PIC Is Reset&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 10:00, 26 January 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 140:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 140:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;= What Happens When the PIC Is Reset =&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;= What Happens When the PIC Is Reset =&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-deletedline diff-side-deleted&quot;&gt;&lt;div&gt;When the PIC is reset, it goes to the reset address 0xBFC00000, which is the location of the boot flash, and executes the code there.  The (assembly) code that typically sits there, which is put there by a PIC programmer device, can be found in [[Media:NU32v2-crt0.S|pic32-libs/c/startup/crt0.S]].  This code takes care of some initialization tasks, then calls the code for the program you have written, which typically resides in the KSEG0 program flash memory block.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;div&gt;When the PIC is reset, it goes to the reset address 0xBFC00000, which is the location of the boot flash, and executes the code there.  The (assembly&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; version of the&lt;/ins&gt;) code that typically sits there, which is put there by a PIC programmer device, can be found in [[Media:NU32v2-crt0.S|pic32-libs/c/startup/crt0.S]].  This code takes care of some initialization tasks, then calls the code for the program you have written, which typically resides in the KSEG0 program flash memory block.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;With the NU32v2, we have a &quot;bootloader&quot; program that executes upon reset.  This program was placed in boot flash by a programmer.  More on the bootloader below.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;With the NU32v2, we have a &quot;bootloader&quot; program that executes upon reset.  This program was placed in boot flash by a programmer.  More on the bootloader below.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lynch</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=NU32v2:_A_Detailed_Look_at_Programming_the_PIC32&amp;diff=19876&amp;oldid=prev</id>
		<title>Lynch: /* The PIC32 Virtual Memory Map */</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=NU32v2:_A_Detailed_Look_at_Programming_the_PIC32&amp;diff=19876&amp;oldid=prev"/>
		<updated>2011-01-26T09:58:52Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;The PIC32 Virtual Memory Map&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 09:58, 26 January 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 33:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 33:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;In addition to this virtual memory map, there is also a &#039;&#039;physical memory map&#039;&#039;.  When you are writing a program, you only deal with the virtual memory map.  The PIC&#039;s CPU implements a Fixed Mapping Translation (FMT) unit that takes the virtual memory address and maps it to a physical memory address.  In other words, the virtual memory address is translated to a set of bit values on an addressing bus that allows the PIC&#039;s CPU to physically address the appropriate peripheral, flash memory location, RAM location, etc.  We will focus on the virtual memory map, not the physical memory map, since our goal is to program the PIC and we don&#039;t need to concern ourselves with how the FMT works.  If you&#039;re curious, however, the translation is a simple bitwise AND:&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;In addition to this virtual memory map, there is also a &#039;&#039;physical memory map&#039;&#039;.  When you are writing a program, you only deal with the virtual memory map.  The PIC&#039;s CPU implements a Fixed Mapping Translation (FMT) unit that takes the virtual memory address and maps it to a physical memory address.  In other words, the virtual memory address is translated to a set of bit values on an addressing bus that allows the PIC&#039;s CPU to physically address the appropriate peripheral, flash memory location, RAM location, etc.  We will focus on the virtual memory map, not the physical memory map, since our goal is to program the PIC and we don&#039;t need to concern ourselves with how the FMT works.  If you&#039;re curious, however, the translation is a simple bitwise AND:&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-deletedline diff-side-deleted&quot;&gt;&lt;div&gt;physical address = virtual address &amp;amp; 0x1FFFFFFF&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;      &lt;/ins&gt;physical address = virtual address &amp;amp; 0x1FFFFFFF&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;If you are directly accessing memory, independent of the CPU, as when an external device is engaged in direct memory access (DMA) with the PIC, you must use physical addresses. To learn more about physical addresses, see Section 3 of the PIC32 Family Reference Manual.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;If you are directly accessing memory, independent of the CPU, as when an external device is engaged in direct memory access (DMA) with the PIC, you must use physical addresses. To learn more about physical addresses, see Section 3 of the PIC32 Family Reference Manual.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lynch</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=NU32v2:_A_Detailed_Look_at_Programming_the_PIC32&amp;diff=19875&amp;oldid=prev</id>
		<title>Lynch: /* The PIC32 Virtual Memory Map */</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=NU32v2:_A_Detailed_Look_at_Programming_the_PIC32&amp;diff=19875&amp;oldid=prev"/>
		<updated>2011-01-26T09:58:35Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;The PIC32 Virtual Memory Map&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 09:58, 26 January 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 31:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 31:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;The PIC32 has a &#039;&#039;virtual memory map&#039;&#039; consisting of 4 GB (four gigabytes, or 2^32 bytes, where each byte equals 8 bits) of addressable memory.  All memory regions reside in this virtual memory space at their unique respective addresses.  This includes program memory (flash), data memory (RAM), peripheral special function registers (SFRs), etc.  For example, the peripheral SFRs begin at virtual memory location 0xBF800000 and end at virtual memory address 0xBF8FFFFF.  Subtracting the begin address from the end address, and adding one byte, we get 0x100000, which is 1*16^5 = 1,048,576 bytes, commonly written as 1 MB.  &#039;&#039;&#039;(Note:  Section 3 of the reference manual incorrectly indicates that the size of this region is 4 KB.)&#039;&#039;&#039;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;The PIC32 has a &#039;&#039;virtual memory map&#039;&#039; consisting of 4 GB (four gigabytes, or 2^32 bytes, where each byte equals 8 bits) of addressable memory.  All memory regions reside in this virtual memory space at their unique respective addresses.  This includes program memory (flash), data memory (RAM), peripheral special function registers (SFRs), etc.  For example, the peripheral SFRs begin at virtual memory location 0xBF800000 and end at virtual memory address 0xBF8FFFFF.  Subtracting the begin address from the end address, and adding one byte, we get 0x100000, which is 1*16^5 = 1,048,576 bytes, commonly written as 1 MB.  &#039;&#039;&#039;(Note:  Section 3 of the reference manual incorrectly indicates that the size of this region is 4 KB.)&#039;&#039;&#039;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-deletedline diff-side-deleted&quot;&gt;&lt;div&gt;In addition to this virtual memory map, there is also a &#039;&#039;physical memory map&#039;&#039;.  When you are writing a program, you only deal with the virtual memory map.  The PIC&#039;s CPU implements a Fixed Mapping Translation (FMT) unit that takes the virtual memory address and maps it to a physical memory address.  In other words, the virtual memory address is translated to a set of bit values on an addressing bus that allows the PIC&#039;s CPU to physically address the appropriate peripheral, flash memory location, RAM location, etc.  We will focus on the virtual memory map, not the physical memory map, since our goal is to program the PIC and we don&#039;t need to concern ourselves with the FMT.  &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;(On&lt;/del&gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;the&lt;/del&gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;other&lt;/del&gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;hand&lt;/del&gt;,&lt;del class=&quot;diffchange diffchange-inline&quot;&gt; peripherals that access memory independently of&lt;/del&gt; the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;CPU,&lt;/del&gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;such&lt;/del&gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;as&lt;/del&gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;for&lt;/del&gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;DMA&lt;/del&gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[direct memory access], must use physical addresses.  To learn more about physical addresses, see Section 3 of the PIC32 Family Reference Manual.)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;div&gt;In addition to this virtual memory map, there is also a &#039;&#039;physical memory map&#039;&#039;.  When you are writing a program, you only deal with the virtual memory map.  The PIC&#039;s CPU implements a Fixed Mapping Translation (FMT) unit that takes the virtual memory address and maps it to a physical memory address.  In other words, the virtual memory address is translated to a set of bit values on an addressing bus that allows the PIC&#039;s CPU to physically address the appropriate peripheral, flash memory location, RAM location, etc.  We will focus on the virtual memory map, not the physical memory map, since our goal is to program the PIC and we don&#039;t need to concern ourselves with&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; how&lt;/ins&gt; the FMT&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; works&lt;/ins&gt;.  &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;If&lt;/ins&gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;you&#039;re&lt;/ins&gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;curious,&lt;/ins&gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;however&lt;/ins&gt;, the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;translation&lt;/ins&gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;is&lt;/ins&gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;a&lt;/ins&gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;simple&lt;/ins&gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;bitwise&lt;/ins&gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;AND:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;div&gt;physical address = virtual address &amp;amp; 0x1FFFFFFF&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;div&gt;If you are directly accessing memory, independent of the CPU, as when an external device is engaged in direct memory access (DMA) with the PIC, you must use physical addresses. To learn more about physical addresses, see Section 3 of the PIC32 Family Reference Manual.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;Virtual memory is partitioned into two types of address space:  &#039;&#039;user address space&#039;&#039; (the lower 2 GB) and &#039;&#039;kernel address space&#039;&#039; (the upper 2 GB).  By analogy to your personal computer, the kernel address space is to hold the computer&#039;s operating system, while the user address space is to hold a program that runs under the operating system.  This is for safety:  the user&#039;s program should not interfere with or compromise the operating system, e.g., it shouldn&#039;t be able to overwrite data that the operating system needs to function.  We will not be using an operating system, so our programs will reside in the kernel address space.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;Virtual memory is partitioned into two types of address space:  &#039;&#039;user address space&#039;&#039; (the lower 2 GB) and &#039;&#039;kernel address space&#039;&#039; (the upper 2 GB).  By analogy to your personal computer, the kernel address space is to hold the computer&#039;s operating system, while the user address space is to hold a program that runs under the operating system.  This is for safety:  the user&#039;s program should not interfere with or compromise the operating system, e.g., it shouldn&#039;t be able to overwrite data that the operating system needs to function.  We will not be using an operating system, so our programs will reside in the kernel address space.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lynch</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=NU32v2:_A_Detailed_Look_at_Programming_the_PIC32&amp;diff=19874&amp;oldid=prev</id>
		<title>Lynch: /* The PIC32 Virtual Memory Map */</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=NU32v2:_A_Detailed_Look_at_Programming_the_PIC32&amp;diff=19874&amp;oldid=prev"/>
		<updated>2011-01-26T09:51:27Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;The PIC32 Virtual Memory Map&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 09:51, 26 January 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 31:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 31:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;The PIC32 has a &#039;&#039;virtual memory map&#039;&#039; consisting of 4 GB (four gigabytes, or 2^32 bytes, where each byte equals 8 bits) of addressable memory.  All memory regions reside in this virtual memory space at their unique respective addresses.  This includes program memory (flash), data memory (RAM), peripheral special function registers (SFRs), etc.  For example, the peripheral SFRs begin at virtual memory location 0xBF800000 and end at virtual memory address 0xBF8FFFFF.  Subtracting the begin address from the end address, and adding one byte, we get 0x100000, which is 1*16^5 = 1,048,576 bytes, commonly written as 1 MB.  &#039;&#039;&#039;(Note:  Section 3 of the reference manual incorrectly indicates that the size of this region is 4 KB.)&#039;&#039;&#039;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;The PIC32 has a &#039;&#039;virtual memory map&#039;&#039; consisting of 4 GB (four gigabytes, or 2^32 bytes, where each byte equals 8 bits) of addressable memory.  All memory regions reside in this virtual memory space at their unique respective addresses.  This includes program memory (flash), data memory (RAM), peripheral special function registers (SFRs), etc.  For example, the peripheral SFRs begin at virtual memory location 0xBF800000 and end at virtual memory address 0xBF8FFFFF.  Subtracting the begin address from the end address, and adding one byte, we get 0x100000, which is 1*16^5 = 1,048,576 bytes, commonly written as 1 MB.  &#039;&#039;&#039;(Note:  Section 3 of the reference manual incorrectly indicates that the size of this region is 4 KB.)&#039;&#039;&#039;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-deletedline diff-side-deleted&quot;&gt;&lt;div&gt;In addition to this virtual memory map, there is also a &#039;&#039;physical memory map&#039;&#039;.  When you are writing a program, you only deal with the virtual memory map.  The PIC implements a Fixed Mapping Translation (FMT) unit that takes the virtual memory address and maps it to a physical memory address.  In other words, the virtual memory address is translated to a set of bit values on an addressing bus that allows the PIC&#039;s CPU to physically address the appropriate peripheral, flash memory location, RAM location, etc.  We will focus on the virtual memory map, not the physical memory map, since our goal is to program the PIC and we don&#039;t need to concern ourselves with the FMT.  (On the other hand, peripherals that access memory independently of the CPU, such as for DMA [direct memory access], must use physical addresses.  To learn more about physical addresses, see Section 3 of the PIC32 Family Reference Manual.)&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;div&gt;In addition to this virtual memory map, there is also a &#039;&#039;physical memory map&#039;&#039;.  When you are writing a program, you only deal with the virtual memory map.  The PIC&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&#039;s CPU&lt;/ins&gt; implements a Fixed Mapping Translation (FMT) unit that takes the virtual memory address and maps it to a physical memory address.  In other words, the virtual memory address is translated to a set of bit values on an addressing bus that allows the PIC&#039;s CPU to physically address the appropriate peripheral, flash memory location, RAM location, etc.  We will focus on the virtual memory map, not the physical memory map, since our goal is to program the PIC and we don&#039;t need to concern ourselves with the FMT.  (On the other hand, peripherals that access memory independently of the CPU, such as for DMA [direct memory access], must use physical addresses.  To learn more about physical addresses, see Section 3 of the PIC32 Family Reference Manual.)&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;Virtual memory is partitioned into two types of address space:  &#039;&#039;user address space&#039;&#039; (the lower 2 GB) and &#039;&#039;kernel address space&#039;&#039; (the upper 2 GB).  By analogy to your personal computer, the kernel address space is to hold the computer&#039;s operating system, while the user address space is to hold a program that runs under the operating system.  This is for safety:  the user&#039;s program should not interfere with or compromise the operating system, e.g., it shouldn&#039;t be able to overwrite data that the operating system needs to function.  We will not be using an operating system, so our programs will reside in the kernel address space.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;Virtual memory is partitioned into two types of address space:  &#039;&#039;user address space&#039;&#039; (the lower 2 GB) and &#039;&#039;kernel address space&#039;&#039; (the upper 2 GB).  By analogy to your personal computer, the kernel address space is to hold the computer&#039;s operating system, while the user address space is to hold a program that runs under the operating system.  This is for safety:  the user&#039;s program should not interfere with or compromise the operating system, e.g., it shouldn&#039;t be able to overwrite data that the operating system needs to function.  We will not be using an operating system, so our programs will reside in the kernel address space.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lynch</name></author>
	</entry>
</feed>