arm instruction(명령어) - strleb
By Guillermo Austin Kim | 2017년 12월 27일 |
strleb란 명령어를 본 적이 있나요? 전 잘 몰라서요, 이 명령어가 어떻게 동작하는지 테스트를 해봤거든요.그 내용을 정리해서 업데이트할께요. 제가 만난 명령어는 아래와 같거든요.cmp r3, #2 @ 1 //<<--[1]strleb r2, [r0], #1 @ 1 해석을 하면 아래와 같아요."R3이 0x2보다 같거나 작을 경우[1], r2의 하위 2바이트를 r0가 가리키는 주소에 있는 값에 저장한 후 r2를 1만큼 증가시킴" "strltb" 명령어는 아래 단어를 줄인 것 같은데요.Str(Store)|le(Signed less than OR equal) | b(Byte) 이 내용이 머리에 잘 안 들어와서 실제 Trace32로 이 명
[dockcross] Docker를 이용한 크로스 컴파일 툴체인 이용하기
By 지훈현서 | 2017년 9월 23일 |
라즈베리파이 버전3 모델B는 CPU 아키텍쳐가 ARM 버전 7 (ARMv7) 이었습니다. 좀 더 구체적으로 어떤 임베디드 장비가 있었는데, $ cat /proc/cpuinfo 를 해 보았더니 CPU type이 유사하여라즈베리 파이에서 $ cat hello.c#include <stdio.h>main(){ printf("Hello world for dockcross!n"); return 0;} 와 같은 파일을 컴파일러가 있는 라즈베리파이에서 정상적으로 컴파일 하여, $ gcc -o hello hello.c 그 hello를 임베디드 시스템에 복사하여 실행하였더니 안되는 것이었습니다. 이리 저리 해 보다, $ gcc -static -o hello hello.c
[리눅스커널][디버깅] 크래시 유틸리티로 vmcore를 T32(Trace32)에 로딩하기
By Guillermo Austin Kim | 2019년 3월 13일 |
소개 크래시 유틸리티는 리눅스 커널 개발에서 인기 있는 디버깅 툴입니다. 특히 search 명령어로 메모리 서치를 할 수 있는 막강한 기능을 제공합니다. 하지만 프로세스별 콜스택을 이동하면서 지역변수를 볼 수 있는 기능이 없어 조금 불편합니다. 이번 포스팅에서 vmcore에서 스택 덤프를 추출해 T32 시뮬레이터로 콜스택을 올려 보는 방법을 소개합니다. 크래시 유틸리티로 프로세스 스택 메모리 덤프하기 "./crash64 vmcore vmlinux" 명령어로 크래시 유틸리티를 실행합니다.austindh.kim~/backup/Vmcore_dump$ ./crash64 vmcore vmlinux crash64 7.1.9++Copyright (C) 2002-2017 Red Hat, Inc.Copyrigh
[ARM] 임베디드 개발자가 반드시 ARM 프로세서를 배워야 하는 이유
By Guillermo Austin Kim | 2020년 7월 14일 |
이번 시간에는 ARM 프로세서를 리눅스 시스템 개발자가 배워야 하는 지 설명합니다. 브링업을 제대로 하기 위해서 임베디드 개발자들이 진행하는 프로젝트의 단계는 '보드 브링업 - 기능 안정화 - 유지 보수'로 분류할 수 있습니다.3단계에서 보드 브링업은 어떤 단계를 거쳐 진행될까요? 과제에 따라 다르지만 개발 업무의 내용을 소개하면 다음과 같습니다. * 부트로더에서 스타트업 코드를 작성 * 메모리와 같은 하드웨어를 초기화 먼저 스타트업 코드를 작성하는 업무에 대해서 조금 더 설명을 드려볼까요?전원이 시스템에 들어오면 가장 먼저 실행되는 코드가 reset 익셉션 벡터 코드입니다. 이 코드에서 기본적인 메모리를 설정을 초기화하고 ARM 모드 별로 스택 사이즈를 지정해야 합니다.이 모든 코드를