The hardware requirements are minimal
- Approximately 5-10Kbytes of FLASH and 300 bytes of SRAM
- A UART with interrupt support. For standard compliance 2 stop bits are required for no parity mode. 7 data bits are required for MODBUS ASCII
- A TIMER with a resolution off at least 750 microseconds.
Operation is possible with and without an operating system. If a RTOS is available event queues can be used to avoid busy waiting within the MODBUS task (See STR71X/FreeRTOS). For systems running without RTOS a polling based approach in combination with a global variable can be used (See Atmel AVR port)
The actual memory requirements depend on the used modules. The first table shows the required memory with all supported functions compiled in. Values for the ARM where obtained using the GNUARM compiler collection 3.4.4 with -O1 in ARM mode. The AVR values where obtained using the WinAVR compiler collection 3.4.5 with -Os.