place timer interrupt handler into flash by default; add default settings for timer and UART interrupts to place them into IRAM into example defaults; CONFIG_FMB_TIMER_PORT_ENABLED default = n, when enabled, the UART_ISR_IN_IRAM set to y
137 lines
5.1 KiB
Text
137 lines
5.1 KiB
Text
menu "Modbus configuration"
|
|
|
|
config FMB_MASTER_TIMEOUT_MS_RESPOND
|
|
int "Slave respond timeout (Milliseconds)"
|
|
default 150
|
|
range 50 400
|
|
|
|
help
|
|
If master sends a frame which is not broadcast, it has to wait sometime for slave response.
|
|
if slave is not respond in this time, the master will process timeout error.
|
|
|
|
config FMB_MASTER_DELAY_MS_CONVERT
|
|
int "Slave conversion delay (Milliseconds)"
|
|
default 200
|
|
range 50 400
|
|
|
|
help
|
|
If master sends a broadcast frame, it has to wait conversion time to delay,
|
|
then master can send next frame.
|
|
|
|
config FMB_QUEUE_LENGTH
|
|
int "Modbus serial task queue length"
|
|
range 0 200
|
|
default 20
|
|
help
|
|
Modbus serial driver queue length. It is used by event queue task.
|
|
See the serial driver API for more information.
|
|
|
|
config FMB_SERIAL_TASK_STACK_SIZE
|
|
int "Modbus serial task stack size"
|
|
range 768 8192
|
|
default 2048
|
|
help
|
|
Modbus serial task stack size for event queue task.
|
|
It may be adjusted when debugging is enabled (for example).
|
|
|
|
config FMB_SERIAL_BUF_SIZE
|
|
int "Modbus serial task RX/TX buffer size"
|
|
range 0 2048
|
|
default 256
|
|
help
|
|
Modbus serial task RX and TX buffer size for UART driver initialization.
|
|
This buffer is used for modbus frame transfer. The Modbus protocol maximum
|
|
frame size is 256 bytes. Bigger size can be used for non standard implementations.
|
|
|
|
config FMB_SERIAL_TASK_PRIO
|
|
int "Modbus serial task priority"
|
|
range 3 10
|
|
default 10
|
|
help
|
|
Modbus UART driver event task priority.
|
|
The priority of Modbus controller task is equal to (CONFIG_FMB_SERIAL_TASK_PRIO - 1).
|
|
|
|
config FMB_CONTROLLER_SLAVE_ID_SUPPORT
|
|
bool "Modbus controller slave ID support"
|
|
default n
|
|
help
|
|
Modbus slave ID support enable.
|
|
When enabled the Modbus <Report Slave ID> command is supported by stack.
|
|
|
|
config FMB_CONTROLLER_SLAVE_ID
|
|
hex "Modbus controller slave ID"
|
|
range 0 4294967295
|
|
default 0x00112233
|
|
depends on FMB_CONTROLLER_SLAVE_ID_SUPPORT
|
|
help
|
|
Modbus slave ID value to identify modbus device
|
|
in the network using <Report Slave ID> command.
|
|
Most significant byte of ID is used as short device ID and
|
|
other three bytes used as long ID.
|
|
|
|
config FMB_CONTROLLER_NOTIFY_TIMEOUT
|
|
int "Modbus controller notification timeout (ms)"
|
|
range 0 200
|
|
default 20
|
|
help
|
|
Modbus controller notification timeout in milliseconds.
|
|
This timeout is used to send notification about accessed parameters.
|
|
|
|
config FMB_CONTROLLER_NOTIFY_QUEUE_SIZE
|
|
int "Modbus controller notification queue size"
|
|
range 0 200
|
|
default 20
|
|
help
|
|
Modbus controller notification queue size.
|
|
The notification queue is used to get information about accessed parameters.
|
|
|
|
config FMB_CONTROLLER_STACK_SIZE
|
|
int "Modbus controller stack size"
|
|
range 0 8192
|
|
default 4096
|
|
help
|
|
Modbus controller task stack size. The Stack size may be adjusted when
|
|
debug mode is used which requires more stack size (for example).
|
|
|
|
config FMB_EVENT_QUEUE_TIMEOUT
|
|
int "Modbus stack event queue timeout (ms)"
|
|
range 0 500
|
|
default 20
|
|
help
|
|
Modbus stack event queue timeout in milliseconds. This may help to optimize
|
|
Modbus stack event processing time.
|
|
|
|
config FMB_TIMER_PORT_ENABLED
|
|
bool "Modbus slave stack use timer for 3.5T symbol time measurement"
|
|
default y
|
|
help
|
|
If this option is set the Modbus stack uses timer for T3.5 time measurement.
|
|
Else the internal UART TOUT timeout is used for 3.5T symbol time measurement.
|
|
|
|
config FMB_TIMER_GROUP
|
|
int "Modbus Timer group number"
|
|
range 0 1
|
|
default 0
|
|
help
|
|
Modbus Timer group number that is used for timeout measurement.
|
|
|
|
config FMB_TIMER_INDEX
|
|
int "Modbus Timer index in the group"
|
|
range 0 1
|
|
default 0
|
|
help
|
|
Modbus Timer Index in the group that is used for timeout measurement.
|
|
|
|
config FMB_TIMER_ISR_IN_IRAM
|
|
bool "Place timer interrupt handler into IRAM"
|
|
default n
|
|
select UART_ISR_IN_IRAM
|
|
help
|
|
This option places Modbus timer IRQ handler into IRAM.
|
|
This allows to avoid delays related to processing of non-IRAM-safe interrupts
|
|
during a flash write operation (NVS updating a value, or some other
|
|
flash API which has to perform an read/write operation and disable CPU cache).
|
|
This option has dependency with the UART_ISR_IN_IRAM option which places UART interrupt
|
|
handler into IRAM to prevent delays related to processing of UART events.
|
|
|
|
endmenu
|