Top secrets sources NedoPC ngs

Rev

Blame | Last modification | View Log | Download | RSS feed | ?url?


  Èñïîëüçóåìûå ôëåøêè

 Ïðèìåíÿþòñÿ ôëåøè ñ îáú¸ìîì 512êá è ñòðàíè÷êàìè ïî 64êá (ñòèðàþòñÿ íåçàâèñèìî).
Ïîêà ôëåøåð çàòî÷åí íà îäíó òîëüêî ôëåøêó (m29f040b îò ST microelectronics),
íî ìîæíî äîáàâëÿòü è äðóãèå, ñîîòâåòñòâóþùèå âûøåóêàçàííûì òðåáîâàíèÿì.
Äëÿ m29f040b: manufacturer code = $20, device code = $E2.


  Âåðñèîííîñòü

 Âåðñèÿ ïðåäñòàâëÿåò ñîáîé èäåíòèôèêàòîð ïðîøèâêè FPGA, êîòîðàÿ (âìåñòå ñ çàãðóç÷èêîì
ïðè âêëþ÷åíèè ïèòàíèÿ è íàæàòèè êíîïêè ñáðîñà) ðàñïîëàãàåòñÿ â ïîñëåäíåé ñòðàíè÷êå
flash. Ïðè ýòîì, ïîñêîëüêó ïðîøèâêà çàïàêîâàíà, èñïîëüçóåòñÿ äàëåêî íå âåñü îáú¸ì
ñòðàíè÷êè è â êîíöå èäóò FF'û. Èäåíòèôèêàòîð âåðñèè õðàíèòñÿ â ïîñëåäíèõ âîñüìè áàéòàõ
ñòðàíè÷êè (àäðåñà â ñòðàíè÷êå $FFF8-$FFFF)

Ñîñòàâ èäåíòèôèêàòîðà ñëåäóþùèé:

 +0..+5  - ïðîèçâîëüíàÿ ñèìâîëüíàÿ ñòðîêà, äîáèòàÿ äî äëèíû 6 áàéò ïðîáåëàìè (íóëÿ íà êîíöå íåò!)
 +6..+7  - 16-áèòíàÿ âåëè÷èíà â ôîðìàòå big-endian (ñòàðøèé áàéò ïåðâûé), îáîçíà÷àþùàÿ äàòó
           ðåëèçà äàííîé âåðñèè è êîòîðàÿ è ñëóæèò äëÿ ñðàâíåíèÿ âåðñèé.

Ôîðìàò 16-áèòíîé âåëè÷èíû (áèòû ïðîíóìåðîâàíû íà÷èíàÿ ñ ìëàäøåãî íîìåðîì íîëü)

áèò  15     - áèò "îôèöèàëüíîñòè"
áèòû 14..09 - ãîä äàòû (8...63), 6 áèò
áèòû 08..05 - ìåñÿö äàòû (1..12), 4 áèòà
áèòû 04..00 - äåíü äàòû (1..31), 5 áèò

Âíèìàíèå! Äàííûå â ïîëÿõ õðàíÿòñÿ ÍÅ Â BCD-ôîðìàòå, à â îáû÷íîì äâîè÷íîì ïðåäñòàâëåíèè.


Ìîæíî âûäåëèòü ñëåäóþùèå ñëó÷àè:

1. âñå 8 áàéò ðàâíû $FF - âåðñèÿ â äàííîé ïðîøèâêå íå óêàçàíà
2. ïðèñóòñâóåò ÿâíàÿ íåëåïîñòü (íåïå÷àòíûå ñèìâîëû â ñòðîêå (00, FF) èëè ëåâûé äåíü èëè ìåñÿö, íàïðèìåð íóëåâîé èëè 15, è ò.ä.)
3. âñ¸ â ïîðÿäêå, áèò îôèöèàëüíîñòè = 0
4. âñ¸ â ïîðÿäêå, áèò îôèöèàëüíîñòè = 1

â 1 è 2 ñëó÷àÿõ âåðñèþ óçíàòü íåâîçìîæíî.

â 3 ñëó÷àå îíà íè î ÷¸ì íå ãîâîðèò - ìîæåò ÿâëÿòüñÿ îòäåëüíîé âåòêîé, íå ñâÿçàííîé
ïî ôóíêöèîíàëüíîñòè ñ îôèöèàëüíûìè ðåëèçàìè. Ìåõàíèçì ñðàâíåíèé íå îïðåäåë¸í.

â 4 ñëó÷àå ïðîãðàììà ìîæåò ñðàâíèòü òðåáóåìóþ åé âåðñèþ ñ èìåþùåéñÿ (ïî äàòå), à òàêæå
âûâåñòè íà ïå÷àòü ñòðîêó. Âíèìàíèå!  äàííîì ñëó÷àå ñòðîêà ñëóæèò ëèøü äëÿ ïîêàçà å¸
ïîëüçîâàòåëþ è íèêàê íå äëÿ èäåíòèôèêàöèè âåðñèè.


  Ðåêîìåíäàöèÿ.

 Ïðè óñëîâèè êîððåêòíîñòè äàòû â ôëåøè â âèäå 16-áèòíîé âåëè÷èíû ñðàâíèòü âåðñèè ìîæíî, âû÷òÿ
èç òðåáóåìîé ñ÷èòàííóþ èç ôëåøè 16-áèòíóþ âåëè÷èíó, ïðè÷¸ì îáå âåëè÷èíû ðàññìàòðèâàþòñÿ êàê
áåççíàêîâûå äâîè÷íûå ÷èñëà. Åñëè ÷èñëî, ñîîòâåòñâóþùåå òðåáóåìîé âåðñèè, îêàçàëîñü ìåíüøå èëè ðàâíî
ñ÷èòàííîìó, òî ñ÷èòàåì, ÷òî âåðñèÿ ïîäõîäèò, èíà÷å - íå ïîäõîäèò. Ïðè ýòîì àâòîìàòè÷åñêè ó÷èòûâàåòñÿ
áèò îôèöèàëüíîñòè: åñëè îí ðàâåí 0 â ñ÷èòàííîé âåëè÷èíå, òî ÷èñëî òðåáóåìîé âåðñèè (ñ ýòèì áèòîì = 1)
îêàæåòñÿ âñåãäà áîëüøå.