在中国古代神话里,盘古开天辟地之前,天地是混沌的融为一体的,盘古开天辟地之后,才有了天和地。而现代物理学公认的事实就是宇宙在大爆炸之前是一个无限小的奇点,大爆炸后形成各种星系,并且各星系一直在加速远离对方,这也就是宇宙膨胀。从这个角度来讲,盘古开天辟地与现代宇宙大爆炸理论还是有几分吻合的。
扯远了,今天我们不谈宇宙,只谈keil-MDK。为什么谈keil-MDK之前还要说说大爆炸呢?这是因为从MDK4到MDK5的过程就如同盘古开天辟地或者宇宙大爆炸一样。
在MDK4中,ARM C/C++ Compiler(编译器)、uVision IDE with Editor(编辑器)、Pack Installer(包安装器)、uVision Debugger with Trace(调试跟踪器)、Device(芯片支持),等等,都是集成在一个安装包中的,完全是一个混沌的整体。而MDK5则将上面这些分为了两大类,俨然是宇宙大爆炸般的绚丽。下面介绍MDK5的软件架构。
对于上图,官方说法是这样的:
MDK-Core is based on µVision (Windows only) with leading support for Cortex-M devices including the new Armv8-M architecture.
MDK includes Arm C/C++ Compiler with assembler, linker, and highly optimized run-time libraries that are tailored for optimum code size and performance.
Software Packs may be added any time to MDK-Core making new device support and middleware updates independent from the toolchain. They contain device support, CMSIS libraries, middleware, board support, code templates, and example projects.
MDK5由MDK-Core和Software Packs两大部分构成,两者完成独立。MDK Core包含微控制器开发所有的所有组件,包括IDE(uVision5)、编辑器、ARM C/C++编辑器、uVision调试跟踪器和Pack Installer;Software Packs则包含Device、CMSIShe MDK-Middleware三大部分。所以安装MDK5的时候只需要安装MDK-Core即可,Software Packs可以选择性安装(需要什么就安装什么)。
MDK5的这种架构为工程开发带来了极大的便利,在MDK4中,如果项目涉及到最新的MCU器件,很有可能当前版本是不支持它的,这种时候我们唯一可以做的就是下载支持该器件的新版本MDK4,这样导致了开发效率的低下。而MDK5把核心部分和其他部分分开来,其他部分的安装就可以完成独立了,就像一台电脑一样,核心在机箱里面,外部要想扩展什么,直接插USB口就可以了,根本不需要重新买一台电脑。
MDK-Core和Software Packs也是独立更新的。如果开发过程中碰到新的器件,而本Software Packs不支持该器件,那么可以上官网下载最新的Software Packs,点击安装就可以了,不需要像MDK4那样线卸载然后重新安装新版本。