Обновить логгер УМП и исправить запуск UART и EEPROM
Перейти на компактные 12-словные записи v4 и сохранять 10 процентов банка после отключения. Добавить трёхсекундное ожидание роста ЗПТ и настраиваемый лимит пусков. Явно инициализировать состояние UART и гарантировать публикацию параметров EEPROM перед запуском Timer2. Сохранить воспроизводимые сборки, регрессионные проверки, документацию и обновлённые результаты сборки; исключить временные артефакты.
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
static char size_cmd15; /* Моделирует локальную настройку длины команды, которую заполняет create_uart_vars. */
|
||||
/* Проверка rs232_fifo на модели ПК. Русские пояснения сохранены в UTF-8. */
|
||||
|
||||
/* Продолжает список аргументов, полей или выражение volatile struct SCI_REGS SciaRegs,ScibRegs;; порядок элементов сохраняется. */
|
||||
@@ -142,6 +143,15 @@ int main(void)
|
||||
unsigned data[4200],sizes[]={0,1,2,7,8,15,16,17,31,120,253,400,8194};
|
||||
/* Продолжает список аргументов, полей или выражение unsigned a,n,i,mode;unsigned request[]={16,3,0x10,0,0,16,0,0};; порядок элементов сохраняется. */
|
||||
unsigned a,n,i,mode;unsigned request[]={16,3,0x10,0,0,16,0,0};
|
||||
RS_DATA expected = {0}; /* Задаёт чистое состояние порта независимо от содержимого моделируемой RAM. */
|
||||
memset(&rs_a, 0xA5, sizeof(rs_a)); /* Воспроизводит ненулевые длины, указатели и флаги SCI-A после загрузки COFF. */
|
||||
memset(&rs_b, 0x5A, sizeof(rs_b)); /* Проверяет независимый сброс второго порта с другим рисунком мусора. */
|
||||
create_uart_vars(17); /* Вызывает настоящую загрузочную инициализацию до разрешения IRQ. */
|
||||
expected.commnumber = COM_1; /* Единственным ненулевым полем после общего сброса должен быть номер первого порта. */
|
||||
assert(memcmp(&rs_a, &expected, sizeof(rs_a)) == 0); /* Проверяет все поля и оба буфера первого порта, включая флаги готовности. */
|
||||
expected.commnumber = COM_2; /* Подготавливает ожидаемое состояние второго порта. */
|
||||
assert(memcmp(&rs_b, &expected, sizeof(rs_b)) == 0 && size_cmd15 == 17); /* Проверяет второй порт и сохранение настройки длины команды. */
|
||||
|
||||
/* Цикл for(mode=0;mode<2;mode++)for(a=0;a<sizeof(sizes)/sizeof(sizes[0]);a++) ; задаёт начальное значение, условие продолжения и шаг перебора. */
|
||||
for(mode=0;mode<2;mode++)for(a=0;a<sizeof(sizes)/sizeof(sizes[0]);a++) {
|
||||
/* Записывает n значением sizes[a];for(i=0;i<4200;i++)data[i]=(i*131U+17U)&65535; данные n. */
|
||||
|
||||
@@ -22,8 +22,8 @@ def read(path):
|
||||
return re.sub(r'/\*.*?\*/|//[^\n]*','',path.read_bytes().decode('utf-8').replace('\r\n','\n'),flags=re.S)
|
||||
# Задаёт source по выражению справа; значение используется последующими операциями.
|
||||
source=read(root/'Source/Internal/RS485.c')
|
||||
# Задаёт names по выражению справа; значение используется последующими операциями.
|
||||
names=['RS_RX_Handler','RS_TX_Handler','RS_Send','RS_BSend','RS_SetBitMode',
|
||||
# Извлекает инициализацию и обработчики UART, чтобы проверить старт на неочищенной RAM вместе с обменом.
|
||||
names=['create_uart_vars','RS_RX_Handler','RS_TX_Handler','RS_Send','RS_BSend','RS_SetBitMode',
|
||||
# Продолжает текущий вызов, список или выражение: 'RS_FifoWait','RS_FifoTx','RS_FifoStart','RS_FifoAbort','RS_FifoTick1ms']; порядок аргументов сохраняется.
|
||||
'RS_FifoWait','RS_FifoTx','RS_FifoStart','RS_FifoAbort','RS_FifoTick1ms']
|
||||
# Задаёт prototypes по выражению справа; значение используется последующими операциями.
|
||||
|
||||
Reference in New Issue
Block a user