组件(Compoent)在26262-1 3.21 P13中的定义是(在逻辑上或技术上可分离的非系统级元素,其中包含多个硬件或者软件单元non-system level element that is logically or technically separable and is comprised of more than one hardware part or more software units).而软件单元的定义在26262-1 P33 3.159 中则是(atomic level software component of the software architecture that can be subjected to stand-alone testing可以进行独立测试的软件架构中的不可细分组件),从定义的角度来看软件单元是本身也是组件,只是在本身定义的层次上不可细分。所谓不可细分,从C语言函数的角度来理解的话,可以分为两种情况,一是这个函数本身只有指令不包含任何的函数调用,二是这个函数本身既包含了函数调用也包含了指令但是它们不是单纯的顺序执行关系。也就是说这个函数所调用的函数包含有返回值,而这个函数会利用所调函数的返回值来执行运算。使函数之间彼此影响。具体可见如下例子:
void Module_A (void)
{
sint16 return_s16value;
return_s16value = Module_A_SubFunc1();
if(return_s16value > 1)
{
Module_A_SubFunc2();
}
else
{
Module_A_SubFunc3();
}
}
在上面这个函数中子函数Module_A_SubFunc1()的返回值决定了后面两个函数的执行顺序ÿ