<?xml version="1.0" encoding="gb2312"?><rss version="2.0"><channel><title>ARM菜鸟</title><link></link><description></description><language>zh-cn</language><generator>Goodspeed Rss</generator><ttl>3</ttl><pubDate>Tue, 07 Jul 2009 02:12:28 GMT</pubDate><category></category><copyright></copyright><docs></docs><item><title>基于3510i的MYGUI</title><pubDate>Sat, 14 Apr 2007 12:19:06 GMT</pubDate><link>http://blog.ednchina.com/blog/levension/22090/message.aspx</link><description>&lt;p&gt;前几天玩了一下3510i手机彩屏,在上面玩了一下画点,画线,画框,填充彩图.然后发现周立功有个zlg/GUI,就想在3510i下实现一个小小的GUI玩玩,就把zlg/GUI的代码看了一遍,然后把它修改成为适合3510i的GUI.由于3510i点阵大小只是98x67,实现下拉菜单,窗体,比较麻烦.不过挺有意思的.&lt;/p&gt;
&lt;p&gt;这是我的代码:&lt;/p&gt;
&lt;p&gt;硬件:LPC2148,3510i &amp;nbsp;软件:IAR for ARM&amp;nbsp; 4.40a .&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://blog.ednchina.com/Upload/Blog/2007/4/14/1a8705ac-d661-4d31-b1fd-442b0ba67d72.rar" target=_blank&gt;&lt;img alt="rar" src="http://space.ednchina.com/images/FileIco/rar.gif"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;欢迎大家留言交流.&lt;/p&gt;</description><comments></comments><guid>http://blog.ednchina.com/blog/levension/22090/message.aspx</guid><category>ARM菜鸟 ARM</category><author></author></item><item><title>ARM7控制手机彩屏3510i</title><pubDate>Sat, 14 Apr 2007 12:05:47 GMT</pubDate><link>http://blog.ednchina.com/blog/levension/22087/message.aspx</link><description>&lt;p&gt;&lt;a href="http://blog.ednchina.com/Upload/Blog/2007/4/14/880b027e-250f-4ee7-a7a5-4b2ac2988e1b.rar" target=_blank&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;在OurAVR上看到有人用Mega16操作手机彩屏3510i,显示了几幅彩色图片,觉得挺有意思,就搞了一片来玩.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3510i支持4096色和256色,接口分别为12位和8位格式,我实现了图文混排,其中图片为4096色,文本为256色.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 我的ARM7是LPC2148&amp;nbsp;,开发软件是IAR for ARM.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3510i效果图:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;img src="http://blog.ednchina.com/Upload/Blog/2007/4/14/9675ebe8-0cc6-48bf-b38c-472356ff4843.jpg"&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3510i管脚图:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;img src="http://blog.ednchina.com/Upload/Blog/2007/4/14/ca1bca47-1a00-4a48-bafa-bb2cbaf3bc59.jpg"&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;接线图:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;a href="http://blog.ednchina.com/Upload/Blog/2007/4/14/861e94eb-72b0-49b7-bf01-9b864e8a8a36.JPG" target=_blank&gt;&lt;img height="237" alt="点击看大图" src="http://blog.ednchina.com/Upload/Blog/2007/4/14/861e94eb-72b0-49b7-bf01-9b864e8a8a36.JPG" width="400"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3510i驱动芯片资料:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://blog.ednchina.com/Upload/Blog/2007/4/14/69c717a3-4480-4c9e-a5c7-026ae106945c.pdf" target=_blank&gt;&lt;img alt="pdf" src="http://space.ednchina.com/images/FileIco/pdf.gif"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 我的LPC2148驱动3510i代码:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://blog.ednchina.com/Upload/Blog/2007/4/14/c3dd4e13-ccfa-456c-ab92-d7785b2c7b6c.rar" target=_blank&gt;&lt;img alt="rar" src="http://space.ednchina.com/images/FileIco/rar.gif"&gt;&lt;/a&gt;&lt;a href="http://blog.ednchina.com/Upload/Blog/2007/4/14/746d2172-5fea-4d95-82ab-b8fca162426b.rar" target=_blank&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 欢迎大家留言交流.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;</description><comments></comments><guid>http://blog.ednchina.com/blog/levension/22087/message.aspx</guid><category>ARM菜鸟 ARM</category><author></author></item><item><title>JTAG接口解读</title><pubDate>Tue, 27 Feb 2007 16:05:35 GMT</pubDate><link>http://blog.ednchina.com/blog/levension/16806/message.aspx</link><description>&lt;div&gt;&lt;font size="2"&gt;通常所说的JTAG大致分两类，一类用于测试芯片的电气特性，检测芯片是否有问题；一类用于Debug；一般支持JTAG的CPU内都包含了这两个模块。&lt;br&gt;一个含有JTAG Debug接口模块的CPU，只要时钟正常，就可以通过JTAG接口访问CPU的内部寄存器和挂在CPU总线上的设备，如FLASH，RAM，SOC（比如4510B，44Box，AT91M系列）内置模块的寄存器，象UART，Timers，GPIO等等的寄存器。&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 上面说的只是JTAG接口所具备的能力，要使用这些功能，还需要软件的配合，具体实现的功能则由具体的软件决定。&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 例如下载程序到RAM功能。了解SOC的都知道，要使用外接的RAM，需要参照SOC DataSheet的寄存器说明，设置RAM的基地址，总线宽度，访问速度等等。有的SOC则还需要Remap，才能正常工作。运行Firmware时，这些设置由Firmware的初始化程序完成。但如果使用JTAG接口，相关的寄存器可能还处在上电值，甚至时错误值，RAM不能正常工作，所以下载必然要失败。要正常使用，先要想办法设置RAM。在ADW中，可以在Console窗口通过Let 命令设置，在AXD中可以在Console窗口通过Set命令设置。&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 下面是一个设置AT91M40800的命令序列，关闭中断，设置CS0-CS3, 并进行Remap，适用于AXD(ADS带的Debug)&lt;br&gt;setmem 0xfffff124,0xFFFFFFFF,32 －－－关闭所有中断&lt;br&gt;setmem 0xffe00000,0x0100253d,32 －－－设置CS0&lt;br&gt;setmem 0xffe00004,0x02002021,32 －－－设置CS1&lt;br&gt;setmem 0xffe00008,0x0300253d,32 －－－设置CS2&lt;br&gt;setmem 0xffe0000C,0x0400253d,32 －－－设置CS3&lt;br&gt;setmem 0xffe00020,1,32 －－－Remap&lt;br&gt;如果要在ADW（SDT带的DEBUG）中使用，则要改为：&lt;br&gt;let 0xfffff124=0xFFFFFFFF －－－关闭所有中断&lt;br&gt;let 0xffe00000=0x0100253d －－－设置CS0&lt;br&gt;let 0xffe00004=0x02002021 －－－设置CS1&lt;br&gt;let 0xffe00008=0x0300253d －－－设置CS2&lt;br&gt;let 0xffe0000C=0x0400253d －－－设置CS3&lt;br&gt;let 0xffe00020=1 －－－Remap&lt;br&gt;为了方便使用，可以将上述命令保存为一个文件config.ini, 在Console窗口输入 ob config.ini 即可执行。&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 使用其他debug，大体类似，只是命令和命令的格式不同。&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 设置RAM时，设置的寄存器以及寄存器的值必须和要运行程序的设置一致。一般编译生成的目标文件是ELF格式，或类似的格式，包含有目标码运行地址，运行地址在Link时候确定。Debug下载程序时根据ELF文件中的地址信息下载程序到指定的地址。如果在把RAM的基地址设置为0x10000000, 而在编译的时候指定Firmware的开始地址在0x02000000, 下载的时候，目标码将被下载到0x02000000，显然下载会失败。&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 通过JTAG下载程序前应关闭所有中断，这一点和Firmware初始化时关闭中断的原因相同。在使用JTAG接口的时候，各中断的使能未知，尤其是FLASH里有可执行码的情况，可能会有一些中断被使能。使用JTAG下载完代码，要执行时，有可能因为未完成初始化就产生了中断，导致程序异常。所以，需要先关闭中断，一般通过设置SOC的中断控制寄存器完成。&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 使用JTAG写Flash。在理论上，通过JTAG可以访问CPU总线上的所有设备，所以应该可以写FLASH，但是FLASH写入方式和RAM大不相同，需要特殊的命令，而且不同的FLASH擦除，编程命令不同，而且块的大小，数量也不同，很难提供这一项功能。所以一般Debug不提供写Flash功能，或者仅支持少量几种Flash。&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 目前就我知道的，针对ARM，只有FlashPGM这个软件提供写FLASH功能，但使用也非常麻烦。AXD，ADW都不提供写FLASH功能。我写Flash的方法时是，自己写一个简单的程序，专门用于写目标板的FLASH，利用JTAG接口，下载到目标板，再把要烧写的目标码装成BIN格式，也下到目标板（地址和烧FLASH的程序的地址不同），然后运行已经下载的烧FLASH的程序。使用这种方式，比起FlashPGM的写Flash，速度似乎要快一些。&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 关于简单JTAG电缆。&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 目前有各种各样简单JTAG电缆，其实只是一个电平转换电路，同时还起到保护作用。JTAG的逻辑则由运行在PC上的软件实现，所以在理论上，任何一个简单JTAG电缆，都可以支持各种应用软件，如Debug等。我就曾使用同一个JTAG电缆写Xilinx CPLD，AXD/ADW调试程序。关键再于软件的支持，大多数软件都不提供设定功能，因而只能支持某种JTAG电缆。&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 关于简单JTAG电缆的速度。&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; JTAG是串行接口，使用打印口的简单JTAG电缆，利用的是打印口的输出带锁存的特点，使用软件通过I/O产生JTAG时序。由JTAG标准决定，通过JTAG写/读一个字节要一系列的操作，根据我的分析，使用简单JTAG电缆，利用打印口，通过JTAG输出一个字节到目标板，平均需要43个打印口I/O, 在我机器上（P4 1.7G)，每秒大约可进行660K次 I/O 操作，所以下载速度大约在660K/43, 约等于15K Byte/S. 对于其他机器，I/O速度大致相同，一般在600K ~ 800K.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 关于如何提高JTAG下载速度。&lt;br&gt;很明显，使用简单JTAG电缆无法提高速度。要提高速度，大致有两种办法，&lt;br&gt;1。使用嵌入式系统提供JTAG接口，嵌入式系统和微机之间通过USB/Ethernet相连，这要求使用MCU。&lt;br&gt;2。使用CPLD/FPGA提供JTAG接口，CPLD/FPGA和微机之间使用EPP接口（一般微机打印口都支持EPP模式），EPP接口完成微机和CPLD/FPGA之间的数据传输，CPLD/FPGA完成JTAG时序。&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 这两种方法本人都实现过。第一个方法可以达到比较高的速度，实测超过了200KByte/S(注意：是Byte，不是Bit）；但是相对来说，硬件复杂，制造相对复杂。第二种相对来说，下载速度要慢一些，最快时达到96KByte/S，但电路简单，制造方便，而且速度可以满足需要。第二种方案还有一个缺点，由于进行I/O操作时，CPU不会被释放，因此在下载程序时，微机CPU显得很繁忙。&lt;br&gt;总的来说，本人认为，对于个人爱好者来说，第二种方法更可取。&lt;/font&gt;&lt;/div&gt;&lt;font size="2"&gt;&amp;nbsp;&lt;br&gt;&lt;/font&gt;</description><comments></comments><guid>http://blog.ednchina.com/blog/levension/16806/message.aspx</guid><category>ARM菜鸟 ARM</category><author></author></item></channel></rss>