Jump to content

Sign in to follow this  
Сергей Борщ

W3150, W5100 и многопоточная программа

Recommended Posts

Заинтересовал вопрос - можно ли между чтением байтов двухбайтного регистра (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.


Так что будьте внимательны: там лежат грабли. Нужна критическая секция.

Share this post

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this