austinkim
@austinkim
Students
6,220
Reviews
233
Course Rating
4.9
๊ธ๋ก๋ฒ ์ ์ & ๋ฆฌ๋ ์ค ์์คํ ์ํํธ์จ์ด ๊ฐ๋ฐ์ (Arm, RISC-V ์ํคํ ์ฒ)
๊ตญ๋ด ์์คํ ์ํํธ์จ์ด ๋ถ์ผ์์ ์ ๋ฌดํ๋ฌดํ! 'Arm ์ํคํ ์ฒ(Armv8-A, Armv7-A)'์ '๋ฆฌ๋ ์ค ์ปค๋' ์ฑ ์ ์ด ์ ์(2๊ถ์ ์ฑ ๋ชจ๋ ๋ํ๋ฏผ๊ตญ ํ์ ์ ์ฐ์๋์์ ์ ์ )์ด๋ฉฐ, ๊ตญ๋ด ์ต์ด๋ก ํด์ธ ์ถํ์ฌ(Packt)๋ฅผ ํตํด "Reverse Engineering Armv8-A Systems" ์ฑ (์์ด)์ ์งํํ ๊ธ๋ก๋ฒ ์ ์์ ๋๋ค. ๋ฌด์๋ณด๋ค ์ต์ ์์คํ ์ํํธ์จ์ด ํธ๋ ๋(์ ๊ธฐ์๋์ฐจ, ์์คํ ๋ฐ๋์ฒด- ์์คํ ์ํํธ์จ์ด)๋ฅผ ๊ฐ์ฅ ์ ์๊ณ ์๋ ํ์ ๊ฐ๋ฐ์์ ๋๋ค. ๋ํ ์์คํ ์ํํธ์จ์ด ๋ถ์ผ์์ ๊ฐ์ฅ ์ง์ ์ ํ ํ๋์ ํ๋ฐํ๊ฒ ํ๋ ๊ต์ก์์ ๋๋ค.
'Reverse Engineering Armv8-A Systems: A practical guide to Kernel, Firmware, and TrustZone analysis' ์ฑ (์์ด) ์ ์, (Packt ์ถํ์ฌ)
'์์คํ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ์ํ Arm ์ํคํ ์ฒ์ ๊ตฌ์กฐ์ ์๋ฆฌ'(2024๋ , ๋ํ๋ฏผ๊ตญ ํ์ ์ ์ฐ์๋์์) ์ ์
'๋๋ฒ๊น ์ ํตํด ๋ฐฐ์ฐ๋ ๋ฆฌ๋ ์ค ์ปค๋์ ๊ตฌ์กฐ์ ์๋ฆฌ' (2021๋ , ๋ํ๋ฏผ๊ตญ ํ์ ์ ์ฐ์๋์์) ์ ์
'ํ๋ก๊ทธ๋๋จธ์ค ๋ฐ๋ธ ์ฝ์ค: ๋ฆฌ๋ ์ค ์์คํ ๋ฐ ์ปค๋ ์ ๋ฌธ๊ฐ' ๋ฉ์ธ ๊ฐ์ฌ
2022๋ 6์, ํ๊ตญ์ปดํจํฐ์ข ํฉํ์ ๋ํ (KCC2022) - ํํ ๋ฆฌ์ผ ๋ฐํ [ftrace๋ฅผ ์ด์ฉํด ๋ฆฌ๋ ์ค ์ปค๋ ์ ๋ณตํ๊ธฐ]
LG์ ์ '๋ฆฌ๋ ์ค ์ปค๋' ๋ฐ 'Armv8 ์ํคํ ์ฒ' ์ฌ๋ด ๊ฐ์ฌ(๊ตญ๋ด ๋ฐ ํด์ธ ๊ฐ๋ฐ์ ํฌํจ) - (2020๋ ~ํ์ฌ)
๊ตญ๋ด์์ ์ด๋ ๋๊ตฌ๋ณด๋ค ๋ฆฌ๋ ์ค ์ปค๋๊ณผ Arm ์ํคํ ์ฒ(Armv8-A, Armv7-A)๋ฅผ ์ ์ค๋ช ํ ์ ์๋ ๊ต์ก์๋ผ๊ณ ์์ ์๊ฒ ๋ง์๋๋ฆด ์ ์์ต๋๋ค.
๊ฐ์๋ฌธ์ : austindh.kim@gmail.com
์ฃผ์ ๋ก๋๋งต ๐ฏ
'์์คํ ์ํํธ์จ์ด ๊ฐ๋ฐ์๋ฅผ ์ํ Arm - basic course'
'์์คํ ์ํํธ์จ์ด ๊ฐ๋ฐ์๋ฅผ ์ํ Arm - advanced course'
์์คํ ์ํํธ์จ์ด ๊ฐ๋ฐ์๋ฅผ ์ํ Linux kernel - basic course
Courses
Reviews
- Learning RISC-V Architecture Through Debugging - Part 1
- Introduction to Linux and Linux Kernel Overview [Author's Lecture Part 1-1]
- Introduction to Linux and Linux Kernel Overview [Author's Lecture Part 1-1]
- TRACE32 Introduction - Practical Debugging Course for MCU & RTOS Developers
- Learning RISC-V Architecture Through Debugging - Part 2
Posts
Q&A
์ฑ ๊ด๋ จ ์ง๋ฌธ๋๋ ค์
1. ์ฑ ์ ๋ฆฌ๋ ์ค ์ปค๋ ๋ฒ์ ์ 4.19์ผ๋ก ๋ค์ ์ค๋๋ ๋ฒ์ ์ ๋๋ค - ํ์ฌ 6.1~6.6๋ฒ์ ์ ์ฌ์ฉํฉ๋๋ค. ์ปค๋ ๋ฒ์ ์ด ์ ๊ทธ๋ ๋๋๊ณ ์์ผ๋, ์ฑ ์์ ์ค๋ช ํ๋ ๋ฆฌ๋ ์ค ์ปค๋์ ๊ธฐ๋ณธ ๋์ ์๋ฆฌ๋ฅผ ์์ ์ด๋ ์ง๊ธ์ด๋ ๊ฐ์ต๋๋ค. ์ฑ ๋ง์ ์ฝ์ผ์๋ฉด์ ์งํํ์ ๋ ์ข๊ณ , ์ฑ ์ ์ฝ์ผ์๋ฉด์ ํน์ ์ถ๊ฐ๋ก ๊ฐ์๋ฅผ ๋ค์ผ์ ๋ ์ข๊ธด ํฉ๋๋ค.Basic์ด๋ Advanced ๋ฆฌ๋ ์ค ๋๋ฒ๊น ๊ฐ์๋ ์ฑ ์๋ ์๋ ๋ด์ฉ์ด ๋๋ถ๋ถ์ด๋ ๋ค์ผ์๋ฉด ๋์์ด ๋๊ธธ ํ ๊ฒ์ ๋๋ค.2. Arm ์ํคํ ์ฒ์ ๊ฒฝ์ฐ๋ ๋๋๋ก ๊ฐ์๋ฅผ ๋ค์ผ์๋ฉด์ ์ฑ ์ ์ฝ์ผ์๋ฉด ๋ ์ข์ต๋๋ค. ์ฑ ์ ์๋ ๋ด์ฉ์ ๊ฐ์์์ ๋ง์ด ์ค๋ช ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 24
Q&A
4.2.1. ์ค์ต์ ์ด๋ป๊ฒ ์งํํ๋๊ฒ์ธ๊ฐ์?
์ง์ ํด์ฃผ์ ๊ฐ์๋ 2024๋ ๋๋ฒ๊น ์ค์ต์ด ์ถ๊ฐ๋๊ธฐ ์ ์ ์ดฌ์๋ ๊ฐ์์ ๋๋ค. MOV ๋ช ๋ น์ด๋ฅผ ๋ฐ๋ผ์ ์ค์ตํ ์ ์๋ ๊ฐ์ ์์์ ์ถ๊ฐ๋ก ์ ์ํด์ ์ ๋ก๋ํ ์์ ์ด๋ ์ฐธ๊ณ ํ์ธ์.
- 0
- 2
- 30
Q&A
3.2.1.4 ์ค์ต๊ณผ ๊ด๋ จํ ์ง๋ฌธ
์๋์ ๊ฐ์ด ๋ต์ ๋๋ฆฌ๋ ์ฐธ๊ณ ํ์ธ์.1. ์ง์ ํด์ฃผ์ ๊ฐ์๋ Arm32 (Armv7-A) ์ํคํ ์ฒ ๊ธฐ๋ฐ์ ๋ฉ๋ชจ๋ฆฌ ๋คํ๋ก ์ฝ ์คํ์ ๋ณด์ฌ์ฃผ๋ ์์์ ๋๋ค.2024๋ ๋๋ฒ๊น ์ค์ต์ด ์ถ๊ฐ๋๊ธฐ ์ ์ ์ดฌ์๋ ๊ฐ์์ ๋๋ค. ๋ฐ๋ผ์ ํ์ฌ TRACE32 ๋๋ฒ๊น ์ค์ต์ผ๋ก๋ ๋ฐ๋ผ์ ์งํํ๊ธฐ ์ด๋ ต์ต๋๋ค. ๋ค๋ฅธ TRACE32 ๋๋ฒ๊น ์ค์ต์ผ๋ก๋ ์ถฉ๋ถํ Arm ์ํคํ ์ฒ์ ๊ธฐ๋ฅ์ ์ค์ตํ ์ ์์ผ๋, ์ด ์ ์ฐธ๊ณ ํ์ธ์.2. Lauterbach์ Debug Probe(PowerDebug / PowerTrace)๋ฅผ ํตํด์ ์ค์ ํ๋์จ์ด ํฌํธ(JTAG / SWD)์ TRACE32๋ฅผ ์ฐ๊ฒฐ(USB๋ Ethernet์ ํตํด) ํฉ๋๋ค.
- 0
- 2
- 38
Q&A
[30. RISC-V: ์ด์ ๋ธ๋ฆฌ ๋ช ๋ น์ด์ ๋ชฉ๋ก] ๋ถ๋ถ br, bl ์คํ์ธ ๊ฒ ๊ฐ์ต๋๋ค
์ ๋ณดํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์คํ๊ฐ ์๋ ๊ฐ์ ์์์ ๋ค์ ์ ์ํด์ ์ ๋ก๋ํ์ต๋๋ค.๋ค์ ํ์ธํ์๋ฉด ์คํ๊ฐ ์๋ ์์์ ํ์ธํ์ค ์ ์์ต๋๋ค.
- 0
- 2
- 27
Q&A
์ค์ ์ฌ์ฉํ๋ ค๋ฉด
์ ๊ณ์์ RISC-V๊ฐ ๋ ์ค๋ฅด๊ณ ์๋ค๊ณ ๋ ํ์ง๋ง, ์์ง ํ์ ๊ฐ๋ฐ์์ MCU์ ๋์ธ๋ Arm ํ๋ก์ธ์์ ๋๋ค. ๋จผ์ Cortex-M3์ ๋ํ ๋ด์ฉ์ ๋ถ์ํ์ ํ์, RISC-V ๋ถ์์ ์งํํ์๊ธธ ๊ถ์ฅ๋๋ฆฝ๋๋ค.
- 0
- 1
- 74
Q&A
์คํ์ PUSH๋๋ PC ๊ฐ
Armv7-A ์ํคํ ์ฒ(A32 ์ํ)์์ pc๋ฅผ ์ฝ์ด์ pushํ๋ ๋ช ๋ น์ด๋ฅผ ์คํํ ๋, pc๋ ํ์ฌ ์คํ ์ค์ธ ๋ช ๋ น์ด์ ์ฃผ์์ ๋์๋์ง ์์ต๋๋ค. ๋์ , ํ์ฌ ๋ช ๋ น์ด ์ฃผ์์ + 8๋ฐ์ดํธ์ ๊ฐ์ ๋์๋ฉ๋๋ค.์ด +8 ๋ฐ์ดํธ ์คํ์ ์ Arm ํ์ดํ๋ผ์ธ ๊ตฌ์กฐ ๋๋ฌธ์ ๋๋ค. ๋ช ๋ น์ด๊ฐ ์คํ ์ค์ผ ๋, ๋ช ๋ น์ด ํ์น(Fetch) ๋จ๊ณ์์๋ ์ด๋ฏธ ๋ค์ ๋ ๊ฐ์ ๋ช ๋ น์ด(8๋ฐ์ดํธ ์) ๋ฅผ ๊ฐ์ ธ์ ๋์ ์ํ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.์๋๋ TRACE32 ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์ฌ์ฉํด์ - ์ผ๋ถ๋ฌ C023F8FC ์ฃผ์์ ๋ช ๋ น์ด๋ฅผ 'push {pc}' ๋ช ๋ น์ด๋ก ๋ฐ๊ฟ์, ์คํํ ๊ฒฐ๊ณผ ํ๋ฉด์ ๋๋ค.(์ฌ์ง) ์คํ์ C023F8FC์ด ์๋, C023F904(C023F8FC + 0x8) ๋ฐ์ดํฐ๊ฐ ํธ์๋ฉ๋๋ค.Armv7-A ์ํคํ ์ฒ์์๋ PC๋ฅผ ์ฝ์ ๋ ํ์ฌ ๋ช ๋ น์ด๋ณด๋ค 8๋ฐ์ดํธ ์์ ์ฃผ์๋ก ํ์ธ๋ฉ๋๋ค.
- 0
- 2
- 43
Q&A
TRACE32 ๊ด๋ จ ๋ฌธ์ ๋ด์ฉ
์๋ ํ๊ฒฝ์์ ๋ฉ๋ชจ๋ฆฌ ๋คํ (2-irq_dump.zip)์ ๋ด๋ ค ๋ฐ์์, TRACE32 ์๋ฎฌ๋ ์ดํฐ ํ๋ก๊ทธ๋จ์ผ๋ก ๋ก๋ฉ์ ํ์ต๋๋ค.-Host OS : Window 11์๋ ํ๋ฉด๊ณผ ๊ฐ์ด ์ ๋๋ก ๋ก๋ฉ์ด ๋ ๊ฒ์ ํ์ธํ๋๋ฐ์. 1) TRACE32 ํ๋ก๊ทธ๋จ์ ๋ค์ ์คํ์ํจ ๋ค์์, ๋คํ๋ฅผ ๋ก๋ฉํ์๊ฑฐ๋ 2) 2-irq_dump.zip ์์ถ ํ์ผ์ด ์ ๋๋ก ํ๋ ธ๋์ง ํ์ธ ๋ถํ๋๋ฆฝ๋๋ค.// ์๋๋ ์ ๊ฐ ๋ก๋ฉํ TRACE32 ํ๋ก๊ทธ๋จ ์คํธ์ปท์ ๋๋ค.(์ฌ์ง) ๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 42
Q&A
T32 ์ค์น ๊ด๋ จ
๊ณต์ ํด์ฃผ์ ์คํฌ๋ฆฐ ์บก์ณ ํ๋ฉด์์ 'Podbus Device Chain' ์ ๋ถ๋ถ์ ์๋'Example Configuration'์ ์ขํด๋ฆญ์ ํ์ ๋ค์์, '์ฐํด๋ฆญ' - 'Add'๋ฅผ ์ ํํ์๋ฉดSimulator ์์ด์ฝ์ด ํ์ธ๋ ๊ฒ์ ๋๋ค.์๋ ์คํธ์ปท์ ์ฐธ๊ณ ํ์ ์ ์งํ ๋ถํ๋๋ฆฝ๋๋ค.(์ฌ์ง)๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 132
Q&A
์ ์ ๋ชจ๋ ๋ฑ ํฌ๋ ๋ ์ง์คํฐ ์ง๋ฌธ์ ๋๋ค
(๋ฆ๊ฒ ๋ต์ ๋๋ ค์ ์ฃ์กํฉ๋๋ค)Armv7-A ์ํคํ ์ฒ์์ ์ ์ ๋ชจ๋์ ๋ํ ๋ฑ ํฌ๋ ๋ ์ง์คํฐ๋ R13, R14 ์ ๋๋ค.๋ง์๋๋ฆฐ ๋ด์ฉ์ TRACE32๋ก ์ค์ต์ ํ์๋ฉด ํ์ธํ์ค ์ ์์ต๋๋ค.ํน์ R8-R14๊ฐ ๋ฑ ํฌ๋ ๋ ์ง์คํฐ๋ผ๊ณ ํ๋จํ์ ๊ทผ๊ฑฐ๋ฅผ ์๋ ค์ฃผ์๋ฉด, ํ์ธ ํ ๋ต์ ๋๋ฆฌ๊ฒ ์ต๋๋ค.๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 47
Q&A
๊ฐ์ ๋ฌธ์ ๋ฏธ์ ๊ณต
'4. ๊ฐ์ ๋ฌธ์'์ ๊ฐ์ ๋ฌธ์๋ฅผ ์ ๋ก๋ํ์ผ๋ ์ฐธ๊ณ ํ์ธ์.๊ฐ์ฌํฉ๋๋ค.
- 0
- 3
- 48





![Thumbnail image of the Introduction to Linux and Linux Kernel Overview [Author's Lecture Part 1-1]](https://cdn.inflearn.com/public/courses/333097/cover/8e09c5df-0571-462e-878c-39ddf13549b6/333097.png?w=148)