inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

ARM Cortex-M 프로세서 프로그래밍

s336_비정렬 액세스의 득과 실

UsageFault_Handler가 실행됩니다

429

woospace

작성한 질문수 3

2

88번 line  *p = v; 가 실행된 후 step 하면 UsageFault_Handler가 실행됩니다 ㅠㅠ 무엇이 문제일까요..?

arm-architecture cortex 임베디드

답변 1

2

홍영기

안녕하세요. 정연우님!

비정렬 액세스를 시도하는 경우 사용자는 HardFault 나 UsageFault 중 하나로 예외처리 함수가 실행되도록 할 수 있습니다.

아래와 같이 코드를 처리하셨다면, 88번 line  *p = v; 에서 UsageFault 함수가 실행되는 것이 맞습니다. ㅎㅎ

  #define CHECK_UNALIGN

  #ifdef CHECK_UNALIGN

    SCB->SHCSR = SCB->SHCSR | (7<<16); // 이 코드는 비정렬 액세스시 UsageFault 로 처리되도록 합니다.

    SCB->CCR = SCB->CCR | (1<<3); // 이 코드는 비정렬 액세스시 오류(예외)가 발생되도록 처리해줍니다.

  #endif

 

이번 챕터에서는 비정렬액세스라는 것이 어떤 개념인지 정도만 확인하시고, HardFault 나 UsageFault 을 포함한 예외처리에 대해서는 섹션 4. 예외처리와 하드웨어 인터럽트 에서 학습하시면 좋겠습니다.

또 궁금한 점 있으시면 질문남겨주세요 :)

0

woospace

아아 넵 감사합니다 ㅎㅎㅎ!!

stm32cubeide 관련 문의

0

86

2

DMA 관련한 강의도 제작해주실 수 있으신가요 ?

0

116

1

그림들도 해석 할 수 있어야 하나요?

1

114

2

no-stlink

1

101

2

4개의 CPU 사이클이 필요한 이유

1

110

2

MAC으로 진행 질문드려요..

1

100

2

학습 진행 시, 사용하는 Board에 대한 문의 드립니다!

0

167

2

push pop 질문

1

209

2

STM32Fx Cortex ARM 프로그래밍 저자:홍봉조, 출판사:지식과 감성

0

250

1

CORTEX_02_ASSEMBLY 빌드시 에러

1

276

1

외부 ST Link 연결 이용한 SWD 방법

0

359

1

파이프라인과 명령어

1

336

1

명령어 fetch

0

242

1

lr 레지스터 LSB 값

1

269

1

Disassembly 창 문제

0

357

1

s702 강좌에서 사용한 technical reference manual 문서

1

337

1

s702에 원자적 Access 를 위한 BSRR 코드작성 부분에 대해서

1

279

1

s202 LED 점등 예제 실행시 에러

2

357

1

STM32F429I-DISC 보드의 펌웨어

2

398

1

제공되지 않은 강의교재

0

319

1

s524 테일체이닝 강의 질문

0

242

1

부트코드와 부트로더의 차이점

1

1537

1

메모리 맵 질문

0

291

1

xPSR 레지스터 플래그 값 및 기타 질문 드립니다.

1

874

2