2010-12-27 2 views
2

펌웨어에서 사용되는 플래시 (ROM) 및 RAM의 크기를 찾는 데 도움을주십시오. 펌웨어는 C++을 사용하여 구현됩니다. 또한 Keil microvision4도 있습니다. ROM과 RAM 크기를 찾는 것이 도움이 될까요?펌웨어에서 사용되는 플래시 및 RAM의 크기를 찾는 방법은 무엇입니까?

또는 메모리 크기를 찾으려면 펌웨어의 MAP (.M51) 파일을 봐야합니까? 또는 단지 16 진수 파일 (.hex) 파일의 크기를 알려주는 것이 ROM의 크기를 찾는 데 충분합니까?

+3

임베디드 시스템에 관한 질문은 최소한 사용중인 마이크로 컨트롤러 제품군 및 컴파일러 버전을 명시해야합니다. Keil IDE를 사용하고 있기 때문에 Keil 컴파일러도 사용해야한다고 가정하지만 Keil은 많은 다른 컴파일러를 만듭니다. –

+0

불완전한 정보에 대해 사과드립니다. 예 컨트롤러는 80C51 (확장)입니다. 또한 Keil (kit) 마이크로 비전 4 IDE, 컴파일러, assemebler 및 디버거를 사용하고 있습니다. – Asad

답변

4

몇 가지 의견 :

  1. 육각 파일의 크기는 많은 양의 정보를 제공하지 않습니다. 예 : 어떤 RAM 사용도 제공하지 않습니다. 장치에있는 이미지의 크기를 알려주지 못할 수도 있습니다 (NOR 및 NAND 플래시에 쓰고 있습니까? 플래시 블록 크기 등은 무엇입니까?)
  2. 지도 파일은 이미지를 이해하는 데 유용한 도구입니다. 메모리 레이아웃 및 크기. 모든 세그먼트 할당 정보를 제공해야합니다. Keil 프로젝트 매니저는 꽤 괜찮으므로 빌드 옵션을 확인하여 자세한 맵 파일을 생성하는지 확인하십시오.
  3. 링커 지시문 파일을보고 해당 세그먼트 (bss, 데이터 등)가 할당되고 메모리에 배치되는 방법을 이해했는지 확인하십시오.
  4. 지도 파일에는 동적 (힙) 메모리 할당과 관련된 많은 정보가 포함되어 있지 않습니다.
+0

Infact 매우 도움이 답변. 그리고 나는 또한 다른 세그먼트의 주소 할당을 찾는지도 파일쪽으로 기울어 져있다. 나는 당신의 언급 된 포인트 3이 정확히 내가 필요한 것이라고 가정합니다. 단지 좀 더 정교하게 쿼리를 해결할 수 있습니다. 나는 여기에지도 파일 내용을 복사하면 어떤 1 세그먼트의 크기를 찾을 수있는 도움이 될거야? – Asad

+0

좋은지도 파일은 길 수 있습니다. 코드를 온라인 메모장 (예 : Google 문서 도구 등)에 게시하면 모양을 볼 수 있습니다. – Throwback1986