Сергей Борщ 143 13 января, 2009 Опубликовано 13 января, 2009 · Жалоба Заинтересовал вопрос - можно ли между чтением байтов двухбайтного регистра (Sx_RX_RD, например) прочитать другой двухбайтный регистр. Для однопоточной системы это не актуально - в прерываниях читаются только однобайтные регистры статуса. Для многопоточной программы это означает - нужно ли обрамлять критической секцией каждое чтение двухбайтного регистра. В доке этот момент не отражен. Ответ суппорта: Can I, for example, read high byte of S0_RX_RD from one program thread, after that from second thread read high byte of S1_RX_RD, low byte of S1_RX_RD, and finally from first thread read low byte of S0_RX_RD or they have single shadow register for low byte and has to be read in strict sequence?Dear Sir, No, the read operation can't be interleaved. Regards, Так что будьте внимательны: там лежат грабли. Нужна критическая секция. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться