TRACE32 입문 - MCU & RTOS 개발자를 위한 실전 디버깅 과정
김동현 (Austin Kim)
기업에서 모셔가는 MCU 개발자가 되기 위한 필수 스킬인 - TRACE32 입문 과정입니다. 실무에서 바로 활용할 수 있는 TRACE32 디버깅 방법을 빠르게 익힐 수 있습니다.
입문
MCU, debugging, riscv
The author of "Arm Architecture: Structure and Principles for System Software Development" will properly guide you through the very foundation of system software and the core of the latest Arm architecture (Armv8-A, Armv7-A)!
374 learners
Arm Processor Introduction
Arm Architecture Learning Method
Register
Assembly instruction
Armv7: Operating Mode
Armv8: Exception Level
The most basic of system software basics,
The heart of the latest Arm architecture!
0. 30% discount coupon issued when 300 students enroll
To celebrate reaching 300 students (Part 1 and 2), we are issuing a 30% discount coupon. Thank you. First 100 people.
We've added the following lectures to explore the latest Arm architecture features and useful content that can be applied directly to real-world projects.
The lectures will continue to be renewed.
This lecture, <Structure and Principles of Arm Architecture for System Software Development - Part 1 Direct Lecture by the Author>, is included in the roadmap 'Arm for System Software Developers - Basic Course' .
If you want to learn Arm architecture (Armv8-A, Armv7-A) systematically, it is recommended to use the roadmap (30% discount on all lectures). For reference, the Arm architecture roadmap (all author lectures) consists of two courses: Basic Course and Advanced Course .
The Arm processors used in smartphones, AI SoC system semiconductors, electric vehicles (autonomous driving, infotainment), cloud servers, and MacBooks are all Armv8-A based 64-bit Cortex-A processors (Cortex-A53, Cortex-A57, Cortex-A72, etc.). The Armv8-A architecture can be seen as the most needed basic knowledge in the current system software industry.
But, did you find the latest Arm architectures, Armv8-A and Armv7-A, too difficult ?
Junior developers who want to develop their capabilities in the field of system software, including system semiconductors and electric vehicles (autonomous driving, infotainment).
Job seekers who want to develop system software in fields such as system semiconductors and electric vehicles
College students aiming to advance to graduate school in the field of system software (memory, file system, operating system)
Developers from other fields who want to transition their careers into systems software.
Many Linux embedded developers learn computer architecture and operating systems. They also study CS theory to some extent. Recently, rising system semiconductor and electric vehicle system software developers analyze Linux device drivers, RTOS, or bootloaders. However, they feel that something is lacking . They know that they must know the Arm architecture to become a professional system software developer, but when they actually open the Arm specification document, they decide that it is not an easy path and that self-study is difficult.
It is no exaggeration to say that the core of system software development is CPU and computer architecture. We have easily explained the core theory of the latest Arm architecture (Armv8-A, Armv7-A) , the most needed CPU processor in the IT industry!
The reason why Arm architecture is difficult is because it is learned only from the perspective of the hardware processor. This lecture explains how the contents of the Arm architecture are actually used through code analysis and specific case introduction. This lecture will play a pivotal role in helping you become a capable system software developer.
What is the shortcut to learning Arm architecture? It is to practice by debugging yourself.
By taking this course, you can download the educational TRACE32 simulator program from 'Inflearn lecture materials' and use the TRACE32 simulator program to debug by following the debugging process (including assembly instructions) explained in the course. The related debugging lectures in the curriculum are as follows:
You can also follow the debugging related to operation mode and exception level.
In addition to the contents of the book 『Structure and Principles of Arm Architecture』 , it specifically explains debugging practices and various cases for the Arm architecture that are not covered in the book.
Introduces the Arm processor and Arm architecture along with the process of developing system semiconductors. Describes the profiles and families of Arm processors.
Introduces the registers of the Armv7-A architecture and explains their features.
This section covers banked registers among general-purpose registers (Armv7-A) in detail. It also explains in detail the main fields that make up the CPSR register, which contains the status information of the process.
An easy-to-understand and detailed explanation of the registers defined in the Armv8-A architecture.
Debug registers with the TRACE32 program. We will explain in detail how registers work by directly changing the values of registers defined in the Armv7-A and Armv8-A architectures. Of course, we will explain so that students can follow along and debug.
Describes the basic structure of assembly instructions and explains each assembly instruction in detail.
It goes beyond explaining the grammar of assembly instructions and goes into detail about how assembly instructions are used in actual projects.
I will explain by directly debugging assembly instructions using the TRACE32 program. I will explain in a way that students can debug along with arithmetic instructions (e.g. MOV, ADD, SUB) to branch instructions, bit operation instructions, and logical instructions (AND, ORR, EOR).
Introduces the operating modes that form the basis of Armv7-A and explains in detail the features of each. Explains what software is executed in each operating mode.
We describe the privilege levels associated with the operating modes and break down the bit fields in the CPSR register that determine the operating mode.
We will directly debug commands that change the operating mode with the TRACE32 program. We will also directly execute commands that cause exceptions and explain the process of causing exceptions through the debugging process. We will explain so that students can follow along and debug.
This article explains the concept of exception levels, one of the core features of the Armv8-A architecture, in an easy and detailed manner.
Through analysis of the specification document, we review the exception levels in detail and describe the software stack that is executed for each exception level.
We will practice reading exception levels with the TRACE32 program. We will also explain the process of changing exception levels by directly executing SVC and HVC commands and debugging them. Students can download the TRACE32 program and follow along to debug.
A shortcut to understanding how Arm processors work is to read and understand the Arm specification documents directly.
It is never easy for beginners. No matter how useful the content is, it is difficult to understand. This lecture is designed to open the way for you to approach the difficult theories of the Arm architecture more easily.
Unparalleled in the domestic system software field! Author of 'Arm Architecture (Armv8-A, Armv7-A)' and 'Linux Kernel' ( both books selected as excellent books by the Korean Academy of Sciences ) and global author who wrote the book "Reverse Engineering Armv8-A Systems" (English) through a foreign publisher (Packt) for the first time in Korea . Above all, he is a working developer who knows the latest system software trends (electric vehicles, system semiconductors - system software) the best. He is also an educator who is most active in knowledge dissemination in the field of system software.
I can confidently say that I am the educator who can explain the key features of the Arm architecture (Armv8-A, Armv7-A) better than anyone else in Korea.
Q. Is it necessary to learn the Arm architecture to become a system software developer?
Yes, you should definitely learn it. The most widely used CPU in the IT industry is the Arm processor. System software developers who program to control hardware often need to have a good understanding of the Arm architecture to solve problems. If you don't know the Arm architecture well, you'll likely only be able to do simple system configuration work.
Q. I am not a major. Can I learn Arm architecture?
Even non-majors can fully understand the basic principles of the Arm architecture by listening to the contents of this lecture carefully. Among the beta readers of the book 'Structure and Principles of Arm Architecture for System Software Development', there were many non-majors. At first, it was difficult to read and understand the contents of the Arm architecture right away, but after reading the book 2-3 times, most of them understood the Arm architecture. This lecture explains the contents of the book in more detail and specifically, so even non-majors will be able to understand the Arm architecture well by listening to this lecture .
Q. Do I need to take this course to become a security software developer?
If you want to develop software like V3, the theory of CPU architecture is essential. After moving to kernel driver developer, you must know CPU architecture such as Arm architecture. If you want to learn the core of various attack/defense techniques including reversing, it is difficult to even try without knowing the theory of Arm architecture.
Q. I only studied the C language and data structures. Can I still take this course?
Yes, you can. You don't need any special pre-knowledge to take this course. The following attitude may be more important than pre-knowledge.
However, if you already have some knowledge of operating systems or RTOS, it may be helpful to understand this lecture.
Who is this course right for?
Junior developer who wants to develop capabilities in the system software field, including system semiconductors (fabless) and electric vehicle fields (autonomous driving, infotainment)
Developer from another field seeking system software career.
A job seeker who wants to develop system software in the system semiconductor (fabless) and electric vehicle fields.
Undergraduate student aiming for graduate studies in system software (memory, file system, operating system)
System software developer (system semiconductor, electric vehicle) interested in practical debugging methods leveraging Arm architecture features.
A system software developer who wants to know how Armv8-A-based Arm processors operate in system semiconductors
A graduating student preparing a graduation project on an Arm-based system.
Graduate student working on a lab project in an Arm processor environment
Need to know before starting?
Computer Architecture
Operating System
5,795
Learners
176
Reviews
89
Answers
4.9
Rating
22
Courses
글로벌 저자 & 리눅스 시스템 소프트웨어 개발자 (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'
All
165 lectures ∙ (22hr 9min)
Course Materials:
All
23 reviews
5.0
23 reviews
Reviews 4
∙
Average Rating 5.0
5
강의를 듣고 나니 머리가 맑아지고 무엇인가 체한게 내려간 듯한 느낌입니다. 그 동안 막연했던 ARM의 주요 개념이 명확히 정리된 것이 신기합니다. 강의를 듣고 달라진 제 모습이 조금 놀라웠습니다. ARM 스펙을 읽을 때 마다 새로웠는데, 이제는 ARM 스펙 문서를 술술 읽게 됐습니다. 프로젝트에 바로 적용할 만한 내용은 것도 신기해 주위 동료 개발자에게도 추천했습니다. 인생 강의를 듣게 되어 기쁘고 더 많은 강의가 업로드됐으면 좋겠습니다. 훌륭하고 유익한 강의 너무 감사합니다.
좋은 평가와 격려 감사합니다. 혹시 궁금한 점이 있으면 언제든지 Q/A로 남겨주세요. 앞으로 제 강의를 "정말 잘 들었다"라는 확신을 드리기 위해 계속 최선을 다하겠습니다.
Reviews 4
∙
Average Rating 5.0
5
ARM 역사부터 시작해서, ARM instruction, 레지스터, exception level 까지, ARM 구조 이해의 꼭 필요한 기초 베이스를 아주 자세하면서 깊게 설명해 줘서 고맙습니다! 이런 내용의 서적은 최소 국내에서는 못 봤습니다. 리눅스 커널과 관련된 업무를 진행하거나 ARM 에 관심 있는 분들께 꼭 추천드리고 싶습니다!
좋은 평가와 격려 감사합니다. 혹시 궁금한 점이 있으면 언제든지 Q/A로 남겨주세요. 앞으로 제 강의를 "정말 잘 들었다"라는 확신을 드리기 위해 계속 최선을 다하겠습니다.
Reviews 4
∙
Average Rating 5.0
5
TRACE32, 리눅스 커널 소스, XEN 하이퍼바이저 소스 등 실제로 적용된 예시들을 통해 ARM 아키텍처를 배우니 이론들이 머리에 더 오래 남아있고 흥미롭게 강의를 볼 수 있었습니다. 3부 강의도 얼렁 보고 싶고 이론뿐만 아니라 실제로 프로그래밍을 하는 실습 강의도 개설되었으면 좋겠습니다. 좋은 강의 감사합니다.
좋은 평가 감사합니다. 특히 시스템 소프트웨어의 다양한 분야에 활용될 수 있는 실습 예시가 많이 포함되어 있어 실무에 많은 도움이 될 것이라 예상됩니다. 나중에 실습으로 진행하는 강의를 제작할 예정입니다. 3부 강의는 1월달 초에 출간될 예정이니 참고하세요. 감사합니다. ^^
Reviews 2
∙
Average Rating 5.0
Reviews 1
∙
Average Rating 5.0
Edited
$102.30
Check out other courses by the instructor!
Explore other courses in the same field!