ARM Cortex-A8/A9开发板 | ARM11开发板ARM11开发套件 | ARM9开发板ARM9开发套件 | 飞思卡尔I.MX28I.MX6开发板 |
tiny210/mini210开发板 | mini6410开发板/套餐 | Tiny6410开发板无线套件 | mini2440开发板/套餐 | micro2440开发板带核心板 | 友善开发板配件 模块 | QQ2440 V3 SBC-2410X |
FL2440 OK2440-IV V4 | OK2440-III OK2440V3 | TE2440-II TE2440V2 | OK6410 S3C6410 ARM11 | FL6410/OK6410B ARM11 | TE6410 S3C6410 ARM11 | TE-9263 AT91SAM9263 | 开发板配件 模块和其他 |
Xilinx开发板/fpga开发套件 | altera开发板/fpga开发套件 | 基于FMC FPGA/DSP子卡 |
BeagleBoard原厂开发板 | PandaBoard原厂开发板 |
TI DM3730 DevKit8500D | TI系列 omap3530开发板 | ATMEL系列 开发板 | Samsung系列 开发板 | 开发板配件-仿真器 模块 | NXP LPC3250 mini3250 |
Tiny210 三星S5PV210 | Mini210/Mini210s开发板 | Tiny4412开发板Cortex-A9 | Tiny6410开发板 ARM11 | mini2440开发板 ARM9 | micro2440开发板 ARM9 | mini6410开发板 ARM11 | 友善ARM开发板配件 模块 |
keil ARM仿真器/开发工具 | STM32开发板 Cortex-M3 | NXP LPC开发板Cortex-M3 | ATMEL系列 ARM开发板 | Luminary EKK8962开发板 | Freescale i.MX31开发板 | 三星s3c2440 s3c6410开发板 |
FL2440 OK2440-IV V4 | OK6410 S3C6410 ARM11 | FL6410/OK6410B ARM11 | OK210/-A Cortex-A8 | TE2440-II TE2440V2 | TE6410 S3C6410 ARM11 | TE-9263 AT91SAM9263 | ARM开发板配件 模块等 |
Real6410开发板/套餐 | Real210开发板/Real2410 | WIFI GPS GPRS模块摄像头 |
Xilinx开发板/开发套件KIT | Altera开发板/开发套件KIT | 配套模块 |
NXP LPC开发板 ARM7 | Cortex-M3 STM32开发板 | 最小系统模块类(初学者勿选) | 开发工具 仿真器 调试器 | TFT液晶屏LCD 液晶模块 |
DM642开发板/DM642实验箱 | DM6446开发板/DSP实验箱 | DSP仿真器 液晶屏 摄像头等 |
DM3730/AM3715/AM3359 | OMAP3530AM1808AM3517 | 飞思卡尔Cortex-A9开发板 | ATMEL系列ARM开发板 | NXP LPC3250 LPC1788 | Samsung系列ARM开发板 | STM32系列F207/F407 | ARM开发板配件-仿真器 模块 |
Realv210 S5PV210开发板 | Real6410开发板 ARM11 | WIFI GPS GPRS模块摄像头 |
NXP LPC开发板 ARM7 | Cortex-M3 STM32开发板 | ARM小系统模块(初学勿选) | 开发工具 ARM仿真器 调试器 | TFT液晶屏LCD 液晶模块 |
keil ARM仿真器/开发工具 | STM32开发板 Cortex-M3 | NXP LPC开发板Cortex-M3 | ATMEL系列 ARM开发板 | Luminary EKK8962开发板 | Freescale i.MX31开发板 | 三星s3c2440 s3c6410开发板 |
Exynos4412开发板A9四核 | UT-S5PV210 S5PC100 | UT-S3C6410开发板 ARM11 | idea 6410开发板 ARM11 | UT-S3C2450开发板 ARM9 | UT-S3C2416开发板 ARM9 | UT-S3C6410核心板 工控 |
Xilinx开发板 FPGA开发套件 | altera开发板 FPGA开发套件 | FMC模块 配件 下载线 |
DM642开发板/DM642实验箱 | DM6446开发板/DSP实验箱 | DSP仿真器 液晶屏 摄像头等 |
s3c2410 ARM9 FS2410 | s3c2440开发板 ARM9 | s3c44B0开发板 ARM7 | s3c6410 2450 2443/13 | PXA270 PXA320 PXA255 | Atmel 9200 9261 9G20 | Philips NXP开发板YL-LPC | FS-EP9315开发板ARM9 | LCD液晶屏TFT真彩/触摸屏 | ARM仿真器/仿真调试工具 | ARM开发板配套ARM核心板 |
三星s3c2410 s3c44B0 | 三星s3c6410 s3c2443 | Intel PXA270 PXA320 | UP-CUP OMAP5910平台 | FPGA Xilinx altera平台 | 配件-仿真器 模块 液晶屏LCD | 龙芯开发板UP-DRAGON-I | 物联网教学科研设备 | EDA/FPGA/SOPC教学科研 |
utu2440-F-V4.5 含核心板 | utu2440-S-V4.1 单板结构 | YC2440-F-V5.1开发板 豪华型 | YC-ePC-A系列人机界面 | Mars-EDA套件CPLD FPGA | 触摸屏LCD 摄像头 WI-FI模块 |
ARM开发板/开发平台 | FPGA开发板/开发平台 | 编程器/烧写器下载器烧录 | ZLG 仿真器ARM FPGA DSP | ZLG周立功逻辑分析仪 |
DSP初学者开发套件(DSK) | DSP仿真器/仿真系统 | DSP开发板/DSP试验箱 | DaVinci系列多媒体平台 | Xilinx FPGA大学计划产品 | SEED教学实验系统 | FPGA/DSP FPGA开发板 | TI原厂开发板套件/CCS软件 |
ARM开发板 | XSCALE开发板 | ARM仿真器 | SOPC开发板 | DSP开发板 | 达芬奇系列DSP开发平台 | DSP仿真器 | DSP实验箱 | DSP专业研究平台 | ARM实验箱系列 |
广嵌实验室项目产品 | GEC2440/GEC6410开发板 |
泰克Tektronix示波器 | 普源RIGOL示波器 | USB虚拟示波器 |
UT-S5PC100 UT-S5PV210 | UT-S3C6410开发板 ARM11 | idea 6410开发板 ARM11 | UT-S3C2450开发板 ARM9 | UT-S3C2416开发板 ARM9 | UT-S3C6410核心板 工控 | 开发板模块wifi gps等 |
EMA OMAP3530开发板 | EMA OMAP 3530核心板 |
三星s3c2410 s3c44B0 | 三星s3c6410 s3c2443 | Intel PXA270 PXA320 | UP-CUP OMAP5910平台 | FPGA Xilinx Altera平台 | 配件-仿真器 模块 液晶屏LCD | 龙芯系列 UP-DRAGON-I |
utu2440-F-V4.5 含核心板 | utu2440-S-V4.1 单板结构 | YC2440-F-V5.1开发板 豪华型 | 触摸屏LCD 摄像头 WI-FI模块 | Mars-EDA套件CPLD FPGA | ePC系列工控一体机ARM9 A8 |
ARM开发板/开发平台 | FPGA开发板/开发平台 | 编程器/烧写器下载器烧录 | ZLG 仿真器ARM FPGA DSP | ZLG周立功逻辑分析仪 |
DSP初学者开发套件(DSK) | DSP仿真器 | DSP开发板 | DSP实验箱 | Xilinx FPGA大学计划产品 |
ARM开发板 | XSCALE开发板 | ARM仿真器 | SOPC开发板 | DSP开发板 | 达芬奇系列DSP开发平台 | DSP仿真器 | DSP实验箱 | DSP专业研究平台 | ARM实验箱系列 |
ARM开发板S3C6410等 | Cortex-A8/ARM11仿真器 | ADSP Blackfin开发板 | FPGA Spartan-3E开发板 |
GEC2410开发套件ARM9 | GEC2440开发套件ARM9 |
泰克 示波器 |
今天,Linux 正广泛应用于各种嵌入式设备的开发中,如数字电视、机顶盒、DVR播放器、xDSL/有线/PON调制解调器、家用路由器和网关。它尤其适合具有先进网络功能、大量设备驱动程序和免版税运行时间的数字家庭和家庭网络。除了嵌入式设备,Linux 还支持企业级设备,如服务器和路由器。
Linux在移动设备中也获得了青睐。In-Stat的报告显示,移动Linux将牢牢抓住中国巨大的市场占有率。该机构认为,到2012年,中国基于移动Linux的智能手机总发货量将达到中国智能手机总出货量的25.4%。
不断改进的Linux内核
Linux当面对特定的嵌入式应用时仍存在很多挑战,包括那些内存空间小或实时确定性以及安全性能要求高的应用。工具链的改进、新的调试工具和性能、不断为标准化演变的努力等,都将继续提升Linux对于所有嵌入式应用的价值。在这其中,Linux内核的不断改进异常重要。
Linux内核是应用软件采用的标准Linux API和处理器系统(应用软件运行其上)底层硬件结构之间的接口。该内核是内部元件和外部可加载模块的复杂组合。在开机启动期间,内核必须及时发现,并正确布置核心系统处理器、系统存储器、硬盘、视频卡、USB端口、网卡和音频处理器,而且要在开机启动期间提供足够的显示表明成功与否。
维持如此复杂的代码收集很明显是一个严峻的挑战。内核源代码被划分为标准“树”结构,这样子系统就能够更好地彼此隔离,有助于实现几个关键内核维护工作的分布。这种分工可以最大限度地减少内核某一部分发生重大变化对其他部分产生的影响。每个后续子系统的改变传达给主要管理员,最终到达Linux内核最上游的管理员。这些变化被称为“修补(patch)”,在标准格式下创建和应用。
供应商和开发人员将他们的知识反馈到开源社群以改进内核。Linux开放、分散的本质,再加上背后强大的社群支持,使基于Linux的OS成为培养创新的良好选择。
F1:为下一个项目计划的Linux操作系统。资料来源:VDC,2007 年
“免费”使用,但并非“零”成本
除了决定使用商用还是免费发行版Linux,开发人员还必须认识到其调试/开发工具的能力和局限。
充分发挥嵌入式Linux免费发行版的优势,已经成为消费产品领域被广泛接收的现实。在这些市场上,产品运行率非常高,对代码的改善更新非常频繁,而且产品的销售成本至关重要,所有这些都使得开源模式极具吸引力。但是,能集成开源/免费软件,还可为处理器内核提供无缝调试环境的工具要求对内核和SoC元件互动有深刻的了解。
现在有若干种“免费软件”调试解决方案,设计人员需要全面了解其局限性。比如,针对Linux内核最常用免费软件调试器是KGDB。KGDB的主要缺点是要求重新编译内核。这对那些已经在市场上通用的产品应用来说产并不总是可行的。修补内核还可能引入影响系统性能的代码变化。
GDBServer是另一个面向应用调试的颇受欢迎的免费软件调试器,但它主要问题是缺乏对同时调试大量线程/进程的支持。随着调试的线程/进程数不断增加,GDBServer性能迅速恶化,导致反应时间太慢,进而使目标系统出现故障。其他问题还涉及到:不能在相同的目标连接上调试驱动程序和应用;调试设备驱动程序和调试共享库。
Linux内核的维护
开发人员在决定将选择哪种OS时,重要的是选择一个完全支持其特定处理器的操作系统,并能够降低总成本和缩短上市时间。
从处理器供应商的角度来看,积极参与与其内核相关的Linux内核的维护非常重要。
作为处理器 IP 公司,MIPS科技公司必须确保其新的处理器内核正确集成到Linux源代码树,而且所有的改变都通过对旧内核和平台的回归测试进行正确验证。
由于MIPS IP内核是专有内核,对于MIPS和Linux社区来说最有益的,是确保MIPS内核的所有性能和电源管理特性能够在Linux内核中完全实现。
对新内核设计的支持不能破坏现有内核支持结构或降低其性能,而且还必须允许现有客户快速转移到新内核技术。MIPS内核的可配置性使得对Linux内核代码库的维护更富挑战,因为许多内核配置组合必须经过测试,以确保新增加的功能在所有组合中操作正常。
内核优化1:多核支持
现在,为了实现最佳单位面积计算能力(MIPS/每平方毫米)和最佳单位功耗计算能力(MIPS/mW),许多处理器都利用了多核技术,在几个以较低时钟频率运行的内核间分配处理负载。这些应用能够以对称多处理(SMP)的方式进行分配,其中一项任务是内核间的基本平分;或者采用非对称多处理(AMP),在这里特定任务被分配给一个特定内核。不论是哪种方式,Linux内核中必须有适当的支持允许实现这些编程模型,同时对应用开发者尽可能的透明。
MIPS科技的多线程34K内核和多线程/多处理1004K内核所要求的方式,与内核内的多核管理方法略微不同,因为34K内核能够在单一内核的物理实例中提供多个虚拟内核或虚拟处理单元(VPE),而1004K内核则可提供多核器件的一致执行。
对于每个内核,我们执行的Linux内核多核支持和优化都必须能够正确识别所使用的内核,并妥善初始化和无缝实现特定的多核功能。必须明白,执行基于34K器件的任务共享模型时,一个物理内核实际上是以多于一个虚拟内核的形式出现的,这些内核并不会自动进行一致性管理。这种多核环境在某些情况下比较适合AMP环境,如每个VPE 运行一个独立操作系统。1004K 内核真正的一致性多核设计使传统的SMP模式更具吸引力,在这里一个操作系统可以完全控制两个内核。
内核优化2:电源管理
在今天的绿色计算环境中,电源管理日渐重要,不仅体现在要求最大限度延长电池寿命的便携式设备方面,而且体现在需要尽量减少能源浪费和热量的AC 供电系统中。目前Linux内核电源管理支持主要集中在通过ACPI的标准 PC。但是ACPI 接口并不适合先进的多核SoC,因为后者必须将一致性电源管理方案扩展至多个内核、内部SoC外设以及最后的外部系统外设(如 RF 功率放大器)。
在MIPS,我们执行了一个先进的电源管理IP块,称为组群电源控制器(CPC),在具体的1004K执行中,它允许对每个内核的单独控制,使内核可以进入或离开一致性操作,并在需要的情况下彻底关掉电源。这样的电源管理模式能够进一步扩展,使内核电压和频率调制处于操作系统本身的控制之下。这个CPC块的功能还必须扩展至Linux内核。我们现在正在构建这个电源管理结构的基础,以实现针对 Linux内核本身及在标准Linux应用领域下运行的其他应用的全面API。
F2: 组群电源控制器允许在特定的多核实现中对每个内核进行单独控制
Linux 开发工具
当考虑处理器对OS的支持时,开发工具很重要。
备受称赞的内核评测工具是Linux事件分析器,能够剖析整个系统。通常这些工具可捕获目标内发生的用户选择的 Linux 事件,然后根据时间通过图形显示这些事件。这些捕获有时能够收集高达20秒的 Linux系统活动。
不管应用如何,开发者都应该确保他们选择的处理器架构包含一个无缝的开发环境,包括编译器、调试器、性能和剖析工具。这种性质的工具必须满足上市时间要求,并从一个嵌入式系统设计中获取最大的性能。
博航网 www.broadon.net 版权所有
京ICP备10051899号-2 京公网安备110108006479号