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
원격지원
활용사례
사이트맵 보기
TASKING 컴파일러를 이용한 Tricore MCU Start address 변경 문서 원본 보기
←
TASKING 컴파일러를 이용한 Tricore MCU Start address 변경
이동:
둘러보기
,
검색
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게만 가능합니다:
사용자
문서의 원본을 보거나 복사할 수 있습니다:
<p>Infineon의 TC299 target을 예제로 Reset vector인 Start address를 변경하는 방법을 소개한다.</p> <p> </p> <h2><strong style="font-size: 1.17em;">Boot Mode </strong><strong style="font-size: 1.17em;">변경</strong></h2> <p>TC299 target에서 지원하는 Boot mode는 Internal Start, Bootloader(ASC/CAN bootloader), Alternate Boot Mode가 있다. TC 299는기본적으로 Internal Start mode로 되어있고 아래 그림과 같이 address가 0xA000_0020으로 고정되어 있다.</p> <p><img src="/data/wiki/2016-05-09/1462779588.png" alt="" /></p> <p> </p> <p>Internal Start mode에서는 Reset vector를 변경할 수 없기 때문에 Alternate Boot Mode(ABM)으로 mode를 바꿔야 Start address를 변경 할 수 있다.</p> <p>ABM으로 변경하여 Start address를 지정하기 위해서는 Boot Mode를 변경하여야 한다. Boot Mode를 선택할 때 Target이 Boot Mode Header(BMHD)를 참조하게 된다. BMHD의 위치는 아래와 같다.</p> <p><img src="/data/wiki/2016-05-09/1462779600.png" alt="" /></p> <p>그리고 BMHD structure는 아래와 같다.</p> <p><img src="/data/wiki/2016-05-09/1462779605.png" alt="" /></p> <p> </p> <p>Boot mode를 변경하는 방법에는 아래 그림과 같이 TC299의 HWCFG[5:4] pins로 configuration하는 방법과 BMHD structure의 Boot Mode Index(BMI)를 수정하여 configuration하는 방법이 있다. 여기서 우리가 사용할 방법은 BMI를 수정하여 configuration하는 방법을 사용해야 한다.</p> <p><img src="/data/wiki/2016-05-09/1462779628.png" alt="" /></p> <p> </p> <p> </p> <p>BMHD의 각 header의 start address에서 0x04에 위치한 BMI structure의 아래 그림의 빨간 네모 박스를 수정하여 mode를 바꾼다.</p> <p><img src="/data/wiki/2016-05-09/1462780712.png" alt="" /></p> <p>첫 번째 빨간 네모 박스는 HWCFG pins를 사용 여부를 결정하는 pin이다. 이 핀을 disalbe해야 ABM을 사용할 수 있게 된다.</p> <p>두 번째 빨간 네모 박스는 PINDIS bit를 disable 했을 때 참조하게 되는 bit로 110으로 설정하면 ABM을 사용하게 된다.</p> <p> </p> <h2><strong>Tasking </strong><strong>컴파일러에서 Boot mode 변경</strong></h2> <p>아래 그림의 TASKING 컴파일러의 project->properties->C/C++ Build->Memory 항목을 보면 Boot Mode Headers 탭이 있다. Boot Mode Header 0항목의 Boot Mode Header configuration이 현재는 Reserve Boot Mode로 되어있는 것을 확인 할 수 있다.</p> <p><strong>Reserve Boot Mode :</strong> Boot Mode에 대한 정보를 담고 있는 bmhd.lsl 파일을 참조해서 configuration</p> <p><strong>Generate Boot Mode : </strong>사용자가 Eclipse를 통해 변경한 내용을 통해 Boot Mode를 configuration</p> <p><img src="/data/wiki/2016-05-09/1462779675.png" alt="" /></p> <p> </p> <p> </p> <p>Generate Boot Mode로 바꾸어 주면 우리가 원하는 Boot mode를 선택할 수 있게 아래의 항목들이 활성화 되는 것을 확인할 수 있다.</p> <p><img src="/data/wiki/2016-05-09/1462779685.png" alt="" /></p> <p> </p> <p> </p> <p>현재 Internal start from Flash되어 있는 것을 Alternate Boot Mode으로 바꾸어 주면 Boot mode를 Internal Start에서 ABM로 바꾸어 주는 것이다. 이것은 위에서 언급한 BMI structure의 HWCFG[6:4] 부분을 바꾸어 준 것이다.</p> <p><img src="/data/wiki/2016-05-09/1462779700.png" alt="" /></p> <p> </p> <p> </p> <p>우리는 HWCFG[5:4] pins을 수정하는 방법이 아닌 BMI를 수정하는 방법을 사용하기 때문에 BMI structure의 PINDIS bit를 1로 수정하여 HWCFG pins를 disable한다. 아래와 같이 Mode selection by HWCFG pins 항목의 체크박스를 해제하면 disable된다.</p> <p><img src="/data/wiki/2016-05-09/1462779708.png" alt="" /></p> <p>이렇게 해주면 HWCFG pins를 사용하는 것이 아닌 BMI를 변경하여 Boot mode를 바꾸어 준 것이고 ABM을 사용할 수 있게 된 것이다. 이로써 Start address를 변경할 수 있게 되었다.</p> <p> </p> <h2><strong>Start address </strong><strong>변경</strong></h2> <p>Internal Start mode에서 Start address는 0xA000_0020으로 default되어 있다. 하지만 Boot mode를 ABM로 변경하였고 Start address를 TASKING 컴파일러를 통해 직접 입력할 수 있다.</p> <p>아래와 같이 프로젝트의 Properties->C/C++ Build->Memory 항목의 Special Areas 탭을 확을 확인하면 Reset start address를 지정할 수 있다.</p> <p><img src="/data/wiki/2016-05-09/1462779723.png" alt="" /></p> <p>위 그림의 빨간색 네모 박스 부분을 더블 클릭하면 아래와 같은 창이 나온다.</p> <p><img src="/data/wiki/2016-05-09/1462779733.png" alt="" /></p> <p> </p> <p>자신이 원하는 address로 변경해준다. 필자의 경우에는 0xa000_0030의로 변경해보겠다.</p> <p><img src="/data/wiki/2016-05-09/1462779742.png" alt="" /></p> <p> </p> <p>OK버튼을 누르면 변경된 내용이 적용되고 아래처럼 [project명].lsl 파일을 확인해 보면 아래의 부분이 추가 된 것을 확인할 수 있다.</p> <p><img src="/data/wiki/2016-05-09/1462779754.png" alt="" /></p> <p> </p> <h2><strong>Start address </strong><strong>변경 확인</strong></h2> <p>Build를 수행하고 Start address가 정상적으로 변경되었는지 확인 할 경우 Memory dump를 볼 수 있는 Trace32 PowerView에서 target에 [프로젝트].elf 파일을 download해서 DATA.LIST 창을 확인해 본다.</p> <p><img src="/data/wiki/2016-05-09/1462779761.png" alt="" /></p> <p>Target을 reset 하면 위와 같이 사용자가 직접 지정해준 address로 reset 되는 것을 확인 할 수 있다.</p>
TASKING 컴파일러를 이용한 Tricore MCU Start address 변경
문서로 돌아갑니다.
둘러보기 메뉴
개인 도구
로그인
이름공간
문서
토론
변수
보기
읽기
원본 보기
역사 보기
행위
검색
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
도구
여기를 가리키는 문서
가리키는 글의 바뀜
특수 문서 목록
문서 정보