﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-Going its own way......-文章分类-ARM 嵌入式开发与学习</title><link>http://www.cppblog.com/kyle1100/category/6091.html</link><description /><language>zh-cn</language><lastBuildDate>Mon, 23 Jun 2008 18:33:46 GMT</lastBuildDate><pubDate>Mon, 23 Jun 2008 18:33:46 GMT</pubDate><ttl>60</ttl><item><title>MTK 开发简介</title><link>http://www.cppblog.com/kyle1100/articles/42107.html</link><dc:creator>kyle</dc:creator><author>kyle</author><pubDate>Tue, 29 Jan 2008 05:24:00 GMT</pubDate><guid>http://www.cppblog.com/kyle1100/articles/42107.html</guid><wfw:comment>http://www.cppblog.com/kyle1100/comments/42107.html</wfw:comment><comments>http://www.cppblog.com/kyle1100/articles/42107.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/kyle1100/comments/commentRss/42107.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/kyle1100/services/trackbacks/42107.html</trackback:ping><description><![CDATA[<p><span><font size=3>编译工具和辅助工具</font></span><span><font size=3>:<br>ADS1.2<br>ADS12_update_842.exe<br>MSYS-<st1:chsdate w:st="on" Year="1899" Month="12" Day="30" IsLunarDate="False" IsROCDate="False">1.0.10</st1:chsdate>.exe<br>MinGW-3.1.0-1.exe<br>ImageMagick-6.2.5-5-Q16-windows-dll.exe<br>7z313.exe</font></span></p>
<p><span><font size=3></font></span>&nbsp;</p>
<span>
<p><span><font size=3>开始编译：</font></span><span><br></span><span><font size=3>切换到项目根目录，然后在命令行下面执行命令：</font></span><span><br><font size=3>make custom=proj gprs new<br></font></span><font size=3><span>其中，命令可以为</span><span> clean,&nbsp; &nbsp;&nbsp;&nbsp;update,&nbsp; &nbsp; remake</span></font></p>
<p><span><font size=3></font></span>&nbsp;</p>
<span>
<p align=left><span>目标文件：</span><span><br></span><span>生成的目标文件为</span><span>.bin</span><span>文件，</span><span> </span><span>位于</span><span> MTK\build\proj </span><span>目录下面，</span><span>build </span><span>目录为生成的一个目录。</span></p>
<p align=left><span><font size=3></font></span>&nbsp;</p>
<p align=left><span>Log</span><span>文件：</span><span><br>Log</span><span>文件同</span><span>.bin</span><span>文件一样，也是位于</span><span> build </span><span>目录下，如果编译出错，可以在命令行中看到出错的模块，</span><span> </span><span>然后到</span><span>build </span><span>目录下找对应的</span><span>log</span><span>文件。</span></p>
<p align=left><span><font size=3></font></span>&nbsp;</p>
<span>
<p><span>仿真环境：</span><span><br></span><span>工程文件</span><span> PixtelMMI.dsw </span><span>位于目录</span><span>&nbsp; &nbsp;&nbsp;&nbsp;MTK\plutommi\mmi </span><span>下面，由此可进入仿真环境。</span></p>
<p><span><font size=3></font></span>&nbsp;</p>
<span>
<p><span><font size=3>烧写程序：</font></span><span><br></span><font size=3><span>工具</span><span>&nbsp;&nbsp;Flash_tool.exe </span><span>可烧写程序</span></font></p>
<p><font size=3><span>该工具的主要设置是</span><span> COM</span><span>口</span><span> </span><span>和目标文件位置</span><span>Download argent </span><span>和</span><span> scatter file </span><span>用自带的就可以了，选中这两项后，会出现</span><span>ROM</span><span>的选择项，点击后可选择</span><span>.bin</span></font><span><font size=3>文件。</font></p>
<p><span><font size=3>设置好上面的参数后，连接上手机，将手机断电，然后按开机键就可以烧写程序了。</font></span></p>
<p><span><font size=3></font></span>&nbsp;</p>
<p><span><font size=3><span>Trace </span><span>工具</span></font><span><br></span><font size=3><span>在手机上往往要做一些</span><span>trace</span><span>，这就要用到</span><span>trace</span><span>工具</span><span>---Catcher.exe。</span><span>手机上打</span><span> trace </span><span>接口为</span><span>kal_prompt_trace</span><span>，如同</span><span>agere</span><span>平台的</span><span>GSMprinf.</span></font></span></p>
<p><span><span><font size=3></font></span></span>&nbsp;</p>
<p><span></span><font size=3><span><span>使用</span><span> Catcher.exe</span><span>，<span>要先要设置</span><span> DataBase</span><span>，这个文件是在编译的时候生成的，是个没有扩展名的二进制文件。</span></span></span><span><span><span>该文件位于</span><span> \MTK\tst\database_classb</span><span>，例如，</span><span> BPLGU..。</span></span></span><span><span><span><span>在</span><span> Catcher.exe </span><span>中，设置</span><span> DataBase </span><span>的方式是</span><span> config&#224; set database path。</span></span></span></span></font></p>
<p><span><span></span><span><font size=3><span>其次</span><span>, </span><span>要设置模式为</span><span>logging</span><span>，这样才能进行下面的设置。</span></font></span></span><span><span><span><font size=3><span>该设置位于</span><span>&nbsp;&nbsp;control&#224; mode&#224; logging。</span></font></span></span></span></p>
<p><span><span><span><span><font size=3><span>第三，要设置好</span><span>COM</span><span>口。</span></font></span></span></span></span></p>
<p><font size=3><span><span><span><span><span><span>第四，</span><span> </span><span>打开连接开关，表示</span><span> Catcher.exe</span><span>处于待命状态。<span>第五，</span><span> </span><span>设置</span><span>filter</span><span>这个可以过滤一些自己不需要的</span><span>log。</span><span>有时半天不出现</span><span>log, </span><span>这时候重<span>新选择一下</span><span>filter</span><span>一般就会解决问题。</span></span></span></span></span></span></span></span><span><span><span><span><span><span><span><span><span>Filter</span><span>设置路径为</span><span>&nbsp;&nbsp;control&#224; set filter。</span></span></span></span></span></span></span></span></span><span><span><span><span><span><span><span><span><span><span>Catcher.exe </span><span>使用的连接线给烧写程序用的线是同一条。</span></span></span></span></span></span></span></span></span></span></font></p>
<p><span><span><span><span><span><span><span><span><span><span><span>保存</span><span>log:<br></span><span>在</span><span>log</span><span>区域选中想要保存的</span><span>log&nbsp;&nbsp;(</span><span>可用</span><span>shift</span><span>＋</span><span> </span><span>鼠标</span><span>)</span><span>，鼠标右键选</span><span>save as&#8230;</span><span>有时为了方便测试，会设置</span><span>trace</span><span>默认关闭，</span><span> </span><span>需要的时候可以打开。</span><span>该设置在工程模式下<span>设备</span><span>&#224; set UART&#224;TST Config, </span><span>设置合适的</span><span>UART </span><span>口。</span><span> </span><span>比如，</span><span>UART1</span><span>是可以</span><span>trace</span><span>的。</span></span></span></span></span></span></span></span></span></span></span></span></p>
<span><span><span><span><span><span><span><span><span><span><span><span>
<p><span>编译出错：</span><span><br></span><span>有时编译会出现莫名其妙的错误，比如一刚刚可以编译通过，现在却不行。</span><span><font size=3>以上为项目开发的基本环境和基本过程。</font></span></p>
<p><span><font size=3></font></span>&nbsp;</p>
<p><span><span><font size=3>接下来的内容，则是具体的开发细节：</font></span></span></p>
<p><span><span><span><font size=3>添加文件</font></span><font size=3><span>:<br></span><span>开发过程中，少不了加减文件</span><span>, </span><span>删除文件实际上是添加文件的相反过程，因此略过。</span></font><span><br><font size=3>MTK</font></span><font size=3><span>设置了很多</span><span>lst </span><span>和</span><span> pth </span><span>文件供用户添加文件，这些都在</span><span>make</span><span>文件夹下。</span><span> </span><span>用户可以自己添加模块，也可利用原有的</span><span>lst </span><span>和</span><span> pth </span><span>文件添加<span>以下以添加在</span><span> MTK\make\plutommi </span><span>为例。</span></span></font></span></span></p>
<p><span><span><span><span><font size=3></font></span></span></span></span>&nbsp;</p>
<p><span><span><span><span><span><font size=3>添加头文件路径：</font></span><span><br><font size=3>plutommi.inc<br></font></span><span><font size=3>添加本模块路径：</font></span><span><br><font size=3>plutommi.pth<br></font></span><span><font size=3>添加源文件路径：</font></span><span><br><font size=3>plutommi.lis<br></font></span><span><font size=3>添加完毕，这些文件就可参与编译了。</font></span></span></span></span></span></p>
<p><span><span><span><span><span><font size=3></font></span></span></span></span></span>&nbsp;</p>
<span><span><span><span><span>
<p><span><font size=3>添加开关：</font></span><span><br></span><font size=3><span>开关真是个好东西。</span><span>依靠它，可以将没有价值的功能瞬间屏蔽，又可以将我们需要但又搁置的功能瞬间启用。</span><span> </span><span>能者上，不能者下</span><span>,</span><span>多么类似于社会法则。</span><span> </span></font><span><br></span><font size=3><span>添加开关</span><span> </span><span>在</span><span>make</span><span>文件夹下面的</span><span> .mak</span><span>文件里面。</span></font><span><br></span><span><font size=3>注意事项：</font></span><span><br></span><font size=3><span>有人喜欢模仿</span><span>MTK</span><span>原做法，在</span><span> .mak</span><span>文件里面使用一个开关管住另外一个开关。</span><span>那么两个开关不要同名，否则开关起不了关闭的作用。</span></font></p>
<p><span><font size=3></font></span>&nbsp;</p>
<span>
<p align=left><span>添加</span><span>string</span><span>资源</span><span>:<br>1. GlobalDefs.h </span><span>中增加</span><span>ID。<br>2. population.c </span><span>中将</span><span>ID</span><span>和</span><span> string</span><span>关联。</span><span><br>3. plutommi\Customer\CustResource\PLUTO_MMI\ref_list.txt </span><span>中增加</span><span>ID </span><span>和各种语言的文本</span><span>有了以上</span><span>3</span><span>个步骤，即可使用该文本资源了。</span></p>
<p><span>编译后</span><span>,</span><span>在</span><span> plutommi\Customer\CustResource</span><span>下面</span><span> </span><span>会生成新的</span><span>CustStrMap.c </span><span>和</span><span><br>CustStrRes.c<span>这两个文件中就包含了新增的</span><span>string</span><span>资源。</span></span></p>
<p><span><span><font size=3></font></span></span>&nbsp;</p>
<span><span>
<p align=left><span>添加图片：</span><span><br>1. GlobalDefs.h </span><span>中增加</span><span>ID</span></p>
<p align=left><span>2. population.c </span><span>中将</span><span>ID</span><span>和</span><span> string</span><span>关联</span></p>
<p align=left><span>3. </span><span>增加图片到解压后的包里，增加完毕，应打包。</span><span>plutommi\Customer\Images\PLUTO176X220</span><span>里面的文件夹是生成的，可以在</span><span>cc</span><span>上看到为</span><span>private。</span></p>
<p align=left><span>4. </span><span>添加进去后，要打包，如果仅添加在文件夹里面会被清除。</span><span> </span><span>如果没有找到图片文件，手机显示的时候是一个红色的</span><span>*</span><span>添加图片时，注意路径用</span><span>4</span><span>杠</span><font size=3><span>在</span><span>NVRam</span><span>中增加成员：</span><span>需要增加</span><span>ID</span><span>，指出每块大小，以及总的块数</span><span> </span><span>和缺省值。</span><span>每块大小最好为偶数。</span><span>修改下面的文件：</span><span>Nvram_user_defs.h:&nbsp;&nbsp;ID, </span><span>大小，个数。</span>&nbsp;</font></p>
<p><span><font size=3>NVRAMEnum.h<br>Nvram_user_config.c<br>custom_nvram_editor_data_item.h</font></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p>
<img src ="http://www.cppblog.com/kyle1100/aggbug/42107.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/kyle1100/" target="_blank">kyle</a> 2008-01-29 13:24 <a href="http://www.cppblog.com/kyle1100/articles/42107.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>