Overview
OSS-EC (Open Source Software for Eectronic Components) is a generic term for open source software (OSS) and related documentation for electronic components (components).
The purpose of OSS-EC is to standardize electronic component programs so that they can be developed with high quality, at low cost, and in a short time.
Feature High portability
- Standard API by component type
- Supports a wide variety of RTOS
- Support for a wide variety of HALs
- License free (but comply with OSS-EC Terms of Use)
- Provides many documents
Definition of Terms
OSS-EC | Open Source Software for Eectronic Components A generic term for open source software (OSS) and related documentation for electronic components (components). |
API | Application interface |
XYZ | Component Manufacturer Name |
ABCDEF | Component model number |
Architecture & Files
The OSS-EC architecture and provided files are as follows
Fig.1 Architecture & Files

ABCDEF.cpp | unchangeable | Const data file of model number |
ABCDEF.h | unchangeable | Define header file of model number |
bsl_12345678.cpp | unchangeable | Program file of this BSL |
user_define.h | changeable | Define header file of user user setting : Port pin, VCC, etc |
sample/main.cpp | changeable | Sample program file Arduino sample.ino |
sample/lib.cpp | changeable* | Library program file of this BSL |
sample/lib.cpp | changeable* | Library define header file of this BSL |
oss_ec_include/bsl_12345678.h | unchangeable | Define header file of this BSL |
oss_ec_include/component_type.h | unchangeable | Component type define header file exp) ADC component & Linear type adc_linear.h |
oss_ec_include/common.h | unchangeable | Common define header file of OSS-EC |
oss_ec_include/float_integer.h | unchangeable | Floating-point/Integer define header file |
* Library functions are provided with functions to assist your application. It is up to the user to decide whether or not to use them.
API
The API is determined by selecting components and BSL functions. For detailed specifications, please refer to the respective BSL specifications.
rtn_type bsl_12345678( arg_type tbl_ABCDEF); exp) float bsl_00000058( tbl_adc_l_t tbl_S58LM20A ); rtn_type float bsl_12345678 bsl_00000057 arg_type tbl_adc_l_t tbl_ABCDEF tbl_S58LM20A
rtn_type | Return data type of bsl_12345678 function The rtn_type is defined in bsl_12345678.h |
bsl_12345678 | Base Program function name of OSS-EC The bsl_12345678 function is provided in bsl_12345678.cpp |
arg_type | Argument data type of bsl_12345678 function The arg_type is defined in bsl_12345678.h |
tbl_ABCDEF | The tbl_ABCDEF table is provided in ABCDEF.h, ABCDEF.cpp |
Fig.2 ADC components of API

It is recommended that the API name be redefined and used as follows.
sample/main.cpp (Mbed)
// redefine
#define tempreture_read bsl_00000058
#define humidity_read bsl_00000058
#define tbl_temperature tbl_S58LM20A
#define tbl_humidity tbl_CHS_MSS
typedef tbl_adc_l_t tmp_struct;
typedef tbl_adc_l_t hmd_struct;
float tempreture_read( tmp_struct );
float humidity_read( hmd_struct );
void ap( void )
{
float val_temperature; // Temperature [degree celsius]
float val_humidity; // Humidity [%RH]
do{
// Read of Temperature Sensor
val_temperature = tempreture_read( tbl_temperature );
// Read of Humidity Sensor
val_humidity = humidity_read( tbl_humidity );
// Application cycle wait
thread_sleep_for( iSensor_Cyc );
}while(true);
}
OS support
OSS-EC provides BSLs supporting many operating systems as shown in Fig. 3.
Fig.3 OS support

Documents
The following documents are available We hope you will find them useful to ensure your quality.
- Specification document of ABCDEF
- Specification document of BSL-12345678
- TestSpec&Result-ABCDEF_12345678
- Specification document of library_name
- TestSpec&Result-library_name