在嵌入式系统开发过程中,除了一般的需求分析、功能设计、功能实现、测试等传统流程外,由于系统既包含硬件开发,也包含软件开发,所以往往是多人协同、软硬两条流程线,所以,需要的开发工具链上的工具也会比一般的软件开发要多,在总体需求确定后,本文就从功能设计开始,从硬件和软件两个方面,把设计、实现到产品量产的全过程中使用到的开发工具依次进行梳理。以最常用的STm32系列嵌入式处理器为例,主要开发工具有:
STM32Cube软件工具包如下图:
包括了:
(1)STM32CubeMX
STM32 设备的配置工具。使用的图形用户界面为 Cortex-M 内核生成初始化 C 代码。
(2)STM32CubeIDE,集成开发环境。
该 IDE 基于 Eclipse 或 GNU C/C++ 工具链等开源解决方案,包括编译报告功能和高级调试功能。
(3)STM32CubeProgrammer,一个编程工具
支持通过TAG、SWD、UART、USB DFU、I2C、SPI、CAN 等为读取、写入和验证设备和外部存储器提供了一个易于使用且高效的环境。
(4)STM32CubeMonitor 强大的监控工具
可帮助开发人员实时微调其应用程序的行为和性能。
目前最常用的就是STM32CubeMX,可以根据用户的cpu选项,资源配置、外设配置等信息,一键生成初始化的c代码,帮助用户快速搭建开发系统的基本框架。
要进行电路的设计,EDA工具是必不可少的,此处推荐嘉立创EDA这款高效的国产原理图和PCB设计工具,下载地址为:
https://easyeda.com/
主要特色功能如下图:
该EDA不仅永久免费, 而且拥有超过百万的免费库,并且还在实时更新,当然你也可以导入自己常用封装库。同时,软件整合了立创商城的元器件目录,EDA集成超过20万实时更新的,并且库存充足的元器件库,在pcb设计过程中,工程师可以在设计过程中检查元器件库存、价格,选择成本最底的电路设计方案,完成后,在投板制作的同时,支持bom表配单或立即下单购买,和pcb的制作周期同步进行采购、焊接和组装流程,大大缩短设计周期。
在嵌入式系统开发中,多数是基于c语言的开发,在系统开发中,有大量的模块为硬件无关的算法操作例如,滤波算法、fft变换、数据统计等等,这些程序在硬件设计、开发和调试完成之前,我们往往需要一个验证的平台,并且,在pc平台上,不受硬件bug、稳定性的约束,往往具有更高的开发效率。Code::Blocks 是一个开放源码的全功能的跨平台C/C++集成开发环境。 它是开源软件,支持跨平台开发,最新的版本为20,如下图:
Code::Blocks支持语法彩色醒目显示、工程管理、项目构建、调试等。并且
Code::Blocks支持插件,包括代码分析器;代码补全;代码统计;编译器选择;复制字符串到剪贴板;调试器;文件扩展处理器等等。除支持自身的工程文件、C/C++文件外,还支批处理、MASM汇编文件、Windows资源文件。不失为一款跨平台、兼容性好、优秀的C、C++ IDE环境,
Keil 是Keil Software公司出品,后由ARM公司收购,支持嵌入式系统开发的最常用的软件开发系统,Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件编写、调试、烧写工具也会令你事半功倍。需要注意的是,keil版本众多,开发51单片机、STM32等arm系列单片机等等的Keil版本并不能共用,需要根据你的主处理器选择对应的版本,Keil μVision5 IDE是现在的最新版本。如下图:
这个就不用多介绍了,串口助手网上有很多种,调试串口设备非常方便,如下图:
打开串口助手后,设置串口号、波特率、数据位、停止位和校验位等通信参数后,就可以进行串口数据的收发了,可以选择hex格式ASCII码模式,还支持自定义间隔时间的自动发送,用于自动测试和疲劳测试等。
如今,纯粹单机运行的嵌入式系统已经不多了,大多数系统都具有网络功能,用于实现遥测、遥控和遥信等无人值守功能,所以,大量网络协议的应用和调试就成为必不可少的功能,网络调试助手官方版是一款简便实用的TCP/UDP 调试工具。可以设定TCPserver、 TCP client,支持IP地址、端口号的自定义输入,日志导出等。
在所有的硬件和软件调试完毕后,进入工厂量产阶段,处于产权保护的需要,交付工厂的往往只是程序的烧写文件,如 .hex文件等。STM32 ST-LINK Utility界面如下:
通过此工具,工厂生产线可以批量为生成产品写入嵌入式程序,从而在保护好产品的基础上,为工厂批量生成提供了最大的方便,方便产品的批量化生成和上市。