123
Fork of LG by
develop.txt@156:e68ee0bcdcda, 2016-05-09 (annotated)
- Committer:
- Diletant
- Date:
- Mon May 09 20:03:26 2016 +0000
- Revision:
- 156:e68ee0bcdcda
- Parent:
- 149:abbf7663d27d
- Child:
- 161:efd949e8d536
Device & ... update. Not final!!!
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Diletant | 156:e68ee0bcdcda | 1 | 09.05.2016 Dile Tant |
Diletant | 156:e68ee0bcdcda | 2 | Основные циклы: |
Diletant | 156:e68ee0bcdcda | 3 | Измерительный плавающий цикл/Measurment floating cycle |
Diletant | 156:e68ee0bcdcda | 4 | Цикл задается измерительным таймером с переменной частотой следования прерываний - таймер 0 контроллера |
Diletant | 156:e68ee0bcdcda | 5 | Регулярный цикл/Regular cycle |
Diletant | 156:e68ee0bcdcda | 6 | Цикл задается управляющим таймером с постоянной частотой следования прерываний - таймер 1 контроллера |
Diletant | 156:e68ee0bcdcda | 7 | Основной последовательный плавающий цикл/Main sequential floating cycle |
Diletant | 156:e68ee0bcdcda | 8 | Цикл выполняется с переменной частотой, определяемой загрузкой процессора. |
Diletant | 156:e68ee0bcdcda | 9 | |
Diletant | 156:e68ee0bcdcda | 10 | Замечание: |
Diletant | 156:e68ee0bcdcda | 11 | Измерение частоты расщепления производится в плавающем цикле, результат измерения - количество импульсов за период вибропривода, |
Diletant | 156:e68ee0bcdcda | 12 | для получения частоты нужно поделить импульсы на текущий период измерения. |
Diletant | 156:e68ee0bcdcda | 13 | Остальные измеряемые параметры от периода измерений не зависят. |
Diletant | 156:e68ee0bcdcda | 14 | |
Diletant | 149:abbf7663d27d | 15 | Использование портов: |
Diletant | 149:abbf7663d27d | 16 | UART0 - порт обслуживания / Service port |
Diletant | 149:abbf7663d27d | 17 | UART1 - порт команд/данных / Host port |
Diletant | 80:7eb5dbb80c81 | 18 | |
Diletant | 149:abbf7663d27d | 19 | Идентификация параметров: |
Diletant | 149:abbf7663d27d | 20 | Всем параметрам присваивается хэш/hash. В качестве хэш-функции можно использовать |
Diletant | 149:abbf7663d27d | 21 | hash(name, type) = crc32(name) ^ crc32(type), |
Diletant | 149:abbf7663d27d | 22 | где name - имя переменной в RAM или константы в ROM, type - тип. |
Diletant | 149:abbf7663d27d | 23 | Например: crc32("uint16_t") ^ crc32("device.settings.address") = 0x4d8e4523 |
Diletant | 149:abbf7663d27d | 24 | |
Diletant | 149:abbf7663d27d | 25 | Хранение констант и переменных в RAM: |
Diletant | 149:abbf7663d27d | 26 | Все параметры хранятся в переменной device. |
Diletant | 149:abbf7663d27d | 27 | При загрузке инициализируется таблица адресов переменных hashParamTable[HASH_PARAM_COUNT] в формате hash32 : address32 : size32, |
Diletant | 149:abbf7663d27d | 28 | где hash32 - хэш параметра, address32 - ссылка на параметр, size32 - размер в байтах. |
igor_v | 70:9cc252048c59 | 29 | |
Diletant | 149:abbf7663d27d | 30 | Доступ к параметрам через Host port |
Diletant | 149:abbf7663d27d | 31 | Формат команды: |
Diletant | 156:e68ee0bcdcda | 32 | cc address8 code16 hash32 crc16 |
Diletant | 149:abbf7663d27d | 33 | code16: |
Diletant | 149:abbf7663d27d | 34 | H_PARAM8_R : чтение 1-байтного параметра |
Diletant | 149:abbf7663d27d | 35 | H_PARAM16_R: чтение 2-байтного параметра |
Diletant | 149:abbf7663d27d | 36 | H_PARAM32_R: чтение 4-байтного параметра |
Diletant | 149:abbf7663d27d | 37 | H_PARAM8_W : запись 1-байтного параметра |
Diletant | 149:abbf7663d27d | 38 | H_PARAM16_W: запись 2-байтного параметра |
Diletant | 149:abbf7663d27d | 39 | H_PARAM32_W: запись 4-байтного параметра |
igor_v | 70:9cc252048c59 | 40 | |
Diletant | 149:abbf7663d27d | 41 | Хранение констант и переменных в ROM: |
Diletant | 149:abbf7663d27d | 42 | Сектор 22 - таблица адресов в формате hash32 : address32 |
Diletant | 149:abbf7663d27d | 43 | Сектор 23 - данные по адресам из таблицы адресов |
Diletant | 149:abbf7663d27d | 44 | Чтение из ROM: |
Diletant | 149:abbf7663d27d | 45 | FlashReadAll() |
Diletant | 149:abbf7663d27d | 46 | Запись в ROM: |
Diletant | 149:abbf7663d27d | 47 | FlashWriteAll() |