void EXTI_7_5_Init(void)
{
EXTI_InitTypeDef EXTI_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC | RCC_APB2Periph_AFIO, ENABLE);
// GPIO PORT INIT
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7 ;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; // Pull-Up
GPIO_Init(GPIOC, &GPIO_InitStructure);
// Enable the EXTI9_5 Interrupt
NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
EXTI_ClearITPendingBit(EXTI_Line5);
EXTI_ClearITPendingBit(EXTI_Line6);
EXTI_ClearITPendingBit(EXTI_Line7);
GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource5 );
GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource6 );
GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource7 );
// Configure EXTI Line to generate an interrupt
// Rising and Falling edge Trigger
EXTI_InitStructure.EXTI_Line = EXTI_Line5 | EXTI_Line6 | EXTI_Line7;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
}
2. stm32f10x_it.c 추가내용 (IRQ내부)
3. 디버깅도중 CPU Halted 걸려서 먹통.. OTL.
증상)
원인)
- icf 파일 내용
해결)
icf파일에서 생성하는 intvec_start 섹션의 이름이
stm32f10x_vector.c에 정의된 이름과 같지 않아서 생긴 문제인듯..
icf파일의 ".INTVEC" -> "INTVEC"로 변경으로 해결!!
4. 실행중 HardFaultException 에 들어감.
증상)
- The stack 'CSTACK' is filled to 100%
- The Stack pointer for stack 'CSTACK'
이라고 혼냄.. ㅠ_ㅠ
- 어셈..
원인)
- Stack을 너무 많이 썼음.. (너무많이 부려먹었나..?)
해결)
- .icf 파일의 스텍사이즈 정의..
- 일단 키워보자. 사용하는걸 계산할수 있으면.. 이런글도 안남기겠지? ㅎㅎ
(요놈을)
void EXTI9_5_IRQHandler(void) |
3. 디버깅도중 CPU Halted 걸려서 먹통.. OTL.
증상)
원인)
- icf 파일 내용
- stm32f10x_vector.c 내용
해결)
icf파일에서 생성하는 intvec_start 섹션의 이름이
stm32f10x_vector.c에 정의된 이름과 같지 않아서 생긴 문제인듯..
icf파일의 ".INTVEC" -> "INTVEC"로 변경으로 해결!!
4. 실행중 HardFaultException 에 들어감.
증상)
- The stack 'CSTACK' is filled to 100%
- The Stack pointer for stack 'CSTACK'
이라고 혼냄.. ㅠ_ㅠ
- HardFaultException 함수에서 껌뻑껌뻑.. 깜깜 무소식..
- 어셈..
원인)
- Stack을 너무 많이 썼음.. (너무많이 부려먹었나..?)
해결)
- .icf 파일의 스텍사이즈 정의..
- 일단 키워보자. 사용하는걸 계산할수 있으면.. 이런글도 안남기겠지? ㅎㅎ
(요놈을)
(이렇게) (symbol 이름이 파일마다 다를수가 있나??)
No comments:
Post a Comment