<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sr">
	<id>https://siwiki.rs/w/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8%2F%D0%9A1_2022</id>
	<title>Микропроцесорски системи/К1 2022 - Историја измена</title>
	<link rel="self" type="application/atom+xml" href="https://siwiki.rs/w/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8%2F%D0%9A1_2022"/>
	<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8/%D0%9A1_2022&amp;action=history"/>
	<updated>2026-06-04T02:35:42Z</updated>
	<subtitle>Историја измена ове странице на пројекту</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8/%D0%9A1_2022&amp;diff=7828&amp;oldid=prev</id>
		<title>Etfsibg: /* 1. задатак */</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8/%D0%9A1_2022&amp;diff=7828&amp;oldid=prev"/>
		<updated>2024-09-18T19:13:03Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;1. задатак&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&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;sr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Старија измена&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Верзија на датум 18. септембар 2024. у 21:13&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l16&quot;&gt;Ред 16:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ред 16:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Одговор: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;0x0000FF02&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Одговор: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;0x0000FF02&amp;lt;/span&amp;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 style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&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 style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Објашњење:&amp;#039;&amp;#039;&amp;#039; &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Инструкције &amp;lt;code&amp;gt;ldr r0, [r1, 1]!&amp;lt;/code&amp;gt; као и &amp;lt;code&amp;gt;ldr r0, [r1], 1&amp;lt;/code&amp;gt; мењају садржај &amp;#039;&amp;#039;R1&amp;#039;&amp;#039; повећавањем за 1. Релевантна страница у &amp;#039;&amp;#039;Cortex-M3 Programming Manual&amp;#039;&amp;#039; је &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;56 &lt;/del&gt;(3.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;3&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;7 &lt;/del&gt;&amp;#039;&amp;#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Conditional execution&lt;/del&gt;&amp;#039;&amp;#039;).&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Објашњење:&amp;#039;&amp;#039;&amp;#039; &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Инструкције &amp;lt;code&amp;gt;ldr r0, [r1, 1]!&amp;lt;/code&amp;gt; као и &amp;lt;code&amp;gt;ldr r0, [r1], 1&amp;lt;/code&amp;gt; мењају садржај &amp;#039;&amp;#039;R1&amp;#039;&amp;#039; повећавањем за 1. Релевантна страница у &amp;#039;&amp;#039;Cortex-M3 Programming Manual&amp;#039;&amp;#039; је &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;62 &lt;/ins&gt;(3.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;4&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2 &lt;/ins&gt;&amp;#039;&amp;#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;LDR and STR, immediate offset&lt;/ins&gt;&amp;#039;&amp;#039;).&amp;lt;/span&amp;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 style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&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 style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== 2. задатак ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== 2. задатак ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Etfsibg</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8/%D0%9A1_2022&amp;diff=7827&amp;oldid=prev</id>
		<title>Etfsibg: /* 1. задатак */</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8/%D0%9A1_2022&amp;diff=7827&amp;oldid=prev"/>
		<updated>2024-09-18T19:11:15Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;1. задатак&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&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;sr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Старија измена&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Верзија на датум 18. септембар 2024. у 21:11&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l16&quot;&gt;Ред 16:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ред 16:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Одговор: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;0x0000FF02&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Одговор: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;0x0000FF02&amp;lt;/span&amp;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 style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&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 style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Објашњење:&amp;#039;&amp;#039;&amp;#039; &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Инструкције &amp;lt;code&amp;gt;ldr r0, [r1, 1]!&amp;lt;/code&amp;gt; као и &amp;lt;code&amp;gt;ldr r0, [r1], 1&amp;lt;/code&amp;gt; мењају садржај &amp;#039;&amp;#039;R1&amp;#039;&amp;#039; повећавањем за 1.&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Објашњење:&amp;#039;&amp;#039;&amp;#039; &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Инструкције &amp;lt;code&amp;gt;ldr r0, [r1, 1]!&amp;lt;/code&amp;gt; као и &amp;lt;code&amp;gt;ldr r0, [r1], 1&amp;lt;/code&amp;gt; мењају садржај &amp;#039;&amp;#039;R1&amp;#039;&amp;#039; повећавањем за 1&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. Релевантна страница у &amp;#039;&amp;#039;Cortex-M3 Programming Manual&amp;#039;&amp;#039; је 56 (3.3.7 &amp;#039;&amp;#039;Conditional execution&amp;#039;&amp;#039;)&lt;/ins&gt;.&amp;lt;/span&amp;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 style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&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 style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== 2. задатак ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== 2. задатак ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Etfsibg</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8/%D0%9A1_2022&amp;diff=5260&amp;oldid=prev</id>
		<title>KockaAdmiralac: /* 4. задатак */ Ispravljen link</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8/%D0%9A1_2022&amp;diff=5260&amp;oldid=prev"/>
		<updated>2023-01-26T15:30:09Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;4. задатак: &lt;/span&gt; Ispravljen link&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&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;sr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Старија измена&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Верзија на датум 26. јануар 2023. у 17:30&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l96&quot;&gt;Ред 96:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ред 96:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&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 style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== 4. задатак ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== 4. задатак ===&lt;/div&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 style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Исти као [[Микропроцесорски системи/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Питалице&lt;/del&gt;#3. задатак|трећи задатак &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;из сакупљених питалица&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 style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Исти као [[Микропроцесорски системи/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Август 2022&lt;/ins&gt;#3. задатак|трећи задатак &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;са августовског рока 2022. године&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 style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&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 style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Задатак ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Задатак ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>KockaAdmiralac</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8/%D0%9A1_2022&amp;diff=5134&amp;oldid=prev</id>
		<title>KockaAdmiralac: Zapeta</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8/%D0%9A1_2022&amp;diff=5134&amp;oldid=prev"/>
		<updated>2022-12-10T16:43:58Z</updated>

		<summary type="html">&lt;p&gt;Zapeta&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&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;sr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Старија измена&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Верзија на датум 10. децембар 2022. у 18:43&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Ред 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ред 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{tocright}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{tocright}}&lt;/div&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 style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Први колоквијум 2022. године&amp;#039;&amp;#039;&amp;#039; одржан је 5. новембра била је доступна документација микроконтролера, процесора и &amp;#039;&amp;#039;Intel HEX&amp;#039;&amp;#039; формата као и презентације са предавања током теоријског и практичног дела испита. Поставка рока није доступна са странице предмета.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Први колоквијум 2022. године&amp;#039;&amp;#039;&amp;#039; одржан је 5. новембра&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, &lt;/ins&gt;била је доступна документација микроконтролера, процесора и &amp;#039;&amp;#039;Intel HEX&amp;#039;&amp;#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 style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&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 style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Теорија ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Теорија ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>KockaAdmiralac</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8/%D0%9A1_2022&amp;diff=5011&amp;oldid=prev</id>
		<title>KockaAdmiralac: Otkud ovo</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8/%D0%9A1_2022&amp;diff=5011&amp;oldid=prev"/>
		<updated>2022-11-08T08:29:46Z</updated>

		<summary type="html">&lt;p&gt;Otkud ovo&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&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;sr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Старија измена&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Верзија на датум 8. новембар 2022. у 10:29&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l291&quot;&gt;Ред 291:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ред 291:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;FLAGS_AS += -mlong-calls&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;FLAGS_AS += -mlong-calls&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 style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&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 style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	&lt;/del&gt;FLAGS_CC =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;FLAGS_CC =&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 style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;FLAGS_CC += $(MCU)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;FLAGS_CC += $(MCU)&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 style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;FLAGS_CC += $(WARNINGS)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;FLAGS_CC += $(WARNINGS)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>KockaAdmiralac</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8/%D0%9A1_2022&amp;diff=4996&amp;oldid=prev</id>
		<title>KockaAdmiralac: Današnji rok sa rešenjem</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80%D1%81%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8/%D0%9A1_2022&amp;diff=4996&amp;oldid=prev"/>
		<updated>2022-11-05T19:39:05Z</updated>

		<summary type="html">&lt;p&gt;Današnji rok sa rešenjem&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Нова страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{tocright}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Први колоквијум 2022. године&amp;#039;&amp;#039;&amp;#039; одржан је 5. новембра била је доступна документација микроконтролера, процесора и &amp;#039;&amp;#039;Intel HEX&amp;#039;&amp;#039; формата као и презентације са предавања током теоријског и практичног дела испита. Поставка рока није доступна са странице предмета.&lt;br /&gt;
&lt;br /&gt;
== Теорија ==&lt;br /&gt;
=== 1. задатак ===&lt;br /&gt;
Која вредност се налази у регистру &amp;#039;&amp;#039;R1&amp;#039;&amp;#039; након извршавања дате секвенце асемблерских инструкција? Одговор унети према формату неозначених хексадецималних литерала у &amp;#039;&amp;#039;C&amp;#039;&amp;#039; програмском језику ширине 32 бита.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
mov r1, 0xFF00&lt;br /&gt;
ldr r0, [r1]&lt;br /&gt;
ldr r0, [r1, 1]&lt;br /&gt;
ldr r0, [r1, 1]!&lt;br /&gt;
ldr r0, [r1], 1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Приказ очекиваног формата одговора за произвољно одабрану вредност 1 јесте:&lt;br /&gt;
 0x00000001&lt;br /&gt;
Одговор: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;0x0000FF02&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Објашњење:&amp;#039;&amp;#039;&amp;#039; &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Инструкције &amp;lt;code&amp;gt;ldr r0, [r1, 1]!&amp;lt;/code&amp;gt; као и &amp;lt;code&amp;gt;ldr r0, [r1], 1&amp;lt;/code&amp;gt; мењају садржај &amp;#039;&amp;#039;R1&amp;#039;&amp;#039; повећавањем за 1.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. задатак ===&lt;br /&gt;
Посматра се &amp;#039;&amp;#039;Cortex-M3&amp;#039;&amp;#039; процесор са подразумеваном конфигурацијом након ресета. У наставку је дато тренутно стање система описано вредностима које би биле добијене читањем одговарајућих меморијски мапираних регистара:&lt;br /&gt;
 NVIC_IABR0: 0x00000000&lt;br /&gt;
 NVIC_ISER0: 0x0000003C&lt;br /&gt;
 NVIC_ISPR0: 0x0000002E&lt;br /&gt;
Колико пута ће бити активиран &amp;#039;&amp;#039;tail-chaining&amp;#039;&amp;#039; механизам за претходно наведено стање система под претпоставком да неће пристизати нови захтеви за прекидом?&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Одговор:&amp;#039;&amp;#039;&amp;#039; &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;2&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Објашњење:&amp;#039;&amp;#039;&amp;#039; &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Регистар &amp;lt;code&amp;gt;NVIC_IABR0&amp;lt;/code&amp;gt; (&amp;#039;&amp;#039;interrupt active bit register&amp;#039;&amp;#039;) нам каже да нема активних прекида тренутно. Регистар &amp;lt;code&amp;gt;NVIC_ISER0&amp;lt;/code&amp;gt; (&amp;#039;&amp;#039;interrupt set enable register&amp;#039;&amp;#039;) нам каже који прекиди су омогућени. Регистар &amp;lt;code&amp;gt;NVIC_ISPR0&amp;lt;/code&amp;gt; (&amp;#039;&amp;#039;interrupt set pending register&amp;#039;&amp;#039;) нам каже који прекиди чекају на опслуживање тренутно. Прекиди који могу да се опслуже тренутно су они који су и омогућени и чекају на опслуживање. Уколико урадимо битско И над вредностима &amp;lt;code&amp;gt;NVIC_ISER0&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;NVIC_ISPR0&amp;lt;/code&amp;gt; добијамо 0x0000002C, односно 00000000000000000000000000101100 у бинарном, што нам говори да три прекида могу тренутно да се опслуже. &amp;#039;&amp;#039;Tail-chaining&amp;#039;&amp;#039; се дешава при прелазу између два прекида, а пошто ће се међу ова три прекида два пута прећи између прекида то је одговор на ово питање.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. задатак ===&lt;br /&gt;
У наставку је приказан садржај две датотеке: (1) линкерска скрипта и (2) изворни асемблерски код програма. Посматра се извршавање датог програма који је резултат линковања помоћу приказане линкерске скрипте.&lt;br /&gt;
&lt;br /&gt;
Која вредност се налази у регистру &amp;#039;&amp;#039;R4&amp;#039;&amp;#039; у тренутку када ток контроле стигне до адресе указане лабелом &amp;lt;code&amp;gt;leave_sv_call_handler&amp;lt;/code&amp;gt;? Одговор унети према формату неозначених хексадецималних литерала у C програмском језику ширине 32 бита.&lt;br /&gt;
&lt;br /&gt;
Линкерска скрипта:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MEMORY&lt;br /&gt;
{&lt;br /&gt;
    FLASH(rx) : ORIGIN = 0x08000000, LENGTH = 32K&lt;br /&gt;
    SRAM(rwx) : ORIGIN = 0x20000000, LENGTH = 10K&lt;br /&gt;
}&lt;br /&gt;
SECTIONS&lt;br /&gt;
{&lt;br /&gt;
    .vector_table : { *(.vector_table) } &amp;gt; FLASH&lt;br /&gt;
    .text : { *(.text*) } &amp;gt; FLASH&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Изворни асемблерски код програма:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
.cpu cortex-m3&lt;br /&gt;
.fpu softvfp&lt;br /&gt;
.syntax unified&lt;br /&gt;
.thumb&lt;br /&gt;
&lt;br /&gt;
.section .vector_table, &amp;quot;a&amp;quot;&lt;br /&gt;
.word 0x20000064&lt;br /&gt;
.word reset_handler&lt;br /&gt;
.rept 9&lt;br /&gt;
.word default_handler&lt;br /&gt;
.endr&lt;br /&gt;
.word sv_call_handler&lt;br /&gt;
&lt;br /&gt;
.section .text.reset_handler&lt;br /&gt;
.type reset_handler, %function&lt;br /&gt;
reset_handler:&lt;br /&gt;
    mov r0, 0&lt;br /&gt;
    mov r1, 1&lt;br /&gt;
    mov r2, 2&lt;br /&gt;
    mov r3, 3&lt;br /&gt;
    mov r12, 12&lt;br /&gt;
    mov r14, 14&lt;br /&gt;
    svc 0&lt;br /&gt;
    nop&lt;br /&gt;
infinite_loop:&lt;br /&gt;
    b infinite_loop&lt;br /&gt;
&lt;br /&gt;
.section .text.default_handler&lt;br /&gt;
.type default_handler, %function&lt;br /&gt;
default_handler:&lt;br /&gt;
    b default_handler&lt;br /&gt;
&lt;br /&gt;
.section .text.sv_call_handler&lt;br /&gt;
.type sv_call_handler, %function&lt;br /&gt;
sv_call_handler:&lt;br /&gt;
    ldr r4, [sp, 1 * 4]&lt;br /&gt;
leave_sv_call_handler:&lt;br /&gt;
    bx lr&lt;br /&gt;
.end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Приказ очекиваног формата одговора за произвољно одабрану вредност 1 јесте:&lt;br /&gt;
 0x00000001&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Одговор:&amp;#039;&amp;#039;&amp;#039; &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;0x00000001&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Објашњење:&amp;#039;&amp;#039;&amp;#039; &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Последњи регистар који се баца на стек при уласку у прекидну рутину је &amp;#039;&amp;#039;R0&amp;#039;&amp;#039;, а пре њега су &amp;#039;&amp;#039;R1&amp;#039;&amp;#039;, &amp;#039;&amp;#039;R2&amp;#039;&amp;#039;, &amp;#039;&amp;#039;R3&amp;#039;&amp;#039;, &amp;#039;&amp;#039;R12&amp;#039;&amp;#039;... Пошто дохватамо податак који је 4 бајта изнад стек показивача, а стек показивач показује на последњу заузету локацију, односно &amp;#039;&amp;#039;R0&amp;#039;&amp;#039;, садржај који ће бити уписан у &amp;#039;&amp;#039;R4&amp;#039;&amp;#039; ће бити &amp;#039;&amp;#039;R1&amp;#039;&amp;#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. задатак ===&lt;br /&gt;
Исти као [[Микропроцесорски системи/Питалице#3. задатак|трећи задатак из сакупљених питалица]].&lt;br /&gt;
&lt;br /&gt;
== Задатак ==&lt;br /&gt;
=== Поставка ===&lt;br /&gt;
Користећи алате &amp;#039;&amp;#039;arm-none-eabi-*&amp;#039;&amp;#039;, &amp;#039;&amp;#039;build-tools&amp;#039;&amp;#039; и &amp;#039;&amp;#039;Eclipse CDT&amp;#039;&amp;#039; и &amp;#039;&amp;#039;Proteus&amp;#039;&amp;#039; симулатор потребно је испунити ставке које се налазе у наставку.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;[1 поен]&amp;#039;&amp;#039;&amp;#039; Направити нови пројекат у &amp;#039;&amp;#039;Proteus&amp;#039;&amp;#039; симулатору у оквиру којег на структурној шеми треба инстанцирати микроконтролер &amp;#039;&amp;#039;STM32F103R6&amp;#039;&amp;#039;, неопходне компоненте и извршити одговарајућа повезивања за успешно покретање симулације.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;[3 поена]&amp;#039;&amp;#039;&amp;#039; Написати &amp;#039;&amp;#039;Makefile&amp;#039;&amp;#039; којим је могуће превести, асемблирати и повезати пројекат са изворним кодом написаним на &amp;#039;&amp;#039;C&amp;#039;&amp;#039; програмском језику у циљу добијања извршног кода у &amp;#039;&amp;#039;ELF&amp;#039;&amp;#039; формату (подразумевани формат излаза &amp;#039;&amp;#039;GNU&amp;#039;&amp;#039; асемблера и линкера) и &amp;#039;&amp;#039;Intel Hex&amp;#039;&amp;#039; формату. &amp;#039;&amp;#039;Makefile&amp;#039;&amp;#039; мора бити написан тако да испуњава следећа два услова: (1) додавање нових датотека са изворним кодом у пројекат не захтева експлицитно писање нових правила (измене другог типа у &amp;#039;&amp;#039;Makefile&amp;#039;&amp;#039; су дозвољене) и (2) све резултате и међурезултате процеса превођења, асемблирања и повезивања пројекта треба сместити у засебан поддиректоријум.&lt;br /&gt;
#: Студенти којима претходно наведена два услова представљају препреку могу прећи на израду наредних ставки тако што ће написати рудиментаран &amp;#039;&amp;#039;Makefile&amp;#039;&amp;#039; чији рецепти садрже команде за превођење односно асемблирање сваке појединачне датотеке са изворним кодом и остале пратеће команде за повезивање читавог пројекта. Број поена за ову ставку у случају писања рудиментарног &amp;#039;&amp;#039;Makefile&amp;#039;&amp;#039; износи један поен од максималних три поена предвиђених за ову ставку.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;[3 поена]&amp;#039;&amp;#039;&amp;#039; Написати линкерску скрипту која се може искористити приликом повезивања објектних датотека, које садрже секције са кодом, подацима без иницијалних вредности и подацима са иницијалним вредностима, у циљу добијања извршног кода односно меморијске мапе. Извршни код добијен на основу написане линкерске скрипте мора се исправно извршавати на микроконтролеру &amp;#039;&amp;#039;STM32F103R6&amp;#039;&amp;#039; и након губитка напајања. Приликом писања линкерске скрипте могуће је усвојити претпоставку о постојању одговарајућих симбола (секција са садржајем &amp;#039;&amp;#039;IVT&amp;#039;&amp;#039;, улазна тачка програма итд.) у оквиру улазних објектних датотека.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;[3 поена]&amp;#039;&amp;#039;&amp;#039; Написати изворни код којим се постиже у потпуности исправна иницијализација микроконтролера &amp;#039;&amp;#039;STM32F103R6&amp;#039;&amp;#039; у општем случају (програм који се извршава садржи код, податке без иницијалних вредности и податке са иницијалним вредностима) при чему је потребно обезбедити исправно извршавање и након губитка напајања.&lt;br /&gt;
#: Функцију &amp;lt;code&amp;gt;test4&amp;lt;/code&amp;gt; дефинисану у &amp;#039;&amp;#039;test.c&amp;#039;&amp;#039; датотеци позвати на самом почетку &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt; функције.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;[2 поена]&amp;#039;&amp;#039;&amp;#039; Конфигурисати систем и SCB (&amp;#039;&amp;#039;System control block&amp;#039;&amp;#039;) периферију језгра на описани начин. Обезбедити да битови који представљају приоритете изузетака/прекида имају следеће значење: највиша два бита одређују групни приоритет, преостали нижи битови одређују подприоритет. Поставити вредност &amp;lt;code&amp;gt;0xF0&amp;lt;/code&amp;gt; за приоритет &amp;#039;&amp;#039;PendSV&amp;#039;&amp;#039; изузетка. Активирати &amp;#039;&amp;#039;PendSV&amp;#039;&amp;#039; изузетак постављањем његовог &amp;#039;&amp;#039;pending&amp;#039;&amp;#039; бита на активну вредност.&lt;br /&gt;
#: Функцију &amp;lt;code&amp;gt;test5&amp;lt;/code&amp;gt; дефинисану у &amp;#039;&amp;#039;test.c&amp;#039;&amp;#039; датотеци позвати из &amp;#039;&amp;#039;PendSV&amp;#039;&amp;#039; руковаоца изузетком (&amp;#039;&amp;#039;exception handler&amp;#039;&amp;#039;) односно прекидне рутине.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;[2 поена]&amp;#039;&amp;#039;&amp;#039; Конфигурисати систем и &amp;#039;&amp;#039;NVIC&amp;#039;&amp;#039; (&amp;#039;&amp;#039;Nested vectored interrupt controller&amp;#039;&amp;#039;) периферију језгра тако да су истовремено остварена следећа три услова: (1) захтеви за обрадом прекида &amp;#039;&amp;#039;IRQ0&amp;#039;&amp;#039;, &amp;#039;&amp;#039;IRQ1&amp;#039;&amp;#039; и &amp;#039;&amp;#039;IRQ2&amp;#039;&amp;#039; јесу омогућени, (2) у случају пристизања претходна три захтева у истом тренутку редослед њихове обраде јесте прво &amp;#039;&amp;#039;IRQ2&amp;#039;&amp;#039;, затим &amp;#039;&amp;#039;IRQ0&amp;#039;&amp;#039; и на крају &amp;#039;&amp;#039;IRQ1&amp;#039;&amp;#039; и (3) групни приоритет претходна три прекида је идентичан. Активирати &amp;#039;&amp;#039;IRQ0&amp;#039;&amp;#039;, &amp;#039;&amp;#039;IRQ1&amp;#039;&amp;#039; и &amp;#039;&amp;#039;IRQ2&amp;#039;&amp;#039; прекиде одједном истовременим постављањем њихових &amp;#039;&amp;#039;pending&amp;#039;&amp;#039; битова на активну вредност. Функције &amp;lt;code&amp;gt;test6_irq0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;test6_irq1&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;test6_irq2&amp;lt;/code&amp;gt; дефинисане у &amp;#039;&amp;#039;test.c&amp;#039;&amp;#039; датотеци појединачно позвати из прекидних рутина &amp;#039;&amp;#039;IRQ0&amp;#039;&amp;#039;, &amp;#039;&amp;#039;IRQ1&amp;#039;&amp;#039; и &amp;#039;&amp;#039;IRQ2&amp;#039;&amp;#039;, респективно (сваку тест функцију позвати само у њој одговарајућој прекидној рутини).&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;[2 поена]&amp;#039;&amp;#039;&amp;#039; Конфигурисати систем и &amp;#039;&amp;#039;STK&amp;#039;&amp;#039; (&amp;#039;&amp;#039;SysTick timer&amp;#039;&amp;#039;) периферију језгра тако да буде могуће мерење времена протеклог између позива &amp;lt;code&amp;gt;start&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;stop&amp;lt;/code&amp;gt; функција. Позивом &amp;lt;code&amp;gt;start&amp;lt;/code&amp;gt; функције означава се почетни тренутак мерења времена. Позивом &amp;lt;code&amp;gt;stop&amp;lt;/code&amp;gt; функције као повратна вредност добија се број милисекунди протеклих од последњег позива &amp;lt;code&amp;gt;start&amp;lt;/code&amp;gt; функције. Имплементирати &amp;lt;code&amp;gt;start&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;stop&amp;lt;/code&amp;gt; функције.&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
extern void start();&lt;br /&gt;
extern uint32_t stop();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#: Након исправне конфигурације &amp;#039;&amp;#039;STK&amp;#039;&amp;#039; (&amp;#039;&amp;#039;SysTick timer&amp;#039;&amp;#039;) периферије језгра, односно када је систем спреман за позив &amp;lt;code&amp;gt;start&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;stop&amp;lt;/code&amp;gt; функција, из &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt; функције позвати функцију &amp;lt;code&amp;gt;test7&amp;lt;/code&amp;gt; дефинисану у &amp;#039;&amp;#039;test.c&amp;#039;&amp;#039; датотеци.&lt;br /&gt;
&lt;br /&gt;
=== Решење ===&lt;br /&gt;
==== Додаци ====&lt;br /&gt;
Биле су дате датотеке &amp;lt;code&amp;gt;nvic.h&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;scb.h&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;stk.h&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;test.c&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;test.h&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;utility.h&amp;lt;/code&amp;gt; као из примера прве предиспитне обавезе.&lt;br /&gt;
&lt;br /&gt;
У &amp;lt;code&amp;gt;scb.h&amp;lt;/code&amp;gt; је потребно додати следеће:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#define SCB ((SCB_RegisterMapType*) 0xE000ED00)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
У &amp;lt;code&amp;gt;nvic.h&amp;lt;/code&amp;gt; је потребно додати следеће:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#define NVIC ((NVIC_RegisterMapType*) 0xE000E100)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
У &amp;lt;code&amp;gt;stk.h&amp;lt;/code&amp;gt; је потребно додати следеће:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#define STK ((STK_RegisterMapType*) 0xE000E010)&lt;br /&gt;
&lt;br /&gt;
#define STK_CTRL_CLKSOURCE (1 &amp;lt;&amp;lt; 2)&lt;br /&gt;
#define STK_CTRL_TICKINT   (1 &amp;lt;&amp;lt; 1)&lt;br /&gt;
#define STK_CTRL_ENABLE    (1 &amp;lt;&amp;lt; 0)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Тестови ====&lt;br /&gt;
Датотека &amp;lt;code&amp;gt;test.c&amp;lt;/code&amp;gt; је изгледала овако:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 *  SADRZAJ OVE DATOTEKE NE MENJATI&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
uint8_t const rodata[] = &amp;quot;VMA:FLASH, LMA:FLASH&amp;quot;;&lt;br /&gt;
uint8_t data[] = &amp;quot;VMA:RAM, LMA:FLASH&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
void test4()&lt;br /&gt;
{&lt;br /&gt;
	// proveriti da li je sadrzaj iz FLASH memorije&lt;br /&gt;
	// prekopiran u inicijalno praznu RAM memoriju&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void test5()&lt;br /&gt;
{&lt;br /&gt;
	// proveriti da li je postavljen prioritet PendSV izuzetka na dobar nacin&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void test6_irq0()&lt;br /&gt;
{&lt;br /&gt;
	// proveriti redosled izvrsavanja prekidnih rutina&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void test6_irq1()&lt;br /&gt;
{&lt;br /&gt;
	// proveriti redosled izvrsavanja prekidnih rutina&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void test6_irq2()&lt;br /&gt;
{&lt;br /&gt;
	// proveriti redosled izvrsavanja prekidnih rutina&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
extern void start();&lt;br /&gt;
extern uint32_t stop();&lt;br /&gt;
uint32_t time_elapsed = 0;&lt;br /&gt;
&lt;br /&gt;
void test7()&lt;br /&gt;
{&lt;br /&gt;
	start();&lt;br /&gt;
	uint32_t consumer = 0;&lt;br /&gt;
	for (uint32_t i = 0; i &amp;lt; 250000; i++)&lt;br /&gt;
	{&lt;br /&gt;
		consumer++;&lt;br /&gt;
	}&lt;br /&gt;
	time_elapsed = stop();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
док је датотека &amp;lt;code&amp;gt;test.h&amp;lt;/code&amp;gt; изгледала овако:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 *  SADRZAJ OVE DATOTEKE NE MENJATI&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
#ifndef _TEST_H_&lt;br /&gt;
#define _TEST_H_&lt;br /&gt;
&lt;br /&gt;
extern void test4();&lt;br /&gt;
extern void test5();&lt;br /&gt;
extern void test6_irq0();&lt;br /&gt;
extern void test6_irq1();&lt;br /&gt;
extern void test6_irq2();&lt;br /&gt;
extern void test7();&lt;br /&gt;
&lt;br /&gt;
#endif /* _TEST_H_ */&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Линкерска скрипта ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MEMORY&lt;br /&gt;
{&lt;br /&gt;
	FLASH(rx) : ORIGIN = 0x08000000, LENGTH = 32K&lt;br /&gt;
	SRAM(rwx) : ORIGIN = 0x20000000, LENGTH = 10K&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
SECTIONS&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	.vector_table :&lt;br /&gt;
	{&lt;br /&gt;
		*(.vector_table)&lt;br /&gt;
	} &amp;gt; FLASH&lt;br /&gt;
&lt;br /&gt;
	.text :&lt;br /&gt;
	{&lt;br /&gt;
		*(.text)&lt;br /&gt;
	} &amp;gt; FLASH&lt;br /&gt;
&lt;br /&gt;
	.rodata :&lt;br /&gt;
	{&lt;br /&gt;
		*(.rodata)&lt;br /&gt;
	} &amp;gt; FLASH&lt;br /&gt;
&lt;br /&gt;
	.data :&lt;br /&gt;
	{&lt;br /&gt;
		_vma_data_start = .;&lt;br /&gt;
		*(.data)&lt;br /&gt;
		_vma_data_end = .;&lt;br /&gt;
	} &amp;gt; SRAM AT&amp;gt; FLASH&lt;br /&gt;
	_lma_data_start = LOADADDR(.data);&lt;br /&gt;
&lt;br /&gt;
	.bss :&lt;br /&gt;
	{&lt;br /&gt;
		*(.bss)&lt;br /&gt;
	} &amp;gt; SRAM&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;#039;&amp;#039;Makefile&amp;#039;&amp;#039; ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;makefile&amp;quot;&amp;gt;&lt;br /&gt;
PROGRAM = program&lt;br /&gt;
BUILD_DIR = build&lt;br /&gt;
DEBUG_ENABLED = 1&lt;br /&gt;
&lt;br /&gt;
SOURCE_C_LIST = \&lt;br /&gt;
	src/main.c \&lt;br /&gt;
	src/test.c&lt;br /&gt;
&lt;br /&gt;
SOURCE_S_LIST = \&lt;br /&gt;
	src/startup.s&lt;br /&gt;
&lt;br /&gt;
INCLUDE_LIST = -Iinc&lt;br /&gt;
&lt;br /&gt;
CC = arm-none-eabi-gcc -c&lt;br /&gt;
AS = arm-none-eabi-gcc -c -x assembler&lt;br /&gt;
LD = arm-none-eabi-ld&lt;br /&gt;
HX = arm-none-eabi-objcopy -O ihex&lt;br /&gt;
&lt;br /&gt;
LINKER_SCRIPT = linker_script.ld&lt;br /&gt;
&lt;br /&gt;
OBJECTS_LIST =&lt;br /&gt;
OBJECTS_LIST += $(addprefix $(BUILD_DIR)/, $(notdir $(SOURCE_C_LIST:.c=.o)))&lt;br /&gt;
OBJECTS_LIST += $(addprefix $(BUILD_DIR)/, $(notdir $(SOURCE_S_LIST:.s=.o)))&lt;br /&gt;
vpath %.c $(sort $(dir $(SOURCE_C_LIST)))&lt;br /&gt;
vpath %.s $(sort $(dir $(SOURCE_S_LIST)))&lt;br /&gt;
&lt;br /&gt;
MCU = -mcpu=cortex-m3 -mthumb&lt;br /&gt;
FLAGS_DEBUG = -g -gdwarf-2 -fdebug-prefix-map==../&lt;br /&gt;
WARNINGS = -Wall -Wextra&lt;br /&gt;
&lt;br /&gt;
FLAGS_AS =&lt;br /&gt;
FLAGS_AS += $(MCU)&lt;br /&gt;
FLAGS_AS += $(WARNINGS)&lt;br /&gt;
ifeq ($(DEBUG_ENABLED), 1)&lt;br /&gt;
FLAGS_AS += $(FLAGS_DEBUG)&lt;br /&gt;
endif&lt;br /&gt;
FLAGS_AS += -mlong-calls&lt;br /&gt;
&lt;br /&gt;
	FLAGS_CC =&lt;br /&gt;
FLAGS_CC += $(MCU)&lt;br /&gt;
FLAGS_CC += $(WARNINGS)&lt;br /&gt;
FLAGS_CC += $(INCLUDE_LIST)&lt;br /&gt;
ifeq ($(DEBUG_ENABLED), 1)&lt;br /&gt;
FLAGS_CC += $(FLAGS_DEBUG)&lt;br /&gt;
endif&lt;br /&gt;
FLAGS_CC += -MMD -MP&lt;br /&gt;
FLAGS_CC += -mlong-calls&lt;br /&gt;
&lt;br /&gt;
all: $(BUILD_DIR)/$(PROGRAM).elf $(BUILD_DIR)/$(PROGRAM).hex&lt;br /&gt;
&lt;br /&gt;
$(BUILD_DIR)/$(PROGRAM).hex: $(BUILD_DIR)/$(PROGRAM).elf&lt;br /&gt;
	$(HX) $(&amp;lt;) $(@)&lt;br /&gt;
&lt;br /&gt;
$(BUILD_DIR)/$(PROGRAM).elf: $(OBJECTS_LIST) $(LINKER_SCRIPT)&lt;br /&gt;
	$(LD) -T $(LINKER_SCRIPT) -o $(@) $(OBJECTS_LIST)&lt;br /&gt;
&lt;br /&gt;
$(BUILD_DIR)/%.o: %.s makefile | $(BUILD_DIR)&lt;br /&gt;
	$(AS) $(FLAGS_AS) -o $(@) $(&amp;lt;)&lt;br /&gt;
&lt;br /&gt;
$(BUILD_DIR)/%.o: %.c makefile | $(BUILD_DIR)&lt;br /&gt;
	$(CC) $(FLAGS_CC) -o $(@) $(&amp;lt;)&lt;br /&gt;
&lt;br /&gt;
$(BUILD_DIR):&lt;br /&gt;
	mkdir -p $(BUILD_DIR)&lt;br /&gt;
&lt;br /&gt;
clean:&lt;br /&gt;
	rm -rf $(BUILD_DIR)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-include $(wildcard $(BUILD_DIR)/*.d)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;startup.s&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
.cpu cortex-m3&lt;br /&gt;
.fpu softvfp&lt;br /&gt;
.syntax unified&lt;br /&gt;
.thumb&lt;br /&gt;
&lt;br /&gt;
.section .vector_table, &amp;quot;a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
.extern main&lt;br /&gt;
.extern systick_handler&lt;br /&gt;
.extern test5&lt;br /&gt;
.extern test6_irq0&lt;br /&gt;
.extern test6_irq1&lt;br /&gt;
.extern test6_irq2&lt;br /&gt;
&lt;br /&gt;
.word 0x20002800&lt;br /&gt;
.word main&lt;br /&gt;
.rept 12&lt;br /&gt;
	.word infinite_loop&lt;br /&gt;
.endr&lt;br /&gt;
.word test5&lt;br /&gt;
.word systick_handler&lt;br /&gt;
.word test6_irq0&lt;br /&gt;
.word test6_irq1&lt;br /&gt;
.word test6_irq2&lt;br /&gt;
.rept 65&lt;br /&gt;
	.word infinite_loop&lt;br /&gt;
.endr&lt;br /&gt;
&lt;br /&gt;
.text&lt;br /&gt;
infinite_loop:&lt;br /&gt;
	b infinite_loop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;main.c&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;nvic.h&amp;quot;&lt;br /&gt;
#include &amp;quot;scb.h&amp;quot;&lt;br /&gt;
#include &amp;quot;stk.h&amp;quot;&lt;br /&gt;
#include &amp;quot;test.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
uint32_t millis;&lt;br /&gt;
&lt;br /&gt;
void start() {&lt;br /&gt;
	millis = 0;&lt;br /&gt;
	STK-&amp;gt;VAL = 0;&lt;br /&gt;
	STK-&amp;gt;LOAD = 8000 - 1;&lt;br /&gt;
	STK-&amp;gt;CTRL |= STK_CTRL_CLKSOURCE | STK_CTRL_ENABLE | STK_CTRL_TICKINT;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
uint32_t stop() {&lt;br /&gt;
	STK-&amp;gt;CTRL &amp;amp;= ~(STK_CTRL_CLKSOURCE | STK_CTRL_ENABLE | STK_CTRL_TICKINT);&lt;br /&gt;
	return millis;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void systick_handler() {&lt;br /&gt;
	++millis;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
extern char _vma_data_start;&lt;br /&gt;
extern char _vma_data_end;&lt;br /&gt;
extern char _lma_data_start;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
	// Kopiranje podataka&lt;br /&gt;
	for (char *data_src = &amp;amp;_lma_data_start, *data_dst = &amp;amp;_vma_data_start; data_dst != &amp;amp;_vma_data_end; *(data_dst++) = *(data_src++));&lt;br /&gt;
	// Poziv test funkcije kako je rečeno&lt;br /&gt;
	test4();&lt;br /&gt;
	// Podešavanje prioriteta: xx.yy (x - grupa, y - podgrupa)&lt;br /&gt;
	SCB-&amp;gt;AIRCR = (0x5FA &amp;lt;&amp;lt; 16) | (5 &amp;lt;&amp;lt; 8);&lt;br /&gt;
	// Postavljanje prioriteta za PendSV&lt;br /&gt;
	SCB-&amp;gt;SHPR3 = (0xF0 &amp;lt;&amp;lt; 16);&lt;br /&gt;
	// Postavljanje pending bita za PendSV&lt;br /&gt;
	SCB-&amp;gt;ICSR |= 0x10000000;&lt;br /&gt;
	// Omogućavanje IRQ2..0&lt;br /&gt;
	NVIC-&amp;gt;ISER[0] |= 0x7;&lt;br /&gt;
	// Postavljanje prioriteta za IRQ2..0&lt;br /&gt;
	NVIC-&amp;gt;IPR[0] = (0b10000000 &amp;lt;&amp;lt; 16) | (0b10110000 &amp;lt;&amp;lt; 8) | (0b10010000 &amp;lt;&amp;lt; 0);&lt;br /&gt;
	// Postavljanje pending bita za IRQ2..0&lt;br /&gt;
	NVIC-&amp;gt;ISPR[0] |= 0x7;&lt;br /&gt;
	// STK testiranje&lt;br /&gt;
	test7();&lt;br /&gt;
	// Vrtimo se do kraja izvršavanja&lt;br /&gt;
	while (1);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Тестирање ===&lt;br /&gt;
Функционалности предвиђене задатком се тестирају на следећи начин (приказано референтним снимком на првом колоквијуму):&lt;br /&gt;
# Када се уђе у функцију &amp;lt;code&amp;gt;test4&amp;lt;/code&amp;gt;, проверити садржај RAM како би видели да ли се податак &amp;lt;code&amp;gt;VMA:RAM, LMA:FLASH&amp;lt;/code&amp;gt; исправно копирао.&lt;br /&gt;
# Када се уђе у функцију &amp;lt;code&amp;gt;test5&amp;lt;/code&amp;gt;, отворити &amp;#039;&amp;#039;Registers&amp;#039;&amp;#039; прозор и проверити да ли &amp;lt;code&amp;gt;Pri&amp;lt;/code&amp;gt; ред приказује &amp;lt;code&amp;gt;C0.30&amp;lt;/code&amp;gt; као вредност.&lt;br /&gt;
# Проверити да ли се у &amp;lt;code&amp;gt;test6_irqX&amp;lt;/code&amp;gt; функције улази редом &amp;#039;&amp;#039;IRQ2&amp;#039;&amp;#039;, &amp;#039;&amp;#039;IRQ0&amp;#039;&amp;#039;, &amp;#039;&amp;#039;IRQ1&amp;#039;&amp;#039;.&lt;br /&gt;
# Забележити време које &amp;#039;&amp;#039;Proteus&amp;#039;&amp;#039; пријављује када се дође до линије са позивом &amp;lt;code&amp;gt;start&amp;lt;/code&amp;gt;, затим наставити до линије са позивом &amp;lt;code&amp;gt;stop&amp;lt;/code&amp;gt; и проверити да ли је у &amp;lt;code&amp;gt;time_elapsed&amp;lt;/code&amp;gt; променљиву уписана разлика тренутног и забележеног времена у милисекундама.&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:Микропроцесорски системи]]&lt;/div&gt;</summary>
		<author><name>KockaAdmiralac</name></author>
	</entry>
</feed>