Table of Content Zone | ||||
---|---|---|---|---|
| ||||
RequirementsThe I/O capability of an RCE system provided by its protocol plugins is made available to application code using abstractions called ports. Some of those ports are predefined, i.e., are set up by the RCE core code before application code is started.
|
...
|
...
Table format in configuration flashThe tables are called Ports, Channels, Channel Classes, Bandwidths, Drivers and Strings. Except for Strings each table is an array of plain-old-data structs with the first field being a key or ID field normally equal to the array index. An ID equal to 0xffffffff signifies the end of the table in which case none of the other fields in the struct have any guaranteed values and should never be read. Thus you'll generate end-of-table sentinels automatically if you erase a flash block before writing tables into it, provided you leave at least one 32-bit word of unsed space at the end of each table. The Strings table is like an ELF string table; NUL-terminated ASCII strings laid end to end. Certain standard strings such as the short-names of channels are at the front of the table with only one instance of each string present. The other tables refer to a string by giving the offset of its first character in the Strings table. General layout of the container contentsThe first words of the container are the offsets in the container to the starts of the tables in the following order:
Each of the offsets should be divisible by four. After that come the tables themselves. No particular order is required, though since all the tables except Strings can be allocated a fixed chunk of flash it's most convenient to have Strings come last. The Ports table
The Channels table
The Channel Classes table
The Drivers table
|