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

📄 rcu25.htm

📁 ST20 Embedded Toolset R2.0.5用于开发基于ST20芯片机顶盒软件的开发平台,2.0.5版本,国内找不到的.在国外论坛上花了N天才找到!
💻 HTM
字号:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="GENERATOR" content="Quadralay WebWorks Publisher Professional Edition 6.0.5">
<meta name="TEMPLATEBASE" content="book_html">
<meta name="LASTUPDATED" content="12/04/03 16:05:57">
<title>10.4.7 Code incompatibility  </title>

<STYLE TYPE="text/css">
<!--
	span.Signal { text-transform: uppercase; font-family: Verdana }
-->
</STYLE>

</head>

<body link="#3366CC" vlink="#9999CC" text="#000000" alink="#0000CC" bgcolor="#FFFFFF"
background="images/backgrnd.gif">

<p><img src="images/stlogo.gif" width="106" height="83" align="left"
alt="logo here!"> </p>

<table width="331" border="0" align="right" cellpadding="0" cellspacing="0">
  <tr>
    <td><a href="a_refman.htm"><img src="images/navtoc.gif" width="84" height="23"
    border="0" alt="TOC"> </a></td>
    <td><a href="rcu24.htm"><img src="images/navprev.gif" width="80" height="23"
    border="0" alt="PREV"> </a></td>
    <td><a href="os20rtos.htm"><img src="images/navnext.gif" width="83" height="23"
    border="0" alt="NEXT"> </a></td>
    <td><a href="a_refmaa.htm"><img src="images/navidx.gif" width="84" height="23"
    border="0" alt="INDEX"> </a></td>
  </tr>
</table>

<p><br clear="all">
</p>

<hr align="left">

<blockquote>
<h3>
  <a name="1205876"> </a><font color="#003366"  face="Verdana, Arial, Helvetica, sans-serif">10.4.7 	 Code incompatibility</font>
</h3>


<p>
  <a name="1205877"> </a><font size=2  face="Verdana, Arial, Helvetica, sans-serif">It is sometimes useful to write code that is compiled to run in both the main application and the loaded RCU, calling different functions depending on where it is run. This can occur when using OS20 because the application can call functions which only take a function pointer. If the same functionality is needed from the RCU, a static link needs to be specified as well. Thus it is difficult to write code which can be used in both cases.</font>
</p>


<p>
  <a name="1204904"> </a><font size=2  face="Verdana, Arial, Helvetica, sans-serif">One solution to this is to use the <font  face="Verdana, Arial, Helvetica, sans-serif"><b>translate</b></font> option of the <font size=2 face=Courier><strong>export</strong></font> command. In this way the name of the function called by the RCU code does not have to have the same name in the main application. For example, if the RCU uses the command:</font>
</p>


<a name="1204905"> </a><font size=2 face=Courier><strong>import application_fn<br></strong></font>



<p>
  <a name="1204906"> </a><font size=2  face="Verdana, Arial, Helvetica, sans-serif">the RCU is built with a stub function called <font size=2 face=Courier><strong>application_fn()</strong></font>, which calls through a function pointer, and which is initialized by the dynamic link library <font size=2 face=Courier><strong>dl.lib</strong></font> to point to the function, which is then exported under the name "<font size=2 face=Courier><strong>application_fn</strong></font>".</font>
</p>


<p>
  <a name="1204907"> </a><font size=2  face="Verdana, Arial, Helvetica, sans-serif">However, the application can export this function using the command:</font>
</p>


<a name="1204908"> </a><font size=2 face=Courier><strong>export application_fn -translate application_fn_rcu<br></strong></font>



<p>
  <a name="1204909"> </a><font size=2  face="Verdana, Arial, Helvetica, sans-serif">which exports the function <font size=2 face=Courier><strong>application_fn_rcu()</strong></font>, but with the name "<font size=2 face=Courier><strong>application_fn</strong></font>".</font>
</p>


<p>
  <a name="1204910"> </a><font size=2  face="Verdana, Arial, Helvetica, sans-serif">Thus, when the RCU is loaded, the name "<font size=2 face=Courier><strong>application_fn</strong></font>" exported by the application is matched with the name "<font size=2 face=Courier><strong>application_fn</strong></font>" imported by the RCU. When the RCU calls the stub <font size=2 face=Courier><strong>application_fn()</strong></font>, the function pointer points to the function <font size=2 face=Courier><strong>application_fn_rcu()</strong></font> in the application, and it is this function which is be called. This function can either be a complete replacement for the normal <font size=2 face=Courier><strong>application_fn()</strong></font>, or it is possible to simply modify the parameters before calling the original function.</font>
</p>


<p>
  <a name="1204915"> </a><font size=2  face="Verdana, Arial, Helvetica, sans-serif"></font>
</p>
</blockquote>

<hr>



<table width="331" border="0" align="left" cellpadding="0" cellspacing="0">
  <tr>
    <td><a href="a_refman.htm"><img src="images/navtoc.gif" width="84" height="23"
    border="0" alt="TOC"> </a></td>
    <td><a href="rcu24.htm"><img src="images/navprev.gif" width="80" height="23"
    border="0" alt="PREV"> </a></td>
    <td><a href="os20rtos.htm"><img src="images/navnext.gif" width="83" height="23"
    border="0" alt="NEXT"> </a></td>
    <td><a href="a_refmaa.htm"><img src="images/navidx.gif" width="84" height="23"
    border="0" alt="INDEX"> </a></td>
  </tr>
</table>
<font size=1 face="Verdana, Arial, Helvetica, sans-serif">&nbsp; &copy; 2001, 2002, 2003 STMicroelectronics. All Rights Reserved.<br>
&nbsp; ADCS 7250966F</font>
</body>
</html>

⌨️ 快捷键说明

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