Guillermo Austin Kim

Sources

Posts

998 posts

[TRACE32] 폰트(FONT) 사이트 변경

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

[임베디드] 강력한 꼰대 개발자가 되는 방법(1)

Guillermo Austin Kim|2020년 4월 5일

'꼰대 개발자가 되는 방법'이란 주제로 2개 포스팅을 올린 후 많은 개발자의 피드백을 받았습니다. [임베디드] 꼰대 개발자가 되는 방법(1) [임베디드] 꼰대 개발자가 되는 방법(2) 그 중 제가 생각하는 '꼰대 개발자'에게 이 글을 보여드리고 의견을 알려 달라고 부탁을 드렸습니다. 실제 꼰대 개발자들의 인터뷰를 한 내용을 바탕으로 '꼰대 개발자'가 되는 방법을 써야 좋은 글이 나오겠죠. 꼰대 개발자님께서 대부분 애정어린, 진심을 담은 후기를 주셨습니다. 그 내용을 잠깐 소개해드릴까요? * 글의 내용이 정말 부실하다. 넌 글을 정말 못 쓰는 구나! * 야, 꼰대 개발자가 되기 위한 조건이 맞는지 모르겠다. 조금 더 내용을 보강해야 할 것 같다. * 참, 글 쓰레기 같이 쓴다. 이게 뭐냐?

[리눅스커널] 인터럽트: 인터럽트 핸들러 초기화 과정 디버깅해보기

Guillermo Austin Kim|2020년 4월 5일

우리는 request_irq() 함수로 인터럽트 핸들러를 등록하는 과정을 배웠습니다. 또한 request_threaded_irq() 함수에서 인터럽트 디스크립터에 해당 인터럽트 설정 정보를 저장하는 코드를 살펴봤습니다. 이번에는 라즈비안에서 리눅스 커널 코드에 디버깅 코드를 추가해 인터럽트 핸들러를 등록하는 코드 흐름을 파악해보겠습니다. 먼저 패치 코드를 소개합니다.diff --git a/kernel/irq/manage.c b/kernel/irq/manage.cindex 5c0ba5c..a8fca52 100644--- a/kernel/irq/manage.c+++ b/kernel/irq/manage.c@@ -1847,6 +1847,12 @@ int request_threaded_irq(unsigned

[리눅스커널] 시그널: __send_signal()dequeue_signal() 함수 분석 - 시그널 생성/시그널 받기

Guillermo Austin Kim|2020년 3월 18일

커널에서 시그널 서브시스템의 핵심 동작은 다음과 같다. * 시그널 전송: 시그널을 받은 프로세스에게 펜딩 시그널 정보를 써주고 시그널을 받을 프로세스를 깨운다. * 시그널 받기: 깨어난 프로세스는 펜딩 시그널을 받아 시그널에 대한 후속 처리를 한다. 이번 시간에는 펜딩 시그널 정보를 써주고(시그널 생성), 펜딩된 시그널을 프로세스(시그널 받음)는 읽는 과정에 초점을 맞춰 소스를 분석해보자. __send_signal() 함수 분석 먼저 __send_signal() 함수를 보자. int __send_signal(int sig, struct siginfo *info, struct task_struct *t, enum pid_type type, int from_ancestor_ns){

[리눅스커널] 워크큐: struct worker 구조체 파악하기

Guillermo Austin Kim|2020년 3월 11일

워커를 관리하고 저장하는 자료구조는 worker 구조체입니다. 이번 절에서는 worker 구조체의 세부 필드를 분석하겠습니다. worker 구조체 분석 다음은 worker 구조체의 선언부입니다. struct worker {2 union {3 struct list_head entry; 4 struct hlist_node hentry; 5 };6 struct work_struct *current_work; 7 work_func_t current_func; 8 struct pool_workqueue *current_pwq; 9 bool desc_valid;10 struct list_head scheduled; 1112 struct task_struct *task; 13 struct worker_p