<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Project 1: Booting Your Own Operating System on CS 1670: Operating Systems</title><link>https://csci1670.github.io/docs/project1/</link><description>Recent content in Project 1: Booting Your Own Operating System on CS 1670: Operating Systems</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://csci1670.github.io/docs/project1/index.xml" rel="self" type="application/rss+xml"/><item><title>Appendix A: ARM64 reference</title><link>https://csci1670.github.io/docs/project1/arm64/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://csci1670.github.io/docs/project1/arm64/</guid><description>&lt;style&gt;
 section {
 margin-bottom: 2rem;
 padding: 0em 1em;
 padding-bottom: 1em;
 border-radius: 4px;

 background-color: #f7f7f7;
 border: 1px solid #ccc;
 }
 center {
 text-align: center;
 }
 summary {
 font-weight: bolder;
 }
 summary:hover {
 text-decoration: underline
 }
&lt;/style&gt;
&lt;h1 id="appendix-a-arm64-reference"&gt;
 Appendix A: ARM64 reference
 &lt;a class="anchor" aria-hidden="true" href="#appendix-a-arm64-reference"&gt;&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;This appendix is a &amp;ldquo;cheat-sheet&amp;rdquo; reference, not a tutorial. We recommend that you consult the plentiful online materials and your favorite AI (or ask course staff!) to figure out questions about ARM64 that go beyond what&amp;rsquo;s described here.&lt;/p&gt;</description></item><item><title>Appendix B: Hardware Manuals</title><link>https://csci1670.github.io/docs/project1/manuals/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://csci1670.github.io/docs/project1/manuals/</guid><description>&lt;style&gt;
 section {
 margin-bottom: 2rem;
 padding: 0em 1em;
 padding-bottom: 1em;
 border-radius: 4px;

 background-color: #f7f7f7;
 border: 1px solid #ccc;
 }
 center {
 text-align: center;
 }
 summary {
 font-weight: bolder;
 }
 summary:hover {
 text-decoration: underline
 }
&lt;/style&gt;
&lt;h1 id="appendix-b-reading-the-hardware-manuals"&gt;
 Appendix B: Reading the hardware manuals
 &lt;a class="anchor" aria-hidden="true" href="#appendix-b-reading-the-hardware-manuals"&gt;&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;You will need two kinds of documentation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. The Raspberry Pi peripheral manual, &lt;a href="https://drive.google.com/file/d/1wc4qPVA8TkBK_CabwMJASkAektUh8bFX/view"&gt;&amp;ldquo;BCM2835 ARM Peripherals&amp;rdquo;&lt;/a&gt;.&lt;/strong&gt; This is the authoritative source for the device registers you program in Quest 2.&lt;/p&gt;</description></item><item><title>Appendix C: Testing &amp; Debugging</title><link>https://csci1670.github.io/docs/project1/debug/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://csci1670.github.io/docs/project1/debug/</guid><description>&lt;style&gt;
 section {
 margin-bottom: 2rem;
 padding: 0em 1em;
 padding-bottom: 1em;
 border-radius: 4px;

 background-color: #f7f7f7;
 border: 1px solid #ccc;
 }
 center {
 text-align: center;
 }
 summary {
 font-weight: bolder;
 }
 summary:hover {
 text-decoration: underline
 }
&lt;/style&gt;
&lt;h1 id="appendix-c-testing--debugging"&gt;
 Appendix C: Testing &amp;amp; Debugging
 &lt;a class="anchor" aria-hidden="true" href="#appendix-c-testing--debugging"&gt;&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Kernel and bare-metal programming is unforgiving: a single wrong address can hang or silently corrupt the emulated machine with no error message. Start early, build and test in the small increments suggested in each task&amp;rsquo;s &lt;em&gt;Hints&lt;/em&gt;, and lean on &lt;code&gt;gdb&lt;/code&gt;. When you&amp;rsquo;re stuck, the &lt;strong&gt;first&lt;/strong&gt; question to ask is almost always &amp;ldquo;what address is this, and what does the manual say lives there?&amp;rdquo;&lt;/p&gt;</description></item></channel></rss>