main_ubi_sdk v 0.1.3
This is UBI4 documentation
Data table

Data table - это табилца данных, содержащая информацию об устройстве. Data-table всегда имеет стандартный набор слотов об устройстве, плате и т.д. Шаблон можно найти в ./examples
Основное преимущество data table в том, что это готовая система хранения данных во флеш, к которым можно получить доступ через UBI без заведения параметра. Data table состоит из массива data_table_slot_struct с информацией о каждом слоте и uint8_t* Info_p_buf с указателями по умолчанию на данные в каждом слоте. Список полей с информацией в data_table_slot_struct:

  • DataCode - код слота
  • DataType - тип данных в слоте
  • StartAddressShift - смещение относительно начала таблицы данных
  • DataTypeVersion - версия типа данных
  • DataTypeSubVersion - подверсия типа данных
  • DataSize - размер данных в слоте
  • crc - контрольная сумма

В массив с указателями передается указатель на данные по умолчанию в каждом слоте.
Для инициализации data_table вызывается функция init_device_info(). Она считывает данные из флеш памяти. В случае, если эти данные считаны с ошибками CRC или их там просто нет, то данные будут взяты из массива данных по умолчанию.
После этого копия данных лежит в RAM памяти указатель на который можно получить через Data_Table_ReadData() по датакоду слота, изменить из и сохранить через DataTable_Save()