本帖最后由 通宵敲代码 于 2017-4-12 11:15 编辑
ARM开发工具之KEIL篇 谈起KEIL,相信上点年纪的单片机工程师都会有种初恋的感觉湿润了眼眶,多少个日夜,这个界面uVision IDE陪伴着年轻的你熬夜奋斗到天明,多少个分分秒秒,她陪伴你从一个初级的单片机菜鸟努力慢慢成长为一个经验丰富的嵌入式工程师…..来个玉照回味一下。
图3 KEIL uVision2 启动界面 图4 KEIL MDK 启动界面
KEIL 是得到了超过10万名资深工程师认可的世界领先的开发工具,它具有强大的功能和易用的开发环境,通过多年的积累,KEIL在广大的MCU应用领域拥有庞大的忠实用户群体,对于喜欢死磕的工程师而言,KEIL uVision就是初恋,那就是真爱………… 正准备大举进军MCU市场的ARM和KEIL公司两眼一相望,基情迸发,那是如胶似漆,恩爱到白头…..。 2005年10月,ARM正式全资收购KEIL,把KEIL工具纳入自己的工具链体系,帮助现有的8/16位工程师群体顺利转移到ARM 32位Cortex-M平台上,这也是后来KEIL MDK 后来为什么会有Realview标识的原因,请看上图对比。 当时ARM的收购声明这样说到:”ARM确认MCU市场将会是极为重要的业务增长方向,通过这次的收购建立一个完善和更具说服力的解决方案帮助ARM加速在这个MCU市场的进军;伴随MCU应用正从8/16位的解决方案向32位的发展,我们专门为微处理应用器定制的Cortex-M 系列处理器加上高性能的Realview 编译器和KEIL的MUC工具链补充,将开辟新一代的ARM MCU 解决方案” MDK(Microcontroller Development Kit)就是作为KEIL支持ARM设备的版本名称。 与MDK对应的原来的KEIL系列分别是 C51 开发工具系列(C51Development Tools) 是支持8051系列微处理器的编译开发工具,支持所有主要半导体厂商 的8051系列新品。C51开发工具系列包含A51汇编器,CA51编译器(含汇编器A51)和PK51。 PK51的全称是PK51 Professional Developer’s Kit,包含CA51编译器,调试器,Hex转换器等等。所以从这描述可以看出, PK51 是最全的C51开发工具,A51和CA51都是其中的一个部分而已,各位没用过KEIL uVision的采购人员应该明白这几个 产品之间的关系了吧。 C166 开发工具系列(C166 Development Tools) 是支持XC16x,C16x, 和 ST10 系列微处理器的开发工具。 C166系列 又包含 A166,CA166和PK166,它的区分原理和C51系列一样,这里就不再赘述。 DK251开发工具系列(C251Development Tools) 是支持 251微处理器架构系列的开发工具。
MDK作为KEIL工具里的主角,这里我们重点描述一下它的功能优点。 1. 支持超过900多种设备,包含ARM7/ARM9,ARM Cortex-M系列等体系架构的CPU,几乎市场上半导体原厂出这几种架构 CPU 都支持。自从有了她,你也再不用因为换芯片平台而找新的开发工具而苦恼了。 2. 早已被我们熟知的uVision IDE环境友好易用,功能强大,目前升级到uVision5更是焕然一新。 3. 全功能的RTOS实时操作系统RTX,提供源码。 4. 广泛的中间库支持,帮助用户很容易的搭建起辅助的网络连接和通信系统。 5. 支持广泛的硬件调试器和第三方开发工具,什么Ulink2/ulinkpro/ST-link/Jlink等。其中通过UlinkPro完成对硬件实 时跟踪和代码分析功能。 6.完整的代码覆盖识别每一条指令,保证你的程序代码稳健。 7.包含丰富的例程代码还有最重要的启动文件。MCU的启动文件极为复杂,需要汇编配置好内核,时钟和初始化, 如果没有KEIL MDK的启动代码,估计我等小菜鸟估计在写启动文件阶段就挂机了,更别谈写个hello word出来了。 8. 极为出色的代码性能分析器帮助工程师找到程序应用的瓶颈,提高改善软件的性能。这一条文字看来很苍白,
我们来看看几个美图带来的视觉冲击吧
图5 MDK代码性能分析
图6 MDK 事件触发执行记录
图7 MDK Trace 跟踪数据
看到这些图你有没顿时觉得一切bug都是浮云了,代码执行和事件触发都trace保存下来了,所有的寄存器和可访问地址内存都可以查看,可以查询函数引用堆栈,可以精确的定位到程序跑飞的那一行代码,可以通过函数调用次数频率有效的优化代码,顿时觉得这个世界都很美好了,有没有这种感觉?
由于篇幅原因,我将另行起文详细介绍MDK的功能,图文并茂的那种,欢迎大家关注。 |