📄 chapter 9 structures -- valvano.htm
字号:
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">A16</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">A15</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">A14</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">A13</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">A12</FONT></TD>
<TD vAlign=top width="15%"><FONT
face="Times New Roman,Times">A11-A0</FONT></TD></TR>
<TR>
<TD vAlign=top width="12%"><FONT
face="Times New Roman,Times">$0xxx</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">0</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">0</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">0</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">0</FONT></TD>
<TD vAlign=top width="15%"><FONT
face="Times New Roman,Times">xxx</FONT></TD></TR>
<TR>
<TD vAlign=top width="12%"><FONT
face="Times New Roman,Times">$1xxx</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">0</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">0</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">0</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="15%"><FONT
face="Times New Roman,Times">xxx</FONT></TD></TR>
<TR>
<TD vAlign=top width="12%"><FONT
face="Times New Roman,Times">$2xxx</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">0</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">0</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">0</FONT></TD>
<TD vAlign=top width="15%"><FONT
face="Times New Roman,Times">xxx</FONT></TD></TR>
<TR>
<TD vAlign=top width="12%"><FONT
face="Times New Roman,Times">$3xxx</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">0</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">0</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="15%"><FONT
face="Times New Roman,Times">xxx</FONT></TD></TR>
<TR>
<TD vAlign=top width="12%"><FONT
face="Times New Roman,Times">$4xxx</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">0</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">0</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">0</FONT></TD>
<TD vAlign=top width="15%"><FONT
face="Times New Roman,Times">xxx</FONT></TD></TR>
<TR>
<TD vAlign=top width="12%"><FONT
face="Times New Roman,Times">$5xxx</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">0</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">0</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="15%"><FONT
face="Times New Roman,Times">xxx</FONT></TD></TR>
<TR>
<TD vAlign=top width="12%"><FONT
face="Times New Roman,Times">$6xxx</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">0</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">0</FONT></TD>
<TD vAlign=top width="15%"><FONT
face="Times New Roman,Times">xxx</FONT></TD></TR>
<TR>
<TD vAlign=top width="12%"><FONT
face="Times New Roman,Times">$7xxx</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">1</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">DP7</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">DP6</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">DP5</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">DP4</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">DP3</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">DP2</FONT></TD>
<TD vAlign=top width="8%"><FONT face="Times New Roman,Times">DP1</FONT></TD>
<TD vAlign=top width="7%"><FONT face="Times New Roman,Times">DP0</FONT></TD>
<TD vAlign=top width="15%"><FONT
face="Times New Roman,Times">xxx</FONT></TD></TR></TBODY></TABLE></P></DIV>
<ADDRESS>Table 9-1: Extended memory access on the MC68HC812A4</ADDRESS>
<P><FONT face="Times New Roman,Times">From this table, we can see another trick
when using paged memory. If we were to switch the initialization so that CSD
activated on $0000-$7FFF (CSCTL1=CSCTL1|0x10;), then 7 4K pages would overlap
the regular address range $0000 to $6FFF. In this particular system, there are
64 data pages, numbered $00 to $3F. Notice that page numbers $30 through $36
overlap with regular data space $0000 to $6FFF. If we avoid using data pages
$30-$36, we would have 28K of regular RAM from $0000 to $6FFF plus 57 4K windows
of data paged memory space.</FONT></P>
<P><B><I><FONT face=Helvetica,Arial><A name=LINKEDLIST></A>Linear Linked
Lists</FONT></I></B></P>
<P><FONT face="Times New Roman,Times">One of the applications of structures
involves linking elements together with pointers. A linear linked list is a
simple 1-D data structure where the nodes are chained together one after
another. Each node contains data and a link to the next node. The first node is
pointed to by the <B>HeadPt</B> and the last node has a null-pointer in the next
field. A node could be defined as</FONT></P>
<DIR>
<P><CODE>struct node{<BR> unsigned short data; // 16 bit
information<BR> struct node *next; // pointer
to the next<BR>};<BR>typedef struct node nodeType;<BR>nodeType
*HeadPt;</CODE></P></DIR>
<ADDRESS>Listing 9-8: Linear linked list node structure</ADDRESS>
<P> </P>
<P><IMG height=81 src="Chapter 9 Structures -- Valvano.files/link1.gif"
width=431></P>
<ADDRESS>Figure 9-3: Linear linked list with 3 nodes</ADDRESS>
<P><FONT face="Times New Roman,Times">In order to store more data in the
structure, we will first create a new node then link it into the list. The
routine <B>StoreData</B> will return a true value if successful.</FONT></P>
<DIR>
<P><CODE>#include <STDLIB.H>;<BR>int StoreData(unsigned short info){
nodeType *pt;<BR> pt=malloc(sizeof(nodeType)); // create a
new
entry<BR> if(pt){<BR> pt->data=info; //
store
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -