From 8a67273f9bcb6c340c23484a6532d6ff70ab9b33 Mon Sep 17 00:00:00 2001 From: skarg Date: Tue, 10 Aug 2010 21:12:11 +0000 Subject: [PATCH] Updated BDK port size numbers. --- bacnet-stack/doc/README.faq | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/bacnet-stack/doc/README.faq b/bacnet-stack/doc/README.faq index 37c2c1a5..762728fe 100644 --- a/bacnet-stack/doc/README.faq +++ b/bacnet-stack/doc/README.faq @@ -2,8 +2,9 @@ FAQ - Frequently Asked Questions about the BACnet Stack Q-1: Do you know the typical footprint of the stack (MS/TP use)? -A-1a: It fits on a PIC18F6720 (128K bytes flash 3840 bytes RAM) and there is lots of room for the application. In one device with 8 Binary Value objects, 8 Binary Input objects, 1 Analog Input object, and supporting ReadProperty, WriteProperty, DeviceCommunicationControl, TimeSync, ReinitializeDevice, Who-Is, I-Am services, the BACnet stack used about 32K words of the code space. -A-1b: It fits on a ATmega168 (16K bytes flash, 1024 bytes RAM). The BACnet Capabilities include WhoIs, I-Am, ReadProperty, and WriteProperty support. The BACnet objects include a Device object, 10 Binary Value objects, and 10 Analog Value objects. An LED is controlled by Binary Value object instance 0. All required object properties can be retrieved using ReadProperty. The Present_Value property of the Analog Value and Binary Value objects can be written using WriteProperty. The Object_Identifier, Object_Name, Max_Info_Frames, Max_Master, and baud rate (property 9600) of the Device object can be written using WriteProperty. +A-1a: It fits on a PIC18F6720 (128K bytes flash 3840 bytes RAM) and there is lots of room for the application - see ports/pic18f6720 project. In one device with 8 Binary Value objects, 8 Binary Input objects, 1 Analog Input object, and supporting ReadProperty, WriteProperty, DeviceCommunicationControl, TimeSync, ReinitializeDevice, Who-Is, I-Am services, the BACnet stack used about 32K words of the code space. + +A-1b: It fits on a ATmega168 (16K bytes flash, 1024 bytes RAM) - see ports/atmega168 project. The BACnet Capabilities include WhoIs, I-Am, ReadProperty, and WriteProperty support. The BACnet objects include a Device object, 10 Binary Value objects, and 10 Analog Value objects. An LED is controlled by Binary Value object instance 0. All required object properties can be retrieved using ReadProperty. The Present_Value property of the Analog Value and Binary Value objects can be written using WriteProperty. The Object_Identifier, Object_Name, Max_Info_Frames, Max_Master, and baud rate (property 9600) of the Device object can be written using WriteProperty. With full optimization, the statistics on the demo are: IAR Atmel AVR C/C++ Compiler V5.10A/W32 12 732 bytes of CODE memory (+ 36 range fill ) @@ -13,6 +14,13 @@ avr-gcc (GCC) 4.2.2 (WinAVR 20071221rc1) Program: 15790 bytes (96.4% Full) Data: 414 bytes (40.4% Full) (does not include CStack=0×262) +A-1c: It fits easily on an ATmega644p (64K bytes flash, 4096 bytes RAM) - see ports/bdk-atxx4-mstp/ project. The BACnet Capabilities of an Application Specific Controller include WhoIs, I-Am, WhoHas, I-Have, ReadProperty, ReadPropertyMultiple, WriteProperty, and DeviceCommunicationControl support. The BACnet objects include a Device object, 2 Analog Input objects, 2 Analog Value objects, 5 Binary Input objects, and 2 Binary Output objects. Two LEDs are controlled by Binary Output objects. All required object properties can be retrieved using ReadProperty or ReadPropertyMultiple. Most of the Present_Value properties of the objects can be written. The Object_Identifier, Object_Name, Max_Info_Frames, Max_Master, and baud rate (property 9600) of the Device object can be written using WriteProperty. The APDU size is 256 bytes. + +avr-gcc (GCC) 4.3.4 +Program (.text+.data): 34172 bytes (52.1% Full) +Data (.data+.bss+.noinit): 2501 (61.1% Full) (not including CStack=1594 bytes) +CStack usage (from painting): 772 bytes + Q-2: The homepage used to say that the MS/TP code does not work. Still true? A-2: MS/TP works correctly as of the 0.2.6 release. I spent a several days correcting it while working on the RTOS-32 port, and then a full day fine-tuning it while working on the PIC18F6720 that I used at the 2006 BACnet International Plugfest. I also successfully used MS/TP with the 0.4.0 release at the 2007 BACnet International Plugfest on an Atmel AVR ATmega168.