📄 lua移植到mtk平台小结.htm
字号:
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=gb2312">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2800.1619" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT size=2>
<H1><IMG height=16 alt=原创 src="http://blog.csdn.net/images/authorship.gif"
width=15 border=0> <A
href="http://blog.csdn.net/wuyao721/archive/2008/11/28/3405281.aspx">lua移植到MTK平台小结</A><CITE
class=fav_csdnstylebykimi><A class=fav_csdnstylebykimi title=收藏到我的网摘中,并分享给我的朋友
href="javascript:d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(saveit=window.open('http://wz.csdn.net/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'saveit','scrollbars=no,width=590,height=300,left=75,top=20,status=no,resizable=yes'));saveit.focus();">收藏</A></CITE></H1>
<DIV class=blogstory><SPAN id=Post.ascx_ViewPost_PreviousAndNextEntriesUp>
<H3><A
href="http://blog.csdn.net/wuyao721/archive/2008/11/29/3410782.aspx">新一篇: sed新手使用进阶全功略(转)</A> | <A
href="http://blog.csdn.net/wuyao721/archive/2008/11/26/3381937.aspx">旧一篇: lua和c/c++互相调用实例分析(转)</A></H3></SPAN>
<SCRIPT>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</SCRIPT>
<META content=Word.Document name=ProgId>
<META content="Microsoft Word 12" name=Generator>
<META content="Microsoft Word 12" name=Originator><LINK
href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"
rel=File-List><LINK
href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"
rel=themeData>
<STYLE>
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:SimSun;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;
mso-font-charset:0;
mso-generic-font-family:roman;
mso-font-pitch:variable;
mso-font-signature:-1610611985 1107304683 0 0 159 0;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-pitch:variable;
mso-font-signature:-1610611985 1073750139 0 0 159 0;}
@font-face
{font-family:"\@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{mso-style-priority:34;
mso-style-unhide:no;
mso-style-qformat:yes;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:21.0pt;
mso-char-indent-count:2.0;
mso-pagination:none;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;}
.MsoChpDefault
{mso-style-type:export-only;
mso-default-props:yes;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
/* Page Definitions */
@page
{mso-page-border-surround-header:no;
mso-page-border-surround-footer:no;}
@page Section1
{size:595.3pt 841.9pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;
mso-header-margin:42.55pt;
mso-footer-margin:49.6pt;
mso-paper-source:0;
layout-grid:15.6pt;}
div.Section1
{page:Section1;}
/* List Definitions */
@list l0
{mso-list-id:776799736;
mso-list-type:hybrid;
mso-list-template-ids:-268541224 1326191512 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
{mso-level-text:%1.;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;}
ol
{margin-bottom:0cm;}
ul
{margin-bottom:0cm;}
-->
</STYLE>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US>lua</SPAN><SPAN
style="FONT-FAMILY: 宋体">内核使用</SPAN><SPAN lang=EN-US>C</SPAN><SPAN
style="FONT-FAMILY: 宋体">语言,所使用的函数也只有标准</SPAN><SPAN lang=EN-US>C</SPAN><SPAN
style="FONT-FAMILY: 宋体">,并且没有全局变量。对于大部分操作系统来说,移植所要做的事情很少。而移植到</SPAN><SPAN
lang=EN-US>MTK</SPAN><SPAN style="FONT-FAMILY: 宋体">平台则要注意以下几点:</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><?XML:NAMESPACE
PREFIX = O /><O:P> </O:P></SPAN></P>
<P class=MsoListParagraph
style="MARGIN-LEFT: 18pt; TEXT-INDENT: -18pt"><!--[if
!supportLists]--><SPAN lang=EN-US><SPAN>1.<SPAN
style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">
</SPAN></SPAN></SPAN><!--[endif]--><SPAN
style="FONT-FAMILY: 宋体">内存分配。</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 18pt"><SPAN lang=EN-US>Lua</SPAN><SPAN
style="FONT-FAMILY: 宋体">使用</SPAN><SPAN lang=EN-US>malloc</SPAN><SPAN
style="FONT-FAMILY: 宋体">、</SPAN><SPAN lang=EN-US>realloc</SPAN><SPAN
style="FONT-FAMILY: 宋体">、</SPAN><SPAN lang=EN-US>calloc</SPAN><SPAN
style="FONT-FAMILY: 宋体">等函数来分配内存,而</SPAN><SPAN lang=EN-US>MTK</SPAN><SPAN
style="FONT-FAMILY: 宋体">平台下不能使用这些函数,而是使用</SPAN><SPAN
lang=EN-US>OslMalloc</SPAN><SPAN
style="FONT-FAMILY: 宋体">等函数代替之。其它的分配内存函数包括以下:</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 18pt"><SPAN lang=EN-US>#define
media_get_ext_buffer(src_mod_id, buffer_p, buffer_size)\ </SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 18pt"><SPAN
lang=EN-US>media_get_ext_buffer_ext(src_mod_id,buffer_p,
buffer_size,__FILE__,__LINE__) </SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 18pt"><SPAN lang=EN-US>#define
media_get_int_buffer(src_mod_id, buffer_p, buffer_size)\ </SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 18pt"><SPAN
lang=EN-US>media_get_int_buffer_ext(src_mod_id,buffer_p,buffer_size,__FILE__,__LINE__)
</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 18pt"><SPAN lang=EN-US>#define
media_free_int_buffer(src_mod_id, buffer_p)\ </SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 18pt"><SPAN
lang=EN-US>media_free_int_buffer_ext(src_mod_id, buffer_p, __FILE__, __LINE__)
</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 18pt"><SPAN lang=EN-US>#define
media_free_ext_buffer(src_mod_id, buffer_p)\ </SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 18pt"><SPAN
lang=EN-US>media_free_ext_buffer_ext(src_mod_id, buffer_p, __FILE__,
__LINE__)</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 18pt"><SPAN
lang=EN-US>mmi_frm_scrmem_alloc()</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 18pt"><SPAN
lang=EN-US><O:P> </O:P></SPAN></P>
<P class=MsoListParagraph
style="MARGIN-LEFT: 18pt; TEXT-INDENT: -18pt"><!--[if
!supportLists]--><SPAN lang=EN-US><SPAN>2.<SPAN
style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">
</SPAN></SPAN></SPAN><!--[endif]--><SPAN
style="FONT-FAMILY: 宋体">文件操作。</SPAN></P>
<P class=MsoListParagraph style="MARGIN-LEFT: 18pt; TEXT-INDENT: 0cm"><SPAN
lang=EN-US>fopne</SPAN><SPAN style="FONT-FAMILY: 宋体">、</SPAN><SPAN
lang=EN-US>fread</SPAN><SPAN style="FONT-FAMILY: 宋体">、</SPAN><SPAN
lang=EN-US>fwrite</SPAN><SPAN style="FONT-FAMILY: 宋体">、</SPAN><SPAN
lang=EN-US>fclose</SPAN><SPAN style="FONT-FAMILY: 宋体">等函数也不要使用,用</SPAN><SPAN
lang=EN-US>FS_Open</SPAN><SPAN style="FONT-FAMILY: 宋体">、</SPAN><SPAN
lang=EN-US>FS_Close</SPAN><SPAN style="FONT-FAMILY: 宋体">、</SPAN><SPAN
lang=EN-US>FS_Read</SPAN><SPAN style="FONT-FAMILY: 宋体">、</SPAN><SPAN
lang=EN-US>FS_Write</SPAN><SPAN style="FONT-FAMILY: 宋体">等函数代替之。</SPAN></P>
<P class=MsoListParagraph
style="MARGIN-LEFT: 18pt; TEXT-INDENT: -18pt"><!--[if
!supportLists]--><SPAN lang=EN-US><SPAN>3.<SPAN
style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">
</SPAN></SPAN></SPAN><!--[endif]--><SPAN
style="FONT-FAMILY: 宋体">消息(事件)传递。</SPAN></P>
<P class=MsoListParagraph style="MARGIN-LEFT: 18pt; TEXT-INDENT: 0cm"><SPAN
style="FONT-FAMILY: 宋体">手机上的消息要传给</SPAN><SPAN lang=EN-US>lua</SPAN><SPAN
style="FONT-FAMILY: 宋体">,包括按键消息、</SPAN><SPAN lang=EN-US>timer</SPAN><SPAN
style="FONT-FAMILY: 宋体">消息、</SPAN><SPAN lang=EN-US>socket</SPAN><SPAN
style="FONT-FAMILY: 宋体">消息。</SPAN></P>
<P class=MsoListParagraph style="MARGIN-LEFT: 18pt; TEXT-INDENT: 0cm"><SPAN
lang=EN-US><O:P>
<DIV class=highlighter>
<OL class=highlighter-cpp>
<LI><SPAN class=datatypes>int</SPAN><SPAN> (*func)(</SPAN><SPAN
class=keyword>void</SPAN><SPAN> *pthis,</SPAN><SPAN
class=datatypes>int</SPAN><SPAN> evtType, </SPAN><SPAN
class=datatypes>UINT32</SPAN><SPAN> param1, </SPAN><SPAN
class=datatypes>UINT32</SPAN><SPAN> param2);</SPAN>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -