perangkat nitbot-iot yang kita buat adalah open source. Lalu bagaimana agar komunitas opensource nitbot-iot, tidak membutuhkan penyesuaian yang banyak ketika perangkat/hardware yang kita gunakan ganti?Jawabannya adalah HAL (Hardware Abstraction Layer), atau dengan kata lain kita membuatkan program untuk hardware level bawah (misal akses ADC, I2C, SPI, UART) atau yang kita disebut HAL, dan kita buat juga platform nitbot-iot di level atas (misal algoritma on off untuk perangkatnya). 

Jadi, kurang lebih contohnya begini, coba lihat komputer yang kita gunakan, hardwarenya dengan berbeda-beda misal vga nya ada yang intel, nvidia,amd dll. Tapi pertanyaanya, mengapa OS tetap bisa dijalankan di komputer yang hardwarenya berbeda-beda?Karena ada HAL (Hardware Abstraction Layer), contoh yang paling gampang adalah software driver yang kita gunakan di komputer. Kalau tiap kali hardware kita ganti, kemudian kita harus memprogram dari awal lagi, tentunya sangat ribet, nah itulah kelebihan HAL ini.

Hardware Abstraction Layer menyediakan interface untuk perangkat keras, seperti yang saya jelaskan di paragraf sebelumnya, misal akses ADC, I2C, SPI, UART. Karena yang kita tahu, pemrograman hardware cukup rumit. Dengan adanya program HAL ini maka kita tidak perlu tahu menggunakan hardware jenis apa, misalkan atmel seri AT Mega, STM32, PIC yang memiliki akses pemrograman hardware yang berbeda.

Pada umumnya, HAL digunakan pada OS modern, atau biasanya HAL digunakan sebagai basic driver pada chipset motherboard yang menyediakan basic interface antara kernel dan hardware komputer, termasuk prosessor. Keren, karena kernel mampu mengakses apapun jenis hardwarenya.

Berikut ini adalah contohnya,





0 Komentar