ÑòâîðåГГГї ïî÷à òêîâîãî Г§Г ГўГ Гòà æóâà ÷à îïåðà ö³éГî¿ ñèñòåìè òà ïîòðóâà ГГГї Linux äëÿ GPS/WiFi òåñòåðà êîìïà ГВіВї Tescom
Çâ³ò Çà ïîðîæåöà Òà ðà ñà ³êòîðîâè÷à ïðî ïðîõîäæåГГГї ñòà æóâà ГГГї Гі Êîðå¿
Òåìà : «Îïåðà öèîГГГ Гї ñèñòåìà Linux äëÿ âñòðà èâà åìûõ ñèñòåì»

ÂÂÅÄÅÍÈÅ
Íåîáõîäèìîñòü óñêîðåГГЁГї âûïóñêà Гîâîé ïðîäóêöèè Гà ðûГîê ГЁ Г±ГèæåГГЁГї îáùåé ñòîèìîñòè Г±ГЁГ±ГІГҐГ¬ ГўГ»Гóæäà åò Г¬Гîãèõ ðà çðà áîò÷èêîâ ïðîãðà ììГГ®-à ïïà ðà òГûõ ïðîäóêòîâ ïðèìåГГїГІГј ГЋГ‘ Linux ГЁ äðóãèå ïðîãðà ììГûå ñðåäñòâà ñ îòêðûòûìè èñõîäГûìè êîäà ìè. ÏîäîáГîå ðåøåГГЁГҐ îáóñëîâëåГГ® ГІГҐГ¬, Г·ГІГ®, èñïîëüçóÿ îòêðûòîå ïðîãðà ììГîå îáåñïå÷åГГЁГҐ, ðà çðà áîò÷èêè ïîëó÷à þò âîçìîæГîñòü Г±ГЄГ®ГГ¶ГҐГòðèðîâà òü óñèëèÿ Гà ñîâåðøåГñòâîâà ГГЁГЁ ñâîåé ïðîäóêöèè. Òà êæå ðåøà þùèì ôà êòîðîì ÿâëÿåòñÿ òîò ГґГ ГЄГІ, Г·ГІГ® Linux ïîääåðæèâà åò áîëüøîå êîëè÷åñòâî ïðîöåññîðГûõ à ðõèòåêòóð. Г‚ óñëîâèÿõ ìîùГîãî äà âëåГГЁГї ñðîêîâ âûõîäà Гà ðûГîê, ìîäèôèêà öèÿ ГЋГ‘ äëÿ Гîâîãî ïðîöåññîðà èëè ïðîöåññîðГîãî ìîäóëÿ ìîæåò îêà çà òüñÿ ñëèøêîì äëèòåëüГûì ïðîöåññîì, Гà ëè÷èå æå ãîòîâîé îïåðà öèîГГîé ñèñòåìû âåäåò ГЄ Г±ГіГ№ГҐГ±ГІГўГҐГГîé ГЅГЄГ®Гîìèè âðåìåГГЁ ГЁ ñðåäñòâ.
Ñà ìà ÿ ðà ñïðîñòðà ГГҐГГГ Гї Гà ñåãîäГГї âåðñèÿ Linux ГЅГІГ®, áåçóñëîâГГ®, âåðñèÿ äëÿ ïåðñîГà ëüГûõ êîìïüþòåðîâ ñîçäà ГГûõ ГГ ГЎГ Г§ГҐ ïðîöåññîðîâ Г± à ðõèòåêòóðîé Гµ86. ÑîâðåìåГГûå ïåðñîГà ëüГûå êîìïüþòåðû ГЅГІГ® Гåäîðîãèå ñèñòåìû, ñïîñîáГûå âûñòóïà òü ГЄГ ГЄ Гў ðîëè ГЁГñòðóìåГòà ëüГûõ, ГІГ ГЄ ГЁ öåëåâûõ ïëà òôîðì. Г‚ ìèðå ГІГ ГЄГЁГҐ ìà øèГГ» èñïîëüçóåò áîëüøà ÿ Г·Г Г±ГІГј Linux-ðà çðà áîò÷èêîâ, ГЁ èìåГГГ® äëÿ ГЅГІГЁГµ êîìïüþòåðîâ ïðåæäå ГўГ±ГҐГЈГ® ГЁ ГЇГЁГёГіГІГ±Гї ðà çëè÷Гûå ïðîãðà ììû. Ïðîöåññîðû ñåìåéñòâà õ86 ïðèìåГГїГѕГІГ±Гї ГГҐ òîëüêî Гў ïåðñîГà ëüГûõ, ГГ® ГЁ ГўГ® Г¬Гîãèõ âñòðà èâà åìûõ ñèñòåìà õ. Г‚ Гà ñòîÿùåå âðåìÿ Г±ГіГ№ГҐГ±ГІГўГіГҐГІ Г¬Гîæåñòâî ìîäåëåé Гµ86-ïðîöåññîðîâ - îò ÷ðåçâû÷à éГГ® áûñòðîäåéñòâóþùèõ äî ñà ìûõ ГЅГЄГ®Гîìè÷Гûõ. ГЋГ¤ГГ ГЄГ® Гў îïðåäåëåГГûõ ñëó÷à ÿõ ïðîöåññîðû Гµ86 ìîãóò áûòü ГГҐ ñà ìûì ëó÷øèì âûáîðîì. Г‚ ГІГҐГµ ïðèëîæåГГЁГїГµ, ãäå òðåáóåòñÿ î÷åГГј ГГЁГ§ГЄГЁГ© óðîâåГГј ГЅГåðãîïîòðåáëåГГЁГї, áîëåå óìåñòГûìè ìîãóò îêà çà òüñÿ ïðîöåññîðû ГІГЁГЇГ ARM èëè Hitachi SH, èìåþùèå ïðè Г±ГіГ№ГҐГ±ГІГўГҐГГГ® ìåГГјГёГҐГ© ðà ññåèâà åìîé ìîùГîñòè ГІГі æå ïðîèçâîäèòåëüГîñòü. Г‚ äðóãèõ Г±ГЁГІГіГ Г¶ГЁГїГµ ïðåäïî÷òåГГЁГҐ ñëåäóåò îòäà òü äåøåâûì ìèêðîïðîöåññîðà ì, èìåþùèì ÿäðî PowerPC, ñîïðîöåññîð ГЁ Гåîáõîäèìûé Гà áîð ГґГіГГЄГ¶ГЁГ© ââîäà /âûâîäà . Г‚ ïðåäïîëà ãà þùèõ ГЁГГІГҐГГ±ГЁГўГГіГѕ îáðà áîòêó äà ГГûõ ñèñòåìà õ îïðà âäà ГГûì ìîæåò áûòü ïðèìåГГҐГГЁГҐ ïðîöåññîðîâ ГІГЁГЇГ MIPS, õà ðà êòåðèçóþùèõñÿ ëó÷øèì, Г·ГҐГ¬ Гі Гµ86, ñîîòГîøåГГЁГҐГ¬ Г¶ГҐГГ» ГЁ ïðîèçâîäèòåëüГîñòè. Õîðîøà ÿ Гîâîñòü ñîñòîèò Гў òîì, Г·ГІГ® ÿäðî ГЋГ‘ Linux ïîääåðæèâà åò ГўГ±ГҐ ГЅГІГЁ ГІГЁГЇГ» à ðõèòåêòóð.

1.  ÏÎÑÒÐÎÅÍÈÅ ÑÈÑÒÅÌÛ ÍÀ ÁÀÇÅ ÏÐÎÖÅÑÑÎÐÀ ARM AT91SAM9G45
1.1.В ГЋГЎГ№ГЁГҐ ñâåäåГГЁГї Г® ïðîöåññîðå
ÌèêðîêîГòðîëëåð AT91SAM9G45 âûïîëГГҐГ Гà îñГîâå ÿäðà ARM926EJ-S ГЁ ГЁГòåãðèðóåò Гà èáîëåå âîñòðåáîâà ГГûé Гà áîð ìîäóëåé äëÿ îðãà ГГЁГ§Г Г¶ГЁГЁ ïîëüçîâà òåëüñêîãî ГЁГòåðôåéñà è âûñîêîñêîðîñòГîé ïåðåäà ÷è äà ГГûõ, Гў ГІ.Г·. ГЄГ®Гòðîëëåð ÆÊ-äèñïëåÿ, ГЄГ®Гòðîëëåð ðåçèñòèâГîãî Г±ГҐГñîðГîãî ýêðà ГГ , ГЁГòåðôåéñ êà ìåðû, à óäèî ГЁГòåðôåéñ, ГЄГ®Гòðîëëåð Ethernet 10/100 ГЁ âûñîêîñêîðîñòГûå ГЁГòåðôåéñû USB ГЁ SDIO. Èìåÿ Гў ñâîåì à ðñåГà ëå ïðîöåññîð, ðà áîòà þùèé Гà ÷à ñòîòå 400 ГЊГѓГ¶, ГЁ Гåñêîëüêî êîììóГГЁГЄГ Г¶ГЁГ®ГГûõ ГЁГòåðôåéñîâ Г± áûñòðîäåéñòâèåì ñâûøå 100 ГЊГЎГЁГІ/Г±ГҐГЄ, AT91SAM9G45 îáëà äà åò âñåìè âîçìîæГîñòÿìè, êîòîðûå Гåîáõîäèìû äëÿ ðåà ëèçà öèè ñåòåâûõ ГґГіГГЄГ¶ГЁГ© ГЁ ГґГіГГЄГ¶ГЁГ© ëîêà ëüГîãî õðà ГГҐГГЁГї äà ГГûõ.
AT91SAM9G45 ïîääåðæèâà åò ГЁГòåðôåéñû ïîñëåäГГҐГЈГ® ïîêîëåГГЁГї ÈÑ çà ïîìèГГ ГѕГ№ГЁГµ óñòðîéñòâ DDR2 ГЁ NAND Flash ГЁ ìîæåò èñïîëüçîâà òü ГЁГµ ГЄГ ГЄ äëÿ õðà ГГҐГГЁГї êîäà ïðîãðà ììû, ГІГ ГЄ ГЁ äëÿ õðà ГГҐГГЁГї äà ГГûõ. Г‚ГóòðåГГГїГї 133-ìåãà ãåðöîâà ÿ Г¬ГîãîñëîéГГ Гї ГёГЁГГГ Гї à ðõèòåêòóðà â Г±ГўГїГ§ГЄГҐ Г± 37 ГЄГ Гà ëà ìè DMA, äâóìÿ ГўГГҐГёГèìè ГёГЁГГûìè ГЁГòåðôåéñà ìè ГЁ ðà ñïðåäåëåГГîé ïà ìÿòüþ, Гў ГІ.Г·. 64В - êáà éò SRAM, êîòîðûå ìîæГГ® Гà ñòðîèòü ГЄГ ГЄ TCM-ïà ìÿòü, îáåñïå÷èâà åò ГўГ±Гѕ Гåîáõîäèìóþ äëÿ ïðîöåññîðà è âûñîêîñêîðîñòГûõ óñòðîéñòâ ââîäà -âûâîäà ïðîïóñêГГіГѕ ñïîñîáГîñòü.
Г€Гòåðôåéñû ââîäà -âûâîäà ìîãóò ðà áîòà òü ïðè Гà ïðÿæåГГЁГЁ 1.8В Г‚ èëè 3.3В Г‚. ÏðåäóñìîòðåГà îòäåëüГГ Гї ïîäà ÷à Гà ïðÿæåГГЁГї ГЇГЁГІГ ГГЁГї äëÿ ГЁГòåðôåéñîâ çà ïîìèГГ ГѕГ№ГЁГµ óñòðîéñòâ ГЁ óñòðîéñòâ ââîäà -âûâîäà . Äà ГГГ Гї âîçìîæГîñòü ïîëГîñòüþ èñêëþ÷à åò ïîòðåáГîñòü Гў ГіГ±ГІГ Гîâêå ГўГГҐГёГГЁГµ ÈÑ äëÿ ïðåîáðà çîâà ГГЁГї óðîâГГҐГ©. Г“ ìèêðîêîГòðîëëåðà èñïîëüçóåòñÿ ГёГ ГЈ âûâîäîâ 0.8 ìì, Г·ГІГ® óäåøåâëÿåò ïðîèçâîäñòâî ГЇГҐГ·Г ГІГîé ïëà òû.
ГЉГ®Гòðîëëåð óïðà âëåГГЁГї ýëåêòðîïîòðåáëåГГЁГҐГ¬ AT91SAM9G45 ïîçâîëÿåò ГЅГґГґГҐГЄГІГЁГўГГ® óïðà âëÿòü Г±ГЁГЈГà ëà ìè Г±ГЁГõðîГГЁГ§Г Г¶ГЁГЁ ГЁ ñîäåðæèò äîìåà ñ áà òà ðåéГûì ðåçåðâèðîâà ГГЁГҐГ¬ ГЇГЁГІГ ГГЁГї.

1.2. Çà ãðóç÷èê ïåðâîãî óðîâГГї AT91Bootstrap
1.2.1.В ГЋГЎГ№ГЁГҐ ñâåäåГГЁГї Г® çà ãðóç÷èêå
Г‚ ìèêðîêîГòðîëëåðà õ ARM9 êîìïà ГГЁГЁ Atmel äëÿ çà ãðóçêè ïðèëîæåГГЁГ© ïîëüçîâà òåëÿ èñïîëüçóåòñÿ ñïåöèà ëèçèðîâà ГГûé çà ãðóç÷èê ïîä ГГ Г§ГўГ ГГЁГҐГ¬ AT91Bootstrap. Öåëüþ ýòîãî çà ãðóç÷èêà ÿâëÿåòñÿ ГЁГèöèà ëèçà öèÿ áà çîâîé ïåðèôåðèè(GPIO, SDRAM, IRQ ГЁ ГІ.Г¤), çà ãðóçêà ïðèëîæåГГЁГї ïîëüçîâà òåëÿ ГЁГ§ ГўГГҐГёГГҐГЈГ® Flash Гà êîïèòåëÿ ГЁ ïåðåäà ÷à óïðà âëåГГЁГї çà ãðóæåГГîìó ïðèëîæåГГЁГѕ.Ñà ì AT91Bootstrap õðà ГГЁГІГ±Гї Гў ГЅГåðãîГåçà âèñèìîéïà ìÿòè, ýòîé ïà ìÿòüþ ìîæåò áûòü: ГўГóòðåГГГїГї Flash ïà ìÿòü ìèêðîïðîöåññîðà , ïîñëåäîâà òåëüГГ Гї Dataflash-ïà ìÿòü, ïà ðà ëëåëüГГ Гї NAND-ïà ìÿòü èëè SD/MMC-êà ðòà ïà ìÿòè.
Ìîæåò âîçГГЁГЄГГіГІГј âîïðîñ "êóðèöû ГЁ ÿéöà ": «Êòî çà ãðóæà åò çà ãðóç÷èê AT91Bootstrap?В». Äåëî Гў òîì, Г·ГІГ® ГўГ±ГҐ ìèêðîïðîöåññîðû ARM9 êîìïà ГГЁГЁ Atmel èìåþò âñòðîåГГûé çà ãðóç÷èê Гóëåâîãî óðîâГГї RomBoot. Íà õîäèòñÿ çà ãðóç÷èê ГўГ® ГўГóòðåГГГҐГ© ROM-ïà ìÿòè ìèêðîïðîöåññîðà . Çà äà ÷à RomBoot ñîñòîèò Гў ГЁГèöèà ëèçà öèè ГўГГҐГёГГЁГµ Гîñèòåëåé ГЁГôîðìà öèè ГЁ ïîèñêà AT91Bootstrap-Г . Íèæå, Гà ðèñ. 1.1. ïðèâåäåГà ïîñëåäîâà òåëüГîñòü ïîèñêà AT91Bootstrap-Г .

ГђГЁГ±.1.1. Ïîñëåäîâà òåëüГîñòü ïîèñêà AT91Bootstrap-Г
Г‚ òîì ñëó÷à å, åñëè çà ãðóç÷èêó RomBoot ГГҐ óäà ëîñü Гà éòè AT91Bootstrap, ïåðâûé ïåðåõîäèò Гў ðåæèì âîññòà ГîâëåГГЁГї SAM-BA Boot. Г‚ ýòîì ðåæèìå ГЁГèöèà ëèçèðóþòñÿ ГЁГòåðôåéñûUSB ГЁ UART äëÿ ïðèåìà êîìà ГГ¤. Г‘ ïîìîùüþ Г±ГЇГҐГ¶ГЁГґГЁГ·ГҐГ±ГЄГЁГµ êîìà ГГ¤ ìîæåò ïðîèçâîäèòüñÿ Г§Г ГЇГЁГ±Гј çà ãðóç÷èêà AT91Bootstrap ГЁ äðóãèõ äà ГГûõ ïîëüçîâà òåëÿ ГўГ® ГўГГҐГёГГѕГѕ Flash-ïà ìÿòü. Г’Г ГЄГЁГ¬ îáðà çîì, ГўГ® ГўГ±ГҐГµ ìèêðîêîГòðîëëåðà õ ARM9 êîìïà ГГЁГЁ Atmel ïðåäóñìîòðåà ðåæèì âîññòà ГîâëåГГЁГї.
1.2.2. Ïîäãîòîâêà ê êîìïèëÿöèè çà ãðóç÷èêГ
Ïåðåä ГІГҐГ¬ ГЄГ ГЄ ïðèñòóïèòü ГЄ ðà áîòå Г± çà ãðóç÷èêà AT91Bootstrap, Гåîáõîäèìî ГіГ±ГІГ Гîâèòü ìèГèìà ëüГûé Гà áîð óòèëèò, êîìïèëÿòîð ГЁ Гà ñòðîèòü ïåðåìåГГûå îêðóæåГГЁГї. Èç äîïîëГèòåëüГûõ óòèëèò Гåîáõîäèìî ГіГ±ГІГ Гîâèòü make. Äëÿ êîìïèëèðîâà ГГЁГї èñïîëüçóåòñÿ êîìïèëÿòîð Sourcery G++ Lite2011.03-42 for ARM EABI. Âñå ðà áîòû ïðîâîäèëèñü Гà äèñòðèáóòèâå Ubuntu 10.04.3 Г± îáГîâëåГГûì ÿäðîì äî âåðñèè 2.6.38-10.
Äëÿ Гà ÷à ëà ГГіГ¦ГГ® ñîçäà òü äèðåêòîðèþ, Гў êîòîðîé áóäóò ïðîâîäèòüñÿ ГўГ±ГҐ ðà áîòû:
- taras@taras-desktop:~/tescom$ mkdir example
- taras@taras-desktop:~/tescom$ cd example/
- Ïîñëå ýòîãî Гåîáõîäèìî Г±ГЄГ Г·Г ГІГј AT91Bootstrap, ГіГ±ГІГ Гîâèòü êîìïèëÿòîð ГЁ make:
- taras@taras-desktop:~/tescom/example$ wget http://www.atmel.com/dyn/resources/prod_documents/AT91Bootstrap1.16.zip
- taras@taras-desktop:~/tescom/example$ unzip AT91Bootstrap1.16.zip
- taras@taras-desktop:~/tescom/example$ wget http://www.codesourcery.com/sgpp/lite/arm/portal/package8736/public/arm-none-eabi/arm-2011.03-42-arm-none-eabi.bin
- taras@taras-desktop:~/tescom/example$ chmod 777 arm-2011.03-42-arm-none-eabi.bin
- taras@taras-desktop:~/tescom/example$ ./arm-2011.03-42-arm-none-eabi.bin
- taras@taras-desktop:~/tescom/example$ sudo apt-get install make
1.2.3. Ïîäãîòîâêà ê êîìïèëÿöèè çà ãðóç÷èêГ
Çà ãðóç÷èê ïåðâîãî óðîâГГї AT91Bootstrap ГГҐ ïðåäГГ Г§Гà ÷åà äëÿ çà ãðóçêè îáðà çà ÿäðà Linux. Ïðåäïîëà ãà åòñÿ, Г·ГІГ® AT91Bootstrap Г±ГЄГ®Гôèãóðèðóåò ГўГГҐГёГГѕГѕ äèГà ìè÷åñêóþ ïà ìÿòü, ñêîïèðóåò òóäà çà ãðóç÷èê âòîðîãî óðîâГГї ГЁ ïåðåäà ñò åìó óïðà âëåГГЁГҐ. Çà ãðóç÷èêîì âòîðîãî óðîâГГї ìîæåò âûñòóïà òü U-boot äëÿ çà ãðóçêè Linux, èëè EBOOT –äëÿ Windows CE. ГЌГ® èñïîëüçîâà ГГЁГҐ çà ãðóç÷èêà âòîðîãî óðîâГГї óâåëè÷èâà åò ðà çìåð ñèñòåìû ГЁ âðåìÿ çà ãðóçêè, à òà êæå ГГҐГ±ГҐГІ äîïîëГèòåëüГГіГѕ Гà ãðóçêó Гà ðà çðà áîò÷èêà ïðîãðà ììГîãî îáåñïå÷åГГЁГї. Íèæå áóäåò îïèñà à ïðîöåññ ìîäèôèöèðîâà ГГЁГї AT91Bootstrap äëÿ çà ãðóçêè zImage îáðà çà ÿäðà .
Äëÿ çà ïóñêà ÿäðà Linux Гåîáõîäèìî ñêîïèðîâà òü ГҐГЈГ® îáðà ç ГЁГ§ ГўГГҐГёГГҐГ© Flash ïà ìÿòè Гў ÎÇÓ, çà ïðåòèòü ïðåðûâà ГГЁГї Гў çà ãðóç÷èêå, îòêëþ÷èòü ГЄГЅГё, çà ãðóçèòü Гў ðåãèñòð R0 Гîëü,R1 –èäåГòèôèêà òîð ïëà òôîðìû, R2 – à äðåñ Гà ÷à ëà à ðãóìåГòîâ çà ãðóçêè ÿäðà . Г‚ ñîîòâåòñòâèè Г±Г® Г±ГЇГҐГ¶ГЁГґГЁГЄГ Г¶ГЁГҐГ© EABI ГЅГІГЁ ðåãèñòðû èñïîëüçóþòñÿ äëÿ ïåðåäà ÷è ïà ðà ìåòðîâ Гў ГґГіГГЄГ¶ГЁГѕ. ÑîîòâåòñòâåГГГ®, ñîçäà â óêà çà òåëü ГГ ГґГіГГЄГ¶ГЁГѕ, êîòîðà ÿ ïðèГèìà åò òðè ïà ðà ìåòðà , ïðèñâîèâ ýòîìó óêà çà òåëþ à äðåñ ÿäðà â ÎÇÓ ìîæГГ® ïåðåäà òü óïðà âëåГГЁГҐ ÿäðó Г± çà äà ГГûìè ïà ðà ìåòðà ìè. Òà êæå Гў çà ãðóç÷èêå ГГіГ¦ГГ® èçìåГГЁГІГј ïà ðà ìåòðû îáðà çà ÿäðà .
Äëÿ ГўГГҐГ±ГҐГГЁГ© èçìåГГҐГГЁГ© ГГіГ¦ГГ® ñäåëà òü ñëåäóþùåå:
• Ïåðåéòè â äèðåêòîðèþ ñ AT91Bootstrap è äîáà âèòü â main.c ïåðåä îïåðà òîðîì return ñëåäóþùåå:
- {
- void (*theKernel)(int zero, int arch, unsigned intparams);
- dbg_print("Run Linux...n");
- theKernel = (void (*)(int, int, unsigned int))JUMP_ADDR;
- theKernel(0, MACH_TYPE, 0);
- }
- taras@taras-desktop:~/tescom/example$ cd Bootstrap-v1.16/
- taras@taras-desktop:~/tescom/example/Bootstrap-v1.16$ nanomain.c
• ÂГГҐГ±ГІГЁ èçìåГГҐГГЁГї Гў ГЄГ®Гôèãóðà öèîГГûé ôà éë at91sam9m10g45ek.h, äëÿ ïëà òôîðìû èçìåГГЁГў ñëåäóþùèå îïðåäåëåГГЁГї:
- #define IMG_SIZE 0x300000 /* Image Size in DataFlash */
- #define JUMP_ADDR 0x70008000 /* Final Jump Address */
- #define CFG_DEBUG
- #define DEBUG
- taras@taras-desktop:~/tescom/example/Bootstrap-v1.16$ cd board/at91sam9m10g45ek/dataflash/
- taras@taras-desktop:~/tescom/example/Bootstrap-v1.16/board/at91sam9m10g45ek/dataflash$ nano at91sam9m10g45ek.h
• Ïîñëå ГЅГІГЁГµ èçìåГГҐГГЁГ© ìîæГГ® ïðèñòóïèòü ГЄ êîìïèëÿöèè, ðåçóëüòà òîì âûïîëГГҐГГЁГї áóäåò dataflash_at91sam9m10g45ek.bin Гў ГЇГ ГЇГЄГҐ Г± Makefile
- taras@taras-desktop:~/tescom/example/Bootstrap-v1.16/board/at91sam9m10g45ek/dataflash$ make clean
- taras@taras-desktop:~/tescom/example/Bootstrap-v1.16/board/at91sam9m10g45ek/dataflash$ make CROSS_COMPILE=arm-none-eabi-
1.3. ßäðî Linux
1.3.1.В ГЋГЎГ№ГЁГҐ ñâåäåГГЁГї
Ïðîöåññ çà ãðóçêè Гў ñèñòåìå Linux âêëþ÷à åò Гў Г±ГҐГЎГї Гåñêîëüêî ñòà äèé. ГЋГ¤ГГ ГЄГ® ГўГГҐ çà âèñèìîñòè îò òîãî, âûïîëГГїГҐГІГ±Гї ëè çà ãðóçêà ГГ Г±ГІГ Гäà ðòГîì ïåðñîГà ëüГîì êîìïüþòåðå Г± à ðõèòåêòóðîé x86 èëè æå ГўГ® âñòðà èâà åìîé ñèñòåìå, ïðîöåññ çà ãðóçêè îêà çûâà åòñÿ Гў Г§Гà ÷èòåëüГîé Г±ГІГҐГЇГҐГГЁ îäèГà êîâûì.
Ïîñëå òîãî ГЄГ ГЄ îáðà ç ÿäðà îêà çûâà åòñÿ Гў ïà ìÿòè ГЁ åìó ïåðåäà åòñÿ óïðà âëåГГЁГҐ îò çà ãðóç÷èêà 2-Г© Г±ГІГіГЇГҐГГЁ, ГГ Г±ГІГіГЇГ ГҐГІ ñòà äèÿ ÿäðà . ГЋГ¤ГГ ГЄГ® îáðà ç ГГҐ ÿâëÿåòñÿ èñïîëГÿåìûì, ГЅГІГ® ñæà òûé îáðà ç ÿäðà . Îáû÷ГГ® ГЅГІГ® zImage (ñæà òûé îáðà ç ðà çìåðîì ìåГГҐГҐ 512KB) èëè bzImage (áîëüøîé ñæà òûé îáðà ç, ðà çìåðîì áîëåå 512KB), êîòîðûé áûë ñæà ò ïðè ïîìîùè zlib. Г‚ Гà ÷à ëå òà êîãî îáðà çà ðà ñïîëà ãà åòñÿ ïðîãðà ììà , êîòîðà ÿ âûïîëГГїГҐГІ ìèГèìà ëüГГіГѕ Гà ñòðîéêó à ïïà ðà òГîãî îáåñïå÷åГГЁГї ГЁ Г§Г ГІГҐГ¬ ðà ñïà êîâûâà åò ÿäðî, õðà ГГїГ№ГҐГҐГ±Гї ГўГóòðè îáðà çà è ïîìåùà åò ГҐГЈГ® Гў âåðõГГѕГѕ îáëà ñòü ïà ìÿòè. Åñëè èìååòñÿ îáðà ç Гà ÷à ëüГîãî RAM-äèñêà , ГІГ® ïðîãðà ììà òà êæå ïåðåìåùà åò ГҐГЈГ® Гў ïà ìÿòü ГЁ ïîìå÷à åò äëÿ äà ëüГåéøåãî èñïîëüçîâà ГГЁГї, Г Г§Г ГІГҐГ¬ âûçûâà åò ñà ìî ÿäðî, ïîñëå Г·ГҐГЈГ® ГГ Г·ГЁГГ ГҐГІГ±Гї ГҐГЈГ® çà ãðóçêà .
Ïðè âûçîâå bzImage (îáðà ç äëÿ ARM) âûïîëГГҐГГЁГҐ ГГ Г·ГЁГГ ГҐГІГ±Гї Гў./arch/arm/boot/head.SГ± à ññåìáëåðГîé ГґГіГГЄГ¶ГЁГЁ. Ýòà ïðîãðà ììà âûïîëГГїГҐГІ îñГîâГГіГѕ Гà ñòðîéêó à ïïà ðà òГîãî îáåñïå÷åГГЁГї ГЁ âûçûâà åò ïðîöåäóðóstartup_32, ðà ñïîëà ãà þùóþñÿ Гў ./arch/arm/boot/compressed/head.S. Ïðîöåäóðà Гà ñòðà èâà åò áà çîâóþ ñðåäó (Г±ГІГҐГЄ ГЁ ГІ.ГЇ.) ГЁ î÷èùà åò BlockStartedbySymbol (BSS). Çà òåì âûïîëГГїГҐГІГ±Гї äåêîìïðåññèÿ ÿäðà ïðè ïîìîùè âûçîâà C-ГґГіГГЄГ¶ГЁГЁdecompress_kernel(êîòîðà ÿ õðà ГГЁГІГ±Гї Гў ./arch/arm/boot/compressed/misc.c). Ïîñëå äåêîìïðåññèè ÿäðà â ïà ìÿòü ïðîèñõîäèò ГҐГЈГ® âûçîâ. ГќГІГ® ГҐГ№ГҐ îäГГ ГґГіГГЄГ¶ГЁГї startup_32, ГГ® Г®Гà ðà ñïîëà ãà åòñÿ Гў ôà éëå ./arch/arm/kernel/head.S.
Г‚ Гîâîé ГґГіГГЄГ¶ГЁГЁstartup_32 (êîòîðà ÿ Гà çûâà åòñÿ swapper èëè process 0) ГЁГèöèà ëèçèðóþòñÿ òà áëèöû ñòðà ГГЁГ¶ (pagetables) ГЁ îáåñïå÷èâà åòñÿ ïîäêëþ÷åГГЁГҐ ГґГіГГЄГ¶ГЁГЁ memorypaging (îòîáðà æåГГЁГҐ ñòðà ГГЁГ¶). Òà êæå îïðåäåëÿåòñÿ ГІГЁГЇ Г¶ГҐГòðà ëüГîãî ïðîöåññîðà è ñîïðîöåññîðà äëÿ âû÷èñëåГГЁГ© Г± ïëà âà þùåé òî÷êîé (FPU), åñëè îà èìååòñÿ, ГЁ äà ГГГ Гї ГЁГôîðìà öèÿ ñîõðà ГГїГҐГІГ±Гї äëÿ ïîñëåäóþùåãî èñïîëüçîâà ГГЁГї. Äà ëåå âûçûâà åòñÿ ГґГіГГЄГ¶ГЁГїstart_kernel ГЁГ§(init/main.c), êîòîðà ÿ îñóùåñòâëÿåò ïåðåõîä Гў ГІГі Г·Г Г±ГІГј ÿäðà Linux, êîòîðà ÿ ГГҐ Г§Г ГўГЁГ±ГЁГІ îò îñîáåГГîñòåé ГЄГ®ГêðåòГîé à ïïà ðà òГîé ïëà òôîðìû. ÌîæГГ® Г±ГЄГ Г§Г ГІГј, Г·ГІГ® ГЅГІГ® ГґГіГГЄГ¶ГЁГї main äëÿ ÿäðà Linux.
Ïðè îáðà ùåГГЁГЁ ГЄ start_kernel âûçûâà åòñÿ äëèГГûé ñïèñîê ГґГіГГЄГ¶ГЁГ© ГЁГèöèà ëèçà öèè, êîòîðûå âûïîëГГїГѕГІ Гà ñòðîéêó ïðåðûâà ГГЁГ©, ïðîèçâîäÿò äà ëüГåéøåå ГЄГ®Гôèãóðèðîâà ГГЁГҐ ïà ìÿòè ГЁ çà ãðóæà þò Гà ÷à ëüГûé RAM-äèñê. Ïîñëå ýòîãî âûçûâà åòñÿ ГґГіГГЄГ¶ГЁГї kernel_thread (ГЁГ§ arch/arm/kernel/process.c), Г§Г ГЇГіГ±ГЄГ ГѕГ№Г Гї ГґГіГГЄГ¶ГЁГѕ init, êîòîðà ÿ ÿâëÿåòñÿ ïåðâûì ïðîöåññîì, âûïîëГÿþùèìñÿ Гў ïðîñòðà ГГ±ГІГўГҐ ïîëüçîâà òåëÿ. Г‚ çà êëþ÷åГГЁГҐ Г§Г ГЇГіГ±ГЄГ ГҐГІГ±Гї idletask, ïîñëå Г·ГҐГЈГ® óïðà âëåГГЁГҐ ìîæåò ГўГ§ГїГІГј ГГ Г±ГҐГЎГї ïëà Гèðîâùèê (scheduler) (ïîñëå âûçîâà cpu_idle). Åñëè ðà çðåøåГГ» ïðåðûâà ГГЁГї, âûòåñГГїГѕГ№ГЁГ© ïëà Гèðîâùèê (pre-emptivescheduler) áóäåò ïåðèîäè÷åñêè ïåðåõâà òûâà òü ГЄГ®Гòðîëü äëÿ ïîääåðæêè Г¬Гîãîçà äà ÷Гîñòè.
Ïîñëå çà ãðóçêè ÿäðà ìîГòèðóåòñÿ êîðГГҐГўГ Гї ôà éëîâà ÿ ñèñòåìà è Г§Г ГЇГіГ±ГЄГ ГҐГІГ±Гї ïåðâîå ïðèëîæåГГЁГҐ Гў ïðîñòðà ГГ±ГІГўГҐ ïîëüçîâà òåëÿ. ГќГІГ® ïåðâà ÿ ГЁГ§ âûçûâà åìûõ ïðîãðà ìì, êîòîðûå ñêîìïèëèðîâà ГГ» Г±Г® Г±ГІГ Гäà ðòГîé áèáëèîòåêîé C. Äî ýòîãî ìîìåГòà ïðîöåññà ñòà Гäà ðòГûå C-ïðèëîæåГГЁГї ГҐГ№ГҐ ГГҐ âûïîëГÿëèñü.
1.3.2. Ïîäãîòîâêà ê êîìïèëÿöèè ÿäðГ
Äëÿ ñáîðêè ÿäðà Гåîáõîäèìî ГіГ±ГІГ Гîâèòü áà çîâûé Гà áîð óòèëèò ГЁ êîìïèëÿòîð, à òà êæå Г±ГЄГ Г·Г ГІГј ñà ìî ÿäðî. Íèæå ïðèâåäåГà ïîñëåäîâà òåëüГîñòü äåéñòâèé:
• Óñòà Гà âëèâà åì Гåîáõîäèìûå óòèëèòû ГЁГ§ ðåïîçèòîðèÿ:
- taras@taras-desktop:~/tescom/example$ sudo apt-get install make flex bison m4 ncurses-devgettext texi2html texinfo zlib1g zlib1g-dev
- taras@taras-desktop:~/tescom/example$ sudo apt-get install liblzo2-2 liblzo2-dev libacl1 libacl1-dev libglib2.0-dev autoconfautomakelibtool
• Ñêà ÷èâà åì è ðà ñïà êîâûâà åì ÿäðî:
- taras@taras-desktop:~/tescom/example$ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.37.6.tar.bz2
- taras@taras-desktop:~/tescom/example$ tar xvjf linux-2.6.37.6.tar.bz2
• Ñêà ÷èâà åì ГЁ ГіГ±ГІГ Гà âëèâà åì êîìïèëÿòîð:
- taras@taras-desktop:~/tescom/example$ wget http://www.codesourcery.com/sgpp/lite/arm/portal/package8741/public/arm-none-linux-gnueabi/arm-2011.03-41-arm-none-linux-gnueabi.bin
- taras@taras-desktop:~/tescom/example$ chmod 777 arm-2011.03-41-arm-none-linux-gnueabi.bin
- taras@taras-desktop:~/tescom/example$ ./arm-2011.03-41-arm-none-linux-gnueabi.bin
• Ñêà ÷èâà åì áà çîâóþ ГЄГ®Гôèãóðà öèþ ÿäðà äëÿ ГГ ГёГҐГ© à ðõèòåêòóðû:
- taras@taras-desktop:~/tescom/example$ wget ftp://www.at91.com/pub/linux/2.6.30-at91/at91sam9m10g45ek_defconfig
- taras@taras-desktop:~/tescom/example$ cp at91sam9m10g45ek_defconfig ./linux-2.6.37.6/.config
• ÊîГôèãóðèðóåì ÿäðî êîìà Гäîé:
- taras@taras-desktop:~/tescom/example/linux-2.6.37.6$ make ARCH=arm menuconfig
- ГЁ âûñòà âëÿåì ñëåäóþùèå ГЇГіГГЄГІГ» ìåГГѕ:
- SystemType --->
- Atmel AT91 System-on-Chip --->
- Atmel AT91 Processor (cpu name) --->AT91SAM9G45 – âûáðà òü
- Boot options --->
- Always use the default kernel command string – âûáðà òü
- Default kernel command string: mem=64M console=ttyS0,115200 root=/dev/sda1 rootwait
- Device Drivers --->
- Input device support --->
- Polled input device skeleton – âûáðà òüêà êâñòðà èâà åìûé
- Graphics support --->
- Console display driver support --->
- Framebuffer Console support – âûáðà òüêà êâñòðà èâà åìûé
- Map the console to the primary display device – âûáðà òü
- Select compiled-in fonts – âûáðà òü
- VGA 8x8 font - select this
- Bootup logo – âûáðà òü
- Bootuplogo --->
- Standard black and white Linux logo – îòêëþ÷èòü
- Standard 16-color Linux logo - îòêëþ÷èòü
- HID Devices --->
- USB Human Interface Device support – âûáðà òüêà êâñòðà èâà åìûé
- File systems --->
- Ext3 journalling file system support – âûáðà òüêà êâñòðà èâà åìûé
- The Extended 4 (ext4) filesystem – âûáðà òüêà êâñòðà èâà åìûé
• Êîìïèëèðóåì ÿäðî:
taras@taras-desktop:~/tescom/example/linux-2.6.37.6$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
1.4 ÊîðГГҐГўГ Гї ôà éëîâà ÿ Г±ГЁГ±ГІГҐГ¬Г
1.4.1 ГЉГ®Гôèãóðèðîâà ГГЁГҐ ГЁ êîìïèëÿöèÿ êîðГåâîé ôà éëîâîé ñèñòåìû
Buildroot ГЅГІГ® Гà áîð ГЁГñòðóìåГòîâ, Гў îñГîâå êîòîðûõ ëåæèò òðà äèöèîГГûé makefile, ïîçâîëÿþùèé ñîáðà òü ñèñòåìó ïîä x86, PowerPC, ARM, AVR, MIPS ГЁ ГІ.Г¤. Ñèñòåìà ñòðîèòñÿ ГГ ГЎГ Г§ГҐ uClibc – ëåãêîâåñГîãî ГЁ ëåãêî ïîðòèðóåìîãî âà ðèà Гòà áà çîâîé Г‘-áèáëèîòåêè – ГЁ BusyBox – à ãðåãà òîðà , âêëþ÷à þùåãî Гў Г±ГҐГЎГї ГґГіГГЄГ¶ГЁГ®ГГ Г« áîëüøèГñòâà óòèëèò òðà äèöèîГГîãî îêðóæåГГЁГї Linux (ГЅГІГ® ïîçâîëÿåò ñîêðà òèòü ГЄГ ГЄ îáúåì êîäà , ГІГ ГЄ ГЁ âðåìÿ çà ãðóçêè ïðîãðà ììû Гў îïåðà òèâГГіГѕ ïà ìÿòü).
Äëÿ ïîñòðîåГГЁГї êðîññêîìïèëÿòîðà è ôà éëîâîé ñèñòåìû ГГіГ¦ГГ® ïðîäåëà òü ñëåäóþùåå:
• Ñêà ÷èâà åì è ðà ñïà êîâûâà åì ÿäðî:
- taras@taras-desktop:~/tescom/example$ wget http://buildroot.uclibc.org/downloads/buildroot-2011.08.tar.bz2
- taras@taras-desktop:~/tescom/example$ tar xvjf buildroot-2011.08.tar.bz2
• Çà ïóñêà åì ГЄГ®Гôèãóðà òîð Buildroot ГЁ ГіГ±ГІГ Гà âëèâà åì ñëåäóþùèå ГЇГіГГЄГІГ»
- taras@taras-desktop:~/tescom/example$ cd buildroot-2011.08
- taras@taras-desktop:~/tescom/example/ buildroot-2011.08$ make menuconfig
- Target Architecture (name) --->arm - âûáðà òü
- Target Architecture Variant (name) --->arm926t - âûáðà òü
- Toolchain --->
- Kernel Headers (name) --->
- Linux 2.6.37.x kernel headers - âûáðà òü
- Enable large file (files > 2 GB) support - âûáðà òü
- Enable WCHAR support - âûáðà òü
- Enable C++ support - âûáðà òü
- Package Selection for the target --->
- Graphic libraries and applications (graphic/text) --->
- Qt - select this
- Qt --->
- Library type (name) --->
- Static Library - âûáðà òü
- Approve free license - âûáðà òü
- Keyboard drivers --->
- tty - âûáðà òü
- linux input - âûáðà òü
- Text editors and viewers --->nano – âûáðà òü
• Çà ïóñêà åì êîìïèëÿöèþ ôà éëîâîé ñèñòåìû:
taras@taras-desktop:~/tescom/example/buildroot-2011.08$ make
Ðåçóëüòà òîì áóäåò à ðõèâ ñ ôà éëîâîé ñèñòåìîé( output / images / root . tar )
1.4.2. Êðîññêîìïèëÿöèÿ ïðèëîæåГГЁГї Гà îñГîâå Qt.
Äëÿ ïðèìåðà òà êæå îïèñà à ïðîöåññ êðîññêîîìïèëÿöèè ïðèëîæåГГЁГҐ ГГ Qt. ×òîáû ГГҐ îïèñûâà òü ñîçäà ГГЁГҐ ïðèëîæåГГЁГї âîçüìåì ïðèìåð analogclock ГЁГ§ èñõîäГèêîâ Qt. Äëÿ ñáîðêè Гåîáõîäèìî ïðîäåëà òü ñëåäóþùåå:
• Ïåðåõîäèì â äèðåêòîðèþ ñ ïðîåêòîì:
- taras@taras-desktop:~/tescom/example/buildroot-2011.08$ cd output/build/qt-4.7.3/examples/widgets/analogclock/
• Ñîçäà åì ôà éë ïðîåêòà , Makefile è çà ïóñêà åì ïðîöåññ êîìïèëÿöèè:
- taras@taras-desktop:~/tescom/example/buildroot-2011.08/output/build/qt-4.7.3/examples/widgets/analogclock$ ../../../bin/qmake -project
- taras@taras-desktop:~/tescom/example/buildroot-2011.08/output/build/qt-4.7.3/examples/widgets/analogclock$ ../../../bin/qmake
- taras@taras-desktop:~/tescom/example/buildroot-2011.08/output/build/qt-4.7.3/examples/widgets/analogclock$ make
Ðåçóëüòà òîì áóäåò ôà éë analogclock â äèðåêòîðèè ñ ïðîåêòîì.
• Ïðîøèâêà öåëåâîé ñèñòåìû ñîáðà ГГûìè îáðà çà ìè
Ïîñëå ГўГ±ГҐГµ ïðîäåëà ГГûõ îïåðà öèé áûëè ñîçäà ГГ» ГЎГЁГГ Г°Гûå îáðà çû çà ãðóç÷èêà ( Bootstrap - v 1.16/ board / at 91 sam 9 m 10 g 45 ek / dataflash / dataflash _ at 91 sam 9 m 10 g 45 ek . bin ), ÿäðà ( linux -2.6.37.6/ arch / arm / boot / zImage ) ГЁ à ðõèâ Г± ñîäåðæèìûì êîðГåâîé ôà éëîâîé ñèñòåìû( example / buildroot -2011.08/ output / images / root . tar ).
Äëÿ ïðîøèâêè ìèêðîïðîöåññîðîâ ARM êîìïà ГГЁГЁ Atmel ïðåäГГ Г§ГГ Г·ГҐГà ñïåöèà ëüГГ Гї óòèëèòà SAM - BA . Äëÿ îòëà äêè ïðîåêòà ÿäðî ГЁ çà ãðóç÷èê áóäóò ðà çìåùåГГ» Гў DataFlash , à êîðГГҐГўГ Гї ôà éëîâà ÿ ñèñòåìà ГГ USB Flash Гà êîïèòåëå. Ïðèñòóïèì ГЄ ïðîöåññó ГіГ±ГІГ Гîâêè SAM - BA .
• Äëÿ Гà ÷à ëà ГГіГ¦ГГ® Г±ГЄГ Г·Г ГІГј, ðà ñïà êîâà òü ГЁ ГГ Г§ГГ Г·ГЁГІГј ïðà âà SAM - BA :
- taras@taras-desktop:~/tescom/example$ wget http://www.atmel.com/dyn/resources/prod_documents/sam-ba_2.10.zip
- taras@taras-desktop:~/tescom/example$ unzip sam-ba_2.10.zip
- taras@taras-desktop:~/tescom/example$ cd sam-ba_cdc_linux/
- taras@taras-desktop:~/tescom/example/sam-ba_cdc_linux$ chmod 777 sam-ba
• Ïîäêëþ÷èòü îòëà äî÷ГГіГѕ ïëà òó ГЄ êîìïüþòåðó ÷åðåç USB ГЁ ñîçäà òü ññûëêó Гà ñèìâîëüГîå óñòðîéñòâî / dev / ttyACM 0 ГЁ Г§Г ГЇГіГ±ГІГЁГІГј ïðîãðà ììó:
- taras@taras-desktop:~/tescom/example/sam-ba_cdc_linux$ sudo ln -s /dev/ttyACM0 /dev/ttyUSB0
- taras@taras-desktop:~/tescom/example/sam-ba_cdc_linux$ ./sam-ba
• Ïîñëå çà ïóñêà óòèëèòû ГГҐ ýêðà ГГҐ ïîÿâèòñÿ îêГГ® Г± âûáîðîì ñîåäèГГҐГГЁГї ГЁ òèïà îòëà äî÷Гîé ïëà òû, Гў ГГҐГ¬ ГГіГ¦ГГ® âûáðà òü ñîåäèГГҐГГЁГҐ :/ dev / ttyUSB , ïëà òó: at 91 sam 9 m 10- g 45- ek , ГЄГ ГЄ ïîêà çà ГГ® Гà ðèñ. 1.2. Ïîñëå ýòîãî Гà æà òü Connect .

ГђГЁГ±.1.2. ГЋГЄГГ® âûáîðà ñîåäèГГҐГГЁГї ГЁ òèïà îòëà äî÷Гîé ïëà òû
• Ïðè ГіГ±ГЇГҐГёГîì ïîäêëþ÷åГГЁГЁ Гà ýêðà ГГҐ äîëæГГ® ïîÿâèòüñÿ ãëà âГîå îêГГ® ïðîãðà ììû. Г‚ ГГҐГ¬ ГГіГ¦ГГ® âûáðà òü âêëà äêó DataFlashВ AT 45 DB / DCB , Гà ýòîé âêëà äêå Гà éòè ïîëå Scripts ГЁ Гў Г±ГЇГЁГ±ГЄГҐ âûáðà òü EnableВ DataflashВ ( SPI 0 В CS 0) ГЁ Гà æà òü Execute , ГЄГ ГЄ ïîêà çà ГГ® Гà ðèñ.1.3.

ГђГЁГ±.1.3. ÝëåìåГГІГ» äëÿ ГЁГèöèà ëèçà öèè ïà ìÿòè
• Ïîñëå ýòîãî ìîæГГ® ïðèñòóïà òü ГЄ ïðîøèâêå çà ãðóç÷èêà è ÿäðà . Г‚ Г±ГЇГЁГ±ГЄГҐ ïîëÿ Scripts âûáðà òü Send Boot File ГЁ Гà æà òü Execute , ïîñëå ýòîãî ïîÿâèòñÿ ìåГГѕ äëÿ âûáîðà ôà éëà è ГГіГ¦ГГ® ГіГЄГ Г§Г ГІГј ðà ñïîëîæåГГЁГҐ ГЎГЁГГ Г°Гîãî ôà éëà çà ãðóç÷èêà ( Bootstrap - v 1.16/ board / at 91 sam 9 m 10 g 45 ek / dataflash / dataflash _ at 91 sam 9 m 10 g 45 ek . bin ). Ïîñëå ýòîãî Гў ïîëå Adddress ГіГ±ГІГ Гîâèòü 0 x 8400, Гў ñòðîêå SendВ FileВ Name Гà æà òü ГГ ГЄГîïêó Г± èçîáðà æåГГЁГїГ¬ ГЇГ ГЇГЄГЁ ГЁ ГіГЄГ Г§Г ГІГј ГЇГіГІГј ГЄ îáðà çó ÿäðà ( linux -2.6.37.6/ arch / arm / boot / zImage ) ГЁ Гà æà òü ГЄГîïêó SendВ File, ГЄГ ГЄ ïîêà çà ГГ® Гà ðèñ.1.4.

ГђГЁГ±.1.4. ÝëåìåГГІГ» óïðà âëåГГЁГї SAM - BA äëÿ ïðîøèâêè Dataflash
• Äëÿ Г§Г ГЇГЁГ±ГЁ ôà éëîâîé ñèñòåìû äîñòà òî÷ГГ® ñêîïèðîâà òü ñîäåðæèìîå à ðõèâà / root . tar ГГ USB Flash Гà êîïèòåëü Г± ôà éëîâîé ñèñòåìîé Ext 2/3/4, ñêîïèðîâà òü ïðèëîæåГГЁГҐ analogclock Гў êîðГåâîé êà òà ëîã USB Flash . ГЂ òà êæå îòðåäà êòèðîâà òü ôà éë / etc / inittab . Äîáà âèâ ñëåäóþùèå ñòðîêè ïîñëå ñòðîêè ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100:
#В SetВ upВ aВ coupleВ ofВ getty's
tty1::respawn:/sbin/gettyВ 38400В tty1
tty2::respawn:/sbin/gettyВ 38400В tty2
Ïîñëå ïîäêëþ÷åГГЁГї USB -êëà âèà òóðû ГЁ USB Flash Гà êîïèòåëÿ, ГЁ ïåðåçà ãðóçêè ïëà òû Гà ýêðà ГГҐ äîëæåà ïîÿâèòüñÿ ГЇГЁГГЈГўГЁГ (ðèñ.В 1.5), à ÷åðåç Гåñêîëüêî Г±ГҐГЄГіГГ¤ ïðèãëà øåГГЁГҐ ГЄ âõîäó Гў ñèñòåìó

Ðèñ. 1.5. Linux â ïðîöåññå çà ãðóçêè
Äëÿ âõîäà â ñèñòåìó äîñòà òî÷ГГ® ГўГўГҐГ±ГІГЁ èìÿ ïîëüçîâà òåëÿ “ root ” Äëÿ çà ïóñêà ïðèëîæåГГЁГї Qt Гåîáõîäèìî Гў êîìà ГГ¤Гîé ñòðîêå Гà áðà òü ñëåäóþùåå:
#/./ analogclock – qws . Ïîñëå çà ãðóçêè ïðèëîæåГГЁГї Гà ýêðà ГГҐ ïîÿâèòñÿ îêГГ® ïðèëîæåГГЁГї, ГЄГ ГЄ Гà ðèñ.В 1.6.

ГђГЁГ±. 1.6. Qt ïðèëîæåГГЁГҐ, Г§Г ГЇГіГ№ГҐГГîå Гà îòëà äî÷Гîé ïëà òå
ÂÛÂÎÄÛ
Г‚ äà ГГîì îò÷åòå ïîêà çà ГГ® ГЄГ ГЄ ñîáðà òü Linux Г± áà çîâûì Гà áîðîì óòèëèò ГЁ ïðèëîæåГГЁГҐГ¬ Гà îñГîâå Qt äëÿ ARM -à ðõèòåêòóðû. Òà êæå îïèñà à ïðîöåññ çà ãðóçêè Linux . Âñå ГЅГІГ® ìîæåò áûòü ïîëåçГûì äëÿ ГІГҐГµ, ГЄГІГ® òîëüêî ГГ Г·ГЁГГ ГҐГІ ñâîé ГЇГіГІГј Гў ñòîðîГГі âñòðà èâà åìûõ Г±ГЁГ±ГІГҐГ¬.
Г‚ 2007 ãîäó îêîëî 98% ГЁГ§ áîëåå Г·ГҐГ¬ ìèëëèà ðäà ìîáèëüГûõ òåëåôîГîâ, ïðîäà âà åìûõ åæåãîäГГ®, áûëè îñГГ Г№ГҐГГ» ГЇГ® êðà éГГҐГ© ìåðå îäГГЁГ¬ ïðîöåññîðîì ARM. ГЏГ® ñîñòîÿГГЁГѕ ГГ 2009 Гà ïðîöåññîðû ARM ïðèõîäèòñÿ äî 90% ГўГ±ГҐГµ âñòðîåГГûõ 32-ðà çðÿäГûõ ïðîöåññîðîâ. Г—ГІГ® ГҐГ№ГҐ ðà ç ãîâîðèò Г® à êòóà ëüГîñòè ГЁ ïðà âèëüГîñòè ГЁГ§ГіГ·ГҐГГЁГї ýòîé à ðõèòåêòóðû ГЁ âûáîðà òåìû ïðà êòè÷åñêîé ðà áîòû.