Processor mode

1. Thread mode

:application software 수행할때 사용

:reset 시, exception 종료시 돌아오는 기본모드 

2. Handler mode

:exceptions을 handle할 때 사용.


여기서는 exception과 외부 IRQ(Interrupt Request)를 다룬다.


레퍼런스 메뉴얼에 exception 관련 52, 53번 table을 참조한다.


synchronous는 동기적인 것이고 asynchronous는 비동기적인 것이다.


p304를 보면 여기서 다루는것은 3가지로

SysTick(System Tick Timer), NVIC(Nested vectored interrupt controller), SCB(System Control Block)이다


1.NVIC Vector Table 설정

참조함수 : NVIC_SetVectorTable


NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x0);에서


#define NVIC_VectTab_RAM             ((uint32_t)0x20000000)

#define NVIC_VectTab_FLASH           ((uint32_t)0x08000000)

로 되어있다.


SCB->VTOR(Vector table offset register)

설정되는 값이 RAM영역 이거나 FLASH 영역 이라는데 위의 NVIC 두개를 말하는 것이다


2.SysTick Configuration

참조함수 : RCC_GetClocksFreq(RCC_ClocksTypeDef* RCC_Clocks)

  static __INLINE uint32_t SysTick_Config(uint32_t ticks)    위치 : core_cm3.h(C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\arm\CMSIS\Include)



SysTick_Type 의 네개의 변수가 있다.

CTRL, LOAD, VAL, CALIB.

LOAD(SysTick reload value register) : 매 클럭마다 이 값이 1씩 감소한다. 예를들어 99를 설정하면 100클럭마다 인터럽트가 발생한다.


VAL(SysTick current value register)

현재 count 값이 저장되어 있는 곳. 0을 넣어두고 시작.


CTRL(SysTick control and status register)

SysTick enable 관련

CLKSOURCE, ENABLE, TICKINT를 설정하여 동작방식을 설정한다.


NVIC_SetPriority

'중도연재종료 > CORTEX M3' 카테고리의 다른 글

함수표 참조 설명  (0) 2013.06.23
함수표  (0) 2013.06.23
RCC_GetClockFreq  (0) 2013.06.23
Clock Control  (0) 2013.06.23
Get Character  (0) 2013.06.14
Posted by 십자성군