您现在的位置: 61IC中国电子在线 >> EDA >> Xilinx >> 文章正文

 

 

 

linuxfpga系列文章之--PowerPC平台内核编译专有选项介绍

          ★★★

【字体:

linuxfpga系列文章之--PowerPC平台内核编译专有选项介绍

 

作者:风雷的技…    文章来源:风雷的技术天地    点击数:    更新时间:2008-1-3    

 

先说一些废话吧。我所使用的PowerPC实质上是Xilinx公司Virtex2芯片中内嵌核,平台是Xilinx的大学计划XUP开发板。我的目的就是在这个平台上移植标准的Linux并在其上构建应用。虽然硬核软核的概念逐渐流行,但是目前网上很难找到一份完整的,详细讲解基于PowerPC环境的,fpgaLinux的开发讲解。我相信很多公司的很多技术工程师都有相应的技术储备,肯定有不少高校的优秀实验室也做过,为什么就没有人愿意出来共享一些完整的技术资料呢?就如同在Linux下的eda工具使用一样,很多东西网上愿意分享的人群实在太少了。可能是公司的规定,或者分享的内容太零散,我没有搜索到?又或者是共享精神还是不够?如果有朋友也是做这方面,并愿意进行技术交流探讨分享,甚至愿意指教小可的,非常欢迎留言或者mail联系我,正如我开设这个个人主页的初衷:我希望多交朋友,多学技术,多推广好的经验

由于具体的移植还在进行当中,而最近面临期末考试,所以进度很慢,我只能做一点总结一点,然后和各位分享。今天分享的是内核编译选项中,专属于powerpc平台的部分选项的含义与选择建议。

在嵌入式领域,由于Linux操作系统具有开放源代码、良好的可移植性、丰富的代码资源以及异常的健壮,使得它获得越来越多的关注。可以肯定的是,随着移动领域linux势力的扩展linux在嵌入式中的发展空间会越来越大。

说起嵌入式,无数人首先联想到的芯片或者硬件平台就是arm。确实,作为嵌入式处理器的老大,这玩意实在太深入人心了。但由于实验室项目的原因,我现在接触的是PowerPC。由于良好的架构、优秀的性能以及稳定的兼容性,其在全世界通信处理器市场上处于无可争议的领袖地位。不仅仅是在通信领域,PowerPC在服务器和桌面领域也取得了巨大的成功,它也是Linux较早支持的芯片之一,LinuxPowerPC有成熟、优秀的支持。Linux不仅已经在IBMS390服务器及 Macintosh个人电脑上运行多年,而且在嵌入式PowerPC芯片也早已经有了成功的案例。

由于不同类型平台,不同类型的内核版本都可能导致选项不一样,所以我只能根据我的内核2.6.21版本以及平台XUP开发板作为介绍。如果你遇到的情况和下述不同,而看help又不甚明白,可以把问题提出来,乐意和大家进行讨论。

5 Processor > 处理器

5.1Processor Type40x):在此选择你的处理器型号。根据自己型号选择。

5.2Math emulationLinux核心模拟数学浮点运算器,这个要选上,不要用编译X86的惯性思维对待它。

5.3kexec system call:提供kexec系统调用,可以不必重启而切换到另一个内核,多核情况下可能有用。

5.4CPU Frequency scaling:这一选项允许改变CPU的主频,使CPU在低负荷或使用电池时降低主频,达到省电的目的。
5.4.1
Enable CPUfreq debugging:是否允许调试CPU改变主频的功能,如果要调试,还需要在启动时加上参数。cpufreq.debug= 1:变频技术的内核调试 2:变频技术的驱动调试 3:变频技术的调节器调试 。
5.4.2
CPU frequency translation statistics:通过sysfs文件系统输出CPU频率变换的统计信息。
5.4.2.1
CPU frequency translation statistics details:记录CPU频率转换统计详细资料。
5.4.3
Default CPUFreq governor (performance):默认的主频调节,圆括号内的是选择的结果。
5.4.3.1
、“performance governor:“性能”优先,静态的将频率设置为cpu支持的最高频率。
5.4.3.2
、“powersave governor:”节能优先,静态的将频率设置为cpu支持的最低频率。
5.4.3.3
、“userspace governor for userspace frequency scaling:既允许手动调整cpu频率,也允许用户空间的程序动态的调整cpu频率(需要额外的调频软件,比如cpufreqd)
5.4.3.4
、“ondemand cpufreq policy governor:“立即响应”,周期性的考察CPU负载并自动的动态调整cpu频率(不需要额外的调频软件),适合台式机。
5.4.3.5
、“conservative cpufreq governor:“保守”,和“ondemand”相似,但是频率的升降是渐变式的(幅度不会很大),更适合用于笔记本/PDA/AMD64环境。

5.5IBM 4xx Options:按照自己实际的CPU型号,选取相应的选项。
5.5.1
Machine Type:这里包括相关机器或者开发板的型号,与我们嵌入式开发有关的是Xilinx-ML403Xilinx-ML300ML403virtex4平台,ML300virtex2平台,如果你的平台不识这两个,就根据自己的powerpc型号来选择和自己开发板配置最接近的平台。针对XUP,我们选择ML300
5.5.2
PPC4xx DMA controller supportNEW):是一种新特性,针对CPUDMA支持。
5.5.3
TTYS0 device and default consoleUART0):选择把UART0还是UART1作为默认终端设备,通常都是UART0设备,比如我使用的XUP

6 Platform Support > 平台支持

6.1PC PS/2 style KeyboardNEW):键盘接口属性。

6.2High Memory Support (4GB):高容量内存支持,实际上嵌入式里面很少接触这么大的内存,一般可以不用管它。

6.3Timer frequency:内核时钟频率,桌面推荐“1000 HZ”,服务器推荐“100 HZ”或“250 HZ”。

6.4Preemption Model:新特性,几乎所有介绍2.6的文章都会提到,这就是可抢先式内核。也就是说被一些优先级很高的程序可以先与一些低优先级的程序执行,即使这些程序是在核心态下执行(这实际上仍然不是真正的抢先式内核)。从而减少内核潜伏期,提高系统的响应。当然在一些特殊的点的内核是不可抢先的,比如内核中的调度程序自身在执行时就是不可被抢先的。这个特性可以提高桌面系统、实时系统的性能,所以还是选上吧。
6.4.1
No Forced Preemption (Server):适合服务器环境的禁止内核抢占。
6.4.2
Voluntary Kernel Preemption (Desktop):适合普通桌面环境的自愿内核抢占。
6.4.3
Preemptible Kernel (Low-Latency Desktop):适合运行实时程序的主动内核抢占 。
6.5
Preempt The Big Kernel Lock:可以抢占大内核锁,应用于实时要求高的场合,不适合服务器环境。

6.6Memory model: 一般选“Flat Memory”,其他选项涉及内存热插拔。

6.664 bit Memory and IO resources:使用64位的内存和IO资源,不过嵌入式平台用得似乎很少。

8 Advanced setup > 高级设置

8.1Prompt for advanced kernel configuration options:选择这个选项,能够打开一系列高级内核配置属性,但是如果设置不正确,可能导致内核工作不正常,因此一开始不要选,以后想试验时候再选。

13 Profiling support (EXPERIMENTAL) > 允许你激活profile机制,以便于使用一些诸如OProfile这样的性能评估工具。

13.1OProfile system profiling (EXPERIMENTAL):允许使用Oprofile,它是用于 Linux的若干种评测和性能监控工具中的一种

               欢迎点击进入:TI德州中文网   (国内唯一针对TI应用的中文技术网站)    文章录入:admin    责任编辑:admin 

 

·  上一篇文章: linux-fpga系列文章之——如何在ubuntu下安装FPGA usb cable的驱动

·  下一篇文章: linux-fpga系列文章之—-基于命令行的PowerPC代码开发与调试