์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•
[ํŽŒ]์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค ๊ด€๋ จ ์‚ฌ์ดํŠธ  Embedded 

2004/12/16 05:02

 

๋ณต์‚ฌhttp://blog.naver.com/poohyjk3/100008574047

 

์ถœ์ฒ˜ ์šฐ์„ฑ! ํŒŒ์ดํŒ…! | ์šฐ์‰์ด
์›๋ฌธ http://blog.naver.com/wooseng1/80008313252

์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค ๊ด€๋ จ ์‚ฌ์ดํŠธ ๋ชฉ๋ก

๋ชฉ์ฐจ 

1๋ถ€์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ๊ณผ ๋ฆฌ๋ˆ…์Šค

1์žฅ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ

2์žฅ๋ฆฌ๋ˆ…์Šค

3์žฅ์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค

4์žฅ์‹ค์‹œ๊ฐ„ ์šด์˜์ฒด์ œ

5์žฅ์œˆ๋„์šฐ ์‹œ์Šคํ…œ

2๋ถ€์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก 

6์žฅ์ œํ’ˆ ๊ธฐํš ๋‹จ๊ณ„์—์„œ ๊ณ ๋ คํ•  ์‚ฌํ•ญ

7์žฅํƒ€๊ฒŸ ๋ณด๋“œ ์„ ์ • ๋ฐฉ๋ฒ•

8์žฅ์žฅ์น˜ ์„ ์ •๊ณผ ๋“œ๋ผ์ด๋ฒ„ ๊ตฌํ˜„

9์žฅ์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค ์ด์‹ ์ ˆ์ฐจ

10์žฅ์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค ํ™˜๊ฒฝ์—์„œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ ์ ˆ์ฐจ

11์žฅ๊ฐœ๋ฐœ ํ›„ ์ƒ์šฉ ์ œํ’ˆ์„ ์œ„ํ•œ ํŒจํ‚ค์ง•

3๋ถ€๋ฆฌ๋ˆ…์Šค ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ•๊ณผ ์ด์‹

12์žฅ๊ต์ฐจ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ•

13์žฅ๋„คํŠธ์›Œํฌ์™€ ๋””๋ฒ„๊น… ํ™˜๊ฒฝ ๊ตฌ์ถ•

14์žฅ๋ถ€ํŠธ ์ŠคํŠธ๋žฉ ๋กœ๋” ์ด์‹

15์žฅ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ํ™˜๊ฒฝ ์„ค์ •๊ณผ ์ปดํŒŒ์ผ

16์žฅ๋ฃจํŠธ ํŒŒ์ผ์‹œ์Šคํ…œ ๊ตฌ์ถ•

17์žฅ์‹ค์‹œ๊ฐ„ ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ์ด์‹

18์žฅ์œˆ๋„์šฐ ์‹œ์Šคํ…œ ํ™˜๊ฒฝ ์ด์‹

19์žฅ๋ถ€ํŒ…๊ณผ ์„ค์น˜ ํ™•์ธ

20์žฅ์ƒ์šฉ ์ œํ’ˆ์„ ์œ„ํ•œ ํŒจํ‚ค์ง•

 

1๋ถ€. ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ๊ณผ ๋ฆฌ๋ˆ…์Šค

1์žฅ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ

 

โ–ก ใ€ŽC, C++๋กœ ์ž‘์„ฑํ•˜๋Š” ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋ž˜๋ฐใ€, ๋งˆ์ดํด ๋ฐ” ์ €, ์ด์„์ฃผ ์—ญ, ํ•œ๋น›๋ฏธ๋””์–ด, 2000

C์™€ C++ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ์„ ์ œ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ธฐ์ˆ ํ•˜๊ณ  ์žˆ๋‹ค. ์•„์‰ฝ๊ฒŒ๋„ ์ด ์ฑ…์— ๋‚˜์˜ค๋Š” ๋ณด๋“œ๋ฅผ ๊ตญ๋‚ด์—์„œ ๊ตฌํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— ๋ณธ๊ฒฉ์ ์ธ ์‹ค์Šต์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ๋‹จ๊ธฐ๊ฐ„์— ์žก๊ธฐ์—๋Š” ์ ๋‹นํ•˜๋‹ค.

โ–ก ใ€Ž๋„คํŠธ์›Œํฌ ํ”„๋ฆฐํŒ…ใ€, ํ† ๋“œ ๋ ˆ์ด๋”๋งˆ์ปค, ๋งคํŠœ ๊ฐœ์ŠคํŠธ ์ €, ๋ฐ•์žฌํ˜ธ, ์ด์˜๋ฏธ ์—ญ, ํ•œ๋น›๋ฏธ๋””์–ด, 2001

๋ฆฌ๋ˆ…์Šค์™€ ์œ ๋‹‰์Šค๋ฅผ ์„œ๋ฒ„๋กœ, ์œˆ๋„์šฐ, ๋งฅ, ๋„ท์›จ์–ด๋ฅผ ํด๋ผ์ด์–ธํŠธ๋กœ ๊ตฌ์„ฑํ•œ ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์—์„œ ์ธ์‡„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ธฐ์ˆ ํ•œ๋‹ค. BOOTP, DHCP์™€ ๊ฐ™์€ ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•ด ํ”„๋ฆฐํ„ฐ๋ฅผ ๋ถ€ํŒ…ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์†Œ๊ฐœํ•œ๋‹ค.

โ–  http://wombat.doc.ic.ac.uk/foldoc/index.html

FOLDOC ์ปดํ“จํ„ฐ ์šฉ์–ด ์ „๋ฌธ ์‚ฌ์ „์ด๋‹ค.

โ–  http://www.linuxdevices.com/articles/AT4936596231.html

์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค๋ฅผ ํƒ‘์žฌํ•˜๊ณ  ์žˆ๋Š” ์ž„๋ฒ ๋””๋“œ ์žฅ์น˜๋ฅผ ์†Œ๊ฐœํ•˜๋Š” ํŽ˜์ด์ง€์ด๋‹ค. PDA๋ฅผ ์ œ์™ธํ•œ ์—ฌ๋Ÿฌ ์žฅ์น˜๋ฅผ ์ข…๋ฅ˜๋ณ„๋กœ ์ œ์‹œํ•˜๊ณ  ์žˆ๋‹ค.

โ–  http://www.linuxdevices.com/articles/AT8728350077.html

์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค๋ฅผ ํƒ‘์žฌํ–ˆ๊ฑฐ๋‚˜ ํƒ‘์žฌํ•  ์ˆ˜ ์žˆ๋Š” PDA๋ฅผ ์†Œ๊ฐœํ•˜๋Š” ํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.linuxdevices.com/articles/AT4313418436.html
์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค๋ฅผ ํƒ‘์žฌํ•  ์ˆ˜ ์žˆ๋Š” SOC(System-On-Chip)์„ ์†Œ๊ฐœํ•˜๋Š” ํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.classicgaming.com/
๊ณ ์ „ ๊ฒŒ์ž„์„ ์†Œ๊ฐœํ•˜๋Š” ํŽ˜์ด์ง€์ด๋‹ค. MSX์™€ ์• ํ”Œ์„ ๋น„๋กฏํ•œ ๊ฐ์ข… ํ”Œ๋žซํผ์„ ํ‰๋‚ด๋‚ธ ์• ๋ฎฌ๋ ˆ์ดํ„ฐ์™€ ๊ฒŒ์ž„์šฉ ๋กฌ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋‹ค.

โ–  http://quest.arc.nasa.gov/mars/ask/about-mars-path/pathfinder_computer.txt
ํŒจ์ŠคํŒŒ์ธ๋”์— ํƒ‘์žฌํ•œ ์ปดํ“จํ„ฐ ์‚ฌ์–‘์„ ์„ค๋ช…ํ•˜๋Š” ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://quest.arc.nasa.gov/mars/ask/about-mars-path/Assembly_language_programming_used_in_Pathfinder.txt
ํŒจ์ŠคํŒŒ์ธ๋” ๊ฐœ๋ฐœ์„ ์œ„ํ•ด ์‚ฌ์šฉํ•œ ์–ด์…ˆ๋ธ”๋ฆฌ์–ด์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๋Š” ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://quest.arc.nasa.gov/mars/ask/about-mars-path/Selection_of_programming_languages.txt
ํŒจ์ŠคํŒŒ์ธ๋” ๊ฐœ๋ฐœ์„ ์œ„ํ•ด ์‚ฌ์šฉํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์„ ํƒ๊ณผ ๊ด€๋ จํ•œ ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://www.windriver.com/customer/html/jpl.html
VxWorks๋ฅผ ๋งŒ๋“  ์œˆ๋“œ๋ฆฌ๋ฒ„์—์„œ ๋งŒ๋“  ์ œํŠธ์ถ”์ง„์—ฐ๊ตฌ์†Œ์— ๋Œ€ํ•œ ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://www.iews.na.baesystems.com/space/pdf/0887.pdf
ํŒจ์ŠคํŒŒ์ธ๋”์— ํƒ‘์žฌํ•œ ๋งˆ์ดํฌ๋กœํ”„๋กœ์„ธ์„œ๋ฅผ ์†Œ๊ฐœํ•˜๋Š” ๊ธฐ์‚ฌ์ด๋‹ค.

  

2์žฅ๋ฆฌ๋ˆ…์Šค

 

โ–ก ใ€Ž๋ฆฌ๋ˆ…์Šค ๊ทธ๋ƒฅ ์žฌ๋ฏธ๋กœ: ์šฐ์—ฐํ•œ ํ˜๋ช…์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐใ€, ๋ฆฌ๋ˆ„์Šค ํ† ๋ฐœ์ฆˆ, ๋ฐ์ด๋น„๋“œ ๋‹ค์ด์•„๋ชฌ๋“œ ์ €, ์•ˆ์ง„ํ™˜ ์—ญ, ํ•œ๊ฒจ๋ก€์‹ ๋ฌธ์‚ฌ, 2001

๋ฆฌ๋ˆ„์Šค ํ† ๋ฐœ์ฆˆ๊ฐ€ ์ง‘ํ•„ํ•œ ๋ฆฌ๋ˆ…์Šค์— ๋Œ€ํ•œ ์ผ์ข…์˜ ์ž์„œ์ „์œผ๋กœ ๋ฆฌ๋ˆ…์Šค ๊ฐœ๋ฐœ์˜ ์ด๋ฉด์— ์ˆจ๊ฒจ์ง„ ๋ฐฐ๊ฒฝ ์ด์•ผ๊ธฐ๋ฅผ ํ—ˆ์‹ฌํƒ„ํšŒํ•˜๊ฒŒ ํ’€์–ด๋‚ด๊ณ  ์žˆ๋‹ค. ์˜ˆ์ƒ๊ณผ๋Š” ๋‹ฌ๋ฆฌ ๋‚ด์šฉ์ด ๋”ฐ๋ถ„ํ•˜์ง€ ์•Š๊ณ  ์žฌ๋ฏธ์žˆ๊ธฐ ๋•Œ๋ฌธ์—(์ œ๋ชฉ์„ ํ•œ๋ฒˆ ๋ณด๋ผ!) ์–ธ์ œ ์–ด๋””์„œ๋‚˜ ๋ถ€๋‹ด ์—†์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ์ฑ…์ด๋‹ค.

โ–ก ใ€ŽOperating System Concepts 6th editionใ€, A. Silberschatz, J. Peterson, P. Galvin, John Wiley & Sons, 2001
์ผ๋ช… '๊ณต๋ฃก์ฑ…'์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋ฉฐ ์šด์˜์ฒด์ œ์— ๋Œ€ํ•œ ์ผ๋ฐ˜ ๋‚ด์šฉ์„ ๋‹ค๋ฃจ๋Š” ๊ธฐ๋ณธ์„œ์ด๋‹ค. ์šด์˜์ฒด์ œ๋ผ๋Š” ์„ธ๊ณ„์— ์ฒซ ๊ฑธ์Œ์„ ๋‚ด๋”›๋„๋ก ๋„์™€์ค€๋‹ค. ๋Œ€ํ•™๊ต์—์„œ ์šด์˜์ฒด์ œ ๊ณผ๋ชฉ ๊ต๊ณผ์„œ๋กœ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ๋Œ€ํ•™ 3ํ•™๋…„ ์ด์ƒ ํ•™์ƒ์ด ์ฝ๊ธฐ์— ์ ํ•ฉํ•˜๋‹ค.

โ–ก ใ€Ž๋ฆฌ๋ˆ…์Šค ์ปค๋„์˜ ์ดํ•ดใ€, ๋‹ค๋‹ˆ์—˜ ๋ณด๋ฒ ์ด, ๋งˆ๋ฅด์ฝ” ์ฒด์‚ฌํ‹ฐ ์ €, ์ด ํ˜ธ, ์‹ฌ๋งˆ๋กœ ์—ญ, ํ•œ๋น›๋ฏธ๋””์–ด, 2001
์˜ค๋ผ์ผ๋ฆฌ ใ€ŽUnderstanding the Linux Kerneใ€์˜ ๋ฒˆ์—ญํŒ์ด๋‹ค. ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ๋‚ด๋ถ€๋ฅผ ํƒํ—˜ํ•˜๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ์—๊ฒŒ ๋“ฑ๋ถˆ์ด ๋  ์ฑ…์œผ๋กœ ๋ฆฌ๋ˆ…์Šค๋‚˜ ์œ ๋‹‰์Šค ์šด์˜์ฒด์ œ์— ๋Œ€ํ•ด ์ค‘๊ธ‰ ์ด์ƒ์˜ ์ง€์‹์„ ํ™•๋ณดํ•œ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ ํ•ฉํ•˜๋‹ค.

โ–ก ใ€Ž๋Ÿฌ๋‹ ๋ฆฌ๋ˆ…์Šค 3ํŒใ€, ๋งคํŠธ ์›ฐ์‹œ, ๋ผ ์นด์šฐํ”„๋งŒ, ์นผ๋ ˆ ๋”œํ•˜์ด๋จธ ์ €, ์ด๋งŒ์šฉ ์—ญ, ํ•œ๋น›๋ฏธ๋””์–ด, 2001

์˜ค๋ผ์ผ๋ฆฌ ใ€ŽRunning Linux 3rd Editionใ€์˜ ๋ฒˆ์—ญํŒ์ด๋‹ค. ๋ฆฌ๋ˆ…์Šค๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ๋…์ž๊ฐ€ ๊ณ ๋ฏผํ•˜๋ฉด์„œ ์ฝ์„ ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ‘์ •๋ณด๋ฅผ ์œ„ํ•œ ์ •๋ณด๋ฅผ ๋‹ด์€ ๋ฉ”ํƒ€๋ถ(meta-book)’์œผ๋กœ ๋ฆฌ๋ˆ…์Šค๋ผ๋Š” ์šด์˜์ฒด์ œ์— ์ฒ ํ•™์ ์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ๊ตฌ์„ฑ ๋ฐฉ์‹์ด ๋‹๋ณด์ธ๋‹ค. ์šด์˜์ฒด์ œ๋ฅผ ์ „ํ˜€ ๋ชจ๋ฅด๋Š” ์™„์ „ ์ดˆ๋ณด์ž์—๊ฒŒ๋Š” ๋‹ค์†Œ ์–ด๋ ค์šธ ์ˆ˜๋„ ์žˆ๋‹ค.

โ–ก ใ€Ž์˜คํ”ˆ ์†Œ์Šคใ€์—๋ฆญ ๋ ˆ์ด๋ชฌ๋“œ ์™ธ ์ €, ์†ก์ฐฝํ›ˆ ์™ธ ์—ญ, ํ•œ๋น›๋ฏธ๋””์–ด, 2000
์˜ค๋ผ์ผ๋ฆฌ ใ€ŽOpen Source: Voice from the Open Source Revolutionsใ€์˜ ๋ฒˆ์—ญํŒ์ด๋‹ค. ๊ณต๊ฐœ ์†Œ์Šค์™€ ๊ด€๋ จํ•œ ์—ฌ๋Ÿฌ ์„ ๊ตฌ์ž๋“ค์ด ์ˆ˜ํ•„์‹์œผ๋กœ ์ ์€ ๊ธ€์„ ๋ฌถ์–ด๋†“์€ ์ฑ…์œผ๋กœ ๋ฆฌ๋ˆ…์Šค๋ฅผ ๋น„๋กฏํ•œ ๊ณต๊ฐœ ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์–ด๋–ค ์‹์œผ๋กœ ๋ฐœ์ „ํ•ด์™”์œผ๋ฉฐ ์•ž์œผ๋กœ ์–ด๋–ป๊ฒŒ ๋ฐœ์ „ํ• ์ง€ ์ „๋ฐ˜์ ์ธ ๊ตฌ๋„๋ฅผ ์ œ์‹œํ•œ๋‹ค.

โ–ก ใ€ŽOperating Systems: Design and Implementationใ€ Andrew S. Tanenbaum, Prentice-Hall, 1987
ํƒ€๋„จ๋ฐ”์›€ ๊ต์ˆ˜๊ฐ€ ์ง€์€ MINIX ์šด์˜์ฒด์ œ๋ฅผ ์†Œ๊ฐœํ•˜๋Š” ์ฑ…์ด๋‹ค. ๋ฆฌ๋ˆ„์Šค๋„ ์ด ์ฑ…์„ ์ ‘ํ•ฉ ํ›„๋ถ€ํ„ฐ ์Šค์Šค๋กœ ์šด์˜์ฒด์ œ๋ฅผ ๋งŒ๋“ค ์ƒ๊ฐ์„ ํ–ˆ๋‹ค๋‹ˆ๊นŒ, ์‹ค์ œ ์šด์˜์ฒด์ œ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋Œ์•„๊ฐ€๋Š”์ง€ ๊ตฌ์ฒด์ ์ธ ๋™์ž‘ ์›๋ฆฌ์— ๊ด€์‹ฌ์žˆ๋Š” ๋…์ž๋Š” ํ•œ ๋ฒˆ์”ฉ ์ฝ์–ด๋ณด๋ฉด ๋„์›€์ด ๋  ๊ฒƒ์ด๋‹ค.

โ–  http://www.linuxhq.com/
๋ฆฌ๋ˆ…์Šค ์ปค๋„์— ๋Œ€ํ•œ ๊ฐ์ข… ์ •๋ณด๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ์ •๋ฆฌํ•œ ๋ณธ๋ถ€ ์‚ฌ์ดํŠธ์ด๋‹ค. ๊ฐ ์ปค๋„ ๋ฒ„์ „์— ๋”ฐ๋ผ ๋ฌด์—‡์ด ์–ด๋–ป๊ฒŒ ๋ณ€ํ–ˆ์œผ๋ฉฐ, ํŒจ์น˜๊ฐ€ ์–ด๋–ป๊ฒŒ ์ด๋ค„์ง€๋Š”์ง€ ์ž˜ ์ •๋ฆฌํ•˜๊ณ  ์žˆ๋‹ค.

โ–  http://www.kernel.org
๋ฆฌ๋ˆ…์Šค ์ปค๋„์„ ๋ฐฐํฌํ•˜๋Š” ๊ณต์‹ ์‚ฌ์ดํŠธ์ด๋‹ค. ๊ณผ๊ฑฐ๋ถ€ํ„ฐ ํ˜„์žฌ๊นŒ์ง€ ๋ชจ๋“  ๋ฆฌ๋ˆ…์Šค ์ปค๋„์„ ์œ ์ง€ํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ, ์ด ์‚ฌ์ดํŠธ์— ๋“ค๋Ÿฌ ํ•„์š”ํ•œ ๋ฒ„์ „์„ ๊ฐ€์ ธ์˜ค๊ธฐ ๋ฐ”๋ž€๋‹ค.

โ–  http://www.livinginternet.com/?i/iw_unix_linux.htm
๋ฆฌ๋ˆ…์Šค ์—ญ์‚ฌ๋ฅผ ๊ฐ„๋žตํ•˜๊ฒŒ ๊ธฐ์ˆ ํ•˜๋Š” ์‚ฌ์ดํŠธ์ด๋‹ค. ๊ฐ„๊ฒฐํ•˜๋ฉด์„œ๋„ ์žˆ์–ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ์€ ๋ชจ๋‘ ์ž๋ฆฌ์žก๊ณ  ์žˆ๋‹ค.

โ–  http://www.li.org/linuxhistory.php
๋ฆฌ๋ˆ„์Šค ํ† ๋ฐœ์ฆˆ๊ฐ€ ์œ ์ฆˆ๋„ท(USENET)์— ์˜ฌ๋ฆฐ ๊ธ€์„ ํ† ๋Œ€๋กœ ์ดˆ์ฐฝ๊ธฐ ๋ฆฌ๋ˆ…์Šค ์—ญ์‚ฌ๋ฅผ ์žฌ์กฐ๋ช…ํ•˜๋Š” ์‚ฌ์ดํŠธ์ด๋‹ค.

โ–  http://www.memalpha.cx/Linux/Kernel/
๋ฆฌ๋ˆ…์Šค ์ปค๋„ ๋ฒ„์ „๊ณผ ๊ด€๋ จํ•œ ์—ญ์‚ฌ๋ฅผ ํ•œ๋ˆˆ์— ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๊ฐ ๋ฒ„์ „๋ณ„๋กœ ๋ฆฌ๋ˆ…์Šค ์ปค๋„์ด ์ •ํ™•ํ•˜๊ฒŒ ๋ช‡ ์›” ๋ช‡ ์ผ ๋ช‡ ์‹œ์— ๋‚˜์™”๋Š”์ง€ ๊ถ๊ธˆํ•˜๋ฉด ์ด ์‚ฌ์ดํŠธ๋ฅผ ๋ฐฉ๋ฌธํ•ด๋ณด๊ธฐ ๋ฐ”๋ž€๋‹ค.

โ–  http://lwn.net/2001/features/Timeline/
2001๋…„ ํ•œํ•ด๋™์•ˆ ๋ฆฌ๋ˆ…์Šค์™€ ๊ด€๋ จํ•œ ๊ฐ์ข… ์‚ฌ๊ฑด์„ ์›” ๋‹จ์œ„๋กœ ์ •๋ฆฌํ•˜๊ณ  ์žˆ๋‹ค. ์•„์‰ฝ๊ฒŒ๋„ 1998๋…„๋ถ€ํ„ฐ ์ถ”์ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์—ฐ๋„๋ณ„ ์‹œ๊ฐ„๋ ๋ฅผ ๋ณด๋ฉด์„œ ๊ณผ๊ฑฐ์— ์–ด๋–ค ์ผ์ด ์žˆ์—ˆ๋Š”์ง€ ๊ธฐ์–ต์„ ํ•œ๋ฒˆ ๋”๋“ฌ์–ด๋ณด๊ธฐ ๋ฐ”๋ž€๋‹ค.

โ–  http://www.nwfusion.com/newsletters/linux/2001/01086735.html
์•„๋งˆ์กด์ด ๋ฆฌ๋ˆ…์Šค๋ฅผ ์›น์„œ๋ฒ„๋กœ ์ฑ„ํƒํ–ˆ๋‹ค๋Š” ์†Œ์‹์„ ๋‹ด์€ ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://www.computer.org/computer/homepage/0202/ec/
๋ฆฌ๋ˆ…์Šค๊ฐ€ ํ—๋ฆฌ์šฐ๋“œ์—์„œ ๋งนํ™œ์•ฝํ•˜๋Š” ์‚ฌ๋ก€๋ฅผ ์ œ์‹œํ•˜๊ณ  ์žˆ๋‹ค. ๋ธ”๋ก๋ฒ„์Šคํ„ฐ ์˜ํ™”์—์„œ ๋ฆฌ๋ˆ…์Šค๋ฅผ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์‹ค๋ก€๋ฅผ ๋“ค์–ด ์„ค๋ช…ํ•˜๊ณ  ์žˆ๋‹ค.

โ–  http://www.fsf.org
์ž์œ  ์†Œํ”„ํŠธ์›จ์–ด ์žฌ๋‹จ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. GNU ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋‚ด์šฉ์„ ๋‹ด๊ณ  ์žˆ๋‹ค.

โ–  http://www.fsf.org/software/software.html
GNU์—์„œ ๊ฐœ๋ฐœํ•œ GPL๊ณผ LGPL์„ ๋”ฐ๋ฅด๋Š” ๊ฐ์ข… ์†Œํ”„ํŠธ์›จ์–ด ๋ชฉ๋ก๊ณผ ๊ธฐํƒ€ ๊ณต๊ฐœ ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด ๋ชฉ๋ก์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ๋ƒฅ ์‹ฌ์‹ฌํ’€์ด๋กœ ํ›‘์–ด๋ณด๊ธฐ๋งŒ ํ•ด๋„ ๋ฆฌ๋ˆ…์Šค์— ์–ผ๋งˆ๋งŒํผ ๋งŽ์€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

โ– http://www.pcmag.com/article/0,2997,ss%253D1490%2526s%253D25068%2526a%253D17930,00.asp
๋ฆฌ๋ˆ„์Šค ์˜ค๋ฅธํŒ”์ธ ์•Œ๋ž€ ์ฝ•์Šค๊ฐ€ ์ปค๋„ 2.4 ์œ ์ง€ ๋ณด์ˆ˜๋ฅผ ๋” ์ด์ƒ ๋งก์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ธฐ์‚ฌ๋ฅผ ๋‹ด์€ ํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.marcelothewonderpenguin.com/
์•Œ๋ž€ ์ฝ•์Šค ๋’ค๋ฅผ ์ด์€ ์ƒˆ๋กœ์šด ์ปค๋„ 2.4 ์œ ์ง€๋ณด์ˆ˜ ํŽญ๊ท„(maintainer)์ธ ๋งˆ๋ฅด์ฒผ๋กœ(Marcelo Wormsbecker Tosatti)์˜ ์‹ ์ƒ์ •๋ณด๋ฅผ ๋‹ด์€ ํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.linuxdoc.org/
๋ฆฌ๋ˆ…์Šค ๋ฌธ์„œ ํ”„๋กœ์ ํŠธ(LDP, Linux Document Project)์™€ ๊ด€๋ จํ•œ ๊ฒฐ๊ณผ ๋ฌธ์„œ๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ๋ฆฌ๋ˆ…์Šค์™€ ๊ด€๋ จํ•œ HOW-TO, FAQ๋ฅผ ์œ„์‹œํ•˜์—ฌ ๋„์›€์ด ๋ ๋งŒํ•œ ๊ฐ์ข… ๋ฌธ์„œ๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ์ œ๊ณตํ•œ๋‹ค.

โ–  http://www.kldp.org
๋ฆฌ๋ˆ…์Šค ํ•œ๊ธ€ ๋ฌธ์„œ ํ”„๋กœ์ ํŠธ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ๋ฆฌ๋ˆ…์Šค ๊ด€๋ จ ๊ฐ์ข… ๋ฒˆ์—ญ ๋ฌธ์„œ์™€ ์ฐฝ์ž‘ ๋ฌธ์„œ๋ฅผ ๋ถ„๋ฅ˜๋ณ„/์ฃผ์ œ๋ณ„๋กœ ์ œ๊ณตํ•œ๋‹ค. ๋˜ํ•œ ํŒ ๊ฒŒ์‹œํŒ๊ณผ ์‚ฌ์šฉ๊ธฐ๋„ ์ •๋ฆฌํ•ด๋†“์•˜๋‹ค.

โ–  http://kldp.org/root/cathedral-bazaar/cathedral-bazaar.html#toc10
์—๋ฆญ ๋ ˆ์ด๋จผ๋“œ์”จ๊ฐ€ ์ž‘์„ฑํ•œ ์‹œ์žฅ๊ณผ ์„ฑ๋‹น์„ ๋ฒˆ์—ญํ•œ ๊ธ€์ด๋‹ค. ์ด ๊ธ€์ด ์ธํ„ฐ๋„ท์— ์˜ค๋ฅธ ์ดํ›„๋ถ€ํ„ฐ ๊ณต๊ฐœ ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด ์šด๋™์ด ํ•œ์ธต ํ™œ๊ธฐ๋ฅผ ๋„๊ฒŒ ๋œ๋‹ค.

โ–  http://www-903.ibm.com/developerworks/kr/index.html
IBM์—์„œ ์šด์˜ํ•˜๋Š” ๋ฆฌ๋ˆ…์Šค ๊ฐœ๋ฐœ ์‚ฌ์ดํŠธ(developerWorks ํ•œ๊ธ€ํŒ)๋กœ์„œ ๋ฆฌ๋ˆ…์Šค์™€ ๊ด€๋ จํ•œ ์—ฌ๋Ÿฌ ์œ ์šฉํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

โ–  http://safari.informit.com/mainhom.asp?home
InformIT์—์„œ ์šด์˜ํ•˜๋Š” ์‚ฌํŒŒ๋ฆฌ ์„œ๋น„์Šค ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ์‚ฌํŒŒ๋ฆฌ ์„œ๋น„์Šค๋Š” ๊ตฌ๋งค์— ์•ž์„œ ์ฑ… ๋‚ด์šฉ์„ ์˜จ๋ผ์ธ์œผ๋กœ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๋Š” ์„œ๋น„์Šค์ด๋‹ค. ์•„์‰ฝ๊ฒŒ๋„ ์œ ๋ฃŒ์ด๋‹ค. ์‚ฌํŒŒ๋ฆฌ ๋ฉค๋ฒ„ ์ค‘ ํ•˜๋‚˜์ธ ์˜ค๋ผ์ผ๋ฆฌ ์ถœํŒ์‚ฌ ํ™ˆํŽ˜์ด์ง€์—์„œ๋„ ๋ฐ”๋กœ ์‚ฌํŒŒ๋ฆฌ ์„œ๋น„์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

โ–  http://www.google.com/grphp?hl=en
์œ ์ฆˆ๋„ท ๊ธฐ์‚ฌ๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ๊ธ€(Google) ๊ฒ€์ƒ‰์—”์ง„ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ๊ตฌ๊ธ€์— ์•ž์„œ ์ด๋Ÿฌํ•œ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋˜ ๋ฐ์ž๋‰ด์Šค(deja.com)์‹œ์ ˆ๋ถ€ํ„ฐ ํ˜„์žฌ๊นŒ์ง€ ์—„์ฒญ๋‚œ ๋ถ„๋Ÿ‰์˜ ๊ธฐ์‚ฌ๋ฅผ ๋‹ด๊ณ  ์žˆ๋‹ค. ISP์—์„œ ์ œ๊ณตํ•˜๋Š” ๋‰ด์Šค๊ทธ๋ฃน ์„œ๋น„์Šค์— ๋ถˆ๋งŒ์„ ํ’ˆ๊ณ  ์žˆ๋‹ค๋ฉด ๋ฐ˜๋“œ์‹œ ํ•œ๋ฒˆ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ ๋ฐ”๋ž€๋‹ค.

 

 

3์žฅ์‹ค์‹œ๊ฐ„ ์šด์˜์ฒด์ œ

โ–ก ใ€Ž๋ฆฌ๋ˆ…์Šค ์ปค๋„์˜ ์ดํ•ดใ€, ๋‹ค๋‹ˆ์—˜ ๋ณด๋ฒ ์ด, ๋งˆ๋ฅด์ฝ” ์ฒด์‚ฌํ‹ฐ ์ €, ์ด ํ˜ธ, ์‹ฌ๋งˆ๋กœ ์—ญ, ํ•œ๋น›๋ฏธ๋””์–ด, 2001
์˜ค๋ผ์ผ๋ฆฌ ใ€ŽUnderstanding the Linux Kernelใ€์˜ ๋ฒˆ์—ญํŒ์ด๋‹ค. ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ๋‚ด๋ถ€๋ฅผ ํƒํ—˜ํ•˜๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ์—๊ฒŒ ๋“ฑ๋ถˆ์ด ๋˜์–ด์ค„ ์ฑ…์œผ๋กœ ๋ฆฌ๋ˆ…์Šค๋‚˜ ์œ ๋‹‰์Šค ์šด์˜์ฒด์ œ์— ๋Œ€ํ•ด ์ค‘๊ธ‰ ์ด์ƒ ์ง€์‹์„ ํ™•๋ณดํ•œ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ ํ•ฉํ•˜๋‹ค.

โ–ก ใ€Ž๋Ÿฌ๋‹ ๋ฆฌ๋ˆ…์Šค 3ํŒใ€, ๋งคํŠธ ์›ฐ์‹œ, ๋ผ ์นด์šฐํ”„๋งŒ, ์นผ๋ ˆ ๋”œํ•˜์ด๋จธ ์ €, ์ด๋งŒ์šฉ ์—ญ, ํ•œ๋น›๋ฏธ๋””์–ด, 2001

์˜ค๋ผ์ผ๋ฆฌ ใ€ŽRunning Linux 3rd Editionใ€์˜ ๋ฒˆ์—ญํŒ์ด๋‹ค. ๋ฆฌ๋ˆ…์Šค๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ๋…์ž๊ฐ€ ๊ณ ๋ฏผํ•˜๋ฉด์„œ ์ฝ์„ ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ‘์ •๋ณด๋ฅผ ์œ„ํ•œ ์ •๋ณด๋ฅผ ๋‹ด์€ ๋ฉ”ํƒ€๋ถ(meta-book)’์œผ๋กœ ๋ฆฌ๋ˆ…์Šค๋ผ๋Š” ์šด์˜์ฒด์ œ์— ์ฒ ํ•™์ ์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ๊ตฌ์„ฑ ๋ฐฉ์‹์ด ๋‹๋ณด์ธ๋‹ค. ์šด์˜์ฒด์ œ๋ฅผ ์ „ํ˜€ ๋ชจ๋ฅด๋Š” ์™„์ „ ์ดˆ๋ณด์ž์—๊ฒŒ๋Š” ๋‹ค์†Œ ์–ด๋ ค์šธ ์ˆ˜๋„ ์žˆ๋‹ค.

โ–ก ใ€Ž์˜คํ”ˆ ์†Œ์Šคใ€, ์—๋ฆญ ๋ ˆ์ด๋ชฌ๋“œ ์™ธ ์ €, ์†ก์ฐฝํ›ˆ ์™ธ ์—ญ, ํ•œ๋น›๋ฏธ๋””์–ด, 2000
์˜ค๋ผ์ผ๋ฆฌ ใ€ŽOpen Source: Voice from the Open Source Revolutionsใ€์˜ ๋ฒˆ์—ญํŒ์ด๋‹ค. ๊ณต๊ฐœ ์†Œ์Šค์™€ ๊ด€๋ จํ•œ ์—ฌ๋Ÿฌ ์„ ๊ตฌ์ž๊ฐ€ ์—์„ธ์ด ํ˜•์‹์œผ๋กœ ์ ์€ ๊ธ€์„ ๋ฌถ์€ ์ฑ…์œผ๋กœ ๋ฆฌ๋ˆ…์Šค๋ฅผ ๋น„๋กฏํ•œ ๊ณต๊ฐœ ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์–ด๋–ค ์‹์œผ๋กœ ๋ฐœ์ „ํ•ด์™”์œผ๋ฉฐ ์•ž์œผ๋กœ ์–ด๋–ป๊ฒŒ ๋ฐœ์ „ํ• ์ง€ ์ „๋ฐ˜์ ์ธ ๊ตฌ๋„๋ฅผ ์ œ์‹œํ•œ๋‹ค.

โ–ก ใ€ŽEmbedded Linuxใ€, John Lombardo, New Riders, 2002

x86 ํ”Œ๋žซํผ์—์„œ ๋ฆฌ๋ˆ…์Šค๋ฅผ ์ตœ์†Œํ•œ์œผ๋กœ ํŒจํ‚ค์ง•ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ธฐ์ˆ ํ•œ๋‹ค. ์•„์ฃผ ๋›ฐ์–ด๋‚˜๊ฑฐ๋‚˜ ์ƒˆ๋กœ์šด ๋‚ด์šฉ์€ ๋‹ด๊ณ  ์žˆ์ง€ ์•Š์ง€๋งŒ, x86์—์„œ ์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค๋ฅผ ์žฌ๋ฏธ๋กœ ํƒ‘์žฌํ•ด๋ณด๋ ค๋Š” ์ดˆ๋ณด์ž์—๊ฒŒ๋Š” ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค.

โ–  http://www.linuxdevices.com/articles/AT9888936014.html
์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค์™€ ๊ด€๋ จํ•œ ์š”์•ฝ ๊ฐ€์ด๋“œ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ธฐ์‚ฌ์ด๋‹ค. ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ฝ์„ ๊ฑฐ๋ฆฌ์— ๋Œ€ํ•œ ๋งํฌ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

โ–  http://www.linuxdevices.com/articles/AT3620938516.html
์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค๋ฅผ ์œ„ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์„ ๋ถ„์„ํ•œ ๊ธฐ์‚ฌ์ด๋‹ค. PDA์™€ ๊ฐ™์€ ํŠน์ • ๋ถ„์•ผ์— ์น˜์šฐ์น˜์ง€ ์•Š๊ณ  ์ „๋ฐ˜์ ์ธ ํ๋ฆ„์„ ์ž˜ ์งš๊ณ  ์žˆ๋‹ค.

โ–  http://www.linuxdevices.com/articles/AT9202043619.html
์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค์—์„œ ๋™์ž‘ํ•˜๋Š” ์—ฌ๋Ÿฌ ์œˆ๋„์šฐ ์‹œ์Šคํ…œ์„ ์†Œ๊ฐœํ•˜๋Š” ๊ธฐ์‚ฌ์ด๋‹ค. ์œˆ๋„์šฐ ์‹œ์Šคํ…œ์„ ๊ณต๊ฐœ ์†Œ์Šค์™€ ์ƒ์šฉ ์ œํ’ˆ์œผ๋กœ ๋‚˜๋ˆ„์–ด ์ •๋ฆฌํ•˜์˜€๋‹ค.

โ–  http://www.linuxdevices.com/articles/AT2760742655.html
๋‹ค์–‘ํ•œ ์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค ๋ฐฐํฌํŒ์„ ์†Œ๊ฐœํ•œ ๊ธฐ์‚ฌ์ด๋‹ค. ๊ณต๊ฐœ ์†Œ์Šค์™€ ์ƒ์—…์  ์ง€์› ๋ฐฐํฌํŒ์˜ ํŠน์ง•๊ณผ URL์„ ๊ฐ„๋žตํ•˜๊ฒŒ ์ •๋ฆฌํ•˜๊ณ  ์žˆ๋‹ค.

โ–  http://www.linuxdevices.com/files/article011/index.html
์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค์— ๋Œ€ํ•œ ํ˜„์žฌ ์ƒํƒœ(์‹œ์žฅ ์ƒํ™ฉ, ํ–ฅํ›„ ์ „๋ง)๋ฅผ ์ œ์‹œํ•œ ๊ธฐ์‚ฌ์ด๋‹ค. ๋‹ค์–‘ํ•œ ๋„ํ‘œ์™€ ๊ทธ๋ž˜ํ”„๋ฅผ ํ†ตํ•ด ํ†ต๊ณ„ ์ž๋ฃŒ๋ฅผ ์ œ๊ณตํ•˜๋ฏ€๋กœ ์ „๋žต์ ์ธ ๊ฒฐ์ •์— ์ฐธ๊ณ ํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค.

โ–  http://www-903.ibm.com/developerworks/kr/linux/library/l-emb.html?dwzone=linux
๋ฆฌ๋ˆ…์Šค๊ฐ€ ์ž„๋ฒ ๋””๋“œ ์‹œ์žฅ์„ ์„๊ถŒํ•  ์ˆ˜ ์žˆ๋Š” ์ด์œ ๋ฅผ ์ œ์‹œํ•œ ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://www-903.ibm.com/developerworks/kr/linux/library/l-embl.html?dwzone=linux
์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ๊ฐœ์š”๋ฅผ ์†Œ๊ฐœํ•˜๋Š” ๊ธฐ์‚ฌ์ด๋‹ค. ์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค์™€ ๊ด€๋ จํ•œ ๊ธฐ๋ณธ ์‚ฌํ•ญ์„ ์ž˜ ์š”์•ฝํ•˜๊ณ  ์žˆ๋‹ค.

โ–  http://www.uclinux.org/
์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค ๋งˆ์ดํฌ๋กœ ์ปจํŠธ๋กค๋Ÿฌ ํ”„๋กœ์ ํŠธ์ด๋‹ค. MMU ์—†๋Š” CPU์—์„œ ๋™์ž‘ํ•˜๋Š” ๋ฆฌ๋ˆ…์Šค์— ๋Œ€ํ•œ ์ด์‹ ์ž‘์—… ์„ฑ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

โ–  http://www.linux-mtd.infradead.org/
๋ฆฌ๋ˆ…์Šค๋ฅผ ์œ„ํ•œ MTD(Memory Technology Device) ์„œ๋ธŒ ์‹œ์Šคํ…œ๊ณผ ๊ด€๋ จ์žˆ๋Š” ๊ฐ์ข… ์‚ฌํ•ญ์„ ์ •๋ฆฌํ•œ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ– http://www.microsoft.com/Windows/embedded/xp/evaluation/compare/notlinux.asp
์ž„๋ฒ ๋””๋“œ ํ™˜๊ฒฝ์—์„œ ๋™์ž‘ํ•˜๋Š” ์œˆ๋„์šฐ๊ณ„์—ด ์šด์˜์ฒด์ œ์™€ ๋ฆฌ๋ˆ…์Šค๊ณ„์—ด ์šด์˜์ฒด์ œ๋ฅผ ๋น„๊ตํ•œ ์ž๋ฃŒ์ด๋‹ค.  ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์‚ฌ์—์„œ ์ž‘์„ฑํ–ˆ์œผ๋ฏ€๋กœ ์œˆ๋„์šฐ๊ณ„์—ด์— ๋†’์€ ์ ์ˆ˜๋ฅผ ์ฃผ๊ณ  ์žˆ๋‹ค.

โ–  http://www.lineo.com/news_events/announcements/2001/12.20.html
๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์‚ฌ์—์„œ ๋ฐœํ‘œํ•œ ์ž„๋ฒ ๋””๋“œ ์œˆ๋„์šฐ ๊ณ„์—ด ์šด์˜์ฒด์ œ์™€ ์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค ๊ณ„์—ด ์šด์˜์ฒด์ œ ๋น„๊ต ๋ฌธ๊ฑด์„ ๋ฐ˜๋ฐ•ํ•˜๋Š” ๋‚ด์šฉ์„ ๋‹ด๊ณ  ์žˆ๋‹ค.

โ–  http://www.lynuxworks.com/products/whitepapers/xp-vs-linux.php3
์ž„๋ฒ ๋””๋“œ ํ™˜๊ฒฝ์—์„œ ๋™์ž‘ํ•˜๋Š” ์œˆ๋„์šฐ๊ณ„์—ด๊ณผ ๋ฆฌ๋ˆ…์Šค๊ณ„์—ด ์šด์˜์ฒด์ œ๋ฅผ ๋น„๊ตํ•œ ์ž๋ฃŒ์ด๋‹ค. ๋ฆฌ๋ˆ…์Šค์›์Šค์—์„œ ์ž‘์„ฑํ–ˆ์œผ๋ฏ€๋กœ ๋ฆฌ๋ˆ…์Šค๊ณ„์—ด์— ๋†’์€ ์ ์ˆ˜๋ฅผ ์ฃผ๊ณ  ์žˆ๋‹ค.

  

4์žฅ์‹ค์‹œ๊ฐ„ ์šด์˜์ฒด์ œ 

 

โ–ก ใ€ŽOperating System Concepts 6th editionใ€, A. Silberschatz, J. Peterson, P. Galvin, John Wiley & Sons 2001
์ผ๋ช… '๊ณต๋ฃก์ฑ…'์ด๋ผ ๋ถˆ๋ฆฌ๋ฉฐ ์šด์˜์ฒด์ œ์— ๋Œ€ํ•œ ์ผ๋ฐ˜ ๋‚ด์šฉ์„ ๋‹ค๋ฃจ๋Š” ๊ธฐ๋ณธ์„œ์ด๋‹ค. ์šด์˜์ฒด์ œ๋ผ๋Š” ์„ธ๊ณ„์— ์ฒซ ๊ฑธ์Œ์„ ๋‚ด๋”›๋„๋ก ๋„์™€์ค€๋‹ค. ๋Œ€ํ•™์—์„œ ์šด์˜์ฒด์ œ ๊ณผ๋ชฉ ๊ต์žฌ๋กœ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋ฉฐ, ๋Œ€ํ•™๊ต 3ํ•™๋…„ ์ด์ƒ์ด ์ฝ๊ธฐ์— ์ ํ•ฉํ•˜๋‹ค.

โ–ก ใ€Ž๋ฆฌ๋ˆ…์Šค ์ปค๋„์˜ ์ดํ•ดใ€, ๋‹ค๋‹ˆ์—˜ ๋ณด๋ฒ ์ด, ๋งˆ๋ฅด์ฝ” ์ฒด์‚ฌํ‹ฐ ์ €, ์ด ํ˜ธ, ์‹ฌ๋งˆ๋กœ ์—ญ, ํ•œ๋น›๋ฏธ๋””์–ด 2001๋…„
์˜ค๋ผ์ผ๋ฆฌ ใ€ŽUnderstanding the Linux Kernelใ€์˜ ๋ฒˆ์—ญํŒ์ด๋‹ค. ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ๋‚ด๋ถ€๋ฅผ ํƒํ—˜ํ•˜๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ์—๊ฒŒ ๋“ฑ๋ถˆ์ด ๋˜๋Š” ์ฑ…์œผ๋กœ ๋ฆฌ๋ˆ…์Šค๋‚˜ ์œ ๋‹‰์Šค ์šด์˜์ฒด์ œ์— ๋Œ€ํ•ด ์ค‘๊ธ‰ ์ด์ƒ์˜ ์ง€์‹์„ ํ™•๋ณดํ•œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ๊ธฐ์— ์ ํ•ฉํ•˜๋‹ค.

โ–ก ใ€ŽThe Design of the UNIX Operating Systemใ€, Maurice J. Bach, PTR/PH 1990
์œ ๋‹‰์Šค ์šด์˜์ฒด์ œ ์„ค๊ณ„ ์‚ฌ์ƒ์„ ๋‹ด๊ณ  ์žˆ๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐ”์ด๋ธ”์ด๋‹ค. ์œ ๋‹‰์Šค ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ๊ฟฐ๋šซ์–ด์•ผ ํ•  ํ•„์š”์„ฑ์ด ์žˆ๋‹ค๋ฉด ์ด ์ฑ…๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค. ๋Œ€ํ•™๊ต 4ํ•™๋…„ ์ด์ƒ์ด ์ฝ๊ธฐ์— ์ ํ•ฉํ•˜๋‹ค.

โ–ก ใ€ŽUNIX Internals: The New Frontiersใ€, Uresh Vahalia, Prentice Hall 1996             
์•ž์„œ ใ€ŽThe Design of the UNIX Operating Systemใ€์ด ์œ ๋‹‰์Šค ๋‚ด๋ถ€ ๊ตฌ์กฐ์— ๋Œ€ํ•œ ๋ฐ”์ด๋ธ”์ด๋ผ๋ฉด ์ด ์ฑ…์€ ๋‹ค์–‘ํ•œ ์œ ๋‹‰์Šค ๋ณ€์ข…์— ๋Œ€ํ•œ ์ฃผํ•ด์„œ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๋ช…์พŒํ•œ ์„ค๋ช…๊ณผ ํ’๋ถ€ํ•œ ์˜ˆ์ œ๋Š” ์ด ์ฑ…์„ ์†์—์„œ ๋–ผ๊ธฐ ์–ด๋ ต๊ฒŒ ๋งŒ๋“ ๋‹ค. ๋Œ€ํ•™๊ต 4ํ•™๋…„ ์ด์ƒ์ด ์ฝ๊ธฐ์— ์ ํ•ฉํ•˜๋‹ค.

โ–  http://dictionary.cambridge.org/
์บ ๋ธŒ๋ฆฌ์ง€ ์˜จ๋ผ์ธ ์‚ฌ์ „์ด๋‹ค.

โ–  http://wombat.doc.ic.ac.uk/foldoc/index.html
FOLDOC ์ปดํ“จํ„ฐ ์šฉ์–ด ์ „๋ฌธ ์‚ฌ์ „์ด๋‹ค.

โ– http://research.microsoft.com/~mbj/Mars_Pathfinder/Authoritative_Account.html
ํ™”์„ฑ ํƒ์‚ฌ์„ ์ธ ํŒจ์ŠคํŒŒ์ธ๋”๊ฐ€ ๋ฌธ์ œ๋ฅผ ์ผ์œผ์ผฐ๋˜ ์›์ธ๊ณผ ํ•ด๊ฒฐ์ฑ…์„ ์„ค๋ช…ํ•œ ๊ธ€์ด๋‹ค.

โ–  http://qdn.qnx.com/articles/dec1200/realtime.html
์‹ค์‹œ๊ฐ„๊ณผ ์‹ค์‹œ๊ฐ„ ์šด์˜์ฒด์ œ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์†Œ๊ฐœ๊ฐ€ ๋‚˜์˜จ ๊ธ€์ด๋‹ค.

โ–  http://www.faqs.org/faqs/realtime-computing/faq/
์‹ค์‹œ๊ฐ„์— ๋Œ€ํ•ด ์ž์ฃผ ๋‚˜์˜ค๋Š” ๊ฐ์ข… ์งˆ๋ฌธ์„ ์ •๋ฆฌํ•œ FAQ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

โ–  http://www.linuxdevices.com/files/elecjun00/yodaiken/yodaiken.pdf
FSMLabs์—์„œ ๊ฐœ๋ฐœํ•œ RTLinux์— ๋Œ€ํ•œ ๋ฐœํ‘œ ์ž๋ฃŒ์ด๋‹ค. ํ•˜๋“œ ์‹ค์‹œ๊ฐ„์„ ๋ฆฌ๋ˆ…์Šค์—์„œ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ–ˆ๋Š”์ง€ ์„ค๊ณ„ ์‚ฌ์ƒ์ด ์ž˜ ๋‚˜ํƒ€๋‚˜ ์žˆ๋‹ค.

โ–  http://fsmlabs.com/community/
FSMLabs์—์„œ ์ง€์›ํ•˜๋Š” RTLinux ์ปค๋ฎค๋‹ˆํ‹ฐ ์‚ฌ์ดํŠธ์ด๋‹ค. ์„ค์น˜ ๋ฐฉ๋ฒ•, FAQ, ๋ฐฑ์„œ์™€ ๊ฐ™์€ ์ž๋ฃŒ๊ฐ€ ์žˆ๋‹ค.

โ–  http://www.aero.polimi.it/projects/rtai/
๋ฆฌ๋‹ˆ์˜ค์—์„œ ์ง€์›ํ•˜๋Š” RTAI ์ปค๋ฎค๋‹ˆํ‹ฐ ์‚ฌ์ดํŠธ์ด๋‹ค. ์„ค์น˜ ๋ฐฉ๋ฒ•, FAQ, ๋ฐฑ์„œ์™€ ๊ฐ™์€ ์ž๋ฃŒ๊ฐ€ ์žˆ๋‹ค.

โ–  http://www.mvista.com/realtime/
๋ชฌํƒ€๋น„์Šคํƒ€์—์„œ ๊ฐœ๋ฐœํ•œ ์‹ค์‹œ๊ฐ„ ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ํŒจ์น˜์— ๋Œ€ํ•œ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ์‹ค์‹œ๊ฐ„ ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ํŒจ์น˜์™€ ๊ด€๋ จํ•œ ์—ฌ๋Ÿฌ ์ž๋ฃŒ๊ฐ€ ์žˆ๋‹ค.

โ–  http://www.mech.kuleuven.ac.be/~bruyninc/rthowto/rtHOWTO/rtHOWTO.html
์‹ค์‹œ๊ฐ„๊ณผ ์ž„๋ฒ ๋””๋“œ์— ๋Œ€ํ•œ How-to ๋ฌธ์„œ๋กœ์จ, ๊ธฐ๋ณธ ๋‚ด์šฉ์„ ๊ฐ„๊ฒฐํ•˜๋ฉด์„œ๋„ ์ฒด๊ณ„์ ์œผ๋กœ ์ •๋ฆฌํ•˜๊ณ  ์žˆ๋‹ค.

โ–  http://www.wired.com/news/print/0,1294,13987,00.html
์œˆ๋„์šฐ NT๋ฅผ ํƒ‘์žฌํ•œ ๋ฏธํ•ด๊ตฐ USS ์š”ํฌํƒ€์šดํ˜ธ๊ฐ€ ๋‘ ์‹œ๊ฐ„ ๋™์•ˆ ๋ฐ”๋‹ค์—์„œ ํ‘œ๋ฅ˜ํ•  ์ˆ˜ ๋ฐ–์— ์—†์—ˆ๋˜ ์›์ธ์„ ๋ถ„์„ํ•œ ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://www.pasc.org/
ํฌ์ง์Šค ํ‘œ์ค€์„ ์ œ์ •ํ•˜๋Š” PASC(Portable Application Standards Committee) ํ™ˆํŽ˜์ด์ง€๋กœ, ํฌ์ง์Šค์— ๋Œ€ํ•œ ์ •๋ณด๋„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

โ–  http://www.delphion.com/details?pn=US05995745__
FSMLabs์—์„œ ์ถœ์›ํ•œ RTLinux ๊ด€๋ จ ํŠนํ—ˆ๋ฅผ ์„ค๋ช…ํ•˜๋Š” ํŽ˜์ด์ง€์ด๋‹ค. ์„ธ๋ถ€ ๋‚ด์šฉ์„ ๋ชจ๋‘ ๋ณด๋ ค๋ฉด subscription์ด ํ•„์š”ํ•˜๋‹ค.

๋ชฉ์ฐจ

 

 

5์žฅ์œˆ๋„์šฐ ์‹œ์Šคํ…œ 

 

โ–ก ใ€Ž๋Ÿฌ๋‹ ๋ฆฌ๋ˆ…์Šค 3ํŒใ€, ๋งคํŠธ ์›ฐ์‹œ, ๋ผ ์นด์šฐํ”„๋งŒ, ์นผ๋ ˆ ๋”œํ•˜์ด๋จธ ์ €, ์ด๋งŒ์šฉ ์—ญ, ํ•œ๋น›๋ฏธ๋””์–ด, 2001

์˜ค๋ผ์ผ๋ฆฌ ใ€ŽRunning Linux 3rd Editionใ€์˜ ๋ฒˆ์—ญํŒ์ด๋‹ค. ๋ฆฌ๋ˆ…์Šค๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ๋…์ž๊ฐ€ ๊ณ ๋ฏผํ•˜๋ฉด์„œ ์ฝ์„ ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ‘์ •๋ณด๋ฅผ ์œ„ํ•œ ์ •๋ณด๋ฅผ ๋‹ด์€ ๋ฉ”ํƒ€๋ถ(meta-book)’์œผ๋กœ ๋ฆฌ๋ˆ…์Šค๋ผ๋Š” ์šด์˜์ฒด์ œ์— ์ฒ ํ•™์ ์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ๊ตฌ์„ฑ ๋ฐฉ์‹์ด ๋‹๋ณด์ธ๋‹ค. ์šด์˜์ฒด์ œ๋ฅผ ์ „ํ˜€ ๋ชจ๋ฅด๋Š” ์™„์ „ ์ดˆ๋ณด์ž์—๊ฒŒ๋Š” ๋‹ค์†Œ ์–ด๋ ค์šธ ์ˆ˜๋„ ์žˆ๋‹ค.

โ–ก ใ€ŽIntroduction to the X Window Systemใ€, Oliver Jones, Prentice-Hall, 1989
X ์œˆ๋„์šฐ์— ๋Œ€ํ•œ ๊ณ ์ „์ ์ธ ์ž…๋ฌธ์„œ์ด๋‹ค. 1989๋…„์— ๋‚˜์™”๊ธฐ ๋•Œ๋ฌธ์— ํŽธ์ง‘ ์Šคํƒ€์ผ์€ ์ƒ๋‹นํžˆ ๋ณผํ’ˆ์—†์ง€๋งŒ ๋‚ด์šฉ ์ž์ฒด๋งŒ ๋†“๊ณ  ๋ณด๋ฉด ์•„์ฃผ ํ›Œ๋ฅญํ•˜๋‹ค. ํŽ˜์กธ๋“œ๊ฐ€ ์ง€์€ ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ ์œˆ๋„์šฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž…๋ฌธ์„œ์™€ ๋น„๊ฒฌํ•  ๋งŒํ•˜๋‹ค.

โ–ก ใ€ŽX Window System 2nd Editionใ€, Robert W. Scheifler & James Gettys, Digital Press, 1990
X๋ฅผ ๋งŒ๋“  ์•„๋ฒ„์ง€์ธ ์„ธ์ดํ”Œ๋Ÿฌ์™€ ๊ฒŒํ‹ฐ์Šค๊ฐ€ ์ง€์€ X ์œˆ๋„์šฐ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ๋ฐ”์ด๋ธ”์ด๋‹ค. ์ตœ์‹  ๋ฒ„์ „์— ๋Œ€ํ•œ ๋‚ด์šฉ์€ X ์œˆ๋„์šฐ ํŒจํ‚ค์ง€ ๋‚ด๋ถ€์—์„œ ์˜จ๋ผ์ธ ๋ฌธ์„œ ํ˜•์‹์œผ๋กœ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

โ–ก ใ€ŽThe X Toolkit Cookbookใ€, Paul E. Kimball, PTR/PH, 1995
ํ˜„์žฌ ๋‚˜์™€์žˆ๋Š” X ์œˆ๋„์šฐ ํˆดํ‚ท ์ฑ… ์ค‘์— ๊ฐ€์žฅ ์ •๋ฆฌ๊ฐ€ ์ž˜๋˜์–ด์žˆ์œผ๋ฉฐ, ์ˆจ๊ฒจ์ง„ ๋ช‡๋ช‡ ๋น„๋ฐ€์„ ๋ช…์พŒํ•˜๊ฒŒ ํ•ด์„คํ•˜๊ณ  ์žˆ๋‹ค. ๋ชจํ‹ฐํ”„๋‚˜ ์•„๋ฐ๋‚˜ ์œ„์ ฏ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ๋ˆ„๊ตฌ๋‚˜ ํ•œ๋ฒˆ ์ •๋„ ์ด ์ฑ…์„ ์ฝ์„ ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

โ–ก ใ€ŽVolume 1: Xlib Programming Manualใ€, Adrian Nye, O’Reilly, 1992
์˜ค๋Š˜๋‚ ์˜ ์˜ค๋ผ์ผ๋ฆฌ๊ฐ€ ์กด์žฌํ•˜๋„๋ก ๋งŒ๋“  ์ดˆ๊ธฐ ์—ญ์ž‘์ด๋‹ค. X ํ™˜๊ฒฝ์—์„œ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ฐ„๊ฒฐ ๋ช…๋ฃŒํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๊ณ  ์žˆ๋‹ค.

โ–  http://wombat.doc.ic.ac.uk/foldoc/index.html
FOLDOC ์ปดํ“จํ„ฐ ์šฉ์–ด ์ „๋ฌธ ์‚ฌ์ „์ด๋‹ค.

โ–  http://www.linuxdevices.com/articles/AT9202043619.html
์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์—ฌ๋Ÿฌ ๊ณต๊ฐœ/์ƒ์šฉ ์œˆ๋„์šฐ ์‹œ์Šคํ…œ์„ ์†Œ๊ฐœํ•˜๋Š” ๊ธฐ์‚ฌ์ด๋‹ค. ์œˆ๋„์šฐ ์‹œ์Šคํ…œ์„ ์ƒ๋‹นํžˆ ์ฒด๊ณ„์ ์œผ๋กœ ์ •๋ฆฌํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ํŠนํžˆ ์ฒซ ๋‹จ์ถ”๋ฅผ ๊ฟฐ๋Š” ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ ๋‹นํ•˜๋‹ค.

โ–  http://www.linuxdevices.com/articles/AT9035650492.html
์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค์—์„œ X ์œˆ๋„๋ฅผ ์ ์šฉํ•จ์— ์žˆ์–ด ๊ณ ๋ คํ•  ์—ฌ๋Ÿฌ ์‚ฌํ•ญ์„ ์†Œ๊ฐœํ•˜๋Š” ๋ฐœํ‘œ ์ž๋ฃŒ์ด๋‹ค. ๋‹ค๋ฅธ ๊ธฐ์‚ฌ์™€๋Š” ๋‹ฌ๋ฆฌ ์ƒ๋‹นํžˆ ์ •๋Ÿ‰์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ์ ‘๊ทผํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ, ๋น„๊ต ์ž๋ฃŒ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ์— ๋ถ€์กฑํ•จ์ด ์—†๋‹ค.

โ–  http://www.linuxdevices.com/links/LK4761626139.html
๋งˆ์ดํฌ๋กœ ์œˆ๋„์šฐ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•ด ๊ฐ„๋žตํ•˜๊ฒŒ ์†Œ๊ฐœํ•˜๋Š” ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://www.linuxdevices.com/links/LK7730481424.html
ํ”ผ์ฝ”๊ตฌ์ด ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•ด ๊ฐ„๋žตํ•˜๊ฒŒ ์†Œ๊ฐœํ•˜๋Š” ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://www.xfree86.org
x86, MacOS, ๊ธฐํƒ€ ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ์—์„œ ๋™์ž‘ํ•˜๋Š” ๊ณต๊ฐœ์†Œ์Šค X ์œˆ๋„์šฐ ํ™˜๊ฒฝ์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด ์„ค๋ฆฝํ•œ XFree86 ํ”„๋กœ์ ํŠธ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. XFree86 ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ž์œ ๋กญ๊ฒŒ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋‹ค.

โ–  http://www.x.org
X ์ปจ์†Œ์‹œ์›€ ํ›„์†์ธ ์˜คํ”ˆ ๊ทธ๋ฃน ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. X ์œˆ๋„์šฐ ์‹œ์Šคํ…œ ์›๋ณธ ์†Œ์Šค์™€ ๊ฐ์ข… ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์ž์œ ๋กญ๊ฒŒ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋‹ค.

โ–  http://www.rahul.net/kenton/xsites.framed.html
ํ•„์ž๊ฐ€ ๋ณธ ์ธํ„ฐ๋„ท์—์„œ ๊ฐ€์žฅ ๋›ฐ์–ด๋‚œ X ์œˆ๋„์šฐ์™€ ๋ชจํ‹ฐํ”„ ์ •๋ฆฌ ์‚ฌ์ดํŠธ์ด๋‹ค. ๊ทธ์•ผ๋ง๋กœ ์ฃผ์˜ฅ ๊ฐ™์€ ์ž๋ฃŒ๋“ค์ด ์‹ค๋ ค์žˆ์œผ๋ฏ€๋กœ, X ์œˆ๋„๋‚˜ ๋ชจํ‹ฐํ”„ ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ์ด ์‚ฌ์ดํŠธ์— ๋“ค๋Ÿฌ์„œ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์–ป๊ธฐ ๋ฐ”๋ž€๋‹ค.

โ–  http://www.openmotif.org/
๊ณต๊ฐœ์šฉ ๋ชจํ‹ฐํ”„ ํˆดํ‚ท์„ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ์ด ํŽ˜์ด์ง€๋Š” ํ˜„์žฌ BX๋ผ๋Š” ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ์ƒ์„ฑ๋„๊ตฌ๋กœ ์œ ๋ช…ํ•œ ICS ์‚ฌ์—์„œ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ๋‹ค.

โ–  http://www.opengroup.org/openmotif/
์˜คํ”ˆ ๊ทธ๋ฃน์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ์˜คํ”ˆ ๋ชจํ‹ฐํ”„ ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ๊ณต๊ฐœ์šฉ ๋ชจํ‹ฐํ”„ ํˆดํ‚ท ์ตœ์‹  ๋ฒ„์ „์„ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ชจํ‹ฐํ”„ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ๊ณต๊ฐ„๋„ ๋งˆ๋ จํ•˜๊ณ  ์žˆ๋‹ค. ์ž„๋ฒ ๋””๋“œ ๋ชจํ‹ฐํ”„์— ๋Œ€ํ•œ ์ •๋ณด๋„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

โ–  http://www.motifdeveloper.com/news/news12.html
์˜ค๋ผ์ผ๋ฆฌ์˜ ๋ชจํ‹ฐํ”„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋งค๋‰ด์–ผ๊ณผ ๋ ˆํผ๋Ÿฐ์Šค ๋งค๋‰ด์–ผ์„ ์˜จ๋ผ์ธ ๋ฌธ์„œ๋กœ ๋ฐ›์•„๋ณผ ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.lesstif.org/
๋ชจํ‹ฐํ”„๋ฅผ ์ž์œ ๋กญ๊ฒŒ ์“ธ ๋ชฉ์ ์œผ๋กœ ์‹œ์ž‘ํ•œ ๋ ˆ์Šคํ‹ฐํ”„ ํ”„๋กœ์ ํŠธ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ๋ ˆ์Šคํ‹ฐํ”„๋Š” ๋ผ์ด์„ผ์Šค์— ์ œํ•œ์ด ์žˆ๋Š” ๊ณต๊ฐœ์šฉ ๋ชจํ‹ฐํ”„์™€๋Š” ๋‹ฌ๋ฆฌ LGPL ๋ผ์ด์„ผ์Šค๋ฅผ ๋”ฐ๋ฅด๋ฏ€๋กœ ์™„๋ฒฝํ•œ ๊ณต๊ฐœ ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด์ด๋‹ค. ๋ ˆ์Šคํ‹ฐํ”„๋Š” ๋ชจํ‹ฐํ”„์™€ ์›์‹œ ์ฝ”๋“œ ๋‹จ๊ณ„์—์„œ ๊ฑฐ์˜ 99% ํ˜ธํ™˜์„ฑ์„ ์œ ์ง€ํ•˜๋ฏ€๋กœ, ๊ฐ์ข… ๊ณต๊ฐœ ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฆ๊ฒจ ์‚ฌ์šฉํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๊ธฐ๋„ ํ•˜๋‹ค.

โ–  http://www.gtk.org/
Gtk+ ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ๋‹ค์–‘ํ•œ ํ”„๋กœ์ ํŠธ์— ๊ฑธ์นœ ์—ฌ๋Ÿฌ ์ž๋ฃŒ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ตœ์‹  ๋ฒ„์ „ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

โ–  http://www.efalk.org/Widgets/
X์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ์ข… ์œ„์ ฏ ์ง‘ํ•ฉ์„ ๋น„๊ตํ•œ ๊ธฐ์‚ฌ์ด๋‹ค. ๋‹ค์–‘ํ•œ ์œ„์ ฏ ์ง‘ํ•ฉ์„ ๊ธฐ๋Šฅ๊ณผ ์™ธ์–‘๋ฉด์—์„œ ๋ถ„์„ํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ, ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ํˆดํ‚ท์„ ์„ ํƒํ•  ๋•Œ ์ฐธ์กฐํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค.

โ–  http://www.microwindows.org/
๋งˆ์ดํฌ๋กœ ์œˆ๋„์šฐ ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ์›์‹œ ์ฝ”๋“œ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐ์ข… ๋งค๋‰ด์–ผ๊ณผ ํ•™์Šต์„œ๋„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

โ–  http://www.fltk.org
X11, ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ ์œˆ๋„์šฐ, ๋งˆ์ดํฌ๋กœ ์œˆ๋„์šฐ์—์„œ ์“ธ ์ˆ˜ ์žˆ๋Š” FLTK ํ”„๋กœ์ ํŠธ ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://tinywidgets.sourceforge.net/
๋งˆ์ดํฌ๋กœ ์œˆ๋„์šฐ์—์„œ ์“ธ ์ˆ˜ ์žˆ๋Š” ํƒ€์ด๋‹ˆ ์œ„์ ฏ ํ”„๋กœ์ ํŠธ ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.trolltech.com/
Qt์™€ Qt/์ž„๋ฒ ๋””๋“œ๋ฅผ ๋งŒ๋“  ํŠธ๋กคํ…Œํฌ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://pgui.sourceforge.net/
ํ”ผ์ฝ”๊ตฌ์ด ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ๊ฐ์ข… ๊ธฐ์‚ฌ์™€ ๋ฌธ์„œ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ”ผ์ฝ”๊ตฌ์ด ํŒจํ‚ค์ง€๋„ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

2๋ถ€. ์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก  

6์žฅ์ œํ’ˆ ๊ธฐํš ๋‹จ๊ณ„์—์„œ ๊ณ ๋ คํ•  ์‚ฌํ•ญ 

 

โ–ก ใ€ŽCโˆ™C++๋กœ ์ž‘์„ฑํ•˜๋Š” ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋ž˜๋ฐใ€, ๋งˆ์ดํด ๋ฐ” ์ €, ์ด์„์ฃผ ์—ญ, ํ•œ๋น›๋ฏธ๋””์–ด, 2000 
C์™€ C++ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•ด ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ์„ ์ œ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ธฐ์ˆ ํ•œ๋‹ค. ์•„์‰ฝ๊ฒŒ๋„ ์ด ์ฑ…์— ๋‚˜์˜ค๋Š” ๋ณด๋“œ๋ฅผ ๊ตญ๋‚ด์—์„œ ๊ตฌํ•˜๊ธฐ ์–ด๋ ค์›Œ ๋ณธ๊ฒฉ์ ์ธ ์‹ค์Šต์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ํ•˜์ง€๋งŒ ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ๋‹จ๊ธฐ๊ฐ„์— ์žก๊ธฐ์—๋Š” ์ ๋‹นํ•˜๋‹ค.

โ–ก ใ€ŽEmbedded Linuxใ€, John Lombardo, New Riders, 2002

x86 ํ”Œ๋žซํผ์—์„œ ๋ฆฌ๋ˆ…์Šค๋ฅผ ์ตœ์†Œํ•œ์œผ๋กœ ํŒจํ‚ค์ง•ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ธฐ์ˆ ํ•œ๋‹ค. ์•„์ฃผ ๋›ฐ์–ด๋‚˜๊ฑฐ๋‚˜ ์ƒˆ๋กœ์šด ๋‚ด์šฉ์€ ๋‹ด๊ณ  ์žˆ์ง€ ์•Š์ง€๋งŒ, x86์—์„œ ์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค๋ฅผ ์žฌ๋ฏธ๋กœ ํƒ‘์žฌํ•ด๋ณด๋ ค๋Š” ์ดˆ๋ณด์ž์—๊ฒŒ๋Š” ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค.

 

 

7์žฅํƒ€๊ฒŸ ๋ณด๋“œ ์„ ์ • ๋ฐฉ๋ฒ• 

 

โ–ก ใ€ŽC, C++๋กœ ์ž‘์„ฑํ•˜๋Š” ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋ž˜๋ฐใ€, ๋งˆ์ดํด ๋ฐ” ์ €, ์ด์„์ฃผ ์—ญ, ํ•œ๋น›๋ฏธ๋””์–ด, 2000

C์™€ C++ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ์„ ์ œ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ธฐ์ˆ ํ•˜๊ณ  ์žˆ๋‹ค. ์•„์‰ฝ๊ฒŒ๋„ ์ด ์ฑ…์— ๋‚˜์˜ค๋Š” ๋ณด๋“œ๋ฅผ ๊ตญ๋‚ด์—์„œ ๊ตฌํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— ๋ณธ๊ฒฉ์ ์ธ ์‹ค์Šต์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ๋‹จ๊ธฐ๊ฐ„์— ์žก๊ธฐ์—๋Š” ์ ๋‹นํ•˜๋‹ค.

โ–ก SWAN-II ์‚ฌ์šฉ์ž ์„ค๋ช…์„œ

์•„์ดํŠธ๋กœ๋‹‰์Šค(์ œํ’ˆ์— ํฌํ•จ)

โ–  http://www.linuxdevices.com/articles/AT4548672342.html
ํฌ์ŠคํŠธ-PC ์‹œ๋Œ€๋ฅผ ๋„๋ž˜ํ•ด ์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค๋ฅผ ๋™์ž‘์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” SOC์— ๋Œ€ํ•ด ์†Œ๊ฐœํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.linuxdevices.com/articles/AT4313418436.html
๋ฆฌ๋ˆ…์Šค๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ์ข… SOC(System On Chip)์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ชจ์•„๋†“์€ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ARM, MIPS, MPC, x86์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ์ข… ์ œํ’ˆ์„ ์†Œ๊ฐœํ•œ๋‹ค.

โ–  http://www.uclinux.org/
MMU๊ฐ€ ์—†๋Š” CPU๋ฅผ ์œ„ํ•œ ๋ฆฌ๋ˆ…์Šค์ธ uClinux ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.advantech.com/products/PCM-5824.asp
์–ด๋“œ๋ฐดํ…์—์„œ ๋งŒ๋“  Geode ๊ธฐ๋ฐ˜ SBC(Single Board Computer)์ธ PCM-5824์— ๋Œ€ํ•œ ๊ฐ์ข… ์ž๋ฃŒ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

โ–  http://www.national.com/appinfo/solutions/0,2062,239,00.html
๋„ค์…”๋‚  ์„ธ๋ฏธ์ปจ๋•ํ„ฐ์—์„œ ๋งŒ๋“  SOC์ธ Geode์— ๋Œ€ํ•œ ๊ฐ์ข… ์ž๋ฃŒ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

โ–  http://www.linuxdevices.com/products/PD7399900675.html
์ธํ…”์—์„œ ๋งŒ๋“  SA-1110 ๋งˆ์ดํฌ๋กœํ”„๋กœ์„ธ์Šค ๊ฐœ๋ฐœ ์ฐธ์กฐ ๋ณด๋“œ์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

โ– http://developer.intel.com/design/pca/applicationsprocessors/manuals/index.htm
์ธํ…”์—์„œ ๋งŒ๋“  ๊ฐ์ข… ๋งˆ์ดํฌ๋กœํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ๋ฌธ์„œ๋ฅผ ๋ชจ์•„๋†“์€ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://developer.intel.com/design/strong/datashts/278241.htm
์ธํ…”์—์„œ ๋งŒ๋“  SA-1110 ๋งˆ์ดํฌ๋กœ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ๋ฐ์ดํ„ฐ์‹œํŠธ๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://developer.intel.com/design/strong/guides/278278.htm
์ธํ…”์—์„œ ๋งŒ๋“  SA-1110 ๋งˆ์ดํฌ๋กœ ํ”„๋กœ์„ธ์Šค ๊ฐœ๋ฐœ ์ฐธ์กฐ ๋ณด๋“œ์ธ ์•„์‚ฌ๋ฒณ์— ๋Œ€ํ•œ ๊ฐ์ข… ์ž๋ฃŒ๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.linfos.co.kr/htm/pro_li01.htm
๋ฆฐํฌ์Šค์—์„œ ๋งŒ๋“  SA-1110 ๋งˆ์ดํฌ๋กœ ํ”„๋กœ์„ธ์Šค ๊ฐœ๋ฐœ ์ฐธ์กฐ ๋ณด๋“œ์ธ TBEL1110์— ๋Œ€ํ•œ ๊ฐ์ข… ์ž๋ฃŒ๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://developer.intel.com/design/intelxscale/
์ธํ…”์—์„œ ๊ฐœ๋ฐœํ•œ StrongARM ํ›„์† ๋ฒ„์ „์ธ XScale์— ๋Œ€ํ•œ ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.ipaqlinux.com/
StrongARM์„ ํƒ‘์žฌํ•œ PDA์ธ iPAQ์— ๋ฆฌ๋ˆ…์Šค๋ฅผ ํƒ‘์žฌํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ •๋ณด์™€ ๋งํฌ๋ฅผ ๋ชจ์•„๋†“์€ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.handhelds.org/
StrongARM์„ ํƒ‘์žฌํ•œ PDA์ธ iPAQ์„ ์œ„ํ•œ ๋ฆฌ๋ˆ…์Šค ๋ฐฐํฌํŒ๊ณผ ์„ค์น˜ ๋…ธํ•˜์šฐ๋ฅผ ๋ชจ์•„๋†“์€ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.arm.com/
๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉํ•˜๋Š” 32๋น„ํŠธ RISC ๋ฐฉ์‹ ์ž„๋ฒ ๋””๋“œ CPU๋ฅผ ์„ค๊ณ„ํ•œ ARM ๋ณธ์‚ฌ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.itronixit.co.kr/products_cpu_swan2.html
์•„์ดํŠธ๋กœ๋‹‰์Šค์—์„œ ๋งŒ๋“  MPC860 ๊ธฐ๋ฐ˜ SBC(Single Board Computer)์ธ SWAN-II์— ๋Œ€ํ•œ ๊ฐ์ข… ์ž๋ฃŒ๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://e-www.motorola.com/webapp/sps/site/prod_summary.jsp?code=MPC860&nodeId=01M0ypBDKCb
๋ชจํ† ๋กœ๋ผ์—์„œ ๋งŒ๋“  ํŒŒ์›ŒPC ๊ณ„์—ด SOC์ธ MPC860์— ๋Œ€ํ•œ ๊ฐ์ข… ์ž๋ฃŒ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

โ–  http://e-www.motorola.com/brdata/PDFDB/docs/MPC860EC.pdf
MPC860์— ๋Œ€ํ•œ ์ƒ์„ธ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” PDF ํŒŒ์ผ์ด๋‹ค.

โ–  http://e-www.motorola.com/webapp/sps/site/taxonomy.jsp?nodeId=01M0ypBDKCb
๋ชจํ† ๋กœ๋ผ์—์„œ ํŒŒ์›ŒPC ์ฝ”์–ด ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“  MPC8xx ๊ณ„์—ด CPU์— ๋Œ€ํ•œ ๋น„๊ต ์ •๋ณด๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

โ–  http://penguinppc.org/embedded/
ํŒŒ์›ŒPC๋ฅผ ์ฑ„ํƒํ•œ ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ์„ ์œ„ํ•œ ๊ฐ์ข… ์ž๋ฃŒ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

โ–  http://www.macraigor.com/zenofbdm.pdf
BDM์— ๋Œ€ํ•œ ๋ฉ‹์ง„ ์†Œ๊ฐœ์„œ์ด๋‹ค. BDM์— ๋Œ€ํ•œ ์—ญ์‚ฌ์™€ ๊ฐ„๋žตํ•œ ๋””๋ฒ„๊น… ๋ฐฉ๋ฒ•์„ ๊ธฐ์ˆ ํ•˜๊ณ  ์žˆ๋‹ค.

โ–  [ํ†ต๊ณ„] http://www.linuxdevices.com/files/article011/sld023.html
์ž„๋ฒ ๋””๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ–ฅํ›„ ์ฑ„ํƒํ•˜๋ฆฌ๋ผ ์˜ˆ์ƒ๋˜๋Š” CPU ๋น„์œจ์„ ๋ณด์—ฌ์ฃผ๋Š” ์ž๋ฃŒ์ด๋‹ค.

โ–  [ํ†ต๊ณ„] http://www.linuxdevices.com/files/article011/sld024.html
์ž„๋ฒ ๋””๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ–ฅํ›„ ์ฑ„ํƒํ•˜๋ฆฌ๋ผ ์˜ˆ์ƒ๋˜๋Š” ํ•˜๋“œ์›จ์–ด ํ”Œ๋žซํผ ๋น„์œจ์„ ๋ณด์—ฌ์ฃผ๋Š” ์ž๋ฃŒ์ด๋‹ค.

โ–  [ํ†ต๊ณ„] http://www.linuxdevices.com/files/article011/sld025.html
์ž„๋ฒ ๋””๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ–ฅํ›„ ์ฑ„ํƒํ•˜๋ฆฌ๋ผ ์˜ˆ์ƒ๋˜๋Š” ์ฃผ๋ณ€ ์žฅ์น˜๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์ž๋ฃŒ์ด๋‹ค.

โ–  [ํ†ต๊ณ„] http://www.linuxdevices.com/files/article011/sld026.html
์ž„๋ฒ ๋””๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ–ฅํ›„ ์ฑ„ํƒํ•˜๋ฆฌ๋ผ ์˜ˆ์ƒ๋˜๋Š” ์šด์˜์ฒด์ œ๋ฅผ ์˜ฌ๋ฆฌ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์žฅ์น˜๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์ž๋ฃŒ์ด๋‹ค.

๋ชฉ์ฐจ

 

 

8์žฅ์žฅ์น˜ ์„ ์ •๊ณผ ๋“œ๋ผ์ด๋ฒ„ ๊ตฌํ˜„ 

 

โ–ก ใ€Ž๋ฆฌ๋ˆ…์Šค ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„ใ€, ์•Œ๋ ‰์‚ฐ๋“œ๋กœ ๋ฃจ๋น„๋‹ˆ ์ €, ๊น€์ธ์„ฑ/๋ฅ˜ํƒœ์ค‘ ์—ญ, ํ•œ๋น›๋ฏธ๋””์–ด, 2000

๋ฆฌ๋ˆ…์Šค์—์„œ ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ œ์ž‘ํ•˜๋Š”์ง€ ๋ฐฉ๋ฒ•์„ ๊ตฌ์ฒด์ ์œผ๋กœ ์†Œ๊ฐœํ•œ๋‹ค. ๋ฆฌ๋ˆ…์Šค ์ปค๋„์— ๋Œ€ํ•ด ์–ด๋Š ์ •๋„ ์ง€์‹์ด ์žˆ์–ด์•ผ ํ•˜๋ฏ€๋กœ ์ดˆ๋ณด์ž๊ฐ€ ์ฝ๊ธฐ์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š๋‹ค. ๋‹จ์ ์€ ์ปค๋„ 2.2์— ๋Œ€ํ•ด์„œ ๋‹ค๋ฃฌ๋‹ค๋Š” ์ ์ด๋‹ค.

โ–ก ใ€ŽLinux Device Driver 2nd Edใ€, Alessandro Rubini, O’Reilly, 2001
ใ€Ž๋ฆฌ๋ˆ…์Šค ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„ใ€ ์›์„œ 2ํŒ์œผ๋กœ ์ปค๋„ 2.4๋ฅผ ๋‹ค๋ฃฌ๋‹ค. ์ธ์‡„ ๋ฒ„์ „์€ ๋ฌผ๋ก ์ด๊ณ  ์ผ๋ถ€ ๋ฐœ์ทŒ๊ฐ€ ์•„๋‹Œ ์™„๋ฒฝํ•œ ์˜จ๋ผ์ธ ๋ฒ„์ „๊นŒ์ง€ ๋‚˜์™€ ์žˆ์œผ๋ฏ€๋กœ ํฐ ๋ถ€๋‹ด ์—†์ด ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค.

โ–ก ใ€Ž๋„คํŠธ์›Œํฌ ํ”„๋ฆฐํŒ…ใ€, ํ† ๋“œ ๋ ˆ์ด๋”๋งˆ์ปค, ๋งคํŠœ ๊ฐœ์ŠคํŠธ ์ €, ๋ฐ•์žฌํ˜ธ, ์ด์˜๋ฏธ ์—ญ, ํ•œ๋น›๋ฏธ๋””์–ด, 2001

๋ฆฌ๋ˆ…์Šค์™€ ์œ ๋‹‰์Šค๋ฅผ ์„œ๋ฒ„๋กœ, ์œˆ๋„์šฐ, ๋งฅ, ๋„ท์›จ์–ด๋ฅผ ํด๋ผ์ด์–ธํŠธ๋กœ ๊ตฌ์„ฑํ•œ ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์—์„œ ์ธ์‡„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ธฐ์ˆ ํ•œ๋‹ค. BOOTP, DHCP์™€ ๊ฐ™์€ ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•ด ํ”„๋ฆฐํ„ฐ๋ฅผ ๋ถ€ํŒ…ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์†Œ๊ฐœํ•œ๋‹ค.

โ–ก ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ๋‚ด๋ถ€ /Documentation/devices.txt
๋ฆฌ๋ˆ…์Šค์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ฐ์ข… ์žฅ์น˜์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์†Œ๊ฐœ์™€ ์žฅ์น˜ ๋ฒˆํ˜ธ๋ฅผ ์ •์˜ํ•œ ๋ฌธ์„œ์ด๋‹ค. ๋ฆฌ๋ˆ…์Šค์—์„œ ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋ฐ˜๋“œ์‹œ ์ฐธ์กฐํ•ด์•ผ ํ•˜๋Š” ํ‘œ์ค€ ๋ฌธ์„œ์ด๋‹ค.

โ–  http://lhd.datapower.com/
๋ฆฌ๋ˆ…์Šค์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ์ข… ํ•˜๋“œ์›จ์–ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ์ œํ’ˆ ์ด๋ฆ„์ด๋‚˜ ์ œํ’ˆ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

โ–  http://www.tldp.org/HOWTO/Hardware-HOWTO/
๋ฆฌ๋ˆ…์Šค ํ•˜๋“œ์›จ์–ด ํ˜ธํ™˜์„ฑ๊ณผ ๊ด€๋ จํ•œ HOW-TO ๋ฌธ์„œ์ด๋‹ค. ๋‹ค์–‘ํ•œ ์ฃผ๋ณ€ ์žฅ์น˜์— ๋Œ€ํ•œ ํ˜ธํ™˜์„ฑ ์—ฌ๋ถ€๋ฅผ ์•Œ๋ ค์ค€๋‹ค. ์ œํ’ˆ ์ด๋ฆ„์ด๋‚˜ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ํ†ตํ•œ ๊ฒ€์ƒ‰์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๋ชฉ์ฐจ์—์„œ ์ฐพ์•„ ๋“ค์–ด๊ฐ€๊ธฐ ๋ฐ”๋ž€๋‹ค.

โ–  http://www.tldp.org/HOWTO/HOWTO-INDEX/hardware.html
๋ฆฌ๋ˆ…์Šค์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ•˜๋“œ์›จ์–ด์— ๋Œ€ํ•œ HOW-TO๋ฅผ ์ง‘๋Œ€์„ฑํ•œ ์ƒ‰์ธ์„ ์ œ๊ณตํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.torque.net/linux-pp.html
๋ฆฌ๋ˆ…์Šค์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์™ธ์žฅ ์ฃผ๋ณ€ ์žฅ์น˜(PC์™€ ๋ณ‘๋ ฌ ํฌํŠธ๋กœ ํ†ต์‹ )์— ๋Œ€ํ•œ ๋งํฌ์™€ ์ œํ’ˆ ๋ชฉ๋ก์„ ์ œ๊ณตํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.redhat.com/support/hardware/
๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ ๋ฐฐํฌํŒ ํšŒ์‚ฌ์ธ ๋ ˆ๋“œํ–‡์„ ์œ„ํ•œ ๋ฆฌ๋ˆ…์Šค ํ˜ธํ™˜ ํ•˜๋“œ์›จ์–ด ๋ชฉ๋ก์„ ์ œ๊ณตํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•(์ œ์กฐ์‚ฌ/์นดํ…Œ๊ณ ๋ฆฌ/ํ•˜๋“œ์›จ์–ด ํด๋ž˜์Šค/๋ฐฐํฌํŒ ์ข…๋ฅ˜/์ธ์ฆ ์ƒํƒœ)์œผ๋กœ ํ•˜๋“œ์›จ์–ด๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

โ–  http://www.linuxhardware.net/
๋ฆฌ๋ˆ…์Šค ๊ด€๋ จ ๊ฐ์ข… ํ•˜๋“œ์›จ์–ด์™€ ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž ์ฐธ์—ฌ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฐฑ์‹ ํ•˜๊ณ  ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์ด ํฅ๋ฏธ๋กญ๋‹ค.

โ–  http://www.linux-usb.org/
๋ฆฌ๋ˆ…์Šค์— ํƒ‘์žฌํ•œ USB ์Šคํƒ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. FAQ์™€ ์œ ์šฉํ•œ ๋งํฌ๋ฅผ ๋‹ด๊ณ  ์žˆ๋‹ค.

โ–  ftp://ftp.compaq.com/pub/supportinformation/papers/ecg0480997_a4.pdf
OHCI์™€ UHCI ์ฐจ์ด์ ์„ ์„ค๋ช…ํ•œ ๋ฌธ์„œ์ด๋‹ค. ์ƒ๋‹นํžˆ ๊น”๋”ํ•˜๊ฒŒ ์ •๋ฆฌ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ, USB์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ์žก๋Š” ๋ฐ ๋„์›€์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

โ–  http://usb.cs.tum.edu/usbdoc/
๋ฆฌ๋ˆ…์Šค์—์„œ USB ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://whatis.techtarget.com/definition/0,,sid9_gci537791,00.html
I2C์— ๋Œ€ํ•œ ์‚ฌ์ „์ ์ธ ์ •์˜๋ฅผ ์†Œ๊ฐœํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.connectworld.net/cable-length.html

์ง๋ ฌ/๋ณ‘๋ ฌ/์Šค์นด์‹œ ํฌํŠธ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ์ผ€์ด๋ธ” ๊ธธ์ด ์ œํ•œ์— ๋Œ€ํ•ด ์†Œ๊ฐœํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.pcisig.com/news_room/faqs
๋‹ค์–‘ํ•œ PCI ๊ทœ์•ฝ์— ๋Œ€ํ•œ ์งˆ๋ฌธ๊ณผ ์‘๋‹ต์„ ์‹ฃ๊ณ  ์žˆ๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://pcmcia-cs.sourceforge.net/
๋ฆฌ๋ˆ…์Šค์—์„œ PCMCIA๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ฐ์ข… ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ๋ฆฌ๋ˆ…์Šค์—์„œ PCMCIA ์žฅ์น˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์—ฌ๊ธฐ๋ฅผ ๋จผ์ € ๋ฐฉ๋ฌธํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค.

โ–  http://pcmcia-cs.sourceforge.net/ftp/doc/PCMCIA-PROG.html
๋ฆฌ๋ˆ…์Šค์—์„œ PCMCIA์šฉ ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ฃผ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ ๊ฐ€์ด๋“œ์ด๋‹ค.

โ–  http://linux1394.sourceforge.net/hcl.php
๋ฆฌ๋ˆ…์Šค์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” IEEE 1394(ํŒŒ์ด์–ด์™€์ด์–ด) ์ฃผ๋ณ€ ์žฅ์น˜ ๋ชฉ๋ก์„ ์ œ๊ณตํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.skipstone.com/wizard.html
IEEE 1394์™€ ๊ด€๋ จํ•œ FAQ ๋ชจ์Œ์ง‘์ด๋‹ค.

โ–  http://irda.sourceforge.net/
๋ฆฌ๋ˆ…์Šค์—์„œ IrDA์šฉ ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://mobilix.org/ir_misc.html
๋ฆฌ๋ˆ…์Šค์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” IrDA ์ฃผ๋ณ€ ์žฅ์น˜๋ฅผ ์†Œ๊ฐœํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฒ€์ƒ‰์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฉฐ ์ „์ฒด ๋ชฉ๋ก์ด ํ•œ๊บผ๋ฒˆ์— ๋‚˜์˜จ๋‹ค.

โ–  http://www.lirc.org
๋ฆฌ๋ˆ…์Šค์—์„œ IrDA๋กœ ์—ฌ๋Ÿฌ ์ฃผ๋ณ€ ์žฅ์น˜๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ํŒจํ‚ค์ง€๋ฅผ ์†Œ๊ฐœํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://delbert.matlock.com/linux-bluetooth.htm#howto
๋ฆฌ๋ˆ…์Šค์—์„œ ๋ธ”๋ฃจํˆฌ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๊ฐ์ข… ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ๋‹ค์–‘ํ•œ ๋“œ๋ผ์ด๋ฒ„์™€ ๋ฌธ์„œ๋ฅผ ์‹ฃ๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๋ธ”๋ฃจํˆฌ์Šค์— ๊ด€์‹ฌ์ด ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ๋ฐ˜๋“œ์‹œ ์—ฌ๊ธฐ๋ฅผ ๋ฐฉ๋ฌธํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค.

โ–  http://www.microsoft.com/hwdev/bus/1394/1394tech.asp
๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์‚ฌ์—์„œ ๋งŒ๋“  IEEE1394 ๊ด€๋ จ ํŠน์žฅ์ ์„ ์„ค๋ช…ํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ์œˆ๋„์šฐ ๊ด€๋ จ ๋‚ด์šฉ์ด ๋งŽ์ด ์žˆ์ง€๋งŒ, ์ผ๋ฐ˜์ ์ธ ํŠน์„ฑ์„ ํŒŒ์•…ํ•˜๋Š” ๋ฐ ํฐ ๋ฌด๋ฆฌ๊ฐ€ ์—†์„ ๊ฒƒ์ด๋‹ค.

โ–  http://www.linux-mtd.infradead.org/
๋ฆฌ๋ˆ…์Šค๋ฅผ ์œ„ํ•œ MTD(Memory Technology Device) ์„œ๋ธŒ ์‹œ์Šคํ…œ๊ณผ ๊ด€๋ จ์žˆ๋Š” ๊ฐ์ข… ์‚ฌํ•ญ์„ ์ •๋ฆฌํ•œ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

 

 

 

9์žฅ์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค ์ด์‹ ์ ˆ์ฐจ 

 

โ–ก ใ€ŽEmbedded Linux: Hardware, Software, and Interfacingใ€, Dr. Craig Hollabaugh, Addison-Wesley, 2002

์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค์— ๋Œ€ํ•ด ์ฒด๊ณ„์ ์œผ๋กœ ์ž˜ ๊ตฌ์„ฑ๋œ ์ฑ…์ด๋‹ค. ์ ˆ๋ฐ˜ ์ด์ƒ์ด ์ธํ„ฐํŽ˜์ด์Šคํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์†Œ๊ฐœ์ด๋ฏ€๋กœ, ์ผ์ • ์ˆ˜์ค€ ์ด์ƒ์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณด๊ธฐ์— ์ ๋‹นํ•˜๋‹ค.

โ–ก ใ€Ž์‚ผ๋ฐ” ํ™œ์šฉํ•˜๊ธฐใ€, ๋กœ๋ฒ„ํŠธ ์—ํฌ์Šˆํƒ€์ธ, ๋ฐ์ด๋น„๋“œ ์นผ๋ฆฌ์–ด-๋ธŒ๋ผ์šด, ํ”ผํ„ฐ ์ผˆ๋ฆฌ ์ €, ๋ฐ•์žฌํ˜ธ/์ด์˜๋ฏธ ์—ญ, ํ•œ๋น›๋ฏธ๋””์–ด, 2001
๋ฆฌ๋ˆ…์Šค๋‚˜ ์œ ๋‹‰์Šค ํ™˜๊ฒฝ์—์„œ ๋„คํŠธ์›Œํฌ๋กœ ์œˆ๋„์šฐ ํด๋ผ์ด์–ธํŠธ์— ๊ณต์œ  ํŒŒ์ผ๊ณผ ํ”„๋ฆฐํŒ… ์„œ๋น„์Šค๋ฅผ ํ•ด์ฃผ๋Š” ์†Œํ”„ํŠธ์›จ์–ด์ธ ์‚ผ๋ฐ”๋ฅผ ์†Œ๊ฐœํ•œ๋‹ค. ์‚ผ๋ฐ”๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋„คํŠธ์›Œํฌ๋กœ ๋ฌผ๋ฆฐ ์ด๊ธฐ์ข… ์ปดํ“จํ„ฐ ์‚ฌ์ด์— ์ž์›์„ ์‰ฝ๊ฒŒ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์œˆ๋„์šฐ์ชฝ์œผ๋กœ ๊ธฐ์šธ์–ด์ง„ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๋ฆฌ๋ˆ…์Šค์ชฝ์œผ๋กœ ๋Œ๋ฆฌ๋Š” ๋ฐ ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค.

โ–ก ใ€Ž๋„คํŠธ์›Œํฌ ํ”„๋ฆฐํŒ…ใ€, ํ† ๋“œ ๋ ˆ์ด๋”๋งˆ์ปค, ๋งคํŠœ ๊ฐœ์ŠคํŠธ ์ €, ๋ฐ•์žฌํ˜ธ, ์ด์˜๋ฏธ ์—ญ, ํ•œ๋น›๋ฏธ๋””์–ด, 2001

๋ฆฌ๋ˆ…์Šค์™€ ์œ ๋‹‰์Šค๋ฅผ ์„œ๋ฒ„๋กœ, ์œˆ๋„์šฐ, ๋งฅ, ๋„ท์›จ์–ด๋ฅผ ํด๋ผ์ด์–ธํŠธ๋กœ ๊ตฌ์„ฑํ•œ ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์—์„œ ์ธ์‡„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ธฐ์ˆ ํ•œ๋‹ค. BOOTP, DHCP์™€ ๊ฐ™์€ ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•ด ํ”„๋ฆฐํ„ฐ๋ฅผ ๋ถ€ํŒ…ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์†Œ๊ฐœํ•œ๋‹ค.

โ–ก ใ€Ž๋Ÿฌ๋‹ ๋ฆฌ๋ˆ…์Šค 3ํŒใ€, ๋งคํŠธ ์›ฐ์‹œ, ๋ผ ์นด์šฐํ”„๋งŒ, ์นผ๋ ˆ ๋”œํ•˜์ด๋จธ ์ €, ์ด๋งŒ์šฉ ์—ญ, ํ•œ๋น›๋ฏธ๋””์–ด, 2001

์˜ค๋ผ์ผ๋ฆฌ ใ€ŽRunning Linux 3rd Editionใ€์˜ ๋ฒˆ์—ญํŒ์ด๋‹ค. ๋ฆฌ๋ˆ…์Šค๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ๋…์ž๊ฐ€ ๊ณ ๋ฏผํ•˜๋ฉด์„œ ์ฝ์„ ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ‘์ •๋ณด๋ฅผ ์œ„ํ•œ ์ •๋ณด๋ฅผ ๋‹ด์€ ๋ฉ”ํƒ€๋ถ(meta-book)’์œผ๋กœ ๋ฆฌ๋ˆ…์Šค๋ผ๋Š” ์šด์˜์ฒด์ œ์— ์ฒ ํ•™์ ์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ๊ตฌ์„ฑ ๋ฐฉ์‹์ด ๋‹๋ณด์ธ๋‹ค. ์šด์˜์ฒด์ œ๋ฅผ ์ „ํ˜€ ๋ชจ๋ฅด๋Š” ์™„์ „ ์ดˆ๋ณด์ž์—๊ฒŒ๋Š” ๋‹ค์†Œ ์–ด๋ ค์šธ ์ˆ˜๋„ ์žˆ๋‹ค.

โ–ก ใ€ŽEmbedded Linuxใ€, John Lombardo, New Riders, 2002

x86 ํ”Œ๋žซํผ์—์„œ ๋ฆฌ๋ˆ…์Šค๋ฅผ ์ตœ์†Œํ•œ์œผ๋กœ ํŒจํ‚ค์ง•ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ธฐ์ˆ ํ•œ๋‹ค. ์•„์ฃผ ๋›ฐ์–ด๋‚˜๊ฑฐ๋‚˜ ์ƒˆ๋กœ์šด ๋‚ด์šฉ์€ ๋‹ด๊ณ  ์žˆ์ง€ ์•Š์ง€๋งŒ, x86์—์„œ ์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค๋ฅผ ์žฌ๋ฏธ๋กœ ํƒ‘์žฌํ•ด๋ณด๋ ค๋Š” ์ดˆ๋ณด์ž์—๊ฒŒ๋Š” ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค.

โ–ก ใ€ŽGNU ์†Œํ”„ํŠธ์›จ์–ด๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•˜๊ธฐใ€, ๋งˆ์ดํฌ ๋ฃจํ‚ค๋””์Šค, ์•ค๋”” ์˜ค๋žŒ ์ €, ์ด๊ธฐ๋™ ์—ญ, ํ•œ๋น›๋ฏธ๋””์–ด, 2000

์˜ค๋ผ์ผ๋ฆฌ ใ€ŽProgramming with GNU Softwareใ€์˜ ๋ฒˆ์—ญํŒ์ด๋‹ค. ๋ฌธ์„œ ํŽธ์ง‘๊ธฐ์ธ ์ด๋งฅ์Šค, C/C++ ์ปดํŒŒ์ผ๋Ÿฌ์ธ gcc, ๋””๋ฒ„๊ฑฐ์ธ gdb, ์ปดํŒŒ์ผ ์ž๋™ํ™” ๋„๊ตฌ์ธ make, ์†Œ์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ธ RCS์— ๋Œ€ํ•ด ์ž…๋ฌธํ•˜๋Š” ๋ณ‘์•„๋ฆฌ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์•ˆ๋‚ด์ž ๊ตฌ์‹ค์„ ํ•œ๋‹ค. ์•„์‰ฝ๊ฒŒ๋„ ์ค‘๊ธ‰ ๊ฐœ๋ฐœ์ž์—๊ฒŒ๋Š” ๋ถ€์ ํ•ฉํ•˜๋‹ค.

โ–  http://www.aleph1.co.uk/armlinux/devboards/Assabet-HOWTO/t1.html
์•„์‚ฌ๋ฒณ์— ์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค๋ฅผ ์ด์‹ํ•˜๋Š” ์ ˆ์ฐจ๋ฅผ ์ผ๋ชฉ์š”์—ฐํ•˜๊ฒŒ ์ •๋ฆฌํ•œ HOW-TO ๋ฌธ์„œ์ด๋‹ค. ์•„์‚ฌ๋ฒณ์— ์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค๋ฅผ ์ด์‹ํ•ด์•ผ ํ•œ๋‹ค๋ฉด ๊ผญ ์‚ดํŽด๋ณด๊ธฐ ๋ฐ”๋ž€๋‹ค.

โ–  http://www-2.cs.cmu.edu/~wearable/software/assabet.html
์—ญ์‹œ ์•„์‚ฌ๋ฒณ์— ์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค๋ฅผ ์ด์‹ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์ž๋ฃŒ๋ฅผ ๋ชจ์•„๋†“์€ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ๊ฐ์ข… ๋งํฌ๊ฐ€ ์ด์‹ ์ˆœ์„œ์— ๋งž์ถฐ ์ž˜ ๋‚˜์™€์žˆ์œผ๋ฏ€๋กœ ์ด์‹ ๊ณผ์ •์—์„œ ํ•„์š”ํ•œ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ตฌํ•  ๊ฒฝ์šฐ์— ๋งŽ์€ ๋„์›€์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. ๋‹ค๋ฅธ ํ™ˆํŽ˜์ด์ง€์— ๋น„ํ•ด ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ๊ฐฑ์‹ ํ•˜๋Š” ์†๋„์ด ๋น ๋ฅด๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

โ–  http://www-2.cs.cmu.edu/~wearable/software/docs/assabet-linux-report/intel-report.html
์ธํ…” ์•„์‚ฌ๋ฒณ ์ฐธ์กฐ ๋ณด๋“œ์— ARM ๋ฆฌ๋ˆ…์Šค๋ฅผ ์˜ฌ๋ฆฌ๋Š” ๋ฐฉ๋ฒ•์„ ์ฒด๊ณ„์ ์œผ๋กœ ๊ธฐ์ˆ ํ•œ ๊ธฐ์ˆ  ๋ณด๊ณ ์„œ์ด๋‹ค. ๋ฏธ๊ตญ๋ฆฝ ๊ณผํ•™์žฌ๋‹จ์—์„œ ๋ฐœ์ฃผํ•˜๊ณ  ๋ฏธ๊ตญ ์นด๋„ค๊ธฐ ๋ฉœ๋ก  ๋Œ€ํ•™๊ต์˜ ์›จ์–ด๋Ÿฌ๋ธ”(Wearable) ๊ทธ๋ฃน์—์„œ ์ˆ˜ํ–‰ํ•œ ํ”„๋กœ์ ํŠธ ๊ฒฐ๊ณผ ๋ณด๊ณ ๋ฅผ ์œ„ํ•ด ๋งŒ๋“  ๋ฌธ์„œ์ด๋‹ค.

โ–  http://www.aleph1.co.uk/armlinux/thebook.html
๋‹ค์–‘ํ•œ ARM ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ์— ์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค๋ฅผ ์ด์‹ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” ์˜จ๋ผ์ธ ์ฑ…์ด๋‹ค. ์›๋ž˜ StrongARM์„ ์‚ฌ์šฉํ•œ ์ฐธ์กฐ ๋ณด๋“œ์ธ LART๋ฅผ ์œ„ํ•ด ๋งŒ๋“  ์ฑ…์ด์ง€๋งŒ, ์•„์‚ฌ๋ฒณ์— ๋Œ€ํ•ด์„œ๋„ ์ถฉ๋ถ„ํžˆ ์ฐธ์กฐํ• ๋งŒํ•œ ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ๋‚ด์šฉ์„ ๋‹ด๊ณ  ์žˆ๋‹ค.

โ–  http://penguinppc.org/embedded/howto/PowerPC-Embedded-HOWTO.html
MPC ํ”Œ๋žซํผ์„ ์œ„ํ•œ ๊ต์ฐจ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ• ๋ฐฉ๋ฒ•, PPCBOOT ์„ค์น˜์™€ ์‚ฌ์šฉ๋ฒ•, ๋ถ€ํŒ…์— ํ•„์š”ํ•œ ๊ฐ์ข… ์„ค์ •, ํŒจํ‚ค์ง• ๊ด€๋ จ ๋‚ด์šฉ์„ ์ฒด๊ณ„์ ์œผ๋กœ ์†Œ๊ฐœํ•˜๋Š” ๋ฌธ์„œ์ด๋‹ค.

โ–  http://developer.intel.com/design/strong/applnots/sa1100lx/sa1100lx.htm
์ธํ…”์—์„œ ๋งŒ๋“  ์ž๋ฃŒ๋กœ, ์•„์‚ฌ๋ฒณ์„ ์œ„ํ•œ ๊ต์ฐจ ์ฐธ์กฐ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•œ๋‹ค.

โ–  http://sources.redhat.com/binutils/
GNU binutils์— ๋Œ€ํ•œ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ๋“ค์–ด์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ๊ณผ ๊ฐ ํ”„๋กœ๊ทธ๋žจ ๊ตฌ์‹ค์„ ๊ฐ„๋žตํ•˜๊ฒŒ ์„ค๋ช…ํ•œ๋‹ค.

โ–  http://www.astonlinux.com/
์œˆ๋„์šฐ ํ™˜๊ฒฝ์—์„œ ์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค๋ฅผ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๊ฒŒ ์ง€์›ํ•˜๋Š” ํˆด์ธ ์ฝ”๋“œ๋ฉ”์ด์ปค ๊ฐœ๋ฐœ์‚ฌ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.linux.org/docs/ldp/howto/Glibc2-HOWTO.html
glibc ๋ฒ„์ „ 2๋ฅผ ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ์— ์„ค์น˜ํ•˜๊ณ  ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•/ํ•˜๋Š” HOW-TO ๋ฌธ์„œ์ด๋‹ค.

โ–  http://www.linuxdoc.org/HOWTO/mini/Partition/
๋ฆฌ๋ˆ…์Šค์—์„œ ์Šค์™‘ ์˜์—ญ์„ ์žก๋Š” ๋ฐฉ๋ฒ•์„ ์นœ์ ˆํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๋Š” HOW-TO ๋ฌธ์„œ์ด๋‹ค.

โ–  http://kldp.org/HOWTO/html/Kernel/Kernel-HOWTO.html
๋ฆฌ๋ˆ…์Šค์—์„œ ์ปค๋„ ํ™˜๊ฒฝ์„ ์„ค์ •ํ•˜๊ณ  ์ปดํŒŒ์ผํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๋Š” HOW-TO ๋ฌธ์„œ์ด๋‹ค. 2.2.x ๊ณ„์—ด ์„ค๋ช…์ด๋ฏ€๋กœ ์‹œ๋Œ€์— ์กฐ๊ธˆ ๋’ค๋–จ์–ด์กŒ๋‹ค๊ณ  ์ƒ๊ฐํ•  ์ˆ˜๋„ ์žˆ์œผ๋‚˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์„ ์ถฉ๋ถ„ํžˆ ์ž˜ ์„ค๋ช…ํ•˜๊ณ  ์žˆ๋‹ค.

โ–  http://kldp.org/KoreanDoc/html/2.4Kernel_Compile-KLDP/2.4Kernel_Compile-KLDP.html

๋ฆฌ๋ˆ…์Šค ์ปค๋„ 2.4๋ฅผ ํ™˜๊ฒฝ ์„ค์ •ํ•˜๊ณ  ์ปดํŒŒ์ผํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” HOW-TO ๋ฌธ์„œ์ด๋‹ค.

โ–  http://kldp.org/KoreanDoc/html/Kernel_Compile_Guide-KLDP/Kernel_Compile_Guide-KLDP.html
๋ฆฌ๋ˆ…์Šค ์ปค๋„์„ ์ปดํŒŒ์ผํ•˜๋Š” ๊ธฐ๋ณธ ์ ˆ์ฐจ๋ฅผ ์†Œ๊ฐœํ•˜๋Š” ๋ฌธ์„œ์ด๋‹ค. ์—ญ์‹œ ์ปค๋„ 2.2 ๊ณ„์—ด์ด๋ผ์„œ ์กฐ๊ธˆ ๋‚ก์•˜๋‹ค๋Š” ๋Š๋‚Œ์ด ๋“ค์ง€๋งŒ ์ „๋ฐ˜์ ์ธ ๊ฐ์„ ์žก๊ธฐ์—๋Š” ๋ถ€์กฑํ•จ์ด ์—†๋‹ค.

โ–  http://option.kernel.pe.kr/
๋ฆฌ๋ˆ…์Šค ์ปค๋„ ํ™˜๊ฒฝ ์„ค์ • ๋„์›€๋ง์„ ํ•œ๊ธ€๋กœ ์ด์‹ํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•œ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ์ตœ์‹  ์ปค๋„ ๋ฒ„์ „์„ ๊พธ์ค€ํžˆ ์ซ“์•„์˜ค๊ณ  ์žˆ์œผ๋ฏ€๋กœ, ๋ฆฌ๋ˆ…์Šค ์ปค๋„์„ ์„ค์ •ํ•˜๋‹ค ์ง€์ณ๋ฒ„๋ฆฐ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋งŽ์€ ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ์œผ๋ฆฌ๋ผ ํ™•์‹ ํ•œ๋‹ค.

โ–  http://kldp.org/HOWTO/mini/html/LILO/LILO.html
์‹ค๋ก€๋ฅผ ๋“ค์–ด ๋ฆฌ๋ˆ…์Šค ํ‘œ์ค€ ๋ถ€ํŠธ ์ŠคํŠธ๋žฉ ๋กœ๋”์ธ LILO๋ฅผ ์–ด๋–ป๊ฒŒ ์„ค์ •ํ•˜๋Š”์ง€ ์„ค๋ช…ํ•˜๊ณ  ์žˆ๋Š” ๋ฌธ์„œ์ด๋‹ค.

โ–  http://penguinppc.org/embedded/cross-compiling/
MPC์šฉ ๊ต์ฐจ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์ปดํŒŒ์ผ ๋ฐฉ๋ฒ•์ด๋‹ค. ์ž˜๋ชป๋œ ๋‚ด์šฉ์ด ๋“ค์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋‹จ์ˆœํžˆ ์ฐธ๊ณ ์šฉ์œผ๋กœ๋งŒ ํ™œ์šฉํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค

โ–  http://www.armlinux.org/docs/toolchain/toolchHOWTO/x183.html
ARM์šฉ ๊ต์ฐจ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์ปดํŒŒ์ผ ๋ฐฉ๋ฒ•์ด๋‹ค. ์กฐ๊ธˆ ์ž˜๋ชป๋œ ๋‚ด์šฉ์ด ๋“ค์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋‹จ์ˆœํžˆ ์ฐธ๊ณ ์šฉ์œผ๋กœ๋งŒ ํ™œ์šฉํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค.

โ–  http://www.delorie.com/gnu/docs/glibc/libc_toc.html
GNU์—์„œ ๊ฐœ๋ฐœํ•œ ๊ธฐ๋ณธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ glibc์— ๋Œ€ํ•œ ์˜จ๋ผ์ธ ๋ถ์ด๋‹ค.

โ–  http://sources.redhat.com/newlib/
๋ ˆ๋“œํ–‡์—์„œ ๋งŒ๋“  glibc๋ฅผ ๋Œ€์ฒดํ•  ๊ฒฝ๋Ÿ‰ ๊ธฐ๋ณธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ newlib์— ๋Œ€ํ•œ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.uclibc.org/
์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ์„ ์œ„ํ•œ ๊ฒฝ๋Ÿ‰ ๊ธฐ๋ณธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ uclibc์— ๋Œ€ํ•œ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.fefe.de/dietlibc/
ํฌ๊ธฐ์— ์‹ ๊ฒฝ์„ ์จ์„œ ๋งŒ๋“  ๊ธฐ๋ณธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ diet libc์— ๋Œ€ํ•œ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.embedded.com/story/OEG20011220S0058
๊ฒฝ๋Ÿ‰ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ newlib์— ๋Œ€ํ•ด ์†Œ๊ฐœํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.netsonic.fi/~walker/minicom.html
์œ ๋‹‰์Šค์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ง๋ ฌ ํ†ต์‹ ์„ ์ง€์›ํ•˜๋Š” ํ„ฐ๋ฏธ๋„ ํ‰๋‚ด๋‚ด๊ธฐ ํ”„๋กœ๊ทธ๋žจ์ธ minicom ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.tldp.org/HOWTO/mini/LILO.html
๊ฐ€์žฅ ๋„๋ฆฌ ์•Œ๋ ค์ง„ x86์šฉ ๋ถ€ํŠธ ์ŠคํŠธ๋žฉ ๋กœ๋”์ธ LILO๋ฅผ ์„ค๋ช…ํ•˜๋Š” ๋ฏธ๋‹ˆ HOW-TO์ด๋‹ค. LILO ํ™˜๊ฒฝ ์„ค์ •๊ณผ ์ฃผ์˜ ์‚ฌํ•ญ์„ ์†Œ๊ฐœํ•œ๋‹ค.

โ–  http://www.linuxgazette.com/issue64/kohli.html
๊ฐ•๋ ฅํ•œ x86์šฉ ๋ถ€ํŠธ ์ŠคํŠธ๋žฉ ๋กœ๋”์ธ GNU GRUB๋ฅผ ์†Œ๊ฐœํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. GRUB์ด ๋ฌด์—‡์ธ์ง€, ์„ค์น˜๋ฅผ ์–ด๋–ป๊ฒŒ ํ•˜๋Š”์ง€, ํ™˜๊ฒฝ ์„ค์ •์„ ์–ด๋–ป๊ฒŒ ํ•˜๋Š”์ง€ ์„ค๋ช…ํ•œ๋‹ค.

โ–  http://www.aleph1.co.uk/armlinux/docs/ARMbooting/t1.html
ARM์—์„œ ๋™์ž‘ํ•˜๋Š” ๊ฐ์ข… ๋ถ€ํŠธ ์ŠคํŠธ๋žฉ ๋กœ๋”๋ฅผ ์†Œ๊ฐœํ•˜๋Š” ์˜จ๋ผ์ธ ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://armboot.sourceforge.net/
๊ฐ•๋ ฅํ•œ ARM์™€ StrongARM์šฉ ๋ถ€ํŠธ ์ŠคํŠธ๋žฉ ๋กœ๋”์ธ ARMBOOT์— ๋Œ€ํ•ด ์†Œ๊ฐœํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ์—ฌ๊ธฐ์„œ ์›์‹œ ์ฝ”๋“œ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜๋„ ์žˆ๊ณ  ๊ฐ„๋‹จํ•œ ์„ค๋ช…๋„ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค.

โ–  http://sourceforge.net/projects/blob/
SA11x0(StrongARM)์šฉ ๋ถ€ํŠธ ์ŠคํŠธ๋žฉ ๋กœ๋”์ธ BLOB๋ฅผ ์†Œ๊ฐœํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ์—ฌ๊ธฐ์„œ ์›์‹œ ์ฝ”๋“œ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜๋„ ์žˆ๊ณ  ๊ฐ„๋‹จํ•œ ์„ค๋ช…๋„ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค.

โ–  http://www.handhelds.org/z/wiki/bootldr
์ปดํŒฉ์—์„œ ๋งŒ๋“  StrongARM์„ ์‚ฌ์šฉํ•œ PDA์ธ iPAQ์—์„œ ๋™์ž‘ํ•˜๋Š” ๋ถ€ํŠธ ์ŠคํŠธ๋žฉ ๋กœ๋”์ธ bootldr๋ฅผ์†Œ๊ฐœํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.wearablegroup.org/software/bootldr/
iPAQ์šฉ ๋ถ€ํŠธ ์ŠคํŠธ๋žฉ ๋กœ๋”์ธ bootldr์„ ๊ฐ„๋žตํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://ppcboot.sourceforge.net/
์ž„๋ฒ ๋””๋“œ ํŒŒ์›ŒPC๋ฅผ ์œ„ํ•œ ๋ถ€ํŠธ ์ŠคํŠธ๋žฉ ๋กœ๋”์ธ PPCBOOT๋ฅผ ์†Œ๊ฐœํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ํ”„๋กœ์ ํŠธ ์ง„ํ–‰์— ๋”ฐ๋ฅธ ๋ณ€๊ฒฝ ์‚ฌํ•ญ๊ณผ ๊ฐ„๋žตํ•œ ์„ค๋ช…์„ ํ•œ๋ˆˆ์— ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

โ–  http://www.redhat.com/embedded/technologies/redboot/
๋‹ค์ค‘ ํ”Œ๋žซํผ์„ ์ง€์›ํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ๋ถ€ํŠธ ์ŠคํŠธ๋žฉ ๋กœ๋”์ธ REDBOOT๋ฅผ ์†Œ๊ฐœํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ๋ ˆ๋“œํ–‡๋‹ต๊ฒŒ ๋ฌธ์„œ ์ •๋ฆฌ๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ์ž˜ ํ•ด๋†“์•˜๋‹ค.

โ–  http://tinylogin.busybox.net/
๊ฒฝ๋Ÿ‰๊ธ‰์ด๋ฉด์„œ๋„ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ ๊ฐ–์ถ”๊ณ  ์žˆ๋Š” ์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค์—์„œ ๋™์ž‘ํ•˜๋Š” ๋กœ๊ทธ์ธ ํ”„๋กœ๊ทธ๋žจ์ธtinylogin ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.busybox.net/
GNU fileutils, shellutils์— ๋“ค์–ด์žˆ๋Š” ๊ฐ์ข… ํ”„๋กœ๊ทธ๋žจ์„ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด๋†“์€ ์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค๋ฅผ ์œ„ํ•œ ๋งฅ๊ฐ€์ด๋ฒ„ ์นผ(์Šค์œ„์Šค ๊ตฐ์šฉ ์นผ์ด ์ •ํ™•ํ•œ ํ‘œํ˜„์ด์ง€๋งŒ ์—ฌ๊ธฐ์„œ๋Š” ํŽธ์˜์ƒ ๋งฅ๊ฐ€์ด๋ฒ„ ์นผ๋กœ ์ง€์นญํ•œ๋‹ค)์ธ busybox ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.wearablegroup.org/software/ramdisk/
ARM(ํŠนํžˆ ์•„์‚ฌ๋ฒณ)์„ ์œ„ํ•œ ๋žจ๋””์Šคํฌ๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  ftp://ftp.denx.de/pub/LinuxPPC/usr/src/
MPC๋ฅผ ์œ„ํ•œ ๋žจ๋””์Šคํฌ๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://kpreempt.sourceforge.net/
x86, ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ์„ ์  ํ™•์žฅ ํ”„๋กœ์ ํŠธ ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.ittc.ku.edu/kurt/
๋˜ ๋‹ค๋ฅธ x86 ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ์„ ์  ํ™•์žฅ ํ”„๋กœ์ ํŠธ์ธ KURT ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.aero.polimi.it/~rtai/
RTAI ์‹ค์‹œ๊ฐ„ ๋ฆฌ๋ˆ…์Šค ํ™•์žฅ ํ”„๋กœ์ ํŠธ ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.fsmlabs.com/community/
RTLinux ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.linux-fbdev.org/
๋ฆฌ๋ˆ…์Šค ํ”„๋ ˆ์ž„ ๋ฒ„ํผ, ํ”„๋ ˆ์ž„ ๋ฒ„ํผ ์žฅ์น˜, ๊ด€๋ จ ์‚ฌ์ดํŠธ๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ์ •๋ฆฌํ•œ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://gtf.org/garzik/video/
๋ฆฌ๋ˆ…์Šค ๋น„๋””์˜ค ๋“œ๋ผ์ด๋ฒ„์™€ ํ”„๋ ˆ์ž„ ๋ฒ„ํผ์— ๋Œ€ํ•œ ๋งํฌ๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ์ •๋ฆฌํ•œ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.tldp.org/HOWTO/Framebuffer-HOWTO.html
๋ฆฌ๋ˆ…์Šค ํ”„๋ ˆ์ž„ ๋ฒ„ํผ HOW-TO ๋ฌธ์„œ๋กœ, ํ”„๋ ˆ์ž„ ๋ฒ„ํผ์— ๋Œ€ํ•œ ์ผ๋ฐ˜๋ก ๊ณผ ํ”Œ๋žซํผ๋ณ„ ํŠน์„ฑ์„ ์†Œ๊ฐœํ•œ๋‹ค.

โ–  http://www.microwindows.org/
๋งˆ์ดํฌ๋กœ ์œˆ๋„์šฐ ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ์›์‹œ ์ฝ”๋“œ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐ์ข… ๋งค๋‰ด์–ผ๊ณผ ํ•™์Šต์„œ๋„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

โ–  http://www.xfree86.org
x86, MacOS, ๊ธฐํƒ€ ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ์—์„œ ๋™์ž‘ํ•˜๋Š” ๊ณต๊ฐœ ์†Œ์Šค X ์œˆ๋„์šฐ ํ™˜๊ฒฝ์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด ์„ค๋ฆฝํ•œ XFree86 ํ”„๋กœ์ ํŠธ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. XFree86 ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ž์œ ๋กญ๊ฒŒ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋‹ค.

โ–  http://pgui.sourceforge.net/
ํ”ผ์ฝ”๊ตฌ์ด ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ๊ฐ์ข… ๊ธฐ์‚ฌ์™€ ๋ฌธ์„œ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ”ผ์ฝ”๊ตฌ์ด ํŒจํ‚ค์ง€๋„ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

10์žฅ์ž„๋ฒ ๋””๋“œ ํ™˜๊ฒฝ์—์„œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ ์ ˆ์ฐจ

  

โ–ก ใ€ŽRapid Development: Taming Wild Software Schedulesใ€, Steve McConnell, Microsoft Press 1996
์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์งง์€ ์‹œ๊ฐ„ ๋‚ด ์„ฑ๊ณต๋ฆฌ์— ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ฐ์ข… ์ง€์‹์„ ์ด ์ง‘๊ฒฐ์‹œ์ผœ๋†“์€ ๋ฉ‹์ง„ ์ฑ…์ด๋‹ค. ์ด๋ก ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์‹ค์ „์— ๋ฐ”๋กœ ์จ๋จน์„ ์ˆ˜ ์žˆ๋Š” ๋‚ด์šฉ์œผ๋กœ ๊ฐ€๋“ ํ•˜๋‹ค. ๊ด€๋ฆฌ์ž๋Š” ๋ฌผ๋ก , ์ผ๋ฐ˜ ๊ฐœ๋ฐœ์ž๋„ ํ•„๋…ํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ์ฑ…์ด๋‹ค.

โ–ก ใ€ŽSoftware Project Survival Guideใ€, Steve McConnell, Microsoft Press, 1998
์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์ƒ๋ช… ์ฃผ๊ธฐ ๋™์•ˆ ๋ฒŒ์–ด์ง€๋Š” ๊ฐ์ข… ํ™œ๋™ ๋‚ด์—ญ์„ ์œ„ํ—˜ ๊ด€๋ฆฌ๋ผ๋Š” ์ธก๋ฉด์—์„œ ์ด๋Œ์–ด๋‚ด๋Š” ๋ฐฉ๋ฒ•์„ ๋ช…์พŒํ•˜๊ฒŒ ์„ค๋ช…ํ•œ๋‹ค. “Rapid Development”์™€ ๋”๋ถˆ์–ด ๊ด€๋ฆฌ์ž์™€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ผญ ์ฝ์–ด์•ผ ํ•˜๋Š” ํ•„๋…์„œ์ด๋‹ค.

โ–ก ใ€Ž๋Ÿฌ๋‹ ๋ฆฌ๋ˆ…์Šค 3ํŒใ€, ๋งคํŠธ ์›ฐ์‹œ, ๋ผ ์นด์šฐํ”„๋งŒ, ์นผ๋ ˆ ๋”œํ•˜์ด๋จธ ์ €, ์ด๋งŒ์šฉ ์—ญ, ํ•œ๋น›๋ฏธ๋””์–ด, 2001

์˜ค๋ผ์ผ๋ฆฌ ใ€ŽRunning Linux 3rd Editionใ€์˜ ๋ฒˆ์—ญํŒ์ด๋‹ค. ๋ฆฌ๋ˆ…์Šค๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ๋…์ž๊ฐ€ ๊ณ ๋ฏผํ•˜๋ฉด์„œ ์ฝ์„ ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ‘์ •๋ณด๋ฅผ ์œ„ํ•œ ์ •๋ณด๋ฅผ ๋‹ด์€ ๋ฉ”ํƒ€๋ถ(meta-book)’์œผ๋กœ ๋ฆฌ๋ˆ…์Šค๋ผ๋Š” ์šด์˜์ฒด์ œ์— ์ฒ ํ•™์ ์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ๊ตฌ์„ฑ ๋ฐฉ์‹์ด ๋‹๋ณด์ธ๋‹ค. ์šด์˜์ฒด์ œ๋ฅผ ์ „ํ˜€ ๋ชจ๋ฅด๋Š” ์™„์ „ ์ดˆ๋ณด์ž์—๊ฒŒ๋Š” ๋‹ค์†Œ ์–ด๋ ค์šธ ์ˆ˜๋„ ์žˆ๋‹ค.

โ–ก ใ€ŽGNU ์†Œํ”„ํŠธ์›จ์–ด๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•˜๊ธฐใ€, ๋งˆ์ดํฌ ๋ฃจํ‚ค๋””์Šค, ์•ค๋”” ์˜ค๋žŒ ์ €, ์ด๊ธฐ๋™ ์—ญ, ํ•œ๋น›๋ฏธ๋””์–ด, 2000

์˜ค๋ผ์ผ๋ฆฌ ใ€ŽProgramming with GNU Softwareใ€์˜ ๋ฒˆ์—ญํŒ์ด๋‹ค. ๋ฌธ์„œ ํŽธ์ง‘๊ธฐ์ธ ์ด๋งฅ์Šค, C/C++ ์ปดํŒŒ์ผ๋Ÿฌ์ธ gcc, ๋””๋ฒ„๊ฑฐ์ธ gdb, ์ปดํŒŒ์ผ ์ž๋™ํ™” ๋„๊ตฌ์ธ make, ์†Œ์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ธ RCS์— ๋Œ€ํ•ด ์ž…๋ฌธํ•˜๋Š” ๋ณ‘์•„๋ฆฌ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์•ˆ๋‚ด์ž ๊ตฌ์‹ค์„ ํ•œ๋‹ค. ์•„์‰ฝ๊ฒŒ๋„ ์ค‘๊ธ‰ ๊ฐœ๋ฐœ์ž์—๊ฒŒ๋Š” ๋ถ€์ ํ•ฉํ•˜๋‹ค.

โ–ก ใ€ŽThe UNIX Programming Environmentใ€, Brian Kernighan, Rob Pike, Prentice-Hall, 1984
๊ณ ์ „ ์ค‘์˜ ๊ณ ์ „์ธ ์ด ์ฑ…์€ ์œ ๋‹‰์Šค์—์„œ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•˜๋Š” ํ‘œ์ค€์ ์ธ ๋ฐฉ๋ฒ•๋ก ์„ ๊ฐ„๋žตํ•˜๋ฉด์„œ๋„ ์งœ์ž„์ƒˆ ์žˆ๊ฒŒ ๋‹ค๋ฃฌ๋‹ค.

โ–ก ใ€ŽSoftware Tools in Pascalใ€, Brian Kernighan, P Plauger, Addison-Wesley, 1981
ใ€ŽThe UNIX Programming Environmentใ€์™€ ๋”๋ถˆ์–ด ์œ ๋‹‰์Šค ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ฒ ํ•™์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ์ฑ…์ด๋‹ค. C์˜ ์ธ๊ธฐ์— ๋ฐ€๋ฆฐ ํŒŒ์Šค์นผ๋กœ ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ์†Œ๊ฐœํ•˜์ง€๋งŒ ์ค‘์š”ํ•œ ๊ฒƒ์€ ํ˜•์‹์ด ์•„๋‹ˆ๋ผ ์ฒ ํ•™์ด๋ผ๋Š” ์‚ฌ์‹ค์„ ์žŠ์ง€ ๋ง์ž.

โ–ก ใ€ŽThe Unix Network Programmingใ€, W. Richard Stevens, Prentice-Hall, 1994
์œ ๋‹‰์Šค์—์„œ ๋„คํŠธ์›Œํฌ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋ ค๊ณ  ๋งˆ์Œ๋จน์€ ๊ฐœ๋ฐœ์ž ๋ˆ„๊ตฌ๋‚˜ ์ด ์ฑ…์„ ์ฝ์„ ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ๋” ์ด์ƒ์˜ ์„ค๋ช…์ด ํ•„์š”์—†๋Š” ๋ช…์ž‘์ด๋‹ค.

โ–ก ใ€ŽAdvanced Programming in the UNIX Environmentใ€, W. Richard Stevens, Addison-Wesley, 1992
์œ ๋‹‰์Šค ํ™˜๊ฒฝ์—์„œ ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฒด๊ณ„์ ์ด๊ณ  ์ž์„ธํ•˜๊ฒŒ ๋‹ค๋ฃฌ ์ฑ…์œผ๋กœ “The Unix Network Programming”๊ณผ ํ•จ๊ป˜ ์ฝ์œผ๋ฉด ๋”์šฑ ํฐ ํšจ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

โ–ก ใ€Ž์œ ๋‹‰์Šค ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ SVR4ใ€, ๋ฐ์ด๋น„๋“œ ์ปค๋ฆฌ ์ €, ์ด์ˆ˜์ง„/์ด์„ฑํฌ ์—ญ, ํ•œ๋น›๋ฏธ๋””์–ด , 2001
์‹œ์Šคํ…œ V์ชฝ์— ์น˜์šฐ์ณ ์„ค๋ช…ํ•˜๊ณ  ์žˆ์ง€๋งŒ, ์œ ๋‹‰์Šค ์‹œ์Šคํ…œ ํ˜ธ์ถœ๊ณผ ๊ฐ์ข… ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ €๋ณ€์— ๊น”๋ฆฐ ๊ธฐ๋ณธ ์›๋ฆฌ๋ฅผ ์ถฉ์‹คํžˆ ๋‹ค๋ฃจ๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์‹œ์Šคํ…œ V๋Š” ๋ฌผ๋ก ์ด๊ณ  ๋ฆฌ๋ˆ…์Šค์™€ BSD ๊ณ„์—ด์„ ์‚ฌ์šฉํ•˜๋Š” ์‹œ์Šคํ…œ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž๋„ ์ด ์ฑ…์„ ๋ฐ˜๋“œ์‹œ ์ฝ์–ด์•ผ ํ•œ๋‹ค.

โ–ก ใ€ŽProgramming for the real world: POSIX.4ใ€, Bill O. Galleister, O’Reilly & Associates, 1995
์‹ค์‹œ๊ฐ„ ํ”„๋กœ๊ทธ๋žจ์„ ์œ„ํ•œ C ์ธํ„ฐํŽ˜์ด์Šค์ธ POSIX.4์— ๋Œ€ํ•ด ์ƒ์„ธํ•˜๊ฒŒ ๋‹ค๋ฃจ๋Š” ์ฑ…์ด๋‹ค. ์ดˆ๋ณด์ž๊ฐ€ ๋ณด๊ธฐ์—๋Š” ๋‚ด์šฉ์ด ์กฐ๊ธˆ ์–ด๋ ต์ง€๋งŒ ๋ณธ๊ฒฉ์ ์ธ ์‹ค์‹œ๊ฐ„ ํ”„๋กœ๊ทธ๋žจ์„ ์œ„ํ•ด์„œ๋Š” ๋ฐ˜๋“œ์‹œ ์ฝ๊ณ  ๋„˜์–ด๊ฐ€์•ผ ํ•œ๋‹ค.

โ–ก ใ€ŽPthreads Programmingใ€, Bradford Nichols, Dick Buttlar, Jacqueline Proulx Farrell, O’Reilly, 1996
ํฌ์ง์Šค ์Šค๋ ˆ๋“œ(Pthreads)์— ๋Œ€ํ•œ ์ด๋ก ๊ณผ ์‹ค์ „์„ ๋‹ค๋ฃจ๋Š” ์ฑ…์œผ๋กœ Pthreads๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋Š” ๋ฐ˜๋“œ์‹œ ์ฝ์–ด๋ด์•ผ ํ•˜๋Š” ํ•„๋…์„œ์ด๋‹ค.

โ–ก ใ€ŽPractical UNIX Programming: A Guide to Concurrency, Communication, and Multithreadingใ€, Kay A. Robbins, Steven Robbins, Prentice-Hall, 1996
์‹ค์งˆ์ ์ธ ๋„คํŠธ์›Œํฌ์™€ ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž‘์„ฑ ์˜ˆ์ œ๋ฅผ ๋งŽ์ด ์ œ๊ณตํ•˜๋Š” ์ฑ…์ด๋‹ค. ํฌ์ง์Šค ์Šค๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ๋™๊ธฐํ™”์— ๋Œ€ํ•œ ๋‚ด์šฉ๋„ ๋“ค์–ด์žˆ๋‹ค.

โ–ก ใ€Ž๋ฐฐ์‹œ ์…ธ ์‹œ์ž‘ํ•˜๊ธฐใ€, ์บ๋จธ๋Ÿฐ ๋‰ดํ–„, ๋นŒ ๋กœ์  ๋ธ”๋žซ ์ €, ๋ฐฐ์ฐฝ๋ ฌ ์—ญ, ํ•œ๋น›๋ฏธ๋””์–ด, 2001
๋ฆฌ๋ˆ…์Šค ํ‘œ์ค€ ์…ธ์ธ ๋ฐฐ์‹œ ์…ธ์— ๋Œ€ํ•ด ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ ์„ค๋ช…ํ•˜๋Š” ์ฑ…์ด๋‹ค. ๋ฐฐ์‹œ ์…ธ์€ ์ด๋Ÿฐ์ €๋Ÿฐ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ํ•ฉ์น˜๋Š” ๊ฒฐํ•ฉ ์–ธ์–ด(glue language)๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์ ํ•ฉํ•˜๋ฏ€๋กœ, ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ์ž๋ผ๋„ ์•Œ์•„๋‘๋ฉด ํŽธ๋ฆฌํ•  ๋•Œ๊ฐ€ ๋งŽ๋‹ค.

โ–  http://pauillac.inria.fr/~xleroy/linuxthreads/
๋ฆฌ๋ˆ…์Šค๋ฅผ ์œ„ํ•œ ํฌ์ง์Šค 1003.1c ์Šค๋ ˆ๋“œ ํŒจํ‚ค์ง€์ธ LinuxThreads์— ๋Œ€ํ•œ ์†Œ๊ฐœ์™€ ๊ฐ์ข… ๋งํฌ๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.cvshome.org/cyclic/cyclic-pages/rcs.html
RCS์— ๋Œ€ํ•ด ์†Œ๊ฐœํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. RCS์™€ ๊ด€๋ จํ•œ ๊ฐ์ข… ๋งํฌ๋ฅผ ์ œ๊ณตํ•˜๋ฏ€๋กœ ์—ฌ๊ธฐ์„œ ์‹œ์ž‘ํ•˜๋ฉด ๋œ๋‹ค.

โ–  http://www.cvshome.org/cyclic/cyclic-pages/sccs.html
SCCS์— ๋Œ€ํ•ด ์†Œ๊ฐœํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.cvshome.org/
CVS(Concurrent Versions System) ๊ด€๋ จ ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. CVS์— ๋Œ€ํ•œ ๋งค๋‰ด์–ผ๊ณผ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋‹ค.

โ–  http://www.wi.leidenuniv.nl/~wichert/strace/
๋ฆฌ๋ˆ…์Šค์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ์Šคํ…œ ํ˜ธ์ถœ ์ถ”์  ํˆด์ธ strace ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://freshmeat.net/projects/ltrace/?topic_id=846%2C47
๋ฆฌ๋ˆ…์Šค์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜ธ์ถœ ๊ฐ์‹œ ํˆด์ธ ltrace ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.redhat.com/software/tools/gnupro/gnupro_gdb.html#gdb
gdb ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ๊ฐ„๋žตํ•˜๊ฒŒ ์†Œ๊ฐœํ•˜๊ณ  ์žˆ๋Š” ๋ ˆ๋“œํ–‡์‚ฌ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://gcc.gnu.org/
gcc ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ํ•„์š”ํ•œ ๊ฐ์ข… ๋ฌธ์„œ์™€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋‹ค.

โ–  http://www.linuxgazette.com/issue71/joshi.html
gcc์—์„œ ์ตœ์ ํ™” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์˜ ์ฃผ์š” ์›๋ฆฌ๋ฅผ ์„ค๋ช…ํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.cs.may.ie/~jpower/Courses/se209/optim/gcc_2.html
์ตœ์ ํ™”๋ฅผ ์œ„ํ•œ ๊ฐ์ข… gcc ์˜ต์…˜์„ ์„ค๋ช…ํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.gnu.org/manual/gprof-2.9.1/html_node/gprof_toc.html
GNU ํ”„๋กœํŒŒ์ผ๋Ÿฌ์ธ gprof ์— ๋Œ€ํ•œ ์‚ฌ์šฉ ์„ค๋ช…์„œ์ด๋‹ค. ํ•œ๊ธ€ ๋ฒˆ์—ญํŒ์€http://purple.icu.ac.kr/~kimkk/guide/gprof/gprof_toc.html๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค.

โ–  http://www710.univ-lyon1.fr/~yperret/fnccheck/doc.html
gcc์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์‹ ํ˜• ํ”„๋กœํŒŒ์ผ๋Ÿฌ์ธ fncdump์— ๋Œ€ํ•œ ์†Œ๊ฐœ ๋ฌธ์„œ์ด๋‹ค. ํ•œ๊ธ€ ๋ฒˆ์—ญํŒ์€http://purple.icu.ac.kr/~kimkk/guide/functioncheck/#SEC_1๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค.

โ–  http://www.redhat.com/software/gnupro/technical/gnupro_gcc.html

gcc ํ”„๋กœ์ ํŠธ๋ฅผ ์ด๋Œ๊ณ  ์žˆ๋Š” ๋ ˆ๋“œํ–‡์‚ฌ์—์„œ ๊ฐœ๋ฐœํ•œ ์ƒ์šฉ ํ”„๋กœ๊ทธ๋žจ์ธ GNUPro ํŒจํ‚ค์ง€์—์„œ ์ œ๊ณตํ•˜๋Š” ์ตœ์ ํ™” ๊ธฐ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” ๊ธฐ์‚ฌ์ด๋‹ค.

 

 

 

11์žฅ๊ฐœ๋ฐœ ํ›„ ์ƒ์šฉ ์ œํ’ˆ์„ ์œ„ํ•œ ํŒจํ‚ค์ง• 

 

โ–ก ใ€ŽEmbedded Linux: Hardware, Software, and Interfacingใ€, Dr. Craig Hollabaugh, Addison-Wesley, 2002

์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค์— ๋Œ€ํ•ด ์ฒด๊ณ„์ ์œผ๋กœ ์ž˜ ๊ตฌ์„ฑ๋œ ์ฑ…์ด๋‹ค. ์ ˆ๋ฐ˜ ์ด์ƒ์ด ์ธํ„ฐํŽ˜์ด์Šคํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์†Œ๊ฐœ์ด๋ฏ€๋กœ, ์ผ์ • ์ˆ˜์ค€ ์ด์ƒ์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณด๊ธฐ์— ์ ๋‹นํ•˜๋‹ค.

โ–ก ใ€ŽEmbedded Linux Devleopment: Building Embedded Linux Systems(MPC8xx)ใ€, ๊ต์œก์ž๋ฃŒ, Adelinux 2001

โ–ก ใ€ŽEmbedded Linux Devleopment: Building Embedded Linux Systems(StrongARM)ใ€, ๊ต์œก์ž๋ฃŒ, Adelinux 2001

โ–  http://www-903.ibm.com/developerworks/kr/linux/library/l-fs.html,

 http://www-903.ibm.com/developerworks/kr/linux/library/l-fs2.html,

http://www-903.ibm.com/developerworks/kr/linux/library/l-fs3.html,

http://www-903.ibm.com/developerworks/kr/linux/library/l-fs4.html,

http://www-903.ibm.com/developerworks/kr/linux/library/l-fs5.html,

http://www-903.ibm.com/developerworks/kr/linux/library/l-fs6.html,

http://www-903.ibm.com/developerworks/kr/linux/library/l-fs7.html,

http://www-903.ibm.com/developerworks/kr/linux/library/l-fs8.html,

http://www-903.ibm.com/developerworks/kr/linux/library/l-fs9.html,

http://www-903.ibm.com/developerworks/kr/linux/library/l-fs10.html
IBM developerWorks์—์„œ ์—ฐ์žฌํ•œ ์ €๋„๋ง ํŒŒ์ผ์‹œ์Šคํ…œ ํŠน์ง‘ ๊ธฐ์‚ฌ์ด๋‹ค. ์ €๋„๋ง ํŒŒ์ผ์‹œ์Šคํ…œ์— ๋Œ€ํ•ด ์ผ๋ชฉ์š”์—ฐํ•˜๊ฒŒ ์ •๋ฆฌํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์ฝ์„๋งŒํ•œ ๊ฐ€์น˜๊ฐ€ ์žˆ๋‹ค.

โ–  http://e2fsprogs.sourceforge.net/ext2.html
EXT2 ํŒŒ์ผ์‹œ์Šคํ…œ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. EXT2 ํŒŒ์ผ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์„ค๋ช…๊ณผ ๋งํฌ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

โ–  http://www.zipworld.com.au/~akpm/linux/ext3/
EXT3 ํŒŒ์ผ์‹œ์Šคํ…œ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. EXT3 ํŒŒ์ผ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์„ค๋ช…๊ณผ ์†Œํ”„ํŠธ์›จ์–ด, ๋งํฌ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

โ–  http://www.namesys.com/
ReiserFS ํŒŒ์ผ์‹œ์Šคํ…œ์„ ๋งŒ๋“  namesys.com ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ReiserFS์— ๋Œ€ํ•œ ๊ฐ์ข… ๊ธฐ์ˆ  ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

โ–  http://www.linuxfocus.org/English/July2001/article210.shtml
์‹ ํ˜• ๋ฆฌ๋ˆ…์Šค ๋žจ๋””์Šคํฌ ํŒŒ์ผ์‹œ์Šคํ…œ์ธ ramfs๋ฅผ ์†Œ๊ฐœํ•˜๋Š” ๊ธฐ์‚ฌ์ด๋‹ค. ์ตœ์‹  ์ปค๋„ 2.4์— ๋Œ€ํ•ด ๋‹ค๋ฃฌ๋‹ค.

โ–  http://www.linuxfocus.org/English/November1999/article124.html
๊ตฌํ˜• ๋ฆฌ๋ˆ…์Šค ๋žจ๋””์Šคํฌ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” ๊ธฐ์‚ฌ์ด๋‹ค. ์ด ๋ฌธ์„œ๋ฅผ ์—ญ์‚ฌ์ ์ธ ๊ด€์ ์—์„œ ์ฐธ์กฐํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค.

โ–  http://developer.axis.com/software/jffs/doc/jffs.shtml
JFFS(Journaling Flash File System)์„ ์†Œ๊ฐœํ•˜๋Š” ๋ฌธ์„œ์ด๋‹ค.

โ–  http://developer.axis.com/software/jffs/
JFFS ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.embeddedlinuxworks.com/articles/jffs_guide.html
JFFS ๊ด€๋ จํ•ด ๊ตฌ์ฒด์ ์ธ ์‚ฌ์šฉ๋ฒ•์„ ์ •๋ฆฌํ•œ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://sources.redhat.com/jffs2/
JFFS2 ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://penguinppc.org/embedded/howto/root-filesystem.html
MPC์—์„œ ๋ฃจํŠธ ํŒŒ์ผ์‹œ์Šคํ…œ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•œ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.linux-mtd.infradead.org/
๋ฆฌ๋ˆ…์Šค๋ฅผ ์œ„ํ•œ MTD(Memory Technology Device) ์„œ๋ธŒ ์‹œ์Šคํ…œ๊ณผ ๊ด€๋ จ์žˆ๋Š” ๊ฐ์ข… ์‚ฌํ•ญ์„ ์ •๋ฆฌํ•œ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.aleph1.co.uk/armlinux/projects/yaffs/jffs2_and_nand.html
NAND ํ”Œ๋ž˜์‹œ์—์„œ JFFS2๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์ ์„ ์†Œ๊ฐœํ•˜๋Š” ๋ฌธ์„œ์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋ฌธ์„œ ๋‚ด์šฉ์—์„œ ์ž˜๋ชป๋œ ๋ถ€๋ถ„(์˜ˆ: JFFS2๊ฐ€ ๋ฐฐ๋“œ ์„นํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•œ๋‹ค. NAND ํ”Œ๋ž˜์‹œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค)์ด ๋ณด์ธ๋‹ค.

โ–  http://ftp.linux.org.uk/pub/people/dwmw2/mtd/cvs/mtd/mtd-jffs-HOWTO.txt
๊ฐ„๋‹จํ•œ ๋ฆฌ๋ˆ…์Šค MTD, JFFS HOW-TO ๋ฌธ์„œ์ด๋‹ค.

โ–  http://ykjung99.netian.com/mtd/mtd.html
MPC860 ๋ณด๋“œ์— MTD/JFFS2๋ฅผ ์ด์‹ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://myhome.naver.com/kingseft/gallery.html
์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ๋ฐ์ดํ„ฐ/๊ฒŒ์‹œํŒ ๋ฉ”๋‰ด์—์„œ 'Embedded Linux'๋ฅผ ์„ ํƒํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค.

โ–  http://www.linuxdevices.com/articles/AT7478621147.html
์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ์„ ์œ„ํ•œ ํ”Œ๋ž˜์‹œ ํŒŒ์ผ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://www.linuxhq.com/kernel/v2.4/doc/initrd.txt.html
๋ถ€ํŒ…์„ ์œ„ํ•œ ๋ฆฌ๋ˆ…์Šค ๋žจ๋””์Šคํฌ์ธ initrd ์‚ฌ์šฉ๋ฒ•์„ ์ •๋ฆฌํ•œ ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://kldp.org/Translations/html/Initrd-KLDP/Initrd-KLDP.html
์ดˆ๊ธฐ ๋žจ๋””์Šคํฌ์ธ initrd์— ๋Œ€ํ•œ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•œ ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://www.linux.org/docs/ldp/howto/Bootdisk-HOWTO/index.html
๋ฆฌ๋ˆ…์Šค์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€ํŠธ ๋””์Šคํฌ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๋Š” HOW-TO ๋ฌธ์„œ์ด๋‹ค.

โ–  http://www.tldp.org/HOWTO/mini/Loopback-Root-FS.html
๋ฃจํ”„๋ฐฑ ๋ฃจํŠธ ํŒŒ์ผ์‹œ์Šคํ…œ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๋Š” HOW-TO ๋ฌธ์„œ์ด๋‹ค.

โ–  http://atrak.usc.edu/~kar/mtd-jffs.html
์•„์‚ฌ๋ฒณ์—์„œ bootldr์„ ์‚ฌ์šฉํ•ด MTD-JFFS ํŒŒ์ผ ์ด๋ฏธ์ง€๋กœ ๋ถ€ํŒ…ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.busybox.net/
GNU fileutils, shellutils์— ๋“ค์–ด์žˆ๋Š” ๊ฐ์ข… ํ”„๋กœ๊ทธ๋žจ์„ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด๋†“์€ ์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค๋ฅผ ์œ„ํ•œ ๋งฅ๊ฐ€์ด๋ฒ„ ์นผ(์Šค์œ„์Šค ๊ตฐ์šฉ ์นผ์ด ์ •ํ™•ํ•œ ํ‘œํ˜„์ด์ง€๋งŒ ์—ฌ๊ธฐ์„œ๋Š” ํŽธ์˜์ƒ ๋งฅ๊ฐ€์ด๋ฒ„ ์นผ๋กœ ์ง€์นญํ•œ๋‹ค)์ธ busybox ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://tinylogin.busybox.net/
๊ฒฝ๋Ÿ‰๊ธ‰์ด๋ฉด์„œ๋„ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ ๊ฐ–์ถ”๊ณ  ์žˆ๋Š” ์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค์—์„œ ๋™์ž‘ํ•˜๋Š” ๋กœ๊ทธ์ธ ํ”„๋กœ๊ทธ๋žจ์ธtinylogin ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://udhcp.busybox.net/
์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค์—์„œ ๋™์ž‘ํ•˜๋Š” ๊ฒฝ๋Ÿ‰๊ธ‰ dhcp ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ํŒจํ‚ค์ง€์ธ udhcp ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://packages.debian.org/stable/base/ae.html
๊ฒฝ๋Ÿ‰ ๋ฌธ์„œ ํŽธ์ง‘๊ธฐ์ธ ์•ˆํ† ๋‹ˆ ํŽธ์ง‘๊ธฐ(ae) ํŒจํ‚ค์ง€๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://packages.debian.org/unstable/base/elvis-tiny.html
๊ฒฝ๋Ÿ‰ vi ํด๋ก ์ธ elvis-tiny ํŒจํ‚ค์ง€๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

๋ชฉ์ฐจ

 

 

3๋ถ€. ๋ฆฌ๋ˆ…์Šค ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ•๊ณผ ์ด์‹ 

12์žฅ๊ต์ฐจ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ• 

 

โ–ก ใ€ŽEmbedded Linux: Hardware, Software, and Interfacingใ€, Dr. Craig Hollabaugh, Addison-Wesley, 2002

์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค์— ๋Œ€ํ•ด ์ฒด๊ณ„์ ์œผ๋กœ ์ž˜ ๊ตฌ์„ฑ๋œ ์ฑ…์ด๋‹ค. ์ ˆ๋ฐ˜ ์ด์ƒ์ด ์ธํ„ฐํŽ˜์ด์Šคํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์†Œ๊ฐœ์ด๋ฏ€๋กœ, ์ผ์ • ์ˆ˜์ค€ ์ด์ƒ์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณด๊ธฐ์— ์ ๋‹นํ•˜๋‹ค.

โ–ก ใ€Ž๋Ÿฌ๋‹ ๋ฆฌ๋ˆ…์Šค 3ํŒใ€, ๋งคํŠธ ์›ฐ์‹œ, ๋ผ ์นด์šฐํ”„๋งŒ, ์นผ๋ ˆ ๋”œํ•˜์ด๋จธ ์ €, ์ด๋งŒ์šฉ ์—ญ, ํ•œ๋น›๋ฏธ๋””์–ด, 2001

์˜ค๋ผ์ผ๋ฆฌ ใ€ŽRunning Linux 3rd Editionใ€์˜ ๋ฒˆ์—ญํŒ์ด๋‹ค. ๋ฆฌ๋ˆ…์Šค๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ๋…์ž๊ฐ€ ๊ณ ๋ฏผํ•˜๋ฉด์„œ ์ฝ์„ ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ‘์ •๋ณด๋ฅผ ์œ„ํ•œ ์ •๋ณด๋ฅผ ๋‹ด์€ ๋ฉ”ํƒ€๋ถ(meta-book)’์œผ๋กœ ๋ฆฌ๋ˆ…์Šค๋ผ๋Š” ์šด์˜์ฒด์ œ์— ์ฒ ํ•™์ ์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ๊ตฌ์„ฑ ๋ฐฉ์‹์ด ๋‹๋ณด์ธ๋‹ค. ์šด์˜์ฒด์ œ๋ฅผ ์ „ํ˜€ ๋ชจ๋ฅด๋Š” ์™„์ „ ์ดˆ๋ณด์ž์—๊ฒŒ๋Š” ๋‹ค์†Œ ์–ด๋ ค์šธ ์ˆ˜๋„ ์žˆ๋‹ค.

โ–ก ใ€ŽGNU ์†Œํ”„ํŠธ์›จ์–ด๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•˜๊ธฐใ€, ๋งˆ์ดํฌ ๋ฃจํ‚ค๋””์Šค, ์•ค๋”” ์˜ค๋žŒ ์ €, ์ด๊ธฐ๋™ ์—ญ, ํ•œ๋น›๋ฏธ๋””์–ด, 2000

์˜ค๋ผ์ผ๋ฆฌ ใ€ŽProgramming with GNU Softwareใ€์˜ ๋ฒˆ์—ญํŒ์ด๋‹ค. ๋ฌธ์„œ ํŽธ์ง‘๊ธฐ์ธ ์ด๋งฅ์Šค, C/C++ ์ปดํŒŒ์ผ๋Ÿฌ์ธ gcc, ๋””๋ฒ„๊ฑฐ์ธ gdb, ์ปดํŒŒ์ผ ์ž๋™ํ™” ๋„๊ตฌ์ธ make, ์†Œ์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ธ RCS์— ๋Œ€ํ•ด ์ž…๋ฌธํ•˜๋Š” ๋ณ‘์•„๋ฆฌ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์•ˆ๋‚ด์ž ๊ตฌ์‹ค์„ ํ•œ๋‹ค. ์•„์‰ฝ๊ฒŒ๋„ ์ค‘๊ธ‰ ๊ฐœ๋ฐœ์ž์—๊ฒŒ๋Š” ๋ถ€์ ํ•ฉํ•˜๋‹ค.

โ–  http://www.gnu.org/directory/
GNU ์†Œํ”„ํŠธ์›จ์–ด ๋ชฉ๋ก์„ ์ œ๊ณตํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ๋ถ„๋ฅ˜ ๋ณ„๋กœ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋ฌถ์–ด ๋†“๊ณ  ๋ˆ„๊ฐ€ ๋งŒ๋“ค์—ˆ๋Š”์ง€, ํ”„๋กœ์ ํŠธ ํ™ˆํŽ˜์ด์ง€๋Š” ์–ด๋”˜์ง€, ์›์‹œ ์ฝ”๋“œ์™€ ๋ฌธ์„œ๋Š” ๊ตฌํ•˜๋Š” ๊ณณ์„ ์•Œ๋ ค์ค€๋‹ค.

โ–  http://gcc.gnu.org/
gcc ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ํ•„์š”ํ•œ ๊ฐ์ข… ๋ฌธ์„œ์™€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋‹ค.

โ–  http://www.kernel.org/
๋ฆฌ๋ˆ…์Šค ์ปค๋„ ํ”„๋กœ์ ํŠธ ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ์ตœ์‹  ์ปค๋„ ๋ณ€๋™ ์‚ฌํ•ญ๊ณผ ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์„ ์œ„ํ•œ ๋ฆฌ๋ˆ…์Šค ๋งํฌ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

โ–  http://www.sthoward.com/CrossGCC/
๊ต์ฐจ ์ปดํŒŒ์ผ๋Ÿฌ์ธ CrossGCC์— ๋Œ€ํ•œ FAQ๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.linux.org/docs/ldp/howto/Glibc2-HOWTO.html
glibc ๋ฒ„์ „ 2๋ฅผ ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ์— ์„ค์น˜ํ•˜๊ณ  ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•/ํ•˜๋Š” HOW-TO ๋ฌธ์„œ์ด๋‹ค.

โ–  http://huizen.dds.nl/~frodol/glibc/
glibc ๋ฒ„์ „ 2๋ฅผ ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ์— ์„ค์น˜ํ•˜๊ณ  ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://mort.level5.net/stef/glibc.html
glibc ๋ฒ„์ „ 2๋ฅผ ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ์— ์„ค์น˜ํ•˜๊ณ  ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://www.handhelds.org/pipermail/familiar/2002-February/005796.html
๊ต์ฐจ ์ปดํŒŒ์ผ ์ ˆ์ฐจ์™€ ๋ช‡๋ช‡ ์œ ์šฉํ•œ URL์„ ์ œ๊ณตํ•˜๋Š” USENET ๋ฌธ์„œ์ด๋‹ค. ์กฐ๊ธˆ ๋‚ก์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹จ์ˆœํžˆ ์ฐธ๊ณ ์šฉ์œผ๋กœ๋งŒ ํ™œ์šฉํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค.

โ–  http://61.96.198.114/linux/arm-linux/cross-compiler.html
ํ•œ๊ธ€๋กœ ๋งŒ๋“  ARM์šฉ ๊ต์ฐจ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์ปดํŒŒ์ผ ๋ฐฉ๋ฒ•์ด๋‹ค. ์˜ˆ์ „ ๋ฒ„์ „์„ ๋‹ค๋ฃจ๋ฉฐ ์กฐ๊ธˆ ์ž˜๋ชป๋œ ๋‚ด์šฉ์ด ๋“ค์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹จ์ˆœํžˆ ์ฐธ๊ณ ์šฉ์œผ๋กœ๋งŒ ํ™œ์šฉํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค.

โ–  http://www.armlinux.org/docs/toolchain/toolchHOWTO/x183.html
ARM์šฉ ๊ต์ฐจ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์ปดํŒŒ์ผ ๋ฐฉ๋ฒ•์ด๋‹ค. ์กฐ๊ธˆ ์ž˜๋ชป๋œ ๋‚ด์šฉ์ด ๋“ค์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋‹จ์ˆœํžˆ ์ฐธ๊ณ ์šฉ์œผ๋กœ๋งŒ ํ™œ์šฉํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค.

โ–  http://www.tazenda.demon.co.uk/phil/arm-tools.html
ARM์šฉ ๊ต์ฐจ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์ปดํŒŒ์ผ ๋ฐฉ๋ฒ•์ด๋‹ค. ์ด๊ฒƒ๋„ ์˜ˆ์ „ ๋ฒ„์ „์„ ๋‹ค๋ฃจ๋‹ˆ ์ฐธ๊ณ ์šฉ์œผ๋กœ๋งŒ ํ™œ์šฉํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค.

โ–  http://www.ailis.de/~k/knowledge/crosscompiling/toolchain.php
ARM์šฉ ๊ต์ฐจ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์ปดํŒŒ์ผ ๋ฐฉ๋ฒ•์ด๋‹ค. ์ด๊ฒƒ๋„ ํŽธ๋ฒ•์„ ์จ์„œ ์žˆ๋‹จ์ˆœํžˆ ์ฐธ๊ณ ์šฉ์œผ๋กœ๋งŒ ํ™œ์šฉํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค.

โ– http://www.handhelds.org/z/wiki/HOWTO%20Build%20a%20Cross%20Toolchain%20in%20Brief
ARM์šฉ ๊ต์ฐจ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์ปดํŒŒ์ผ ๋ฐฉ๋ฒ•์ด๋‹ค. ์—ญ์‹œ ์˜ˆ์ „ ๋ฒ„์ „์„ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์— ๋‹จ์ˆœํžˆ ์ฐธ๊ณ ์šฉ์œผ๋กœ๋งŒ ํ™œ์šฉํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค.

โ–  http://sources.redhat.com/ml/libc-alpha/2002-01/msg00388.html
ARM์šฉ glibc-2.2.5๋ฅผ ์ปดํŒŒ์ผ ํ•  ๊ฒฝ์šฐ์— ํ•„์š”ํ•œ ํŒจ์น˜ ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค์ฃผ๋Š” ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://penguinppc.org/embedded/cross-compiling/
MPC์šฉ ๊ต์ฐจ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์ปดํŒŒ์ผ ๋ฐฉ๋ฒ•์ด๋‹ค. ์ž˜๋ชป๋œ ๋‚ด์šฉ์ด ๋“ค์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋‹จ์ˆœํžˆ ์ฐธ๊ณ ์šฉ์œผ๋กœ๋งŒ ํ™œ์šฉํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค.

โ–  http://groups.google.co.kr/groups?q=gcc%2B3.0.3%2Bcross%2Bcompile%2BARM&hl=ko&newwindow=1&selm=linux.arm.20020205231029.GB25513%40arthur.ubicom.tudelft.nl&rnum=1
ARM์šฉ ๊ต์ฐจ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์ปดํŒŒ์ผ ๋„์ค‘์— ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์ ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๋Š” ๋‰ด์Šค(USENET) ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://groups.google.co.kr/groups?hl=ko&newwindow=1&threadm=linux.arm.001501c1a345%245b83a6b0%24eb4a0a3d%40homeuc1hfbdu7w.SOMEWHERE&rnum=7&prev=/groups%3Fq%3Dcrti.o%252Bgcc%252BARM%26hl%3Dko%26newwindow%3D1%26selm%3Dlinux.arm.001501c1a345%25245b83a6b0%2524eb4
ARM์šฉ ๊ต์ฐจ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์ปดํŒŒ์ผ ๋„์ค‘์— ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์ ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๋Š” ๋‰ด์Šค(USENET) ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://groups.google.co.kr/groups?q=fenv_libc.h&hl=ko&lr=&ie=UTF-8&oe=UTF-8&newwindow=1&selm=3D236C3A.1030406%40ixiacom.com&rnum=3
MPC์šฉ ๊ต์ฐจ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์ปดํŒŒ์ผ ๋„์ค‘์— ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์ ๊ณผ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๋Š” ๋‰ด์Šค(USENET) ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://groups.google.co.kr/groups?q=fenv_const&hl=ko&lr=&ie=UTF-8&oe=UTF-8&newwindow=1&selm=200201110842.JAA16220%40merlin.gams.co.at&rnum=2
MPC์šฉ glibc 2.2.4 ์ด์ƒ ๋ฒ„์ „์„ ์ปดํŒŒํ•  ๊ฒฝ์šฐ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์ ๊ณผ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๋Š” ๋‰ด์Šค(USENET) ๊ธฐ์‚ฌ์ด๋‹ค.

  

13์žฅ๋„คํŠธ์›Œํฌ์™€ ๋””๋ฒ„๊น… ํ™˜๊ฒฝ ๊ตฌ์ถ• 

 

โ–ก ใ€ŽEmbedded Linux: Hardware, Software, and Interfacingใ€, Dr. Craig Hollabaugh, Addison-Wesley, 2002

์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค์— ๋Œ€ํ•ด ์ฒด๊ณ„์ ์œผ๋กœ ์ž˜ ๊ตฌ์„ฑ๋œ ์ฑ…์ด๋‹ค. ์ ˆ๋ฐ˜ ์ด์ƒ์ด ์ธํ„ฐํŽ˜์ด์Šคํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์†Œ๊ฐœ์ด๋ฏ€๋กœ, ์ผ์ • ์ˆ˜์ค€ ์ด์ƒ์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณด๊ธฐ์— ์ ๋‹นํ•˜๋‹ค.

โ–ก ใ€Ž๋Ÿฌ๋‹ ๋ฆฌ๋ˆ…์Šค 3ํŒใ€, ๋งคํŠธ ์›ฐ์‹œ, ๋ผ ์นด์šฐํ”„๋งŒ, ์นผ๋ ˆ ๋”œํ•˜์ด๋จธ ์ €, ์ด๋งŒ์šฉ ์—ญ, ํ•œ๋น›๋ฏธ๋””์–ด, 2001

์˜ค๋ผ์ผ๋ฆฌ ใ€ŽRunning Linux 3rd Editionใ€์˜ ๋ฒˆ์—ญํŒ์ด๋‹ค. ๋ฆฌ๋ˆ…์Šค๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ๋…์ž๊ฐ€ ๊ณ ๋ฏผํ•˜๋ฉด์„œ ์ฝ์„ ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ‘์ •๋ณด๋ฅผ ์œ„ํ•œ ์ •๋ณด๋ฅผ ๋‹ด์€ ๋ฉ”ํƒ€๋ถ(meta-book)’์œผ๋กœ ๋ฆฌ๋ˆ…์Šค๋ผ๋Š” ์šด์˜์ฒด์ œ์— ์ฒ ํ•™์ ์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ๊ตฌ์„ฑ ๋ฐฉ์‹์ด ๋‹๋ณด์ธ๋‹ค. ์šด์˜์ฒด์ œ๋ฅผ ์ „ํ˜€ ๋ชจ๋ฅด๋Š” ์™„์ „ ์ดˆ๋ณด์ž์—๊ฒŒ๋Š” ๋‹ค์†Œ ์–ด๋ ค์šธ ์ˆ˜๋„ ์žˆ๋‹ค.

โ–ก ใ€Ž๋„คํŠธ์›Œํฌ ํ”„๋ฆฐํŒ…ใ€, ํ† ๋“œ ๋ ˆ์ด๋”๋งˆ์ปค, ๋งคํŠœ ๊ฐœ์ŠคํŠธ ์ €, ๋ฐ•์žฌํ˜ธ, ์ด์˜๋ฏธ ์—ญ, ํ•œ๋น›๋ฏธ๋””์–ด, 2001
๋ฆฌ๋ˆ…์Šค์™€ ์œ ๋‹‰์Šค๋ฅผ ์„œ๋ฒ„๋กœ, ์œˆ๋„์šฐ, ๋งฅ, ๋„ท์›จ์–ด๋ฅผ ํด๋ผ์ด์–ธํŠธ๋กœ ๊ตฌ์„ฑํ•œ ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์—์„œ ์ธ์‡„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ธฐ์ˆ ํ•œ๋‹ค. BOOTP, DHCP์™€ ๊ฐ™์€ ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•ด ํ”„๋ฆฐํ„ฐ๋ฅผ ๋ถ€ํŒ…ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์†Œ๊ฐœํ•œ๋‹ค.

โ–  http://nfs.sourceforge.net/nfs-howto/
NFS ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ์„ค์ • ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” NFS HOW-TO ๋ฌธ์„œ์ด๋‹ค.

โ–  http://www.delorie.com/gnu/docs/gdb/gdb_111.html
๊ฐ„๋‹จํ•œ gdbserver ์‚ฌ์šฉ๋ฒ•์„ ์•Œ๋ ค์ฃผ๋Š” ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://www.gnu.org/software/ddd/
gdb ํ”„๋ก ํŠธ์—”๋“œ์ธ DDD(DataDisplay Debugger) ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ๋ช…๋ นํ–‰ ๋ฐฉ์‹์— ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ๊ฐœ๋ฐœ์ž๋ผ๋ฉด DDD๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค.

โ–  http://www.billgatliff.com/twiki/bin/view/Crossgcc/BuildGdbServer
gdbserver๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ปดํŒŒ์ผํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://www.billgatliff.com/twiki/bin/view/Crossgcc/BuildStrace
ARM ํ”Œ๋žซํผ์„ ์œ„ํ•ด ๊ต์ฐจ strace๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” ๊ธฐ์‚ฌ์ด๋‹ค. 

 

14์žฅ๋ถ€ํŠธ ์ŠคํŠธ๋žฉ ๋กœ๋” ์ด์‹ 

 

โ–ก ใ€ŽEmbedded Linux: Hardware, Software, and Interfacingใ€, Dr. Craig Hollabaugh, Addison-Wesley, 2002

์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค์— ๋Œ€ํ•ด ์ฒด๊ณ„์ ์œผ๋กœ ์ž˜ ๊ตฌ์„ฑ๋œ ์ฑ…์ด๋‹ค. ์ ˆ๋ฐ˜ ์ด์ƒ์ด ์ธํ„ฐํŽ˜์ด์Šคํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์†Œ๊ฐœ์ด๋ฏ€๋กœ, ์ผ์ • ์ˆ˜์ค€ ์ด์ƒ์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณด๊ธฐ์— ์ ๋‹นํ•˜๋‹ค.

โ–ก linux/Documentation/arm/SA1100/Assabet

์•„์‚ฌ๋ฒณ ํ™˜๊ฒฝ์—์„œ ๋ถ€ํŠธ ์ŠคํŠธ๋žฉ ๋กœ๋”๋ฅผ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ธฐ์ˆ ํ•˜๋Š” ๋ฆฌ๋ˆ…์Šค ๋ฐฐํฌํŒ์— ๋“ค์–ด์žˆ๋Š” ๋ฌธ์„œ์ด๋‹ค.

โ–  http://www.lart.tudelft.nl/projects/jtag/
ARM์šฉ JTAG์„ ์†Œ๊ฐœํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. LART์™€ ํ˜ธํ™˜๋˜๋Š” ํƒ€๊ฒŸ ๋ณด๋“œ์—๋งŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๋ช…์‹ฌํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค.

โ–  http://www.handhelds.org/Compaq/bootldr.html

๋ถ€ํŠธ ์ŠคํŠธ๋žฉ ๋กœ๋”์ธ bootldr ์‚ฌ์šฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” HOW-TO ๋ฌธ์„œ์ด๋‹ค.

โ–  http://www.vas-gmbh.de/software/mpcbdm/
MPC์šฉ BDM์„ ์†Œ๊ฐœํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.aleph1.co.uk/armlinux/book/book1.html
ARM ํ”Œ๋žซํผ์„ ์œ„ํ•œ ๊ต์ฐจ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ• ๋ฐฉ๋ฒ•, JTAG๊ณผ Angel ์„ค์น˜์™€ ์‚ฌ์šฉ๋ฒ•, ๋ถ€ํŒ…์— ํ•„์š”ํ•œ ๊ฐ์ข… ์„ค์ •, ํŒจํ‚ค์ง• ๊ด€๋ จ ๋‚ด์šฉ์„ ์ฒด๊ณ„์ ์œผ๋กœ ์†Œ๊ฐœํ•˜๋Š” ๋ฌธ์„œ์ด๋‹ค.

โ–  http://www.aleph1.co.uk/armlinux/docs/ARMbooting/x115.html
์•ž์˜ URL์—์„œ ๋ถ€ํŠธ ์ŠคํŠธ๋žฉ ๋กœ๋”์™€ ๊ด€๋ จํ•œ ๋‚ด์šฉ๋งŒ ์ถ”๋ ค๋ƒˆ๋‹ค.

โ–  http://hints.linuxfromscratch.org/hints/grub-howto.txt
GRUB ์„ค์น˜์™€ ํ™˜๊ฒฝ ์„ค์ • ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” HOW-TO ๋ฌธ์„œ์ด๋‹ค.

โ–  http://www.falinux.com/win/study/tip2.html
BLOB ์ปดํŒŒ์ผ ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” HOW-TO ๋ฌธ์„œ์ด๋‹ค. ํ•œ๊ธ€ ๋ฒ„์ „์ด๋ฏ€๋กœ ๋ถ€๋‹ด์—†์ด ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค.

โ–  http://www.ailis.de/~k/knowledge/crosscompiling/zlib.php
zlib๋ฅผ ARM ํ”Œ๋žซํผ์—์„œ ๊ต์ฐจ ์ปดํŒŒ์ผํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” HOW-TO ๋ฌธ์„œ์ด๋‹ค.

โ–  http://www.handhelds.org/handhelds-faq/bootldr.html
bootldr ๊ด€๋ จ FAQ๋ฅผ ์ •๋ฆฌํ•ด๋†“์€ ๋ฌธ์„œ์ด๋‹ค.

โ–  http://pain.kernel.pe.kr/sgml/embedded/Embedded_Linux_Devel.html
ARM ํ”Œ๋žซํผ์—์„œ ์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค๋ฅผ ์ด์‹ํ•˜๋Š” ์ „๋ฐ˜์ ์ธ ๊ณผ์ •์„ ์†Œ๊ฐœํ•˜๋Š” ๋ฌธ์„œ์ด๋‹ค. bootldr์— ๋Œ€ํ•ด ์†Œ๊ฐœํ•œ๋‹ค. ํ•œ๊ธ€ ๋ฒ„์ „์ด๋ฏ€๋กœ ๋ถ€๋‹ด์—†์ด ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค.

โ–  http://sources.redhat.com/ecos/docs-latest/redboot/redboot.html

RedBoot ์‚ฌ์šฉ๋ฒ•์„ ์•Œ๋ ค์ฃผ๋Š” ์‚ฌ์šฉ์ž ๊ฐ€์ด๋“œ์ด๋‹ค.

โ–  http://sources.redhat.com/ecos/docs-latest/redboot/rebuilding-redboot.html
์›์‹œ ์ฝ”๋“œ์—์„œ RedBoot์„ ์ƒˆ๋กœ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค์ฃผ๋Š” HOW-TO ๋ฌธ์„œ์ด๋‹ค.

โ–  http://sources.redhat.com/ecos/anoncvs.html
eCOS๋ฅผ CVS๋กœ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” ๊ฐ„์ด HOW-TO ๋ฌธ์„œ์ด๋‹ค.

โ–  http://sources.redhat.com/ecos/tools/linux-arm-elf.html
eCOS์— ํ•„์š”ํ•œ ๊ต์ฐจ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” ๊ฐ„์ด HOW-TO ๋ฌธ์„œ์ด๋‹ค.

โ–  http://hana-tech.com/LinuxGnuCompilerBuild.htm
ARM์šฉ elf ๋ฐฉ์‹ ๊ต์ฐจ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” ๊ฐ„์ด HOW-TO ๋ฌธ์„œ์ด๋‹ค. ํ•œ๊ธ€ ๋ฒ„์ „์ด๋ฏ€๋กœ ๋ถ€๋‹ด์—†์ด ์ฐธ๊ณ ํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค.

โ–  http://www-2.cs.cmu.edu/~wearable/software/assabet.html
์•„์‚ฌ๋ฒณ์„ ์ ์šฉํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ๋ˆ„๊ตฌ๋‚˜ ์‚ดํŽด๋ด์•ผ ํ•  ์œ ๋ช…ํ•œ ํŽ˜์ด์ง€์ด๋‹ค. ํ•˜์ง€๋งŒ ์•„์‰ฝ๊ฒŒ๋„ Angel ์‚ฌ์šฉ๋ฒ• ์œ„์ฃผ๋กœ ๋ถ€ํŠธ ์ŠคํŠธ๋žฉ ๊ตฌ์ถ• ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•œ๋‹ค.

โ–  http://www.aleph1.co.uk/armlinux/docs/ARMbooting/jtaging.html
JTAG์„ ์‚ฌ์šฉํ•ด ๋ถ€ํŠธ ์ŠคํŠธ๋žฉ ๋กœ๋”๋ฅผ ํ”Œ๋ž˜์‹œ์— ๊ตฝ๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” ํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.denx.de/doc/CPU86/index.html
MPC ํ”Œ๋žซํผ์„ ์œ„ํ•œ ๊ต์ฐจ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ• ๋ฐฉ๋ฒ•, PPCBOOT ์„ค์น˜์™€ ์‚ฌ์šฉ๋ฒ•, ๋ถ€ํŒ…์— ํ•„์š”ํ•œ ๊ฐ์ข… ์„ค์ •, ํŒจํ‚ค์ง• ๋‚ด์šฉ์„ ์ฒด๊ณ„์ ์œผ๋กœ ์†Œ๊ฐœํ•˜๋Š” ๋ฌธ์„œ์ด๋‹ค.

โ–  http://penguinppc.org/embedded/howto/PowerPC-Embedded-HOWTO.html
MPC ํ”Œ๋žซํผ์„ ์œ„ํ•œ ๊ต์ฐจ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ• ๋ฐฉ๋ฒ•, PPCBOOT ์„ค์น˜์™€ ์‚ฌ์šฉ๋ฒ•, ๋ถ€ํŒ…์— ํ•„์š”ํ•œ ๊ฐ์ข… ์„ค์ •, ํŒจํ‚ค์ง• ๊ด€๋ จ ๋‚ด์šฉ์„ ์ฒด๊ณ„์ ์œผ๋กœ ์†Œ๊ฐœํ•˜๋Š” ๋ฌธ์„œ์ด๋‹ค.

โ–  http://www.objsw.com/CrossGCC/FAQ-8.html#ss8.1
๋ชจํ† ๋กœ๋ผ์—์„œ ๋งŒ๋“  MPC๋ฅผ ์œ„ํ•œ ์ž๋ฃŒ์™€ ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ๋ฅผ ์ „์†กํ•˜๋Š” ํ‘œ์ค€ ๊ทœ์•ฝ์„ ์†Œ๊ฐœํ•˜๋Š” FAQ์ด๋‹ค.

 

15์žฅ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ํ™˜๊ฒฝ ์„ค์ •๊ณผ ์ปดํŒŒ์ผ 

 

โ–ก ใ€ŽEmbedded Linux: Hardware, Software, and Interfacingใ€, Dr. Craig Hollabaugh, Addison-Wesley, 2002

์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค์— ๋Œ€ํ•ด ์ฒด๊ณ„์ ์œผ๋กœ ์ž˜ ๊ตฌ์„ฑ๋œ ์ฑ…์ด๋‹ค. ์ ˆ๋ฐ˜ ์ด์ƒ์ด ์ธํ„ฐํŽ˜์ด์Šคํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์†Œ๊ฐœ์ด๋ฏ€๋กœ, ์ผ์ • ์ˆ˜์ค€ ์ด์ƒ์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณด๊ธฐ์— ์ ๋‹นํ•˜๋‹ค.

โ–ก linux/Documentation/
๋ฆฌ๋ˆ…์Šค ์ปค๋„์— ๋“ค์–ด์žˆ๋Š” ๊ธฐ๋ณธ ๋ฌธ์„œ ๋””๋ ‰ํ† ๋ฆฌ์ด๋‹ค. ์—ฌ๋Ÿฌ ์žฅ์น˜์™€ ์ปค๋„ ๊ด€๋ จ ๊ฐ์ข… ๋ฌธ์„œ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๋‹น์žฅ ํ•„์š”ํ•˜์ง€ ์•Š๋”๋ผ๋„ ์ฃผ์˜๊นŠ๊ฒŒ ์ฝ์–ด๋ณด๊ธฐ ๋ฐ”๋ž€๋‹ค.

โ–  http://www.arm.linux.org.uk/docs/kerncomp.shtml
ARM ํ”Œ๋žซํผ์—์„œ ์ปค๋„ ์ปดํŒŒ์ผํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ฐ„๋žตํ•˜๊ฒŒ ์†Œ๊ฐœํ•˜๋Š” ๋ฌธ์„œ์ด๋‹ค.

โ–  http://option.kernel.pe.kr/index.php3
์ปค๋„ ์˜ต์…˜ ํ•œ๊ธ€ํ™” ํ”„๋กœ์ ํŠธ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ํ™˜๊ฒฝ ์„ค์ • ํ•ญ๋ชฉ์„ ํ•œ๊ธ€ํ™”ํ•ด ์ œ๊ณตํ•˜๋ฏ€๋กœ ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ƒ๋‹นํžˆ ์œ ์šฉํ•˜๋‹ค.

โ–  http://kldp.org/KoreanDoc/html/2.4Kernel_Compile-KLDP/2.4Kernel_Compile-KLDP.html
๋ฆฌ๋ˆ…์Šค ์ปค๋„ 2.4๋ฅผ ํ™˜๊ฒฝ ์„ค์ •ํ•˜๊ณ  ์ปดํŒŒ์ผํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” HOW-TO ๋ฌธ์„œ์ด๋‹ค.

โ–  http://kldp.org/KoreanDoc/html/EmbeddedKernel-KLDP/
์ž„๋ฒ ๋””๋“œ ๊ฐœ๋ฐœ์ž(ํŠนํžˆ ARM)๋ฅผ ์œ„ํ•œ ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ๋ถ„์„ ๊ธฐ์‚ฌ์ด๋‹ค. ARM ๋ฆฌ๋ˆ…์Šค ์ปค๋„์ด ์–ด๋–ป๊ฒŒ ๋ถ€ํŒ…๋˜๊ณ  ์–ด๋–ค ํŠน์„ฑ์ด ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•˜๋‹ค๋ฉด ์ด ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค. ํ•œ๊ธ€ ๋ฒ„์ „์ด๋‹ค. 

 

16์žฅ๋ฃจํŠธ ํŒŒ์ผ์‹œ์Šคํ…œ ๊ตฌ์ถ• 

 

โ–ก ใ€ŽEmbedded Linux: Hardware, Software, and Interfacingใ€, Dr. Craig Hollabaugh, Addison-Wesley, 2002

์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค์— ๋Œ€ํ•ด ์ฒด๊ณ„์ ์œผ๋กœ ์ž˜ ๊ตฌ์„ฑ๋œ ์ฑ…์ด๋‹ค. ์ ˆ๋ฐ˜ ์ด์ƒ์ด ์ธํ„ฐํŽ˜์ด์Šคํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์†Œ๊ฐœ์ด๋ฏ€๋กœ, ์ผ์ • ์ˆ˜์ค€ ์ด์ƒ์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณด๊ธฐ์— ์ ๋‹นํ•˜๋‹ค.

โ–ก ใ€ŽEmbedded Linuxใ€, John Lombardo, New Riders, 2002
x86 ํ”Œ๋žซํผ์—์„œ ๋ฆฌ๋ˆ…์Šค๋ฅผ ์ตœ์†Œํ•œ์œผ๋กœ ํŒจํ‚ค์ง•ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ธฐ์ˆ ํ•œ๋‹ค. ์•„์ฃผ ๋›ฐ์–ด๋‚˜๊ฑฐ๋‚˜ ์ƒˆ๋กœ์šด ๋‚ด์šฉ์€ ๋‹ด๊ณ  ์žˆ์ง€ ์•Š์ง€๋งŒ, x86์—์„œ ์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค๋ฅผ ์žฌ๋ฏธ๋กœ ํƒ‘์žฌํ•ด๋ณด๋ ค๋Š” ์ดˆ๋ณด์ž์—๊ฒŒ๋Š” ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค.

โ–ก ใ€Ž๋Ÿฌ๋‹ ๋ฆฌ๋ˆ…์Šค 3ํŒใ€, ๋งคํŠธ ์›ฐ์‹œ, ๋ผ ์นด์šฐํ”„๋งŒ, ์นผ๋ ˆ ๋”œํ•˜์ด๋จธ ์ €, ์ด๋งŒ์šฉ ์—ญ, ํ•œ๋น›๋ฏธ๋””์–ด, 2001

์˜ค๋ผ์ผ๋ฆฌ ใ€ŽRunning Linux 3rd Editionใ€์˜ ๋ฒˆ์—ญํŒ์ด๋‹ค. ๋ฆฌ๋ˆ…์Šค๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ๋…์ž๊ฐ€ ๊ณ ๋ฏผํ•˜๋ฉด์„œ ์ฝ์„ ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ‘์ •๋ณด๋ฅผ ์œ„ํ•œ ์ •๋ณด๋ฅผ ๋‹ด์€ ๋ฉ”ํƒ€๋ถ(meta-book)’์œผ๋กœ ๋ฆฌ๋ˆ…์Šค๋ผ๋Š” ์šด์˜์ฒด์ œ์— ์ฒ ํ•™์ ์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ๊ตฌ์„ฑ ๋ฐฉ์‹์ด ๋‹๋ณด์ธ๋‹ค. ์šด์˜์ฒด์ œ๋ฅผ ์ „ํ˜€ ๋ชจ๋ฅด๋Š” ์™„์ „ ์ดˆ๋ณด์ž์—๊ฒŒ๋Š” ๋‹ค์†Œ ์–ด๋ ค์šธ ์ˆ˜๋„ ์žˆ๋‹ค.

โ–  http://www.handhelds.org/z/wiki/iPKG
์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ๋Ÿ‰ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ธ ipkg๋ฅผ ์†Œ๊ฐœํ•˜๋Š” ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://www.superant.com/cgi-bin/smalllinux.pl?SmallLinuxLikeProjects
x86 ํ”Œ๋žซํผ์—์„œ ๋ฆฌ๋ˆ…์Šค๋ฅผ ์ตœ์†Œ๋กœ ์„ค์น˜ํ•˜๋Š” ๊ฐ์ข… ํ”„๋กœ์ ํŠธ ๋งํฌ๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://linuxfromscratch.org/
์œ ๋ช…ํ•œ LFS(Linux From Scratch) ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ๋ฐฐํฌํŒ์—†์ด ๋ฆฌ๋ˆ…์Šค๋ฅผ x86 ํ”Œ๋žซํผ์— ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ƒ์„ธํžˆ ์†Œ๊ฐœํ•œ๋‹ค.

โ–  http://beyond.linuxfromscratch.org/
LFS ๋‹ค์Œ ๋ฒ„์ „์ธ BLFS(Beyond Linux From Scratch) ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. LFS์—์„œ ๋ฏธ์ง„ํ–ˆ๋˜ ๋ถ€๋ถ„์„ ๋ณด์ถฉํ•˜๊ณ  ์žˆ๋‹ค.

โ–  http://kldp.org/HOWTO/html/Bootdisk-HOWTO/
๋ฆฌ๋ˆ…์Šค์—์„œ ๋ถ€ํŠธ ๋””์Šคํฌ๋ฅผ ์ง์ ‘ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” HOW-TO๋ฌธ์„œ์ด๋‹ค. ํ•œ๊ธ€ ๋ฒˆ์—ญํŒ์ด๋ฏ€๋กœ ๋ถ€๋‹ด์—†์ด ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค.

โ–  http://www.netspace.net.au/~gok/power2bash/buildMin/buildMin.html
x86 ํ”Œ๋žซํผ์—์„œ ์ดˆ๊ธฐ ๋ถ€ํŒ… ๊ณผ์ •์—์„œ ๋ฐฐ์‹œ์…ธ๊นŒ์ง€ ์‹œ๋™ํ•˜๋„๋ก ๊ฐ„๋žตํ•˜๊ฒŒ ๋ฆฌ๋ˆ…์Šค ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://www.tldp.org/HOWTO/mini/Hard-Disk-Upgrade/index.html
x86 ํ”Œ๋žซํผ์—์„œ ์ƒˆ๋กœ ํ•˜๋“œ ๋””์Šคํฌ๋ฅผ ์žฅ์ฐฉํ•  ๊ฒฝ์šฐ์— ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ์„ ์ด์ „ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://www.tldp.org/HOWTO/Installation-HOWTO/index.html
x86 ํ”Œ๋žซํผ์—์„œ ๋ฆฌ๋ˆ…์Šค๋ฅผ ์–ด๋–ป๊ฒŒ ์„ค์น˜ํ•ด์•ผ ํ• ์ง€ ๋ฐฉํ–ฅ์„ ์žก์•„์ฃผ๋Š” ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://www-106.ibm.com/developerworks/linux/library/l-embl.html?l=sd,t=gr,p=emblinx
์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ์—์„œ ๋ถ€ํŒ… ๊ฐ€๋Šฅํ•œ ๋””์Šคํฌ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค์ฃผ๋Š” ๊ธฐ์‚ฌ์ด๋‹ค. ๋น„๋ก x86์šฉ์ด์ง€๋งŒ, ๋‹ค๋ฅธ ํ”Œ๋žซํผ์—๋„ ๋น„์Šทํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ๋‚ด์šฉ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

โ–  http://hints.linuxfromscratch.org/hints/bsd-init.txt
์Šฌ๋ž™์›จ์–ด(Slackware)์—์„œ ์ฑ„ํƒํ•˜๊ณ  ์žˆ๋Š” BSD ์Šคํƒ€์ผ๋กœ ๋ถ€ํŒ… ๊ด€๋ จ ์ดˆ๊ธฐํ™” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://mobilix.org/Mobile-Guide.db/Mobile-Guide.html
๋žฉํ†ฑ๊ณผ ๋ชจ๋ฐ”์ผ ์ปดํ“จํ„ฐ์— ๋ฆฌ๋ˆ…์Šค๋ฅผ ์„ค์น˜/์šด์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  ftp://metalab.unc.edu/pub/Linux/system/daemons/init/
๋‹ค์–‘ํ•œ sysinit ํŒจํ‚ค์ง€๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฌด๋ช…์”จ ftp ์‚ฌ์ดํŠธ์ด๋‹ค.

โ–  http://www.ailis.de/~k/knowledge/crosscompiling/bash.php
ARMํ™˜๊ฒฝ์—์„œ ๋ฐฐ์‹œ ์…ธ์„ ์ปดํŒŒ์ผํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” ์ž‘์€ HOW-TO ๋ฌธ์„œ์ด๋‹ค.

โ–  http://www.netwinder.org/allmisc.html
ARM ๊ด€๋ จ ์˜จ๊ฐ– ์žก๋‹คํ•œ ์†Œํ”„ํŠธ์›จ์–ด, ๊ฐ์ข… ํŒจ์น˜, ๋ฌธ์„œ, ๋žจ๋””์Šคํฌ๋ฅผ ๋ชจ์•„๋†“์€ ์ €์žฅ์†Œ์ด๋‹ค. ์ฃผ๋กœ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์˜ˆ์ „ ๋ฒ„์ „์ด๋ฉฐ ์ฒด๊ณ„์ ์œผ๋กœ ์ •๋ฆฌ๋ฅผ ํ•˜์ง€ ์•Š์•˜๋‹ค๋Š” ์ ์— ์ฃผ์˜ํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค.

โ–  http://www.falinux.com/win/study/tip1.html
EZBOARD ๋žจ๋””์Šคํฌ ํ™•์žฅ ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” ์ž‘์€ HOW-TO ๋ฌธ์„œ์ด๋‹ค.

โ–  ftp://ftp.win.tue.nl/pub/linux-local/utils/util-linux/

๋ฆฌ๋ˆ…์Šค์— ํ•„์š”ํ•œ ๊ฐ์ข… ์œ ํ‹ธ๋ฆฌํ‹ฐ(๊ธฐ๋ณธ ์œ ํ‹ธ๋ฆฌํ‹ฐ, ๊ฐ์ข… ํ™˜๊ฒฝ ์„ค์ • ํŒŒ์ผ, ๋งˆ์šดํŠธ,

fdisk)๋ฅผ ๋ฌถ์–ด ๋†“์€ ํŒจํ‚ค์ง€์ด๋‹ค.

๋ชฉ์ฐจ

 

 

17์žฅ์‹ค์‹œ๊ฐ„ ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ์ด์‹ 

 

โ–ก ใ€ŽPthreads Programmingใ€, Bradford Nichols, Dick Buttlar & Jacqueline Proulx Farrell, O’Reilly, 1996
Pthreads๋ฅผ ๊ฐœ๋…๊ณผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ฒ•์— ๋Œ€ํ•ด ๋‹ค๋ฃจ๋Š” ๊ณ ์ „์œผ๋กœ, RTLinux์™€ RTAI๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ๋งˆ์Œ๋จน์€ ๊ฐœ๋ฐœ์ž๋Š” ๊ผญ ์ฝ์–ด์•ผ ํ•˜๋Š” ํ•„๋…์„œ์ด๋‹ค.

โ–ก RTLinux, RTAI ๊ฐ ํŒจํ‚ค์ง€ ๋‚ด๋ถ€์— ๋“ค์–ด์žˆ๋Š” README์™€ README.DENX

๋ณธ๊ฒฉ์ ์ธ ์„ค์น˜ ์ด์ „์— ๊ผญ ์ฝ์–ด๋ณด๊ณ  ์ž‘์—…์— ๋“ค์–ด๊ฐ€๊ธฐ ๋ฐ”๋ž€๋‹ค.

โ–  http://linuxdevices.com/news/NS7630223030.html
RTLinux/Pro์—์„œ ARM์„ ์ง€์›ํ•œ๋‹ค๋Š” ์†Œ์‹์„ ๋‹ด๊ณ  ์žˆ๋Š” ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://bernia.disca.upv.es/rtportal/comparative/rtl_vs_rtai.html
RTLinux์™€ RTAI๋ฅผ ๋น„๊ตํ•˜๋Š” ๋ฌธ์„œ์ด๋‹ค.

 

 

 

18์žฅ์œˆ๋„์šฐ ์‹œ์Šคํ…œ ํ™˜๊ฒฝ ์ด์‹ 

 

โ–ก ใ€Ž๋Ÿฌ๋‹ ๋ฆฌ๋ˆ…์Šค 3ํŒใ€, ๋งคํŠธ ์›ฐ์‹œ, ๋ผ ์นด์šฐํ”„๋งŒ, ์นผ๋ ˆ ๋”œํ•˜์ด๋จธ ์ €, ์ด๋งŒ์šฉ ์—ญ, ํ•œ๋น›๋ฏธ๋””์–ด, 2001
์˜ค๋ผ์ผ๋ฆฌ ใ€ŽRunning Linux 3rd Editionใ€์˜ ๋ฒˆ์—ญํŒ์ด๋‹ค. ๋ฆฌ๋ˆ…์Šค๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ๋…์ž๊ฐ€ ๊ณ ๋ฏผํ•˜๋ฉด์„œ ์ฝ์„ ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ‘์ •๋ณด๋ฅผ ์œ„ํ•œ ์ •๋ณด๋ฅผ ๋‹ด์€ ๋ฉ”ํƒ€๋ถ(meta-book)’์œผ๋กœ ๋ฆฌ๋ˆ…์Šค๋ผ๋Š” ์šด์˜์ฒด์ œ์— ์ฒ ํ•™์ ์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ๊ตฌ์„ฑ ๋ฐฉ์‹์ด ๋‹๋ณด์ธ๋‹ค. ์šด์˜์ฒด์ œ๋ฅผ ์ „ํ˜€ ๋ชจ๋ฅด๋Š” ์™„์ „ ์ดˆ๋ณด์ž์—๊ฒŒ๋Š” ๋‹ค์†Œ ์–ด๋ ค์šธ ์ˆ˜๋„ ์žˆ๋‹ค.

โ–ก Documentation/fb ๋ฆฌ๋ˆ…์Šค ๋‚ด๋ถ€ ๋ฌธ์„œ(framebuffer.txt vesafb.txt, sa1110fb.txt)
๋งˆ์ดํฌ๋กœ ์œˆ๋„์šฐ์™€ ํƒ€์ด๋‹ˆ X๋ฅผ ์œ„ํ•ด ์ปค๋„์—์„œ ํ”„๋ ˆ์ž„ ๋ฒ„ํผ๋ฅผ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ๋™์ž‘ ์›๋ฆฌ๋ฅผ ์•Œ๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ์— ์ฐธ์กฐํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค.

โ–ก EZBOARD_LCD CD์— ๋‹ด๊ธด '2. LCD์™€ ํ„ฐ์น˜ ํŒจ๋“œ๋ฅผ ์œ„ํ•œ ์ˆ˜์ •.PDF'
EZBOARD๊ด€๋ จ ํ”„๋ ˆ์ž„ ๋ฒ„ํผ ์ˆ˜์ • ๋ฐฉ๋ฒ•์„ ๊ธฐ์ˆ ํ•œ ๋ฌธ์„œ์ด๋‹ค.

โ–ก EZBOARD_LCD CD์— ๋‹ด๊ธด '3. ๋งˆ์ดํฌ๋กœ ์œˆ๋„์šฐ ๊ตฌ์„ฑํ•˜๊ธฐ.PDF'
๋งˆ์ดํฌ๋กœ ์œˆ๋„์šฐ ์„ค์ • ๋ฐฉ๋ฒ•์„ ๊ธฐ์ˆ ํ•œ ๋ฌธ์„œ์ด๋‹ค.

โ–  http://www.handhelds.org/minihowto/building-x.html
ARM ํ”Œ๋žซํผ์„ ์ฑ„ํƒํ•œ iPAQ์— TinyX๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ธฐ์ˆ ํ•˜๋Š” ๊ธฐ์‚ฌ์ด๋‹ค. ์•„์‚ฌ๋ฒณ์„ ๋น„๋กฏํ•ด ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์—๋„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

โ–  http://www.tuxscreen.net/wiki/view/BuildingTinyXByHand
ARM ํ”Œ๋žซํผ์„ ์ฑ„ํƒํ•œ TuxScreen์— TinyX๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ธฐ์ˆ ํ•˜๋Š” ๊ธฐ์‚ฌ์ด๋‹ค. uClibc๋ฅผ ์‚ฌ์šฉํ•ด TinyX๋ฅผ ๋งŒ๋“ค๊ณ ์ž ํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ๊ผญ ์ฝ์–ด๋ณด๊ธฐ ๋ฐ”๋ž€๋‹ค.

โ–  http://xfree86.mirror.or.kr/4.2.0/BUILD.html
์›์‹œ ์ฝ”๋“œ ๋ฐฐํฌํŒ์„ ์‚ฌ์šฉํ•ด XFree86์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ๊ธฐ์ˆ ํ•œ ๋ฌธ์„œ์ด๋‹ค.

โ–  http://xfree86.mirror.or.kr/4.2.0/Install.html
XFree86 ์ด์ง„ ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ธฐ์ˆ ํ•œ ๋ฌธ์„œ์ด๋‹ค.

โ–  http://xfree86.mirror.or.kr/4.2.0/cyrix.html
x86ํ˜ธํ™˜ CPU์ธ Cyrix MediaGX๋ฅผ ์œ„ํ•œ XFree86 ๊ด€๋ จ ๋ฌธ์„œ์ด๋‹ค.

โ–  http://www.tuxedo.org/~esr/terminfo/
ํ„ฐ๋ฏธ๋„ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” terminfo/termcap ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. '์„ฑ๋‹น๊ณผ ์‹œ์žฅ'์œผ๋กœ ์œ ๋ช…ํ•œ ์—๋ฆญ ๋ ˆ์ด๋ชฌ๋“œ์”จ๊ฐ€ ๊ด€๋ฆฌ์ž์ด๋‹ค.

โ–  http://www.mock.com/receiver/utils/
ARM ํ”Œ๋žซํผ์—์„œ ๋ฆฌ๋ˆ…์Šค์šฉ termcap ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ต์ฐจ ์ปดํŒŒ์ผํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://www.ailis.de/~k/knowledge/crosscompiling/ncurses.php
ARM ํ”Œ๋žซํผ์—์„œ ๋ฆฌ๋ˆ…์Šค์šฉ ncurses ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ต์ฐจ ์ปดํŒŒ์ผํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://embedded.centurysoftware.com/pixil/pixiloe.php
MicroWindows ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•œ ์ปดํŒฉ iPAQ PDA์šฉ ํ†ตํ•ฉ ์œˆ๋„์šฐ ํ™˜๊ฒฝ์ธ Pixil์„ ์†Œ๊ฐœํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค. ๋น„์ƒ์—…์šฉ์œผ๋กœ ํ‰๊ฐ€ํŒ์„ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋‹ค.

โ–  http://www.tahallah.demon.co.uk/programming/Framebuffer-HOWTO-1.2.html
๋ฆฌ๋ˆ…์Šค ํ”„๋ ˆ์ž„ ๋ฒ„ํผ ์„ค์ •์— ๋Œ€ํ•ด ์ƒ์„ธํžˆ ๋‹ค๋ฃจ๋Š” HOW-TO ๋ฌธ์„œ์ด๋‹ค.

โ–  http://doc.trolltech.com/3.0/emb-framebuffer-howto.html
๋ฆฌ๋ˆ…์Šค ํ”„๋ ˆ์ž„ ๋ฒ„ํผ ๊ด€๋ จ ์ปค๋„ ์„ค์ • ํ•ญ๋ชฉ์„ ๊ฐ„๋žตํ•˜๊ฒŒ ๋‹ค๋ฃจ๋Š” HOW-TO ๋ฌธ์„œ์ด๋‹ค.

โ–  http://sdb.suse.de/kr/sdb/html/cg_framebuffer-x4.0.html
XFree 4.0์—์„œ VESA ํ”„๋ ˆ์ž„ ๋ฒ„ํผ ์„ค์ • ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃจ๋Š” ๊ธฐ์ˆ  ์ง€์› ๋ฌธ์„œ์ด๋‹ค.

โ–  http://www.handhelds.org/projects/ts_spec.html
ํ„ฐ์น˜ ์Šคํฌ๋ฆฐ(TS) ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์œ„ํ•œ ํ‘œ์ค€ ๊ทœ์•ฝ์„ ์†Œ๊ฐœํ•˜๋Š” ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://www.handhelds.org/minihowto/building-x-clients.html
X ํด๋ผ์ด์–ธํŠธ ์ปดํŒŒ์ผ ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” HOW-TO ๋ฌธ์„œ์ด๋‹ค.

โ–  http://www.xs4all.nl/~zweije/xauth-6.html 

 

19์žฅ๋ถ€ํŒ…๊ณผ ์„ค์น˜ ํ™•์ธ 

 

โ–ก ใ€ŽEmbedded Linux: Hardware, Software, and Interfacingใ€, Dr. Craig Hollabaugh, Addison-Wesley, 2002

์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค์— ๋Œ€ํ•ด ์ฒด๊ณ„์ ์œผ๋กœ ์ž˜ ๊ตฌ์„ฑ๋œ ์ฑ…์ด๋‹ค. ์ ˆ๋ฐ˜ ์ด์ƒ์ด ์ธํ„ฐํŽ˜์ด์Šคํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์†Œ๊ฐœ์ด๋ฏ€๋กœ, ์ผ์ • ์ˆ˜์ค€ ์ด์ƒ์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณด๊ธฐ์— ์ ๋‹นํ•˜๋‹ค.

โ–ก linux/Documentation/arm/SA1100/Assabet
์•„์‚ฌ๋ฒณ ํ™˜๊ฒฝ์—์„œ ๋ถ€ํŠธ ์ŠคํŠธ๋žฉ ๋กœ๋”๋ฅผ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ธฐ์ˆ ํ•˜๋Š” ๋ฆฌ๋ˆ…์Šค ๋ฐฐํฌํŒ์— ๋“ค์–ด์žˆ๋Š” ๋ฌธ์„œ์ด๋‹ค.

โ–ก Boot Loader HowTo
TBEl1110 CD์— ๋“ค์–ด์žˆ๋Š” ๋ฌธ์„œ๋กœ, tbloader ์ปดํŒŒ์ผ๊ณผ ์‚ฌ์šฉ๋ฒ•์— ๋Œ€ํ•ด ์†Œ๊ฐœํ•˜๊ณ  ์žˆ๋‹ค.

โ–  http://www.lart.tudelft.nl/lartware/blob/
๋ถ€ํŠธ ์ŠคํŠธ๋žฉ ๋กœ๋”์ธ blob ์‚ฌ์šฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” HOW-TO ๋ฌธ์„œ์ด๋‹ค.

โ–  http://www.handhelds.org/Compaq/bootldr.html
๋ถ€ํŠธ ์ŠคํŠธ๋žฉ ๋กœ๋”์ธ bootldr ์‚ฌ์šฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” HOW-TO ๋ฌธ์„œ์ด๋‹ค.

โ–  http://sources.redhat.com/redboot/
๋ ˆ๋“œํ–‡์—์„œ ์šด์˜ํ•˜๋Š” RedBoot ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://sources.redhat.com/ecos/docs-latest/redboot/redboot.html
RedBoot ์‚ฌ์šฉ๋ฒ•์„ ์•Œ๋ ค์ฃผ๋Š” ์‚ฌ์šฉ์ž ๊ฐ€์ด๋“œ์ด๋‹ค.

โ–  http://www.aleph1.co.uk/armlinux/docs/ARMbooting/angelboot.html
Angel์„ ์‚ฌ์šฉํ•ด์„œ ๋ถ€ํŒ…ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค์ฃผ๋Š” ์‚ฌ์šฉ์ž ๊ฐ€์ด๋“œ์ด๋‹ค.

โ–  http://www.falinux.com/win/date/doc/ezboot.zip
FALINUX์—์„œ ์ œ๊ณตํ•˜๋Š” EZBOOT ์‚ฌ์šฉ์ž ๋งค๋‰ด์–ผ์ด๋‹ค. PDF ํ˜•์‹์œผ๋กœ ๋˜์–ด์žˆ๋‹ค.

โ–  http://www.denx.de/doc/CPU86/ppcboot.html
DENX์—์„œ ๋งŒ๋“  'PPCBoot and Linux Guide'์— ์‹ค๋ฆฐ ppcboot ์‚ฌ์šฉ์ž ๊ฐ€์ด๋“œ์ด๋‹ค. ๊ฐ ๋ช…๋ น์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์ž˜ ๋‚˜์™€์žˆ์œผ๋ฏ€๋กœ MPC ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ๋ฐ˜๋“œ์‹œ ์ฝ์–ด๋ณด๊ธฐ ๋ฐ”๋ž€๋‹ค.

 

 

 

20์žฅ์ƒ์šฉ ์ œํ’ˆ์„ ์œ„ํ•œ ํŒจํ‚ค์ง• 

 

โ–ก ใ€ŽEmbedded Linux: Hardware, Software, and Interfacingใ€, Dr. Craig Hollabaugh, Addison-Wesley, 2002

์ž„๋ฒ ๋””๋“œ ๋ฆฌ๋ˆ…์Šค์— ๋Œ€ํ•ด ์ฒด๊ณ„์ ์œผ๋กœ ์ž˜ ๊ตฌ์„ฑ๋œ ์ฑ…์ด๋‹ค. ์ ˆ๋ฐ˜ ์ด์ƒ์ด ์ธํ„ฐํŽ˜์ด์Šคํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์†Œ๊ฐœํ•˜๋ฏ€๋กœ, ์ผ์ • ์ˆ˜์ค€ ์ด์ƒ์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณด๊ธฐ์— ์ ๋‹นํ•˜๋‹ค.

โ–ก linux/Documentation/arm/SA1100/Assabet
์•„์‚ฌ๋ฒณ ํ™˜๊ฒฝ์—์„œ ๋ถ€ํŠธ ์ŠคํŠธ๋žฉ ๋กœ๋”๋ฅผ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ธฐ์ˆ ํ•˜๋Š” ๋ฆฌ๋ˆ…์Šค ๋ฐฐํฌํŒ์— ๋“ค์–ด์žˆ๋Š” ๋ฌธ์„œ์ด๋‹ค.

โ–ก inux/Documentation/filesystems/cramfs.txt
CRAMFS์— ๋Œ€ํ•œ ๊ฐ์ข… ์ œ์•ฝ ์‚ฌํ•ญ์„ ์•Œ๋ ค์ฃผ๋Š” ๋ฌธ์„œ์ด๋‹ค.

โ–ก inux/Documentation/initrd.txt
initrd์— ๋Œ€ํ•œ ๋™์ž‘ ์›๋ฆฌ๋ฅผ ๊ธฐ์ˆ ํ•œ ๋ฆฌ๋ˆ…์Šค ๋ฐฐํฌํŒ์— ๋“ค์–ด์žˆ๋Š” ๋ฌธ์„œ์ด๋‹ค.

โ–  http://www-903.ibm.com/developerworks/kr/linux/library/l-fs7.html?dwzone=linux
IBM developerWorks์— ์‹ค๋ฆฐ EXT3 ํŒŒ์ผ์‹œ์Šคํ…œ ๊ด€๋ จ ๊ธฐ์‚ฌ์ด๋‹ค. ํ•œ๊ธ€ํŒ์ด๋ฏ€๋กœ ๋ถ€๋‹ด์—†์ด ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค.

โ–  http://www.symonds.net/~rajesh/howto/ext3/toc.html
EXT3 ํŒŒ์ผ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์น˜๋ถ€ํ„ฐ ์šด์˜๊นŒ์ง€ ์ฐจ๊ทผ์ฐจ๊ทผ ์„ค๋ช…ํ•˜๋Š” ์ž‘์€ HOW-TO ๋ฌธ์„œ์ด๋‹ค.

โ–  http://people.spoiled.org/jha/ext3-faq.html
EXT3 ๊ด€๋ จ FAQ ๋ฌธ์„œ์ด๋‹ค. ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์— ๋Œ€ํ•ด ํ•ด๊ฒฐ์ฑ…์„ ์•Œ๊ธฐ ์‰ฝ๊ฒŒ ์ œ์‹œํ•˜๋ฏ€๋กœ ์ฝ์–ด๋ณผ ๊ฐ€์น˜๊ฐ€ ์žˆ๋‹ค.

 

โ–  http://olstrans.sourceforge.net/release/OLS2000-ext3/OLS2000-ext3.html
EXT3 ๊ฐœ๋ฐœ์ž์ธ ํŠธ์œ„๋”” ๋ฐ•์‚ฌ๊ฐ€ EXT3 ์ €๋„๋ง ํŒŒ์ผ์‹œ์Šคํ…œ์„ ๋ฐœํ‘œํ•œ ์ž๋ฃŒ์ด๋‹ค.

โ–  http://www.zip.com.au/~akpm/linux/ext3/ext3-usage.html
์ปค๋„ 2.4๋ฅผ ์œ„ํ•œ EXT3 ํŒŒ์ผ์‹œ์Šคํ…œ ํŒจ์น˜๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.linux-mtd.infradead.org/
MTD ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://sources.redhat.com/jffs2/
JFFS2 ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.handhelds.org/z/wiki/Constructing%20a%20cramfs%20image
CRAMFS ํŒŒ์ผ์‹œ์Šคํ…œ ์ƒ์„ฑ ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://handhelds.org/z/wiki/Creating%20a%20JFFS2%20Image
JFFS2 ํŒŒ์ผ์‹œ์Šคํ…œ ์ƒ์„ฑ ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” ๊ธฐ์‚ฌ์ด๋‹ค.

โ– http://www.handhelds.org/z/wiki/Can%20I%20mount%20a%20cramfs%20image%20on%20my%20linux%20PC
CRAMFS ํŒŒ์ผ์‹œ์Šคํ…œ ๋งˆ์šดํŠธ ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://www-scf.usc.edu/~dantu/mtd-jffs.html
์•„์‚ฌ๋ฒณ์—์„œ JFFS๋ฅผ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” ๊ฐ„์ด ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://www.falinux.com/win/06_ramdisk/020_mtd_util/index.htm
EZBOARD์—์„œ ์‚ฌ์šฉํ•  MTD ๊ด€๋ จ ๊ฐ์ข… ์œ ํ‹ธ๋ฆฌํ‹ฐ ์ด์‹ ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://www.falinux.com/win/06_ramdisk/010_mtd_ramdisk2/index.htm
EZBOARD์—์„œ ๋žจ๋””์Šคํฌ ์ด๋ฏธ์ง€ ์˜์—ญ ์—†์ด JFFS2๋งŒ์œผ๋กœ ๋ถ€ํŒ…ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://www.falinux.com/win/study/08/flashboot.html
EZBOARD์—์„œ ํ”Œ๋ž˜์‹œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ฃจํŠธ ํŒŒ์ผ์‹œ์Šคํ…œ์œผ๋กœ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋Š” ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://www.handhelds.org/handhelds-faq/filesystems.html
iPAQ์—์„œ ํŒŒ์ผ์‹œ์Šคํ…œ์„ ๋‹ค๋ฃจ๋Š” ๊ฐ์ข… ๊ธฐ๋ฒ•์— ๋Œ€ํ•ด ์†Œ๊ฐœํ•˜๋Š” FAQ ๋ฌธ์„œ ์ผ๋ถ€์ด๋‹ค.

โ–  http://ykjung99.netian.com/mtd/mtd.html
MPC ํ”Œ๋žซํผ์—์„œ MTD/JFFS๋ฅผ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค์ฃผ๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://myhome.naver.com/kingseft/gallery.html
MPC ํ”Œ๋žซํผ์—์„œ MTD/JFFS๋ฅผ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค์ฃผ๋Š” ํ™ˆํŽ˜์ด์ง€์ด๋‹ค.

โ–  http://www.denx.de/doc/TQM8xxL/advanced-topics.html
MPC ํ”Œ๋žซํผ์—์„œ MTD๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค์ฃผ๋Š” HOW-TO ๋ฌธ์„œ์ด๋‹ค.

โ–  http://sources.redhat.com/ecos/docs-latest/redboot/flash-image-system.html
RedBoot ํ”Œ๋ž˜์‹œ ์ด๋ฏธ์ง€ ์‹œ์Šคํ…œ์ธ FIS๋ฅผ ์†Œ๊ฐœํ•˜๋Š” ๊ธฐ์‚ฌ์ด๋‹ค.

โ–  http://www.handhelds.org/minihowto/porting-software.html
ARM ๊ด€๋ จ ์—”๋””์•ˆ ๋ฌธ์ œ๋ฅผ ๋‹ค๋ฃจ๋Š” HOW-TO ๋ฌธ์„œ์ด๋‹ค.

โ–  http://e-www.motorola.com/brdata/PDFDB/docs/AN2065.pdf
ํŒŒ์›ŒPC ๊ด€๋ จ ์—”๋””์•ˆ ๋ฌธ์ œ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฌธ์„œ์ด๋‹ค. ํŒŒ์›ŒPC๋Š” ๋น… ์—”๋””์•ˆ์„ ๊ธฐ๋ณธ์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๋ฆฌํ‹€ ์—”๋””์•ˆ๋„ ์“ธ ์ˆ˜ ์žˆ๋‹ค.

 ๋ง๊ธ€ ์“ฐ๊ธฐ  ์—ฎ์ธ๊ธ€ ์“ฐ๊ธฐ

 
 
   
 
[ํŽŒ] arm7 menual  Embedded 

2004/12/06 23:51

 

๋ณต์‚ฌhttp://blog.naver.com/poohyjk3/100008318996

 

์ถœ์ฒ˜ hhong3๋‹˜์˜ ๋ธ”๋กœ๊ทธ | hhong3
์›๋ฌธ http://blog.naver.com/hhong3/80008230283

--------------------------------------------------------------------

ARM7 ๊ฐ•์ขŒ [1] : ๊ฐ•์ขŒ ์†Œ๊ฐœ

-------------------------------------------------------------------- 

โ— ๊ฐ•์ขŒ ์†Œ๊ฐœ 

RISC์นฉ ์ค‘์— ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” ๊ฒƒ์˜ ํ•˜๋‚˜์ธ ARM7์— ๋Œ€ํ•˜์—ฌ ๋‹ค๋ฃจ์–ด ๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ถ€์กฑํ•œ ์ ์ด ๋งŽ๊ฒ ์ง€๋งŒ, ์ด ๊ฐ•์ขŒ๋ฅผ ํ†ตํ•ด ARM7์„ ๊ณต๋ถ€ํ•˜์‹œ๋Š” ๋ถ„๋“ค์—๊ฒŒ ์กฐ๊ธˆ์ด๋‚˜๋งˆ ๋„์›€์ด ๋˜์—ˆ์œผ๋ฉด ํ•˜๊ณ , ์•„์šธ๋Ÿฌ ์ € ์—ญ์‹œ ์–ด๋–ค ๋ณด๋žŒ์„ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ์œผ๋ฉด ํ•ฉ๋‹ˆ๋‹ค. 

โ— ๊ฐ•์ขŒ์—์„œ ๋‹ค๋ฃจ๊ณ ์ž ํ•˜๋Š” ๋‚ด์šฉ๋“ค

 

- ๊ฐœ์š”

- ๊ตฌ์กฐ

- ๋ ˆ์ง€์Šคํ„ฐ

- Exception(1)

- Exception(2)

- Instruction Set(1)

- Instruction Set(2)

- Instruction Set(3)

- StrongARM

 

์‚ฌ์‹ค ARM ์•„ํ‚คํ…์ฒ˜์˜ ๊ฒฝ์šฐ์—” ๊ด€๋ จ ๋ฌธ์„œ๊ฐ€ ์•„์ฃผ ์ž˜ ๋งŒ๋“ค์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. www.arm.com ์‚ฌ์ดํŠธ์— ๋“ค์–ด๊ฐ€๋ฉด ํ•ด๋‹น ๋ฌธ์„œ๋ฅผ PDFํ˜•ํƒœ๋กœ ๋ฐ›์•„ ๋ณผ ์ˆ˜ ์žˆ๊ณ  ๋‚ด์šฉ๋„ ์•„์ฃผ ์ž˜ ์ •๋ฆฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ•์ขŒ๋ฅผ ํ†ตํ•ด ์–ด๋Š ์ •๋„ ๊ธฐ๋ณธ์„ ์ตํžˆ๊ณ  ํ•ด๋‹น ์ž๋ฃŒ๋ฅผ ์ฐพ์•„ ๊ณต๋ถ€ํ•˜์‹ ๋‹ค๋ฉด, ๋น ๋ฅธ ์‹œ์ผ ๋‚ด์— ARM์„ ์ตํž ์ˆ˜ ์žˆ์œผ๋ฆฌ๋ผ ์ƒ๊ฐ๋ฉ๋‹ˆ๋‹ค. 

--------------------------------------------------------------------

ARM7 ๊ฐ•์ขŒ [2] : ๊ฐœ์š”

-------------------------------------------------------------------- 

โ— ARM7์˜ ํŠน์ง•

 

ARM์˜ ๊ฐ€์žฅ ํฐ ํŠน์ง•์€ ์ „๋ ฅ์„ ์กฐ๊ธˆ๋งŒ ์†Œ๋ชจํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ผ์„ค์— ์˜ํ•˜๋ฉด, ARM์„ ์„ค๊ณ„ํ•  ๋•Œ, ์š”์ฆ˜ CPU๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ๋ฐฉ๋ฒ•์ฒ˜๋Ÿผ VHDL๋“ฑ์„ ์‚ฌ์šฉํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ผ์ผ์ด ํšŒ๋กœ๋ฅผ ๊ทธ๋ ค๊ฐ€๋ฉด์„œ ํ–ˆ๋‹ค๋Š” ์„ค๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค์ด์•ผ ์–ด๋–ป๋“ , ARM์˜ ์ €-์ „๋ ฅ ์„ค๊ณ„๊ธฐ์ˆ ์€ ๋„๋ฆฌ ์•Œ๋ ค์ง„ ์‚ฌ์‹ค์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฐ ์ด์œ  ๋•Œ๋ฌธ์—, ARM CPU๋Š” ์ƒ๋Œ€์ ์œผ๋กœ ์ „๋ ฅ์ด ์ค‘์š”ํ•˜๊ฒŒ ์—ฌ๊ฒจ์ง€๋Š” ํœด๋Œ€์šฉ ๋‹จ๋ง๊ธฐ์— ๋งŽ์ด ์ฑ„ํƒ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 

์ด์ œ ์ด๋Ÿฐ ์ผ๋ฐ˜์ ์ธ ๋‚ด์šฉ๋ง๊ณ , ์ข€ ๊ตฌ์ฒด์ ์ธ ๋‚ด์šฉ์œผ๋กœ ๋“ค์–ด๊ฐ€ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ARM7์˜ ํŠน์ง•๋“ค์ž…๋‹ˆ๋‹ค. 

1. 32 Bit RISC ํ”„๋กœ์„ธ์„œ

: ARM7์€ ๋‚ด๋ถ€์ ์œผ๋กœ 32Bit์˜ ๋ฐ์ดํ„ฐ ๋ฒ„์Šค์™€ 32Bit์˜ ์–ด๋“œ๋ ˆ์Šค ๋ฒ„์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๋ถ€์ ์ด๋ž€ ๋ง์€, ARM7์ด Core ํ˜•ํƒœ๋กœ ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ์นฉ์— ํƒ‘์žฌ๋˜๊ธฐ ๋•Œ๋ฌธ์ธ๋ฐ, ์–ด๋–ค ์นฉ์€ ์–ด๋“œ๋ ˆ์Šค ๋ผ์ธ์„ ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” 32๋น„ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์™ธ๋ถ€์ ์œผ๋กœ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋งค๋‹ˆ์ง€๋จผํŠธ ์œ ๋‹›์„ ํ†ตํ•ด 24๋น„ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ž˜ ์•Œ๋ ค์ ธ ์žˆ๋“ฏ์ด ARM์€ ๋Œ€ํ‘œ์ ์ธ RISC ์ฝ”์–ด์ž…๋‹ˆ๋‹ค.

 

2. Big/Little Endian ๋ชจ๋“œ์ง€์›

: ์—”๋””์•ˆ์ด๋ผ๋Š” ๊ฒƒ์€, ํ”ํžˆ ์—ญ-์›Œ๋“œ ๋ฐฉ์‹์ด๋ผ๊ณ  ๋งํ•˜๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ธํ…” ๊ณ„์—ด์˜ CPU์—์„œ๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ์—ฌ๋Ÿฌ ๋ฐ”์ดํŠธ์˜ ๋‚ด์šฉ์„ ์ €์žฅ ํ•  ๋•Œ, ํ•˜์œ„ ๋ฐ”์ดํŠธ๊ฐ€ ๋จผ์ € ์˜ค๊ณ  ์ƒ์œ„ ๋ฐ”์ดํŠธ์ผ ์ˆ˜๋ก ๋’ค์— ์˜ค๋Š”๋ฐ, ์ด๋Ÿฐ ํ˜•ํƒœ๋ฅผ Little Endian์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋˜ ๋ชจํ† ๋กค๋ผ ๊ณ„์—ด์˜ CPU์ฒ˜๋Ÿผ ๊ฐ€์žฅ ์ƒ์œ„ ๋ฐ”์ดํŠธ๊ฐ€ ๋จผ์ € ์˜ค๋Š” ๋ฐฉ์‹์ด Big Endian์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ์„ค์ •์€ ARM7์ด ๊ตฌํ˜„๋œ ์นฉ์— ๋”ฐ๋ผ ํ‹€๋ฆฌ์ง€๋งŒ, ๋ณดํ†ต ์นฉ ์™ธ๋ถ€์—์„œ ํ•€ ์ž…๋ ฅ์„ ๋ฐ›์•„ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. 

3. High Performance RISC

: ARM7 ์˜ ๊ฒฝ์šฐ 3V๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  25MHz์˜ Clock์„ ์‚ฌ์šฉํ•  ๋•Œ ์•ฝ 17MIPS๊ฐ€ ๋‚˜์˜จ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 

4. Fast Interrupt Response

: ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ๋ฅผ ๋น ๋ฅด๊ฒŒ ํ•ด ์ค„ ์ˆ˜ ์žˆ๋Š” FAST์ธํ„ฐ๋ŸฝํŠธ ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ›„์— ๋ ˆ์ง€์Šคํ„ฐ ๋ถ€๋ถ„์—์„œ ์ž์„ธํžˆ ๋‹ค๋ฃจ๊ฒ ์ง€๋งŒ, ๋ ˆ์ง€์Šคํ„ฐ ์…‹์„ ๋”ฐ๋กœ ์ œ๊ณตํ•ด์„œ, ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ๋ฃจํ‹ด์—์„œ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ €์žฅ, ๋ณต๊ตฌํ•˜๋Š” ์‹œ๊ฐ„์„ ์ค„์ด๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. 

5. Excellent high level language support

: ์ธ์ŠคํŠธ๋Ÿญ์…˜ ์…‹์„ ์‚ดํ”ผ๋ฉด, C๋‚˜ ๋‹ค๋ฅธ ์–ธ์–ด์—์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ๋“ค์„ ๋ฐ”๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์–ด๋“ค์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ณ€์ˆ˜์˜ ์•ž, ๋’ค์— ++๋‚˜ --๋ฅผ ๋ถ™์ด๋Š” ํ˜•์‹์˜ ์˜คํผ๋ ˆ์ด์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. 

6. Simple & Powerful Instruction Set

: ARM์˜ ๋ช…๋ น์–ด๋Š” ๊ทธ ์ข…๋ฅ˜๊ฐ€ ์ ์œผ๋ฉด์„œ๋„, ๋‹ค์–‘ํ•˜๊ฒŒ ์ ์šฉ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ํŠน์ง•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ดํ›„์— ๋‹ค๋ฃจ๊ฒŒ ๋˜๋ฉด ์—ฌ๋Ÿฌ๋ถ„๋“ค๋„ ๋Š๋ผ์‹œ๊ฒ ์ง€๋งŒ, ๋ฐฐ์šฐ๊ธฐ ์‰ฝ๊ณ , ๋˜ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. 

์˜ค๋Š˜์€ ARM7์˜ ์ „๋ฐ˜์ ์ธ ๋‚ด์šฉ์— ๋Œ€ํ•ด ๊ฐ„๋‹จํžˆ ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค ARM์„ ๊ฐœ์ธ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ๋Š” ์‰ฝ์ง€ ์•Š์€ ์ผ์ž…๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด, ARM์„ ์‚ฌ์šฉํ•œ ์นฉ์„ ๊ตฌํ•˜๊ธฐ๊ฐ€ ์‰ฝ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ธ๋ฐ์š”, ์ตœ๊ทผ CPU์ธ ๋งŒํผ, ๋‚˜์˜ค๋”๋ผ๋„ SMDํƒ€์ž…์œผ๋กœ ๋‚˜์˜ค๋Š” ๊ฒƒ์ด ๋งŽ๊ณ  ์†Œ๋Ÿ‰์œผ๋กœ ๊ตฌ๋งคํ•˜๊ธฐ๊ฐ€ ์‰ฝ์ง€๊ฐ€ ์•Š์Šต๋‹ˆ๋‹ค. 

ํ•˜์ง€๋งŒ, ์—ฌ๋Ÿฌ๋ถ„๋“ค์ด ํšŒ์‚ฌ์—์„œ ์ผ์„ ํ•˜๊ฒŒ ๋˜๋ฉด, ์‚ฌ์ •์ด ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ARM์€ ๋น„๊ต์  ์ €๋ ดํ•˜๋ฉด์„œ๋„ ๊ฐ€๊ฒฉ์— ๋น„ํ•ด ์ข‹์€ ์„ฑ๋Šฅ์„ ๋ณด์ด๊ณ , ๊ฒŒ๋‹ค๊ฐ€ ์ €-์ „๋ ฅ ์†Œ๋ชจ๋ผ๋Š” ๊ฐ•๋ ฅํ•œ ์žฅ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ตญ๋‚ด ๋ฐ˜๋„์ฒด ์—…๊ณ„์—์„œ๋„ LG, ์‚ผ์„ฑ, ํ˜„๋Œ€ ๋“ฑ, ๋ชจ๋‘ ARM ์ฝ”์–ด๋ฅผ ์‚ฌ์šฉํ•œ ์นฉ์„ ์ƒ์‚ฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ , ARM์„ ์‚ฌ์šฉํ•  ๋•Œ์˜ ์žฅ์ ์ค‘์˜ ํ•˜๋‚˜๋Š”, ARM์‚ฌ์—์„œ ๊ฐœ๋ฐœํ™˜๊ฒฝ๊ณผ ๋„ํ๋จผํŠธ ๋“ฑ์„ ์ œ๊ณตํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. 

๋‚ด์šฉ์€ ๋˜๋„๋ก ์‰ฝ๊ฒŒ ์“ฐ๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ๋Š”๋ฐ, ์–ด๋• ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ๊ตฐ์š”. ๊ทธ๋Ÿฌ๋ฉด ๋‹ค์Œ ๊ฐ•์ขŒ์—์„œ ๋ต™๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๊ฐ•์ขŒ์—์„œ๋Š” ARM7์˜ ๋ธ”๋ก ๊ตฌ์กฐ์— ๋Œ€ํ•ด์„œ ์‚ดํŽด๋ณผ ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค.

--------------------------------------------------------------------

ARM7 ๊ฐ•์ขŒ [3] : ARM7์˜ ๊ตฌ์กฐ

-------------------------------------------------------------------- 

โ— ARM7์˜ ๊ตฌ์กฐ

 

1. ๋ ˆ์ง€์Šคํ„ฐ

: ARM7์—๋Š” 31๊ฐœ์˜ 32Bit ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜, ๋™์ž‘๋ชจ๋“œ์— ๋”ฐ๋ฅด๋Š” -์—ฌ๊ธฐ์„œ ๋™์ž‘๋ชจ๋“œ๋Š” Exception๋ถ€๋ถ„์—์„œ ์ž์„ธํžˆ ๋‹ค๋ฃจ๊ฒ ์Šต๋‹ˆ๋‹ค.- 6๊ฐœ์˜ Status ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

2. ALU

: 32Bit ์—ฐ์‚ฐ์ด ๊ฐ€๋Šฅํ•œ ALU๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ํŠน์ดํ•œ ๊ฒƒ์€ ALU์˜ ํ•œ์ชฝ ์ž…๋ ฅ์€ Barrel Shifter๋ผ๋Š” ๊ฒƒ์ด ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์–ด์„œ ALU์˜ ์ธ์ˆ˜ ํ•˜๋‚˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ์—์„œ ๋ฐ”๋กœ ๋“ค์–ด์˜ค๊ณ , ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ๋‚˜ ๋ฒ„์Šค์—์„œ Barrel Shifter๋ผ๋Š” ๊ฒƒ์„ ๊ฑฐ์ณ ์ž…๋ ฅ๋˜๋„๋ก ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ์ด์œ ๋กœ ARM7์—์„œ๋Š” ์ œ 2 ์˜คํผ๋žœ๋“œ๋ฅผ ์ง€์ •ํ•  ๋•Œ, ํ•ด๋‹น ๊ฐ’์„ ์‰ฌํ”„ํŠธ ์‹œ์ผœ์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณดํ†ต ๋‹ค๋ฅธ CPU์—์„œ๋Š” ์‰ฌํ”„ํŠธ ๋ช…๋ น์ด ๋”ฐ๋กœ ์žˆ์—ˆ๋Š”๋ฐ, ARM7์—์„œ๋Š” ๋”ฐ๋กœ ์กด์žฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋Œ€๋ถ€๋ถ„์˜ ๋ช…๋ น์—์„œ ์˜ต์…˜์œผ๋กœ ์ ์šฉ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

3. Booth's ๊ณฑ์…ˆ๊ธฐ

: ๊ณฑ์…ˆ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” 32 ๋น„ํŠธ Booth's ๊ณฑ์…ˆ๊ธฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณฑ์…ˆ๊ธฐ๋Š” 32 ๋น„ํŠธ ์—ฐ์‚ฐ์„ ์ง€์›ํ•˜๋ฉฐ, 32๋น„ํŠธ์˜ ๋‘ ์ž…๋ ฅ์„ ๋ฐ›์•„์„œ ๊ณฑํ•˜์—ฌ, ๊ฒฐ๊ณผ๊ฐ€ 32๋น„ํŠธ๋ฅผ ๋„˜๋”๋ผ๋„ ๋„˜๋Š” ๋ถ€๋ถ„์€ ๋ฒ„๋ฆฌ๊ณ  32๋น„ํŠธ๋งŒ์„ ๋‚จ๊น๋‹ˆ๋‹ค. 

์ด๋ฐ–์— ์ธ์ŠคํŠธ๋Ÿญ์…˜ ๋””์ฝ”๋”์™€ ์ธํฌ๋ฆฌ๋ฉ˜ํ„ฐ๊ฐ€ ๋‹ฌ๋ฆฐ ์–ด๋“œ๋ ˆ์Šค ๋ ˆ์ง€์Šคํ„ฐ ๋“ฑ์ด ์žˆ๊ณ , ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” ์ง€๋‚œ๋ฒˆ์—๋„ ๋งํ–ˆ๋“ฏ์ด 32๋น„ํŠธ์˜ ์–ด๋“œ๋ ˆ์Šค & ๋ฐ์ดํ„ฐ ๋ฒ„์Šค๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ๋˜, ARM7์€ ํŒŒ์ดํ”„๋ผ์ธ์„ ์ œ๊ณตํ•˜๊ณ , ์ถ”๊ฐ€์ ์œผ๋กœ StrongARM๊ณผ ๊ฐ™์€ ์นฉ์—์„œ๋Š” ์บ์‰ฌ ๊ธฐ๋Šฅ๊ณผ MMU ๊ธฐ๋Šฅ ๋“ฑ๋„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. 

์ „์— ๋ง์”€ ๋“œ๋ ธ์ง€๋งŒ, ARM7์€ CPU์˜ ์ฝ”์–ด๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ํŠน์ • ์นฉ์„ ์ผ์ปซ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์—, ํ”ํžˆ CPU๋ฅผ ์ ‘ํ•  ๋•Œ ๋‹ค๋ฃจ๊ฒŒ ๋˜๋Š” I/O์ œ์–ด๋‚˜ ํƒ€์ด๋จธ, ์ธํ„ฐ๋ŸฝํŠธ ๋ถ€๋ถ„ ๋“ฑ์€ ๊ฐ•์ขŒ์—์„œ ์†Œ๊ฐœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด, ๊ฐ™์€ ARM7 ์ฝ”์–ด์˜ CPU๋ผ ํ•˜๋”๋ผ๋„ ํ•ด๋‹น ๋ถ€๋ถ„๋“ค์ด ๊ฐ๊ธฐ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์—ฌ๋Ÿฌ๋ถ„๋“ค์ด ARM7 ์ฝ”์–ด๋ฅผ ์‚ฌ์šฉํ•œ ์นฉ์„ ๊ณต๋ถ€ํ•˜์‹œ๊ณ ์ž ํ•  ๊ฒฝ์šฐ์—”, ๋จผ์ € ์ด ๊ฐ•์ขŒ์˜ ๋‚ด์šฉ์ธ ARM7 ์ฝ”์–ด์— ๋Œ€ํ•œ ๋ถ€๋ถ„์„ ๊ณต๋ถ€ํ•˜๊ณ , ๋‹ค์Œ์— ํ•ด๋‹น ์นฉ์˜ ๋ฐ์ดํ„ฐ์‹œํŠธ๋ฅผ ๋ณด์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค. 

์ฐธ๊ณ ๋กœ, ์ œ๊ฐ€ ๊ณต๋ถ€ํ–ˆ๋˜ ์นฉ์€ ์ƒคํ”„์—์„œ ๋‚˜์˜จ LH77790 ์ด๋ผ๋Š” ์นฉ๊ณผ Strong ARM ์ฝ”์–ด๋ฅผ ์‚ฌ์šฉํ•œ ์ธํ…”์˜ SA1100 ์ด๋ผ๋Š” ์นฉ ๋‘ ๊ฐ€์ง€ ์ž…๋‹ˆ๋‹ค.

StrongARM์€ Digital ์‚ฌ์—์„œ ARM7 ์ฝ”์–ด๋ฅผ Licence ์–ป์–ด์„œ ํ™•์žฅํ•œ ํ˜•ํƒœ์ธ๋ฐ, ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” ๊ฑฐ์˜ ์œ ์‚ฌํ•˜๊ณ  MMU๊ฐ™์€ ๊ธฐ๋Šฅ๋“ค์ด ์ถ”๊ฐ€๊ฐ€ ๋œ ์ฝ”์–ด์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ๋Š” Intel์ด Digital๋กœ๋ถ€ํ„ฐ Licence๋ฅผ ๊ตฌ์ž…ํ•˜์—ฌ ์ƒ์‚ฐํ•˜๊ณ  ์žˆ๊ณ , SA110 ์ด๋‚˜ SA1100, SA1111 ๋“ฑ์˜ ์นฉ์œผ๋กœ ์ œ์ž‘๋˜์–ด ํŒ๋งค๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ์ƒ๊ฐ์œผ๋กœ๋Š” ๊ฐ•์ขŒ์˜ ๋ ๋ถ€๋ถ„์— ๊ฐ€์„œ StrongARM์ธ SA1100์— ๋Œ€ํ•ด์„œ๋„ ์กฐ๊ธˆ ๋‹ค๋ฃจ์–ด ๋ณผ ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ ์˜ค๋Š˜ ๊ฐ•์ขŒ๋Š” ์ด๋งŒ ์ค„์ด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๊ฐ•์ขŒ์—์„œ๋Š” ARM7์˜ ๋ ˆ์ง€์Šคํ„ฐ์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ๋‹ค๋ฃจ๊ฒ ์Šต๋‹ˆ๋‹ค.

--------------------------------------------------------------------

ARM7 ๊ฐ•์ขŒ [4] : ๋ ˆ์ง€์Šคํ„ฐ

-------------------------------------------------------------------- 

โ— ARM7์˜ ๋ ˆ์ง€์Šคํ„ฐ 

์ง€๋‚œ ๊ฐ•์ขŒ์—์„œ ARM7์—๋Š” 31๊ฐœ์˜ General Purpose ๋ ˆ์ง€์Šคํ„ฐ์™€ 6๊ฐœ์˜ Status ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ์žˆ๋‹ค๊ณ  ๋ง์”€๋“œ๋ ธ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๋ชจ๋‘ 32๋น„ํŠธ ๋ ˆ์ง€์Šคํ„ฐ์ž…๋‹ˆ๋‹ค. 

๊ทธ๋Ÿฐ๋ฐ, ARM7์˜ ์–ด์…ˆ๋ธ”๋Ÿฌ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ ํ‚ค์›Œ๋“œ๋Š” r0์—์„œ r15๊นŒ์ง€ 16๊ฐœ ๋ฐ–์—๋Š” ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋‹ค์‹œ ๋งํ•ด์„œ ์‚ฌ์šฉ์ž๊ฐ€ ํ•œ๋ฒˆ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ ˆ์ง€์Šคํ„ฐ๋Š” 16๊ฐœ ์ž…๋‹ˆ๋‹ค. ๊ทธ ์ค‘์— ๋ช‡ ๊ฐœ๋Š” ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ (PC) ๋‚˜ ์Šคํƒ ํฌ์ธํ„ฐ(SP) ๋“ฑ์˜ ์šฉ๋„๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋‚˜๋จธ์ง€ ๋ ˆ์ง€์Šคํ„ฐ๋Š” CPU ๋™์ž‘ ๋ชจ๋“œ(Exception)๊ณผ ๊ด€๋ จ๋˜์–ด r0-r15๋กœ ๋ฆฌ-๋งตํ•‘๋˜์–ด ์‚ฌ์šฉ๋˜๋Š”๋ฐ ์ด๋Š” ๋‹ค์‹œ ์„ค๋ช… ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. 

1. Special Purpose General Register 

์œ„ ๋ถ€๋ถ„์—์„œ ์ž ์‹œ ์„ค๋ช… ๋“œ๋ ธ์ง€๋งŒ, User๊ฐ€ ํ”„๋กœ๊ทธ๋žจ ํ•  ๋•Œ ๋ ˆ์ง€์Šคํ„ฐ ์ง€์ •์„ ์œ„ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ‚ค์›Œ๋“œ๋Š” r0์—์„œ r15๊นŒ์ง€ ์ž…๋‹ˆ๋‹ค. ๊ทธ ์ค‘์— ๋ช‡ ๊ฐ€์ง€๋Š” ํŠน๋ณ„ํ•œ ๋ชฉ์ ์„ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. 

- Program Counter (r15) 

: r15๋Š” ๋‹ค๋ฅธ CPU์—์„œ PC์™€ ๊ฐ™์€ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค๋ฉด r15๋ฅผ ์ผ๋ฐ˜ ๋‹ค๋ฅธ ๋ ˆ์ง€์Šคํ„ฐ์ฒ˜๋Ÿผ ์˜คํผ๋žœ๋“œ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด๊ณ (๋‹ค๋ฅธ CPU๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ธ๊ฐ€์š”?) ARM์–ด์…ˆ๋ธ”๋Ÿฌ์—์„œ๋Š” pc๋ผ๋Š” ํ‚ค์›Œ๋“œ์™€ r15๋ฅผ ๋™์ผํ•˜๊ฒŒ ์ทจ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค. 

- Stack Pointer (r13) 

: ARM7์—๋Š” Stack์„ ์œ„ํ•œ ๋ช…๋ น์–ด๊ฐ€ ๋”ฐ๋กœ ์—†์Šต๋‹ˆ๋‹ค. ์ฆ‰, Push ๋‚˜ Pop๋“ฑ์˜ ๋ช…๋ น์–ด๊ฐ€ ์ œ๊ณต๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ sp๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ r13์„ ์“ธ ์ˆ˜ ์žˆ๋Š”๋ฐ, ๋ฌต์‹œ์ ์œผ๋กœ r13์„ ์Šคํƒํฌ์ธํ„ฐ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ •ํ•ด ๋†“์€ ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์™œ ํ•˜ํ•„์ด๋ฉด r0๋‚˜ r1์ด ์•„๋‹ˆ๊ณ  r13์„ sp๋ผ๊ณ  ๋ถ€๋ฅด๋Š”๊ฐ€ ํ•˜๋ฉด, ์—ญ์‹œ Exception๊ณผ ๊ด€๋ จ๋œ ๋ถ€๋ถ„์ด๋ฏ€๋กœ ์ž ์‹œ ํ›„์—(ํ˜น์€ ๋‹ค์Œ๊ฐ•์ขŒ์—) ์„ค๋ช…ํ•˜๋„๋ก ํ•˜์ง€์š”. ๊ทธ๋ฆฌ๊ณ , Push ๋ช…๋ น์ด๋‚˜ Pop ๋ช…๋ น์ด ์—†์œผ๋ฏ€๋กœ, ARM7์—์„œ๋Š” ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ผ๋ฐ˜ ๋ฐ์ดํ„ฐ ์ „์†ก ๋ช…๋ น์„ ํ†ตํ•ด ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ARM7์˜ ๋ฐ์ดํ„ฐ ์ „์†ก๋ช…๋ น์€ Auto Increment ๊ธฐ๋Šฅ์ด ์žˆ์–ด์„œ ํ•˜๋‚˜์˜ ์ธ์ŠคํŠธ๋Ÿญ์…˜์œผ๋กœ Push๋‚˜ Pop๊ณผ ๋™์ผํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

- Link Register (r14) 

: r14๋Š” ๋งํฌ ๋ ˆ์ง€์Šคํ„ฐ๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ์ด ๋ ˆ์ง€์Šคํ„ฐ๋Š” 8086๋“ฑ์—์„œ๋Š” ๋ณด์ง€ ๋ชปํ–ˆ๋˜ ๊ธฐ๋Šฅ์˜ ๋ ˆ์ง€์Šคํ„ฐ์ž…๋‹ˆ๋‹ค. 8086๋“ฑ์˜ ํ”„๋กœ์„ธ์„œ๋Š” ์„œ๋ธŒ๋ฃจํ‹ด์„ ํ˜ธ์ถœํ•  ๊ฒฝ์šฐ CALL์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์Œ์— ์ˆ˜ํ–‰๋  ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ๋ฅผ ์Šคํƒ์— ๋„ฃ๊ณ , ํ˜ธ์ถœ๋  ๋ฒˆ์ง€๋ฅผ ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ์— ๋„ฃ๋Š” ๋™์ž‘์„ ํ•˜๋Š”๋ฐ, ARM7์—์„œ๋Š” CALL๊ณผ RET์™€ ๊ฐ™์€ ๋ช…๋ น์ด ์—†์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  Branch with Link ๋ผ๋Š” ๋ช…๋ น(BL)์ด ์žˆ๋Š”๋ฐ, ํ•ด๋‹น ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•˜๋ฉด, CALL๊ณผ ๋น„์Šทํ•˜๊ฒŒ ๋‹ค์Œ์— ์ˆ˜ํ–‰๋  pc(r15)๊ฐ’์„ ์Šคํƒ์ด ์•„๋‹ˆ๋ผ lr(r14)์— ๋„ฃ๊ณ  ๋ถ„๊ธฐ ๋ฒˆ์ง€๋ฅผ pc(r15)์— ๋„ฃ์–ด ๋ถ„๊ธฐํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์Šคํƒ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด์ง€์š”. ๋ณต๊ท€ํ•  ๋•Œ๋Š” RET๋Œ€์‹  mov pc,lr ์ด๋ผ๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก๋ช…๋ น์œผ๋กœ ๋ณต๊ท€ํ•ฉ๋‹ˆ๋‹ค. 

์ด๋Ÿฐ ๋ฐฉ์‹์€ ๋‚˜๋ฆ„๋Œ€๋กœ ์žฅ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ์„  ๋‹จ์ ์„ ๋งํ•˜์ž๋ฉด, ์–ด๋–ค ์„œ๋ธŒ๋ฃจํ‹ด์ด ์ฝœ ๋˜์—ˆ์„ ๋•Œ, ์„œ๋ธŒ๋ฃจํ‹ด์—์„œ๋Š” ๋ณต๊ท€๋ฒˆ์ง€๊ฐ€ r14์— ๋“ค์–ด์žˆ๋Š” ์ƒํƒœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ํ•ด๋‹น ์„œ๋ธŒ๋ฃจํ‹ด์—์„œ ๋‹ค์‹œ ํ•œ๋ฒˆ ๋‹ค๋ฅธ ์„œ๋ธŒ๋ฃจํ‹ด์„ ์ฝœ ํ•œ๋‹ค๋ฉด, ์›๋ž˜ r14์— ๋ณด๊ด€๋˜์–ด ์žˆ๋˜ ๋ณต๊ท€ ๋ฒˆ์ง€ ๊ฐ’์ด ๋ฎ์–ด์”Œ์›Œ์ง€๋Š” ๊ฒฐ๊ณผ๊ฐ€ ์ƒ๊น๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ์—”, ์ˆ˜๋™์œผ๋กœ sp(r13)๋ฅผ ์ด์šฉํ•˜์—ฌ ์Šคํƒ์— r14 ๊ฐ’์„ ๋ณด๊ด€ํ•ด ๋‘์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, Callํ•˜๊ธฐ ์ „์— r14๋ฅผ ์Šคํƒ์— ๋ณด๊ด€ํ•ด ๋‘๊ณ , ๋ฆฌํ„ดํ•ด์„œ ๋ณต๊ตฌํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์น˜๋Š” ์…ˆ์ด์ง€์š”. 

๊ทธ๋Ÿฌ๋ฉด ๊ตฌํƒœ์—ฌ ์™œ ์ด๋Ÿฐ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ• ๊นŒ์š”. ์ด๋ฏธ ๋ˆˆ์น˜์ฑ„์‹  ๋ถ„๋“ค๋„ ๊ณ„์‹œ๊ฒ ์ง€๋งŒ, ๊ทธ๋ ‡๊ฒŒ Call์„ ์—ฐ์†์ ์œผ๋กœ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹Œ, ํ•œ๋ฒˆ๋งŒ Call ํ•˜๋Š” ๊ฒฝ์šฐ๋ผ๋ฉด, ์Šคํƒ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ, ๊ทธ ์†๋„์—์„œ ์ด์ต์„ ์–ป๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด์ฃ . 

๊ฐœ์ธ์ ์œผ๋กœ๋Š” ๊ธฐ๋Šฅ์ด์•ผ ์–ด๋–ป๋“ , Call๊ณผ Ret ๋งˆ์ € ์—†์–ด์„œ ์ฝ”๋“œ๋ฅผ ์ฝ๊ธฐ๊ฐ€ ์ƒ๋‹นํžˆ ์ข‹์ง€ ์•Š๋‹ค๋Š” ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  ์–ด๋””์„œ ์–ด๋””๊นŒ์ง€๊ฐ€ ํ•œ ํ”„๋กœ์‹œ์ €์ธ์ง€ ์‰ฝ๊ฒŒ ๋ถ„๊ฐ„์ด ์•ˆ ๊ฐˆ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๊ฑฐ๋“ ์š”. 

2. ARM7 Status Register 

์ด์ œ Status ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์‚ดํŽด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ARM7์—๋Š” 32๋น„ํŠธ์˜ Status ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ 6๊ฐœ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ 6๊ฐœ ๋ชจ๋‘๋ฅผ ํ•œ๊บผ๋ฒˆ์— ์‚ฌ์šฉํ•˜์ง€๋Š” ๋ชปํ•˜๊ณ , ๋˜ ๊ทธ๋Ÿด ํ•„์š”๋„ ์—†์ฃ . ์ผ๋‹จ์€ ํ•˜๋‚˜์˜ 32๋น„ํŠธ Status ๋ ˆ์ง€์Šคํ„ฐ๋งŒ ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. 

Status ๋ ˆ์ง€์Šคํ„ฐ๋Š” PSR์ด๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ผ๋ฐ˜์ ์œผ๋กœ CPSR์ด๋ผ๊ณ  ํ•˜์—ฌ Current Processor Status Register๋กœ ๋ถ€๋ฆ…๋‹ˆ๋‹ค. 

PSR์€ ํฌ๊ฒŒ Flag Bits๋ถ€๋ถ„๊ณผ Control Bits๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค. 

- Flag Bits

: ์–ด๋–ค ์ธ์ŠคํŠธ๋Ÿญ์…˜์˜ ๊ฒฐ๊ณผ ๋“ฑ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ถ€๋ถ„์œผ๋กœ 4 ๋น„ํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ CPU์˜ ๊ทธ๊ฒƒ๊ณผ ์œ ์‚ฌํ•œ๋ฐ, ๊ฐ๊ฐ N, Z, C, V ์˜ 4๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. 

1) Negative/Less Than Flag

: N์œผ๋กœ ํ‘œ๊ธฐ๋˜๋Š” ์ด ํ”Œ๋ž˜๊ทธ๋Š” ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋งˆ์ด๋„ˆ์Šค์ธ ๊ฒฝ์šฐ์— ์„ธํŠธ๋ฉ๋‹ˆ๋‹ค.

2) Zero Flag

: Z๋กœ ํ‘œ๊ธฐ๋˜๋Š” ์ด ํ”Œ๋ž˜๊ทธ๋Š” ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๊ฐ€ 0์ด ๋˜์—ˆ์„ ๊ฒฝ์šฐ์— ์„ธํŠธ๋ฉ๋‹ˆ๋‹ค.

3) Carry/Borrow/Extend Flag

: C๋กœ ํ‘œ๊ธฐ๋˜๋Š” ์ด ํ”Œ๋ž˜๊ทธ๋Š” ์ž๋ฆฌ์˜ฌ๋ฆผ์ด๋‚˜ ๋‚ด๋ฆผ์ด ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ, ๊ทธ๋ฆฌ๊ณ  Shift ์—ฐ์‚ฐ ๋“ฑ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

4) Overflow Flag

: V๋กœ ํ‘œ๊ธฐ๋˜๋Š” ์ด ํ”Œ๋ž˜๊ทธ๋Š” ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๊ฐ€ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ๋˜์—ˆ์„ ๊ฒฝ์šฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. 

์ด์ƒ์˜ Flag Bit๋“ค์€ ๋‹ค๋ฅธ ์นฉ์˜ ์ƒํƒœ ๋ ˆ์ง€์Šคํ„ฐ์™€ ๋‹ค๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ดํ•ด๋ฅผ ํ•˜๋Š” ๋ฐ์—๋„ ๋ณ„ ๋ฌด๋ฆฌ๊ฐ€ ์—†์œผ๋ฆฌ๋ผ ์ƒ๊ฐ๋˜๋ฉฐ, ๋” ์ž์„ธํžˆ ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด, ๊ฐ ๋ช…๋ น์–ด์™€ ๊ด€๋ จ๋œ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. 

- Control Bits 

: ์ปจํŠธ๋กค ๋น„ํŠธ๋“ค์€ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์ œ์–ดํ•˜๋Š” ๋น„ํŠธ์™€ ๊ณ„์†ํ•ด์„œ ์–ธ๊ธ‰๋˜๊ธฐ๋งŒ ํ•˜๊ณ  ์‹ค์ฒด๋ฅผ ๋“œ๋Ÿฌ๋‚ด์ง€ ์•Š๊ณ  ์žˆ๋Š” Exception๊ณผ ๊ด€๋ จ๋œ CPU ๋™์ž‘๋ชจ๋“œ๋ฅผ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ Bit๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. 

1) IRQ / FIQ Disable Bit

: ARM7์˜ ์ธํ„ฐ๋ŸฝํŠธ ์ค‘์—์„œ IRQ์™€ FIQ๋ฅผ ๊ธˆ์ง€์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ํ”Œ๋ž˜๊ทธ์ž…๋‹ˆ๋‹ค. ์ธํ„ฐ๋ŸฝํŠธ์˜ ์ข…๋ฅ˜๋Š” ์ด๋ฐ–์—๋„ ๋ช‡ ๊ฐ€์ง€๊ฐ€ ๋” ์žˆ๋Š”๋ฐ, ๊ทธ ์ค‘์—์„œ IRQ, FIQ๋Š” PSR์„ ํ†ตํ•ด ๊ธˆ์ง€์‹œํ‚ค๊ฑฐ๋‚˜ ๊ฐ€๋Šฅํ•˜๋„๋ก ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2) Mode Bits

: M0 ์—์„œ M4๊นŒ์ง€์˜ ๋ชจ๋“œ ๋น„ํŠธ๋Š” CPU์˜ 6๊ฐœ์˜ ๋™์ž‘ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ฆ‰, ๊ฐ„๋‹จํžˆ๋งŒ ๋งํ•˜์ž๋ฉด ARM7์€ 6๊ฐœ์˜ ๋™์ž‘ ๋ชจ๋“œ๋ฅผ ๊ฐ€์ง€๋Š”๋ฐ, ์ด๋ฅผํ…Œ๋ฉด User๋ชจ๋“œ์™€ ์ธํ„ฐ๋ŸฝํŠธ ๋ชจ๋“œ ๋“ฑ์ž…๋‹ˆ๋‹ค. ์—ญ์‹œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค์Œ ๊ฐ•์ขŒ๋ฅผ ํ†ตํ•ด ๋ง์”€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. 

์ด์ œ Status ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ํ•œ๋ฒˆ ๊ทธ๋ ค๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

+----------------------------------------------------------------+

| N | Z | C | V | ... | I | F | | M4 | M3 | M2 | M1 | M0 |

+----------------------------------------------------------------+

Bit 31 30 29 28 7 6 4 3 2 1 0 

์˜ค๋Š˜์€ ARM7์˜ ๋ ˆ์ง€์Šคํ„ฐ์— ๋Œ€ํ•ด ๊ธฐ๋ณธ์ ์ธ ๋‚ด์šฉ์„ ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋งŽ์€ ๋ถ€๋ถ„์—์„œ ARM7์˜ ๋™์ž‘ ๋ชจ๋“œ์™€ ๊ด€๋ จ๋˜๋Š” ๋ถ€๋ถ„์ด ๋‚˜์™”์ง€์š”. ๋•Œ๋ฌธ์— ๋‹ค์Œ ์‹œ๊ฐ„์œผ๋กœ ๋ฏธ๋ฃฌ ๋ถ€๋ถ„๋“ค์ด ๋งŽ๊ตฐ์š”. 

๋‹ค์Œ ๊ฐ•์ขŒ์—์„œ๋Š” ARM7 Exception์— ๋Œ€ํ•ด์„œ ๋‹ค๋ฃจ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์ด๋งŒ ์ค„์ด๊ฒ ์Šต๋‹ˆ๋‹ค. 

--------------------------------------------------------------------

ARM7 ๊ฐ•์ขŒ [5] : Exception (1)

-------------------------------------------------------------------- 

โ— Exception 

์šฐ์„  Exception์ด ๋ฌด์—‡์„ ๋งํ•˜๋Š”์ง€๋ฅผ ์ด์ œ๋ถ€ํ„ฐ ์ •๋ฆฌํ•ด ๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ธํ„ฐ๋ŸฝํŠธ์™€ ์œ ์‚ฌํ•œ ๊ฐœ๋…์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ๋ณด๋ฉด ์ธํ„ฐ๋ŸฝํŠธ๋ณด๋‹ค๋Š” ์กฐ๊ธˆ ํฐ ๊ฐœ๋…์ด๋ž„ ์ˆ˜๋„ ์žˆ๊ณ , ์ •ํ™•ํ•œ ์ •์˜์— ๋Œ€ํ•ด์„œ๋Š” ๋ง์”€์„ ๋“œ๋ฆฌ์ง€ ๋ชปํ•˜๊ฒ ๊ตฐ์š”. ๊ฐœ๋…์„ ARM7์—์„œ์˜ Exception์œผ๋กœ ํ•œ์ •ํ•ด์„œ ๋ง์”€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. 

๊ตฌ์ฒด์ ์œผ๋กœ ARM7์—๋Š” FIQ(Fast Interrupt reQuest)์™€ IRQ(Interrupt reQuest), Abort, Software Interrupt, Undefined Instruction Trap์˜ 5๊ฐ€์ง€ Exception์ด ์žˆ๊ณ , ๊ฐ๊ฐ Exception์ด ๋ฐœ์ƒํ•˜๋ฉด CPU๋Š” ๋Œ€์‘ํ•˜๋Š” ๋™์ž‘๋ชจ๋“œ๋กœ ์ „ํ™˜๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ๋ณดํ†ต ๋™์ž‘์ƒํƒœ์ธ User ๋™์ž‘๋ชจ๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜์–ด ๋™์ž‘ ๋ชจ๋“œ๋Š” ์ด 6๊ฐœ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. 

- IRQ

: ์ผ๋ฐ˜์ ์œผ๋กœ I/O ์žฅ์น˜๋กœ๋ถ€ํ„ฐ์˜ ์ž…๋ ฅ์ด ๋“ค์–ด์˜ค๋ฉด ๋ฐ˜์‘์„ ํ•˜๋Š” ํ”ํžˆ ๋งํ•˜๋Š” ์ธํ„ฐ๋ŸฝํŠธ Exception์ž…๋‹ˆ๋‹ค. IRQ์˜ ์ข…๋ฅ˜๋กœ๋Š” ๋‚ด๋ถ€ ํƒ€์ด๋จธ๋‚˜ ์‹œ๋ฆฌ์–ผ, ํ˜น์€ ์™ธ๋ถ€ IRQ์ž…๋ ฅ ๋“ฑ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

- FIQ

: ๊ฐœ๋…์ ์œผ๋กœ๋Š” IRQ์™€ ๊ฑฐ์˜ ์œ ์‚ฌํ•œ๋ฐ, ๋‹ค๋งŒ ๋ณด๋‹ค ๋น ๋ฅธ ์ฒ˜๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ œ๊ณต๋˜๋Š” Exception์ž…๋‹ˆ๋‹ค. IRQ์˜ ์†Œ์Šค๋Š” ๋Œ€๋ถ€๋ถ„ FIQ๋กœ๋„ ๋งคํ•‘ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ํƒ€์ด๋จธ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ IRQ๋กœ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜, ํ˜น์€ FIQ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.

- Abort

: CPU๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋กœ๋ถ€ํ„ฐ ์ธ์ŠคํŠธ๋Ÿญ์…˜์„ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜, ํ˜น์€ ์ธ์ŠคํŠธ๋Ÿญ์…˜์„ ๋™์ž‘์‹œํ‚ค๋ฉด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋ ค๊ณ  ํ•  ๊ฒฝ์šฐ, ํ•ด๋‹น ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์–ต์„ธ์Šค ํ•  ์ˆ˜ ์—†๋‹ค๋ฉด Abort Exception์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์œ„์— ์ œ์‹œํ•œ ๋‘ ๊ฐ€์ง€ ๊ฒฝ์šฐ์— ๋Œ€์‘ํ•˜์—ฌ Prefetch Abort์™€ Data Abort๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

- Software Interrupt

: ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ž„์˜๋กœ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ARM Instruction SWI๊ฐ€ ์ด์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์ด Exception์ด ๋ฐœ์ƒํ•˜๋ฉด CPU๋™์ž‘๋ชจ๋“œ๊ฐ€ Supervisor ๋ชจ๋“œ๋กœ ๋ฐ”๋€Œ๋„๋ก ๋˜์–ด ์žˆ๊ณ , ๋ณดํ†ต OS์˜ ์‹œ์Šคํ…œ Call์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

- Undefined Instruction Trap

: ARM7 ์— ์ •์˜๋˜์–ด ์žˆ์ง€ ์•Š์€ ๋ช…๋ น์–ด๋ฅผ ๋งŒ๋‚ฌ์„ ๊ฒฝ์šฐ ๋ฐœ์ƒํ•˜๋Š” Exception์ž…๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ ์ฝ”ํ”„๋กœ์„ธ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์™€ ๊ด€๋ จ๋˜์–ด ์‚ฌ์šฉ๋œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 

์œ„์—์„œ ์–ธ๊ธ‰ํ•œ 5์ข…๋ฅ˜์˜ Exception์— ๋ช‡ ๊ฐ€์ง€๋ฅผ ๋”ํ•˜์—ฌ, ํ•ด๋‹น ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ARM7์€ 0๋ฒˆ์ง€์— ๋ฒกํ„ฐ ํ…Œ์ด๋ธ”์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ํ•ด๋‹น Exception์ด ๋ฐœ์ƒํ•˜๋ฉด ์ •ํ•ด์ ธ ์žˆ๋Š” ๋ฒกํ„ฐ ๋ฒˆ์ง€๋กœ ์‹คํ–‰์„ ์˜ฎ๊น๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ฒˆ์ง€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. 

Address Exception Mode on entry

-----------------------------------------------------

0x0000.0000 Reset Supervisor

0x0000.0004 Undefined Instruction Undefined

0x0000.0008 Software Interrupt Supervisor

0x0000.000C Abort(prefetch) Abort

0x0000.0010 Abort(data) Abort

0x0000.0014 --reserved-- --

0x0000.0018 IRQ IRQ

0x0000.001C FIQ FIQ 

ํ•œ๊ฐ€์ง€ ์ฃผ์˜ํ•  ์ ์€ 8086์˜ ๊ฒฝ์šฐ์—” ํ•ด๋‹น ๋ฒกํ„ฐ์— ADDRESS๋ฅผ ๋„ฃ์–ด ๋‘๋ฉด, ์ธํ„ฐ๋ŸฝํŠธ ๋ฐœ์ƒ ์‹œ์— ํ•ด๋‹น ์ฃผ์†Œ๋ฅผ ๊ฐ€์ ธ๋‹ค๊ฐ€ PC์— ๋„ฃ์–ด์ฃผ๋Š” ์ผ์ด ๋ฐœ์ƒํ•˜์ง€๋งŒ, ARM7์˜ ๊ฒฝ์šฐ์—” ๊ทธ๋ƒฅ ํ•ด๋‹น ๋ฒกํ„ฐ๋กœ ์ ํ”„๋ฅผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด IRQ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค๋ฉด ๋‹ค์Œ์ˆœ๊ฐ„์˜ pc(r15)๊ฐ’์€ 0000.0018 ์ด ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•ด๋‹น ๋ฒกํ„ฐ ๋ฒˆ์ง€์—๋Š” ๋‹จ์ˆœํžˆ ๋ฒˆ์ง€๊ฐ€ ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ ํ”„๋ช…๋ น ๊ฐ™์€ ๊ฒƒ์ด ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค. 

โ— ๋™์ž‘๋ชจ๋“œ 

์œ„์˜ Exception๊ณผ ๊ด€๋ จ๋˜์–ด CPU์˜ ๋™์ž‘๋ชจ๋“œ ๋ช‡ ๊ฐ€์ง€๊ฐ€ ๋‚˜ํƒ€๋‚˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ „์—๋„ ๋ช‡ ๋ฒˆ ๋งํ–ˆ๋“ฏ์ด ARM7์—๋Š” 6๊ฐ€์ง€์˜ ๋™์ž‘ ๋ชจ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ชจ๋“œ๋Š” User Mode, FIQ Mode, IRQ Mode, Supervisor Mode, Abort Mode, Undefined Mode ๋“ฑ์˜ 6๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. 

- ๋™์ž‘๋ชจ๋“œ์™€ ๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ 

๋™์ž‘๋ชจ๋“œ๊ฐ€ ์™œ ์žˆ๋Š” ๊ฑธ๊นŒ์š”? ARM7์€ ๊ฐ ๋™์ž‘๋ชจ๋“œ์— ๋”ฐ๋ผ์„œ ๋ช‡ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ํฐ ๊ฒƒ์œผ๋กœ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๋ฆฌ-๋งตํ•‘์‹œํ‚ค๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ข€ ๋‹ค๋ฅด๊ฒŒ ์„ค๋ช…ํ•˜๋ฉด, ๊ฐ ๋ชจ๋“œ๋งˆ๋‹ค ์ „์šฉ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ๋”ฐ๋กœ ์žˆ๋‹ค๊ณ ๋„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒ ๋Š”๋ฐ์š”, ์ฐจ๊ทผ์ฐจ๊ทผ ์„ค๋ช…ํ•ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 

CPU์˜ ๋™์ž‘๋ชจ๋“œ๋Š” ๋ณดํ†ต ๋•Œ๋Š” User ๋ชจ๋“œ์ž…๋‹ˆ๋‹ค. ์ด ๋•Œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ r0์—์„œ r15๊นŒ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ฒ ์ฃ . ๊ทธ๋Ÿฌ๋‹ค ๊ฐ€๋ น FIQ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค๊ณ  ํ•˜๋ฉด ๋™์ž‘ ๋ชจ๋“œ๊ฐ€ FIQ ๋ชจ๋“œ๋กœ ๋ฐ”๋€Œ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด์™€ ๋™์‹œ์— r8๋ถ€ํ„ฐ r14๊นŒ์ง€์˜ 7๊ฐœ์˜ ๋ ˆ์ง€์Šคํ„ฐ๋Š” FIQ ์ „์šฉ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ๋ฆฌ-๋งตํ•‘๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, User๋ชจ๋“œ์˜ ๋ ˆ์ง€์Šคํ„ฐ์™€๋Š” ๋ณ„๊ฐœ์˜€๋˜ ๋ ˆ์ง€์Šคํ„ฐ 7๊ฐœ๊ฐ€ r8๋ถ€ํ„ฐ r14๊นŒ์ง€์˜ ์œ„์น˜์— ๋ฐฐ์น˜๋˜๋Š” ๊ฒƒ์ด์ฃ . ๋ฌผ๋ก  ๊ธฐ์กด์˜ User๋ชจ๋“œ์—์„œ ์‚ฌ์šฉํ•˜๋˜ r8-r14๊นŒ์ง€์˜ ๋ ˆ์ง€์Šคํ„ฐ์™€๋Š” ๋ณ„๊ฐœ์˜ ๋ ˆ์ง€์Šคํ„ฐ์ž…๋‹ˆ๋‹ค. 

์ด๋ ‡๊ฒŒ ํ•˜๋Š” ์žฅ์ ์„ ์ƒ๊ฐํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ”ํžˆ ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ๋ฃจํ‹ด์„ ์ž‘์„ฑํ•  ๊ฒฝ์šฐ ์ธํ„ฐ๋ŸฝํŠธ ๋ฐœ์ƒ ์‹œ ๊ฐ€์žฅ๋จผ์ € ํ•˜๋Š” ์ผ์ด ์‚ฌ์šฉ ์ค‘์ด๋˜ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์Šคํƒ์— ์ €์žฅํ•˜๊ณ , ๋˜ ์ฒ˜๋ฆฌ๋ฃจํ‹ด์ด ์ข…๋ฃŒ๋  ๋•Œ๋Š” ๋‹ค์‹œ ๋ณต๊ตฌ์‹œํ‚ค๋Š” ์ผ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ARM7์—์„œ FIQ์˜ ๊ฒฝ์šฐ๋ฅผ ์‚ดํ”ผ๋ฉด, FIQ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด์˜ ์ฝ”๋”ฉ ์‹œ์—๋Š” r8๋ถ€ํ„ฐ r14๊นŒ์ง€๋ฅผ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ๋˜ ์ €์žฅ๊ณผ ๋ณต๊ตฌ ๊ณผ์ •์„ ์ƒ๋žตํ•ด๋„ ์ข‹์Šต๋‹ˆ๋‹ค. CPU๋ชจ๋“œ๊ฐ€ ๋ฐ”๋€œ์— ๋”ฐ๋ผ ๋ ˆ์ง€์Šคํ„ฐ ์ž์ฒด๊ฐ€ ๋ณ„๊ฐœ์˜ ๋‹ค๋ฅธ ๊ฒƒ์œผ๋กœ ๋ฐ”๋€Œ์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. 

ํ•ด๋‹น ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 

-----------------------------------------------------

User FIQ Super Abort IRQ Undefined

-----------------------------------------------------

r0 . . . . .

r1 . . . . .

r2 . . . . .

r3 . . . . .

r4 . . . . .

r5 . . . . .

r6 . . . . .

r7 . . . . .

r8 r8_fiq . . . .

r9 r9_fiq . . . .

r10 r10_fiq . . . .

r11 r11_fiq . . . .

r12 r12_fiq . . . .

r13 r13_fiq r13_svc r13_abt r13_irq r13_und

r14 r14_fiq r14_svc r14_abt r14_irq r14_und

r15(PC) . . . . .

----------------------------------------------------- 

์œ„์˜ ๊ทธ๋ฆผ์ด ๊ฐ ๋ชจ๋“œ์— ๋”ฐ๋ผ ๋ฆฌ-๋งตํ•‘๋˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ๋“ค์„ ๋‚˜ํƒ€๋‚ธ ๊ทธ๋ฆผ์ž…๋‹ˆ๋‹ค. FIQ๋ชจ๋“œ์—์„œ๋Š” 7๊ฐœ, ๊ทธ๋ฆฌ๊ณ  ๋‚˜๋จธ์ง€ ๋ชจ๋“œ์—์„œ๋Š” 2๊ฐœ์”ฉ์˜ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ๋ฆฌ-๋งตํ•‘๋ฉ๋‹ˆ๋‹ค. 

์ด ๊ฐœ๋…์ด ์ดํ•ดํ•˜๊ธฐ๊ฐ€ ์ข€ ์–ด๋ ค์šธ์ง€๋„ ๋ชจ๋ฅด๊ฒ ๊ตฐ์š”. ์‹œ๊ฐ„์„ ๊ฐ€์ง€๊ณ  ์ฐจ๊ทผ์ฐจ๊ทผ ์ƒ๊ฐํ•ด ๋ณด์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. 

๊ทธ๋Ÿฌ๋ฉด ์™œ ๋‹ค๋ฅธ ๋ชจ๋“œ๋“ค์—์„œ๋Š” r13๊ณผ r14๋ฅผ ๋”ฐ๋กœ ๋‘์—ˆ์„๊นŒ์š”? ๊ทธ๊ฒƒ์€ ๊ทธ ๋ ˆ์ง€์Šคํ„ฐ๋“ค์ด ํŠน๋ณ„ํ•œ ๋ชฉ์ ์„ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. 

๋ ˆ์ง€์Šคํ„ฐ์ฐจ์›์—์„œ ์ด๋ฒˆ์—๋Š” IRQ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์„ค๋ช…ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 

r14๋Š” Link ๋ ˆ์ง€์Šคํ„ฐ๋กœ์จ Call๊ณผ ๊ฐ™์€ ์ธ์ŠคํŠธ๋Ÿญ์…˜์ด ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ๋ณต๊ท€ ํ•  ๋ฒˆ์ง€๋ฅผ ์ €์žฅํ•ด ๋‘๋Š” ๋ ˆ์ง€์Šคํ„ฐ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ์€ IRQ ๋ฐœ์ƒ ๊ณผ์ •์ž…๋‹ˆ๋‹ค. 

1) User๋ชจ๋“œ์—์„œ r0-r15๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.

2) IRQ ๋ฐœ์ƒ

3) ARM CPU๋Š” ๋™์ž‘๋ชจ๋“œ๋ฅผ IRQ ๋ชจ๋“œ๋กœ ๋ฐ”๊พผ๋‹ค.

( ์ด๋•Œ r13๊ณผ r14๋Š” IRQ ์ „์šฉ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ๋Œ€์น˜๋œ๋‹ค.)

4) ์ด ์‹œ์ ์˜ PC ๊ฐ’์€ IRQ ์ฒ˜๋ฆฌ ์ดํ›„ ๋ณต๊ท€ํ•  ๋ฒˆ์ง€์ด๋‹ค. ๊ทธ ๊ฐ’์„ r14 (์ด๋ฏธ IRQ๋ชจ๋“œ๊ฐ€ ๋˜์—ˆ์œผ๋ฏ€๋กœ r14_irq) ์— ๋„ฃ๋Š”๋‹ค.

5) ๋งŒ์•ฝ์— r0๋ถ€ํ„ฐ r12๊นŒ์ง€๋ฅผ IRQ์ฒ˜๋ฆฌ ๋ฃจํ‹ด์—์„œ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด ํ•ด๋‹น ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ sp(r13, ์—ญ์‹œ r13_irq)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์Šคํƒ์— ๋„ฃ๋Š”๋‹ค.

..... 

์—ฌ๊ธฐ์„œ 5)๋ฒˆ ๊ณผ์ •์„ ๋ˆˆ ์—ฌ๊ฒจ ๋ณผ ํ•„์š”๊ฐ€ ์žˆ์„ ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค. r13์ด ์Šคํƒ ํฌ์ธํ„ฐ๋กœ ์‚ฌ์šฉ๋จ์€ ์ง€๋‚œ ๊ฐ•์ขŒ์—์„œ ๋ง์”€๋“œ๋ ธ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, ๊ฐ ๋ชจ๋“œ๋งˆ๋‹ค r13์„ ๋”ฐ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฏ€๋กœ, ์Šคํƒ์„ CPU ๋™์ž‘๋ชจ๋“œ๋งˆ๋‹ค ๋”ฐ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. 

๊ทธ๋ฆผ์ด๋ผ๋„ ๊ทธ๋ ค์„œ ์„ค๋ช…์„ ๋“œ๋ฆฌ๋ฉด ์ข‹์„ ๋“ฏ ํ•œ๋ฐ, ํ…์ŠคํŠธ๋กœ๋งŒ ์„ค๋ช…ํ•˜๊ธฐ๊ฐ€ ์‰ฌ์šด ์ผ์ด ์•„๋‹ˆ๊ตฐ์š”. 

r14๋Š” ๋ณต๊ท€๋ฒˆ์ง€๊ฐ€ ๋“ค์–ด๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ํ•ญ์ƒ ๋””ํดํŠธ๋กœ ์‚ฌ์šฉ๋˜๋ฏ€๋กœ ์—ฌ๋ถ„์˜ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ํ•„์š”ํ•˜๊ฒ ์ฃ . ๊ทธ๋Ÿฐ ์ด์œ ๋กœ r13๊ณผ r14๋ฅผ ๊ฐ ๋ชจ๋“œ๋งˆ๋‹ค ๋”ฐ๋กœ ๋‘” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ˜น์‹œ ์ดํ•ด๊ฐ€ ๋˜์‹œ๋‚˜์š”? 

FIQ๋ชจ๋“œ๋Š” ๊ทธ ์ด๋ฆ„์—์„œ๋„ ๋‚˜ํƒ€๋‚˜ ์žˆ๋“ฏ์ด 7๊ฐœ์˜ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๋”ฐ๋กœ ๋‘์–ด์„œ ๋ ˆ์ง€์Šคํ„ฐ ์ €์žฅ ๋ณต๊ตฌ ๊ณผ์ •์„ ๊ฑฐ์˜ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ ๊ฒƒ์ด์ฃ . 

๊ทธ๋ฆฌ๊ณ  ์ฐธ๊ณ ๋กœ Exception์—์„œ ๋ณต๊ท€ํ•  ๊ฒฝ์šฐ์—” ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” ํ•ด๋‹น ๋ชจ๋“œ์˜ r14 ๋ฒˆ์ง€์˜ ๋‚ด์šฉ์„ r15๋ฒˆ์ง€๋กœ ๋„ฃ๋Š”๋ฐ, ๊ฐ ๋ชจ๋“œ๋งˆ๋‹ค ์กฐ๊ธˆ์”ฉ์˜ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. 

๋งจ ์ฒ˜์Œ ARM7 ์„ ์†Œ๊ฐœํ•  ๋•Œ ๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ 31๊ฐœ๋ผ๊ณ  ๋ง์”€๋“œ๋ ธ์—ˆ๋Š”๋ฐ, ์ง€๊ธˆ ๋‹ค์‹œ ๊ณ„์‚ฐ์„ ํ•ด๋ณด๋ฉด, User๋ชจ๋“œ์˜ ๋””ํดํŠธ 16๊ฐœ + FIQ ๋ชจ๋“œ 7๊ฐœ + ๋‚˜๋จธ์ง€ 4๊ฐœ์˜ ๋ชจ๋“œ *2 =8๊ฐœ ํ•ด์„œ 16+7+2+2+2+2=31 ๊ฐœ๋กœ ๊ณ„์‚ฐ์ด ๋ฉ๋‹ˆ๋‹ค. 

- ๋™์ž‘ ๋ชจ๋“œ์™€ PSR(Status ๋ ˆ์ง€์Šคํ„ฐ) 

๋ฒ”์šฉ๋ ˆ์ง€์Šคํ„ฐ์™€ ๋น„์Šทํ•˜๊ฒŒ PSR ์—ญ์‹œ ๋™์ž‘๋ชจ๋“œ๋งˆ๋‹ค ๋”ฐ๋กœ ๊ด€๋ฆฌ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ ˆ์ง€์Šคํ„ฐ๋Š” ๋’ค์— ๋ชจ๋“œ ์ด๋ฆ„์„ ๋ถ™์—ฌ์„œ SPSR_fiq, SPSR_svc, SPSR_abt, SPSR_irq, SPSR_und ์™€ ๊ฐ™์€ ์ด๋ฆ„์œผ๋กœ ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ PSR ๊ฐœ์ˆ˜๋Š” CPSR์„ ํฌํ•จํ•˜์—ฌ ์ด 6๊ฐœ๊ฐ€๋ฉ๋‹ˆ๋‹ค. 

SPSR์€ CPSR๊ฐ’์„ ์ €์žฅํ•ด ๋‘๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋ฒ”์šฉ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ์•„์˜ˆ ๋งตํ•‘์ด ๋ฐ”๋€Œ๋Š”๋ฐ ๋ฐ˜ํ•ด, ๋ชจ๋“œ๊ฐ€ ๋ฐ”๋€” ๊ฒฝ์šฐ, ์˜ˆ๋ฅผ ๋“ค์–ด IRQ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค๋ฉด, ๊ธฐ์กด์— User๋ชจ๋“œ์—์„œ ์‚ฌ์šฉํ•˜๋Š” CPSR๊ฐ’์„ SPSR_irq์— ์ €์žฅ์„ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  IRQ ๋ชจ๋“œ์—์„œ๋Š” CPSR๊ณผ SPSR_irq๋ฅผ ๋‘˜ ๋‹ค ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ›„์— IRQ๊ฐ€ ๋๋‚˜๋Š” ์‹œ์ ์—์„œ SPSR_irq์˜ ๋‚ด์šฉ์„ CPSR๋กœ ๋ณต๊ตฌํ•˜๋ฉด ์›๋ž˜์˜ CPSR๊ฐ’์ด ์œ ์ง€๋˜๋Š” ๊ฒƒ์ด์ฃ . 

๊ฐ€๋งŒํžˆ ์ƒ๊ฐํ•ด๋ณด๋ฉด Exception์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ํ•ด๋‹น ์ฒ˜๋ฆฌ ๋ฃจํ‹ด์—๋Š” ๊ทธ ์ˆœ๊ฐ„์˜ CPSR๊ฐ’์„ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์˜ค๋Š” ์…ˆ์ด์ง€์š”. ๋‹ค๋งŒ ์‹œ์ž‘ํ•  ๋•Œ ํ•ด๋‹น ๊ฐ’์„ SPSR์— ์ €์žฅํ•ด ๋‘์—ˆ๊ธฐ ๋•Œ๋ฌธ์— IRQ ์ฒ˜๋ฆฌ๋ฃจํ‹ด์—์„œ ์ˆ˜์ •์ด ๋œ๋‹ค๊ณ  ํ•ด๋„, ๋ณต๊ท€ํ•  ๋•Œ SPSR์—์„œ CPSR๊ฐ’์„ ๋‹ค์‹œ ๊ฐ€์ ธ์˜ค๋ฏ€๋กœ, ์‹คํ–‰ ์ค‘์ด๋˜ ํ™˜๊ฒฝ์€ ๊ทธ๋Œ€๋กœ ์œ ์ง€๊ฐ€ ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ ‡๋“ฏ ARM7์—์„œ๋Š” Exception์ฒ˜๋ฆฌ์— ์žˆ์–ด ๋˜๋„๋ก ์Šคํƒ ์‚ฌ์šฉ์„ ์ตœ์†Œํ™”ํ•˜๋ ค๋Š” ๋…ธ๋ ฅ์„ ์—ฟ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

์˜ค๋Š˜ ๊ฐ•์ขŒ ๋‚ด์šฉ์€ ์ข€ ์–ด๋ ค์› ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ CPU์—๋Š” ์—†๋Š” ๊ฐœ๋…(?)์„ ์„ค๋ช…ํ•˜๋Š๋ผ ๊ทธ๋Ÿฐ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋” ์ด์ƒ ๊ธธ์–ด์ง€๊ธฐ ์ „์— ์˜ค๋Š˜์€ ์ด๋งŒ ์ค„์ด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๊ฐ•์ขŒ์—์„œ๋Š” Exception๋ถ€๋ถ„์—์„œ ์ข€ ๋” ์•Œ์•„์•ผ ํ•  ๋ช‡ ๊ฐ€์ง€ ์‚ฌํ•ญ์„ ๊ฐ„๋‹จํžˆ ์–ธ๊ธ‰ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 

--------------------------------------------------------------------

ARM7 ๊ฐ•์ขŒ [6] : Exception (2)

-------------------------------------------------------------------- 

โ— Exception Overview 

Exception์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ์™„์ „ํžˆ ์ดํ•ด ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค๊ณ ๋Š” ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ฒƒ๋“ค์ด ๊ทธ๋Ÿฌํ•˜๋“ฏ ์šฐ์„ ์€ ์ด๋Ÿฐ ๊ฒƒ์ด ๋ญ๋‹ค ๋ผ๊ณ  ํŒŒ์•…๋งŒ ํ•˜๊ณ  ์žˆ๋‹ค๋ฉด, ์ •์ž‘ ํ•„์š”ํ•  ๊ฒฝ์šฐ์— ๋‹ค์‹œ ์ž์„ธํžˆ ์‚ดํŽด๋ณด์•„๋„ ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. 

๊ทธ๋Ÿฐ ์ทจ์ง€์—์„œ Exception์„ ๋ฐ”๋ผ๋ณธ๋‹ค๋ฉด, ARM 7์—๋Š” ์—ฌ์„ฏ ๊ฐ€์ง€์˜ CPU ๋™์ž‘ ๋ชจ๋“œ๋ฅผ ์ง€์›ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค๊ณผ, ์ฐจํ›„ MMU ๊ฐ™์€ ๊ฒƒ์—๋„ ๊ทธ ๋™์ž‘๋ชจ๋“œ๊ฐ€ ๊ด€์—ฌํ•œ๋‹ค๋Š” ๊ฒƒ. ๊ทธ๋ฆฌ๊ณ  ๊ฐ ๋ชจ๋“œ๋งˆ๋‹ค ์Šคํƒ์„ ๋”ฐ๋กœ ์„ค์ •ํ•ด ์ค€๋‹ค๋Š” ๊ฒƒ... ๋“ฑ. 

๊ผญ ์•Œ์•„์•ผ ํ•  ๊ฒƒ์ด ์žˆ๋‹ค๋ฉด IRQ๋‚˜ FIQ ์ •๋„๊ฐ€ ๋˜๊ฒ ์ง€์š”. ํ”ํžˆ ๋งํ•˜๋Š” ์ธํ„ฐ๋ŸฝํŠธ ๊ด€๋ จ ๋ถ€๋ถ„์ด ๋ฐ”๋กœ ์ด ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ์‹ค์ œ ์ฝ”๋”ฉ์„ ํ•  ๊ฒฝ์šฐ์—๋Š” CPU์—์„œ ์ •ํ•ด์ ธ ์žˆ๋Š” IRQ, FIQ๊ด€๋ จ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์„ค์ •ํ•˜๊ณ , ํ•ด๋‹น ๋ฒกํ„ฐ ๋ฒˆ์ง€๋ฅผ ๋ฐ”๊พธ๋Š” ์ •๋„... ๊ทธ๋ฆฌ๊ณ  ์ดˆ๊ธฐํ™” ์‹œ์— ํ•ด๋‹นํ•˜๋Š” ์Šคํƒ ๊ณต๊ฐ„์„ ๋”ฐ๋กœ ์žก์•„์ฃผ๋Š” ์ •๋„๋งŒ ์‹ ๊ฒฝ์„ ์“ฐ๋ฉด ๋ฉ๋‹ˆ๋‹ค. 

์›๋ž˜๋Š” ๊ฐ Exception ๋ชจ๋“œ๋งˆ๋‹ค ์ข…๋ฃŒ ๋ฐฉ๋ฒ•์ด ๊ฐ๊ธฐ ๋‹ค๋ฆ„์„ ์„ค๋ช… ํ•ด ๋“œ๋ฆฌ๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ, (๊ตฌ์ฒด์ ์œผ๋กœ๋Š” FIQ๋Š” ์„œ๋น„์Šค ์ข…๋ฃŒ ์‹œ์— SUBS pc,r14_fiq,#4)๋ผ๋Š” ๋ช…๋ น์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค, ํ˜น์€ ์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ์˜ ๊ฒฝ์šฐ์—” MOVS pc,r14_svc ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.) ๊ตณ์ด ๊ทธ๋Ÿฐ ๋‚ด์šฉ๊นŒ์ง€ ๋‹ค๋ฃฐ ํ•„์š”๋Š” ์—†์„ ๋“ฏ ํ•˜๋‹ค๋Š” ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋„ํ๋จผํŠธ๋ฅผ ์ฐธ์กฐํ•˜๋ฉด ์ž์„ธํžˆ ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฐธ๊ณ ๋กœ ๊ทธ๋ ‡๊ฒŒ ๊ฐ๊ฐ ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ๋ณต๊ท€ ๋ฐฉ๋ฒ•์ด ๋‹ค๋ฅธ ์ด์œ ๋Š” ์ถ”์ธกํ•˜์ž๋ฉด ํŒŒ์ดํ”„๋ผ์ธ ๊ธฐ๋Šฅ๊ณผ ๊ด€๋ จ์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. 

๊ทธ๋Ÿฌ๋ฉด, ๋‹ค์‹œ ์•ž์œผ๋กœ ๋Œ์•„๊ฐ€์„œ, Exception๊ณผ CPU๋™์ž‘๋ชจ๋“œ์˜ ์—ฐ๊ด€์„ฑ์— ๋Œ€ํ•ด ๋งˆ์ € ์–˜๊ธฐํ•ด ๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. CPU๋™์ž‘ ๋ชจ๋“œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ๋Š” Exception์— ์˜ํ•˜์—ฌ ๋ฐ”๋€Œ๊ฒŒ ๋˜๊ณ , User๋ชจ๋“œ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ํ”„๋กœ๊ทธ๋žจ์— ์˜ํ•ด ๊ฐ•์ œ๋กœ ๋ฐ”๊ฟ€์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. 

์ „์— ์‚ดํŽด๋ณด์•˜๋˜ CPSR(์Šคํ…Œ์ดํ„ฐ์Šค ๋ ˆ์ง€์Šคํ„ฐ)๊ณผ ๊ด€๋ จ๋˜์–ด, CPSR์˜ ๋ชจ๋“œ๋น„ํŠธ ๋ถ€๋ถ„์— ํ˜„์žฌ CPU์˜ ๋™์ž‘๋ชจ๋“œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋น„ํŠธ๋“ค์ด ์žˆ๋Š”๋ฐ, ํ•ด๋‹น ๋น„ํŠธ๋ฅผ ๋ณ€๊ฒฝ์‹œํ‚ด์œผ๋กœ์„œ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋™์ž‘๋ชจ๋“œ๋ฅผ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. OS๋ฅผ ํฌํŒ… ํ•  ๊ฒฝ์šฐ ๋™์ž‘๋ชจ๋“œ์™€ ๊ด€๋ จํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ๋ณดํ˜ธ๊ธฐ๋Šฅ ๋“ฑ๋„ ๊ตฌํ˜„๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

๋งˆ์ง€๋ง‰์œผ๋กœ ๋ช‡ ๊ฐ€์ง€ ์‚ฌํ•ญ๋งŒ ๋ง์”€๋“œ๋ฆฌ๊ณ  ์˜ค๋Š˜ ๊ฐ•์ขŒ๋ฅผ ๋งˆ์น˜๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์šฐ์„ , Exception๊ฐ„์˜ ์šฐ์„ ์ˆœ์œ„ ๋ฌธ์ œ์ธ๋ฐ, ๊ธฐ๋ณธ์ ์œผ๋กœ ARM7์€ IRQ, FIQ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด CPU๋Š” CPSR์˜ ์ธํ„ฐ๋ŸฝํŠธ ๊ธˆ์ง€ ํ”Œ๋ž˜๊ทธ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋„์ค‘์— ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋ฐ›๊ณ  ์‹ถ๋‹ค๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ํ•ด๋‹น ํ”Œ๋ž˜๊ทธ๋ฅผ ํด๋ฆฌ์–ด ํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜, ๋™์‹œ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ Exception ์ด ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ๋ผ๋ฉด ๊ทธ ์šฐ์„ ์ˆœ์œ„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. 

1) Reset (๊ฐ€์žฅ ๋†’์€ ์šฐ์„ ์ˆœ์œ„)

2) Data abort

3) FIQ

4) IRQ

5) Prefetch abort

6) Undefined Instruction, Software Interrupt 

Exception ๋ถ€๋ถ„์„ ์„ค๋ช…ํ•˜๋‹ค ๋ณด๋‹ˆ ๊ฐ•์ขŒ๊ฐ€ ์ž์นซ ๋„ˆ๋ฌด ๋”ฑ๋”ฑํ•ด์ง€๋Š” ๊ฐ์ด ์žˆ์–ด์„œ ๊ทธ๋ƒฅ ์ด์ฏค์—์„œ ๋งˆ๋ฌด๋ฆฌ๋ฅผ ์ง€์œผ๋ ค ํ•ฉ๋‹ˆ๋‹ค. 

๋‹ค์Œ ๊ฐ•์ขŒ๋ถ€ํ„ฐ๋Š” ์ข€๋” ๊ตฌ์ฒด์ ์ธ ARM7์˜ ์ธ์ŠคํŠธ๋Ÿญ์…˜์— ๋Œ€ํ•ด ๋‹ค๋ฃจ๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ช…๋ น์–ด๊ฐ€ ๋ช‡ ๊ฐœ ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— 3ํšŒ ์ •๋„๋กœ ๋‹ค๋ฃฐ ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค.. 

๊ทธ๋Ÿผ ๋‹ค์Œ ๊ฐ•์ขŒ์— ๋ต™๊ฒ ์Šต๋‹ˆ๋‹ค. 

--------------------------------------------------------------------

ARM7 ๊ฐ•์ขŒ [7] : Instruction Set (1)

-------------------------------------------------------------------- 

โ— ARM7 ๋ช…๋ น์–ด์˜ ํŠน์ง• 

AMR7์€ 32 Bit ์ฝ”์–ด์ž…๋‹ˆ๋‹ค. ํŠน์ง•์ ์ธ ๊ฒƒ์€ ๋ชจ๋“  ๋ช…๋ น์–ด๊ฐ€ 32Bit ํ•˜๋‚˜์˜ Word๋กœ ๊ตฌ์„ฑ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. 8086์˜ ๊ฒฝ์šฐ์—” ๋ช…๋ น์–ด์— ๋”ฐ๋ผ 1๋ฐ”์ดํŠธ ๋ช…๋ น๋ถ€ํ„ฐ 5๋ฐ”์ดํŠธ๊นŒ์ง€ ์žˆ๋‚˜์š”? ๊ทธ๋Ÿฐ๋ฐ, ARM7์€ ๋ชจ๋“  ๋ช…๋ น์–ด๋ฅผ ํ•œ ์›Œ๋“œ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ผ๋‹จ์€ ๋ช…๋ น์–ด์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋ช‡ ์•ˆ๋˜๊ณ , ์ฃผ์†Œ๋Š” ์ƒ๋Œ€์ฃผ์†Œ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉฐ, ์‹ฌ์ง€์–ด๋Š” Immediate ์ƒ์ˆ˜ ๊ฐ’๋„ 32๋น„ํŠธ ๊ฐ’์€ ๊ทธ๋Œ€๋กœ ๋„ฃ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. 

๋ฌด์Šจ ์ด์•ผ๊ธฐ์ธ๊ฐ€ ํ•˜๋ฉด, ๋งŒ์•ฝ r0์— 32๋น„ํŠธ ์ƒ์ˆ˜๋ฅผ ๋„ฃ๊ณ  ์‹ถ๋‹ค๋ฉด, ๋ช‡๋ช‡ ์˜ˆ์™ธ๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ๋ฏธ๋ฆฌ ๋„ฃ์–ด๋‘๊ณ  ํ•ด๋‹น ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ƒ๋Œ€ ์ฃผ์†Œ๋กœ ์ฐธ์กฐํ•ด์„œ ์–ป์–ด ์™€์•ผ ํ•œ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค. 

์—ญ์‹œ ์žฅ๋‹จ์ ์ด ์žˆ๊ฒ ์ง€๋งŒ, ์žฅ์ ์œผ๋กœ๋Š” ๋ชจ๋“  ๋ช…๋ น์–ด๋ฅผ ๊ฐ™์€ ์‚ฌ์ด์ฆˆ๋กœ ์ฒ˜๋ฆฌํ•จ์— ๋”ฐ๋ผ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌํ˜„์ด ์šฉ์ดํ•˜๋‹ค๋Š” ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ช…๋ น์–ด ํ•ด์„๊ธฐ๋ฅผ ์„ค๊ณ„ํ•  ๊ฒฝ์šฐ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ถ€๋ถ„์ด ์—†์œผ๋ฏ€๋กœ, ์‰ฝ๊ณ  ๊ณ ์†์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒ ์ง€์š”. ๋‹จ์ ์€ ์•ž์—์„œ๋„ ๊ฐ„๋‹จํžˆ ์–ธ๊ธ‰ํ–ˆ์ง€๋งŒ ์ฝ”๋”ฉ ์‹œ์— ๋ช‡๋ช‡ ์ œํ•œ์ด ๋”ฐ๋ฅธ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. ์ƒ๋Œ€ ์ฃผ์†Œ ์ง€์ • ๋ฐฉ์‹์€, ์ด๋•Œ ์‚ฌ์šฉํ•˜๋Š” Offset์ด 24+2=26 ๋น„ํŠธ์ด๋ฏ€๋กœ, ์ƒ๋Œ€์ฃผ์†Œ๋ผ๊ณ ๋Š” ํ•˜์ง€๋งŒ ๊ฑฐ์˜ ๋ถˆํŽธ์ด ์—†๊ณ , ๋‹ค๋งŒ Immediate ์˜คํผ๋žœ๋“œ๋ฅผ ์ง€์ •ํ•  ๊ฒฝ์šฐ์— ์ข€ ๋ฒˆ๊ฑฐ๋กญ๋‹ค๋Š” ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ 8๋น„ํŠธ์˜ ํ•ด์ƒ๋„๋ฅผ ๊ฐ€์ง€๋Š” ์˜คํผ๋žœ๋“œ๋ผ๋ฉด ํ•œ ์›Œ๋“œ ๋‚ด์—์„œ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค์‹œ ๋ง์”€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. 

ARM ๋ช…๋ น์–ด์˜ ๋‹ค๋ฅธ ํŠน์ง•์œผ๋กœ๋Š” ๋ชจ๋“  ๋ช…๋ น์–ด๋ฅผ ์กฐ๊ฑด์ ์œผ๋กœ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ €์˜ ๊ฒฝ์šฐ์—” ์ด ๋ถ€๋ถ„์—์„œ ๋Œ€๋‹จํžˆ ๊ฐ๋ช…์„ ๋ฐ›์•˜๋Š”๋ฐ์š” ์˜ˆ๋ฅผ ๋“ค์–ด, 8086์—์„œ๋Š” jz, jc ์™€ ๊ฐ™์€ ์ ํ”„ ๋ช…๋ น์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์˜๋ฏธ๋Š” ์ œ๋กœ ํ”Œ๋ž˜๊ทธ๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ์œผ๋ฉด ์ ํ”„๋ฅผ ํ•ด๋ผ, ํ˜น์€ ์บ๋ฆฌ ํ”Œ๋ž˜๊ทธ๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ์œผ๋ฉด ์ ํ”„๋ฅผ ํ•ด๋ผ.. ๋ผ๋Š” ์˜๋ฏธ์ž„์„ ์•„์‹ค ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ƒฅ ๋ฌด์กฐ๊ฑด ์ ํ”„์˜ ๊ฒฝ์šฐ์—” jmp๋ฅผ ์“ฐ์ง€์š”. 

ARM์˜ ๊ฒฝ์šฐ์—” ๊ทธ๋Ÿฐ ํ”Œ๋ž˜๊ทธ์˜ ์‚ฌ์šฉ์ด ์ ํ”„๋ช…๋ น์— ๊ตญํ•œ๋˜์ง€ ์•Š๊ณ , ์˜ˆ์™ธ ์—†์ด ๋ชจ๋“  ๋ช…๋ น์–ด์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

ex) BEQ jmp_1 ; Branch if Z flag set to jmp_1

MOVEQ r0,r1 ; r0 := r1 if Z flag set... 

์œ„์˜ ๊ฒฝ์šฐ๋ฅผ ๋ณด์‹œ๋ฉด jmp์— ํ•ด๋‹นํ•˜๋Š” B๋ช…๋ น๋ฟ๋งŒ ์•„๋‹ˆ๋ผ MOV ์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ ์ „์†ก๋ช…๋ น์—๋„ ํ”Œ๋ž˜๊ทธ ์˜ต์…˜์„ ์‚ฌ์šฉํ–ˆ์Œ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๊ธฐ๋Šฅ์˜ ์žฅ์ ์€ ์ž ๊น๋งŒ ์ƒ๊ฐํ•ด ๋ณด์•„๋„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด C ์—ฐ์‚ฐ์ž ์ค‘์— ? ์—ฐ์‚ฐ์ž๋ฅผ ์ปดํŒŒ์ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ด ๋ด…์‹œ๋‹ค.

 

ex) a=(b==c) ? d:e;

(ํŽธ์˜์ƒ ๋ณ€์ˆ˜๋ฅผ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ๋ฐ”๊พธ์–ด ์ƒ๊ฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.) 

CMPS r2,r3

MOVEQ r1,r4

MOVNE r1,r5 

์•„์ง ๋ช…๋ น์–ด๋ฅผ ์•ˆ ๋‹ค๋ฃจ์—ˆ์œผ๋ฏ€๋กœ ๋Œ€์ถฉ ์˜๋ฏธ๋Š” ์ถ”์ธก ํ•ด ๋ณด์„ธ์š”. 8086์ด๋ž‘ ๋Œ€์ถฉ์€ ๋น„์Šทํ•˜๋‹ˆ๊นŒ ์–ด๋ ค์šด ์ผ์€ ์•„๋‹ ๊ฒƒ์ž…๋‹ˆ๋‹ค. r2์™€ r3๋ฅผ ๋น„๊ตํ•ด์„œ, ๊ทธ ๊ฒฐ๊ณผ๊ฐ€ ๊ฐ™๋‹ค๋ฉด r1์— r4๋ฅผ ๋„ฃ๊ณ , ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด r1์— r5๋ฅผ ๋„ฃ๋Š” ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๊ฐ™์€ ์ผ์„ 8086๋“ฑ์—์„œ ํ•˜๋ ค๋ฉด ์ ํ”„ ๋ช…๋ น์ด ํ•œ ๊ฐœ ์ด์ƒ์€ ๋“ค์–ด๊ฐ€์•ผ ํ•˜๊ฒ ์ฃ . 

๋‹ค์‹œ ํ•œ๋ฒˆ ๊ฐ•์กฐํ•˜์ง€๋งŒ ARM7์—์„œ๋Š” ์ด์™€ ๊ฐ™์€ ์กฐ๊ฑด ์˜ต์…˜์„ ๋ชจ๋“ (!) ๋ช…๋ น์–ด์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๋ชจ๋“  OP ์ฝ”๋“œ์˜ ์ƒ์œ„ 4๋น„ํŠธ๋Š” ์ด๋Ÿฐ ์กฐ๊ฑด์˜ต์…˜์„ ๋‚˜ํƒ€๋‚ด๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋น„ํŠธ์ž…๋‹ˆ๋‹ค. ๊ฐ ์กฐ๊ฑด์— ์‚ฌ์šฉ๋˜๋Š” ์ ‘๋ฏธ์‚ฌ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. 

0 EQ Z Set equal

1 NE Z Clear not equal

2 CS C Set unsigned higher or same

3 CC C Clear unsigned lower

4 MI N Set negative

5 PL M Clear positive or zero

6 VS V Set overflow

7 VC V Clear no overflow

8 HI C Set and Z Clear unsigned higher

9 LS C Clear or Z Set unsigned lower or same

10 GE N Set and V Set or greater or equal

N Clear and V Clear

11 LT N Set and V Clear or less than

N clear and V set

12 GT Z clear and greater than

ether N set and V set or

N Clear and V clear

13 LE Z Set or less than or equal

N set and V clear or

N clear and V set

14 AL always

15 NV never 

๋’ท๋ถ€๋ถ„์— ๊ฐ€์„œ๋Š” ๋ฌด์ง€ ๋ณต์žกํ•˜์ฃ ? ์ €๋„ ์น˜๋ฉด์„œ ์ด๊ฑธ ๊ผญ ์ณ์•ผ ํ•  ํ•„์š”๊ฐ€ ์žˆ์„๊นŒ ์ƒ๊ฐ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค๋งŒ, ์ด์™• ์‹œ์ž‘ํ•˜๋Š” ๊ฑฐ.. ํ•˜๋ฉด์„œ ๋‹ค ์ณค๊ตฐ์š”. ์ž์„ธํ•˜๊ณ  ์ •ํ™•ํ•œ ๋‚ด์šฉ์€ ๋‹ค๋ฅธ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์‹œ๊ธธ ๋ฐ”๋ผ๊ณ  ์—ฌ๊ธฐ์„œ๋Š” ๊ทธ๋ƒฅ ์ด๋Ÿฐ ๊ฒƒ๋“ค์ด ์žˆ๊ตฌ๋‚˜ ํ•˜๋Š” ์ •๋„๋งŒ ์•Œ์•„๋‘์„ธ์š”. 

๋‹ค์Œ์œผ๋กœ ๋ง์”€๋“œ๋ฆด ๋ช…๋ น์–ด์˜ ํŠน์ง•์€ ๋Œ€๋ถ€๋ถ„์˜ ๋ช…๋ น์–ด์— S๋ผ๋Š” ์ ‘๋ฏธ์‚ฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”Œ๋ž˜๊ทธ ๋ ˆ์ง€์Šคํ„ฐ์— ์˜ํ–ฅ์„ ์ค„์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํŠนํžˆ ์—ฐ์‚ฐ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•  ๋•Œ 'S'๋ฅผ ๋ถ™์ด๋ฉด ํ•ด๋‹น ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ์„œ ํ”Œ๋ž˜๊ทธ ๊ฐ’๋“ค์ด ๋ณ€ํ•˜๊ฒŒ ๋˜๊ณ , ๋ถ™์ด์ง€ ์•Š์œผ๋ฉด ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 8086์—์„œ๋Š” ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ํ•ญ์ƒ ํ”Œ๋ž˜๊ทธ ๊ฐ’์ด ์˜ํ–ฅ์„ ๋ฐ›์ฃ ? ์—ฌ๊ธฐ์„œ๋Š” ๋ฐ›์ง€ ์•Š๊ฒŒ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ์ ์„ ๋ง์”€๋“œ๋ ธ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ช…๋ น์–ด์˜ ์„ธ๋ถ€์‚ฌํ•ญ์„ ์ฐธ์กฐํ•˜์„ธ์š”. 

๋ช…๋ น์–ด์˜ ํŠน์ง•์„ ๋ง์”€๋“œ๋ฆฌ๋Š” ์ค‘์ธ๋ฐ, ์•ž์œผ๋กœ๋„ ์˜คํผ๋žœ๋“œ ์‚ฌ์šฉ ๋“ฑ์— ๋Œ€ํ•ด ๋ง์”€๋“œ๋ฆด ๊ฒƒ์ด ๋งŽ์ด ๋‚จ์•„์žˆ๋„ค์š”... ๊ทธ๋Ÿฐ๋ฐ ๋ถ„๋Ÿ‰์€ ์ ์  ๋Š˜์–ด๋‚˜๊ณ ... 

ARM์€ ์ง€๊ธˆ ๋ง์”€๋“œ๋ฆฌ๋Š” ๊ทœ์น™๋“ค์ด ๊ฑฐ์˜ ์˜ˆ์™ธ ์—†์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ช…๋ น์–ด๊ฐ€ ๊ฐ„๋‹จํ•œ ๋Œ€์‹  ์˜ต์…˜์ด ๋งŽ๊ฑฐ๋“ ์š”...๊ทธ๋ฆฌ๊ณ  ์ง€๊ธˆ ๊ทธ ์˜ต์…˜ ๋‘ ๊ฐ€์ง€๋ฅผ ๋ง์”€๋“œ๋ ธ๊ณ ์š”. 

์˜ค๋Š˜์€ ๊ทธ๋ƒฅ ๋๋‚ด๊ธฐ๋Š” ์„œ์šดํ•˜๋‹ˆ๊นŒ ์ ํ”„ ๋ช…๋ น ํ•˜๋‚˜๋งŒ ๋ง์”€๋“œ๋ฆฌ๊ณ  ๋งˆ์น˜๊ฒ ์Šต๋‹ˆ๋‹ค. 

โ— Branch and Branch with link (B, BL) 

+------------------------------------------------------------------+

| Cond | 101 | L | |

+------------------------------------------------------------------+

 

Cond ๋ถ€๋ถ„์€ ์œ„์—์„œ ๋ง์”€๋“œ๋ฆฐ ์กฐ๊ฑด ์˜ต์…˜์ž…๋‹ˆ๋‹ค. 101์€ B ๋ช…๋ น ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. 

L ๋ถ€๋ถ„์€ 1์ผ ๊ฒฝ์šฐ BL ์ด ๋˜๋Š” ๊ฒƒ์ด๊ณ  0์ด๋ฉด B ๋ช…๋ น์ž…๋‹ˆ๋‹ค. B๋Š” JMP๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋˜๊ณ , BL์€ CALL๋กœ ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ BL์˜ ๊ฒฝ์šฐ์—” PC๊ฐ’์„ ์Šคํƒ์— ๋„ฃ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ r14(lr)์— ๋„ฃ๋Š”๋‹ค๋Š” ๊ฒƒ์ด ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋จธ์ง€ ํ•˜์œ„ 24๋น„ํŠธ๊ฐ€ Offset์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š”๋ฐ, ARM7์€ ๋ชจ๋“  ๋ช…๋ น์–ด๋“ค์ด Word๋‹จ์œ„์ด๋ฏ€๋กœ ์ด +/- 32๋ฉ”๊ฐ€ ๋ฐ”์ดํŠธ ์˜์—ญ์„ ์ปค๋ฒ„ํ•ฉ๋‹ˆ๋‹ค. 

์ข€ ์–ด์ˆ˜์„ ํ•œ ๋Š๋‚Œ์ž…๋‹ˆ๋‹ค๋งŒ. ์˜ค๋Š˜์€ ์ด๋งŒ.

--------------------------------------------------------------------

ARM7 ๊ฐ•์ขŒ [8] : Instruction Set (2)

-------------------------------------------------------------------- 

์ด๋ฒˆ ๊ฐ•์ขŒ์—์„œ๋Š” ๋ฐ์ดํ„ฐ ํ”„๋กœ์„ธ์‹ฑ ๋ช…๋ น์— ๋Œ€ํ•ด ๋‹ค๋ฃจ๋ ค ํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ช…๋ น์€ ARM7์˜ 50%์ •๋„์— ํ•ด๋‹นํ•˜๋Š” ๋ช…๋ น์ž…๋‹ˆ๋‹ค. ์‹ค์ œ ๊ฐœ์ˆ˜๋Š” 16๊ฐœ์ด๊ณ , ์—ฐ์‚ฐ๋ช…๋ น๊ณผ ๋น„๊ต๋ช…๋ น, ๋น„ํŠธ ์—ฐ์‚ฐ๋ช…๋ น, ๋ฐ์ดํ„ฐ ์ „์†ก ๋ช…๋ น ๋“ฑ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. 

โ— Data Processing Instruction 

๋ฐ์ดํ„ฐ ์ „์†ก๋ช…๋ น์˜ ํ˜•์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. 

+--------------------------------------------------------------------+

| Cond | 00 | I | OpCode | S | Rn | Rd | Operland 2 |

+--------------------------------------------------------------------+

4 2 1 4 1 4 4 12 

์ „์— ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ๋ชจ๋“  ์ธ์ŠคํŠธ๋Ÿญ์…˜์˜ ํฌ๊ธฐ๋Š” 32 Bit ์ž…๋‹ˆ๋‹ค. ์œ„์˜ ๊ทธ๋ฆผ์—์„œ ์ˆซ์ž๋Š” ํ•ด๋‹น ํ•„๋“œ์˜ ๋น„ํŠธ ์ˆ˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. 

1) <Cond> [31:28] 4 Bit 

ํ•ด๋‹น ๋ช…๋ น์˜ ์กฐ๊ฑด ์‹คํ–‰ ํ”Œ๋ž˜๊ทธ์ž…๋‹ˆ๋‹ค. ์ง€๋‚œ ๊ฐ•์ขŒ์—์„œ ์–ธ๊ธ‰ํ–ˆ์—ˆ๋˜ ๋ถ€๋ถ„์ธ๋ฐ, ๋ชจ๋“  ๋ช…๋ น์–ด์— ํฌํ•จ๋˜๋ฏ€๋กœ ๋ฐ์ดํ„ฐ ํ”„๋กœ์„ธ์‹ฑ ๋ช…๋ น์—๋„ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

ํ˜น์‹œ๋‚˜ ํ•ด์„œ ๋‹ค์‹œ ๋ง์”€๋“œ๋ฆฌ๋Š”๋ฐ, ํ•ด๋‹น ํ”Œ๋ž˜๊ทธ๋ฅผ ํ†ตํ•ด ๋ช…๋ น์„ ํ˜„์žฌ ํ”Œ๋ž˜๊ทธ ๋ ˆ์ง€์Šคํ„ฐ(CPSR)์˜ ์ƒํƒœ์— ๋”ฐ๋ผ ์‹คํ–‰ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํ”Œ๋ž˜๊ทธ์ž…๋‹ˆ๋‹ค. 

2) <I> [25] 1 Bit 

Operland 2๋กœ ์ง€์ •๋˜์–ด ์žˆ๋Š” ๋ถ€๋ถ„์ด Immediate Operand ์ธ์ง€ ์•„๋‹Œ์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋น„ํŠธ์ž…๋‹ˆ๋‹ค. Immediate Operand๋ผ ํ•จ์€, ์˜ˆ๋ฅผ ๋“ค์–ด 8086์—์„œ MOV AX,01234h ๋ผ๊ณ  ํ–ˆ์„ ๊ฒฝ์šฐ, 1234h๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ง์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Operland2๋ฅผ ์„ค๋ช…ํ•˜๋ฉด์„œ ์ž์„ธํžˆ ๋‹ค๋ฃจ๊ฒ ์Šต๋‹ˆ๋‹ค. 

3) <OpCode> [24:21] 4 Bit 

๋ฐ์ดํ„ฐ ํ”„๋กœ์„ธ์‹ฑ ๋ช…๋ น ์ค‘ ์–ด๋–ค ๋ช…๋ น์ธ์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ•„๋“œ์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ํ•„๋“œ์™€ ๋ช…๋ น์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. 

<OpCode> Instruction Description

-----------------------------------------------------

0000 AND Rd:=Op1 AND Op2

0001 EOR Rd:=Op1 XOR Op2

0010 SUB Rd:=Op1 - Op2

0011 RSB Rd:=Op2 - Op1

0100 ADD Rd:=Op1 + Op2

0101 ADC Rd:=Op1 + Op2 + C

0110 SBC Rd:=Op1 - Op2 + C - 1

0111 RSC Rd:=Op2 - Op1 + C - 1

1000 TST Op1 AND Op2 -> CPSR

1001 TEQ Op1 XOR Op2 -> CPSR

1010 CMP Op1 - Op2 -> CPSR

1011 CMN Op1 + Op2 -> CPSR

1100 ORR Rd:=Op1 OR Op2

1101 MOV Rd:=Op2

1110 BIC Rd:=Op1 AND (NOT Op2)

1111 MVN Rd:=NOT Op2 

๋ช…๋ น์–ด๋“ค์˜ ๊ฐ„๋‹จํ•œ ์„ค๋ช…๋งŒ์œผ๋กœ๋„ ์–ด๋Š ์ •๋„๋Š” ์ดํ•ดํ•  ์ˆ˜ ์žˆ์œผ๋ฆฌ๋ผ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ฐ๊ฐ์˜ ๋ช…๋ น์— ๋Œ€ํ•ด์„œ๋Š” ์ž์„ธํžˆ ๋‹ค๋ฃจ์ง€ ์•Š๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ์˜ˆ์ œ๋ฅผ ๋ณด์‹œ๊ณ  ์ดํ•ดํ•  ์ •๋„๋ผ๋ฉด ์กฑํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. 

4) <S> [20] 1 Bit 

S ๋น„ํŠธ๊ฐ€ 1์ธ ๊ฒฝ์šฐ๋Š” ๋ฐ์ดํ„ฐ ํ”„๋กœ์„ธ์‹ฑ ๋ช…๋ น์˜ ๊ฒฐ๊ณผ๊ฐ€ CPSR(ํ”Œ๋ž˜๊ทธ๋ ˆ์ง€์Šคํ„ฐ)์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ์ฆ‰, 0์ธ ๊ฒฝ์šฐ์—๋Š” CPSR์€ ๋ณ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 

5) <Rn> [19:16] 4 Bit 

ARM ๋ฐ์ดํ„ฐ ํ”„๋กœ์„ธ์‹ฑ ๋ช…๋ น์€ ๊ทธ ๊ฒฐ๊ณผ์™€ ์ฒซ ๋ฒˆ์งธ ์˜คํผ๋žœ๋“œ๋Š” ํ•ญ์ƒ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Rn์€ ์ฒซ ๋ฒˆ์งธ ์˜คํผ๋žœ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒƒ์œผ๋กœ ์œ„์—์„œ Op1์œผ๋กœ ํ‘œ๊ธฐํ•œ ๊ฒƒ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ARM์—์„œ ํ•œ๋ฒˆ์— ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ๋Š” sp, lr, pc ๋“ฑ์„ ํฌํ•จํ•ด์„œ r0์—์„œ r15๊นŒ์ง€๋ผ๊ณ  ๋ง์”€ ๋“œ๋ ธ์Šต๋‹ˆ๋‹ค. ์ฆ‰, 4Bit๋ฅผ ํ†ตํ•ด ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ํ•„๋“œ๋Š” ๋ช…๋ น์— ๋”ฐ๋ผ ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. MOV๋‚˜ MVN๋“ฑ์ด ์ด์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. 

6) <Rd> [15:12] 4 Bit 

์˜คํผ๋ ˆ์ด์…˜์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ €์žฅ๋  ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์—ญ์‹œ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋ฏ€๋กœ 4๋น„ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋ชจ๋“  ๋ช…๋ น์—์„œ ๋””ํดํŠธ๋กœ ์‚ฌ์šฉ๋˜๋Š” ํ•„๋“œ์ž…๋‹ˆ๋‹ค. ๋ง์”€๋“œ๋ ธ๋“ฏ์ด ARM์˜ ๋ฐ์ดํ„ฐ ํ”„๋กœ์„ธ์‹ฑ ๋ช…๋ น์˜ ๊ฒฐ๊ณผ๋Š” ํ•ญ์ƒ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค. 

7) Operand 2 [11:0] 12 Bit 

๋“œ๋””์–ด ์˜ค๋Š˜์˜ ๊ฐ€์žฅ ํ—˜๋‚œํ•œ ์‚ฐ์ธ Operand 2 ํ•„๋“œ๊นŒ์ง€ ์™”๊ตฐ์š”. ์„ค๋ช… ๋“œ๋ ค์•ผ ํ•  ๋ถ€๋ถ„์ด ์ข€ ๋งŽ๊ฑฐ๋“ ์š”. ์–ด๋–ป๊ฒŒ ์„ค๋ช…์„ ๋“œ๋ ค์•ผ ํ• ์ง€, ๋ง‰๋ง‰ํ•˜๊ธด ํ•˜์ง€๋งŒ, ์šฉ๊ธฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์ฐจ๊ทผ์ฐจ๊ทผ ์„ค๋ช…ํ•ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 

โ— ๋ฐ์ดํ„ฐ ํ”„๋กœ์„ธ์‹ฑ ๋ช…๋ น์˜ Operand 2 ํ•„๋“œ 

์˜คํผ๋žœ๋“œ 2์˜ ์˜๋ฏธ ์ž์ฒด๋Š” ๋ณ„๊ฒŒ ์•„๋‹™๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๋‹ค๋“ค ์•„์‹œ๊ฒ ์ง€๋งŒ, ALU์— ์—ฐ์‚ฐ๋ช…๋ น์„ ๋‚ด๋ฆด ๊ฒฝ์šฐ ํ•œ ์ชฝ ์ž…๋ ฅ์€ ์˜คํผ๋žœ๋“œ 1, ๋‹ค๋ฅธ ์ชฝ์€ ์˜คํผ๋žœ๋“œ 2 ๊ทธ๋ฆฌ๊ณ , ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๊ณ ... ์•ž์„œ ์„ค๋ช…ํ•œ ๋‚ด์šฉ์— ์˜๊ฑฐํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œํ˜„ ํ•  ์ˆ˜ ์žˆ๊ฒ ์ฃ ? 

Op1(Rn) Operand 2

-------------- ---------

| | / /

| | / /

| | / /

| /

| ALU /

| /

| /

----------------

Rd 

์˜ˆ๋ฅผ ๋“ค์–ด AND r1,r2,r3๋ผ๋Š” ๋ช…๋ น์—์„œ Rd = r1 ์ด๊ณ  Rn=r2 ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  r3๊ฐ€ Operand2์— ํ•ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„์ด ๋˜๊ฒ ์ฃ . ์˜๋ฏธ๋Š” r1=r2 & r3 ๋ผ๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. 

์—ฌ๊ธฐ์„œ ์„ค๋ช…ํ•˜๊ณ ์ž ํ•˜๋Š” ARM7์˜ ๋ฐ์ดํ„ฐ ํ”„๋กœ์„ธ์‹ฑ ๋ช…๋ น์˜ Operand2์˜ ํƒ€์ž…์€ ๋‘ ๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. <I> ํ•„๋“œ์˜ ๋‚ด์šฉ์— ๋”ฐ๋ผ ๊ตฌ๋ถ„์ด ๋˜๋Š”๋ฐ, Immediate Operand ํ˜น์€ ๋ ˆ์ง€์Šคํ„ฐ Operand์ž…๋‹ˆ๋‹ค. 

1) Register Operand 

<I> ํ•„๋“œ๊ฐ€ 0์ผ ๊ฒฝ์šฐ์—” Op2๊ฐ€ ๋ ˆ์ง€์Šคํ„ฐ์ž„์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•„์‹œ๋‹ค์‹œํ”ผ 4๋น„ํŠธ๋งŒ ์žˆ์œผ๋ฉด ๋˜์ฃ ? ๊ทธ๋Ÿฐ๋ฐ Op2๋ฅผ ์œ„ํ•œ ๋น„ํŠธ ์ˆ˜๋Š” ์ด 12 ๋น„ํŠธ์ž…๋‹ˆ๋‹ค. ๋‚จ๋Š”๊ตฐ์š”. 

๊ตฌ์ฒด์ ์œผ๋กœ ๋ ˆ์ง€์Šคํ„ฐ ์˜คํผ๋žœ๋“œ2์˜ ํ˜•์‹์„ ๋ณด์—ฌ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. 

+----------------------------------------------+

| Shift [11:4] | Rm [3:0] |

+----------------------------------------------+ 

์œ„์˜ ๊ทธ๋ฆผ์„ ๋ณด์‹œ๋ฉด Rm์ด๋ผ๊ณ  ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ง€์ •ํ•˜๋Š” 4๋น„ํŠธ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด Shift ๋ถ€๋ถ„์€ ๋ญ˜๊นŒ์š”? 

๊ฐ•์ขŒ์˜ ์•ž๋ถ€๋ถ„์—์„œ ์–ธ๊ธ‰ํ–ˆ๋‚˜์š”? ๋ฌด์Šจ Shift๊ฐ€ ALU์˜ ํ•œ์ชฝ์— ๋‹ฌ๋ ค ์žˆ๋‹ค๊ณ . ๊ฒฐ๋ก ์ ์œผ๋กœ๋Š” ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ALU๋กœ ๊ทธ๋ƒฅ ์ง‘์–ด๋„ฃ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ Shifter๋ฅผ ํ†ตํ•ด์„œ ๋„ฃ์–ด์ฃผ๋„๋ก ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, Shift๋ผ๋Š” ํ•„๋“œ๋Š” (8๋น„ํŠธ์ฃ ?) ๊ทธ๋Ÿฐ ์—ญํ• ์„ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๊ฒ ๊ตฐ์š”. ๊ทธ๋Ÿผ ์™œ 8๋น„ํŠธ์ผ๊นŒ์š”? ์—ฌ๊ธฐ์„œ ๋‹ค์‹œ ํ•œ๋ฒˆ Shift๋ฅผ ๊ตฌ์ฒด์ ์œผ๋กœ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 

์šฐ์„  ๊ทธ์ „์— Shift ํ•„๋“œ์—๋Š” Shift ํšŒ์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ, ์ฒซ ์งธ๋Š” Shift ํ•„๋“œ ์•ˆ์— ๊ทธ ํšŒ์ˆ˜๋ฅผ ํฌํ•จ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์ด๊ณ , ๋‘ ๋ฒˆ ์งธ๋Š” Shift ํšŒ์ˆ˜๊ฐ€ ๋“ค์–ด์žˆ๋Š” ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ Shift ํ•„๋“œ ์•ˆ์—์„œ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ์ž๊พธ ๋Š˜์–ด๊ฐ€๋Š”๊ตฐ์š”. ํ•ด๋‹น ํƒ€์ž… ๋‘ ๊ฐ€์ง€๋Š” Shift ํ•„๋“œ์˜ ์ตœํ•˜์œ„ ๋น„ํŠธ์ธ 4๋ฒˆ ๋น„ํŠธ์— ๋”ฐ๋ผ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ๊ทธ๋ฆผ์„ ๊ทธ๋ ค๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 

+-------------------+ +-------------------+

| count |type | 0 | | Rs | 0 |type | 1 |

+-------------------+ +-------------------+

5 2 1 4 1 2 1 

์ตœํ•˜์œ„ ๋น„ํŠธ์˜ ๊ฐ’์ด 0์ด๋ƒ 1์ด๋ƒ์— ๋”ฐ๋ผ ๋‘ ๊ฐ€์ง€๋กœ ๊ตฌ๋ถ„์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์™ผ์ชฝ์˜ ๊ฒฝ์šฐ๊ฐ€ ์ง์ ‘ Shift ํšŒ์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ, count ๋ถ€๋ถ„์ด ์ด 5 ๋น„ํŠธ๋กœ์„œ ๊ทธ ๊ฐ’์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ARM7์˜ ๋ ˆ์ง€์Šคํ„ฐ๋Š” 32๋น„ํŠธ์ด๋ฏ€๋กœ 5๋น„ํŠธ๋Š” ์žˆ์–ด์•ผ Shift ํšŒ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒ ์ง€์š”. 

๊ทธ๋Ÿฌ๋ฉด Type์€ ๋ญ˜๊นŒ์š”? 2๋น„ํŠธ์ธ Type์˜ ์˜๋ฏธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. 

00 : logical left (LSL)

01 : logical right (LSR)

10 : arithmetic right (ASR)

11 : rotate right (ROR) 

๊ทธ๋ ‡๊ตฐ์š”. ๋‹จ์ˆœํžˆ Shift๋ผ๊ณ  ๋ง์”€๋“œ๋ ธ์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ์ขŒ, ์šฐ, ๋ถ€ํ˜ธ์˜ ์—ฌ๋ถ€์™€ Rotate๊นŒ์ง€ ํ˜•์‹์„ ์ง€์ •ํ•  ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. (๋ฌด์ง€ ๋ณต์žกํ•ด์ง€๋Š” ๋“ฏํ•œ ๋Š๋‚Œ์ž…๋‹ˆ๋‹ค.^^) 

์˜ค๋ฅธ์ชฝ์— ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐฉ์‹์€, 1๋น„ํŠธ๊ฐ€ ๋‚จ์•„์„œ 0์œผ๋กœ ์ฒ˜๋ฆฌํ•œ ๊ฒƒ๋งŒ ์ œ์™ธํ•˜๊ณ ๋Š” ๋ณ„ ๋ฌธ์ œ๊ฐ€ ์—†๊ฒ ์ฃ ? 

์›๋ž˜๋Š” ์—ฌ๊ธฐ์„œ ์‰ฌํ”„ํŠธ ๋ฐฉ์‹ 4๊ฐ€์ง€์— ๋Œ€ํ•œ ์„ค๋ช…์ด ๋’ค๋ฅผ ์ด์–ด์•ผ ํ•˜๊ฒ ์ง€๋งŒ. ์ด๋Ÿฌ๋‹ค ๋ณด๋ฉด ํ•œ๋„ ๋๋„ ์—†์„ ๊ฒƒ ๊ฐ™๋„ค์š”. 

2) Immediate Operand 

๊ฐ•์ขŒ๋ฅผ ์ •๋ฆฌํ•˜๋ ค๋‹ค ์ƒ๊ฐํ•˜๋‹ˆ Immediate Operand๋ฅผ ์„ค๋ช… ์•ˆํ–ˆ๊ตฐ์š”. ์—ฌ๊ธฐ๊นŒ์ง€๋Š” ํ•ด์•ผํ•  ๊ฒƒ ๊ฐ™์•„์„œ. 

๋ ˆ์ง€์Šคํ„ฐ ์˜คํผ๋žœ๋“œ์˜ ๊ฒฝ์šฐ ์ด 12 ๋น„ํŠธ ์ค‘์—์„œ 4๋น„ํŠธ๋Š” ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ง€์ •ํ•˜๊ณ , ๋‚˜๋จธ์ง€ 8๋น„ํŠธ๋Š” ํ•ด๋‹น ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’์„ Shiftํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ง€์ •ํ•˜๋„๋ก ๋˜์–ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. 

Immediate ์˜คํผ๋žœ๋“œ๋Š” ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. 32๋น„ํŠธ ๋ ˆ์ง€์Šคํ„ฐ์— ๊ฐ’์„ ์จ๋„ฃ๊ณ  ์‹ถ์€๋ฐ ๊ณต๊ฐ„์€ 12๋น„ํŠธ ๋ฐ–์—๋Š” ์—†๋‹ค๋Š” ๊ฒƒ์ด์ง€์š”. 8086๋“ฑ์—์„œ๋Š” ๊ทธ๋ƒฅ ์—ฌ๋Ÿฌ ๋ฐ”์ดํŠธ๋กœ ๋ช…๋ น์„ ์ฒ˜๋ฆฌํ–ˆ์—ˆ์œผ๋‹ˆ ๊ทธ๋Ÿฐ ๋ฌธ์ œ๊ฐ€ ์—†์—ˆ์ง€๋งŒ, ARM์—์„œ๋Š” ์ด๊ฒƒ ๋•Œ๋ฌธ์— ๋ชจ๋“  ๋ช…๋ น์ด 32๋น„ํŠธ๋ผ๋Š” ๊ทœ์น™์„ ๊นฐ ์ˆ˜๋Š” ์—†์—ˆ๊ฒ ์ง€์š”. ๋‹ค์Œ์€ ๊ตฌ์ฒด์ ์ธ ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค. 

+----------------------------------------------------------------+

| Rotate [11:8] | Imm [7:0] |

+----------------------------------------------------------------+ 

์ด์ „๊ณผ ๋น„์Šทํ•œ ๋ชจ์–‘์ด๊ตฐ์š”. ์ด๋ฒˆ์—” Rotate ํ•„๋“œ(4๋น„ํŠธ)๊ฐ€ ์žˆ๊ณ , ๋˜ 8๋น„ํŠธ์˜ Immํ•„๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Imm์€ ๋ง ๊ทธ๋Œ€๋กœ Immediate Value๋ฅผ ๋„ฃ๋Š” ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค. ์ด ๊ณต๊ฐ„์ด 8๋น„ํŠธ๋ผ์„œ, ๊ฒฐ๊ตญ ARM7์—์„œ ์–ด๋–ค ์ƒ์ˆ˜ ๊ฐ’์„ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ์ „์†กํ•˜๊ฑฐ๋‚˜ ํ•  ๊ฒฝ์šฐ 8๋น„ํŠธ๊นŒ์ง€๋Š” ์•„๋ฌด๋Ÿฐ ๋ฌธ์ œ๊ฐ€ ์—†์ด ๋„ฃ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด Rotate ํ•„๋“œ์˜ ํ•˜๋Š” ์—ญํ• ์€ ๋ฌด์—‡์ผ๊นŒ์š”? 

์ข€ ๋ณต์žกํ•œ๋ฐ์š”... ARM7๋ฌธ์„œ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์จ ์žˆ์Šต๋‹ˆ๋‹ค. 

"Immediate Operand rotate ํ•„๋“œ๋Š” ๋ถ€ํ˜ธ ์—†๋Š” 4๋น„ํŠธ ์ •์ˆ˜๋กœ์„œ 8๋น„ํŠธ Immediate ๊ฐ’์— Shift ์˜คํผ๋ ˆ์ด์…˜์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์‚ฌ์šฉ๋˜๋Š” ๊ฐ’์ด๋‹ค. rotateํ•„๋“œ *2 ๊ฐ’๋งŒํผ 8Bit Immediate Value ๊ฐ’์„ Right Rotate ์‹œํ‚จ๋‹ค. ๊ฒฐ๊ตญ 8๋น„ํŠธ ๊ฐ’์„ 32๋น„ํŠธ๋กœ ํ™•์žฅ์‹œํ‚ค๋Š” ์—ญํ• ์„ ํ•˜๋ฉฐ ์ด๋ฅผ ํ†ตํ•ด ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋งŽ์€ ์ƒ์ˆ˜๋“ค์„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•œ๋‹ค." 

8๋น„ํŠธ์˜ ๊ฐ’์ด ALU๋กœ ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— Shifter๋กœ ๋“ค์–ด๊ฐ€๋ฉด, ์ด๋ฏธ 32๋น„ํŠธ๋กœ ํ™•์žฅ์ด ๋ฉ๋‹ˆ๋‹ค. ์ดํ›„ ๊ทธ ๊ฐ’์„ ๊ทธ๋ƒฅ ์“ฐ๋ฉด 8๋น„ํŠธ ์˜์—ญ๋งŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ Rotateํ•„๋“œ ๊ฐ’์„ * 2 ํ•œ๋งŒํผ Rotate Right ์‹œํ‚จ๋‹ค ๊ทธ๋žฌ์œผ๋‹ˆ, ์–ด๋–ค ๋ณ€ํ™”๊ฐ€ ์ƒ๊ธฐ๊ฒ ์ฃ ? 

์˜ค๋Š˜ ๋ถ„๋Ÿ‰์ด ์ข€ ๋งŽ์•˜๋„ค์š”... ์ฐจ๊ทผ์ฐจ๊ทผ... ๋‹ด์— ๋˜ ๋ง์”€๋“œ๋ฆฌ์ฃ .. ๋ญ. ๋ช‡ ๊ฐ€์ง€ ์˜ˆ๋ฅผ ๋“ค์–ด ๋ณด์ด๋ฉด์„œ. ์˜ค๋Š˜ ๊ฐ•์ขŒ๋ฅผ ์ •๋ฆฌํ• ๊นŒ ํ•ฉ๋‹ˆ๋‹ค. 

ADDEQ r2,r4,r5 : ์ œ๋กœ ํ”Œ๋ž˜๊ทธ๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ๋‹ค๋ฉด r2=r4+r5

SUBS r4,r5,r7,LSR r2 : r4=r5-(r7>>r2) & effect CPSR

--------------------------------------------------------------------

ARM7 ๊ฐ•์ขŒ [9] : Instruction Set (3)

-------------------------------------------------------------------- 

์ง€๋‚œ๋ฒˆ ๊ฐ•์ขŒ๋ฅผ ์“ฐ๊ณ  ๋‚˜์„œ ์ด๊ฒƒ์ €๊ฒƒ ์ƒ๊ฐ์„ ํ•ด๋ดค๋Š”๋ฐ, ๋‚ด์šฉ์ด ์ข€ ์–ด๋ ต์ง€ ์•Š์•˜๋‚˜ ์‹ถ๋„ค์š”. ๋ช…๋ น ์ฝ”๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ์‹์€ ๋””์ง€ํ„ธ ์ชฝ์˜ ๊ธฐ์ดˆ ์ง€์‹๊ณผ ์–ด์…ˆ๋ธ”๋ฆฌ์— ๋Œ€ํ•œ ๋ณดํŽธ์ ์ธ ์ง€์‹์„ ๊ฐ–๊ณ  ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•์ด์–ด์„œ, ํ˜น ๊ทธ๋Ÿฐ ๊ธฐ๋ณธ์ง€์‹์ด ์—†์œผ์‹  ๋ถ„๋“ค์—๊ฒŒ๋Š” ๋”ฑ๋”ฑํ•˜๊ณ  ์–ด๋ ต๊ฒŒ ๋Š๊ปด์กŒ์„์ง€๋„ ๋ชจ๋ฅธ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ˜ผ์ž(?) ํ–ˆ์Šต๋‹ˆ๋‹ค. 

๊ฐ•์ขŒ์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์ด ์—†์–ด์„œ. ๊ทธ๋ƒฅ ๋‚˜๋ฆ„๋Œ€๋กœ ์ƒ๊ฐํ•˜๊ณ  ์“ฐ๊ณ  ์žˆ๋Š”๋ฐ์š”. ์ด๋Ÿด ๊ฒฝ์šฐ์—” ์ข€ ์–ด๋ ต๋˜์ง€. ๋ฐฉํ–ฅ์ด ํ‹€๋ฆฐ ๊ฒƒ ๊ฐ™๋‹ค ๋ผ๋Š” ์‹์˜ ์˜๊ฒฌ์„ ๋“ค์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ฐ•์ขŒ์˜ ๋ฐฉํ–ฅ์„ ์ •ํ•˜๋Š”๋ฐ ๋„์›€์ด ๋  ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. 

๊ทธ๊ฐ„ ๊ฐ•์ขŒ๋ฅผ ๋ณด์‹œ๊ณ  ARM์— ๊ด€ํ•œ ๋ช‡ ๊ฐ€์ง€ ์งˆ๋ฌธ๋“ค์„ ์ฃผ์‹  ๋ถ„๋“ค์ด ๊ณ„์‹ ๋ฐ์š”. ๋  ์ˆ˜ ์žˆ์œผ๋ฉด ๋‹ต๋ณ€์„ ํ•ด๋“œ๋ฆฌ๋ ค๊ณ  ๋…ธ๋ ฅ์ค‘์ด๊ณ , ๋˜ ๊ทธ๋ ‡๊ฒŒ ํ•จ์œผ๋กœ์จ ๋ณด๋žŒ๋„ ๋Š๋‚„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. 

์ œ email ์ฃผ์†Œ๋Š” zartoven@secsm.org์ž…๋‹ˆ๋‹ค. ๊ฐ•์ขŒ์— ๊ด€๋ จ๋œ ์˜๊ฒฌ์ด๋‚˜ ์งˆ๋ฌธ์ด ์žˆ์œผ์‹  ๋ถ„๋“ค์€ ํ•ด๋‹น ์ฃผ์†Œ๋กœ ์งˆ๋ฌธ์„ ์ฃผ์„ธ์š”. ์ œ๊ฐ€ ์–ด๋–ค ์‚ฌ๋žŒ์ธ์ง€์— ๋Œ€ํ•ด์„œ๋„ ๋ง์”€์„ ๋ชป ๋“œ๋ ธ๋Š”๋ฐ, ๋ชจ ์ „์žํšŒ์‚ฌ์—์„œ RTOS ์—…๋ฌด๋ฅผ ๋‹ด๋‹นํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์•„์ง๊นŒ์ง€๋Š” ์ฃผ๋กœ pSOS ๊ด€๋ จ์—…๋ฌด๋ฅผ ํ•˜๊ณ  ์žˆ๊ณ ์š”. ์ฒ˜์Œ์—๋Š” pSOS๊ด€๋ จ ๊ฐ•์ขŒ๋ฅผ ์šด์˜ํ•ด ๋ณผ๊นŒ ์ƒ๊ฐ๋„ ํ•ด ๋ดค์ง€๋งŒ, ๊ณผ์—ฐ ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๋ถ„๋“ค์ด pSOS๋ฅผ ์‚ฌ์šฉ ํ•˜์‹ค์ง€ ์˜๋ฌธ์ด ๋“ค์–ด์„œ ํฌ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ด€๋ จํ•ด์„œ ์ œ๊ฐ€ ์•Œ๋ ค๋“œ๋ฆด ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด ์•„๋Š” ํ•œ๋„ ๋‚ด์—์„œ ์ตœ๋Œ€ํ•œ ๋…ธ๋ ฅํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 

์˜ค๋Š˜์€ ์•ˆํ•˜๋˜ ์‚ฌ์„ค์„ ๊ธธ๊ฒŒ ๋Š˜์–ด๋†“์•˜๊ตฐ์š”. ์•„๋ฌด๋ž˜๋„ ์ง€๋‚œ ๊ฐ•์ขŒ์— ๋‹ค๋ฃจ์—ˆ๋˜ ๋‚ด์šฉ์ด ์ข€ ๋ถ€์‹คํ–ˆ๋˜ ๊ฒƒ ๊ฐ™์•„์„œ, ์˜ค๋Š˜์€ ์ข€ ๋‹ค๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹์œผ๋กœ ๋ช…๋ น์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ๋‹ค๋ฃจ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ž, ๊ทธ๋Ÿผ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 

์˜ค๋Š˜ ๋‹ค๋ฃฐ ๋‚ด์šฉ์€ ์ฃผ๋กœ "The ARM RISC Chip. A Programmer's Guide"๋ผ๋Š” ์ฑ…์˜ ๋‚ด์šฉ์„ ์œ„์ฃผ๋กœ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 

1) MOV{cond}{S} Rd,Op2

 

Assembler์—์„œ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก๋ช…๋ น์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ช…๋ น์€ 8086์—์„œ์˜ MOV, Z80์ด๋‚˜ 196์—์„œ์˜ LD ๋ช…๋ น๊ณผ ๊ฐ™์€ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์ฐจ์ด๋ผ๋ฉด ARM7์—์„œ์˜ MOV๋Š” ๊ทธ Target์ด ๋˜๋Š” ๋ถ€๋ถ„์ด ํ•ญ์ƒ ๋ ˆ์ง€์Šคํ„ฐ๋ผ๋Š” ์ ์ž…๋‹ˆ๋‹ค. 

์˜ˆ๋ฅผ ๋“ค์–ด 8086์—์„œ๋Š” MOV AX,[BX] ์˜ ํ˜•ํƒœ์™€ MOV AX, BX์™€ ๊ฐ™์€ ๋ช…๋ น์˜ ํ˜•ํƒœ๋ฅผ ๊ฐ™์€ MOV๋ช…๋ น์„ ํ†ตํ•ด ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค๋งŒ, ARM์—์„œ์˜ MOV๋Š” ํ›„์ž์˜ ๊ฒƒ๋งŒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋ ˆ์ง€์Šคํ„ฐ๋‚˜ Immediate ๊ฐ’ ๊ฐ™์€ ๊ฒƒ๋“ค์„ ๋ ˆ์ง€์Šคํ„ฐ์— ๋„ฃ๋Š” ๋ช…๋ น์ž…๋‹ˆ๋‹ค. 

์ „์ž์˜ ๊ฒฝ์šฐ์™€ ๊ฐ™์ด ์™ธ๋ถ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์•ก์„ธ์Šคํ•˜๋Š” ๋ช…๋ น์€ ๋”ฐ๋กœ ์žˆ๊ณ , ๋ถ„๋ฅ˜ ์ž์ฒด๋ฅผ ๋‹ค๋ฅด๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. 

์ œ๋ชฉ์— ์จ๋†“์€ ๊ฒƒ์€ MOV๋ช…๋ น์˜ ํ˜•์‹์ธ๋ฐ์š”. {cond}๋ถ€๋ถ„์€ ์ง€๋‚œ๋ฒˆ ๋ง์”€๋“œ๋ ธ๋˜ ์‹คํ–‰ ์กฐ๊ฑด์„ ์ œํ•œํ•˜๋Š” ์˜ต์…˜์ž…๋‹ˆ๋‹ค. ARM7์—์„œ๋Š” ๋ชจ๋“  ๋ช…๋ น์–ด์— ํ•ด๋‹น ์˜ต์…˜์„ ์ ์šฉ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ง์”€๋“œ๋ ธ์Šต๋‹ˆ๋‹ค. ๊ตฌ์ฒด์ ์œผ๋กœ๋Š” EQ, NE, ๋“ฑ๋“ฑ์˜ 2์ž ์งœ๋ฆฌ ์ ‘๋ฏธ์‚ฌ ํ˜•ํƒœ์ด๊ณ , ํ•ด๋‹น ์กฐ๊ฑด์— ๋งž๋„๋ก ํ”Œ๋ž˜๊ทธ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ์„ค์ •์ด ๋˜์–ด ์žˆ์–ด์•ผ MOV๋ช…๋ น์ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. 

{S}์˜ต์…˜์€ ํ•ด๋‹น ๋ช…๋ น์˜ ๊ฒฐ๊ณผ๊ฐ€ ํ”Œ๋ž˜๊ทธ ๋ ˆ์ง€์Šคํ„ฐ์— ์˜ํ–ฅ์„ ๋ฏธ์น ์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์˜ต์…˜์ž…๋‹ˆ๋‹ค. ARM์—์„œ์˜ MOV๋Š” Data Processing ๋ช…๋ น์œผ๋กœ ๋ถ„๋ฅ˜๋˜์–ด Rd์— ๋“ค์–ด๊ฐ€๋Š” ๊ฐ’์— ๋”ฐ๋ผ ํ”Œ๋ž˜๊ทธ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ์˜ํ–ฅ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

ํ•˜์ง€๋งŒ, ํŠน๋ณ„ํžˆ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ข€ ์–ด๋ ค์šธ์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ, Target ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ PC์ธ ๊ฒฝ์šฐ S์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด, Exception๋ชจ๋“œ์—์„œ ๋ณดํ†ต ์ƒํƒœ๋กœ ๋น ์ ธ ๋‚˜์˜ค๋Š” ์—ญํ• ์„ ํ•˜๊ฒŒ๋ฉ๋‹ˆ๋‹ค. ์ง€๊ธˆ ๋‹ค๋ฃจ๊ธฐ๋Š” ์ข€ ๊ทธ๋ ‡๊ณ ์š”. ๊ฐ•์ขŒ์˜ ๋งˆ์ง€๋ง‰์ฏค ํ•ด์„œ ํ•œ๊บผ๋ฒˆ์— ๋‹ค์‹œ ๋‹ค๋ฃจ๊ฒ ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ ๊ทธ๋Ÿฌ๋ ค๋‹ˆ ํ•˜์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. 

Rd๋Š” Target์ด ๋˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ์ž…๋‹ˆ๋‹ค. MOV๋ช…๋ น์˜ Target์€ ํ•ญ์ƒ ๋ ˆ์ง€์Šคํ„ฐ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  MOV ๋ฟ๋งŒ์ด ์•„๋‹ˆ๋ผ Data Processing ๋ช…๋ น์œผ๋กœ ๋ถ„๋ฅ˜๋œ ๋ชจ๋“  ๋ช…๋ น๋“ค(์ง€๋‚œ ๊ฐ•์ขŒ์—์„œ ์–ธ๊ธ‰ํ–ˆ๋˜)์ด ๋‹ค ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. 

Op2๋Š” MOV๋ช…๋ น์— ์˜ํ•ด Rd๋กœ ๋“ค์–ด๊ฐˆ ๋‚ด์šฉ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ์˜คํผ๋žœ๋“œ์ž…๋‹ˆ๋‹ค. ์ง€๋‚œ ๊ฐ•์ขŒ์—์„œ ์ด๊ฒƒ์ €๊ฒƒ ๋ณต์žกํ•˜๊ฒŒ ๋ง์”€๋“œ๋ ธ์—ˆ๋Š”๋ฐ์š”, Op2 ๋ถ€๋ถ„์—๋Š” ๋‹จ์ˆœํžˆ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜๋„ ์žˆ๊ณ , ์–ด๋–ค immediate๊ฐ’์ด ๋“ค์–ด๊ฐˆ ์ˆ˜๋„ ์žˆ๊ณ , ๋˜ Shift ์˜คํผ๋ ˆ์ด์…˜์„ ๊ฐ€ํ•œ ๋ ˆ์ง€์Šคํ„ฐ ๋‚ด์šฉ์ด ๋“ค์–ด๊ฐˆ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ํ™•์ธํ•˜์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. 

Ex1) MOV r0,r1

: ๋‹จ์ˆœํžˆ r0:=r1์„ ํ•˜๋Š” ๋ช…๋ น์ž…๋‹ˆ๋‹ค. 

Ex2) MOV r0,#0

: r0์— ์ƒ์ˆ˜ 0์„ ๋„ฃ๋Š” ๋ช…๋ น์ž…๋‹ˆ๋‹ค. ARM์—์„œ๋Š” 196์—์„œ์™€ ๊ฐ™์ด ์ƒ์ˆ˜์—๋Š” #์„ ๋ถ™์—ฌ์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋˜ ์ง„๋ฒ• ํ‘œํ˜„์€ C์—์„œ์˜ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰ MOV r0,#0x30 ์ด๋Ÿฐ ์‹์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜น์€ &๋ฅผ ๋ถ™์—ฌ์„œ 16์ง„์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. 

Ex3) MOV r0,#0xfc000003

: r0์— ์ƒ์ˆ˜ ๊ฐ’ 0xfc000003 ์„ ๋„ฃ๋Š” ๋ช…๋ น์ž…๋‹ˆ๋‹ค. ์ง€๋‚œ ๊ฐ•์ขŒ์—์„œ ๋ง์”€๋“œ๋ ธ์ง€๋งŒ ํ•ด๋‹น ๊ฐ’์€ 8๋น„ํŠธ ๊ฐ’ 0xFF๋ฅผ 32๋น„ํŠธ๋กœ ํ™•์žฅํ•˜๊ณ  ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋‘ ๋ฒˆ Rotate ์‹œํ‚จ ๊ฐ’์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์—๋Ÿฌ๊ฐ€ ๋‚˜์ง€ ์•Š๋Š” ๊ฒƒ์ด์ง€์š”. 

Ex4) MOV r0,r1,LSL #1

: ์ด ๋ช…๋ น์€ r0:= r1 <<1 ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ช…๋ น์ž…๋‹ˆ๋‹ค. LSL์€ logical Shift Left๋ฅผ ์˜๋ฏธํ•˜๋Š” ํ‚ค์›Œ๋“œ์ด๊ณ , Op2 ๋ถ€๋ถ„์— ์œ„์™€ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

Ex5) MOV r0,r1,LSR r2

: ์ด ๋ช…๋ น์€ r0:=r1 >> r2 ์— ํ•ด๋‹นํ•˜๋Š” ๋ช…๋ น์ด๊ณ , LSR์€ Logical Shift Right๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. 

Ex6) MOV r0,r0,ASR #24

: ์ด ๋ช…๋ น์€ r0:=r0 >> 24 ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ASR์€ Arithmetic Shift Right๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ LSR๊ณผ์˜ ์ฐจ์ด๋Š” ์ตœ ์ƒ์œ„ ๋น„ํŠธ๊ฐ€ 1์ธ ๊ฒฝ์šฐ ์ƒˆ๋กœ ๊ณ„์† ํ•ด๋‹น ๋น„ํŠธ ๊ฐ’์„ ์œ ์ง€์‹œํ‚จ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. 

Ex7) MOVS r0,r1,LSR #1 : C(flag) := r1[0]

MOVCC r0, #10 : if C=0 then r0:=10

MOVCS r0, #11 : if C=1 then r0:=11 

Ex8) MOVS r0,r4 : if r4=0 then r0=0

MOVNE r0,#1 : else r0=1

 

์ฒซ ๋ฒˆ์งธ ๋ช…๋ น์—์„œ r4๊ฐ’์„ r0๋กœ ๋„ฃ์„ ๋•Œ {S}์˜ต์…˜์— ๋”ฐ๋ผ์„œ ํ”Œ๋ž˜๊ทธ ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’์ด ๋ณ€ํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ช…๋ น์—์„œ NE ์กฐ๊ฑด์„ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—, ์ฐธ๊ณ ๋กœ NE๋Š” Not Equal, Zํ”Œ๋ž˜๊ทธ๊ฐ€ 0์ผ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค., r4๊ฐ’์ด 0์ด์—ˆ๋‹ค๋ฉด NE๋Š” False๊ฐ€ ๋˜์–ด ๋‘ ๋ฒˆ์งธ ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ๋Š” r0์— 0์ด ๋“ค์–ด๊ฐ„ ์…ˆ์ด์ง€์š”. ๋งŒ์•ฝ r4๊ฐ€ 0์ด ์•„๋‹ˆ์—ˆ๋‹ค๋ฉด ๋‘ ๋ฒˆ์งธ ๋ช…๋ น์ด ์ˆ˜ํ–‰๋˜์–ด์„œ r0์—๋Š” 1์ด ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค. 

์˜ค๋Š˜ ๊ฐ•์ขŒ๋Š” ์ด๊ฒƒ์œผ๋กœ ์ •๋ฆฌํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์— ๋ต™๊ฒ ์Šต๋‹ˆ๋‹ค. 

--------------------------------------------------------------------

ARM7 ๊ฐ•์ขŒ [10] : Instruction Set(4)

-------------------------------------------------------------------- 

์˜ค๋Š˜ ๊ฐ•์ขŒ์—์„œ๋Š” Data Processing Instruction์— ๋Œ€ํ•ด์„œ ๊ณ„์† ์ด์–ด๋‚˜๊ฐ€๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋˜๋„๋ก์ด๋ฉด ์˜ค๋Š˜ ์ด ๋ถ€๋ถ„์„ ๋‹ค ์ปค๋ฒ„ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค๋งŒ ํ•ด๋ด์•ผ๊ฒ ์ง€์š”. ์ง€๋‚œ ๊ฐ•์ขŒ์—์„œ ๋‹ค๋ฃจ์—ˆ๋˜ ๋‚ด์šฉ ์ค‘ ์˜คํผ๋žœ๋“œ์ชฝ ๋ถ€๋ถ„์€ ๊ณ„์† ๊ฒน์น˜๋Š” ๋‚ด์šฉ์ด๋ฏ€๋กœ ์˜๋ฌธ์ด ์ƒ๊ธฐ์‹œ๋ฉด ์ด์ „ ๊ฐ•์ขŒ๋กœ ๋Œ์•„๊ฐ€์„œ ํ™•์ธํ•ด ๋ณด์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. 

1) MVN{cond}{S} Rd,Op2

 

ํ•ด๋‹น ๋ช…๋ น์€ Rd:=NOT Operand2 ์˜ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„ ๋ช…๋ น์ž…๋‹ˆ๋‹ค. ๊ธฐ์กด ์–ด์…ˆ๋ธ”๋Ÿฌ์—์„œ๋Š” ๋ณผ ์ˆ˜ ์—†์—ˆ๋˜ ๋‚ฏ์„  ๋ช…๋ น์ด๋„ค์š”. ๊ธฐ๋Šฅ์€ ์จ ์žˆ๋“ฏ์ด MOV์ฒ˜๋Ÿผ ๊ฐ’์„ ๋„ฃ๊ธฐ๋Š” ๋„ฃ๋Š”๋ฐ NOT๋ฅผ ํ•ด์„œ ๋„ฃ๋Š” ๋ช…๋ น์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๋ช…๋ น์ด ์™œ ์žˆ๋Š”์ง€์— ๋Œ€ํ•ด์„œ๋Š” ํ™•์‹คํžˆ ๋ชจ๋ฅด๊ธด ๋ชฐ๋ผ๋„, ์•„๋งˆ๋„ ARM7์—์„œ 8๋น„ํŠธResolution Immediate ์˜คํผ๋žœ๋“œ๋งŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ธ ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ช…๋ น์œผ๋กœ ์–ด๋Š ์ •๋„ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•œ๋‹ค๊ณ  ํ• ๊นŒ์š”? 

๋ฐ”๋กœ ์˜ˆ์ œ๋กœ ๋“ค์–ด๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค. 

Ex1) MVN r0,#0 ; r0 := -1

: ์‚ฌ์‹ค MVN์˜ ์šฉ๋„๋กœ ์œ„์˜ ๊ฒฝ์šฐ ๋ฐ–์—๋Š” ์‚ฌ์šฉ๋œ๊ฑธ ๋ณด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ MOV r0,#0xFFFFFFFF ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋งค๋ฒˆ ์„ค๋ช… ๋“œ๋ฆฌ์ง€๋งŒ ARM7์˜ ๋ชจ๋“  ๋ช…๋ น์ด 32๋น„ํŠธ ํ•œ ์›Œ๋“œ์ด๊ณ  Immediate ์˜คํผ๋žœ๋“œ์ฒ˜๋ฆฌ๋ฅผ 8๋น„ํŠธ ๊ฐ’์„ Rotate์‹œํ‚ค๋Š” ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์ธ๋ฐ, MVN์„ ์‚ฌ์šฉํ•จ์œผ๋กœ์„œ ํ•ด๋‹น ๊ฐ’์„ ๋„ฃ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

๋‹ค๋ฅธ ๋ถ€๋ถ„์€ MOV์™€ ๋™์ผํ•˜๋ฏ€๋กœ ๊ทธ๋‹ค์ง€ ์ด์Šˆ๊ฐ€ ๋  ๊ฒƒ์ด ์—†์„ ๋“ฏ ํ•˜๊ตฐ์š”. 

2) ADD{cond}{S} Rd, Rn, Op2

ADC{cond}{S} Rd, Rn, Op2 

๋”ํ•˜๊ธฐ ๋ช…๋ น์ž…๋‹ˆ๋‹ค. 8086๊ณผ ํฐ ์ฐจ์ด๋Š” ์˜คํผ๋žœ๋“œ๋ฅผ 3๊ฐœ ์ง€์ •ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Rd๋Š” ๊ฒฐ๊ณผ๊ฐ€ ์ €์žฅ๋  ๋ ˆ์ง€์Šคํ„ฐ๋กœ, Data Processing ๋ช…๋ น ๋ชจ๋‘๋Š” ๊ทธ ๊ฒฐ๊ณผ๊ฐ€ ๋ ˆ์ง€์Šคํ„ฐ(Rd)๋กœ ๋“ค์–ด๊ฐ€์•ผ๋งŒ ํ•ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ Rd๊ฐ€ ๊ฒฐ๊ณผ๊ฐ€ ์ €์žฅ ๋  ๋ ˆ์ง€์Šคํ„ฐ์ด๊ณ , ๋‚˜๋จธ์ง€ ๋‘๊ฐœ๊ฐ€ ์„œ๋กœ ๋”ํ•ด์งˆ ์˜คํผ๋žœ๋“œ์ž…๋‹ˆ๋‹ค. ๋‘๊ฐœ์˜ ์˜คํผ๋žœ๋“œ ์ค‘ ํ•˜๋‚˜๋Š” ๋˜ ํ•ญ์ƒ ๋ ˆ์ง€์Šคํ„ฐ์—ฌ์•ผ๋งŒ ํ•ฉ๋‹ˆ๋‹ค. Op2๋Š” ๊ฑฐ๋“ญ ๋ง์”€๋“œ๋ฆฌ์ง€๋งŒ Shifted Register ํ˜น์€ Rotated Immediate Value ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. 

ADD์™€ ADC๋Š” ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๋Œ€๋กœ ๋”ํ•˜๊ธฐ, ๋”ํ•˜๋Š”๋ฐ ์บ๋ฆฌํ”Œ๋ž˜๊ทธ๋ž‘ ๊ฐ™์ด ๋”ํ•˜๊ธฐ ์ •๋„์ž…๋‹ˆ๋‹ค. 

Ex1) ADD r0,r0,#1 ; r0:=r0+1 

Ex2) ADD r0,r1,r2 ; r0:=r1+r2 

Ex3) ADDS r0,r1,r1, LSL #2 ; r0:=r1*5

: ์œ„์˜ ๋ช…๋ น์„ ๋ณด๋ฉด ARM ๋ช…๋ น์–ด์˜ ๊ฐ•๋ ฅํ•จ์„ ์•Œ ์ˆ˜ ์žˆ์ฃ ? ์œ„์—์„œ Rd๋Š” r0, Rn์€ r1, Op2 ๋ถ€๋ถ„์ด r1,LSL #2 ์ž…๋‹ˆ๋‹ค. r1๊ฐ’ ๋”ํ•˜๊ธฐ r1์„ ๋‘ ๋ฒˆ ์‰ฌํ”„ํŠธ ํ•œ ๊ฐ’, ์ฆ‰ r1*4๊ฐ’์ด๋ฏ€๋กœ ๊ฒฐ๊ณผ์ ์œผ๋กœ๋Š” *5๊ฐ€ ๋˜๊ฒ ์ง€์š”. S ์˜ต์…˜์ด ์‚ฌ์šฉ๋˜์—ˆ์œผ๋ฏ€๋กœ ํ”Œ๋ž˜๊ทธ ๋ ˆ์ง€์Šคํ„ฐ์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด? ์œ„์˜ 1๋ฒˆ 2๋ฒˆ ์˜ˆ์ œ๋Š” ์ˆ˜ํ–‰ํ•˜๋”๋ผ๋„ ํ”Œ๋ž˜๊ทธ ๋ ˆ์ง€์Šคํ„ฐ๋Š” ์˜ํ–ฅ์„ ์•ˆ๋ฐ›๋Š”๋‹ค๋Š” ์˜๋ฏธ์ง€์š”. ์‚ฌ์šฉํ•˜๊ธฐ์— ๋”ฐ๋ผ์„œ ๊ฐ•๋ ฅํ•œ ์—ญํ• ์„ ํ•  ์ˆ˜ ์žˆ์„ ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค.

Ex4) in C

 

int addints(int a,int b)

{

int c;

c=a+b;

return c;

} 

in ARM7 Assembly 

ADD r0,r0,r1 ; r0:=r0+r1

MOV pc,lr ; return 

์‚ฌ์‹ค ์ธ์ˆ˜ ์ „๋‹ฌ์— ๊ด€๋ จ๋œ ์ฝ”๋“œ๊ฐ€ ๋” ๋“ค์–ด๊ฐ€์ง€๋งŒ, ์ฝ”์–ด๋ถ€๋ถ„์€ ๋Œ€๊ฐ• ์œ„์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. 

3) SUB{cond}{S} Rd, Rn, Op2

SBC{cond}{S} Rd, Rn, Op2

RSB{cond}{S} Rd, Rn, Op2

RSC{cond}{S} Rd, Rn, Op2 

์œ„์˜ ๋„ค ๋ช…๋ น์€ ๋นผ๊ธฐ ๋ช…๋ น์ž…๋‹ˆ๋‹ค. SUB์™€ SBC๋Š” ๊ทธ๋Ÿฐ๋ฐ๋กœ ์•Œ๋งŒ ํ•œ๋ฐ, R๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋‘๊ฐœ๊ฐ€ ๋” ์žˆ๋„ค์š”. R์€ ๊ฐ์ˆ˜(?) ์™€ ํ”ผ๊ฐ์ˆ˜๋ฅผ ๋ฐ”๊พธ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, SUB ๋ช…๋ น์ด Rd=Rn-Op2 ๋ผ๋ฉด RSC๋Š” Rd=Op2-Rn ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๋ช…๋ น์ด ์™œ ํ•„์š”ํ•  ๊นŒ์š”? ๊ธ€์Ž„์š”. ์šฐ์„  Op2๊ฐ€ Rn์— ๋น„ํ•ด์„œ ์ƒ๋Œ€์ ์œผ๋กœ ์œ ์—ฐ์„ฑ์ด ์ข€๋” ๋งŽ์•„์„œ์ผ๊นŒ์š”? ์–ด๋–ป๋“ ... ๊ฐœ๋…์€ ์–ด๋ ต์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 

SBC์™€ RSC๋Š” ์บ๋ฆฌํ”Œ๋ž˜๊ทธ๊ฐ€ ๊ด€๋ จ๋˜์–ด ์žˆ๋Š” ๋ช…๋ น์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋ช…๋ น ํ•ด์„์„ ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜์™€ ์žˆ๋„ค์š”. 

SBC Rd, Rn, Op2 = Rd=Rn-Op2+Carry-1 

์•„๋งˆ๋„ 8086์—์„œ์˜ Carry์™€๋Š” ์ข€ ๋‹ค๋ฅธ ๋ชจ์–‘์ž…๋‹ˆ๋‹ค. ๋บ„์…ˆ์„ ํ–ˆ์„ ๋•Œ ์ž๋ฆฌ ๋‚ด๋ฆผ์ด ๋ฐœ์ƒ์„ ํ•˜๋ฉด Carry๊ฐ€ ํด๋ฆฌ์–ด ๋˜๋Š” ๊ตฌ์กฐ์ด๊ตฐ์š”. ์•„๋งˆ๋„ 2์˜ ๋ณด์ˆ˜ ์—ฐ์‚ฐ์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ธ ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰ 1์„ ๋นผ๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ 1์˜ 2์˜ ๋ณด์ˆ˜๋ฅผ ์ทจํ•ด ๋”ํ•ด์ฃผ์ฃ . ํ•ด๋‹น ๊ฐ’์€ FFFFFFFF ์ด๊ณ , ๋Œ€์ƒ์ด 0์ด ์•„๋‹ˆ๋ผ๋ฉด ๋”ํ•˜๊ธฐ๋ฅผ ํ†ตํ•ด Carry๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒ ๊ตฐ์š”. ๊ทผ๋ฐ ์›๋ž˜ ํ•˜๊ณ ์ž ํ–ˆ๋˜ ๊ฒƒ์ด ๋บ„์…ˆ์ด์—ˆ์œผ๋‹ˆ๊นŒ... ํ”ผ๊ฐ์ˆ˜๊ฐ€ 0์ธ ๊ฒฝ์šฐ์— Carry๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜๊ณ , ๋‚˜๋จธ์ง€์˜ ๊ฒฝ์šฐ์—๋Š” ๋ชจ๋‘ Carry๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๊ณ„์  ์‚ฌ๊ณ ๋ฐฉ์‹์—๋Š” ๊ทธ๊ฒŒ ๋งž๋‚˜ ๋ด…๋‹ˆ๋‹ค. 

์–ด๋–ป๋“  ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋บ„์…ˆ ์—ฐ์‚ฐ์„ ํ†ตํ•ด borrow๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด Carry๋Š” 0์ด๊ณ  ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด Carry๋Š” 1์ด ๋˜๋Š” ๊ฒƒ์ด์ฃ . ๋”ฐ๋ผ์„œ SBC์™€ ๊ฐ™์€ ๋ช…๋ น์—์„œ๋Š” Carry๋ฅผ ์˜คํžˆ๋ ค ๋”ํ•ด์ฃผ๊ณ  ๋‹ค์‹œ 1์„ ๋นผ ์คŒ์œผ๋กœ์จ 8086 ๋“ฑ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ํšจ๊ณผ๋ฅผ ์–ป๊ฒŒ ๋˜๋Š”๊ตฐ์š”. 

Ex) 64Bit ๋บ„์…ˆ 

SUBS r4,r0,r2

SBC r5,r1,r3 

: ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด [r5:r4]=[r1:r0]-[r3:r2]๊ฐ€ ๋˜๊ฒ ๊ตฐ์š”. {S}์˜ต์…˜์— ์ฃผ์˜ํ•˜์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. 

4) AND{cond}{S} Rd, Rn, Op2

EOR{cond}{S} Rd, Rn, Op2

ORR{cond}{S} Rd, Rn, Op2 

: ์ด๋ฒˆ์—๋Š” Bit์—ฐ์‚ฐ์— ๊ด€๋ จ๋œ ๋ช…๋ น์–ด๋“ค์ž…๋‹ˆ๋‹ค. AND๋Š” ๊ทธ๋Œ€๋กœ AND, EOR์€ XOR์ฏค์œผ๋กœ, ORR์€ OR๋กœ ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. B๋ช…๋ น์„ ์ œ์™ธํ•˜๊ณ ๋Š” ์›ฌ๋งŒํ•œ ๋ช…๋ น์–ด๋Š” ๋ชจ๋‘ 3๊ธ€์ž์ธ๋ฐ, ๊ทธ๋ž˜์„œ ORR๋กœ ํ‘œ๊ธฐํ•˜๋Š” ๋“ฏํ•ฉ๋‹ˆ๋‹ค. ์—ญ์‹œ ์˜คํผ๋žœ๋“œ๋Š” ๊ฐ™์€ ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. 

Ex1) AND r0,r0,#0xFF

: r0์˜ 8๋น„ํŠธ๋งŒ ๋‚จ๊ธฐ๋Š” ๋ช…๋ น์ž…๋‹ˆ๋‹ค. 

Ex2) ANDCSS r0,r1,r2,ASR r3

: ๋งŒ์•ฝ ์บ๋ฆฌ ํ”Œ๋ž˜๊ทธ๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ๋‹ค๋ฉด...(CS) r1 AND (r2>>r3) ์ •๋„๋ฅผ ํ•˜๋Š”๋ฐ, ํ•ด๋‹น ๋ช…๋ น์˜ ๊ฒฐ๊ณผ๊ฐ€ ํ”Œ๋ž˜๊ทธ ๋ ˆ์ง€์Šคํ„ฐ์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ASR๊ณผ LSR์˜ ์ฐจ์ด๋Š” ASR์˜ ๊ฒฝ์šฐ ์ตœ์ƒ์œ„ ๋น„ํŠธ๊ฐ€ 1์ด๋ผ๋ฉด ํ•ด๋‹น ๋น„ํŠธ๋Š” ๊ณ„์† 1๋กœ ์œ ์ง€๋ฅผ ํ•˜๋Š” ๊ฒƒ์ด์ฃ . LSR์ด๋ผ๋ฉด ์ƒˆ๋กœ ๋“ค์–ด์˜ค๋Š” ๋น„ํŠธ๋Š” ํ•ญ์ƒ 0์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์Œ์ˆ˜๋ฅผ 2์˜ ๋ณด์ˆ˜๋กœ ์‚ฌ์šฉํ•˜๋Š” ์‹œ์Šคํ…œ์—์„œ ํ•„์š”ํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ฐธ ๊ฒฐ๊ณผ๋Š” r0์— ๋„ฃ๋Š”๊ตฐ์š”. 

Ex3) EORS r0,r0,r0

: ํ•ด๋‹น ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•˜๋ฉด r0๋Š” 0์ด ๋  ๊ฒƒ์ด๊ณ , N ํ”Œ๋ž˜๊ทธ๋„ 0์ด ๋˜๊ณ  Zํ”Œ๋ž˜๊ทธ๋Š” 1์ด ๋ฉ๋‹ˆ๋‹ค. 

Ex4) MOV r0,#0xFF

ORR r0,r0,#0xFF00

: r0์— 0xFFFF๋ฅผ ๋„ฃ๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. 

5) BIC{cond}{S} Rd, Rn, Op2

 

: Rd := Rn AND (NOT Op2) ๋กœ ์„ค๋ช…์ด ๋˜์–ด ์žˆ๋Š” ๋ช…๋ น์ž…๋‹ˆ๋‹ค. ๋ณ„๋ณ„ ๋ช…๋ น์ด ๋‹ค ์žˆ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“œ๋Š”๊ตฐ์š”. ANDํ•˜๊ธฐ ์ „์— NOT์„ ํ•œ๋ฒˆ ํ•ด์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ช…๋ น์ž…๋‹ˆ๋‹ค. ์˜๋ฏธ๋Š” ๋น„ํŠธ๋ฅผ ํด๋ฆฌ์–ด ํ•˜๋Š” ๊ฒƒ์ด๊ณ , Op2์— ์ง€์ •ํ•œ ๋น„ํŠธ๊ฐ€ 0์œผ๋กœ ์ง€์›Œ์ง€๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. 

Ex) BIC r0,r1,#3

: r0 := r1 and 0xFFFFFFFC ์˜ ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. 

6) CMP{cond} Rn, Op2

CMN{cond} Rn, Op2 

: ๋น„๊ต ๋ช…๋ น์ž…๋‹ˆ๋‹ค. MOV, MVN์ฒ˜๋Ÿผ ์ธ์ˆ˜๊ฐ€ 2๊ฐœ์ธ๋ฐ์š”, ์ด๋ฒˆ์—๋Š” Rd๊ฐ€ ๋น ์กŒ์Šต๋‹ˆ๋‹ค. CMP๋Š” ํ”ํžˆ ๋ณด๋˜ ๊ทธ CMP์ž…๋‹ˆ๋‹ค. Rn์—์„œ Op2๋ฅผ ๋นผ ๋ณด๋Š” ๋ช…๋ น์ด์ฃ . ์•„์‹œ๋‹ค์‹œํ”ผ ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’์—๋Š” ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๊ณ  ํ”Œ๋ž˜๊ทธ์—๋งŒ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๊ณ  ๋ณด๋‹ˆ {S}์˜ต์…˜๋„ ์—†๋„ค์š”. ์ด ๋ช…๋ น๋“ค์€ ๋””ํดํŠธ๋กœ {S}๋ฅผ ์ค€ ํšจ๊ณผ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. (์ผ์„ค์—๋Š” ์–ด์…ˆ๋ธ”๋Ÿฌ๊ฐ€ ๊ทธ๋ ‡๊ฒŒ ํ•ด ์ค€๋‹ค๊ณ  ํ•˜๋˜๋ฐ, ๊ธฐ๊ณ„์–ด ์ฝ”๋“œ๋กœ๋Š” S์˜ต์…˜์„ ๊บผ๋†“์€ CMP๋„ ๊ฐ€๋Šฅํ•˜์ง€ ์•Š์„๊นŒ ์‹ถ๋„ค์š”.) 

CMN์€ ์ข€ ์ƒˆ๋กญ๊ตฐ์š”. ์ด ๋ช…๋ น์€ CMP๊ฐ€ ๋นผ๊ธฐ๋ฅผ ํ•˜๋Š”๋ฐ ๋ฐ˜ํ•ด, ๋‘ ์˜คํผ๋žœ๋“œ๋ฅผ ๋”ํ•ด ๋ณด๋Š” ๋ช…๋ น์ž…๋‹ˆ๋‹ค. ์—ญ์‹œ ์ƒ์†Œํ•œ ๊ฐœ๋…์ธ๋ฐ์š”. ๊ทธ๋Ÿด ํ•„์š”๋„ ์žˆ์„๊นŒ์š”? ์–ด๋–ป๋“  CMP๊ฐ€ ๋นผ๊ธฐ๋ฅผ ํ•ด๋ณด๋Š” ๊ฑฐ๋ผ๋ฉด CMN์€ ๋”ํ•˜๊ธฐ๋ฅผ ํ•ด ๋ณด๋Š” ๋ช…๋ น์–ด๋ž๋‹ˆ๋‹ค. 

Ex1) CMP r2,#23

MOVEQ r2,#45

: ๋งŒ์•ฝ r2๊ฐ€ 23์ด๋ผ๋ฉด 45๋ฅผ ๋„ฃ์–ด๋ผ. 

Ex2) CMP r0,#0

CMPEQ r1,#0

CMPEQ r2,#0

CMPEQ r3,#0 

MOVEQ r4,#12 

: r0๋ถ€ํ„ฐ r3๊นŒ์ง€ ๋ชจ๋‘ 0์ด๋ผ๋ฉด r4์— 12๋ฅผ ๋„ฃ๋Š” ๋ช…๋ น์ž…๋‹ˆ๋‹ค. ์ฐธ ์žฌ๋ฏธ์žˆ๋Š” ๊ตฌ์กฐ๋ผ๊ณ  ์ƒ๊ฐ๋ฉ๋‹ˆ๋‹ค. 

Ex3) CMN r1,r2

MOVEQ r0,#0

MVNNE r0,#1 

: r0 = ((r1+r2)==0) ? 0:-1; 

์œ„์—์„œ ์กฐ๊ฑด๋ถ€ ๋ช…๋ น์˜ ๊ฐ•๋ ฅํ•จ์„ ๋Š๋‚„ ์ˆ˜ ์žˆ๋‚˜์š”? ์•„๋‹ˆ๋ผ๋ฉด ๋‹ค์Œ์„ ํ•œ๋ฒˆ ๋ณด์‹œ์ฃ . 

in C

while (a!=b) {

if (a>b) a-=b;

else b-=a;

} 

in ASM with no conditional Instruction 

gcd CMP a,b

JZ end

JNZ less_than 

SUB a,a,b

JMP gcd 

less_than

 

SUB b,b,a

JMP gcd

 

end

... 

โ€ป ARM๋„ ์•„๋‹ˆ๊ณ  8086๋„ ์•„๋‹ˆ๊ณ , ๋ช…๋ น์–ด๊ฐ€ ์ด์ƒํ•˜๊ฒŒ ๋˜์—ˆ๋„ค์š”. ๋Œ€์ถฉ ์˜๋ฏธ๋งŒ ํŒŒ์•…ํ•˜์‹œ๊ธธ. 

in ARM7 

gcd CMP a,b

SUBGT a,a,b

SUBLT b,b,a

BNE gcd 

์ง์ ‘ ๋ณด์‹œ๊ณ , ์†Œ๊ฐ์„. 

7) TEQ{cond} Rn, Op2

TST{cond} Rn, Op2 

: CMP์™€ ๊ฑฐ์˜ ๋น„์Šทํ•œ ๊ตฌ์กฐ๋ฅผ ๊ฐ–๋Š” ๋ช…๋ น์ž…๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ๋„ ๊ฑฐ์˜ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. CMP๊ฐ€ -, CMN์ด + ๋ผ๋ฉด, TEQ๋Š” XOR, TST๋Š” AND ์—ฐ์‚ฐ์„ ํ†ตํ•ด ๊ฐ™์€ ์ผ์„ ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํŠน์ง•์ด๋ผ๋ฉด Logical ์—ฐ์‚ฐ์ด ์ผ์–ด๋‚  ๊ฒฝ์šฐ ํ”Œ๋ž˜๊ทธ ์ค‘์—์„œ V ํ”Œ๋ž˜๊ทธ(์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ํ”Œ๋ž˜๊ทธ)๋Š” ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฑธ ์ž˜ ์‘์šฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. 

Ex1) CMP r0,#31 ; test r0<=31 ?

TEQ r0,#127 ; test r0==127 ?

MOVLS r0,#'.' ; if either then r0='.' 

Ex2) TST r1,#3 ; is r1 word aligned?

MOVEQ r0,#1 ; r0:=1 if so

MOVNE r0,#0 ; else r0:=0 

์ง€๋‚œ๋ฒˆ์— ๋‹ค๋ฃจ์—ˆ๋˜ MOV ๋ช…๋ น๊นŒ์ง€๋ฅผ ํ•ฉ์น˜๋ฉด ์ด 16๊ฐœ์˜ ๋ช…๋ น์„ ์„ค๋ช… ๋“œ๋ ธ์Šต๋‹ˆ๋‹ค. ์ด๋กœ์„œ ๊ฐ€์žฅ ๋น„์ค‘์ด ํฐ(๋ถ„๋Ÿ‰์ด ๋งŽ์€?) Data Processing ๋ช…๋ น์˜ ์„ค๋ช…์„ ๋งˆ์ณค๊ตฐ์š”. 

์ฐธ๊ณ ๋กœ ๋‹ค๋ฃจ๊ณ  ์žˆ๋Š”, ํ˜น์€ ์•ž์œผ๋กœ ๋‹ค๋ฃฐ ๋ช…๋ น์˜ ์ข…๋ฅ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. 

(1) Branch ๋ช…๋ น

(2) Data Processing ๋ช…๋ น

(3) PSR Transfer ๋ช…๋ น

(4) Multiply ๋ช…๋ น

(5) Single Data Transfer ๋ช…๋ น

(6) Block Data Transfer ๋ช…๋ น

(7) Swap ๋ช…๋ น

(8) SWI ๋ช…๋ น 

์ด๋ฐ–์—๋„ ์ฝ”ํ”„๋กœ์„ธ์„œ ๊ด€๋ จ ๋ช…๋ น์ด ์žˆ๊ธฐ๋Š” ํ•˜์ง€๋งŒ, ๊ทธ ์ •๋„๊นŒ์ง€๋Š” ์ข€ ๋ฌด๋ฆฌ์ธ ๋“ฏ ์‹ถ์Šต๋‹ˆ๋‹ค.

์œ„์— ์จ ๋†“์€ ๊ฒƒ์„ ๋ณด๋‹ˆ ๋ฌด์ฒ™ ๋งŽ์•„ ๋ณด์ด๋Š”๋ฐ์š”, ๋ง‰์ƒ ์‚ดํŽด๋ณด๋ฉด ๋ถ„๋ฅ˜ ๋‹น 1๊ฐœ~2๊ฐœ์ •๋„์˜ ๋ช…๋ น๋ฐ–์—๋Š” ์—†์Šต๋‹ˆ๋‹ค. 

์ž, ๊ทธ๋Ÿผ ์˜ค๋Š˜ ๊ฐ•์ขŒ๋Š” ์—ฌ๊ธฐ์—์„œ ์ค„์ด๊ฒ ์Šต๋‹ˆ๋‹ค. 

--------------------------------------------------------------------

ARM7 ๊ฐ•์ขŒ [11] : Instruction Set (5)

-------------------------------------------------------------------- 

โ— PSR Transfer ๋ช…๋ น 

๊ธฐ์–ตํ•˜์‹ค์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ PSR์ด๋ž€ Program Status Register๋กœ์„œ ํ”Œ๋ž˜๊ทธ ๋น„ํŠธ์™€ Control ๋น„ํŠธ๋“ค๋กœ ๊ตฌ์„ฑ๋œ ๋ ˆ์ง€์Šคํ„ฐ์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ ˆ์ง€์Šคํ„ฐ์˜ ๊ฐ’์„ ์ผ๋ฐ˜ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ์˜ฎ๊ธฐ๊ฑฐ๋‚˜ ๋ฐ˜๋Œ€์˜ ์ผ์„ ํ•˜๋Š” ๋ช…๋ น์ด PSR Transfer ๋ช…๋ น์ž…๋‹ˆ๋‹ค. 

PSR์€ 32๋น„ํŠธ ๋ ˆ์ง€์Šคํ„ฐ์ž…๋‹ˆ๋‹ค. CPSR๊ณผ SPSR 5๊ฐœ๋ฅผ ํ•ฉ์ณ์„œ ์ด 6๊ฐœ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ SPSR ์€ Exception๋ชจ๋“œ์— ๋”ฐ๋ผ ์—ฌ๋ถ„์œผ๋กœ ์กด์žฌํ•˜๋Š” PSR์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ ๋ชจ๋“œ์— ๋”ฐ๋ผ์„œ User๊ฐ€ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” PSR์€ ํ•œ ๊ฐœ, ํ˜น์€ 2๊ฐœ๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด User๋ชจ๋“œ(๋ณดํ†ต๋ชจ๋“œ)์—์„œ๋Š” CPSR์—๋งŒ ์ ‘๊ทผ ํ•  ์ˆ˜ ์žˆ๊ณ , IRQ๋ชจ๋“œ์—์„œ๋Š” CPSR๊ณผ SPSR_irq ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

์—ฌ๊ธฐ์„œ ์ž ๊น ์ง€๋‚œ ๊ฐ•์ขŒ์˜ ๋‚ด์šฉ์„ ๋– ์˜ฌ๋ ค ๋ณด์ฃ . CPSR์ด๋ผ๊ณ  ํ•จ์€ ์ผ๋ฐ˜์ ์ธ ํ”Œ๋ž˜๊ทธ ๋ ˆ์ง€์Šคํ„ฐ๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, ARM7์—์„œ๋Š” 6๊ฐœ์˜ ๋™์ž‘ ๋ชจ๋“œ๊ฐ€ ์žˆ๊ณ , Exception(IRQ, FIQ, ABORT ๋“ฑ)์— ์˜ํ•ด ๋™์ž‘ ๋ชจ๋“œ๊ฐ€ ์ „ํ™˜๋ฉ๋‹ˆ๋‹ค. ๊ฐ ๋™์ž‘๋ชจ๋“œ์— ๋”ฐ๋ผ์„œ ๋ช‡๋ช‡ ๋ ˆ์ง€์Šคํ„ฐ๋“ค์ด ๊ต์ฒด๋˜๊ณ , ์ด ๋•๋ถ„์— ๊ฐ ๋ชจ๋“œ๋ณ„๋กœ ์Šคํƒ์„ ๋”ฐ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. Exception Call์— ๋”ฐ๋ฅด๋Š” ์ˆ˜ํ–‰๋ฒˆ์ง€ ์ €์žฅ๋„ ์Šคํƒ์„ ํ†ตํ•ด ํ•˜์ง€ ์•Š๊ณ  r14(lr)์„ ํ†ตํ•ด ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋ž˜๊ทธ ๋ ˆ์ง€์Šคํ„ฐ ์—ญ์‹œ Exception์— ๋”ฐ๋ผ ์Šคํƒ์— ์ €์žฅํ•˜์ง€ ์•Š์•„๋„ ๋˜๋„๋ก ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ด ์ฃผ๋Š”๋ฐ, ์ด๋Ÿฐ ์—ญํ• ์„ ํ•˜๋Š” ๊ฒƒ์ด SPSR ์ž…๋‹ˆ๋‹ค. SPSR์€ ์ด 5๊ฐœ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. User๋ชจ๋“œ๋ฅผ ์ œ์™ธํ•˜๊ณ  ๋‚˜๋จธ์ง€ 5๊ฐœ์˜ ๋™์ž‘ ๋ชจ๋“œ๋งˆ๋‹ค ํ•˜๋‚˜์”ฉ ์กด์žฌํ•˜๋Š”๋ฐ์š”. 

์˜ˆ๋ฅผ ๋“ค์–ด IRQ๊ฐ€ ๊ฑธ๋ ธ๋‹ค๊ณ  ํ•˜๋ฉด, ์šฐ์„  CPU๋™์ž‘๋ชจ๋“œ IRQ ๋ชจ๋“œ๋กœ ๋ฐ”๋€Œ๊ณ  ์ด์— ๋”ฐ๋ผ r13_irq, r14_irq ๋กœ ๋ ˆ์ง€์Šคํ„ฐ 2๊ฐœ๊ฐ€ ๋Œ€์น˜๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ r14_irq์— ๊ธฐ์กด์˜ pc(r15)๊ฐ’์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์ง€์ •๋œ ๋ฒกํ„ฐ๋กœ ์ด๋™ํ•˜๊ฒ ์ฃ . ์ด๋•Œ ํ”Œ๋ž˜๊ทธ๋ ˆ์ง€์Šคํ„ฐ, ์ฆ‰ CPSR์˜ ๊ฐ’๋„ ๋ณด์ „ํ•  ํ•„์š”๊ฐ€ ์žˆ์ฃ . ๊ทธ๋ž˜์„œ ํ•˜๋Š” ์ผ์ด CPSR๊ฐ’์„ pc์™€ ๋น„์Šทํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ SPSR_irq๋กœ ๋„ฃ์–ด๋‘๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. r13_irq์™€๋Š” ์ข€ ์ฐจ์ด๊ฐ€ ์žˆ์ฃ . r13๊ณผ ๊ฐ™์€ ๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ๋“ค์€ ๊ฐ ์ˆ˜ํ–‰๋ชจ๋“œ ๋ณ„๋กœ ๊ทธ ๊ฐ’์ด ๊ณ„์† ์œ ์ง€๊ฐ€ ๋ฉ๋‹ˆ๋‹ค๋งŒ, SPSR์ด๋‚˜ r14๋Š” Exception์‹œ์— ๊ธฐ์กด ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’์˜ ๋ณด๊ด€์„ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ฒ„ํผ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. 

์–ด๋–ป๋“  ๊ฐ„์—... ์˜ค๋Š˜ ์„ค๋ช…ํ•  ๋ช…๋ น์–ด๋Š” ๋‘๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ์‚ฌ์‹ค ๊ทธ๋‹ค์ง€ ์“ฐ์ผ ์ผ์€ ์—†๊ณ , CPU๋™์ž‘๋ชจ๋“œ๋ฅผ ์ž„์˜๋กœ ์„ค์ •ํ•˜๊ฑฐ๋‚˜, ํ˜„์žฌ ๋™์ž‘๋ชจ๋“œ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. 

1) MRS{cond} Rd,<psr> : Transfer PSR contents to a register

MSR{cond} <psr>,Rm : Transfer register contents to PSR

MSR{cond} <psrf>,Rm : Transfer register contents to PSR

flag bits only 

MRS๋ช…๋ น๊ณผ MSR๋ช…๋ น์˜ ์˜๋ฏธ๊ฐ€ ํ—›๊ฐˆ๋ฆด ์ˆ˜ ๋„ ์žˆ๋Š”๋ฐ์š”, M์„ Move๋กœ, R์„ ๋ ˆ์ง€์Šคํ„ฐ๋กœ, S๋ฅผ PSF๋กœ ํŒŒ์•…ํ•˜๋ฉด, MRS์˜ ๊ฒฝ์šฐ์—” Move Reg,PSR์ด ์ •๋„๋กœ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋ ˆ์ง€์Šคํ„ฐ์— PSR๊ฐ’์„ ๋„ฃ๋Š” ๋ช…๋ น์ด์ฃ . MSR์˜ ๊ฒฝ์šฐ์—” ๋ฐ˜๋Œ€๋กœ ์ƒ๊ฐ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

์ฐธ๊ณ ๋กœ CPSR์˜ ์ปจํŠธ๋กค๋น„ํŠธ๋ฅผ ๋ฐ”๊พธ๋ฉด CPU์˜ ๋™์ž‘๋ชจ๋“œ๋ฅผ ์ž„์˜๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค๋งŒ, USER๋ชจ๋“œ์—์„œ๋Š” ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. 

Ex1) MSR CPSR_all,r0 

: ํ•ด๋‹น ๋ช…๋ น์ด USER๋ชจ๋“œ์—์„œ ์ˆ˜ํ–‰๋˜์—ˆ๋‹ค๋ฉด Control Bit๋“ค์€ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๊ณ  Flag Bits[31:28]๋งŒ ์˜ํ–ฅ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. 

๋งŒ์•ฝ USER๋ชจ๋“œ๋ฅผ ์ œ์™ธํ•œ ๋‹ค๋ฅธ ๋ชจ๋“œ์—์„œ ์ˆ˜ํ–‰๋˜์—ˆ๋‹ค๋ฉด CPSR์˜ ๋ชจ๋“  ๋น„ํŠธ๋“ค์ด ๋ณ€ํ™”ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. 

Ex2) MSR CPSR_flg,r0 

: CPSR์— ์ ‘๋ฏธ์‚ฌ _flg๋ฅผ ๋ถ™์—ฌ์ฃผ์–ด์„œ ๋ชจ๋“œ์— ์ƒ๊ด€์—†์ด Flag ๋น„ํŠธ๋“ค๋งŒ ์˜ํ–ฅ์„ ๋ฐ›๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. 

Ex3) MRS r0,CPSR 

: CPU๋™์ž‘๋ชจ๋“œ์— ์ƒ๊ด€์—†์ด CPSR์˜ ๋ชจ๋“  ๋น„ํŠธ๋“ค์„ r0๋กœ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค. 

Ex4) MSR SPSR_all,r0 

: r0์˜ ๊ฐ’์„ SPSR์˜ ๋ชจ๋“  ๋น„ํŠธ์— ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ช…๋ น์€ USER๋ชจ๋“œ์—์„œ๋Š” ์ˆ˜ํ–‰ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. USER๋ชจ๋“œ์—์„œ๋Š” ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ SPSR ์ž์ฒด๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. 

Ex5) MSR SPSR_flg,#0xC0000000 

: SPSR์˜ N, Zํ”Œ๋ž˜๊ทธ๋ฅผ ์„ธํŠธํ•˜๊ณ  C, Vํ”Œ๋ž˜๊ทธ๋ฅผ ํด๋ฆฌ์–ด ํ•˜๋Š” ๋ช…๋ น์ž…๋‹ˆ๋‹ค. ์œ„์™€ ๊ฐ™์ด MSR๋ช…๋ น์„ Flag๋น„ํŠธ์— ์ œํ•œ์„ ๋‘์–ด ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ์—” Immediate ๊ฐ’์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 

์˜ค๋Š˜ ๊ฐ•์ขŒ๋Š” ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งˆ์น˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋žœ๋งŒ์˜ ๊ฐ•์ขŒ๋ผ ๊ธฐ๋Œ€๋ฅผ ๋งŽ์ด ํ•˜์‹  ๋ถ„๋“ค์ด ํ˜น(?) ๊ณ„์‹œ๋‹ค๋ฉด ์ฃ„์†กํ•˜๊ณ ์š”. ์š”์ฆ˜ ๋“ค์–ด์„œ ์ฃผ๋ณ€์ƒํ™ฉ์ด ์ข€ ์–ด์ˆ˜์„ ํ•ด์„œ ์กฐ๋งŒ๊ฐ„ ๋‹ค์‹œ ์˜ฌ๋ฆฌ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 

--------------------------------------------------------------------

ARM7 ๊ฐ•์ขŒ [12] : Instruction Set (6)

-------------------------------------------------------------------- 

์ •๋ง ์˜ค๋žœ๋งŒ์— ๊ฐ•์ขŒ๋ฅผ ์“ฐ๋Š”๊ตฐ์š”. ์ƒํ™œ์— ์—ฌ์œ ๊ฐ€ ์ข€ ์žˆ์–ด์„œ ๊ฐ•์ขŒ๋ฅผ ์‹œ์ž‘ํ–ˆ๋Š”๋ฐ ์˜ˆ์ƒ๋ณด๋‹ค ๊ฐ•์ขŒ๊ฐ€ ๊ธธ์–ด์ง€๊ณ  ๋”๋ถˆ์–ด ์ ์  ๋‹ค๋ฅธ ์ผ๋“ค์ด ์ƒ๊ฒจ์„œ ์š”์ฆ˜์—๋Š” ํ†ต ์‹œ๊ฐ„์„ ๋‚ผ ์ˆ˜๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ํ˜น, ๊ฐ•์ขŒ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ์‹  ๋ถ„์ด ๊ณ„์‹œ๋‹ค๋ฉด ์ฃ„์†กํ•˜๋‹ค๋Š” ๋ง์”€์„ ๋“œ๋ ค์•ผ๊ฒ ๊ตฐ์š”. ์•„๋ฌด๋ž˜๋„ ๊ฐ•์ขŒ๋ฅผ ๋นจ๋ฆฌ ์ •๋ฆฌํ•ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ญ๋‹ˆ๋‹ค. ์ž๊พธ ๋Š˜์–ด์ง€๋‹ˆ๊นŒ, ์ €๋„ ๋ถ€๋‹ด์Šค๋Ÿฝ๊ณ , ์ฝ์œผ์‹œ๋Š” ๋ถ„๋“ค์—๊ฒŒ๋„ ํ๋ฅผ ๋ผ์น˜๋Š” ๊ฒƒ ๊ฐ™์•„์„œ. 

๋‚จ์€ ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ๋Š” ์ตœ๋Œ€ํ•œ ํ•ต์‹ฌ๋งŒ ์–˜๊ธฐํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค. 

์‚ฌ์‹ค ๋ช…๋ น์–ด ํ•˜๋‚˜ํ•˜๋‚˜์— ๋Œ€ํ•ด ํ•˜๋‚˜ํ•˜๋‚˜ ์„ค๋ช…ํ•œ๋‹ค๋Š” ๊ฒƒ์ด... ๋ญ ๊ทธ๋‹ค์ง€ ์˜๋ฏธ ์žˆ๋Š” ์ผ ๊ฐ™์ง€๋„ ์•Š๊ณ , ์ด์ฏค๊นŒ์ง€ ์™”๋‹ค๋ฉด ๋Œ€์ถฉ ์–ด๋–ค ๋ช…๋ น์–ด๋“ค์ด ์žˆ๋Š”์ง€ ํŒŒ์•…ํ•˜์‹œ๊ณ , ๋‚˜์ค‘์— ํ•„์š”ํ•˜์‹ค ๋•Œ ๋ฐ์ดํ„ฐ์‹œํŠธ ์ฐพ์•„๋ณด์‹œ๋ฉด ๋  ๊ฒƒ ๊ฐ™์•„์š”. 

์ •๋ฆฌ๋ฅผ ํ•ด๋ณด์ž๋ฉด, ์ด์ œ ๋ง์”€๋“œ๋ฆด ๋ช…๋ น์€

๊ณฑํ•˜๊ธฐ ๋ช…๋ น (MUL,MLA),

๋ฐ์ดํ„ฐ ์ „์†ก ๋ช…๋ น (LDR, STR),

๋ธ”๋ก ๋ฐ์ดํ„ฐ ์ „์†ก๋ช…๋ น (LDM, STM),

๊ธฐํƒ€ ๋ช…๋ น(SWP, SWI)

์ •๋„์ž…๋‹ˆ๋‹ค. Coprocessor ๋ช…๋ น์€ ์ƒ๋žตํ•˜๋„๋ก ํ•˜๊ณ , ๋ช…๋ น์ด ๋๋‚˜๋ฉด ์‹ค์ „ ์ผ€์ด์Šค๋กœ ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ ์„ค๋ช…์„ ํ•˜๋‚˜ ๋“œ๋ฆฌ๋ ค๊ณ  ํ•˜๊ณ , ๋งˆ์ง€๋ง‰์œผ๋กœ StrongARM์˜ Spec ์ •๋„๋ฅผ ๊ฐ„๋‹จํžˆ ์–ธ๊ธ‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 

๋‚จ์€ ๋ถ€๋ถ„์ด ์•ž์œผ๋กœ ๋ช‡ ๋ฒˆ์— ๊ฑธ์ณ์„œ ๋งค๋“ญ์ง€์–ด์งˆ์ง€๋Š” ํ•ด๋ด์•ผ๊ฒ ์ง€๋งŒ, ์ตœ๋Œ€ํ•œ ์Šคํ”ผ๋””ํ•œ ์ง„ํ–‰์„ ํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค. 

์ฐจํ›„์— ๊ธฐํšŒ๊ฐ€ ๋˜๋ฉด MMU ๋ถ€๋ถ„ ๊ฐ™์€ ๊ฒƒ๋“ค์„ ์งง๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜๋„ ์žˆ๊ฒ ์ง€์š”. 

์ž, ์ด์ œ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 

โ— ๊ณฑํ•˜๊ธฐ ๋ช…๋ น(MUL, MLA) 

ARM7์—์„œ์˜ ๊ณฑํ•˜๊ธฐ ๋ช…๋ น์€ ํฌ๊ฒŒ ๋‘ ์ข…๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” ๊ทธ๋ƒฅ ๊ณฑํ•˜๋Š” ๊ฒƒ์ด๊ณ , ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ๊ณฑํ•ด์„œ ๋”ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ^^ ๋ช…๋ฃŒํ•˜์ฃ ? 

1) MUL{cond}{S} Rd,Rm,Rs 

cond ๋ถ€๋ถ„์€ ํ•ด๋‹น ๋ช…๋ น์˜ ์‹คํ–‰ ์กฐ๊ฑด์ž…๋‹ˆ๋‹ค. Sํ”Œ๋ž˜๊ทธ๋Š” ๊ฒฐ๊ณผ๊ฐ€ ํ”Œ๋ž˜๊ทธ ๋ ˆ์ง€์Šคํ„ฐ์— ์˜ํ–ฅ์„ ๋ฏธ์น ์ง€์˜ ์—ฌ๋ถ€๋ผ๊ณ  ๊ณ„์† ๋ง์”€ ๋“œ๋ ธ์ฃ ? ๋‹ค์Œ์œผ๋กœ ๋ ˆ์ง€์Šคํ„ฐ 3๊ฐœ๋ฅผ ์ง€์ •ํ•˜๋„๋ก ๋˜์–ด์žˆ๋Š”๋ฐ, Rd๋Š” ๊ฒฐ๊ณผ๊ฐ€ ์ €์žฅ๋  ๋ ˆ์ง€์Šคํ„ฐ์ด๊ณ , Rm๊ณผ Rs๋Š” ๊ณฑํ•ด์งˆ ๋‘๊ฐœ์˜ ๋ ˆ์ง€์Šคํ„ฐ์ž…๋‹ˆ๋‹ค. ๋ณด์…จ๋“ฏ์ด ์ด ๋ช…๋ น์—์„œ๋Š” ๋ ˆ์ง€์Šคํ„ฐ๋งŒ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 

Ex) MUL R1,R2,R3 ; R1:=R2*R3 

# ์ฐธ๊ณ ๋กœ ๊ณฑํ•˜๊ธฐ์˜ ๊ฒฐ๊ณผ๊ฐ€ 32๋น„ํŠธ๋ฅผ ๋„˜๋Š”๋‹ค๋ฉด, ํ•˜์œ„ 32๋น„ํŠธ๋งŒ ๊ฒฐ๊ณผ ๋ ˆ์ง€์Šคํ„ฐ์— ๋‚จ์Šต๋‹ˆ๋‹ค. 

2) MLA{cond}{S} Rd,Rm,Rs,Rn 

์œ„์™€ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค๋งŒ, ์ด๋ฒˆ์—๋Š” ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ 4๊ฐœ์ž…๋‹ˆ๋‹ค. ๋‹จ์ˆœ ๋ช…๋ฃŒํ•˜๊ฒŒ ์˜๋ฏธ๋ฅผ ๋ง์”€๋“œ๋ฆฌ๋ฉด, 

Rd := Rm * Rs + Rn ์˜ ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. 

โ— Single Data Transfer (LDR, STR) 

ํ•ด๋‹น ๋ช…๋ น์€ ๋ ˆ์ง€์Šคํ„ฐ์™€ ์™ธ๋ถ€ ๋ฉ”๋ชจ๋ฆฌ์™€์˜ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ๋‹ด๋‹นํ•˜๋Š” ๋ช…๋ น์ž…๋‹ˆ๋‹ค. ๋ฌด์ฒ™ ์‚ฌ์šฉ๋นˆ๋„๊ฐ€ ๋†’์€ ๋ช…๋ น์ž…๋‹ˆ๋‹ค. 86์—์„œ๋Š” MOVํ•˜๋‚˜๋กœ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ์ „์†ก๊ณผ, ์™ธ๋ถ€๋ฉ”๋ชจ๋ฆฌ์™€์˜ ๋ฐ์ดํ„ฐ ์ „์†ก์˜ ๋‘ ๊ฐ€์ง€ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€๋งŒ, ARM7 ์—์„œ๋Š” ๊ตฌ๋ถ„์ด ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค. 

์ฆ‰, MOV๋ช…๋ น์€ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ„์˜ ์ „์†ก๋ช…๋ น์œผ๋กœ ๋ถ„๋ฅ˜๋„ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ช…๋ น์œผ๋กœ ๋ถ„๋ฅ˜๋˜๊ณ , ๋ฐ์ดํ„ฐ ์ „์†ก๋ช…๋ น์œผ๋กœ๋Š” LDR๊ณผ STR์ด ์žˆ์Šต๋‹ˆ๋‹ค. 

์—ฌ๊ธฐ์— ์‚ฌ์šฉ๋˜๋Š” ์˜ต์…˜์ด ๋งŽ์€๋ฐ์š”, ์šฐ์„ , LDR์€ ๋กœ๋“œ๋ผ๋Š” ์˜๋ฏธ์ด๋ฏ€๋กœ ์™ธ๋ถ€ ๋ฉ”๋ชจ๋ฆฌ๋กœ๋ถ€ํ„ฐ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜ค๋Š” ๋ช…๋ น์ด๊ณ , STR์€ ๋ฐ˜๋Œ€์˜ ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ๋ช…๋ น์ž…๋‹ˆ๋‹ค. 

- ๋ช…๋ น ํ˜•์‹ 

LDR{cond}{B} Rd, address{!} Rd:= contents of address

LDR{cond}{B} Rd, =expression Rd:= expression

STR{cond}{B} Rd, address{!} contents of address := Rd 

LDR๊ณผ STR์€ Single Data ์ „์†ก ๋ช…๋ น์ž…๋‹ˆ๋‹ค. ๋น„์Šทํ•œ ๋ช…๋ น์œผ๋กœ LDM, STM์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ ˆ์ง€์Šคํ„ฐ ๋‚ด์šฉ์„ ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์ž…๋‹ˆ๋‹ค. ์ด๋ฐ–์— SWP๋ผ๋Š” ์Šค์™‘ ๋ช…๋ น์ด ์žˆ๋Š”๋ฐ, ํ•ด๋‹น 5๊ฐœ์˜ ๋ช…๋ น๋งŒ์ด ์™ธ๋ถ€ ๋ฉ”๋ชจ๋ฆฌ์™€ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ„์˜ ์ „์†ก์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ๋ช…๋ น์ž…๋‹ˆ๋‹ค. 

LDR๊ณผ STR์˜ ๊ฒฝ์šฐ ์ „์†ก ๋‹จ์œ„๋ฅผ ๋ฐ”์ดํŠธ, ํ˜น์€ ์›Œ๋“œ(32Bit)๋‹จ์œ„๋กœ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”์ดํŠธ ๋‹จ์œ„ ์ „์†ก์˜ ๊ฒฝ์šฐ ํ•ด๋‹น ๋ ˆ์ง€์Šคํ„ฐ์˜ ์–ด๋–ค ๋ถ€๋ถ„์ด ์‚ฌ์šฉ๋ ์ง€์˜ ์—ฌ๋ถ€๋Š” ํ•ด๋‹น ํ”„๋กœ์„ธ์„œ์˜ Endian์— ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜, ์›Œ๋“œ ์ „์†ก ๋ช…๋ น์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, ๋ฉ”๋ชจ๋ฆฌ ์–ด๋“œ๋ ˆ์Šค๋Š” Word align์ด ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 

๋‹ค์Œ ํ‘œ๋Š” LDR๊ณผ STR์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ „์†ก ๋ชจ๋“œ๋ฅผ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. 

--------------------------------------------------------------------

Mode Effective address Indexing

--------------------------------------------------------------------

[Rn] Rn none

[Rn,+- expression] Rn +- expression Pre-indexed

[Rn,+- Rm] Rn +- Rm Pre-indexed

[Rn,+- Rm, shift cnt] Rn+-(Rm shifted by cnt) Pre-indexed

[Rn],+-expression Rn Post-indexed

[Rn],+-Rm Rn Post-indexed

[Rn],+-Rm,shift cnt Rn Post-indexed

-------------------------------------------------------------------- 

# Rn : base ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ ˆ์ง€์Šคํ„ฐ

Rm : r15๋ฅผ ์ œ์™ธํ•œ ๋ ˆ์ง€์Šคํ„ฐ(Offset), ๋ถ€ํ˜ธ ๊ฐ’ ์‚ฌ์šฉ

expression : -4095 - +4096 ๋ฒ”์œ„์˜ Immediate ๊ฐ’(12Bit)

shift : LSL, LSR, ASR, ROR, RRX

cnt : 1..31 ์‚ฌ์ด์˜ ๊ฐ’. 

์ƒ๋‹นํžˆ ๋ณต์žกํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ํ‘œ์—์„œ Mode ๋ถ€๋ถ„์ด ์‹ค์ œ ์–ด์…ˆ๋ธ”๋Ÿฌ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์˜ ํ˜•์‹์ด๋ผ๊ณ  ๋ณด์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ฐ ๋ชจ๋“œ๋ณ„๋กœ ์˜ˆ์ œ๋ฅผ ๋“ค์–ด์„œ ์„ค๋ช…ํ•˜๋„๋ก ํ•˜์ฃ . 

1) Pre-Indexed Addressing Mode 

์ด ๋ชจ๋“œ์—์„œ๋Š” Rn์„ ๋ฒ ์ด์Šค ์ฃผ์†Œ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ๋”ํ•ด์„œ Offset์„ ์ง€์ •ํ•˜๊ฑฐ๋‚˜, ํ˜น์€ ์ง€์ •ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Offset์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ์—๋Š” ํ•ด๋‹น Offset์„ ๋ฒ ์ด์Šค ์ฃผ์†Œ์—์„œ ๋”ํ•˜๋„๋ก ํ•˜๊ฑฐ๋‚˜ ๋บ„ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์œ„์˜ ํ‘œ์—์„œ +, - ๊ธฐํ˜ธ๊ฐ€ ๊ทธ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. 

Offset์€ ๋ถ€ํ˜ธ๊ฐ€ ์žˆ๋Š” 12Bit Immediate๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ง€์ •ํ•ด์„œ ํ•ด๋‹น ๋ ˆ์ง€์Šคํ„ฐ์˜ ๋‚ด์šฉ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ Offset์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” Shift ์‹œ์ผœ์„œ ์ ์šฉ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ด€๋ จ ๋‚ด์šฉ์„ ๋‹ค์‹œ ํ™•์ธํ•˜๊ณ  ์‹ถ์œผ์‹  ๋ถ„๋“ค์€ ๋ฐ์ดํ„ฐ ์ „์†ก๋ช…๋ น์˜ ์˜คํผ๋žœ๋“œ 2์— ๋Œ€ํ•œ ์„ค๋ช…์„ ๋‹ค์‹œ ํ™•์ธํ•˜์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. 

Ex) LDR r0,[r1] ; r1์„ ๋ฒ ์ด์Šค๋กœ ์‚ฌ์šฉํ•˜๊ณ  Offset์€ ์ง€์ •ํ•˜์ง€ ์•Š๋Š” ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค. r0์— r1์„ ๋ฒˆ์ง€๋กœ ํ•˜๋Š” ์›Œ๋“œ(4๋ฐ”์ดํŠธ)๋ฅผ ์ฝ์–ด๋“œ๋ฆฝ๋‹ˆ๋‹ค.

LDR r0,[r1,#132] ; ์ด๋ฒˆ์—๋Š” Offset์œผ๋กœ 132๋ฅผ ์ง€์ •ํ•œ ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค.

STR r0,[r1,r2] ; ๋ฒ ์ด์Šค๋Š” r1, Offset์€ r2๋ฅผ ์‚ฌ์šฉํ•œ ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค. ์ฆ‰

*(r1+r2)=r0 ์™€ ๊ฐ™์€ ์˜๋ฏธ.

LDR r0,[r1,r2,LSL #2] ; ๋ฒ ์ด์Šค r1, Offset์€ r2<<2 ์˜ ํ˜•ํƒœ. 

์ด๋ฒˆ์—๋Š” Write-Back ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. LDR๋ช…๋ น์˜ ๊ฒฝ์šฐ ์˜ต์…˜์œผ๋กœ Write-Back์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ง€์ •ํ•  ๊ฒฝ์šฐ ์›๋ž˜ ๋ฒ ์ด์Šค์— Offset์„ ๋”ํ•œ ๊ฐ’์„ ๋‹ค์‹œ ๋ฒ ์ด์Šค ๋ ˆ์ง€์Šคํ„ฐ๋กœ ๋„ฃ๋Š” ๊ธฐ๋Šฅ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ œ ์ƒ๊ฐ์—๋Š” ์ด ๊ธฐ๋Šฅ์ด C์—์„œ ++์™€ ๊ฐ™์€ ์˜๋ฏธ๋ผ ์ƒ๊ฐ๋˜๋Š”๋ฐ์š”. ๊ธ€์Ž„, ์“ฐ๊ธฐ ๋‚˜๋ฆ„์ด๊ฒ ์ง€์š”. ๋‹ค์Œ์€ ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค. 

Ex)

1: LDR r0,=table_end

2: LDR r1,=table

3:

4: MOV r2,#0

5:loop STR r2,[r0,#-4]!

6:

7: ADD r2,r2,#1

8: CMP r0,r1

9: BNE loop

10:

11: ...

12:

13: ALIGN

14:table % table_length*4

15:table_end 

์˜ˆ์ œ๊ฐ€ ์ข€ ๊ธธ๊ตฐ์š”. ์ฃผ์˜ํ•ด์„œ ๋ณด์‹ค ๋ถ€๋ถ„์€ 5๋ฒˆ ๋ผ์ธ์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ช…๋ น์€ STR r2,[r0,#-4]! ์ด์ฃ . r2๋ฅผ r0๋ฅผ ๋ฒ ์ด์Šค๋กœ ์‚ผ๊ณ  Offset์œผ๋กœ -4๊ฐ’์„ ์‚ฌ์šฉํ–ˆ๊ตฐ์š”. r0๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ๊ฐ€ ์‹ค์ œ ๋ฒ„ํผ๋กœ ์‚ฌ์šฉํ•  ๊ณต๊ฐ„์ด ๋๋‚œ ๋ฐ”๋กœ ๋‹ค์Œ์„ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ์œผ๋ฏ€๋กœ -4๋ฅผ ํ•˜๋ฉด ๋งˆ์ง€๋ง‰ ์›Œ๋“œ ์—”ํŠธ๋ฆฌ ํฌ์ธํŠธ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ฃผ์˜ํ•˜์‹ค ์ ์€ !๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒƒ์ธ๋ฐ์š”. ์ด๊ฒƒ์ด ๋ฐ”๋กœ Write-Back๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ์œ„์˜ ์„ค๋ช…์— ๋‚˜์™€์žˆ๋“ฏ์ด ๋ฒ ์ด์Šค ๊ฐ’(์—ฌ๊ธฐ์„œ๋Š” r0๊ฐ€ ๋˜๊ฒ ๊ตฐ์š”.)์„ ๊ฐฑ์‹ ํ•˜๋Š” ๊ฒƒ์ธ๋ฐ์š”... 

์˜ˆ๋ฅผ ๋“ค์–ด 1000๋ฒˆ์ง€๋ถ€ํ„ฐ 2๊ฐœ์˜ entry๋ฅผ ๊ฐ€์ •ํ•œ๋‹ค๋ฉด, table์€ 1000์ด ๋  ๊ฒƒ์ด๊ณ  table_end๋Š” 1008 ๋ฒˆ์ง€๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋•Œ STR๋ช…๋ น์—์„œ 1008์„ ๋ฒ ์ด์Šค๋กœ -4๋ฅผ Offset์œผ๋กœ ์„ค์ •ํ–ˆ์œผ๋ฏ€๋กœ ์‹ค์ œ๋กœ r2๊ฐ’์€ 1004๋ฒˆ์ง€๋ถ€ํ„ฐ 4๋ฐ”์ดํŠธ์— ๊ธฐ๋ก์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ดํ›„ Write-Back ์˜ต์…˜์ด ์ ์šฉ๋˜์–ด ํ•ด๋‹น ๋ช…๋ น์ด ๋๋‚˜๋ฉด r0๊ฐ’์€ 1004๋กœ (1008-4) ๋ฐ”๋€Œ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. 

์ฐธ, ์—ฌ๊ธฐ์„œ Pre-Index Mode์ด๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ ์ฃผ์†Œ๋ฅผ ๊ตฌํ•  ๋•Œ Offset์„ ๋จผ์ € ๋นผ ์ฃผ์—ˆ๊ตฐ์š”. ์•„๋ฌด์ชผ๋ก ์ดํ•ด ํ•˜์…จ๊ธฐ๋ฅผ ๋ฐ”๋ผ๋ฉฐ ๋‹ค์Œ์œผ๋กœ ๋„˜์–ด๊ฐ€๋ ต๋‹ˆ๋‹ค. 

2) Post-Indexed Addressing Mode 

Post์ธ๋ฑ์Šค ๋ชจ๋“œ์˜ ๊ฒฝ์šฐ์—๋Š” Pre์ธ๋ฑ์Šค ๋ชจ๋“œ์— ๋น„ํ•ด Effective Address๋Š” ํ•ญ์ƒ Rn, ์ฆ‰ ๋ฒ ์ด์Šค ์–ด๋“œ๋ ˆ์Šค๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ ˆ์ง€์Šคํ„ฐ์˜ ๊ฐ’์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•œ๊ฐ€์ง€ ์ฃผ์˜ํ•˜์‹ค ์ ์€ Post์ธ๋ฑ์Šค ๋ชจ๋“œ์˜ ๊ฒฝ์šฐ์—” ๋”ฐ๋กœ !๋ฅผ ์‚ฌ์šฉ ํ•˜์ง€ ์•Š๋”๋ผ๋„ ๋””ํดํŠธ๋กœ Write-Back ๋ชจ๋“œ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒ ์ฃ ? Post์ธ๋ฐ Write-Back์ด ์•ˆ๋œ๋‹ค๋ฉด, Offset์„ ์‚ฌ์šฉํ•  ์ด์œ ๊ฐ€ ์—†๊ตฐ์š”. 

Ex) LDR r0,[r1],r2 ; ๋Œ€๊ด„ํ˜ธ์˜ ์‚ฌ์šฉ์ด Pre ์ธ๋ฑ์Šค์˜ ๊ฒฝ์šฐ์™€

๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์‹ค์ œ ์ˆ˜ํ–‰๋˜๋Š” ๊ฒƒ์€ r0์—๋‹ค

r1์„ ์ฃผ์†Œ๋กœ ํ•˜์—ฌ ๊ฐ’์„ ์ฝ์–ด์˜ค๊ณ  ๋‹ค์‹œ

r1์—๋Š” r2๋ฅผ ๋”ํ•ด์ฃผ๋Š” ์ผ์„ ํ•ฉ๋‹ˆ๋‹ค. 

STR r0,[r1],#20 ; [r1]:=r0, r1:=r1+20 

1: LDR r0,=table

2: LDR r1,=table_end

3:

4: MOV r2,#0

5:loop STR r2,[r0], #4

6:

7: ADD r2,r2,#1

8: CMP r0,r1

9: BNE loop

10:

11: ...

12:

13: ALIGN

14:table % table_length*4

15:table_end 

๋งˆ์ง€๋ง‰ ์˜ˆ์ œ๋Š” ์œ„์—์„œ ๋‚˜์™”๋˜ ์˜ˆ์ œ์™€ ๋น„์Šทํ•˜๋‹ˆ ์ž˜ ๋ถ„์„ํ•ด ๋ณด์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. 

3) Relative Addressing Mode 

ํ•ด๋‹น Addressing ๋ชจ๋“œ๋Š” ์–ด์…ˆ๋ธ”๋Ÿฌ๊ฐ€ ์ ์ ˆํžˆ ์ง€์›ํ•˜์—ฌ ๋ณ€ํ™˜ํ•ด ์ฃผ๋Š” ๋ชจ๋“œ๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. 

Ex) LDR r5,ThreeCubed

... 

ThreeCubed DCD 27 

์œ„์™€ ๊ฐ™์€ ๊ฒฝ์šฐ ์‹ค์ œ๋กœ๋Š” LDR r5,[PC,#constant] ํ˜•ํƒœ์˜ ์ฝ”๋“œ๋กœ ๋ฒˆ์—ญํ•ด ์ค๋‹ˆ๋‹ค. ์ฆ‰ PC๋ฅผ ๋ฒ ์ด์Šค๋กœ ์‚ผ์•„์„œ ์ฝ”๋“œ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด์ง€์š”. ๋งŒ์•ฝ ํ•ด๋‹น Symbol์ด ์ง€์ •ํ•˜๋Š” ๋ฒ”์œ„๊ฐ€ ๋„ˆ๋ฌด ์ปค์„œ ์ƒ์ˆ˜๋กœ ์ง€์ •ํ•  ์ˆ˜ ์—†๋‹ค๋ฉด ์–ด์…ˆ๋ธ”์„ ํ•  ๋•Œ ์—๋Ÿฌ๋ฅผ ๋‚ด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. 

๋˜ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ํ‘œํ˜„์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ‘œํ˜„์ด ์žˆ์Šต๋‹ˆ๋‹ค. 

Ex) LDR r0,=0x12345678 

์‚ฌ์‹ค์€ ์œ„์˜ ์˜ˆ์—์„œ๋„ ์‚ฌ์šฉํ–ˆ์—ˆ๋Š”๋ฐ์š”. ์ด ๊ฒฝ์šฐ ์–ด์…ˆ๋ธ”๋Ÿฌ๊ฐ€ ํ•ด๋‹น ์ƒ์ˆ˜ ๊ฐ’์„ ํŠน์ • ๊ณต๊ฐ„์— ๋ชจ์•„์„œ ์‚ฝ์ž… ํ•ด ์ฃผ๊ณ  (์ด๊ณต๊ฐ„์„ Literal Pool์ด๋ผ ํ•˜๋Š”๊ตฐ์š”) ์—ญ์‹œ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ PC๋ฅผ ๋ฒ ์ด์Šค๋กœ ํ•ด์„œ ๋ช…๋ น์ฝ”๋“œ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. 


์ž.. ์˜ค๋Š˜์€ ์ด๋งŒ ์“ฐ๋ ต๋‹ˆ๋‹ค. ์‚ฌ์‹ค ์—ด๋‘๋ฒˆ์งธ ๊ฐ•์ขŒ๋Š” ์“ฐ๊ธฐ ์‹œ์ž‘ํ•œ์ง€ ๋ช‡ ์ฃผ๋งŒ์— ๋๋‚ด๊ฒŒ ๋˜๋Š”๊ตฐ์š”. ์ค‘๊ฐ„์— ๊ณ„์† ์ผ์ด ์ƒ๊ฒจ์„œ. ๋ฏธ๋ค„๋‘๊ณ  ์žˆ๋‹ค๊ฐ€, ๋ฉ”์ผ๋กœ ๊ฐ•์ขŒ๋ฅผ ์žฌ์ด‰ํ•˜์‹œ๋Š” ๋ถ„๋“ค์ด ๊ณ„์…”์„œ. 

์•„๋ฌดํŠผ, ๋‹ค์Œ๊ฐ•์ขŒ์— ๋ต™๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

--------------------------------------------------------------------

ARM7 ๊ฐ•์ขŒ [13] : Instruction Set (7)

-------------------------------------------------------------------- 

โ— Block Data Transfer ๋ช…๋ น(LDM,STM) 

ํ•ด๋‹น ๋ช…๋ น์€ ๊ฐœ์ธ์ ์ธ ์ƒ๊ฐ์œผ๋กœ ์ฐธ ๋…ํŠนํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ง€๋‚œ ๊ฐ•์ขŒ์—์„œ ๋‹ค๋ฃจ์—ˆ๋˜ LDR, STR๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ์— ๋ ˆ์ง€์Šคํ„ฐ์˜ ๋‚ด์šฉ์„ ์ „๋‹ฌํ•˜๊ฑฐ๋‚˜, ์ „๋‹ฌ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์ž…๋‹ˆ๋‹ค. ARM7์—์„œ๋Š” ์ด๋Ÿฐ ๋ช…๋ น์ด ๋ช‡ ์•ˆ๋˜์ฃ ... 

LDR๋ช…๋ น์ด ๋ฉ”๋ชจ๋ฆฌ ๋ฒˆ์ง€์˜ ๋‚ด์šฉ์„ ์ง€์ •๋œ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ๊ฐ€์ ธ์˜ค๋Š” ๋ช…๋ น์ด๋ผ๋ฉด LDM์€ ๊ฐ€์ ธ์˜ค๊ธด ํ•˜๋Š”๋ฐ, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ ˆ์ง€์Šคํ„ฐ์˜ ๋‚ด์šฉ์„ ํ•œ ํ์— ๊ฐ€์ ธ์˜ค๋Š” ๋ช…๋ น์ž…๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ๋Š” ์Šคํƒ ์—ฐ์‚ฐ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ „์— ๋ง์”€๋“œ๋ ธ์—ˆ์ง€๋งŒ, ARM7์—๋Š” Push, Pop ๋ช…๋ น์ด ์—†์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  LDR์ด๋‚˜ STR์„ ์“ธ ์ˆ˜๋„ ์žˆ๊ฒ ๊ณ , ๋˜ LDM์ด๋‚˜ STM์„ ์“ธ ์ˆ˜๋„ ์žˆ์ฃ . ํ›„์ž ์ชฝ์ด ๋” ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค. 

1) <LDM|STM>{cond}mode Rn{!},{reg_list}{^} 

์œ„ ๋ช…๋ น์—์„œ {cond}๋Š” ๋Š˜ ๋ณด์•„์˜ค๋˜ ๋ช…๋ น์–ด ์‹คํ–‰ ์กฐ๊ฑด์ž…๋‹ˆ๋‹ค. Rn์€ ์ „์†ก์— ์‚ฌ์šฉ๋  ๋ฒ ์ด์Šค ๋ฒˆ์ง€๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ์ž…๋‹ˆ๋‹ค. !๋ฅผ ๋ถ™์ด๋ฉด Wrte Back ๊ธฐ๋Šฅ์ด์ฃ . LDR๊ณผ STR์—์„œ ๋‹ค๋ฃจ์—ˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋’ค์—์„œ ์–ธ๊ธ‰ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 

{reg_list} ๋ถ€๋ถ„์€ ์ „์†กํ•˜๊ฑฐ๋‚˜ ์ „์†ก ๋ฐ›์„ ๋ ˆ์ง€์Šคํ„ฐ์˜ ๋ชฉ๋ก์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 1000๋ฒˆ์ง€์— r1,r2,r3๋ฅผ ์ €์žฅํ•˜๊ณ  ์‹ถ๋‹ค ํ–ˆ์„ ๊ฒฝ์šฐ์—, ์ผ๋‹จ 1000๋ฒˆ์ง€ ๊ฐ’์„ ์–ด๋–ค ๋ ˆ์ง€์Šคํ„ฐ์— ๋„ฃ์–ด๋‘๊ณ , ์—ฌ๊ธฐ์„œ๋Š” ๊ทธ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ r13์ด๋ผ๊ณ  ํ•˜์ฃ , ๊ทธ๋Ÿฌ๋ฉด Rn์€ r13์ด ๋˜๋Š” ๊ฑฐ๊ตฌ์š”, {reg_list}๋Š” {r1,r2,r3} ์ด ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. mode ๋ผ๊ณ  ๋˜์–ด์žˆ๋Š” ๋ถ€๋ถ„์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ๋„ฃ๊ฑฐ๋‚˜ ๊ฐ€์ ธ์˜ฌ ๋•Œ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•  ์ง€๋ฅผ ์ง€์ •ํ•˜๋Š” ์ ‘๋ฏธ์‚ฌ์ž…๋‹ˆ๋‹ค. ์ด ์ ‘๋ฏธ์‚ฌ ์ข…๋ฅ˜๊ฐ€ 8๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ์š”. 

๋ฌด์ง€ํ•˜๊ฒŒ ๋ณต์žกํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. ์ผ๋‹จ์€ ๊ฐ ์š”์†Œ์˜ ์˜๋ฏธ๋งŒ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌํ•˜๊ณ , ๋‹ค์Œ์œผ๋กœ ๋„˜์–ด๊ฐ€์ฃ . 

๋งˆ์ง€๋ง‰์œผ๋กœ {^}๋ถ€๋ถ„์€... ๊ธ€์Ž„์š” ์ž˜ ์ดํ•ด๊ฐ€ ์•ˆ๋˜๋Š” ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค๋งŒ, ์ œ๊ฐ€ ๋ณด๋Š” ์ฑ…๊ณผ ๋ฐ์ดํ„ฐ ์‹œํŠธ์—์„œ ์˜ˆ์ œ๊ฐ€ ๋‚˜์™€ ์žˆ์ง€ ์•Š๊ตฐ์š”. ๊ทธ๋ƒฅ ๋ฌธ์„œ์˜ ๋‚ด์šฉ์„ ๊ทธ๋Œ€๋กœ ์ ์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 

{^} if present set S bit to load the CPSR along with the PC, or

force transfer of user bank when in privileged mode...(???) 

์ž, ๊ทธ๋Ÿผ ์ด์ œ ๋ณธ๊ฒฉ์ ์œผ๋กœ ์„ค๋ช…์— ๋“ค์–ด๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค. 

๋จผ์ € 1๋‹จ๊ณ„, LDM ๊ณผ STM์˜ ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. 

LDM : ๋ฒ ์ด์Šค ๋ ˆ์ง€์Šคํ„ฐ(Rn)๋กœ ์ง€์ •๋œ ๋ฒˆ์ง€์—์„œ ๋ ˆ์ง€์Šคํ„ฐ ๋ชฉ๋ก์œผ๋กœ ์ง€์ •๋œ ๊ฐ ๋ ˆ์ง€์Šคํ„ฐ์˜ ๋‚ด์šฉ์„ ์ฝ์–ด๋“ค์ด๋Š” ๋ช…๋ น.

STM : LDM๊ณผ ๋ฐ˜๋Œ€. 

์—ฌ๊ธฐ๊นŒ์ง€๋Š” ๋ณ„ ๋ฌด๋ฆฌ๊ฐ€ ์—†์œผ๋ฆฌ๋ผ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ˜น์‹œ ์ด ๋ช…๋ น์„ 8086๋“ฑ์— ์žˆ๋Š” Block Data ์ „์†ก๋ช…๋ น ๋“ฑ๊ณผ ํ˜ผ๋™ํ•˜์ง€ ์•Š์œผ์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์–ด๋ ดํ’‹์ด ๊ธฐ์–ตํ•˜๋Š”๋ฐ, 8086๋“ฑ์—๋Š” ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋กœ Block ์ „์†ก์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์ด ์žˆ์ฃ ... ๋˜๋Š” ํŠน์ • ๊ธธ์ด๋งŒํผ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์–ด๋–ค ๊ฐ’์œผ๋กœ ์„ค์ •ํ•˜๋Š” Block ์„ค์ • ๋ช…๋ น๋„ ์žˆ์—ˆ๋˜ ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค. 

ARM7์˜ LDM๊ณผ STM์€ Block ์ „์†ก์ด ์•„๋‹ˆ๋ผ Multiple Register ์ „์†ก์ž…๋‹ˆ๋‹ค.

์‰ฝ๊ฒŒ ์ƒ๊ฐํ•˜๋ฉด 

push ax

push bx

push cx

push dx 

๊ฐ€ 8086ํ˜•ํƒœ๋ผ๊ณ  ํ•  ๋•Œ, ARM7์—์„œ Single ๋ฐ์ดํ„ฐ ์ „์†ก ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋ฉด 

STR r0,[sp],#4

STR r1,[sp],#4

STR r3,[sp],#4

STR r4,[sp],#4 

๊ฐ€ ๋˜๊ฒ ๊ณ , ๋˜ Multiple ์ „์†ก๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋ฉด, 

STMEA sp!,{r0,r1,r2,r4} 

์ œ๊ฐ€ ๋ฐฉ๊ธˆ ์ ์–ด๋ณธ ๊ฒƒ์ด๋ผ ๋งž๋Š” ๊ฒƒ์ธ์ง€ ํ™•์‹ ์€ ์—†์Šต๋‹ˆ๋‹ค๋งŒ, ๊ทธ๋ƒฅ ๊ฐœ๋…์ด ์ด๋ ‡๋‹ค๋Š” ๊ฒƒ๋งŒ ํŒŒ์•…ํ•˜์…จ์œผ๋ฉด ํ•ฉ๋‹ˆ๋‹ค. 

๊ทธ๋Ÿฌ๋ฉด ์ด์ œ 2๋‹จ๊ณ„, {Reg_List}๋ฅผ ์ž์„ธํžˆ ๋‹ค๋ฃจ์–ด ๋ณด์ฃ . ์œ„์˜ ์˜ˆ์—์„œ ๋‚˜์™€์žˆ๋“ฏ์ด ์ค‘๊ด„ํ˜ธ ์‚ฌ์ด์— ์ „์†ก ๋Œ€์ƒ์ด ๋˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๋ช‡ ๊ฐœ๊นŒ์ง€ ๊ฐ€๋Šฅํ•œ ๊ฒƒ์ผ๊นŒ์š”? ARM7์—์„œ ํ•œ ์‹œ์ ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ ˆ์ง€์Šคํ„ฐ์˜ ๊ฐœ์ˆ˜๋Š” r0์—์„œ r15๊นŒ์ง€ ์ด 16๊ฐœ์ฃ . LDM์ด๋‚˜ STM๋ช…๋ น์—์„œ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋ ˆ์ง€์Šคํ„ฐ์˜ ๊ฐœ์ˆ˜๋Š” ์ตœ๋Œ€ 16๊ฐœ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ํ•œ ๋ช…๋ น์œผ๋กœ ๋ชจ๋“  ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ฑฐ๋‚˜, ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. 

์ฐธ ์žฌ๋ฏธ์žˆ๋Š” ์‚ฌ์‹ค์€, LDM๋ช…๋ น์˜ ๋‹ˆ๋ชจ๋‹‰์ƒ์— 16๋น„ํŠธ์˜ ๊ณต๊ฐ„์ด ์žˆ์–ด์„œ ๊ฐ ๋น„ํŠธ๊ฐ€ ๋ ˆ์ง€์Šคํ„ฐ r0-r15์™€ 1:1๋กœ ๋Œ€์‘์ด ๋œ๋‹ค๋Š” ์‚ฌ์‹ค์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ {reg_list}์—๋Š” ์–ด๋– ํ•œ ๋ ˆ์ง€์Šคํ„ฐ์˜ ์กฐํ•ฉ๋„ ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ๋™ ! 

๊ทธ๋ฆฌ๊ณ  ์–ด์…ˆ๋ธ”๋Ÿฌ์˜ ๋ฌธ์ œ๊ฒ ์ง€๋งŒ, {r0,r2} ์ด๋Ÿฐ ํ˜•์‹๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, {r0-r5} ์™€ ๊ฐ™์€ ํ˜•์‹, {r0-r3,r6-r7} ์ด๋Ÿฐ ํ˜•์‹๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

๋งˆ์ง€๋ง‰์œผ๋กœ ํ™•์ธํ•  ๊ฒƒ์€, {r3,r2,r1} ์ด๋ ‡๊ฒŒ ์ผ์„ ๋•Œ์™€ {r1,r2,r3} ์ด๋ ‡๊ฒŒ ์ผ์„ ๊ฒฝ์šฐ, ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜๋Š” ์ˆœ์„œ๊ฐ€ ๋‹ค๋ฅผ๊นŒ์š”. ์•„๋‹๊นŒ์š”. ๋ง์”€๋“œ๋ ธ๋“ฏ์ด 16๋น„ํŠธ์˜ ๋น„ํŠธํ•„๋“œ๊ฐ€ ์กด์žฌํ•ด์„œ ๊ฐ๊ฐ ๋ ˆ์ง€์Šคํ„ฐ์™€ 1:1๋Œ€์‘์ด ๋œ๋‹ค๊ณ  ํ•˜์˜€์œผ๋‹ˆ, ์†Œ์Šค์ฝ”๋“œ์—์„œ ์–ด๋–ค ํ˜•์‹์„ ์“ฐ๋“ ์ง€ ๊ฐ„์— ๋‹ˆ๋ชจ๋‹‰์œผ๋กœ ๋ณ€ํ™˜๋  ๋•Œ๋Š” ๊ทธ ์ˆœ์„œ๋Š” ์•„๋ฌด ์˜๋ฏธ๊ฐ€ ์—†๊ฒ ์ง€์š”. ๊ฒฐ๊ตญ ๊ฐ™๋‹ค๋Š” ๋ง์ž…๋‹ˆ๋‹ค. 

์ž. ์ด๋ฒˆ์—๋Š” 3๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค. ๋™์ž‘ ๋ชจ๋“œ!!! 

์œ„์˜ STM๋ช…๋ น์—์„œ ์ œ๊ฐ€ STMEA๋ผ๊ณ  ๋ช…๋ น์„ ์ ์—ˆ์Šต๋‹ˆ๋‹ค. EA๊ฐ€ ๋™์ž‘๋ชจ๋“œ๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ์ด์™€ ๊ฐ™์€ ํ‚ค์›Œ๋“œ๊ฐ€ 8๊ฐ€์ง€๊ฐ€ ์žˆ๊ณ , ๋™์ž‘๋ชจ๋“œ๋Š” 4๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. 

๋จผ์ € 4๊ฐ€์ง€์˜ ๋™์ž‘๋ชจ๋“œ๋ฅผ ๋ง์”€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. 

A) Post-Increment Addressing 

์—ฌ๊ธฐ์„œ ๋™์ž‘๋ชจ๋“œ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’์„ ๋ฉ”๋ชจ๋ฆฌ๋กœ(ํ˜น์€ ๋กœ๋ถ€ํ„ฐ) ์ „์†กํ•  ๊ฒฝ์šฐ ํ•ด๋‹น ๋ฉ”๋ชจ๋ฆฌ ๋ฒˆ์ง€๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๋ฉด์„œ ์ €์žฅํ• ์ง€, ํ˜น์€ ๊ฐ์†Œ์‹œํ‚ค๋ฉด์„œ ์ €์žฅํ• ์ง€๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒƒ๊ณผ, ์ฆ/๊ฐ์„ ํ•˜๋Š”๋ฐ, ์ €์žฅํ•˜๊ธฐ ์ „์— ์ฆ/๊ฐ์„ ํ• ์ง€, ์•„๋‹ˆ๋ฉด ์ €์žฅํ•˜๊ณ  ๋‚˜์„œ ์ฆ/๊ฐ์„ ํ• ์ง€๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. 

์ฒ˜์Œ ์„ค๋ช…ํ•  ๋™์ž‘๋ชจ๋“œ๋Š” ์ €์žฅ ์ดํ›„ ์ฆ๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. 

์˜ˆ๋ฅผ ๋“ค์–ด R10์— 0x1000์ด ๋“ค์–ด์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  R10์„ ๋ฒ ์ด์Šค๋ ˆ์ง€์Šคํ„ฐ๋กœ ์‚ฌ์šฉํ•ด์„œ {r1,r2}๋ฅผ ์ €์žฅํ•œ๋‹ค๋ฉด, Post-Increment๋ชจ๋“œ์—์„œ๋Š”, 

1. 0x1000 ๋ฒˆ์ง€์— r1์ด ์ €์žฅ๋œ๋‹ค.

2. Base ๋ฒˆ์ง€๊ฐ’์ด 0x1004๋กœ ์ฆ๊ฐ€ํ•œ๋‹ค.

3. 0x1004 ๋ฒˆ์ง€์— r2๊ฐ€ ์ €์žฅ๋œ๋‹ค.

4. Base ๋ฒˆ์ง€๊ฐ’์€ 0x1008๋กœ ์ฆ๊ฐ€ํ•œ๋‹ค. 

๋งŒ์•ฝ !๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค๋ฉด r10์˜ ๊ฐ’์€ 0x1008์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. 

B) Pre-Increment Addressing 

๋ง ๊ทธ๋Œ€๋กœ ๋จผ์ € ์ฆ๊ฐ€ํ•˜๊ณ  ๋‹ค์Œ์— ์ €์žฅํ•˜๋Š” ๋™์ž‘ ๋ชจ๋“œ์ž…๋‹ˆ๋‹ค. ์œ„์™€ ๊ฐ™์€ ์กฐ๊ฑด์„ ๊ฐ€์ •ํ•ด ๋ด…์‹œ๋‹ค. 

1. Base ๋ฒˆ์ง€๊ฐ’์ด 0x1004๋กœ ์ฆ๊ฐ€ํ•œ๋‹ค.

2. 0x1004๋ฒˆ์ง€์— r1์ด ์ €์žฅ๋œ๋‹ค.

3. Base ๋ฒˆ์ง€๊ฐ’์ด 0x1008๋กœ ์ฆ๊ฐ€ํ•œ๋‹ค.

4. 0x1008๋ฒˆ์ง€์— r2๊ฐ€ ์ €์žฅ๋œ๋‹ค. 

์—ญ์‹œ !๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค๋ฉด r10์˜ ๊ฐ’์€ 0x1008์ด ๋ฉ๋‹ˆ๋‹ค. 

C) Post-Decrement Addressing 

์ด๋ฒˆ์—๋Š” ๋ฒ ์ด์Šค ๋ฒˆ์ง€๊ฐ€ ๊ฐ์†Œํ•˜๋Š” ๊ฒฝ์šฐ์ฃ . ์ข€ ํŠน์ดํ•œ ๊ฒƒ์€, ๊ฐ์†Œ ๋ชจ๋“œ๋กœ ์ €์žฅ(๋กœ๋“œ)์„ ํ•  ๊ฒฝ์šฐ ์•„๊นŒ๋Š” ๋ ˆ์ง€์Šคํ„ฐ๋ฒˆํ˜ธ๊ฐ€ ๋น ๋ฅธ ๊ฒƒ๋ถ€ํ„ฐ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ๋ถˆ๋Ÿฌ๋“ค์˜€๋Š”๋ฐ, ์ด๋ฒˆ์—๋Š” ๊ฑฐ๊พธ๋กœ ๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ, ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ์˜ ์ˆœ์„œ๋Š” ํ•ญ์ƒ ๋™์ผํ•˜๋‹ค๋Š” ๊ฒƒ์ด์ฃ . ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ฐ™์€ ์กฐ๊ฑด์—์„œ ์˜ˆ์ œ๋ฅผ ๋“ค๊ฒ ์Šต๋‹ˆ๋‹ค. 

1. 0x1000๋ฒˆ์ง€์— r2๊ฐ€ ์ €์žฅ๋œ๋‹ค.(!!! r1์ด ์•„๋‹ˆ๋ผ r2)

2. Base๋ฒˆ์ง€๊ฐ’์ด 0x0FFC๋กœ ๊ฐ์†Œ๋œ๋‹ค.

3. 0x0FFC๋ฒˆ์ง€์— r1์ด ์ €์žฅ๋œ๋‹ค.

4. Base๋ฒˆ์ง€๊ฐ’์ด 0x0FF8๋กœ ๊ฐ์†Œ๋œ๋‹ค. 

๋งŒ์•ฝ !๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค๋ฉด r10์˜ ๊ฐ’์€ 0xFF8์ด ๋œ๋‹ค. 

D) Pre-Decrement Addressing 

1. Base๋ฒˆ์ง€๊ฐ’์ด 0x0FFC๋กœ ๊ฐ์†Œ๋œ๋‹ค.

2. 0x0FFC๋ฒˆ์ง€์— r2๊ฐ€ ์ €์žฅ๋œ๋‹ค.

3. Base๋ฒˆ์ง€๊ฐ’์ด 0x0FF8๋กœ ๊ฐ์†Œ๋œ๋‹ค.

4. 0x0FF8๋ฒˆ์ง€์— r1์ด ์ €์žฅ๋œ๋‹ค. 

๋งŒ์•ฝ !๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค๋ฉด r10์˜ ๊ฐ’์€ 0xFF8์ด ๋œ๋‹ค. 

์—ฌ๊ธฐ๊นŒ์ง€ 4๊ฐœ์˜ ๋™์ž‘๋ชจ๋“œ๋ฅผ ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค. 

๋™์ž‘๋ชจ๋“œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ‚ค์›Œ๋“œ๋Š” 8๊ฐœ์ธ๋ฐ์š”. ๊ฐ๊ฐ์˜ ๋™์ž‘๋ชจ๋“œ์— ๋Œ€ํ•ด์„œ ์Šคํƒ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, ํ˜น์€ ์•„๋‹ ๊ฒฝ์šฐ 2๊ฐ€์ง€๋กœ ๋‚˜๋ˆ„์–ด์„œ ๋‚˜ํƒ€๋‚ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. 

๋‹ค์Œ ํ‘œ๋Š” ๊ฐ ๋™์ž‘๋ชจ๋“œ์— ๋Œ€ํ•œ ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค. 

==================================================================

๋™์ž‘ Stack Other

------------------------------------------------------------------

pre increment load LDMED LDMIB

post increment load LDMFD LDMIA

pre decrement load LDMEA LDMDB

post decrement load LDMFA LDMDA 

pre increment store STMFA STMIB

post increment store STMEA STMIA

pre decrement store STMFD STMDB

post decrement store STMED STMDA

================================================================== 

Stack์ธ ๊ฒฝ์šฐ์™€ ์•„๋‹Œ ๊ฒฝ์šฐ ํ‚ค์›Œ๋“œ๊ฐ€ ๋‹ค๋ฅธ ๊ฒƒ์€, ๋‹จ์ง€ User์˜ ํŽธ์˜๋ฅผ ์œ„ํ•œ ๋ฐฐ๋ ค๋ผ๊ณ  ์ƒ๊ฐ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ํ‚ค์›Œ๋“œ๋ฅผ LDMED๋กœ ์ผ์„ ๊ฒฝ์šฐ๋‚˜ LDMIB๋กœ ์ผ์„ ๊ฒฝ์šฐ, ๋™์ž‘์ƒ์— ์ฐจ์ด๋Š” ์—†๋Š” ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค. 

ํ‚ค์›Œ๋“œ๋ฅผ ๋ฌด์ž‘์ • ๋ถ™์ธ ๊ฒƒ ๊ฐ™์ง€๋Š” ์•Š๊ณ ์š”. ๋จผ์ € Other์˜ ํ‚ค์›Œ๋“œ๋ฅผ ์‚ดํ”ผ๋ฉด, I๋Š” increment๋ฅผ ์˜๋ฏธํ•˜๊ณ ์š”. D๋Š” decrement๊ฒ ์ฃ . ๊ทธ๋ฆฌ๊ณ  B๋Š” Before๋ฅผ, A๋Š” After๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. 

๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋งŒ์•ฝ LDMDA ๋Š” post decrement ๋ชจ๋“œ๋ฅผ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. 

Stack์˜ ๊ฒฝ์šฐ์—”, E๋Š” Empty๋ฅผ F๋Š” Full์„ ์˜๋ฏธํ•œ๋‹ต๋‹ˆ๋‹ค. ์Šคํƒ์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒฝ์šฐ ํ˜„์žฌ sp๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฒˆ์ง€์˜ ๋‚ด์šฉ์ด ์ฐจ์žˆ๋Š”์ง€, ๋น„์–ด์žˆ๋Š”์ง€๋ฅผ ์˜๋ฏธํ•œ๋‹ค๊ณ  ๋ณด์‹œ๋ฉด ๋  ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค. ๋ฌด์Šจ ์ด์•ผ๊ธฐ์ธ๊ฐ€ ํ•˜๋ฉด ๋งŒ์•ฝ Post ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด, ์Šคํƒ์„ ๊ตฌํ˜„ํ•  ๊ฒฝ์šฐ, ์–ด๋–ค ๋‚ด์šฉ์„ ๋„ฃ๊ณ  ๋‹ค์Œ์— ๋ฒˆ์ง€๋ฅผ ์ฆ/๊ฐํ•˜๋ฏ€๋กœ ๊ฒฐ๊ตญ ์–ด๋–ค ์‹œ์ ์—์„œ ์Šคํƒํฌ์ธํ„ฐ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฒˆ์ง€๋Š” ๋น„์–ด์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ Empty๊ฐ€ ๋˜๊ฒ ์ฃ . 

Load์˜ ๊ฒฝ์šฐ์—” Empty ํ˜•ํƒœ์˜ ์Šคํƒ์ด๋ผ๋ฉด sp๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ณต๊ฐ„์— ์•„๋ฌด ๋‚ด์šฉ๋„ ์—†์œผ๋ฏ€๋กœ ๋จผ์ € sp๋ฅผ ๋ณ€ํ™”์‹œํ‚ค๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์•ผ๊ฒ ์ฃ . ๊ทธ๋ž˜์„œ Load๋Š” Pre๊ฐ€ Empty ์™€ ๋Œ€์‘์ด ๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฐ˜๋Œ€๋กœ Store์˜ ๊ฒฝ์šฐ์—” Empty ํ˜•ํƒœ์˜ ์Šคํƒ์„ ์œ„ํ•ด์„œ๋Š” ๋จผ์ € ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๊ณ  sp๋ฅผ ๋ณ€ํ™”์‹œ์ผœ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด post๋ชจ๋“œ๊ฐ€ Empty์™€ ๋Œ€์‘์ด ๋˜๊ฒ ๊ตฐ์š”! 

Full์€ ๋” ์ด์ƒ ๋ง ์•ˆํ•ด๋„ ๋˜๋ฆฌ๋ผ ๋ฏฟ์Šต๋‹ˆ๋‹ค. 

๋‹ค์Œ์œผ๋กœ D๋Š” Decending, A๋Š” Ascending์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์Šคํƒ์ด ๊ฑฐ๊พธ๋กœ ์ปค์ง€๋Š”์ง€ ์•„๋‹ˆ๋ฉด ๋ฐ˜๋Œ€์ธ์ง€์™€ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. 8086์—์„œ๋Š” Push๋ฅผ ํ•˜๋ฉด sp๊ฐ’์ด ์ž‘์•„์ง€์ฃ ? ๊ทธ๋ ‡๋‹ค๋ฉด decending Stack์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. push์™€ STM์ด ๋Œ€์‘๋˜๋ฏ€๋กœ STM์˜ Decrement ๋ชจ๋“œ๋Š” D ๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ–ˆ๊ตฐ์š”. Pop์˜ ๊ฒฝ์šฐ๋Š” LDM๊ณผ ๋Œ€์‘๋˜๊ณ  decending stack์—์„œ Pop์„ ํ•  ๊ฒฝ์šฐ sp๊ฐ’์€ ์ฆ๊ฐ€๋˜์–ด์•ผ๊ฒ ์ฃ . ๊ทธ๋ž˜์„œ LDM์—์„œ๋Š” increment๋ชจ๋“œ๊ฐ€ D์ž…๋‹ˆ๋‹ค. 

A๋Š” ๋ฐ˜๋Œ€์ด๊ฒ ์ฃ . ๊ฒฐ๊ตญ ์Šคํƒ๊ด€๋ จ ๋ช…๋ น์—์„œ๋Š” LDM์ด๋‚˜ STM์—์„œ ๊ฐ™์€ ์ ‘๋ฏธ์‚ฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๋™์ž‘ ๋ฐฉ์‹์€ LDM๊ณผ STM์—์„œ ๊ฐ๊ธฐ ๋‹ค๋ฅด์ง€๋งŒ์š”. 

์ž.. ์ด์ œ ์˜ˆ์ œ๋ฅผ ํ•˜๋‚˜ ๋ณด์ด๊ณ  ์˜ค๋Š˜ ๊ฐ•์ขŒ๋ฅผ ์ •๋ฆฌํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค. 

STMED sp!,{r0-r3,r14} 

BL somewhere 

LDMED sp!,{r0-r3,r15} 

์ฒซ ๋ฒˆ์งธ ๋ช…๋ น์— STMED๋Š” Empty Decending Stack Operation์ด๋ฏ€๋กœ ์‹ค์ œ๋กœ๋Š” post-decrement ๋™์ž‘๋ชจ๋“œ๋ฅผ ์˜๋ฏธํ•˜์ฃ .. sp(r13)๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฒˆ์ง€์— r0,r1,r3,r14๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. BL๋กœ ์ด ๋ฃจํ‹ด์— ๋“ค์–ด์™”๋‹ค๋ฉด r14์— ๋ณต๊ท€ ๋ฒˆ์ง€๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๊ฐ์•ˆํ•˜์‹ญ์‹œ์š”. 

BL์—์„œ ๋ญ”๊ฐ€ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ณ , ๋งˆ์ง€๋ง‰์œผ๋กœ LDMED๋ช…๋ น์—์„œ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๋ณต๊ตฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” pre-Increment ๋™์ž‘๋ชจ๋“œ์ž…๋‹ˆ๋‹ค. 

ํ•œ๊ฐ€์ง€ ์ฃผ์˜ํ•˜์‹ค ์ ์€ r14๋Œ€์‹ ์— r15๋กœ ๋ณต๊ตฌ๋ฅผ ์‹œ์ผฐ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ARM7์—์„œ๋Š” ret๋ช…๋ น ๋Œ€์‹  mov r15,r14๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๋ง์”€๋“œ๋ ธ์ฃ . 

LDMED ๋ช…๋ น์—์„œ ๋ ˆ์ง€์Šคํ„ฐ ๋ณต๊ตฌ์™€ ์„œ๋ธŒ๋ฃจํ‹ด ๋ณต๊ท€๋ฅผ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•˜๋Š” ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. 

์ž. ์˜ค๋Š˜ ๊ฐ•์ขŒ๋Š” ์ด๋ ‡๊ฒŒ ์ •๋ฆฌํ• ๊นŒ ํ•ฉ๋‹ˆ๋‹ค. ๊ฑฐ์˜ 1๋‹ฌ๋งŒ์— ๊ฐ•์ขŒ๋ฅผ ์ผ๊ตฐ์š”. ๊ทธ๋™์•ˆ ๋ฉ”์ผ์ด๋‚˜ ๊ฒŒ์‹œํŒ์„ ํ†ตํ•ด์„œ ์งˆ๋ฌธ๊ณผ ๊ฒฉ๋ ค๋ฅผ ๋ณด๋‚ด์ฃผ์‹  ๋ถ„๋“ค์—๊ฒŒ ์ฃ„์†กํ•˜๋‹ค๋Š” ๋ง์”€์„ ๋“œ๋ ค์•ผ๊ฒ ๊ตฐ์š”. 

์ด์ œ ๊ฐ•์ขŒ๋„ ์ข…๋ฐ˜์„ ํ–ฅํ•ด ๋‹ฌ๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ 2ํšŒ ์ •๋„๋ฉด ๊ณ„ํšํ–ˆ๋˜ ๋ชจ๋‘๊ฐ€ ๋์ด ๋‚ ๊ฒƒ ๊ฐ™๊ตฐ์š”. ๋‹ค์Œ ๊ฐ•์ขŒ๋ฅผ ๊ธฐ์•ฝํ•˜๋ฉฐ ์ด๋งŒ ์ค„์ด๊ฒ ์Šต๋‹ˆ๋‹ค. 

--------------------------------------------------------------------

ARM7 ๊ฐ•์ขŒ [14] : Instruction Set(8)

-------------------------------------------------------------------- 

์˜ค๋Š˜ ๋‹ค๋ฃฐ ๋ช…๋ น์€ SWP์™€ SWI ๋‘ ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. Co-Process ๋ช…๋ น์„ ์ œ์™ธํ•˜๋ฉด ์ด ๋ช…๋ น์ด ๋งˆ์ง€๋ง‰์ด๊ฒ ๊ตฐ์š”. ์ฝ”ํ”„๋กœ์„ธ์„œ๋Š” ๋‹ค๋ฃจ์ง€ ์•Š์„ ์ƒ๊ฐ์ด๋‹ˆ. ์ฐธ ํ™€๊ฐ€๋ถ„ํ•œ ๋Š๋‚Œ์ž…๋‹ˆ๋‹ค. 

1. Single Data Swap : <SWP>{cond}{B} Rd,Rm,[Rn] 

๋ ˆ์ง€์Šคํ„ฐ๋ฅผ 3๊ฐœ ์ง€์ •ํ•˜๋„๋ก ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ ๋™์ž‘์€ Rd:=[Rn], [Rn]:=Rm์ด ํ•œ๋ฒˆ์— ์ผ์–ด๋‚˜๋Š” ๋ช…๋ น์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ํ•œ๋ฒˆ์ด๋ผ๋Š” ๋ง์€ ํ•œ Clock์„ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๋ช…๋ น ๋„์ค‘์— ์ธํ„ฐ๋ŸฝํŠธ ๋“ฑ์— ์˜ํ•ด ์ค‘๋‹จ๋˜์ง€ ์•Š๊ณ  ๊ณ„์† ์ด๋ฃจ์–ด์ง„๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  B์ ‘๋ฏธ์‚ฌ๋Š” ๊ณ„์† ๋ณด์•„ ์™”๋“ฏ์ด ์›Œ๋“œ Operation์ด ์•„๋‹ˆ๋ผ Byte Operation์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. 

์˜ˆ์ œ๋ฅผ ๋ณด์ฃ . 

SWP r0,r1,[r2]

; r0:=[r2], [r2]:=r1 ์ž…๋‹ˆ๋‹ค. 

SWPB r2,r3,[r4]

; r2:=[r4], [r4]:=r3 ์ž…๋‹ˆ๋‹ค. ๋‹ค๋งŒ B๊ฐ€ ๋ถ™์—ˆ์œผ๋ฏ€๋กœ Bit 0์—์„œ 7๊นŒ์ง€๋งŒ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. 

SWPEQ r0,r0,[r1]

; Flag์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜์—ฌ r0์™€ [r1]์˜ ๋‚ด์šฉ์„ ๋ฐ”๊พธ๋Š” ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค. ๋ณด์…จ๋“ฏ์ด Rd์™€ Rm์ด ๊ฐ™์„ ์ˆ˜๋„ ์žˆ๊ตฐ์š”. 

ํ•œ๊ฐ€์ง€ ๋” ์–ธ๊ธ‰ํ•˜๊ณ  ์‹ถ์€ ๊ฒƒ์€ SWP๋ฅผ ์„ธ๋งˆํฌ์–ด ๊ตฌํ˜„์— ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์–ด๋–ค ๋ฌธ์„œ์—์„ ๊ฐ€ SWP๋ช…๋ น์ด ์„ธ๋งˆํฌ์–ด๋ฅผ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ์œ ์šฉํ•˜๋‹ค๊ณ  ์ฝ์—ˆ๋Š”๋ฐ, ์ฒ˜์Œ์—๋Š” ์ดํ•ด๊ฐ€ ์•ˆ๋˜๋”๊ตฐ์š”. ํ•œ์ฐธ ๋’ค์— ์ดํ•ดํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. 

์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๊ธˆ์ง€์‹œํ‚ค์ง€ ์•Š๊ณ  Semaphore ์—ฐ์‚ฐ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด SWP๋ช…๋ น์˜ ๊ฐ•์ ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ Semaphore๋ฅผ ์„ค๋ช… ๋“œ๋ฆฌ๊ธฐ๋Š” ์ข€ ๊ทธ๋Ÿฌ๋‹ˆ, ๊ฐ„๋‹จํžˆ ํ•ต์‹ฌ๋งŒ ๋ง์”€๋“œ๋ฆฌ๊ณ , ์ดํ•ดํ•˜์‹ค ๋ถ„์€ ํ•˜์‹œ๊ณ , ์•ˆํ•ด๋„ ๋ณ„ ์ˆ˜ ์—†๊ฒ ์ฃ . 

๋ณดํ†ต ์„ธ๋งˆํฌ์–ด์˜ p()์—ฐ์‚ฐ์„ ๊ตฌํ˜„ํ•˜๋Š” ์ˆœ์„œ๋กœ, ๋จผ์ € ์„ธ๋งˆํฌ์–ด ๋ณ€์ˆ˜๋ฅผ ์ฝ์–ด์˜ค๊ณ , ๋‹ค์Œ์— ๋น„๊ต๋ฅผ ํ•˜์ฃ . ๊ทธ ๊ฐ’์ด 0๋ณด๋‹ค ํฌ๋‹ค๋ฉด ๊ฐ์†Œ๋ฅผ ์‹œ์ผœ ๋‹ค์‹œ Writeํ•ฉ๋‹ˆ๋‹ค. Test and Set ์—ฐ์‚ฐ์ด๋ผ๊ณ ๋„ ํ•˜๋˜๋ฐ์š”. 

SWP๋ช…๋ น์— ์ ์šฉ์‹œํ‚ค๋ ค๋ฉด, [Rn]๋ถ€๋ถ„์ด ๋ณ€์ˆ˜๊ฐ€ ๋˜์–ด์•ผ๊ฒ ๊ตฐ์š”. ๊ทธ๋Ÿฌ๋ฉด Rd์—๋Š” SWP๋ช…๋ น์„ ํ†ตํ•ด ์„ธ๋งˆํฌ์–ด ๋ณ€์ˆ˜ ๊ฐ’์ด ๋“ค์–ด์˜ค๊ณ ์š”, ๋ฌผ๋ก  ์„ธ๋งˆํฌ์–ด ๋ณ€์ˆ˜์˜ ์ƒํƒœ๋ฅผ ์•Œ์ง€ ๋ชปํ•˜๋ฏ€๋กœ ์–ด๋–ค ๊ฐ’์ด ๋“ค์–ด์˜ฌ์ง€๋Š” ๋ชจ๋ฆ…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ๋‹จ๊ณ„์—์„œ๋Š” ์„ธ๋งˆํฌ์–ด ๋ณ€์ˆ˜์— ์–ด๋–ค ๊ฐ’์„ ๋‹ค์‹œ Writeํ•ด์•ผ ํ• ์ง€๋„ ๋ชจ๋ฆ…๋‹ˆ๋‹ค. 

ํ•ต์‹ฌ์€ ๋ณ€์ˆ˜์— Write๋˜๋Š” ๊ฐ’์„ ๋ฌด์กฐ๊ฑด 0์œผ๋กœ ์„ค์ •ํ•œ๋‹ค๋Š” ๊ฒƒ์ด์ฃ . ์ฆ‰. 

r3๊ฐ€ Semaphore ๋ณ€์ˆ˜์˜ ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋‹ค๊ณ  ํ•˜๊ณ , r2์˜ ๊ฐ’์€ 0์ด๋ผ๊ณ  ํ•œ๋‹ค๋ฉด, 

SWP r1,r2,[r3] 

์™€ ๊ฐ™์€ ๋ช…๋ น์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„์˜ ๋ช…๋ น์„ ํ†ตํ•ด ์›๋ž˜ ์„ธ๋งˆํฌ์–ด ๋ณ€์ˆ˜์˜ ๊ฐ’์ด r1์œผ๋กœ ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. 0๋ณด๋‹ค ํฐ ์ง€์˜ ์—ฌ๋ถ€๋Š” ์ด์ œ๋ถ€ํ„ฐ ๋น„๊ตํ•ด์•ผ๊ฒ ์ง€์š”. ํ•œ๊ฐ€์ง€ ํŠน์ดํ•œ ๊ฒƒ์€ ์„ธ๋งˆํฌ์–ด ๊ฐ’์„ ์ฝ์–ด์˜ด๊ณผ ๋™์‹œ์— 0์„ ๋„ฃ์–ด์ฃผ์—ˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. SWP๋ช…๋ น์˜ ํŠน์„ฑ์ƒ ์ฝ์–ด์˜ค๋Š” ๋™์ž‘๊ณผ 0์„ ๋„ฃ๋Š” ๋™์ž‘ ์‚ฌ์ด์—๋Š” ์ธํ„ฐ๋ŸฝํŠธ ๋“ฑ์ด ๊ฑธ๋ฆด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. 

์ด์ œ, r1์˜ ์„ธ๋งˆํฌ์–ด ๊ฐ’์„ ๋น„๊ตํ•˜๋Š” ๋ถ€๋ถ„์œผ๋กœ ๋„˜์–ด๊ฐ€๋ฉด ๋˜๋Š”๋ฐ, ์ด ์™€์ค‘์— ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๊ฑธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ Task๊ฐ€ ์„ธ๋งˆํฌ์–ด ๋ณ€์ˆ˜๋ฅผ Accessํ•˜๋ ค๊ณ  ํ•˜๋”๋ผ๋„ 0์ด ๋“ค์–ด ์žˆ์œผ๋‹ˆ ์ž์—ฐํžˆ ๋Œ€๊ธฐ์ƒํƒœ๋กœ ์ธ์‹๋˜์–ด ๋” ์ด์ƒ ์ง„ํ–‰์„ ํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. 

์ด๋ฐ–์—๋„ v()์—ฐ์‚ฐ์—์„œ๋„ ๋ญ”๊ฐ€ ๋” ํ•ด์ฃผ์–ด์•ผ ํ•˜๊ฒ ์ง€๋งŒ.

(๊ดœํ•œ ์–˜๊ธฐ๋ฅผ ๊บผ๋ƒˆ๋‚˜ ํ•˜๋Š” ํ›„ํšŒ๊ฐ€ ์—„์Šตํ•˜๋Š” ์ค‘์ž…๋‹ˆ๋‹ค...^^) 

2. Software Interrupt : SWI{cond} <expression> 

SWI๋ช…๋ น์€ ์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ ๋ช…๋ น์ž…๋‹ˆ๋‹ค. 8086์—๋Š” INT ๋ช…๋ น์ด ์žˆ์ฃ ? Exception ํŒŒํŠธ๋ฅผ ๋ณด์‹œ๋ฉด ์–ธ๊ธ‰์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. 

SWI๋ช…๋ น์ด ๊ฑธ๋ฆฌ๋ฉด ๋™์ž‘๋ชจ๋“œ๊ฐ€ ๋ณ€ํ™”ํ•ฉ๋‹ˆ๋‹ค. Supervisor ์ƒํƒœ๋กœ ์ง„์ž…์„ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฐ ํŠน์„ฑ ๋•Œ๋ฌธ์— pSOS์˜ ๊ฒฝ์šฐ๋Š” System Call์˜ ์ง„์ž…๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. 

๋ช…๋ น์˜ ํ˜•์‹์„ ๋ณด์‹œ๋ฉด <expression>๋ถ€๋ถ„์ด ์žˆ๋Š”๋ฐ, ๋ฌด์Šจ ์—ญํ• ์„ ํ•˜๋Š” ๊ฒƒ์ผ๊นŒ์š”? 8086๊ณ„์—ด์ฒ˜๋Ÿผ INT 21H ๋˜๋Š” INT 10H ์ด๋Ÿฐ ์‹์œผ๋กœ ์ธ์ˆ˜๋ฅผ ์ฃผ๋Š” ๊ฒƒ์ผ๊นŒ์š”? 8086์ด์•ผ Interrupt ๋ฒกํ„ฐ๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด์—ˆ์ง€๋งŒ, ARM7์—๋Š” ํ•ด๋‹น Vector๋Š” ๊ณ ์ •์ด ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.(Software Exception ํ•œ๊ฐ€์ง€๋กœ) 

CPU๋Š” expression์— ๋Œ€ํ•œ ์•„๋ฌด๋Ÿฐ ์ผ๋„ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹ค์ œ ๋ช…๋ น์–ด ๊ตฌ์กฐ๋ฅผ ๋ณด๋ฉด ์ด 32๋น„ํŠธ ์ค‘ ์ƒ์œ„ 4๋น„ํŠธ๋Š” ์กฐ๊ฑด Flag์— ์‚ฌ์šฉ๋˜๊ณ , ๋‹ค์Œ 4๋น„ํŠธ๊ฐ€ ๋ชจ๋‘ 1111 ์ด๋ฉด SWI๋ช…๋ น์œผ๋กœ ํŒ๋‹จ๋ฉ๋‹ˆ๋‹ค. ์ดํ›„ 24๋น„ํŠธ๋Š” ์‹ค์ œ๋กœ๋Š” ๋ฌด์‹œ๋˜๋Š” ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค๋งŒ... 

์œ„์™€ ๊ฐ™์ด ์จ์ฃผ๋ฉด expression์˜ ๋‚ด์šฉ์ด SWI๋ช…๋ น์˜ Low 24Bit๋ถ€๋ถ„์— ์ธ์ฝ”๋”ฉ ๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ง์”€ ๋“œ๋ ธ๋“ฏ์ด ARM7์€ SWI๋ช…๋ น์˜ Low 25Bit๋‚ด์šฉ์ด ๋ญ๋“  ๊ฐ„์— ๋™์ผํ•˜๊ฒŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. 

๊ทธ๋Ÿผ ์™œ ๊ทธ๋ ‡๊ฒŒ ์“ฐ๋Š”๊ฑธ๊นŒ์š”? 

์˜ˆ์ œ๋ฅผ ๋ณด๋ฉด SWI๋ช…๋ น์„ ๋งŒ๋‚˜๋ฉด ์†Œํ”„ํŠธ์›จ์–ด Exception Handler๋กœ ์ด๋™ํ•˜๊ณ  ๋ณต๊ท€๋ฒˆ์ง€๋Š” r14_svc๋กœ ์ €์žฅ์ด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ Handler ๋ถ€๋ถ„์—์„œ ๋ณต๊ท€ ๋ฒˆ์ง€๋ฅผ ์ด์šฉํ•˜์—ฌ ํ•ด๋‹น ๋ช…๋ น์„ ์ง์ ‘ ์ฝ์–ด๋‹ค๊ฐ€ Low 24 Bit ๋ถ€๋ถ„์„ ์ธ์ˆ˜๋กœ ํ•ด์„ํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. 

๋ฌผ๋ก  ์ด๋Ÿฐ ์ผ๋“ค์€ ARM7์ด ํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ User๊ฐ€ Handler์—์„œ ์ง์ ‘ ํ”„๋กœ๊ทธ๋žจ ํ•˜๋Š” ๊ฒƒ์ด์ฃ . 

๋‹ค์Œ์€ Handler ๋ถ€๋ถ„์˜ ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค. 

STMFD r13,{r0-r2,r14}

LDR r0,[r14,#-4]

BIC r0,r0,#0xFF000000

... 

์œ„์—์„œ ๋ณด์‹œ๋ฉด ๊ฒฐ๊ตญ r0์— SWI๋ช…๋ น์˜ low 24Bit๊ฐ€ ์–ป์–ด์ง€์ฃ . 

์˜ค๋Š˜ ๊ฐ•์ขŒ๊นŒ์ง€ ๊ธธ๊ณ  ๊ธธ์—ˆ๋˜ ์ •๋ง ๊ธธ์—ˆ๋˜ ARM Instruction ๋ถ€๋ถ„์„ ๋๋ƒˆ์Šต๋‹ˆ๋‹ค. 

๊ณ„ํšํ–ˆ๋˜ ๋ถ„๋Ÿ‰์€ 3ํšŒ์˜€๋Š”๋ฐ... ๊ฒฐ๊ตญ 8ํšŒ ๋ถ„๋Ÿ‰์œผ๋กœ ๋Š˜์–ด๋‚˜๊ณ  ๋ง์•˜๊ตฐ์š”. ์ด๊ฒƒ์ €๊ฒƒ ํ›„ํšŒ๊ฐ€ ๋งŽ์•˜๋˜ ๋ถ€๋ถ„์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์ €๋ ‡๊ฒŒ ์ˆ™์ œํ•˜๋“ฏ์ด ์—ฌ๊ธฐ๊นŒ์ง€ ํ•ด์น˜์šฐ๊ณ ๋Š”... 

๋‹ค์Œ์—” ๋ฌด์—‡์„ ์จ์•ผ ํ• ์ง€... ๊ณ ๋ฏผ์„ ํ•˜๊ฒŒ ๋˜๋Š”๊ตฐ์š”. 

๋ญ๊ฐ€ ๋˜์—ˆ๋“  ๋‹ค์Œ ๊ฐ•์ขŒ๋กœ ARM7 ๊ฐ•์ขŒ๋ฅผ ์ •๋ฆฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. (๋งˆ์Œ์˜ ์ค€๋น„๋ฅผ...^^)

๊ทธ๋Ÿผ ์ด๋งŒ.

--------------------------------------------------------------------

ARM7 ๊ฐ•์ขŒ [15] : ์ตœ์ข…ํšŒ

-------------------------------------------------------------------- 

๋“œ๋””์–ด ARM7๊ฐ•์ขŒ ์ตœ์ข…ํšŒ๋ฅผ ์“ฐ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ ARM7์„ ๊ธฐ์ค€์œผ๋กœ ๊ฐ•์˜๋ฅผ ํ•ด ์™”์ง€๋งŒ, ์‹ค์ œ๋กœ ์‚ฌ์šฉํ–ˆ๋˜ CPU๋Š” StrongARM์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ, ์˜ค๋Š˜์€ StrongARM SA1100์— ๋Œ€ํ•ด์„œ ๊ฐ„๋‹จํžˆ ๋งํ•ด ๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.(์‚ฌ์‹ค ๋ณ„๋กœ ์•„๋Š” ๊ฒƒ๋„ ์—†์ง€๋งŒ..) 

๋ฌผ๋ก  ์ž์„ธํ•œ Spec์€ ๋ฉ”๋‰ด์–ผ์„ ํ†ตํ•ด ์‚ดํ”ผ์‹œ๋Š” ๊ฒƒ์ด ๋” ์ •ํ™•ํ•  ํ…Œ๋‹ˆ๊นŒ ์ œ๊ฐ€ ๋ง์”€๋“œ๋ ค๋ด์•ผ ๋ณ„ ์˜๋ฏธ๊ฐ€ ์—†์„ ๋“ฏ ํ•˜๊ณ . 

๊ทธ๋ƒฅ StrongARM์„ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์ธ์ƒ๊นŠ์—ˆ๋˜ ์ ์„ ๋ช‡ ๊ฐ€์ง€ ๋ง์”€๋“œ๋ฆฌ๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. 

์ฒซ ๋ฒˆ์งธ๋กœ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ ์œผ๋กœ ์ƒ๊ฐ๋˜๋Š” ๊ฒƒ์€ CPU ๋™์ž‘์†๋„๊ฐ€ 200MHz์ •๋„๊นŒ์ง€๋ฅผ ์ง€์›ํ•œ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. ์ด์ „์— ์ ‘ํ–ˆ๋˜ Embedded CPU ๊ฐ€ ๋นจ๋ผ์•ผ 50MHz์ด์—ˆ๋˜ ๊ฒƒ์„ ๊ฐ์•ˆํ•œ๋‹ค๋ฉด, ์ฐธ ๋น ๋ฅธ CPU์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ด ์นฉ์€ ์‹ ๊ธฐํ•˜๊ฒŒ๋„ ์—ด์ด ๋ณ„๋กœ ์•ˆ๋‚œ๋‹ค๋Š” ๊ฒƒ์ด ๋˜ํ•œ ์ธ์ƒ์ ์ž…๋‹ˆ๋‹ค. 

๋ณด๋“œ๋ฅผ ๋ช‡ ์ผ์”ฉ ์ผœ ๋†“์•„๋„ ์•ˆ์ •์ ์ด๊ณ , ๋ถˆ์•ˆํ•˜์ง€๊ฐ€ ์•Š๋”๊ตฐ์š”. ์˜›๋‚ ์— AMD188์„ ์‚ฌ์šฉํ•  ๋•Œ์—๋Š” ์ž ์‹œ๋งŒ ์ผœ ๋†“์•„๋„ ๋ณด๋“œ๊ฐ€ ๋…น์•„๋‚˜๋Š” ๊ฒƒ์ด ์•„๋‹์ง€ ์–ผ๋งˆ๋‚˜ ๋ถˆ์•ˆํ–ˆ๋˜์ง€ ๊ทธ๋งŒํผ ์ „๋ ฅ ์†Œ๋ชจ๋„ ์ž‘๋‹ค๋Š” ๋œป์ด๊ฒ ์ง€์š”. 

๋‘ ๋ฒˆ์งธ๋กœ๋Š” LCD ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ๋‚ด์žฅ๋˜์–ด ์žˆ์–ด์„œ 1024*1024์˜ ํ•ด์ƒ๋„๊นŒ์ง€ ์ง€์›ํ•˜๊ณ , ์ปฌ๋Ÿฌ๋Š” 3๋งŒ ์ปฌ๋Ÿฌ๊นŒ์ง€ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์—ญ์‹œ ์ผ๋ฐ˜ On-Board์นฉ๊ณผ ๋น„๊ตํ•  ๋งŒํ•œ ์ผ์€ ๋ชป๋˜๊ฒ ์ง€๋งŒ, ๊ทธ๋Ÿฐ ์นฉ๋งŒ ๋‹ค๋ฃจ์—ˆ๋˜ ์ œ๊ฒŒ๋Š” ์ฐธ ํ๋ญ‡ํ•œ ์ผ์ด์—ˆ์Šต๋‹ˆ๋‹ค. SA1100 ๋ณด๋“œ์— 640*480 TFT LCD๊ฐ€ ๋‹ฌ๋ ค์žˆ์—ˆ๋Š”๋ฐ, ๊ฑฐ๊ธฐ์— ๊ณ ์†Œ์˜ ์‚ฌ์ง„์„ ๋„์›Œ๋†“๊ณ  ์–ผ๋งˆ๋‚˜ ํ๋ญ‡ํ•ดํ–ˆ๋˜์ง€...^^ 

์„ธ ๋ฒˆ์งธ ์ธ์ƒ ๊นŠ์—ˆ๋˜ ๊ฒƒ์€ MMU ์ž…๋‹ˆ๋‹ค. ํ•™๊ต ๋‹ค๋‹ ๋•Œ OS ์ˆ˜์—…์‹œ๊ฐ„์—๋‚˜ ๋“ค์–ด๋ดค๋˜ MMU๋ผ๋Š” ๊ฒƒ์„, ์ง์ ‘ ํ”„๋กœ๊ทธ๋žจ ํ•ด์•ผ ํ–ˆ์œผ๋‹ˆ๊นŒ์š”. ๋‚˜์ค‘์— ์ฐจ์ฐจ ์•Œ๊ฒŒ๋œ ์‚ฌ์‹ค์ด์ง€๋งŒ, ์ด MMU๊ฐ€ ์žˆ๋Š”์ง€์˜ ์—ฌ๋ถ€๊ฐ€ Linux์™€ ๊ฐ™์€ OS๋ฅผ ํฌํŒ… ํ•  ๊ฒฝ์šฐ์—๋Š” ๋ฌด์ฒ™ ์ค‘์š”ํ•˜๋‹ค๊ณ  ํ•˜๊ตฐ์š”. StrongARM์˜ ๊ฒฝ์šฐ๋Š” Two-Level Virtual Memory๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ตœ์†Œ 400H Byte๋‹จ์œ„๋กœ, ์ตœ๋Œ€ 1Mega Byte๋‹จ์œ„๋กœ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

์ด๋ฐ–์—๋„ GPIO์—์„œ Edge Detect Interrupt๊ธฐ๋Šฅ์„ ์ง€์›ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค๊ณผ, PCMCIA์™€ ๊ฐ™์€ ๊ฐ์ข… ์ฃผ๋ณ€์žฅ์น˜๋ฅผ ์ง€์›ํ•œ๋‹ค๋Š” ๊ฒƒ ๋“ฑ. 

StrongARM์€ Embedded CPU ๋ณด๋‹ค๋Š” PC์šฉ CPU์— ๊ทผ์ ‘ ํ•˜๋‹ค๋Š” ๋Š๋‚Œ์ด ๋“ค์—ˆ๊ณ . ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋‚ฎ์€ ์ „๋ ฅ์†Œ๋ชจ ๋•Œ๋ฌธ์ธ์ง€ Embedded์šฉ์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. 

ARM7๊ฐ•์ขŒ๋ฅผ ํ•˜๋ฉด์„œ ๊ฐœ๋ฐœํ™˜๊ฒฝ์— ๋Œ€ํ•ด์„œ ๊ถ๊ธˆํ•ดํ•˜์‹œ๋Š” ๋ถ„๋“ค์ด ๊ณ„์…จ์Šต๋‹ˆ๋‹ค.

"ARM7์„ ๊ณต๋ถ€ํ•ด ๋ณด๊ณ  ์‹ถ์€๋ฐ ๋ณด๋“œ๊ฐ€ ์—†๋‹ค"... ๋ผ๋“ ๊ฐ€ ํ•˜๋Š” ์‹์˜.

๊ทธ๋ ‡๊ฒŒ ๋ณด๋ฉด ์ œ๊ฐ€ ์šด์ด ์ข‹์•˜๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํšŒ์‚ฌ์— ์ •๋ง ํ›Œ๋ฅญํ•œ ๋ณด๋“œ๊ฐ€ ์žˆ์—ˆ๊ฑฐ๋“ ์š”. 

๋ฌผ๋ก  ์ œํ’ˆ์„ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ณด๋“œ์˜€๊ธฐ๋Š” ํ•˜์ง€๋งŒ... LCD์™€ Keyboard, ์นด๋ฉ”๋ผ

๊นŒ์ง€ ๋‹ฌ๋ฆฐ ๋ณด๋“œ์˜€๊ณ , ์ถฉ๋ถ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ์™€ Flash๊นŒ์ง€ ์žˆ์—ˆ์œผ๋‹ˆ๊นŒ์š”... 

์‚ฌ์‹ค ์—ฌ์ „ํžˆ ARM์„ ๊ณต๋ถ€ํ•˜๊ธฐ ์œ„ํ•œ ๋ณด๋“œ๋ฅผ ์ฐพ๊ธฐ๋Š” ์‰ฌ์šด ์ผ์ด ์•„๋‹Œ ๊ฒƒ ๊ฐ™๋”๊ตฐ์š”. ์ €๋„ ์–ธ์  ๊ฐ€๋Š” StrongARM๋ณด๋“œ๋ฅผ ๋งŒ๋“ค์–ด ๋ณด๋ฆฌ๋ผ ์ƒ๊ฐํ–ˆ์—ˆ์ง€๋งŒ. ๊ทธ๊ฒŒ ๊ทธ๋ฆฌ ๋งŒ๋งŒ์น˜ ์•Š์€ ์ผ์ด์—ˆ๊ณ . ์•ž์œผ๋กœ๋„ ๊ฐ€๋Šฅํ• ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. 

๋ณ„๋กœ ํ•  ๋ง๋„ ์—†์œผ๋ฉด์„œ ๊ฐ•์ขŒ๋ฅผ ์“ฐ๋ ค๋‹ˆ ์ด์ƒํ•œ ๋ง๋งŒ ๋‚˜์˜ค๋Š”๊ตฐ์š”...

 

๋ชจ๋‘์—๊ฒŒ ๊ฐ์‚ฌํ•œ ๋งˆ์Œ๊ณผ ์ฃ„์†กํ•œ ๋งˆ์Œ์„ ๊ฐ–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 

์‚ฌ์‹ค ์‹œ์ž‘ํ•  ๋•Œ์˜ ๋งˆ์Œ๊ฐ€์ง์„ ๋๊ฐ€์ง€ ๊ฐ€์ง€๊ณ  ๊ฐ€์ง€ ๋ชปํ–ˆ๋˜ ๊ฒƒ๋„.. ๊ทธ๋ ‡๊ณ .. 

์ด๋ ‡๊ฒŒ ๊ฐ•์ขŒ๋ž€์— ํ—ˆํŠผ ์†Œ๋ฆฌ๋ฅผ ์“ฐ๊ณ  ์žˆ๋Š” ๊ฒƒ๋„ ๊ทธ๋ ‡๊ณ .. 

๊ฐ•์ขŒ๋ฅผ ํ•ด ์˜ค๋ฉด์„œ, ์ •๋ง ๋งŽ์ด ์•Œ๊ณ , ์ž˜ ํ•˜์‹œ๋Š” ๋ถ„๋“ค์ด ์ฐธ ๋งŽ๊ตฌ๋‚˜ ํ•˜๋Š” ์ƒ๊ฐ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฑฐ๊ธฐ์— ๋น„ํ•˜๋ฉด ์ด์ œ ๋ง‰ ๊ณต๋ถ€๋ฅผ ํ•˜๊ณ  ์žˆ๋Š” ์ œ๊ฐ€ ์ด๋Ÿฐ ๊ฐ•์ขŒ๋ฅผ ์ฃผ์ œ๋„˜๊ฒŒ ์‹œ์ž‘ํ–ˆ๊ตฌ๋‚˜ ํ•˜๋Š” ํ›„ํšŒ๋„ ๋“ค์—ˆ๊ณ ์š”. ๋ถ€๋„๋Ÿฌ์šด ์ƒ๊ฐ๋„ ๋งŽ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. 

๊ทธ๋™์•ˆ ๊ด€์‹ฌ์„ ๊ฐ€์ ธ์ฃผ์‹  ๋ชจ๋“  ๋ถ„๋“ค๊ป˜ ๋‹ค์‹œ ํ•œ๋ฒˆ ๊ฐ์‚ฌ ๋“œ๋ฆฌ๋ฉด์„œ ARM7 ๊ฐ•์ขŒ๋ฅผ ์ด๋ ‡๊ฒŒ ์ •๋ฆฌํ• ๊นŒ ํ•ฉ๋‹ˆ๋‹ค. 

๊ทธ๋Ÿผ ์ด๋งŒ.

 

 

๋ฐ˜์‘ํ˜•

+ Recent posts