2010-07-15 2 views
1

BDM ELF 파일이 사용 된 메모리면에서 일반 ELF 파일보다 유리한 점은 무엇입니까? JTAG 연결하여BDM 엘프 파일 대 일반 엘프 파일

  1. BDM의 ELF 파일이 TRACE32 원하는 디버거 툴 을 통해 디버깅을 위해 사용될 수있다 :

    나는 모두에 대해 다음 사항을 알고있다. 정상적인 ELF 파일은 ECM의 ROM 영역으로 플래시해야하는 해당 FLS 파일 (플래시 파일)이있는 경우 디버그 목적으로 사용되는 일 수도 있습니다.

  2. BDM ELF 파일은 ECM (전자 제어 모듈)의 RAM 영역에로드되지만 일반 ELF 파일과 해당 FLS는 ECM의 ROM에로드됩니다.
  3. 엘프 파일 (하나 BDM 또는 정상 하나) ECM의 메모리에 전체로드되지 않습니다 (나는 우리가 KB의 의 측면에있는 ELF를로드하기 위해 사용하는 ECM 메모리의 크기에서 이것을 이해 MB의 관점에서 볼 때 ELF의 거대한 크기에 비해), ELF 파일의 일부 (유형, 가변 및 기능 등의 기호)는 Trace32 메모리와 함께 보관됩니다.

위의 내용은 ELF를 사용하여 얻은 주요 이해 사항이었습니다. 잘못 해석 한 경우에 대비하여 사람들이 스스로 해결하는 데 도움이 될 것입니다.

내 생각에 BDM ELF 파일 내용이 Trace32 디버거와 ECM 메모리간에 어떻게 분산되어 있는지 알고 싶다면 두 가지 모두 ELF 형식 중 하나가 디버깅 용도로만 사용되므로 서로 유리합니다. 응용 프로그램/소프트웨어를 고객에게 공개 할 때 고객이 ECM으로 플래시하는 FLS 형식으로 릴리스합니다.

내 질문에 답변하기 위해 더 이상 정보가 필요하면 알려주십시오.

답변

1

확인을 다시 시도 할 것이다 :

어떻게 BDM의 ELF 파일 내용은 TRACE32 디버거와 ECM 메모리에 분산되어?

ELF 파일은 디버깅을 돕기 위해 trace32가 사용하는 디버깅 기호 정보 (메모리 위치와 함수 및 함수에 관련된 레지스터)를 저장할 수 있습니다. 이 심볼 정보는 trace32에 저장되어 있으며 칩에서 BDM 출력 (주로 레지스터 값)을 디코딩하고 베어 조립을 넘어 유용한 정보를 제공하는 데 사용됩니다.

방법 모두 하나 다른 것보다 유리한 ELF 형식 중 하나는 유일한 목적을 디버깅에 사용되는?

이것은 디버깅 도구와 개발 도구 체인에 따라 다릅니다. ELF는 다른 대답에서 말했듯이 표준 형식입니다. 라인 프로그래밍에 사용되는 날씨는 개발 도구가 링크 타임에하는 일에 달려 있습니다. 당신은 당신의 도구 체인이 무엇인지 말해주지 않기 때문에, 나는 단지 추측 할 수 있습니다.

장치에 플랫 메모리 모델과 통합 ROM (대부분의 32 비트 장치에 저장소 크기가 더 적은)이 있으면 장치를 프로그래밍하는 데 하나의 파일 만 필요합니다. RAM과 내부 플래시가 동일한 주소로 처리되기 때문에 주소는 원하는 대상과 일치해야합니다.

반면에 ROM이 저장된 곳 (제품에있는 것으로 의심되는 곳)이 두 곳 있고 주소가 같지 않으면 두 개의 파일이 필요할 수 있습니다. 이것은 외부 플래시 ROM 칩 (또는 SD 카드 등)과 인터페이스하는 ECU가있는 경우에 해당됩니다. 이 경우, 주소가 겹칠 가능성이 있으므로 (ELF는 데이터 조각에 대해 고유 한 주소를 가정하기 때문에) 오프 칩 저장소에 쓸 때 별도의 이미지가 필요합니다. 따라서 두 개의 ELF 파일이 필요합니다. 하나는 디버그에서 장치를 시작하기 위해 RAM에로드 할 디버깅 설정을 지정하고 다른 하나는 외부 플래시 칩에 프로그래밍 된 OS 및 기타 데이터에 대한 기호 정보를 지정합니다. FLS 파일은 프로그래머가 ELF에없는 외장 플래시를 처리하는 데 사용하는 정보를 지정하지만 아키텍처에 따라 다릅니다 (Nokia에서 하드웨어를 설계하는 방법에 익숙하지 않습니다).

일반 ELF 정보를 원하시면 도움이 될 수 http://blog.ksplice.com/tag/elf/

-1

질문에 물음표가 없습니다. 따라서, 나는 당신이 묻고있는 것에 완전히 대답하고 있는지 확신하지 못합니다.

이 정보

은 주로 실제적인 문서에서, BDM을 통해 ELF 파일의 사용에서 유래 :

ELF 그래서 모든 ELF 파일이 동일해야합니다, 파일 스펙입니다. ELF 파일은 링커에 의해 생성되며 심볼 정보와 섹션으로 구성된 실행 코드를 포함합니다. 사용자가 ECM을 프로그래밍하면 디버거/프로그래머는 ELF 파일을 읽고 섹션 주소와 관련 코드를 찾아 원하는대로 씁니다.

실행 파일이 RAM 또는 ROM에 기록되는지 여부는 ELF 섹션의 주소 (일반적으로 링커에서 읽은 구성 파일을 통해 구성 가능) 또는 프로그램이 "프로그래밍 된"프로그래머의 설정에 따라 다릅니다. 대부분의 디버거에는 ROM 또는 RAM에 이미지를로드하는 옵션이 있습니다. 프로그램 이미지의 유일한 차이점은 코드 및 변수의 위치입니다.

설명하는 상황에서 프로그래머가 elf 파일의 실행 가능 데이터를 가져올 수없는 것 같습니다. 귀하의 fls 파일은 대상 하드웨어에 단어를 쓸 수있는 일종의 원시 이미지 파일이라고 가정합니다.

+0

"FLS 파일"또는 ".fls"파일 확장자에 익숙하지 않은 것 같습니다 ... 휴대 전화의 예를 설명해 드리겠습니다 ... – wrapperm

+0

확장자가 .FLS 인 파일은 특정 Nokia 휴대폰 용 소프트웨어 플래시 파일. '플래시'또는 '플래싱'의 목적은 휴대 전화 운영체제 또는 펌웨어를 변경하는 것입니다.휴대 전화 운영 체제는 하드 디스크에 저장되지 않지만 전기적으로 지울 수 있고 다시 프로그래밍 할 수있는 비 휘발성 컴퓨터 메모리 인 '플래시 메모리'에 보관됩니다. ".FLS"파일 형식은 .FLS 파일의 특정 버전을 만드는 데 사용되는 소프트웨어에 따라 다를 수 있습니다. 잘못된 소프트웨어를 사용하면 운영 체제가 손상 될 수 있습니다. 비슷한 개념이 모든 ECM에 사용됨 – wrapperm

+0

언급 한 내용이 모두 정확하며 위에서 언급 한 정보를 알고 있습니다. 그러나 나의 질문은 여전히 ​​답이 없습니다. – wrapperm

0

BDM ELF의 능력, 그리고 그것을 중지하지 않고도 메모리 위치 및 메모리 매핑 레지스터의 코드가 실행되는 동안 변경 사항을 볼 수 있습니다.

BDM ELF를 사용하여 하드웨어 감시 점 또는 중단 점을 가질 수 있습니다. 이것은 실행 속도에 영향을주지 않고 변경되는 값을 깨뜨릴 수 있기 때문에 유용합니다. 디버거가 깨지면 디버깅 커널과 응용 프로그램을 함께 사용하여 정확히 어떤 줄이 있는지 찾을 수 있습니다.

사용자 프로그램에서 BDM 디버거의 중단 점을 설정할 수 없습니다. 이것은 "halt"명령어를 삽입하고 커널 코드에 의해서만 실행될 수 있기 때문입니다. BDM 인터페이스를 통해 사용자 응용 프로그램의 디버깅을 허용하도록 BDM 드라이버를 수정할 수 있습니다.