Bugfix/zephyr build for minimal ram (#606)

* Removed BACnet objects from ports/zephyr. There should only be datalink and OS related interfaces in OS ports.

* Added Kconfig and bacnet-config.h options in ports/zephyr to keep small footprint for MCUs having less RAM

* Changed ports/zephry for BACnet/IP and date-time with latest zephyr OS
This commit is contained in:
Steve Karg
2024-03-26 14:21:30 -05:00
committed by GitHub
parent 80c51a06e3
commit a4910d4117
9 changed files with 369 additions and 4133 deletions
+37 -39
View File
@@ -332,43 +332,43 @@ set(BACNETSTACK_BASIC_SRCS
$<$<BOOL:${CONFIG_BACDL_BIP6}>:${BACNETSTACK_SRC}/bacnet/basic/bbmd6/h_bbmd6.c>
$<$<BOOL:${CONFIG_BACDL_BIP6}>:${BACNETSTACK_SRC}/bacnet/basic/bbmd6/vmac.c>
${BACNETSTACK_SRC}/bacnet/basic/npdu/s_router.c
${BACNETSTACK_SRC}/bacnet/basic/object/access_credential.c
${BACNETSTACK_SRC}/bacnet/basic/object/access_door.c
${BACNETSTACK_SRC}/bacnet/basic/object/access_point.c
${BACNETSTACK_SRC}/bacnet/basic/object/access_rights.c
${BACNETSTACK_SRC}/bacnet/basic/object/access_user.c
${BACNETSTACK_SRC}/bacnet/basic/object/access_zone.c
${BACNETSTACK_SRC}/bacnet/basic/object/acc.c
${BACNETSTACK_SRC}/bacnet/basic/object/ao.c
${BACNETSTACK_SRC}/bacnet/basic/object/bacfile.c
${BACNETSTACK_SRC}/bacnet/basic/object/bi.c
${BACNETSTACK_SRC}/bacnet/basic/object/bo.c
${BACNETSTACK_SRC}/bacnet/basic/object/bv.c
${BACNETSTACK_SRC}/bacnet/basic/object/calendar.c
${BACNETSTACK_SRC}/bacnet/basic/object/channel.c
#${BACNETSTACK_SRC}/bacnet/basic/object/client/device-client.c
${BACNETSTACK_SRC}/bacnet/basic/object/command.c
${BACNETSTACK_SRC}/bacnet/basic/object/color_object.c
${BACNETSTACK_SRC}/bacnet/basic/object/color_temperature.c
${BACNETSTACK_SRC}/bacnet/basic/object/credential_data_input.c
${BACNETSTACK_SRC}/bacnet/basic/object/csv.c
${BACNETSTACK_SRC}/bacnet/basic/object/device.c
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECTS_ACCESS}>:${BACNETSTACK_SRC}/bacnet/basic/object/access_credential.c>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECTS_ACCESS}>:${BACNETSTACK_SRC}/bacnet/basic/object/access_door.c>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECTS_ACCESS}>:${BACNETSTACK_SRC}/bacnet/basic/object/access_point.c>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECTS_ACCESS}>:${BACNETSTACK_SRC}/bacnet/basic/object/access_rights.c>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECTS_ACCESS}>:${BACNETSTACK_SRC}/bacnet/basic/object/access_user.c>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECTS_ACCESS}>:${BACNETSTACK_SRC}/bacnet/basic/object/access_zone.c>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_ACCUMULATOR}>:${BACNETSTACK_SRC}/bacnet/basic/object/acc.c>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_ANALOG_OUTPUT}>:${BACNETSTACK_SRC}/bacnet/basic/object/ao.c>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_FILE}>:${BACNETSTACK_SRC}/bacnet/basic/object/bacfile.c>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_BINARY_INPUT}>:${BACNETSTACK_SRC}/bacnet/basic/object/bi.c>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_BINARY_OUTPUT}>:${BACNETSTACK_SRC}/bacnet/basic/object/bo.c>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_BINARY_VALUE}>:${BACNETSTACK_SRC}/bacnet/basic/object/bv.c>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_CALENDAR}>:${BACNETSTACK_SRC}/bacnet/basic/object/calendar.c>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_CHANNEL}>:${BACNETSTACK_SRC}/bacnet/basic/object/channel.c>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_COMMAND}>:${BACNETSTACK_SRC}/bacnet/basic/object/command.c>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_COLOR}>:${BACNETSTACK_SRC}/bacnet/basic/object/color_object.c>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_COLOR_TEMPERATURE}>:${BACNETSTACK_SRC}/bacnet/basic/object/color_temperature.c>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECTS_ACCESS}>:${BACNETSTACK_SRC}/bacnet/basic/object/credential_data_input.c>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_CHARACTERSTRING_VALUE}>:${BACNETSTACK_SRC}/bacnet/basic/object/csv.c>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_DEVICE_CLIENT}>:${BACNETSTACK_SRC}/bacnet/basic/object/client/device-client.c>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_DEVICE_SERVER}>:${BACNETSTACK_SRC}/bacnet/basic/object/device.c>
$<$<BOOL:${CONFIG_BAC_ROUTING}>:${BACNETSTACK_SRC}/bacnet/basic/object/gateway/gw_device.c>
${BACNETSTACK_SRC}/bacnet/basic/object/iv.c
${BACNETSTACK_SRC}/bacnet/basic/object/lc.c
${BACNETSTACK_SRC}/bacnet/basic/object/lo.c
${BACNETSTACK_SRC}/bacnet/basic/object/lsp.c
${BACNETSTACK_SRC}/bacnet/basic/object/ms-input.c
${BACNETSTACK_SRC}/bacnet/basic/object/mso.c
${BACNETSTACK_SRC}/bacnet/basic/object/msv.c
${BACNETSTACK_SRC}/bacnet/basic/object/nc.c
$<$<BOOL:${CONFIG_BACDL_BIP}>:${BACNETSTACK_SRC}/bacnet/basic/object/netport.c>
${BACNETSTACK_SRC}/bacnet/basic/object/objects.c
${BACNETSTACK_SRC}/bacnet/basic/object/osv.c
${BACNETSTACK_SRC}/bacnet/basic/object/piv.c
${BACNETSTACK_SRC}/bacnet/basic/object/schedule.c
${BACNETSTACK_SRC}/bacnet/basic/object/time_value.c
${BACNETSTACK_SRC}/bacnet/basic/object/trendlog.c
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_INTEGER_VALUE}>:${BACNETSTACK_SRC}/bacnet/basic/object/iv.c>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_LOAD_CONTROL}>:${BACNETSTACK_SRC}/bacnet/basic/object/lc.c>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_LIGHTING_OUTPUT}>:${BACNETSTACK_SRC}/bacnet/basic/object/lo.c>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_LIFE_SAFETY_POINT}>:${BACNETSTACK_SRC}/bacnet/basic/object/lsp.c>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_MULTISTATE_INPUT}>:${BACNETSTACK_SRC}/bacnet/basic/object/ms-input.c>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_MULTISTATE_OUTPUT}>:${BACNETSTACK_SRC}/bacnet/basic/object/mso.c>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_MULTISTATE_VALUE}>:${BACNETSTACK_SRC}/bacnet/basic/object/msv.c>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_NOTIFICATION_CLASS}>:${BACNETSTACK_SRC}/bacnet/basic/object/nc.c>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_NETWORK_PORT}>:${BACNETSTACK_SRC}/bacnet/basic/object/netport.c>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECTS}>:${BACNETSTACK_SRC}/bacnet/basic/object/objects.c>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_OCTET_STRING_VALUE}>:${BACNETSTACK_SRC}/bacnet/basic/object/osv.c>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_POSITIVE_INTEGER_VALUE}>:${BACNETSTACK_SRC}/bacnet/basic/object/piv.c>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_SCHEDULE}>:${BACNETSTACK_SRC}/bacnet/basic/object/schedule.c>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_TIME_VALUE}>:${BACNETSTACK_SRC}/bacnet/basic/object/time_value.c>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_TRENDLOG}>:${BACNETSTACK_SRC}/bacnet/basic/object/trendlog.c>
${BACNETSTACK_SRC}/bacnet/basic/service/h_alarm_ack.c
${BACNETSTACK_SRC}/bacnet/basic/service/h_arf_a.c
${BACNETSTACK_SRC}/bacnet/basic/service/h_arf.c
@@ -428,9 +428,6 @@ list(
$<$<BOOL:${CONFIG_BACDL_ETHERNET}>:${BACNETSTACK_PORT}/ethernet.c>
${BACNETSTACK_PORT}/main.c
${BACNETSTACK_PORT}/mstimer-init.c
${BACNETSTACK_PORT}/ai.c
${BACNETSTACK_PORT}/av.c
${BACNETSTACK_PORT}/event.c
)
@@ -450,6 +447,7 @@ zephyr_library_compile_definitions(
$<$<BOOL:${CONFIG_BACDL_MSTP}>:BACDL_MSTP>
$<$<BOOL:${CONFIG_BACDL_ETHERNET}>:BACDL_ETHERNET>
$<$<BOOL:${CONFIG_BACDL_NONE}>:BACDL_NONE>
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECTS}>:BACNET_BASIC_OBJECTS>
$<$<BOOL:${CONFIG_BACNET_PROPERTY_LISTS}>:BACNET_PROPERTY_LISTS=1>
$<$<BOOL:${CONFIG_BACNET_ROUTING}>:BACNET_ROUTING>
$<$<BOOL:${CONFIG_BACAPP_PRINT_ENABLED}>:BACAPP_PRINT_ENABLED=1>
+186
View File
@@ -112,6 +112,192 @@ config BACNET_USE_SECTION_ITERABLE_OBJECT_TABLE
help
Use the Section Iterable for the Object Table
config BACNET_BASIC_OBJECTS_ACCESS
bool "Use the BACnet basic access control objects"
default false
help
Use the BACnet basic access control objects
config BACNET_BASIC_OBJECT_ACCUMULATOR
bool "Use the BACnet basic accumulator object"
default false
help
Use the BACnet basic accumulator object
config BACNET_BASIC_OBJECT_ANALOG_INPUT
bool "Use the BACnet basic analog input object"
default false
help
Use the BACnet basic analog input object
config BACNET_BASIC_OBJECT_ANALOG_OUTPUT
bool "Use the BACnet basic analog output object"
default false
help
Use the BACnet basic analog output object
config BACNET_BASIC_OBJECT_ANALOG_VALUE
bool "Use the BACnet basic analog value object"
default false
help
Use the BACnet basic analog value object
config BACNET_BASIC_OBJECT_FILE
bool "Use the BACnet basic file object"
default false
help
Use the BACnet basic file object
config BACNET_BASIC_OBJECT_BINARY_INPUT
bool "Use the BACnet basic binary input object"
default false
help
Use the BACnet basic binary input object
config BACNET_BASIC_OBJECT_BINARY_OUTPUT
bool "Use the BACnet basic binary output object"
default false
help
Use the BACnet basic binary output object
config BACNET_BASIC_OBJECT_BINARY_VALUE
bool "Use the BACnet basic binary value object"
default false
help
Use the BACnet basic binary value object
config BACNET_BASIC_OBJECT_CALENDAR
bool "Use the BACnet basic calendar object"
default false
help
Use the BACnet basic calendar object
config BACNET_BASIC_OBJECT_CHANNEL
bool "Use the BACnet basic channel object"
default false
help
Use the BACnet basic channel object
config BACNET_BASIC_OBJECT_COMMAND
bool "Use the BACnet basic command object"
default false
help
Use the BACnet basic command object
config BACNET_BASIC_OBJECT_COLOR
bool "Use the BACnet basic color object"
default false
help
Use the BACnet basic color object
config BACNET_BASIC_OBJECT_COLOR_TEMPERATURE
bool "Use the BACnet basic color temperature object"
default false
help
Use the BACnet basic color temperature object
config BACNET_BASIC_OBJECT_CHARACTERSTRING_VALUE
bool "Use the BACnet basic character-string value object"
default false
help
Use the BACnet basic character-string value object
config BACNET_BASIC_OBJECT_DEVICE_SERVER
bool "Use the BACnet basic device-server object"
default false
help
Use the BACnet basic device-server object
config BACNET_BASIC_OBJECT_DEVICE_CLIENT
bool "Use the BACnet basic device-client object"
default false
help
Use the BACnet basic device-server object
config BACNET_BASIC_OBJECT_INTEGER_VALUE
bool "Use the BACnet basic integer value object"
default false
help
Use the BACnet basic integer value object
config BACNET_BASIC_OBJECT_LOAD_CONTROL
bool "Use the BACnet basic load control object"
default false
help
Use the BACnet basic load control object
config BACNET_BASIC_OBJECT_LIGHTING_OUTPUT
bool "Use the BACnet basic lighting output object"
default false
help
Use the BACnet basic lighting output object
config BACNET_BASIC_OBJECT_LIFE_SAFETY_POINT
bool "Use the BACnet basic life-safety point object"
default false
help
Use the BACnet basic life-safety point object
config BACNET_BASIC_OBJECT_MULTISTATE_INPUT
bool "Use the BACnet basic multistate input object"
default false
help
Use the BACnet basic multistate input object
config BACNET_BASIC_OBJECT_MULTISTATE_OUTPUT
bool "Use the BACnet basic multistate output object"
default false
help
Use the BACnet basic multistate output object
config BACNET_BASIC_OBJECT_MULTISTATE_VALUE
bool "Use the BACnet basic multistate value object"
default false
help
Use the BACnet basic multistate value object
config BACNET_BASIC_OBJECT_NOTIFICATION_CLASS
bool "Use the BACnet basic notification class object"
default false
help
Use the BACnet basic notification class object
config BACNET_BASIC_OBJECT_NETWORK_PORT
bool "Use the BACnet basic network port object"
default false
help
Use the BACnet basic network port object
config BACNET_BASIC_OBJECT_OCTET_STRING_VALUE
bool "Use the BACnet basic octet-string value object"
default false
help
Use the BACnet basic octet-string value object
config BACNET_BASIC_OBJECT_POSITIVE_INTEGER_VALUE
bool "Use the BACnet basic positive-integer value object"
default false
help
Use the BACnet basic positive-integer value object
config CONFIG_BACNET_BASIC_OBJECT_SCHEDULE
bool "Use the BACnet basic schedule object"
default false
help
Use the BACnet basic schedule object
config CONFIG_BACNET_BASIC_OBJECT_TIME_VALUE
bool "Use the BACnet basic time value object"
default false
help
Use the BACnet basic time value object
config CONFIG_BACNET_BASIC_OBJECT_TRENDLOG
bool "Use the BACnet basic trendlog object"
default false
help
Use the BACnet basic trendlog object
rsource "subsys/Kconfig"
endif # BACNETSTACK