| 一个嵌入式系统的核心在于CPU,当CPU选定后,其他的问题就可慢慢就绪。SoC嵌入式系统的实现可把它分为:一应用型SoC嵌入式系统、开发型SoC嵌入式系统二种型态,这二种型态的软硬体开发有着不小的差异,但首先碰到的都是CPU的选定。这里笔者会针对它们的异同处做说明,再来描述ARM CPU、指令、系统管理、开发实作训练平台(PreSoCes)、Linux与程式等,以建立SoC嵌入式系统的整体轮廓概念,并在实作中培养、训练出开发技能与创新能力。
应用型SoC嵌入式系统是指在一个现成的SoC元件上加入软体(或OS),使成一系统;而开发型SoC嵌入式系统是指SoC元件还在建构中,它会选择仅适用的IP包入并做底层软体测试,以方便未来建立OS,而达成最有竞争力的组合。应用型SoC嵌入式系统所要面对的问题有:选用Turn-key(雏型半成品)方案或自己建构方案、CPU选择、OS选择,以及开发工具、ICE、Debugger、Compiler等的选择,每一种都彼此相关,因此要站在系统产品开发的角度来考量。
假如是选用Turn-key方案,那只要修改部分自己想要的软体即可,这种产品大都属于大量生产又具市场快速反应的特质。软体是系统产品功能的展现,系统大都会挂上一OS,因ARM CPU的设计就是为了放上OS而设计的,因CPU有好几种执行模式以方便task switch用。软体可分为BIOS、Kernel、Device driver、Application S/W等。
在Linux OS上就有Debug的功能,方便软体除错,对于Application软体来说是方便的,但碰上BIOS与Device driver就不足以应付了,就像早期产品开发一样,烧入程式再想想错在哪里,多么没有效率,因此如果有ICE与Debugger工具,那就更有效率了。
至于开发型SoC嵌入式系统大都是SoC IC设计公司的开发型态,SoC的内含是由市场需求而定位出,一个个IP元件再慢慢加上去,并验証之。但问题在于,纯软体的验証实在很难完全达到Co-design的100%验証,在没有更完美的解决之前,其他的方式就因应而生。也由于FPGA技术快速的进步,就把它拿来当成新加入IP功能验証的硬体元件,不仅如此,更方便软硬体整合Co-design的前段功能验証,IP的开发就多了一层保障。
在软体方面,BIOS、Device driver就紧紧地连接着硬体。在这时,当整个OS未建立起来时,就需要ICE与Debugger来帮助CPU驱动程式的除错,以验証程式执行对各IP元件驱动正常否。SoC IP的设计是另一门大学问,就不在此描述。在经过初步功能验証后,SoC IC就慢慢成型,方便日后产出后再加上OS。 在以上二种型态的SoC嵌入式系统中,它的重点不外乎是ARM CPU、OS、ICE和Debugger、FPGA、SoC。当然不一定要用ARM CPU,也可採用MIPS或其他的,只是目前全球CPU IP市场佔有率,还是非他莫属。以下笔者就针对这些重点做描述并在实作训练平台(PreSOCes)上展现各重点技术的开发与训练步骤。首先就针对PreSoCes作一简单描述,以方便各重点技术在实作说明时衔接起来。 |