作为一个两年经验的硬件产品经理,经历了一款产品从零到上市的过程,积累了一点经验,我也想通过输出积累下来;想在硬件PM这一行长远的做下去,产品管理、市场能力以及成本控制这三方面的能力要不断精进。
我认为硬件PM懂技术是有必要的。作为初级产品经理,执行的工作,硬件基础知识是沟通的基础,和研发沟通需求,和供应商做后续的对接都离不开技术知识;进阶到中高级产品经理,市场以及供应链管理工作中技术是桥梁,与供应商,客户的沟通离不开技术知识。
硬件行业缩略语,定义词特别多。回想自己刚入行看到RX TX IPC SPI Flash eMMC…一头雾水。看书,上网搜索硬件相关的内容,其内容的主要受众是工程师,而作为硬件PM需要对其归类并知道边界,对实现了解即可。
这也算是我发现的入行硬件PM的痛点吧!网上并没有完全针对硬件PM技术知识的内容。硬件PM涉及的面非常广,嵌入式硬件、软件、算法、结构、制造以及ID都需要了解。对于从软件PM转型或直接入行硬件PM的同学是一个门槛。
做一款硬件产品,硬件技术方面少不了这些内容。
嵌入式系统是专用于某个应用或者产品的系统。它可以自成一个系统、也可以是大系统的一部分。
嵌入式系统之间的关系如下图所示。
嵌入式硬件包括处理器、存储器、微控制器、I/O、DAC ADC、电源、总线、定时器 计数器等等。此外根据不同的应用场景,嵌入式硬件会集成不同的传感器,例如摄像头、雷达、GPS等等。
本文主要介绍嵌入式系统,其它分内容后面会详细介绍。
嵌入式软件是嵌入式系统的核心。产品设计的落地,性能指标的满足都是通过软件来实现的,作为硬件PM我们需要了解嵌入式软件的架构,更好的与工程师沟通。
我们是硬件PM,但是在研发工作中打交道最多的是软件工程师。作为PM我们要知道工程师的分工。提需求的时候要找到对应的人,拉通协作时找到对应的人。
嵌入式系统可以分为硬件层,驱动层、操作系统层、应用接口层、应用层。除了硬件层,其他都属于软件工程师的工作范围。在大多数公司中,软件工程师会单独负责其中的一块。
嵌入式软件包括嵌入式操作系统以及应用程序
说到嵌入式操作系统之前,先介绍一下操作系统。操作系统是硬件与用户之间的中介,用来管理系统资源和控制应用程序运行的计算机程序。
1)嵌入式系统的特点
相对于操作系统,嵌入式操作系统不要求全能,但必须能够有效率的发挥硬件最大的能力,使产品获得最高的性价比,嵌入式操作系统的特点如下:
2)内核
嵌入式系统分为宏内核与微内核:
3)操作系统基本组件
无论是宏内核还是微内核都有进程管理、内存管理、中断管理以及API。
4)嵌入式实时操作系统(RTOS)
在介绍之前先介绍个概念:任务调度方式。
5)任务调度
在嵌入式操作系统中,任务调度方式有三种:不可抢占式调度、可抢占调度、时间片轮转调度
嵌入式操作系统分为嵌入式操作系统和嵌入式实时操作系统(RTOS),两者的主要区别是任务调度方式不同。
嵌入式实时操作系统的任务调度方法基于可抢占调度法,它真的具有实时性。
6)实时性
实时也就是操作系统的计算结果不仅依赖于计算的逻辑结果,也依赖于结果产生的时间,RTOS不见要求产生正确的结果,还要求结果产生的足够快。“快”是一个相对的概念,性能很强大的操作系统不一定是实时系统。
而实时性又分为硬实时和软实时:
7)嵌入式实时操作系统
RTOS是一段嵌入在目标代码中的程序,系统复位后首先执行,相当于用户的主程序,用户的其他程序都建立在RTOS之上;此外RTOS是一个标准的内核,CPU将时间、中断、IO、定时器等资源都包装起来,留给用户一个标准API,并根据各个任务的优先级,合理的在不同任务之间分配CPU时间。
此外RTOS最关键的部分就是实时多任务内核,包括任务管理、消息管理、存储管理、事件管理;这些管理功能是通过RTOS的API给用户调用的,跨平台移植程序修改的很少。
8)嵌入式实时操作系统特点
9)常见的RTOS
本文由 @无脚鸟 原创发布于人人都是产品经理,未经作者许可,禁止转载。
题图来自Unsplash,基于CC0协议。