필자는 처음으로 MSP-EXP430F5529LP LED on/off 프로그램을 작성했습니다.MSP430 CCS6 메모리 주소
내 프로그램을 분석하고 싶습니다. 하지만 첫 걸음에서 문제가있었습니다.
보드에서 LED 프로그램을 추출했는데 불분명 한 데이터가 있습니다. (3)
이것이 나의 첫 번째 질문이다. 그 파일 형식은 무엇입니까? 내 메모리 덤프 파일의 파일 형식을 알고 싶습니다. (3)
제 2의 질문은 CCS 6이 메모리 주소를 올바르게 나타내지 않는 이유입니까?
MSP430은 16 비트 MCU입니다. 따라서 모든 메모리 주소는 16 비트 너비 여야합니다. 하지만 CCS6 Disassembly View에서 복사 한 어셈블리 코드 (2)는 01XXXX 형식과 같은 주소를 표시합니다.
상대적 데이터 참조 해제 및 실행 흐름 분기가 잘 작동합니다. CSS6가 왜 나를 혼란스럽게 만들었습니까? 나는 왜 CCS6이 24 비트 너비의 메모리를 표시하는지 알고 싶습니까?
알고 싶은 것을 설명하는 TI 문서가 어디에 있는지 알고있는 사람은 누구에게 알려주십시오. MSP430xxxx 사용자 설명서는 언급하지 마십시오. 내 영어 :(
1.C 코드
#include <msp430f5529.h>
volatile unsigned int i;
void main(void) {
WDTCTL = WDTPW | WDTHOLD;
P1DIR |= 0x01;
while(1){
P1OUT ^= 0x01;
for(i = 20000;i > 0; i--);
}
}
2.assembly 코드
0100c2: 40B2 5A80 015C MOV.W #0x5a80,&Watchdog_Timer_WDTCTL
0100c8: D3D2 0204 BIS.B #1,&Port_A_PADIR
0100cc: E3D2 0202 XOR.B #1,&Port_A_PAOUT
0100d0: 40B2 4E20 2400 MOV.W #0x4e20,&i
0100d6: 3C02 JMP (0x00dc)
0100d8: 8392 2400 DEC.W &i
0100dc: 9382 2400 TST.W &i
0100e0: 27F5 JEQ (0x00cc)
0100e2: 3FFA JMP (0x00d8)
0100e4: 4303 NOP
0100e6: D032 0010 BIS.W #0x0010,SR
0100ea: 3FFD JMP (0x00e6)
0100ec: 431C MOV.W #1,R12
0100ee: 0110 RETA
0100f0: 4303 NOP
0100f2: 3FFF JMP (0x00f2)
3.memory 덤프 (MAIN)
:1044000031400044b113ec000c930224b1130000be
:104410000c43b113c200b113f00000000200000011
:10442000840001001a44000000240000ffffffff89
:10443000ffffffffffffffffffffffffffffffff8c
:10444000ffffffffffffffffffffffffffffffff7c
...
...
덕분에 많이 보인다! 덕분에 사용자 가이드를 읽는 것이 얼마나 중요한지 알았습니다. :) – combabo