Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Project management 具有重大硬件更改的嵌入式项目的开发过程_Project Management_Process_Embedded_Hardware_Fpga - Fatal编程技术网

Project management 具有重大硬件更改的嵌入式项目的开发过程

Project management 具有重大硬件更改的嵌入式项目的开发过程,project-management,process,embedded,hardware,fpga,Project Management,Process,Embedded,Hardware,Fpga,我对敏捷开发过程有一个很好的想法,但我不知道如何将其映射到具有重大硬件更改的嵌入式项目 我将在下面描述我们目前正在做的事情(临时方式,尚未定义流程)。变更分为三类,每类变更使用不同的流程: 完成硬件更改 示例:使用不同的视频编解码器IP a) 研究新知识产权 b) RTL/FPGA仿真 c) 实现遗留接口-转到b) d) 等待硬件(磁带输出)准备就绪 f) 在真实硬件上进行测试 硬件改进 示例:通过改进底层算法提高图像显示质量 a) RTL/FPGA仿真 b) 等待硬件并在硬件上进行测试 微小变

我对敏捷开发过程有一个很好的想法,但我不知道如何将其映射到具有重大硬件更改的嵌入式项目

我将在下面描述我们目前正在做的事情(临时方式,尚未定义流程)。变更分为三类,每类变更使用不同的流程:

  • 完成硬件更改

    示例:使用不同的视频编解码器IP

    a) 研究新知识产权

    b) RTL/FPGA仿真

    c) 实现遗留接口-转到b)

    d) 等待硬件(磁带输出)准备就绪

    f) 在真实硬件上进行测试

  • 硬件改进

    示例:通过改进底层算法提高图像显示质量

    a) RTL/FPGA仿真

    b) 等待硬件并在硬件上进行测试

  • 微小变化

    示例:仅更改硬件寄存器映射

    a) 等待硬件并在硬件上进行测试

  • 令人担忧的是,我们似乎没有太多的控制权,也没有太多的信心来保证硬件变化所带来的软件成熟度。这种信心对于项目的成功至关重要,因为交付时间表总是非常紧凑,客户希望在更新到新版本的硬件时进行无缝更改


    您是如何管理这种硬件更改的?您是否通过硬件抽象层(HAL)解决了这个问题?您是否对HAL层进行了自动测试?HAL适用于成熟产品,但可能不适用于变化迅速的消费品。当硬件平台还没有准备好时,您是如何进行测试的?对于此类变更,您是否有详细记录的流程

    如果您希望底层硬件在产品生命周期内发生变化,则必须添加硬件抽象层(HAL)。如果操作正确,您可以为HAL的两侧创建单元测试

    例如,HAL只是从GUI到实际显示硬件的API。您可以编写一个假的硬件驱动程序,它不驱动物理设备,但以不同的方式响应,以验证您的上层API层是否处理来自HAL的所有可能的响应代码。可能它会在内存中创建一个位图(而不是驱动外部I/O),您可以将其与预期的位图进行比较,以查看其渲染是否正确

    同样,您可以编写一个单元测试,从上层提供对HAL的良好覆盖,以便验证新硬件驱动程序是否正确响应。使用显示示例,您可以循环浏览所有可能的屏幕模式、界面元素、滚动方法等。不幸的是,对于该测试,您需要实际观察显示,但您可以与旧硬件并排运行,以查看速度提高或行为偏差

    不过,回到你的例子。切换到另一个视频编解码器有什么不同?您仍然只是在上层推送字节。如果您正在实现一个已知的编解码器,那么将源文件用作单元测试(涵盖所有可能的数据格式)以确保编解码器正确解码和显示它们(不会崩溃!)会很有帮助。在内存中解码位图有助于进行良好的单元测试——您只需将内存与原始解压缩帧进行比较即可

    我希望这有帮助。如果没有,问更多的问题