Çàêîí÷èëà ìåõ-ìàò â 1985 ã., ïîñëå àñïèðàíòóðû ñ 1988 ðàáîòàþ íà ìåõ-ìàòå.
Ðàçðàáîòêà ïðîãðàììíîãî îáåñïå÷åíèÿ äëÿ ó÷åáíîãî ïðîöåññà íà ìåõ-ìàòå.
Ëàáîðàòîðèÿ âû÷èñëèòåëüíûõ ìåòîäîâ. Ëþäè ïðèåçæàëè çà ïðîãðàììíûì îáåñïå÷åíèåì (òåêñòîâûé ðåäàêòîð, …).
Àññåìáëåð — îñíîâíîé ÿçûê ïðîãðàììèðîâàíèÿ â ËÂÌ.
Òåêñòîâûé ðåäàêòîð äëÿ ðàáîòû â äèñïëåéíîì êëàññå íà 30 òåðìèíàëîâ. Îáëàñòü êîäà — ðàçäåëÿåìàÿ, îáëàñòü äàííûõ ó êàæäîãî ïîëüçîâàòåëÿ — ñâîÿ.
Ñ ïîÿâëåíèåì ÿçûêà Ñ (1988) ïðîãðàììèðîâàíèå íà ìåõ-ìàòå ñòàëî áîëåå ïðèêëàäíûì.
Ñ 2000-2005 — Resonext (startup). Ðàçðàáîòêà ÷èïà WiFi.  2003 RF Micro Devices – ïðèîáðåëè ñòàðòàï, â 2005 — çàêðûëè áèçíåñ.
 2005 — Cadence Design Systems. Îíè âëàäåëè ïðîãðàììîé nc-sim (Network Card Simulator) è óñòðîéñòâîì FPGA Palladium. Âñå áûâøèå êîëëåãè hardware engineers – î÷åíü îäîáðÿëè. Íî â Ìîñêâå — òîëüêî ïðèêëàäíîå ïðîãðàììèðîâàíèå.
Cadence Design Systems – DFM (Design For Manufacturing) – ïðîãðàììíîå îáåñïå÷åíèå äëÿ ïðîèçâîäñòâà ýëåêòðîííûõ ìèêðîñõåì. Íàïðèìåð, Physical Verification (íàïðèìåð, íàêàïëèâàíèå ñòàòè÷åñêîãî ýëåêòðè÷åñòâà, íåò ëè íåíóæíûõ êîíòàêòîâ). Âû÷èñëèòåëüíàÿ ãåîìåòðèÿ è ïðîãðàììèðîâàíèå.
Ñòàëà ñêó÷àòü ïî ïðîöåññîðó ARM (àðõèòåêòóðà RISC).
2005 — íà÷àëîñü ÷òåíèå ñïåöêóðñà «Ñèñòåìíîå ïðîãðàììèðîâàíèå».
Óñòðîéñòâî Evaluation Board ñ ïðîöåññîðîì ARM. 4 êíîïêè è 4 ëàìïî÷êè (GPIO äåâàéñû).
 óñëîâèÿõ ïàíäåìèè — êàê ðàáîòàòü ñ Evaluation Board? Âîçìîæíî, âèäåîêàìåðà + äîñòóï ê êîìïüþòåðó, ê êîòîðîìó ïîäêëþ÷åíà Evaluation Board.
 2007 ïåðåøëà â Intel (ñèìóëÿòîðû æåëåçà). Hardware simulation (ïîõîæå íà hard work simulation).
 2014 — âîçîáíîâèëñÿ ñïåöêóðñ. Wandboard, Raspberry, Access Points (ðîóòåð).
2017-2021 — ñïåöêóðñ íå ÷èòàëñÿ.
Îïûò ñèñòåìíîãî ïðîãðàììèðîâàíèÿ.
Ñàìàÿ èíòåðåñíàÿ çàäà÷à: ïðîøèâêà ó WiFi êàðòî÷êè, C++ è Àññåìáëåð (îáðàáîò÷èê áûñòðîãî ïðåðûâàíèÿ). (Ïðåðûâàíèÿ — íàïðèìåð, Float point exception, Segmentation fault).
Áûñòðîå
ïðåðûâàíèå (FIQ) â WiFi
– âîçíèêíîâåíèå âûçîâà FIQ
çàïðîãðàììèðîâàíî â ïðîøèâêå, êîãäà ïîëó÷àåì ñåòåâîé ïàêåò,
ïîëó÷åíèå êîòîðîãî íàäî ïîäòâåðäèòü. Îòâåòíûé ïàêåò (ACKnowledge)
íàäî ïîñëàòü ÷åðåç 16 ìèêðîñåêóíä ïîñëå êîíöà ïîëó÷åííîãî
ïàêåòà. Çà ýòî âðåìÿ íàäî:
1. Ðàñøèôðîâàòü
ïàêåò è óçíàòü àäðåñ îòïðàâèòåëÿ è ïîëó÷àòåëÿ, îïðåäåëèâ,
àññîöèèðîâàíû ëè ìû ñ îòïðàâèòåëåì, à òàêæå, ÷òî ïîëó÷àòåëü —
ýòî ìû.
2. Ïîäãîòîâèòü îòâåòíûé ïàêåò ACK ñ àäðåñîì îòïðàâèòåëÿ (íàøèì) è àäðåñîì ïîëó÷àòåëÿ (îò êîãî áûë ïàêåò).
3. Âêëþ÷èòü ïåðåäàò÷èê. Îí ðàçîãðåâàåòñÿ 2 ìèêðîñåêóíäû.
4. ×àñòü âðåìåíè ïîòåðÿëàñü íà ïðèåìíèêå.
Íà ïóíêòû 1 è 2 îñòàâàëîñü 2 ìèêðîñåêóíäû.
Ñêîëüêî èíñòðóêöèé ARM ìîæíî âûïîëíèòü çà ýòî âðåìÿ? ×àñòîòà ìåíüøå 1 GHz (480 MHz).
(ARC – ïðîöåññîð, ïîõîæèé íà ARM, íî äåøåâëå).
Ýôôåêòèâíûé êîä. Ïðîâåðêà òîãî, ÷òî óêëàäûâàåìñÿ â 2 ìèêðîñåêóíäû.
Çàäà÷à áûëà: ðîóòåð ïåðåçàãðóæàëñÿ 2-3 ðàçà â ñóòêè. Ýòî îçíà÷àåò, ÷òî ïðîøèâêà çàâèñàëà.
Çàâèñàíèå ïðèêëàäíîé ïðîãðàììû — ìîæåò ïåðåçàïóñòèòü ïîëüçîâàòåëü.
Çàâèñàíèå ñèñòåìíîé ïðîãðàììû - áîëüøàÿ íåïðèÿòíîñòü. Êàê áîðîòüñÿ? Ñïåöèàëüíûé òàéìåð â æåëåçå, íàçûâàåòñÿ watchdog, åñëè îí ñðàáàòûâàåò — âûçûâàåòñÿ ïðåðûâàíèå, îáðàáîò÷èê êîòîðîãî ïåðåçàãðóæàåò óñòðîéñòâî. Ýòîò òàéìåð ïîñòîÿííî âçâîäèòñÿ (êàê áóäèëüíèê), ÷òîáû îí íå óñïåë äîòèêàòü è ïåðåçàãðóçèòü äåâàéñ. Åñëè ïðîøèâêà çàâèñëà, òî òàéìåð îíà îíà áîëüøå íå âçâîäèò, îí äîòèêèâàåò äî 0 è âûçûâàåò ïåðåçàãðóçêó óñòðîéñòâà.
Âûäåëèëà íåñêîëüêî ñîáûòèé (íå áîëüøå 8 èëè 16), áóôåð èç 8 èëè 16 áàéòîâ, âî âðåìÿ êàæäîãî èç ñîáûòèé çàïèñûâàëà â êîëüöåâóþ î÷åðåäü áóôåðà êîä ýòîãî ñîáûòèÿ. Ïðè ñðàáàòûâàíèè áûñòðîãî ïðåðûâàíèÿ, âûçâàííîãî watchdog’îì, îáðàáîò÷èê ïðåðûâàíèÿ ïåðâûì âûâîäèë ñîäåðæèìîå ýòîãî áóôåðà íàðóæó.
Çàòåì ñîáûòèÿ äåòàëèçèðóþòñÿ. Çà 5 èòåðàöèé îïðåäåëèëîñü, ãäå áûëà îøèáêà.
Äðàéâåðà äëÿ WiFi êàðòî÷êè. Windows – îòëàä÷èê SoftIce. Èíîãäà íåëüçÿ áûëî èñïîëüçîâàòü îòëàä÷èê. Òîãäà èñïîëüçîâàëñÿ âûâîä â ïîðòû ââîäà/âûâîäà (RS-232 – 9 ïèíîâ).
Ïðîáëåìà ñ äðàéâåðîì — âñå âèñíåò. Ïðè ðàáîòå óñòðîéñòâà (äåâàéñà) îíî ìîæåò ãåíåðèðîâàòü ïðåðûâàíèÿ. Ðàçíûõ ïðåðûâàíèé — ìàëî (16 èëè 32), ìåíüøå, ÷åì óñòðîéñòâ. Âûõîä — äåëèòü ïðåðûâàíèÿ ìåæäó íåñêîëüêèìè óñòðîéñòâàìè. ÎÑ ïðè âîçíèêíîâåíèè ïðåðûâàíèÿ ñ îïðåäåëåííûì íîìåðîì îïðåäåëÿåò, êàêèå óñòðîéñòâà ïîäïèñàíû íà ïðåðûâàíèå ñ ýòèì íîìåðîì. Çàòåì ÎÑ â öèêëå âûçûâàåò êàæäûé èç ýòèõ äðàéâåðîâ, ÷òîáû îí ðàçîáðàëñÿ ñ ýòèì ïðåðûâàíèåì. Åñëè äðàéâåð ïîíèìàåò, ÷òî ýòî åãî ïðåðûâàíèå (âûçâàíî åãî äåâàéñîì), òî îí îáðàáàòûâàåò ýòî ïðåðûâàíèå, à çàòåì ñáðàñûâàåò (aknowledge) – äåëàåò åãî íåàêòèâíûì, ÷òî ÎÑ ïåðåñòàëà îïðàøèâàòü äðàéâåðà. Åñëè â äðàéâåðå îøèáêà è îí íå ñáðàñûâàåò ïðåðûâàíèå, òî îíî îñòàåòñÿ àêòèâíûì íàâå÷íî è ÎÑ áåñêîíå÷íî îïðàøèâàåò äðàéâåðà. Çàâèñàíèå!
 Èíòåëå ÿ ñèìóëèðîâàëà æåëåçî.
Çà÷åì ñèìóëèðîâàòü æåëåçî? ×òîáû òåñòèðîâàòü ïðîãðàììíîå îáåñïå÷åíèå, ðàçðàáàòûâàåìîå ïàðàëëåëüíî ñ ðàçðàáîòêîé æåëåçà, êîãäà æåëåçî åùå íå ãîòîâî.
Çà÷åì ðàçðàáàòûâàòü ÏÎ â ïàðàëëåëü? Äëÿ ñîêðàùåíèÿ ñðîêîâ âûõîäà íà ðûíîê.
Èäåàëüíî — êîãäà ðàçðàáîòêà æåëåçà è ÏÎ çàêàí÷èâàåòñÿ îäíîâðåìåííî.
 Èíòåëå — ñèìóëÿòîð SoftSDV, èñïîëüçîâàëñÿ íå òîëüêî äëÿ òåñòèðîâàíèÿ ÁÈÎÑà è äðàéâåðîâ, íî òàêæå — äëÿ òåñòèðîâàíèÿ ïðîãðàìì, âåðèôèöèðóþùèõ æåëåçî.