⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chapter 9 structures -- valvano.htm

📁 介绍了在嵌入式系统中如何用c来设计嵌入式软件
💻 HTM
📖 第 1 页 / 共 4 页
字号:
    <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>&nbsp;&nbsp;unsigned short data;&nbsp;&nbsp;// 16 bit 
information<BR>&nbsp;&nbsp;struct node *next;&nbsp;&nbsp;&nbsp;&nbsp;// 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>&nbsp;</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 &lt;STDLIB.H&gt;;<BR>int StoreData(unsigned short info){ 
nodeType *pt;<BR>&nbsp;&nbsp;pt=malloc(sizeof(nodeType));&nbsp;&nbsp;// create a 
new 
entry<BR>&nbsp;&nbsp;if(pt){<BR>&nbsp;&nbsp;&nbsp;&nbsp;pt-&gt;data=info;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 
store 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -