平台化开发
对于与日俱增电子产品项目,项目开发周期、产品的稳定性、设计的合理性、都为公司重中之重的要素,为此公司的研发部,都寻求各种应对方案,探讨如何使产品的生命周期更长,如何使产品的各项维护更加简单,如何使产品设计可高效移植到下一个项目开发中来,如何应对客户的需求变更等等,这些都是需要有智慧的抉择。
在现实中的项目开发中,现状是客户需求复杂多变、不清晰、深度不够。今天一个需求,明天变成另外一个需求;今天升级一个版本,明天又要升级一个版本;今天修改的都还来得及测试,明天的需求又挤进来。所以这样多变动程序设计,往往不知隐藏多少个BUG。等到生产后BUG就一个个出现。软件工程师要为此买单,从而打击到自己的自信心。而在产品的迭代性、软件维护、软件升级过程中,不管是硬件开发或者软件开发,平台化发越来越受公司的欢迎。软件平台化开发具有以下特点:1,稳定性良好;2,不需要修改代码只需修改配置项;3,若是要修改代码,修改量很小;4,程序的思路清晰、可读性强、容易维护;这些特点对于程序设计者也是极大的考验,我们这样去做这件事呢?
平台化工作,我们将它化繁为简,分为两大部分工作,一是程序模块化编程;二是功能项参数可配置。模块化编程稳定性高,不用经常修改内部程序;功能项参数可配置功能可供用户选择,省去修改程序,程序版本管理,编辑编译等操作出错的概率。
功能配置项
功能配置项,可以根据客户提供需配置的项列表来实现,经常见得的配置项,如功能开启与否、功能模式却换、产品信息参数修改、功能参数修改等等。功能配置项是一般是存储在EEPROM里面的,现在芯片都自带可擦写的Flash,配置存放在芯片内部,节省外挂EEPROM成本。配置项存储的结构可以一个配置一个存储区域,也可以一起擦除一起存储,看存储空间和区块结构来决定。配置项的做法,在程序上电或者软复杂初始化时,读取EEPROM数据,用结构体指针的方式解析配置项的内容,若读到结构体的有内容且检验和正确,则使用该配置参数。若读到无数据,或者检验和错误,则使用默认的配置。
配置项配置方法,配置项配置方法可以有以下几种,一个就是在烧录程序的时候,将配置项一起烧录,即将烧录的hex文件和配置的hex合并。另外主程序要留接口来升级配置项,在可以通过外部OTA方式,或者Bootloader方式。如蓝牙设备的操作,可以在手机APP上面设置好配置项参数,开启设置时,设备通过蓝牙服务命令将配置项参数写入EEPROM中,主机重启后参数配置完成。
模块化编程
模块化程序设计,要做到程序相对独立、高移植性、高可读性等目标。一般项目可抽象分为技术层和业务层(应用层)。模块有技术层模块和应用层模块,技术层模块如IO输出、PWM驱动、串口驱动、ADC采样、flash存储、外围驱动等等。业务模块如定时情景、显示时钟、开关控制、菜单功能等等。怎样实现模块化编程,详见下一章节。
领取专属 10元无门槛券
私享最新 技术干货