今天参加了marvell的培训与研讨会
转载时请注明出处和作者联系方式:http://blog.csdn.net/absurd
作者联系方式:李先静 <xianjimli at hotmail dot com>
更新时间:2007-6-6
今天参加了marvell的培训与研讨会,所讲内容都是比较浅显的,作为入门课程倒是挺不错的。上午的没有参加,下午的主要内容有:
1. PXA3xx的特性介绍以及和上一代PXA27x的比较。印象比较深的有几点:
mini LCD Controller并不是指小屏控制器,而是一个精减版的LCD Controller,虽然它少了一些功能,但可以减少能量的消耗。
PXA300的串口速度可达3.6M,可用来连接蓝牙和BP等。我以前考虑如果用串口连接AP和BP,串口速度可能成为网速的瓶颈,现在看来是不会了。
2. XDB Debuger介绍。
这是一个基于JTAG的调试器,可以用来下载程序到Flash,也可以用来调试程序。同事咨询了marvell的工程师,他们回答说可以用来进行源码调试Linux kernel,只要安装一个插件就可以了。这倒是一个挺实用的工具,前几天花时间研究了gdb-jtag-arm的源代码,发现JTAG调试原理其实也很简单,不过当看到XDB Debuger提供这么强大的功能时,还是挺震撼的。
3. Windows Mobile的BSP介绍。
对Windows Mobile的开发没多大兴趣,没有注意听。
4. Linux的BSP介绍。
这部分内容我们已经比较熟悉了,Linux BSP的主要组件有:
l Linux 2.6.14内核 + marvell的驱动和平台相关的PATCH。
l Toolchain。
l IPP库,一个高性能的程序库,提供了一些基本函数和codec。
l 2D图形加速库。
l OpenGL实现。
l Vtume及性能采样插件。
l 针对PXA优化过的Gstreamer,其中整合了MarVell专用的MP3/MP4的解码代码。
5. BootROM介绍。
下载程序到FLASH的传统方法有:
用编程器下载。
用JTAG下载。
PXA3xx指供了BootROM特性,在BootROM的帮助下,可以通过USB或串口下载程序到FLASH。不过好像现在还没有提供相应的PC工具。
有了BootROM,就可以省掉norflash,而直接从nandflash中起动。开机后,CPU先从BootROM开始执行,BootROM从nandflash中加载BootLoader到0地址,然后跳转到BootLoader的代码处,接着BootLoader从nandflash中加载Linux kernel,最后Linux kernel加载rootfs,系统起动完成。前面与传统起动方式不同,而后面的起动过程是一样的。
6. PXA27x支持NAND Flash的方法。
PXA27x没有BootROM,也不支持nandflash。但PXA27x+nandflash的成本比较低,有比较大的市场需求,所以他们想了一个方法让PXA27x支持nandflash。
主要原理其实也很简单:用一小块norflash(小于512K)存放BootLoader,norflash映射到0地址,开机时从BootLoader开始执行,由BootLoader从nandflash中加载内核,然后内核从nandflash中加载rootfs。
这种方式要对BootLoader(blob) 做较大修改,至于kernel,2.4有点麻烦而且限制比较多,比如它只支持8bit的nandflash,只支持small block的nandflash,而且不支持jffs2。如果使用2.6,没有太大问题。
这种方案的好处在于硬件成本较低,由于没有硬件ECC,要用软件来实现,会带来额外的开销,据说会有5%的性能损失,有得必有失,根据自己的需要取舍了。
~~end~~