1.分析需求: 1)确定目标 首先查看企业《驱动数码管及LED点阵任务书》确定用户对驱动数码管及LED点阵嵌入式软件的具体需求和期望,提取对数码管及LED点阵的控制目标、控制模式、控制精度、控制接口等关键信息; 3)收集需求信息 收集嵌入式系统软件硬件平台信息,嵌入式系统开发环境和条件,数码管及LED点阵指标参数等信息,具体通过阅读《UP-CUP2440实验指导书》,明确数码管及LED点阵的型号、参数、驱动电路、反馈信号及开发工具、编程语言、调试设备、测试方法等平台参数。最后查阅《物联网嵌入式开发技术项目教程》等资料收集整理数码管及LED点阵驱动嵌入式软件参考例程。 4)建立需求文档 阅读《软件需求说明书规范》,根据已收集的信息对驱动数码管及LED点阵的功能需求、性能需求、接口、可靠性及安全需求等作具体描述。 5)验证需求 使用matlab,simulink及Proteus等数值、程序、电路仿真测试工具对需求进行验证。 6)更新需求文档 如果需求有变更或者添加,您需要在需求文档中进行更新和记录 7)审核需求文档 最终完成输出嵌入式软件需求说明书。 2.制定方案: 1)制定设计规范 首先制定嵌入式软件设计规范,包括编程语言C、java,Python,汇编等编码规范、代码风格、命名规范等。 2)设计总体软件架构 完成驱动数码管及LED点阵的软件系统整体架构图,包括模块划分、模块之间的接口定义、数据流图、状态转换图等; 3)设计功能模块 阅读《嵌入式linux设备驱动》,完成包括对嵌入式linux关于嵌入式处理器数码管显示驱动、LED点阵显示驱动,应用层数码管显示模块、LED点阵显示模块及延时函数进行详细设计,对相关驱动函数输入输出接口、算法实现、数据结构定义进行设计。 4)设计测试用例 设计驱动数码管及LED点阵的测试用例及测试方法等; 5)优化性能 最后对驱动数码管及LED点阵的软件性能进行分析,提出优化方案,包括算法优化、代码优化,调试方式等。 输出驱动数码管及LED点阵软件详细设计说明书。 3.编写代码: 1)确定编程环境 使用虚拟机加载的ubuntu系统,使用嵌入式C语言进行程序编写; 2)定义程序结构 包括定义驱动数码管及LED点阵程序的整体结构,包括函数、变量、数据结构等,以及它们的作用和关系; 3)编写初始化函数 编写应用层数码管及LED点阵初始化函数,包括初始化嵌入式系统的各个模块,包括时钟、中断、GPIO、定时器等、LED设备的初始化; 4)编写主程序 编写主程序main(),包括实现嵌入式系统的各项功能,包括定义数码管显示真值表数组及LED点阵显示数组、LED驱动设备文件打开,以及显示数据写入函数、LED设备的关闭; 5)编写子程序 编写子程序,包括调用ioctl驱动函数写入数码管显示数据、调用write函数写入LED点阵显示数据,延时函数的实现等; 6)编写驱动函数 在嵌入式linux驱动层实现字符设备文件ioctl操作函数,用于向LED数码码写入显示数据,以及字符设备文件写操作函数,用于写入LED点阵显示数据等。 最后输出完成完整源码。 4.测试软件: 1)审查代码 阅读《嵌入式软件编码规范》,对嵌入式软件代码进行代码审查,确保代码符合编码规范和设计文档,代码结构清晰、可读性好,变量命名合理,注释充分等; 2)分析静态代码 静态代码分析,即使用Splint,Coverity等静态代码分析工具,对嵌入式软件代码进行分析,检查是否存在潜在的缺陷或漏洞,比如内存泄漏、数组越界、空指针等; 3)分析动态代码 动态代码分析,即使用Valgrind,AddressSanitizer等动态代码分析工具,对嵌入式软件代码进行分析,检查代码的执行路径、函数调用关系、代码覆盖率等,以确定代码的正确性和可靠性; 4)设计测试用例 根据数码管及LED点阵的测试场景和测试方法,设计测试用例。每个测试用例应包含两位数码管的数字显示及LED的图形显示,并且预期输出应当是动态的,如数码管进行数字的轮流显示、LED点阵的图形切换等; 5)测试单元模块 对代码中的主函数和子函数进行测试,检查函数功能是否正确、边界情况是否处理得当等; 6)测试集成性 最后对嵌入式软件代码中各个函数间的接口进行测试,确保函数之间的数据传输和函数调用等操作正确无误。 输出嵌入式软件测试报告。 5.验证系统: 1)烧录系统 通过Makefile重新编译内核,驱动及应用层源码,将更新后的内核通过uboot环境中的tftp重新更新系统,将驱动及可执行文件通过tftp/ftp等网络工具下载到UP-CUP2440嵌入式linux文件系统中,运行系统。 2)测试功能 系统功能测试,需要测试嵌入式LED器件系统的各个方面,如输入、输出、处理能力、响应时间、及检查嵌入式处理接口,LED器件驱动模块及LED器件的显示运行情况是否符合用户需求说明书中要求。 3)测试性能 分别从静态显示、动态循环显示观察LED器件的显示性能,如显示亮度、是否存在重影、乱码及闪烁现象,使用逻辑分析仪测试LED器件工作时的波形,启动性能,静态显示运行性能,循环显示运行性能,稳定性等。 4)测试安全性 使用万用表检查漏电及LED器件运行是否有安全隐患。 5)测试可靠性 嵌入式系统电气稳压特性,寿命,抗振动冲击及电磁干扰等。 最后输出嵌入式系统测试验证报告。 |