嵌入式软件开发工程师
介绍
职位描述:
Air Q的嵌入式软件开发工程师在HARARA VTOL UAV的固件和低级软件的设计、开发和集成中发挥着至关重要的作用。他们负责创建高效可靠的嵌入式软件解决方案,为飞机的最佳性能做出贡献。嵌入式软件开发工程师与系统集成工程师和自动驾驶工程师密切合作,确保软件组件无缝集成到UAV系统中。
主要职责:
低级驱动程序调整和集成:开发和集成微控制器和硬件组件的低级驱动程序,确保正确的通信和功能。
固件架构设计:为HARARA UAV设计一个结构良好、模块化的固件架构,适应各种软件组件和未来的可扩展性。
固件实现:使用C++和C语言实现固件模块,遵循代码质量、效率和可维护性的最佳实践。
代码质量保证:建立和改进流程,确保代码质量,包括代码审查、测试和调试程序。
硬件组件选择:研究和分析飞机硬件组件,根据技术规格和性能要求选择合适的组件。
测试工具开发:开发测试和配置飞机硬件组件的工具,确保其准确集成和功能。
硬件配置和集成:配置和集成飞机硬件组件到UAV系统中,与系统集成工程师密切合作。
测试和验证:对嵌入式软件进行严格测试,以验证性能、可靠性和符合设计规范。
容错性和安全措施:在嵌入式软件中实现容错性和安全措施,确保稳健运行并优雅处理潜在故障。
实时操作系统(RTOS):利用RTOS管理实时应用程序的任务调度、资源分配和系统性能。
通信协议:实现和集成通信协议,如UART、I2C、SPI和CAN,用于各种UAV组件之间的数据交换。
数据记录和遥测:开发数据记录和遥测机制,收集和传输UAV性能数据进行分析和监控。
电源管理:优化嵌入式系统的电源管理,确保高效能源使用和延长电池寿命。
安全和加密:采用安全措施和加密协议,保护敏感数据,确保UAV通信安全。
固件更新和远程无线(OTA)功能:开发OTA功能,实现远程固件更新和增强。
持续集成和持续部署(CI/CD):实施CI/CD流水线,实现自动化软件测试和部署,提高开发效率。
版本控制:利用版本控制系统(如Git)管理软件修订版本,与团队成员有效协作。
文档:准备嵌入式软件设计、实现、测试过程和集成指南的详细文档。
合作努力:与系统集成工程师和自动驾驶工程师密切合作,确保软件和硬件组件无缝集成。
UAV开发支持:为整个UAV开发过程提供支持和帮助,包括故障排除和解决软件相关问题。
期望:
• 熟练掌握C++和C编程语言,具备嵌入式系统开发的坚实基础。
• 在复杂系统的固件架构设计和实施方面有经验。
• 熟悉微控制器和硬件组件的低级驱动程序开发。
• 熟悉软件开发流程和代码质量保证的最佳实践。
• 强大的问题解决能力,能够分析和解决嵌入式软件问题。
• 能够适应动态和快节奏的研发环境,不断进行调整和改进。
• 出色的沟通和协作能力,能够与跨职能团队有效合作。
• 积极主动、自我驱动的学习态度,及时了解新兴技术和行业趋势。
熟悉UAV系统或航空相关软件开发者优先考虑