123

Dependencies:   mbed

Fork of LG by igor Apu

develop.txt

Committer:
Diletant
Date:
2016-05-03
Revision:
149:abbf7663d27d
Parent:
80:7eb5dbb80c81
Child:
156:e68ee0bcdcda

File content as of revision 149:abbf7663d27d:

03.05.2016 Dile Tant
Использование портов:
    UART0 - порт обслуживания  / Service port
    UART1 - порт команд/данных / Host port

Идентификация параметров:
    Всем параметрам присваивается хэш/hash. В качестве хэш-функции можно использовать
        hash(name, type) = crc32(name) ^ crc32(type),
    где name - имя переменной в RAM или константы в ROM, type - тип.
    Например: crc32("uint16_t") ^ crc32("device.settings.address") = 0x4d8e4523
    
Хранение констант и переменных в RAM:
    Все параметры хранятся в переменной device.
    При загрузке инициализируется таблица адресов переменных hashParamTable[HASH_PARAM_COUNT] в формате hash32 : address32 : size32,
    где hash32 - хэш параметра, address32 - ссылка на параметр, size32 - размер в байтах.

Доступ к параметрам через Host port
    Формат команды:
        cc address8 code16 hash32 crc32
    code16:
        H_PARAM8_R : чтение 1-байтного параметра
        H_PARAM16_R: чтение 2-байтного параметра
        H_PARAM32_R: чтение 4-байтного параметра
        H_PARAM8_W : запись 1-байтного параметра
        H_PARAM16_W: запись 2-байтного параметра
        H_PARAM32_W: запись 4-байтного параметра

Хранение констант и переменных в ROM:
    Сектор 22 - таблица адресов в формате hash32 : address32
    Сектор 23 - данные по адресам из таблицы адресов
    Чтение из ROM:
        FlashReadAll()
    Запись в ROM:
        FlashWriteAll()