MDSTECH
TRACE32
TRACE32 Solution
TRACE32 Trace Solution
TRACE32 More Product
TRACE32 Software Solution
Why TRACE32?
교육신청
정규교육
교육과정 안내
교육장 안내
교육설문
자료실
TRACE32 소프트웨어
TRACE32 매뉴얼
iTSP
TRACE32 영상
인증서
고객지원
뉴스레터
Q&A
FAQ
원격지원
검색창
검색버튼
회원가입
로그인
TRACE32
TRACE32 Solution
TRACE32 Trace Solution
TRACE32 More Product
TRACE32 Software Solution
Why TRACE32?
교육신청
정규교육
교육과정 안내
교육장 안내
교육설문
자료실
TRACE32 소프트웨어
TRACE32 매뉴얼
iTSP
TRACE32 영상
인증서
고객 지원
뉴스레터
Q&A
FAQ
원격지원
사이트맵 보기
LDR and STR 문서 원본 보기
←
LDR and STR
이동:
둘러보기
,
검색
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게만 가능합니다:
사용자
문서의 원본을 보거나 복사할 수 있습니다:
<p><span style="font-family: malgun;">대부분의 임베디드 프로세서들은 메모리 연산을 위해 아래와 같이 동작합니다.</span></p> <p style="padding-left: 30px;"><span style="font-family: malgun;">1. 메모리값을 레지스터로 읽는다 (Load)</span></p> <p style="padding-left: 30px;"><span style="font-family: malgun;">2. 레지스터에서 그 값을 변경한다</span></p> <p style="padding-left: 30px;"><span style="font-family: malgun;">3. 변경된 값을 메모리에 쓴다 (Store)</span></p> <p> </p> <p><span style="font-family: malgun;">대부분 타깃의 동작 오류는 이와 같은 메모리의 값을 읽고 쓰는 과정과 연관될 가능성이 크기 때문에,</span></p> <p><span style="font-family: malgun;">개발에 조금이라도 도움이 되시도록 Load & Store 명령에 대해 간단히 소개해 보도록 하겠습니다.</span></p> <p><span style="font-family: malgun;">(TRACE32 사용 및 창 설명에 대한 부분은 생략하였습니다.)</span></p> <p> </p> <p><span style="color: #3366ff; font-size: large;"><strong><span style="font-family: malgun;">LDR(Load register) : </span>메모리값을 레지스터로 복사합니다</strong></span></p> <p>아래는 LDR명령의 가장 기본적인 예 입니다.</p> <p>"LDR R0, 0x080053E0" 명령을 통해, 0x0800_53E0 번지에서 4바이트를 읽어 R0로 복사합니다.</p> <p style="padding-left: 30px;"> </p> <p style="padding-left: 30px;">실행전 :</p> <p style="padding-left: 30px;"><img src="/data/wiki/2015-04-30/1430360257.jpg" alt="" /></p> <p style="padding-left: 30px;"> </p> <p style="padding-left: 30px;">실행후 :</p> <p style="padding-left: 30px;"><img src="/data/wiki/2015-04-30/1430360481.jpg" alt="" /></p> <p> </p> <p> </p> <p><span style="font-size: large; color: #3366ff;"><strong><span style="font-family: malgun;">STR(Store register) : </span><span style="font-family: malgun;">레지스터 값을 메모리로 씁니다</span></strong></span></p> <p><span style="font-family: malgun;">STR은 LDR과 반대의 역할을 하는 명령어입니다.</span></p> <p><span style="font-family: malgun;">"STRH R0, [R1]" 명령을 통해 R0의 값인 0x40을 R1의 주소값인 0x2000_1C40 번지에 2바이트(Half Word) 적어주게 됩니다.</span></p> <p> </p> <p style="padding-left: 30px;"><span style="font-family: malgun;">실행 전 :</span></p> <p style="padding-left: 30px;"><img src="/data/wiki/2015-04-30/1430368899.jpg" alt="" /></p> <p style="padding-left: 30px;"> </p> <p style="padding-left: 30px;">실행 후 :</p> <p style="padding-left: 30px;"><img src="/data/wiki/2015-04-30/1430369089.jpg" alt="" /></p> <p> </p> <p>이와 같이 LDR명령을 통해 메모리 값을 레지스터로 읽어오고,</p> <p>STR명령을 통해 레지스터 값을 메모리로 쓰는 것을 간단히 살펴보았습니다.</p> <p> </p> <p>그런데, 위의 LDR/STR명령을 보면,</p> <p>"LDR R0, <span style="color: #ff9900;"><strong>0x080053E0</strong></span>"<span> 과 같이 두번째 인자(Operand2)가 상수값으로 오는 경우도 있지만,</span></p> <p><span>"STRH R0, <span style="color: #ff9900;"><strong>[R1]</strong></span>" 과 같이 레지스터가 오는 경우도 있습니다.</span></p> <p> </p> <p><span>또한 "LDR R0, 0x080053E0" 과 같이 4바이트를 접근하는 경우도 있지만,</span></p> <p><span>"STR<span style="color: #ff9900;"><strong>H</strong></span> R0, [R1]" 과 같이 2바이트를 접근하는 경우도 있습니다.</span></p> <p> </p> <p>이와 같이 LDR/STR 명령에는 여러가지 형태가 존재하는데, 이에 대해서는 이후에 추가로 알아보겠습니다.</p> <p>잘못된 점이나 추가 문의사항은 TRACE32@mdstec.com 으로 연락 부탁드립니다.</p>
LDR and STR
문서로 돌아갑니다.
둘러보기 메뉴
개인 도구
로그인
이름공간
문서
토론
변수
보기
읽기
원본 보기
역사 보기
행위
검색
TRACE32 Dummy
TRACE32
iTSP User's Guide
aTSP User's Guide
Linux Debugging
Debugging Tips
Trace Analysis
Virtual Target
TRACE32로 바라본 ARM
TRACE32 FAQ
TRACE32 Trouble Shooting
TRACE32 Software Update
Software Revision History
DT10 / DT-Win
다운로드
DT10 Evaluation
DT-Win Evaluation
TestPoint 삽입 Error
Build Error
DT10 FAQ
도구
여기를 가리키는 문서
가리키는 글의 바뀜
특수 문서 목록
문서 정보