You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
100 lines
3.7 KiB
100 lines
3.7 KiB
.. _emulators: |
|
|
|
Zephyr's device emulators/simulators |
|
#################################### |
|
|
|
Overview |
|
======== |
|
|
|
Zephyr includes in its codebase a set of device emulators/simulators. |
|
With this we refer to SW components which are built together with the embedded SW |
|
and present themselves as devices of a given class to the rest of the system. |
|
|
|
These device emulators/simulators can be built for any target which has sufficient RAM and flash, |
|
even if some may have extra functionality which is only available in some targets. |
|
|
|
.. note:: |
|
|
|
| Zephyr also includes and uses many other types of simulators/emulators, including CPU and |
|
platform simulators, radio simulators, and several build targets which allow running the |
|
embedded code in the development host. |
|
| Some of Zephyr communication controllers/drivers include also either loopback modes or loopback |
|
devices. |
|
| This page does not cover any of these. |
|
|
|
.. note:: |
|
Drivers which are specific to some platform, like for example the |
|
:ref:`native_sim specific drivers <native_sim_peripherals>` which |
|
emulate a peripheral class by connecting to host APIs are not covered by this page. |
|
|
|
|
|
Available Emulators |
|
=================== |
|
|
|
**ADC emulator** |
|
* A fake driver which pretends to be actual ADC, and can be used for testing higher-level API |
|
for ADC devices. |
|
* Main Kconfig option: :kconfig:option:`CONFIG_ADC_EMUL` |
|
* DT binding: :dtcompatible:`zephyr,adc-emul` |
|
|
|
**DMA emulator** |
|
* Emulated DMA controller |
|
* Main Kconfig option: :kconfig:option:`CONFIG_DMA_EMUL` |
|
* DT binding: :dtcompatible:`zephyr,dma-emul` |
|
|
|
**EEPROM emulator** |
|
* Emulate an EEPROM on a flash partition |
|
* Main Kconfig option: :kconfig:option:`CONFIG_EEPROM_EMULATOR` |
|
* DT binding: :dtcompatible:`zephyr,emu-eeprom` |
|
|
|
.. _emul_eeprom_simu_brief: |
|
|
|
**EEPROM simulator** |
|
* Emulate an EEPROM on RAM |
|
* Main Kconfig option: :kconfig:option:`CONFIG_EEPROM_SIMULATOR` |
|
* DT binding: :dtcompatible:`zephyr,sim-eeprom` |
|
* Note: For :ref:`native targets <native_sim>` it is also possible to keep the content |
|
as a file on the host filesystem. |
|
|
|
**External bus and bus connected peripheral emulators** |
|
* :ref:`Documentation <bus_emul>` |
|
* Allow emulating external buses like I2C or SPI and peripherals connected to them. |
|
|
|
.. _emul_flash_simu_brief: |
|
|
|
**Flash simulator** |
|
* Emulate a flash on RAM |
|
* Main Kconfig option: :kconfig:option:`CONFIG_FLASH_SIMULATOR` |
|
* DT binding: :dtcompatible:`zephyr,sim-flash` |
|
* Note: For native targets it is also possible to keep the content as a file on the host |
|
filesystem. Check :ref:`the native_sim flash simulator section <nsim_per_flash_simu>`. |
|
|
|
**GPIO emulator** |
|
* Emulated GPIO controllers which can be driven from SW |
|
* Main Kconfig option: :kconfig:option:`CONFIG_GPIO_EMUL` |
|
* DT binding: :dtcompatible:`zephyr,gpio-emul` |
|
|
|
**I2C emulator** |
|
* Emulated I2C bus. See :ref:`bus emulators <bus_emul>`. |
|
* Main Kconfig option: :kconfig:option:`CONFIG_I2C_EMUL` |
|
* DT binding: :dtcompatible:`zephyr,i2c-emul-controller` |
|
|
|
**RTC emulator** |
|
* Emulated RTC peripheral. See :ref:`RTC emulated device section <rtc_api_emul_dev>` |
|
* Main Kconfig option: :kconfig:option:`CONFIG_RTC_EMUL` |
|
* DT binding: :dtcompatible:`zephyr,rtc-emul` |
|
|
|
**SPI emulator** |
|
* Emulated SPI bus. See :ref:`bus emulators <bus_emul>`. |
|
* Main Kconfig option: :kconfig:option:`CONFIG_SPI_EMUL` |
|
* DT binding: :dtcompatible:`zephyr,spi-emul-controller` |
|
|
|
**MSPI emulator** |
|
* Emulated MSPI bus. See :ref:`bus emulators <bus_emul>`. |
|
* Main Kconfig option: :kconfig:option:`CONFIG_MSPI_EMUL` |
|
* DT binding: :dtcompatible:`zephyr,mspi-emul-controller` |
|
|
|
**UART emulator** |
|
* Emulated UART bus. See :ref:`bus emulators <bus_emul>`. |
|
* Main Kconfig option: :kconfig:option:`CONFIG_UART_EMUL` |
|
* DT binding: :dtcompatible:`zephyr,uart-emul`
|
|
|