Input-output buffer names in makefile may be different or may match.
In the event when they match, one buffer working as input and output buffer at the same time is allocated. In C-code the input-output buffer may be declared as:
extern BYTE iodata[];
Whereas CFG_INPUT_BUFFER_NAME and CFG_OUTPUT_BUFFER_ NAME parameters feature the iodata value.
If you use separate buffers, each of them will be declared in Ccode separately having its own name and size.
The use of data of any type is acceptable while announcing the buffers, however it is recommended to add macro ALIGNED into the definition in case of structures, for instance:
extern struct { double x; ... } iodata ALIGNED;
This shows the compiler that the structure is aligned in the memory and allows generating more effective code for accessing the structure fields.
The input-output buffer size is set to 1024 bytes by default. A unified buffer is used in the input-output examples. A unified buffer is used in the examples for input and output. The data is placed to the buffer prior to launching the loadable application, and is returned back to PC upon ending the work session.
The maximum overall inputoutput buffer size equals to 0x3F00 bytes (16128 bytes). It is also recommended to indicate ALIGNED macros in the variable declaration, which tells the compiler that the buffer is aligned in the memory, and in some cases optimize the access to this variable.