我对敏捷开发过程有一个好主意,但我不知道如何将其映射到具有重大硬件更改的嵌入式项目。
我将在下面描述我们目前正在做什么(临时方式,尚未定义流程)。更改分为三类,每类使用不同的流程:
完成硬件更改
示例:使用不同的视频编解码器 IP
a) 研究新 IP
b) RTL/FPGA 仿真
c) 实现旧接口 - 转到 b)
d) 等到硬件(流片)准备好
f) 在真实硬件上测试
硬件改进
示例:通过改进底层算法提高图像显示质量
a) RTL/FPGA 仿真
b) 等到硬件并在硬件上测试
微小的变化
示例:仅更改硬件寄存器映射
a) 等到硬件并在硬件上测试
令人担忧的是,我们似乎对硬件更改的软件成熟度没有太多控制和信心。这种信心对于项目的成功至关重要,因为启动时间表总是非常紧张,而且客户希望在更新到新版本的硬件时进行无缝更改。
你是如何管理这种硬件变化的?您是否通过硬件抽象层 (HAL) 解决了这个问题?您是否对 HAL 层进行了自动测试?HAL 适用于成熟产品,但可能不适用于快速变化的消费产品。当硬件平台还没有准备好时,你是如何测试的?对于此类更改,您是否有详细记录的流程?