[TRACE32] 폰트(FONT) 사이트 변경
By Guillermo Austin Kim | 2020년 4월 7일 |
아래와 같이 t32 파일을 수정하면 폰트 사이즈를 LARGE로 변경할 수 있습니다. index d07418b..db9c6c9 100644--- a/config-sim.t32+++ b/config-sim.t32@@ -16,7 +16,7 @@ ID=T32 SYS=${2} ; make system directory the same as the executable directory SCREEN=-FONT=SMALL+FONT=LARGE HEADER=iTSP - HANCOM MDS GUI ${4} ; Ethernet on Host information@@ -26,4 +26,4 @@ CORE=${4} ; CORE=1 indicates t
[리눅스커널][디버깅] 임베디드 디버거 전설 Trace32
By Guillermo Austin Kim | 2019년 3월 21일 |
임베디드 디버거 전설 Trace32 Trace32(T32)는 임베디드 소프트웨어에서 많이 쓰고 있는 전설적인 디버깅 프로그램입니다.다른 RTOS 개발에도 Trace32를 많이 쓰고 있으며 대부분 임베디드 개발자는 Trace32를 다룰 줄 압니다. 실전 개발에서는 너무나 유명하고 인기 있는 디버깅 프로그램이니 신입 개발자들은 잘 숙지하도록 합시다. Trace32는 여러 가지 강력한 디버깅 기능과 다양한 명령어를 지원합니다.세부 내용은 이 책의 범위를 넘어서므로 다루지 않습니다. 실전 개발에 적용할 수 있는 Trace32 사용법(커널 크래시 디버깅)은 저의 개인 Youtube 채널로 방문하면 됩니다. 이 책에서는 Trace32 시뮬레이터 기능을 활용해 커널 자료 구조를 소개합니다. 신입 개발자가 참고할만
[리눅스커널] 익명 페이지 메모리 누수(Memory Leak) 디버깅 - TRACE32
By Guillermo Austin Kim | 2019년 12월 16일 |
많은 리눅스 시스템 개발자들은 자신이 개발하고 있는 리눅스 커널의 버전이 주류였으면 하는 바램이 있다. 하지만 현실은 다르다. 현재 리눅스 커널의 최신 버전인 4.19(LTS 기준)으로 개발하고 있어도 이전 리눅스 커널 버전에서 다뤘던 자료 구조에 대해 알고 있어야 한다. 이번에는 커널 3.10 버전에서 struct anon_vma 구조체와 struct address_space 구조체의 관계에 대해 알아보겠다. 먼저 다음 TRACE32 명령어를 입력해 3번째 프레임의 페이지 디스크립터를 확인하자. $(TRACE32 명령어) v.v %d %t %h %i (struct page[0x7FFF])*mem_map (static struct page [32767]) (struct page[0x7FFF])*me
[Kernel][Debug] 런큐에서 CFS 스케쥴러에 큐잉된 프로세스 찾기
By Guillermo Austin Kim | 2018년 4월 26일 |
런큐에 CFS 스케쥴러로 큐잉된 상태로 기다리는 프로세스 목록은 어디서 찾을 수 있을까요?per-cpu 타입의 runqueues.cfs_tasks 멤버를 찾으면 됩니다. 다음은 CPU4 runqueue의 예시입니다. (struct rq *) [-] (struct rq*)(((void*)&runqueues)+__per_cpu_offset[4]) = 0xFFFFFFC73E0F2900 -> ( (raw_spinlock_t) [D:0xFFFFFFC73E0F2900] lock = ((arch_spinlock_t) [D:0xFFFFFFC73E0F2900] raw_lock = ((u16) [D:0xFFFF (unsigned int) [D:0xFFFFFFC73E0F2918] nr_running