Det finns några viktiga saker att ta ställning till när man utvecklar med och för SmeOS.
Det finns flera olika abstraktionslager.
Hårdvara, HAL:
Är det första. Det hanterar basic kommunikation mot hårdvara, som IO, pwm, timer och ADC i hårdvara. Det behöver skrivas rutiner för hur man kommunicerar med hårdvara för alla plattformar som supportas.
Scheduler/OS:
Det skall finnas möjlighet att byta kärna eller os, utan att drivrutiner och överliggande applikationer skall behöva skrivas om. Till att börja med kommer bara en none-preemtive kernel att supportas. Detta underlättar debuging i ett operativsystem som inte kan tillhandahålla hårdvaru avbrott.
Application:
Att skriva en application till SmeOS skall inte innebära att man behöver fundera över vilken hårdvara eller vilka resurser som finns tillgängliga.
Hårdvara HAL, kommer att försöka härma ex. arduino, men om det inte går så härmar vi STM32-HAL så långt det går.
SmeOS-API kommer att ha en egen dokumentation som skall göra det så enkelt som möjligt att portera en app från STM32 eller Arduino.